@gitlab/ui 92.2.0 → 92.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/bin/migrate_custom_utils_to_tw.bundled.mjs +11 -3
  3. package/dist/index.css +4 -2
  4. package/dist/index.css.map +1 -1
  5. package/dist/tailwind.css +1 -1
  6. package/dist/tailwind.css.map +1 -1
  7. package/dist/vendor/bootstrap-vue/src/components/form/index.js +0 -4
  8. package/dist/vendor/bootstrap-vue/src/components/index.js +0 -48
  9. package/dist/vendor/bootstrap-vue/src/components/layout/index.js +0 -6
  10. package/dist/vendor/bootstrap-vue/src/components/nav/index.js +0 -6
  11. package/dist/vendor/bootstrap-vue/src/components/navbar/index.js +1 -8
  12. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +2 -6
  13. package/dist/vendor/bootstrap-vue/src/constants/classes.js +1 -2
  14. package/dist/vendor/bootstrap-vue/src/constants/components.js +1 -51
  15. package/dist/vendor/bootstrap-vue/src/constants/events.js +1 -12
  16. package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +1 -5
  17. package/dist/vendor/bootstrap-vue/src/constants/props.js +1 -4
  18. package/dist/vendor/bootstrap-vue/src/constants/regex.js +1 -20
  19. package/dist/vendor/bootstrap-vue/src/constants/slots.js +1 -33
  20. package/dist/vendor/bootstrap-vue/src/directives/toggle/toggle.js +1 -1
  21. package/dist/vendor/bootstrap-vue/src/index.js +0 -74
  22. package/dist/vendor/bootstrap-vue/src/utils/array.js +1 -3
  23. package/dist/vendor/bootstrap-vue/src/utils/inspect.js +1 -3
  24. package/dist/vendor/bootstrap-vue/src/utils/math.js +1 -3
  25. package/dist/vendor/bootstrap-vue/src/utils/object.js +1 -6
  26. package/dist/vendor/bootstrap-vue/src/utils/props.js +2 -8
  27. package/dist/vendor/bootstrap-vue/src/utils/string.js +1 -10
  28. package/package.json +1 -1
  29. package/src/components/base/accordion/accordion_item.scss +3 -3
  30. package/src/components/base/alert/alert.scss +3 -3
  31. package/src/components/base/avatar_labeled/avatar_labeled.scss +2 -2
  32. package/src/components/base/avatars_inline/avatars_inline.scss +1 -1
  33. package/src/components/base/badge/badge.scss +2 -2
  34. package/src/components/base/banner/banner.scss +2 -2
  35. package/src/components/base/breadcrumb/breadcrumb.scss +3 -3
  36. package/src/components/base/broadcast_message/broadcast_message.scss +3 -3
  37. package/src/components/base/button/button.scss +14 -14
  38. package/src/components/base/card/card.scss +1 -1
  39. package/src/components/base/datepicker/datepicker.scss +10 -10
  40. package/src/components/base/drawer/drawer.scss +5 -5
  41. package/src/components/base/dropdown/dropdown.scss +28 -28
  42. package/src/components/base/dropdown/dropdown_divider.scss +3 -3
  43. package/src/components/base/dropdown/dropdown_item.scss +9 -9
  44. package/src/components/base/dropdown/dropdown_section_header.scss +2 -2
  45. package/src/components/base/dropdown/dropdown_text.scss +1 -1
  46. package/src/components/base/filtered_search/filtered_search.scss +7 -7
  47. package/src/components/base/filtered_search/filtered_search_suggestion.scss +1 -1
  48. package/src/components/base/filtered_search/filtered_search_suggestion_list.scss +3 -3
  49. package/src/components/base/filtered_search/filtered_search_term.scss +2 -2
  50. package/src/components/base/filtered_search/filtered_search_token.scss +4 -4
  51. package/src/components/base/filtered_search/filtered_search_token_segment.scss +2 -2
  52. package/src/components/base/form/form_checkbox/form_checkbox.scss +10 -10
  53. package/src/components/base/form/form_group/form_group.scss +5 -5
  54. package/src/components/base/form/form_input/form_input.scss +2 -2
  55. package/src/components/base/form/form_select/form_select.scss +2 -2
  56. package/src/components/base/keyset_pagination/keyset_pagination.scss +1 -1
  57. package/src/components/base/label/label.scss +1 -1
  58. package/src/components/base/loading_icon/loading_icon.scss +1 -1
  59. package/src/components/base/markdown/markdown.scss +33 -33
  60. package/src/components/base/modal/modal.scss +11 -11
  61. package/src/components/base/new_dropdowns/dropdown.scss +14 -14
  62. package/src/components/base/new_dropdowns/dropdown_item.scss +9 -9
  63. package/src/components/base/new_dropdowns/listbox/listbox.scss +1 -1
  64. package/src/components/base/pagination/pagination.scss +3 -3
  65. package/src/components/base/path/path.scss +5 -5
  66. package/src/components/base/popover/popover.scss +5 -5
  67. package/src/components/base/search_box_by_click/search_box_by_click.scss +2 -2
  68. package/src/components/base/search_box_by_type/search_box_by_type.scss +4 -4
  69. package/src/components/base/table/table.scss +4 -4
  70. package/src/components/base/tabs/tabs/tabs.scss +10 -10
  71. package/src/components/base/toast/toast.scss +7 -7
  72. package/src/components/base/toggle/toggle.scss +6 -6
  73. package/src/components/base/token/token.scss +5 -5
  74. package/src/components/base/tooltip/tooltip.scss +3 -3
  75. package/src/components/charts/legend/legend.scss +4 -4
  76. package/src/components/charts/series_label/series_label.scss +1 -1
  77. package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.scss +1 -1
  78. package/src/components/experimental/duo/chat/duo_chat.scss +4 -4
  79. package/src/components/shared_components/charts/tooltip_default_format.scss +1 -1
  80. package/src/scss/bootstrap_vue.scss +0 -18
  81. package/src/scss/typescale/_index.scss +9 -9
  82. package/src/vendor/bootstrap-vue/nuxt/index.js +0 -8
  83. package/src/vendor/bootstrap-vue/src/_utilities.scss +0 -9
  84. package/src/vendor/bootstrap-vue/src/_variables.scss +0 -52
  85. package/src/vendor/bootstrap-vue/src/components/form/index.d.ts +0 -3
  86. package/src/vendor/bootstrap-vue/src/components/form/index.js +1 -4
  87. package/src/vendor/bootstrap-vue/src/components/form/package.json +0 -12
  88. package/src/vendor/bootstrap-vue/src/components/index.d.ts +0 -24
  89. package/src/vendor/bootstrap-vue/src/components/index.js +0 -48
  90. package/src/vendor/bootstrap-vue/src/components/index.scss +0 -15
  91. package/src/vendor/bootstrap-vue/src/components/layout/index.d.ts +0 -6
  92. package/src/vendor/bootstrap-vue/src/components/layout/index.js +1 -5
  93. package/src/vendor/bootstrap-vue/src/components/layout/package.json +0 -67
  94. package/src/vendor/bootstrap-vue/src/components/modal/README.md +0 -1
  95. package/src/vendor/bootstrap-vue/src/components/nav/index.d.ts +0 -6
  96. package/src/vendor/bootstrap-vue/src/components/nav/index.js +1 -5
  97. package/src/vendor/bootstrap-vue/src/components/nav/package.json +0 -45
  98. package/src/vendor/bootstrap-vue/src/components/navbar/README.md +0 -5
  99. package/src/vendor/bootstrap-vue/src/components/navbar/index.d.ts +1 -7
  100. package/src/vendor/bootstrap-vue/src/components/navbar/index.js +2 -7
  101. package/src/vendor/bootstrap-vue/src/components/navbar/package.json +0 -75
  102. package/src/vendor/bootstrap-vue/src/components/table/README.md +1 -2
  103. package/src/vendor/bootstrap-vue/src/components/tabs/README.md +2 -2
  104. package/src/vendor/bootstrap-vue/src/components/toast/README.md +1 -3
  105. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +2 -6
  106. package/src/vendor/bootstrap-vue/src/constants/classes.js +0 -1
  107. package/src/vendor/bootstrap-vue/src/constants/components.js +0 -50
  108. package/src/vendor/bootstrap-vue/src/constants/events.js +0 -11
  109. package/src/vendor/bootstrap-vue/src/constants/key-codes.js +0 -4
  110. package/src/vendor/bootstrap-vue/src/constants/props.js +0 -3
  111. package/src/vendor/bootstrap-vue/src/constants/regex.js +0 -19
  112. package/src/vendor/bootstrap-vue/src/constants/slots.js +0 -32
  113. package/src/vendor/bootstrap-vue/src/directives/toggle/README.md +5 -23
  114. package/src/vendor/bootstrap-vue/src/directives/toggle/package.json +1 -1
  115. package/src/vendor/bootstrap-vue/src/directives/toggle/toggle.js +1 -1
  116. package/src/vendor/bootstrap-vue/src/index.js +0 -122
  117. package/src/vendor/bootstrap-vue/src/index.scss +0 -3
  118. package/src/vendor/bootstrap-vue/src/utils/array.js +0 -5
  119. package/src/vendor/bootstrap-vue/src/utils/config.spec.js +15 -15
  120. package/src/vendor/bootstrap-vue/src/utils/inspect.js +0 -4
  121. package/src/vendor/bootstrap-vue/src/utils/math.js +0 -4
  122. package/src/vendor/bootstrap-vue/src/utils/object.js +0 -5
  123. package/src/vendor/bootstrap-vue/src/utils/props.js +1 -7
  124. package/src/vendor/bootstrap-vue/src/utils/string.js +0 -9
  125. package/src/vendor/bootstrap-vue/src/utils/string.spec.js +1 -20
  126. package/dist/vendor/bootstrap-vue/src/components/alert/alert.js +0 -179
  127. package/dist/vendor/bootstrap-vue/src/components/alert/index.js +0 -11
  128. package/dist/vendor/bootstrap-vue/src/components/aspect/aspect.js +0 -67
  129. package/dist/vendor/bootstrap-vue/src/components/aspect/index.js +0 -11
  130. package/dist/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +0 -67
  131. package/dist/vendor/bootstrap-vue/src/components/avatar/avatar.js +0 -266
  132. package/dist/vendor/bootstrap-vue/src/components/avatar/index.js +0 -14
  133. package/dist/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +0 -112
  134. package/dist/vendor/bootstrap-vue/src/components/button-toolbar/index.js +0 -12
  135. package/dist/vendor/bootstrap-vue/src/components/calendar/calendar.js +0 -1010
  136. package/dist/vendor/bootstrap-vue/src/components/calendar/index.js +0 -11
  137. package/dist/vendor/bootstrap-vue/src/components/card/card-body.js +0 -63
  138. package/dist/vendor/bootstrap-vue/src/components/card/card-footer.js +0 -48
  139. package/dist/vendor/bootstrap-vue/src/components/card/card-group.js +0 -33
  140. package/dist/vendor/bootstrap-vue/src/components/card/card-header.js +0 -48
  141. package/dist/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +0 -46
  142. package/dist/vendor/bootstrap-vue/src/components/card/card-img.js +0 -58
  143. package/dist/vendor/bootstrap-vue/src/components/card/card-sub-title.js +0 -35
  144. package/dist/vendor/bootstrap-vue/src/components/card/card-text.js +0 -31
  145. package/dist/vendor/bootstrap-vue/src/components/card/card-title.js +0 -33
  146. package/dist/vendor/bootstrap-vue/src/components/card/card.js +0 -123
  147. package/dist/vendor/bootstrap-vue/src/components/card/index.js +0 -38
  148. package/dist/vendor/bootstrap-vue/src/components/embed/embed.js +0 -50
  149. package/dist/vendor/bootstrap-vue/src/components/embed/index.js +0 -11
  150. package/dist/vendor/bootstrap-vue/src/components/form/form-datalist.js +0 -52
  151. package/dist/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +0 -261
  152. package/dist/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +0 -310
  153. package/dist/vendor/bootstrap-vue/src/components/form-datepicker/index.js +0 -12
  154. package/dist/vendor/bootstrap-vue/src/components/form-file/form-file.js +0 -561
  155. package/dist/vendor/bootstrap-vue/src/components/form-file/index.js +0 -12
  156. package/dist/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +0 -402
  157. package/dist/vendor/bootstrap-vue/src/components/form-rating/index.js +0 -12
  158. package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +0 -555
  159. package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +0 -12
  160. package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +0 -97
  161. package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +0 -806
  162. package/dist/vendor/bootstrap-vue/src/components/form-tags/index.js +0 -16
  163. package/dist/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +0 -281
  164. package/dist/vendor/bootstrap-vue/src/components/form-timepicker/index.js +0 -12
  165. package/dist/vendor/bootstrap-vue/src/components/image/img-lazy.js +0 -157
  166. package/dist/vendor/bootstrap-vue/src/components/image/img.js +0 -124
  167. package/dist/vendor/bootstrap-vue/src/components/image/index.js +0 -14
  168. package/dist/vendor/bootstrap-vue/src/components/jumbotron/index.js +0 -11
  169. package/dist/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +0 -98
  170. package/dist/vendor/bootstrap-vue/src/components/layout/container.js +0 -41
  171. package/dist/vendor/bootstrap-vue/src/components/layout/row.js +0 -113
  172. package/dist/vendor/bootstrap-vue/src/components/list-group/index.js +0 -14
  173. package/dist/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +0 -78
  174. package/dist/vendor/bootstrap-vue/src/components/list-group/list-group.js +0 -42
  175. package/dist/vendor/bootstrap-vue/src/components/media/index.js +0 -17
  176. package/dist/vendor/bootstrap-vue/src/components/media/media-aside.js +0 -41
  177. package/dist/vendor/bootstrap-vue/src/components/media/media-body.js +0 -31
  178. package/dist/vendor/bootstrap-vue/src/components/media/media.js +0 -61
  179. package/dist/vendor/bootstrap-vue/src/components/nav/nav-form.js +0 -45
  180. package/dist/vendor/bootstrap-vue/src/components/nav/nav-text.js +0 -26
  181. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +0 -46
  182. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +0 -89
  183. package/dist/vendor/bootstrap-vue/src/components/overlay/index.js +0 -11
  184. package/dist/vendor/bootstrap-vue/src/components/overlay/overlay.js +0 -163
  185. package/dist/vendor/bootstrap-vue/src/components/pagination/index.js +0 -11
  186. package/dist/vendor/bootstrap-vue/src/components/pagination/pagination.js +0 -135
  187. package/dist/vendor/bootstrap-vue/src/components/pagination-nav/index.js +0 -11
  188. package/dist/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +0 -299
  189. package/dist/vendor/bootstrap-vue/src/components/sidebar/index.js +0 -15
  190. package/dist/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +0 -432
  191. package/dist/vendor/bootstrap-vue/src/components/skeleton/index.js +0 -23
  192. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +0 -47
  193. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +0 -60
  194. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +0 -64
  195. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +0 -46
  196. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +0 -49
  197. package/dist/vendor/bootstrap-vue/src/components/spinner/index.js +0 -11
  198. package/dist/vendor/bootstrap-vue/src/components/spinner/spinner.js +0 -55
  199. package/dist/vendor/bootstrap-vue/src/components/time/index.js +0 -11
  200. package/dist/vendor/bootstrap-vue/src/components/time/time.js +0 -600
  201. package/dist/vendor/bootstrap-vue/src/constants/date.js +0 -8
  202. package/dist/vendor/bootstrap-vue/src/mixins/card.js +0 -22
  203. package/dist/vendor/bootstrap-vue/src/mixins/pagination.js +0 -598
  204. package/dist/vendor/bootstrap-vue/src/utils/date.js +0 -135
  205. package/src/vendor/bootstrap-vue/src/_custom-controls.scss +0 -30
  206. package/src/vendor/bootstrap-vue/src/components/alert/README.md +0 -280
  207. package/src/vendor/bootstrap-vue/src/components/alert/alert.js +0 -185
  208. package/src/vendor/bootstrap-vue/src/components/alert/alert.spec.js +0 -442
  209. package/src/vendor/bootstrap-vue/src/components/alert/index.d.ts +0 -13
  210. package/src/vendor/bootstrap-vue/src/components/alert/index.js +0 -8
  211. package/src/vendor/bootstrap-vue/src/components/alert/package.json +0 -72
  212. package/src/vendor/bootstrap-vue/src/components/aspect/README.md +0 -65
  213. package/src/vendor/bootstrap-vue/src/components/aspect/aspect.js +0 -65
  214. package/src/vendor/bootstrap-vue/src/components/aspect/aspect.spec.js +0 -121
  215. package/src/vendor/bootstrap-vue/src/components/aspect/index.d.ts +0 -11
  216. package/src/vendor/bootstrap-vue/src/components/aspect/index.js +0 -8
  217. package/src/vendor/bootstrap-vue/src/components/aspect/package.json +0 -26
  218. package/src/vendor/bootstrap-vue/src/components/avatar/README.md +0 -567
  219. package/src/vendor/bootstrap-vue/src/components/avatar/_avatar.scss +0 -148
  220. package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +0 -75
  221. package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.spec.js +0 -74
  222. package/src/vendor/bootstrap-vue/src/components/avatar/avatar.js +0 -228
  223. package/src/vendor/bootstrap-vue/src/components/avatar/avatar.spec.js +0 -355
  224. package/src/vendor/bootstrap-vue/src/components/avatar/index.d.ts +0 -14
  225. package/src/vendor/bootstrap-vue/src/components/avatar/index.js +0 -9
  226. package/src/vendor/bootstrap-vue/src/components/avatar/index.scss +0 -1
  227. package/src/vendor/bootstrap-vue/src/components/avatar/package.json +0 -149
  228. package/src/vendor/bootstrap-vue/src/components/button-toolbar/README.md +0 -109
  229. package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +0 -117
  230. package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.spec.js +0 -185
  231. package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.d.ts +0 -11
  232. package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.js +0 -11
  233. package/src/vendor/bootstrap-vue/src/components/button-toolbar/package.json +0 -32
  234. package/src/vendor/bootstrap-vue/src/components/calendar/README.md +0 -735
  235. package/src/vendor/bootstrap-vue/src/components/calendar/_calendar.scss +0 -78
  236. package/src/vendor/bootstrap-vue/src/components/calendar/calendar.js +0 -1146
  237. package/src/vendor/bootstrap-vue/src/components/calendar/calendar.spec.js +0 -466
  238. package/src/vendor/bootstrap-vue/src/components/calendar/index.d.ts +0 -28
  239. package/src/vendor/bootstrap-vue/src/components/calendar/index.js +0 -8
  240. package/src/vendor/bootstrap-vue/src/components/calendar/index.scss +0 -1
  241. package/src/vendor/bootstrap-vue/src/components/calendar/package.json +0 -317
  242. package/src/vendor/bootstrap-vue/src/components/card/README.md +0 -729
  243. package/src/vendor/bootstrap-vue/src/components/card/_card-img.scss +0 -7
  244. package/src/vendor/bootstrap-vue/src/components/card/card-body.js +0 -69
  245. package/src/vendor/bootstrap-vue/src/components/card/card-body.spec.js +0 -142
  246. package/src/vendor/bootstrap-vue/src/components/card/card-footer.js +0 -48
  247. package/src/vendor/bootstrap-vue/src/components/card/card-footer.spec.js +0 -98
  248. package/src/vendor/bootstrap-vue/src/components/card/card-group.js +0 -33
  249. package/src/vendor/bootstrap-vue/src/components/card/card-group.spec.js +0 -75
  250. package/src/vendor/bootstrap-vue/src/components/card/card-header.js +0 -48
  251. package/src/vendor/bootstrap-vue/src/components/card/card-header.spec.js +0 -98
  252. package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +0 -47
  253. package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.spec.js +0 -204
  254. package/src/vendor/bootstrap-vue/src/components/card/card-img.js +0 -50
  255. package/src/vendor/bootstrap-vue/src/components/card/card-img.spec.js +0 -208
  256. package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.js +0 -35
  257. package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.spec.js +0 -60
  258. package/src/vendor/bootstrap-vue/src/components/card/card-text.js +0 -25
  259. package/src/vendor/bootstrap-vue/src/components/card/card-text.spec.js +0 -48
  260. package/src/vendor/bootstrap-vue/src/components/card/card-title.js +0 -33
  261. package/src/vendor/bootstrap-vue/src/components/card/card-title.spec.js +0 -45
  262. package/src/vendor/bootstrap-vue/src/components/card/card.js +0 -140
  263. package/src/vendor/bootstrap-vue/src/components/card/card.spec.js +0 -296
  264. package/src/vendor/bootstrap-vue/src/components/card/index.d.ts +0 -38
  265. package/src/vendor/bootstrap-vue/src/components/card/index.js +0 -40
  266. package/src/vendor/bootstrap-vue/src/components/card/index.scss +0 -1
  267. package/src/vendor/bootstrap-vue/src/components/card/package.json +0 -262
  268. package/src/vendor/bootstrap-vue/src/components/embed/README.md +0 -63
  269. package/src/vendor/bootstrap-vue/src/components/embed/embed.js +0 -51
  270. package/src/vendor/bootstrap-vue/src/components/embed/embed.spec.js +0 -110
  271. package/src/vendor/bootstrap-vue/src/components/embed/index.d.ts +0 -11
  272. package/src/vendor/bootstrap-vue/src/components/embed/index.js +0 -8
  273. package/src/vendor/bootstrap-vue/src/components/embed/package.json +0 -29
  274. package/src/vendor/bootstrap-vue/src/components/form/form-datalist.js +0 -42
  275. package/src/vendor/bootstrap-vue/src/components/form/form-datalist.spec.js +0 -57
  276. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/_form-btn-label-control.scss +0 -125
  277. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +0 -278
  278. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/index.scss +0 -1
  279. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/package.json +0 -5
  280. package/src/vendor/bootstrap-vue/src/components/form-datepicker/README.md +0 -694
  281. package/src/vendor/bootstrap-vue/src/components/form-datepicker/_form-datepicker.scss +0 -1
  282. package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +0 -342
  283. package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.spec.js +0 -562
  284. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.d.ts +0 -12
  285. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.js +0 -11
  286. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.scss +0 -1
  287. package/src/vendor/bootstrap-vue/src/components/form-datepicker/package.json +0 -420
  288. package/src/vendor/bootstrap-vue/src/components/form-file/README.md +0 -357
  289. package/src/vendor/bootstrap-vue/src/components/form-file/_form-file.scss +0 -61
  290. package/src/vendor/bootstrap-vue/src/components/form-file/form-file.js +0 -575
  291. package/src/vendor/bootstrap-vue/src/components/form-file/form-file.spec.js +0 -885
  292. package/src/vendor/bootstrap-vue/src/components/form-file/index.d.ts +0 -13
  293. package/src/vendor/bootstrap-vue/src/components/form-file/index.js +0 -11
  294. package/src/vendor/bootstrap-vue/src/components/form-file/index.scss +0 -1
  295. package/src/vendor/bootstrap-vue/src/components/form-file/package.json +0 -131
  296. package/src/vendor/bootstrap-vue/src/components/form-rating/README.md +0 -526
  297. package/src/vendor/bootstrap-vue/src/components/form-rating/_form-rating.scss +0 -57
  298. package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +0 -411
  299. package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.spec.js +0 -544
  300. package/src/vendor/bootstrap-vue/src/components/form-rating/index.d.ts +0 -14
  301. package/src/vendor/bootstrap-vue/src/components/form-rating/index.js +0 -8
  302. package/src/vendor/bootstrap-vue/src/components/form-rating/index.scss +0 -1
  303. package/src/vendor/bootstrap-vue/src/components/form-rating/package.json +0 -166
  304. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/README.md +0 -411
  305. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/_spinbutton.scss +0 -76
  306. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +0 -572
  307. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.spec.js +0 -731
  308. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.d.ts +0 -12
  309. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +0 -11
  310. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.scss +0 -1
  311. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/package.json +0 -150
  312. package/src/vendor/bootstrap-vue/src/components/form-tags/README.md +0 -880
  313. package/src/vendor/bootstrap-vue/src/components/form-tags/_form-tags.scss +0 -70
  314. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +0 -94
  315. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.spec.js +0 -166
  316. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +0 -891
  317. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.spec.js +0 -920
  318. package/src/vendor/bootstrap-vue/src/components/form-tags/index.d.ts +0 -16
  319. package/src/vendor/bootstrap-vue/src/components/form-tags/index.js +0 -14
  320. package/src/vendor/bootstrap-vue/src/components/form-tags/index.scss +0 -1
  321. package/src/vendor/bootstrap-vue/src/components/form-tags/package.json +0 -440
  322. package/src/vendor/bootstrap-vue/src/components/form-timepicker/README.md +0 -450
  323. package/src/vendor/bootstrap-vue/src/components/form-timepicker/_form-timepicker.scss +0 -1
  324. package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +0 -308
  325. package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.spec.js +0 -440
  326. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.d.ts +0 -12
  327. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.js +0 -11
  328. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.scss +0 -1
  329. package/src/vendor/bootstrap-vue/src/components/form-timepicker/package.json +0 -255
  330. package/src/vendor/bootstrap-vue/src/components/image/README.md +0 -322
  331. package/src/vendor/bootstrap-vue/src/components/image/img-lazy.js +0 -161
  332. package/src/vendor/bootstrap-vue/src/components/image/img-lazy.spec.js +0 -96
  333. package/src/vendor/bootstrap-vue/src/components/image/img.js +0 -139
  334. package/src/vendor/bootstrap-vue/src/components/image/img.spec.js +0 -255
  335. package/src/vendor/bootstrap-vue/src/components/image/index.d.ts +0 -14
  336. package/src/vendor/bootstrap-vue/src/components/image/index.js +0 -12
  337. package/src/vendor/bootstrap-vue/src/components/image/package.json +0 -152
  338. package/src/vendor/bootstrap-vue/src/components/jumbotron/README.md +0 -109
  339. package/src/vendor/bootstrap-vue/src/components/jumbotron/index.d.ts +0 -11
  340. package/src/vendor/bootstrap-vue/src/components/jumbotron/index.js +0 -8
  341. package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +0 -103
  342. package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.spec.js +0 -254
  343. package/src/vendor/bootstrap-vue/src/components/jumbotron/package.json +0 -66
  344. package/src/vendor/bootstrap-vue/src/components/layout/container.js +0 -40
  345. package/src/vendor/bootstrap-vue/src/components/layout/container.spec.js +0 -75
  346. package/src/vendor/bootstrap-vue/src/components/layout/row.js +0 -111
  347. package/src/vendor/bootstrap-vue/src/components/layout/row.spec.js +0 -138
  348. package/src/vendor/bootstrap-vue/src/components/list-group/README.md +0 -291
  349. package/src/vendor/bootstrap-vue/src/components/list-group/index.d.ts +0 -14
  350. package/src/vendor/bootstrap-vue/src/components/list-group/index.js +0 -12
  351. package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +0 -76
  352. package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.spec.js +0 -286
  353. package/src/vendor/bootstrap-vue/src/components/list-group/list-group.js +0 -42
  354. package/src/vendor/bootstrap-vue/src/components/list-group/list-group.spec.js +0 -132
  355. package/src/vendor/bootstrap-vue/src/components/list-group/package.json +0 -52
  356. package/src/vendor/bootstrap-vue/src/components/media/README.md +0 -183
  357. package/src/vendor/bootstrap-vue/src/components/media/_media.scss +0 -9
  358. package/src/vendor/bootstrap-vue/src/components/media/index.d.ts +0 -17
  359. package/src/vendor/bootstrap-vue/src/components/media/index.js +0 -14
  360. package/src/vendor/bootstrap-vue/src/components/media/index.scss +0 -1
  361. package/src/vendor/bootstrap-vue/src/components/media/media-aside.js +0 -45
  362. package/src/vendor/bootstrap-vue/src/components/media/media-aside.spec.js +0 -79
  363. package/src/vendor/bootstrap-vue/src/components/media/media-body.js +0 -25
  364. package/src/vendor/bootstrap-vue/src/components/media/media-body.spec.js +0 -47
  365. package/src/vendor/bootstrap-vue/src/components/media/media.js +0 -52
  366. package/src/vendor/bootstrap-vue/src/components/media/media.spec.js +0 -149
  367. package/src/vendor/bootstrap-vue/src/components/media/package.json +0 -65
  368. package/src/vendor/bootstrap-vue/src/components/nav/nav-form.js +0 -50
  369. package/src/vendor/bootstrap-vue/src/components/nav/nav-form.spec.js +0 -93
  370. package/src/vendor/bootstrap-vue/src/components/nav/nav-text.js +0 -18
  371. package/src/vendor/bootstrap-vue/src/components/nav/nav-text.spec.js +0 -30
  372. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +0 -45
  373. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.spec.js +0 -105
  374. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +0 -84
  375. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.spec.js +0 -189
  376. package/src/vendor/bootstrap-vue/src/components/overlay/README.md +0 -815
  377. package/src/vendor/bootstrap-vue/src/components/overlay/index.d.ts +0 -11
  378. package/src/vendor/bootstrap-vue/src/components/overlay/index.js +0 -8
  379. package/src/vendor/bootstrap-vue/src/components/overlay/overlay.js +0 -162
  380. package/src/vendor/bootstrap-vue/src/components/overlay/overlay.spec.js +0 -257
  381. package/src/vendor/bootstrap-vue/src/components/overlay/package.json +0 -130
  382. package/src/vendor/bootstrap-vue/src/components/pagination/README.md +0 -430
  383. package/src/vendor/bootstrap-vue/src/components/pagination/_pagination.scss +0 -26
  384. package/src/vendor/bootstrap-vue/src/components/pagination/index.d.ts +0 -11
  385. package/src/vendor/bootstrap-vue/src/components/pagination/index.js +0 -8
  386. package/src/vendor/bootstrap-vue/src/components/pagination/index.scss +0 -1
  387. package/src/vendor/bootstrap-vue/src/components/pagination/package.json +0 -295
  388. package/src/vendor/bootstrap-vue/src/components/pagination/pagination.js +0 -138
  389. package/src/vendor/bootstrap-vue/src/components/pagination/pagination.spec.js +0 -1198
  390. package/src/vendor/bootstrap-vue/src/components/pagination-nav/README.md +0 -544
  391. package/src/vendor/bootstrap-vue/src/components/pagination-nav/_pagination-nav.scss +0 -2
  392. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.d.ts +0 -11
  393. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.js +0 -8
  394. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.scss +0 -1
  395. package/src/vendor/bootstrap-vue/src/components/pagination-nav/package.json +0 -315
  396. package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +0 -281
  397. package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.spec.js +0 -671
  398. package/src/vendor/bootstrap-vue/src/components/sidebar/README.md +0 -406
  399. package/src/vendor/bootstrap-vue/src/components/sidebar/_sidebar.scss +0 -97
  400. package/src/vendor/bootstrap-vue/src/components/sidebar/index.d.ts +0 -11
  401. package/src/vendor/bootstrap-vue/src/components/sidebar/index.js +0 -10
  402. package/src/vendor/bootstrap-vue/src/components/sidebar/index.scss +0 -1
  403. package/src/vendor/bootstrap-vue/src/components/sidebar/package.json +0 -239
  404. package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +0 -438
  405. package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.spec.js +0 -404
  406. package/src/vendor/bootstrap-vue/src/components/skeleton/README.md +0 -275
  407. package/src/vendor/bootstrap-vue/src/components/skeleton/_skeleton.scss +0 -141
  408. package/src/vendor/bootstrap-vue/src/components/skeleton/index.d.ts +0 -23
  409. package/src/vendor/bootstrap-vue/src/components/skeleton/index.js +0 -18
  410. package/src/vendor/bootstrap-vue/src/components/skeleton/index.scss +0 -1
  411. package/src/vendor/bootstrap-vue/src/components/skeleton/package.json +0 -136
  412. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +0 -45
  413. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.spec.js +0 -86
  414. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +0 -49
  415. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.spec.js +0 -139
  416. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +0 -58
  417. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.spec.js +0 -119
  418. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +0 -47
  419. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.spec.js +0 -48
  420. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +0 -46
  421. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.spec.js +0 -126
  422. package/src/vendor/bootstrap-vue/src/components/spinner/README.md +0 -229
  423. package/src/vendor/bootstrap-vue/src/components/spinner/index.d.ts +0 -11
  424. package/src/vendor/bootstrap-vue/src/components/spinner/index.js +0 -8
  425. package/src/vendor/bootstrap-vue/src/components/spinner/package.json +0 -38
  426. package/src/vendor/bootstrap-vue/src/components/spinner/spinner.js +0 -54
  427. package/src/vendor/bootstrap-vue/src/components/spinner/spinner.spec.js +0 -305
  428. package/src/vendor/bootstrap-vue/src/components/time/README.md +0 -431
  429. package/src/vendor/bootstrap-vue/src/components/time/_time.scss +0 -41
  430. package/src/vendor/bootstrap-vue/src/components/time/index.d.ts +0 -27
  431. package/src/vendor/bootstrap-vue/src/components/time/index.js +0 -8
  432. package/src/vendor/bootstrap-vue/src/components/time/index.scss +0 -1
  433. package/src/vendor/bootstrap-vue/src/components/time/package.json +0 -123
  434. package/src/vendor/bootstrap-vue/src/components/time/time.js +0 -601
  435. package/src/vendor/bootstrap-vue/src/components/time/time.spec.js +0 -330
  436. package/src/vendor/bootstrap-vue/src/constants/date.js +0 -7
  437. package/src/vendor/bootstrap-vue/src/mixins/card.js +0 -23
  438. package/src/vendor/bootstrap-vue/src/mixins/pagination.js +0 -670
  439. package/src/vendor/bootstrap-vue/src/utils/date.js +0 -130
  440. package/src/vendor/bootstrap-vue/src/utils/date.spec.js +0 -159
@@ -1,572 +0,0 @@
1
- import { extend } from '../../vue'
2
- import { NAME_FORM_SPINBUTTON } from '../../constants/components'
3
- import { EVENT_NAME_CHANGE } from '../../constants/events'
4
- import {
5
- PROP_TYPE_ARRAY_STRING,
6
- PROP_TYPE_BOOLEAN,
7
- PROP_TYPE_BOOLEAN_NUMBER,
8
- PROP_TYPE_FUNCTION,
9
- PROP_TYPE_NUMBER_STRING,
10
- PROP_TYPE_STRING
11
- } from '../../constants/props'
12
- import {
13
- CODE_DOWN,
14
- CODE_END,
15
- CODE_HOME,
16
- CODE_PAGEUP,
17
- CODE_UP,
18
- CODE_PAGEDOWN
19
- } from '../../constants/key-codes'
20
- import { SLOT_NAME_DECREMENT, SLOT_NAME_INCREMENT } from '../../constants/slots'
21
- import { arrayIncludes, concat } from '../../utils/array'
22
- import { attemptBlur, attemptFocus } from '../../utils/dom'
23
- import { eventOnOff, stopEvent } from '../../utils/events'
24
- import { identity } from '../../utils/identity'
25
- import { isNull } from '../../utils/inspect'
26
- import { isLocaleRTL } from '../../utils/locale'
27
- import { mathFloor, mathMax, mathPow, mathRound } from '../../utils/math'
28
- import { makeModelMixin } from '../../utils/model'
29
- import { toFloat, toInteger } from '../../utils/number'
30
- import { omit, sortKeys } from '../../utils/object'
31
- import { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props'
32
- import { toString } from '../../utils/string'
33
- import { attrsMixin } from '../../mixins/attrs'
34
- import { formSizeMixin, props as formSizeProps } from '../../mixins/form-size'
35
- import { formStateMixin, props as formStateProps } from '../../mixins/form-state'
36
- import { idMixin, props as idProps } from '../../mixins/id'
37
- import { normalizeSlotMixin } from '../../mixins/normalize-slot'
38
- import { props as formControlProps } from '../../mixins/form-control'
39
- import { BIconPlus, BIconDash } from '../../icons/icons'
40
-
41
- // --- Constants ---
42
-
43
- const {
44
- mixin: modelMixin,
45
- props: modelProps,
46
- prop: MODEL_PROP_NAME,
47
- event: MODEL_EVENT_NAME
48
- } = makeModelMixin('value', {
49
- // Should this really be String, to match native number inputs?
50
- type: PROP_TYPE_BOOLEAN_NUMBER
51
- })
52
-
53
- // Default for spin button range and step
54
- const DEFAULT_MIN = 1
55
- const DEFAULT_MAX = 100
56
- const DEFAULT_STEP = 1
57
-
58
- // Delay before auto-repeat in ms
59
- const DEFAULT_REPEAT_DELAY = 500
60
- // Repeat interval in ms
61
- const DEFAULT_REPEAT_INTERVAL = 100
62
- // Repeat rate increased after number of repeats
63
- const DEFAULT_REPEAT_THRESHOLD = 10
64
- // Repeat speed multiplier (step multiplier, must be an integer)
65
- const DEFAULT_REPEAT_MULTIPLIER = 4
66
-
67
- const KEY_CODES = [CODE_UP, CODE_DOWN, CODE_HOME, CODE_END, CODE_PAGEUP, CODE_PAGEDOWN]
68
-
69
- // --- Props ---
70
-
71
- export const props = makePropsConfigurable(
72
- sortKeys({
73
- ...idProps,
74
- ...modelProps,
75
- ...omit(formControlProps, ['required', 'autofocus']),
76
- ...formSizeProps,
77
- ...formStateProps,
78
- ariaControls: makeProp(PROP_TYPE_STRING),
79
- ariaLabel: makeProp(PROP_TYPE_STRING),
80
- formatterFn: makeProp(PROP_TYPE_FUNCTION),
81
- inline: makeProp(PROP_TYPE_BOOLEAN, false),
82
- labelDecrement: makeProp(PROP_TYPE_STRING, 'Decrement'),
83
- labelIncrement: makeProp(PROP_TYPE_STRING, 'Increment'),
84
- locale: makeProp(PROP_TYPE_ARRAY_STRING),
85
- max: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_MAX),
86
- min: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_MIN),
87
- placeholder: makeProp(PROP_TYPE_STRING),
88
- readonly: makeProp(PROP_TYPE_BOOLEAN, false),
89
- repeatDelay: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_DELAY),
90
- repeatInterval: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_INTERVAL),
91
- repeatStepMultiplier: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_MULTIPLIER),
92
- repeatThreshold: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_REPEAT_THRESHOLD),
93
- step: makeProp(PROP_TYPE_NUMBER_STRING, DEFAULT_STEP),
94
- vertical: makeProp(PROP_TYPE_BOOLEAN, false),
95
- wrap: makeProp(PROP_TYPE_BOOLEAN, false)
96
- }),
97
- NAME_FORM_SPINBUTTON
98
- )
99
-
100
- // --- Main Component ---
101
-
102
- // @vue/component
103
- export const BFormSpinbutton = /*#__PURE__*/ extend({
104
- name: NAME_FORM_SPINBUTTON,
105
- // Mixin order is important!
106
- mixins: [attrsMixin, idMixin, modelMixin, formSizeMixin, formStateMixin, normalizeSlotMixin],
107
- inheritAttrs: false,
108
- props,
109
- data() {
110
- return {
111
- localValue: toFloat(this[MODEL_PROP_NAME], null),
112
- hasFocus: false
113
- }
114
- },
115
- computed: {
116
- required() {
117
- return false
118
- },
119
- spinId() {
120
- return this.safeId()
121
- },
122
- computedInline() {
123
- return this.inline && !this.vertical
124
- },
125
- computedReadonly() {
126
- return this.readonly && !this.disabled
127
- },
128
- computedRequired() {
129
- return this.required && !this.computedReadonly && !this.disabled
130
- },
131
- computedStep() {
132
- return toFloat(this.step, DEFAULT_STEP)
133
- },
134
- computedMin() {
135
- return toFloat(this.min, DEFAULT_MIN)
136
- },
137
- computedMax() {
138
- // We round down to the nearest maximum step value
139
- const max = toFloat(this.max, DEFAULT_MAX)
140
- const step = this.computedStep
141
- const min = this.computedMin
142
- return mathFloor((max - min) / step) * step + min
143
- },
144
- computedDelay() {
145
- const delay = toInteger(this.repeatDelay, 0)
146
- return delay > 0 ? delay : DEFAULT_REPEAT_DELAY
147
- },
148
- computedInterval() {
149
- const interval = toInteger(this.repeatInterval, 0)
150
- return interval > 0 ? interval : DEFAULT_REPEAT_INTERVAL
151
- },
152
- computedThreshold() {
153
- return mathMax(toInteger(this.repeatThreshold, DEFAULT_REPEAT_THRESHOLD), 1)
154
- },
155
- computedStepMultiplier() {
156
- return mathMax(toInteger(this.repeatStepMultiplier, DEFAULT_REPEAT_MULTIPLIER), 1)
157
- },
158
- computedPrecision() {
159
- // Quick and dirty way to get the number of decimals
160
- const step = this.computedStep
161
- return mathFloor(step) === step ? 0 : (step.toString().split('.')[1] || '').length
162
- },
163
- computedMultiplier() {
164
- return mathPow(10, this.computedPrecision || 0)
165
- },
166
- valueAsFixed() {
167
- const value = this.localValue
168
- return isNull(value) ? '' : value.toFixed(this.computedPrecision)
169
- },
170
- computedLocale() {
171
- const locales = concat(this.locale).filter(identity)
172
- const nf = new Intl.NumberFormat(locales)
173
- return nf.resolvedOptions().locale
174
- },
175
- computedRTL() {
176
- return isLocaleRTL(this.computedLocale)
177
- },
178
- defaultFormatter() {
179
- // Returns and `Intl.NumberFormat` formatter method reference
180
- const precision = this.computedPrecision
181
- const nf = new Intl.NumberFormat(this.computedLocale, {
182
- style: 'decimal',
183
- useGrouping: false,
184
- minimumIntegerDigits: 1,
185
- minimumFractionDigits: precision,
186
- maximumFractionDigits: precision,
187
- notation: 'standard'
188
- })
189
- // Return the format method reference
190
- return nf.format
191
- },
192
- computedFormatter() {
193
- const { formatterFn } = this
194
- return hasPropFunction(formatterFn) ? formatterFn : this.defaultFormatter
195
- },
196
- computedAttrs() {
197
- return {
198
- ...this.bvAttrs,
199
- role: 'group',
200
- lang: this.computedLocale,
201
- tabindex: this.disabled ? null : '-1',
202
- title: this.ariaLabel
203
- }
204
- },
205
- computedSpinAttrs() {
206
- const {
207
- spinId,
208
- localValue: value,
209
- computedRequired: required,
210
- disabled,
211
- state,
212
- computedFormatter
213
- } = this
214
- const hasValue = !isNull(value)
215
-
216
- return {
217
- dir: this.computedRTL ? 'rtl' : 'ltr',
218
- ...this.bvAttrs,
219
- id: spinId,
220
- role: 'spinbutton',
221
- tabindex: disabled ? null : '0',
222
- 'aria-live': 'off',
223
- 'aria-label': this.ariaLabel || null,
224
- 'aria-controls': this.ariaControls || null,
225
- // TODO: May want to check if the value is in range
226
- 'aria-invalid': state === false || (!hasValue && required) ? 'true' : null,
227
- 'aria-required': required ? 'true' : null,
228
- // These attrs are required for role spinbutton
229
- 'aria-valuemin': toString(this.computedMin),
230
- 'aria-valuemax': toString(this.computedMax),
231
- // These should be `null` if the value is out of range
232
- // They must also be non-existent attrs if the value is out of range or `null`
233
- 'aria-valuenow': hasValue ? value : null,
234
- 'aria-valuetext': hasValue ? computedFormatter(value) : null
235
- }
236
- }
237
- },
238
- watch: {
239
- [MODEL_PROP_NAME](value) {
240
- this.localValue = toFloat(value, null)
241
- },
242
- localValue(value) {
243
- this.$emit(MODEL_EVENT_NAME, value)
244
- },
245
- disabled(disabled) {
246
- if (disabled) {
247
- this.clearRepeat()
248
- }
249
- },
250
- readonly(readonly) {
251
- if (readonly) {
252
- this.clearRepeat()
253
- }
254
- }
255
- },
256
- created() {
257
- // Create non reactive properties
258
- this.$_autoDelayTimer = null
259
- this.$_autoRepeatTimer = null
260
- this.$_keyIsDown = false
261
- },
262
- beforeDestroy() {
263
- this.clearRepeat()
264
- },
265
- /* istanbul ignore next */
266
- deactivated() {
267
- this.clearRepeat()
268
- },
269
- methods: {
270
- // --- Public methods ---
271
- focus() {
272
- if (!this.disabled) {
273
- attemptFocus(this.$refs.spinner)
274
- }
275
- },
276
- blur() {
277
- if (!this.disabled) {
278
- attemptBlur(this.$refs.spinner)
279
- }
280
- },
281
- // --- Private methods ---
282
- emitChange() {
283
- this.$emit(EVENT_NAME_CHANGE, this.localValue)
284
- },
285
- stepValue(direction) {
286
- // Sets a new incremented or decremented value, supporting optional wrapping
287
- // Direction is either +1 or -1 (or a multiple thereof)
288
- let value = this.localValue
289
- if (!this.disabled && !isNull(value)) {
290
- const step = this.computedStep * direction
291
- const min = this.computedMin
292
- const max = this.computedMax
293
- const multiplier = this.computedMultiplier
294
- const wrap = this.wrap
295
- // We ensure that the value steps like a native input
296
- value = mathRound((value - min) / step) * step + min + step
297
- // We ensure that precision is maintained (decimals)
298
- value = mathRound(value * multiplier) / multiplier
299
- // Handle if wrapping is enabled
300
- this.localValue =
301
- value > max ? (wrap ? min : max) : value < min ? (wrap ? max : min) : value
302
- }
303
- },
304
- onFocusBlur(event) {
305
- this.hasFocus = this.disabled ? false : event.type === 'focus'
306
- },
307
- stepUp(multiplier = 1) {
308
- const value = this.localValue
309
- if (isNull(value)) {
310
- this.localValue = this.computedMin
311
- } else {
312
- this.stepValue(+1 * multiplier)
313
- }
314
- },
315
- stepDown(multiplier = 1) {
316
- const value = this.localValue
317
- if (isNull(value)) {
318
- this.localValue = this.wrap ? this.computedMax : this.computedMin
319
- } else {
320
- this.stepValue(-1 * multiplier)
321
- }
322
- },
323
- onKeydown(event) {
324
- const { keyCode, altKey, ctrlKey, metaKey } = event
325
- /* istanbul ignore if */
326
- if (this.disabled || this.readonly || altKey || ctrlKey || metaKey) {
327
- return
328
- }
329
- if (arrayIncludes(KEY_CODES, keyCode)) {
330
- // https://w3c.github.io/aria-practices/#spinbutton
331
- stopEvent(event, { propagation: false })
332
- /* istanbul ignore if */
333
- if (this.$_keyIsDown) {
334
- // Keypress is already in progress
335
- return
336
- }
337
- this.resetTimers()
338
- if (arrayIncludes([CODE_UP, CODE_DOWN], keyCode)) {
339
- // The following use the custom auto-repeat handling
340
- this.$_keyIsDown = true
341
- if (keyCode === CODE_UP) {
342
- this.handleStepRepeat(event, this.stepUp)
343
- } else if (keyCode === CODE_DOWN) {
344
- this.handleStepRepeat(event, this.stepDown)
345
- }
346
- } else {
347
- // These use native OS key repeating
348
- if (keyCode === CODE_PAGEUP) {
349
- this.stepUp(this.computedStepMultiplier)
350
- } else if (keyCode === CODE_PAGEDOWN) {
351
- this.stepDown(this.computedStepMultiplier)
352
- } else if (keyCode === CODE_HOME) {
353
- this.localValue = this.computedMin
354
- } else if (keyCode === CODE_END) {
355
- this.localValue = this.computedMax
356
- }
357
- }
358
- }
359
- },
360
- onKeyup(event) {
361
- // Emit a change event when the keyup happens
362
- const { keyCode, altKey, ctrlKey, metaKey } = event
363
- /* istanbul ignore if */
364
- if (this.disabled || this.readonly || altKey || ctrlKey || metaKey) {
365
- return
366
- }
367
- if (arrayIncludes(KEY_CODES, keyCode)) {
368
- stopEvent(event, { propagation: false })
369
- this.resetTimers()
370
- this.$_keyIsDown = false
371
- this.emitChange()
372
- }
373
- },
374
- handleStepRepeat(event, stepper) {
375
- const { type, button } = event || {}
376
- if (!this.disabled && !this.readonly) {
377
- /* istanbul ignore if */
378
- if (type === 'mousedown' && button) {
379
- // We only respond to left (main === 0) button clicks
380
- return
381
- }
382
- this.resetTimers()
383
- // Step the counter initially
384
- stepper(1)
385
- const threshold = this.computedThreshold
386
- const multiplier = this.computedStepMultiplier
387
- const delay = this.computedDelay
388
- const interval = this.computedInterval
389
- // Initiate the delay/repeat interval
390
- this.$_autoDelayTimer = setTimeout(() => {
391
- let count = 0
392
- this.$_autoRepeatTimer = setInterval(() => {
393
- // After N initial repeats, we increase the incrementing step amount
394
- // We do this to minimize screen reader announcements of the value
395
- // (values are announced every change, which can be chatty for SR users)
396
- // And to make it easer to select a value when the range is large
397
- stepper(count < threshold ? 1 : multiplier)
398
- count++
399
- }, interval)
400
- }, delay)
401
- }
402
- },
403
- onMouseup(event) {
404
- // `<body>` listener, only enabled when mousedown starts
405
- const { type, button } = event || {}
406
- /* istanbul ignore if */
407
- if (type === 'mouseup' && button) {
408
- // Ignore non left button (main === 0) mouse button click
409
- return
410
- }
411
- stopEvent(event, { propagation: false })
412
- this.resetTimers()
413
- this.setMouseup(false)
414
- // Trigger the change event
415
- this.emitChange()
416
- },
417
- setMouseup(on) {
418
- // Enable or disabled the body mouseup/touchend handlers
419
- // Use try/catch to handle case when called server side
420
- try {
421
- eventOnOff(on, document.body, 'mouseup', this.onMouseup, false)
422
- eventOnOff(on, document.body, 'touchend', this.onMouseup, false)
423
- } catch {}
424
- },
425
- resetTimers() {
426
- clearTimeout(this.$_autoDelayTimer)
427
- clearInterval(this.$_autoRepeatTimer)
428
- this.$_autoDelayTimer = null
429
- this.$_autoRepeatTimer = null
430
- },
431
- clearRepeat() {
432
- this.resetTimers()
433
- this.setMouseup(false)
434
- this.$_keyIsDown = false
435
- }
436
- },
437
- render(h) {
438
- const {
439
- spinId,
440
- localValue: value,
441
- computedInline: inline,
442
- computedReadonly: readonly,
443
- vertical,
444
- disabled,
445
- computedFormatter
446
- } = this
447
- const hasValue = !isNull(value)
448
-
449
- const makeButton = (stepper, label, IconCmp, keyRef, shortcut, btnDisabled, slotName) => {
450
- const $icon = h(IconCmp, {
451
- props: { scale: this.hasFocus ? 1.5 : 1.25 },
452
- attrs: { 'aria-hidden': 'true' }
453
- })
454
- const scope = { hasFocus: this.hasFocus }
455
- const handler = event => {
456
- if (!disabled && !readonly) {
457
- stopEvent(event, { propagation: false })
458
- this.setMouseup(true)
459
- // Since we `preventDefault()`, we must manually focus the button
460
- attemptFocus(event.currentTarget)
461
- this.handleStepRepeat(event, stepper)
462
- }
463
- }
464
- return h(
465
- 'button',
466
- {
467
- staticClass: 'btn btn-sm border-0 rounded-0',
468
- class: { 'py-0': !vertical },
469
- attrs: {
470
- tabindex: '-1',
471
- type: 'button',
472
- disabled: disabled || readonly || btnDisabled,
473
- 'aria-disabled': disabled || readonly || btnDisabled ? 'true' : null,
474
- 'aria-controls': spinId,
475
- 'aria-label': label || null,
476
- 'aria-keyshortcuts': shortcut || null
477
- },
478
- on: {
479
- mousedown: handler,
480
- touchstart: handler
481
- },
482
- key: keyRef || null,
483
- ref: keyRef
484
- },
485
- [this.normalizeSlot(slotName, scope) || $icon]
486
- )
487
- }
488
- // TODO: Add button disabled state when `wrap` is `false` and at value max/min
489
- const $increment = makeButton(
490
- this.stepUp,
491
- this.labelIncrement,
492
- BIconPlus,
493
- 'inc',
494
- 'ArrowUp',
495
- false,
496
- SLOT_NAME_INCREMENT
497
- )
498
- const $decrement = makeButton(
499
- this.stepDown,
500
- this.labelDecrement,
501
- BIconDash,
502
- 'dec',
503
- 'ArrowDown',
504
- false,
505
- SLOT_NAME_DECREMENT
506
- )
507
-
508
- let $hidden = h()
509
- if (this.name && !disabled) {
510
- $hidden = h('input', {
511
- attrs: {
512
- type: 'hidden',
513
- name: this.name,
514
- form: this.form || null,
515
- // TODO: Should this be set to '' if value is out of range?
516
- value: this.valueAsFixed
517
- },
518
- key: 'hidden'
519
- })
520
- }
521
-
522
- const $spin = h(
523
- // We use 'output' element to make this accept a `<label for="id">` (Except IE)
524
- 'output',
525
- {
526
- staticClass: 'flex-grow-1',
527
- class: {
528
- 'd-flex': vertical,
529
- 'align-self-center': !vertical,
530
- 'align-items-center': vertical,
531
- 'border-top': vertical,
532
- 'border-bottom': vertical,
533
- 'border-left': !vertical,
534
- 'border-right': !vertical
535
- },
536
- attrs: this.computedSpinAttrs,
537
- key: 'output',
538
- ref: 'spinner'
539
- },
540
- [h('bdi', hasValue ? computedFormatter(value) : this.placeholder || '')]
541
- )
542
-
543
- return h(
544
- 'div',
545
- {
546
- staticClass: 'b-form-spinbutton form-control',
547
- class: [
548
- {
549
- disabled,
550
- readonly,
551
- focus: this.hasFocus,
552
- 'd-inline-flex': inline || vertical,
553
- 'd-flex': !inline && !vertical,
554
- 'align-items-stretch': !vertical,
555
- 'flex-column': vertical
556
- },
557
- this.sizeFormClass,
558
- this.stateClass
559
- ],
560
- attrs: this.computedAttrs,
561
- on: {
562
- keydown: this.onKeydown,
563
- keyup: this.onKeyup,
564
- // We use capture phase (`!` prefix) since focus and blur do not bubble
565
- '!focus': this.onFocusBlur,
566
- '!blur': this.onFocusBlur
567
- }
568
- },
569
- vertical ? [$increment, $hidden, $spin, $decrement] : [$decrement, $hidden, $spin, $increment]
570
- )
571
- }
572
- })