@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,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
- })