@gitlab/ui 131.3.0 → 131.3.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 (384) 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/src/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +86 -25
  5. package/tailwind.defaults.js +10 -1
  6. package/dist/charts.js +0 -13
  7. package/dist/components/base/accordion/accordion.js +0 -69
  8. package/dist/components/base/accordion/accordion_item.js +0 -160
  9. package/dist/components/base/accordion/constants.js +0 -3
  10. package/dist/components/base/alert/alert.js +0 -263
  11. package/dist/components/base/animated_icon/animated_chevron_down_up_icon.js +0 -45
  12. package/dist/components/base/animated_icon/animated_chevron_lg_down_up_icon.js +0 -45
  13. package/dist/components/base/animated_icon/animated_chevron_lg_right_down_icon.js +0 -45
  14. package/dist/components/base/animated_icon/animated_chevron_right_down_icon.js +0 -45
  15. package/dist/components/base/animated_icon/animated_duo_chat_icon.js +0 -45
  16. package/dist/components/base/animated_icon/animated_loader_icon.js +0 -45
  17. package/dist/components/base/animated_icon/animated_notifications_icon.js +0 -45
  18. package/dist/components/base/animated_icon/animated_sidebar_icon.js +0 -45
  19. package/dist/components/base/animated_icon/animated_smile_icon.js +0 -45
  20. package/dist/components/base/animated_icon/animated_sort_icon.js +0 -45
  21. package/dist/components/base/animated_icon/animated_star_icon.js +0 -45
  22. package/dist/components/base/animated_icon/animated_todo_icon.js +0 -45
  23. package/dist/components/base/animated_icon/animated_upload_icon.js +0 -45
  24. package/dist/components/base/animated_icon/base_animated_icon.js +0 -77
  25. package/dist/components/base/attribute_list/attribute_list.js +0 -100
  26. package/dist/components/base/avatar/avatar.js +0 -175
  27. package/dist/components/base/avatar/utils.js +0 -17
  28. package/dist/components/base/avatar_labeled/avatar_labeled.js +0 -198
  29. package/dist/components/base/avatar_link/avatar_link.js +0 -47
  30. package/dist/components/base/avatars_inline/avatars_inline.js +0 -139
  31. package/dist/components/base/badge/badge.js +0 -197
  32. package/dist/components/base/banner/banner.js +0 -149
  33. package/dist/components/base/breadcrumb/breadcrumb.js +0 -282
  34. package/dist/components/base/breadcrumb/breadcrumb_item.js +0 -96
  35. package/dist/components/base/broadcast_message/broadcast_message.js +0 -113
  36. package/dist/components/base/broadcast_message/constants.js +0 -5
  37. package/dist/components/base/button/button.js +0 -419
  38. package/dist/components/base/button_group/button_group.js +0 -53
  39. package/dist/components/base/card/card.js +0 -69
  40. package/dist/components/base/collapse/collapse.js +0 -163
  41. package/dist/components/base/color_mode_toggle/color_mode_toggle.js +0 -92
  42. package/dist/components/base/datepicker/datepicker.js +0 -475
  43. package/dist/components/base/daterange_picker/daterange_picker.js +0 -394
  44. package/dist/components/base/drawer/drawer.js +0 -156
  45. package/dist/components/base/dropdown/dropdown.js +0 -330
  46. package/dist/components/base/dropdown/dropdown_divider.js +0 -48
  47. package/dist/components/base/dropdown/dropdown_form.js +0 -48
  48. package/dist/components/base/dropdown/dropdown_item.js +0 -175
  49. package/dist/components/base/dropdown/dropdown_section_header.js +0 -48
  50. package/dist/components/base/dropdown/dropdown_text.js +0 -48
  51. package/dist/components/base/filtered_search/common_story_options.js +0 -14
  52. package/dist/components/base/filtered_search/filtered_search.js +0 -428
  53. package/dist/components/base/filtered_search/filtered_search_suggestion.js +0 -95
  54. package/dist/components/base/filtered_search/filtered_search_suggestion_list.js +0 -139
  55. package/dist/components/base/filtered_search/filtered_search_term.js +0 -217
  56. package/dist/components/base/filtered_search/filtered_search_token.js +0 -383
  57. package/dist/components/base/filtered_search/filtered_search_token_segment.js +0 -444
  58. package/dist/components/base/filtered_search/filtered_search_utils.js +0 -241
  59. package/dist/components/base/form/form.js +0 -43
  60. package/dist/components/base/form/form_character_count/form_character_count.js +0 -107
  61. package/dist/components/base/form/form_checkbox/form_checkbox.js +0 -342
  62. package/dist/components/base/form/form_checkbox/form_checkbox_group.js +0 -186
  63. package/dist/components/base/form/form_combobox/constants.js +0 -55
  64. package/dist/components/base/form/form_combobox/form_combobox.js +0 -239
  65. package/dist/components/base/form/form_date/form_date.js +0 -143
  66. package/dist/components/base/form/form_fields/form_field_validator.js +0 -93
  67. package/dist/components/base/form/form_fields/form_fields.js +0 -289
  68. package/dist/components/base/form/form_fields/form_fields_loop.js +0 -75
  69. package/dist/components/base/form/form_fields/mappers.js +0 -13
  70. package/dist/components/base/form/form_fields/validators.js +0 -48
  71. package/dist/components/base/form/form_group/form_group.js +0 -119
  72. package/dist/components/base/form/form_input/form_input.js +0 -695
  73. package/dist/components/base/form/form_input_group/form_input_group.js +0 -120
  74. package/dist/components/base/form/form_input_group/form_input_group_mixin.js +0 -41
  75. package/dist/components/base/form/form_radio/form_radio.js +0 -259
  76. package/dist/components/base/form/form_radio_group/form_radio_group.js +0 -187
  77. package/dist/components/base/form/form_select/constants.js +0 -12
  78. package/dist/components/base/form/form_select/form_select.js +0 -96
  79. package/dist/components/base/form/form_textarea/form_textarea.js +0 -166
  80. package/dist/components/base/form/input_group_text/input_group_text.js +0 -43
  81. package/dist/components/base/icon/icon.js +0 -113
  82. package/dist/components/base/illustration/illustration.js +0 -80
  83. package/dist/components/base/infinite_scroll/infinite_scroll.js +0 -196
  84. package/dist/components/base/keyset_pagination/keyset_pagination.js +0 -152
  85. package/dist/components/base/label/label.js +0 -174
  86. package/dist/components/base/link/link.js +0 -332
  87. package/dist/components/base/loading_icon/loading_icon.js +0 -120
  88. package/dist/components/base/markdown/markdown.js +0 -50
  89. package/dist/components/base/modal/modal.js +0 -259
  90. package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +0 -716
  91. package/dist/components/base/new_dropdowns/base_dropdown/constants.js +0 -5
  92. package/dist/components/base/new_dropdowns/base_dropdown/dropdown_container.js +0 -32
  93. package/dist/components/base/new_dropdowns/constants.js +0 -24
  94. package/dist/components/base/new_dropdowns/disclosure/constants.js +0 -8
  95. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js +0 -400
  96. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +0 -112
  97. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +0 -196
  98. package/dist/components/base/new_dropdowns/disclosure/mock_data.js +0 -168
  99. package/dist/components/base/new_dropdowns/disclosure/utils.js +0 -84
  100. package/dist/components/base/new_dropdowns/listbox/listbox.js +0 -997
  101. package/dist/components/base/new_dropdowns/listbox/listbox_group.js +0 -58
  102. package/dist/components/base/new_dropdowns/listbox/listbox_item.js +0 -112
  103. package/dist/components/base/new_dropdowns/listbox/listbox_search_input.js +0 -94
  104. package/dist/components/base/new_dropdowns/listbox/mock_data.js +0 -131
  105. package/dist/components/base/new_dropdowns/listbox/utils.js +0 -33
  106. package/dist/components/base/pagination/pagination.js +0 -397
  107. package/dist/components/base/path/data.js +0 -34
  108. package/dist/components/base/path/path.js +0 -177
  109. package/dist/components/base/popover/popover.js +0 -142
  110. package/dist/components/base/progress_bar/progress_bar.js +0 -117
  111. package/dist/components/base/search_box_by_click/search_box_by_click.js +0 -245
  112. package/dist/components/base/search_box_by_type/search_box_by_type.js +0 -187
  113. package/dist/components/base/segmented_control/segmented_control.js +0 -73
  114. package/dist/components/base/skeleton_loader/skeleton_loader.js +0 -232
  115. package/dist/components/base/sorting/sorting.js +0 -180
  116. package/dist/components/base/table/constants.js +0 -5
  117. package/dist/components/base/table/table.js +0 -187
  118. package/dist/components/base/table_lite/table_lite.js +0 -80
  119. package/dist/components/base/tabs/constants.js +0 -3
  120. package/dist/components/base/tabs/tab/tab.js +0 -113
  121. package/dist/components/base/tabs/tabs/scrollable_tabs.js +0 -162
  122. package/dist/components/base/tabs/tabs/tabs.js +0 -223
  123. package/dist/components/base/toast/index.js +0 -66
  124. package/dist/components/base/toast/toast.js +0 -125
  125. package/dist/components/base/toast/toaster.js +0 -87
  126. package/dist/components/base/toggle/toggle.js +0 -178
  127. package/dist/components/base/token/token.js +0 -97
  128. package/dist/components/base/token_selector/helpers.js +0 -5
  129. package/dist/components/base/token_selector/token_container.js +0 -160
  130. package/dist/components/base/token_selector/token_selector.js +0 -454
  131. package/dist/components/base/token_selector/token_selector_dropdown.js +0 -223
  132. package/dist/components/base/tooltip/tooltip.js +0 -54
  133. package/dist/components/charts/area/area.js +0 -329
  134. package/dist/components/charts/bar/bar.js +0 -207
  135. package/dist/components/charts/chart/chart.js +0 -215
  136. package/dist/components/charts/column/column.js +0 -221
  137. package/dist/components/charts/discrete_scatter/discrete_scatter.js +0 -199
  138. package/dist/components/charts/gauge/gauge.js +0 -205
  139. package/dist/components/charts/heatmap/heatmap.js +0 -299
  140. package/dist/components/charts/heatmap/index.js +0 -2
  141. package/dist/components/charts/legend/legend.js +0 -245
  142. package/dist/components/charts/line/line.js +0 -340
  143. package/dist/components/charts/series_label/series_label.js +0 -101
  144. package/dist/components/charts/shared/tooltip/tooltip.js +0 -369
  145. package/dist/components/charts/shared/tooltip/tooltip_default_format/tooltip_default_format.js +0 -53
  146. package/dist/components/charts/single_stat/single_stat.js +0 -164
  147. package/dist/components/charts/sparkline/sparkline.js +0 -299
  148. package/dist/components/charts/stacked_column/stacked_column.js +0 -380
  149. package/dist/components/dashboards/dashboard_layout/dashboard_layout.js +0 -125
  150. package/dist/components/dashboards/dashboard_layout/grid_layout/grid_layout.js +0 -326
  151. package/dist/components/dashboards/dashboard_layout/validators.js +0 -14
  152. package/dist/components/dashboards/dashboard_panel/dashboard_panel.js +0 -236
  153. package/dist/components/dashboards/mock_data.js +0 -49
  154. package/dist/components/experimental/experiment_badge/constants.js +0 -4
  155. package/dist/components/experimental/experiment_badge/experiment_badge.js +0 -102
  156. package/dist/components/extended/multi_step_form_template/multi_step_form_template.js +0 -87
  157. package/dist/components/index.js +0 -107
  158. package/dist/components/mixins/button_mixin.js +0 -11
  159. package/dist/components/mixins/safe_link_mixin.js +0 -30
  160. package/dist/components/mixins/tooltip_mixin.js +0 -21
  161. package/dist/components/regions/dashboard_skeleton/dashboard_skeleton.js +0 -53
  162. package/dist/components/regions/empty_state/empty_state.js +0 -181
  163. package/dist/components/shared_components/clear_icon_button/clear_icon_button.js +0 -64
  164. package/dist/components/shared_components/clipboard_button/clipboard_button.js +0 -100
  165. package/dist/components/shared_components/close_button/close_button.js +0 -55
  166. package/dist/components/utilities/animated_number/animated_number.js +0 -131
  167. package/dist/components/utilities/friendly_wrap/friendly_wrap.js +0 -75
  168. package/dist/components/utilities/intersection_observer/intersection_observer.js +0 -88
  169. package/dist/components/utilities/intersperse/intersperse.js +0 -104
  170. package/dist/components/utilities/sprintf/sprintf.js +0 -171
  171. package/dist/components/utilities/truncate/constants.js +0 -8
  172. package/dist/components/utilities/truncate/truncate.js +0 -154
  173. package/dist/components/utilities/truncate_text/constants.js +0 -7
  174. package/dist/components/utilities/truncate_text/truncate_text.js +0 -146
  175. package/dist/config.js +0 -53
  176. package/dist/directives/hover_load/hover_load.js +0 -45
  177. package/dist/directives/index.js +0 -8
  178. package/dist/directives/modal.js +0 -1
  179. package/dist/directives/outside/outside.js +0 -149
  180. package/dist/directives/resize_observer/resize_observer.js +0 -58
  181. package/dist/directives/safe_html/constants.js +0 -6
  182. package/dist/directives/safe_html/safe_html.js +0 -39
  183. package/dist/directives/safe_link/mock_data.js +0 -10
  184. package/dist/directives/safe_link/safe_link.js +0 -67
  185. package/dist/directives/tooltip/container.js +0 -7
  186. package/dist/directives/tooltip/tooltip.js +0 -18
  187. package/dist/index.css +0 -7
  188. package/dist/index.css.map +0 -1
  189. package/dist/index.js +0 -2
  190. package/dist/tailwind.css +0 -2
  191. package/dist/tailwind.css.map +0 -1
  192. package/dist/tokens/build/js/tokens.dark.js +0 -1410
  193. package/dist/tokens/build/js/tokens.js +0 -1410
  194. package/dist/tokens/common_story_options.js +0 -29
  195. package/dist/tokens/tokens_story.js +0 -76
  196. package/dist/utils/breakpoints.js +0 -20
  197. package/dist/utils/charts/config.js +0 -616
  198. package/dist/utils/charts/constants.js +0 -69
  199. package/dist/utils/charts/mock_data.js +0 -191
  200. package/dist/utils/charts/story_config.js +0 -24
  201. package/dist/utils/charts/theme.js +0 -200
  202. package/dist/utils/charts/utils.js +0 -54
  203. package/dist/utils/constants.js +0 -333
  204. package/dist/utils/data_utils.js +0 -19
  205. package/dist/utils/datetime_utility.js +0 -61
  206. package/dist/utils/equality_utils.js +0 -84
  207. package/dist/utils/i18n.js +0 -65
  208. package/dist/utils/is_slot_empty.js +0 -34
  209. package/dist/utils/number_utils.js +0 -132
  210. package/dist/utils/play_utils.js +0 -11
  211. package/dist/utils/set_utils.js +0 -25
  212. package/dist/utils/stories_constants.js +0 -29
  213. package/dist/utils/stories_utils.js +0 -62
  214. package/dist/utils/story_decorators/container.js +0 -19
  215. package/dist/utils/string_utils.js +0 -69
  216. package/dist/utils/svgs/svg_paths.js +0 -7
  217. package/dist/utils/test_utils.js +0 -33
  218. package/dist/utils/use_fake_date.js +0 -29
  219. package/dist/utils/use_mock_intersection_observer.js +0 -105
  220. package/dist/utils/utils.js +0 -205
  221. package/dist/utils.js +0 -5
  222. package/dist/vendor/bootstrap-vue/src/bv-config.js +0 -8
  223. package/dist/vendor/bootstrap-vue/src/components/button/button-close.js +0 -81
  224. package/dist/vendor/bootstrap-vue/src/components/button/button.js +0 -204
  225. package/dist/vendor/bootstrap-vue/src/components/button/index.js +0 -2
  226. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +0 -41
  227. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +0 -52
  228. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +0 -75
  229. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +0 -52
  230. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +0 -85
  231. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +0 -97
  232. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +0 -60
  233. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +0 -271
  234. package/dist/vendor/bootstrap-vue/src/components/dropdown/index.js +0 -8
  235. package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +0 -53
  236. package/dist/vendor/bootstrap-vue/src/components/form/form-text.js +0 -55
  237. package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +0 -53
  238. package/dist/vendor/bootstrap-vue/src/components/form/form.js +0 -56
  239. package/dist/vendor/bootstrap-vue/src/components/form/index.js +0 -4
  240. package/dist/vendor/bootstrap-vue/src/components/form-group/form-group.js +0 -348
  241. package/dist/vendor/bootstrap-vue/src/components/form-group/index.js +0 -1
  242. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +0 -54
  243. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +0 -41
  244. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +0 -143
  245. package/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +0 -56
  246. package/dist/vendor/bootstrap-vue/src/components/form-select/index.js +0 -3
  247. package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +0 -217
  248. package/dist/vendor/bootstrap-vue/src/components/form-textarea/index.js +0 -1
  249. package/dist/vendor/bootstrap-vue/src/components/layout/col.js +0 -156
  250. package/dist/vendor/bootstrap-vue/src/components/layout/form-row.js +0 -34
  251. package/dist/vendor/bootstrap-vue/src/components/layout/index.js +0 -2
  252. package/dist/vendor/bootstrap-vue/src/components/link/index.js +0 -1
  253. package/dist/vendor/bootstrap-vue/src/components/link/link.js +0 -283
  254. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.js +0 -21
  255. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/modal-manager.js +0 -212
  256. package/dist/vendor/bootstrap-vue/src/components/modal/index.js +0 -1
  257. package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +0 -887
  258. package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover-template.js +0 -55
  259. package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover.js +0 -31
  260. package/dist/vendor/bootstrap-vue/src/components/popover/index.js +0 -1
  261. package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +0 -49
  262. package/dist/vendor/bootstrap-vue/src/components/table/helpers/constants.js +0 -22
  263. package/dist/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.js +0 -64
  264. package/dist/vendor/bootstrap-vue/src/components/table/helpers/filter-event.js +0 -40
  265. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-bottom-row.js +0 -43
  266. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +0 -83
  267. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +0 -50
  268. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-colgroup.js +0 -32
  269. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +0 -82
  270. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +0 -274
  271. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +0 -154
  272. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +0 -44
  273. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +0 -191
  274. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +0 -213
  275. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +0 -275
  276. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +0 -39
  277. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +0 -186
  278. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +0 -338
  279. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +0 -243
  280. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +0 -50
  281. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +0 -218
  282. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-top-row.js +0 -42
  283. package/dist/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.js +0 -86
  284. package/dist/vendor/bootstrap-vue/src/components/table/helpers/sanitize-row.js +0 -32
  285. package/dist/vendor/bootstrap-vue/src/components/table/helpers/stringify-record-values.js +0 -11
  286. package/dist/vendor/bootstrap-vue/src/components/table/helpers/text-selection-active.js +0 -14
  287. package/dist/vendor/bootstrap-vue/src/components/table/index.js +0 -9
  288. package/dist/vendor/bootstrap-vue/src/components/table/table-lite.js +0 -51
  289. package/dist/vendor/bootstrap-vue/src/components/table/table-simple.js +0 -44
  290. package/dist/vendor/bootstrap-vue/src/components/table/table.js +0 -67
  291. package/dist/vendor/bootstrap-vue/src/components/table/tbody.js +0 -116
  292. package/dist/vendor/bootstrap-vue/src/components/table/td.js +0 -204
  293. package/dist/vendor/bootstrap-vue/src/components/table/tfoot.js +0 -96
  294. package/dist/vendor/bootstrap-vue/src/components/table/th.js +0 -26
  295. package/dist/vendor/bootstrap-vue/src/components/table/thead.js +0 -99
  296. package/dist/vendor/bootstrap-vue/src/components/table/tr.js +0 -121
  297. package/dist/vendor/bootstrap-vue/src/components/tabs/index.js +0 -2
  298. package/dist/vendor/bootstrap-vue/src/components/tabs/tab.js +0 -238
  299. package/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js +0 -601
  300. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +0 -251
  301. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +0 -118
  302. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +0 -932
  303. package/dist/vendor/bootstrap-vue/src/components/tooltip/index.js +0 -1
  304. package/dist/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +0 -269
  305. package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +0 -103
  306. package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +0 -205
  307. package/dist/vendor/bootstrap-vue/src/constants/components.js +0 -55
  308. package/dist/vendor/bootstrap-vue/src/constants/config.js +0 -11
  309. package/dist/vendor/bootstrap-vue/src/constants/env.js +0 -36
  310. package/dist/vendor/bootstrap-vue/src/constants/events.js +0 -56
  311. package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +0 -11
  312. package/dist/vendor/bootstrap-vue/src/constants/popper.js +0 -10
  313. package/dist/vendor/bootstrap-vue/src/constants/props.js +0 -24
  314. package/dist/vendor/bootstrap-vue/src/constants/regex.js +0 -35
  315. package/dist/vendor/bootstrap-vue/src/constants/safe-types.js +0 -15
  316. package/dist/vendor/bootstrap-vue/src/constants/slots.js +0 -36
  317. package/dist/vendor/bootstrap-vue/src/directives/modal/index.js +0 -1
  318. package/dist/vendor/bootstrap-vue/src/directives/modal/modal.js +0 -112
  319. package/dist/vendor/bootstrap-vue/src/directives/tooltip/index.js +0 -1
  320. package/dist/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +0 -265
  321. package/dist/vendor/bootstrap-vue/src/directives/visible/index.js +0 -1
  322. package/dist/vendor/bootstrap-vue/src/directives/visible/visible.js +0 -187
  323. package/dist/vendor/bootstrap-vue/src/mixins/attrs.js +0 -5
  324. package/dist/vendor/bootstrap-vue/src/mixins/click-out.js +0 -54
  325. package/dist/vendor/bootstrap-vue/src/mixins/dropdown.js +0 -470
  326. package/dist/vendor/bootstrap-vue/src/mixins/focus-in.js +0 -46
  327. package/dist/vendor/bootstrap-vue/src/mixins/form-control.js +0 -73
  328. package/dist/vendor/bootstrap-vue/src/mixins/form-custom.js +0 -26
  329. package/dist/vendor/bootstrap-vue/src/mixins/form-options.js +0 -91
  330. package/dist/vendor/bootstrap-vue/src/mixins/form-selection.js +0 -62
  331. package/dist/vendor/bootstrap-vue/src/mixins/form-size.js +0 -26
  332. package/dist/vendor/bootstrap-vue/src/mixins/form-state.js +0 -50
  333. package/dist/vendor/bootstrap-vue/src/mixins/form-text.js +0 -293
  334. package/dist/vendor/bootstrap-vue/src/mixins/form-validity.js +0 -50
  335. package/dist/vendor/bootstrap-vue/src/mixins/has-listener.js +0 -29
  336. package/dist/vendor/bootstrap-vue/src/mixins/id.js +0 -57
  337. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-document.js +0 -63
  338. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-root.js +0 -121
  339. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-window.js +0 -63
  340. package/dist/vendor/bootstrap-vue/src/mixins/listeners.js +0 -25
  341. package/dist/vendor/bootstrap-vue/src/mixins/model.js +0 -10
  342. package/dist/vendor/bootstrap-vue/src/mixins/normalize-slot.js +0 -30
  343. package/dist/vendor/bootstrap-vue/src/mixins/scoped-style.js +0 -18
  344. package/dist/vendor/bootstrap-vue/src/mixins/use-parent.js +0 -14
  345. package/dist/vendor/bootstrap-vue/src/utils/array.js +0 -28
  346. package/dist/vendor/bootstrap-vue/src/utils/bv-event.class.js +0 -60
  347. package/dist/vendor/bootstrap-vue/src/utils/cache.js +0 -60
  348. package/dist/vendor/bootstrap-vue/src/utils/clone-deep.js +0 -18
  349. package/dist/vendor/bootstrap-vue/src/utils/config-set.js +0 -86
  350. package/dist/vendor/bootstrap-vue/src/utils/config.js +0 -71
  351. package/dist/vendor/bootstrap-vue/src/utils/create-new-child-component.js +0 -133
  352. package/dist/vendor/bootstrap-vue/src/utils/css-escape.js +0 -70
  353. package/dist/vendor/bootstrap-vue/src/utils/dom.js +0 -298
  354. package/dist/vendor/bootstrap-vue/src/utils/element-to-vue-instance-registry.js +0 -28
  355. package/dist/vendor/bootstrap-vue/src/utils/env.js +0 -16
  356. package/dist/vendor/bootstrap-vue/src/utils/events.js +0 -78
  357. package/dist/vendor/bootstrap-vue/src/utils/get-event-root.js +0 -5
  358. package/dist/vendor/bootstrap-vue/src/utils/get-instance-from-directive.js +0 -3
  359. package/dist/vendor/bootstrap-vue/src/utils/get-scope-id.js +0 -9
  360. package/dist/vendor/bootstrap-vue/src/utils/get.js +0 -63
  361. package/dist/vendor/bootstrap-vue/src/utils/html.js +0 -16
  362. package/dist/vendor/bootstrap-vue/src/utils/identity.js +0 -3
  363. package/dist/vendor/bootstrap-vue/src/utils/inspect.js +0 -35
  364. package/dist/vendor/bootstrap-vue/src/utils/locale.js +0 -19
  365. package/dist/vendor/bootstrap-vue/src/utils/loose-equal.js +0 -59
  366. package/dist/vendor/bootstrap-vue/src/utils/loose-index-of.js +0 -13
  367. package/dist/vendor/bootstrap-vue/src/utils/math.js +0 -9
  368. package/dist/vendor/bootstrap-vue/src/utils/memoize.js +0 -14
  369. package/dist/vendor/bootstrap-vue/src/utils/model.js +0 -33
  370. package/dist/vendor/bootstrap-vue/src/utils/noop.js +0 -3
  371. package/dist/vendor/bootstrap-vue/src/utils/normalize-slot.js +0 -51
  372. package/dist/vendor/bootstrap-vue/src/utils/number.js +0 -23
  373. package/dist/vendor/bootstrap-vue/src/utils/object.js +0 -72
  374. package/dist/vendor/bootstrap-vue/src/utils/observe-dom.js +0 -76
  375. package/dist/vendor/bootstrap-vue/src/utils/on-instance-destroy.js +0 -22
  376. package/dist/vendor/bootstrap-vue/src/utils/plugins.js +0 -124
  377. package/dist/vendor/bootstrap-vue/src/utils/props.js +0 -67
  378. package/dist/vendor/bootstrap-vue/src/utils/router.js +0 -150
  379. package/dist/vendor/bootstrap-vue/src/utils/safe-vue-instance.js +0 -14
  380. package/dist/vendor/bootstrap-vue/src/utils/stable-sort.js +0 -28
  381. package/dist/vendor/bootstrap-vue/src/utils/string.js +0 -47
  382. package/dist/vendor/bootstrap-vue/src/utils/stringify-object-values.js +0 -31
  383. package/dist/vendor/bootstrap-vue/src/utils/warn.js +0 -45
  384. 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 };