@gitlab/ui 132.0.1 → 132.0.2

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 (393) hide show
  1. package/dist/charts.js +13 -0
  2. package/dist/components/base/accordion/accordion.js +69 -0
  3. package/dist/components/base/accordion/accordion_item.js +160 -0
  4. package/dist/components/base/accordion/constants.js +3 -0
  5. package/dist/components/base/alert/alert.js +263 -0
  6. package/dist/components/base/animated_icon/animated_chevron_down_up_icon.js +45 -0
  7. package/dist/components/base/animated_icon/animated_chevron_lg_down_up_icon.js +45 -0
  8. package/dist/components/base/animated_icon/animated_chevron_lg_right_down_icon.js +45 -0
  9. package/dist/components/base/animated_icon/animated_chevron_right_down_icon.js +45 -0
  10. package/dist/components/base/animated_icon/animated_duo_chat_icon.js +45 -0
  11. package/dist/components/base/animated_icon/animated_loader_icon.js +45 -0
  12. package/dist/components/base/animated_icon/animated_notifications_icon.js +45 -0
  13. package/dist/components/base/animated_icon/animated_sidebar_icon.js +45 -0
  14. package/dist/components/base/animated_icon/animated_smile_icon.js +45 -0
  15. package/dist/components/base/animated_icon/animated_sort_icon.js +45 -0
  16. package/dist/components/base/animated_icon/animated_star_icon.js +45 -0
  17. package/dist/components/base/animated_icon/animated_todo_icon.js +45 -0
  18. package/dist/components/base/animated_icon/animated_upload_icon.js +45 -0
  19. package/dist/components/base/animated_icon/base_animated_icon.js +77 -0
  20. package/dist/components/base/attribute_list/attribute_list.js +100 -0
  21. package/dist/components/base/avatar/avatar.js +175 -0
  22. package/dist/components/base/avatar/utils.js +17 -0
  23. package/dist/components/base/avatar_labeled/avatar_labeled.js +198 -0
  24. package/dist/components/base/avatar_link/avatar_link.js +47 -0
  25. package/dist/components/base/avatars_inline/avatars_inline.js +139 -0
  26. package/dist/components/base/badge/badge.js +197 -0
  27. package/dist/components/base/banner/banner.js +149 -0
  28. package/dist/components/base/breadcrumb/breadcrumb.js +282 -0
  29. package/dist/components/base/breadcrumb/breadcrumb_item.js +96 -0
  30. package/dist/components/base/broadcast_message/broadcast_message.js +113 -0
  31. package/dist/components/base/broadcast_message/constants.js +5 -0
  32. package/dist/components/base/button/button.js +419 -0
  33. package/dist/components/base/button_group/button_group.js +53 -0
  34. package/dist/components/base/card/card.js +69 -0
  35. package/dist/components/base/collapse/collapse.js +163 -0
  36. package/dist/components/base/color_mode_toggle/color_mode_toggle.js +92 -0
  37. package/dist/components/base/datepicker/datepicker.js +475 -0
  38. package/dist/components/base/daterange_picker/daterange_picker.js +394 -0
  39. package/dist/components/base/drawer/drawer.js +156 -0
  40. package/dist/components/base/dropdown/dropdown.js +330 -0
  41. package/dist/components/base/dropdown/dropdown_divider.js +48 -0
  42. package/dist/components/base/dropdown/dropdown_form.js +48 -0
  43. package/dist/components/base/dropdown/dropdown_item.js +175 -0
  44. package/dist/components/base/dropdown/dropdown_section_header.js +48 -0
  45. package/dist/components/base/dropdown/dropdown_text.js +48 -0
  46. package/dist/components/base/filtered_search/common_story_options.js +14 -0
  47. package/dist/components/base/filtered_search/filtered_search.js +428 -0
  48. package/dist/components/base/filtered_search/filtered_search_suggestion.js +95 -0
  49. package/dist/components/base/filtered_search/filtered_search_suggestion_list.js +139 -0
  50. package/dist/components/base/filtered_search/filtered_search_term.js +217 -0
  51. package/dist/components/base/filtered_search/filtered_search_token.js +383 -0
  52. package/dist/components/base/filtered_search/filtered_search_token_segment.js +444 -0
  53. package/dist/components/base/filtered_search/filtered_search_utils.js +241 -0
  54. package/dist/components/base/form/form.js +43 -0
  55. package/dist/components/base/form/form_character_count/form_character_count.js +107 -0
  56. package/dist/components/base/form/form_checkbox/form_checkbox.js +342 -0
  57. package/dist/components/base/form/form_checkbox/form_checkbox_group.js +188 -0
  58. package/dist/components/base/form/form_combobox/constants.js +55 -0
  59. package/dist/components/base/form/form_combobox/form_combobox.js +239 -0
  60. package/dist/components/base/form/form_date/form_date.js +143 -0
  61. package/dist/components/base/form/form_fields/form_field_validator.js +93 -0
  62. package/dist/components/base/form/form_fields/form_fields.js +289 -0
  63. package/dist/components/base/form/form_fields/form_fields_loop.js +75 -0
  64. package/dist/components/base/form/form_fields/mappers.js +13 -0
  65. package/dist/components/base/form/form_fields/validators.js +48 -0
  66. package/dist/components/base/form/form_group/form_group.js +119 -0
  67. package/dist/components/base/form/form_input/form_input.js +695 -0
  68. package/dist/components/base/form/form_input_group/form_input_group.js +120 -0
  69. package/dist/components/base/form/form_input_group/form_input_group_mixin.js +41 -0
  70. package/dist/components/base/form/form_radio/form_radio.js +259 -0
  71. package/dist/components/base/form/form_radio_group/form_radio_group.js +189 -0
  72. package/dist/components/base/form/form_select/constants.js +12 -0
  73. package/dist/components/base/form/form_select/form_select.js +96 -0
  74. package/dist/components/base/form/form_textarea/form_textarea.js +166 -0
  75. package/dist/components/base/form/input_group_text/input_group_text.js +43 -0
  76. package/dist/components/base/icon/icon.js +113 -0
  77. package/dist/components/base/illustration/illustration.js +80 -0
  78. package/dist/components/base/infinite_scroll/infinite_scroll.js +196 -0
  79. package/dist/components/base/keyset_pagination/keyset_pagination.js +152 -0
  80. package/dist/components/base/label/label.js +174 -0
  81. package/dist/components/base/link/link.js +330 -0
  82. package/dist/components/base/loading_icon/loading_icon.js +120 -0
  83. package/dist/components/base/markdown/markdown.js +50 -0
  84. package/dist/components/base/modal/modal.js +259 -0
  85. package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +716 -0
  86. package/dist/components/base/new_dropdowns/base_dropdown/constants.js +5 -0
  87. package/dist/components/base/new_dropdowns/base_dropdown/dropdown_container.js +32 -0
  88. package/dist/components/base/new_dropdowns/constants.js +24 -0
  89. package/dist/components/base/new_dropdowns/disclosure/constants.js +8 -0
  90. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js +400 -0
  91. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +112 -0
  92. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +196 -0
  93. package/dist/components/base/new_dropdowns/disclosure/mock_data.js +168 -0
  94. package/dist/components/base/new_dropdowns/disclosure/utils.js +84 -0
  95. package/dist/components/base/new_dropdowns/listbox/listbox.js +997 -0
  96. package/dist/components/base/new_dropdowns/listbox/listbox_group.js +58 -0
  97. package/dist/components/base/new_dropdowns/listbox/listbox_item.js +112 -0
  98. package/dist/components/base/new_dropdowns/listbox/listbox_search_input.js +94 -0
  99. package/dist/components/base/new_dropdowns/listbox/mock_data.js +131 -0
  100. package/dist/components/base/new_dropdowns/listbox/utils.js +33 -0
  101. package/dist/components/base/pagination/pagination.js +397 -0
  102. package/dist/components/base/path/data.js +34 -0
  103. package/dist/components/base/path/path.js +177 -0
  104. package/dist/components/base/popover/popover.js +142 -0
  105. package/dist/components/base/progress_bar/progress_bar.js +117 -0
  106. package/dist/components/base/search_box_by_click/search_box_by_click.js +245 -0
  107. package/dist/components/base/search_box_by_type/search_box_by_type.js +187 -0
  108. package/dist/components/base/segmented_control/segmented_control.js +73 -0
  109. package/dist/components/base/skeleton_loader/skeleton_loader.js +232 -0
  110. package/dist/components/base/sorting/sorting.js +180 -0
  111. package/dist/components/base/table/constants.js +5 -0
  112. package/dist/components/base/table/table.js +187 -0
  113. package/dist/components/base/table_lite/table_lite.js +80 -0
  114. package/dist/components/base/tabs/constants.js +3 -0
  115. package/dist/components/base/tabs/tab/tab.js +113 -0
  116. package/dist/components/base/tabs/tabs/scrollable_tabs.js +162 -0
  117. package/dist/components/base/tabs/tabs/tabs.js +223 -0
  118. package/dist/components/base/toast/index.js +66 -0
  119. package/dist/components/base/toast/toast.js +125 -0
  120. package/dist/components/base/toast/toaster.js +87 -0
  121. package/dist/components/base/toggle/toggle.js +178 -0
  122. package/dist/components/base/token/token.js +97 -0
  123. package/dist/components/base/token_selector/helpers.js +5 -0
  124. package/dist/components/base/token_selector/token_container.js +160 -0
  125. package/dist/components/base/token_selector/token_selector.js +454 -0
  126. package/dist/components/base/token_selector/token_selector_dropdown.js +223 -0
  127. package/dist/components/base/tooltip/tooltip.js +54 -0
  128. package/dist/components/charts/area/area.js +329 -0
  129. package/dist/components/charts/bar/bar.js +207 -0
  130. package/dist/components/charts/chart/chart.js +215 -0
  131. package/dist/components/charts/column/column.js +221 -0
  132. package/dist/components/charts/discrete_scatter/discrete_scatter.js +199 -0
  133. package/dist/components/charts/gauge/gauge.js +205 -0
  134. package/dist/components/charts/heatmap/heatmap.js +299 -0
  135. package/dist/components/charts/heatmap/index.js +2 -0
  136. package/dist/components/charts/legend/legend.js +245 -0
  137. package/dist/components/charts/line/line.js +340 -0
  138. package/dist/components/charts/series_label/series_label.js +101 -0
  139. package/dist/components/charts/shared/tooltip/tooltip.js +369 -0
  140. package/dist/components/charts/shared/tooltip/tooltip_default_format/tooltip_default_format.js +53 -0
  141. package/dist/components/charts/single_stat/single_stat.js +164 -0
  142. package/dist/components/charts/sparkline/sparkline.js +299 -0
  143. package/dist/components/charts/stacked_column/stacked_column.js +380 -0
  144. package/dist/components/dashboards/dashboard_layout/dashboard_layout.js +125 -0
  145. package/dist/components/dashboards/dashboard_layout/grid_layout/grid_layout.js +326 -0
  146. package/dist/components/dashboards/dashboard_layout/validators.js +14 -0
  147. package/dist/components/dashboards/dashboard_panel/dashboard_panel.js +236 -0
  148. package/dist/components/dashboards/mock_data.js +49 -0
  149. package/dist/components/experimental/experiment_badge/constants.js +4 -0
  150. package/dist/components/experimental/experiment_badge/experiment_badge.js +102 -0
  151. package/dist/components/extended/multi_step_form_template/multi_step_form_template.js +87 -0
  152. package/dist/components/index.js +107 -0
  153. package/dist/components/mixins/button_mixin.js +11 -0
  154. package/dist/components/mixins/safe_link_mixin.js +30 -0
  155. package/dist/components/mixins/tooltip_mixin.js +21 -0
  156. package/dist/components/regions/dashboard_skeleton/dashboard_skeleton.js +53 -0
  157. package/dist/components/regions/empty_state/empty_state.js +181 -0
  158. package/dist/components/shared_components/clear_icon_button/clear_icon_button.js +64 -0
  159. package/dist/components/shared_components/clipboard_button/clipboard_button.js +100 -0
  160. package/dist/components/shared_components/close_button/close_button.js +55 -0
  161. package/dist/components/utilities/animated_number/animated_number.js +131 -0
  162. package/dist/components/utilities/friendly_wrap/friendly_wrap.js +75 -0
  163. package/dist/components/utilities/intersection_observer/intersection_observer.js +88 -0
  164. package/dist/components/utilities/intersperse/intersperse.js +104 -0
  165. package/dist/components/utilities/sprintf/sprintf.js +171 -0
  166. package/dist/components/utilities/truncate/constants.js +8 -0
  167. package/dist/components/utilities/truncate/truncate.js +154 -0
  168. package/dist/components/utilities/truncate_text/constants.js +7 -0
  169. package/dist/components/utilities/truncate_text/truncate_text.js +146 -0
  170. package/dist/config.js +53 -0
  171. package/dist/directives/hover_load/hover_load.js +45 -0
  172. package/dist/directives/index.js +8 -0
  173. package/dist/directives/modal.js +1 -0
  174. package/dist/directives/outside/outside.js +149 -0
  175. package/dist/directives/resize_observer/resize_observer.js +58 -0
  176. package/dist/directives/safe_html/constants.js +6 -0
  177. package/dist/directives/safe_html/safe_html.js +39 -0
  178. package/dist/directives/safe_link/mock_data.js +10 -0
  179. package/dist/directives/safe_link/safe_link.js +67 -0
  180. package/dist/directives/tooltip/container.js +7 -0
  181. package/dist/directives/tooltip/tooltip.js +18 -0
  182. package/dist/index.css +7 -0
  183. package/dist/index.css.map +1 -0
  184. package/dist/index.js +2 -0
  185. package/dist/tailwind.css +2 -0
  186. package/dist/tailwind.css.map +1 -0
  187. package/dist/tokens/build/js/tokens.dark.js +1410 -0
  188. package/dist/tokens/build/js/tokens.js +1410 -0
  189. package/dist/tokens/common_story_options.js +29 -0
  190. package/dist/tokens/tokens_story.js +76 -0
  191. package/dist/utils/breakpoints.js +20 -0
  192. package/dist/utils/charts/config.js +616 -0
  193. package/dist/utils/charts/constants.js +69 -0
  194. package/dist/utils/charts/mock_data.js +191 -0
  195. package/dist/utils/charts/story_config.js +24 -0
  196. package/dist/utils/charts/theme.js +200 -0
  197. package/dist/utils/charts/utils.js +54 -0
  198. package/dist/utils/constants.js +331 -0
  199. package/dist/utils/data_utils.js +19 -0
  200. package/dist/utils/datetime_utility.js +61 -0
  201. package/dist/utils/equality_utils.js +84 -0
  202. package/dist/utils/form_options_utils.js +46 -0
  203. package/dist/utils/i18n.js +65 -0
  204. package/dist/utils/is_slot_empty.js +34 -0
  205. package/dist/utils/number_utils.js +132 -0
  206. package/dist/utils/play_utils.js +11 -0
  207. package/dist/utils/set_utils.js +25 -0
  208. package/dist/utils/stories_constants.js +29 -0
  209. package/dist/utils/stories_utils.js +62 -0
  210. package/dist/utils/story_decorators/container.js +19 -0
  211. package/dist/utils/string_utils.js +69 -0
  212. package/dist/utils/svgs/svg_paths.js +7 -0
  213. package/dist/utils/test_utils.js +33 -0
  214. package/dist/utils/use_fake_date.js +29 -0
  215. package/dist/utils/use_mock_intersection_observer.js +105 -0
  216. package/dist/utils/utils.js +205 -0
  217. package/dist/utils/vue_utils.js +57 -0
  218. package/dist/utils.js +5 -0
  219. package/dist/vendor/bootstrap-vue/src/bv-config.js +8 -0
  220. package/dist/vendor/bootstrap-vue/src/components/button/button-close.js +81 -0
  221. package/dist/vendor/bootstrap-vue/src/components/button/button.js +204 -0
  222. package/dist/vendor/bootstrap-vue/src/components/button/index.js +2 -0
  223. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +41 -0
  224. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +52 -0
  225. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +75 -0
  226. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +52 -0
  227. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +85 -0
  228. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +97 -0
  229. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +60 -0
  230. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +270 -0
  231. package/dist/vendor/bootstrap-vue/src/components/dropdown/index.js +8 -0
  232. package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +53 -0
  233. package/dist/vendor/bootstrap-vue/src/components/form/form-text.js +55 -0
  234. package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +53 -0
  235. package/dist/vendor/bootstrap-vue/src/components/form/form.js +56 -0
  236. package/dist/vendor/bootstrap-vue/src/components/form/index.js +4 -0
  237. package/dist/vendor/bootstrap-vue/src/components/form-group/form-group.js +347 -0
  238. package/dist/vendor/bootstrap-vue/src/components/form-group/index.js +1 -0
  239. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +54 -0
  240. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +41 -0
  241. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +143 -0
  242. package/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +56 -0
  243. package/dist/vendor/bootstrap-vue/src/components/form-select/index.js +3 -0
  244. package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +217 -0
  245. package/dist/vendor/bootstrap-vue/src/components/form-textarea/index.js +1 -0
  246. package/dist/vendor/bootstrap-vue/src/components/layout/col.js +155 -0
  247. package/dist/vendor/bootstrap-vue/src/components/layout/form-row.js +34 -0
  248. package/dist/vendor/bootstrap-vue/src/components/layout/index.js +2 -0
  249. package/dist/vendor/bootstrap-vue/src/components/link/index.js +1 -0
  250. package/dist/vendor/bootstrap-vue/src/components/link/link.js +283 -0
  251. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.js +21 -0
  252. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/modal-manager.js +212 -0
  253. package/dist/vendor/bootstrap-vue/src/components/modal/index.js +1 -0
  254. package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +1059 -0
  255. package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover-template.js +55 -0
  256. package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover.js +31 -0
  257. package/dist/vendor/bootstrap-vue/src/components/popover/index.js +1 -0
  258. package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +49 -0
  259. package/dist/vendor/bootstrap-vue/src/components/table/helpers/constants.js +22 -0
  260. package/dist/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.js +64 -0
  261. package/dist/vendor/bootstrap-vue/src/components/table/helpers/filter-event.js +40 -0
  262. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-bottom-row.js +43 -0
  263. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +83 -0
  264. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +50 -0
  265. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-colgroup.js +32 -0
  266. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +82 -0
  267. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +292 -0
  268. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +154 -0
  269. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +44 -0
  270. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +191 -0
  271. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +213 -0
  272. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +274 -0
  273. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +39 -0
  274. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +186 -0
  275. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +338 -0
  276. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +243 -0
  277. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +50 -0
  278. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +218 -0
  279. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-top-row.js +42 -0
  280. package/dist/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.js +86 -0
  281. package/dist/vendor/bootstrap-vue/src/components/table/helpers/sanitize-row.js +31 -0
  282. package/dist/vendor/bootstrap-vue/src/components/table/helpers/stringify-record-values.js +11 -0
  283. package/dist/vendor/bootstrap-vue/src/components/table/helpers/text-selection-active.js +14 -0
  284. package/dist/vendor/bootstrap-vue/src/components/table/index.js +9 -0
  285. package/dist/vendor/bootstrap-vue/src/components/table/table-lite.js +51 -0
  286. package/dist/vendor/bootstrap-vue/src/components/table/table-simple.js +44 -0
  287. package/dist/vendor/bootstrap-vue/src/components/table/table.js +67 -0
  288. package/dist/vendor/bootstrap-vue/src/components/table/tbody.js +116 -0
  289. package/dist/vendor/bootstrap-vue/src/components/table/td.js +204 -0
  290. package/dist/vendor/bootstrap-vue/src/components/table/tfoot.js +96 -0
  291. package/dist/vendor/bootstrap-vue/src/components/table/th.js +26 -0
  292. package/dist/vendor/bootstrap-vue/src/components/table/thead.js +99 -0
  293. package/dist/vendor/bootstrap-vue/src/components/table/tr.js +121 -0
  294. package/dist/vendor/bootstrap-vue/src/components/tabs/index.js +2 -0
  295. package/dist/vendor/bootstrap-vue/src/components/tabs/tab.js +238 -0
  296. package/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js +690 -0
  297. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +251 -0
  298. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +118 -0
  299. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +932 -0
  300. package/dist/vendor/bootstrap-vue/src/components/tooltip/index.js +1 -0
  301. package/dist/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +337 -0
  302. package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +103 -0
  303. package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +205 -0
  304. package/dist/vendor/bootstrap-vue/src/constants/components.js +55 -0
  305. package/dist/vendor/bootstrap-vue/src/constants/config.js +11 -0
  306. package/dist/vendor/bootstrap-vue/src/constants/env.js +36 -0
  307. package/dist/vendor/bootstrap-vue/src/constants/events.js +56 -0
  308. package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +11 -0
  309. package/dist/vendor/bootstrap-vue/src/constants/popper.js +10 -0
  310. package/dist/vendor/bootstrap-vue/src/constants/props.js +24 -0
  311. package/dist/vendor/bootstrap-vue/src/constants/regex.js +35 -0
  312. package/dist/vendor/bootstrap-vue/src/constants/safe-types.js +15 -0
  313. package/dist/vendor/bootstrap-vue/src/constants/slots.js +36 -0
  314. package/dist/vendor/bootstrap-vue/src/directives/modal/index.js +1 -0
  315. package/dist/vendor/bootstrap-vue/src/directives/modal/modal.js +112 -0
  316. package/dist/vendor/bootstrap-vue/src/directives/tooltip/index.js +1 -0
  317. package/dist/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +267 -0
  318. package/dist/vendor/bootstrap-vue/src/directives/visible/index.js +1 -0
  319. package/dist/vendor/bootstrap-vue/src/directives/visible/visible.js +187 -0
  320. package/dist/vendor/bootstrap-vue/src/mixins/attrs.js +5 -0
  321. package/dist/vendor/bootstrap-vue/src/mixins/click-out.js +54 -0
  322. package/dist/vendor/bootstrap-vue/src/mixins/dropdown.js +470 -0
  323. package/dist/vendor/bootstrap-vue/src/mixins/focus-in.js +46 -0
  324. package/dist/vendor/bootstrap-vue/src/mixins/form-control.js +73 -0
  325. package/dist/vendor/bootstrap-vue/src/mixins/form-custom.js +26 -0
  326. package/dist/vendor/bootstrap-vue/src/mixins/form-options.js +91 -0
  327. package/dist/vendor/bootstrap-vue/src/mixins/form-selection.js +62 -0
  328. package/dist/vendor/bootstrap-vue/src/mixins/form-size.js +26 -0
  329. package/dist/vendor/bootstrap-vue/src/mixins/form-state.js +50 -0
  330. package/dist/vendor/bootstrap-vue/src/mixins/form-text.js +293 -0
  331. package/dist/vendor/bootstrap-vue/src/mixins/form-validity.js +50 -0
  332. package/dist/vendor/bootstrap-vue/src/mixins/has-listener.js +29 -0
  333. package/dist/vendor/bootstrap-vue/src/mixins/id.js +57 -0
  334. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-document.js +62 -0
  335. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-root.js +120 -0
  336. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-window.js +62 -0
  337. package/dist/vendor/bootstrap-vue/src/mixins/listeners.js +25 -0
  338. package/dist/vendor/bootstrap-vue/src/mixins/model.js +10 -0
  339. package/dist/vendor/bootstrap-vue/src/mixins/normalize-slot.js +30 -0
  340. package/dist/vendor/bootstrap-vue/src/mixins/scoped-style.js +18 -0
  341. package/dist/vendor/bootstrap-vue/src/mixins/use-parent.js +14 -0
  342. package/dist/vendor/bootstrap-vue/src/utils/array.js +27 -0
  343. package/dist/vendor/bootstrap-vue/src/utils/bv-event.class.js +60 -0
  344. package/dist/vendor/bootstrap-vue/src/utils/cache.js +60 -0
  345. package/dist/vendor/bootstrap-vue/src/utils/clone-deep.js +18 -0
  346. package/dist/vendor/bootstrap-vue/src/utils/config-set.js +86 -0
  347. package/dist/vendor/bootstrap-vue/src/utils/config.js +71 -0
  348. package/dist/vendor/bootstrap-vue/src/utils/create-new-child-component.js +133 -0
  349. package/dist/vendor/bootstrap-vue/src/utils/css-escape.js +70 -0
  350. package/dist/vendor/bootstrap-vue/src/utils/dom.js +298 -0
  351. package/dist/vendor/bootstrap-vue/src/utils/element-to-vue-instance-registry.js +28 -0
  352. package/dist/vendor/bootstrap-vue/src/utils/env.js +16 -0
  353. package/dist/vendor/bootstrap-vue/src/utils/events.js +78 -0
  354. package/dist/vendor/bootstrap-vue/src/utils/get-event-root.js +5 -0
  355. package/dist/vendor/bootstrap-vue/src/utils/get-instance-from-directive.js +3 -0
  356. package/dist/vendor/bootstrap-vue/src/utils/get-scope-id.js +9 -0
  357. package/dist/vendor/bootstrap-vue/src/utils/get.js +63 -0
  358. package/dist/vendor/bootstrap-vue/src/utils/html.js +16 -0
  359. package/dist/vendor/bootstrap-vue/src/utils/identity.js +3 -0
  360. package/dist/vendor/bootstrap-vue/src/utils/inspect.js +35 -0
  361. package/dist/vendor/bootstrap-vue/src/utils/locale.js +18 -0
  362. package/dist/vendor/bootstrap-vue/src/utils/loose-equal.js +59 -0
  363. package/dist/vendor/bootstrap-vue/src/utils/loose-index-of.js +13 -0
  364. package/dist/vendor/bootstrap-vue/src/utils/math.js +9 -0
  365. package/dist/vendor/bootstrap-vue/src/utils/memoize.js +14 -0
  366. package/dist/vendor/bootstrap-vue/src/utils/model.js +33 -0
  367. package/dist/vendor/bootstrap-vue/src/utils/noop.js +3 -0
  368. package/dist/vendor/bootstrap-vue/src/utils/normalize-slot.js +51 -0
  369. package/dist/vendor/bootstrap-vue/src/utils/number.js +23 -0
  370. package/dist/vendor/bootstrap-vue/src/utils/object.js +72 -0
  371. package/dist/vendor/bootstrap-vue/src/utils/observe-dom.js +76 -0
  372. package/dist/vendor/bootstrap-vue/src/utils/on-instance-destroy.js +22 -0
  373. package/dist/vendor/bootstrap-vue/src/utils/plugins.js +124 -0
  374. package/dist/vendor/bootstrap-vue/src/utils/props.js +67 -0
  375. package/dist/vendor/bootstrap-vue/src/utils/router.js +150 -0
  376. package/dist/vendor/bootstrap-vue/src/utils/safe-vue-instance.js +14 -0
  377. package/dist/vendor/bootstrap-vue/src/utils/stable-sort.js +28 -0
  378. package/dist/vendor/bootstrap-vue/src/utils/string.js +47 -0
  379. package/dist/vendor/bootstrap-vue/src/utils/stringify-object-values.js +31 -0
  380. package/dist/vendor/bootstrap-vue/src/utils/warn.js +45 -0
  381. package/dist/vendor/bootstrap-vue/src/vue.js +55 -0
  382. package/package.json +4 -3
  383. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +2 -2
  384. package/src/vendor/bootstrap-vue/src/components/form-group/form-group.js +2 -2
  385. package/src/vendor/bootstrap-vue/src/components/layout/col.js +2 -2
  386. package/src/vendor/bootstrap-vue/src/components/modal/modal.js +2 -2
  387. package/src/vendor/bootstrap-vue/src/components/tabs/tabs.js +2 -2
  388. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +8 -9
  389. package/src/vendor/bootstrap-vue/src/mixins/listen-on-document.js +1 -2
  390. package/src/vendor/bootstrap-vue/src/mixins/listen-on-root.js +1 -2
  391. package/src/vendor/bootstrap-vue/src/mixins/listen-on-window.js +1 -2
  392. package/src/vendor/bootstrap-vue/src/utils/array.js +0 -1
  393. package/src/vendor/bootstrap-vue/src/utils/locale.js +1 -2
@@ -0,0 +1,143 @@
1
+ import { extend } from '../../vue';
2
+ import { NAME_FORM_SELECT } from '../../constants/components';
3
+ import { EVENT_NAME_CHANGE } from '../../constants/events';
4
+ import { PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER } from '../../constants/props';
5
+ import { SLOT_NAME_FIRST } from '../../constants/slots';
6
+ import { from } from '../../utils/array';
7
+ import { attemptFocus, attemptBlur } from '../../utils/dom';
8
+ import { htmlOrText } from '../../utils/html';
9
+ import { isArray } from '../../utils/inspect';
10
+ import { sortKeys } from '../../utils/object';
11
+ import { makeProp } from '../../utils/props';
12
+ import { props as props$3, formControlMixin } from '../../mixins/form-control';
13
+ import { props as props$4, formCustomMixin } from '../../mixins/form-custom';
14
+ import { props as props$5, formSizeMixin } from '../../mixins/form-size';
15
+ import { props as props$6, formStateMixin } from '../../mixins/form-state';
16
+ import { props as props$1, idMixin } from '../../mixins/id';
17
+ import { props as props$2, modelMixin, MODEL_PROP_NAME, MODEL_EVENT_NAME } from '../../mixins/model';
18
+ import { normalizeSlotMixin } from '../../mixins/normalize-slot';
19
+ import { optionsMixin } from './helpers/mixin-options';
20
+ import { BFormSelectOption } from './form-select-option';
21
+ import { BFormSelectOptionGroup } from './form-select-option-group';
22
+
23
+ // --- Props ---
24
+
25
+ const props = sortKeys({
26
+ ...props$1,
27
+ ...props$2,
28
+ ...props$3,
29
+ ...props$4,
30
+ ...props$5,
31
+ ...props$6,
32
+ ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),
33
+ multiple: makeProp(PROP_TYPE_BOOLEAN, false),
34
+ // Browsers default size to `0`, which shows 4 rows in most browsers in multiple mode
35
+ // Size of `1` can bork out Firefox
36
+ selectSize: makeProp(PROP_TYPE_NUMBER, 0)
37
+ });
38
+
39
+ // --- Main component ---
40
+
41
+ // @vue/component
42
+ const BFormSelect = /*#__PURE__*/extend({
43
+ name: NAME_FORM_SELECT,
44
+ mixins: [idMixin, modelMixin, formControlMixin, formSizeMixin, formStateMixin, formCustomMixin, optionsMixin, normalizeSlotMixin],
45
+ props,
46
+ data() {
47
+ return {
48
+ localValue: this[MODEL_PROP_NAME]
49
+ };
50
+ },
51
+ computed: {
52
+ computedSelectSize() {
53
+ // Custom selects with a size of zero causes the arrows to be hidden,
54
+ // so dont render the size attribute in this case
55
+ return !this.plain && this.selectSize === 0 ? null : this.selectSize;
56
+ },
57
+ inputClass() {
58
+ return [this.plain ? 'form-control' : 'custom-select', this.size && this.plain ? `form-control-${this.size}` : null, this.size && !this.plain ? `custom-select-${this.size}` : null, this.stateClass];
59
+ }
60
+ },
61
+ watch: {
62
+ value(newValue) {
63
+ this.localValue = newValue;
64
+ },
65
+ localValue() {
66
+ this.$emit(MODEL_EVENT_NAME, this.localValue);
67
+ }
68
+ },
69
+ methods: {
70
+ focus() {
71
+ attemptFocus(this.$refs.input);
72
+ },
73
+ blur() {
74
+ attemptBlur(this.$refs.input);
75
+ },
76
+ onChange(event) {
77
+ const {
78
+ target
79
+ } = event;
80
+ const selectedValue = from(target.options).filter(o => o.selected).map(o => '_value' in o ? o._value : o.value);
81
+ this.localValue = target.multiple ? selectedValue : selectedValue[0];
82
+ this.$nextTick(() => {
83
+ this.$emit(EVENT_NAME_CHANGE, this.localValue);
84
+ });
85
+ }
86
+ },
87
+ render(h) {
88
+ const {
89
+ name,
90
+ disabled,
91
+ required,
92
+ computedSelectSize: size,
93
+ localValue: value
94
+ } = this;
95
+ const $options = this.formOptions.map((option, index) => {
96
+ const {
97
+ value,
98
+ label,
99
+ options,
100
+ disabled
101
+ } = option;
102
+ const key = `option_${index}`;
103
+ return isArray(options) ? h(BFormSelectOptionGroup, {
104
+ props: {
105
+ label,
106
+ options
107
+ },
108
+ key
109
+ }) : h(BFormSelectOption, {
110
+ props: {
111
+ value,
112
+ disabled
113
+ },
114
+ domProps: htmlOrText(option.html, option.text),
115
+ key
116
+ });
117
+ });
118
+ return h('select', {
119
+ class: this.inputClass,
120
+ attrs: {
121
+ id: this.safeId(),
122
+ name,
123
+ form: this.form || null,
124
+ multiple: this.multiple || null,
125
+ size,
126
+ disabled,
127
+ required,
128
+ 'aria-required': required ? 'true' : null,
129
+ 'aria-invalid': this.computedAriaInvalid
130
+ },
131
+ on: {
132
+ change: this.onChange
133
+ },
134
+ directives: [{
135
+ name: 'model',
136
+ value
137
+ }],
138
+ ref: 'input'
139
+ }, [this.normalizeSlot(SLOT_NAME_FIRST), $options, this.normalizeSlot()]);
140
+ }
141
+ });
142
+
143
+ export { BFormSelect, props };
@@ -0,0 +1,56 @@
1
+ import { extend } from '../../../vue';
2
+ import { PROP_TYPE_STRING } from '../../../constants/props';
3
+ import { get } from '../../../utils/get';
4
+ import { isPlainObject, isNull, isUndefined } from '../../../utils/inspect';
5
+ import { sortKeys } from '../../../utils/object';
6
+ import { makeProp } from '../../../utils/props';
7
+ import { props as props$1, formOptionsMixin } from '../../../mixins/form-options';
8
+
9
+ // --- Props ---
10
+
11
+ const props = sortKeys({
12
+ ...props$1,
13
+ labelField: makeProp(PROP_TYPE_STRING, 'label'),
14
+ optionsField: makeProp(PROP_TYPE_STRING, 'options')
15
+ });
16
+
17
+ // --- Mixin ---
18
+
19
+ // @vue/component
20
+ const optionsMixin = extend({
21
+ mixins: [formOptionsMixin],
22
+ props,
23
+ methods: {
24
+ normalizeOption(option) {
25
+ let key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
26
+ // When the option is an object, normalize it
27
+ if (isPlainObject(option)) {
28
+ const value = get(option, this.valueField);
29
+ const text = get(option, this.textField);
30
+ const options = get(option, this.optionsField, null);
31
+ // When it has options, create an `<optgroup>` object
32
+ if (!isNull(options)) {
33
+ return {
34
+ label: String(get(option, this.labelField) || text),
35
+ options: this.normalizeOptions(options)
36
+ };
37
+ }
38
+ // Otherwise create an `<option>` object
39
+ return {
40
+ value: isUndefined(value) ? key || text : value,
41
+ text: String(isUndefined(text) ? key : text),
42
+ html: get(option, this.htmlField),
43
+ disabled: Boolean(get(option, this.disabledField))
44
+ };
45
+ }
46
+ // Otherwise create an `<option>` object from the given value
47
+ return {
48
+ value: key || option,
49
+ text: String(option),
50
+ disabled: false
51
+ };
52
+ }
53
+ }
54
+ });
55
+
56
+ export { optionsMixin, props };
@@ -0,0 +1,3 @@
1
+ export { BFormSelect } from './form-select';
2
+ export { BFormSelectOption } from './form-select-option';
3
+ export { BFormSelectOptionGroup } from './form-select-option-group';
@@ -0,0 +1,217 @@
1
+ import { extend } from '../../vue';
2
+ import { NAME_FORM_TEXTAREA } from '../../constants/components';
3
+ import { PROP_TYPE_NUMBER_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';
4
+ import { requestAF, isVisible, getCS, getStyle, setStyle } from '../../utils/dom';
5
+ import { isNull } from '../../utils/inspect';
6
+ import { mathMax, mathMin, mathCeil } from '../../utils/math';
7
+ import { toInteger, toFloat } from '../../utils/number';
8
+ import { sortKeys } from '../../utils/object';
9
+ import { makeProp } from '../../utils/props';
10
+ import { props as props$2, formControlMixin } from '../../mixins/form-control';
11
+ import { formSelectionMixin } from '../../mixins/form-selection';
12
+ import { props as props$3, formSizeMixin } from '../../mixins/form-size';
13
+ import { props as props$4, formStateMixin } from '../../mixins/form-state';
14
+ import { props as props$5, formTextMixin } from '../../mixins/form-text';
15
+ import { formValidityMixin } from '../../mixins/form-validity';
16
+ import { props as props$1, idMixin } from '../../mixins/id';
17
+ import { listenOnRootMixin } from '../../mixins/listen-on-root';
18
+ import { listenersMixin } from '../../mixins/listeners';
19
+ import { VBVisible } from '../../directives/visible/visible';
20
+
21
+ // --- Props ---
22
+
23
+ const props = sortKeys({
24
+ ...props$1,
25
+ ...props$2,
26
+ ...props$3,
27
+ ...props$4,
28
+ ...props$5,
29
+ maxRows: makeProp(PROP_TYPE_NUMBER_STRING),
30
+ // When in auto resize mode, disable shrinking to content height
31
+ noAutoShrink: makeProp(PROP_TYPE_BOOLEAN, false),
32
+ // Disable the resize handle of textarea
33
+ noResize: makeProp(PROP_TYPE_BOOLEAN, false),
34
+ rows: makeProp(PROP_TYPE_NUMBER_STRING, 2),
35
+ // 'soft', 'hard' or 'off'
36
+ // Browser default is 'soft'
37
+ wrap: makeProp(PROP_TYPE_STRING, 'soft')
38
+ });
39
+
40
+ // --- Main component ---
41
+
42
+ // @vue/component
43
+ const BFormTextarea = /*#__PURE__*/extend({
44
+ name: NAME_FORM_TEXTAREA,
45
+ directives: {
46
+ 'b-visible': VBVisible
47
+ },
48
+ // Mixin order is important!
49
+ mixins: [listenersMixin, idMixin, listenOnRootMixin, formControlMixin, formSizeMixin, formStateMixin, formTextMixin, formSelectionMixin, formValidityMixin],
50
+ props,
51
+ data() {
52
+ return {
53
+ heightInPx: null
54
+ };
55
+ },
56
+ computed: {
57
+ type() {
58
+ return null;
59
+ },
60
+ computedStyle() {
61
+ const styles = {
62
+ // Setting `noResize` to true will disable the ability for the user to
63
+ // manually resize the textarea. We also disable when in auto height mode
64
+ resize: !this.computedRows || this.noResize ? 'none' : null
65
+ };
66
+ if (!this.computedRows) {
67
+ // Conditionally set the computed CSS height when auto rows/height is enabled
68
+ // We avoid setting the style to `null`, which can override user manual resize handle
69
+ styles.height = this.heightInPx;
70
+ // We always add a vertical scrollbar to the textarea when auto-height is
71
+ // enabled so that the computed height calculation returns a stable value
72
+ styles.overflowY = 'scroll';
73
+ }
74
+ return styles;
75
+ },
76
+ computedMinRows() {
77
+ // Ensure rows is at least 2 and positive (2 is the native textarea value)
78
+ // A value of 1 can cause issues in some browsers, and most browsers
79
+ // only support 2 as the smallest value
80
+ return mathMax(toInteger(this.rows, 2), 2);
81
+ },
82
+ computedMaxRows() {
83
+ return mathMax(this.computedMinRows, toInteger(this.maxRows, 0));
84
+ },
85
+ computedRows() {
86
+ // This is used to set the attribute 'rows' on the textarea
87
+ // If auto-height is enabled, then we return `null` as we use CSS to control height
88
+ return this.computedMinRows === this.computedMaxRows ? this.computedMinRows : null;
89
+ },
90
+ computedAttrs() {
91
+ const {
92
+ disabled,
93
+ required
94
+ } = this;
95
+ return {
96
+ id: this.safeId(),
97
+ name: this.name || null,
98
+ form: this.form || null,
99
+ disabled,
100
+ placeholder: this.placeholder || null,
101
+ required,
102
+ autocomplete: this.autocomplete || null,
103
+ readonly: this.readonly || this.plaintext,
104
+ rows: this.computedRows,
105
+ wrap: this.wrap || null,
106
+ 'aria-required': this.required ? 'true' : null,
107
+ 'aria-invalid': this.computedAriaInvalid
108
+ };
109
+ },
110
+ computedListeners() {
111
+ return {
112
+ ...this.bvListeners,
113
+ input: this.onInput,
114
+ change: this.onChange,
115
+ blur: this.onBlur
116
+ };
117
+ }
118
+ },
119
+ watch: {
120
+ localValue() {
121
+ this.setHeight();
122
+ }
123
+ },
124
+ mounted() {
125
+ this.setHeight();
126
+ },
127
+ methods: {
128
+ // Called by intersection observer directive
129
+ /* istanbul ignore next */
130
+ visibleCallback(visible) {
131
+ if (visible) {
132
+ // We use a `$nextTick()` here just to make sure any
133
+ // transitions or portalling have completed
134
+ this.$nextTick(this.setHeight);
135
+ }
136
+ },
137
+ setHeight() {
138
+ this.$nextTick(() => {
139
+ requestAF(() => {
140
+ this.heightInPx = this.computeHeight();
141
+ });
142
+ });
143
+ },
144
+ /* istanbul ignore next: can't test getComputedStyle in JSDOM */
145
+ computeHeight() {
146
+ if (this.$isServer || !isNull(this.computedRows)) {
147
+ return null;
148
+ }
149
+ const el = this.$el;
150
+
151
+ // Element must be visible (not hidden) and in document
152
+ // Must be checked after above checks
153
+ if (!isVisible(el)) {
154
+ return null;
155
+ }
156
+
157
+ // Get current computed styles
158
+ const computedStyle = getCS(el);
159
+ // Height of one line of text in px
160
+ const lineHeight = toFloat(computedStyle.lineHeight, 1);
161
+ // Calculate height of border and padding
162
+ const border = toFloat(computedStyle.borderTopWidth, 0) + toFloat(computedStyle.borderBottomWidth, 0);
163
+ const padding = toFloat(computedStyle.paddingTop, 0) + toFloat(computedStyle.paddingBottom, 0);
164
+ // Calculate offset
165
+ const offset = border + padding;
166
+ // Minimum height for min rows (which must be 2 rows or greater for cross-browser support)
167
+ const minHeight = lineHeight * this.computedMinRows + offset;
168
+
169
+ // Get the current style height (with `px` units)
170
+ const oldHeight = getStyle(el, 'height') || computedStyle.height;
171
+ // Probe scrollHeight by temporarily changing the height to `auto`
172
+ setStyle(el, 'height', 'auto');
173
+ const scrollHeight = el.scrollHeight;
174
+ // Place the original old height back on the element, just in case `computedProp`
175
+ // returns the same value as before
176
+ setStyle(el, 'height', oldHeight);
177
+
178
+ // Calculate content height in 'rows' (scrollHeight includes padding but not border)
179
+ const contentRows = mathMax((scrollHeight - padding) / lineHeight, 2);
180
+ // Calculate number of rows to display (limited within min/max rows)
181
+ const rows = mathMin(mathMax(contentRows, this.computedMinRows), this.computedMaxRows);
182
+ // Calculate the required height of the textarea including border and padding (in pixels)
183
+ const height = mathMax(mathCeil(rows * lineHeight + offset), minHeight);
184
+
185
+ // Computed height remains the larger of `oldHeight` and new `height`,
186
+ // when height is in `sticky` mode (prop `no-auto-shrink` is true)
187
+ if (this.noAutoShrink && toFloat(oldHeight, 0) > height) {
188
+ return oldHeight;
189
+ }
190
+
191
+ // Return the new computed CSS height in px units
192
+ return `${height}px`;
193
+ }
194
+ },
195
+ render(h) {
196
+ return h('textarea', {
197
+ class: this.computedClass,
198
+ style: this.computedStyle,
199
+ directives: [{
200
+ name: 'b-visible',
201
+ value: this.visibleCallback,
202
+ // If textarea is within 640px of viewport, consider it visible
203
+ modifiers: {
204
+ '640': true
205
+ }
206
+ }],
207
+ attrs: this.computedAttrs,
208
+ domProps: {
209
+ value: this.localValue
210
+ },
211
+ on: this.computedListeners,
212
+ ref: 'input'
213
+ });
214
+ }
215
+ });
216
+
217
+ export { BFormTextarea, props };
@@ -0,0 +1 @@
1
+ export { BFormTextarea } from './form-textarea';
@@ -0,0 +1,155 @@
1
+ import { mergeData } from '../../vue';
2
+ import { NAME_COL } from '../../constants/components';
3
+ import { PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';
4
+ import { RX_COL_CLASS } from '../../constants/regex';
5
+ import { getBreakpointsUpCached } from '../../utils/config';
6
+ import { identity } from '../../utils/identity';
7
+ import { isUndefinedOrNull } from '../../utils/inspect';
8
+ import { memoize } from '../../utils/memoize';
9
+ import { create, assign, keys, sortKeys } from '../../utils/object';
10
+ import { makeProp, suffixPropName } from '../../utils/props';
11
+ import { lowerCase } from '../../utils/string';
12
+
13
+ // --- Constants ---
14
+
15
+ const ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'];
16
+
17
+ // --- Helper methods ---
18
+
19
+ // Compute a breakpoint class name
20
+ const computeBreakpoint = (type, breakpoint, value) => {
21
+ let className = type;
22
+ if (isUndefinedOrNull(value) || value === false) {
23
+ return undefined;
24
+ }
25
+ if (breakpoint) {
26
+ className += `-${breakpoint}`;
27
+ }
28
+ // Handling the boolean style prop when accepting `[Boolean, String, Number]`
29
+ // means Vue will not convert `<b-col sm></b-col>` to `sm: true` for us
30
+ // Since the default is `false`, '' indicates the prop's presence
31
+ if (type === 'col' && (value === '' || value === true)) {
32
+ // .col-md
33
+ return lowerCase(className);
34
+ }
35
+ // .order-md-6
36
+ className += `-${value}`;
37
+ return lowerCase(className);
38
+ };
39
+
40
+ // Memoized function for better performance on generating class names
41
+ const computeBreakpointClass = memoize(computeBreakpoint);
42
+
43
+ // Cached copy of the breakpoint prop names
44
+ let breakpointPropMap = create(null);
45
+
46
+ // --- Props ---
47
+
48
+ // Prop generator for lazy generation of props
49
+ const generateProps = () => {
50
+ // Grab the breakpoints from the cached config (exclude the '' (xs) breakpoint)
51
+ const breakpoints = getBreakpointsUpCached().filter(identity);
52
+
53
+ // i.e. 'col-sm', 'col-md-6', 'col-lg-auto', ...
54
+ const breakpointCol = breakpoints.reduce((props, breakpoint) => {
55
+ props[breakpoint] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);
56
+ return props;
57
+ }, create(null));
58
+
59
+ // i.e. 'offset-md-1', 'offset-lg-12', ...
60
+ const breakpointOffset = breakpoints.reduce((props, breakpoint) => {
61
+ props[suffixPropName(breakpoint, 'offset')] = makeProp(PROP_TYPE_NUMBER_STRING);
62
+ return props;
63
+ }, create(null));
64
+
65
+ // i.e. 'order-md-1', 'order-lg-12', ...
66
+ const breakpointOrder = breakpoints.reduce((props, breakpoint) => {
67
+ props[suffixPropName(breakpoint, 'order')] = makeProp(PROP_TYPE_NUMBER_STRING);
68
+ return props;
69
+ }, create(null));
70
+
71
+ // For loop doesn't need to check `.hasOwnProperty()`
72
+ // when using an object created from `null`
73
+ breakpointPropMap = assign(create(null), {
74
+ col: keys(breakpointCol),
75
+ offset: keys(breakpointOffset),
76
+ order: keys(breakpointOrder)
77
+ });
78
+
79
+ // Return the generated props
80
+ return sortKeys({
81
+ ...breakpointCol,
82
+ ...breakpointOffset,
83
+ ...breakpointOrder,
84
+ // Flex alignment
85
+ alignSelf: makeProp(PROP_TYPE_STRING, null, value => {
86
+ return ALIGN_SELF_VALUES.includes(value);
87
+ }),
88
+ // Generic flexbox 'col' (xs)
89
+ col: makeProp(PROP_TYPE_BOOLEAN, false),
90
+ // i.e. 'col-1', 'col-2', 'col-auto', ...
91
+ cols: makeProp(PROP_TYPE_NUMBER_STRING),
92
+ offset: makeProp(PROP_TYPE_NUMBER_STRING),
93
+ order: makeProp(PROP_TYPE_NUMBER_STRING),
94
+ tag: makeProp(PROP_TYPE_STRING, 'div')
95
+ });
96
+ };
97
+
98
+ // --- Main component ---
99
+
100
+ // We do not use extend here as that would evaluate the props
101
+ // immediately, which we do not want to happen
102
+ // @vue/component
103
+ const BCol = {
104
+ name: NAME_COL,
105
+ functional: true,
106
+ get props() {
107
+ // Allow props to be lazy evaled on first access and
108
+ // then they become a non-getter afterwards.
109
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters
110
+ delete this.props;
111
+ // eslint-disable-next-line no-return-assign
112
+ return this.props = generateProps();
113
+ },
114
+ render(h, _ref) {
115
+ let {
116
+ props,
117
+ data,
118
+ children
119
+ } = _ref;
120
+ const {
121
+ cols,
122
+ offset,
123
+ order,
124
+ alignSelf
125
+ } = props;
126
+ const classList = [];
127
+ // Loop through `col`, `offset`, `order` breakpoint props
128
+ for (const type in breakpointPropMap) {
129
+ // Returns colSm, offset, offsetSm, orderMd, etc.
130
+ const keys = breakpointPropMap[type];
131
+ for (let i = 0; i < keys.length; i++) {
132
+ // computeBreakpoint(col, colSm => Sm, value=[String, Number, Boolean])
133
+ const c = computeBreakpointClass(type, keys[i].replace(type, ''), props[keys[i]]);
134
+ // If a class is returned, push it onto the array.
135
+ if (c) {
136
+ classList.push(c);
137
+ }
138
+ }
139
+ }
140
+ const hasColClasses = classList.some(className => RX_COL_CLASS.test(className));
141
+ classList.push({
142
+ // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.
143
+ col: props.col || !hasColClasses && !cols,
144
+ [`col-${cols}`]: cols,
145
+ [`offset-${offset}`]: offset,
146
+ [`order-${order}`]: order,
147
+ [`align-self-${alignSelf}`]: alignSelf
148
+ });
149
+ return h(props.tag, mergeData(data, {
150
+ class: classList
151
+ }), children);
152
+ }
153
+ };
154
+
155
+ export { BCol, generateProps };
@@ -0,0 +1,34 @@
1
+ import { extend, mergeData } from '../../vue';
2
+ import { NAME_FORM_ROW } from '../../constants/components';
3
+ import { PROP_TYPE_STRING } from '../../constants/props';
4
+
5
+ // --- Props ---
6
+
7
+ const props = {
8
+ tag: {
9
+ type: PROP_TYPE_STRING,
10
+ required: false,
11
+ default: 'div'
12
+ }
13
+ };
14
+
15
+ // --- Main component ---
16
+
17
+ // @vue/component
18
+ const BFormRow = /*#__PURE__*/extend({
19
+ name: NAME_FORM_ROW,
20
+ functional: true,
21
+ props,
22
+ render(h, _ref) {
23
+ let {
24
+ props,
25
+ data,
26
+ children
27
+ } = _ref;
28
+ return h(props.tag, mergeData(data, {
29
+ staticClass: 'form-row'
30
+ }), children);
31
+ }
32
+ });
33
+
34
+ export { BFormRow, props };
@@ -0,0 +1,2 @@
1
+ export { BCol } from './col';
2
+ export { BFormRow } from './form-row';
@@ -0,0 +1 @@
1
+ export { BLink } from './link';