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