@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,161 +0,0 @@
1
- import { extend } from '../../vue'
2
- import { NAME_IMG_LAZY } from '../../constants/components'
3
- import { HAS_INTERACTION_OBSERVER_SUPPORT } from '../../constants/env'
4
- import { MODEL_EVENT_NAME_PREFIX } from '../../constants/events'
5
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props'
6
- import { concat } from '../../utils/array'
7
- import { requestAF } from '../../utils/dom'
8
- import { identity } from '../../utils/identity'
9
- import { toInteger } from '../../utils/number'
10
- import { omit } from '../../utils/object'
11
- import { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props'
12
- import { VBVisible } from '../../directives/visible/visible'
13
- import { BImg, props as BImgProps } from './img'
14
-
15
- // --- Constants ---
16
-
17
- const MODEL_PROP_NAME_SHOW = 'show'
18
- const MODEL_EVENT_NAME_SHOW = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SHOW
19
-
20
- // --- Props ---
21
-
22
- const imgProps = omit(BImgProps, ['blank'])
23
-
24
- export const props = makePropsConfigurable(
25
- {
26
- ...imgProps,
27
- blankHeight: makeProp(PROP_TYPE_NUMBER_STRING),
28
- // If `null`, a blank image is generated
29
- blankSrc: makeProp(PROP_TYPE_STRING, null),
30
- blankWidth: makeProp(PROP_TYPE_NUMBER_STRING),
31
- // Distance away from viewport (in pixels)
32
- // before being considered "visible"
33
- offset: makeProp(PROP_TYPE_NUMBER_STRING, 360),
34
- [MODEL_PROP_NAME_SHOW]: makeProp(PROP_TYPE_BOOLEAN, false)
35
- },
36
- NAME_IMG_LAZY
37
- )
38
-
39
- // --- Main component ---
40
-
41
- // @vue/component
42
- export const BImgLazy = /*#__PURE__*/ extend({
43
- name: NAME_IMG_LAZY,
44
- directives: {
45
- 'b-visible': VBVisible
46
- },
47
- props,
48
- data() {
49
- return {
50
- isShown: this[MODEL_PROP_NAME_SHOW]
51
- }
52
- },
53
- computed: {
54
- computedSrc() {
55
- const { blankSrc } = this
56
- return !blankSrc || this.isShown ? this.src : blankSrc
57
- },
58
- computedBlank() {
59
- return !(this.isShown || this.blankSrc)
60
- },
61
- computedWidth() {
62
- const { width } = this
63
- return this.isShown ? width : this.blankWidth || width
64
- },
65
- computedHeight() {
66
- const { height } = this
67
- return this.isShown ? height : this.blankHeight || height
68
- },
69
- computedSrcset() {
70
- const srcset = concat(this.srcset)
71
- .filter(identity)
72
- .join(',')
73
-
74
- return srcset && (!this.blankSrc || this.isShown) ? srcset : null
75
- },
76
- computedSizes() {
77
- const sizes = concat(this.sizes)
78
- .filter(identity)
79
- .join(',')
80
-
81
- return sizes && (!this.blankSrc || this.isShown) ? sizes : null
82
- }
83
- },
84
- watch: {
85
- [MODEL_PROP_NAME_SHOW](newValue, oldValue) {
86
- if (newValue !== oldValue) {
87
- // If `IntersectionObserver` support is not available, image is always shown
88
- const visible = HAS_INTERACTION_OBSERVER_SUPPORT ? newValue : true
89
-
90
- this.isShown = visible
91
-
92
- // Ensure the show prop is synced (when no `IntersectionObserver`)
93
- if (newValue !== visible) {
94
- this.$nextTick(this.updateShowProp)
95
- }
96
- }
97
- },
98
- isShown(newValue, oldValue) {
99
- // Update synched show prop
100
- if (newValue !== oldValue) {
101
- this.updateShowProp()
102
- }
103
- }
104
- },
105
- mounted() {
106
- // If `IntersectionObserver` is not available, image is always shown
107
- this.$nextTick(() => {
108
- this.isShown = HAS_INTERACTION_OBSERVER_SUPPORT ? this[MODEL_PROP_NAME_SHOW] : true
109
- })
110
- },
111
- methods: {
112
- updateShowProp() {
113
- this.$emit(MODEL_EVENT_NAME_SHOW, this.isShown)
114
- },
115
- doShow(visible) {
116
- // If IntersectionObserver is not supported, the callback
117
- // will be called with `null` rather than `true` or `false`
118
- if ((visible || visible === null) && !this.isShown) {
119
- // In a `requestAF()` to render the `blank` placeholder properly
120
- // for fast loading images in some browsers (i.e. Firefox)
121
- requestAF(() => {
122
- this.isShown = true
123
- })
124
- }
125
- }
126
- },
127
- render(h) {
128
- const directives = []
129
- if (!this.isShown) {
130
- // We only add the visible directive if we are not shown
131
- directives.push({
132
- // Visible directive will silently do nothing if
133
- // `IntersectionObserver` is not supported
134
- name: 'b-visible',
135
- // Value expects a callback (passed one arg of `visible` = `true` or `false`)
136
- value: this.doShow,
137
- modifiers: {
138
- // Root margin from viewport
139
- [`${toInteger(this.offset, 0)}`]: true,
140
- // Once the image is shown, stop observing
141
- once: true
142
- }
143
- })
144
- }
145
-
146
- return h(BImg, {
147
- directives,
148
- props: {
149
- // Passthrough props
150
- ...pluckProps(imgProps, this.$props),
151
- // Computed value props
152
- src: this.computedSrc,
153
- blank: this.computedBlank,
154
- width: this.computedWidth,
155
- height: this.computedHeight,
156
- srcset: this.computedSrcset,
157
- sizes: this.computedSizes
158
- }
159
- })
160
- }
161
- })
@@ -1,96 +0,0 @@
1
- import { mount } from '@vue/test-utils'
2
- import { waitNT, waitRAF } from '../../../tests/utils'
3
- import { BImgLazy } from './img-lazy'
4
-
5
- const src = 'https://picsum.photos/1024/400/?image=41'
6
-
7
- describe('img-lazy', () => {
8
- it('has root element "img"', async () => {
9
- const wrapper = mount(BImgLazy, {
10
- attachTo: document.body,
11
- propsData: {
12
- src
13
- }
14
- })
15
- expect(wrapper.element.tagName).toBe('IMG')
16
-
17
- wrapper.destroy()
18
- })
19
-
20
- it('is initially shown show prop is set', async () => {
21
- const wrapper = mount(BImgLazy, {
22
- attachTo: document.body,
23
- propsData: {
24
- src,
25
- show: true
26
- }
27
- })
28
- expect(wrapper.element.tagName).toBe('IMG')
29
-
30
- expect(wrapper.attributes('src')).toBeDefined()
31
- expect(wrapper.attributes('src')).toBe(src)
32
-
33
- wrapper.destroy()
34
- })
35
-
36
- it('shows when IntersectionObserver not supported', async () => {
37
- const wrapper = mount(BImgLazy, {
38
- attachTo: document.body,
39
- propsData: {
40
- src,
41
- show: false
42
- }
43
- })
44
-
45
- expect(wrapper.element.tagName).toBe('IMG')
46
-
47
- await waitNT(wrapper.vm)
48
- await waitRAF()
49
- await waitNT(wrapper.vm)
50
- await waitRAF()
51
- await waitNT(wrapper.vm)
52
- await waitRAF()
53
-
54
- expect(wrapper.vm.isShown).toBe(true)
55
-
56
- // It appears that vue-test-utils does not run unbind when the directive is
57
- // removed from the element. Only when the component is destroyed... unlike Vue
58
- // Our directive instance should not exist
59
- // let observer = wrapper.element.__bv__visibility_observer
60
- // expect(observer).toBeUndefined()
61
-
62
- expect(wrapper.attributes('src')).toBeDefined()
63
- expect(wrapper.attributes('src')).toContain(src)
64
-
65
- await wrapper.setProps({
66
- show: true
67
- })
68
- await waitNT(wrapper.vm)
69
- await waitRAF()
70
- await waitNT(wrapper.vm)
71
- await waitRAF()
72
-
73
- expect(wrapper.attributes('src')).toBe(src)
74
- expect(wrapper.vm.isShown).toBe(true)
75
-
76
- // Our directive instance should not exist
77
- // observer = wrapper.element.__bv__visibility_observer
78
- // expect(observer).toBeUndefined()
79
-
80
- await wrapper.setProps({
81
- show: false
82
- })
83
- await waitNT(wrapper.vm)
84
- await waitRAF()
85
- await waitNT(wrapper.vm)
86
- await waitRAF()
87
-
88
- expect(wrapper.attributes('src')).toContain(src)
89
-
90
- // Our directive instance should not exist
91
- // observer = wrapper.element.__bv__visibility_observer
92
- // expect(observer).toBeUndefined()
93
-
94
- wrapper.destroy()
95
- })
96
- })
@@ -1,139 +0,0 @@
1
- import { extend, mergeData } from '../../vue'
2
- import { NAME_IMG } from '../../constants/components'
3
- import {
4
- PROP_TYPE_ARRAY_STRING,
5
- PROP_TYPE_BOOLEAN,
6
- PROP_TYPE_BOOLEAN_STRING,
7
- PROP_TYPE_NUMBER_STRING,
8
- PROP_TYPE_STRING
9
- } from '../../constants/props'
10
- import { concat } from '../../utils/array'
11
- import { identity } from '../../utils/identity'
12
- import { isString } from '../../utils/inspect'
13
- import { toInteger } from '../../utils/number'
14
- import { makeProp, makePropsConfigurable } from '../../utils/props'
15
- import { toString } from '../../utils/string'
16
-
17
- // --- Constants --
18
-
19
- // Blank image with fill template
20
- const BLANK_TEMPLATE =
21
- '<svg width="%{w}" height="%{h}" ' +
22
- 'xmlns="http://www.w3.org/2000/svg" ' +
23
- 'viewBox="0 0 %{w} %{h}" preserveAspectRatio="none">' +
24
- '<rect width="100%" height="100%" style="fill:%{f};"></rect>' +
25
- '</svg>'
26
-
27
- // --- Helper methods ---
28
-
29
- const makeBlankImgSrc = (width, height, color) => {
30
- const src = encodeURIComponent(
31
- BLANK_TEMPLATE.replace('%{w}', toString(width))
32
- .replace('%{h}', toString(height))
33
- .replace('%{f}', color)
34
- )
35
- return `data:image/svg+xml;charset=UTF-8,${src}`
36
- }
37
-
38
- // --- Props ---
39
-
40
- export const props = makePropsConfigurable(
41
- {
42
- alt: makeProp(PROP_TYPE_STRING),
43
- blank: makeProp(PROP_TYPE_BOOLEAN, false),
44
- blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),
45
- block: makeProp(PROP_TYPE_BOOLEAN, false),
46
- center: makeProp(PROP_TYPE_BOOLEAN, false),
47
- fluid: makeProp(PROP_TYPE_BOOLEAN, false),
48
- // Gives fluid images class `w-100` to make them grow to fit container
49
- fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),
50
- height: makeProp(PROP_TYPE_NUMBER_STRING),
51
- left: makeProp(PROP_TYPE_BOOLEAN, false),
52
- right: makeProp(PROP_TYPE_BOOLEAN, false),
53
- // Possible values:
54
- // `false`: no rounding of corners
55
- // `true`: slightly rounded corners
56
- // 'top': top corners rounded
57
- // 'right': right corners rounded
58
- // 'bottom': bottom corners rounded
59
- // 'left': left corners rounded
60
- // 'circle': circle/oval
61
- // '0': force rounding off
62
- rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),
63
- sizes: makeProp(PROP_TYPE_ARRAY_STRING),
64
- src: makeProp(PROP_TYPE_STRING),
65
- srcset: makeProp(PROP_TYPE_ARRAY_STRING),
66
- thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),
67
- width: makeProp(PROP_TYPE_NUMBER_STRING)
68
- },
69
- NAME_IMG
70
- )
71
-
72
- // --- Main component ---
73
-
74
- // @vue/component
75
- export const BImg = /*#__PURE__*/ extend({
76
- name: NAME_IMG,
77
- functional: true,
78
- props,
79
- render(h, { props, data }) {
80
- let { alt, src, block, fluidGrow, rounded } = props
81
- let width = toInteger(props.width) || null
82
- let height = toInteger(props.height) || null
83
- let align = null
84
- let srcset = concat(props.srcset)
85
- .filter(identity)
86
- .join(',')
87
- let sizes = concat(props.sizes)
88
- .filter(identity)
89
- .join(',')
90
-
91
- if (props.blank) {
92
- if (!height && width) {
93
- height = width
94
- } else if (!width && height) {
95
- width = height
96
- }
97
- if (!width && !height) {
98
- width = 1
99
- height = 1
100
- }
101
- // Make a blank SVG image
102
- src = makeBlankImgSrc(width, height, props.blankColor || 'transparent')
103
- // Disable srcset and sizes
104
- srcset = null
105
- sizes = null
106
- }
107
- if (props.left) {
108
- align = 'float-left'
109
- } else if (props.right) {
110
- align = 'float-right'
111
- } else if (props.center) {
112
- align = 'mx-auto'
113
- block = true
114
- }
115
-
116
- return h(
117
- 'img',
118
- mergeData(data, {
119
- attrs: {
120
- src,
121
- alt,
122
- width: width ? toString(width) : null,
123
- height: height ? toString(height) : null,
124
- srcset: srcset || null,
125
- sizes: sizes || null
126
- },
127
- class: {
128
- 'img-thumbnail': props.thumbnail,
129
- 'img-fluid': props.fluid || fluidGrow,
130
- 'w-100': fluidGrow,
131
- rounded: rounded === '' || rounded === true,
132
- [`rounded-${rounded}`]: isString(rounded) && rounded !== '',
133
- [align]: align,
134
- 'd-block': block
135
- }
136
- })
137
- )
138
- }
139
- })
@@ -1,255 +0,0 @@
1
- import { mount } from '@vue/test-utils'
2
- import { BImg } from './img'
3
-
4
- describe('img', () => {
5
- it('has expected default structure', async () => {
6
- const wrapper = mount(BImg)
7
-
8
- expect(wrapper.element.tagName).toBe('IMG')
9
- expect(wrapper.classes().length).toBe(0)
10
- expect(wrapper.attributes('width')).toBeUndefined()
11
- expect(wrapper.attributes('height')).toBeUndefined()
12
-
13
- wrapper.destroy()
14
- })
15
-
16
- it('has src attribute when prop src is set', async () => {
17
- const wrapper = mount(BImg, {
18
- propsData: {
19
- src: '/foo/bar'
20
- }
21
- })
22
-
23
- expect(wrapper.element.tagName).toBe('IMG')
24
-
25
- expect(wrapper.attributes('src')).toBeDefined()
26
- expect(wrapper.attributes('src')).toEqual('/foo/bar')
27
- expect(wrapper.attributes('width')).toBeUndefined()
28
- expect(wrapper.attributes('height')).toBeUndefined()
29
-
30
- wrapper.destroy()
31
- })
32
-
33
- it('default does not have attributes alt, width, or height', async () => {
34
- const wrapper = mount(BImg, {
35
- context: {
36
- props: {
37
- src: 'https://picsum.photos/600/300/?image=25'
38
- }
39
- }
40
- })
41
-
42
- expect(wrapper.attributes('alt')).toBeUndefined()
43
- expect(wrapper.attributes('width')).toBeUndefined()
44
- expect(wrapper.attributes('height')).toBeUndefined()
45
-
46
- wrapper.destroy()
47
- })
48
-
49
- it('should have class "img-fluid" when prop fluid set', async () => {
50
- const wrapper = mount(BImg, {
51
- propsData: {
52
- src: '/foo/bar',
53
- fluid: true
54
- }
55
- })
56
-
57
- expect(wrapper.element.tagName).toBe('IMG')
58
- expect(wrapper.classes()).toContain('img-fluid')
59
- expect(wrapper.classes().length).toBe(1)
60
-
61
- wrapper.destroy()
62
- })
63
-
64
- it('should have class "img-fluid" and "w-100" when prop fluid-grow set', async () => {
65
- const wrapper = mount(BImg, {
66
- propsData: {
67
- src: '/foo/bar',
68
- fluidGrow: true
69
- }
70
- })
71
-
72
- expect(wrapper.element.tagName).toBe('IMG')
73
- expect(wrapper.classes()).toContain('img-fluid')
74
- expect(wrapper.classes()).toContain('w-100')
75
- expect(wrapper.classes().length).toBe(2)
76
-
77
- wrapper.destroy()
78
- })
79
-
80
- it('should have class "img-thumbnail" when prop thumbnail set', async () => {
81
- const wrapper = mount(BImg, {
82
- propsData: {
83
- src: '/foo/bar',
84
- thumbnail: true
85
- }
86
- })
87
-
88
- expect(wrapper.element.tagName).toBe('IMG')
89
- expect(wrapper.classes()).toContain('img-thumbnail')
90
- expect(wrapper.classes().length).toBe(1)
91
-
92
- wrapper.destroy()
93
- })
94
-
95
- it('should have class "rounded" when prop rounded true', async () => {
96
- const wrapper = mount(BImg, {
97
- propsData: {
98
- src: '/foo/bar',
99
- rounded: true
100
- }
101
- })
102
-
103
- expect(wrapper.element.tagName).toBe('IMG')
104
- expect(wrapper.classes()).toContain('rounded')
105
- expect(wrapper.classes().length).toBe(1)
106
-
107
- wrapper.destroy()
108
- })
109
-
110
- it('should have class "rounded-circle" when prop rounded=circle', async () => {
111
- const wrapper = mount(BImg, {
112
- propsData: {
113
- src: '/foo/bar',
114
- rounded: 'circle'
115
- }
116
- })
117
-
118
- expect(wrapper.element.tagName).toBe('IMG')
119
- expect(wrapper.classes()).toContain('rounded-circle')
120
- expect(wrapper.classes().length).toBe(1)
121
-
122
- wrapper.destroy()
123
- })
124
-
125
- it('should have class "float-left" when prop left set', async () => {
126
- const wrapper = mount(BImg, {
127
- propsData: {
128
- src: '/foo/bar',
129
- left: true
130
- }
131
- })
132
-
133
- expect(wrapper.element.tagName).toBe('IMG')
134
- expect(wrapper.classes()).toContain('float-left')
135
- expect(wrapper.classes().length).toBe(1)
136
-
137
- wrapper.destroy()
138
- })
139
-
140
- it('should have class "float-right" when prop right set', async () => {
141
- const wrapper = mount(BImg, {
142
- propsData: {
143
- src: '/foo/bar',
144
- right: true
145
- }
146
- })
147
-
148
- expect(wrapper.element.tagName).toBe('IMG')
149
- expect(wrapper.classes()).toContain('float-right')
150
- expect(wrapper.classes().length).toBe(1)
151
-
152
- wrapper.destroy()
153
- })
154
-
155
- it('should have classes "mx-auto" and "d-block" when prop center set', async () => {
156
- const wrapper = mount(BImg, {
157
- propsData: {
158
- src: '/foo/bar',
159
- center: true
160
- }
161
- })
162
-
163
- expect(wrapper.element.tagName).toBe('IMG')
164
- expect(wrapper.classes()).toContain('mx-auto')
165
- expect(wrapper.classes()).toContain('d-block')
166
- expect(wrapper.classes().length).toBe(2)
167
-
168
- wrapper.destroy()
169
- })
170
-
171
- it('has data URI when blank is true', async () => {
172
- const wrapper = mount(BImg, {
173
- propsData: {
174
- blank: true
175
- }
176
- })
177
-
178
- expect(wrapper.element.tagName).toBe('IMG')
179
-
180
- expect(wrapper.attributes('src')).toBeDefined()
181
- expect(wrapper.attributes('src')).toContain('data:image/svg+xml;charset=UTF-8')
182
- expect(wrapper.attributes('width')).toBe('1')
183
- expect(wrapper.attributes('height')).toBe('1')
184
-
185
- wrapper.destroy()
186
- })
187
-
188
- it('has color when blank is true and blank-color set', async () => {
189
- const wrapper = mount(BImg, {
190
- propsData: {
191
- blank: true,
192
- blankColor: 'blue'
193
- }
194
- })
195
-
196
- expect(wrapper.element.tagName).toBe('IMG')
197
-
198
- expect(wrapper.attributes('src')).toBeDefined()
199
- expect(wrapper.attributes('src')).toContain('data:image/svg+xml;charset=UTF-8')
200
- expect(wrapper.attributes('src')).toContain('blue')
201
-
202
- wrapper.destroy()
203
- })
204
-
205
- it('has width and height when blank is true and width/height props set', async () => {
206
- const wrapper = mount(BImg, {
207
- propsData: {
208
- blank: true,
209
- width: 300,
210
- height: 200
211
- }
212
- })
213
-
214
- expect(wrapper.element.tagName).toBe('IMG')
215
-
216
- expect(wrapper.attributes('src')).toBeDefined()
217
- expect(wrapper.attributes('src')).toContain('data:image/svg+xml;charset=UTF-8')
218
- expect(wrapper.attributes('width')).toBe('300')
219
- expect(wrapper.attributes('height')).toBe('200')
220
-
221
- wrapper.destroy()
222
- })
223
-
224
- it('has width and height when src set and width/height props set', async () => {
225
- const wrapper = mount(BImg, {
226
- propsData: {
227
- src: '/foo/bar',
228
- width: 300,
229
- height: 200
230
- }
231
- })
232
-
233
- expect(wrapper.element.tagName).toBe('IMG')
234
-
235
- expect(wrapper.attributes('src')).toBeDefined()
236
- expect(wrapper.attributes('src')).toEqual('/foo/bar')
237
- expect(wrapper.attributes('width')).toBe('300')
238
- expect(wrapper.attributes('height')).toBe('200')
239
-
240
- wrapper.destroy()
241
- })
242
-
243
- it('should have alt attribute when `alt` prop is empty', async () => {
244
- const wrapper = mount(BImg, {
245
- propsData: {
246
- alt: ''
247
- }
248
- })
249
-
250
- expect(wrapper.attributes('alt')).toBeDefined()
251
- expect(wrapper.attributes('alt')).toEqual('')
252
-
253
- wrapper.destroy()
254
- })
255
- })
@@ -1,14 +0,0 @@
1
- //
2
- // Image
3
- //
4
- import Vue from 'vue'
5
- import { BvPlugin, BvComponent } from '../../'
6
-
7
- // Plugin
8
- export declare const ImagePlugin: BvPlugin
9
-
10
- // Component: b-img
11
- export declare class BImg extends BvComponent {}
12
-
13
- // Component: b-img-lazy
14
- export declare class BImgLazy extends BvComponent {}
@@ -1,12 +0,0 @@
1
- import { BImg } from './img'
2
- import { BImgLazy } from './img-lazy'
3
- import { pluginFactory } from '../../utils/plugins'
4
-
5
- const ImagePlugin = /*#__PURE__*/ pluginFactory({
6
- components: {
7
- BImg,
8
- BImgLazy
9
- }
10
- })
11
-
12
- export { ImagePlugin, BImg, BImgLazy }