@gitlab/ui 92.2.0 → 92.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bin/migrate_custom_utils_to_tw.bundled.mjs +11 -3
  3. package/dist/components/experimental/duo/chat/components/duo_chat_context/constants.js +4 -4
  4. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu.js +4 -4
  5. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_item.js +8 -8
  6. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_items.js +5 -4
  7. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_popover/duo_chat_context_item_popover.js +15 -16
  8. package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.js +7 -7
  9. package/dist/components/experimental/duo/chat/components/duo_chat_context/mock_context_data.js +63 -81
  10. package/dist/components/experimental/duo/chat/components/duo_chat_context/utils.js +1 -1
  11. package/dist/index.css +4 -2
  12. package/dist/index.css.map +1 -1
  13. package/dist/tailwind.css +1 -1
  14. package/dist/tailwind.css.map +1 -1
  15. package/dist/vendor/bootstrap-vue/src/components/form/index.js +0 -4
  16. package/dist/vendor/bootstrap-vue/src/components/index.js +0 -48
  17. package/dist/vendor/bootstrap-vue/src/components/layout/index.js +0 -6
  18. package/dist/vendor/bootstrap-vue/src/components/nav/index.js +0 -6
  19. package/dist/vendor/bootstrap-vue/src/components/navbar/index.js +1 -8
  20. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +2 -6
  21. package/dist/vendor/bootstrap-vue/src/constants/classes.js +1 -2
  22. package/dist/vendor/bootstrap-vue/src/constants/components.js +1 -51
  23. package/dist/vendor/bootstrap-vue/src/constants/events.js +1 -12
  24. package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +1 -5
  25. package/dist/vendor/bootstrap-vue/src/constants/props.js +1 -4
  26. package/dist/vendor/bootstrap-vue/src/constants/regex.js +1 -20
  27. package/dist/vendor/bootstrap-vue/src/constants/slots.js +1 -33
  28. package/dist/vendor/bootstrap-vue/src/directives/toggle/toggle.js +1 -1
  29. package/dist/vendor/bootstrap-vue/src/index.js +0 -74
  30. package/dist/vendor/bootstrap-vue/src/utils/array.js +1 -3
  31. package/dist/vendor/bootstrap-vue/src/utils/inspect.js +1 -3
  32. package/dist/vendor/bootstrap-vue/src/utils/math.js +1 -3
  33. package/dist/vendor/bootstrap-vue/src/utils/object.js +1 -6
  34. package/dist/vendor/bootstrap-vue/src/utils/props.js +2 -8
  35. package/dist/vendor/bootstrap-vue/src/utils/string.js +1 -10
  36. package/package.json +1 -1
  37. package/src/components/base/accordion/accordion_item.scss +3 -3
  38. package/src/components/base/alert/alert.scss +3 -3
  39. package/src/components/base/avatar_labeled/avatar_labeled.scss +2 -2
  40. package/src/components/base/avatars_inline/avatars_inline.scss +1 -1
  41. package/src/components/base/badge/badge.scss +2 -2
  42. package/src/components/base/banner/banner.scss +2 -2
  43. package/src/components/base/breadcrumb/breadcrumb.scss +3 -3
  44. package/src/components/base/broadcast_message/broadcast_message.scss +3 -3
  45. package/src/components/base/button/button.scss +14 -14
  46. package/src/components/base/card/card.scss +1 -1
  47. package/src/components/base/datepicker/datepicker.scss +10 -10
  48. package/src/components/base/drawer/drawer.scss +5 -5
  49. package/src/components/base/dropdown/dropdown.scss +28 -28
  50. package/src/components/base/dropdown/dropdown_divider.scss +3 -3
  51. package/src/components/base/dropdown/dropdown_item.scss +9 -9
  52. package/src/components/base/dropdown/dropdown_section_header.scss +2 -2
  53. package/src/components/base/dropdown/dropdown_text.scss +1 -1
  54. package/src/components/base/filtered_search/filtered_search.scss +7 -7
  55. package/src/components/base/filtered_search/filtered_search_suggestion.scss +1 -1
  56. package/src/components/base/filtered_search/filtered_search_suggestion_list.scss +3 -3
  57. package/src/components/base/filtered_search/filtered_search_term.scss +2 -2
  58. package/src/components/base/filtered_search/filtered_search_token.scss +4 -4
  59. package/src/components/base/filtered_search/filtered_search_token_segment.scss +2 -2
  60. package/src/components/base/form/form_checkbox/form_checkbox.scss +10 -10
  61. package/src/components/base/form/form_group/form_group.scss +5 -5
  62. package/src/components/base/form/form_input/form_input.scss +2 -2
  63. package/src/components/base/form/form_select/form_select.scss +2 -2
  64. package/src/components/base/keyset_pagination/keyset_pagination.scss +1 -1
  65. package/src/components/base/label/label.scss +1 -1
  66. package/src/components/base/loading_icon/loading_icon.scss +1 -1
  67. package/src/components/base/markdown/markdown.scss +33 -33
  68. package/src/components/base/modal/modal.scss +11 -11
  69. package/src/components/base/new_dropdowns/dropdown.scss +14 -14
  70. package/src/components/base/new_dropdowns/dropdown_item.scss +9 -9
  71. package/src/components/base/new_dropdowns/listbox/listbox.scss +1 -1
  72. package/src/components/base/pagination/pagination.scss +3 -3
  73. package/src/components/base/path/path.scss +5 -5
  74. package/src/components/base/popover/popover.scss +5 -5
  75. package/src/components/base/search_box_by_click/search_box_by_click.scss +2 -2
  76. package/src/components/base/search_box_by_type/search_box_by_type.scss +4 -4
  77. package/src/components/base/table/table.scss +4 -4
  78. package/src/components/base/tabs/tabs/tabs.scss +10 -10
  79. package/src/components/base/toast/toast.scss +7 -7
  80. package/src/components/base/toggle/toggle.scss +6 -6
  81. package/src/components/base/token/token.scss +5 -5
  82. package/src/components/base/tooltip/tooltip.scss +3 -3
  83. package/src/components/charts/legend/legend.scss +4 -4
  84. package/src/components/charts/series_label/series_label.scss +1 -1
  85. package/src/components/experimental/duo/chat/components/duo_chat_context/constants.js +3 -3
  86. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu.vue +4 -4
  87. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_item.vue +10 -10
  88. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_items.vue +6 -5
  89. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_popover/duo_chat_context_item_popover.vue +24 -24
  90. package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.vue +10 -10
  91. package/src/components/experimental/duo/chat/components/duo_chat_context/mock_context_data.js +57 -74
  92. package/src/components/experimental/duo/chat/components/duo_chat_context/utils.js +5 -3
  93. package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.scss +1 -1
  94. package/src/components/experimental/duo/chat/duo_chat.scss +4 -4
  95. package/src/components/shared_components/charts/tooltip_default_format.scss +1 -1
  96. package/src/scss/bootstrap_vue.scss +0 -18
  97. package/src/scss/typescale/_index.scss +9 -9
  98. package/src/vendor/bootstrap-vue/nuxt/index.js +0 -8
  99. package/src/vendor/bootstrap-vue/src/_utilities.scss +0 -9
  100. package/src/vendor/bootstrap-vue/src/_variables.scss +0 -52
  101. package/src/vendor/bootstrap-vue/src/components/form/index.d.ts +0 -3
  102. package/src/vendor/bootstrap-vue/src/components/form/index.js +1 -4
  103. package/src/vendor/bootstrap-vue/src/components/form/package.json +0 -12
  104. package/src/vendor/bootstrap-vue/src/components/index.d.ts +0 -24
  105. package/src/vendor/bootstrap-vue/src/components/index.js +0 -48
  106. package/src/vendor/bootstrap-vue/src/components/index.scss +0 -15
  107. package/src/vendor/bootstrap-vue/src/components/layout/index.d.ts +0 -6
  108. package/src/vendor/bootstrap-vue/src/components/layout/index.js +1 -5
  109. package/src/vendor/bootstrap-vue/src/components/layout/package.json +0 -67
  110. package/src/vendor/bootstrap-vue/src/components/modal/README.md +0 -1
  111. package/src/vendor/bootstrap-vue/src/components/nav/index.d.ts +0 -6
  112. package/src/vendor/bootstrap-vue/src/components/nav/index.js +1 -5
  113. package/src/vendor/bootstrap-vue/src/components/nav/package.json +0 -45
  114. package/src/vendor/bootstrap-vue/src/components/navbar/README.md +0 -5
  115. package/src/vendor/bootstrap-vue/src/components/navbar/index.d.ts +1 -7
  116. package/src/vendor/bootstrap-vue/src/components/navbar/index.js +2 -7
  117. package/src/vendor/bootstrap-vue/src/components/navbar/package.json +0 -75
  118. package/src/vendor/bootstrap-vue/src/components/table/README.md +1 -2
  119. package/src/vendor/bootstrap-vue/src/components/tabs/README.md +2 -2
  120. package/src/vendor/bootstrap-vue/src/components/toast/README.md +1 -3
  121. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +2 -6
  122. package/src/vendor/bootstrap-vue/src/constants/classes.js +0 -1
  123. package/src/vendor/bootstrap-vue/src/constants/components.js +0 -50
  124. package/src/vendor/bootstrap-vue/src/constants/events.js +0 -11
  125. package/src/vendor/bootstrap-vue/src/constants/key-codes.js +0 -4
  126. package/src/vendor/bootstrap-vue/src/constants/props.js +0 -3
  127. package/src/vendor/bootstrap-vue/src/constants/regex.js +0 -19
  128. package/src/vendor/bootstrap-vue/src/constants/slots.js +0 -32
  129. package/src/vendor/bootstrap-vue/src/directives/toggle/README.md +5 -23
  130. package/src/vendor/bootstrap-vue/src/directives/toggle/package.json +1 -1
  131. package/src/vendor/bootstrap-vue/src/directives/toggle/toggle.js +1 -1
  132. package/src/vendor/bootstrap-vue/src/index.js +0 -122
  133. package/src/vendor/bootstrap-vue/src/index.scss +0 -3
  134. package/src/vendor/bootstrap-vue/src/utils/array.js +0 -5
  135. package/src/vendor/bootstrap-vue/src/utils/config.spec.js +15 -15
  136. package/src/vendor/bootstrap-vue/src/utils/inspect.js +0 -4
  137. package/src/vendor/bootstrap-vue/src/utils/math.js +0 -4
  138. package/src/vendor/bootstrap-vue/src/utils/object.js +0 -5
  139. package/src/vendor/bootstrap-vue/src/utils/props.js +1 -7
  140. package/src/vendor/bootstrap-vue/src/utils/string.js +0 -9
  141. package/src/vendor/bootstrap-vue/src/utils/string.spec.js +1 -20
  142. package/dist/vendor/bootstrap-vue/src/components/alert/alert.js +0 -179
  143. package/dist/vendor/bootstrap-vue/src/components/alert/index.js +0 -11
  144. package/dist/vendor/bootstrap-vue/src/components/aspect/aspect.js +0 -67
  145. package/dist/vendor/bootstrap-vue/src/components/aspect/index.js +0 -11
  146. package/dist/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +0 -67
  147. package/dist/vendor/bootstrap-vue/src/components/avatar/avatar.js +0 -266
  148. package/dist/vendor/bootstrap-vue/src/components/avatar/index.js +0 -14
  149. package/dist/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +0 -112
  150. package/dist/vendor/bootstrap-vue/src/components/button-toolbar/index.js +0 -12
  151. package/dist/vendor/bootstrap-vue/src/components/calendar/calendar.js +0 -1010
  152. package/dist/vendor/bootstrap-vue/src/components/calendar/index.js +0 -11
  153. package/dist/vendor/bootstrap-vue/src/components/card/card-body.js +0 -63
  154. package/dist/vendor/bootstrap-vue/src/components/card/card-footer.js +0 -48
  155. package/dist/vendor/bootstrap-vue/src/components/card/card-group.js +0 -33
  156. package/dist/vendor/bootstrap-vue/src/components/card/card-header.js +0 -48
  157. package/dist/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +0 -46
  158. package/dist/vendor/bootstrap-vue/src/components/card/card-img.js +0 -58
  159. package/dist/vendor/bootstrap-vue/src/components/card/card-sub-title.js +0 -35
  160. package/dist/vendor/bootstrap-vue/src/components/card/card-text.js +0 -31
  161. package/dist/vendor/bootstrap-vue/src/components/card/card-title.js +0 -33
  162. package/dist/vendor/bootstrap-vue/src/components/card/card.js +0 -123
  163. package/dist/vendor/bootstrap-vue/src/components/card/index.js +0 -38
  164. package/dist/vendor/bootstrap-vue/src/components/embed/embed.js +0 -50
  165. package/dist/vendor/bootstrap-vue/src/components/embed/index.js +0 -11
  166. package/dist/vendor/bootstrap-vue/src/components/form/form-datalist.js +0 -52
  167. package/dist/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +0 -261
  168. package/dist/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +0 -310
  169. package/dist/vendor/bootstrap-vue/src/components/form-datepicker/index.js +0 -12
  170. package/dist/vendor/bootstrap-vue/src/components/form-file/form-file.js +0 -561
  171. package/dist/vendor/bootstrap-vue/src/components/form-file/index.js +0 -12
  172. package/dist/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +0 -402
  173. package/dist/vendor/bootstrap-vue/src/components/form-rating/index.js +0 -12
  174. package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +0 -555
  175. package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +0 -12
  176. package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +0 -97
  177. package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +0 -806
  178. package/dist/vendor/bootstrap-vue/src/components/form-tags/index.js +0 -16
  179. package/dist/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +0 -281
  180. package/dist/vendor/bootstrap-vue/src/components/form-timepicker/index.js +0 -12
  181. package/dist/vendor/bootstrap-vue/src/components/image/img-lazy.js +0 -157
  182. package/dist/vendor/bootstrap-vue/src/components/image/img.js +0 -124
  183. package/dist/vendor/bootstrap-vue/src/components/image/index.js +0 -14
  184. package/dist/vendor/bootstrap-vue/src/components/jumbotron/index.js +0 -11
  185. package/dist/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +0 -98
  186. package/dist/vendor/bootstrap-vue/src/components/layout/container.js +0 -41
  187. package/dist/vendor/bootstrap-vue/src/components/layout/row.js +0 -113
  188. package/dist/vendor/bootstrap-vue/src/components/list-group/index.js +0 -14
  189. package/dist/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +0 -78
  190. package/dist/vendor/bootstrap-vue/src/components/list-group/list-group.js +0 -42
  191. package/dist/vendor/bootstrap-vue/src/components/media/index.js +0 -17
  192. package/dist/vendor/bootstrap-vue/src/components/media/media-aside.js +0 -41
  193. package/dist/vendor/bootstrap-vue/src/components/media/media-body.js +0 -31
  194. package/dist/vendor/bootstrap-vue/src/components/media/media.js +0 -61
  195. package/dist/vendor/bootstrap-vue/src/components/nav/nav-form.js +0 -45
  196. package/dist/vendor/bootstrap-vue/src/components/nav/nav-text.js +0 -26
  197. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +0 -46
  198. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +0 -89
  199. package/dist/vendor/bootstrap-vue/src/components/overlay/index.js +0 -11
  200. package/dist/vendor/bootstrap-vue/src/components/overlay/overlay.js +0 -163
  201. package/dist/vendor/bootstrap-vue/src/components/pagination/index.js +0 -11
  202. package/dist/vendor/bootstrap-vue/src/components/pagination/pagination.js +0 -135
  203. package/dist/vendor/bootstrap-vue/src/components/pagination-nav/index.js +0 -11
  204. package/dist/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +0 -299
  205. package/dist/vendor/bootstrap-vue/src/components/sidebar/index.js +0 -15
  206. package/dist/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +0 -432
  207. package/dist/vendor/bootstrap-vue/src/components/skeleton/index.js +0 -23
  208. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +0 -47
  209. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +0 -60
  210. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +0 -64
  211. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +0 -46
  212. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +0 -49
  213. package/dist/vendor/bootstrap-vue/src/components/spinner/index.js +0 -11
  214. package/dist/vendor/bootstrap-vue/src/components/spinner/spinner.js +0 -55
  215. package/dist/vendor/bootstrap-vue/src/components/time/index.js +0 -11
  216. package/dist/vendor/bootstrap-vue/src/components/time/time.js +0 -600
  217. package/dist/vendor/bootstrap-vue/src/constants/date.js +0 -8
  218. package/dist/vendor/bootstrap-vue/src/mixins/card.js +0 -22
  219. package/dist/vendor/bootstrap-vue/src/mixins/pagination.js +0 -598
  220. package/dist/vendor/bootstrap-vue/src/utils/date.js +0 -135
  221. package/src/vendor/bootstrap-vue/src/_custom-controls.scss +0 -30
  222. package/src/vendor/bootstrap-vue/src/components/alert/README.md +0 -280
  223. package/src/vendor/bootstrap-vue/src/components/alert/alert.js +0 -185
  224. package/src/vendor/bootstrap-vue/src/components/alert/alert.spec.js +0 -442
  225. package/src/vendor/bootstrap-vue/src/components/alert/index.d.ts +0 -13
  226. package/src/vendor/bootstrap-vue/src/components/alert/index.js +0 -8
  227. package/src/vendor/bootstrap-vue/src/components/alert/package.json +0 -72
  228. package/src/vendor/bootstrap-vue/src/components/aspect/README.md +0 -65
  229. package/src/vendor/bootstrap-vue/src/components/aspect/aspect.js +0 -65
  230. package/src/vendor/bootstrap-vue/src/components/aspect/aspect.spec.js +0 -121
  231. package/src/vendor/bootstrap-vue/src/components/aspect/index.d.ts +0 -11
  232. package/src/vendor/bootstrap-vue/src/components/aspect/index.js +0 -8
  233. package/src/vendor/bootstrap-vue/src/components/aspect/package.json +0 -26
  234. package/src/vendor/bootstrap-vue/src/components/avatar/README.md +0 -567
  235. package/src/vendor/bootstrap-vue/src/components/avatar/_avatar.scss +0 -148
  236. package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +0 -75
  237. package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.spec.js +0 -74
  238. package/src/vendor/bootstrap-vue/src/components/avatar/avatar.js +0 -228
  239. package/src/vendor/bootstrap-vue/src/components/avatar/avatar.spec.js +0 -355
  240. package/src/vendor/bootstrap-vue/src/components/avatar/index.d.ts +0 -14
  241. package/src/vendor/bootstrap-vue/src/components/avatar/index.js +0 -9
  242. package/src/vendor/bootstrap-vue/src/components/avatar/index.scss +0 -1
  243. package/src/vendor/bootstrap-vue/src/components/avatar/package.json +0 -149
  244. package/src/vendor/bootstrap-vue/src/components/button-toolbar/README.md +0 -109
  245. package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +0 -117
  246. package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.spec.js +0 -185
  247. package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.d.ts +0 -11
  248. package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.js +0 -11
  249. package/src/vendor/bootstrap-vue/src/components/button-toolbar/package.json +0 -32
  250. package/src/vendor/bootstrap-vue/src/components/calendar/README.md +0 -735
  251. package/src/vendor/bootstrap-vue/src/components/calendar/_calendar.scss +0 -78
  252. package/src/vendor/bootstrap-vue/src/components/calendar/calendar.js +0 -1146
  253. package/src/vendor/bootstrap-vue/src/components/calendar/calendar.spec.js +0 -466
  254. package/src/vendor/bootstrap-vue/src/components/calendar/index.d.ts +0 -28
  255. package/src/vendor/bootstrap-vue/src/components/calendar/index.js +0 -8
  256. package/src/vendor/bootstrap-vue/src/components/calendar/index.scss +0 -1
  257. package/src/vendor/bootstrap-vue/src/components/calendar/package.json +0 -317
  258. package/src/vendor/bootstrap-vue/src/components/card/README.md +0 -729
  259. package/src/vendor/bootstrap-vue/src/components/card/_card-img.scss +0 -7
  260. package/src/vendor/bootstrap-vue/src/components/card/card-body.js +0 -69
  261. package/src/vendor/bootstrap-vue/src/components/card/card-body.spec.js +0 -142
  262. package/src/vendor/bootstrap-vue/src/components/card/card-footer.js +0 -48
  263. package/src/vendor/bootstrap-vue/src/components/card/card-footer.spec.js +0 -98
  264. package/src/vendor/bootstrap-vue/src/components/card/card-group.js +0 -33
  265. package/src/vendor/bootstrap-vue/src/components/card/card-group.spec.js +0 -75
  266. package/src/vendor/bootstrap-vue/src/components/card/card-header.js +0 -48
  267. package/src/vendor/bootstrap-vue/src/components/card/card-header.spec.js +0 -98
  268. package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +0 -47
  269. package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.spec.js +0 -204
  270. package/src/vendor/bootstrap-vue/src/components/card/card-img.js +0 -50
  271. package/src/vendor/bootstrap-vue/src/components/card/card-img.spec.js +0 -208
  272. package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.js +0 -35
  273. package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.spec.js +0 -60
  274. package/src/vendor/bootstrap-vue/src/components/card/card-text.js +0 -25
  275. package/src/vendor/bootstrap-vue/src/components/card/card-text.spec.js +0 -48
  276. package/src/vendor/bootstrap-vue/src/components/card/card-title.js +0 -33
  277. package/src/vendor/bootstrap-vue/src/components/card/card-title.spec.js +0 -45
  278. package/src/vendor/bootstrap-vue/src/components/card/card.js +0 -140
  279. package/src/vendor/bootstrap-vue/src/components/card/card.spec.js +0 -296
  280. package/src/vendor/bootstrap-vue/src/components/card/index.d.ts +0 -38
  281. package/src/vendor/bootstrap-vue/src/components/card/index.js +0 -40
  282. package/src/vendor/bootstrap-vue/src/components/card/index.scss +0 -1
  283. package/src/vendor/bootstrap-vue/src/components/card/package.json +0 -262
  284. package/src/vendor/bootstrap-vue/src/components/embed/README.md +0 -63
  285. package/src/vendor/bootstrap-vue/src/components/embed/embed.js +0 -51
  286. package/src/vendor/bootstrap-vue/src/components/embed/embed.spec.js +0 -110
  287. package/src/vendor/bootstrap-vue/src/components/embed/index.d.ts +0 -11
  288. package/src/vendor/bootstrap-vue/src/components/embed/index.js +0 -8
  289. package/src/vendor/bootstrap-vue/src/components/embed/package.json +0 -29
  290. package/src/vendor/bootstrap-vue/src/components/form/form-datalist.js +0 -42
  291. package/src/vendor/bootstrap-vue/src/components/form/form-datalist.spec.js +0 -57
  292. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/_form-btn-label-control.scss +0 -125
  293. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +0 -278
  294. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/index.scss +0 -1
  295. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/package.json +0 -5
  296. package/src/vendor/bootstrap-vue/src/components/form-datepicker/README.md +0 -694
  297. package/src/vendor/bootstrap-vue/src/components/form-datepicker/_form-datepicker.scss +0 -1
  298. package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +0 -342
  299. package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.spec.js +0 -562
  300. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.d.ts +0 -12
  301. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.js +0 -11
  302. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.scss +0 -1
  303. package/src/vendor/bootstrap-vue/src/components/form-datepicker/package.json +0 -420
  304. package/src/vendor/bootstrap-vue/src/components/form-file/README.md +0 -357
  305. package/src/vendor/bootstrap-vue/src/components/form-file/_form-file.scss +0 -61
  306. package/src/vendor/bootstrap-vue/src/components/form-file/form-file.js +0 -575
  307. package/src/vendor/bootstrap-vue/src/components/form-file/form-file.spec.js +0 -885
  308. package/src/vendor/bootstrap-vue/src/components/form-file/index.d.ts +0 -13
  309. package/src/vendor/bootstrap-vue/src/components/form-file/index.js +0 -11
  310. package/src/vendor/bootstrap-vue/src/components/form-file/index.scss +0 -1
  311. package/src/vendor/bootstrap-vue/src/components/form-file/package.json +0 -131
  312. package/src/vendor/bootstrap-vue/src/components/form-rating/README.md +0 -526
  313. package/src/vendor/bootstrap-vue/src/components/form-rating/_form-rating.scss +0 -57
  314. package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +0 -411
  315. package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.spec.js +0 -544
  316. package/src/vendor/bootstrap-vue/src/components/form-rating/index.d.ts +0 -14
  317. package/src/vendor/bootstrap-vue/src/components/form-rating/index.js +0 -8
  318. package/src/vendor/bootstrap-vue/src/components/form-rating/index.scss +0 -1
  319. package/src/vendor/bootstrap-vue/src/components/form-rating/package.json +0 -166
  320. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/README.md +0 -411
  321. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/_spinbutton.scss +0 -76
  322. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +0 -572
  323. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.spec.js +0 -731
  324. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.d.ts +0 -12
  325. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +0 -11
  326. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.scss +0 -1
  327. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/package.json +0 -150
  328. package/src/vendor/bootstrap-vue/src/components/form-tags/README.md +0 -880
  329. package/src/vendor/bootstrap-vue/src/components/form-tags/_form-tags.scss +0 -70
  330. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +0 -94
  331. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.spec.js +0 -166
  332. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +0 -891
  333. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.spec.js +0 -920
  334. package/src/vendor/bootstrap-vue/src/components/form-tags/index.d.ts +0 -16
  335. package/src/vendor/bootstrap-vue/src/components/form-tags/index.js +0 -14
  336. package/src/vendor/bootstrap-vue/src/components/form-tags/index.scss +0 -1
  337. package/src/vendor/bootstrap-vue/src/components/form-tags/package.json +0 -440
  338. package/src/vendor/bootstrap-vue/src/components/form-timepicker/README.md +0 -450
  339. package/src/vendor/bootstrap-vue/src/components/form-timepicker/_form-timepicker.scss +0 -1
  340. package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +0 -308
  341. package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.spec.js +0 -440
  342. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.d.ts +0 -12
  343. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.js +0 -11
  344. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.scss +0 -1
  345. package/src/vendor/bootstrap-vue/src/components/form-timepicker/package.json +0 -255
  346. package/src/vendor/bootstrap-vue/src/components/image/README.md +0 -322
  347. package/src/vendor/bootstrap-vue/src/components/image/img-lazy.js +0 -161
  348. package/src/vendor/bootstrap-vue/src/components/image/img-lazy.spec.js +0 -96
  349. package/src/vendor/bootstrap-vue/src/components/image/img.js +0 -139
  350. package/src/vendor/bootstrap-vue/src/components/image/img.spec.js +0 -255
  351. package/src/vendor/bootstrap-vue/src/components/image/index.d.ts +0 -14
  352. package/src/vendor/bootstrap-vue/src/components/image/index.js +0 -12
  353. package/src/vendor/bootstrap-vue/src/components/image/package.json +0 -152
  354. package/src/vendor/bootstrap-vue/src/components/jumbotron/README.md +0 -109
  355. package/src/vendor/bootstrap-vue/src/components/jumbotron/index.d.ts +0 -11
  356. package/src/vendor/bootstrap-vue/src/components/jumbotron/index.js +0 -8
  357. package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +0 -103
  358. package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.spec.js +0 -254
  359. package/src/vendor/bootstrap-vue/src/components/jumbotron/package.json +0 -66
  360. package/src/vendor/bootstrap-vue/src/components/layout/container.js +0 -40
  361. package/src/vendor/bootstrap-vue/src/components/layout/container.spec.js +0 -75
  362. package/src/vendor/bootstrap-vue/src/components/layout/row.js +0 -111
  363. package/src/vendor/bootstrap-vue/src/components/layout/row.spec.js +0 -138
  364. package/src/vendor/bootstrap-vue/src/components/list-group/README.md +0 -291
  365. package/src/vendor/bootstrap-vue/src/components/list-group/index.d.ts +0 -14
  366. package/src/vendor/bootstrap-vue/src/components/list-group/index.js +0 -12
  367. package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +0 -76
  368. package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.spec.js +0 -286
  369. package/src/vendor/bootstrap-vue/src/components/list-group/list-group.js +0 -42
  370. package/src/vendor/bootstrap-vue/src/components/list-group/list-group.spec.js +0 -132
  371. package/src/vendor/bootstrap-vue/src/components/list-group/package.json +0 -52
  372. package/src/vendor/bootstrap-vue/src/components/media/README.md +0 -183
  373. package/src/vendor/bootstrap-vue/src/components/media/_media.scss +0 -9
  374. package/src/vendor/bootstrap-vue/src/components/media/index.d.ts +0 -17
  375. package/src/vendor/bootstrap-vue/src/components/media/index.js +0 -14
  376. package/src/vendor/bootstrap-vue/src/components/media/index.scss +0 -1
  377. package/src/vendor/bootstrap-vue/src/components/media/media-aside.js +0 -45
  378. package/src/vendor/bootstrap-vue/src/components/media/media-aside.spec.js +0 -79
  379. package/src/vendor/bootstrap-vue/src/components/media/media-body.js +0 -25
  380. package/src/vendor/bootstrap-vue/src/components/media/media-body.spec.js +0 -47
  381. package/src/vendor/bootstrap-vue/src/components/media/media.js +0 -52
  382. package/src/vendor/bootstrap-vue/src/components/media/media.spec.js +0 -149
  383. package/src/vendor/bootstrap-vue/src/components/media/package.json +0 -65
  384. package/src/vendor/bootstrap-vue/src/components/nav/nav-form.js +0 -50
  385. package/src/vendor/bootstrap-vue/src/components/nav/nav-form.spec.js +0 -93
  386. package/src/vendor/bootstrap-vue/src/components/nav/nav-text.js +0 -18
  387. package/src/vendor/bootstrap-vue/src/components/nav/nav-text.spec.js +0 -30
  388. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +0 -45
  389. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.spec.js +0 -105
  390. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +0 -84
  391. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.spec.js +0 -189
  392. package/src/vendor/bootstrap-vue/src/components/overlay/README.md +0 -815
  393. package/src/vendor/bootstrap-vue/src/components/overlay/index.d.ts +0 -11
  394. package/src/vendor/bootstrap-vue/src/components/overlay/index.js +0 -8
  395. package/src/vendor/bootstrap-vue/src/components/overlay/overlay.js +0 -162
  396. package/src/vendor/bootstrap-vue/src/components/overlay/overlay.spec.js +0 -257
  397. package/src/vendor/bootstrap-vue/src/components/overlay/package.json +0 -130
  398. package/src/vendor/bootstrap-vue/src/components/pagination/README.md +0 -430
  399. package/src/vendor/bootstrap-vue/src/components/pagination/_pagination.scss +0 -26
  400. package/src/vendor/bootstrap-vue/src/components/pagination/index.d.ts +0 -11
  401. package/src/vendor/bootstrap-vue/src/components/pagination/index.js +0 -8
  402. package/src/vendor/bootstrap-vue/src/components/pagination/index.scss +0 -1
  403. package/src/vendor/bootstrap-vue/src/components/pagination/package.json +0 -295
  404. package/src/vendor/bootstrap-vue/src/components/pagination/pagination.js +0 -138
  405. package/src/vendor/bootstrap-vue/src/components/pagination/pagination.spec.js +0 -1198
  406. package/src/vendor/bootstrap-vue/src/components/pagination-nav/README.md +0 -544
  407. package/src/vendor/bootstrap-vue/src/components/pagination-nav/_pagination-nav.scss +0 -2
  408. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.d.ts +0 -11
  409. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.js +0 -8
  410. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.scss +0 -1
  411. package/src/vendor/bootstrap-vue/src/components/pagination-nav/package.json +0 -315
  412. package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +0 -281
  413. package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.spec.js +0 -671
  414. package/src/vendor/bootstrap-vue/src/components/sidebar/README.md +0 -406
  415. package/src/vendor/bootstrap-vue/src/components/sidebar/_sidebar.scss +0 -97
  416. package/src/vendor/bootstrap-vue/src/components/sidebar/index.d.ts +0 -11
  417. package/src/vendor/bootstrap-vue/src/components/sidebar/index.js +0 -10
  418. package/src/vendor/bootstrap-vue/src/components/sidebar/index.scss +0 -1
  419. package/src/vendor/bootstrap-vue/src/components/sidebar/package.json +0 -239
  420. package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +0 -438
  421. package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.spec.js +0 -404
  422. package/src/vendor/bootstrap-vue/src/components/skeleton/README.md +0 -275
  423. package/src/vendor/bootstrap-vue/src/components/skeleton/_skeleton.scss +0 -141
  424. package/src/vendor/bootstrap-vue/src/components/skeleton/index.d.ts +0 -23
  425. package/src/vendor/bootstrap-vue/src/components/skeleton/index.js +0 -18
  426. package/src/vendor/bootstrap-vue/src/components/skeleton/index.scss +0 -1
  427. package/src/vendor/bootstrap-vue/src/components/skeleton/package.json +0 -136
  428. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +0 -45
  429. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.spec.js +0 -86
  430. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +0 -49
  431. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.spec.js +0 -139
  432. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +0 -58
  433. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.spec.js +0 -119
  434. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +0 -47
  435. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.spec.js +0 -48
  436. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +0 -46
  437. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.spec.js +0 -126
  438. package/src/vendor/bootstrap-vue/src/components/spinner/README.md +0 -229
  439. package/src/vendor/bootstrap-vue/src/components/spinner/index.d.ts +0 -11
  440. package/src/vendor/bootstrap-vue/src/components/spinner/index.js +0 -8
  441. package/src/vendor/bootstrap-vue/src/components/spinner/package.json +0 -38
  442. package/src/vendor/bootstrap-vue/src/components/spinner/spinner.js +0 -54
  443. package/src/vendor/bootstrap-vue/src/components/spinner/spinner.spec.js +0 -305
  444. package/src/vendor/bootstrap-vue/src/components/time/README.md +0 -431
  445. package/src/vendor/bootstrap-vue/src/components/time/_time.scss +0 -41
  446. package/src/vendor/bootstrap-vue/src/components/time/index.d.ts +0 -27
  447. package/src/vendor/bootstrap-vue/src/components/time/index.js +0 -8
  448. package/src/vendor/bootstrap-vue/src/components/time/index.scss +0 -1
  449. package/src/vendor/bootstrap-vue/src/components/time/package.json +0 -123
  450. package/src/vendor/bootstrap-vue/src/components/time/time.js +0 -601
  451. package/src/vendor/bootstrap-vue/src/components/time/time.spec.js +0 -330
  452. package/src/vendor/bootstrap-vue/src/constants/date.js +0 -7
  453. package/src/vendor/bootstrap-vue/src/mixins/card.js +0 -23
  454. package/src/vendor/bootstrap-vue/src/mixins/pagination.js +0 -670
  455. package/src/vendor/bootstrap-vue/src/utils/date.js +0 -130
  456. package/src/vendor/bootstrap-vue/src/utils/date.spec.js +0 -159
@@ -1,670 +0,0 @@
1
- import { extend } from '../vue'
2
- import { NAME_PAGINATION } from '../constants/components'
3
- import { CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../constants/key-codes'
4
- import {
5
- PROP_TYPE_ARRAY_OBJECT_STRING,
6
- PROP_TYPE_BOOLEAN,
7
- PROP_TYPE_BOOLEAN_NUMBER_STRING,
8
- PROP_TYPE_FUNCTION_STRING,
9
- PROP_TYPE_NUMBER_STRING,
10
- PROP_TYPE_STRING
11
- } from '../constants/props'
12
- import {
13
- SLOT_NAME_ELLIPSIS_TEXT,
14
- SLOT_NAME_FIRST_TEXT,
15
- SLOT_NAME_LAST_TEXT,
16
- SLOT_NAME_NEXT_TEXT,
17
- SLOT_NAME_PAGE,
18
- SLOT_NAME_PREV_TEXT
19
- } from '../constants/slots'
20
- import { createArray } from '../utils/array'
21
- import {
22
- attemptFocus,
23
- getActiveElement,
24
- getAttr,
25
- isDisabled,
26
- isVisible,
27
- selectAll
28
- } from '../utils/dom'
29
- import { stopEvent } from '../utils/events'
30
- import { isFunction, isNull } from '../utils/inspect'
31
- import { mathFloor, mathMax, mathMin } from '../utils/math'
32
- import { makeModelMixin } from '../utils/model'
33
- import { toInteger } from '../utils/number'
34
- import { sortKeys } from '../utils/object'
35
- import { hasPropFunction, makeProp, makePropsConfigurable } from '../utils/props'
36
- import { safeVueInstance } from '../utils/safe-vue-instance'
37
- import { toString } from '../utils/string'
38
- import { warn } from '../utils/warn'
39
- import { normalizeSlotMixin } from '../mixins/normalize-slot'
40
- import { BLink } from '../components/link/link'
41
-
42
- // Common props, computed, data, render function, and methods
43
- // for `<b-pagination>` and `<b-pagination-nav>`
44
-
45
- // --- Constants ---
46
-
47
- const {
48
- mixin: modelMixin,
49
- props: modelProps,
50
- prop: MODEL_PROP_NAME,
51
- event: MODEL_EVENT_NAME
52
- } = makeModelMixin('value', {
53
- type: PROP_TYPE_BOOLEAN_NUMBER_STRING,
54
- defaultValue: null,
55
- /* istanbul ignore next */
56
- validator(value) {
57
- if (!isNull(value) && toInteger(value, 0) < 1) {
58
- warn('"v-model" value must be a number greater than "0"', NAME_PAGINATION)
59
- return false
60
- }
61
- return true
62
- }
63
- })
64
-
65
- export { MODEL_PROP_NAME, MODEL_EVENT_NAME }
66
-
67
- // Threshold of limit size when we start/stop showing ellipsis
68
- const ELLIPSIS_THRESHOLD = 3
69
-
70
- // Default # of buttons limit
71
- const DEFAULT_LIMIT = 5
72
-
73
- // --- Helper methods ---
74
-
75
- // Make an array of N to N+X
76
- const makePageArray = (startNumber, numberOfPages) =>
77
- createArray(numberOfPages, (_, i) => ({ number: startNumber + i, classes: null }))
78
-
79
- // Sanitize the provided limit value (converting to a number)
80
- const sanitizeLimit = value => {
81
- const limit = toInteger(value) || 1
82
- return limit < 1 ? DEFAULT_LIMIT : limit
83
- }
84
-
85
- // Sanitize the provided current page number (converting to a number)
86
- const sanitizeCurrentPage = (val, numberOfPages) => {
87
- const page = toInteger(val) || 1
88
- return page > numberOfPages ? numberOfPages : page < 1 ? 1 : page
89
- }
90
-
91
- // Links don't normally respond to SPACE, so we add that
92
- // functionality via this handler
93
- const onSpaceKey = event => {
94
- if (event.keyCode === CODE_SPACE) {
95
- // Stop page from scrolling
96
- stopEvent(event, { immediatePropagation: true })
97
- // Trigger the click event on the link
98
- event.currentTarget.click()
99
- return false
100
- }
101
- }
102
-
103
- // --- Props ---
104
-
105
- export const props = makePropsConfigurable(
106
- sortKeys({
107
- ...modelProps,
108
- align: makeProp(PROP_TYPE_STRING, 'left'),
109
- ariaLabel: makeProp(PROP_TYPE_STRING, 'Pagination'),
110
- disabled: makeProp(PROP_TYPE_BOOLEAN, false),
111
- ellipsisClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
112
- ellipsisText: makeProp(PROP_TYPE_STRING, '\u2026'), // '…'
113
- firstClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
114
- firstNumber: makeProp(PROP_TYPE_BOOLEAN, false),
115
- firstText: makeProp(PROP_TYPE_STRING, '\u00AB'), // '«'
116
- hideEllipsis: makeProp(PROP_TYPE_BOOLEAN, false),
117
- hideGotoEndButtons: makeProp(PROP_TYPE_BOOLEAN, false),
118
- labelFirstPage: makeProp(PROP_TYPE_STRING, 'Go to first page'),
119
- labelLastPage: makeProp(PROP_TYPE_STRING, 'Go to last page'),
120
- labelNextPage: makeProp(PROP_TYPE_STRING, 'Go to next page'),
121
- labelPage: makeProp(PROP_TYPE_FUNCTION_STRING, 'Go to page'),
122
- labelPrevPage: makeProp(PROP_TYPE_STRING, 'Go to previous page'),
123
- lastClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
124
- lastNumber: makeProp(PROP_TYPE_BOOLEAN, false),
125
- lastText: makeProp(PROP_TYPE_STRING, '\u00BB'), // '»'
126
- limit: makeProp(
127
- PROP_TYPE_NUMBER_STRING,
128
- DEFAULT_LIMIT,
129
- /* istanbul ignore next */ value => {
130
- if (toInteger(value, 0) < 1) {
131
- warn('Prop "limit" must be a number greater than "0"', NAME_PAGINATION)
132
- return false
133
- }
134
- return true
135
- }
136
- ),
137
- nextClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
138
- nextText: makeProp(PROP_TYPE_STRING, '\u203A'), // '›'
139
- pageClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
140
- pills: makeProp(PROP_TYPE_BOOLEAN, false),
141
- prevClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
142
- prevText: makeProp(PROP_TYPE_STRING, '\u2039'), // '‹'
143
- size: makeProp(PROP_TYPE_STRING)
144
- }),
145
- 'pagination'
146
- )
147
-
148
- // --- Mixin ---
149
-
150
- // @vue/component
151
- export const paginationMixin = extend({
152
- mixins: [modelMixin, normalizeSlotMixin],
153
- props,
154
- data() {
155
- // `-1` signifies no page initially selected
156
- let currentPage = toInteger(this[MODEL_PROP_NAME], 0)
157
- currentPage = currentPage > 0 ? currentPage : -1
158
-
159
- return {
160
- currentPage,
161
- localNumberOfPages: 1,
162
- localLimit: DEFAULT_LIMIT
163
- }
164
- },
165
- computed: {
166
- btnSize() {
167
- const { size } = this
168
- return size ? `pagination-${size}` : ''
169
- },
170
- alignment() {
171
- const { align } = this
172
- if (align === 'center') {
173
- return 'justify-content-center'
174
- } else if (align === 'end' || align === 'right') {
175
- return 'justify-content-end'
176
- } else if (align === 'fill') {
177
- // The page-items will also have 'flex-fill' added
178
- // We add text centering to make the button appearance better in fill mode
179
- return 'text-center'
180
- }
181
- return ''
182
- },
183
- styleClass() {
184
- return this.pills ? 'b-pagination-pills' : ''
185
- },
186
- computedCurrentPage() {
187
- return sanitizeCurrentPage(this.currentPage, this.localNumberOfPages)
188
- },
189
- paginationParams() {
190
- // Determine if we should show the the ellipsis
191
- const {
192
- localLimit: limit,
193
- localNumberOfPages: numberOfPages,
194
- computedCurrentPage: currentPage,
195
- hideEllipsis,
196
- firstNumber,
197
- lastNumber
198
- } = this
199
- let showFirstDots = false
200
- let showLastDots = false
201
- let numberOfLinks = limit
202
- let startNumber = 1
203
-
204
- if (numberOfPages <= limit) {
205
- // Special case: Less pages available than the limit of displayed pages
206
- numberOfLinks = numberOfPages
207
- } else if (currentPage < limit - 1 && limit > ELLIPSIS_THRESHOLD) {
208
- if (!hideEllipsis || lastNumber) {
209
- showLastDots = true
210
- numberOfLinks = limit - (firstNumber ? 0 : 1)
211
- }
212
- numberOfLinks = mathMin(numberOfLinks, limit)
213
- } else if (numberOfPages - currentPage + 2 < limit && limit > ELLIPSIS_THRESHOLD) {
214
- if (!hideEllipsis || firstNumber) {
215
- showFirstDots = true
216
- numberOfLinks = limit - (lastNumber ? 0 : 1)
217
- }
218
- startNumber = numberOfPages - numberOfLinks + 1
219
- } else {
220
- // We are somewhere in the middle of the page list
221
- if (limit > ELLIPSIS_THRESHOLD) {
222
- numberOfLinks = limit - (hideEllipsis ? 0 : 2)
223
- showFirstDots = !!(!hideEllipsis || firstNumber)
224
- showLastDots = !!(!hideEllipsis || lastNumber)
225
- }
226
- startNumber = currentPage - mathFloor(numberOfLinks / 2)
227
- }
228
- // Sanity checks
229
- /* istanbul ignore if */
230
- if (startNumber < 1) {
231
- startNumber = 1
232
- showFirstDots = false
233
- } else if (startNumber > numberOfPages - numberOfLinks) {
234
- startNumber = numberOfPages - numberOfLinks + 1
235
- showLastDots = false
236
- }
237
- if (showFirstDots && firstNumber && startNumber < 4) {
238
- numberOfLinks = numberOfLinks + 2
239
- startNumber = 1
240
- showFirstDots = false
241
- }
242
- const lastPageNumber = startNumber + numberOfLinks - 1
243
- if (showLastDots && lastNumber && lastPageNumber > numberOfPages - 3) {
244
- numberOfLinks = numberOfLinks + (lastPageNumber === numberOfPages - 2 ? 2 : 3)
245
- showLastDots = false
246
- }
247
- // Special handling for lower limits (where ellipsis are never shown)
248
- if (limit <= ELLIPSIS_THRESHOLD) {
249
- if (firstNumber && startNumber === 1) {
250
- numberOfLinks = mathMin(numberOfLinks + 1, numberOfPages, limit + 1)
251
- } else if (lastNumber && numberOfPages === startNumber + numberOfLinks - 1) {
252
- startNumber = mathMax(startNumber - 1, 1)
253
- numberOfLinks = mathMin(numberOfPages - startNumber + 1, numberOfPages, limit + 1)
254
- }
255
- }
256
- numberOfLinks = mathMin(numberOfLinks, numberOfPages - startNumber + 1)
257
- return { showFirstDots, showLastDots, numberOfLinks, startNumber }
258
- },
259
- pageList() {
260
- // Generates the pageList array
261
- const { numberOfLinks, startNumber } = this.paginationParams
262
- const currentPage = this.computedCurrentPage
263
- // Generate list of page numbers
264
- const pages = makePageArray(startNumber, numberOfLinks)
265
- // We limit to a total of 3 page buttons on XS screens
266
- // So add classes to page links to hide them for XS breakpoint
267
- // Note: Ellipsis will also be hidden on XS screens
268
- // TODO: Make this visual limit configurable based on breakpoint(s)
269
- if (pages.length > 3) {
270
- const idx = currentPage - startNumber
271
- // THe following is a bootstrap-vue custom utility class
272
- const classes = 'bv-d-xs-down-none'
273
- if (idx === 0) {
274
- // Keep leftmost 3 buttons visible when current page is first page
275
- for (let i = 3; i < pages.length; i++) {
276
- pages[i].classes = classes
277
- }
278
- } else if (idx === pages.length - 1) {
279
- // Keep rightmost 3 buttons visible when current page is last page
280
- for (let i = 0; i < pages.length - 3; i++) {
281
- pages[i].classes = classes
282
- }
283
- } else {
284
- // Hide all except current page, current page - 1 and current page + 1
285
- for (let i = 0; i < idx - 1; i++) {
286
- // hide some left button(s)
287
- pages[i].classes = classes
288
- }
289
- for (let i = pages.length - 1; i > idx + 1; i--) {
290
- // hide some right button(s)
291
- pages[i].classes = classes
292
- }
293
- }
294
- }
295
- return pages
296
- }
297
- },
298
- watch: {
299
- [MODEL_PROP_NAME](newValue, oldValue) {
300
- if (newValue !== oldValue) {
301
- this.currentPage = sanitizeCurrentPage(newValue, this.localNumberOfPages)
302
- }
303
- },
304
- currentPage(newValue, oldValue) {
305
- if (newValue !== oldValue) {
306
- // Emit `null` if no page selected
307
- this.$emit(MODEL_EVENT_NAME, newValue > 0 ? newValue : null)
308
- }
309
- },
310
- limit(newValue, oldValue) {
311
- if (newValue !== oldValue) {
312
- this.localLimit = sanitizeLimit(newValue)
313
- }
314
- }
315
- },
316
- created() {
317
- // Set our default values in data
318
- this.localLimit = sanitizeLimit(this.limit)
319
- this.$nextTick(() => {
320
- // Sanity check
321
- this.currentPage =
322
- this.currentPage > this.localNumberOfPages ? this.localNumberOfPages : this.currentPage
323
- })
324
- },
325
- methods: {
326
- handleKeyNav(event) {
327
- const { keyCode, shiftKey } = event
328
- /* istanbul ignore if */
329
- if (this.isNav) {
330
- // We disable left/right keyboard navigation in `<b-pagination-nav>`
331
- return
332
- }
333
- if (keyCode === CODE_LEFT || keyCode === CODE_UP) {
334
- stopEvent(event, { propagation: false })
335
- shiftKey ? this.focusFirst() : this.focusPrev()
336
- } else if (keyCode === CODE_RIGHT || keyCode === CODE_DOWN) {
337
- stopEvent(event, { propagation: false })
338
- shiftKey ? this.focusLast() : this.focusNext()
339
- }
340
- },
341
- getButtons() {
342
- // Return only buttons that are visible
343
- return selectAll('button.page-link, a.page-link', this.$el).filter(btn => isVisible(btn))
344
- },
345
- focusCurrent() {
346
- // We do this in `$nextTick()` to ensure buttons have finished rendering
347
- this.$nextTick(() => {
348
- const btn = this.getButtons().find(
349
- el => toInteger(getAttr(el, 'aria-posinset'), 0) === this.computedCurrentPage
350
- )
351
- if (!attemptFocus(btn)) {
352
- // Fallback if current page is not in button list
353
- this.focusFirst()
354
- }
355
- })
356
- },
357
- focusFirst() {
358
- // We do this in `$nextTick()` to ensure buttons have finished rendering
359
- this.$nextTick(() => {
360
- const btn = this.getButtons().find(el => !isDisabled(el))
361
- attemptFocus(btn)
362
- })
363
- },
364
- focusLast() {
365
- // We do this in `$nextTick()` to ensure buttons have finished rendering
366
- this.$nextTick(() => {
367
- const btn = this.getButtons()
368
- .reverse()
369
- .find(el => !isDisabled(el))
370
- attemptFocus(btn)
371
- })
372
- },
373
- focusPrev() {
374
- // We do this in `$nextTick()` to ensure buttons have finished rendering
375
- this.$nextTick(() => {
376
- const buttons = this.getButtons()
377
- const index = buttons.indexOf(getActiveElement())
378
- if (index > 0 && !isDisabled(buttons[index - 1])) {
379
- attemptFocus(buttons[index - 1])
380
- }
381
- })
382
- },
383
- focusNext() {
384
- // We do this in `$nextTick()` to ensure buttons have finished rendering
385
- this.$nextTick(() => {
386
- const buttons = this.getButtons()
387
- const index = buttons.indexOf(getActiveElement())
388
- if (index < buttons.length - 1 && !isDisabled(buttons[index + 1])) {
389
- attemptFocus(buttons[index + 1])
390
- }
391
- })
392
- }
393
- },
394
- render(h) {
395
- const {
396
- disabled,
397
- labelPage,
398
- ariaLabel,
399
- isNav,
400
- localNumberOfPages: numberOfPages,
401
- computedCurrentPage: currentPage
402
- } = safeVueInstance(this)
403
- const pageNumbers = this.pageList.map(p => p.number)
404
- const { showFirstDots, showLastDots } = this.paginationParams
405
- const fill = this.align === 'fill'
406
- const $buttons = []
407
-
408
- // Helper function and flag
409
- const isActivePage = pageNumber => pageNumber === currentPage
410
- const noCurrentPage = this.currentPage < 1
411
-
412
- // Factory function for prev/next/first/last buttons
413
- const makeEndBtn = (linkTo, ariaLabel, btnSlot, btnText, btnClass, pageTest, key) => {
414
- const isDisabled =
415
- disabled || isActivePage(pageTest) || noCurrentPage || linkTo < 1 || linkTo > numberOfPages
416
- const pageNumber = linkTo < 1 ? 1 : linkTo > numberOfPages ? numberOfPages : linkTo
417
- const scope = { disabled: isDisabled, page: pageNumber, index: pageNumber - 1 }
418
- const $btnContent = this.normalizeSlot(btnSlot, scope) || toString(btnText) || h()
419
- const $inner = h(
420
- isDisabled ? 'span' : isNav ? BLink : 'button',
421
- {
422
- staticClass: 'page-link',
423
- class: { 'flex-grow-1': !isNav && !isDisabled && fill },
424
- props: isDisabled || !isNav ? {} : this.linkProps(linkTo),
425
- attrs: {
426
- role: isNav ? null : 'menuitem',
427
- type: isNav || isDisabled ? null : 'button',
428
- tabindex: isDisabled || isNav ? null : '-1',
429
- 'aria-label': ariaLabel,
430
- 'aria-controls': safeVueInstance(this).ariaControls || null,
431
- 'aria-disabled': isDisabled ? 'true' : null
432
- },
433
- on: isDisabled
434
- ? {}
435
- : {
436
- '!click': event => {
437
- this.onClick(event, linkTo)
438
- },
439
- keydown: onSpaceKey
440
- }
441
- },
442
- [$btnContent]
443
- )
444
- return h(
445
- 'li',
446
- {
447
- key,
448
- staticClass: 'page-item',
449
- class: [
450
- {
451
- disabled: isDisabled,
452
- 'flex-fill': fill,
453
- 'd-flex': fill && !isNav && !isDisabled
454
- },
455
- btnClass
456
- ],
457
- attrs: {
458
- role: isNav ? null : 'presentation',
459
- 'aria-hidden': isDisabled ? 'true' : null
460
- }
461
- },
462
- [$inner]
463
- )
464
- }
465
-
466
- // Ellipsis factory
467
- const makeEllipsis = isLast => {
468
- return h(
469
- 'li',
470
- {
471
- staticClass: 'page-item',
472
- class: ['disabled', 'bv-d-xs-down-none', fill ? 'flex-fill' : '', this.ellipsisClass],
473
- attrs: { role: 'separator' },
474
- key: `ellipsis-${isLast ? 'last' : 'first'}`
475
- },
476
- [
477
- h('span', { staticClass: 'page-link' }, [
478
- this.normalizeSlot(SLOT_NAME_ELLIPSIS_TEXT) || toString(this.ellipsisText) || h()
479
- ])
480
- ]
481
- )
482
- }
483
-
484
- // Page button factory
485
- const makePageButton = (page, idx) => {
486
- const { number: pageNumber } = page
487
- const active = isActivePage(pageNumber) && !noCurrentPage
488
- // Active page will have tabindex of 0, or if no current page and first page button
489
- const tabIndex = disabled ? null : active || (noCurrentPage && idx === 0) ? '0' : '-1'
490
-
491
- const attrs = {
492
- role: isNav ? null : 'menuitemradio',
493
- type: isNav || disabled ? null : 'button',
494
- 'aria-disabled': disabled ? 'true' : null,
495
- 'aria-controls': safeVueInstance(this).ariaControls || null,
496
- 'aria-label': hasPropFunction(labelPage)
497
- ? /* istanbul ignore next */ labelPage(pageNumber)
498
- : `${isFunction(labelPage) ? labelPage() : labelPage} ${pageNumber}`,
499
- 'aria-checked': isNav ? null : active ? 'true' : 'false',
500
- 'aria-current': isNav && active ? 'page' : null,
501
- 'aria-posinset': isNav ? null : pageNumber,
502
- 'aria-setsize': isNav ? null : numberOfPages,
503
- // ARIA "roving tabindex" method (except in `isNav` mode)
504
- tabindex: isNav ? null : tabIndex
505
- }
506
- const btnContent = toString(this.makePage(pageNumber))
507
- const scope = {
508
- page: pageNumber,
509
- index: pageNumber - 1,
510
- content: btnContent,
511
- active,
512
- disabled
513
- }
514
-
515
- const $inner = h(
516
- disabled ? 'span' : isNav ? BLink : 'button',
517
- {
518
- props: disabled || !isNav ? {} : this.linkProps(pageNumber),
519
- staticClass: 'page-link',
520
- class: { 'flex-grow-1': !isNav && !disabled && fill },
521
- attrs,
522
- on: disabled
523
- ? {}
524
- : {
525
- '!click': event => {
526
- this.onClick(event, pageNumber)
527
- },
528
- keydown: onSpaceKey
529
- }
530
- },
531
- [this.normalizeSlot(SLOT_NAME_PAGE, scope) || btnContent]
532
- )
533
-
534
- return h(
535
- 'li',
536
- {
537
- staticClass: 'page-item',
538
- class: [
539
- {
540
- disabled,
541
- active,
542
- 'flex-fill': fill,
543
- 'd-flex': fill && !isNav && !disabled
544
- },
545
- page.classes,
546
- this.pageClass
547
- ],
548
- attrs: { role: isNav ? null : 'presentation' },
549
- key: `page-${pageNumber}`
550
- },
551
- [$inner]
552
- )
553
- }
554
-
555
- // Goto first page button
556
- // Don't render button when `hideGotoEndButtons` or `firstNumber` is set
557
- let $firstPageBtn = h()
558
- if (!this.firstNumber && !this.hideGotoEndButtons) {
559
- $firstPageBtn = makeEndBtn(
560
- 1,
561
- this.labelFirstPage,
562
- SLOT_NAME_FIRST_TEXT,
563
- this.firstText,
564
- this.firstClass,
565
- 1,
566
- 'pagination-goto-first'
567
- )
568
- }
569
- $buttons.push($firstPageBtn)
570
-
571
- // Goto previous page button
572
- $buttons.push(
573
- makeEndBtn(
574
- currentPage - 1,
575
- this.labelPrevPage,
576
- SLOT_NAME_PREV_TEXT,
577
- this.prevText,
578
- this.prevClass,
579
- 1,
580
- 'pagination-goto-prev'
581
- )
582
- )
583
-
584
- // Show first (1) button?
585
- $buttons.push(this.firstNumber && pageNumbers[0] !== 1 ? makePageButton({ number: 1 }, 0) : h())
586
-
587
- // First ellipsis
588
- $buttons.push(showFirstDots ? makeEllipsis(false) : h())
589
-
590
- // Individual page links
591
- this.pageList.forEach((page, idx) => {
592
- const offset = showFirstDots && this.firstNumber && pageNumbers[0] !== 1 ? 1 : 0
593
- $buttons.push(makePageButton(page, idx + offset))
594
- })
595
-
596
- // Last ellipsis
597
- $buttons.push(showLastDots ? makeEllipsis(true) : h())
598
-
599
- // Show last page button?
600
- $buttons.push(
601
- this.lastNumber && pageNumbers[pageNumbers.length - 1] !== numberOfPages
602
- ? makePageButton({ number: numberOfPages }, -1)
603
- : h()
604
- )
605
-
606
- // Goto next page button
607
- $buttons.push(
608
- makeEndBtn(
609
- currentPage + 1,
610
- this.labelNextPage,
611
- SLOT_NAME_NEXT_TEXT,
612
- this.nextText,
613
- this.nextClass,
614
- numberOfPages,
615
- 'pagination-goto-next'
616
- )
617
- )
618
-
619
- // Goto last page button
620
- // Don't render button when `hideGotoEndButtons` or `lastNumber` is set
621
- let $lastPageBtn = h()
622
- if (!this.lastNumber && !this.hideGotoEndButtons) {
623
- $lastPageBtn = makeEndBtn(
624
- numberOfPages,
625
- this.labelLastPage,
626
- SLOT_NAME_LAST_TEXT,
627
- this.lastText,
628
- this.lastClass,
629
- numberOfPages,
630
- 'pagination-goto-last'
631
- )
632
- }
633
- $buttons.push($lastPageBtn)
634
-
635
- // Assemble the pagination buttons
636
- const $pagination = h(
637
- 'ul',
638
- {
639
- staticClass: 'pagination',
640
- class: ['b-pagination', this.btnSize, this.alignment, this.styleClass],
641
- attrs: {
642
- role: isNav ? null : 'menubar',
643
- 'aria-disabled': disabled ? 'true' : 'false',
644
- 'aria-label': isNav ? null : ariaLabel || null
645
- },
646
- // We disable keyboard left/right nav when `<b-pagination-nav>`
647
- on: isNav ? {} : { keydown: this.handleKeyNav },
648
- ref: 'ul'
649
- },
650
- $buttons
651
- )
652
-
653
- // If we are `<b-pagination-nav>`, wrap in `<nav>` wrapper
654
- if (isNav) {
655
- return h(
656
- 'nav',
657
- {
658
- attrs: {
659
- 'aria-disabled': disabled ? 'true' : null,
660
- 'aria-hidden': disabled ? 'true' : 'false',
661
- 'aria-label': isNav ? ariaLabel || null : null
662
- }
663
- },
664
- [$pagination]
665
- )
666
- }
667
-
668
- return $pagination
669
- }
670
- })