@gitlab/ui 84.2.0 → 85.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1138) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/components/base/accordion/accordion_item.js +1 -1
  3. package/dist/components/base/badge/badge.js +1 -1
  4. package/dist/components/base/breadcrumb/breadcrumb.js +1 -1
  5. package/dist/components/base/breadcrumb/breadcrumb_item.js +1 -1
  6. package/dist/components/base/button/button.js +1 -1
  7. package/dist/components/base/button_group/button_group.js +1 -1
  8. package/dist/components/base/carousel/carousel.js +1 -1
  9. package/dist/components/base/carousel/carousel_slide.js +1 -1
  10. package/dist/components/base/collapse/collapse.js +1 -1
  11. package/dist/components/base/dropdown/dropdown.js +2 -2
  12. package/dist/components/base/dropdown/dropdown_divider.js +1 -1
  13. package/dist/components/base/dropdown/dropdown_form.js +1 -1
  14. package/dist/components/base/dropdown/dropdown_item.js +2 -1
  15. package/dist/components/base/dropdown/dropdown_section_header.js +1 -1
  16. package/dist/components/base/dropdown/dropdown_text.js +1 -1
  17. package/dist/components/base/form/form.js +1 -1
  18. package/dist/components/base/form/form_checkbox/form_checkbox.js +1 -1
  19. package/dist/components/base/form/form_checkbox/form_checkbox_group.js +2 -2
  20. package/dist/components/base/form/form_group/form_group.js +1 -1
  21. package/dist/components/base/form/form_input/form_input.js +1 -1
  22. package/dist/components/base/form/form_input_group/form_input_group.js +4 -1
  23. package/dist/components/base/form/form_radio/form_radio.js +1 -1
  24. package/dist/components/base/form/form_radio_group/form_radio_group.js +2 -2
  25. package/dist/components/base/form/form_select/form_select.js +1 -1
  26. package/dist/components/base/form/form_text/form_text.js +1 -1
  27. package/dist/components/base/form/form_textarea/form_textarea.js +1 -1
  28. package/dist/components/base/form/input_group_text/input_group_text.js +1 -1
  29. package/dist/components/base/link/link.js +1 -1
  30. package/dist/components/base/modal/modal.js +1 -1
  31. package/dist/components/base/nav/nav.js +1 -1
  32. package/dist/components/base/nav/nav_item.js +1 -1
  33. package/dist/components/base/nav/nav_item_dropdown.js +1 -1
  34. package/dist/components/base/navbar/navbar.js +1 -1
  35. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +1 -1
  36. package/dist/components/base/popover/popover.js +1 -1
  37. package/dist/components/base/progress_bar/progress_bar.js +1 -1
  38. package/dist/components/base/segmented_control/segmented_control.js +1 -1
  39. package/dist/components/base/table/table.js +1 -1
  40. package/dist/components/base/table_lite/table_lite.js +1 -1
  41. package/dist/components/base/tabs/tab/tab.js +1 -1
  42. package/dist/components/base/tabs/tabs/tabs.js +1 -1
  43. package/dist/components/base/toast/toast.js +1 -1
  44. package/dist/components/base/tooltip/tooltip.js +1 -1
  45. package/dist/components/experimental/duo/chat/duo_chat.js +5 -2
  46. package/dist/config.js +1 -1
  47. package/dist/directives/collapse_toggle.js +1 -1
  48. package/dist/directives/modal.js +1 -1
  49. package/dist/directives/tooltip.js +1 -1
  50. package/dist/utils/utils.js +1 -1
  51. package/dist/vendor/bootstrap-vue/src/browser-icons.js +8 -0
  52. package/dist/vendor/bootstrap-vue/src/browser.js +8 -0
  53. package/dist/vendor/bootstrap-vue/src/bv-config.js +6 -0
  54. package/dist/vendor/bootstrap-vue/src/components/alert/alert.js +179 -0
  55. package/dist/vendor/bootstrap-vue/src/components/alert/index.js +11 -0
  56. package/dist/vendor/bootstrap-vue/src/components/aspect/aspect.js +67 -0
  57. package/dist/vendor/bootstrap-vue/src/components/aspect/index.js +11 -0
  58. package/dist/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +67 -0
  59. package/dist/vendor/bootstrap-vue/src/components/avatar/avatar.js +266 -0
  60. package/dist/vendor/bootstrap-vue/src/components/avatar/index.js +14 -0
  61. package/dist/vendor/bootstrap-vue/src/components/badge/badge.js +53 -0
  62. package/dist/vendor/bootstrap-vue/src/components/badge/index.js +11 -0
  63. package/dist/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb-item.js +34 -0
  64. package/dist/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb-link.js +48 -0
  65. package/dist/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb.js +67 -0
  66. package/dist/vendor/bootstrap-vue/src/components/breadcrumb/index.js +17 -0
  67. package/dist/vendor/bootstrap-vue/src/components/button/button-close.js +66 -0
  68. package/dist/vendor/bootstrap-vue/src/components/button/button.js +180 -0
  69. package/dist/vendor/bootstrap-vue/src/components/button/index.js +16 -0
  70. package/dist/vendor/bootstrap-vue/src/components/button-group/button-group.js +44 -0
  71. package/dist/vendor/bootstrap-vue/src/components/button-group/index.js +12 -0
  72. package/dist/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +112 -0
  73. package/dist/vendor/bootstrap-vue/src/components/button-toolbar/index.js +12 -0
  74. package/dist/vendor/bootstrap-vue/src/components/calendar/calendar.js +1010 -0
  75. package/dist/vendor/bootstrap-vue/src/components/calendar/index.js +11 -0
  76. package/dist/vendor/bootstrap-vue/src/components/card/card-body.js +63 -0
  77. package/dist/vendor/bootstrap-vue/src/components/card/card-footer.js +48 -0
  78. package/dist/vendor/bootstrap-vue/src/components/card/card-group.js +33 -0
  79. package/dist/vendor/bootstrap-vue/src/components/card/card-header.js +48 -0
  80. package/dist/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +46 -0
  81. package/dist/vendor/bootstrap-vue/src/components/card/card-img.js +58 -0
  82. package/dist/vendor/bootstrap-vue/src/components/card/card-sub-title.js +35 -0
  83. package/dist/vendor/bootstrap-vue/src/components/card/card-text.js +31 -0
  84. package/dist/vendor/bootstrap-vue/src/components/card/card-title.js +33 -0
  85. package/dist/vendor/bootstrap-vue/src/components/card/card.js +123 -0
  86. package/dist/vendor/bootstrap-vue/src/components/card/index.js +38 -0
  87. package/dist/vendor/bootstrap-vue/src/components/carousel/carousel-slide.js +123 -0
  88. package/dist/vendor/bootstrap-vue/src/components/carousel/carousel.js +617 -0
  89. package/dist/vendor/bootstrap-vue/src/components/carousel/index.js +14 -0
  90. package/dist/vendor/bootstrap-vue/src/components/collapse/collapse.js +274 -0
  91. package/dist/vendor/bootstrap-vue/src/components/collapse/helpers/bv-collapse.js +90 -0
  92. package/dist/vendor/bootstrap-vue/src/components/collapse/index.js +15 -0
  93. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +41 -0
  94. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +52 -0
  95. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +75 -0
  96. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +52 -0
  97. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +83 -0
  98. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +89 -0
  99. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +49 -0
  100. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +195 -0
  101. package/dist/vendor/bootstrap-vue/src/components/dropdown/index.js +42 -0
  102. package/dist/vendor/bootstrap-vue/src/components/embed/embed.js +50 -0
  103. package/dist/vendor/bootstrap-vue/src/components/embed/index.js +11 -0
  104. package/dist/vendor/bootstrap-vue/src/components/form/form-datalist.js +52 -0
  105. package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +53 -0
  106. package/dist/vendor/bootstrap-vue/src/components/form/form-text.js +40 -0
  107. package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +53 -0
  108. package/dist/vendor/bootstrap-vue/src/components/form/form.js +41 -0
  109. package/dist/vendor/bootstrap-vue/src/components/form/index.js +28 -0
  110. package/dist/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +261 -0
  111. package/dist/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox-group.js +37 -0
  112. package/dist/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox.js +134 -0
  113. package/dist/vendor/bootstrap-vue/src/components/form-checkbox/index.js +18 -0
  114. package/dist/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +310 -0
  115. package/dist/vendor/bootstrap-vue/src/components/form-datepicker/index.js +12 -0
  116. package/dist/vendor/bootstrap-vue/src/components/form-file/form-file.js +561 -0
  117. package/dist/vendor/bootstrap-vue/src/components/form-file/index.js +12 -0
  118. package/dist/vendor/bootstrap-vue/src/components/form-group/form-group.js +347 -0
  119. package/dist/vendor/bootstrap-vue/src/components/form-group/index.js +12 -0
  120. package/dist/vendor/bootstrap-vue/src/components/form-input/form-input.js +157 -0
  121. package/dist/vendor/bootstrap-vue/src/components/form-input/index.js +12 -0
  122. package/dist/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.js +29 -0
  123. package/dist/vendor/bootstrap-vue/src/components/form-radio/form-radio.js +30 -0
  124. package/dist/vendor/bootstrap-vue/src/components/form-radio/index.js +16 -0
  125. package/dist/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +402 -0
  126. package/dist/vendor/bootstrap-vue/src/components/form-rating/index.js +12 -0
  127. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +54 -0
  128. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +41 -0
  129. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +143 -0
  130. package/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +56 -0
  131. package/dist/vendor/bootstrap-vue/src/components/form-select/index.js +20 -0
  132. package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +555 -0
  133. package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +12 -0
  134. package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +97 -0
  135. package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +806 -0
  136. package/dist/vendor/bootstrap-vue/src/components/form-tags/index.js +16 -0
  137. package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +217 -0
  138. package/dist/vendor/bootstrap-vue/src/components/form-textarea/index.js +12 -0
  139. package/dist/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +281 -0
  140. package/dist/vendor/bootstrap-vue/src/components/form-timepicker/index.js +12 -0
  141. package/dist/vendor/bootstrap-vue/src/components/image/img-lazy.js +157 -0
  142. package/dist/vendor/bootstrap-vue/src/components/image/img.js +124 -0
  143. package/dist/vendor/bootstrap-vue/src/components/image/index.js +14 -0
  144. package/dist/vendor/bootstrap-vue/src/components/index.js +109 -0
  145. package/dist/vendor/bootstrap-vue/src/components/input-group/index.js +23 -0
  146. package/dist/vendor/bootstrap-vue/src/components/input-group/input-group-addon.js +44 -0
  147. package/dist/vendor/bootstrap-vue/src/components/input-group/input-group-append.js +34 -0
  148. package/dist/vendor/bootstrap-vue/src/components/input-group/input-group-prepend.js +34 -0
  149. package/dist/vendor/bootstrap-vue/src/components/input-group/input-group-text.js +31 -0
  150. package/dist/vendor/bootstrap-vue/src/components/input-group/input-group.js +75 -0
  151. package/dist/vendor/bootstrap-vue/src/components/jumbotron/index.js +11 -0
  152. package/dist/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +98 -0
  153. package/dist/vendor/bootstrap-vue/src/components/layout/col.js +156 -0
  154. package/dist/vendor/bootstrap-vue/src/components/layout/container.js +41 -0
  155. package/dist/vendor/bootstrap-vue/src/components/layout/form-row.js +31 -0
  156. package/dist/vendor/bootstrap-vue/src/components/layout/index.js +20 -0
  157. package/dist/vendor/bootstrap-vue/src/components/layout/row.js +113 -0
  158. package/dist/vendor/bootstrap-vue/src/components/link/index.js +11 -0
  159. package/dist/vendor/bootstrap-vue/src/components/link/link.js +239 -0
  160. package/dist/vendor/bootstrap-vue/src/components/list-group/index.js +14 -0
  161. package/dist/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +78 -0
  162. package/dist/vendor/bootstrap-vue/src/components/list-group/list-group.js +42 -0
  163. package/dist/vendor/bootstrap-vue/src/components/media/index.js +17 -0
  164. package/dist/vendor/bootstrap-vue/src/components/media/media-aside.js +41 -0
  165. package/dist/vendor/bootstrap-vue/src/components/media/media-body.js +31 -0
  166. package/dist/vendor/bootstrap-vue/src/components/media/media.js +61 -0
  167. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.js +21 -0
  168. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal.js +279 -0
  169. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/modal-manager.js +211 -0
  170. package/dist/vendor/bootstrap-vue/src/components/modal/index.js +20 -0
  171. package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +920 -0
  172. package/dist/vendor/bootstrap-vue/src/components/nav/index.js +30 -0
  173. package/dist/vendor/bootstrap-vue/src/components/nav/nav-form.js +45 -0
  174. package/dist/vendor/bootstrap-vue/src/components/nav/nav-item-dropdown.js +108 -0
  175. package/dist/vendor/bootstrap-vue/src/components/nav/nav-item.js +43 -0
  176. package/dist/vendor/bootstrap-vue/src/components/nav/nav-text.js +26 -0
  177. package/dist/vendor/bootstrap-vue/src/components/nav/nav.js +65 -0
  178. package/dist/vendor/bootstrap-vue/src/components/navbar/index.js +29 -0
  179. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-brand.js +40 -0
  180. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +46 -0
  181. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +89 -0
  182. package/dist/vendor/bootstrap-vue/src/components/navbar/navbar.js +72 -0
  183. package/dist/vendor/bootstrap-vue/src/components/overlay/index.js +11 -0
  184. package/dist/vendor/bootstrap-vue/src/components/overlay/overlay.js +163 -0
  185. package/dist/vendor/bootstrap-vue/src/components/pagination/index.js +11 -0
  186. package/dist/vendor/bootstrap-vue/src/components/pagination/pagination.js +135 -0
  187. package/dist/vendor/bootstrap-vue/src/components/pagination-nav/index.js +11 -0
  188. package/dist/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +299 -0
  189. package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover-template.js +52 -0
  190. package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover.js +26 -0
  191. package/dist/vendor/bootstrap-vue/src/components/popover/index.js +15 -0
  192. package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +45 -0
  193. package/dist/vendor/bootstrap-vue/src/components/progress/index.js +14 -0
  194. package/dist/vendor/bootstrap-vue/src/components/progress/progress-bar.js +128 -0
  195. package/dist/vendor/bootstrap-vue/src/components/progress/progress.js +56 -0
  196. package/dist/vendor/bootstrap-vue/src/components/sidebar/index.js +15 -0
  197. package/dist/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +432 -0
  198. package/dist/vendor/bootstrap-vue/src/components/skeleton/index.js +23 -0
  199. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +47 -0
  200. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +60 -0
  201. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +64 -0
  202. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +46 -0
  203. package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +49 -0
  204. package/dist/vendor/bootstrap-vue/src/components/spinner/index.js +11 -0
  205. package/dist/vendor/bootstrap-vue/src/components/spinner/spinner.js +55 -0
  206. package/dist/vendor/bootstrap-vue/src/components/table/helpers/constants.js +22 -0
  207. package/dist/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.js +64 -0
  208. package/dist/vendor/bootstrap-vue/src/components/table/helpers/filter-event.js +40 -0
  209. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-bottom-row.js +43 -0
  210. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +83 -0
  211. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +50 -0
  212. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-colgroup.js +32 -0
  213. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +82 -0
  214. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +265 -0
  215. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +150 -0
  216. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +44 -0
  217. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +187 -0
  218. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +229 -0
  219. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +290 -0
  220. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +39 -0
  221. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +186 -0
  222. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +338 -0
  223. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +237 -0
  224. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +50 -0
  225. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +214 -0
  226. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-top-row.js +42 -0
  227. package/dist/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.js +86 -0
  228. package/dist/vendor/bootstrap-vue/src/components/table/helpers/sanitize-row.js +32 -0
  229. package/dist/vendor/bootstrap-vue/src/components/table/helpers/stringify-record-values.js +11 -0
  230. package/dist/vendor/bootstrap-vue/src/components/table/helpers/text-selection-active.js +14 -0
  231. package/dist/vendor/bootstrap-vue/src/components/table/index.js +47 -0
  232. package/dist/vendor/bootstrap-vue/src/components/table/table-lite.js +52 -0
  233. package/dist/vendor/bootstrap-vue/src/components/table/table-simple.js +45 -0
  234. package/dist/vendor/bootstrap-vue/src/components/table/table.js +68 -0
  235. package/dist/vendor/bootstrap-vue/src/components/table/tbody.js +109 -0
  236. package/dist/vendor/bootstrap-vue/src/components/table/td.js +183 -0
  237. package/dist/vendor/bootstrap-vue/src/components/table/tfoot.js +93 -0
  238. package/dist/vendor/bootstrap-vue/src/components/table/th.js +27 -0
  239. package/dist/vendor/bootstrap-vue/src/components/table/thead.js +96 -0
  240. package/dist/vendor/bootstrap-vue/src/components/table/tr.js +118 -0
  241. package/dist/vendor/bootstrap-vue/src/components/tabs/index.js +14 -0
  242. package/dist/vendor/bootstrap-vue/src/components/tabs/tab.js +199 -0
  243. package/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js +617 -0
  244. package/dist/vendor/bootstrap-vue/src/components/time/index.js +11 -0
  245. package/dist/vendor/bootstrap-vue/src/components/time/time.js +600 -0
  246. package/dist/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.js +209 -0
  247. package/dist/vendor/bootstrap-vue/src/components/toast/index.js +19 -0
  248. package/dist/vendor/bootstrap-vue/src/components/toast/toast.js +419 -0
  249. package/dist/vendor/bootstrap-vue/src/components/toast/toaster.js +142 -0
  250. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +243 -0
  251. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +118 -0
  252. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +929 -0
  253. package/dist/vendor/bootstrap-vue/src/components/tooltip/index.js +15 -0
  254. package/dist/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +280 -0
  255. package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +85 -0
  256. package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +197 -0
  257. package/dist/vendor/bootstrap-vue/src/constants/classes.js +4 -0
  258. package/dist/vendor/bootstrap-vue/src/constants/components.js +135 -0
  259. package/dist/vendor/bootstrap-vue/src/constants/config.js +5 -0
  260. package/dist/vendor/bootstrap-vue/src/constants/date.js +8 -0
  261. package/dist/vendor/bootstrap-vue/src/constants/env.js +47 -0
  262. package/dist/vendor/bootstrap-vue/src/constants/events.js +71 -0
  263. package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +16 -0
  264. package/dist/vendor/bootstrap-vue/src/constants/popper.js +10 -0
  265. package/dist/vendor/bootstrap-vue/src/constants/props.js +27 -0
  266. package/dist/vendor/bootstrap-vue/src/constants/regex.js +61 -0
  267. package/dist/vendor/bootstrap-vue/src/constants/safe-types.js +15 -0
  268. package/dist/vendor/bootstrap-vue/src/constants/slots.js +66 -0
  269. package/dist/vendor/bootstrap-vue/src/directives/hover/hover.js +61 -0
  270. package/dist/vendor/bootstrap-vue/src/directives/hover/index.js +11 -0
  271. package/dist/vendor/bootstrap-vue/src/directives/index.js +23 -0
  272. package/dist/vendor/bootstrap-vue/src/directives/modal/index.js +11 -0
  273. package/dist/vendor/bootstrap-vue/src/directives/modal/modal.js +112 -0
  274. package/dist/vendor/bootstrap-vue/src/directives/popover/index.js +11 -0
  275. package/dist/vendor/bootstrap-vue/src/directives/popover/popover.js +265 -0
  276. package/dist/vendor/bootstrap-vue/src/directives/scrollspy/helpers/bv-scrollspy.class.js +404 -0
  277. package/dist/vendor/bootstrap-vue/src/directives/scrollspy/index.js +11 -0
  278. package/dist/vendor/bootstrap-vue/src/directives/scrollspy/scrollspy.js +112 -0
  279. package/dist/vendor/bootstrap-vue/src/directives/toggle/index.js +11 -0
  280. package/dist/vendor/bootstrap-vue/src/directives/toggle/toggle.js +253 -0
  281. package/dist/vendor/bootstrap-vue/src/directives/tooltip/index.js +11 -0
  282. package/dist/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +264 -0
  283. package/dist/vendor/bootstrap-vue/src/directives/visible/index.js +11 -0
  284. package/dist/vendor/bootstrap-vue/src/directives/visible/visible.js +156 -0
  285. package/dist/vendor/bootstrap-vue/src/icons/helpers/icon-base.js +139 -0
  286. package/dist/vendor/bootstrap-vue/src/icons/helpers/make-icon.js +56 -0
  287. package/dist/vendor/bootstrap-vue/src/icons/icon.js +56 -0
  288. package/dist/vendor/bootstrap-vue/src/icons/icons.js +1377 -0
  289. package/dist/vendor/bootstrap-vue/src/icons/iconstack.js +31 -0
  290. package/dist/vendor/bootstrap-vue/src/icons/index.js +4 -0
  291. package/dist/vendor/bootstrap-vue/src/icons/plugin.js +1410 -0
  292. package/dist/vendor/bootstrap-vue/src/icons-only.js +10 -0
  293. package/dist/vendor/bootstrap-vue/src/index.js +205 -0
  294. package/dist/vendor/bootstrap-vue/src/mixins/attrs.js +22 -0
  295. package/dist/vendor/bootstrap-vue/src/mixins/card.js +22 -0
  296. package/dist/vendor/bootstrap-vue/src/mixins/click-out.js +54 -0
  297. package/dist/vendor/bootstrap-vue/src/mixins/dropdown.js +457 -0
  298. package/dist/vendor/bootstrap-vue/src/mixins/focus-in.js +46 -0
  299. package/dist/vendor/bootstrap-vue/src/mixins/form-control.js +50 -0
  300. package/dist/vendor/bootstrap-vue/src/mixins/form-custom.js +23 -0
  301. package/dist/vendor/bootstrap-vue/src/mixins/form-options.js +72 -0
  302. package/dist/vendor/bootstrap-vue/src/mixins/form-radio-check-group.js +142 -0
  303. package/dist/vendor/bootstrap-vue/src/mixins/form-radio-check.js +318 -0
  304. package/dist/vendor/bootstrap-vue/src/mixins/form-selection.js +62 -0
  305. package/dist/vendor/bootstrap-vue/src/mixins/form-size.js +23 -0
  306. package/dist/vendor/bootstrap-vue/src/mixins/form-state.js +47 -0
  307. package/dist/vendor/bootstrap-vue/src/mixins/form-text.js +248 -0
  308. package/dist/vendor/bootstrap-vue/src/mixins/form-validity.js +50 -0
  309. package/dist/vendor/bootstrap-vue/src/mixins/has-listener.js +26 -0
  310. package/dist/vendor/bootstrap-vue/src/mixins/id.js +52 -0
  311. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-document.js +63 -0
  312. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-root.js +121 -0
  313. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-window.js +63 -0
  314. package/dist/vendor/bootstrap-vue/src/mixins/listeners.js +24 -0
  315. package/dist/vendor/bootstrap-vue/src/mixins/model.js +10 -0
  316. package/dist/vendor/bootstrap-vue/src/mixins/normalize-slot.js +30 -0
  317. package/dist/vendor/bootstrap-vue/src/mixins/pagination.js +598 -0
  318. package/dist/vendor/bootstrap-vue/src/mixins/scoped-style.js +18 -0
  319. package/dist/vendor/bootstrap-vue/src/mixins/use-parent.js +14 -0
  320. package/dist/vendor/bootstrap-vue/src/utils/array.js +30 -0
  321. package/dist/vendor/bootstrap-vue/src/utils/bv-event.class.js +60 -0
  322. package/dist/vendor/bootstrap-vue/src/utils/cache.js +38 -0
  323. package/dist/vendor/bootstrap-vue/src/utils/clone-deep.js +18 -0
  324. package/dist/vendor/bootstrap-vue/src/utils/config-set.js +81 -0
  325. package/dist/vendor/bootstrap-vue/src/utils/config.js +77 -0
  326. package/dist/vendor/bootstrap-vue/src/utils/create-new-child-component.js +12 -0
  327. package/dist/vendor/bootstrap-vue/src/utils/css-escape.js +70 -0
  328. package/dist/vendor/bootstrap-vue/src/utils/date.js +135 -0
  329. package/dist/vendor/bootstrap-vue/src/utils/dom.js +298 -0
  330. package/dist/vendor/bootstrap-vue/src/utils/element-to-vue-instance-registry.js +34 -0
  331. package/dist/vendor/bootstrap-vue/src/utils/env.js +16 -0
  332. package/dist/vendor/bootstrap-vue/src/utils/events.js +78 -0
  333. package/dist/vendor/bootstrap-vue/src/utils/get-event-root.js +5 -0
  334. package/dist/vendor/bootstrap-vue/src/utils/get-instance-from-directive.js +5 -0
  335. package/dist/vendor/bootstrap-vue/src/utils/get-scope-id.js +9 -0
  336. package/dist/vendor/bootstrap-vue/src/utils/get.js +63 -0
  337. package/dist/vendor/bootstrap-vue/src/utils/html.js +16 -0
  338. package/dist/vendor/bootstrap-vue/src/utils/identity.js +3 -0
  339. package/dist/vendor/bootstrap-vue/src/utils/inspect.js +37 -0
  340. package/dist/vendor/bootstrap-vue/src/utils/locale.js +19 -0
  341. package/dist/vendor/bootstrap-vue/src/utils/loose-equal.js +59 -0
  342. package/dist/vendor/bootstrap-vue/src/utils/loose-index-of.js +13 -0
  343. package/dist/vendor/bootstrap-vue/src/utils/math.js +11 -0
  344. package/dist/vendor/bootstrap-vue/src/utils/memoize.js +14 -0
  345. package/dist/vendor/bootstrap-vue/src/utils/model.js +33 -0
  346. package/dist/vendor/bootstrap-vue/src/utils/noop.js +3 -0
  347. package/dist/vendor/bootstrap-vue/src/utils/normalize-slot.js +51 -0
  348. package/dist/vendor/bootstrap-vue/src/utils/number.js +23 -0
  349. package/dist/vendor/bootstrap-vue/src/utils/object.js +79 -0
  350. package/dist/vendor/bootstrap-vue/src/utils/observe-dom.js +76 -0
  351. package/dist/vendor/bootstrap-vue/src/utils/plugins.js +183 -0
  352. package/dist/vendor/bootstrap-vue/src/utils/props.js +103 -0
  353. package/dist/vendor/bootstrap-vue/src/utils/router.js +136 -0
  354. package/dist/vendor/bootstrap-vue/src/utils/safe-vue-instance.js +14 -0
  355. package/dist/vendor/bootstrap-vue/src/utils/stable-sort.js +28 -0
  356. package/dist/vendor/bootstrap-vue/src/utils/string.js +62 -0
  357. package/dist/vendor/bootstrap-vue/src/utils/stringify-object-values.js +31 -0
  358. package/dist/vendor/bootstrap-vue/src/utils/warn.js +60 -0
  359. package/dist/vendor/bootstrap-vue/src/vue.js +103 -0
  360. package/package.json +6 -4
  361. package/src/components/base/accordion/accordion_item.vue +1 -1
  362. package/src/components/base/badge/badge.vue +1 -1
  363. package/src/components/base/breadcrumb/breadcrumb.vue +1 -1
  364. package/src/components/base/breadcrumb/breadcrumb_item.vue +1 -1
  365. package/src/components/base/button/button.vue +1 -1
  366. package/src/components/base/button_group/button_group.vue +1 -1
  367. package/src/components/base/carousel/carousel.vue +1 -1
  368. package/src/components/base/carousel/carousel_slide.vue +1 -1
  369. package/src/components/base/collapse/collapse.vue +1 -1
  370. package/src/components/base/dropdown/dropdown.vue +2 -2
  371. package/src/components/base/dropdown/dropdown_divider.vue +1 -1
  372. package/src/components/base/dropdown/dropdown_form.vue +1 -1
  373. package/src/components/base/dropdown/dropdown_item.vue +2 -1
  374. package/src/components/base/dropdown/dropdown_section_header.vue +1 -1
  375. package/src/components/base/dropdown/dropdown_text.vue +1 -1
  376. package/src/components/base/form/form.vue +1 -1
  377. package/src/components/base/form/form_checkbox/form_checkbox.vue +1 -1
  378. package/src/components/base/form/form_checkbox/form_checkbox_group.vue +2 -2
  379. package/src/components/base/form/form_group/form_group.vue +1 -1
  380. package/src/components/base/form/form_input/form_input.vue +1 -1
  381. package/src/components/base/form/form_input_group/form_input_group.vue +4 -1
  382. package/src/components/base/form/form_radio/form_radio.vue +1 -1
  383. package/src/components/base/form/form_radio_group/form_radio_group.vue +2 -2
  384. package/src/components/base/form/form_select/form_select.vue +1 -1
  385. package/src/components/base/form/form_text/form_text.vue +1 -1
  386. package/src/components/base/form/form_textarea/form_textarea.vue +3 -3
  387. package/src/components/base/form/input_group_text/input_group_text.vue +1 -1
  388. package/src/components/base/link/link.vue +1 -1
  389. package/src/components/base/modal/modal.vue +1 -1
  390. package/src/components/base/nav/nav.vue +1 -1
  391. package/src/components/base/nav/nav_item.vue +1 -1
  392. package/src/components/base/nav/nav_item_dropdown.vue +1 -1
  393. package/src/components/base/navbar/navbar.vue +1 -1
  394. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.vue +1 -1
  395. package/src/components/base/popover/popover.vue +1 -1
  396. package/src/components/base/progress_bar/progress_bar.vue +1 -1
  397. package/src/components/base/segmented_control/segmented_control.vue +1 -1
  398. package/src/components/base/table/table.vue +1 -1
  399. package/src/components/base/table_lite/table_lite.vue +1 -1
  400. package/src/components/base/tabs/tab/tab.vue +1 -1
  401. package/src/components/base/tabs/tabs/tabs.vue +1 -1
  402. package/src/components/base/toast/toast.js +2 -1
  403. package/src/components/base/tooltip/tooltip.vue +1 -1
  404. package/src/components/experimental/duo/chat/duo_chat.vue +6 -2
  405. package/src/config.js +1 -1
  406. package/src/directives/collapse_toggle.js +1 -1
  407. package/src/directives/modal.js +1 -1
  408. package/src/directives/tooltip.js +1 -1
  409. package/src/scss/bootstrap_vue.scss +29 -29
  410. package/src/utils/utils.js +1 -1
  411. package/src/vendor/bootstrap-vue/LICENSE +21 -0
  412. package/src/vendor/bootstrap-vue/nuxt/index.js +185 -0
  413. package/src/vendor/bootstrap-vue/nuxt/plugin.template.js +35 -0
  414. package/src/vendor/bootstrap-vue/package.json +205 -0
  415. package/src/vendor/bootstrap-vue/src/_custom-controls.scss +30 -0
  416. package/src/vendor/bootstrap-vue/src/_utilities.scss +22 -0
  417. package/src/vendor/bootstrap-vue/src/_variables.scss +177 -0
  418. package/src/vendor/bootstrap-vue/src/browser-icons.js +9 -0
  419. package/src/vendor/bootstrap-vue/src/browser.js +9 -0
  420. package/src/vendor/bootstrap-vue/src/bv-config.d.ts +4 -0
  421. package/src/vendor/bootstrap-vue/src/bv-config.js +6 -0
  422. package/src/vendor/bootstrap-vue/src/components/alert/README.md +280 -0
  423. package/src/vendor/bootstrap-vue/src/components/alert/alert.js +185 -0
  424. package/src/vendor/bootstrap-vue/src/components/alert/alert.spec.js +442 -0
  425. package/src/vendor/bootstrap-vue/src/components/alert/index.d.ts +13 -0
  426. package/src/vendor/bootstrap-vue/src/components/alert/index.js +8 -0
  427. package/src/vendor/bootstrap-vue/src/components/alert/package.json +72 -0
  428. package/src/vendor/bootstrap-vue/src/components/aspect/README.md +65 -0
  429. package/src/vendor/bootstrap-vue/src/components/aspect/aspect.js +65 -0
  430. package/src/vendor/bootstrap-vue/src/components/aspect/aspect.spec.js +121 -0
  431. package/src/vendor/bootstrap-vue/src/components/aspect/index.d.ts +11 -0
  432. package/src/vendor/bootstrap-vue/src/components/aspect/index.js +8 -0
  433. package/src/vendor/bootstrap-vue/src/components/aspect/package.json +26 -0
  434. package/src/vendor/bootstrap-vue/src/components/avatar/README.md +567 -0
  435. package/src/vendor/bootstrap-vue/src/components/avatar/_avatar.scss +148 -0
  436. package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +75 -0
  437. package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.spec.js +74 -0
  438. package/src/vendor/bootstrap-vue/src/components/avatar/avatar.js +228 -0
  439. package/src/vendor/bootstrap-vue/src/components/avatar/avatar.spec.js +355 -0
  440. package/src/vendor/bootstrap-vue/src/components/avatar/index.d.ts +14 -0
  441. package/src/vendor/bootstrap-vue/src/components/avatar/index.js +9 -0
  442. package/src/vendor/bootstrap-vue/src/components/avatar/index.scss +1 -0
  443. package/src/vendor/bootstrap-vue/src/components/avatar/package.json +149 -0
  444. package/src/vendor/bootstrap-vue/src/components/badge/README.md +126 -0
  445. package/src/vendor/bootstrap-vue/src/components/badge/badge.js +55 -0
  446. package/src/vendor/bootstrap-vue/src/components/badge/badge.spec.js +141 -0
  447. package/src/vendor/bootstrap-vue/src/components/badge/index.d.ts +11 -0
  448. package/src/vendor/bootstrap-vue/src/components/badge/index.js +8 -0
  449. package/src/vendor/bootstrap-vue/src/components/badge/package.json +29 -0
  450. package/src/vendor/bootstrap-vue/src/components/breadcrumb/README.md +94 -0
  451. package/src/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb-item.js +27 -0
  452. package/src/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb-item.spec.js +123 -0
  453. package/src/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb-link.js +43 -0
  454. package/src/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb-link.spec.js +117 -0
  455. package/src/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb.js +52 -0
  456. package/src/vendor/bootstrap-vue/src/components/breadcrumb/breadcrumb.spec.js +183 -0
  457. package/src/vendor/bootstrap-vue/src/components/breadcrumb/index.d.ts +17 -0
  458. package/src/vendor/bootstrap-vue/src/components/breadcrumb/index.js +10 -0
  459. package/src/vendor/bootstrap-vue/src/components/breadcrumb/package.json +62 -0
  460. package/src/vendor/bootstrap-vue/src/components/button/README.md +281 -0
  461. package/src/vendor/bootstrap-vue/src/components/button/button-close.js +65 -0
  462. package/src/vendor/bootstrap-vue/src/components/button/button-close.spec.js +210 -0
  463. package/src/vendor/bootstrap-vue/src/components/button/button.js +179 -0
  464. package/src/vendor/bootstrap-vue/src/components/button/button.spec.js +385 -0
  465. package/src/vendor/bootstrap-vue/src/components/button/index.d.ts +14 -0
  466. package/src/vendor/bootstrap-vue/src/components/button/index.js +14 -0
  467. package/src/vendor/bootstrap-vue/src/components/button/package.json +105 -0
  468. package/src/vendor/bootstrap-vue/src/components/button-group/README.md +112 -0
  469. package/src/vendor/bootstrap-vue/src/components/button-group/button-group.js +42 -0
  470. package/src/vendor/bootstrap-vue/src/components/button-group/button-group.spec.js +98 -0
  471. package/src/vendor/bootstrap-vue/src/components/button-group/index.d.ts +11 -0
  472. package/src/vendor/bootstrap-vue/src/components/button-group/index.js +11 -0
  473. package/src/vendor/bootstrap-vue/src/components/button-group/package.json +29 -0
  474. package/src/vendor/bootstrap-vue/src/components/button-toolbar/README.md +109 -0
  475. package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +117 -0
  476. package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.spec.js +185 -0
  477. package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.d.ts +11 -0
  478. package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.js +11 -0
  479. package/src/vendor/bootstrap-vue/src/components/button-toolbar/package.json +32 -0
  480. package/src/vendor/bootstrap-vue/src/components/calendar/README.md +735 -0
  481. package/src/vendor/bootstrap-vue/src/components/calendar/_calendar.scss +78 -0
  482. package/src/vendor/bootstrap-vue/src/components/calendar/calendar.js +1146 -0
  483. package/src/vendor/bootstrap-vue/src/components/calendar/calendar.spec.js +466 -0
  484. package/src/vendor/bootstrap-vue/src/components/calendar/index.d.ts +28 -0
  485. package/src/vendor/bootstrap-vue/src/components/calendar/index.js +8 -0
  486. package/src/vendor/bootstrap-vue/src/components/calendar/index.scss +1 -0
  487. package/src/vendor/bootstrap-vue/src/components/calendar/package.json +317 -0
  488. package/src/vendor/bootstrap-vue/src/components/card/README.md +729 -0
  489. package/src/vendor/bootstrap-vue/src/components/card/_card-img.scss +7 -0
  490. package/src/vendor/bootstrap-vue/src/components/card/card-body.js +69 -0
  491. package/src/vendor/bootstrap-vue/src/components/card/card-body.spec.js +142 -0
  492. package/src/vendor/bootstrap-vue/src/components/card/card-footer.js +48 -0
  493. package/src/vendor/bootstrap-vue/src/components/card/card-footer.spec.js +98 -0
  494. package/src/vendor/bootstrap-vue/src/components/card/card-group.js +33 -0
  495. package/src/vendor/bootstrap-vue/src/components/card/card-group.spec.js +75 -0
  496. package/src/vendor/bootstrap-vue/src/components/card/card-header.js +48 -0
  497. package/src/vendor/bootstrap-vue/src/components/card/card-header.spec.js +98 -0
  498. package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +47 -0
  499. package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.spec.js +204 -0
  500. package/src/vendor/bootstrap-vue/src/components/card/card-img.js +50 -0
  501. package/src/vendor/bootstrap-vue/src/components/card/card-img.spec.js +208 -0
  502. package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.js +35 -0
  503. package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.spec.js +60 -0
  504. package/src/vendor/bootstrap-vue/src/components/card/card-text.js +25 -0
  505. package/src/vendor/bootstrap-vue/src/components/card/card-text.spec.js +48 -0
  506. package/src/vendor/bootstrap-vue/src/components/card/card-title.js +33 -0
  507. package/src/vendor/bootstrap-vue/src/components/card/card-title.spec.js +45 -0
  508. package/src/vendor/bootstrap-vue/src/components/card/card.js +140 -0
  509. package/src/vendor/bootstrap-vue/src/components/card/card.spec.js +296 -0
  510. package/src/vendor/bootstrap-vue/src/components/card/index.d.ts +38 -0
  511. package/src/vendor/bootstrap-vue/src/components/card/index.js +40 -0
  512. package/src/vendor/bootstrap-vue/src/components/card/index.scss +1 -0
  513. package/src/vendor/bootstrap-vue/src/components/card/package.json +262 -0
  514. package/src/vendor/bootstrap-vue/src/components/carousel/README.md +320 -0
  515. package/src/vendor/bootstrap-vue/src/components/carousel/carousel-slide.js +132 -0
  516. package/src/vendor/bootstrap-vue/src/components/carousel/carousel-slide.spec.js +276 -0
  517. package/src/vendor/bootstrap-vue/src/components/carousel/carousel.js +655 -0
  518. package/src/vendor/bootstrap-vue/src/components/carousel/carousel.spec.js +1069 -0
  519. package/src/vendor/bootstrap-vue/src/components/carousel/index.d.ts +20 -0
  520. package/src/vendor/bootstrap-vue/src/components/carousel/index.js +12 -0
  521. package/src/vendor/bootstrap-vue/src/components/carousel/package.json +185 -0
  522. package/src/vendor/bootstrap-vue/src/components/collapse/README.md +321 -0
  523. package/src/vendor/bootstrap-vue/src/components/collapse/collapse.js +272 -0
  524. package/src/vendor/bootstrap-vue/src/components/collapse/collapse.spec.js +558 -0
  525. package/src/vendor/bootstrap-vue/src/components/collapse/helpers/bv-collapse.js +88 -0
  526. package/src/vendor/bootstrap-vue/src/components/collapse/index.d.ts +13 -0
  527. package/src/vendor/bootstrap-vue/src/components/collapse/index.js +10 -0
  528. package/src/vendor/bootstrap-vue/src/components/collapse/package.json +111 -0
  529. package/src/vendor/bootstrap-vue/src/components/dropdown/README.md +730 -0
  530. package/src/vendor/bootstrap-vue/src/components/dropdown/_dropdown-form.scss +38 -0
  531. package/src/vendor/bootstrap-vue/src/components/dropdown/_dropdown-text.scss +17 -0
  532. package/src/vendor/bootstrap-vue/src/components/dropdown/_dropdown.scss +58 -0
  533. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +36 -0
  534. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.spec.js +58 -0
  535. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +47 -0
  536. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.spec.js +110 -0
  537. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +76 -0
  538. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.spec.js +94 -0
  539. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +46 -0
  540. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.spec.js +73 -0
  541. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +93 -0
  542. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.spec.js +117 -0
  543. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +87 -0
  544. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.spec.js +147 -0
  545. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +42 -0
  546. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.spec.js +59 -0
  547. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +202 -0
  548. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.spec.js +1121 -0
  549. package/src/vendor/bootstrap-vue/src/components/dropdown/index.d.ts +36 -0
  550. package/src/vendor/bootstrap-vue/src/components/dropdown/index.js +44 -0
  551. package/src/vendor/bootstrap-vue/src/components/dropdown/index.scss +3 -0
  552. package/src/vendor/bootstrap-vue/src/components/dropdown/package.json +368 -0
  553. package/src/vendor/bootstrap-vue/src/components/embed/README.md +63 -0
  554. package/src/vendor/bootstrap-vue/src/components/embed/embed.js +51 -0
  555. package/src/vendor/bootstrap-vue/src/components/embed/embed.spec.js +110 -0
  556. package/src/vendor/bootstrap-vue/src/components/embed/index.d.ts +11 -0
  557. package/src/vendor/bootstrap-vue/src/components/embed/index.js +8 -0
  558. package/src/vendor/bootstrap-vue/src/components/embed/package.json +29 -0
  559. package/src/vendor/bootstrap-vue/src/components/form/README.md +370 -0
  560. package/src/vendor/bootstrap-vue/src/components/form/form-datalist.js +42 -0
  561. package/src/vendor/bootstrap-vue/src/components/form/form-datalist.spec.js +57 -0
  562. package/src/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +51 -0
  563. package/src/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.spec.js +170 -0
  564. package/src/vendor/bootstrap-vue/src/components/form/form-text.js +40 -0
  565. package/src/vendor/bootstrap-vue/src/components/form/form-text.spec.js +93 -0
  566. package/src/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +51 -0
  567. package/src/vendor/bootstrap-vue/src/components/form/form-valid-feedback.spec.js +157 -0
  568. package/src/vendor/bootstrap-vue/src/components/form/form.js +41 -0
  569. package/src/vendor/bootstrap-vue/src/components/form/form.spec.js +97 -0
  570. package/src/vendor/bootstrap-vue/src/components/form/index.d.ts +23 -0
  571. package/src/vendor/bootstrap-vue/src/components/form/index.js +24 -0
  572. package/src/vendor/bootstrap-vue/src/components/form/package.json +124 -0
  573. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/_form-btn-label-control.scss +125 -0
  574. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +278 -0
  575. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/index.scss +1 -0
  576. package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/package.json +5 -0
  577. package/src/vendor/bootstrap-vue/src/components/form-checkbox/README.md +862 -0
  578. package/src/vendor/bootstrap-vue/src/components/form-checkbox/_form-checkbox-group.scss +2 -0
  579. package/src/vendor/bootstrap-vue/src/components/form-checkbox/_form-checkbox.scss +125 -0
  580. package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox-group.js +42 -0
  581. package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox-group.spec.js +642 -0
  582. package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox.js +132 -0
  583. package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox.spec.js +1331 -0
  584. package/src/vendor/bootstrap-vue/src/components/form-checkbox/index.d.ts +14 -0
  585. package/src/vendor/bootstrap-vue/src/components/form-checkbox/index.js +16 -0
  586. package/src/vendor/bootstrap-vue/src/components/form-checkbox/index.scss +2 -0
  587. package/src/vendor/bootstrap-vue/src/components/form-checkbox/package.json +172 -0
  588. package/src/vendor/bootstrap-vue/src/components/form-datepicker/README.md +694 -0
  589. package/src/vendor/bootstrap-vue/src/components/form-datepicker/_form-datepicker.scss +1 -0
  590. package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +342 -0
  591. package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.spec.js +562 -0
  592. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.d.ts +12 -0
  593. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.js +11 -0
  594. package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.scss +1 -0
  595. package/src/vendor/bootstrap-vue/src/components/form-datepicker/package.json +420 -0
  596. package/src/vendor/bootstrap-vue/src/components/form-file/README.md +357 -0
  597. package/src/vendor/bootstrap-vue/src/components/form-file/_form-file.scss +61 -0
  598. package/src/vendor/bootstrap-vue/src/components/form-file/form-file.js +575 -0
  599. package/src/vendor/bootstrap-vue/src/components/form-file/form-file.spec.js +885 -0
  600. package/src/vendor/bootstrap-vue/src/components/form-file/index.d.ts +13 -0
  601. package/src/vendor/bootstrap-vue/src/components/form-file/index.js +11 -0
  602. package/src/vendor/bootstrap-vue/src/components/form-file/index.scss +1 -0
  603. package/src/vendor/bootstrap-vue/src/components/form-file/package.json +131 -0
  604. package/src/vendor/bootstrap-vue/src/components/form-group/README.md +337 -0
  605. package/src/vendor/bootstrap-vue/src/components/form-group/form-group.js +403 -0
  606. package/src/vendor/bootstrap-vue/src/components/form-group/form-group.spec.js +477 -0
  607. package/src/vendor/bootstrap-vue/src/components/form-group/index.d.ts +11 -0
  608. package/src/vendor/bootstrap-vue/src/components/form-group/index.js +11 -0
  609. package/src/vendor/bootstrap-vue/src/components/form-group/package.json +183 -0
  610. package/src/vendor/bootstrap-vue/src/components/form-input/README.md +612 -0
  611. package/src/vendor/bootstrap-vue/src/components/form-input/_form-input.scss +217 -0
  612. package/src/vendor/bootstrap-vue/src/components/form-input/form-input.js +168 -0
  613. package/src/vendor/bootstrap-vue/src/components/form-input/form-input.spec.js +986 -0
  614. package/src/vendor/bootstrap-vue/src/components/form-input/index.d.ts +13 -0
  615. package/src/vendor/bootstrap-vue/src/components/form-input/index.js +11 -0
  616. package/src/vendor/bootstrap-vue/src/components/form-input/index.scss +1 -0
  617. package/src/vendor/bootstrap-vue/src/components/form-input/package.json +135 -0
  618. package/src/vendor/bootstrap-vue/src/components/form-radio/README.md +566 -0
  619. package/src/vendor/bootstrap-vue/src/components/form-radio/_form-radio-group.scss +3 -0
  620. package/src/vendor/bootstrap-vue/src/components/form-radio/_form-radio.scss +47 -0
  621. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.js +30 -0
  622. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.spec.js +469 -0
  623. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio.js +28 -0
  624. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio.spec.js +952 -0
  625. package/src/vendor/bootstrap-vue/src/components/form-radio/index.d.ts +14 -0
  626. package/src/vendor/bootstrap-vue/src/components/form-radio/index.js +14 -0
  627. package/src/vendor/bootstrap-vue/src/components/form-radio/index.scss +2 -0
  628. package/src/vendor/bootstrap-vue/src/components/form-radio/package.json +162 -0
  629. package/src/vendor/bootstrap-vue/src/components/form-rating/README.md +526 -0
  630. package/src/vendor/bootstrap-vue/src/components/form-rating/_form-rating.scss +57 -0
  631. package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +411 -0
  632. package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.spec.js +544 -0
  633. package/src/vendor/bootstrap-vue/src/components/form-rating/index.d.ts +14 -0
  634. package/src/vendor/bootstrap-vue/src/components/form-rating/index.js +8 -0
  635. package/src/vendor/bootstrap-vue/src/components/form-rating/index.scss +1 -0
  636. package/src/vendor/bootstrap-vue/src/components/form-rating/package.json +166 -0
  637. package/src/vendor/bootstrap-vue/src/components/form-select/README.md +504 -0
  638. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +48 -0
  639. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.spec.js +138 -0
  640. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +35 -0
  641. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.spec.js +75 -0
  642. package/src/vendor/bootstrap-vue/src/components/form-select/form-select.js +153 -0
  643. package/src/vendor/bootstrap-vue/src/components/form-select/form-select.spec.js +723 -0
  644. package/src/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +56 -0
  645. package/src/vendor/bootstrap-vue/src/components/form-select/index.d.ts +17 -0
  646. package/src/vendor/bootstrap-vue/src/components/form-select/index.js +17 -0
  647. package/src/vendor/bootstrap-vue/src/components/form-select/package.json +132 -0
  648. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/README.md +411 -0
  649. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/_spinbutton.scss +76 -0
  650. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +572 -0
  651. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.spec.js +731 -0
  652. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.d.ts +12 -0
  653. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +11 -0
  654. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.scss +1 -0
  655. package/src/vendor/bootstrap-vue/src/components/form-spinbutton/package.json +150 -0
  656. package/src/vendor/bootstrap-vue/src/components/form-tags/README.md +880 -0
  657. package/src/vendor/bootstrap-vue/src/components/form-tags/_form-tags.scss +70 -0
  658. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +94 -0
  659. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.spec.js +166 -0
  660. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +891 -0
  661. package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.spec.js +920 -0
  662. package/src/vendor/bootstrap-vue/src/components/form-tags/index.d.ts +16 -0
  663. package/src/vendor/bootstrap-vue/src/components/form-tags/index.js +14 -0
  664. package/src/vendor/bootstrap-vue/src/components/form-tags/index.scss +1 -0
  665. package/src/vendor/bootstrap-vue/src/components/form-tags/package.json +440 -0
  666. package/src/vendor/bootstrap-vue/src/components/form-textarea/README.md +453 -0
  667. package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +226 -0
  668. package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.spec.js +1000 -0
  669. package/src/vendor/bootstrap-vue/src/components/form-textarea/index.d.ts +13 -0
  670. package/src/vendor/bootstrap-vue/src/components/form-textarea/index.js +11 -0
  671. package/src/vendor/bootstrap-vue/src/components/form-textarea/package.json +122 -0
  672. package/src/vendor/bootstrap-vue/src/components/form-timepicker/README.md +450 -0
  673. package/src/vendor/bootstrap-vue/src/components/form-timepicker/_form-timepicker.scss +1 -0
  674. package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +308 -0
  675. package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.spec.js +440 -0
  676. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.d.ts +12 -0
  677. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.js +11 -0
  678. package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.scss +1 -0
  679. package/src/vendor/bootstrap-vue/src/components/form-timepicker/package.json +255 -0
  680. package/src/vendor/bootstrap-vue/src/components/image/README.md +322 -0
  681. package/src/vendor/bootstrap-vue/src/components/image/img-lazy.js +161 -0
  682. package/src/vendor/bootstrap-vue/src/components/image/img-lazy.spec.js +96 -0
  683. package/src/vendor/bootstrap-vue/src/components/image/img.js +139 -0
  684. package/src/vendor/bootstrap-vue/src/components/image/img.spec.js +255 -0
  685. package/src/vendor/bootstrap-vue/src/components/image/index.d.ts +14 -0
  686. package/src/vendor/bootstrap-vue/src/components/image/index.js +12 -0
  687. package/src/vendor/bootstrap-vue/src/components/image/package.json +152 -0
  688. package/src/vendor/bootstrap-vue/src/components/index.d.ts +56 -0
  689. package/src/vendor/bootstrap-vue/src/components/index.js +110 -0
  690. package/src/vendor/bootstrap-vue/src/components/index.scss +27 -0
  691. package/src/vendor/bootstrap-vue/src/components/input-group/README.md +334 -0
  692. package/src/vendor/bootstrap-vue/src/components/input-group/_input-group.scss +29 -0
  693. package/src/vendor/bootstrap-vue/src/components/input-group/index.d.ts +23 -0
  694. package/src/vendor/bootstrap-vue/src/components/input-group/index.js +25 -0
  695. package/src/vendor/bootstrap-vue/src/components/input-group/index.scss +1 -0
  696. package/src/vendor/bootstrap-vue/src/components/input-group/input-group-addon.js +43 -0
  697. package/src/vendor/bootstrap-vue/src/components/input-group/input-group-append.js +31 -0
  698. package/src/vendor/bootstrap-vue/src/components/input-group/input-group-append.spec.js +84 -0
  699. package/src/vendor/bootstrap-vue/src/components/input-group/input-group-prepend.js +31 -0
  700. package/src/vendor/bootstrap-vue/src/components/input-group/input-group-prepend.spec.js +84 -0
  701. package/src/vendor/bootstrap-vue/src/components/input-group/input-group-text.js +31 -0
  702. package/src/vendor/bootstrap-vue/src/components/input-group/input-group-text.spec.js +45 -0
  703. package/src/vendor/bootstrap-vue/src/components/input-group/input-group.js +73 -0
  704. package/src/vendor/bootstrap-vue/src/components/input-group/input-group.spec.js +153 -0
  705. package/src/vendor/bootstrap-vue/src/components/input-group/package.json +109 -0
  706. package/src/vendor/bootstrap-vue/src/components/jumbotron/README.md +109 -0
  707. package/src/vendor/bootstrap-vue/src/components/jumbotron/index.d.ts +11 -0
  708. package/src/vendor/bootstrap-vue/src/components/jumbotron/index.js +8 -0
  709. package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +103 -0
  710. package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.spec.js +254 -0
  711. package/src/vendor/bootstrap-vue/src/components/jumbotron/package.json +66 -0
  712. package/src/vendor/bootstrap-vue/src/components/layout/README.md +791 -0
  713. package/src/vendor/bootstrap-vue/src/components/layout/col.js +154 -0
  714. package/src/vendor/bootstrap-vue/src/components/layout/col.spec.js +192 -0
  715. package/src/vendor/bootstrap-vue/src/components/layout/container.js +40 -0
  716. package/src/vendor/bootstrap-vue/src/components/layout/container.spec.js +75 -0
  717. package/src/vendor/bootstrap-vue/src/components/layout/form-row.js +31 -0
  718. package/src/vendor/bootstrap-vue/src/components/layout/form-row.spec.js +45 -0
  719. package/src/vendor/bootstrap-vue/src/components/layout/index.d.ts +20 -0
  720. package/src/vendor/bootstrap-vue/src/components/layout/index.js +16 -0
  721. package/src/vendor/bootstrap-vue/src/components/layout/package.json +166 -0
  722. package/src/vendor/bootstrap-vue/src/components/layout/row.js +111 -0
  723. package/src/vendor/bootstrap-vue/src/components/layout/row.spec.js +138 -0
  724. package/src/vendor/bootstrap-vue/src/components/link/README.md +76 -0
  725. package/src/vendor/bootstrap-vue/src/components/link/index.d.ts +14 -0
  726. package/src/vendor/bootstrap-vue/src/components/link/index.js +8 -0
  727. package/src/vendor/bootstrap-vue/src/components/link/link.js +212 -0
  728. package/src/vendor/bootstrap-vue/src/components/link/link.spec.js +434 -0
  729. package/src/vendor/bootstrap-vue/src/components/link/package.json +57 -0
  730. package/src/vendor/bootstrap-vue/src/components/list-group/README.md +291 -0
  731. package/src/vendor/bootstrap-vue/src/components/list-group/index.d.ts +14 -0
  732. package/src/vendor/bootstrap-vue/src/components/list-group/index.js +12 -0
  733. package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +76 -0
  734. package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.spec.js +286 -0
  735. package/src/vendor/bootstrap-vue/src/components/list-group/list-group.js +42 -0
  736. package/src/vendor/bootstrap-vue/src/components/list-group/list-group.spec.js +132 -0
  737. package/src/vendor/bootstrap-vue/src/components/list-group/package.json +52 -0
  738. package/src/vendor/bootstrap-vue/src/components/media/README.md +183 -0
  739. package/src/vendor/bootstrap-vue/src/components/media/_media.scss +9 -0
  740. package/src/vendor/bootstrap-vue/src/components/media/index.d.ts +17 -0
  741. package/src/vendor/bootstrap-vue/src/components/media/index.js +14 -0
  742. package/src/vendor/bootstrap-vue/src/components/media/index.scss +1 -0
  743. package/src/vendor/bootstrap-vue/src/components/media/media-aside.js +45 -0
  744. package/src/vendor/bootstrap-vue/src/components/media/media-aside.spec.js +79 -0
  745. package/src/vendor/bootstrap-vue/src/components/media/media-body.js +25 -0
  746. package/src/vendor/bootstrap-vue/src/components/media/media-body.spec.js +47 -0
  747. package/src/vendor/bootstrap-vue/src/components/media/media.js +52 -0
  748. package/src/vendor/bootstrap-vue/src/components/media/media.spec.js +149 -0
  749. package/src/vendor/bootstrap-vue/src/components/media/package.json +65 -0
  750. package/src/vendor/bootstrap-vue/src/components/modal/README.md +1193 -0
  751. package/src/vendor/bootstrap-vue/src/components/modal/_modal.scss +5 -0
  752. package/src/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.js +22 -0
  753. package/src/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.spec.js +82 -0
  754. package/src/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal.js +279 -0
  755. package/src/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal.spec.js +178 -0
  756. package/src/vendor/bootstrap-vue/src/components/modal/helpers/modal-manager.js +219 -0
  757. package/src/vendor/bootstrap-vue/src/components/modal/index.d.ts +95 -0
  758. package/src/vendor/bootstrap-vue/src/components/modal/index.js +13 -0
  759. package/src/vendor/bootstrap-vue/src/components/modal/index.scss +1 -0
  760. package/src/vendor/bootstrap-vue/src/components/modal/modal.js +1022 -0
  761. package/src/vendor/bootstrap-vue/src/components/modal/modal.spec.js +1418 -0
  762. package/src/vendor/bootstrap-vue/src/components/modal/package.json +587 -0
  763. package/src/vendor/bootstrap-vue/src/components/nav/README.md +480 -0
  764. package/src/vendor/bootstrap-vue/src/components/nav/_nav-item-dropdown.scss +1 -0
  765. package/src/vendor/bootstrap-vue/src/components/nav/index.d.ts +27 -0
  766. package/src/vendor/bootstrap-vue/src/components/nav/index.js +25 -0
  767. package/src/vendor/bootstrap-vue/src/components/nav/index.scss +1 -0
  768. package/src/vendor/bootstrap-vue/src/components/nav/nav-form.js +50 -0
  769. package/src/vendor/bootstrap-vue/src/components/nav/nav-form.spec.js +93 -0
  770. package/src/vendor/bootstrap-vue/src/components/nav/nav-item-dropdown.js +123 -0
  771. package/src/vendor/bootstrap-vue/src/components/nav/nav-item-dropdown.spec.js +268 -0
  772. package/src/vendor/bootstrap-vue/src/components/nav/nav-item.js +49 -0
  773. package/src/vendor/bootstrap-vue/src/components/nav/nav-item.spec.js +127 -0
  774. package/src/vendor/bootstrap-vue/src/components/nav/nav-text.js +18 -0
  775. package/src/vendor/bootstrap-vue/src/components/nav/nav-text.spec.js +30 -0
  776. package/src/vendor/bootstrap-vue/src/components/nav/nav.js +60 -0
  777. package/src/vendor/bootstrap-vue/src/components/nav/nav.spec.js +244 -0
  778. package/src/vendor/bootstrap-vue/src/components/nav/package.json +238 -0
  779. package/src/vendor/bootstrap-vue/src/components/navbar/README.md +339 -0
  780. package/src/vendor/bootstrap-vue/src/components/navbar/_navbar.scss +1 -0
  781. package/src/vendor/bootstrap-vue/src/components/navbar/index.d.ts +19 -0
  782. package/src/vendor/bootstrap-vue/src/components/navbar/index.js +25 -0
  783. package/src/vendor/bootstrap-vue/src/components/navbar/index.scss +1 -0
  784. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-brand.js +42 -0
  785. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-brand.spec.js +50 -0
  786. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +45 -0
  787. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.spec.js +105 -0
  788. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +84 -0
  789. package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.spec.js +189 -0
  790. package/src/vendor/bootstrap-vue/src/components/navbar/navbar.js +78 -0
  791. package/src/vendor/bootstrap-vue/src/components/navbar/navbar.spec.js +130 -0
  792. package/src/vendor/bootstrap-vue/src/components/navbar/package.json +134 -0
  793. package/src/vendor/bootstrap-vue/src/components/overlay/README.md +815 -0
  794. package/src/vendor/bootstrap-vue/src/components/overlay/index.d.ts +11 -0
  795. package/src/vendor/bootstrap-vue/src/components/overlay/index.js +8 -0
  796. package/src/vendor/bootstrap-vue/src/components/overlay/overlay.js +162 -0
  797. package/src/vendor/bootstrap-vue/src/components/overlay/overlay.spec.js +257 -0
  798. package/src/vendor/bootstrap-vue/src/components/overlay/package.json +130 -0
  799. package/src/vendor/bootstrap-vue/src/components/pagination/README.md +430 -0
  800. package/src/vendor/bootstrap-vue/src/components/pagination/_pagination.scss +26 -0
  801. package/src/vendor/bootstrap-vue/src/components/pagination/index.d.ts +11 -0
  802. package/src/vendor/bootstrap-vue/src/components/pagination/index.js +8 -0
  803. package/src/vendor/bootstrap-vue/src/components/pagination/index.scss +1 -0
  804. package/src/vendor/bootstrap-vue/src/components/pagination/package.json +295 -0
  805. package/src/vendor/bootstrap-vue/src/components/pagination/pagination.js +138 -0
  806. package/src/vendor/bootstrap-vue/src/components/pagination/pagination.spec.js +1198 -0
  807. package/src/vendor/bootstrap-vue/src/components/pagination-nav/README.md +544 -0
  808. package/src/vendor/bootstrap-vue/src/components/pagination-nav/_pagination-nav.scss +2 -0
  809. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.d.ts +11 -0
  810. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.js +8 -0
  811. package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.scss +1 -0
  812. package/src/vendor/bootstrap-vue/src/components/pagination-nav/package.json +315 -0
  813. package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +281 -0
  814. package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.spec.js +671 -0
  815. package/src/vendor/bootstrap-vue/src/components/popover/README.md +964 -0
  816. package/src/vendor/bootstrap-vue/src/components/popover/_popover.scss +113 -0
  817. package/src/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover-template.js +50 -0
  818. package/src/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover.js +28 -0
  819. package/src/vendor/bootstrap-vue/src/components/popover/index.d.ts +11 -0
  820. package/src/vendor/bootstrap-vue/src/components/popover/index.js +10 -0
  821. package/src/vendor/bootstrap-vue/src/components/popover/index.scss +1 -0
  822. package/src/vendor/bootstrap-vue/src/components/popover/package.json +264 -0
  823. package/src/vendor/bootstrap-vue/src/components/popover/popover.js +46 -0
  824. package/src/vendor/bootstrap-vue/src/components/popover/popover.spec.js +199 -0
  825. package/src/vendor/bootstrap-vue/src/components/progress/README.md +376 -0
  826. package/src/vendor/bootstrap-vue/src/components/progress/index.d.ts +14 -0
  827. package/src/vendor/bootstrap-vue/src/components/progress/index.js +12 -0
  828. package/src/vendor/bootstrap-vue/src/components/progress/package.json +109 -0
  829. package/src/vendor/bootstrap-vue/src/components/progress/progress-bar.js +133 -0
  830. package/src/vendor/bootstrap-vue/src/components/progress/progress-bar.spec.js +270 -0
  831. package/src/vendor/bootstrap-vue/src/components/progress/progress.js +57 -0
  832. package/src/vendor/bootstrap-vue/src/components/progress/progress.spec.js +71 -0
  833. package/src/vendor/bootstrap-vue/src/components/sidebar/README.md +406 -0
  834. package/src/vendor/bootstrap-vue/src/components/sidebar/_sidebar.scss +97 -0
  835. package/src/vendor/bootstrap-vue/src/components/sidebar/index.d.ts +11 -0
  836. package/src/vendor/bootstrap-vue/src/components/sidebar/index.js +10 -0
  837. package/src/vendor/bootstrap-vue/src/components/sidebar/index.scss +1 -0
  838. package/src/vendor/bootstrap-vue/src/components/sidebar/package.json +239 -0
  839. package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +438 -0
  840. package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.spec.js +404 -0
  841. package/src/vendor/bootstrap-vue/src/components/skeleton/README.md +275 -0
  842. package/src/vendor/bootstrap-vue/src/components/skeleton/_skeleton.scss +141 -0
  843. package/src/vendor/bootstrap-vue/src/components/skeleton/index.d.ts +23 -0
  844. package/src/vendor/bootstrap-vue/src/components/skeleton/index.js +18 -0
  845. package/src/vendor/bootstrap-vue/src/components/skeleton/index.scss +1 -0
  846. package/src/vendor/bootstrap-vue/src/components/skeleton/package.json +136 -0
  847. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +45 -0
  848. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.spec.js +86 -0
  849. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +49 -0
  850. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.spec.js +139 -0
  851. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +58 -0
  852. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.spec.js +119 -0
  853. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +47 -0
  854. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.spec.js +48 -0
  855. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +46 -0
  856. package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.spec.js +126 -0
  857. package/src/vendor/bootstrap-vue/src/components/spinner/README.md +229 -0
  858. package/src/vendor/bootstrap-vue/src/components/spinner/index.d.ts +11 -0
  859. package/src/vendor/bootstrap-vue/src/components/spinner/index.js +8 -0
  860. package/src/vendor/bootstrap-vue/src/components/spinner/package.json +38 -0
  861. package/src/vendor/bootstrap-vue/src/components/spinner/spinner.js +54 -0
  862. package/src/vendor/bootstrap-vue/src/components/spinner/spinner.spec.js +305 -0
  863. package/src/vendor/bootstrap-vue/src/components/table/README.md +3170 -0
  864. package/src/vendor/bootstrap-vue/src/components/table/_table.scss +474 -0
  865. package/src/vendor/bootstrap-vue/src/components/table/helpers/constants.js +30 -0
  866. package/src/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.js +60 -0
  867. package/src/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.spec.js +112 -0
  868. package/src/vendor/bootstrap-vue/src/components/table/helpers/filter-event.js +38 -0
  869. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-bottom-row.js +44 -0
  870. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +88 -0
  871. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +49 -0
  872. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-colgroup.js +27 -0
  873. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +105 -0
  874. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +271 -0
  875. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +146 -0
  876. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +38 -0
  877. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +188 -0
  878. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +241 -0
  879. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +299 -0
  880. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +33 -0
  881. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +209 -0
  882. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +360 -0
  883. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +258 -0
  884. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +55 -0
  885. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +238 -0
  886. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-top-row.js +37 -0
  887. package/src/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.js +71 -0
  888. package/src/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.spec.js +93 -0
  889. package/src/vendor/bootstrap-vue/src/components/table/helpers/sanitize-row.js +39 -0
  890. package/src/vendor/bootstrap-vue/src/components/table/helpers/stringify-record-values.js +11 -0
  891. package/src/vendor/bootstrap-vue/src/components/table/helpers/text-selection-active.js +13 -0
  892. package/src/vendor/bootstrap-vue/src/components/table/index.d.ts +243 -0
  893. package/src/vendor/bootstrap-vue/src/components/table/index.js +56 -0
  894. package/src/vendor/bootstrap-vue/src/components/table/index.scss +1 -0
  895. package/src/vendor/bootstrap-vue/src/components/table/package.json +1767 -0
  896. package/src/vendor/bootstrap-vue/src/components/table/table-busy.spec.js +150 -0
  897. package/src/vendor/bootstrap-vue/src/components/table/table-caption.spec.js +176 -0
  898. package/src/vendor/bootstrap-vue/src/components/table/table-colgroup.spec.js +81 -0
  899. package/src/vendor/bootstrap-vue/src/components/table/table-filtering.spec.js +409 -0
  900. package/src/vendor/bootstrap-vue/src/components/table/table-item-formatter.spec.js +56 -0
  901. package/src/vendor/bootstrap-vue/src/components/table/table-lite.js +63 -0
  902. package/src/vendor/bootstrap-vue/src/components/table/table-lite.spec.js +682 -0
  903. package/src/vendor/bootstrap-vue/src/components/table/table-pagination.spec.js +133 -0
  904. package/src/vendor/bootstrap-vue/src/components/table/table-primarykey.spec.js +83 -0
  905. package/src/vendor/bootstrap-vue/src/components/table/table-provider.spec.js +411 -0
  906. package/src/vendor/bootstrap-vue/src/components/table/table-row-details.spec.js +459 -0
  907. package/src/vendor/bootstrap-vue/src/components/table/table-selectable.spec.js +1182 -0
  908. package/src/vendor/bootstrap-vue/src/components/table/table-simple.js +50 -0
  909. package/src/vendor/bootstrap-vue/src/components/table/table-simple.spec.js +206 -0
  910. package/src/vendor/bootstrap-vue/src/components/table/table-sorting.spec.js +858 -0
  911. package/src/vendor/bootstrap-vue/src/components/table/table-sticky-column.spec.js +377 -0
  912. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-bottom-row.spec.js +94 -0
  913. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-row-events.spec.js +529 -0
  914. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-top-row.spec.js +88 -0
  915. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-transition.spec.js +83 -0
  916. package/src/vendor/bootstrap-vue/src/components/table/table-tfoot-custom.spec.js +91 -0
  917. package/src/vendor/bootstrap-vue/src/components/table/table-tfoot-events.spec.js +137 -0
  918. package/src/vendor/bootstrap-vue/src/components/table/table-thead-events.spec.js +155 -0
  919. package/src/vendor/bootstrap-vue/src/components/table/table-thead-top.spec.js +96 -0
  920. package/src/vendor/bootstrap-vue/src/components/table/table.js +89 -0
  921. package/src/vendor/bootstrap-vue/src/components/table/table.spec.js +692 -0
  922. package/src/vendor/bootstrap-vue/src/components/table/tbody.js +103 -0
  923. package/src/vendor/bootstrap-vue/src/components/table/td.js +195 -0
  924. package/src/vendor/bootstrap-vue/src/components/table/tfoot.js +95 -0
  925. package/src/vendor/bootstrap-vue/src/components/table/th.js +25 -0
  926. package/src/vendor/bootstrap-vue/src/components/table/thead.js +98 -0
  927. package/src/vendor/bootstrap-vue/src/components/table/tr.js +122 -0
  928. package/src/vendor/bootstrap-vue/src/components/tabs/README.md +575 -0
  929. package/src/vendor/bootstrap-vue/src/components/tabs/index.d.ts +17 -0
  930. package/src/vendor/bootstrap-vue/src/components/tabs/index.js +12 -0
  931. package/src/vendor/bootstrap-vue/src/components/tabs/package.json +205 -0
  932. package/src/vendor/bootstrap-vue/src/components/tabs/tab.js +197 -0
  933. package/src/vendor/bootstrap-vue/src/components/tabs/tab.spec.js +330 -0
  934. package/src/vendor/bootstrap-vue/src/components/tabs/tabs.js +688 -0
  935. package/src/vendor/bootstrap-vue/src/components/tabs/tabs.spec.js +836 -0
  936. package/src/vendor/bootstrap-vue/src/components/time/README.md +431 -0
  937. package/src/vendor/bootstrap-vue/src/components/time/_time.scss +41 -0
  938. package/src/vendor/bootstrap-vue/src/components/time/index.d.ts +27 -0
  939. package/src/vendor/bootstrap-vue/src/components/time/index.js +8 -0
  940. package/src/vendor/bootstrap-vue/src/components/time/index.scss +1 -0
  941. package/src/vendor/bootstrap-vue/src/components/time/package.json +123 -0
  942. package/src/vendor/bootstrap-vue/src/components/time/time.js +601 -0
  943. package/src/vendor/bootstrap-vue/src/components/time/time.spec.js +330 -0
  944. package/src/vendor/bootstrap-vue/src/components/toast/README.md +658 -0
  945. package/src/vendor/bootstrap-vue/src/components/toast/_toast.scss +79 -0
  946. package/src/vendor/bootstrap-vue/src/components/toast/_toaster-transition.scss +45 -0
  947. package/src/vendor/bootstrap-vue/src/components/toast/_toaster.scss +108 -0
  948. package/src/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.js +208 -0
  949. package/src/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.spec.js +131 -0
  950. package/src/vendor/bootstrap-vue/src/components/toast/index.d.ts +70 -0
  951. package/src/vendor/bootstrap-vue/src/components/toast/index.js +12 -0
  952. package/src/vendor/bootstrap-vue/src/components/toast/index.scss +3 -0
  953. package/src/vendor/bootstrap-vue/src/components/toast/package.json +188 -0
  954. package/src/vendor/bootstrap-vue/src/components/toast/toast.js +454 -0
  955. package/src/vendor/bootstrap-vue/src/components/toast/toast.spec.js +346 -0
  956. package/src/vendor/bootstrap-vue/src/components/toast/toaster.js +139 -0
  957. package/src/vendor/bootstrap-vue/src/components/toast/toaster.spec.js +77 -0
  958. package/src/vendor/bootstrap-vue/src/components/tooltip/README.md +559 -0
  959. package/src/vendor/bootstrap-vue/src/components/tooltip/_tooltip.scss +86 -0
  960. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +248 -0
  961. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +130 -0
  962. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +981 -0
  963. package/src/vendor/bootstrap-vue/src/components/tooltip/index.d.ts +11 -0
  964. package/src/vendor/bootstrap-vue/src/components/tooltip/index.js +10 -0
  965. package/src/vendor/bootstrap-vue/src/components/tooltip/index.scss +1 -0
  966. package/src/vendor/bootstrap-vue/src/components/tooltip/package.json +261 -0
  967. package/src/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +316 -0
  968. package/src/vendor/bootstrap-vue/src/components/tooltip/tooltip.spec.js +1529 -0
  969. package/src/vendor/bootstrap-vue/src/components/transition/bv-transition.js +83 -0
  970. package/src/vendor/bootstrap-vue/src/components/transition/package.json +5 -0
  971. package/src/vendor/bootstrap-vue/src/components/transporter/package.json +5 -0
  972. package/src/vendor/bootstrap-vue/src/components/transporter/transporter.js +202 -0
  973. package/src/vendor/bootstrap-vue/src/components/transporter/transporter.spec.js +85 -0
  974. package/src/vendor/bootstrap-vue/src/constants/classes.js +2 -0
  975. package/src/vendor/bootstrap-vue/src/constants/components.js +133 -0
  976. package/src/vendor/bootstrap-vue/src/constants/config.js +4 -0
  977. package/src/vendor/bootstrap-vue/src/constants/date.js +7 -0
  978. package/src/vendor/bootstrap-vue/src/constants/env.js +58 -0
  979. package/src/vendor/bootstrap-vue/src/constants/events.js +68 -0
  980. package/src/vendor/bootstrap-vue/src/constants/key-codes.js +14 -0
  981. package/src/vendor/bootstrap-vue/src/constants/popper.js +8 -0
  982. package/src/vendor/bootstrap-vue/src/constants/props.js +29 -0
  983. package/src/vendor/bootstrap-vue/src/constants/regex.js +60 -0
  984. package/src/vendor/bootstrap-vue/src/constants/safe-types.js +17 -0
  985. package/src/vendor/bootstrap-vue/src/constants/slots.js +64 -0
  986. package/src/vendor/bootstrap-vue/src/directives/hover/README.md +87 -0
  987. package/src/vendor/bootstrap-vue/src/directives/hover/hover.js +54 -0
  988. package/src/vendor/bootstrap-vue/src/directives/hover/hover.spec.js +49 -0
  989. package/src/vendor/bootstrap-vue/src/directives/hover/index.d.ts +11 -0
  990. package/src/vendor/bootstrap-vue/src/directives/hover/index.js +8 -0
  991. package/src/vendor/bootstrap-vue/src/directives/hover/package.json +13 -0
  992. package/src/vendor/bootstrap-vue/src/directives/index.d.ts +13 -0
  993. package/src/vendor/bootstrap-vue/src/directives/index.js +22 -0
  994. package/src/vendor/bootstrap-vue/src/directives/modal/index.d.ts +11 -0
  995. package/src/vendor/bootstrap-vue/src/directives/modal/index.js +8 -0
  996. package/src/vendor/bootstrap-vue/src/directives/modal/modal.js +115 -0
  997. package/src/vendor/bootstrap-vue/src/directives/modal/modal.spec.js +191 -0
  998. package/src/vendor/bootstrap-vue/src/directives/popover/README.md +648 -0
  999. package/src/vendor/bootstrap-vue/src/directives/popover/index.d.ts +11 -0
  1000. package/src/vendor/bootstrap-vue/src/directives/popover/index.js +8 -0
  1001. package/src/vendor/bootstrap-vue/src/directives/popover/package.json +111 -0
  1002. package/src/vendor/bootstrap-vue/src/directives/popover/popover.js +275 -0
  1003. package/src/vendor/bootstrap-vue/src/directives/popover/popover.spec.js +129 -0
  1004. package/src/vendor/bootstrap-vue/src/directives/scrollspy/README.md +411 -0
  1005. package/src/vendor/bootstrap-vue/src/directives/scrollspy/helpers/bv-scrollspy.class.js +480 -0
  1006. package/src/vendor/bootstrap-vue/src/directives/scrollspy/index.d.ts +11 -0
  1007. package/src/vendor/bootstrap-vue/src/directives/scrollspy/index.js +8 -0
  1008. package/src/vendor/bootstrap-vue/src/directives/scrollspy/package.json +38 -0
  1009. package/src/vendor/bootstrap-vue/src/directives/scrollspy/scrollspy.js +117 -0
  1010. package/src/vendor/bootstrap-vue/src/directives/toggle/README.md +164 -0
  1011. package/src/vendor/bootstrap-vue/src/directives/toggle/index.d.ts +11 -0
  1012. package/src/vendor/bootstrap-vue/src/directives/toggle/index.js +8 -0
  1013. package/src/vendor/bootstrap-vue/src/directives/toggle/package.json +26 -0
  1014. package/src/vendor/bootstrap-vue/src/directives/toggle/toggle.js +274 -0
  1015. package/src/vendor/bootstrap-vue/src/directives/toggle/toggle.spec.js +452 -0
  1016. package/src/vendor/bootstrap-vue/src/directives/tooltip/README.md +522 -0
  1017. package/src/vendor/bootstrap-vue/src/directives/tooltip/index.d.ts +11 -0
  1018. package/src/vendor/bootstrap-vue/src/directives/tooltip/index.js +8 -0
  1019. package/src/vendor/bootstrap-vue/src/directives/tooltip/package.json +131 -0
  1020. package/src/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +270 -0
  1021. package/src/vendor/bootstrap-vue/src/directives/tooltip/tooltip.spec.js +223 -0
  1022. package/src/vendor/bootstrap-vue/src/directives/visible/README.md +244 -0
  1023. package/src/vendor/bootstrap-vue/src/directives/visible/index.d.ts +11 -0
  1024. package/src/vendor/bootstrap-vue/src/directives/visible/index.js +8 -0
  1025. package/src/vendor/bootstrap-vue/src/directives/visible/package.json +24 -0
  1026. package/src/vendor/bootstrap-vue/src/directives/visible/visible.js +184 -0
  1027. package/src/vendor/bootstrap-vue/src/icons/README.md +874 -0
  1028. package/src/vendor/bootstrap-vue/src/icons/_icons.scss +156 -0
  1029. package/src/vendor/bootstrap-vue/src/icons/helpers/icon-base.js +134 -0
  1030. package/src/vendor/bootstrap-vue/src/icons/helpers/make-icon.js +48 -0
  1031. package/src/vendor/bootstrap-vue/src/icons/icon.js +54 -0
  1032. package/src/vendor/bootstrap-vue/src/icons/icons.d.ts +2757 -0
  1033. package/src/vendor/bootstrap-vue/src/icons/icons.js +8244 -0
  1034. package/src/vendor/bootstrap-vue/src/icons/icons.spec.js +522 -0
  1035. package/src/vendor/bootstrap-vue/src/icons/iconstack.js +31 -0
  1036. package/src/vendor/bootstrap-vue/src/icons/iconstack.spec.js +161 -0
  1037. package/src/vendor/bootstrap-vue/src/icons/index.d.ts +18 -0
  1038. package/src/vendor/bootstrap-vue/src/icons/index.js +16 -0
  1039. package/src/vendor/bootstrap-vue/src/icons/index.scss +1 -0
  1040. package/src/vendor/bootstrap-vue/src/icons/package.json +72782 -0
  1041. package/src/vendor/bootstrap-vue/src/icons/plugin.js +4159 -0
  1042. package/src/vendor/bootstrap-vue/src/icons-only.js +33 -0
  1043. package/src/vendor/bootstrap-vue/src/icons.scss +8 -0
  1044. package/src/vendor/bootstrap-vue/src/index.d.ts +67 -0
  1045. package/src/vendor/bootstrap-vue/src/index.js +366 -0
  1046. package/src/vendor/bootstrap-vue/src/index.scss +17 -0
  1047. package/src/vendor/bootstrap-vue/src/mixins/attrs.js +19 -0
  1048. package/src/vendor/bootstrap-vue/src/mixins/attrs.spec.js +194 -0
  1049. package/src/vendor/bootstrap-vue/src/mixins/card.js +23 -0
  1050. package/src/vendor/bootstrap-vue/src/mixins/click-out.js +72 -0
  1051. package/src/vendor/bootstrap-vue/src/mixins/click-out.spec.js +52 -0
  1052. package/src/vendor/bootstrap-vue/src/mixins/dropdown.js +460 -0
  1053. package/src/vendor/bootstrap-vue/src/mixins/focus-in.js +44 -0
  1054. package/src/vendor/bootstrap-vue/src/mixins/focus-in.spec.js +53 -0
  1055. package/src/vendor/bootstrap-vue/src/mixins/form-control.js +51 -0
  1056. package/src/vendor/bootstrap-vue/src/mixins/form-custom.js +24 -0
  1057. package/src/vendor/bootstrap-vue/src/mixins/form-options.js +73 -0
  1058. package/src/vendor/bootstrap-vue/src/mixins/form-radio-check-group.js +162 -0
  1059. package/src/vendor/bootstrap-vue/src/mixins/form-radio-check.js +332 -0
  1060. package/src/vendor/bootstrap-vue/src/mixins/form-selection.js +60 -0
  1061. package/src/vendor/bootstrap-vue/src/mixins/form-size.js +24 -0
  1062. package/src/vendor/bootstrap-vue/src/mixins/form-state.js +47 -0
  1063. package/src/vendor/bootstrap-vue/src/mixins/form-text.js +250 -0
  1064. package/src/vendor/bootstrap-vue/src/mixins/form-validity.js +48 -0
  1065. package/src/vendor/bootstrap-vue/src/mixins/has-listener.js +26 -0
  1066. package/src/vendor/bootstrap-vue/src/mixins/id.js +51 -0
  1067. package/src/vendor/bootstrap-vue/src/mixins/listen-on-document.js +64 -0
  1068. package/src/vendor/bootstrap-vue/src/mixins/listen-on-document.spec.js +117 -0
  1069. package/src/vendor/bootstrap-vue/src/mixins/listen-on-root.js +121 -0
  1070. package/src/vendor/bootstrap-vue/src/mixins/listen-on-root.spec.js +77 -0
  1071. package/src/vendor/bootstrap-vue/src/mixins/listen-on-window.js +64 -0
  1072. package/src/vendor/bootstrap-vue/src/mixins/listen-on-window.spec.js +115 -0
  1073. package/src/vendor/bootstrap-vue/src/mixins/listeners.js +24 -0
  1074. package/src/vendor/bootstrap-vue/src/mixins/listeners.spec.js +245 -0
  1075. package/src/vendor/bootstrap-vue/src/mixins/model.js +5 -0
  1076. package/src/vendor/bootstrap-vue/src/mixins/normalize-slot.js +30 -0
  1077. package/src/vendor/bootstrap-vue/src/mixins/pagination.js +670 -0
  1078. package/src/vendor/bootstrap-vue/src/mixins/scoped-style.js +14 -0
  1079. package/src/vendor/bootstrap-vue/src/mixins/use-parent.js +12 -0
  1080. package/src/vendor/bootstrap-vue/src/utils/array.js +22 -0
  1081. package/src/vendor/bootstrap-vue/src/utils/bv-event.class.js +60 -0
  1082. package/src/vendor/bootstrap-vue/src/utils/bv-event.class.spec.js +66 -0
  1083. package/src/vendor/bootstrap-vue/src/utils/cache.js +37 -0
  1084. package/src/vendor/bootstrap-vue/src/utils/clone-deep.js +15 -0
  1085. package/src/vendor/bootstrap-vue/src/utils/clone-deep.spec.js +70 -0
  1086. package/src/vendor/bootstrap-vue/src/utils/config-set.js +80 -0
  1087. package/src/vendor/bootstrap-vue/src/utils/config.js +72 -0
  1088. package/src/vendor/bootstrap-vue/src/utils/config.spec.js +169 -0
  1089. package/src/vendor/bootstrap-vue/src/utils/create-new-child-component.js +10 -0
  1090. package/src/vendor/bootstrap-vue/src/utils/css-escape.js +73 -0
  1091. package/src/vendor/bootstrap-vue/src/utils/css-escape.spec.js +82 -0
  1092. package/src/vendor/bootstrap-vue/src/utils/date.js +130 -0
  1093. package/src/vendor/bootstrap-vue/src/utils/date.spec.js +159 -0
  1094. package/src/vendor/bootstrap-vue/src/utils/dom.js +308 -0
  1095. package/src/vendor/bootstrap-vue/src/utils/dom.spec.js +291 -0
  1096. package/src/vendor/bootstrap-vue/src/utils/element-to-vue-instance-registry.js +40 -0
  1097. package/src/vendor/bootstrap-vue/src/utils/env.js +15 -0
  1098. package/src/vendor/bootstrap-vue/src/utils/events.js +71 -0
  1099. package/src/vendor/bootstrap-vue/src/utils/events.spec.js +41 -0
  1100. package/src/vendor/bootstrap-vue/src/utils/get-event-root.js +3 -0
  1101. package/src/vendor/bootstrap-vue/src/utils/get-instance-from-directive.js +4 -0
  1102. package/src/vendor/bootstrap-vue/src/utils/get-scope-id.js +6 -0
  1103. package/src/vendor/bootstrap-vue/src/utils/get.js +64 -0
  1104. package/src/vendor/bootstrap-vue/src/utils/get.spec.js +109 -0
  1105. package/src/vendor/bootstrap-vue/src/utils/html.js +8 -0
  1106. package/src/vendor/bootstrap-vue/src/utils/identity.js +1 -0
  1107. package/src/vendor/bootstrap-vue/src/utils/inspect.js +55 -0
  1108. package/src/vendor/bootstrap-vue/src/utils/inspect.spec.js +251 -0
  1109. package/src/vendor/bootstrap-vue/src/utils/locale.js +34 -0
  1110. package/src/vendor/bootstrap-vue/src/utils/loose-equal.js +57 -0
  1111. package/src/vendor/bootstrap-vue/src/utils/loose-equal.spec.js +203 -0
  1112. package/src/vendor/bootstrap-vue/src/utils/loose-index-of.js +11 -0
  1113. package/src/vendor/bootstrap-vue/src/utils/math.js +15 -0
  1114. package/src/vendor/bootstrap-vue/src/utils/memoize.js +10 -0
  1115. package/src/vendor/bootstrap-vue/src/utils/model.js +29 -0
  1116. package/src/vendor/bootstrap-vue/src/utils/noop.js +1 -0
  1117. package/src/vendor/bootstrap-vue/src/utils/normalize-slot.js +44 -0
  1118. package/src/vendor/bootstrap-vue/src/utils/normalize-slot.spec.js +63 -0
  1119. package/src/vendor/bootstrap-vue/src/utils/number.js +19 -0
  1120. package/src/vendor/bootstrap-vue/src/utils/number.spec.js +72 -0
  1121. package/src/vendor/bootstrap-vue/src/utils/object.js +68 -0
  1122. package/src/vendor/bootstrap-vue/src/utils/object.spec.js +61 -0
  1123. package/src/vendor/bootstrap-vue/src/utils/observe-dom.js +77 -0
  1124. package/src/vendor/bootstrap-vue/src/utils/plugins.js +169 -0
  1125. package/src/vendor/bootstrap-vue/src/utils/props.js +98 -0
  1126. package/src/vendor/bootstrap-vue/src/utils/props.spec.js +112 -0
  1127. package/src/vendor/bootstrap-vue/src/utils/router.js +145 -0
  1128. package/src/vendor/bootstrap-vue/src/utils/router.spec.js +248 -0
  1129. package/src/vendor/bootstrap-vue/src/utils/safe-vue-instance.js +13 -0
  1130. package/src/vendor/bootstrap-vue/src/utils/stable-sort.js +31 -0
  1131. package/src/vendor/bootstrap-vue/src/utils/string.js +75 -0
  1132. package/src/vendor/bootstrap-vue/src/utils/string.spec.js +94 -0
  1133. package/src/vendor/bootstrap-vue/src/utils/stringify-object-values.js +31 -0
  1134. package/src/vendor/bootstrap-vue/src/utils/stringify-object-values.spec.js +47 -0
  1135. package/src/vendor/bootstrap-vue/src/utils/warn.js +57 -0
  1136. package/src/vendor/bootstrap-vue/src/utils/warn.spec.js +54 -0
  1137. package/src/vendor/bootstrap-vue/src/vue-injections.d.ts +13 -0
  1138. package/src/vendor/bootstrap-vue/src/vue.js +126 -0
@@ -0,0 +1,1529 @@
1
+ import { createWrapper, mount } from '@vue/test-utils'
2
+ import { waitNT, waitRAF } from '../../../tests/utils'
3
+ import { BTooltip } from './tooltip'
4
+
5
+ const MODAL_CLOSE_EVENT = 'bv::modal::hidden'
6
+
7
+ // Our test application
8
+ const App = {
9
+ props: [
10
+ 'target',
11
+ 'triggers',
12
+ 'show',
13
+ 'noninteractive',
14
+ 'disabled',
15
+ 'noFade',
16
+ 'title',
17
+ 'titleAttr',
18
+ 'btnDisabled',
19
+ 'variant',
20
+ 'customClass',
21
+ 'delay',
22
+ 'isModal'
23
+ ],
24
+ render(h) {
25
+ const tipProps = {
26
+ target: this.target || 'foo',
27
+ triggers: this.triggers,
28
+ show: this.show,
29
+ noninteractive: this.noninteractive || false,
30
+ disabled: this.disabled,
31
+ noFade: this.noFade || false,
32
+ title: this.title || null,
33
+ variant: this.variant,
34
+ customClass: this.customClass,
35
+ delay: this.delay
36
+ }
37
+ const wrapperData = {
38
+ attrs: { id: 'wrapper' },
39
+ // Class to simulate being in a modal
40
+ class: { 'modal-content': !!this.isModal }
41
+ }
42
+ return h('article', wrapperData, [
43
+ h(
44
+ 'button',
45
+ {
46
+ attrs: {
47
+ id: 'foo',
48
+ type: 'button',
49
+ disabled: this.btnDisabled || null,
50
+ title: this.titleAttr || null
51
+ },
52
+ ref: 'target'
53
+ },
54
+ 'text'
55
+ ),
56
+ typeof this.$slots.default === `undefined` || !this.$slots.default
57
+ ? h(BTooltip, { props: tipProps })
58
+ : h(BTooltip, { props: tipProps }, this.$slots.default)
59
+ ])
60
+ }
61
+ }
62
+
63
+ // Note: `wrapper.destroy()` MUST be called at the end of each test in order for
64
+ // the next test to function properly!
65
+ describe('b-tooltip', () => {
66
+ const originalCreateRange = document.createRange
67
+ const origGetBCR = Element.prototype.getBoundingClientRect
68
+
69
+ beforeEach(() => {
70
+ // https://github.com/FezVrasta/popper.js/issues/478#issuecomment-407422016
71
+ // Hack to make Popper not bork out during tests
72
+ // Note popper still does not do any positioning calculation in JSDOM though
73
+ // So we cannot test actual positioning, just detect when it is open
74
+ document.createRange = () => ({
75
+ setStart: () => {},
76
+ setEnd: () => {},
77
+ commonAncestorContainer: {
78
+ nodeName: 'BODY',
79
+ ownerDocument: document
80
+ }
81
+ })
82
+ // Mock `getBoundingClientRect()` so that the `isVisible(el)` test returns `true`
83
+ // Needed for visibility checks of trigger element, etc
84
+ Element.prototype.getBoundingClientRect = jest.fn(() => ({
85
+ width: 24,
86
+ height: 24,
87
+ top: 0,
88
+ left: 0,
89
+ bottom: 0,
90
+ right: 0
91
+ }))
92
+ })
93
+
94
+ afterEach(() => {
95
+ // Reset overrides
96
+ document.createRange = originalCreateRange
97
+ Element.prototype.getBoundingClientRect = origGetBCR
98
+ return waitRAF()
99
+ })
100
+
101
+ it('has expected default structure', async () => {
102
+ const wrapper = mount(App, {
103
+ attachTo: document.body,
104
+ propsData: {
105
+ triggers: 'click'
106
+ },
107
+ slots: {
108
+ default: 'title'
109
+ }
110
+ })
111
+
112
+ expect(wrapper.vm).toBeDefined()
113
+ await waitNT(wrapper.vm)
114
+
115
+ expect(wrapper.element.tagName).toBe('ARTICLE')
116
+ expect(wrapper.attributes('id')).toBeDefined()
117
+ expect(wrapper.attributes('id')).toEqual('wrapper')
118
+ expect(wrapper.classes()).not.toContain('modal-content')
119
+
120
+ // The trigger button
121
+ const $button = wrapper.find('button')
122
+ expect($button.exists()).toBe(true)
123
+ expect($button.attributes('id')).toBeDefined()
124
+ expect($button.attributes('id')).toEqual('foo')
125
+ expect($button.attributes('title')).toBeUndefined()
126
+ expect($button.attributes('data-original-title')).toBeUndefined()
127
+ expect($button.attributes('aria-describedby')).toBeUndefined()
128
+
129
+ // <b-tooltip> wrapper
130
+ const $tipHolder = wrapper.findComponent(BTooltip)
131
+ expect($tipHolder.exists()).toBe(true)
132
+ expect($tipHolder.element.nodeType).toEqual(Node.COMMENT_NODE)
133
+
134
+ wrapper.destroy()
135
+ })
136
+
137
+ it('initially open has expected structure', async () => {
138
+ jest.useFakeTimers()
139
+ const wrapper = mount(App, {
140
+ attachTo: document.body,
141
+ propsData: {
142
+ triggers: 'click',
143
+ show: true
144
+ },
145
+ slots: {
146
+ default: 'title'
147
+ }
148
+ })
149
+
150
+ expect(wrapper.vm).toBeDefined()
151
+ await waitNT(wrapper.vm)
152
+ await waitRAF()
153
+ await waitNT(wrapper.vm)
154
+ await waitRAF()
155
+ jest.runOnlyPendingTimers()
156
+
157
+ expect(wrapper.element.tagName).toBe('ARTICLE')
158
+ expect(wrapper.attributes('id')).toBeDefined()
159
+ expect(wrapper.attributes('id')).toEqual('wrapper')
160
+
161
+ // The trigger button
162
+ const $button = wrapper.find('button')
163
+ expect($button.exists()).toBe(true)
164
+ expect($button.attributes('id')).toBeDefined()
165
+ expect($button.attributes('id')).toEqual('foo')
166
+ expect($button.attributes('title')).toBeUndefined()
167
+ expect($button.attributes('data-original-title')).toBeUndefined()
168
+ expect($button.attributes('aria-describedby')).toBeDefined()
169
+ // ID of the tooltip that will be in the body
170
+ const adb = $button.attributes('aria-describedby')
171
+
172
+ // <b-tooltip> wrapper
173
+ const $tipHolder = wrapper.findComponent(BTooltip)
174
+ expect($tipHolder.exists()).toBe(true)
175
+ expect($tipHolder.element.nodeType).toEqual(Node.COMMENT_NODE)
176
+
177
+ // Find the tooltip element in the document
178
+ const tip = document.getElementById(adb)
179
+ expect(tip).not.toBe(null)
180
+ expect(tip).toBeInstanceOf(HTMLElement)
181
+ expect(tip.tagName).toEqual('DIV')
182
+ expect(tip.classList.contains('tooltip')).toBe(true)
183
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
184
+ expect(tip.classList.contains('interactive')).toBe(false)
185
+
186
+ // Hide the tooltip
187
+ await wrapper.setProps({ show: false })
188
+ await waitRAF()
189
+ await waitRAF()
190
+ jest.runOnlyPendingTimers()
191
+ await waitNT(wrapper.vm)
192
+ await waitRAF()
193
+
194
+ expect($button.attributes('aria-describedby')).toBeUndefined()
195
+
196
+ // Tooltip element should not be in the document
197
+ expect(document.body.contains(tip)).toBe(false)
198
+ expect(document.querySelector(adb)).toBe(null)
199
+
200
+ // Show the tooltip
201
+ await wrapper.setProps({ show: true })
202
+ await waitRAF()
203
+ await waitRAF()
204
+ jest.runOnlyPendingTimers()
205
+ await waitNT(wrapper.vm)
206
+ await waitRAF()
207
+
208
+ expect($button.attributes('aria-describedby')).toBeDefined()
209
+
210
+ // Note tip always has the same ID
211
+ const tip2 = document.getElementById(adb)
212
+ expect(tip2).not.toBe(null)
213
+ expect(tip2).toBeInstanceOf(HTMLElement)
214
+ expect(tip2.tagName).toEqual('DIV')
215
+ expect(tip2.classList.contains('tooltip')).toBe(true)
216
+ expect(tip2.classList.contains('b-tooltip')).toBe(true)
217
+
218
+ wrapper.destroy()
219
+ })
220
+
221
+ it('title prop is reactive', async () => {
222
+ jest.useFakeTimers()
223
+ const wrapper = mount(App, {
224
+ attachTo: document.body,
225
+ propsData: {
226
+ triggers: 'click',
227
+ show: true,
228
+ title: 'hello'
229
+ }
230
+ })
231
+
232
+ expect(wrapper.vm).toBeDefined()
233
+ await waitNT(wrapper.vm)
234
+ await waitRAF()
235
+ await waitNT(wrapper.vm)
236
+ await waitRAF()
237
+ await waitNT(wrapper.vm)
238
+ await waitRAF()
239
+ jest.runOnlyPendingTimers()
240
+ await waitNT(wrapper.vm)
241
+ await waitRAF()
242
+
243
+ expect(wrapper.element.tagName).toBe('ARTICLE')
244
+ expect(wrapper.attributes('id')).toBeDefined()
245
+ expect(wrapper.attributes('id')).toEqual('wrapper')
246
+
247
+ // The trigger button
248
+ const $button = wrapper.find('button')
249
+ expect($button.exists()).toBe(true)
250
+ expect($button.attributes('id')).toBeDefined()
251
+ expect($button.attributes('id')).toEqual('foo')
252
+ expect($button.attributes('title')).toBeUndefined()
253
+ expect($button.attributes('data-original-title')).toBeUndefined()
254
+ expect($button.attributes('aria-describedby')).toBeDefined()
255
+ // ID of the tooltip that will be in the body
256
+ const adb = $button.attributes('aria-describedby')
257
+
258
+ // <b-tooltip> wrapper
259
+ const $tipHolder = wrapper.findComponent(BTooltip)
260
+ expect($tipHolder.exists()).toBe(true)
261
+ expect($tipHolder.element.nodeType).toEqual(Node.COMMENT_NODE)
262
+
263
+ // Find the tooltip element in the document
264
+ const tip = document.getElementById(adb)
265
+ expect(tip).not.toBe(null)
266
+ expect(tip).toBeInstanceOf(HTMLElement)
267
+ const $tip = createWrapper(tip)
268
+ expect($tip.element.tagName).toBe('DIV')
269
+ expect($tip.classes()).toContain('tooltip')
270
+ expect($tip.classes()).toContain('b-tooltip')
271
+ // Should contain our title prop value
272
+ expect($tip.text()).toContain('hello')
273
+
274
+ // Change the title prop
275
+ await wrapper.setProps({ title: 'world' })
276
+ await waitRAF()
277
+ await waitRAF()
278
+
279
+ // Tooltip element should still be in the document
280
+ expect(document.body.contains(tip)).toBe(true)
281
+ expect($tip.classes()).toContain('tooltip')
282
+ expect($tip.classes()).toContain('b-tooltip')
283
+ // Should contain the new updated content
284
+ expect($tip.text()).toContain('world')
285
+
286
+ wrapper.destroy()
287
+ })
288
+
289
+ it('providing the trigger element by function works', async () => {
290
+ jest.useFakeTimers()
291
+ const wrapper = mount(App, {
292
+ attachTo: document.body,
293
+ propsData: {
294
+ target: () => wrapper.vm.$refs.target,
295
+ triggers: 'click',
296
+ show: false
297
+ },
298
+ slots: {
299
+ default: 'title'
300
+ }
301
+ })
302
+
303
+ expect(wrapper.vm).toBeDefined()
304
+ await waitNT(wrapper.vm)
305
+ await waitRAF()
306
+ await waitNT(wrapper.vm)
307
+ await waitRAF()
308
+ jest.runOnlyPendingTimers()
309
+
310
+ expect(wrapper.element.tagName).toBe('ARTICLE')
311
+ expect(wrapper.attributes('id')).toBeDefined()
312
+ expect(wrapper.attributes('id')).toEqual('wrapper')
313
+
314
+ // The trigger button
315
+ const $button = wrapper.find('button')
316
+ expect($button.exists()).toBe(true)
317
+ expect($button.attributes('id')).toBeDefined()
318
+ expect($button.attributes('id')).toEqual('foo')
319
+ expect($button.attributes('aria-describedby')).toBeUndefined()
320
+
321
+ // <b-tooltip> wrapper
322
+ const $tipHolder = wrapper.findComponent(BTooltip)
323
+ expect($tipHolder.exists()).toBe(true)
324
+
325
+ // Activate tooltip by trigger
326
+ await $button.trigger('click')
327
+ await waitRAF()
328
+ await waitRAF()
329
+ jest.runOnlyPendingTimers()
330
+ await waitNT(wrapper.vm)
331
+ await waitRAF()
332
+
333
+ expect($button.attributes('id')).toBeDefined()
334
+ expect($button.attributes('id')).toEqual('foo')
335
+ expect($button.attributes('aria-describedby')).toBeDefined()
336
+ // ID of the tooltip that will be in the body
337
+ const adb = $button.attributes('aria-describedby')
338
+
339
+ // Find the tooltip element in the document
340
+ const tip = document.getElementById(adb)
341
+ expect(tip).not.toBe(null)
342
+ expect(tip).toBeInstanceOf(HTMLElement)
343
+ expect(tip.tagName).toEqual('DIV')
344
+ expect(tip.classList.contains('tooltip')).toBe(true)
345
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
346
+
347
+ wrapper.destroy()
348
+ })
349
+
350
+ it('activating trigger element (click) opens tooltip', async () => {
351
+ jest.useFakeTimers()
352
+ const wrapper = mount(App, {
353
+ attachTo: document.body,
354
+ propsData: {
355
+ triggers: 'click',
356
+ show: false
357
+ },
358
+ slots: {
359
+ default: 'title'
360
+ }
361
+ })
362
+
363
+ expect(wrapper.vm).toBeDefined()
364
+ await waitNT(wrapper.vm)
365
+ await waitRAF()
366
+ await waitNT(wrapper.vm)
367
+ await waitRAF()
368
+ jest.runOnlyPendingTimers()
369
+
370
+ expect(wrapper.element.tagName).toBe('ARTICLE')
371
+ expect(wrapper.attributes('id')).toBeDefined()
372
+ expect(wrapper.attributes('id')).toEqual('wrapper')
373
+
374
+ // The trigger button
375
+ const $button = wrapper.find('button')
376
+ expect($button.exists()).toBe(true)
377
+ expect($button.attributes('id')).toBeDefined()
378
+ expect($button.attributes('id')).toEqual('foo')
379
+ expect($button.attributes('aria-describedby')).toBeUndefined()
380
+
381
+ // <b-tooltip> wrapper
382
+ const $tipHolder = wrapper.findComponent(BTooltip)
383
+ expect($tipHolder.exists()).toBe(true)
384
+
385
+ // Activate tooltip by trigger
386
+ await $button.trigger('click')
387
+ await waitRAF()
388
+ await waitRAF()
389
+ jest.runOnlyPendingTimers()
390
+ await waitNT(wrapper.vm)
391
+ await waitRAF()
392
+
393
+ expect($button.attributes('id')).toBeDefined()
394
+ expect($button.attributes('id')).toEqual('foo')
395
+ expect($button.attributes('aria-describedby')).toBeDefined()
396
+ // ID of the tooltip that will be in the body
397
+ const adb = $button.attributes('aria-describedby')
398
+
399
+ // Find the tooltip element in the document
400
+ const tip = document.getElementById(adb)
401
+ expect(tip).not.toBe(null)
402
+ expect(tip).toBeInstanceOf(HTMLElement)
403
+ expect(tip.tagName).toEqual('DIV')
404
+ expect(tip.classList.contains('tooltip')).toBe(true)
405
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
406
+
407
+ wrapper.destroy()
408
+ })
409
+
410
+ it('activating trigger element (focus) opens tooltip', async () => {
411
+ jest.useFakeTimers()
412
+ const wrapper = mount(App, {
413
+ attachTo: document.body,
414
+ propsData: {
415
+ triggers: 'focus',
416
+ show: false,
417
+ delay: 0
418
+ },
419
+ slots: {
420
+ default: 'title'
421
+ }
422
+ })
423
+
424
+ expect(wrapper.vm).toBeDefined()
425
+ await waitNT(wrapper.vm)
426
+ await waitRAF()
427
+ await waitNT(wrapper.vm)
428
+ await waitRAF()
429
+ await waitNT(wrapper.vm)
430
+ await waitRAF()
431
+ jest.runOnlyPendingTimers()
432
+ await waitNT(wrapper.vm)
433
+ await waitRAF()
434
+
435
+ expect(wrapper.element.tagName).toBe('ARTICLE')
436
+ expect(wrapper.attributes('id')).toBeDefined()
437
+ expect(wrapper.attributes('id')).toEqual('wrapper')
438
+
439
+ // The trigger button
440
+ const $button = wrapper.find('button')
441
+ expect($button.exists()).toBe(true)
442
+ expect($button.attributes('id')).toBeDefined()
443
+ expect($button.attributes('id')).toEqual('foo')
444
+ expect($button.attributes('aria-describedby')).toBeUndefined()
445
+
446
+ // <b-tooltip> wrapper
447
+ const $tipHolder = wrapper.findComponent(BTooltip)
448
+ expect($tipHolder.exists()).toBe(true)
449
+
450
+ // Activate tooltip by trigger
451
+ await $button.trigger('focusin')
452
+ await waitRAF()
453
+ await waitRAF()
454
+ jest.runOnlyPendingTimers()
455
+ await waitNT(wrapper.vm)
456
+ await waitRAF()
457
+
458
+ expect($button.attributes('id')).toBeDefined()
459
+ expect($button.attributes('id')).toEqual('foo')
460
+ expect($button.attributes('aria-describedby')).toBeDefined()
461
+ // ID of the tooltip that will be in the body
462
+ const adb = $button.attributes('aria-describedby')
463
+
464
+ // Find the tooltip element in the document
465
+ const tip = document.getElementById(adb)
466
+ expect(tip).not.toBe(null)
467
+ expect(tip).toBeInstanceOf(HTMLElement)
468
+ expect(tip.tagName).toEqual('DIV')
469
+ expect(tip.classList.contains('tooltip')).toBe(true)
470
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
471
+
472
+ // Deactivate tooltip by trigger
473
+ await $button.trigger('focusout', { relatedTarget: document.body })
474
+ await waitRAF()
475
+ await waitRAF()
476
+ jest.runOnlyPendingTimers()
477
+ await waitNT(wrapper.vm)
478
+ await waitRAF()
479
+
480
+ // Tooltip element should not be in the document
481
+ expect($button.attributes('aria-describedby')).toBeUndefined()
482
+ expect(document.body.contains(tip)).toBe(false)
483
+ expect(document.getElementById(adb)).toBe(null)
484
+
485
+ wrapper.destroy()
486
+ })
487
+
488
+ it('activating trigger element (hover) opens tooltip', async () => {
489
+ jest.useFakeTimers()
490
+ const wrapper = mount(App, {
491
+ attachTo: document.body,
492
+ propsData: {
493
+ triggers: 'hover',
494
+ show: false,
495
+ // Add no fade for coverage
496
+ noFade: true
497
+ },
498
+ slots: {
499
+ default: 'title'
500
+ }
501
+ })
502
+
503
+ expect(wrapper.vm).toBeDefined()
504
+ await waitNT(wrapper.vm)
505
+ await waitRAF()
506
+ await waitNT(wrapper.vm)
507
+ await waitRAF()
508
+ jest.runOnlyPendingTimers()
509
+ await waitNT(wrapper.vm)
510
+ await waitRAF()
511
+
512
+ expect(wrapper.element.tagName).toBe('ARTICLE')
513
+ expect(wrapper.attributes('id')).toBeDefined()
514
+ expect(wrapper.attributes('id')).toEqual('wrapper')
515
+
516
+ // The trigger button
517
+ const $button = wrapper.find('button')
518
+ expect($button.exists()).toBe(true)
519
+ expect($button.attributes('id')).toBeDefined()
520
+ expect($button.attributes('id')).toEqual('foo')
521
+ expect($button.attributes('aria-describedby')).toBeUndefined()
522
+
523
+ // <b-tooltip> wrapper
524
+ const $tipHolder = wrapper.findComponent(BTooltip)
525
+ expect($tipHolder.exists()).toBe(true)
526
+
527
+ // Activate tooltip by trigger
528
+ await $button.trigger('mouseenter')
529
+ await waitRAF()
530
+ await waitRAF()
531
+ jest.runOnlyPendingTimers()
532
+ await waitNT(wrapper.vm)
533
+ await waitRAF()
534
+
535
+ expect($button.attributes('id')).toBeDefined()
536
+ expect($button.attributes('id')).toEqual('foo')
537
+ expect($button.attributes('aria-describedby')).toBeDefined()
538
+ // ID of the tooltip that will be in the body
539
+ const adb = $button.attributes('aria-describedby')
540
+
541
+ // Find the tooltip element in the document
542
+ const tip = document.getElementById(adb)
543
+ expect(tip).not.toBe(null)
544
+ expect(tip).toBeInstanceOf(HTMLElement)
545
+ expect(tip.tagName).toEqual('DIV')
546
+ expect(tip.classList.contains('tooltip')).toBe(true)
547
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
548
+
549
+ // Deactivate tooltip by trigger
550
+ await $button.trigger('mouseleave', { relatedTarget: document.body })
551
+ await waitRAF()
552
+ await waitRAF()
553
+ jest.runOnlyPendingTimers()
554
+ await waitNT(wrapper.vm)
555
+ await waitRAF()
556
+ await waitNT(wrapper.vm)
557
+ await waitRAF()
558
+
559
+ // Tooltip element should not be in the document
560
+ expect($button.attributes('aria-describedby')).toBeUndefined()
561
+ expect(document.body.contains(tip)).toBe(false)
562
+ expect(document.getElementById(adb)).toBe(null)
563
+
564
+ wrapper.destroy()
565
+ })
566
+
567
+ it('disabled tooltip does not open on trigger', async () => {
568
+ jest.useFakeTimers()
569
+ const wrapper = mount(App, {
570
+ attachTo: document.body,
571
+ propsData: {
572
+ triggers: 'click',
573
+ show: false,
574
+ disabled: true
575
+ },
576
+ slots: {
577
+ default: 'title'
578
+ }
579
+ })
580
+
581
+ expect(wrapper.vm).toBeDefined()
582
+ await waitNT(wrapper.vm)
583
+ await waitRAF()
584
+ await waitNT(wrapper.vm)
585
+ await waitRAF()
586
+ jest.runOnlyPendingTimers()
587
+ await waitNT(wrapper.vm)
588
+ await waitRAF()
589
+
590
+ expect(wrapper.element.tagName).toBe('ARTICLE')
591
+ expect(wrapper.attributes('id')).toBeDefined()
592
+ expect(wrapper.attributes('id')).toEqual('wrapper')
593
+
594
+ // The trigger button
595
+ const $button = wrapper.find('button')
596
+ expect($button.exists()).toBe(true)
597
+ expect($button.attributes('id')).toBeDefined()
598
+ expect($button.attributes('id')).toEqual('foo')
599
+ expect($button.attributes('aria-describedby')).toBeUndefined()
600
+
601
+ // b-tooltip wrapper
602
+ const $tipHolder = wrapper.findComponent(BTooltip)
603
+ expect($tipHolder.exists()).toBe(true)
604
+
605
+ // Try to activate tooltip by trigger
606
+ await $button.trigger('click')
607
+ await waitRAF()
608
+ await waitRAF()
609
+ jest.runOnlyPendingTimers()
610
+ await waitNT(wrapper.vm)
611
+ await waitRAF()
612
+
613
+ // Tooltip should not have opened
614
+ expect($button.attributes('aria-describedby')).toBeUndefined()
615
+
616
+ // Now enable the tooltip
617
+ await wrapper.setProps({ disabled: false })
618
+ await waitRAF()
619
+ await waitRAF()
620
+ jest.runOnlyPendingTimers()
621
+ await waitNT(wrapper.vm)
622
+ await waitRAF()
623
+
624
+ // Try to activate tooltip by trigger
625
+ await $button.trigger('click')
626
+ await waitRAF()
627
+ await waitRAF()
628
+ jest.runOnlyPendingTimers()
629
+ await waitNT(wrapper.vm)
630
+ await waitRAF()
631
+ await waitNT(wrapper.vm)
632
+ await waitRAF()
633
+
634
+ expect($button.attributes('aria-describedby')).toBeDefined()
635
+ const adb = $button.attributes('aria-describedby')
636
+
637
+ // Find the tooltip element in the document
638
+ const tip = document.getElementById(adb)
639
+ expect(tip).not.toBe(null)
640
+ expect(tip).toBeInstanceOf(HTMLElement)
641
+ expect(tip.tagName).toEqual('DIV')
642
+ expect(tip.classList.contains('tooltip')).toBe(true)
643
+
644
+ // Now disable the tooltip
645
+ await wrapper.setProps({ disabled: true })
646
+ await waitRAF()
647
+ await waitRAF()
648
+ jest.runOnlyPendingTimers()
649
+ await waitNT(wrapper.vm)
650
+ await waitRAF()
651
+ await waitNT(wrapper.vm)
652
+ await waitRAF()
653
+
654
+ // Try to close tooltip by trigger
655
+ await $button.trigger('click')
656
+ await waitRAF()
657
+ await waitRAF()
658
+ jest.runOnlyPendingTimers()
659
+ await waitNT(wrapper.vm)
660
+ await waitRAF()
661
+ await waitNT(wrapper.vm)
662
+ await waitRAF()
663
+
664
+ // expect($button.attributes('aria-describedby')).toBeUndefined()
665
+
666
+ wrapper.destroy()
667
+ })
668
+
669
+ it('closes/opens on instance events', async () => {
670
+ jest.useFakeTimers()
671
+ const wrapper = mount(App, {
672
+ attachTo: document.body,
673
+ propsData: {
674
+ triggers: 'click',
675
+ show: true,
676
+ disabled: false,
677
+ titleAttr: 'ignored'
678
+ },
679
+ slots: {
680
+ default: 'title'
681
+ }
682
+ })
683
+
684
+ expect(wrapper.vm).toBeDefined()
685
+ await waitNT(wrapper.vm)
686
+ await waitRAF()
687
+ await waitNT(wrapper.vm)
688
+ await waitRAF()
689
+ jest.runOnlyPendingTimers()
690
+ await waitNT(wrapper.vm)
691
+ await waitRAF()
692
+
693
+ expect(wrapper.element.tagName).toBe('ARTICLE')
694
+ expect(wrapper.attributes('id')).toBeDefined()
695
+ expect(wrapper.attributes('id')).toEqual('wrapper')
696
+
697
+ // The trigger button
698
+ const $button = wrapper.find('button')
699
+ expect($button.exists()).toBe(true)
700
+ const adb = $button.attributes('aria-describedby')
701
+
702
+ // <b-tooltip> wrapper
703
+ const $tipHolder = wrapper.findComponent(BTooltip)
704
+ expect($tipHolder.exists()).toBe(true)
705
+
706
+ // Find the tooltip element in the document
707
+ const tip = document.getElementById(adb)
708
+ expect(tip).not.toBe(null)
709
+ expect(tip).toBeInstanceOf(HTMLElement)
710
+ expect(tip.tagName).toEqual('DIV')
711
+ expect(tip.classList.contains('tooltip')).toBe(true)
712
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
713
+
714
+ // Hide the tooltip by emitting event on instance
715
+ const bTooltip = wrapper.findComponent(BTooltip)
716
+ expect(bTooltip.exists()).toBe(true)
717
+ bTooltip.vm.$emit('close')
718
+ await waitNT(wrapper.vm)
719
+ await waitRAF()
720
+ await waitNT(wrapper.vm)
721
+ await waitRAF()
722
+ jest.runOnlyPendingTimers()
723
+ await waitNT(wrapper.vm)
724
+ await waitRAF()
725
+
726
+ expect($button.attributes('aria-describedby')).toBeUndefined()
727
+
728
+ // Tooltip element should not be in the document
729
+ expect(document.body.contains(tip)).toBe(false)
730
+ expect(document.getElementById(adb)).toBe(null)
731
+
732
+ // Show the tooltip by emitting event on instance
733
+ bTooltip.vm.$emit('open')
734
+
735
+ await waitNT(wrapper.vm)
736
+ await waitRAF()
737
+ await waitNT(wrapper.vm)
738
+ await waitRAF()
739
+ jest.runOnlyPendingTimers()
740
+ await waitNT(wrapper.vm)
741
+ await waitRAF()
742
+
743
+ // Tooltip element should be in the document
744
+ expect($button.attributes('aria-describedby')).toBeDefined()
745
+ expect(document.getElementById(adb)).not.toBe(null)
746
+
747
+ wrapper.destroy()
748
+ })
749
+
750
+ it('closes on $root close specific ID event', async () => {
751
+ jest.useFakeTimers()
752
+ const wrapper = mount(App, {
753
+ attachTo: document.body,
754
+ propsData: {
755
+ triggers: 'click',
756
+ show: true,
757
+ disabled: false,
758
+ titleAttr: 'ignored'
759
+ },
760
+ slots: {
761
+ default: 'title'
762
+ }
763
+ })
764
+
765
+ expect(wrapper.vm).toBeDefined()
766
+ await waitNT(wrapper.vm)
767
+ await waitRAF()
768
+ await waitNT(wrapper.vm)
769
+ await waitRAF()
770
+ jest.runOnlyPendingTimers()
771
+ await waitNT(wrapper.vm)
772
+ await waitRAF()
773
+
774
+ expect(wrapper.element.tagName).toBe('ARTICLE')
775
+ expect(wrapper.attributes('id')).toBeDefined()
776
+ expect(wrapper.attributes('id')).toEqual('wrapper')
777
+
778
+ // The trigger button
779
+ const $button = wrapper.find('button')
780
+ expect($button.exists()).toBe(true)
781
+ expect($button.attributes('id')).toBeDefined()
782
+ expect($button.attributes('id')).toEqual('foo')
783
+ expect($button.attributes('title')).toBeDefined()
784
+ expect($button.attributes('title')).toEqual('')
785
+ expect($button.attributes('data-original-title')).toBeDefined()
786
+ expect($button.attributes('data-original-title')).toEqual('ignored')
787
+ expect($button.attributes('aria-describedby')).toBeDefined()
788
+ // ID of the tooltip that will be in the body
789
+ const adb = $button.attributes('aria-describedby')
790
+
791
+ // <b-tooltip> wrapper
792
+ const $tipHolder = wrapper.findComponent(BTooltip)
793
+ expect($tipHolder.exists()).toBe(true)
794
+
795
+ // Find the tooltip element in the document
796
+ const tip = document.getElementById(adb)
797
+ expect(tip).not.toBe(null)
798
+ expect(tip).toBeInstanceOf(HTMLElement)
799
+ expect(tip.tagName).toEqual('DIV')
800
+ expect(tip.classList.contains('tooltip')).toBe(true)
801
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
802
+
803
+ // Hide the tooltip by emitting root event with correct ID (forceHide)
804
+ wrapper.vm.$root.$emit('bv::hide::tooltip', 'foo')
805
+ await waitNT(wrapper.vm)
806
+ await waitRAF()
807
+ await waitNT(wrapper.vm)
808
+ await waitRAF()
809
+ jest.runOnlyPendingTimers()
810
+ await waitNT(wrapper.vm)
811
+ await waitRAF()
812
+
813
+ expect($button.attributes('aria-describedby')).toBeUndefined()
814
+
815
+ // Tooltip element should not be in the document
816
+ expect(document.body.contains(tip)).toBe(false)
817
+ expect(document.getElementById(adb)).toBe(null)
818
+
819
+ wrapper.destroy()
820
+ })
821
+
822
+ it('does not close on $root close specific other ID event', async () => {
823
+ jest.useFakeTimers()
824
+ const wrapper = mount(App, {
825
+ attachTo: document.body,
826
+ propsData: {
827
+ triggers: 'click',
828
+ show: true,
829
+ disabled: false,
830
+ titleAttr: 'ignored'
831
+ },
832
+ slots: {
833
+ default: 'title'
834
+ }
835
+ })
836
+
837
+ expect(wrapper.vm).toBeDefined()
838
+ await waitNT(wrapper.vm)
839
+ await waitRAF()
840
+ await waitNT(wrapper.vm)
841
+ await waitRAF()
842
+ jest.runOnlyPendingTimers()
843
+ await waitNT(wrapper.vm)
844
+ await waitRAF()
845
+
846
+ expect(wrapper.element.tagName).toBe('ARTICLE')
847
+ expect(wrapper.attributes('id')).toBeDefined()
848
+ expect(wrapper.attributes('id')).toEqual('wrapper')
849
+
850
+ // The trigger button
851
+ const $button = wrapper.find('button')
852
+ expect($button.exists()).toBe(true)
853
+ expect($button.attributes('id')).toBeDefined()
854
+ expect($button.attributes('id')).toEqual('foo')
855
+ expect($button.attributes('title')).toBeDefined()
856
+ expect($button.attributes('title')).toEqual('')
857
+ expect($button.attributes('data-original-title')).toBeDefined()
858
+ expect($button.attributes('data-original-title')).toEqual('ignored')
859
+ expect($button.attributes('aria-describedby')).toBeDefined()
860
+ // ID of the tooltip that will be in the body
861
+ const adb = $button.attributes('aria-describedby')
862
+
863
+ // b-tooltip wrapper
864
+ const $tipHolder = wrapper.findComponent(BTooltip)
865
+ expect($tipHolder.exists()).toBe(true)
866
+
867
+ // Find the tooltip element in the document
868
+ const tip = document.getElementById(adb)
869
+ expect(tip).not.toBe(null)
870
+ expect(tip).toBeInstanceOf(HTMLElement)
871
+ expect(tip.tagName).toEqual('DIV')
872
+ expect(tip.classList.contains('tooltip')).toBe(true)
873
+
874
+ // Tooltip should ignore when ID is not its own
875
+ wrapper.vm.$root.$emit('bv::hide::tooltip', 'wrong-id')
876
+ await waitNT(wrapper.vm)
877
+ await waitRAF()
878
+ await waitNT(wrapper.vm)
879
+ await waitRAF()
880
+ jest.runOnlyPendingTimers()
881
+ await waitNT(wrapper.vm)
882
+ await waitRAF()
883
+
884
+ expect($button.attributes('aria-describedby')).toBeDefined()
885
+
886
+ // Tooltip element should still be in the document
887
+ expect(document.body.contains(tip)).toBe(true)
888
+ expect(document.getElementById(adb)).not.toBe(null)
889
+
890
+ wrapper.destroy()
891
+ })
892
+
893
+ it('closes on $root close all event', async () => {
894
+ jest.useFakeTimers()
895
+ const wrapper = mount(App, {
896
+ attachTo: document.body,
897
+ propsData: {
898
+ triggers: 'click',
899
+ show: true,
900
+ disabled: false,
901
+ titleAttr: 'ignored'
902
+ },
903
+ slots: {
904
+ default: 'title'
905
+ }
906
+ })
907
+
908
+ expect(wrapper.vm).toBeDefined()
909
+ await waitNT(wrapper.vm)
910
+ await waitRAF()
911
+ await waitNT(wrapper.vm)
912
+ await waitRAF()
913
+ jest.runOnlyPendingTimers()
914
+ await waitNT(wrapper.vm)
915
+ await waitRAF()
916
+
917
+ expect(wrapper.element.tagName).toBe('ARTICLE')
918
+ expect(wrapper.attributes('id')).toBeDefined()
919
+ expect(wrapper.attributes('id')).toEqual('wrapper')
920
+
921
+ // The trigger button
922
+ const $button = wrapper.find('button')
923
+ expect($button.exists()).toBe(true)
924
+ expect($button.attributes('id')).toBeDefined()
925
+ expect($button.attributes('id')).toEqual('foo')
926
+ expect($button.attributes('title')).toBeDefined()
927
+ expect($button.attributes('title')).toEqual('')
928
+ expect($button.attributes('data-original-title')).toBeDefined()
929
+ expect($button.attributes('data-original-title')).toEqual('ignored')
930
+ expect($button.attributes('aria-describedby')).toBeDefined()
931
+
932
+ // ID of the tooltip that will be in the body
933
+ const adb = $button.attributes('aria-describedby')
934
+
935
+ // <b-tooltip> wrapper
936
+ const $tipHolder = wrapper.findComponent(BTooltip)
937
+ expect($tipHolder.exists()).toBe(true)
938
+
939
+ // Find the tooltip element in the document
940
+ const tip = document.getElementById(adb)
941
+ expect(tip).not.toBe(null)
942
+ expect(tip).toBeInstanceOf(HTMLElement)
943
+ expect(tip.tagName).toEqual('DIV')
944
+ expect(tip.classList.contains('tooltip')).toBe(true)
945
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
946
+
947
+ // Hide the tooltip by emitting root event with no ID (forceHide)
948
+ wrapper.vm.$root.$emit('bv::hide::tooltip')
949
+ await waitNT(wrapper.vm)
950
+ await waitRAF()
951
+ await waitNT(wrapper.vm)
952
+ await waitRAF()
953
+ jest.runOnlyPendingTimers()
954
+ await waitNT(wrapper.vm)
955
+ await waitRAF()
956
+
957
+ expect($button.attributes('aria-describedby')).toBeUndefined()
958
+
959
+ // Tooltip element should not be in the document
960
+ expect(document.body.contains(tip)).toBe(false)
961
+ expect(document.getElementById(adb)).toBe(null)
962
+
963
+ wrapper.destroy()
964
+ })
965
+
966
+ it('does not close on $root modal hidden event by default', async () => {
967
+ jest.useFakeTimers()
968
+ const wrapper = mount(App, {
969
+ attachTo: document.body,
970
+ propsData: {
971
+ triggers: 'click',
972
+ show: true,
973
+ disabled: false,
974
+ titleAttr: 'ignored'
975
+ },
976
+ slots: {
977
+ default: 'title'
978
+ }
979
+ })
980
+
981
+ expect(wrapper.vm).toBeDefined()
982
+ await waitNT(wrapper.vm)
983
+ await waitRAF()
984
+ await waitNT(wrapper.vm)
985
+ await waitRAF()
986
+ jest.runOnlyPendingTimers()
987
+ await waitNT(wrapper.vm)
988
+ await waitRAF()
989
+
990
+ expect(wrapper.element.tagName).toBe('ARTICLE')
991
+ expect(wrapper.attributes('id')).toBeDefined()
992
+ expect(wrapper.attributes('id')).toEqual('wrapper')
993
+ expect(wrapper.classes()).not.toContain('modal-content')
994
+
995
+ // The trigger button
996
+ const $button = wrapper.find('button')
997
+ expect($button.exists()).toBe(true)
998
+ expect($button.attributes('id')).toBeDefined()
999
+ expect($button.attributes('id')).toEqual('foo')
1000
+ expect($button.attributes('title')).toBeDefined()
1001
+ expect($button.attributes('title')).toEqual('')
1002
+ expect($button.attributes('data-original-title')).toBeDefined()
1003
+ expect($button.attributes('data-original-title')).toEqual('ignored')
1004
+ expect($button.attributes('aria-describedby')).toBeDefined()
1005
+ // ID of the tooltip that will be in the body
1006
+ const adb = $button.attributes('aria-describedby')
1007
+
1008
+ // b-tooltip wrapper
1009
+ const $tipHolder = wrapper.findComponent(BTooltip)
1010
+ expect($tipHolder.exists()).toBe(true)
1011
+
1012
+ // Find the tooltip element in the document
1013
+ const tip = document.getElementById(adb)
1014
+ expect(tip).not.toBe(null)
1015
+ expect(tip).toBeInstanceOf(HTMLElement)
1016
+ expect(tip.tagName).toEqual('DIV')
1017
+ expect(tip.classList.contains('tooltip')).toBe(true)
1018
+
1019
+ // Tooltip should ignore when ID is not its own
1020
+ wrapper.vm.$root.$emit(MODAL_CLOSE_EVENT, 'some-modal')
1021
+ await waitNT(wrapper.vm)
1022
+ await waitRAF()
1023
+ await waitNT(wrapper.vm)
1024
+ await waitRAF()
1025
+ jest.runOnlyPendingTimers()
1026
+ await waitNT(wrapper.vm)
1027
+ await waitRAF()
1028
+
1029
+ expect($button.attributes('aria-describedby')).toBeDefined()
1030
+
1031
+ // Tooltip element should still be in the document
1032
+ expect(document.body.contains(tip)).toBe(true)
1033
+ expect(document.getElementById(adb)).not.toBe(null)
1034
+
1035
+ wrapper.destroy()
1036
+ })
1037
+
1038
+ it('closes on $root modal hidden event when inside a modal', async () => {
1039
+ jest.useFakeTimers()
1040
+ const wrapper = mount(App, {
1041
+ attachTo: document.body,
1042
+ propsData: {
1043
+ triggers: 'click',
1044
+ show: true,
1045
+ disabled: false,
1046
+ titleAttr: 'ignored',
1047
+ isModal: true
1048
+ },
1049
+ slots: {
1050
+ default: 'title'
1051
+ }
1052
+ })
1053
+
1054
+ expect(wrapper.vm).toBeDefined()
1055
+ await waitNT(wrapper.vm)
1056
+ await waitRAF()
1057
+ await waitNT(wrapper.vm)
1058
+ await waitRAF()
1059
+ jest.runOnlyPendingTimers()
1060
+ await waitNT(wrapper.vm)
1061
+ await waitRAF()
1062
+
1063
+ expect(wrapper.element.tagName).toBe('ARTICLE')
1064
+ expect(wrapper.attributes('id')).toBeDefined()
1065
+ expect(wrapper.attributes('id')).toEqual('wrapper')
1066
+ expect(wrapper.classes()).toContain('modal-content')
1067
+
1068
+ // The trigger button
1069
+ const $button = wrapper.find('button')
1070
+ expect($button.exists()).toBe(true)
1071
+ expect($button.attributes('id')).toBeDefined()
1072
+ expect($button.attributes('id')).toEqual('foo')
1073
+ expect($button.attributes('title')).toBeDefined()
1074
+ expect($button.attributes('title')).toEqual('')
1075
+ expect($button.attributes('data-original-title')).toBeDefined()
1076
+ expect($button.attributes('data-original-title')).toEqual('ignored')
1077
+ expect($button.attributes('aria-describedby')).toBeDefined()
1078
+ // ID of the tooltip that will be in the body
1079
+ const adb = $button.attributes('aria-describedby')
1080
+
1081
+ // b-tooltip wrapper
1082
+ const $tipHolder = wrapper.findComponent(BTooltip)
1083
+ expect($tipHolder.exists()).toBe(true)
1084
+
1085
+ // Find the tooltip element in the document
1086
+ const tip = document.getElementById(adb)
1087
+ expect(tip).not.toBe(null)
1088
+ expect(tip).toBeInstanceOf(HTMLElement)
1089
+ expect(tip.tagName).toEqual('DIV')
1090
+ expect(tip.classList.contains('tooltip')).toBe(true)
1091
+
1092
+ // Tooltip should ignore when ID is not its own
1093
+ wrapper.vm.$root.$emit(MODAL_CLOSE_EVENT, 'some-modal')
1094
+ await waitNT(wrapper.vm)
1095
+ await waitRAF()
1096
+ await waitNT(wrapper.vm)
1097
+ await waitRAF()
1098
+ jest.runOnlyPendingTimers()
1099
+ await waitNT(wrapper.vm)
1100
+ await waitRAF()
1101
+
1102
+ // Tooltip element should not be in the document
1103
+ expect(document.body.contains(tip)).toBe(false)
1104
+ expect(document.getElementById(adb)).toBe(null)
1105
+
1106
+ wrapper.destroy()
1107
+ })
1108
+
1109
+ it('closes when trigger element is no longer visible', async () => {
1110
+ jest.useFakeTimers()
1111
+ // Prevent warns from appearing in the test logs
1112
+ jest.spyOn(console, 'warn').mockImplementation(() => {})
1113
+
1114
+ const wrapper = mount(App, {
1115
+ attachTo: document.body,
1116
+ propsData: {
1117
+ triggers: 'click',
1118
+ show: true,
1119
+ disabled: false
1120
+ },
1121
+ slots: {
1122
+ default: 'title'
1123
+ }
1124
+ })
1125
+
1126
+ expect(wrapper.vm).toBeDefined()
1127
+ await waitNT(wrapper.vm)
1128
+ await waitRAF()
1129
+ await waitNT(wrapper.vm)
1130
+ await waitRAF()
1131
+ jest.runOnlyPendingTimers()
1132
+ await waitNT(wrapper.vm)
1133
+ await waitRAF()
1134
+ await waitNT(wrapper.vm)
1135
+ await waitRAF()
1136
+
1137
+ expect(wrapper.element.tagName).toBe('ARTICLE')
1138
+ expect(wrapper.attributes('id')).toBeDefined()
1139
+ expect(wrapper.attributes('id')).toEqual('wrapper')
1140
+
1141
+ // The trigger button
1142
+ const $button = wrapper.find('button')
1143
+ expect($button.exists()).toBe(true)
1144
+ expect($button.attributes('id')).toBeDefined()
1145
+ expect($button.attributes('id')).toEqual('foo')
1146
+ expect($button.attributes('aria-describedby')).toBeDefined()
1147
+
1148
+ // ID of the tooltip that will be in the body
1149
+ const adb = $button.attributes('aria-describedby')
1150
+
1151
+ // b-tooltip wrapper
1152
+ const $tipHolder = wrapper.findComponent(BTooltip)
1153
+ expect($tipHolder.exists()).toBe(true)
1154
+
1155
+ // Find the tooltip element in the document
1156
+ const tip = document.getElementById(adb)
1157
+ expect(tip).not.toBe(null)
1158
+ expect(tip).toBeInstanceOf(HTMLElement)
1159
+ expect(tip.tagName).toEqual('DIV')
1160
+ expect(tip.classList.contains('tooltip')).toBe(true)
1161
+
1162
+ // Hide the tooltip by removing the trigger button from DOM
1163
+ $button.element.parentNode.removeChild($button.element)
1164
+ await waitNT(wrapper.vm)
1165
+ await waitRAF()
1166
+ await waitNT(wrapper.vm)
1167
+ await waitRAF()
1168
+ jest.runOnlyPendingTimers()
1169
+ await waitNT(wrapper.vm)
1170
+ await waitRAF()
1171
+ // The visibility check runs on an interval of 100ms
1172
+ jest.runOnlyPendingTimers()
1173
+ await waitNT(wrapper.vm)
1174
+ await waitRAF()
1175
+ jest.runOnlyPendingTimers()
1176
+ await waitNT(wrapper.vm)
1177
+ await waitRAF()
1178
+ jest.runOnlyPendingTimers()
1179
+ await waitNT(wrapper.vm)
1180
+ await waitRAF()
1181
+ await waitNT(wrapper.vm)
1182
+ await waitRAF()
1183
+
1184
+ // Tooltip element should not be in the document
1185
+ expect(document.body.contains(tip)).toBe(false)
1186
+ expect(document.getElementById('adb')).toBe(null)
1187
+
1188
+ // Try and show element via root event (using ID of trigger button)
1189
+ // Note that this generates a console warning
1190
+ wrapper.vm.$root.$emit('bv::show::tooltip', 'foo')
1191
+ await waitNT(wrapper.vm)
1192
+ await waitRAF()
1193
+ await waitNT(wrapper.vm)
1194
+ await waitRAF()
1195
+ jest.runOnlyPendingTimers()
1196
+ await waitNT(wrapper.vm)
1197
+ await waitRAF()
1198
+ jest.runOnlyPendingTimers()
1199
+ await waitNT(wrapper.vm)
1200
+ await waitRAF()
1201
+
1202
+ // Tooltip element should not be in the document
1203
+ expect(document.getElementById(adb)).toBe(null)
1204
+
1205
+ // Try and show element via root event (using show all)
1206
+ wrapper.vm.$root.$emit('bv::show::tooltip')
1207
+ await waitNT(wrapper.vm)
1208
+ await waitRAF()
1209
+ await waitNT(wrapper.vm)
1210
+ await waitRAF()
1211
+ jest.runOnlyPendingTimers()
1212
+ await waitNT(wrapper.vm)
1213
+ await waitRAF()
1214
+ jest.runOnlyPendingTimers()
1215
+ await waitNT(wrapper.vm)
1216
+ await waitRAF()
1217
+
1218
+ // Tooltip element should not be in the document
1219
+ expect(document.getElementById(adb)).toBe(null)
1220
+
1221
+ wrapper.destroy()
1222
+ })
1223
+
1224
+ it('closes when title is set to empty', async () => {
1225
+ jest.useFakeTimers()
1226
+ const wrapper = mount(App, {
1227
+ attachTo: document.body,
1228
+ propsData: {
1229
+ show: true,
1230
+ title: 'hello'
1231
+ }
1232
+ })
1233
+
1234
+ expect(wrapper.vm).toBeDefined()
1235
+ await waitNT(wrapper.vm)
1236
+ await waitRAF()
1237
+ await waitNT(wrapper.vm)
1238
+ await waitRAF()
1239
+ await waitNT(wrapper.vm)
1240
+ await waitRAF()
1241
+ jest.runOnlyPendingTimers()
1242
+ await waitNT(wrapper.vm)
1243
+ await waitRAF()
1244
+
1245
+ expect(wrapper.element.tagName).toBe('ARTICLE')
1246
+ expect(wrapper.attributes('id')).toBeDefined()
1247
+ expect(wrapper.attributes('id')).toEqual('wrapper')
1248
+
1249
+ // The trigger button
1250
+ const $button = wrapper.find('button')
1251
+ expect($button.exists()).toBe(true)
1252
+ expect($button.attributes('id')).toBeDefined()
1253
+ expect($button.attributes('id')).toEqual('foo')
1254
+ expect($button.attributes('title')).toBeUndefined()
1255
+ expect($button.attributes('data-original-title')).toBeUndefined()
1256
+ expect($button.attributes('aria-describedby')).toBeDefined()
1257
+ // ID of the tooltip that will be in the body
1258
+ const adb = $button.attributes('aria-describedby')
1259
+
1260
+ // <b-tooltip> wrapper
1261
+ const $tipHolder = wrapper.findComponent(BTooltip)
1262
+ expect($tipHolder.exists()).toBe(true)
1263
+ expect($tipHolder.element.nodeType).toEqual(Node.COMMENT_NODE)
1264
+
1265
+ // Find the tooltip element in the document
1266
+ const tip = document.getElementById(adb)
1267
+ expect(tip).not.toBe(null)
1268
+ expect(tip).toBeInstanceOf(HTMLElement)
1269
+ const $tip = createWrapper(tip)
1270
+ expect($tip.element.tagName).toBe('DIV')
1271
+ expect($tip.classes()).toContain('tooltip')
1272
+ expect($tip.classes()).toContain('b-tooltip')
1273
+ // Should contain our title prop value
1274
+ expect($tip.text()).toContain('hello')
1275
+
1276
+ // Change the title prop
1277
+ await wrapper.setProps({ title: '' })
1278
+ await waitRAF()
1279
+ await waitRAF()
1280
+
1281
+ // Tooltip element should not be in the document
1282
+ expect(document.body.contains(tip)).toBe(false)
1283
+ expect(document.getElementById('adb')).toBe(null)
1284
+
1285
+ wrapper.destroy()
1286
+ })
1287
+
1288
+ it('applies noninteractive class based on noninteractive prop', async () => {
1289
+ jest.useFakeTimers()
1290
+ const wrapper = mount(App, {
1291
+ attachTo: document.body,
1292
+ propsData: {
1293
+ show: true
1294
+ },
1295
+ slots: {
1296
+ default: 'title'
1297
+ }
1298
+ })
1299
+
1300
+ expect(wrapper.vm).toBeDefined()
1301
+ await waitNT(wrapper.vm)
1302
+ await waitRAF()
1303
+ await waitNT(wrapper.vm)
1304
+ await waitRAF()
1305
+ jest.runOnlyPendingTimers()
1306
+ await waitNT(wrapper.vm)
1307
+ await waitRAF()
1308
+
1309
+ expect(wrapper.element.tagName).toBe('ARTICLE')
1310
+ expect(wrapper.attributes('id')).toBeDefined()
1311
+ expect(wrapper.attributes('id')).toEqual('wrapper')
1312
+
1313
+ // The trigger button
1314
+ const $button = wrapper.find('button')
1315
+ expect($button.exists()).toBe(true)
1316
+
1317
+ // ID of the tooltip that will be in the body
1318
+ const adb = $button.attributes('aria-describedby')
1319
+ expect(adb).toBeDefined()
1320
+ expect(adb).not.toBe('')
1321
+ expect(adb).not.toBe(null)
1322
+
1323
+ // Find the tooltip element in the document
1324
+ const tip = document.getElementById(adb)
1325
+ expect(tip).not.toBe(null)
1326
+ expect(tip).toBeInstanceOf(HTMLElement)
1327
+ expect(tip.tagName).toEqual('DIV')
1328
+ expect(tip.classList.contains('tooltip')).toBe(true)
1329
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
1330
+ expect(tip.classList.contains('noninteractive')).toBe(false)
1331
+
1332
+ // Enable 'noninteractive'. Should be reactive
1333
+ await wrapper.setProps({ noninteractive: true })
1334
+ await waitRAF()
1335
+ expect(tip.classList.contains('tooltip')).toBe(true)
1336
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
1337
+ expect(tip.classList.contains('noninteractive')).toBe(true)
1338
+
1339
+ wrapper.destroy()
1340
+ })
1341
+
1342
+ it('applies variant class', async () => {
1343
+ jest.useFakeTimers()
1344
+ const wrapper = mount(App, {
1345
+ attachTo: document.body,
1346
+ propsData: {
1347
+ show: true,
1348
+ variant: 'danger'
1349
+ },
1350
+ slots: {
1351
+ default: 'title'
1352
+ }
1353
+ })
1354
+
1355
+ expect(wrapper.vm).toBeDefined()
1356
+ await waitNT(wrapper.vm)
1357
+ await waitRAF()
1358
+ await waitNT(wrapper.vm)
1359
+ await waitRAF()
1360
+ jest.runOnlyPendingTimers()
1361
+ await waitNT(wrapper.vm)
1362
+ await waitRAF()
1363
+
1364
+ expect(wrapper.element.tagName).toBe('ARTICLE')
1365
+ expect(wrapper.attributes('id')).toBeDefined()
1366
+ expect(wrapper.attributes('id')).toEqual('wrapper')
1367
+
1368
+ // The trigger button
1369
+ const $button = wrapper.find('button')
1370
+ expect($button.exists()).toBe(true)
1371
+
1372
+ // ID of the tooltip that will be in the body
1373
+ const adb = $button.attributes('aria-describedby')
1374
+ expect(adb).not.toBe(null)
1375
+
1376
+ // Find the tooltip element in the document
1377
+ const tip = document.getElementById(adb)
1378
+ expect(tip).not.toBe(null)
1379
+ expect(tip).toBeInstanceOf(HTMLElement)
1380
+ expect(tip.tagName).toEqual('DIV')
1381
+ expect(tip.classList.contains('tooltip')).toBe(true)
1382
+ expect(tip.classList.contains('b-tooltip-danger')).toBe(true)
1383
+
1384
+ // Change variant type. Should be reactive
1385
+ await wrapper.setProps({ variant: 'success' })
1386
+ await waitRAF()
1387
+ expect(tip.classList.contains('tooltip')).toBe(true)
1388
+ expect(tip.classList.contains('b-tooltip-success')).toBe(true)
1389
+ expect(tip.classList.contains('b-tooltip-danger')).toBe(false)
1390
+
1391
+ wrapper.destroy()
1392
+ })
1393
+
1394
+ it('applies custom class', async () => {
1395
+ jest.useFakeTimers()
1396
+ const wrapper = mount(App, {
1397
+ attachTo: document.body,
1398
+ propsData: {
1399
+ show: true,
1400
+ customClass: 'foobar-class'
1401
+ },
1402
+ slots: {
1403
+ default: 'title'
1404
+ }
1405
+ })
1406
+
1407
+ expect(wrapper.vm).toBeDefined()
1408
+ await waitNT(wrapper.vm)
1409
+ await waitRAF()
1410
+ await waitNT(wrapper.vm)
1411
+ await waitRAF()
1412
+ jest.runOnlyPendingTimers()
1413
+ await waitNT(wrapper.vm)
1414
+ await waitRAF()
1415
+
1416
+ expect(wrapper.element.tagName).toBe('ARTICLE')
1417
+ expect(wrapper.attributes('id')).toBeDefined()
1418
+ expect(wrapper.attributes('id')).toEqual('wrapper')
1419
+
1420
+ // The trigger button
1421
+ const $button = wrapper.find('button')
1422
+ expect($button.exists()).toBe(true)
1423
+
1424
+ // ID of the tooltip that will be in the body
1425
+ const adb = $button.attributes('aria-describedby')
1426
+ expect(adb).toBeDefined()
1427
+ expect(adb).not.toBe('')
1428
+ expect(adb).not.toBe(null)
1429
+
1430
+ // Find the tooltip element in the document
1431
+ const tip = document.getElementById(adb)
1432
+ expect(tip).not.toBe(null)
1433
+ expect(tip).toBeInstanceOf(HTMLElement)
1434
+ expect(tip.tagName).toEqual('DIV')
1435
+ expect(tip.classList.contains('tooltip')).toBe(true)
1436
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
1437
+ expect(tip.classList.contains('foobar-class')).toBe(true)
1438
+
1439
+ // Change custom class. Should be reactive
1440
+ await wrapper.setProps({ customClass: 'barbaz-class' })
1441
+ await waitRAF()
1442
+ expect(tip.classList.contains('tooltip')).toBe(true)
1443
+ expect(tip.classList.contains('barbaz-class')).toBe(true)
1444
+ expect(tip.classList.contains('foobar-class')).toBe(false)
1445
+
1446
+ wrapper.destroy()
1447
+ })
1448
+
1449
+ it('saves title in data attribute on open and adds to back on hide', async () => {
1450
+ jest.useFakeTimers()
1451
+ const wrapper = mount(App, {
1452
+ attachTo: document.body,
1453
+ propsData: {
1454
+ triggers: 'click',
1455
+ show: false,
1456
+ titleAttr: 'bar'
1457
+ },
1458
+ slots: {
1459
+ default: 'title'
1460
+ }
1461
+ })
1462
+
1463
+ expect(wrapper.vm).toBeDefined()
1464
+ await waitNT(wrapper.vm)
1465
+ await waitRAF()
1466
+ await waitNT(wrapper.vm)
1467
+ await waitRAF()
1468
+ jest.runOnlyPendingTimers()
1469
+
1470
+ expect(wrapper.element.tagName).toBe('ARTICLE')
1471
+ expect(wrapper.attributes('id')).toBeDefined()
1472
+ expect(wrapper.attributes('id')).toEqual('wrapper')
1473
+
1474
+ // The trigger button
1475
+ const $button = wrapper.find('button')
1476
+ expect($button.exists()).toBe(true)
1477
+ expect($button.attributes('id')).toBeDefined()
1478
+ expect($button.attributes('id')).toEqual('foo')
1479
+ expect($button.attributes('title')).toBeDefined()
1480
+ expect($button.attributes('title')).toEqual('bar')
1481
+ expect($button.attributes('data-original-title')).toBeUndefined()
1482
+ expect($button.attributes('aria-describedby')).toBeUndefined()
1483
+
1484
+ // Show tooltip
1485
+ await wrapper.setProps({ show: true })
1486
+
1487
+ expect($button.attributes('title')).toBeDefined()
1488
+ expect($button.attributes('title')).toEqual('')
1489
+ expect($button.attributes('data-original-title')).toBeDefined()
1490
+ expect($button.attributes('data-original-title')).toEqual('bar')
1491
+ expect($button.attributes('aria-describedby')).toBeDefined()
1492
+ // ID of the tooltip that will be in the body
1493
+ const adb = $button.attributes('aria-describedby')
1494
+
1495
+ // <b-tooltip> wrapper
1496
+ const $tipHolder = wrapper.findComponent(BTooltip)
1497
+ expect($tipHolder.exists()).toBe(true)
1498
+ expect($tipHolder.element.nodeType).toEqual(Node.COMMENT_NODE)
1499
+
1500
+ // Find the tooltip element in the document
1501
+ const tip = document.getElementById(adb)
1502
+ expect(tip).not.toBe(null)
1503
+ expect(tip).toBeInstanceOf(HTMLElement)
1504
+ expect(tip.tagName).toEqual('DIV')
1505
+ expect(tip.classList.contains('tooltip')).toBe(true)
1506
+ expect(tip.classList.contains('b-tooltip')).toBe(true)
1507
+ expect(tip.classList.contains('interactive')).toBe(false)
1508
+ expect(tip.textContent).toEqual('title')
1509
+
1510
+ // Hide the tooltip
1511
+ await wrapper.setProps({ show: false })
1512
+ await waitRAF()
1513
+ await waitRAF()
1514
+ jest.runOnlyPendingTimers()
1515
+ await waitNT(wrapper.vm)
1516
+ await waitRAF()
1517
+
1518
+ expect($button.attributes('title')).toBeDefined()
1519
+ expect($button.attributes('title')).toEqual('bar')
1520
+ expect($button.attributes('data-original-title')).toBeUndefined()
1521
+ expect($button.attributes('aria-describedby')).toBeUndefined()
1522
+
1523
+ // Tooltip element should not be in the document
1524
+ expect(document.body.contains(tip)).toBe(false)
1525
+ expect(document.querySelector(adb)).toBe(null)
1526
+
1527
+ wrapper.destroy()
1528
+ })
1529
+ })