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