@gitlab/ui 92.1.1 → 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 (449) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/bin/migrate_custom_utils_to_tw.bundled.mjs +11 -3
  3. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_popover/duo_chat_context_item_popover.js +29 -1
  4. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.js +18 -1
  5. package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js +4 -6
  6. package/dist/components/experimental/duo/chat/constants.js +2 -1
  7. package/dist/index.css +4 -2
  8. package/dist/index.css.map +1 -1
  9. package/dist/tailwind.css +1 -1
  10. package/dist/tailwind.css.map +1 -1
  11. package/dist/vendor/bootstrap-vue/src/components/form/index.js +0 -4
  12. package/dist/vendor/bootstrap-vue/src/components/index.js +0 -48
  13. package/dist/vendor/bootstrap-vue/src/components/layout/index.js +0 -6
  14. package/dist/vendor/bootstrap-vue/src/components/nav/index.js +0 -6
  15. package/dist/vendor/bootstrap-vue/src/components/navbar/index.js +1 -8
  16. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +2 -6
  17. package/dist/vendor/bootstrap-vue/src/constants/classes.js +1 -2
  18. package/dist/vendor/bootstrap-vue/src/constants/components.js +1 -51
  19. package/dist/vendor/bootstrap-vue/src/constants/events.js +1 -12
  20. package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +1 -5
  21. package/dist/vendor/bootstrap-vue/src/constants/props.js +1 -4
  22. package/dist/vendor/bootstrap-vue/src/constants/regex.js +1 -20
  23. package/dist/vendor/bootstrap-vue/src/constants/slots.js +1 -33
  24. package/dist/vendor/bootstrap-vue/src/directives/toggle/toggle.js +1 -1
  25. package/dist/vendor/bootstrap-vue/src/index.js +0 -74
  26. package/dist/vendor/bootstrap-vue/src/utils/array.js +1 -3
  27. package/dist/vendor/bootstrap-vue/src/utils/inspect.js +1 -3
  28. package/dist/vendor/bootstrap-vue/src/utils/math.js +1 -3
  29. package/dist/vendor/bootstrap-vue/src/utils/object.js +1 -6
  30. package/dist/vendor/bootstrap-vue/src/utils/props.js +2 -8
  31. package/dist/vendor/bootstrap-vue/src/utils/string.js +1 -10
  32. package/package.json +1 -1
  33. package/src/components/base/accordion/accordion_item.scss +3 -3
  34. package/src/components/base/alert/alert.scss +3 -3
  35. package/src/components/base/avatar_labeled/avatar_labeled.scss +2 -2
  36. package/src/components/base/avatars_inline/avatars_inline.scss +1 -1
  37. package/src/components/base/badge/badge.scss +2 -2
  38. package/src/components/base/banner/banner.scss +2 -2
  39. package/src/components/base/breadcrumb/breadcrumb.scss +3 -3
  40. package/src/components/base/broadcast_message/broadcast_message.scss +3 -3
  41. package/src/components/base/button/button.scss +26 -16
  42. package/src/components/base/card/card.scss +1 -1
  43. package/src/components/base/datepicker/datepicker.scss +10 -10
  44. package/src/components/base/drawer/drawer.scss +5 -5
  45. package/src/components/base/dropdown/dropdown.scss +28 -28
  46. package/src/components/base/dropdown/dropdown_divider.scss +3 -3
  47. package/src/components/base/dropdown/dropdown_item.scss +9 -9
  48. package/src/components/base/dropdown/dropdown_section_header.scss +2 -2
  49. package/src/components/base/dropdown/dropdown_text.scss +1 -1
  50. package/src/components/base/filtered_search/filtered_search.scss +7 -7
  51. package/src/components/base/filtered_search/filtered_search_suggestion.scss +1 -1
  52. package/src/components/base/filtered_search/filtered_search_suggestion_list.scss +3 -3
  53. package/src/components/base/filtered_search/filtered_search_term.scss +2 -2
  54. package/src/components/base/filtered_search/filtered_search_token.scss +4 -4
  55. package/src/components/base/filtered_search/filtered_search_token_segment.scss +2 -2
  56. package/src/components/base/form/form_checkbox/form_checkbox.scss +10 -10
  57. package/src/components/base/form/form_group/form_group.scss +5 -5
  58. package/src/components/base/form/form_input/form_input.scss +2 -2
  59. package/src/components/base/form/form_select/form_select.scss +2 -2
  60. package/src/components/base/keyset_pagination/keyset_pagination.scss +1 -1
  61. package/src/components/base/label/label.scss +1 -1
  62. package/src/components/base/loading_icon/loading_icon.scss +1 -1
  63. package/src/components/base/markdown/markdown.scss +33 -33
  64. package/src/components/base/modal/modal.scss +11 -11
  65. package/src/components/base/new_dropdowns/dropdown.scss +14 -14
  66. package/src/components/base/new_dropdowns/dropdown_item.scss +9 -9
  67. package/src/components/base/new_dropdowns/listbox/listbox.scss +1 -1
  68. package/src/components/base/pagination/pagination.scss +3 -3
  69. package/src/components/base/path/path.scss +5 -5
  70. package/src/components/base/popover/popover.scss +5 -5
  71. package/src/components/base/search_box_by_click/search_box_by_click.scss +2 -2
  72. package/src/components/base/search_box_by_type/search_box_by_type.scss +4 -4
  73. package/src/components/base/table/table.scss +4 -4
  74. package/src/components/base/tabs/tabs/tabs.scss +10 -10
  75. package/src/components/base/toast/toast.scss +7 -7
  76. package/src/components/base/toggle/toggle.scss +6 -6
  77. package/src/components/base/token/token.scss +5 -5
  78. package/src/components/base/tooltip/tooltip.scss +3 -3
  79. package/src/components/charts/legend/legend.scss +4 -4
  80. package/src/components/charts/series_label/series_label.scss +1 -1
  81. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_popover/duo_chat_context_item_popover.vue +62 -30
  82. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.vue +29 -10
  83. package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.scss +1 -1
  84. package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.vue +11 -6
  85. package/src/components/experimental/duo/chat/constants.js +2 -0
  86. package/src/components/experimental/duo/chat/duo_chat.scss +4 -4
  87. package/src/components/shared_components/charts/tooltip_default_format.scss +1 -1
  88. package/src/scss/bootstrap_vue.scss +0 -18
  89. package/src/scss/typescale/_index.scss +9 -9
  90. package/src/vendor/bootstrap-vue/nuxt/index.js +0 -8
  91. package/src/vendor/bootstrap-vue/src/_utilities.scss +0 -9
  92. package/src/vendor/bootstrap-vue/src/_variables.scss +0 -52
  93. package/src/vendor/bootstrap-vue/src/components/form/index.d.ts +0 -3
  94. package/src/vendor/bootstrap-vue/src/components/form/index.js +1 -4
  95. package/src/vendor/bootstrap-vue/src/components/form/package.json +0 -12
  96. package/src/vendor/bootstrap-vue/src/components/index.d.ts +0 -24
  97. package/src/vendor/bootstrap-vue/src/components/index.js +0 -48
  98. package/src/vendor/bootstrap-vue/src/components/index.scss +0 -15
  99. package/src/vendor/bootstrap-vue/src/components/layout/index.d.ts +0 -6
  100. package/src/vendor/bootstrap-vue/src/components/layout/index.js +1 -5
  101. package/src/vendor/bootstrap-vue/src/components/layout/package.json +0 -67
  102. package/src/vendor/bootstrap-vue/src/components/modal/README.md +0 -1
  103. package/src/vendor/bootstrap-vue/src/components/nav/index.d.ts +0 -6
  104. package/src/vendor/bootstrap-vue/src/components/nav/index.js +1 -5
  105. package/src/vendor/bootstrap-vue/src/components/nav/package.json +0 -45
  106. package/src/vendor/bootstrap-vue/src/components/navbar/README.md +0 -5
  107. package/src/vendor/bootstrap-vue/src/components/navbar/index.d.ts +1 -7
  108. package/src/vendor/bootstrap-vue/src/components/navbar/index.js +2 -7
  109. package/src/vendor/bootstrap-vue/src/components/navbar/package.json +0 -75
  110. package/src/vendor/bootstrap-vue/src/components/table/README.md +1 -2
  111. package/src/vendor/bootstrap-vue/src/components/tabs/README.md +2 -2
  112. package/src/vendor/bootstrap-vue/src/components/toast/README.md +1 -3
  113. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +2 -6
  114. package/src/vendor/bootstrap-vue/src/constants/classes.js +0 -1
  115. package/src/vendor/bootstrap-vue/src/constants/components.js +0 -50
  116. package/src/vendor/bootstrap-vue/src/constants/events.js +0 -11
  117. package/src/vendor/bootstrap-vue/src/constants/key-codes.js +0 -4
  118. package/src/vendor/bootstrap-vue/src/constants/props.js +0 -3
  119. package/src/vendor/bootstrap-vue/src/constants/regex.js +0 -19
  120. package/src/vendor/bootstrap-vue/src/constants/slots.js +0 -32
  121. package/src/vendor/bootstrap-vue/src/directives/toggle/README.md +5 -23
  122. package/src/vendor/bootstrap-vue/src/directives/toggle/package.json +1 -1
  123. package/src/vendor/bootstrap-vue/src/directives/toggle/toggle.js +1 -1
  124. package/src/vendor/bootstrap-vue/src/index.js +0 -122
  125. package/src/vendor/bootstrap-vue/src/index.scss +0 -3
  126. package/src/vendor/bootstrap-vue/src/utils/array.js +0 -5
  127. package/src/vendor/bootstrap-vue/src/utils/config.spec.js +15 -15
  128. package/src/vendor/bootstrap-vue/src/utils/inspect.js +0 -4
  129. package/src/vendor/bootstrap-vue/src/utils/math.js +0 -4
  130. package/src/vendor/bootstrap-vue/src/utils/object.js +0 -5
  131. package/src/vendor/bootstrap-vue/src/utils/props.js +1 -7
  132. package/src/vendor/bootstrap-vue/src/utils/string.js +0 -9
  133. package/src/vendor/bootstrap-vue/src/utils/string.spec.js +1 -20
  134. package/translations.js +3 -0
  135. package/dist/vendor/bootstrap-vue/src/components/alert/alert.js +0 -179
  136. package/dist/vendor/bootstrap-vue/src/components/alert/index.js +0 -11
  137. package/dist/vendor/bootstrap-vue/src/components/aspect/aspect.js +0 -67
  138. package/dist/vendor/bootstrap-vue/src/components/aspect/index.js +0 -11
  139. package/dist/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +0 -67
  140. package/dist/vendor/bootstrap-vue/src/components/avatar/avatar.js +0 -266
  141. package/dist/vendor/bootstrap-vue/src/components/avatar/index.js +0 -14
  142. package/dist/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +0 -112
  143. package/dist/vendor/bootstrap-vue/src/components/button-toolbar/index.js +0 -12
  144. package/dist/vendor/bootstrap-vue/src/components/calendar/calendar.js +0 -1010
  145. package/dist/vendor/bootstrap-vue/src/components/calendar/index.js +0 -11
  146. package/dist/vendor/bootstrap-vue/src/components/card/card-body.js +0 -63
  147. package/dist/vendor/bootstrap-vue/src/components/card/card-footer.js +0 -48
  148. package/dist/vendor/bootstrap-vue/src/components/card/card-group.js +0 -33
  149. package/dist/vendor/bootstrap-vue/src/components/card/card-header.js +0 -48
  150. package/dist/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +0 -46
  151. package/dist/vendor/bootstrap-vue/src/components/card/card-img.js +0 -58
  152. package/dist/vendor/bootstrap-vue/src/components/card/card-sub-title.js +0 -35
  153. package/dist/vendor/bootstrap-vue/src/components/card/card-text.js +0 -31
  154. package/dist/vendor/bootstrap-vue/src/components/card/card-title.js +0 -33
  155. package/dist/vendor/bootstrap-vue/src/components/card/card.js +0 -123
  156. package/dist/vendor/bootstrap-vue/src/components/card/index.js +0 -38
  157. package/dist/vendor/bootstrap-vue/src/components/embed/embed.js +0 -50
  158. package/dist/vendor/bootstrap-vue/src/components/embed/index.js +0 -11
  159. package/dist/vendor/bootstrap-vue/src/components/form/form-datalist.js +0 -52
  160. package/dist/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +0 -261
  161. package/dist/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +0 -310
  162. package/dist/vendor/bootstrap-vue/src/components/form-datepicker/index.js +0 -12
  163. package/dist/vendor/bootstrap-vue/src/components/form-file/form-file.js +0 -561
  164. package/dist/vendor/bootstrap-vue/src/components/form-file/index.js +0 -12
  165. package/dist/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +0 -402
  166. package/dist/vendor/bootstrap-vue/src/components/form-rating/index.js +0 -12
  167. package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +0 -555
  168. package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +0 -12
  169. package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +0 -97
  170. package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +0 -806
  171. package/dist/vendor/bootstrap-vue/src/components/form-tags/index.js +0 -16
  172. package/dist/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +0 -281
  173. package/dist/vendor/bootstrap-vue/src/components/form-timepicker/index.js +0 -12
  174. package/dist/vendor/bootstrap-vue/src/components/image/img-lazy.js +0 -157
  175. package/dist/vendor/bootstrap-vue/src/components/image/img.js +0 -124
  176. package/dist/vendor/bootstrap-vue/src/components/image/index.js +0 -14
  177. package/dist/vendor/bootstrap-vue/src/components/jumbotron/index.js +0 -11
  178. package/dist/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +0 -98
  179. package/dist/vendor/bootstrap-vue/src/components/layout/container.js +0 -41
  180. package/dist/vendor/bootstrap-vue/src/components/layout/row.js +0 -113
  181. package/dist/vendor/bootstrap-vue/src/components/list-group/index.js +0 -14
  182. package/dist/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +0 -78
  183. package/dist/vendor/bootstrap-vue/src/components/list-group/list-group.js +0 -42
  184. package/dist/vendor/bootstrap-vue/src/components/media/index.js +0 -17
  185. package/dist/vendor/bootstrap-vue/src/components/media/media-aside.js +0 -41
  186. package/dist/vendor/bootstrap-vue/src/components/media/media-body.js +0 -31
  187. package/dist/vendor/bootstrap-vue/src/components/media/media.js +0 -61
  188. package/dist/vendor/bootstrap-vue/src/components/nav/nav-form.js +0 -45
  189. package/dist/vendor/bootstrap-vue/src/components/nav/nav-text.js +0 -26
  190. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +0 -46
  191. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +0 -89
  192. package/dist/vendor/bootstrap-vue/src/components/overlay/index.js +0 -11
  193. package/dist/vendor/bootstrap-vue/src/components/overlay/overlay.js +0 -163
  194. package/dist/vendor/bootstrap-vue/src/components/pagination/index.js +0 -11
  195. package/dist/vendor/bootstrap-vue/src/components/pagination/pagination.js +0 -135
  196. package/dist/vendor/bootstrap-vue/src/components/pagination-nav/index.js +0 -11
  197. package/dist/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +0 -299
  198. package/dist/vendor/bootstrap-vue/src/components/sidebar/index.js +0 -15
  199. package/dist/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +0 -432
  200. package/dist/vendor/bootstrap-vue/src/components/skeleton/index.js +0 -23
  201. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +0 -47
  202. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +0 -60
  203. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +0 -64
  204. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +0 -46
  205. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +0 -49
  206. package/dist/vendor/bootstrap-vue/src/components/spinner/index.js +0 -11
  207. package/dist/vendor/bootstrap-vue/src/components/spinner/spinner.js +0 -55
  208. package/dist/vendor/bootstrap-vue/src/components/time/index.js +0 -11
  209. package/dist/vendor/bootstrap-vue/src/components/time/time.js +0 -600
  210. package/dist/vendor/bootstrap-vue/src/constants/date.js +0 -8
  211. package/dist/vendor/bootstrap-vue/src/mixins/card.js +0 -22
  212. package/dist/vendor/bootstrap-vue/src/mixins/pagination.js +0 -598
  213. package/dist/vendor/bootstrap-vue/src/utils/date.js +0 -135
  214. package/src/vendor/bootstrap-vue/src/_custom-controls.scss +0 -30
  215. package/src/vendor/bootstrap-vue/src/components/alert/README.md +0 -280
  216. package/src/vendor/bootstrap-vue/src/components/alert/alert.js +0 -185
  217. package/src/vendor/bootstrap-vue/src/components/alert/alert.spec.js +0 -442
  218. package/src/vendor/bootstrap-vue/src/components/alert/index.d.ts +0 -13
  219. package/src/vendor/bootstrap-vue/src/components/alert/index.js +0 -8
  220. package/src/vendor/bootstrap-vue/src/components/alert/package.json +0 -72
  221. package/src/vendor/bootstrap-vue/src/components/aspect/README.md +0 -65
  222. package/src/vendor/bootstrap-vue/src/components/aspect/aspect.js +0 -65
  223. package/src/vendor/bootstrap-vue/src/components/aspect/aspect.spec.js +0 -121
  224. package/src/vendor/bootstrap-vue/src/components/aspect/index.d.ts +0 -11
  225. package/src/vendor/bootstrap-vue/src/components/aspect/index.js +0 -8
  226. package/src/vendor/bootstrap-vue/src/components/aspect/package.json +0 -26
  227. package/src/vendor/bootstrap-vue/src/components/avatar/README.md +0 -567
  228. package/src/vendor/bootstrap-vue/src/components/avatar/_avatar.scss +0 -148
  229. package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +0 -75
  230. package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.spec.js +0 -74
  231. package/src/vendor/bootstrap-vue/src/components/avatar/avatar.js +0 -228
  232. package/src/vendor/bootstrap-vue/src/components/avatar/avatar.spec.js +0 -355
  233. package/src/vendor/bootstrap-vue/src/components/avatar/index.d.ts +0 -14
  234. package/src/vendor/bootstrap-vue/src/components/avatar/index.js +0 -9
  235. package/src/vendor/bootstrap-vue/src/components/avatar/index.scss +0 -1
  236. package/src/vendor/bootstrap-vue/src/components/avatar/package.json +0 -149
  237. package/src/vendor/bootstrap-vue/src/components/button-toolbar/README.md +0 -109
  238. package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +0 -117
  239. package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.spec.js +0 -185
  240. package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.d.ts +0 -11
  241. package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.js +0 -11
  242. package/src/vendor/bootstrap-vue/src/components/button-toolbar/package.json +0 -32
  243. package/src/vendor/bootstrap-vue/src/components/calendar/README.md +0 -735
  244. package/src/vendor/bootstrap-vue/src/components/calendar/_calendar.scss +0 -78
  245. package/src/vendor/bootstrap-vue/src/components/calendar/calendar.js +0 -1146
  246. package/src/vendor/bootstrap-vue/src/components/calendar/calendar.spec.js +0 -466
  247. package/src/vendor/bootstrap-vue/src/components/calendar/index.d.ts +0 -28
  248. package/src/vendor/bootstrap-vue/src/components/calendar/index.js +0 -8
  249. package/src/vendor/bootstrap-vue/src/components/calendar/index.scss +0 -1
  250. package/src/vendor/bootstrap-vue/src/components/calendar/package.json +0 -317
  251. package/src/vendor/bootstrap-vue/src/components/card/README.md +0 -729
  252. package/src/vendor/bootstrap-vue/src/components/card/_card-img.scss +0 -7
  253. package/src/vendor/bootstrap-vue/src/components/card/card-body.js +0 -69
  254. package/src/vendor/bootstrap-vue/src/components/card/card-body.spec.js +0 -142
  255. package/src/vendor/bootstrap-vue/src/components/card/card-footer.js +0 -48
  256. package/src/vendor/bootstrap-vue/src/components/card/card-footer.spec.js +0 -98
  257. package/src/vendor/bootstrap-vue/src/components/card/card-group.js +0 -33
  258. package/src/vendor/bootstrap-vue/src/components/card/card-group.spec.js +0 -75
  259. package/src/vendor/bootstrap-vue/src/components/card/card-header.js +0 -48
  260. package/src/vendor/bootstrap-vue/src/components/card/card-header.spec.js +0 -98
  261. package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +0 -47
  262. package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.spec.js +0 -204
  263. package/src/vendor/bootstrap-vue/src/components/card/card-img.js +0 -50
  264. package/src/vendor/bootstrap-vue/src/components/card/card-img.spec.js +0 -208
  265. package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.js +0 -35
  266. package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.spec.js +0 -60
  267. package/src/vendor/bootstrap-vue/src/components/card/card-text.js +0 -25
  268. package/src/vendor/bootstrap-vue/src/components/card/card-text.spec.js +0 -48
  269. package/src/vendor/bootstrap-vue/src/components/card/card-title.js +0 -33
  270. package/src/vendor/bootstrap-vue/src/components/card/card-title.spec.js +0 -45
  271. package/src/vendor/bootstrap-vue/src/components/card/card.js +0 -140
  272. package/src/vendor/bootstrap-vue/src/components/card/card.spec.js +0 -296
  273. package/src/vendor/bootstrap-vue/src/components/card/index.d.ts +0 -38
  274. package/src/vendor/bootstrap-vue/src/components/card/index.js +0 -40
  275. package/src/vendor/bootstrap-vue/src/components/card/index.scss +0 -1
  276. package/src/vendor/bootstrap-vue/src/components/card/package.json +0 -262
  277. package/src/vendor/bootstrap-vue/src/components/embed/README.md +0 -63
  278. package/src/vendor/bootstrap-vue/src/components/embed/embed.js +0 -51
  279. package/src/vendor/bootstrap-vue/src/components/embed/embed.spec.js +0 -110
  280. package/src/vendor/bootstrap-vue/src/components/embed/index.d.ts +0 -11
  281. package/src/vendor/bootstrap-vue/src/components/embed/index.js +0 -8
  282. package/src/vendor/bootstrap-vue/src/components/embed/package.json +0 -29
  283. package/src/vendor/bootstrap-vue/src/components/form/form-datalist.js +0 -42
  284. package/src/vendor/bootstrap-vue/src/components/form/form-datalist.spec.js +0 -57
  285. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/_form-btn-label-control.scss +0 -125
  286. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +0 -278
  287. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/index.scss +0 -1
  288. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/package.json +0 -5
  289. package/src/vendor/bootstrap-vue/src/components/form-datepicker/README.md +0 -694
  290. package/src/vendor/bootstrap-vue/src/components/form-datepicker/_form-datepicker.scss +0 -1
  291. package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +0 -342
  292. package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.spec.js +0 -562
  293. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.d.ts +0 -12
  294. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.js +0 -11
  295. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.scss +0 -1
  296. package/src/vendor/bootstrap-vue/src/components/form-datepicker/package.json +0 -420
  297. package/src/vendor/bootstrap-vue/src/components/form-file/README.md +0 -357
  298. package/src/vendor/bootstrap-vue/src/components/form-file/_form-file.scss +0 -61
  299. package/src/vendor/bootstrap-vue/src/components/form-file/form-file.js +0 -575
  300. package/src/vendor/bootstrap-vue/src/components/form-file/form-file.spec.js +0 -885
  301. package/src/vendor/bootstrap-vue/src/components/form-file/index.d.ts +0 -13
  302. package/src/vendor/bootstrap-vue/src/components/form-file/index.js +0 -11
  303. package/src/vendor/bootstrap-vue/src/components/form-file/index.scss +0 -1
  304. package/src/vendor/bootstrap-vue/src/components/form-file/package.json +0 -131
  305. package/src/vendor/bootstrap-vue/src/components/form-rating/README.md +0 -526
  306. package/src/vendor/bootstrap-vue/src/components/form-rating/_form-rating.scss +0 -57
  307. package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +0 -411
  308. package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.spec.js +0 -544
  309. package/src/vendor/bootstrap-vue/src/components/form-rating/index.d.ts +0 -14
  310. package/src/vendor/bootstrap-vue/src/components/form-rating/index.js +0 -8
  311. package/src/vendor/bootstrap-vue/src/components/form-rating/index.scss +0 -1
  312. package/src/vendor/bootstrap-vue/src/components/form-rating/package.json +0 -166
  313. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/README.md +0 -411
  314. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/_spinbutton.scss +0 -76
  315. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +0 -572
  316. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.spec.js +0 -731
  317. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.d.ts +0 -12
  318. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +0 -11
  319. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.scss +0 -1
  320. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/package.json +0 -150
  321. package/src/vendor/bootstrap-vue/src/components/form-tags/README.md +0 -880
  322. package/src/vendor/bootstrap-vue/src/components/form-tags/_form-tags.scss +0 -70
  323. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +0 -94
  324. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.spec.js +0 -166
  325. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +0 -891
  326. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.spec.js +0 -920
  327. package/src/vendor/bootstrap-vue/src/components/form-tags/index.d.ts +0 -16
  328. package/src/vendor/bootstrap-vue/src/components/form-tags/index.js +0 -14
  329. package/src/vendor/bootstrap-vue/src/components/form-tags/index.scss +0 -1
  330. package/src/vendor/bootstrap-vue/src/components/form-tags/package.json +0 -440
  331. package/src/vendor/bootstrap-vue/src/components/form-timepicker/README.md +0 -450
  332. package/src/vendor/bootstrap-vue/src/components/form-timepicker/_form-timepicker.scss +0 -1
  333. package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +0 -308
  334. package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.spec.js +0 -440
  335. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.d.ts +0 -12
  336. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.js +0 -11
  337. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.scss +0 -1
  338. package/src/vendor/bootstrap-vue/src/components/form-timepicker/package.json +0 -255
  339. package/src/vendor/bootstrap-vue/src/components/image/README.md +0 -322
  340. package/src/vendor/bootstrap-vue/src/components/image/img-lazy.js +0 -161
  341. package/src/vendor/bootstrap-vue/src/components/image/img-lazy.spec.js +0 -96
  342. package/src/vendor/bootstrap-vue/src/components/image/img.js +0 -139
  343. package/src/vendor/bootstrap-vue/src/components/image/img.spec.js +0 -255
  344. package/src/vendor/bootstrap-vue/src/components/image/index.d.ts +0 -14
  345. package/src/vendor/bootstrap-vue/src/components/image/index.js +0 -12
  346. package/src/vendor/bootstrap-vue/src/components/image/package.json +0 -152
  347. package/src/vendor/bootstrap-vue/src/components/jumbotron/README.md +0 -109
  348. package/src/vendor/bootstrap-vue/src/components/jumbotron/index.d.ts +0 -11
  349. package/src/vendor/bootstrap-vue/src/components/jumbotron/index.js +0 -8
  350. package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +0 -103
  351. package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.spec.js +0 -254
  352. package/src/vendor/bootstrap-vue/src/components/jumbotron/package.json +0 -66
  353. package/src/vendor/bootstrap-vue/src/components/layout/container.js +0 -40
  354. package/src/vendor/bootstrap-vue/src/components/layout/container.spec.js +0 -75
  355. package/src/vendor/bootstrap-vue/src/components/layout/row.js +0 -111
  356. package/src/vendor/bootstrap-vue/src/components/layout/row.spec.js +0 -138
  357. package/src/vendor/bootstrap-vue/src/components/list-group/README.md +0 -291
  358. package/src/vendor/bootstrap-vue/src/components/list-group/index.d.ts +0 -14
  359. package/src/vendor/bootstrap-vue/src/components/list-group/index.js +0 -12
  360. package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +0 -76
  361. package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.spec.js +0 -286
  362. package/src/vendor/bootstrap-vue/src/components/list-group/list-group.js +0 -42
  363. package/src/vendor/bootstrap-vue/src/components/list-group/list-group.spec.js +0 -132
  364. package/src/vendor/bootstrap-vue/src/components/list-group/package.json +0 -52
  365. package/src/vendor/bootstrap-vue/src/components/media/README.md +0 -183
  366. package/src/vendor/bootstrap-vue/src/components/media/_media.scss +0 -9
  367. package/src/vendor/bootstrap-vue/src/components/media/index.d.ts +0 -17
  368. package/src/vendor/bootstrap-vue/src/components/media/index.js +0 -14
  369. package/src/vendor/bootstrap-vue/src/components/media/index.scss +0 -1
  370. package/src/vendor/bootstrap-vue/src/components/media/media-aside.js +0 -45
  371. package/src/vendor/bootstrap-vue/src/components/media/media-aside.spec.js +0 -79
  372. package/src/vendor/bootstrap-vue/src/components/media/media-body.js +0 -25
  373. package/src/vendor/bootstrap-vue/src/components/media/media-body.spec.js +0 -47
  374. package/src/vendor/bootstrap-vue/src/components/media/media.js +0 -52
  375. package/src/vendor/bootstrap-vue/src/components/media/media.spec.js +0 -149
  376. package/src/vendor/bootstrap-vue/src/components/media/package.json +0 -65
  377. package/src/vendor/bootstrap-vue/src/components/nav/nav-form.js +0 -50
  378. package/src/vendor/bootstrap-vue/src/components/nav/nav-form.spec.js +0 -93
  379. package/src/vendor/bootstrap-vue/src/components/nav/nav-text.js +0 -18
  380. package/src/vendor/bootstrap-vue/src/components/nav/nav-text.spec.js +0 -30
  381. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +0 -45
  382. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.spec.js +0 -105
  383. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +0 -84
  384. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.spec.js +0 -189
  385. package/src/vendor/bootstrap-vue/src/components/overlay/README.md +0 -815
  386. package/src/vendor/bootstrap-vue/src/components/overlay/index.d.ts +0 -11
  387. package/src/vendor/bootstrap-vue/src/components/overlay/index.js +0 -8
  388. package/src/vendor/bootstrap-vue/src/components/overlay/overlay.js +0 -162
  389. package/src/vendor/bootstrap-vue/src/components/overlay/overlay.spec.js +0 -257
  390. package/src/vendor/bootstrap-vue/src/components/overlay/package.json +0 -130
  391. package/src/vendor/bootstrap-vue/src/components/pagination/README.md +0 -430
  392. package/src/vendor/bootstrap-vue/src/components/pagination/_pagination.scss +0 -26
  393. package/src/vendor/bootstrap-vue/src/components/pagination/index.d.ts +0 -11
  394. package/src/vendor/bootstrap-vue/src/components/pagination/index.js +0 -8
  395. package/src/vendor/bootstrap-vue/src/components/pagination/index.scss +0 -1
  396. package/src/vendor/bootstrap-vue/src/components/pagination/package.json +0 -295
  397. package/src/vendor/bootstrap-vue/src/components/pagination/pagination.js +0 -138
  398. package/src/vendor/bootstrap-vue/src/components/pagination/pagination.spec.js +0 -1198
  399. package/src/vendor/bootstrap-vue/src/components/pagination-nav/README.md +0 -544
  400. package/src/vendor/bootstrap-vue/src/components/pagination-nav/_pagination-nav.scss +0 -2
  401. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.d.ts +0 -11
  402. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.js +0 -8
  403. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.scss +0 -1
  404. package/src/vendor/bootstrap-vue/src/components/pagination-nav/package.json +0 -315
  405. package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +0 -281
  406. package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.spec.js +0 -671
  407. package/src/vendor/bootstrap-vue/src/components/sidebar/README.md +0 -406
  408. package/src/vendor/bootstrap-vue/src/components/sidebar/_sidebar.scss +0 -97
  409. package/src/vendor/bootstrap-vue/src/components/sidebar/index.d.ts +0 -11
  410. package/src/vendor/bootstrap-vue/src/components/sidebar/index.js +0 -10
  411. package/src/vendor/bootstrap-vue/src/components/sidebar/index.scss +0 -1
  412. package/src/vendor/bootstrap-vue/src/components/sidebar/package.json +0 -239
  413. package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +0 -438
  414. package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.spec.js +0 -404
  415. package/src/vendor/bootstrap-vue/src/components/skeleton/README.md +0 -275
  416. package/src/vendor/bootstrap-vue/src/components/skeleton/_skeleton.scss +0 -141
  417. package/src/vendor/bootstrap-vue/src/components/skeleton/index.d.ts +0 -23
  418. package/src/vendor/bootstrap-vue/src/components/skeleton/index.js +0 -18
  419. package/src/vendor/bootstrap-vue/src/components/skeleton/index.scss +0 -1
  420. package/src/vendor/bootstrap-vue/src/components/skeleton/package.json +0 -136
  421. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +0 -45
  422. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.spec.js +0 -86
  423. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +0 -49
  424. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.spec.js +0 -139
  425. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +0 -58
  426. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.spec.js +0 -119
  427. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +0 -47
  428. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.spec.js +0 -48
  429. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +0 -46
  430. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.spec.js +0 -126
  431. package/src/vendor/bootstrap-vue/src/components/spinner/README.md +0 -229
  432. package/src/vendor/bootstrap-vue/src/components/spinner/index.d.ts +0 -11
  433. package/src/vendor/bootstrap-vue/src/components/spinner/index.js +0 -8
  434. package/src/vendor/bootstrap-vue/src/components/spinner/package.json +0 -38
  435. package/src/vendor/bootstrap-vue/src/components/spinner/spinner.js +0 -54
  436. package/src/vendor/bootstrap-vue/src/components/spinner/spinner.spec.js +0 -305
  437. package/src/vendor/bootstrap-vue/src/components/time/README.md +0 -431
  438. package/src/vendor/bootstrap-vue/src/components/time/_time.scss +0 -41
  439. package/src/vendor/bootstrap-vue/src/components/time/index.d.ts +0 -27
  440. package/src/vendor/bootstrap-vue/src/components/time/index.js +0 -8
  441. package/src/vendor/bootstrap-vue/src/components/time/index.scss +0 -1
  442. package/src/vendor/bootstrap-vue/src/components/time/package.json +0 -123
  443. package/src/vendor/bootstrap-vue/src/components/time/time.js +0 -601
  444. package/src/vendor/bootstrap-vue/src/components/time/time.spec.js +0 -330
  445. package/src/vendor/bootstrap-vue/src/constants/date.js +0 -7
  446. package/src/vendor/bootstrap-vue/src/mixins/card.js +0 -23
  447. package/src/vendor/bootstrap-vue/src/mixins/pagination.js +0 -670
  448. package/src/vendor/bootstrap-vue/src/utils/date.js +0 -130
  449. 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
- })