@gitlab/ui 92.2.0 → 92.3.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/CHANGELOG.md +14 -0
  2. package/bin/migrate_custom_utils_to_tw.bundled.mjs +11 -3
  3. package/dist/components/experimental/duo/chat/components/duo_chat_context/constants.js +4 -4
  4. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu.js +4 -4
  5. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_item.js +8 -8
  6. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_items.js +5 -4
  7. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_popover/duo_chat_context_item_popover.js +15 -16
  8. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.js +7 -7
  9. package/dist/components/experimental/duo/chat/components/duo_chat_context/mock_context_data.js +63 -81
  10. package/dist/components/experimental/duo/chat/components/duo_chat_context/utils.js +1 -1
  11. package/dist/index.css +4 -2
  12. package/dist/index.css.map +1 -1
  13. package/dist/tailwind.css +1 -1
  14. package/dist/tailwind.css.map +1 -1
  15. package/dist/vendor/bootstrap-vue/src/components/form/index.js +0 -4
  16. package/dist/vendor/bootstrap-vue/src/components/index.js +0 -48
  17. package/dist/vendor/bootstrap-vue/src/components/layout/index.js +0 -6
  18. package/dist/vendor/bootstrap-vue/src/components/nav/index.js +0 -6
  19. package/dist/vendor/bootstrap-vue/src/components/navbar/index.js +1 -8
  20. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +2 -6
  21. package/dist/vendor/bootstrap-vue/src/constants/classes.js +1 -2
  22. package/dist/vendor/bootstrap-vue/src/constants/components.js +1 -51
  23. package/dist/vendor/bootstrap-vue/src/constants/events.js +1 -12
  24. package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +1 -5
  25. package/dist/vendor/bootstrap-vue/src/constants/props.js +1 -4
  26. package/dist/vendor/bootstrap-vue/src/constants/regex.js +1 -20
  27. package/dist/vendor/bootstrap-vue/src/constants/slots.js +1 -33
  28. package/dist/vendor/bootstrap-vue/src/directives/toggle/toggle.js +1 -1
  29. package/dist/vendor/bootstrap-vue/src/index.js +0 -74
  30. package/dist/vendor/bootstrap-vue/src/utils/array.js +1 -3
  31. package/dist/vendor/bootstrap-vue/src/utils/inspect.js +1 -3
  32. package/dist/vendor/bootstrap-vue/src/utils/math.js +1 -3
  33. package/dist/vendor/bootstrap-vue/src/utils/object.js +1 -6
  34. package/dist/vendor/bootstrap-vue/src/utils/props.js +2 -8
  35. package/dist/vendor/bootstrap-vue/src/utils/string.js +1 -10
  36. package/package.json +1 -1
  37. package/src/components/base/accordion/accordion_item.scss +3 -3
  38. package/src/components/base/alert/alert.scss +3 -3
  39. package/src/components/base/avatar_labeled/avatar_labeled.scss +2 -2
  40. package/src/components/base/avatars_inline/avatars_inline.scss +1 -1
  41. package/src/components/base/badge/badge.scss +2 -2
  42. package/src/components/base/banner/banner.scss +2 -2
  43. package/src/components/base/breadcrumb/breadcrumb.scss +3 -3
  44. package/src/components/base/broadcast_message/broadcast_message.scss +3 -3
  45. package/src/components/base/button/button.scss +14 -14
  46. package/src/components/base/card/card.scss +1 -1
  47. package/src/components/base/datepicker/datepicker.scss +10 -10
  48. package/src/components/base/drawer/drawer.scss +5 -5
  49. package/src/components/base/dropdown/dropdown.scss +28 -28
  50. package/src/components/base/dropdown/dropdown_divider.scss +3 -3
  51. package/src/components/base/dropdown/dropdown_item.scss +9 -9
  52. package/src/components/base/dropdown/dropdown_section_header.scss +2 -2
  53. package/src/components/base/dropdown/dropdown_text.scss +1 -1
  54. package/src/components/base/filtered_search/filtered_search.scss +7 -7
  55. package/src/components/base/filtered_search/filtered_search_suggestion.scss +1 -1
  56. package/src/components/base/filtered_search/filtered_search_suggestion_list.scss +3 -3
  57. package/src/components/base/filtered_search/filtered_search_term.scss +2 -2
  58. package/src/components/base/filtered_search/filtered_search_token.scss +4 -4
  59. package/src/components/base/filtered_search/filtered_search_token_segment.scss +2 -2
  60. package/src/components/base/form/form_checkbox/form_checkbox.scss +10 -10
  61. package/src/components/base/form/form_group/form_group.scss +5 -5
  62. package/src/components/base/form/form_input/form_input.scss +2 -2
  63. package/src/components/base/form/form_select/form_select.scss +2 -2
  64. package/src/components/base/keyset_pagination/keyset_pagination.scss +1 -1
  65. package/src/components/base/label/label.scss +1 -1
  66. package/src/components/base/loading_icon/loading_icon.scss +1 -1
  67. package/src/components/base/markdown/markdown.scss +33 -33
  68. package/src/components/base/modal/modal.scss +11 -11
  69. package/src/components/base/new_dropdowns/dropdown.scss +14 -14
  70. package/src/components/base/new_dropdowns/dropdown_item.scss +9 -9
  71. package/src/components/base/new_dropdowns/listbox/listbox.scss +1 -1
  72. package/src/components/base/pagination/pagination.scss +3 -3
  73. package/src/components/base/path/path.scss +5 -5
  74. package/src/components/base/popover/popover.scss +5 -5
  75. package/src/components/base/search_box_by_click/search_box_by_click.scss +2 -2
  76. package/src/components/base/search_box_by_type/search_box_by_type.scss +4 -4
  77. package/src/components/base/table/table.scss +4 -4
  78. package/src/components/base/tabs/tabs/tabs.scss +10 -10
  79. package/src/components/base/toast/toast.scss +7 -7
  80. package/src/components/base/toggle/toggle.scss +6 -6
  81. package/src/components/base/token/token.scss +5 -5
  82. package/src/components/base/tooltip/tooltip.scss +3 -3
  83. package/src/components/charts/legend/legend.scss +4 -4
  84. package/src/components/charts/series_label/series_label.scss +1 -1
  85. package/src/components/experimental/duo/chat/components/duo_chat_context/constants.js +3 -3
  86. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu.vue +4 -4
  87. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_item.vue +10 -10
  88. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_items.vue +6 -5
  89. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_popover/duo_chat_context_item_popover.vue +24 -24
  90. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.vue +10 -10
  91. package/src/components/experimental/duo/chat/components/duo_chat_context/mock_context_data.js +57 -74
  92. package/src/components/experimental/duo/chat/components/duo_chat_context/utils.js +5 -3
  93. package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.scss +1 -1
  94. package/src/components/experimental/duo/chat/duo_chat.scss +4 -4
  95. package/src/components/shared_components/charts/tooltip_default_format.scss +1 -1
  96. package/src/scss/bootstrap_vue.scss +0 -18
  97. package/src/scss/typescale/_index.scss +9 -9
  98. package/src/vendor/bootstrap-vue/nuxt/index.js +0 -8
  99. package/src/vendor/bootstrap-vue/src/_utilities.scss +0 -9
  100. package/src/vendor/bootstrap-vue/src/_variables.scss +0 -52
  101. package/src/vendor/bootstrap-vue/src/components/form/index.d.ts +0 -3
  102. package/src/vendor/bootstrap-vue/src/components/form/index.js +1 -4
  103. package/src/vendor/bootstrap-vue/src/components/form/package.json +0 -12
  104. package/src/vendor/bootstrap-vue/src/components/index.d.ts +0 -24
  105. package/src/vendor/bootstrap-vue/src/components/index.js +0 -48
  106. package/src/vendor/bootstrap-vue/src/components/index.scss +0 -15
  107. package/src/vendor/bootstrap-vue/src/components/layout/index.d.ts +0 -6
  108. package/src/vendor/bootstrap-vue/src/components/layout/index.js +1 -5
  109. package/src/vendor/bootstrap-vue/src/components/layout/package.json +0 -67
  110. package/src/vendor/bootstrap-vue/src/components/modal/README.md +0 -1
  111. package/src/vendor/bootstrap-vue/src/components/nav/index.d.ts +0 -6
  112. package/src/vendor/bootstrap-vue/src/components/nav/index.js +1 -5
  113. package/src/vendor/bootstrap-vue/src/components/nav/package.json +0 -45
  114. package/src/vendor/bootstrap-vue/src/components/navbar/README.md +0 -5
  115. package/src/vendor/bootstrap-vue/src/components/navbar/index.d.ts +1 -7
  116. package/src/vendor/bootstrap-vue/src/components/navbar/index.js +2 -7
  117. package/src/vendor/bootstrap-vue/src/components/navbar/package.json +0 -75
  118. package/src/vendor/bootstrap-vue/src/components/table/README.md +1 -2
  119. package/src/vendor/bootstrap-vue/src/components/tabs/README.md +2 -2
  120. package/src/vendor/bootstrap-vue/src/components/toast/README.md +1 -3
  121. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +2 -6
  122. package/src/vendor/bootstrap-vue/src/constants/classes.js +0 -1
  123. package/src/vendor/bootstrap-vue/src/constants/components.js +0 -50
  124. package/src/vendor/bootstrap-vue/src/constants/events.js +0 -11
  125. package/src/vendor/bootstrap-vue/src/constants/key-codes.js +0 -4
  126. package/src/vendor/bootstrap-vue/src/constants/props.js +0 -3
  127. package/src/vendor/bootstrap-vue/src/constants/regex.js +0 -19
  128. package/src/vendor/bootstrap-vue/src/constants/slots.js +0 -32
  129. package/src/vendor/bootstrap-vue/src/directives/toggle/README.md +5 -23
  130. package/src/vendor/bootstrap-vue/src/directives/toggle/package.json +1 -1
  131. package/src/vendor/bootstrap-vue/src/directives/toggle/toggle.js +1 -1
  132. package/src/vendor/bootstrap-vue/src/index.js +0 -122
  133. package/src/vendor/bootstrap-vue/src/index.scss +0 -3
  134. package/src/vendor/bootstrap-vue/src/utils/array.js +0 -5
  135. package/src/vendor/bootstrap-vue/src/utils/config.spec.js +15 -15
  136. package/src/vendor/bootstrap-vue/src/utils/inspect.js +0 -4
  137. package/src/vendor/bootstrap-vue/src/utils/math.js +0 -4
  138. package/src/vendor/bootstrap-vue/src/utils/object.js +0 -5
  139. package/src/vendor/bootstrap-vue/src/utils/props.js +1 -7
  140. package/src/vendor/bootstrap-vue/src/utils/string.js +0 -9
  141. package/src/vendor/bootstrap-vue/src/utils/string.spec.js +1 -20
  142. package/dist/vendor/bootstrap-vue/src/components/alert/alert.js +0 -179
  143. package/dist/vendor/bootstrap-vue/src/components/alert/index.js +0 -11
  144. package/dist/vendor/bootstrap-vue/src/components/aspect/aspect.js +0 -67
  145. package/dist/vendor/bootstrap-vue/src/components/aspect/index.js +0 -11
  146. package/dist/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +0 -67
  147. package/dist/vendor/bootstrap-vue/src/components/avatar/avatar.js +0 -266
  148. package/dist/vendor/bootstrap-vue/src/components/avatar/index.js +0 -14
  149. package/dist/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +0 -112
  150. package/dist/vendor/bootstrap-vue/src/components/button-toolbar/index.js +0 -12
  151. package/dist/vendor/bootstrap-vue/src/components/calendar/calendar.js +0 -1010
  152. package/dist/vendor/bootstrap-vue/src/components/calendar/index.js +0 -11
  153. package/dist/vendor/bootstrap-vue/src/components/card/card-body.js +0 -63
  154. package/dist/vendor/bootstrap-vue/src/components/card/card-footer.js +0 -48
  155. package/dist/vendor/bootstrap-vue/src/components/card/card-group.js +0 -33
  156. package/dist/vendor/bootstrap-vue/src/components/card/card-header.js +0 -48
  157. package/dist/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +0 -46
  158. package/dist/vendor/bootstrap-vue/src/components/card/card-img.js +0 -58
  159. package/dist/vendor/bootstrap-vue/src/components/card/card-sub-title.js +0 -35
  160. package/dist/vendor/bootstrap-vue/src/components/card/card-text.js +0 -31
  161. package/dist/vendor/bootstrap-vue/src/components/card/card-title.js +0 -33
  162. package/dist/vendor/bootstrap-vue/src/components/card/card.js +0 -123
  163. package/dist/vendor/bootstrap-vue/src/components/card/index.js +0 -38
  164. package/dist/vendor/bootstrap-vue/src/components/embed/embed.js +0 -50
  165. package/dist/vendor/bootstrap-vue/src/components/embed/index.js +0 -11
  166. package/dist/vendor/bootstrap-vue/src/components/form/form-datalist.js +0 -52
  167. package/dist/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +0 -261
  168. package/dist/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +0 -310
  169. package/dist/vendor/bootstrap-vue/src/components/form-datepicker/index.js +0 -12
  170. package/dist/vendor/bootstrap-vue/src/components/form-file/form-file.js +0 -561
  171. package/dist/vendor/bootstrap-vue/src/components/form-file/index.js +0 -12
  172. package/dist/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +0 -402
  173. package/dist/vendor/bootstrap-vue/src/components/form-rating/index.js +0 -12
  174. package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +0 -555
  175. package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +0 -12
  176. package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +0 -97
  177. package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +0 -806
  178. package/dist/vendor/bootstrap-vue/src/components/form-tags/index.js +0 -16
  179. package/dist/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +0 -281
  180. package/dist/vendor/bootstrap-vue/src/components/form-timepicker/index.js +0 -12
  181. package/dist/vendor/bootstrap-vue/src/components/image/img-lazy.js +0 -157
  182. package/dist/vendor/bootstrap-vue/src/components/image/img.js +0 -124
  183. package/dist/vendor/bootstrap-vue/src/components/image/index.js +0 -14
  184. package/dist/vendor/bootstrap-vue/src/components/jumbotron/index.js +0 -11
  185. package/dist/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +0 -98
  186. package/dist/vendor/bootstrap-vue/src/components/layout/container.js +0 -41
  187. package/dist/vendor/bootstrap-vue/src/components/layout/row.js +0 -113
  188. package/dist/vendor/bootstrap-vue/src/components/list-group/index.js +0 -14
  189. package/dist/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +0 -78
  190. package/dist/vendor/bootstrap-vue/src/components/list-group/list-group.js +0 -42
  191. package/dist/vendor/bootstrap-vue/src/components/media/index.js +0 -17
  192. package/dist/vendor/bootstrap-vue/src/components/media/media-aside.js +0 -41
  193. package/dist/vendor/bootstrap-vue/src/components/media/media-body.js +0 -31
  194. package/dist/vendor/bootstrap-vue/src/components/media/media.js +0 -61
  195. package/dist/vendor/bootstrap-vue/src/components/nav/nav-form.js +0 -45
  196. package/dist/vendor/bootstrap-vue/src/components/nav/nav-text.js +0 -26
  197. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +0 -46
  198. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +0 -89
  199. package/dist/vendor/bootstrap-vue/src/components/overlay/index.js +0 -11
  200. package/dist/vendor/bootstrap-vue/src/components/overlay/overlay.js +0 -163
  201. package/dist/vendor/bootstrap-vue/src/components/pagination/index.js +0 -11
  202. package/dist/vendor/bootstrap-vue/src/components/pagination/pagination.js +0 -135
  203. package/dist/vendor/bootstrap-vue/src/components/pagination-nav/index.js +0 -11
  204. package/dist/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +0 -299
  205. package/dist/vendor/bootstrap-vue/src/components/sidebar/index.js +0 -15
  206. package/dist/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +0 -432
  207. package/dist/vendor/bootstrap-vue/src/components/skeleton/index.js +0 -23
  208. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +0 -47
  209. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +0 -60
  210. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +0 -64
  211. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +0 -46
  212. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +0 -49
  213. package/dist/vendor/bootstrap-vue/src/components/spinner/index.js +0 -11
  214. package/dist/vendor/bootstrap-vue/src/components/spinner/spinner.js +0 -55
  215. package/dist/vendor/bootstrap-vue/src/components/time/index.js +0 -11
  216. package/dist/vendor/bootstrap-vue/src/components/time/time.js +0 -600
  217. package/dist/vendor/bootstrap-vue/src/constants/date.js +0 -8
  218. package/dist/vendor/bootstrap-vue/src/mixins/card.js +0 -22
  219. package/dist/vendor/bootstrap-vue/src/mixins/pagination.js +0 -598
  220. package/dist/vendor/bootstrap-vue/src/utils/date.js +0 -135
  221. package/src/vendor/bootstrap-vue/src/_custom-controls.scss +0 -30
  222. package/src/vendor/bootstrap-vue/src/components/alert/README.md +0 -280
  223. package/src/vendor/bootstrap-vue/src/components/alert/alert.js +0 -185
  224. package/src/vendor/bootstrap-vue/src/components/alert/alert.spec.js +0 -442
  225. package/src/vendor/bootstrap-vue/src/components/alert/index.d.ts +0 -13
  226. package/src/vendor/bootstrap-vue/src/components/alert/index.js +0 -8
  227. package/src/vendor/bootstrap-vue/src/components/alert/package.json +0 -72
  228. package/src/vendor/bootstrap-vue/src/components/aspect/README.md +0 -65
  229. package/src/vendor/bootstrap-vue/src/components/aspect/aspect.js +0 -65
  230. package/src/vendor/bootstrap-vue/src/components/aspect/aspect.spec.js +0 -121
  231. package/src/vendor/bootstrap-vue/src/components/aspect/index.d.ts +0 -11
  232. package/src/vendor/bootstrap-vue/src/components/aspect/index.js +0 -8
  233. package/src/vendor/bootstrap-vue/src/components/aspect/package.json +0 -26
  234. package/src/vendor/bootstrap-vue/src/components/avatar/README.md +0 -567
  235. package/src/vendor/bootstrap-vue/src/components/avatar/_avatar.scss +0 -148
  236. package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +0 -75
  237. package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.spec.js +0 -74
  238. package/src/vendor/bootstrap-vue/src/components/avatar/avatar.js +0 -228
  239. package/src/vendor/bootstrap-vue/src/components/avatar/avatar.spec.js +0 -355
  240. package/src/vendor/bootstrap-vue/src/components/avatar/index.d.ts +0 -14
  241. package/src/vendor/bootstrap-vue/src/components/avatar/index.js +0 -9
  242. package/src/vendor/bootstrap-vue/src/components/avatar/index.scss +0 -1
  243. package/src/vendor/bootstrap-vue/src/components/avatar/package.json +0 -149
  244. package/src/vendor/bootstrap-vue/src/components/button-toolbar/README.md +0 -109
  245. package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +0 -117
  246. package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.spec.js +0 -185
  247. package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.d.ts +0 -11
  248. package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.js +0 -11
  249. package/src/vendor/bootstrap-vue/src/components/button-toolbar/package.json +0 -32
  250. package/src/vendor/bootstrap-vue/src/components/calendar/README.md +0 -735
  251. package/src/vendor/bootstrap-vue/src/components/calendar/_calendar.scss +0 -78
  252. package/src/vendor/bootstrap-vue/src/components/calendar/calendar.js +0 -1146
  253. package/src/vendor/bootstrap-vue/src/components/calendar/calendar.spec.js +0 -466
  254. package/src/vendor/bootstrap-vue/src/components/calendar/index.d.ts +0 -28
  255. package/src/vendor/bootstrap-vue/src/components/calendar/index.js +0 -8
  256. package/src/vendor/bootstrap-vue/src/components/calendar/index.scss +0 -1
  257. package/src/vendor/bootstrap-vue/src/components/calendar/package.json +0 -317
  258. package/src/vendor/bootstrap-vue/src/components/card/README.md +0 -729
  259. package/src/vendor/bootstrap-vue/src/components/card/_card-img.scss +0 -7
  260. package/src/vendor/bootstrap-vue/src/components/card/card-body.js +0 -69
  261. package/src/vendor/bootstrap-vue/src/components/card/card-body.spec.js +0 -142
  262. package/src/vendor/bootstrap-vue/src/components/card/card-footer.js +0 -48
  263. package/src/vendor/bootstrap-vue/src/components/card/card-footer.spec.js +0 -98
  264. package/src/vendor/bootstrap-vue/src/components/card/card-group.js +0 -33
  265. package/src/vendor/bootstrap-vue/src/components/card/card-group.spec.js +0 -75
  266. package/src/vendor/bootstrap-vue/src/components/card/card-header.js +0 -48
  267. package/src/vendor/bootstrap-vue/src/components/card/card-header.spec.js +0 -98
  268. package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +0 -47
  269. package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.spec.js +0 -204
  270. package/src/vendor/bootstrap-vue/src/components/card/card-img.js +0 -50
  271. package/src/vendor/bootstrap-vue/src/components/card/card-img.spec.js +0 -208
  272. package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.js +0 -35
  273. package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.spec.js +0 -60
  274. package/src/vendor/bootstrap-vue/src/components/card/card-text.js +0 -25
  275. package/src/vendor/bootstrap-vue/src/components/card/card-text.spec.js +0 -48
  276. package/src/vendor/bootstrap-vue/src/components/card/card-title.js +0 -33
  277. package/src/vendor/bootstrap-vue/src/components/card/card-title.spec.js +0 -45
  278. package/src/vendor/bootstrap-vue/src/components/card/card.js +0 -140
  279. package/src/vendor/bootstrap-vue/src/components/card/card.spec.js +0 -296
  280. package/src/vendor/bootstrap-vue/src/components/card/index.d.ts +0 -38
  281. package/src/vendor/bootstrap-vue/src/components/card/index.js +0 -40
  282. package/src/vendor/bootstrap-vue/src/components/card/index.scss +0 -1
  283. package/src/vendor/bootstrap-vue/src/components/card/package.json +0 -262
  284. package/src/vendor/bootstrap-vue/src/components/embed/README.md +0 -63
  285. package/src/vendor/bootstrap-vue/src/components/embed/embed.js +0 -51
  286. package/src/vendor/bootstrap-vue/src/components/embed/embed.spec.js +0 -110
  287. package/src/vendor/bootstrap-vue/src/components/embed/index.d.ts +0 -11
  288. package/src/vendor/bootstrap-vue/src/components/embed/index.js +0 -8
  289. package/src/vendor/bootstrap-vue/src/components/embed/package.json +0 -29
  290. package/src/vendor/bootstrap-vue/src/components/form/form-datalist.js +0 -42
  291. package/src/vendor/bootstrap-vue/src/components/form/form-datalist.spec.js +0 -57
  292. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/_form-btn-label-control.scss +0 -125
  293. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +0 -278
  294. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/index.scss +0 -1
  295. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/package.json +0 -5
  296. package/src/vendor/bootstrap-vue/src/components/form-datepicker/README.md +0 -694
  297. package/src/vendor/bootstrap-vue/src/components/form-datepicker/_form-datepicker.scss +0 -1
  298. package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +0 -342
  299. package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.spec.js +0 -562
  300. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.d.ts +0 -12
  301. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.js +0 -11
  302. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.scss +0 -1
  303. package/src/vendor/bootstrap-vue/src/components/form-datepicker/package.json +0 -420
  304. package/src/vendor/bootstrap-vue/src/components/form-file/README.md +0 -357
  305. package/src/vendor/bootstrap-vue/src/components/form-file/_form-file.scss +0 -61
  306. package/src/vendor/bootstrap-vue/src/components/form-file/form-file.js +0 -575
  307. package/src/vendor/bootstrap-vue/src/components/form-file/form-file.spec.js +0 -885
  308. package/src/vendor/bootstrap-vue/src/components/form-file/index.d.ts +0 -13
  309. package/src/vendor/bootstrap-vue/src/components/form-file/index.js +0 -11
  310. package/src/vendor/bootstrap-vue/src/components/form-file/index.scss +0 -1
  311. package/src/vendor/bootstrap-vue/src/components/form-file/package.json +0 -131
  312. package/src/vendor/bootstrap-vue/src/components/form-rating/README.md +0 -526
  313. package/src/vendor/bootstrap-vue/src/components/form-rating/_form-rating.scss +0 -57
  314. package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +0 -411
  315. package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.spec.js +0 -544
  316. package/src/vendor/bootstrap-vue/src/components/form-rating/index.d.ts +0 -14
  317. package/src/vendor/bootstrap-vue/src/components/form-rating/index.js +0 -8
  318. package/src/vendor/bootstrap-vue/src/components/form-rating/index.scss +0 -1
  319. package/src/vendor/bootstrap-vue/src/components/form-rating/package.json +0 -166
  320. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/README.md +0 -411
  321. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/_spinbutton.scss +0 -76
  322. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +0 -572
  323. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.spec.js +0 -731
  324. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.d.ts +0 -12
  325. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +0 -11
  326. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.scss +0 -1
  327. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/package.json +0 -150
  328. package/src/vendor/bootstrap-vue/src/components/form-tags/README.md +0 -880
  329. package/src/vendor/bootstrap-vue/src/components/form-tags/_form-tags.scss +0 -70
  330. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +0 -94
  331. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.spec.js +0 -166
  332. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +0 -891
  333. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.spec.js +0 -920
  334. package/src/vendor/bootstrap-vue/src/components/form-tags/index.d.ts +0 -16
  335. package/src/vendor/bootstrap-vue/src/components/form-tags/index.js +0 -14
  336. package/src/vendor/bootstrap-vue/src/components/form-tags/index.scss +0 -1
  337. package/src/vendor/bootstrap-vue/src/components/form-tags/package.json +0 -440
  338. package/src/vendor/bootstrap-vue/src/components/form-timepicker/README.md +0 -450
  339. package/src/vendor/bootstrap-vue/src/components/form-timepicker/_form-timepicker.scss +0 -1
  340. package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +0 -308
  341. package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.spec.js +0 -440
  342. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.d.ts +0 -12
  343. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.js +0 -11
  344. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.scss +0 -1
  345. package/src/vendor/bootstrap-vue/src/components/form-timepicker/package.json +0 -255
  346. package/src/vendor/bootstrap-vue/src/components/image/README.md +0 -322
  347. package/src/vendor/bootstrap-vue/src/components/image/img-lazy.js +0 -161
  348. package/src/vendor/bootstrap-vue/src/components/image/img-lazy.spec.js +0 -96
  349. package/src/vendor/bootstrap-vue/src/components/image/img.js +0 -139
  350. package/src/vendor/bootstrap-vue/src/components/image/img.spec.js +0 -255
  351. package/src/vendor/bootstrap-vue/src/components/image/index.d.ts +0 -14
  352. package/src/vendor/bootstrap-vue/src/components/image/index.js +0 -12
  353. package/src/vendor/bootstrap-vue/src/components/image/package.json +0 -152
  354. package/src/vendor/bootstrap-vue/src/components/jumbotron/README.md +0 -109
  355. package/src/vendor/bootstrap-vue/src/components/jumbotron/index.d.ts +0 -11
  356. package/src/vendor/bootstrap-vue/src/components/jumbotron/index.js +0 -8
  357. package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +0 -103
  358. package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.spec.js +0 -254
  359. package/src/vendor/bootstrap-vue/src/components/jumbotron/package.json +0 -66
  360. package/src/vendor/bootstrap-vue/src/components/layout/container.js +0 -40
  361. package/src/vendor/bootstrap-vue/src/components/layout/container.spec.js +0 -75
  362. package/src/vendor/bootstrap-vue/src/components/layout/row.js +0 -111
  363. package/src/vendor/bootstrap-vue/src/components/layout/row.spec.js +0 -138
  364. package/src/vendor/bootstrap-vue/src/components/list-group/README.md +0 -291
  365. package/src/vendor/bootstrap-vue/src/components/list-group/index.d.ts +0 -14
  366. package/src/vendor/bootstrap-vue/src/components/list-group/index.js +0 -12
  367. package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +0 -76
  368. package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.spec.js +0 -286
  369. package/src/vendor/bootstrap-vue/src/components/list-group/list-group.js +0 -42
  370. package/src/vendor/bootstrap-vue/src/components/list-group/list-group.spec.js +0 -132
  371. package/src/vendor/bootstrap-vue/src/components/list-group/package.json +0 -52
  372. package/src/vendor/bootstrap-vue/src/components/media/README.md +0 -183
  373. package/src/vendor/bootstrap-vue/src/components/media/_media.scss +0 -9
  374. package/src/vendor/bootstrap-vue/src/components/media/index.d.ts +0 -17
  375. package/src/vendor/bootstrap-vue/src/components/media/index.js +0 -14
  376. package/src/vendor/bootstrap-vue/src/components/media/index.scss +0 -1
  377. package/src/vendor/bootstrap-vue/src/components/media/media-aside.js +0 -45
  378. package/src/vendor/bootstrap-vue/src/components/media/media-aside.spec.js +0 -79
  379. package/src/vendor/bootstrap-vue/src/components/media/media-body.js +0 -25
  380. package/src/vendor/bootstrap-vue/src/components/media/media-body.spec.js +0 -47
  381. package/src/vendor/bootstrap-vue/src/components/media/media.js +0 -52
  382. package/src/vendor/bootstrap-vue/src/components/media/media.spec.js +0 -149
  383. package/src/vendor/bootstrap-vue/src/components/media/package.json +0 -65
  384. package/src/vendor/bootstrap-vue/src/components/nav/nav-form.js +0 -50
  385. package/src/vendor/bootstrap-vue/src/components/nav/nav-form.spec.js +0 -93
  386. package/src/vendor/bootstrap-vue/src/components/nav/nav-text.js +0 -18
  387. package/src/vendor/bootstrap-vue/src/components/nav/nav-text.spec.js +0 -30
  388. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +0 -45
  389. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.spec.js +0 -105
  390. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +0 -84
  391. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.spec.js +0 -189
  392. package/src/vendor/bootstrap-vue/src/components/overlay/README.md +0 -815
  393. package/src/vendor/bootstrap-vue/src/components/overlay/index.d.ts +0 -11
  394. package/src/vendor/bootstrap-vue/src/components/overlay/index.js +0 -8
  395. package/src/vendor/bootstrap-vue/src/components/overlay/overlay.js +0 -162
  396. package/src/vendor/bootstrap-vue/src/components/overlay/overlay.spec.js +0 -257
  397. package/src/vendor/bootstrap-vue/src/components/overlay/package.json +0 -130
  398. package/src/vendor/bootstrap-vue/src/components/pagination/README.md +0 -430
  399. package/src/vendor/bootstrap-vue/src/components/pagination/_pagination.scss +0 -26
  400. package/src/vendor/bootstrap-vue/src/components/pagination/index.d.ts +0 -11
  401. package/src/vendor/bootstrap-vue/src/components/pagination/index.js +0 -8
  402. package/src/vendor/bootstrap-vue/src/components/pagination/index.scss +0 -1
  403. package/src/vendor/bootstrap-vue/src/components/pagination/package.json +0 -295
  404. package/src/vendor/bootstrap-vue/src/components/pagination/pagination.js +0 -138
  405. package/src/vendor/bootstrap-vue/src/components/pagination/pagination.spec.js +0 -1198
  406. package/src/vendor/bootstrap-vue/src/components/pagination-nav/README.md +0 -544
  407. package/src/vendor/bootstrap-vue/src/components/pagination-nav/_pagination-nav.scss +0 -2
  408. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.d.ts +0 -11
  409. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.js +0 -8
  410. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.scss +0 -1
  411. package/src/vendor/bootstrap-vue/src/components/pagination-nav/package.json +0 -315
  412. package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +0 -281
  413. package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.spec.js +0 -671
  414. package/src/vendor/bootstrap-vue/src/components/sidebar/README.md +0 -406
  415. package/src/vendor/bootstrap-vue/src/components/sidebar/_sidebar.scss +0 -97
  416. package/src/vendor/bootstrap-vue/src/components/sidebar/index.d.ts +0 -11
  417. package/src/vendor/bootstrap-vue/src/components/sidebar/index.js +0 -10
  418. package/src/vendor/bootstrap-vue/src/components/sidebar/index.scss +0 -1
  419. package/src/vendor/bootstrap-vue/src/components/sidebar/package.json +0 -239
  420. package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +0 -438
  421. package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.spec.js +0 -404
  422. package/src/vendor/bootstrap-vue/src/components/skeleton/README.md +0 -275
  423. package/src/vendor/bootstrap-vue/src/components/skeleton/_skeleton.scss +0 -141
  424. package/src/vendor/bootstrap-vue/src/components/skeleton/index.d.ts +0 -23
  425. package/src/vendor/bootstrap-vue/src/components/skeleton/index.js +0 -18
  426. package/src/vendor/bootstrap-vue/src/components/skeleton/index.scss +0 -1
  427. package/src/vendor/bootstrap-vue/src/components/skeleton/package.json +0 -136
  428. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +0 -45
  429. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.spec.js +0 -86
  430. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +0 -49
  431. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.spec.js +0 -139
  432. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +0 -58
  433. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.spec.js +0 -119
  434. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +0 -47
  435. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.spec.js +0 -48
  436. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +0 -46
  437. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.spec.js +0 -126
  438. package/src/vendor/bootstrap-vue/src/components/spinner/README.md +0 -229
  439. package/src/vendor/bootstrap-vue/src/components/spinner/index.d.ts +0 -11
  440. package/src/vendor/bootstrap-vue/src/components/spinner/index.js +0 -8
  441. package/src/vendor/bootstrap-vue/src/components/spinner/package.json +0 -38
  442. package/src/vendor/bootstrap-vue/src/components/spinner/spinner.js +0 -54
  443. package/src/vendor/bootstrap-vue/src/components/spinner/spinner.spec.js +0 -305
  444. package/src/vendor/bootstrap-vue/src/components/time/README.md +0 -431
  445. package/src/vendor/bootstrap-vue/src/components/time/_time.scss +0 -41
  446. package/src/vendor/bootstrap-vue/src/components/time/index.d.ts +0 -27
  447. package/src/vendor/bootstrap-vue/src/components/time/index.js +0 -8
  448. package/src/vendor/bootstrap-vue/src/components/time/index.scss +0 -1
  449. package/src/vendor/bootstrap-vue/src/components/time/package.json +0 -123
  450. package/src/vendor/bootstrap-vue/src/components/time/time.js +0 -601
  451. package/src/vendor/bootstrap-vue/src/components/time/time.spec.js +0 -330
  452. package/src/vendor/bootstrap-vue/src/constants/date.js +0 -7
  453. package/src/vendor/bootstrap-vue/src/mixins/card.js +0 -23
  454. package/src/vendor/bootstrap-vue/src/mixins/pagination.js +0 -670
  455. package/src/vendor/bootstrap-vue/src/utils/date.js +0 -130
  456. package/src/vendor/bootstrap-vue/src/utils/date.spec.js +0 -159
@@ -1,731 +0,0 @@
1
- import { mount } from '@vue/test-utils'
2
- import { waitNT, waitRAF } from '../../../tests/utils'
3
- import { BFormSpinbutton } from './form-spinbutton'
4
-
5
- describe('form-spinbutton', () => {
6
- it('has expected default structure', async () => {
7
- const wrapper = mount(BFormSpinbutton)
8
- expect(wrapper.vm).toBeDefined()
9
- await waitNT(wrapper.vm)
10
- await waitRAF()
11
-
12
- expect(wrapper.classes()).toContain('b-form-spinbutton')
13
- expect(wrapper.classes()).toContain('form-control')
14
- expect(wrapper.classes()).toContain('d-flex')
15
- expect(wrapper.classes()).not.toContain('d-inline-flex')
16
- expect(wrapper.classes()).not.toContain('flex-column')
17
- expect(wrapper.classes()).toContain('align-items-stretch')
18
- expect(wrapper.attributes('role')).toEqual('group')
19
- expect(wrapper.attributes('tabindex')).toEqual('-1')
20
-
21
- // Should have 3 child elements (btn, output, btn)
22
- expect(wrapper.findAll('.b-form-spinbutton > *').length).toBe(3)
23
-
24
- const $decrement = wrapper.find('[aria-label="Decrement"]')
25
- expect($decrement.exists()).toBe(true)
26
- expect($decrement.element.tagName).toBe('BUTTON')
27
- expect($decrement.attributes('tabindex')).toEqual('-1')
28
- expect($decrement.attributes('aria-keyshortcuts')).toEqual('ArrowDown')
29
-
30
- const $increment = wrapper.find('[aria-label="Increment"]')
31
- expect($increment.exists()).toBe(true)
32
- expect($increment.element.tagName).toBe('BUTTON')
33
- expect($increment.attributes('tabindex')).toEqual('-1')
34
- expect($increment.attributes('aria-keyshortcuts')).toEqual('ArrowUp')
35
-
36
- const $output = wrapper.find('output')
37
- expect($output.exists()).toBe(true)
38
- expect($output.attributes('role')).toEqual('spinbutton')
39
- expect($output.attributes('tabindex')).toEqual('0')
40
- expect($output.attributes('aria-live')).toEqual('off')
41
- expect($output.attributes('aria-valuemin')).toEqual('1')
42
- expect($output.attributes('aria-valuemax')).toEqual('100')
43
- // These two attribute should not exist on the element
44
- expect($output.element.hasAttribute('aria-valuenow')).toBe(false)
45
- expect($output.element.hasAttribute('aria-valuetext')).toBe(false)
46
- expect($output.text()).toEqual('')
47
-
48
- await wrapper.setProps({
49
- placeholder: 'foobar'
50
- })
51
- await waitNT(wrapper.vm)
52
- expect($output.text()).toEqual('foobar')
53
-
54
- wrapper.destroy()
55
- })
56
-
57
- it('has expected structure when value set', async () => {
58
- const wrapper = mount(BFormSpinbutton, {
59
- propsData: {
60
- min: 0,
61
- max: 10,
62
- value: 5
63
- }
64
- })
65
- expect(wrapper.vm).toBeDefined()
66
- await waitNT(wrapper.vm)
67
- await waitRAF()
68
-
69
- expect(wrapper.classes()).toContain('b-form-spinbutton')
70
- expect(wrapper.classes()).toContain('form-control')
71
- expect(wrapper.classes()).toContain('d-flex')
72
- expect(wrapper.classes()).not.toContain('d-inline-flex')
73
- expect(wrapper.classes()).not.toContain('flex-column')
74
- expect(wrapper.classes()).toContain('align-items-stretch')
75
- expect(wrapper.attributes('role')).toEqual('group')
76
- expect(wrapper.attributes('tabindex')).toEqual('-1')
77
-
78
- // Should have 3 child elements (btn, output, btn)
79
- expect(wrapper.findAll('.b-form-spinbutton > *').length).toBe(3)
80
-
81
- const $decrement = wrapper.find('[aria-label="Decrement"]')
82
- expect($decrement.exists()).toBe(true)
83
- expect($decrement.element.tagName).toBe('BUTTON')
84
- expect($decrement.attributes('tabindex')).toEqual('-1')
85
- expect($decrement.attributes('aria-keyshortcuts')).toEqual('ArrowDown')
86
-
87
- const $increment = wrapper.find('[aria-label="Increment"]')
88
- expect($increment.exists()).toBe(true)
89
- expect($increment.element.tagName).toBe('BUTTON')
90
- expect($increment.attributes('tabindex')).toEqual('-1')
91
- expect($increment.attributes('aria-keyshortcuts')).toEqual('ArrowUp')
92
-
93
- const $output = wrapper.find('output')
94
- expect($output.exists()).toBe(true)
95
- expect($output.attributes('role')).toEqual('spinbutton')
96
- expect($output.attributes('tabindex')).toEqual('0')
97
- expect($output.attributes('aria-live')).toEqual('off')
98
- expect($output.attributes('aria-valuemin')).toEqual('0')
99
- expect($output.attributes('aria-valuemax')).toEqual('10')
100
- expect($output.attributes('aria-valuenow')).toEqual('5')
101
- expect($output.attributes('aria-valuetext')).toEqual('5')
102
-
103
- await wrapper.setProps({
104
- value: 8
105
- })
106
- await waitNT(wrapper.vm)
107
-
108
- expect($output.attributes('aria-valuemin')).toEqual('0')
109
- expect($output.attributes('aria-valuemax')).toEqual('10')
110
- expect($output.attributes('aria-valuenow')).toEqual('8')
111
- expect($output.attributes('aria-valuetext')).toEqual('8')
112
-
113
- wrapper.destroy()
114
- })
115
-
116
- it('has expected structure when prop inline set', async () => {
117
- const wrapper = mount(BFormSpinbutton, {
118
- propsData: {
119
- inline: true
120
- }
121
- })
122
- expect(wrapper.vm).toBeDefined()
123
- await waitNT(wrapper.vm)
124
- await waitRAF()
125
-
126
- expect(wrapper.classes()).toContain('b-form-spinbutton')
127
- expect(wrapper.classes()).toContain('form-control')
128
- expect(wrapper.classes()).toContain('d-inline-flex')
129
- expect(wrapper.classes()).not.toContain('d-flex')
130
- expect(wrapper.classes()).not.toContain('flex-column')
131
- expect(wrapper.classes()).toContain('align-items-stretch')
132
- expect(wrapper.attributes('role')).toEqual('group')
133
- expect(wrapper.attributes('tabindex')).toEqual('-1')
134
-
135
- // Should have 3 child elements (btn, output, btn)
136
- expect(wrapper.findAll('.b-form-spinbutton > *').length).toBe(3)
137
-
138
- const $decrement = wrapper.find('[aria-label="Decrement"]')
139
- expect($decrement.exists()).toBe(true)
140
- expect($decrement.element.tagName).toBe('BUTTON')
141
- expect($decrement.attributes('tabindex')).toEqual('-1')
142
- expect($decrement.attributes('aria-keyshortcuts')).toEqual('ArrowDown')
143
-
144
- const $increment = wrapper.find('[aria-label="Increment"]')
145
- expect($increment.exists()).toBe(true)
146
- expect($increment.element.tagName).toBe('BUTTON')
147
- expect($increment.attributes('tabindex')).toEqual('-1')
148
- expect($increment.attributes('aria-keyshortcuts')).toEqual('ArrowUp')
149
-
150
- const $output = wrapper.find('output')
151
- expect($output.exists()).toBe(true)
152
- expect($output.attributes('role')).toEqual('spinbutton')
153
- expect($output.attributes('tabindex')).toEqual('0')
154
- expect($output.attributes('aria-live')).toEqual('off')
155
- expect($output.attributes('aria-valuemin')).toEqual('1')
156
- expect($output.attributes('aria-valuemax')).toEqual('100')
157
- // These two attribute should not exist on the element
158
- expect($output.element.hasAttribute('aria-valuenow')).toBe(false)
159
- expect($output.element.hasAttribute('aria-valuetext')).toBe(false)
160
-
161
- wrapper.destroy()
162
- })
163
-
164
- it('has expected structure when prop vertical set', async () => {
165
- const wrapper = mount(BFormSpinbutton, {
166
- propsData: {
167
- vertical: true
168
- }
169
- })
170
- expect(wrapper.vm).toBeDefined()
171
- await waitNT(wrapper.vm)
172
- await waitRAF()
173
-
174
- expect(wrapper.classes()).toContain('b-form-spinbutton')
175
- expect(wrapper.classes()).toContain('form-control')
176
- expect(wrapper.classes()).toContain('d-inline-flex')
177
- expect(wrapper.classes()).not.toContain('d-flex')
178
- expect(wrapper.classes()).toContain('flex-column')
179
- expect(wrapper.classes()).not.toContain('align-items-stretch')
180
- expect(wrapper.attributes('role')).toEqual('group')
181
- expect(wrapper.attributes('tabindex')).toEqual('-1')
182
-
183
- // Should have 3 child elements (btn, output, btn)
184
- expect(wrapper.findAll('.b-form-spinbutton > *').length).toBe(3)
185
-
186
- const $decrement = wrapper.find('[aria-label="Decrement"]')
187
- expect($decrement.exists()).toBe(true)
188
- expect($decrement.element.tagName).toBe('BUTTON')
189
- expect($decrement.attributes('tabindex')).toEqual('-1')
190
- expect($decrement.attributes('aria-keyshortcuts')).toEqual('ArrowDown')
191
-
192
- const $increment = wrapper.find('[aria-label="Increment"]')
193
- expect($increment.exists()).toBe(true)
194
- expect($increment.element.tagName).toBe('BUTTON')
195
- expect($increment.attributes('tabindex')).toEqual('-1')
196
- expect($increment.attributes('aria-keyshortcuts')).toEqual('ArrowUp')
197
-
198
- const $output = wrapper.find('output')
199
- expect($output.exists()).toBe(true)
200
- expect($output.attributes('role')).toEqual('spinbutton')
201
- expect($output.attributes('tabindex')).toEqual('0')
202
- expect($output.attributes('aria-live')).toEqual('off')
203
- expect($output.attributes('aria-valuemin')).toEqual('1')
204
- expect($output.attributes('aria-valuemax')).toEqual('100')
205
- // These two attribute should not exist on the element
206
- expect($output.element.hasAttribute('aria-valuenow')).toBe(false)
207
- expect($output.element.hasAttribute('aria-valuetext')).toBe(false)
208
-
209
- wrapper.destroy()
210
- })
211
-
212
- it('renders hidden input when name set', async () => {
213
- const wrapper = mount(BFormSpinbutton, {
214
- propsData: {
215
- name: 'foobar',
216
- value: null
217
- }
218
- })
219
- expect(wrapper.vm).toBeDefined()
220
- await waitNT(wrapper.vm)
221
- await waitRAF()
222
-
223
- expect(wrapper.classes()).toContain('form-control')
224
- expect(wrapper.classes()).toContain('b-form-spinbutton')
225
-
226
- const $hidden = wrapper.find('input[type="hidden"]')
227
- expect($hidden.exists()).toBe(true)
228
- expect($hidden.attributes('name')).toBe('foobar')
229
- expect($hidden.attributes('value')).toBe('')
230
-
231
- await wrapper.setProps({
232
- value: 50
233
- })
234
- await waitNT(wrapper.vm)
235
- await waitRAF()
236
- expect($hidden.attributes('name')).toBe('foobar')
237
- expect($hidden.attributes('value')).toBe('50')
238
-
239
- wrapper.destroy()
240
- })
241
-
242
- it('basic +/- buttons click', async () => {
243
- const wrapper = mount(BFormSpinbutton, {
244
- attachTo: document.body
245
- })
246
- expect(wrapper.vm).toBeDefined()
247
- await waitNT(wrapper.vm)
248
- await waitRAF()
249
-
250
- const $output = wrapper.find('output')
251
- expect($output.exists()).toBe(true)
252
- expect($output.attributes('role')).toEqual('spinbutton')
253
- expect($output.attributes('tabindex')).toEqual('0')
254
- expect($output.attributes('aria-live')).toEqual('off')
255
- expect($output.attributes('aria-valuemin')).toEqual('1')
256
- expect($output.attributes('aria-valuemax')).toEqual('100')
257
- // These two attribute should not exist on the element
258
- expect($output.element.hasAttribute('aria-valuenow')).toBe(false)
259
- expect($output.element.hasAttribute('aria-valuetext')).toBe(false)
260
-
261
- const $increment = wrapper.find('[aria-label="Increment"]')
262
- expect($increment.exists()).toBe(true)
263
- const $decrement = wrapper.find('[aria-label="Decrement"]')
264
- expect($decrement.exists()).toBe(true)
265
-
266
- await $decrement.trigger('mousedown')
267
- await $decrement.trigger('mouseup')
268
- expect($output.attributes('aria-valuemin')).toEqual('1')
269
- expect($output.attributes('aria-valuemax')).toEqual('100')
270
- expect($output.attributes('aria-valuenow')).toEqual('1')
271
- expect($output.attributes('aria-valuetext')).toEqual('1')
272
-
273
- await $increment.trigger('mousedown')
274
- await $increment.trigger('mouseup')
275
- expect($output.attributes('aria-valuemin')).toEqual('1')
276
- expect($output.attributes('aria-valuemax')).toEqual('100')
277
- expect($output.attributes('aria-valuenow')).toEqual('2')
278
- expect($output.attributes('aria-valuetext')).toEqual('2')
279
-
280
- await $increment.trigger('mousedown')
281
- await $increment.trigger('mouseup')
282
- expect($output.attributes('aria-valuemin')).toEqual('1')
283
- expect($output.attributes('aria-valuemax')).toEqual('100')
284
- expect($output.attributes('aria-valuenow')).toEqual('3')
285
- expect($output.attributes('aria-valuetext')).toEqual('3')
286
-
287
- await $decrement.trigger('mousedown')
288
- await $decrement.trigger('mouseup')
289
- expect($output.attributes('aria-valuemin')).toEqual('1')
290
- expect($output.attributes('aria-valuemax')).toEqual('100')
291
- expect($output.attributes('aria-valuenow')).toEqual('2')
292
- expect($output.attributes('aria-valuetext')).toEqual('2')
293
-
294
- await $decrement.trigger('mousedown')
295
- await $decrement.trigger('mouseup')
296
- expect($output.attributes('aria-valuemin')).toEqual('1')
297
- expect($output.attributes('aria-valuemax')).toEqual('100')
298
- expect($output.attributes('aria-valuenow')).toEqual('1')
299
- expect($output.attributes('aria-valuetext')).toEqual('1')
300
-
301
- await $decrement.trigger('mousedown')
302
- await $decrement.trigger('mouseup')
303
- expect($output.attributes('aria-valuemin')).toEqual('1')
304
- expect($output.attributes('aria-valuemax')).toEqual('100')
305
- // `wrap` is off so it should not change to `1`
306
- expect($output.attributes('aria-valuenow')).toEqual('1')
307
- expect($output.attributes('aria-valuetext')).toEqual('1')
308
-
309
- await wrapper.setProps({ wrap: true })
310
- await $decrement.trigger('mousedown')
311
- await $decrement.trigger('mouseup')
312
- expect($output.attributes('aria-valuemin')).toEqual('1')
313
- expect($output.attributes('aria-valuemax')).toEqual('100')
314
- // wrap is on so it should change to 100
315
- expect($output.attributes('aria-valuenow')).toEqual('100')
316
- expect($output.attributes('aria-valuetext')).toEqual('100')
317
-
318
- await $increment.trigger('mousedown')
319
- await $increment.trigger('mouseup')
320
- expect($output.attributes('aria-valuemin')).toEqual('1')
321
- expect($output.attributes('aria-valuemax')).toEqual('100')
322
- // wrap is on so it should change to 1
323
- expect($output.attributes('aria-valuenow')).toEqual('1')
324
- expect($output.attributes('aria-valuetext')).toEqual('1')
325
-
326
- await wrapper.setProps({ disabled: true })
327
- await $increment.trigger('mousedown')
328
- await $increment.trigger('mouseup')
329
- expect($output.attributes('aria-valuemin')).toEqual('1')
330
- expect($output.attributes('aria-valuemax')).toEqual('100')
331
- // Disabled so should not change
332
- expect($output.attributes('aria-valuenow')).toEqual('1')
333
- expect($output.attributes('aria-valuetext')).toEqual('1')
334
-
335
- await $decrement.trigger('mousedown')
336
- await $decrement.trigger('mouseup')
337
- expect($output.attributes('aria-valuemin')).toEqual('1')
338
- expect($output.attributes('aria-valuemax')).toEqual('100')
339
- // Disabled so should not change
340
- expect($output.attributes('aria-valuenow')).toEqual('1')
341
- expect($output.attributes('aria-valuetext')).toEqual('1')
342
-
343
- await wrapper.setProps({
344
- disabled: false,
345
- readonly: true
346
- })
347
- await $increment.trigger('mousedown')
348
- await $increment.trigger('mouseup')
349
- expect($output.attributes('aria-valuemin')).toEqual('1')
350
- expect($output.attributes('aria-valuemax')).toEqual('100')
351
- // Readonly so should not change
352
- expect($output.attributes('aria-valuenow')).toEqual('1')
353
- expect($output.attributes('aria-valuetext')).toEqual('1')
354
-
355
- await $decrement.trigger('mousedown')
356
- await $decrement.trigger('mouseup')
357
- expect($output.attributes('aria-valuemin')).toEqual('1')
358
- expect($output.attributes('aria-valuemax')).toEqual('100')
359
- // Readonly so should not change
360
- expect($output.attributes('aria-valuenow')).toEqual('1')
361
- expect($output.attributes('aria-valuetext')).toEqual('1')
362
-
363
- await wrapper.setProps({
364
- disabled: false,
365
- readonly: false
366
- })
367
- // Touch events should work as well
368
- await $increment.trigger('touchstart')
369
- await $increment.trigger('touchend')
370
- expect($output.attributes('aria-valuemin')).toEqual('1')
371
- expect($output.attributes('aria-valuemax')).toEqual('100')
372
- expect($output.attributes('aria-valuenow')).toEqual('2')
373
- expect($output.attributes('aria-valuetext')).toEqual('2')
374
-
375
- await $decrement.trigger('touchstart')
376
- await $decrement.trigger('touchend')
377
- expect($output.attributes('aria-valuemin')).toEqual('1')
378
- expect($output.attributes('aria-valuemax')).toEqual('100')
379
- expect($output.attributes('aria-valuenow')).toEqual('1')
380
- expect($output.attributes('aria-valuetext')).toEqual('1')
381
-
382
- wrapper.destroy()
383
- })
384
-
385
- it('basic keyboard control works', async () => {
386
- const wrapper = mount(BFormSpinbutton, {
387
- attachTo: document.body
388
- })
389
- expect(wrapper.vm).toBeDefined()
390
- await waitNT(wrapper.vm)
391
- await waitRAF()
392
-
393
- const $output = wrapper.find('output')
394
- expect($output.exists()).toBe(true)
395
- expect($output.attributes('role')).toEqual('spinbutton')
396
- expect($output.attributes('tabindex')).toEqual('0')
397
- expect($output.attributes('aria-live')).toEqual('off')
398
- expect($output.attributes('aria-valuemin')).toEqual('1')
399
- expect($output.attributes('aria-valuemax')).toEqual('100')
400
- // These two attribute should not exist on the element
401
- expect($output.element.hasAttribute('aria-valuenow')).toBe(false)
402
- expect($output.element.hasAttribute('aria-valuetext')).toBe(false)
403
-
404
- await wrapper.trigger('keydown.up')
405
- await wrapper.trigger('keyup.up')
406
- expect($output.attributes('aria-valuemin')).toEqual('1')
407
- expect($output.attributes('aria-valuemax')).toEqual('100')
408
- expect($output.attributes('aria-valuenow')).toEqual('1')
409
- expect($output.attributes('aria-valuetext')).toEqual('1')
410
-
411
- await wrapper.trigger('keydown.up')
412
- await wrapper.trigger('keyup.up')
413
- expect($output.attributes('aria-valuemin')).toEqual('1')
414
- expect($output.attributes('aria-valuemax')).toEqual('100')
415
- expect($output.attributes('aria-valuenow')).toEqual('2')
416
- expect($output.attributes('aria-valuetext')).toEqual('2')
417
-
418
- await wrapper.trigger('keydown.end')
419
- await wrapper.trigger('keyup.end')
420
- expect($output.attributes('aria-valuemin')).toEqual('1')
421
- expect($output.attributes('aria-valuemax')).toEqual('100')
422
- expect($output.attributes('aria-valuenow')).toEqual('100')
423
- expect($output.attributes('aria-valuetext')).toEqual('100')
424
-
425
- await wrapper.trigger('keydown.up')
426
- await wrapper.trigger('keyup.up')
427
- expect($output.attributes('aria-valuemin')).toEqual('1')
428
- expect($output.attributes('aria-valuemax')).toEqual('100')
429
- // `wrap` is off so it should not change to `1`
430
- expect($output.attributes('aria-valuenow')).toEqual('100')
431
- expect($output.attributes('aria-valuetext')).toEqual('100')
432
-
433
- await wrapper.trigger('keydown.down')
434
- await wrapper.trigger('keyup.down')
435
- expect($output.attributes('aria-valuemin')).toEqual('1')
436
- expect($output.attributes('aria-valuemax')).toEqual('100')
437
- expect($output.attributes('aria-valuenow')).toEqual('99')
438
- expect($output.attributes('aria-valuetext')).toEqual('99')
439
-
440
- await wrapper.trigger('keydown.down')
441
- await wrapper.trigger('keyup.down')
442
- expect($output.attributes('aria-valuemin')).toEqual('1')
443
- expect($output.attributes('aria-valuemax')).toEqual('100')
444
- expect($output.attributes('aria-valuenow')).toEqual('98')
445
- expect($output.attributes('aria-valuetext')).toEqual('98')
446
-
447
- await wrapper.trigger('keydown.home')
448
- await wrapper.trigger('keyup.home')
449
- expect($output.attributes('aria-valuemin')).toEqual('1')
450
- expect($output.attributes('aria-valuemax')).toEqual('100')
451
- expect($output.attributes('aria-valuenow')).toEqual('1')
452
- expect($output.attributes('aria-valuetext')).toEqual('1')
453
-
454
- await wrapper.trigger('keydown.down')
455
- await wrapper.trigger('keyup.down')
456
- expect($output.attributes('aria-valuemin')).toEqual('1')
457
- expect($output.attributes('aria-valuemax')).toEqual('100')
458
- // `wrap` is off so it should not change to `1`
459
- expect($output.attributes('aria-valuenow')).toEqual('1')
460
- expect($output.attributes('aria-valuetext')).toEqual('1')
461
-
462
- await wrapper.trigger('keydown.pageup')
463
- await wrapper.trigger('keyup.pageup')
464
- expect($output.attributes('aria-valuemin')).toEqual('1')
465
- expect($output.attributes('aria-valuemax')).toEqual('100')
466
- // Default jump is `4`
467
- expect($output.attributes('aria-valuenow')).toEqual('5')
468
- expect($output.attributes('aria-valuetext')).toEqual('5')
469
-
470
- await wrapper.trigger('keydown.pageup')
471
- await wrapper.trigger('keyup.pageup')
472
- expect($output.attributes('aria-valuemin')).toEqual('1')
473
- expect($output.attributes('aria-valuemax')).toEqual('100')
474
- // Default jump is `4`
475
- expect($output.attributes('aria-valuenow')).toEqual('9')
476
- expect($output.attributes('aria-valuetext')).toEqual('9')
477
-
478
- await wrapper.trigger('keydown.pagedown')
479
- await wrapper.trigger('keyup.pagedown')
480
- expect($output.attributes('aria-valuemin')).toEqual('1')
481
- expect($output.attributes('aria-valuemax')).toEqual('100')
482
- // Default jump is `4`
483
- expect($output.attributes('aria-valuenow')).toEqual('5')
484
- expect($output.attributes('aria-valuetext')).toEqual('5')
485
-
486
- wrapper.destroy()
487
- })
488
-
489
- it('auto repeat works', async () => {
490
- jest.useFakeTimers()
491
- const wrapper = mount(BFormSpinbutton, {
492
- attachTo: document.body,
493
- propsData: {
494
- min: 1,
495
- max: 100,
496
- step: 1,
497
- value: 1
498
- }
499
- })
500
- expect(wrapper.vm).toBeDefined()
501
- await waitNT(wrapper.vm)
502
- await waitRAF()
503
-
504
- const $output = wrapper.find('output')
505
- expect($output.exists()).toBe(true)
506
- expect($output.attributes('role')).toEqual('spinbutton')
507
- expect($output.attributes('tabindex')).toEqual('0')
508
- expect($output.attributes('aria-live')).toEqual('off')
509
- expect($output.attributes('aria-valuemin')).toEqual('1')
510
- expect($output.attributes('aria-valuemax')).toEqual('100')
511
- expect($output.attributes('aria-valuenow')).toEqual('1')
512
- expect($output.attributes('aria-valuetext')).toEqual('1')
513
-
514
- expect(wrapper.emitted('input')).toBeUndefined()
515
- expect(wrapper.emitted('change')).toBeUndefined()
516
-
517
- await wrapper.trigger('keydown.up')
518
- expect($output.attributes('aria-valuenow')).toEqual('2')
519
- expect($output.attributes('aria-valuetext')).toEqual('2')
520
- expect(wrapper.emitted('input')).toBeDefined()
521
- expect(wrapper.emitted('input').length).toBe(1)
522
- expect(wrapper.emitted('change')).toBeUndefined()
523
-
524
- // Advance past delay time
525
- jest.runOnlyPendingTimers()
526
- await waitNT(wrapper.vm)
527
- await waitRAF()
528
- // Now we have to wait for interval to happen
529
- expect($output.attributes('aria-valuenow')).toEqual('2')
530
- expect($output.attributes('aria-valuetext')).toEqual('2')
531
- expect(wrapper.emitted('input').length).toBe(1)
532
- expect(wrapper.emitted('change')).toBeUndefined()
533
-
534
- // Advance past interval time
535
- // Repeat #1
536
- jest.runOnlyPendingTimers()
537
- await waitNT(wrapper.vm)
538
- await waitRAF()
539
- expect($output.attributes('aria-valuenow')).toEqual('3')
540
- expect($output.attributes('aria-valuetext')).toEqual('3')
541
- expect(wrapper.emitted('input').length).toBe(2)
542
- expect(wrapper.emitted('change')).toBeUndefined()
543
-
544
- // Repeat #2
545
- jest.runOnlyPendingTimers()
546
- await waitNT(wrapper.vm)
547
- await waitRAF()
548
- expect($output.attributes('aria-valuenow')).toEqual('4')
549
- expect($output.attributes('aria-valuetext')).toEqual('4')
550
- expect(wrapper.emitted('input').length).toBe(3)
551
- expect(wrapper.emitted('change')).toBeUndefined()
552
-
553
- // Repeat #3
554
- jest.runOnlyPendingTimers()
555
- await waitNT(wrapper.vm)
556
- await waitRAF()
557
- expect($output.attributes('aria-valuenow')).toEqual('5')
558
- expect($output.attributes('aria-valuetext')).toEqual('5')
559
- expect(wrapper.emitted('input').length).toBe(4)
560
- expect(wrapper.emitted('change')).toBeUndefined()
561
-
562
- // Repeat #4
563
- jest.runOnlyPendingTimers()
564
- await waitNT(wrapper.vm)
565
- await waitRAF()
566
- expect($output.attributes('aria-valuenow')).toEqual('6')
567
- expect($output.attributes('aria-valuetext')).toEqual('6')
568
- expect(wrapper.emitted('input').length).toBe(5)
569
- expect(wrapper.emitted('change')).toBeUndefined()
570
-
571
- // Repeat #5
572
- jest.runOnlyPendingTimers()
573
- await waitNT(wrapper.vm)
574
- await waitRAF()
575
- expect($output.attributes('aria-valuenow')).toEqual('7')
576
- expect($output.attributes('aria-valuetext')).toEqual('7')
577
- expect(wrapper.emitted('input').length).toBe(6)
578
- expect(wrapper.emitted('change')).toBeUndefined()
579
-
580
- // Repeat #6
581
- jest.runOnlyPendingTimers()
582
- await waitNT(wrapper.vm)
583
- await waitRAF()
584
- expect($output.attributes('aria-valuenow')).toEqual('8')
585
- expect($output.attributes('aria-valuetext')).toEqual('8')
586
- expect(wrapper.emitted('input').length).toBe(7)
587
- expect(wrapper.emitted('change')).toBeUndefined()
588
-
589
- // Repeat #7
590
- jest.runOnlyPendingTimers()
591
- await waitNT(wrapper.vm)
592
- await waitRAF()
593
- expect($output.attributes('aria-valuenow')).toEqual('9')
594
- expect($output.attributes('aria-valuetext')).toEqual('9')
595
- expect(wrapper.emitted('input').length).toBe(8)
596
- expect(wrapper.emitted('change')).toBeUndefined()
597
-
598
- // Repeat #8
599
- jest.runOnlyPendingTimers()
600
- await waitNT(wrapper.vm)
601
- await waitRAF()
602
- expect($output.attributes('aria-valuenow')).toEqual('10')
603
- expect($output.attributes('aria-valuetext')).toEqual('10')
604
- expect(wrapper.emitted('input').length).toBe(9)
605
- expect(wrapper.emitted('change')).toBeUndefined()
606
-
607
- // Repeat #9
608
- jest.runOnlyPendingTimers()
609
- await waitNT(wrapper.vm)
610
- await waitRAF()
611
- expect($output.attributes('aria-valuenow')).toEqual('11')
612
- expect($output.attributes('aria-valuetext')).toEqual('11')
613
- expect(wrapper.emitted('input').length).toBe(10)
614
- expect(wrapper.emitted('change')).toBeUndefined()
615
-
616
- // Repeat #10
617
- jest.runOnlyPendingTimers()
618
- await waitNT(wrapper.vm)
619
- await waitRAF()
620
- expect($output.attributes('aria-valuenow')).toEqual('12')
621
- expect($output.attributes('aria-valuetext')).toEqual('12')
622
- expect(wrapper.emitted('input').length).toBe(11)
623
- expect(wrapper.emitted('change')).toBeUndefined()
624
-
625
- // Repeat #11 - Multiplier kicks in
626
- jest.runOnlyPendingTimers()
627
- await waitNT(wrapper.vm)
628
- await waitRAF()
629
- // Note even though step is `4`, it jumps to `17` (not `16`) as it rounds to the
630
- // nearest multiple of step (relative to the min value, which is `1` in this test)
631
- // If min was set to `0`, then this would have been `16`
632
- expect($output.attributes('aria-valuenow')).toEqual('17')
633
- expect($output.attributes('aria-valuetext')).toEqual('17')
634
- expect(wrapper.emitted('input').length).toBe(12)
635
- expect(wrapper.emitted('change')).toBeUndefined()
636
-
637
- // Repeat #12
638
- jest.runOnlyPendingTimers()
639
- await waitNT(wrapper.vm)
640
- await waitRAF()
641
- expect($output.attributes('aria-valuenow')).toEqual('21')
642
- expect($output.attributes('aria-valuetext')).toEqual('21')
643
- expect(wrapper.emitted('input').length).toBe(13)
644
- expect(wrapper.emitted('change')).toBeUndefined()
645
-
646
- // Un-press key
647
- await wrapper.trigger('keyup.up')
648
- expect($output.attributes('aria-valuenow')).toEqual('21')
649
- expect($output.attributes('aria-valuetext')).toEqual('21')
650
- expect(wrapper.emitted('input').length).toBe(13)
651
- expect(wrapper.emitted('change')).toBeDefined()
652
- expect(wrapper.emitted('change').length).toBe(1)
653
-
654
- wrapper.destroy()
655
- })
656
-
657
- it('focus and blur handling works', async () => {
658
- const wrapper = mount(BFormSpinbutton, {
659
- attachTo: document.body
660
- })
661
- expect(wrapper.vm).toBeDefined()
662
- await waitNT(wrapper.vm)
663
- await waitRAF()
664
-
665
- expect(wrapper.classes()).toContain('b-form-spinbutton')
666
- expect(wrapper.classes()).toContain('form-control')
667
- expect(wrapper.classes()).toContain('d-flex')
668
- expect(wrapper.classes()).toContain('align-items-stretch')
669
- expect(wrapper.classes()).not.toContain('d-inline-flex')
670
- expect(wrapper.classes()).not.toContain('flex-column')
671
- expect(wrapper.classes()).not.toContain('focus')
672
- expect(wrapper.attributes('role')).toEqual('group')
673
- expect(wrapper.attributes('tabindex')).toEqual('-1')
674
-
675
- const $output = wrapper.find('output')
676
- expect($output.exists()).toBe(true)
677
- expect($output.attributes('role')).toEqual('spinbutton')
678
- expect($output.attributes('tabindex')).toEqual('0')
679
- expect($output.attributes('aria-live')).toEqual('off')
680
- expect($output.attributes('aria-valuemin')).toEqual('1')
681
- expect($output.attributes('aria-valuemax')).toEqual('100')
682
- // These two attribute should not exist on the element
683
- expect($output.element.hasAttribute('aria-valuenow')).toBe(false)
684
- expect($output.element.hasAttribute('aria-valuetext')).toBe(false)
685
-
686
- expect(document.activeElement).not.toBe($output.element)
687
-
688
- $output.element.focus()
689
- await waitNT(wrapper.vm)
690
- expect(wrapper.classes()).toContain('focus')
691
- expect(document.activeElement).toBe($output.element)
692
-
693
- $output.element.blur()
694
- await waitNT(wrapper.vm)
695
- expect(wrapper.classes()).not.toContain('focus')
696
- expect(document.activeElement).not.toBe($output.element)
697
-
698
- wrapper.vm.focus()
699
- await waitNT(wrapper.vm)
700
- expect(wrapper.classes()).toContain('focus')
701
- expect(document.activeElement).toBe($output.element)
702
-
703
- wrapper.vm.blur()
704
- await waitNT(wrapper.vm)
705
- expect(wrapper.classes()).not.toContain('focus')
706
- expect(document.activeElement).not.toBe($output.element)
707
-
708
- await wrapper.setProps({
709
- disabled: true
710
- })
711
- await waitNT(wrapper.vm)
712
-
713
- wrapper.vm.focus()
714
- await waitNT(wrapper.vm)
715
- expect(wrapper.classes()).not.toContain('focus')
716
- expect(document.activeElement).not.toBe($output.element)
717
-
718
- try {
719
- $output.element.focus()
720
- } catch {}
721
- await waitNT(wrapper.vm)
722
- expect(wrapper.classes()).not.toContain('focus')
723
- expect(document.activeElement).not.toBe($output.element)
724
-
725
- await $output.trigger('focus')
726
- expect(wrapper.classes()).not.toContain('focus')
727
- expect(document.activeElement).not.toBe($output.element)
728
-
729
- wrapper.destroy()
730
- })
731
- })