@gitlab/ui 132.0.0 → 132.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/charts.js +13 -0
- package/dist/components/base/accordion/accordion.js +69 -0
- package/dist/components/base/accordion/accordion_item.js +160 -0
- package/dist/components/base/accordion/constants.js +3 -0
- package/dist/components/base/alert/alert.js +263 -0
- package/dist/components/base/animated_icon/animated_chevron_down_up_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_chevron_lg_down_up_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_chevron_lg_right_down_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_chevron_right_down_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_duo_chat_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_loader_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_notifications_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_sidebar_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_smile_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_sort_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_star_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_todo_icon.js +45 -0
- package/dist/components/base/animated_icon/animated_upload_icon.js +45 -0
- package/dist/components/base/animated_icon/base_animated_icon.js +77 -0
- package/dist/components/base/attribute_list/attribute_list.js +100 -0
- package/dist/components/base/avatar/avatar.js +175 -0
- package/dist/components/base/avatar/utils.js +17 -0
- package/dist/components/base/avatar_labeled/avatar_labeled.js +198 -0
- package/dist/components/base/avatar_link/avatar_link.js +47 -0
- package/dist/components/base/avatars_inline/avatars_inline.js +139 -0
- package/dist/components/base/badge/badge.js +197 -0
- package/dist/components/base/banner/banner.js +149 -0
- package/dist/components/base/breadcrumb/breadcrumb.js +282 -0
- package/dist/components/base/breadcrumb/breadcrumb_item.js +96 -0
- package/dist/components/base/broadcast_message/broadcast_message.js +113 -0
- package/dist/components/base/broadcast_message/constants.js +5 -0
- package/dist/components/base/button/button.js +419 -0
- package/dist/components/base/button_group/button_group.js +53 -0
- package/dist/components/base/card/card.js +69 -0
- package/dist/components/base/collapse/collapse.js +163 -0
- package/dist/components/base/color_mode_toggle/color_mode_toggle.js +92 -0
- package/dist/components/base/datepicker/datepicker.js +475 -0
- package/dist/components/base/daterange_picker/daterange_picker.js +394 -0
- package/dist/components/base/drawer/drawer.js +156 -0
- package/dist/components/base/dropdown/dropdown.js +330 -0
- package/dist/components/base/dropdown/dropdown_divider.js +48 -0
- package/dist/components/base/dropdown/dropdown_form.js +48 -0
- package/dist/components/base/dropdown/dropdown_item.js +175 -0
- package/dist/components/base/dropdown/dropdown_section_header.js +48 -0
- package/dist/components/base/dropdown/dropdown_text.js +48 -0
- package/dist/components/base/filtered_search/common_story_options.js +14 -0
- package/dist/components/base/filtered_search/filtered_search.js +428 -0
- package/dist/components/base/filtered_search/filtered_search_suggestion.js +95 -0
- package/dist/components/base/filtered_search/filtered_search_suggestion_list.js +139 -0
- package/dist/components/base/filtered_search/filtered_search_term.js +217 -0
- package/dist/components/base/filtered_search/filtered_search_token.js +383 -0
- package/dist/components/base/filtered_search/filtered_search_token_segment.js +444 -0
- package/dist/components/base/filtered_search/filtered_search_utils.js +241 -0
- package/dist/components/base/form/form.js +43 -0
- package/dist/components/base/form/form_character_count/form_character_count.js +107 -0
- package/dist/components/base/form/form_checkbox/form_checkbox.js +342 -0
- package/dist/components/base/form/form_checkbox/form_checkbox_group.js +188 -0
- package/dist/components/base/form/form_combobox/constants.js +55 -0
- package/dist/components/base/form/form_combobox/form_combobox.js +239 -0
- package/dist/components/base/form/form_date/form_date.js +143 -0
- package/dist/components/base/form/form_fields/form_field_validator.js +93 -0
- package/dist/components/base/form/form_fields/form_fields.js +289 -0
- package/dist/components/base/form/form_fields/form_fields_loop.js +75 -0
- package/dist/components/base/form/form_fields/mappers.js +13 -0
- package/dist/components/base/form/form_fields/validators.js +48 -0
- package/dist/components/base/form/form_group/form_group.js +119 -0
- package/dist/components/base/form/form_input/form_input.js +695 -0
- package/dist/components/base/form/form_input_group/form_input_group.js +120 -0
- package/dist/components/base/form/form_input_group/form_input_group_mixin.js +41 -0
- package/dist/components/base/form/form_radio/form_radio.js +259 -0
- package/dist/components/base/form/form_radio_group/form_radio_group.js +189 -0
- package/dist/components/base/form/form_select/constants.js +12 -0
- package/dist/components/base/form/form_select/form_select.js +96 -0
- package/dist/components/base/form/form_textarea/form_textarea.js +166 -0
- package/dist/components/base/form/input_group_text/input_group_text.js +43 -0
- package/dist/components/base/icon/icon.js +113 -0
- package/dist/components/base/illustration/illustration.js +80 -0
- package/dist/components/base/infinite_scroll/infinite_scroll.js +196 -0
- package/dist/components/base/keyset_pagination/keyset_pagination.js +152 -0
- package/dist/components/base/label/label.js +174 -0
- package/dist/components/base/link/link.js +330 -0
- package/dist/components/base/loading_icon/loading_icon.js +120 -0
- package/dist/components/base/markdown/markdown.js +50 -0
- package/dist/components/base/modal/modal.js +259 -0
- package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +716 -0
- package/dist/components/base/new_dropdowns/base_dropdown/constants.js +5 -0
- package/dist/components/base/new_dropdowns/base_dropdown/dropdown_container.js +32 -0
- package/dist/components/base/new_dropdowns/constants.js +24 -0
- package/dist/components/base/new_dropdowns/disclosure/constants.js +8 -0
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js +400 -0
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +112 -0
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +196 -0
- package/dist/components/base/new_dropdowns/disclosure/mock_data.js +168 -0
- package/dist/components/base/new_dropdowns/disclosure/utils.js +84 -0
- package/dist/components/base/new_dropdowns/listbox/listbox.js +997 -0
- package/dist/components/base/new_dropdowns/listbox/listbox_group.js +58 -0
- package/dist/components/base/new_dropdowns/listbox/listbox_item.js +112 -0
- package/dist/components/base/new_dropdowns/listbox/listbox_search_input.js +94 -0
- package/dist/components/base/new_dropdowns/listbox/mock_data.js +131 -0
- package/dist/components/base/new_dropdowns/listbox/utils.js +33 -0
- package/dist/components/base/pagination/pagination.js +397 -0
- package/dist/components/base/path/data.js +34 -0
- package/dist/components/base/path/path.js +177 -0
- package/dist/components/base/popover/popover.js +142 -0
- package/dist/components/base/progress_bar/progress_bar.js +117 -0
- package/dist/components/base/search_box_by_click/search_box_by_click.js +245 -0
- package/dist/components/base/search_box_by_type/search_box_by_type.js +187 -0
- package/dist/components/base/segmented_control/segmented_control.js +73 -0
- package/dist/components/base/skeleton_loader/skeleton_loader.js +232 -0
- package/dist/components/base/sorting/sorting.js +180 -0
- package/dist/components/base/table/constants.js +5 -0
- package/dist/components/base/table/table.js +187 -0
- package/dist/components/base/table_lite/table_lite.js +80 -0
- package/dist/components/base/tabs/constants.js +3 -0
- package/dist/components/base/tabs/tab/tab.js +113 -0
- package/dist/components/base/tabs/tabs/scrollable_tabs.js +162 -0
- package/dist/components/base/tabs/tabs/tabs.js +223 -0
- package/dist/components/base/toast/index.js +66 -0
- package/dist/components/base/toast/toast.js +125 -0
- package/dist/components/base/toast/toaster.js +87 -0
- package/dist/components/base/toggle/toggle.js +178 -0
- package/dist/components/base/token/token.js +97 -0
- package/dist/components/base/token_selector/helpers.js +5 -0
- package/dist/components/base/token_selector/token_container.js +160 -0
- package/dist/components/base/token_selector/token_selector.js +454 -0
- package/dist/components/base/token_selector/token_selector_dropdown.js +223 -0
- package/dist/components/base/tooltip/tooltip.js +54 -0
- package/dist/components/charts/area/area.js +329 -0
- package/dist/components/charts/bar/bar.js +207 -0
- package/dist/components/charts/chart/chart.js +215 -0
- package/dist/components/charts/column/column.js +221 -0
- package/dist/components/charts/discrete_scatter/discrete_scatter.js +199 -0
- package/dist/components/charts/gauge/gauge.js +205 -0
- package/dist/components/charts/heatmap/heatmap.js +299 -0
- package/dist/components/charts/heatmap/index.js +2 -0
- package/dist/components/charts/legend/legend.js +245 -0
- package/dist/components/charts/line/line.js +340 -0
- package/dist/components/charts/series_label/series_label.js +101 -0
- package/dist/components/charts/shared/tooltip/tooltip.js +369 -0
- package/dist/components/charts/shared/tooltip/tooltip_default_format/tooltip_default_format.js +53 -0
- package/dist/components/charts/single_stat/single_stat.js +164 -0
- package/dist/components/charts/sparkline/sparkline.js +299 -0
- package/dist/components/charts/stacked_column/stacked_column.js +380 -0
- package/dist/components/dashboards/dashboard_layout/dashboard_layout.js +125 -0
- package/dist/components/dashboards/dashboard_layout/grid_layout/grid_layout.js +326 -0
- package/dist/components/dashboards/dashboard_layout/validators.js +14 -0
- package/dist/components/dashboards/dashboard_panel/dashboard_panel.js +236 -0
- package/dist/components/dashboards/mock_data.js +49 -0
- package/dist/components/experimental/experiment_badge/constants.js +4 -0
- package/dist/components/experimental/experiment_badge/experiment_badge.js +102 -0
- package/dist/components/extended/multi_step_form_template/multi_step_form_template.js +87 -0
- package/dist/components/index.js +107 -0
- package/dist/components/mixins/button_mixin.js +11 -0
- package/dist/components/mixins/safe_link_mixin.js +30 -0
- package/dist/components/mixins/tooltip_mixin.js +21 -0
- package/dist/components/regions/dashboard_skeleton/dashboard_skeleton.js +53 -0
- package/dist/components/regions/empty_state/empty_state.js +181 -0
- package/dist/components/shared_components/clear_icon_button/clear_icon_button.js +64 -0
- package/dist/components/shared_components/clipboard_button/clipboard_button.js +100 -0
- package/dist/components/shared_components/close_button/close_button.js +55 -0
- package/dist/components/utilities/animated_number/animated_number.js +131 -0
- package/dist/components/utilities/friendly_wrap/friendly_wrap.js +75 -0
- package/dist/components/utilities/intersection_observer/intersection_observer.js +88 -0
- package/dist/components/utilities/intersperse/intersperse.js +104 -0
- package/dist/components/utilities/sprintf/sprintf.js +171 -0
- package/dist/components/utilities/truncate/constants.js +8 -0
- package/dist/components/utilities/truncate/truncate.js +154 -0
- package/dist/components/utilities/truncate_text/constants.js +7 -0
- package/dist/components/utilities/truncate_text/truncate_text.js +146 -0
- package/dist/config.js +53 -0
- package/dist/directives/hover_load/hover_load.js +45 -0
- package/dist/directives/index.js +8 -0
- package/dist/directives/modal.js +1 -0
- package/dist/directives/outside/outside.js +149 -0
- package/dist/directives/resize_observer/resize_observer.js +58 -0
- package/dist/directives/safe_html/constants.js +6 -0
- package/dist/directives/safe_html/safe_html.js +39 -0
- package/dist/directives/safe_link/mock_data.js +10 -0
- package/dist/directives/safe_link/safe_link.js +67 -0
- package/dist/directives/tooltip/container.js +7 -0
- package/dist/directives/tooltip/tooltip.js +18 -0
- package/dist/index.css +7 -0
- package/dist/index.css.map +1 -0
- package/dist/index.js +2 -0
- package/dist/tailwind.css +2 -0
- package/dist/tailwind.css.map +1 -0
- package/dist/tokens/build/js/tokens.dark.js +1410 -0
- package/dist/tokens/build/js/tokens.js +1410 -0
- package/dist/tokens/common_story_options.js +29 -0
- package/dist/tokens/tokens_story.js +76 -0
- package/dist/utils/breakpoints.js +20 -0
- package/dist/utils/charts/config.js +616 -0
- package/dist/utils/charts/constants.js +69 -0
- package/dist/utils/charts/mock_data.js +191 -0
- package/dist/utils/charts/story_config.js +24 -0
- package/dist/utils/charts/theme.js +200 -0
- package/dist/utils/charts/utils.js +54 -0
- package/dist/utils/constants.js +331 -0
- package/dist/utils/data_utils.js +19 -0
- package/dist/utils/datetime_utility.js +61 -0
- package/dist/utils/equality_utils.js +84 -0
- package/dist/utils/form_options_utils.js +46 -0
- package/dist/utils/i18n.js +65 -0
- package/dist/utils/is_slot_empty.js +34 -0
- package/dist/utils/number_utils.js +132 -0
- package/dist/utils/play_utils.js +11 -0
- package/dist/utils/set_utils.js +25 -0
- package/dist/utils/stories_constants.js +29 -0
- package/dist/utils/stories_utils.js +62 -0
- package/dist/utils/story_decorators/container.js +19 -0
- package/dist/utils/string_utils.js +69 -0
- package/dist/utils/svgs/svg_paths.js +7 -0
- package/dist/utils/test_utils.js +33 -0
- package/dist/utils/use_fake_date.js +29 -0
- package/dist/utils/use_mock_intersection_observer.js +105 -0
- package/dist/utils/utils.js +205 -0
- package/dist/utils/vue_utils.js +57 -0
- package/dist/utils.js +5 -0
- package/dist/vendor/bootstrap-vue/src/bv-config.js +8 -0
- package/dist/vendor/bootstrap-vue/src/components/button/button-close.js +81 -0
- package/dist/vendor/bootstrap-vue/src/components/button/button.js +204 -0
- package/dist/vendor/bootstrap-vue/src/components/button/index.js +2 -0
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +41 -0
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +52 -0
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +75 -0
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +52 -0
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +85 -0
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +97 -0
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +60 -0
- package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +270 -0
- package/dist/vendor/bootstrap-vue/src/components/dropdown/index.js +8 -0
- package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +53 -0
- package/dist/vendor/bootstrap-vue/src/components/form/form-text.js +55 -0
- package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +53 -0
- package/dist/vendor/bootstrap-vue/src/components/form/form.js +56 -0
- package/dist/vendor/bootstrap-vue/src/components/form/index.js +4 -0
- package/dist/vendor/bootstrap-vue/src/components/form-group/form-group.js +347 -0
- package/dist/vendor/bootstrap-vue/src/components/form-group/index.js +1 -0
- package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +54 -0
- package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +41 -0
- package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +143 -0
- package/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +56 -0
- package/dist/vendor/bootstrap-vue/src/components/form-select/index.js +3 -0
- package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +217 -0
- package/dist/vendor/bootstrap-vue/src/components/form-textarea/index.js +1 -0
- package/dist/vendor/bootstrap-vue/src/components/layout/col.js +155 -0
- package/dist/vendor/bootstrap-vue/src/components/layout/form-row.js +34 -0
- package/dist/vendor/bootstrap-vue/src/components/layout/index.js +2 -0
- package/dist/vendor/bootstrap-vue/src/components/link/index.js +1 -0
- package/dist/vendor/bootstrap-vue/src/components/link/link.js +283 -0
- package/dist/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.js +21 -0
- package/dist/vendor/bootstrap-vue/src/components/modal/helpers/modal-manager.js +212 -0
- package/dist/vendor/bootstrap-vue/src/components/modal/index.js +1 -0
- package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +1059 -0
- package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover-template.js +55 -0
- package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover.js +31 -0
- package/dist/vendor/bootstrap-vue/src/components/popover/index.js +1 -0
- package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +49 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/constants.js +22 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.js +64 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/filter-event.js +40 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-bottom-row.js +43 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +83 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +50 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-colgroup.js +32 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +82 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +292 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +154 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +44 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +191 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +213 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +274 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +39 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +186 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +338 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +243 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +50 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +218 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-top-row.js +42 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.js +86 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/sanitize-row.js +31 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/stringify-record-values.js +11 -0
- package/dist/vendor/bootstrap-vue/src/components/table/helpers/text-selection-active.js +14 -0
- package/dist/vendor/bootstrap-vue/src/components/table/index.js +9 -0
- package/dist/vendor/bootstrap-vue/src/components/table/table-lite.js +51 -0
- package/dist/vendor/bootstrap-vue/src/components/table/table-simple.js +44 -0
- package/dist/vendor/bootstrap-vue/src/components/table/table.js +67 -0
- package/dist/vendor/bootstrap-vue/src/components/table/tbody.js +116 -0
- package/dist/vendor/bootstrap-vue/src/components/table/td.js +204 -0
- package/dist/vendor/bootstrap-vue/src/components/table/tfoot.js +96 -0
- package/dist/vendor/bootstrap-vue/src/components/table/th.js +26 -0
- package/dist/vendor/bootstrap-vue/src/components/table/thead.js +99 -0
- package/dist/vendor/bootstrap-vue/src/components/table/tr.js +121 -0
- package/dist/vendor/bootstrap-vue/src/components/tabs/index.js +2 -0
- package/dist/vendor/bootstrap-vue/src/components/tabs/tab.js +238 -0
- package/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js +690 -0
- package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +251 -0
- package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +118 -0
- package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +932 -0
- package/dist/vendor/bootstrap-vue/src/components/tooltip/index.js +1 -0
- package/dist/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +337 -0
- package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +103 -0
- package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +205 -0
- package/dist/vendor/bootstrap-vue/src/constants/components.js +55 -0
- package/dist/vendor/bootstrap-vue/src/constants/config.js +11 -0
- package/dist/vendor/bootstrap-vue/src/constants/env.js +36 -0
- package/dist/vendor/bootstrap-vue/src/constants/events.js +56 -0
- package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +11 -0
- package/dist/vendor/bootstrap-vue/src/constants/popper.js +10 -0
- package/dist/vendor/bootstrap-vue/src/constants/props.js +24 -0
- package/dist/vendor/bootstrap-vue/src/constants/regex.js +35 -0
- package/dist/vendor/bootstrap-vue/src/constants/safe-types.js +15 -0
- package/dist/vendor/bootstrap-vue/src/constants/slots.js +36 -0
- package/dist/vendor/bootstrap-vue/src/directives/modal/index.js +1 -0
- package/dist/vendor/bootstrap-vue/src/directives/modal/modal.js +112 -0
- package/dist/vendor/bootstrap-vue/src/directives/tooltip/index.js +1 -0
- package/dist/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +267 -0
- package/dist/vendor/bootstrap-vue/src/directives/visible/index.js +1 -0
- package/dist/vendor/bootstrap-vue/src/directives/visible/visible.js +187 -0
- package/dist/vendor/bootstrap-vue/src/mixins/attrs.js +5 -0
- package/dist/vendor/bootstrap-vue/src/mixins/click-out.js +54 -0
- package/dist/vendor/bootstrap-vue/src/mixins/dropdown.js +470 -0
- package/dist/vendor/bootstrap-vue/src/mixins/focus-in.js +46 -0
- package/dist/vendor/bootstrap-vue/src/mixins/form-control.js +73 -0
- package/dist/vendor/bootstrap-vue/src/mixins/form-custom.js +26 -0
- package/dist/vendor/bootstrap-vue/src/mixins/form-options.js +91 -0
- package/dist/vendor/bootstrap-vue/src/mixins/form-selection.js +62 -0
- package/dist/vendor/bootstrap-vue/src/mixins/form-size.js +26 -0
- package/dist/vendor/bootstrap-vue/src/mixins/form-state.js +50 -0
- package/dist/vendor/bootstrap-vue/src/mixins/form-text.js +293 -0
- package/dist/vendor/bootstrap-vue/src/mixins/form-validity.js +50 -0
- package/dist/vendor/bootstrap-vue/src/mixins/has-listener.js +29 -0
- package/dist/vendor/bootstrap-vue/src/mixins/id.js +57 -0
- package/dist/vendor/bootstrap-vue/src/mixins/listen-on-document.js +62 -0
- package/dist/vendor/bootstrap-vue/src/mixins/listen-on-root.js +120 -0
- package/dist/vendor/bootstrap-vue/src/mixins/listen-on-window.js +62 -0
- package/dist/vendor/bootstrap-vue/src/mixins/listeners.js +25 -0
- package/dist/vendor/bootstrap-vue/src/mixins/model.js +10 -0
- package/dist/vendor/bootstrap-vue/src/mixins/normalize-slot.js +30 -0
- package/dist/vendor/bootstrap-vue/src/mixins/scoped-style.js +18 -0
- package/dist/vendor/bootstrap-vue/src/mixins/use-parent.js +14 -0
- package/dist/vendor/bootstrap-vue/src/utils/array.js +27 -0
- package/dist/vendor/bootstrap-vue/src/utils/bv-event.class.js +60 -0
- package/dist/vendor/bootstrap-vue/src/utils/cache.js +60 -0
- package/dist/vendor/bootstrap-vue/src/utils/clone-deep.js +18 -0
- package/dist/vendor/bootstrap-vue/src/utils/config-set.js +86 -0
- package/dist/vendor/bootstrap-vue/src/utils/config.js +71 -0
- package/dist/vendor/bootstrap-vue/src/utils/create-new-child-component.js +133 -0
- package/dist/vendor/bootstrap-vue/src/utils/css-escape.js +70 -0
- package/dist/vendor/bootstrap-vue/src/utils/dom.js +298 -0
- package/dist/vendor/bootstrap-vue/src/utils/element-to-vue-instance-registry.js +28 -0
- package/dist/vendor/bootstrap-vue/src/utils/env.js +16 -0
- package/dist/vendor/bootstrap-vue/src/utils/events.js +78 -0
- package/dist/vendor/bootstrap-vue/src/utils/get-event-root.js +5 -0
- package/dist/vendor/bootstrap-vue/src/utils/get-instance-from-directive.js +3 -0
- package/dist/vendor/bootstrap-vue/src/utils/get-scope-id.js +9 -0
- package/dist/vendor/bootstrap-vue/src/utils/get.js +63 -0
- package/dist/vendor/bootstrap-vue/src/utils/html.js +16 -0
- package/dist/vendor/bootstrap-vue/src/utils/identity.js +3 -0
- package/dist/vendor/bootstrap-vue/src/utils/inspect.js +35 -0
- package/dist/vendor/bootstrap-vue/src/utils/locale.js +18 -0
- package/dist/vendor/bootstrap-vue/src/utils/loose-equal.js +59 -0
- package/dist/vendor/bootstrap-vue/src/utils/loose-index-of.js +13 -0
- package/dist/vendor/bootstrap-vue/src/utils/math.js +9 -0
- package/dist/vendor/bootstrap-vue/src/utils/memoize.js +14 -0
- package/dist/vendor/bootstrap-vue/src/utils/model.js +33 -0
- package/dist/vendor/bootstrap-vue/src/utils/noop.js +3 -0
- package/dist/vendor/bootstrap-vue/src/utils/normalize-slot.js +51 -0
- package/dist/vendor/bootstrap-vue/src/utils/number.js +23 -0
- package/dist/vendor/bootstrap-vue/src/utils/object.js +72 -0
- package/dist/vendor/bootstrap-vue/src/utils/observe-dom.js +76 -0
- package/dist/vendor/bootstrap-vue/src/utils/on-instance-destroy.js +22 -0
- package/dist/vendor/bootstrap-vue/src/utils/plugins.js +124 -0
- package/dist/vendor/bootstrap-vue/src/utils/props.js +67 -0
- package/dist/vendor/bootstrap-vue/src/utils/router.js +150 -0
- package/dist/vendor/bootstrap-vue/src/utils/safe-vue-instance.js +14 -0
- package/dist/vendor/bootstrap-vue/src/utils/stable-sort.js +28 -0
- package/dist/vendor/bootstrap-vue/src/utils/string.js +47 -0
- package/dist/vendor/bootstrap-vue/src/utils/stringify-object-values.js +31 -0
- package/dist/vendor/bootstrap-vue/src/utils/warn.js +45 -0
- package/dist/vendor/bootstrap-vue/src/vue.js +55 -0
- package/package.json +6 -5
- package/src/components/base/link/link.vue +5 -8
- package/src/utils/constants.js +0 -3
- package/src/utils/vue_utils.js +56 -0
- package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +2 -2
- package/src/vendor/bootstrap-vue/src/components/form-group/form-group.js +2 -2
- package/src/vendor/bootstrap-vue/src/components/layout/col.js +2 -2
- package/src/vendor/bootstrap-vue/src/components/modal/modal.js +219 -52
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +30 -11
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +3 -3
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +1 -2
- package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +4 -4
- package/src/vendor/bootstrap-vue/src/components/table/helpers/sanitize-row.js +2 -3
- package/src/vendor/bootstrap-vue/src/components/tabs/tabs.js +2 -2
- package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +8 -9
- package/src/vendor/bootstrap-vue/src/constants/config.js +2 -2
- package/src/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +1 -1
- package/src/vendor/bootstrap-vue/src/mixins/listen-on-document.js +1 -2
- package/src/vendor/bootstrap-vue/src/mixins/listen-on-root.js +1 -2
- package/src/vendor/bootstrap-vue/src/mixins/listen-on-window.js +1 -2
- package/src/vendor/bootstrap-vue/src/utils/array.js +0 -1
- package/src/vendor/bootstrap-vue/src/utils/locale.js +1 -2
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { PROP_TYPE_ANY } from '../constants/props';
|
|
2
|
+
import { identity } from './identity';
|
|
3
|
+
import { isUndefined, isObject, isArray } from './inspect';
|
|
4
|
+
import { hasOwnProperty, clone, keys } from './object';
|
|
5
|
+
import { upperFirst } from './string';
|
|
6
|
+
|
|
7
|
+
// Suffix can be a falsey value so nothing is appended to string
|
|
8
|
+
// (helps when looping over props & some shouldn't change)
|
|
9
|
+
// Use data last parameters to allow for currying
|
|
10
|
+
const suffixPropName = (suffix, value) => value + (suffix ? upperFirst(suffix) : '');
|
|
11
|
+
|
|
12
|
+
// Generates a prop object
|
|
13
|
+
const makeProp = function () {
|
|
14
|
+
let type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : PROP_TYPE_ANY;
|
|
15
|
+
let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
16
|
+
let requiredOrValidator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
17
|
+
let validator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;
|
|
18
|
+
const required = requiredOrValidator === true;
|
|
19
|
+
validator = required ? validator : requiredOrValidator;
|
|
20
|
+
return {
|
|
21
|
+
...(type ? {
|
|
22
|
+
type
|
|
23
|
+
} : {}),
|
|
24
|
+
...(required ? {
|
|
25
|
+
required
|
|
26
|
+
} : isUndefined(value) ? {} : {
|
|
27
|
+
default: isObject(value) ? () => value : value
|
|
28
|
+
}),
|
|
29
|
+
...(isUndefined(validator) ? {} : {
|
|
30
|
+
validator
|
|
31
|
+
})
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// Copies props from one array/object to a new array/object
|
|
36
|
+
// Prop values are also cloned as new references to prevent possible
|
|
37
|
+
// mutation of original prop object values
|
|
38
|
+
// Optionally accepts a function to transform the prop name
|
|
39
|
+
const copyProps = function (props) {
|
|
40
|
+
let transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;
|
|
41
|
+
if (isArray(props)) {
|
|
42
|
+
return props.map(transformFn);
|
|
43
|
+
}
|
|
44
|
+
const copied = {};
|
|
45
|
+
for (const prop in props) {
|
|
46
|
+
/* istanbul ignore else */
|
|
47
|
+
if (hasOwnProperty(props, prop)) {
|
|
48
|
+
// If the prop value is an object, do a shallow clone
|
|
49
|
+
// to prevent potential mutations to the original object
|
|
50
|
+
copied[transformFn(prop)] = isObject(props[prop]) ? clone(props[prop]) : props[prop];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return copied;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// Given an array of properties or an object of property keys,
|
|
57
|
+
// plucks all the values off the target object, returning a new object
|
|
58
|
+
// that has props that reference the original prop values
|
|
59
|
+
const pluckProps = function (keysToPluck, objToPluck) {
|
|
60
|
+
let transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;
|
|
61
|
+
return (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce((memo, prop) => {
|
|
62
|
+
memo[transformFn(prop)] = objToPluck[prop];
|
|
63
|
+
return memo;
|
|
64
|
+
}, {});
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export { copyProps, makeProp, pluckProps, suffixPropName };
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { RX_QUERY_START, RX_PLUS, RX_ENCODE_REVERSE, RX_ENCODED_COMMA } from '../constants/regex';
|
|
2
|
+
import { isVue3 } from '../vue';
|
|
3
|
+
import { isTag } from './dom';
|
|
4
|
+
import { isPlainObject, isUndefined, isNull, isArray, isString } from './inspect';
|
|
5
|
+
import { keys } from './object';
|
|
6
|
+
import { safeVueInstance } from './safe-vue-instance';
|
|
7
|
+
import { toString } from './string';
|
|
8
|
+
|
|
9
|
+
const ANCHOR_TAG = 'a';
|
|
10
|
+
|
|
11
|
+
// Method to replace reserved chars
|
|
12
|
+
const encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);
|
|
13
|
+
|
|
14
|
+
// Fixed encodeURIComponent which is more conformant to RFC3986:
|
|
15
|
+
// - escapes [!'()*]
|
|
16
|
+
// - preserve commas
|
|
17
|
+
const encode = str => encodeURIComponent(toString(str)).replace(RX_ENCODE_REVERSE, encodeReserveReplacer).replace(RX_ENCODED_COMMA, ',');
|
|
18
|
+
const decode = decodeURIComponent;
|
|
19
|
+
|
|
20
|
+
// Stringifies an object of query parameters
|
|
21
|
+
// See: https://github.com/vuejs/vue-router/blob/dev/src/util/query.js
|
|
22
|
+
const stringifyQueryObj = obj => {
|
|
23
|
+
if (!isPlainObject(obj)) {
|
|
24
|
+
return '';
|
|
25
|
+
}
|
|
26
|
+
const query = keys(obj).map(key => {
|
|
27
|
+
const value = obj[key];
|
|
28
|
+
if (isUndefined(value)) {
|
|
29
|
+
return '';
|
|
30
|
+
} else if (isNull(value)) {
|
|
31
|
+
return encode(key);
|
|
32
|
+
} else if (isArray(value)) {
|
|
33
|
+
return value.reduce((results, value2) => {
|
|
34
|
+
if (isNull(value2)) {
|
|
35
|
+
results.push(encode(key));
|
|
36
|
+
} else if (!isUndefined(value2)) {
|
|
37
|
+
// Faster than string interpolation
|
|
38
|
+
results.push(encode(key) + '=' + encode(value2));
|
|
39
|
+
}
|
|
40
|
+
return results;
|
|
41
|
+
}, []).join('&');
|
|
42
|
+
}
|
|
43
|
+
// Faster than string interpolation
|
|
44
|
+
return encode(key) + '=' + encode(value);
|
|
45
|
+
})
|
|
46
|
+
/* must check for length, as we only want to filter empty strings, not things that look falsey! */.filter(x => x.length > 0).join('&');
|
|
47
|
+
return query ? `?${query}` : '';
|
|
48
|
+
};
|
|
49
|
+
const parseQuery = query => {
|
|
50
|
+
const parsed = {};
|
|
51
|
+
query = toString(query).trim().replace(RX_QUERY_START, '');
|
|
52
|
+
if (!query) {
|
|
53
|
+
return parsed;
|
|
54
|
+
}
|
|
55
|
+
query.split('&').forEach(param => {
|
|
56
|
+
const parts = param.replace(RX_PLUS, ' ').split('=');
|
|
57
|
+
const key = decode(parts.shift());
|
|
58
|
+
const value = parts.length > 0 ? decode(parts.join('=')) : null;
|
|
59
|
+
if (isUndefined(parsed[key])) {
|
|
60
|
+
parsed[key] = value;
|
|
61
|
+
} else if (isArray(parsed[key])) {
|
|
62
|
+
parsed[key].push(value);
|
|
63
|
+
} else {
|
|
64
|
+
parsed[key] = [parsed[key], value];
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
return parsed;
|
|
68
|
+
};
|
|
69
|
+
const isLink = props => !!(props.href || props.to);
|
|
70
|
+
const routerLink = {
|
|
71
|
+
functional: true,
|
|
72
|
+
_name: 'router-link',
|
|
73
|
+
render(h, ctx) {
|
|
74
|
+
// $hasNormal is Vue.js 2 legacy way to check if default slot is scoped or not
|
|
75
|
+
// in bootstrap-vue codebase we never use scoped slots router-link rendering
|
|
76
|
+
return h('router-link', ctx.data, {
|
|
77
|
+
...ctx.children,
|
|
78
|
+
$hasNormal: true
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const isRouterLink = tag => !!(tag && !isTag(tag, 'a'));
|
|
83
|
+
const computeTag = (_ref, thisOrParent) => {
|
|
84
|
+
let {
|
|
85
|
+
to,
|
|
86
|
+
disabled,
|
|
87
|
+
routerComponentName
|
|
88
|
+
} = _ref;
|
|
89
|
+
const hasRouter = !!safeVueInstance(thisOrParent).$router;
|
|
90
|
+
const hasNuxt = !!safeVueInstance(thisOrParent).$nuxt;
|
|
91
|
+
if (!hasRouter || hasRouter && (disabled || !to)) {
|
|
92
|
+
return ANCHOR_TAG;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// TODO:
|
|
96
|
+
// Check registered components for existence of user supplied router link component name
|
|
97
|
+
// We would need to check PascalCase, kebab-case, and camelCase versions of name:
|
|
98
|
+
// const name = routerComponentName
|
|
99
|
+
// const names = [name, PascalCase(name), KebabCase(name), CamelCase(name)]
|
|
100
|
+
// exists = names.some(name => !!thisOrParent.$options.components[name])
|
|
101
|
+
// And may want to cache the result for performance or we just let the render fail
|
|
102
|
+
// if the component is not registered
|
|
103
|
+
const actualRouterLink = isVue3(thisOrParent) ? routerLink : 'router-link';
|
|
104
|
+
return routerComponentName || (hasNuxt ? 'nuxt-link' : actualRouterLink);
|
|
105
|
+
};
|
|
106
|
+
const computeRel = function () {
|
|
107
|
+
let {
|
|
108
|
+
target,
|
|
109
|
+
rel
|
|
110
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
111
|
+
return target === '_blank' && isNull(rel) ? 'noopener' : rel || null;
|
|
112
|
+
};
|
|
113
|
+
const computeHref = function () {
|
|
114
|
+
let {
|
|
115
|
+
href,
|
|
116
|
+
to
|
|
117
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
118
|
+
let tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ANCHOR_TAG;
|
|
119
|
+
let fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '#';
|
|
120
|
+
let toFallback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '/';
|
|
121
|
+
// Return `href` when explicitly provided
|
|
122
|
+
if (href) {
|
|
123
|
+
return href;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// We've checked for `$router` in `computeTag()`, so `isRouterLink()` indicates a live router
|
|
127
|
+
// When deferring to Vue Router's `<router-link>`, don't use the `href` attribute at all
|
|
128
|
+
// We return `null`, and then remove `href` from the attributes passed to `<router-link>`
|
|
129
|
+
if (isRouterLink(tag)) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Fallback to `to` prop (if `to` is a string)
|
|
134
|
+
if (isString(to)) {
|
|
135
|
+
return to || toFallback;
|
|
136
|
+
}
|
|
137
|
+
// Fallback to `to.path' + `to.query` + `to.hash` prop (if `to` is an object)
|
|
138
|
+
if (isPlainObject(to) && (to.path || to.query || to.hash)) {
|
|
139
|
+
const path = toString(to.path);
|
|
140
|
+
const query = stringifyQueryObj(to.query);
|
|
141
|
+
let hash = toString(to.hash);
|
|
142
|
+
hash = !hash || hash.charAt(0) === '#' ? hash : `#${hash}`;
|
|
143
|
+
return `${path}${query}${hash}` || toFallback;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// If nothing is provided return the fallback
|
|
147
|
+
return fallback;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
export { computeHref, computeRel, computeTag, isLink, isRouterLink, parseQuery, stringifyQueryObj };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { isVue3 } from '../vue';
|
|
2
|
+
|
|
3
|
+
function safeVueInstance(target) {
|
|
4
|
+
if (!isVue3(target)) {
|
|
5
|
+
return target;
|
|
6
|
+
}
|
|
7
|
+
return new Proxy(target, {
|
|
8
|
+
get(target, prop) {
|
|
9
|
+
return prop in target ? target[prop] : undefined;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { safeVueInstance };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Consistent and stable sort function across JavaScript platforms
|
|
3
|
+
*
|
|
4
|
+
* Inconsistent sorts can cause SSR problems between client and server
|
|
5
|
+
* such as in <b-table> if sortBy is applied to the data on server side render.
|
|
6
|
+
* Chrome and V8 native sorts are inconsistent/unstable
|
|
7
|
+
*
|
|
8
|
+
* This function uses native sort with fallback to index compare when the a and b
|
|
9
|
+
* compare returns 0
|
|
10
|
+
*
|
|
11
|
+
* Algorithm based on:
|
|
12
|
+
* https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645
|
|
13
|
+
*
|
|
14
|
+
* @param {array} array to sort
|
|
15
|
+
* @param {function} sort compare function
|
|
16
|
+
* @return {array}
|
|
17
|
+
*/
|
|
18
|
+
const stableSort = (array, compareFn) => {
|
|
19
|
+
// Using `.bind(compareFn)` on the wrapped anonymous function improves
|
|
20
|
+
// performance by avoiding the function call setup. We don't use an arrow
|
|
21
|
+
// function here as it binds `this` to the `stableSort` context rather than
|
|
22
|
+
// the `compareFn` context, which wouldn't give us the performance increase.
|
|
23
|
+
return array.map((a, index) => [index, a]).sort(function (a, b) {
|
|
24
|
+
return this(a[1], b[1]) || a[0] - b[0];
|
|
25
|
+
}.bind(compareFn)).map(e => e[1]);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { stableSort };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { RX_HYPHENATE, RX_UNDERSCORE, RX_LOWER_UPPER, RX_START_SPACE_WORD, RX_REGEXP_REPLACE, RX_TRIM_LEFT, RX_TRIM_RIGHT } from '../constants/regex';
|
|
2
|
+
import { isString, isUndefinedOrNull, isArray, isPlainObject } from './inspect';
|
|
3
|
+
|
|
4
|
+
// String utilities
|
|
5
|
+
|
|
6
|
+
// --- Utilities ---
|
|
7
|
+
|
|
8
|
+
// Converts PascalCase or camelCase to kebab-case
|
|
9
|
+
const kebabCase = str => {
|
|
10
|
+
return str.replace(RX_HYPHENATE, '-$1').toLowerCase();
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// Converts a string, including strings in camelCase or snake_case, into Start Case
|
|
14
|
+
// It keeps original single quote and hyphen in the word
|
|
15
|
+
// https://github.com/UrbanCompass/to-start-case
|
|
16
|
+
const startCase = str => str.replace(RX_UNDERSCORE, ' ').replace(RX_LOWER_UPPER, (str, $1, $2) => $1 + ' ' + $2).replace(RX_START_SPACE_WORD, (str, $1, $2) => $1 + $2.toUpperCase());
|
|
17
|
+
|
|
18
|
+
// Uppercases the first letter of a string and returns a new string
|
|
19
|
+
const upperFirst = str => {
|
|
20
|
+
str = isString(str) ? str.trim() : String(str);
|
|
21
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// Escape characters to be used in building a regular expression
|
|
25
|
+
const escapeRegExp = str => str.replace(RX_REGEXP_REPLACE, '\\$&');
|
|
26
|
+
|
|
27
|
+
// Convert a value to a string that can be rendered
|
|
28
|
+
// `undefined`/`null` will be converted to `''`
|
|
29
|
+
// Plain objects and arrays will be JSON stringified
|
|
30
|
+
const toString = function (val) {
|
|
31
|
+
let spaces = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
|
|
32
|
+
return isUndefinedOrNull(val) ? '' : isArray(val) || isPlainObject(val) && val.toString === Object.prototype.toString ? JSON.stringify(val, null, spaces) : String(val);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// Remove leading white space from a string
|
|
36
|
+
const trimLeft = str => toString(str).replace(RX_TRIM_LEFT, '');
|
|
37
|
+
|
|
38
|
+
// Remove Trailing white space from a string
|
|
39
|
+
const trimRight = str => toString(str).replace(RX_TRIM_RIGHT, '');
|
|
40
|
+
|
|
41
|
+
// Remove leading and trailing white space from a string
|
|
42
|
+
const trim = str => toString(str).trim();
|
|
43
|
+
|
|
44
|
+
// Lower case a string
|
|
45
|
+
const lowerCase = str => toString(str).toLowerCase();
|
|
46
|
+
|
|
47
|
+
export { escapeRegExp, kebabCase, lowerCase, startCase, toString, trim, trimLeft, trimRight, upperFirst };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { isUndefinedOrNull, isObject, isDate } from './inspect';
|
|
2
|
+
import { keys } from './object';
|
|
3
|
+
import { toString } from './string';
|
|
4
|
+
|
|
5
|
+
// Recursively stringifies the values of an object, space separated, in an
|
|
6
|
+
// SSR safe deterministic way (keys are sorted before stringification)
|
|
7
|
+
//
|
|
8
|
+
// ex:
|
|
9
|
+
// { b: 3, c: { z: 'zzz', d: null, e: 2 }, d: [10, 12, 11], a: 'one' }
|
|
10
|
+
// becomes
|
|
11
|
+
// 'one 3 2 zzz 10 12 11'
|
|
12
|
+
//
|
|
13
|
+
// Strings are returned as-is
|
|
14
|
+
// Numbers get converted to string
|
|
15
|
+
// `null` and `undefined` values are filtered out
|
|
16
|
+
// Dates are converted to their native string format
|
|
17
|
+
const stringifyObjectValues = value => {
|
|
18
|
+
if (isUndefinedOrNull(value)) {
|
|
19
|
+
return '';
|
|
20
|
+
}
|
|
21
|
+
// Arrays are also object, and keys just returns the array indexes
|
|
22
|
+
// Date objects we convert to strings
|
|
23
|
+
if (isObject(value) && !isDate(value)) {
|
|
24
|
+
return keys(value).sort() // Sort to prevent SSR issues on pre-rendered sorted tables
|
|
25
|
+
.map(k => stringifyObjectValues(value[k])).filter(v => !!v) // Ignore empty strings
|
|
26
|
+
.join(' ');
|
|
27
|
+
}
|
|
28
|
+
return toString(value);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { stringifyObjectValues };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { IS_BROWSER, HAS_MUTATION_OBSERVER_SUPPORT } from '../constants/env';
|
|
2
|
+
import { getNoWarn } from './env';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Log a warning message to the console with BootstrapVue formatting
|
|
6
|
+
* @param {string} message
|
|
7
|
+
*/
|
|
8
|
+
const warn = function (message) /* istanbul ignore next */{
|
|
9
|
+
let source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
10
|
+
if (!getNoWarn()) {
|
|
11
|
+
console.warn(`[BootstrapVue warn]: ${source ? `${source} - ` : ''}${message}`);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Warn when no Promise support is given
|
|
17
|
+
* @param {string} source
|
|
18
|
+
* @returns {boolean} warned
|
|
19
|
+
*/
|
|
20
|
+
const warnNotClient = source => {
|
|
21
|
+
/* istanbul ignore else */
|
|
22
|
+
if (IS_BROWSER) {
|
|
23
|
+
return false;
|
|
24
|
+
} else {
|
|
25
|
+
warn(`${source}: Can not be called during SSR.`);
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Warn when no MutationObserver support is given
|
|
32
|
+
* @param {string} source
|
|
33
|
+
* @returns {boolean} warned
|
|
34
|
+
*/
|
|
35
|
+
const warnNoMutationObserverSupport = source => {
|
|
36
|
+
/* istanbul ignore else */
|
|
37
|
+
if (HAS_MUTATION_OBSERVER_SUPPORT) {
|
|
38
|
+
return false;
|
|
39
|
+
} else {
|
|
40
|
+
warn(`${source}: Requires MutationObserver support.`);
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export { warn, warnNoMutationObserverSupport, warnNotClient };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import Vue from 'vue';
|
|
2
|
+
import { mergeData as mergeData$1 } from 'vue-functional-data-merge';
|
|
3
|
+
|
|
4
|
+
// --- Constants ---
|
|
5
|
+
const COMPONENT_UID_KEY = '_uid';
|
|
6
|
+
const isGlobalVue3 = Vue.version.startsWith('3');
|
|
7
|
+
const REF_FOR_KEY = isGlobalVue3 ? 'ref_for' : 'refInFor';
|
|
8
|
+
if (isGlobalVue3) {
|
|
9
|
+
const originalVModelDynamicCreated = Vue.vModelDynamic.created;
|
|
10
|
+
const originalVModelDynamicBeforeUpdate = Vue.vModelDynamic.beforeUpdate;
|
|
11
|
+
let assignSymbol;
|
|
12
|
+
|
|
13
|
+
// See https://github.com/vuejs/vue-next/pull/4121 for details
|
|
14
|
+
Vue.vModelDynamic.created = function (el, binding, vnode) {
|
|
15
|
+
originalVModelDynamicCreated.call(this, el, binding, vnode);
|
|
16
|
+
if (!el._assign) {
|
|
17
|
+
el._assign = () => {};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Added check for Symbol('_assign') to fix in compat 3.3.5+ based on https://github.com/bootstrap-vue/bootstrap-vue/issues/7181
|
|
21
|
+
if (!assignSymbol) {
|
|
22
|
+
assignSymbol = Object.getOwnPropertySymbols(el).find(s => s.description === '_assign');
|
|
23
|
+
}
|
|
24
|
+
if (!el[assignSymbol]) {
|
|
25
|
+
el[assignSymbol] = function () {};
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
Vue.vModelDynamic.beforeUpdate = function (el, binding, vnode) {
|
|
29
|
+
originalVModelDynamicBeforeUpdate.call(this, el, binding, vnode);
|
|
30
|
+
if (!el._assign) {
|
|
31
|
+
el._assign = () => {};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Added check for Symbol('_assign') to fix in 3.3.5+ based on https://github.com/bootstrap-vue/bootstrap-vue/issues/7181
|
|
35
|
+
if (!assignSymbol) {
|
|
36
|
+
assignSymbol = Object.getOwnPropertySymbols(el).find(s => s.description === '_assign');
|
|
37
|
+
}
|
|
38
|
+
if (!el[assignSymbol]) {
|
|
39
|
+
el[assignSymbol] = function () {};
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const isVue3 = instance => Boolean(instance.$);
|
|
44
|
+
const extend = Vue.extend.bind(Vue);
|
|
45
|
+
function mergeData() {
|
|
46
|
+
var _result$attrs, _result$props;
|
|
47
|
+
const result = mergeData$1(...arguments);
|
|
48
|
+
return {
|
|
49
|
+
...result,
|
|
50
|
+
...((_result$attrs = result.attrs) !== null && _result$attrs !== void 0 ? _result$attrs : {}),
|
|
51
|
+
...((_result$props = result.props) !== null && _result$props !== void 0 ? _result$props : {})
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export { COMPONENT_UID_KEY, REF_FOR_KEY, extend, isGlobalVue3, isVue3, mergeData };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gitlab/ui",
|
|
3
|
-
"version": "132.0.
|
|
3
|
+
"version": "132.0.2",
|
|
4
4
|
"description": "GitLab UI Components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"scripts": {
|
|
37
37
|
"build": "NODE_ENV=production rollup -c",
|
|
38
38
|
"prebuild": "yarn build-tokens",
|
|
39
|
+
"prepack": "yarn build",
|
|
39
40
|
"copy-fonts": "make copy-fonts",
|
|
40
41
|
"build-tokens": "make tokens",
|
|
41
42
|
"sync-tokens": "node --env-file=.figma.env bin/figma_sync_tokens.mjs",
|
|
@@ -90,7 +91,7 @@
|
|
|
90
91
|
"chokidar": "^4.0.3",
|
|
91
92
|
"sane": "^5.0.1",
|
|
92
93
|
"jackspeak": "2.1.1",
|
|
93
|
-
"postcss": "8.5.
|
|
94
|
+
"postcss": "8.5.10",
|
|
94
95
|
"json5": "2.2.3",
|
|
95
96
|
"rollup-plugin-vue/@vue/component-compiler/postcss-modules-sync/generic-names/loader-utils": "3.3.1"
|
|
96
97
|
},
|
|
@@ -133,10 +134,10 @@
|
|
|
133
134
|
"@yarnpkg/lockfile": "^1.1.0",
|
|
134
135
|
"acorn": "^8.16.0",
|
|
135
136
|
"acorn-walk": "^8.3.5",
|
|
136
|
-
"autoprefixer": "10.
|
|
137
|
+
"autoprefixer": "10.5.0",
|
|
137
138
|
"axe-playwright": "^2.2.2",
|
|
138
139
|
"babel-loader": "^9.2.1",
|
|
139
|
-
"cypress": "15.
|
|
140
|
+
"cypress": "15.14.0",
|
|
140
141
|
"cypress-real-events": "^1.15.0",
|
|
141
142
|
"dompurify": "^3.1.2",
|
|
142
143
|
"emoji-regex": "^10.6.0",
|
|
@@ -153,7 +154,7 @@
|
|
|
153
154
|
"pikaday": "^1.8.0",
|
|
154
155
|
"playwright": "^1.59.1",
|
|
155
156
|
"playwright-core": "^1.59.1",
|
|
156
|
-
"postcss": "8.5.
|
|
157
|
+
"postcss": "8.5.10",
|
|
157
158
|
"postcss-loader": "8.2.1",
|
|
158
159
|
"postcss-scss": "4.0.9",
|
|
159
160
|
"react": "18.3.1",
|
|
@@ -2,16 +2,13 @@
|
|
|
2
2
|
import { isFunction, isString, isObject, toString, isBoolean, concat } from 'lodash-es';
|
|
3
3
|
import { SafeLinkDirective, isExternalURL } from '../../../directives/safe_link/safe_link';
|
|
4
4
|
import { stopEvent } from '../../../utils/utils';
|
|
5
|
-
import {
|
|
5
|
+
import { isVue3, safeVueInstance } from '../../../utils/vue_utils';
|
|
6
6
|
import { stringifyQueryObj } from '../../../vendor/bootstrap-vue/src/utils/router';
|
|
7
|
-
import { safeVueInstance } from '../../../vendor/bootstrap-vue/src/utils/safe-vue-instance';
|
|
8
|
-
import { attemptFocus, attemptBlur } from '../../../vendor/bootstrap-vue/src/utils/dom';
|
|
9
7
|
import {
|
|
10
8
|
linkVariantOptions,
|
|
11
9
|
linkVariantInline,
|
|
12
10
|
linkVariantMeta,
|
|
13
11
|
linkVariantUnstyled,
|
|
14
|
-
isVue3,
|
|
15
12
|
} from '../../../utils/constants';
|
|
16
13
|
|
|
17
14
|
const ANCHOR_TAG = 'a';
|
|
@@ -162,7 +159,7 @@ export default {
|
|
|
162
159
|
return this.tag !== ANCHOR_TAG;
|
|
163
160
|
},
|
|
164
161
|
isVue3RouterLink() {
|
|
165
|
-
return this.tag === VUE_ROUTER_LINK_TAG && isVue3;
|
|
162
|
+
return this.tag === VUE_ROUTER_LINK_TAG && isVue3(this);
|
|
166
163
|
},
|
|
167
164
|
shouldShowExternalIcon() {
|
|
168
165
|
const allowedVariants = [linkVariantInline, linkVariantMeta, null]; // null represents default/UI variant
|
|
@@ -250,7 +247,7 @@ export default {
|
|
|
250
247
|
},
|
|
251
248
|
methods: {
|
|
252
249
|
onClick(event, navigate) {
|
|
253
|
-
const eventIsEvent =
|
|
250
|
+
const eventIsEvent = event instanceof Event;
|
|
254
251
|
const suppliedHandler = this.$listeners.click;
|
|
255
252
|
|
|
256
253
|
if (eventIsEvent && this.disabled) {
|
|
@@ -292,10 +289,10 @@ export default {
|
|
|
292
289
|
}
|
|
293
290
|
},
|
|
294
291
|
focus() {
|
|
295
|
-
|
|
292
|
+
this.$el.focus();
|
|
296
293
|
},
|
|
297
294
|
blur() {
|
|
298
|
-
|
|
295
|
+
this.$el.blur();
|
|
299
296
|
},
|
|
300
297
|
},
|
|
301
298
|
};
|
package/src/utils/constants.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import Vue from 'vue';
|
|
2
1
|
import { POSITION } from '../components/utilities/truncate/constants';
|
|
3
2
|
|
|
4
3
|
export const COMMA = ',';
|
|
@@ -385,5 +384,3 @@ export const loadingIconVariants = {
|
|
|
385
384
|
spinner: 'spinner',
|
|
386
385
|
dots: 'dots',
|
|
387
386
|
};
|
|
388
|
-
|
|
389
|
-
export const isVue3 = Boolean(Vue.Fragment);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import Vue from 'vue';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Checks whether the global Vue version is Vue 3 (or the Vue 3 compat build).
|
|
5
|
+
*
|
|
6
|
+
* Use this for module-level checks where no component instance is available,
|
|
7
|
+
* such as conditional test logic or static configuration.
|
|
8
|
+
*
|
|
9
|
+
* @type {boolean}
|
|
10
|
+
*/
|
|
11
|
+
export const isGlobalVue3 = Boolean(Vue.Fragment);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Checks whether a component instance is running under Vue 3 (or compat mode).
|
|
15
|
+
*
|
|
16
|
+
* In Vue 3, component instances expose an internal `$` property that holds
|
|
17
|
+
* the component's internal instance. This property does not exist in Vue 2.
|
|
18
|
+
*
|
|
19
|
+
* Prefer this over {@link isGlobalVue3} when you have access to a component
|
|
20
|
+
* instance, as it checks at the instance level rather than the global level.
|
|
21
|
+
*
|
|
22
|
+
* @param {object} instance - The Vue component instance (`this`).
|
|
23
|
+
* @returns {boolean} `true` if the instance is a Vue 3 component.
|
|
24
|
+
*/
|
|
25
|
+
export const isVue3 = (instance) => Boolean(instance.$);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Wraps a Vue component instance to safely access properties without
|
|
29
|
+
* triggering Vue 3 development warnings.
|
|
30
|
+
*
|
|
31
|
+
* In Vue 3 (and compat mode), component instances are Proxies. Accessing a
|
|
32
|
+
* property that doesn't exist on the instance (e.g. `this.$router` when no
|
|
33
|
+
* router is installed) triggers a development warning from Vue's `get` trap:
|
|
34
|
+
* "Property X was accessed during render but is not defined on instance."
|
|
35
|
+
*
|
|
36
|
+
* This utility returns a Proxy that uses the `in` operator (which hits Vue's
|
|
37
|
+
* `has` trap, which is silent) to check for property existence before accessing
|
|
38
|
+
* it. If the property doesn't exist, `undefined` is returned without ever
|
|
39
|
+
* hitting Vue's `get` trap.
|
|
40
|
+
*
|
|
41
|
+
* In Vue 2, the instance is returned as-is since there are no Proxy warnings.
|
|
42
|
+
*
|
|
43
|
+
* @param {object} target - The Vue component instance (`this`).
|
|
44
|
+
* @returns {object} The original instance (Vue 2) or a safe Proxy wrapper (Vue 3).
|
|
45
|
+
*/
|
|
46
|
+
export function safeVueInstance(target) {
|
|
47
|
+
if (!isVue3(target)) {
|
|
48
|
+
return target;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return new Proxy(target, {
|
|
52
|
+
get(obj, prop) {
|
|
53
|
+
return prop in obj ? obj[prop] : undefined;
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
PROP_TYPE_STRING
|
|
8
8
|
} from '../../constants/props'
|
|
9
9
|
import { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots'
|
|
10
|
-
|
|
10
|
+
|
|
11
11
|
import { htmlOrText } from '../../utils/html'
|
|
12
12
|
import { toString } from '../../utils/string'
|
|
13
13
|
import { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown'
|
|
@@ -67,7 +67,7 @@ export const props = sortKeys({
|
|
|
67
67
|
required: false,
|
|
68
68
|
default: 'button',
|
|
69
69
|
validator: value => {
|
|
70
|
-
return
|
|
70
|
+
return ['button', 'submit', 'reset'].includes(value)
|
|
71
71
|
}
|
|
72
72
|
},
|
|
73
73
|
splitClass: {
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
SLOT_NAME_LABEL,
|
|
15
15
|
SLOT_NAME_VALID_FEEDBACK
|
|
16
16
|
} from '../../constants/slots'
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
import { getBreakpointsUpCached } from '../../utils/config'
|
|
19
19
|
import { cssEscape } from '../../utils/css-escape'
|
|
20
20
|
import {
|
|
@@ -185,7 +185,7 @@ export const BFormGroup = {
|
|
|
185
185
|
// and ensuring the ID's are unique
|
|
186
186
|
const ids = (getAttr($input, attr) || '')
|
|
187
187
|
.split(RX_SPACE_SPLIT)
|
|
188
|
-
.filter(id => !
|
|
188
|
+
.filter(id => !oldIds.includes(id))
|
|
189
189
|
.concat(newIds)
|
|
190
190
|
.filter((id, index, ids) => ids.indexOf(id) === index)
|
|
191
191
|
.filter(identity)
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
PROP_TYPE_STRING
|
|
8
8
|
} from '../../constants/props'
|
|
9
9
|
import { RX_COL_CLASS } from '../../constants/regex'
|
|
10
|
-
|
|
10
|
+
|
|
11
11
|
import { getBreakpointsUpCached } from '../../utils/config'
|
|
12
12
|
import { identity } from '../../utils/identity'
|
|
13
13
|
import { isUndefinedOrNull } from '../../utils/inspect'
|
|
@@ -89,7 +89,7 @@ export const generateProps = () => {
|
|
|
89
89
|
...breakpointOrder,
|
|
90
90
|
// Flex alignment
|
|
91
91
|
alignSelf: makeProp(PROP_TYPE_STRING, null, value => {
|
|
92
|
-
return
|
|
92
|
+
return ALIGN_SELF_VALUES.includes(value)
|
|
93
93
|
}),
|
|
94
94
|
// Generic flexbox 'col' (xs)
|
|
95
95
|
col: makeProp(PROP_TYPE_BOOLEAN, false),
|