@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,142 @@
1
+ import { BPopover } from '../../../vendor/bootstrap-vue/src/components/popover/popover';
2
+ import tooltipMixin from '../../mixins/tooltip_mixin';
3
+ import CloseButton from '../../shared_components/close_button/close_button';
4
+ import { popoverPlacements } from '../../../utils/constants';
5
+ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
6
+
7
+ const popoverRefName = 'bPopover';
8
+ var script = {
9
+ name: 'GlPopover',
10
+ components: {
11
+ BPopover,
12
+ CloseButton
13
+ },
14
+ mixins: [tooltipMixin(popoverRefName)],
15
+ inheritAttrs: false,
16
+ props: {
17
+ /**
18
+ * Additional CSS class(es) to apply to the popover.
19
+ */
20
+ cssClasses: {
21
+ type: [Array, String, Object],
22
+ required: false,
23
+ default: ''
24
+ },
25
+ /**
26
+ * Space-separated triggers for the popover.
27
+ *
28
+ * @values click, hover, focus, manual
29
+ */
30
+ triggers: {
31
+ type: String,
32
+ required: false,
33
+ default: 'hover focus'
34
+ },
35
+ /**
36
+ * Title text to display in the popover header.
37
+ */
38
+ title: {
39
+ type: String,
40
+ required: false,
41
+ default: ''
42
+ },
43
+ /**
44
+ * When true, displays a close button in the popover header.
45
+ */
46
+ showCloseButton: {
47
+ type: Boolean,
48
+ required: false,
49
+ default: false
50
+ },
51
+ /**
52
+ * Placement of the popover relative to the target element.
53
+ */
54
+ placement: {
55
+ type: String,
56
+ required: false,
57
+ default: popoverPlacements.top
58
+ },
59
+ /**
60
+ * Padding (in pixels) between the popover and the viewport boundary.
61
+ */
62
+ boundaryPadding: {
63
+ type: [Number, String],
64
+ required: false,
65
+ default: 5
66
+ }
67
+ },
68
+ computed: {
69
+ hasTitle() {
70
+ return this.$scopedSlots.title || this.title;
71
+ },
72
+ customClass() {
73
+ return ['gl-popover', this.hasTitle && 'has-title', this.showCloseButton && 'has-close-button', ...this.normalizedCssClasses(this.cssClasses)].filter(Boolean).join(' ');
74
+ },
75
+ shouldShowTitle() {
76
+ return this.hasTitle || this.showCloseButton;
77
+ }
78
+ },
79
+ methods: {
80
+ /**
81
+ * `cssClasses can be a string, an array, or an object. This method normalizes it to an array
82
+ */
83
+ normalizedCssClasses(cssClasses) {
84
+ if (Array.isArray(cssClasses)) {
85
+ return cssClasses;
86
+ }
87
+ if (typeof cssClasses === 'string') {
88
+ return cssClasses.trim() ? cssClasses.trim().split(/\s+/) : [];
89
+ }
90
+ if (cssClasses && typeof cssClasses === 'object') {
91
+ return Object.keys(cssClasses).filter(key => cssClasses[key]);
92
+ }
93
+ return [];
94
+ },
95
+ closePopover(e) {
96
+ this.$refs[popoverRefName].close();
97
+ /**
98
+ * Emitted when the close button is clicked (requires showCloseButton to be `true`).
99
+ */
100
+ this.$emit('close-button-clicked', e);
101
+ }
102
+ },
103
+ popoverRefName
104
+ };
105
+
106
+ /* script */
107
+ const __vue_script__ = script;
108
+
109
+ /* template */
110
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-popover',_vm._g(_vm._b({ref:_vm.$options.popoverRefName,attrs:{"custom-class":_vm.customClass,"triggers":_vm.triggers,"title":_vm.title,"placement":_vm.placement,"boundary-padding":_vm.boundaryPadding},scopedSlots:_vm._u([(_vm.shouldShowTitle)?{key:"title",fn:function(){return [_vm._t("title",function(){return [_vm._v("\n "+_vm._s(_vm.title)+"\n ")]}),_vm._v(" "),(_vm.showCloseButton)?_c('div',{staticClass:"-gl-mr-3 -gl-mt-2 gl-ml-3 gl-h-0"},[_c('close-button',{class:{ 'gl-float-right gl-mt-2': !_vm.hasTitle },attrs:{"data-testid":"close-button"},on:{"click":_vm.closePopover}})],1):_vm._e()]},proxy:true}:null,(_vm.$scopedSlots.default)?{key:"default",fn:function(){return [_vm._t("default")]},proxy:true}:null],null,true)},'b-popover',_vm.$attrs,false),_vm.$listeners))};
111
+ var __vue_staticRenderFns__ = [];
112
+
113
+ /* style */
114
+ const __vue_inject_styles__ = undefined;
115
+ /* scoped */
116
+ const __vue_scope_id__ = undefined;
117
+ /* module identifier */
118
+ const __vue_module_identifier__ = undefined;
119
+ /* functional template */
120
+ const __vue_is_functional_template__ = false;
121
+ /* style inject */
122
+
123
+ /* style inject SSR */
124
+
125
+ /* style inject shadow dom */
126
+
127
+
128
+
129
+ const __vue_component__ = /*#__PURE__*/__vue_normalize__(
130
+ { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
131
+ __vue_inject_styles__,
132
+ __vue_script__,
133
+ __vue_scope_id__,
134
+ __vue_is_functional_template__,
135
+ __vue_module_identifier__,
136
+ false,
137
+ undefined,
138
+ undefined,
139
+ undefined
140
+ );
141
+
142
+ export { __vue_component__ as default };
@@ -0,0 +1,117 @@
1
+ import { translate } from '../../../utils/i18n';
2
+ import { progressBarVariantOptions } from '../../../utils/constants';
3
+ import { toFloat } from '../../../utils/number_utils';
4
+ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
5
+
6
+ const backgroundClasses = {
7
+ [progressBarVariantOptions.primary]: 'gl-progress-bar-primary',
8
+ [progressBarVariantOptions.success]: 'gl-progress-bar-success',
9
+ [progressBarVariantOptions.danger]: 'gl-progress-bar-danger',
10
+ [progressBarVariantOptions.warning]: 'gl-progress-bar-warning'
11
+ };
12
+ var script = {
13
+ name: 'GlProgressBar',
14
+ props: {
15
+ /**
16
+ * Accessible label for the progress bar. Used for the aria-label attribute.
17
+ */
18
+ ariaLabel: {
19
+ type: String,
20
+ required: false,
21
+ default: translate('GlProgressBar.ariaLabel', 'Progress bar')
22
+ },
23
+ /**
24
+ * Current progress value. Should be between 0 and the max value.
25
+ */
26
+ value: {
27
+ type: [Number, String],
28
+ required: false,
29
+ default: 0
30
+ },
31
+ /**
32
+ * Visual variant of the progress bar.
33
+ */
34
+ variant: {
35
+ type: String,
36
+ required: false,
37
+ default: 'primary',
38
+ validator: value => Object.keys(progressBarVariantOptions).includes(value)
39
+ },
40
+ /**
41
+ * Maximum value for the progress bar. The value prop is calculated as a percentage of this.
42
+ */
43
+ max: {
44
+ type: [Number, String],
45
+ required: false,
46
+ default: 100
47
+ },
48
+ /**
49
+ * Custom height for the progress bar (e.g., '8px', '1rem').
50
+ */
51
+ height: {
52
+ type: String,
53
+ required: false,
54
+ default: null
55
+ }
56
+ },
57
+ computed: {
58
+ progressHeight() {
59
+ return {
60
+ height: this.height
61
+ };
62
+ },
63
+ computedValue() {
64
+ return toFloat(this.value, 0);
65
+ },
66
+ computedMax() {
67
+ const max = toFloat(this.max, 100);
68
+ return max > 0 ? max : 100;
69
+ },
70
+ progressBarStyles() {
71
+ return {
72
+ transform: `scaleX(${this.computedValue / this.computedMax})`
73
+ };
74
+ },
75
+ classes() {
76
+ return ['gl-progress', backgroundClasses[this.variant]];
77
+ }
78
+ }
79
+ };
80
+
81
+ /* script */
82
+ const __vue_script__ = script;
83
+
84
+ /* template */
85
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-progress-bar progress",style:(_vm.progressHeight)},[_c('div',{class:_vm.classes,style:(_vm.progressBarStyles),attrs:{"role":"progressbar","aria-label":_vm.ariaLabel,"aria-valuemin":"0","aria-valuemax":String(_vm.computedMax),"aria-valuenow":_vm.computedValue}})])};
86
+ var __vue_staticRenderFns__ = [];
87
+
88
+ /* style */
89
+ const __vue_inject_styles__ = undefined;
90
+ /* scoped */
91
+ const __vue_scope_id__ = undefined;
92
+ /* module identifier */
93
+ const __vue_module_identifier__ = undefined;
94
+ /* functional template */
95
+ const __vue_is_functional_template__ = false;
96
+ /* style inject */
97
+
98
+ /* style inject SSR */
99
+
100
+ /* style inject shadow dom */
101
+
102
+
103
+
104
+ const __vue_component__ = /*#__PURE__*/__vue_normalize__(
105
+ { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
106
+ __vue_inject_styles__,
107
+ __vue_script__,
108
+ __vue_scope_id__,
109
+ __vue_is_functional_template__,
110
+ __vue_module_identifier__,
111
+ false,
112
+ undefined,
113
+ undefined,
114
+ undefined
115
+ );
116
+
117
+ export { __vue_component__ as default };
@@ -0,0 +1,245 @@
1
+ import { GlTooltipDirective } from '../../../directives/tooltip/tooltip';
2
+ import GlClearIconButton from '../../shared_components/clear_icon_button/clear_icon_button';
3
+ import GlButton from '../button/button';
4
+ import GlDisclosureDropdown from '../new_dropdowns/disclosure/disclosure_dropdown';
5
+ import GlDisclosureDropdownItem from '../new_dropdowns/disclosure/disclosure_dropdown_item';
6
+ import GlFormInput from '../form/form_input/form_input';
7
+ import GlFormInputGroup from '../form/form_input_group/form_input_group';
8
+ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
9
+
10
+ var script = {
11
+ name: 'GlSearchBoxByClick',
12
+ components: {
13
+ GlClearIconButton,
14
+ GlButton,
15
+ GlFormInput,
16
+ GlDisclosureDropdown,
17
+ GlDisclosureDropdownItem,
18
+ GlFormInputGroup
19
+ },
20
+ directives: {
21
+ GlTooltip: GlTooltipDirective
22
+ },
23
+ props: {
24
+ /**
25
+ * If provided, used as value of search input
26
+ */
27
+ value: {
28
+ required: false,
29
+ default: '',
30
+ // SearchBoxByClick could serve as a container for complex fields (see GlFilteredSearch)
31
+ // so we should not force any specific type for value here
32
+ validator: () => true
33
+ },
34
+ /**
35
+ * If provided, used as history items for this component
36
+ */
37
+ historyItems: {
38
+ type: Array,
39
+ required: false,
40
+ default: null
41
+ },
42
+ /**
43
+ * If provided, used as a placeholder for this component
44
+ */
45
+ placeholder: {
46
+ type: String,
47
+ required: false,
48
+ default: 'Search'
49
+ },
50
+ clearable: {
51
+ type: Boolean,
52
+ required: false,
53
+ default: true
54
+ },
55
+ /**
56
+ * If provided and true, disables the input and controls
57
+ */
58
+ disabled: {
59
+ type: Boolean,
60
+ required: false,
61
+ default: false
62
+ },
63
+ /**
64
+ * i18n for recent searches title within history dropdown
65
+ */
66
+ recentSearchesHeader: {
67
+ type: String,
68
+ required: false,
69
+ default: 'Recent searches'
70
+ },
71
+ /**
72
+ * i18n for clear button title
73
+ */
74
+ clearButtonTitle: {
75
+ type: String,
76
+ required: false,
77
+ default: 'Clear'
78
+ },
79
+ /**
80
+ * i18n for close button title within history dropdown
81
+ */
82
+ closeButtonTitle: {
83
+ type: String,
84
+ required: false,
85
+ default: 'Close'
86
+ },
87
+ /**
88
+ * i18n for recent searches clear text
89
+ */
90
+ clearRecentSearchesText: {
91
+ type: String,
92
+ required: false,
93
+ default: 'Clear recent searches'
94
+ },
95
+ noRecentSearchesText: {
96
+ type: String,
97
+ required: false,
98
+ default: "You don't have any recent searches"
99
+ },
100
+ /**
101
+ * Container for tooltip. Valid values: DOM node, selector string or `false` for default
102
+ */
103
+ tooltipContainer: {
104
+ required: false,
105
+ default: false,
106
+ validator: value => value === false || typeof value === 'string' || value instanceof HTMLElement
107
+ },
108
+ /**
109
+ * HTML attributes to add to the search button
110
+ */
111
+ searchButtonAttributes: {
112
+ type: Object,
113
+ required: false,
114
+ default: () => ({})
115
+ },
116
+ /**
117
+ * Display search button to perform a search.
118
+ *
119
+ * Note: it is required to ensure accessibility for WCAG 2.1 3.2.2: On Input.
120
+ * If the search button is hidden, a separate button should be provided for the same context.
121
+ */
122
+ showSearchButton: {
123
+ type: Boolean,
124
+ required: false,
125
+ default: true
126
+ },
127
+ /**
128
+ * HTML attributes to apply to the wrapper element.
129
+ */
130
+ wrapperAttributes: {
131
+ type: Object,
132
+ required: false,
133
+ default: () => ({})
134
+ }
135
+ },
136
+ data() {
137
+ return {
138
+ currentValue: null,
139
+ isFocused: false
140
+ };
141
+ },
142
+ computed: {
143
+ inputAttributes() {
144
+ const attributes = {
145
+ type: 'search',
146
+ placeholder: this.placeholder,
147
+ ...this.$attrs
148
+ };
149
+ if (!attributes['aria-label']) {
150
+ attributes['aria-label'] = attributes.placeholder;
151
+ }
152
+ return attributes;
153
+ },
154
+ hasValue() {
155
+ return Boolean(this.currentValue);
156
+ }
157
+ },
158
+ watch: {
159
+ value: {
160
+ handler(newValue) {
161
+ this.currentValue = newValue;
162
+ },
163
+ immediate: true
164
+ },
165
+ currentValue(newValue) {
166
+ if (newValue === this.value) return;
167
+ this.$emit('input', newValue);
168
+ }
169
+ },
170
+ methods: {
171
+ search(value) {
172
+ /**
173
+ * Emitted when search is submitted
174
+ * @property {*} value Search value
175
+ */
176
+ this.$emit('submit', value);
177
+ },
178
+ selectHistoryItem(item) {
179
+ this.currentValue = item;
180
+
181
+ /**
182
+ * Emitted when item from history is selected
183
+ * @property {*} item History item
184
+ */
185
+ this.$emit('history-item-selected', item);
186
+ setTimeout(() => {
187
+ document.activeElement.blur();
188
+ });
189
+ },
190
+ clearInput() {
191
+ this.currentValue = '';
192
+ /**
193
+ * Emitted when search is cleared
194
+ */
195
+ this.$emit('clear');
196
+ if (this.$refs.input) {
197
+ this.$refs.input.$el.focus();
198
+ }
199
+ },
200
+ emitClearHistory() {
201
+ /**
202
+ * Emitted when clear history button is clicked
203
+ */
204
+ this.$emit('clear-history');
205
+ }
206
+ }
207
+ };
208
+
209
+ /* script */
210
+ const __vue_script__ = script;
211
+
212
+ /* template */
213
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-form-input-group',{staticClass:"gl-search-box-by-click",class:{ 'gl-search-box-by-click-with-search-button': _vm.showSearchButton },attrs:{"wrapper-attributes":_vm.wrapperAttributes},scopedSlots:_vm._u([(_vm.historyItems)?{key:"prepend",fn:function(){return [_c('gl-disclosure-dropdown',{ref:"historyDropdown",staticClass:"gl-search-box-by-click-history",attrs:{"icon":"history","category":"tertiary","toggle-text":"Toggle search history","text-sr-only":"","fluid-width":"","disabled":_vm.disabled,"aria-label":"Recent searches history"},scopedSlots:_vm._u([{key:"header",fn:function(){return [_c('div',{staticClass:"gl-search-box-by-click-history-header gl-flex gl-min-h-8 gl-grow gl-items-center gl-border-b-1 gl-border-b-dropdown-divider !gl-p-4 gl-text-sm gl-font-bold gl-border-b-solid"},[_vm._v("\n "+_vm._s(_vm.recentSearchesHeader)+"\n ")])]},proxy:true},(_vm.historyItems.length)?{key:"footer",fn:function(){return [_c('div',{staticClass:"gl-flex gl-flex-col gl-border-t-1 gl-border-t-dropdown-divider gl-p-2 gl-border-t-solid"},[_c('gl-button',{ref:"clearHistory",staticClass:"!gl-justify-start",attrs:{"category":"tertiary"},on:{"click":_vm.emitClearHistory}},[_vm._v("\n "+_vm._s(_vm.clearRecentSearchesText)+"\n ")])],1)]},proxy:true}:null],null,true)},[_vm._v(" "),(_vm.historyItems.length)?_vm._l((_vm.historyItems),function(item,idx){return _c('gl-disclosure-dropdown-item',{key:idx,staticClass:"gl-search-box-by-click-history-item",attrs:{"aria-label":("Select recent search: " + (item || 'empty search'))},on:{"action":function($event){return _vm.selectHistoryItem(item)}},scopedSlots:_vm._u([{key:"list-item",fn:function(){return [_vm._t("history-item",function(){return [_vm._v(_vm._s(item))]},{"historyItem":item})]},proxy:true}],null,true)})}):_c('gl-disclosure-dropdown-item',{staticClass:"gl-px-4 gl-py-2 gl-text-sm gl-text-subtle",attrs:{"aria-label":("Select recent search: " + _vm.noRecentSearchesText)}},[_vm._v("\n "+_vm._s(_vm.noRecentSearchesText)+"\n ")])],2)]},proxy:true}:null,(_vm.showSearchButton)?{key:"append",fn:function(){return [_c('gl-button',_vm._b({ref:"searchButton",staticClass:"gl-search-box-by-click-search-button",attrs:{"category":"tertiary","icon":"search","disabled":_vm.disabled,"aria-label":"Search","data-testid":"search-button"},on:{"click":function($event){return _vm.search(_vm.currentValue)}}},'gl-button',_vm.searchButtonAttributes,false))]},proxy:true}:null],null,true)},[_vm._v(" "),_vm._t("input",function(){return [_c('gl-form-input',_vm._b({ref:"input",staticClass:"gl-search-box-by-click-input",class:{ '!gl-rounded-control': !_vm.showSearchButton },attrs:{"disabled":_vm.disabled},on:{"focus":function($event){_vm.isFocused = true;},"blur":function($event){_vm.isFocused = false;}},nativeOn:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.search(_vm.currentValue)}},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v;},expression:"currentValue"}},'gl-form-input',_vm.inputAttributes,false))]}),_vm._v(" "),(_vm.clearable && _vm.hasValue && !_vm.disabled)?_c('gl-clear-icon-button',{staticClass:"gl-search-box-by-click-icon-button gl-search-box-by-click-clear-button gl-clear-icon-button",attrs:{"title":_vm.clearButtonTitle,"tooltip-container":_vm.tooltipContainer,"data-testid":"filtered-search-clear-button"},on:{"click":_vm.clearInput}}):_vm._e()],2)};
214
+ var __vue_staticRenderFns__ = [];
215
+
216
+ /* style */
217
+ const __vue_inject_styles__ = undefined;
218
+ /* scoped */
219
+ const __vue_scope_id__ = undefined;
220
+ /* module identifier */
221
+ const __vue_module_identifier__ = undefined;
222
+ /* functional template */
223
+ const __vue_is_functional_template__ = false;
224
+ /* style inject */
225
+
226
+ /* style inject SSR */
227
+
228
+ /* style inject shadow dom */
229
+
230
+
231
+
232
+ const __vue_component__ = /*#__PURE__*/__vue_normalize__(
233
+ { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
234
+ __vue_inject_styles__,
235
+ __vue_script__,
236
+ __vue_scope_id__,
237
+ __vue_is_functional_template__,
238
+ __vue_module_identifier__,
239
+ false,
240
+ undefined,
241
+ undefined,
242
+ undefined
243
+ );
244
+
245
+ export { __vue_component__ as default };
@@ -0,0 +1,187 @@
1
+ import GlClearIconButton from '../../shared_components/clear_icon_button/clear_icon_button';
2
+ import GlFormInput from '../form/form_input/form_input';
3
+ import GlIcon from '../icon/icon';
4
+ import GlLoadingIcon from '../loading_icon/loading_icon';
5
+ import { translate } from '../../../utils/i18n';
6
+ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
7
+
8
+ var script = {
9
+ name: 'GlSearchBoxByType',
10
+ components: {
11
+ GlClearIconButton,
12
+ GlIcon,
13
+ GlFormInput,
14
+ GlLoadingIcon
15
+ },
16
+ inheritAttrs: false,
17
+ model: {
18
+ prop: 'value',
19
+ event: 'input'
20
+ },
21
+ props: {
22
+ /**
23
+ * If provided, used as value of search input
24
+ */
25
+ value: {
26
+ type: String,
27
+ required: false,
28
+ default: ''
29
+ },
30
+ /**
31
+ * Whether to render the search box without borders
32
+ */
33
+ borderless: {
34
+ type: Boolean,
35
+ required: false,
36
+ default: false
37
+ },
38
+ /**
39
+ * Title text for the clear button
40
+ */
41
+ clearButtonTitle: {
42
+ type: String,
43
+ required: false,
44
+ default: () => translate('GlSearchBoxByType.clearButtonTitle', 'Clear')
45
+ },
46
+ /**
47
+ * If provided and true, disables the input and controls
48
+ */
49
+ disabled: {
50
+ type: Boolean,
51
+ required: false,
52
+ default: false
53
+ },
54
+ /**
55
+ * Puts search box into loading state, rendering spinner
56
+ */
57
+ isLoading: {
58
+ type: Boolean,
59
+ required: false,
60
+ default: false
61
+ },
62
+ /**
63
+ * Container for tooltip. Valid values: DOM node, selector string or `false` for default
64
+ */
65
+ tooltipContainer: {
66
+ required: false,
67
+ default: false,
68
+ validator: value => value === false || typeof value === 'string' || value instanceof HTMLElement
69
+ }
70
+ },
71
+ computed: {
72
+ inputAttributes() {
73
+ const attributes = {
74
+ type: 'search',
75
+ placeholder: translate('GlSearchBoxByType.input.placeholder', 'Search'),
76
+ ...this.$attrs
77
+ };
78
+ if (!attributes['aria-label']) {
79
+ attributes['aria-label'] = attributes.placeholder;
80
+ }
81
+ return attributes;
82
+ },
83
+ hasValue() {
84
+ return Boolean(this.value.length);
85
+ },
86
+ inputListeners() {
87
+ return {
88
+ ...this.$listeners,
89
+ input: this.onInput,
90
+ focusin: this.onFocusin,
91
+ focusout: this.onFocusout
92
+ };
93
+ },
94
+ showClearButton() {
95
+ return this.hasValue && !this.disabled;
96
+ }
97
+ },
98
+ methods: {
99
+ isInputOrClearButton(element) {
100
+ var _this$$refs$input, _this$$refs$clearButt;
101
+ return element === ((_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 ? void 0 : _this$$refs$input.$el) || element === ((_this$$refs$clearButt = this.$refs.clearButton) === null || _this$$refs$clearButt === void 0 ? void 0 : _this$$refs$clearButt.$el);
102
+ },
103
+ clearInput() {
104
+ this.onInput('');
105
+ this.focusInput();
106
+ },
107
+ focusInput() {
108
+ this.$refs.input.$el.focus();
109
+ },
110
+ onInput(value) {
111
+ /**
112
+ * Emitted when the input value changes or gets cleared.
113
+ * @event input
114
+ */
115
+ this.$emit('input', value);
116
+ },
117
+ onFocusout(event) {
118
+ const {
119
+ relatedTarget
120
+ } = event;
121
+ if (this.isInputOrClearButton(relatedTarget)) {
122
+ return;
123
+ }
124
+
125
+ /**
126
+ * Emitted when focus leaves the search box (input and clear button).
127
+ * @event focusout
128
+ */
129
+ this.$emit('focusout', event);
130
+ },
131
+ onFocusin(event) {
132
+ const {
133
+ relatedTarget
134
+ } = event;
135
+ if (this.isInputOrClearButton(relatedTarget)) {
136
+ return;
137
+ }
138
+
139
+ /**
140
+ * Emitted when focus enters the search box (input or clear button).
141
+ * @event focusin
142
+ */
143
+ this.$emit('focusin', event);
144
+ }
145
+ }
146
+ };
147
+
148
+ /* script */
149
+ const __vue_script__ = script;
150
+
151
+ /* template */
152
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-search-box-by-type"},[_c('gl-icon',{staticClass:"gl-search-box-by-type-search-icon",attrs:{"name":"search","variant":"subtle"}}),_vm._v(" "),_c('gl-form-input',_vm._g(_vm._b({ref:"input",class:{
153
+ 'gl-search-box-by-type-input': !_vm.borderless,
154
+ 'gl-search-box-by-type-input-borderless': _vm.borderless,
155
+ },attrs:{"value":_vm.value,"disabled":_vm.disabled}},'gl-form-input',_vm.inputAttributes,false),_vm.inputListeners)),_vm._v(" "),(_vm.isLoading || _vm.showClearButton)?_c('div',{staticClass:"gl-search-box-by-type-right-icons"},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:"gl-search-box-by-type-loading-icon"}):_vm._e(),_vm._v(" "),(_vm.showClearButton)?_c('gl-clear-icon-button',{ref:"clearButton",staticClass:"gl-search-box-by-type-clear gl-clear-icon-button",attrs:{"title":_vm.clearButtonTitle,"tooltip-container":_vm.tooltipContainer},on:{"click":function($event){$event.stopPropagation();return _vm.clearInput.apply(null, arguments)},"focusin":_vm.onFocusin,"focusout":_vm.onFocusout}}):_vm._e()],1):_vm._e()],1)};
156
+ var __vue_staticRenderFns__ = [];
157
+
158
+ /* style */
159
+ const __vue_inject_styles__ = undefined;
160
+ /* scoped */
161
+ const __vue_scope_id__ = undefined;
162
+ /* module identifier */
163
+ const __vue_module_identifier__ = undefined;
164
+ /* functional template */
165
+ const __vue_is_functional_template__ = false;
166
+ /* style inject */
167
+
168
+ /* style inject SSR */
169
+
170
+ /* style inject shadow dom */
171
+
172
+
173
+
174
+ const __vue_component__ = /*#__PURE__*/__vue_normalize__(
175
+ { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
176
+ __vue_inject_styles__,
177
+ __vue_script__,
178
+ __vue_scope_id__,
179
+ __vue_is_functional_template__,
180
+ __vue_module_identifier__,
181
+ false,
182
+ undefined,
183
+ undefined,
184
+ undefined
185
+ );
186
+
187
+ export { __vue_component__ as default };