@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.
- package/package.json +11 -11
- package/src/components/base/form/form_checkbox/form_checkbox.vue +1 -2
- package/src/components/base/form/form_checkbox/form_checkbox_group.vue +1 -1
- package/src/components/base/form/form_radio/form_radio.vue +1 -1
- package/src/components/base/form/form_radio_group/form_radio_group.vue +1 -1
- package/src/components/base/table/table.scss +8 -0
- package/src/components/utilities/truncate/truncate.scss +3 -1
- package/src/scss/mixins.scss +3 -1
- package/src/utils/equality_utils.js +82 -0
- package/src/vendor/bootstrap-vue/src/components/button/button-close.js +20 -5
- package/src/vendor/bootstrap-vue/src/components/button/button.js +36 -8
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +12 -4
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +16 -5
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +99 -24
- package/src/vendor/bootstrap-vue/src/components/form/form-text.js +20 -5
- package/src/vendor/bootstrap-vue/src/components/form/form.js +20 -5
- package/src/vendor/bootstrap-vue/src/components/layout/form-row.js +5 -2
- package/src/vendor/bootstrap-vue/src/components/table/tbody.js +10 -3
- package/src/vendor/bootstrap-vue/src/components/table/td.js +28 -7
- package/src/vendor/bootstrap-vue/src/components/table/tfoot.js +5 -2
- package/src/vendor/bootstrap-vue/src/components/table/thead.js +5 -2
- package/src/vendor/bootstrap-vue/src/components/table/tr.js +5 -2
- package/src/vendor/bootstrap-vue/src/components/tabs/tab.js +51 -12
- package/tailwind.defaults.js +10 -1
- package/dist/charts.js +0 -13
- package/dist/components/base/accordion/accordion.js +0 -69
- package/dist/components/base/accordion/accordion_item.js +0 -160
- package/dist/components/base/accordion/constants.js +0 -3
- package/dist/components/base/alert/alert.js +0 -263
- package/dist/components/base/animated_icon/animated_chevron_down_up_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_chevron_lg_down_up_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_chevron_lg_right_down_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_chevron_right_down_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_duo_chat_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_loader_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_notifications_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_sidebar_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_smile_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_sort_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_star_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_todo_icon.js +0 -45
- package/dist/components/base/animated_icon/animated_upload_icon.js +0 -45
- package/dist/components/base/animated_icon/base_animated_icon.js +0 -77
- package/dist/components/base/attribute_list/attribute_list.js +0 -100
- package/dist/components/base/avatar/avatar.js +0 -175
- package/dist/components/base/avatar/utils.js +0 -17
- package/dist/components/base/avatar_labeled/avatar_labeled.js +0 -198
- package/dist/components/base/avatar_link/avatar_link.js +0 -47
- package/dist/components/base/avatars_inline/avatars_inline.js +0 -139
- package/dist/components/base/badge/badge.js +0 -197
- package/dist/components/base/banner/banner.js +0 -149
- package/dist/components/base/breadcrumb/breadcrumb.js +0 -282
- package/dist/components/base/breadcrumb/breadcrumb_item.js +0 -96
- package/dist/components/base/broadcast_message/broadcast_message.js +0 -113
- package/dist/components/base/broadcast_message/constants.js +0 -5
- package/dist/components/base/button/button.js +0 -419
- package/dist/components/base/button_group/button_group.js +0 -53
- package/dist/components/base/card/card.js +0 -69
- package/dist/components/base/collapse/collapse.js +0 -163
- package/dist/components/base/color_mode_toggle/color_mode_toggle.js +0 -92
- package/dist/components/base/datepicker/datepicker.js +0 -475
- package/dist/components/base/daterange_picker/daterange_picker.js +0 -394
- package/dist/components/base/drawer/drawer.js +0 -156
- package/dist/components/base/dropdown/dropdown.js +0 -330
- package/dist/components/base/dropdown/dropdown_divider.js +0 -48
- package/dist/components/base/dropdown/dropdown_form.js +0 -48
- package/dist/components/base/dropdown/dropdown_item.js +0 -175
- package/dist/components/base/dropdown/dropdown_section_header.js +0 -48
- package/dist/components/base/dropdown/dropdown_text.js +0 -48
- package/dist/components/base/filtered_search/common_story_options.js +0 -14
- package/dist/components/base/filtered_search/filtered_search.js +0 -428
- package/dist/components/base/filtered_search/filtered_search_suggestion.js +0 -95
- package/dist/components/base/filtered_search/filtered_search_suggestion_list.js +0 -139
- package/dist/components/base/filtered_search/filtered_search_term.js +0 -217
- package/dist/components/base/filtered_search/filtered_search_token.js +0 -383
- package/dist/components/base/filtered_search/filtered_search_token_segment.js +0 -444
- package/dist/components/base/filtered_search/filtered_search_utils.js +0 -241
- package/dist/components/base/form/form.js +0 -43
- package/dist/components/base/form/form_character_count/form_character_count.js +0 -107
- package/dist/components/base/form/form_checkbox/form_checkbox.js +0 -343
- package/dist/components/base/form/form_checkbox/form_checkbox_group.js +0 -186
- package/dist/components/base/form/form_combobox/constants.js +0 -55
- package/dist/components/base/form/form_combobox/form_combobox.js +0 -239
- package/dist/components/base/form/form_date/form_date.js +0 -143
- package/dist/components/base/form/form_fields/form_field_validator.js +0 -93
- package/dist/components/base/form/form_fields/form_fields.js +0 -289
- package/dist/components/base/form/form_fields/form_fields_loop.js +0 -75
- package/dist/components/base/form/form_fields/mappers.js +0 -13
- package/dist/components/base/form/form_fields/validators.js +0 -48
- package/dist/components/base/form/form_group/form_group.js +0 -119
- package/dist/components/base/form/form_input/form_input.js +0 -695
- package/dist/components/base/form/form_input_group/form_input_group.js +0 -120
- package/dist/components/base/form/form_input_group/form_input_group_mixin.js +0 -41
- package/dist/components/base/form/form_radio/form_radio.js +0 -259
- package/dist/components/base/form/form_radio_group/form_radio_group.js +0 -187
- package/dist/components/base/form/form_select/constants.js +0 -12
- package/dist/components/base/form/form_select/form_select.js +0 -96
- package/dist/components/base/form/form_textarea/form_textarea.js +0 -166
- package/dist/components/base/form/input_group_text/input_group_text.js +0 -43
- package/dist/components/base/icon/icon.js +0 -113
- package/dist/components/base/illustration/illustration.js +0 -80
- package/dist/components/base/infinite_scroll/infinite_scroll.js +0 -196
- package/dist/components/base/keyset_pagination/keyset_pagination.js +0 -152
- package/dist/components/base/label/label.js +0 -174
- package/dist/components/base/link/link.js +0 -332
- package/dist/components/base/loading_icon/loading_icon.js +0 -120
- package/dist/components/base/markdown/markdown.js +0 -50
- package/dist/components/base/modal/modal.js +0 -259
- package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +0 -716
- package/dist/components/base/new_dropdowns/base_dropdown/constants.js +0 -5
- package/dist/components/base/new_dropdowns/base_dropdown/dropdown_container.js +0 -32
- package/dist/components/base/new_dropdowns/constants.js +0 -24
- package/dist/components/base/new_dropdowns/disclosure/constants.js +0 -8
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js +0 -400
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +0 -112
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +0 -196
- package/dist/components/base/new_dropdowns/disclosure/mock_data.js +0 -168
- package/dist/components/base/new_dropdowns/disclosure/utils.js +0 -84
- package/dist/components/base/new_dropdowns/listbox/listbox.js +0 -997
- package/dist/components/base/new_dropdowns/listbox/listbox_group.js +0 -58
- package/dist/components/base/new_dropdowns/listbox/listbox_item.js +0 -112
- package/dist/components/base/new_dropdowns/listbox/listbox_search_input.js +0 -94
- package/dist/components/base/new_dropdowns/listbox/mock_data.js +0 -131
- package/dist/components/base/new_dropdowns/listbox/utils.js +0 -33
- package/dist/components/base/pagination/pagination.js +0 -397
- package/dist/components/base/path/data.js +0 -34
- package/dist/components/base/path/path.js +0 -177
- package/dist/components/base/popover/popover.js +0 -142
- package/dist/components/base/progress_bar/progress_bar.js +0 -117
- package/dist/components/base/search_box_by_click/search_box_by_click.js +0 -245
- package/dist/components/base/search_box_by_type/search_box_by_type.js +0 -187
- package/dist/components/base/segmented_control/segmented_control.js +0 -73
- package/dist/components/base/skeleton_loader/skeleton_loader.js +0 -232
- package/dist/components/base/sorting/sorting.js +0 -180
- package/dist/components/base/table/constants.js +0 -5
- package/dist/components/base/table/table.js +0 -187
- package/dist/components/base/table_lite/table_lite.js +0 -80
- package/dist/components/base/tabs/constants.js +0 -3
- package/dist/components/base/tabs/tab/tab.js +0 -113
- package/dist/components/base/tabs/tabs/scrollable_tabs.js +0 -162
- package/dist/components/base/tabs/tabs/tabs.js +0 -223
- package/dist/components/base/toast/index.js +0 -66
- package/dist/components/base/toast/toast.js +0 -125
- package/dist/components/base/toast/toaster.js +0 -87
- package/dist/components/base/toggle/toggle.js +0 -178
- package/dist/components/base/token/token.js +0 -97
- package/dist/components/base/token_selector/helpers.js +0 -5
- package/dist/components/base/token_selector/token_container.js +0 -160
- package/dist/components/base/token_selector/token_selector.js +0 -454
- package/dist/components/base/token_selector/token_selector_dropdown.js +0 -223
- package/dist/components/base/tooltip/tooltip.js +0 -54
- package/dist/components/charts/area/area.js +0 -329
- package/dist/components/charts/bar/bar.js +0 -207
- package/dist/components/charts/chart/chart.js +0 -215
- package/dist/components/charts/column/column.js +0 -221
- package/dist/components/charts/discrete_scatter/discrete_scatter.js +0 -199
- package/dist/components/charts/gauge/gauge.js +0 -205
- package/dist/components/charts/heatmap/heatmap.js +0 -299
- package/dist/components/charts/heatmap/index.js +0 -2
- package/dist/components/charts/legend/legend.js +0 -245
- package/dist/components/charts/line/line.js +0 -340
- package/dist/components/charts/series_label/series_label.js +0 -101
- package/dist/components/charts/shared/tooltip/tooltip.js +0 -369
- package/dist/components/charts/shared/tooltip/tooltip_default_format/tooltip_default_format.js +0 -53
- package/dist/components/charts/single_stat/single_stat.js +0 -164
- package/dist/components/charts/sparkline/sparkline.js +0 -299
- package/dist/components/charts/stacked_column/stacked_column.js +0 -380
- package/dist/components/dashboards/dashboard_layout/dashboard_layout.js +0 -125
- package/dist/components/dashboards/dashboard_layout/grid_layout/grid_layout.js +0 -326
- package/dist/components/dashboards/dashboard_layout/validators.js +0 -14
- package/dist/components/dashboards/dashboard_panel/dashboard_panel.js +0 -236
- package/dist/components/dashboards/mock_data.js +0 -49
- package/dist/components/experimental/experiment_badge/constants.js +0 -4
- package/dist/components/experimental/experiment_badge/experiment_badge.js +0 -102
- package/dist/components/extended/multi_step_form_template/multi_step_form_template.js +0 -87
- package/dist/components/index.js +0 -107
- package/dist/components/mixins/button_mixin.js +0 -11
- package/dist/components/mixins/safe_link_mixin.js +0 -30
- package/dist/components/mixins/tooltip_mixin.js +0 -21
- package/dist/components/regions/dashboard_skeleton/dashboard_skeleton.js +0 -53
- package/dist/components/regions/empty_state/empty_state.js +0 -181
- package/dist/components/shared_components/clear_icon_button/clear_icon_button.js +0 -64
- package/dist/components/shared_components/clipboard_button/clipboard_button.js +0 -100
- package/dist/components/shared_components/close_button/close_button.js +0 -55
- package/dist/components/utilities/animated_number/animated_number.js +0 -131
- package/dist/components/utilities/friendly_wrap/friendly_wrap.js +0 -75
- package/dist/components/utilities/intersection_observer/intersection_observer.js +0 -88
- package/dist/components/utilities/intersperse/intersperse.js +0 -104
- package/dist/components/utilities/sprintf/sprintf.js +0 -171
- package/dist/components/utilities/truncate/constants.js +0 -8
- package/dist/components/utilities/truncate/truncate.js +0 -154
- package/dist/components/utilities/truncate_text/constants.js +0 -7
- package/dist/components/utilities/truncate_text/truncate_text.js +0 -146
- package/dist/config.js +0 -53
- package/dist/directives/hover_load/hover_load.js +0 -45
- package/dist/directives/index.js +0 -8
- package/dist/directives/modal.js +0 -1
- package/dist/directives/outside/outside.js +0 -149
- package/dist/directives/resize_observer/resize_observer.js +0 -58
- package/dist/directives/safe_html/constants.js +0 -6
- package/dist/directives/safe_html/safe_html.js +0 -39
- package/dist/directives/safe_link/mock_data.js +0 -10
- package/dist/directives/safe_link/safe_link.js +0 -67
- package/dist/directives/tooltip/container.js +0 -7
- package/dist/directives/tooltip/tooltip.js +0 -18
- package/dist/index.css +0 -7
- package/dist/index.css.map +0 -1
- package/dist/index.js +0 -2
- package/dist/tailwind.css +0 -2
- package/dist/tailwind.css.map +0 -1
- package/dist/tokens/build/js/tokens.dark.js +0 -1410
- package/dist/tokens/build/js/tokens.js +0 -1410
- package/dist/tokens/common_story_options.js +0 -29
- package/dist/tokens/tokens_story.js +0 -76
- package/dist/utils/breakpoints.js +0 -20
- package/dist/utils/charts/config.js +0 -616
- package/dist/utils/charts/constants.js +0 -69
- package/dist/utils/charts/mock_data.js +0 -191
- package/dist/utils/charts/story_config.js +0 -24
- package/dist/utils/charts/theme.js +0 -200
- package/dist/utils/charts/utils.js +0 -54
- package/dist/utils/constants.js +0 -333
- package/dist/utils/data_utils.js +0 -19
- package/dist/utils/datetime_utility.js +0 -61
- package/dist/utils/i18n.js +0 -65
- package/dist/utils/is_slot_empty.js +0 -34
- package/dist/utils/number_utils.js +0 -132
- package/dist/utils/play_utils.js +0 -11
- package/dist/utils/set_utils.js +0 -25
- package/dist/utils/stories_constants.js +0 -29
- package/dist/utils/stories_utils.js +0 -62
- package/dist/utils/story_decorators/container.js +0 -19
- package/dist/utils/string_utils.js +0 -69
- package/dist/utils/svgs/svg_paths.js +0 -7
- package/dist/utils/test_utils.js +0 -33
- package/dist/utils/use_fake_date.js +0 -29
- package/dist/utils/use_mock_intersection_observer.js +0 -105
- package/dist/utils/utils.js +0 -205
- package/dist/utils.js +0 -5
- package/dist/vendor/bootstrap-vue/src/bv-config.js +0 -8
- package/dist/vendor/bootstrap-vue/src/components/button/button-close.js +0 -66
- package/dist/vendor/bootstrap-vue/src/components/button/button.js +0 -176
- package/dist/vendor/bootstrap-vue/src/components/button/index.js +0 -2
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +0 -41
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +0 -52
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +0 -75
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +0 -52
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +0 -85
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +0 -89
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +0 -49
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +0 -195
- package/dist/vendor/bootstrap-vue/src/components/dropdown/index.js +0 -8
- package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +0 -53
- package/dist/vendor/bootstrap-vue/src/components/form/form-text.js +0 -40
- package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +0 -53
- package/dist/vendor/bootstrap-vue/src/components/form/form.js +0 -41
- package/dist/vendor/bootstrap-vue/src/components/form/index.js +0 -4
- package/dist/vendor/bootstrap-vue/src/components/form-group/form-group.js +0 -348
- package/dist/vendor/bootstrap-vue/src/components/form-group/index.js +0 -1
- package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +0 -54
- package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +0 -41
- package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +0 -143
- package/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +0 -56
- package/dist/vendor/bootstrap-vue/src/components/form-select/index.js +0 -3
- package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +0 -217
- package/dist/vendor/bootstrap-vue/src/components/form-textarea/index.js +0 -1
- package/dist/vendor/bootstrap-vue/src/components/layout/col.js +0 -156
- package/dist/vendor/bootstrap-vue/src/components/layout/form-row.js +0 -31
- package/dist/vendor/bootstrap-vue/src/components/layout/index.js +0 -2
- package/dist/vendor/bootstrap-vue/src/components/link/index.js +0 -1
- package/dist/vendor/bootstrap-vue/src/components/link/link.js +0 -283
- package/dist/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.js +0 -21
- package/dist/vendor/bootstrap-vue/src/components/modal/helpers/modal-manager.js +0 -212
- package/dist/vendor/bootstrap-vue/src/components/modal/index.js +0 -1
- package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +0 -887
- package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover-template.js +0 -55
- package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover.js +0 -31
- package/dist/vendor/bootstrap-vue/src/components/popover/index.js +0 -1
- package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +0 -49
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/constants.js +0 -22
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.js +0 -64
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/filter-event.js +0 -40
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-bottom-row.js +0 -43
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +0 -83
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +0 -50
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-colgroup.js +0 -32
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +0 -82
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +0 -274
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +0 -154
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +0 -44
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +0 -191
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +0 -213
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +0 -275
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +0 -39
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +0 -186
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +0 -338
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +0 -243
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +0 -50
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +0 -218
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-top-row.js +0 -42
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.js +0 -86
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/sanitize-row.js +0 -32
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/stringify-record-values.js +0 -11
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/text-selection-active.js +0 -14
- package/dist/vendor/bootstrap-vue/src/components/table/index.js +0 -9
- package/dist/vendor/bootstrap-vue/src/components/table/table-lite.js +0 -51
- package/dist/vendor/bootstrap-vue/src/components/table/table-simple.js +0 -44
- package/dist/vendor/bootstrap-vue/src/components/table/table.js +0 -67
- package/dist/vendor/bootstrap-vue/src/components/table/tbody.js +0 -109
- package/dist/vendor/bootstrap-vue/src/components/table/td.js +0 -183
- package/dist/vendor/bootstrap-vue/src/components/table/tfoot.js +0 -93
- package/dist/vendor/bootstrap-vue/src/components/table/th.js +0 -26
- package/dist/vendor/bootstrap-vue/src/components/table/thead.js +0 -96
- package/dist/vendor/bootstrap-vue/src/components/table/tr.js +0 -118
- package/dist/vendor/bootstrap-vue/src/components/tabs/index.js +0 -2
- package/dist/vendor/bootstrap-vue/src/components/tabs/tab.js +0 -199
- package/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js +0 -601
- package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +0 -251
- package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +0 -118
- package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +0 -932
- package/dist/vendor/bootstrap-vue/src/components/tooltip/index.js +0 -1
- package/dist/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +0 -269
- package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +0 -103
- package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +0 -205
- package/dist/vendor/bootstrap-vue/src/constants/components.js +0 -55
- package/dist/vendor/bootstrap-vue/src/constants/config.js +0 -11
- package/dist/vendor/bootstrap-vue/src/constants/env.js +0 -36
- package/dist/vendor/bootstrap-vue/src/constants/events.js +0 -56
- package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +0 -11
- package/dist/vendor/bootstrap-vue/src/constants/popper.js +0 -10
- package/dist/vendor/bootstrap-vue/src/constants/props.js +0 -24
- package/dist/vendor/bootstrap-vue/src/constants/regex.js +0 -35
- package/dist/vendor/bootstrap-vue/src/constants/safe-types.js +0 -15
- package/dist/vendor/bootstrap-vue/src/constants/slots.js +0 -36
- package/dist/vendor/bootstrap-vue/src/directives/modal/index.js +0 -1
- package/dist/vendor/bootstrap-vue/src/directives/modal/modal.js +0 -112
- package/dist/vendor/bootstrap-vue/src/directives/tooltip/index.js +0 -1
- package/dist/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +0 -265
- package/dist/vendor/bootstrap-vue/src/directives/visible/index.js +0 -1
- package/dist/vendor/bootstrap-vue/src/directives/visible/visible.js +0 -187
- package/dist/vendor/bootstrap-vue/src/mixins/attrs.js +0 -5
- package/dist/vendor/bootstrap-vue/src/mixins/click-out.js +0 -54
- package/dist/vendor/bootstrap-vue/src/mixins/dropdown.js +0 -470
- package/dist/vendor/bootstrap-vue/src/mixins/focus-in.js +0 -46
- package/dist/vendor/bootstrap-vue/src/mixins/form-control.js +0 -73
- package/dist/vendor/bootstrap-vue/src/mixins/form-custom.js +0 -26
- package/dist/vendor/bootstrap-vue/src/mixins/form-options.js +0 -91
- package/dist/vendor/bootstrap-vue/src/mixins/form-selection.js +0 -62
- package/dist/vendor/bootstrap-vue/src/mixins/form-size.js +0 -26
- package/dist/vendor/bootstrap-vue/src/mixins/form-state.js +0 -50
- package/dist/vendor/bootstrap-vue/src/mixins/form-text.js +0 -293
- package/dist/vendor/bootstrap-vue/src/mixins/form-validity.js +0 -50
- package/dist/vendor/bootstrap-vue/src/mixins/has-listener.js +0 -29
- package/dist/vendor/bootstrap-vue/src/mixins/id.js +0 -57
- package/dist/vendor/bootstrap-vue/src/mixins/listen-on-document.js +0 -63
- package/dist/vendor/bootstrap-vue/src/mixins/listen-on-root.js +0 -121
- package/dist/vendor/bootstrap-vue/src/mixins/listen-on-window.js +0 -63
- package/dist/vendor/bootstrap-vue/src/mixins/listeners.js +0 -25
- package/dist/vendor/bootstrap-vue/src/mixins/model.js +0 -10
- package/dist/vendor/bootstrap-vue/src/mixins/normalize-slot.js +0 -30
- package/dist/vendor/bootstrap-vue/src/mixins/scoped-style.js +0 -18
- package/dist/vendor/bootstrap-vue/src/mixins/use-parent.js +0 -14
- package/dist/vendor/bootstrap-vue/src/utils/array.js +0 -28
- package/dist/vendor/bootstrap-vue/src/utils/bv-event.class.js +0 -60
- package/dist/vendor/bootstrap-vue/src/utils/cache.js +0 -60
- package/dist/vendor/bootstrap-vue/src/utils/clone-deep.js +0 -18
- package/dist/vendor/bootstrap-vue/src/utils/config-set.js +0 -86
- package/dist/vendor/bootstrap-vue/src/utils/config.js +0 -71
- package/dist/vendor/bootstrap-vue/src/utils/create-new-child-component.js +0 -133
- package/dist/vendor/bootstrap-vue/src/utils/css-escape.js +0 -70
- package/dist/vendor/bootstrap-vue/src/utils/dom.js +0 -298
- package/dist/vendor/bootstrap-vue/src/utils/element-to-vue-instance-registry.js +0 -28
- package/dist/vendor/bootstrap-vue/src/utils/env.js +0 -16
- package/dist/vendor/bootstrap-vue/src/utils/events.js +0 -78
- package/dist/vendor/bootstrap-vue/src/utils/get-event-root.js +0 -5
- package/dist/vendor/bootstrap-vue/src/utils/get-instance-from-directive.js +0 -3
- package/dist/vendor/bootstrap-vue/src/utils/get-scope-id.js +0 -9
- package/dist/vendor/bootstrap-vue/src/utils/get.js +0 -63
- package/dist/vendor/bootstrap-vue/src/utils/html.js +0 -16
- package/dist/vendor/bootstrap-vue/src/utils/identity.js +0 -3
- package/dist/vendor/bootstrap-vue/src/utils/inspect.js +0 -35
- package/dist/vendor/bootstrap-vue/src/utils/locale.js +0 -19
- package/dist/vendor/bootstrap-vue/src/utils/loose-equal.js +0 -59
- package/dist/vendor/bootstrap-vue/src/utils/loose-index-of.js +0 -13
- package/dist/vendor/bootstrap-vue/src/utils/math.js +0 -9
- package/dist/vendor/bootstrap-vue/src/utils/memoize.js +0 -14
- package/dist/vendor/bootstrap-vue/src/utils/model.js +0 -33
- package/dist/vendor/bootstrap-vue/src/utils/noop.js +0 -3
- package/dist/vendor/bootstrap-vue/src/utils/normalize-slot.js +0 -51
- package/dist/vendor/bootstrap-vue/src/utils/number.js +0 -23
- package/dist/vendor/bootstrap-vue/src/utils/object.js +0 -72
- package/dist/vendor/bootstrap-vue/src/utils/observe-dom.js +0 -76
- package/dist/vendor/bootstrap-vue/src/utils/on-instance-destroy.js +0 -22
- package/dist/vendor/bootstrap-vue/src/utils/plugins.js +0 -124
- package/dist/vendor/bootstrap-vue/src/utils/props.js +0 -67
- package/dist/vendor/bootstrap-vue/src/utils/router.js +0 -150
- package/dist/vendor/bootstrap-vue/src/utils/safe-vue-instance.js +0 -14
- package/dist/vendor/bootstrap-vue/src/utils/stable-sort.js +0 -28
- package/dist/vendor/bootstrap-vue/src/utils/string.js +0 -47
- package/dist/vendor/bootstrap-vue/src/utils/stringify-object-values.js +0 -31
- package/dist/vendor/bootstrap-vue/src/utils/warn.js +0 -45
- package/dist/vendor/bootstrap-vue/src/vue.js +0 -55
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Arg types subcategories to be used to organize props within arg tables
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
const ARG_TYPE_SUBCATEGORY_LOOK_AND_FEEL = 'Look & feel';
|
|
6
|
-
const ARG_TYPE_SUBCATEGORY_STATE = 'State';
|
|
7
|
-
const ARG_TYPE_SUBCATEGORY_SEARCH = 'Search';
|
|
8
|
-
const ARG_TYPE_SUBCATEGORY_ACCESSIBILITY = 'Accessibility';
|
|
9
|
-
const ARG_TYPE_SUBCATEGORY_INFINITE_SCROLL = 'Infinite scroll';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* These are used to test varying lengths of series names
|
|
13
|
-
*/
|
|
14
|
-
const SERIES_NAME_SHORT = 'SERIES_NAME_SHORT';
|
|
15
|
-
const SERIES_NAME_LONG = 'SERIES_NAME_LONG';
|
|
16
|
-
const SERIES_NAME_LONG_WITHOUT_SPACES = 'SERIES_NAME_LONG_WITHOUT_SPACES';
|
|
17
|
-
const SERIES_NAME = {
|
|
18
|
-
[SERIES_NAME_SHORT]: 'Series ',
|
|
19
|
-
[SERIES_NAME_LONG]: 'Series name long. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed tincidunt interdum sapien ut blandit. Nulla fermentum nisi id euismod vulputate. END',
|
|
20
|
-
[SERIES_NAME_LONG_WITHOUT_SPACES]: 'Series_name_long._Lorem_ipsum_dolor_sit_amet,_consectetur_adipiscing_elit._Sed_tincidunt_interdum_sapien_ut_blandit._Nulla_fermentum_nisi_id_euismod_vulputate._END'
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Reused constants for ListBox
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
const LISTBOX_CONTAINER_HEIGHT = '370px';
|
|
28
|
-
|
|
29
|
-
export { ARG_TYPE_SUBCATEGORY_ACCESSIBILITY, ARG_TYPE_SUBCATEGORY_INFINITE_SCROLL, ARG_TYPE_SUBCATEGORY_LOOK_AND_FEEL, ARG_TYPE_SUBCATEGORY_SEARCH, ARG_TYPE_SUBCATEGORY_STATE, LISTBOX_CONTAINER_HEIGHT, SERIES_NAME, SERIES_NAME_LONG, SERIES_NAME_LONG_WITHOUT_SPACES, SERIES_NAME_SHORT };
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Builds the parameters object disable one or multiple controls.
|
|
3
|
-
*/
|
|
4
|
-
const disableControls = function () {
|
|
5
|
-
let controls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
6
|
-
return Object.fromEntries(controls.map(control => [control, {
|
|
7
|
-
control: {
|
|
8
|
-
disable: true
|
|
9
|
-
}
|
|
10
|
-
}]));
|
|
11
|
-
};
|
|
12
|
-
const getA11yParameters = function () {
|
|
13
|
-
let {
|
|
14
|
-
skipRules = [],
|
|
15
|
-
temporarySkipRules = []
|
|
16
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
17
|
-
const skippedRules = skipRules.concat(temporarySkipRules).map(id => ({
|
|
18
|
-
id,
|
|
19
|
-
enabled: false
|
|
20
|
-
}));
|
|
21
|
-
return {
|
|
22
|
-
config: {
|
|
23
|
-
rules: skippedRules
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Returns a boolean indicating whether the given prop type includes the given type.
|
|
30
|
-
*
|
|
31
|
-
* Vue itself checks the string tag to avoid cross-realm false negatives, but
|
|
32
|
-
* that isn't necessary under Storybook.
|
|
33
|
-
*
|
|
34
|
-
* @param {(Array|Function)} propType The prop's defined type from a ComponentOptions.props[prop] object.
|
|
35
|
-
* @returns {boolean}
|
|
36
|
-
*/
|
|
37
|
-
const isPropType = (propType, Type) => Array.isArray(propType) ? propType.includes(Type) : propType === Type;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Returns a function which returns the given prop's default value for the given component.
|
|
41
|
-
*
|
|
42
|
-
* If the default value is a function, it executes that function to return the
|
|
43
|
-
* true default value.
|
|
44
|
-
*
|
|
45
|
-
* @param {object} ComponentOptions A Vue ComponentOptions object.
|
|
46
|
-
*/
|
|
47
|
-
const propDefaultFactory = ComponentOptions => prop => {
|
|
48
|
-
const {
|
|
49
|
-
type,
|
|
50
|
-
default: defaultValue
|
|
51
|
-
} = ComponentOptions.props[prop];
|
|
52
|
-
if (typeof defaultValue === 'function' && !isPropType(type, Function)) {
|
|
53
|
-
// Note: Vue 2 passes the instance to the `default` function via `this`,
|
|
54
|
-
// whereas Vue 3 passes the raw props to it as an argument. Here, we do
|
|
55
|
-
// neither, since we have access to neither. See
|
|
56
|
-
// https://v3-migration.vuejs.org/breaking-changes/props-default-this.html.
|
|
57
|
-
return defaultValue.call(undefined);
|
|
58
|
-
}
|
|
59
|
-
return defaultValue;
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export { disableControls, getA11yParameters, propDefaultFactory };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Return a story decorator function, which wraps the given story in a `div`
|
|
3
|
-
* element with the given `style` attributes.
|
|
4
|
-
*
|
|
5
|
-
* @param {object} style The style attribute to apply to the container.
|
|
6
|
-
* @return {function} The story decorator.
|
|
7
|
-
*/
|
|
8
|
-
const makeContainer = function (style) {
|
|
9
|
-
let tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'div';
|
|
10
|
-
return Story => ({
|
|
11
|
-
render(h) {
|
|
12
|
-
return h(tag, {
|
|
13
|
-
style
|
|
14
|
-
}, [h(Story())]);
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export { makeContainer };
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import emojiRegexFactory from 'emoji-regex';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Split the given string after each occurrence of each of the given symbols.
|
|
5
|
-
*
|
|
6
|
-
* Symbols are strings, and can be of length one or more. Zero-length symbols
|
|
7
|
-
* are ignored.
|
|
8
|
-
*
|
|
9
|
-
* Unlike with `String::split`, the symbol is left in results, with
|
|
10
|
-
* the split occurring _after_ the symbol.
|
|
11
|
-
*
|
|
12
|
-
* For example:
|
|
13
|
-
*
|
|
14
|
-
* splitAfterSymbols(['/'], 'a/b/c') // ['a/', 'b/', 'c']
|
|
15
|
-
* splitAfterSymbols(['foo'], 'foobar') // ['foo', 'bar']
|
|
16
|
-
*
|
|
17
|
-
* @param {string[]} symbols The symbols to split the string by.
|
|
18
|
-
* @param {string} string The string to split.
|
|
19
|
-
* @returns {string[]} The resulting strings.
|
|
20
|
-
*/
|
|
21
|
-
const splitAfterSymbols = (symbols, string) => {
|
|
22
|
-
const textParts = [];
|
|
23
|
-
let textPartStartIndex = 0;
|
|
24
|
-
if (string.length === 0) {
|
|
25
|
-
return [string];
|
|
26
|
-
}
|
|
27
|
-
for (let i = 0; i < string.length;) {
|
|
28
|
-
let symbolFound = false;
|
|
29
|
-
for (let j = 0; j < symbols.length; j += 1) {
|
|
30
|
-
const symbol = symbols[j];
|
|
31
|
-
if (!symbol) {
|
|
32
|
-
// eslint-disable-next-line no-continue
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
symbolFound = string.slice(i, i + symbol.length) === symbol;
|
|
36
|
-
if (symbolFound) {
|
|
37
|
-
const textPartEndIndex = i + symbol.length;
|
|
38
|
-
const textPart = string.slice(textPartStartIndex, textPartEndIndex);
|
|
39
|
-
textParts.push(textPart);
|
|
40
|
-
textPartStartIndex = textPartEndIndex;
|
|
41
|
-
i = textPartStartIndex;
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
if (!symbolFound) {
|
|
46
|
-
i += 1;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
const final = string.slice(textPartStartIndex);
|
|
50
|
-
if (final) {
|
|
51
|
-
textParts.push(final);
|
|
52
|
-
}
|
|
53
|
-
return textParts;
|
|
54
|
-
};
|
|
55
|
-
const startsWithEmojiRegex = `^(${emojiRegexFactory().source})`;
|
|
56
|
-
const getAvatarChar = name => {
|
|
57
|
-
if (name) {
|
|
58
|
-
// Check if string starts with an emoji (which could be multiple characters and zero-width joined)
|
|
59
|
-
const match = name.match(startsWithEmojiRegex);
|
|
60
|
-
if (match) {
|
|
61
|
-
// Return the first match
|
|
62
|
-
return match[0];
|
|
63
|
-
}
|
|
64
|
-
return name.charAt(0).toUpperCase();
|
|
65
|
-
}
|
|
66
|
-
return '';
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export { getAvatarChar, splitAfterSymbols };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
const scrollHandleSvgPath = 'path://M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zM6 4a1 1 0 0 0-1 1v6a1 1 0 0 0 2 0V5a1 1 0 0 0-1-1zm4 0a1 1 0 0 0-1 1v6a1 1 0 0 0 2 0V5a1 1 0 0 0-1-1z';
|
|
2
|
-
const marqueeSelectionSvgPath = 'path://M-6.251 -7L-7 -7L-7 -4.753A0.749 0.749 0 0 0 -5.502 -4.753L-5.502 -5.502L-4.753 -5.502A0.749 0.749 0 0 0 -4.753 -7L-6.251 -7ZM-6.251 -2.0067A0.749 0.749 0 0 1 -5.502 -1.2577L-5.502 1.239A0.749 0.749 0 1 1 -7 1.239L-7 -1.2577A0.749 0.749 0 0 1 -6.251 -2.0067ZM0.8455 0.8455L2.3505 4.3578L4.3578 2.3505L0.8455 0.8455ZM0.2883 -1.023L5.6251 1.264A0.9987 0.9987 0 0 1 5.9387 2.8888L4.943 3.8835L6.7616 5.703A0.749 0.749 0 1 1 5.703 6.7616L3.8835 4.943L2.8888 5.9387A0.9987 0.9987 0 0 1 1.264 5.6251L-1.023 0.2883C-1.3785 -0.5406 -0.5406 -1.3785 0.2883 -1.023ZM-6.251 6.9813L-7 6.9813L-7 4.7343A0.749 0.749 0 1 1 -5.502 4.7343L-5.502 5.4833L-4.753 5.4833A0.749 0.749 0 1 1 -4.753 6.9813L-6.251 6.9813ZM-2.0067 -6.251A0.749 0.749 0 0 1 -1.2577 -7L1.239 -7A0.749 0.749 0 1 1 1.239 -5.502L-1.2577 -5.502A0.749 0.749 0 0 1 -2.0067 -6.251ZM6.2323 -7L6.9813 -7L6.9813 -4.753A0.749 0.749 0 1 1 5.4833 -4.753L5.4833 -5.502L4.7343 -5.502A0.749 0.749 0 1 1 4.7343 -7L6.2323 -7Z';
|
|
3
|
-
const redoSvgPath = 'path://M1.8332 -6.7552A7.0001 7.0001 0 0 0 -5.6875 -4.082L-5.6875 -5.4689A0.6563 0.6563 0 0 0 -7 -5.4689L-7 -1.7501L-3.2812 -1.7501A0.6563 0.6563 0 0 0 -3.2812 -3.0626L-4.7923 -3.0626A5.6876 5.6876 0 1 1 -5.2526 2.1822A0.6563 0.6563 0 0 0 -6.4645 2.6853A7.0001 7.0001 0 1 0 1.8332 -6.7561Z';
|
|
4
|
-
const clearAllSvgPath = 'path://M-1.8332 -6.7552A7.0001 7.0001 0 0 1 5.6875 -4.082L5.6875 -5.4689A0.6563 0.6563 0 1 1 7 -5.4689L7 -1.7501L3.2812 -1.7501A0.6563 0.6563 0 1 1 3.2812 -3.0626L4.7923 -3.0626A5.6876 5.6876 0 1 0 5.2526 2.1822A0.6563 0.6563 0 1 1 6.4645 2.6853A7.0001 7.0001 0 1 1 -1.8332 -6.7561Z';
|
|
5
|
-
const downloadSvgPath = 'path://M3.78 -0.841A0.75 0.75 0 0 0 2.72 -0.841L0.75 1.129L0.75 -6.25A0.75 0.75 0 0 0 -0.75 -6.25L-0.75 1.129L-2.72 -0.841A0.75 0.75 0 0 0 -3.78 0.219L-0.53 3.469L0 4L0.53 3.47L3.78 0.22A0.75 0.75 0 0 0 3.78 -0.841ZM-5.5 1.75A0.75 0.75 0 0 0 -7 1.75L-7 5A2 2 0 0 0 -5 7L5 7A2 2 0 0 0 7 5L7 1.75A0.75 0.75 0 0 0 5.5 1.75L5.5 5A0.5 0.5 0 0 1 5 5.5L-5 5.5A0.5 0.5 0 0 1 -5.5 5L-5.5 1.75Z';
|
|
6
|
-
|
|
7
|
-
export { clearAllSvgPath, downloadSvgPath, marqueeSelectionSvgPath, redoSvgPath, scrollHandleSvgPath };
|
package/dist/utils/test_utils.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Wrapper around setTimeout which executes immediately in visual tests
|
|
3
|
-
* in order to avoid flaky tests
|
|
4
|
-
*/
|
|
5
|
-
function setStoryTimeout(fn, timeout) {
|
|
6
|
-
return setTimeout(fn, process.env.IS_VISUAL_TEST ? 0 : timeout);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
// adopted this method from Bootstraps utils
|
|
10
|
-
// https://github.com/bootstrap-vue/bootstrap-vue/blob/2fd03f0b1d0cc41f9930078ba8b1c16b10e4ac2f/tests/utils.js#L6
|
|
11
|
-
const waitForAnimationFrame = () => new Promise(resolve => {
|
|
12
|
-
requestAnimationFrame(resolve);
|
|
13
|
-
});
|
|
14
|
-
const getResetAnimationsCSS = () => `
|
|
15
|
-
*, *::after, *::before {
|
|
16
|
-
-webkit-transition: none !important;
|
|
17
|
-
-moz-transition: none !important;
|
|
18
|
-
-ms-transition: none !important;
|
|
19
|
-
-o-transition: none !important;
|
|
20
|
-
transition: none !important;
|
|
21
|
-
|
|
22
|
-
-webkit-animation: none !important;
|
|
23
|
-
-moz-animation: none !important;
|
|
24
|
-
-ms-animation: none !important;
|
|
25
|
-
-o-animation: none !important;
|
|
26
|
-
animation: none !important;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
input, textarea {
|
|
30
|
-
caret-color: transparent !important;
|
|
31
|
-
}`;
|
|
32
|
-
|
|
33
|
-
export { getResetAnimationsCSS, setStoryTimeout, waitForAnimationFrame };
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import MockDate from 'mockdate';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* When applied to a story, this mixin mocks the current date to make
|
|
5
|
-
* visual tests that rely on the date deterministic
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
*
|
|
9
|
-
* import { useFakeDate } from '../../../../tests/utils/use_fake_date';
|
|
10
|
-
* documentedStoriesOf('some|story')
|
|
11
|
-
* .add('default', () => ({
|
|
12
|
-
* mixins: [useFakeDate()],
|
|
13
|
-
* })
|
|
14
|
-
*/
|
|
15
|
-
const useFakeDate = () => {
|
|
16
|
-
if (process.env.IS_VISUAL_TEST) {
|
|
17
|
-
return {
|
|
18
|
-
created() {
|
|
19
|
-
MockDate.set('2026-01-10', 0);
|
|
20
|
-
},
|
|
21
|
-
destroyed() {
|
|
22
|
-
MockDate.reset();
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
return {};
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export { useFakeDate };
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { isMatch } from 'lodash-es';
|
|
2
|
-
|
|
3
|
-
/* global jest, beforeEach, afterEach */
|
|
4
|
-
/* eslint-disable class-methods-use-this, max-classes-per-file */
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* This class gives us a JSDom friendly DOM observer which we can manually trigger in tests
|
|
8
|
-
*
|
|
9
|
-
* Use this in place of MutationObserver or IntersectionObserver
|
|
10
|
-
*
|
|
11
|
-
* This class is largely influenced from [a test helper][1] in the main GitLab project
|
|
12
|
-
*
|
|
13
|
-
* [1]: https://gitlab.com/gitlab-org/gitlab/blob/a123813c63147392b95cd03c4744ae9db0575b0f/spec/frontend/helpers/mock_dom_observer.js#L95
|
|
14
|
-
*/
|
|
15
|
-
class MockObserver {
|
|
16
|
-
constructor(cb) {
|
|
17
|
-
this.$_cb = cb;
|
|
18
|
-
this.$_observers = [];
|
|
19
|
-
}
|
|
20
|
-
observe(node) {
|
|
21
|
-
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
22
|
-
this.$_observers.push([node, options]);
|
|
23
|
-
}
|
|
24
|
-
disconnect() {
|
|
25
|
-
this.$_observers = [];
|
|
26
|
-
}
|
|
27
|
-
takeRecords() {}
|
|
28
|
-
$_triggerObserve(nodeParam) {
|
|
29
|
-
let {
|
|
30
|
-
entry = {},
|
|
31
|
-
options = {}
|
|
32
|
-
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
33
|
-
const nodes = this.$_getNodesFromParam(nodeParam);
|
|
34
|
-
nodes.forEach(node => {
|
|
35
|
-
if (this.$_hasObserver(node, options)) {
|
|
36
|
-
this.$_cb([{
|
|
37
|
-
target: node,
|
|
38
|
-
...entry
|
|
39
|
-
}]);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
$_hasObserver(node) {
|
|
44
|
-
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
45
|
-
return this.$_observers.some(_ref => {
|
|
46
|
-
let [obvNode, obvOptions] = _ref;
|
|
47
|
-
return node === obvNode && isMatch(options, obvOptions);
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
$_getNodesFromParam(nodeParam) {
|
|
51
|
-
if (!nodeParam) {
|
|
52
|
-
return this.$_observers.map(_ref2 => {
|
|
53
|
-
let [node] = _ref2;
|
|
54
|
-
return node;
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
if (!Array.isArray(nodeParam)) {
|
|
58
|
-
return [nodeParam];
|
|
59
|
-
}
|
|
60
|
-
return nodeParam;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
class MockIntersectionObserver extends MockObserver {
|
|
64
|
-
unobserve(node) {
|
|
65
|
-
this.$_observers = this.$_observers.filter(_ref3 => {
|
|
66
|
-
let [obvNode] = _ref3;
|
|
67
|
-
return node !== obvNode;
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
const useMockIntersectionObserver = () => {
|
|
72
|
-
let instances;
|
|
73
|
-
let origObserver;
|
|
74
|
-
beforeEach(() => {
|
|
75
|
-
instances = [];
|
|
76
|
-
origObserver = global.IntersectionObserver;
|
|
77
|
-
global.IntersectionObserver = jest.fn().mockImplementation(function () {
|
|
78
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
79
|
-
args[_key] = arguments[_key];
|
|
80
|
-
}
|
|
81
|
-
const mockObserver = new MockIntersectionObserver(...args);
|
|
82
|
-
instances.push(mockObserver);
|
|
83
|
-
return mockObserver;
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
afterEach(() => {
|
|
87
|
-
instances = [];
|
|
88
|
-
global.IntersectionObserver = origObserver;
|
|
89
|
-
});
|
|
90
|
-
const trigger = function (observer) {
|
|
91
|
-
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
92
|
-
args[_key2 - 1] = arguments[_key2];
|
|
93
|
-
}
|
|
94
|
-
observer.$_triggerObserve(...args);
|
|
95
|
-
};
|
|
96
|
-
const getInstances = () => {
|
|
97
|
-
return instances;
|
|
98
|
-
};
|
|
99
|
-
return {
|
|
100
|
-
getInstances,
|
|
101
|
-
trigger
|
|
102
|
-
};
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
export { useMockIntersectionObserver };
|
package/dist/utils/utils.js
DELETED
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import { isVisible } from '../vendor/bootstrap-vue/src/utils/dom';
|
|
2
|
-
export { isVisible } from '../vendor/bootstrap-vue/src/utils/dom';
|
|
3
|
-
import { COMMA, labelColorOptions, CONTRAST_LEVELS, focusableTags } from './constants';
|
|
4
|
-
|
|
5
|
-
function debounceByAnimationFrame(fn) {
|
|
6
|
-
let requestId;
|
|
7
|
-
return function debounced() {
|
|
8
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
9
|
-
args[_key] = arguments[_key];
|
|
10
|
-
}
|
|
11
|
-
if (requestId) {
|
|
12
|
-
window.cancelAnimationFrame(requestId);
|
|
13
|
-
}
|
|
14
|
-
requestId = window.requestAnimationFrame(() => fn.apply(this, args));
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
function throttle(fn) {
|
|
18
|
-
let frameId = null;
|
|
19
|
-
return function () {
|
|
20
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
21
|
-
args[_key2] = arguments[_key2];
|
|
22
|
-
}
|
|
23
|
-
if (frameId) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
frameId = window.requestAnimationFrame(() => {
|
|
27
|
-
fn(...args);
|
|
28
|
-
frameId = null;
|
|
29
|
-
});
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function rgbFromHex(hex) {
|
|
33
|
-
const cleanHex = hex.replace('#', '');
|
|
34
|
-
const rgb = cleanHex.length === 3 ? cleanHex.split('').map(val => val + val) : cleanHex.match(/[\da-f]{2}/gi);
|
|
35
|
-
const [r, g, b] = rgb.map(val => parseInt(val, 16));
|
|
36
|
-
return [r, g, b];
|
|
37
|
-
}
|
|
38
|
-
function rgbFromString(color, sub) {
|
|
39
|
-
const rgb = color.substring(sub, color.length - 1).split(COMMA);
|
|
40
|
-
const [r, g, b] = rgb.map(i => parseInt(i, 10));
|
|
41
|
-
return [r, g, b];
|
|
42
|
-
}
|
|
43
|
-
function hexToRgba(hex) {
|
|
44
|
-
let opacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
45
|
-
const [r, g, b] = rgbFromHex(hex);
|
|
46
|
-
return `rgba(${r}, ${g}, ${b}, ${opacity})`;
|
|
47
|
-
}
|
|
48
|
-
function toSrgb(value) {
|
|
49
|
-
const normalized = value / 255;
|
|
50
|
-
return normalized <= 0.03928 ? normalized / 12.92 : ((normalized + 0.055) / 1.055) ** 2.4;
|
|
51
|
-
}
|
|
52
|
-
function relativeLuminance(rgb) {
|
|
53
|
-
// WCAG 2.1 formula: https://www.w3.org/TR/WCAG21/#dfn-relative-luminance
|
|
54
|
-
// -
|
|
55
|
-
// WCAG 3.0 will use APAC
|
|
56
|
-
// Using APAC would be the ultimate goal, but was dismissed by engineering as of now
|
|
57
|
-
// See https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/3418#note_1370107090
|
|
58
|
-
return 0.2126 * toSrgb(rgb[0]) + 0.7152 * toSrgb(rgb[1]) + 0.0722 * toSrgb(rgb[2]);
|
|
59
|
-
}
|
|
60
|
-
function colorFromBackground(backgroundColor) {
|
|
61
|
-
let contrastRatio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2.4;
|
|
62
|
-
let color;
|
|
63
|
-
const lightColor = rgbFromHex('#FFFFFF');
|
|
64
|
-
const darkColor = rgbFromHex('#18171d');
|
|
65
|
-
if (backgroundColor.startsWith('#')) {
|
|
66
|
-
color = rgbFromHex(backgroundColor);
|
|
67
|
-
} else if (backgroundColor.startsWith('rgba(')) {
|
|
68
|
-
color = rgbFromString(backgroundColor, 5);
|
|
69
|
-
} else if (backgroundColor.startsWith('rgb(')) {
|
|
70
|
-
color = rgbFromString(backgroundColor, 4);
|
|
71
|
-
}
|
|
72
|
-
const luminance = relativeLuminance(color);
|
|
73
|
-
const lightLuminance = relativeLuminance(lightColor);
|
|
74
|
-
const darkLuminance = relativeLuminance(darkColor);
|
|
75
|
-
const contrastLight = (lightLuminance + 0.05) / (luminance + 0.05);
|
|
76
|
-
const contrastDark = (luminance + 0.05) / (darkLuminance + 0.05);
|
|
77
|
-
|
|
78
|
-
// Using a default threshold contrast of 2.4 instead of 3
|
|
79
|
-
// as this will solve weird color combinations in the mid tones
|
|
80
|
-
return contrastLight >= contrastRatio || contrastLight > contrastDark ? labelColorOptions.light : labelColorOptions.dark;
|
|
81
|
-
}
|
|
82
|
-
function getColorContrast(foreground, background) {
|
|
83
|
-
// Formula: http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef
|
|
84
|
-
const backgroundLuminance = relativeLuminance(rgbFromHex(background)) + 0.05;
|
|
85
|
-
const foregroundLuminance = relativeLuminance(rgbFromHex(foreground)) + 0.05;
|
|
86
|
-
let score = backgroundLuminance / foregroundLuminance;
|
|
87
|
-
if (foregroundLuminance > backgroundLuminance) {
|
|
88
|
-
score = 1 / score;
|
|
89
|
-
}
|
|
90
|
-
const level = CONTRAST_LEVELS.find(_ref => {
|
|
91
|
-
let {
|
|
92
|
-
min,
|
|
93
|
-
max
|
|
94
|
-
} = _ref;
|
|
95
|
-
return score >= min && score < max;
|
|
96
|
-
});
|
|
97
|
-
return {
|
|
98
|
-
score: (Math.round(score * 10) / 10).toFixed(1),
|
|
99
|
-
level
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
function uid() {
|
|
103
|
-
return Math.random().toString(36).substring(2);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Receives an element and validates that it can be focused
|
|
108
|
-
* @param { HTMLElement } The element we want to validate
|
|
109
|
-
* @return { boolean } Is the element focusable
|
|
110
|
-
*/
|
|
111
|
-
|
|
112
|
-
function isElementFocusable(elt) {
|
|
113
|
-
if (!elt) return false;
|
|
114
|
-
const {
|
|
115
|
-
tagName
|
|
116
|
-
} = elt;
|
|
117
|
-
const isValidTag = focusableTags.includes(tagName);
|
|
118
|
-
const hasValidType = elt.getAttribute('type') !== 'hidden';
|
|
119
|
-
const isDisabled = elt.getAttribute('disabled') === '' || elt.getAttribute('disabled');
|
|
120
|
-
const hasValidZIndex = elt.getAttribute('z-index') !== '-1';
|
|
121
|
-
const isInvalidAnchorTag = tagName === 'A' && !elt.getAttribute('href');
|
|
122
|
-
return isValidTag && hasValidType && !isDisabled && hasValidZIndex && !isInvalidAnchorTag;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Receives an element and validates that it is reachable via sequential keyboard navigation
|
|
127
|
-
* @param { HTMLElement } The element to validate
|
|
128
|
-
* @return { boolean } Is the element focusable in a sequential tab order
|
|
129
|
-
*/
|
|
130
|
-
|
|
131
|
-
function isElementTabbable(el) {
|
|
132
|
-
if (!el) return false;
|
|
133
|
-
const tabindex = parseInt(el.getAttribute('tabindex'), 10);
|
|
134
|
-
return tabindex > -1;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Receives an array of HTML elements and focus the first one possible
|
|
139
|
-
* @param { Array.<HTMLElement> } An array of element to potentially focus
|
|
140
|
-
* @return { undefined }
|
|
141
|
-
*/
|
|
142
|
-
|
|
143
|
-
function focusFirstFocusableElement(elts) {
|
|
144
|
-
const focusableElt = elts.find(el => isElementFocusable(el));
|
|
145
|
-
if (focusableElt) focusableElt.focus();
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Returns true if the current environment is considered a development environment (it's not
|
|
150
|
-
* production or test).
|
|
151
|
-
*
|
|
152
|
-
* @returns {boolean}
|
|
153
|
-
*/
|
|
154
|
-
function isDev() {
|
|
155
|
-
return !['test', 'production'].includes(process.env.NODE_ENV);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Prints a warning message to the console in non-test and non-production environments.
|
|
160
|
-
* @param {string} message Message to print to the console.
|
|
161
|
-
* @param {Object} [context] Optional object with additional context.
|
|
162
|
-
* @param {string} [context.name] The name of the context of the message. Usually the component's name.
|
|
163
|
-
* @param {HTMLElement} [context.element] The element relevant to the message.
|
|
164
|
-
*/
|
|
165
|
-
function logWarning(message) {
|
|
166
|
-
let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
167
|
-
if (isDev()) {
|
|
168
|
-
const {
|
|
169
|
-
name,
|
|
170
|
-
element
|
|
171
|
-
} = context;
|
|
172
|
-
const formattedMessage = name ? `[${name}] ${message}` : message;
|
|
173
|
-
const args = element ? [formattedMessage, element] : [formattedMessage];
|
|
174
|
-
console.warn(...args); // eslint-disable-line no-console
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Stop default event handling and propagation
|
|
180
|
-
*/
|
|
181
|
-
function stopEvent(event) {
|
|
182
|
-
let {
|
|
183
|
-
preventDefault = true,
|
|
184
|
-
stopPropagation = true,
|
|
185
|
-
stopImmediatePropagation = false
|
|
186
|
-
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
187
|
-
if (preventDefault) {
|
|
188
|
-
event.preventDefault();
|
|
189
|
-
}
|
|
190
|
-
if (stopPropagation) {
|
|
191
|
-
event.stopPropagation();
|
|
192
|
-
}
|
|
193
|
-
if (stopImmediatePropagation) {
|
|
194
|
-
event.stopImmediatePropagation();
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Return an Array of visible items
|
|
200
|
-
*/
|
|
201
|
-
function filterVisible(els) {
|
|
202
|
-
return (els || []).filter(el => isVisible(el));
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
export { colorFromBackground, debounceByAnimationFrame, filterVisible, focusFirstFocusableElement, getColorContrast, hexToRgba, isDev, isElementFocusable, isElementTabbable, logWarning, relativeLuminance, rgbFromHex, rgbFromString, stopEvent, throttle, toSrgb, uid };
|
package/dist/utils.js
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { GlBreakpointInstance, breakpoints } from './utils/breakpoints';
|
|
2
|
-
import * as validators from './components/base/form/form_fields/validators';
|
|
3
|
-
export { validators as formValidators };
|
|
4
|
-
import * as mappers from './components/base/form/form_fields/mappers';
|
|
5
|
-
export { mappers as formMappers };
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { extend, mergeData } from '../../vue';
|
|
2
|
-
import { NAME_BUTTON_CLOSE } from '../../constants/components';
|
|
3
|
-
import { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';
|
|
4
|
-
import { SLOT_NAME_DEFAULT } from '../../constants/slots';
|
|
5
|
-
import { stopEvent } from '../../utils/events';
|
|
6
|
-
import { isEvent } from '../../utils/inspect';
|
|
7
|
-
import { makeProp } from '../../utils/props';
|
|
8
|
-
import { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';
|
|
9
|
-
|
|
10
|
-
// --- Props ---
|
|
11
|
-
|
|
12
|
-
const props = {
|
|
13
|
-
ariaLabel: makeProp(PROP_TYPE_STRING, 'Close'),
|
|
14
|
-
content: makeProp(PROP_TYPE_STRING, '×'),
|
|
15
|
-
disabled: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
16
|
-
textVariant: makeProp(PROP_TYPE_STRING)
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
// --- Main component ---
|
|
20
|
-
|
|
21
|
-
// @vue/component
|
|
22
|
-
const BButtonClose = /*#__PURE__*/extend({
|
|
23
|
-
name: NAME_BUTTON_CLOSE,
|
|
24
|
-
functional: true,
|
|
25
|
-
props,
|
|
26
|
-
render(h, _ref) {
|
|
27
|
-
let {
|
|
28
|
-
props,
|
|
29
|
-
data,
|
|
30
|
-
slots,
|
|
31
|
-
scopedSlots
|
|
32
|
-
} = _ref;
|
|
33
|
-
const $slots = slots();
|
|
34
|
-
const $scopedSlots = scopedSlots || {};
|
|
35
|
-
const componentData = {
|
|
36
|
-
staticClass: 'close',
|
|
37
|
-
class: {
|
|
38
|
-
[`text-${props.textVariant}`]: props.textVariant
|
|
39
|
-
},
|
|
40
|
-
attrs: {
|
|
41
|
-
type: 'button',
|
|
42
|
-
disabled: props.disabled,
|
|
43
|
-
'aria-label': props.ariaLabel ? String(props.ariaLabel) : null
|
|
44
|
-
},
|
|
45
|
-
on: {
|
|
46
|
-
click(event) {
|
|
47
|
-
// Ensure click on button HTML content is also disabled
|
|
48
|
-
/* istanbul ignore if: bug in JSDOM still emits click on inner element */
|
|
49
|
-
if (props.disabled && isEvent(event)) {
|
|
50
|
-
stopEvent(event);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
// Careful not to override the default slot with innerHTML
|
|
57
|
-
if (!hasNormalizedSlot(SLOT_NAME_DEFAULT, $scopedSlots, $slots)) {
|
|
58
|
-
componentData.domProps = {
|
|
59
|
-
innerHTML: props.content
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
return h('button', mergeData(data, componentData), normalizeSlot(SLOT_NAME_DEFAULT, {}, $scopedSlots, $slots));
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
export { BButtonClose, props };
|