@gitlab/ui 132.0.1 → 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 +4 -3
- 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 +2 -2
- 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/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,63 @@
|
|
|
1
|
+
import { RX_ARRAY_NOTATION } from '../constants/regex';
|
|
2
|
+
import { identity } from './identity';
|
|
3
|
+
import { isArray, isObject, isUndefinedOrNull, isNull } from './inspect';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Get property defined by dot/array notation in string, returns undefined if not found
|
|
7
|
+
*
|
|
8
|
+
* @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901
|
|
9
|
+
*
|
|
10
|
+
* @param {Object} obj
|
|
11
|
+
* @param {string|Array} path
|
|
12
|
+
* @return {*}
|
|
13
|
+
*/
|
|
14
|
+
const getRaw = function (obj, path) {
|
|
15
|
+
let defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
16
|
+
// Handle array of path values
|
|
17
|
+
path = isArray(path) ? path.join('.') : path;
|
|
18
|
+
|
|
19
|
+
// If no path or no object passed
|
|
20
|
+
if (!path || !isObject(obj)) {
|
|
21
|
+
return defaultValue;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Handle edge case where user has dot(s) in top-level item field key
|
|
25
|
+
// See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762
|
|
26
|
+
// Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters
|
|
27
|
+
// https://github.com/bootstrap-vue/bootstrap-vue/issues/3463
|
|
28
|
+
if (path in obj) {
|
|
29
|
+
return obj[path];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Handle string array notation (numeric indices only)
|
|
33
|
+
path = String(path).replace(RX_ARRAY_NOTATION, '.$1');
|
|
34
|
+
const steps = path.split('.').filter(identity);
|
|
35
|
+
|
|
36
|
+
// Handle case where someone passes a string of only dots
|
|
37
|
+
if (steps.length === 0) {
|
|
38
|
+
return defaultValue;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Traverse path in object to find result
|
|
42
|
+
// Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters
|
|
43
|
+
// https://github.com/bootstrap-vue/bootstrap-vue/issues/3463
|
|
44
|
+
return steps.every(step => isObject(obj) && step in obj && !isUndefinedOrNull(obj = obj[step])) ? obj : isNull(obj) ? null : defaultValue;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Get property defined by dot/array notation in string.
|
|
49
|
+
*
|
|
50
|
+
* @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901
|
|
51
|
+
*
|
|
52
|
+
* @param {Object} obj
|
|
53
|
+
* @param {string|Array} path
|
|
54
|
+
* @param {*} defaultValue (optional)
|
|
55
|
+
* @return {*}
|
|
56
|
+
*/
|
|
57
|
+
const get = function (obj, path) {
|
|
58
|
+
let defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
59
|
+
const value = getRaw(obj, path);
|
|
60
|
+
return isUndefinedOrNull(value) ? defaultValue : value;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export { get, getRaw };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RX_HTML_TAGS } from '../constants/regex';
|
|
2
|
+
|
|
3
|
+
// Removes anything that looks like an HTML tag from the supplied string
|
|
4
|
+
const stripTags = function () {
|
|
5
|
+
let text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
6
|
+
return String(text).replace(RX_HTML_TAGS, '');
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
// Generate a `domProps` object for either `innerHTML`, `textContent` or an empty object
|
|
10
|
+
const htmlOrText = (innerHTML, textContent) => innerHTML ? {
|
|
11
|
+
innerHTML
|
|
12
|
+
} : textContent ? {
|
|
13
|
+
textContent
|
|
14
|
+
} : {};
|
|
15
|
+
|
|
16
|
+
export { htmlOrText, stripTags };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { RX_NUMBER } from '../constants/regex';
|
|
2
|
+
import { File } from '../constants/safe-types';
|
|
3
|
+
|
|
4
|
+
// --- Convenience inspection utilities ---
|
|
5
|
+
|
|
6
|
+
const toType = value => typeof value;
|
|
7
|
+
const toRawType = value => Object.prototype.toString.call(value).slice(8, -1);
|
|
8
|
+
const toRawTypeLC = value => toRawType(value).toLowerCase();
|
|
9
|
+
const isUndefined = value => value === undefined;
|
|
10
|
+
const isNull = value => value === null;
|
|
11
|
+
const isUndefinedOrNull = value => isUndefined(value) || isNull(value);
|
|
12
|
+
const isFunction = value => toType(value) === 'function';
|
|
13
|
+
const isBoolean = value => toType(value) === 'boolean';
|
|
14
|
+
const isString = value => toType(value) === 'string';
|
|
15
|
+
const isNumber = value => toType(value) === 'number';
|
|
16
|
+
const isNumeric = value => RX_NUMBER.test(String(value));
|
|
17
|
+
const isPrimitive = value => isBoolean(value) || isString(value) || isNumber(value);
|
|
18
|
+
const isArray = value => Array.isArray(value);
|
|
19
|
+
|
|
20
|
+
// Quick object check
|
|
21
|
+
// This is primarily used to tell Objects from primitive values
|
|
22
|
+
// when we know the value is a JSON-compliant type
|
|
23
|
+
// Note object could be a complex type like array, Date, etc.
|
|
24
|
+
const isObject = obj => obj !== null && typeof obj === 'object';
|
|
25
|
+
|
|
26
|
+
// Strict object type check
|
|
27
|
+
// Only returns true for plain JavaScript objects
|
|
28
|
+
const isPlainObject = obj => Object.prototype.toString.call(obj) === '[object Object]';
|
|
29
|
+
const isDate = value => value instanceof Date;
|
|
30
|
+
const isEvent = value => value instanceof Event;
|
|
31
|
+
const isFile = value => value instanceof File;
|
|
32
|
+
const isRegExp = value => toRawType(value) === 'RegExp';
|
|
33
|
+
const isPromise = value => !isUndefinedOrNull(value) && isFunction(value.then) && isFunction(value.catch);
|
|
34
|
+
|
|
35
|
+
export { isArray, isBoolean, isDate, isEvent, isFile, isFunction, isNull, isNumber, isNumeric, isObject, isPlainObject, isPrimitive, isPromise, isRegExp, isString, isUndefined, isUndefinedOrNull, toRawType, toRawTypeLC, toType };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RX_STRIP_LOCALE_MODS } from '../constants/regex';
|
|
2
|
+
import { toString } from './string';
|
|
3
|
+
|
|
4
|
+
// Localization utilities
|
|
5
|
+
|
|
6
|
+
// Languages that are RTL
|
|
7
|
+
const RTL_LANGS = ['ar', 'az', 'ckb', 'fa', 'he', 'ks', 'lrc', 'mzn', 'ps', 'sd', 'te', 'ug', 'ur', 'yi'].map(locale => locale.toLowerCase());
|
|
8
|
+
|
|
9
|
+
// Returns true if the locale is RTL
|
|
10
|
+
const isLocaleRTL = locale => {
|
|
11
|
+
// Determines if the locale is RTL (only single locale supported)
|
|
12
|
+
const parts = toString(locale).toLowerCase().replace(RX_STRIP_LOCALE_MODS, '').split('-');
|
|
13
|
+
const locale1 = parts.slice(0, 2).join('-');
|
|
14
|
+
const locale2 = parts[0];
|
|
15
|
+
return RTL_LANGS.includes(locale1) || RTL_LANGS.includes(locale2);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { isLocaleRTL };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { keys, hasOwnProperty } from './object';
|
|
2
|
+
import { isDate, isArray, isObject } from './inspect';
|
|
3
|
+
|
|
4
|
+
// Assumes both a and b are arrays!
|
|
5
|
+
// Handles when arrays are "sparse" (array.every(...) doesn't handle sparse)
|
|
6
|
+
const compareArrays = (a, b) => {
|
|
7
|
+
if (a.length !== b.length) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
let equal = true;
|
|
11
|
+
for (let i = 0; equal && i < a.length; i++) {
|
|
12
|
+
equal = looseEqual(a[i], b[i]);
|
|
13
|
+
}
|
|
14
|
+
return equal;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Check if two values are loosely equal - that is,
|
|
19
|
+
* if they are plain objects, do they have the same shape?
|
|
20
|
+
* Returns boolean true or false
|
|
21
|
+
*/
|
|
22
|
+
const looseEqual = (a, b) => {
|
|
23
|
+
if (a === b) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
let aValidType = isDate(a);
|
|
27
|
+
let bValidType = isDate(b);
|
|
28
|
+
if (aValidType || bValidType) {
|
|
29
|
+
return aValidType && bValidType ? a.getTime() === b.getTime() : false;
|
|
30
|
+
}
|
|
31
|
+
aValidType = isArray(a);
|
|
32
|
+
bValidType = isArray(b);
|
|
33
|
+
if (aValidType || bValidType) {
|
|
34
|
+
return aValidType && bValidType ? compareArrays(a, b) : false;
|
|
35
|
+
}
|
|
36
|
+
aValidType = isObject(a);
|
|
37
|
+
bValidType = isObject(b);
|
|
38
|
+
if (aValidType || bValidType) {
|
|
39
|
+
/* istanbul ignore if: this if will probably never be called */
|
|
40
|
+
if (!aValidType || !bValidType) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const aKeysCount = keys(a).length;
|
|
44
|
+
const bKeysCount = keys(b).length;
|
|
45
|
+
if (aKeysCount !== bKeysCount) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
for (const key in a) {
|
|
49
|
+
const aHasKey = hasOwnProperty(a, key);
|
|
50
|
+
const bHasKey = hasOwnProperty(b, key);
|
|
51
|
+
if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return String(a) === String(b);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export { looseEqual };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { looseEqual } from './loose-equal';
|
|
2
|
+
|
|
3
|
+
// Assumes that the first argument is an array
|
|
4
|
+
const looseIndexOf = (array, value) => {
|
|
5
|
+
for (let i = 0; i < array.length; i++) {
|
|
6
|
+
if (looseEqual(array[i], value)) {
|
|
7
|
+
return i;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return -1;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { looseIndexOf };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { create } from './object';
|
|
2
|
+
|
|
3
|
+
const memoize = fn => {
|
|
4
|
+
const cache = create(null);
|
|
5
|
+
return function () {
|
|
6
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
7
|
+
args[_key] = arguments[_key];
|
|
8
|
+
}
|
|
9
|
+
const argsKey = JSON.stringify(args);
|
|
10
|
+
return cache[argsKey] = cache[argsKey] || fn.apply(null, args);
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { memoize };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { extend } from '../vue';
|
|
2
|
+
import { EVENT_NAME_INPUT } from '../constants/events';
|
|
3
|
+
import { PROP_TYPE_ANY } from '../constants/props';
|
|
4
|
+
import { makeProp } from './props';
|
|
5
|
+
|
|
6
|
+
const makeModelMixin = function (prop) {
|
|
7
|
+
let {
|
|
8
|
+
type = PROP_TYPE_ANY,
|
|
9
|
+
defaultValue = undefined,
|
|
10
|
+
validator = undefined,
|
|
11
|
+
event = EVENT_NAME_INPUT
|
|
12
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
13
|
+
const props = {
|
|
14
|
+
[prop]: makeProp(type, defaultValue, validator)
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// @vue/component
|
|
18
|
+
const mixin = extend({
|
|
19
|
+
model: {
|
|
20
|
+
prop,
|
|
21
|
+
event
|
|
22
|
+
},
|
|
23
|
+
props
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
mixin,
|
|
27
|
+
props,
|
|
28
|
+
prop,
|
|
29
|
+
event
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export { makeModelMixin };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { concat } from './array';
|
|
2
|
+
import { identity } from './identity';
|
|
3
|
+
import { isFunction } from './inspect';
|
|
4
|
+
|
|
5
|
+
// Note for functional components:
|
|
6
|
+
// In functional components, `slots` is a function so it must be called
|
|
7
|
+
// first before passing to the below methods. `scopedSlots` is always an
|
|
8
|
+
// object and may be undefined (for Vue < 2.6.x)
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Returns true if either scoped or unscoped named slot exists
|
|
12
|
+
*
|
|
13
|
+
* @param {String, Array} name or name[]
|
|
14
|
+
* @param {Object} scopedSlots
|
|
15
|
+
* @param {Object} slots
|
|
16
|
+
* @returns {Array|undefined} VNodes
|
|
17
|
+
*/
|
|
18
|
+
const hasNormalizedSlot = function (names) {
|
|
19
|
+
let $scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
20
|
+
let $slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
21
|
+
// Ensure names is an array
|
|
22
|
+
names = concat(names).filter(identity);
|
|
23
|
+
// Returns true if the either a $scopedSlot or $slot exists with the specified name
|
|
24
|
+
return names.some(name => $scopedSlots[name] || $slots[name]);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Returns VNodes for named slot either scoped or unscoped
|
|
29
|
+
*
|
|
30
|
+
* @param {String, Array} name or name[]
|
|
31
|
+
* @param {String} scope
|
|
32
|
+
* @param {Object} scopedSlots
|
|
33
|
+
* @param {Object} slots
|
|
34
|
+
* @returns {Array|undefined} VNodes
|
|
35
|
+
*/
|
|
36
|
+
const normalizeSlot = function (names) {
|
|
37
|
+
let scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
38
|
+
let $scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
39
|
+
let $slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
40
|
+
// Ensure names is an array
|
|
41
|
+
names = concat(names).filter(identity);
|
|
42
|
+
let slot;
|
|
43
|
+
for (let i = 0; i < names.length && !slot; i++) {
|
|
44
|
+
const name = names[i];
|
|
45
|
+
slot = $scopedSlots[name] || $slots[name];
|
|
46
|
+
}
|
|
47
|
+
// Note: in Vue 2.6.x, all named slots are also scoped slots
|
|
48
|
+
return isFunction(slot) ? slot(scope) : slot;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export { hasNormalizedSlot, normalizeSlot };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Number utilities
|
|
2
|
+
|
|
3
|
+
// Converts a value (string, number, etc.) to an integer number
|
|
4
|
+
// Assumes radix base 10
|
|
5
|
+
const toInteger = function (value) {
|
|
6
|
+
let defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;
|
|
7
|
+
const integer = parseInt(value, 10);
|
|
8
|
+
return isNaN(integer) ? defaultValue : integer;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
// Converts a value (string, number, etc.) to a number
|
|
12
|
+
const toFloat = function (value) {
|
|
13
|
+
let defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;
|
|
14
|
+
const float = parseFloat(value);
|
|
15
|
+
return isNaN(float) ? defaultValue : float;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// Converts a value (string, number, etc.) to a string
|
|
19
|
+
// representation with `precision` digits after the decimal
|
|
20
|
+
// Returns the string 'NaN' if the value cannot be converted
|
|
21
|
+
const toFixed = (val, precision) => toFloat(val).toFixed(toInteger(precision, 0));
|
|
22
|
+
|
|
23
|
+
export { toFixed, toFloat, toInteger };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { isObject } from './inspect';
|
|
2
|
+
|
|
3
|
+
// --- Static ---
|
|
4
|
+
|
|
5
|
+
const assign = function () {
|
|
6
|
+
return Object.assign(...arguments);
|
|
7
|
+
};
|
|
8
|
+
const create = (proto, optionalProps) => Object.create(proto, optionalProps);
|
|
9
|
+
const defineProperties = (obj, props) => Object.defineProperties(obj, props);
|
|
10
|
+
const defineProperty = (obj, prop, descriptor) => Object.defineProperty(obj, prop, descriptor);
|
|
11
|
+
const getOwnPropertyNames = obj => Object.getOwnPropertyNames(obj);
|
|
12
|
+
const keys = obj => Object.keys(obj);
|
|
13
|
+
|
|
14
|
+
// --- "Instance" ---
|
|
15
|
+
|
|
16
|
+
const hasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
+
|
|
18
|
+
// --- Utilities ---
|
|
19
|
+
|
|
20
|
+
// Shallow copy an object
|
|
21
|
+
const clone = obj => ({
|
|
22
|
+
...obj
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// Return a shallow copy of object with the specified properties only
|
|
26
|
+
// See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc
|
|
27
|
+
const pick = (obj, props) => keys(obj).filter(key => props.indexOf(key) !== -1).reduce((result, key) => ({
|
|
28
|
+
...result,
|
|
29
|
+
[key]: obj[key]
|
|
30
|
+
}), {});
|
|
31
|
+
|
|
32
|
+
// Return a shallow copy of object with the specified properties omitted
|
|
33
|
+
// See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc
|
|
34
|
+
const omit = (obj, props) => keys(obj).filter(key => props.indexOf(key) === -1).reduce((result, key) => ({
|
|
35
|
+
...result,
|
|
36
|
+
[key]: obj[key]
|
|
37
|
+
}), {});
|
|
38
|
+
|
|
39
|
+
// Merges two object deeply together
|
|
40
|
+
// See: https://gist.github.com/Salakar/1d7137de9cb8b704e48a
|
|
41
|
+
const mergeDeep = (target, source) => {
|
|
42
|
+
if (isObject(target) && isObject(source)) {
|
|
43
|
+
keys(source).forEach(key => {
|
|
44
|
+
if (isObject(source[key])) {
|
|
45
|
+
if (!target[key] || !isObject(target[key])) {
|
|
46
|
+
target[key] = source[key];
|
|
47
|
+
}
|
|
48
|
+
mergeDeep(target[key], source[key]);
|
|
49
|
+
} else {
|
|
50
|
+
assign(target, {
|
|
51
|
+
[key]: source[key]
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return target;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
// Returns a shallow copy of the object with keys in sorted order
|
|
60
|
+
const sortKeys = obj => keys(obj).sort().reduce((result, key) => ({
|
|
61
|
+
...result,
|
|
62
|
+
[key]: obj[key]
|
|
63
|
+
}), {});
|
|
64
|
+
|
|
65
|
+
// Convenience method to create a read-only descriptor
|
|
66
|
+
const readonlyDescriptor = () => ({
|
|
67
|
+
enumerable: true,
|
|
68
|
+
configurable: false,
|
|
69
|
+
writable: false
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
export { assign, clone, create, defineProperties, defineProperty, getOwnPropertyNames, hasOwnProperty, keys, mergeDeep, omit, pick, readonlyDescriptor, sortKeys };
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { isElement, MutationObs } from './dom';
|
|
2
|
+
import { warnNoMutationObserverSupport } from './warn';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Observe a DOM element changes, falls back to eventListener mode
|
|
6
|
+
* @param {Element} el The DOM element to observe
|
|
7
|
+
* @param {Function} callback callback to be called on change
|
|
8
|
+
* @param {object} [options={childList: true, subtree: true}] observe options
|
|
9
|
+
* @see https://stackoverflow.com/questions/3219758
|
|
10
|
+
*/
|
|
11
|
+
const observeDom = (el, callback, options) => /* istanbul ignore next: difficult to test in JSDOM */{
|
|
12
|
+
// Handle cases where we might be passed a Vue instance
|
|
13
|
+
el = el ? el.$el || el : null;
|
|
14
|
+
|
|
15
|
+
// Early exit when we have no element
|
|
16
|
+
/* istanbul ignore next: difficult to test in JSDOM */
|
|
17
|
+
if (!isElement(el)) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Exit and throw a warning when `MutationObserver` isn't available
|
|
22
|
+
if (warnNoMutationObserverSupport('observeDom')) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Define a new observer
|
|
27
|
+
const obs = new MutationObs(mutations => {
|
|
28
|
+
let changed = false;
|
|
29
|
+
|
|
30
|
+
// A mutation can contain several change records, so we loop
|
|
31
|
+
// through them to see what has changed
|
|
32
|
+
// We break out of the loop early if any "significant" change
|
|
33
|
+
// has been detected
|
|
34
|
+
for (let i = 0; i < mutations.length && !changed; i++) {
|
|
35
|
+
// The mutation record
|
|
36
|
+
const mutation = mutations[i];
|
|
37
|
+
// Mutation type
|
|
38
|
+
const type = mutation.type;
|
|
39
|
+
// DOM node (could be any DOM node type - HTMLElement, Text, comment, etc.)
|
|
40
|
+
const target = mutation.target;
|
|
41
|
+
|
|
42
|
+
// Detect whether a change happened based on type and target
|
|
43
|
+
if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {
|
|
44
|
+
// We ignore nodes that are not TEXT (i.e. comments, etc.)
|
|
45
|
+
// as they don't change layout
|
|
46
|
+
changed = true;
|
|
47
|
+
} else if (type === 'attributes') {
|
|
48
|
+
changed = true;
|
|
49
|
+
} else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {
|
|
50
|
+
// This includes HTMLElement and text nodes being
|
|
51
|
+
// added/removed/re-arranged
|
|
52
|
+
changed = true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// We only call the callback if a change that could affect
|
|
57
|
+
// layout/size truly happened
|
|
58
|
+
if (changed) {
|
|
59
|
+
callback();
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// Have the observer observe foo for changes in children, etc
|
|
64
|
+
obs.observe(el, {
|
|
65
|
+
childList: true,
|
|
66
|
+
subtree: true,
|
|
67
|
+
...options
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// We return a reference to the observer so that `obs.disconnect()`
|
|
71
|
+
// can be called if necessary
|
|
72
|
+
// To reduce overhead when the root element is hidden
|
|
73
|
+
return obs;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export { observeDom };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { isVue3 } from '../vue';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Register a callback to be called when a Vue instance is destroyed/unmounted.
|
|
5
|
+
*
|
|
6
|
+
* For Vue 2: Uses $once with 'hook:destroyed' event
|
|
7
|
+
* For Vue 3: Uses scope.cleanups for proper effect scope cleanup
|
|
8
|
+
*
|
|
9
|
+
* @param {Object} instance - The Vue instance to watch for destruction
|
|
10
|
+
* @param {Function} callback - The callback to run when the instance is destroyed
|
|
11
|
+
*/
|
|
12
|
+
const onInstanceDestroy = (instance, callback) => {
|
|
13
|
+
if (isVue3(instance)) {
|
|
14
|
+
// onScopeDispose is not available on instance and we do
|
|
15
|
+
// not want to import 'vue' in this file
|
|
16
|
+
instance.$.scope.cleanups.push(callback);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
instance.$once('hook:destroyed', callback);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { onInstanceDestroy };
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { HAS_WINDOW_SUPPORT } from '../constants/env';
|
|
2
|
+
import { setConfig } from './config-set';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Plugin install factory function.
|
|
6
|
+
* @param {object} { components, directives }
|
|
7
|
+
* @returns {function} plugin install function
|
|
8
|
+
*/
|
|
9
|
+
const installFactory = function () {
|
|
10
|
+
let {
|
|
11
|
+
components,
|
|
12
|
+
directives,
|
|
13
|
+
plugins
|
|
14
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
15
|
+
const install = function (Vue) {
|
|
16
|
+
let config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
17
|
+
if (install.installed) {
|
|
18
|
+
/* istanbul ignore next */
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
install.installed = true;
|
|
22
|
+
setConfig(config, Vue);
|
|
23
|
+
registerComponents(Vue, components);
|
|
24
|
+
registerDirectives(Vue, directives);
|
|
25
|
+
registerPlugins(Vue, plugins);
|
|
26
|
+
};
|
|
27
|
+
install.installed = false;
|
|
28
|
+
return install;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Plugin object factory function.
|
|
33
|
+
* @param {object} { components, directives, plugins }
|
|
34
|
+
* @returns {object} plugin install object
|
|
35
|
+
*/
|
|
36
|
+
const pluginFactory = function () {
|
|
37
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
38
|
+
let extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
39
|
+
return {
|
|
40
|
+
...extend,
|
|
41
|
+
install: installFactory(options)
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Load a group of plugins.
|
|
47
|
+
* @param {object} Vue
|
|
48
|
+
* @param {object} Plugin definitions
|
|
49
|
+
*/
|
|
50
|
+
const registerPlugins = function (Vue) {
|
|
51
|
+
let plugins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
52
|
+
for (const plugin in plugins) {
|
|
53
|
+
if (plugin && plugins[plugin]) {
|
|
54
|
+
Vue.use(plugins[plugin]);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Load a component.
|
|
61
|
+
* @param {object} Vue
|
|
62
|
+
* @param {string} Component name
|
|
63
|
+
* @param {object} Component definition
|
|
64
|
+
*/
|
|
65
|
+
const registerComponent = (Vue, name, def) => {
|
|
66
|
+
if (Vue && name && def) {
|
|
67
|
+
Vue.component(name, def);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Load a group of components.
|
|
73
|
+
* @param {object} Vue
|
|
74
|
+
* @param {object} Object of component definitions
|
|
75
|
+
*/
|
|
76
|
+
const registerComponents = function (Vue) {
|
|
77
|
+
let components = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
78
|
+
for (const component in components) {
|
|
79
|
+
registerComponent(Vue, component, components[component]);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Load a directive.
|
|
85
|
+
* @param {object} Vue
|
|
86
|
+
* @param {string} Directive name
|
|
87
|
+
* @param {object} Directive definition
|
|
88
|
+
*/
|
|
89
|
+
const registerDirective = (Vue, name, def) => {
|
|
90
|
+
if (Vue && name && def) {
|
|
91
|
+
// Ensure that any leading V is removed from the
|
|
92
|
+
// name, as Vue adds it automatically
|
|
93
|
+
Vue.directive(name.replace(/^VB/, 'B'), def);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Load a group of directives.
|
|
99
|
+
* @param {object} Vue
|
|
100
|
+
* @param {object} Object of directive definitions
|
|
101
|
+
*/
|
|
102
|
+
const registerDirectives = function (Vue) {
|
|
103
|
+
let directives = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
104
|
+
for (const directive in directives) {
|
|
105
|
+
registerDirective(Vue, directive, directives[directive]);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Install plugin if window.Vue available
|
|
111
|
+
* @param {object} Plugin definition
|
|
112
|
+
*/
|
|
113
|
+
const vueUse = VuePlugin => {
|
|
114
|
+
/* istanbul ignore next */
|
|
115
|
+
if (HAS_WINDOW_SUPPORT && window.Vue) {
|
|
116
|
+
window.Vue.use(VuePlugin);
|
|
117
|
+
}
|
|
118
|
+
/* istanbul ignore next */
|
|
119
|
+
if (HAS_WINDOW_SUPPORT && VuePlugin.NAME) {
|
|
120
|
+
window[VuePlugin.NAME] = VuePlugin;
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
export { installFactory, pluginFactory, registerComponent, registerComponents, registerDirective, registerDirectives, registerPlugins, vueUse };
|