@gitlab/ui 131.3.0 → 131.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/package.json +4 -4
  2. package/src/components/utilities/truncate/truncate.scss +3 -1
  3. package/src/scss/mixins.scss +3 -1
  4. package/tailwind.defaults.js +10 -1
  5. package/dist/charts.js +0 -13
  6. package/dist/components/base/accordion/accordion.js +0 -69
  7. package/dist/components/base/accordion/accordion_item.js +0 -160
  8. package/dist/components/base/accordion/constants.js +0 -3
  9. package/dist/components/base/alert/alert.js +0 -263
  10. package/dist/components/base/animated_icon/animated_chevron_down_up_icon.js +0 -45
  11. package/dist/components/base/animated_icon/animated_chevron_lg_down_up_icon.js +0 -45
  12. package/dist/components/base/animated_icon/animated_chevron_lg_right_down_icon.js +0 -45
  13. package/dist/components/base/animated_icon/animated_chevron_right_down_icon.js +0 -45
  14. package/dist/components/base/animated_icon/animated_duo_chat_icon.js +0 -45
  15. package/dist/components/base/animated_icon/animated_loader_icon.js +0 -45
  16. package/dist/components/base/animated_icon/animated_notifications_icon.js +0 -45
  17. package/dist/components/base/animated_icon/animated_sidebar_icon.js +0 -45
  18. package/dist/components/base/animated_icon/animated_smile_icon.js +0 -45
  19. package/dist/components/base/animated_icon/animated_sort_icon.js +0 -45
  20. package/dist/components/base/animated_icon/animated_star_icon.js +0 -45
  21. package/dist/components/base/animated_icon/animated_todo_icon.js +0 -45
  22. package/dist/components/base/animated_icon/animated_upload_icon.js +0 -45
  23. package/dist/components/base/animated_icon/base_animated_icon.js +0 -77
  24. package/dist/components/base/attribute_list/attribute_list.js +0 -100
  25. package/dist/components/base/avatar/avatar.js +0 -175
  26. package/dist/components/base/avatar/utils.js +0 -17
  27. package/dist/components/base/avatar_labeled/avatar_labeled.js +0 -198
  28. package/dist/components/base/avatar_link/avatar_link.js +0 -47
  29. package/dist/components/base/avatars_inline/avatars_inline.js +0 -139
  30. package/dist/components/base/badge/badge.js +0 -197
  31. package/dist/components/base/banner/banner.js +0 -149
  32. package/dist/components/base/breadcrumb/breadcrumb.js +0 -282
  33. package/dist/components/base/breadcrumb/breadcrumb_item.js +0 -96
  34. package/dist/components/base/broadcast_message/broadcast_message.js +0 -113
  35. package/dist/components/base/broadcast_message/constants.js +0 -5
  36. package/dist/components/base/button/button.js +0 -419
  37. package/dist/components/base/button_group/button_group.js +0 -53
  38. package/dist/components/base/card/card.js +0 -69
  39. package/dist/components/base/collapse/collapse.js +0 -163
  40. package/dist/components/base/color_mode_toggle/color_mode_toggle.js +0 -92
  41. package/dist/components/base/datepicker/datepicker.js +0 -475
  42. package/dist/components/base/daterange_picker/daterange_picker.js +0 -394
  43. package/dist/components/base/drawer/drawer.js +0 -156
  44. package/dist/components/base/dropdown/dropdown.js +0 -330
  45. package/dist/components/base/dropdown/dropdown_divider.js +0 -48
  46. package/dist/components/base/dropdown/dropdown_form.js +0 -48
  47. package/dist/components/base/dropdown/dropdown_item.js +0 -175
  48. package/dist/components/base/dropdown/dropdown_section_header.js +0 -48
  49. package/dist/components/base/dropdown/dropdown_text.js +0 -48
  50. package/dist/components/base/filtered_search/common_story_options.js +0 -14
  51. package/dist/components/base/filtered_search/filtered_search.js +0 -428
  52. package/dist/components/base/filtered_search/filtered_search_suggestion.js +0 -95
  53. package/dist/components/base/filtered_search/filtered_search_suggestion_list.js +0 -139
  54. package/dist/components/base/filtered_search/filtered_search_term.js +0 -217
  55. package/dist/components/base/filtered_search/filtered_search_token.js +0 -383
  56. package/dist/components/base/filtered_search/filtered_search_token_segment.js +0 -444
  57. package/dist/components/base/filtered_search/filtered_search_utils.js +0 -241
  58. package/dist/components/base/form/form.js +0 -43
  59. package/dist/components/base/form/form_character_count/form_character_count.js +0 -107
  60. package/dist/components/base/form/form_checkbox/form_checkbox.js +0 -342
  61. package/dist/components/base/form/form_checkbox/form_checkbox_group.js +0 -186
  62. package/dist/components/base/form/form_combobox/constants.js +0 -55
  63. package/dist/components/base/form/form_combobox/form_combobox.js +0 -239
  64. package/dist/components/base/form/form_date/form_date.js +0 -143
  65. package/dist/components/base/form/form_fields/form_field_validator.js +0 -93
  66. package/dist/components/base/form/form_fields/form_fields.js +0 -289
  67. package/dist/components/base/form/form_fields/form_fields_loop.js +0 -75
  68. package/dist/components/base/form/form_fields/mappers.js +0 -13
  69. package/dist/components/base/form/form_fields/validators.js +0 -48
  70. package/dist/components/base/form/form_group/form_group.js +0 -119
  71. package/dist/components/base/form/form_input/form_input.js +0 -695
  72. package/dist/components/base/form/form_input_group/form_input_group.js +0 -120
  73. package/dist/components/base/form/form_input_group/form_input_group_mixin.js +0 -41
  74. package/dist/components/base/form/form_radio/form_radio.js +0 -259
  75. package/dist/components/base/form/form_radio_group/form_radio_group.js +0 -187
  76. package/dist/components/base/form/form_select/constants.js +0 -12
  77. package/dist/components/base/form/form_select/form_select.js +0 -96
  78. package/dist/components/base/form/form_textarea/form_textarea.js +0 -166
  79. package/dist/components/base/form/input_group_text/input_group_text.js +0 -43
  80. package/dist/components/base/icon/icon.js +0 -113
  81. package/dist/components/base/illustration/illustration.js +0 -80
  82. package/dist/components/base/infinite_scroll/infinite_scroll.js +0 -196
  83. package/dist/components/base/keyset_pagination/keyset_pagination.js +0 -152
  84. package/dist/components/base/label/label.js +0 -174
  85. package/dist/components/base/link/link.js +0 -332
  86. package/dist/components/base/loading_icon/loading_icon.js +0 -120
  87. package/dist/components/base/markdown/markdown.js +0 -50
  88. package/dist/components/base/modal/modal.js +0 -259
  89. package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +0 -716
  90. package/dist/components/base/new_dropdowns/base_dropdown/constants.js +0 -5
  91. package/dist/components/base/new_dropdowns/base_dropdown/dropdown_container.js +0 -32
  92. package/dist/components/base/new_dropdowns/constants.js +0 -24
  93. package/dist/components/base/new_dropdowns/disclosure/constants.js +0 -8
  94. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js +0 -400
  95. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +0 -112
  96. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +0 -196
  97. package/dist/components/base/new_dropdowns/disclosure/mock_data.js +0 -168
  98. package/dist/components/base/new_dropdowns/disclosure/utils.js +0 -84
  99. package/dist/components/base/new_dropdowns/listbox/listbox.js +0 -997
  100. package/dist/components/base/new_dropdowns/listbox/listbox_group.js +0 -58
  101. package/dist/components/base/new_dropdowns/listbox/listbox_item.js +0 -112
  102. package/dist/components/base/new_dropdowns/listbox/listbox_search_input.js +0 -94
  103. package/dist/components/base/new_dropdowns/listbox/mock_data.js +0 -131
  104. package/dist/components/base/new_dropdowns/listbox/utils.js +0 -33
  105. package/dist/components/base/pagination/pagination.js +0 -397
  106. package/dist/components/base/path/data.js +0 -34
  107. package/dist/components/base/path/path.js +0 -177
  108. package/dist/components/base/popover/popover.js +0 -142
  109. package/dist/components/base/progress_bar/progress_bar.js +0 -117
  110. package/dist/components/base/search_box_by_click/search_box_by_click.js +0 -245
  111. package/dist/components/base/search_box_by_type/search_box_by_type.js +0 -187
  112. package/dist/components/base/segmented_control/segmented_control.js +0 -73
  113. package/dist/components/base/skeleton_loader/skeleton_loader.js +0 -232
  114. package/dist/components/base/sorting/sorting.js +0 -180
  115. package/dist/components/base/table/constants.js +0 -5
  116. package/dist/components/base/table/table.js +0 -187
  117. package/dist/components/base/table_lite/table_lite.js +0 -80
  118. package/dist/components/base/tabs/constants.js +0 -3
  119. package/dist/components/base/tabs/tab/tab.js +0 -113
  120. package/dist/components/base/tabs/tabs/scrollable_tabs.js +0 -162
  121. package/dist/components/base/tabs/tabs/tabs.js +0 -223
  122. package/dist/components/base/toast/index.js +0 -66
  123. package/dist/components/base/toast/toast.js +0 -125
  124. package/dist/components/base/toast/toaster.js +0 -87
  125. package/dist/components/base/toggle/toggle.js +0 -178
  126. package/dist/components/base/token/token.js +0 -97
  127. package/dist/components/base/token_selector/helpers.js +0 -5
  128. package/dist/components/base/token_selector/token_container.js +0 -160
  129. package/dist/components/base/token_selector/token_selector.js +0 -454
  130. package/dist/components/base/token_selector/token_selector_dropdown.js +0 -223
  131. package/dist/components/base/tooltip/tooltip.js +0 -54
  132. package/dist/components/charts/area/area.js +0 -329
  133. package/dist/components/charts/bar/bar.js +0 -207
  134. package/dist/components/charts/chart/chart.js +0 -215
  135. package/dist/components/charts/column/column.js +0 -221
  136. package/dist/components/charts/discrete_scatter/discrete_scatter.js +0 -199
  137. package/dist/components/charts/gauge/gauge.js +0 -205
  138. package/dist/components/charts/heatmap/heatmap.js +0 -299
  139. package/dist/components/charts/heatmap/index.js +0 -2
  140. package/dist/components/charts/legend/legend.js +0 -245
  141. package/dist/components/charts/line/line.js +0 -340
  142. package/dist/components/charts/series_label/series_label.js +0 -101
  143. package/dist/components/charts/shared/tooltip/tooltip.js +0 -369
  144. package/dist/components/charts/shared/tooltip/tooltip_default_format/tooltip_default_format.js +0 -53
  145. package/dist/components/charts/single_stat/single_stat.js +0 -164
  146. package/dist/components/charts/sparkline/sparkline.js +0 -299
  147. package/dist/components/charts/stacked_column/stacked_column.js +0 -380
  148. package/dist/components/dashboards/dashboard_layout/dashboard_layout.js +0 -125
  149. package/dist/components/dashboards/dashboard_layout/grid_layout/grid_layout.js +0 -326
  150. package/dist/components/dashboards/dashboard_layout/validators.js +0 -14
  151. package/dist/components/dashboards/dashboard_panel/dashboard_panel.js +0 -236
  152. package/dist/components/dashboards/mock_data.js +0 -49
  153. package/dist/components/experimental/experiment_badge/constants.js +0 -4
  154. package/dist/components/experimental/experiment_badge/experiment_badge.js +0 -102
  155. package/dist/components/extended/multi_step_form_template/multi_step_form_template.js +0 -87
  156. package/dist/components/index.js +0 -107
  157. package/dist/components/mixins/button_mixin.js +0 -11
  158. package/dist/components/mixins/safe_link_mixin.js +0 -30
  159. package/dist/components/mixins/tooltip_mixin.js +0 -21
  160. package/dist/components/regions/dashboard_skeleton/dashboard_skeleton.js +0 -53
  161. package/dist/components/regions/empty_state/empty_state.js +0 -181
  162. package/dist/components/shared_components/clear_icon_button/clear_icon_button.js +0 -64
  163. package/dist/components/shared_components/clipboard_button/clipboard_button.js +0 -100
  164. package/dist/components/shared_components/close_button/close_button.js +0 -55
  165. package/dist/components/utilities/animated_number/animated_number.js +0 -131
  166. package/dist/components/utilities/friendly_wrap/friendly_wrap.js +0 -75
  167. package/dist/components/utilities/intersection_observer/intersection_observer.js +0 -88
  168. package/dist/components/utilities/intersperse/intersperse.js +0 -104
  169. package/dist/components/utilities/sprintf/sprintf.js +0 -171
  170. package/dist/components/utilities/truncate/constants.js +0 -8
  171. package/dist/components/utilities/truncate/truncate.js +0 -154
  172. package/dist/components/utilities/truncate_text/constants.js +0 -7
  173. package/dist/components/utilities/truncate_text/truncate_text.js +0 -146
  174. package/dist/config.js +0 -53
  175. package/dist/directives/hover_load/hover_load.js +0 -45
  176. package/dist/directives/index.js +0 -8
  177. package/dist/directives/modal.js +0 -1
  178. package/dist/directives/outside/outside.js +0 -149
  179. package/dist/directives/resize_observer/resize_observer.js +0 -58
  180. package/dist/directives/safe_html/constants.js +0 -6
  181. package/dist/directives/safe_html/safe_html.js +0 -39
  182. package/dist/directives/safe_link/mock_data.js +0 -10
  183. package/dist/directives/safe_link/safe_link.js +0 -67
  184. package/dist/directives/tooltip/container.js +0 -7
  185. package/dist/directives/tooltip/tooltip.js +0 -18
  186. package/dist/index.css +0 -7
  187. package/dist/index.css.map +0 -1
  188. package/dist/index.js +0 -2
  189. package/dist/tailwind.css +0 -2
  190. package/dist/tailwind.css.map +0 -1
  191. package/dist/tokens/build/js/tokens.dark.js +0 -1410
  192. package/dist/tokens/build/js/tokens.js +0 -1410
  193. package/dist/tokens/common_story_options.js +0 -29
  194. package/dist/tokens/tokens_story.js +0 -76
  195. package/dist/utils/breakpoints.js +0 -20
  196. package/dist/utils/charts/config.js +0 -616
  197. package/dist/utils/charts/constants.js +0 -69
  198. package/dist/utils/charts/mock_data.js +0 -191
  199. package/dist/utils/charts/story_config.js +0 -24
  200. package/dist/utils/charts/theme.js +0 -200
  201. package/dist/utils/charts/utils.js +0 -54
  202. package/dist/utils/constants.js +0 -333
  203. package/dist/utils/data_utils.js +0 -19
  204. package/dist/utils/datetime_utility.js +0 -61
  205. package/dist/utils/equality_utils.js +0 -84
  206. package/dist/utils/i18n.js +0 -65
  207. package/dist/utils/is_slot_empty.js +0 -34
  208. package/dist/utils/number_utils.js +0 -132
  209. package/dist/utils/play_utils.js +0 -11
  210. package/dist/utils/set_utils.js +0 -25
  211. package/dist/utils/stories_constants.js +0 -29
  212. package/dist/utils/stories_utils.js +0 -62
  213. package/dist/utils/story_decorators/container.js +0 -19
  214. package/dist/utils/string_utils.js +0 -69
  215. package/dist/utils/svgs/svg_paths.js +0 -7
  216. package/dist/utils/test_utils.js +0 -33
  217. package/dist/utils/use_fake_date.js +0 -29
  218. package/dist/utils/use_mock_intersection_observer.js +0 -105
  219. package/dist/utils/utils.js +0 -205
  220. package/dist/utils.js +0 -5
  221. package/dist/vendor/bootstrap-vue/src/bv-config.js +0 -8
  222. package/dist/vendor/bootstrap-vue/src/components/button/button-close.js +0 -81
  223. package/dist/vendor/bootstrap-vue/src/components/button/button.js +0 -204
  224. package/dist/vendor/bootstrap-vue/src/components/button/index.js +0 -2
  225. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +0 -41
  226. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +0 -52
  227. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +0 -75
  228. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +0 -52
  229. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +0 -85
  230. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +0 -97
  231. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +0 -60
  232. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +0 -271
  233. package/dist/vendor/bootstrap-vue/src/components/dropdown/index.js +0 -8
  234. package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +0 -53
  235. package/dist/vendor/bootstrap-vue/src/components/form/form-text.js +0 -55
  236. package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +0 -53
  237. package/dist/vendor/bootstrap-vue/src/components/form/form.js +0 -56
  238. package/dist/vendor/bootstrap-vue/src/components/form/index.js +0 -4
  239. package/dist/vendor/bootstrap-vue/src/components/form-group/form-group.js +0 -348
  240. package/dist/vendor/bootstrap-vue/src/components/form-group/index.js +0 -1
  241. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +0 -54
  242. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +0 -41
  243. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +0 -143
  244. package/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +0 -56
  245. package/dist/vendor/bootstrap-vue/src/components/form-select/index.js +0 -3
  246. package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +0 -217
  247. package/dist/vendor/bootstrap-vue/src/components/form-textarea/index.js +0 -1
  248. package/dist/vendor/bootstrap-vue/src/components/layout/col.js +0 -156
  249. package/dist/vendor/bootstrap-vue/src/components/layout/form-row.js +0 -34
  250. package/dist/vendor/bootstrap-vue/src/components/layout/index.js +0 -2
  251. package/dist/vendor/bootstrap-vue/src/components/link/index.js +0 -1
  252. package/dist/vendor/bootstrap-vue/src/components/link/link.js +0 -283
  253. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.js +0 -21
  254. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/modal-manager.js +0 -212
  255. package/dist/vendor/bootstrap-vue/src/components/modal/index.js +0 -1
  256. package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +0 -887
  257. package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover-template.js +0 -55
  258. package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover.js +0 -31
  259. package/dist/vendor/bootstrap-vue/src/components/popover/index.js +0 -1
  260. package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +0 -49
  261. package/dist/vendor/bootstrap-vue/src/components/table/helpers/constants.js +0 -22
  262. package/dist/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.js +0 -64
  263. package/dist/vendor/bootstrap-vue/src/components/table/helpers/filter-event.js +0 -40
  264. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-bottom-row.js +0 -43
  265. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +0 -83
  266. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +0 -50
  267. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-colgroup.js +0 -32
  268. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +0 -82
  269. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +0 -274
  270. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +0 -154
  271. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +0 -44
  272. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +0 -191
  273. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +0 -213
  274. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +0 -275
  275. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +0 -39
  276. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +0 -186
  277. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +0 -338
  278. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +0 -243
  279. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +0 -50
  280. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +0 -218
  281. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-top-row.js +0 -42
  282. package/dist/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.js +0 -86
  283. package/dist/vendor/bootstrap-vue/src/components/table/helpers/sanitize-row.js +0 -32
  284. package/dist/vendor/bootstrap-vue/src/components/table/helpers/stringify-record-values.js +0 -11
  285. package/dist/vendor/bootstrap-vue/src/components/table/helpers/text-selection-active.js +0 -14
  286. package/dist/vendor/bootstrap-vue/src/components/table/index.js +0 -9
  287. package/dist/vendor/bootstrap-vue/src/components/table/table-lite.js +0 -51
  288. package/dist/vendor/bootstrap-vue/src/components/table/table-simple.js +0 -44
  289. package/dist/vendor/bootstrap-vue/src/components/table/table.js +0 -67
  290. package/dist/vendor/bootstrap-vue/src/components/table/tbody.js +0 -116
  291. package/dist/vendor/bootstrap-vue/src/components/table/td.js +0 -204
  292. package/dist/vendor/bootstrap-vue/src/components/table/tfoot.js +0 -96
  293. package/dist/vendor/bootstrap-vue/src/components/table/th.js +0 -26
  294. package/dist/vendor/bootstrap-vue/src/components/table/thead.js +0 -99
  295. package/dist/vendor/bootstrap-vue/src/components/table/tr.js +0 -121
  296. package/dist/vendor/bootstrap-vue/src/components/tabs/index.js +0 -2
  297. package/dist/vendor/bootstrap-vue/src/components/tabs/tab.js +0 -238
  298. package/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js +0 -601
  299. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +0 -251
  300. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +0 -118
  301. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +0 -932
  302. package/dist/vendor/bootstrap-vue/src/components/tooltip/index.js +0 -1
  303. package/dist/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +0 -269
  304. package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +0 -103
  305. package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +0 -205
  306. package/dist/vendor/bootstrap-vue/src/constants/components.js +0 -55
  307. package/dist/vendor/bootstrap-vue/src/constants/config.js +0 -11
  308. package/dist/vendor/bootstrap-vue/src/constants/env.js +0 -36
  309. package/dist/vendor/bootstrap-vue/src/constants/events.js +0 -56
  310. package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +0 -11
  311. package/dist/vendor/bootstrap-vue/src/constants/popper.js +0 -10
  312. package/dist/vendor/bootstrap-vue/src/constants/props.js +0 -24
  313. package/dist/vendor/bootstrap-vue/src/constants/regex.js +0 -35
  314. package/dist/vendor/bootstrap-vue/src/constants/safe-types.js +0 -15
  315. package/dist/vendor/bootstrap-vue/src/constants/slots.js +0 -36
  316. package/dist/vendor/bootstrap-vue/src/directives/modal/index.js +0 -1
  317. package/dist/vendor/bootstrap-vue/src/directives/modal/modal.js +0 -112
  318. package/dist/vendor/bootstrap-vue/src/directives/tooltip/index.js +0 -1
  319. package/dist/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +0 -265
  320. package/dist/vendor/bootstrap-vue/src/directives/visible/index.js +0 -1
  321. package/dist/vendor/bootstrap-vue/src/directives/visible/visible.js +0 -187
  322. package/dist/vendor/bootstrap-vue/src/mixins/attrs.js +0 -5
  323. package/dist/vendor/bootstrap-vue/src/mixins/click-out.js +0 -54
  324. package/dist/vendor/bootstrap-vue/src/mixins/dropdown.js +0 -470
  325. package/dist/vendor/bootstrap-vue/src/mixins/focus-in.js +0 -46
  326. package/dist/vendor/bootstrap-vue/src/mixins/form-control.js +0 -73
  327. package/dist/vendor/bootstrap-vue/src/mixins/form-custom.js +0 -26
  328. package/dist/vendor/bootstrap-vue/src/mixins/form-options.js +0 -91
  329. package/dist/vendor/bootstrap-vue/src/mixins/form-selection.js +0 -62
  330. package/dist/vendor/bootstrap-vue/src/mixins/form-size.js +0 -26
  331. package/dist/vendor/bootstrap-vue/src/mixins/form-state.js +0 -50
  332. package/dist/vendor/bootstrap-vue/src/mixins/form-text.js +0 -293
  333. package/dist/vendor/bootstrap-vue/src/mixins/form-validity.js +0 -50
  334. package/dist/vendor/bootstrap-vue/src/mixins/has-listener.js +0 -29
  335. package/dist/vendor/bootstrap-vue/src/mixins/id.js +0 -57
  336. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-document.js +0 -63
  337. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-root.js +0 -121
  338. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-window.js +0 -63
  339. package/dist/vendor/bootstrap-vue/src/mixins/listeners.js +0 -25
  340. package/dist/vendor/bootstrap-vue/src/mixins/model.js +0 -10
  341. package/dist/vendor/bootstrap-vue/src/mixins/normalize-slot.js +0 -30
  342. package/dist/vendor/bootstrap-vue/src/mixins/scoped-style.js +0 -18
  343. package/dist/vendor/bootstrap-vue/src/mixins/use-parent.js +0 -14
  344. package/dist/vendor/bootstrap-vue/src/utils/array.js +0 -28
  345. package/dist/vendor/bootstrap-vue/src/utils/bv-event.class.js +0 -60
  346. package/dist/vendor/bootstrap-vue/src/utils/cache.js +0 -60
  347. package/dist/vendor/bootstrap-vue/src/utils/clone-deep.js +0 -18
  348. package/dist/vendor/bootstrap-vue/src/utils/config-set.js +0 -86
  349. package/dist/vendor/bootstrap-vue/src/utils/config.js +0 -71
  350. package/dist/vendor/bootstrap-vue/src/utils/create-new-child-component.js +0 -133
  351. package/dist/vendor/bootstrap-vue/src/utils/css-escape.js +0 -70
  352. package/dist/vendor/bootstrap-vue/src/utils/dom.js +0 -298
  353. package/dist/vendor/bootstrap-vue/src/utils/element-to-vue-instance-registry.js +0 -28
  354. package/dist/vendor/bootstrap-vue/src/utils/env.js +0 -16
  355. package/dist/vendor/bootstrap-vue/src/utils/events.js +0 -78
  356. package/dist/vendor/bootstrap-vue/src/utils/get-event-root.js +0 -5
  357. package/dist/vendor/bootstrap-vue/src/utils/get-instance-from-directive.js +0 -3
  358. package/dist/vendor/bootstrap-vue/src/utils/get-scope-id.js +0 -9
  359. package/dist/vendor/bootstrap-vue/src/utils/get.js +0 -63
  360. package/dist/vendor/bootstrap-vue/src/utils/html.js +0 -16
  361. package/dist/vendor/bootstrap-vue/src/utils/identity.js +0 -3
  362. package/dist/vendor/bootstrap-vue/src/utils/inspect.js +0 -35
  363. package/dist/vendor/bootstrap-vue/src/utils/locale.js +0 -19
  364. package/dist/vendor/bootstrap-vue/src/utils/loose-equal.js +0 -59
  365. package/dist/vendor/bootstrap-vue/src/utils/loose-index-of.js +0 -13
  366. package/dist/vendor/bootstrap-vue/src/utils/math.js +0 -9
  367. package/dist/vendor/bootstrap-vue/src/utils/memoize.js +0 -14
  368. package/dist/vendor/bootstrap-vue/src/utils/model.js +0 -33
  369. package/dist/vendor/bootstrap-vue/src/utils/noop.js +0 -3
  370. package/dist/vendor/bootstrap-vue/src/utils/normalize-slot.js +0 -51
  371. package/dist/vendor/bootstrap-vue/src/utils/number.js +0 -23
  372. package/dist/vendor/bootstrap-vue/src/utils/object.js +0 -72
  373. package/dist/vendor/bootstrap-vue/src/utils/observe-dom.js +0 -76
  374. package/dist/vendor/bootstrap-vue/src/utils/on-instance-destroy.js +0 -22
  375. package/dist/vendor/bootstrap-vue/src/utils/plugins.js +0 -124
  376. package/dist/vendor/bootstrap-vue/src/utils/props.js +0 -67
  377. package/dist/vendor/bootstrap-vue/src/utils/router.js +0 -150
  378. package/dist/vendor/bootstrap-vue/src/utils/safe-vue-instance.js +0 -14
  379. package/dist/vendor/bootstrap-vue/src/utils/stable-sort.js +0 -28
  380. package/dist/vendor/bootstrap-vue/src/utils/string.js +0 -47
  381. package/dist/vendor/bootstrap-vue/src/utils/stringify-object-values.js +0 -31
  382. package/dist/vendor/bootstrap-vue/src/utils/warn.js +0 -45
  383. package/dist/vendor/bootstrap-vue/src/vue.js +0 -55
@@ -1,274 +0,0 @@
1
- import { extend } from '../../../vue';
2
- import { NAME_TABLE } from '../../../constants/components';
3
- import { EVENT_NAME_FILTERED } from '../../../constants/events';
4
- import { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_REG_EXP, PROP_TYPE_NUMBER_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_ARRAY } from '../../../constants/props';
5
- import { RX_DIGITS, RX_SPACES } from '../../../constants/regex';
6
- import { concat } from '../../../utils/array';
7
- import { cloneDeep } from '../../../utils/clone-deep';
8
- import { identity } from '../../../utils/identity';
9
- import { isFunction, isString, isRegExp } from '../../../utils/inspect';
10
- import { looseEqual } from '../../../utils/loose-equal';
11
- import { toInteger } from '../../../utils/number';
12
- import { makeProp } from '../../../utils/props';
13
- import { escapeRegExp } from '../../../utils/string';
14
- import { warn } from '../../../utils/warn';
15
- import { stringifyRecordValues } from './stringify-record-values';
16
-
17
- // --- Constants ---
18
-
19
- const DEBOUNCE_DEPRECATED_MSG = 'Prop "filter-debounce" is deprecated. Use the debounce feature of "<b-form-input>" instead.';
20
-
21
- // --- Props ---
22
-
23
- const props = {
24
- filter: makeProp([...PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_REG_EXP]),
25
- filterDebounce: makeProp(PROP_TYPE_NUMBER_STRING, 0, value => {
26
- return RX_DIGITS.test(String(value));
27
- }),
28
- filterFunction: makeProp(PROP_TYPE_FUNCTION),
29
- filterIgnoredFields: makeProp(PROP_TYPE_ARRAY, []),
30
- filterIncludedFields: makeProp(PROP_TYPE_ARRAY, [])
31
- };
32
-
33
- // --- Mixin ---
34
-
35
- // @vue/component
36
- const filteringMixin = extend({
37
- props,
38
- data() {
39
- return {
40
- // Flag for displaying which empty slot to show and some event triggering
41
- isFiltered: false,
42
- // Where we store the copy of the filter criteria after debouncing
43
- // We pre-set it with the sanitized filter value
44
- localFilter: this.filterSanitize(this.filter)
45
- };
46
- },
47
- computed: {
48
- computedFilterIgnored() {
49
- return concat(this.filterIgnoredFields || []).filter(identity);
50
- },
51
- computedFilterIncluded() {
52
- return concat(this.filterIncludedFields || []).filter(identity);
53
- },
54
- computedFilterDebounce() {
55
- const ms = toInteger(this.filterDebounce, 0);
56
- /* istanbul ignore next */
57
- if (ms > 0) {
58
- warn(DEBOUNCE_DEPRECATED_MSG, NAME_TABLE);
59
- }
60
- return ms;
61
- },
62
- localFiltering() {
63
- return this.hasProvider ? !!this.noProviderFiltering : true;
64
- },
65
- // For watching changes to `filteredItems` vs `localItems`
66
- filteredCheck() {
67
- const {
68
- filteredItems,
69
- localItems,
70
- localFilter
71
- } = this;
72
- return {
73
- filteredItems,
74
- localItems,
75
- localFilter
76
- };
77
- },
78
- // Sanitized/normalize filter-function prop
79
- localFilterFn() {
80
- // Return `null` to signal to use internal filter function
81
- const {
82
- filterFunction
83
- } = this;
84
- // `filterFunction` is an optional Function prop with no default
85
- return isFunction(filterFunction) ? filterFunction : null;
86
- },
87
- // Returns the records in `localItems` that match the filter criteria
88
- // Returns the original `localItems` array if not sorting
89
- filteredItems() {
90
- // Note the criteria is debounced and sanitized
91
- const {
92
- localItems: items,
93
- localFilter: criteria
94
- } = this;
95
-
96
- // Resolve the filtering function, when requested
97
- // We prefer the provided filtering function and fallback to the internal one
98
- // When no filtering criteria is specified the filtering factories will return `null`
99
- const filterFn = this.localFiltering ? this.filterFnFactory(this.localFilterFn, criteria) || this.defaultFilterFnFactory(criteria) : null;
100
-
101
- // We only do local filtering when requested and there are records to filter
102
- return filterFn && items.length > 0 ? items.filter(filterFn) : items;
103
- }
104
- },
105
- watch: {
106
- // Watch for debounce being set to 0
107
- computedFilterDebounce(newValue) {
108
- if (!newValue && this.$_filterTimer) {
109
- this.clearFilterTimer();
110
- this.localFilter = this.filterSanitize(this.filter);
111
- }
112
- },
113
- // Watch for changes to the filter criteria, and debounce if necessary
114
- filter: {
115
- // We need a deep watcher in case the user passes
116
- // an object when using `filter-function`
117
- deep: true,
118
- handler(newCriteria) {
119
- const timeout = this.computedFilterDebounce;
120
- this.clearFilterTimer();
121
- if (timeout && timeout > 0) {
122
- // If we have a debounce time, delay the update of `localFilter`
123
- this.$_filterTimer = setTimeout(() => {
124
- this.localFilter = this.filterSanitize(newCriteria);
125
- }, timeout);
126
- } else {
127
- // Otherwise, immediately update `localFilter` with `newFilter` value
128
- this.localFilter = this.filterSanitize(newCriteria);
129
- }
130
- }
131
- },
132
- // Watch for changes to the filter criteria and filtered items vs `localItems`
133
- // Set visual state and emit events as required
134
- filteredCheck(_ref) {
135
- let {
136
- filteredItems,
137
- localFilter
138
- } = _ref;
139
- // Determine if the dataset is filtered or not
140
- let isFiltered = false;
141
- if (!localFilter) {
142
- // If filter criteria is falsey
143
- isFiltered = false;
144
- } else if (looseEqual(localFilter, []) || looseEqual(localFilter, {})) {
145
- // If filter criteria is an empty array or object
146
- isFiltered = false;
147
- } else if (localFilter) {
148
- // If filter criteria is truthy
149
- isFiltered = true;
150
- }
151
- if (isFiltered) {
152
- this.$emit(EVENT_NAME_FILTERED, filteredItems, filteredItems.length);
153
- // Clear selection on filter change if selectable (defined in mixin-selectable.js)
154
- if (this.hasSelectableRowClick) {
155
- this.clearSelected();
156
- }
157
- }
158
- this.isFiltered = isFiltered;
159
- },
160
- isFiltered(newValue, oldValue) {
161
- if (newValue === false && oldValue === true) {
162
- // We need to emit a filtered event if `isFiltered` transitions from `true` to
163
- // `false` so that users can update their pagination controls
164
- const {
165
- localItems
166
- } = this;
167
- this.$emit(EVENT_NAME_FILTERED, localItems, localItems.length);
168
- // Clear selection on filter change if selectable (defined in mixin-selectable.js)
169
- if (this.hasSelectableRowClick) {
170
- this.clearSelected();
171
- }
172
- }
173
- }
174
- },
175
- created() {
176
- // Create private non-reactive props
177
- this.$_filterTimer = null;
178
- // If filter is "pre-set", set the criteria
179
- // This will trigger any watchers/dependents
180
- // this.localFilter = this.filterSanitize(this.filter)
181
- // Set the initial filtered state in a `$nextTick()` so that
182
- // we trigger a filtered event if needed
183
- this.$nextTick(() => {
184
- this.isFiltered = Boolean(this.localFilter);
185
- });
186
- },
187
- beforeDestroy() {
188
- this.clearFilterTimer();
189
- },
190
- methods: {
191
- clearFilterTimer() {
192
- clearTimeout(this.$_filterTimer);
193
- this.$_filterTimer = null;
194
- },
195
- filterSanitize(criteria) {
196
- // Sanitizes filter criteria based on internal or external filtering
197
- if (this.localFiltering && !this.localFilterFn && !(isString(criteria) || isRegExp(criteria))) {
198
- // If using internal filter function, which only accepts string or RegExp,
199
- // return '' to signify no filter
200
- return '';
201
- }
202
-
203
- // Could be a string, object or array, as needed by external filter function
204
- // We use `cloneDeep` to ensure we have a new copy of an object or array
205
- // without Vue's reactive observers
206
- return cloneDeep(criteria);
207
- },
208
- // Filter Function factories
209
- filterFnFactory(filterFn, criteria) {
210
- // Wrapper factory for external filter functions
211
- // Wrap the provided filter-function and return a new function
212
- // Returns `null` if no filter-function defined or if criteria is falsey
213
- // Rather than directly grabbing `this.computedLocalFilterFn` or `this.filterFunction`
214
- // we have it passed, so that the caller computed prop will be reactive to changes
215
- // in the original filter-function (as this routine is a method)
216
- if (!filterFn || !isFunction(filterFn) || !criteria || looseEqual(criteria, []) || looseEqual(criteria, {})) {
217
- return null;
218
- }
219
-
220
- // Build the wrapped filter test function, passing the criteria to the provided function
221
- const fn = item => {
222
- // Generated function returns true if the criteria matches part
223
- // of the serialized data, otherwise false
224
- return filterFn(item, criteria);
225
- };
226
-
227
- // Return the wrapped function
228
- return fn;
229
- },
230
- defaultFilterFnFactory(criteria) {
231
- // Generates the default filter function, using the given filter criteria
232
- // Returns `null` if no criteria or criteria format not supported
233
- if (!criteria || !(isString(criteria) || isRegExp(criteria))) {
234
- // Built in filter can only support strings or RegExp criteria (at the moment)
235
- return null;
236
- }
237
-
238
- // Build the RegExp needed for filtering
239
- let regExp = criteria;
240
- if (isString(regExp)) {
241
- // Escape special RegExp characters in the string and convert contiguous
242
- // whitespace to \s+ matches
243
- const pattern = escapeRegExp(criteria).replace(RX_SPACES, '\\s+');
244
- // Build the RegExp (no need for global flag, as we only need
245
- // to find the value once in the string)
246
- regExp = new RegExp(`.*${pattern}.*`, 'i');
247
- }
248
-
249
- // Generate the wrapped filter test function to use
250
- const fn = item => {
251
- // This searches all row values (and sub property values) in the entire (excluding
252
- // special `_` prefixed keys), because we convert the record to a space-separated
253
- // string containing all the value properties (recursively), even ones that are
254
- // not visible (not specified in this.fields)
255
- // Users can ignore filtering on specific fields, or on only certain fields,
256
- // and can optionall specify searching results of fields with formatter
257
- //
258
- // TODO: Enable searching on scoped slots (optional, as it will be SLOW)
259
- //
260
- // Generated function returns true if the criteria matches part of
261
- // the serialized data, otherwise false
262
- //
263
- // We set `lastIndex = 0` on the `RegExp` in case someone specifies the `/g` global flag
264
- regExp.lastIndex = 0;
265
- return regExp.test(stringifyRecordValues(item, this.computedFilterIgnored, this.computedFilterIncluded, this.computedFieldsObj));
266
- };
267
-
268
- // Return the generated function
269
- return fn;
270
- }
271
- }
272
- });
273
-
274
- export { filteringMixin, props };
@@ -1,154 +0,0 @@
1
- import { extend } from '../../../vue';
2
- import { EVENT_NAME_CONTEXT_CHANGED } from '../../../constants/events';
3
- import { PROP_TYPE_ARRAY, PROP_TYPE_STRING } from '../../../constants/props';
4
- import { useParentMixin } from '../../../mixins/use-parent';
5
- import { isArray, isString, isFunction } from '../../../utils/inspect';
6
- import { looseEqual } from '../../../utils/loose-equal';
7
- import { mathMax } from '../../../utils/math';
8
- import { makeModelMixin } from '../../../utils/model';
9
- import { toInteger } from '../../../utils/number';
10
- import { sortKeys, clone } from '../../../utils/object';
11
- import { makeProp } from '../../../utils/props';
12
- import { safeVueInstance } from '../../../utils/safe-vue-instance';
13
- import { normalizeFields } from './normalize-fields';
14
-
15
- // --- Constants ---
16
-
17
- const {
18
- mixin: modelMixin,
19
- props: modelProps,
20
- prop: MODEL_PROP_NAME,
21
- event: MODEL_EVENT_NAME
22
- } = makeModelMixin('value', {
23
- type: PROP_TYPE_ARRAY,
24
- defaultValue: []
25
- });
26
-
27
- // --- Props ---
28
-
29
- const props = sortKeys({
30
- ...modelProps,
31
- fields: makeProp(PROP_TYPE_ARRAY, null),
32
- // Provider mixin adds in `Function` type
33
- items: makeProp(PROP_TYPE_ARRAY, []),
34
- // Primary key for record
35
- // If provided the value in each row must be unique!
36
- primaryKey: makeProp(PROP_TYPE_STRING),
37
- // `v-model` for retrieving the current displayed rows
38
- [MODEL_PROP_NAME]: makeProp(PROP_TYPE_ARRAY, [])
39
- });
40
-
41
- // --- Mixin ---
42
-
43
- // @vue/component
44
- const itemsMixin = extend({
45
- mixins: [modelMixin, useParentMixin],
46
- props,
47
- data() {
48
- const {
49
- items
50
- } = this;
51
- return {
52
- // Our local copy of the items
53
- // Must be an array
54
- localItems: isArray(items) ? items.slice() : []
55
- };
56
- },
57
- computed: {
58
- computedFields() {
59
- // We normalize fields into an array of objects
60
- // `[ { key:..., label:..., ...}, {...}, ..., {..}]`
61
- return normalizeFields(this.fields, this.localItems);
62
- },
63
- computedFieldsObj() {
64
- // Fields as a simple lookup hash object
65
- // Mainly for formatter lookup and use in `scopedSlots` for convenience
66
- // If the field has a formatter, it normalizes formatter to a
67
- // function ref or `undefined` if no formatter
68
- const {
69
- bvParent
70
- } = this;
71
- return this.computedFields.reduce((obj, f) => {
72
- // We use object spread here so we don't mutate the original field object
73
- obj[f.key] = clone(f);
74
- if (f.formatter) {
75
- // Normalize formatter to a function ref or `undefined`
76
- let formatter = f.formatter;
77
- if (isString(formatter) && isFunction(bvParent[formatter])) {
78
- formatter = bvParent[formatter];
79
- } else if (!isFunction(formatter)) {
80
- /* istanbul ignore next */
81
- formatter = undefined;
82
- }
83
- // Return formatter function or `undefined` if none
84
- obj[f.key].formatter = formatter;
85
- }
86
- return obj;
87
- }, {});
88
- },
89
- computedItems() {
90
- const {
91
- paginatedItems,
92
- sortedItems,
93
- filteredItems,
94
- localItems
95
- } = safeVueInstance(this);
96
- // Fallback if various mixins not provided
97
- return (paginatedItems || sortedItems || filteredItems || localItems || /* istanbul ignore next */
98
- []).slice();
99
- },
100
- context() {
101
- const {
102
- perPage,
103
- currentPage
104
- } = safeVueInstance(this);
105
- // Current state of sorting, filtering and pagination props/values
106
- return {
107
- filter: this.localFilter,
108
- sortBy: this.localSortBy,
109
- sortDesc: this.localSortDesc,
110
- perPage: mathMax(toInteger(perPage, 0), 0),
111
- currentPage: mathMax(toInteger(currentPage, 0), 1),
112
- apiUrl: this.apiUrl
113
- };
114
- }
115
- },
116
- watch: {
117
- items(newValue) {
118
- // Set `localItems`/`filteredItems` to a copy of the provided array
119
- this.localItems = isArray(newValue) ? newValue.slice() : [];
120
- },
121
- // Watch for changes on `computedItems` and update the `v-model`
122
- computedItems(newValue, oldValue) {
123
- if (!looseEqual(newValue, oldValue)) {
124
- this.$emit(MODEL_EVENT_NAME, newValue);
125
- }
126
- },
127
- // Watch for context changes
128
- context(newValue, oldValue) {
129
- // Emit context information for external paging/filtering/sorting handling
130
- if (!looseEqual(newValue, oldValue)) {
131
- this.$emit(EVENT_NAME_CONTEXT_CHANGED, newValue);
132
- // Clear selection on context change if selectable (defined in mixin-selectable.js)
133
- if (this.hasSelectableRowClick) {
134
- this.clearSelected();
135
- }
136
- }
137
- }
138
- },
139
- mounted() {
140
- // Initially update the `v-model` of displayed items
141
- this.$emit(MODEL_EVENT_NAME, this.computedItems);
142
- },
143
- methods: {
144
- // Method to get the formatter method for a given field key
145
- getFieldFormatter(key) {
146
- const field = this.computedFieldsObj[key];
147
- // `this.computedFieldsObj` has pre-normalized the formatter to a
148
- // function ref if present, otherwise `undefined`
149
- return field ? field.formatter : undefined;
150
- }
151
- }
152
- });
153
-
154
- export { MODEL_EVENT_NAME, MODEL_PROP_NAME, itemsMixin, props };
@@ -1,44 +0,0 @@
1
- import { extend } from '../../../vue';
2
- import { PROP_TYPE_NUMBER_STRING } from '../../../constants/props';
3
- import { mathMax } from '../../../utils/math';
4
- import { toInteger } from '../../../utils/number';
5
- import { makeProp } from '../../../utils/props';
6
- import { safeVueInstance } from '../../../utils/safe-vue-instance';
7
-
8
- // --- Props ---
9
-
10
- const props = {
11
- currentPage: makeProp(PROP_TYPE_NUMBER_STRING, 1),
12
- perPage: makeProp(PROP_TYPE_NUMBER_STRING, 0)
13
- };
14
-
15
- // --- Mixin ---
16
-
17
- // @vue/component
18
- const paginationMixin = extend({
19
- props,
20
- computed: {
21
- localPaging() {
22
- return this.hasProvider ? !!this.noProviderPaging : true;
23
- },
24
- paginatedItems() {
25
- const {
26
- sortedItems,
27
- filteredItems,
28
- localItems
29
- } = safeVueInstance(this);
30
- let items = sortedItems || filteredItems || localItems || [];
31
- const currentPage = mathMax(toInteger(this.currentPage, 1), 1);
32
- const perPage = mathMax(toInteger(this.perPage, 0), 0);
33
- // Apply local pagination
34
- if (this.localPaging && perPage) {
35
- // Grab the current page of data (which may be past filtered items limit)
36
- items = items.slice((currentPage - 1) * perPage, currentPage * perPage);
37
- }
38
- // Return the items to display in the table
39
- return items;
40
- }
41
- }
42
- });
43
-
44
- export { paginationMixin, props };
@@ -1,191 +0,0 @@
1
- import { extend } from '../../../vue';
2
- import { NAME_TABLE } from '../../../constants/components';
3
- import { EVENT_NAME_REFRESHED, EVENT_NAME_REFRESH } from '../../../constants/events';
4
- import { PROP_TYPE_STRING, PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN } from '../../../constants/props';
5
- import { getRootEventName, getRootActionEventName } from '../../../utils/events';
6
- import { isFunction, isArray, isPromise } from '../../../utils/inspect';
7
- import { looseEqual } from '../../../utils/loose-equal';
8
- import { clone } from '../../../utils/object';
9
- import { makeProp } from '../../../utils/props';
10
- import { safeVueInstance } from '../../../utils/safe-vue-instance';
11
- import { warn } from '../../../utils/warn';
12
- import { listenOnRootMixin } from '../../../mixins/listen-on-root';
13
-
14
- // --- Constants ---
15
-
16
- const ROOT_EVENT_NAME_REFRESHED = getRootEventName(NAME_TABLE, EVENT_NAME_REFRESHED);
17
- const ROOT_ACTION_EVENT_NAME_REFRESH = getRootActionEventName(NAME_TABLE, EVENT_NAME_REFRESH);
18
-
19
- // --- Props ---
20
-
21
- const props = {
22
- // Passed to the context object
23
- // Not used by `<b-table>` directly
24
- apiUrl: makeProp(PROP_TYPE_STRING),
25
- // Adds in 'Function' support
26
- items: makeProp(PROP_TYPE_ARRAY_FUNCTION, []),
27
- noProviderFiltering: makeProp(PROP_TYPE_BOOLEAN, false),
28
- noProviderPaging: makeProp(PROP_TYPE_BOOLEAN, false),
29
- noProviderSorting: makeProp(PROP_TYPE_BOOLEAN, false)
30
- };
31
-
32
- // --- Mixin ---
33
-
34
- // @vue/component
35
- const providerMixin = extend({
36
- mixins: [listenOnRootMixin],
37
- props,
38
- computed: {
39
- hasProvider() {
40
- return isFunction(this.items);
41
- },
42
- providerTriggerContext() {
43
- // Used to trigger the provider function via a watcher. Only the fields that
44
- // are needed for triggering a provider update are included. Note that the
45
- // regular this.context is sent to the provider during fetches though, as they
46
- // may need all the prop info.
47
- const ctx = {
48
- apiUrl: this.apiUrl,
49
- filter: null,
50
- sortBy: null,
51
- sortDesc: null,
52
- perPage: null,
53
- currentPage: null
54
- };
55
- if (!this.noProviderFiltering) {
56
- // Either a string, or could be an object or array.
57
- ctx.filter = this.localFilter;
58
- }
59
- if (!this.noProviderSorting) {
60
- ctx.sortBy = this.localSortBy;
61
- ctx.sortDesc = this.localSortDesc;
62
- }
63
- if (!this.noProviderPaging) {
64
- ctx.perPage = this.perPage;
65
- ctx.currentPage = this.currentPage;
66
- }
67
- return clone(ctx);
68
- }
69
- },
70
- watch: {
71
- // Provider update triggering
72
- items(newValue) {
73
- // If a new provider has been specified, trigger an update
74
- if (this.hasProvider || isFunction(newValue)) {
75
- this.$nextTick(this._providerUpdate);
76
- }
77
- },
78
- providerTriggerContext(newValue, oldValue) {
79
- // Trigger the provider to update as the relevant context values have changed.
80
- if (!looseEqual(newValue, oldValue)) {
81
- this.$nextTick(this._providerUpdate);
82
- }
83
- }
84
- },
85
- mounted() {
86
- // Call the items provider if necessary
87
- if (this.hasProvider && (!this.localItems || this.localItems.length === 0)) {
88
- // Fetch on mount if localItems is empty
89
- this._providerUpdate();
90
- }
91
- // Listen for global messages to tell us to force refresh the table
92
- this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REFRESH, id => {
93
- if (id === this.id || id === this) {
94
- this.refresh();
95
- }
96
- });
97
- },
98
- methods: {
99
- refresh() {
100
- const {
101
- items,
102
- computedBusy
103
- } = safeVueInstance(this);
104
-
105
- // Public Method: Force a refresh of the provider function
106
- this.$_pendingRefresh = false;
107
- if (computedBusy) {
108
- // Can't force an update when forced busy by user (busy prop === true)
109
- if (this.localBusy && this.hasProvider) {
110
- // But if provider running (localBusy), re-schedule refresh once `refreshed` emitted
111
- this.$_pendingRefresh = true;
112
- }
113
- } else {
114
- this.clearSelected();
115
- if (this.hasProvider) {
116
- this.$nextTick(this._providerUpdate);
117
- } else {
118
- /* istanbul ignore next */
119
- this.localItems = isArray(items) ? items.slice() : [];
120
- }
121
- }
122
- },
123
- // Provider related methods
124
- _providerSetLocal(items) {
125
- this.localItems = isArray(items) ? items.slice() : [];
126
- this.localBusy = false;
127
- this.$emit(EVENT_NAME_REFRESHED);
128
- // New root emit
129
- if (this.id) {
130
- this.emitOnRoot(ROOT_EVENT_NAME_REFRESHED, this.id);
131
- }
132
- // Handle pending refresh request
133
- if (this.$_pendingRefresh) {
134
- this.$_pendingRefresh = false;
135
- this.refresh();
136
- }
137
- },
138
- _providerUpdate() {
139
- // Refresh the provider function items.
140
- if (!this.hasProvider) {
141
- // Do nothing if no provider
142
- return;
143
- }
144
- // If table is busy, wait until refreshed before calling again
145
- if (safeVueInstance(this).computedBusy) {
146
- // Schedule a new refresh once `refreshed` is emitted
147
- this.$nextTick(this.refresh);
148
- return;
149
- }
150
-
151
- // Set internal busy state
152
- this.localBusy = true;
153
-
154
- // Call provider function with context and optional callback after DOM is fully updated
155
- this.$nextTick(() => {
156
- try {
157
- // Call provider function passing it the context and optional callback
158
- const data = this.items(this.context, this._providerSetLocal);
159
- if (isPromise(data)) {
160
- // Provider returned Promise
161
- data.then(items => {
162
- // Provider resolved with items
163
- this._providerSetLocal(items);
164
- });
165
- } else if (isArray(data)) {
166
- // Provider returned Array data
167
- this._providerSetLocal(data);
168
- } else {
169
- /* istanbul ignore if */
170
- if (this.items.length !== 2) {
171
- // Check number of arguments provider function requested
172
- // Provider not using callback (didn't request second argument), so we clear
173
- // busy state as most likely there was an error in the provider function
174
- /* istanbul ignore next */
175
- warn("Provider function didn't request callback and did not return a promise or data.", NAME_TABLE);
176
- this.localBusy = false;
177
- }
178
- }
179
- } catch (e) /* istanbul ignore next */{
180
- // Provider function borked on us, so we spew out a warning
181
- // and clear the busy state
182
- warn(`Provider function error [${e.name}] ${e.message}.`, NAME_TABLE);
183
- this.localBusy = false;
184
- this.$_pendingRefresh = false;
185
- }
186
- });
187
- }
188
- }
189
- });
190
-
191
- export { props, providerMixin };