@gitlab/ui 92.2.0 → 92.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/bin/migrate_custom_utils_to_tw.bundled.mjs +11 -3
- package/dist/components/experimental/duo/chat/components/duo_chat_context/constants.js +4 -4
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu.js +4 -4
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_item.js +8 -8
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_items.js +5 -4
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_popover/duo_chat_context_item_popover.js +15 -16
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.js +7 -7
- package/dist/components/experimental/duo/chat/components/duo_chat_context/mock_context_data.js +63 -81
- package/dist/components/experimental/duo/chat/components/duo_chat_context/utils.js +1 -1
- package/dist/index.css +4 -2
- package/dist/index.css.map +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/tailwind.css.map +1 -1
- package/dist/vendor/bootstrap-vue/src/components/form/index.js +0 -4
- package/dist/vendor/bootstrap-vue/src/components/index.js +0 -48
- package/dist/vendor/bootstrap-vue/src/components/layout/index.js +0 -6
- package/dist/vendor/bootstrap-vue/src/components/nav/index.js +0 -6
- package/dist/vendor/bootstrap-vue/src/components/navbar/index.js +1 -8
- package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +2 -6
- package/dist/vendor/bootstrap-vue/src/constants/classes.js +1 -2
- package/dist/vendor/bootstrap-vue/src/constants/components.js +1 -51
- package/dist/vendor/bootstrap-vue/src/constants/events.js +1 -12
- package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +1 -5
- package/dist/vendor/bootstrap-vue/src/constants/props.js +1 -4
- package/dist/vendor/bootstrap-vue/src/constants/regex.js +1 -20
- package/dist/vendor/bootstrap-vue/src/constants/slots.js +1 -33
- package/dist/vendor/bootstrap-vue/src/directives/toggle/toggle.js +1 -1
- package/dist/vendor/bootstrap-vue/src/index.js +0 -74
- package/dist/vendor/bootstrap-vue/src/utils/array.js +1 -3
- package/dist/vendor/bootstrap-vue/src/utils/inspect.js +1 -3
- package/dist/vendor/bootstrap-vue/src/utils/math.js +1 -3
- package/dist/vendor/bootstrap-vue/src/utils/object.js +1 -6
- package/dist/vendor/bootstrap-vue/src/utils/props.js +2 -8
- package/dist/vendor/bootstrap-vue/src/utils/string.js +1 -10
- package/package.json +1 -1
- package/src/components/base/accordion/accordion_item.scss +3 -3
- package/src/components/base/alert/alert.scss +3 -3
- package/src/components/base/avatar_labeled/avatar_labeled.scss +2 -2
- package/src/components/base/avatars_inline/avatars_inline.scss +1 -1
- package/src/components/base/badge/badge.scss +2 -2
- package/src/components/base/banner/banner.scss +2 -2
- package/src/components/base/breadcrumb/breadcrumb.scss +3 -3
- package/src/components/base/broadcast_message/broadcast_message.scss +3 -3
- package/src/components/base/button/button.scss +14 -14
- package/src/components/base/card/card.scss +1 -1
- package/src/components/base/datepicker/datepicker.scss +10 -10
- package/src/components/base/drawer/drawer.scss +5 -5
- package/src/components/base/dropdown/dropdown.scss +28 -28
- package/src/components/base/dropdown/dropdown_divider.scss +3 -3
- package/src/components/base/dropdown/dropdown_item.scss +9 -9
- package/src/components/base/dropdown/dropdown_section_header.scss +2 -2
- package/src/components/base/dropdown/dropdown_text.scss +1 -1
- package/src/components/base/filtered_search/filtered_search.scss +7 -7
- package/src/components/base/filtered_search/filtered_search_suggestion.scss +1 -1
- package/src/components/base/filtered_search/filtered_search_suggestion_list.scss +3 -3
- package/src/components/base/filtered_search/filtered_search_term.scss +2 -2
- package/src/components/base/filtered_search/filtered_search_token.scss +4 -4
- package/src/components/base/filtered_search/filtered_search_token_segment.scss +2 -2
- package/src/components/base/form/form_checkbox/form_checkbox.scss +10 -10
- package/src/components/base/form/form_group/form_group.scss +5 -5
- package/src/components/base/form/form_input/form_input.scss +2 -2
- package/src/components/base/form/form_select/form_select.scss +2 -2
- package/src/components/base/keyset_pagination/keyset_pagination.scss +1 -1
- package/src/components/base/label/label.scss +1 -1
- package/src/components/base/loading_icon/loading_icon.scss +1 -1
- package/src/components/base/markdown/markdown.scss +33 -33
- package/src/components/base/modal/modal.scss +11 -11
- package/src/components/base/new_dropdowns/dropdown.scss +14 -14
- package/src/components/base/new_dropdowns/dropdown_item.scss +9 -9
- package/src/components/base/new_dropdowns/listbox/listbox.scss +1 -1
- package/src/components/base/pagination/pagination.scss +3 -3
- package/src/components/base/path/path.scss +5 -5
- package/src/components/base/popover/popover.scss +5 -5
- package/src/components/base/search_box_by_click/search_box_by_click.scss +2 -2
- package/src/components/base/search_box_by_type/search_box_by_type.scss +4 -4
- package/src/components/base/table/table.scss +4 -4
- package/src/components/base/tabs/tabs/tabs.scss +10 -10
- package/src/components/base/toast/toast.scss +7 -7
- package/src/components/base/toggle/toggle.scss +6 -6
- package/src/components/base/token/token.scss +5 -5
- package/src/components/base/tooltip/tooltip.scss +3 -3
- package/src/components/charts/legend/legend.scss +4 -4
- package/src/components/charts/series_label/series_label.scss +1 -1
- package/src/components/experimental/duo/chat/components/duo_chat_context/constants.js +3 -3
- package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu.vue +4 -4
- package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_item.vue +10 -10
- package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu_search_items.vue +6 -5
- package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_popover/duo_chat_context_item_popover.vue +24 -24
- package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.vue +10 -10
- package/src/components/experimental/duo/chat/components/duo_chat_context/mock_context_data.js +57 -74
- package/src/components/experimental/duo/chat/components/duo_chat_context/utils.js +5 -3
- package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.scss +1 -1
- package/src/components/experimental/duo/chat/duo_chat.scss +4 -4
- package/src/components/shared_components/charts/tooltip_default_format.scss +1 -1
- package/src/scss/bootstrap_vue.scss +0 -18
- package/src/scss/typescale/_index.scss +9 -9
- package/src/vendor/bootstrap-vue/nuxt/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/_utilities.scss +0 -9
- package/src/vendor/bootstrap-vue/src/_variables.scss +0 -52
- package/src/vendor/bootstrap-vue/src/components/form/index.d.ts +0 -3
- package/src/vendor/bootstrap-vue/src/components/form/index.js +1 -4
- package/src/vendor/bootstrap-vue/src/components/form/package.json +0 -12
- package/src/vendor/bootstrap-vue/src/components/index.d.ts +0 -24
- package/src/vendor/bootstrap-vue/src/components/index.js +0 -48
- package/src/vendor/bootstrap-vue/src/components/index.scss +0 -15
- package/src/vendor/bootstrap-vue/src/components/layout/index.d.ts +0 -6
- package/src/vendor/bootstrap-vue/src/components/layout/index.js +1 -5
- package/src/vendor/bootstrap-vue/src/components/layout/package.json +0 -67
- package/src/vendor/bootstrap-vue/src/components/modal/README.md +0 -1
- package/src/vendor/bootstrap-vue/src/components/nav/index.d.ts +0 -6
- package/src/vendor/bootstrap-vue/src/components/nav/index.js +1 -5
- package/src/vendor/bootstrap-vue/src/components/nav/package.json +0 -45
- package/src/vendor/bootstrap-vue/src/components/navbar/README.md +0 -5
- package/src/vendor/bootstrap-vue/src/components/navbar/index.d.ts +1 -7
- package/src/vendor/bootstrap-vue/src/components/navbar/index.js +2 -7
- package/src/vendor/bootstrap-vue/src/components/navbar/package.json +0 -75
- package/src/vendor/bootstrap-vue/src/components/table/README.md +1 -2
- package/src/vendor/bootstrap-vue/src/components/tabs/README.md +2 -2
- package/src/vendor/bootstrap-vue/src/components/toast/README.md +1 -3
- package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +2 -6
- package/src/vendor/bootstrap-vue/src/constants/classes.js +0 -1
- package/src/vendor/bootstrap-vue/src/constants/components.js +0 -50
- package/src/vendor/bootstrap-vue/src/constants/events.js +0 -11
- package/src/vendor/bootstrap-vue/src/constants/key-codes.js +0 -4
- package/src/vendor/bootstrap-vue/src/constants/props.js +0 -3
- package/src/vendor/bootstrap-vue/src/constants/regex.js +0 -19
- package/src/vendor/bootstrap-vue/src/constants/slots.js +0 -32
- package/src/vendor/bootstrap-vue/src/directives/toggle/README.md +5 -23
- package/src/vendor/bootstrap-vue/src/directives/toggle/package.json +1 -1
- package/src/vendor/bootstrap-vue/src/directives/toggle/toggle.js +1 -1
- package/src/vendor/bootstrap-vue/src/index.js +0 -122
- package/src/vendor/bootstrap-vue/src/index.scss +0 -3
- package/src/vendor/bootstrap-vue/src/utils/array.js +0 -5
- package/src/vendor/bootstrap-vue/src/utils/config.spec.js +15 -15
- package/src/vendor/bootstrap-vue/src/utils/inspect.js +0 -4
- package/src/vendor/bootstrap-vue/src/utils/math.js +0 -4
- package/src/vendor/bootstrap-vue/src/utils/object.js +0 -5
- package/src/vendor/bootstrap-vue/src/utils/props.js +1 -7
- package/src/vendor/bootstrap-vue/src/utils/string.js +0 -9
- package/src/vendor/bootstrap-vue/src/utils/string.spec.js +1 -20
- package/dist/vendor/bootstrap-vue/src/components/alert/alert.js +0 -179
- package/dist/vendor/bootstrap-vue/src/components/alert/index.js +0 -11
- package/dist/vendor/bootstrap-vue/src/components/aspect/aspect.js +0 -67
- package/dist/vendor/bootstrap-vue/src/components/aspect/index.js +0 -11
- package/dist/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +0 -67
- package/dist/vendor/bootstrap-vue/src/components/avatar/avatar.js +0 -266
- package/dist/vendor/bootstrap-vue/src/components/avatar/index.js +0 -14
- package/dist/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +0 -112
- package/dist/vendor/bootstrap-vue/src/components/button-toolbar/index.js +0 -12
- package/dist/vendor/bootstrap-vue/src/components/calendar/calendar.js +0 -1010
- package/dist/vendor/bootstrap-vue/src/components/calendar/index.js +0 -11
- package/dist/vendor/bootstrap-vue/src/components/card/card-body.js +0 -63
- package/dist/vendor/bootstrap-vue/src/components/card/card-footer.js +0 -48
- package/dist/vendor/bootstrap-vue/src/components/card/card-group.js +0 -33
- package/dist/vendor/bootstrap-vue/src/components/card/card-header.js +0 -48
- package/dist/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +0 -46
- package/dist/vendor/bootstrap-vue/src/components/card/card-img.js +0 -58
- package/dist/vendor/bootstrap-vue/src/components/card/card-sub-title.js +0 -35
- package/dist/vendor/bootstrap-vue/src/components/card/card-text.js +0 -31
- package/dist/vendor/bootstrap-vue/src/components/card/card-title.js +0 -33
- package/dist/vendor/bootstrap-vue/src/components/card/card.js +0 -123
- package/dist/vendor/bootstrap-vue/src/components/card/index.js +0 -38
- package/dist/vendor/bootstrap-vue/src/components/embed/embed.js +0 -50
- package/dist/vendor/bootstrap-vue/src/components/embed/index.js +0 -11
- package/dist/vendor/bootstrap-vue/src/components/form/form-datalist.js +0 -52
- package/dist/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +0 -261
- package/dist/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +0 -310
- package/dist/vendor/bootstrap-vue/src/components/form-datepicker/index.js +0 -12
- package/dist/vendor/bootstrap-vue/src/components/form-file/form-file.js +0 -561
- package/dist/vendor/bootstrap-vue/src/components/form-file/index.js +0 -12
- package/dist/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +0 -402
- package/dist/vendor/bootstrap-vue/src/components/form-rating/index.js +0 -12
- package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +0 -555
- package/dist/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +0 -12
- package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +0 -97
- package/dist/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +0 -806
- package/dist/vendor/bootstrap-vue/src/components/form-tags/index.js +0 -16
- package/dist/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +0 -281
- package/dist/vendor/bootstrap-vue/src/components/form-timepicker/index.js +0 -12
- package/dist/vendor/bootstrap-vue/src/components/image/img-lazy.js +0 -157
- package/dist/vendor/bootstrap-vue/src/components/image/img.js +0 -124
- package/dist/vendor/bootstrap-vue/src/components/image/index.js +0 -14
- package/dist/vendor/bootstrap-vue/src/components/jumbotron/index.js +0 -11
- package/dist/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +0 -98
- package/dist/vendor/bootstrap-vue/src/components/layout/container.js +0 -41
- package/dist/vendor/bootstrap-vue/src/components/layout/row.js +0 -113
- package/dist/vendor/bootstrap-vue/src/components/list-group/index.js +0 -14
- package/dist/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +0 -78
- package/dist/vendor/bootstrap-vue/src/components/list-group/list-group.js +0 -42
- package/dist/vendor/bootstrap-vue/src/components/media/index.js +0 -17
- package/dist/vendor/bootstrap-vue/src/components/media/media-aside.js +0 -41
- package/dist/vendor/bootstrap-vue/src/components/media/media-body.js +0 -31
- package/dist/vendor/bootstrap-vue/src/components/media/media.js +0 -61
- package/dist/vendor/bootstrap-vue/src/components/nav/nav-form.js +0 -45
- package/dist/vendor/bootstrap-vue/src/components/nav/nav-text.js +0 -26
- package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +0 -46
- package/dist/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +0 -89
- package/dist/vendor/bootstrap-vue/src/components/overlay/index.js +0 -11
- package/dist/vendor/bootstrap-vue/src/components/overlay/overlay.js +0 -163
- package/dist/vendor/bootstrap-vue/src/components/pagination/index.js +0 -11
- package/dist/vendor/bootstrap-vue/src/components/pagination/pagination.js +0 -135
- package/dist/vendor/bootstrap-vue/src/components/pagination-nav/index.js +0 -11
- package/dist/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +0 -299
- package/dist/vendor/bootstrap-vue/src/components/sidebar/index.js +0 -15
- package/dist/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +0 -432
- package/dist/vendor/bootstrap-vue/src/components/skeleton/index.js +0 -23
- package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +0 -47
- package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +0 -60
- package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +0 -64
- package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +0 -46
- package/dist/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +0 -49
- package/dist/vendor/bootstrap-vue/src/components/spinner/index.js +0 -11
- package/dist/vendor/bootstrap-vue/src/components/spinner/spinner.js +0 -55
- package/dist/vendor/bootstrap-vue/src/components/time/index.js +0 -11
- package/dist/vendor/bootstrap-vue/src/components/time/time.js +0 -600
- package/dist/vendor/bootstrap-vue/src/constants/date.js +0 -8
- package/dist/vendor/bootstrap-vue/src/mixins/card.js +0 -22
- package/dist/vendor/bootstrap-vue/src/mixins/pagination.js +0 -598
- package/dist/vendor/bootstrap-vue/src/utils/date.js +0 -135
- package/src/vendor/bootstrap-vue/src/_custom-controls.scss +0 -30
- package/src/vendor/bootstrap-vue/src/components/alert/README.md +0 -280
- package/src/vendor/bootstrap-vue/src/components/alert/alert.js +0 -185
- package/src/vendor/bootstrap-vue/src/components/alert/alert.spec.js +0 -442
- package/src/vendor/bootstrap-vue/src/components/alert/index.d.ts +0 -13
- package/src/vendor/bootstrap-vue/src/components/alert/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/components/alert/package.json +0 -72
- package/src/vendor/bootstrap-vue/src/components/aspect/README.md +0 -65
- package/src/vendor/bootstrap-vue/src/components/aspect/aspect.js +0 -65
- package/src/vendor/bootstrap-vue/src/components/aspect/aspect.spec.js +0 -121
- package/src/vendor/bootstrap-vue/src/components/aspect/index.d.ts +0 -11
- package/src/vendor/bootstrap-vue/src/components/aspect/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/components/aspect/package.json +0 -26
- package/src/vendor/bootstrap-vue/src/components/avatar/README.md +0 -567
- package/src/vendor/bootstrap-vue/src/components/avatar/_avatar.scss +0 -148
- package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.js +0 -75
- package/src/vendor/bootstrap-vue/src/components/avatar/avatar-group.spec.js +0 -74
- package/src/vendor/bootstrap-vue/src/components/avatar/avatar.js +0 -228
- package/src/vendor/bootstrap-vue/src/components/avatar/avatar.spec.js +0 -355
- package/src/vendor/bootstrap-vue/src/components/avatar/index.d.ts +0 -14
- package/src/vendor/bootstrap-vue/src/components/avatar/index.js +0 -9
- package/src/vendor/bootstrap-vue/src/components/avatar/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/avatar/package.json +0 -149
- package/src/vendor/bootstrap-vue/src/components/button-toolbar/README.md +0 -109
- package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.js +0 -117
- package/src/vendor/bootstrap-vue/src/components/button-toolbar/button-toolbar.spec.js +0 -185
- package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.d.ts +0 -11
- package/src/vendor/bootstrap-vue/src/components/button-toolbar/index.js +0 -11
- package/src/vendor/bootstrap-vue/src/components/button-toolbar/package.json +0 -32
- package/src/vendor/bootstrap-vue/src/components/calendar/README.md +0 -735
- package/src/vendor/bootstrap-vue/src/components/calendar/_calendar.scss +0 -78
- package/src/vendor/bootstrap-vue/src/components/calendar/calendar.js +0 -1146
- package/src/vendor/bootstrap-vue/src/components/calendar/calendar.spec.js +0 -466
- package/src/vendor/bootstrap-vue/src/components/calendar/index.d.ts +0 -28
- package/src/vendor/bootstrap-vue/src/components/calendar/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/components/calendar/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/calendar/package.json +0 -317
- package/src/vendor/bootstrap-vue/src/components/card/README.md +0 -729
- package/src/vendor/bootstrap-vue/src/components/card/_card-img.scss +0 -7
- package/src/vendor/bootstrap-vue/src/components/card/card-body.js +0 -69
- package/src/vendor/bootstrap-vue/src/components/card/card-body.spec.js +0 -142
- package/src/vendor/bootstrap-vue/src/components/card/card-footer.js +0 -48
- package/src/vendor/bootstrap-vue/src/components/card/card-footer.spec.js +0 -98
- package/src/vendor/bootstrap-vue/src/components/card/card-group.js +0 -33
- package/src/vendor/bootstrap-vue/src/components/card/card-group.spec.js +0 -75
- package/src/vendor/bootstrap-vue/src/components/card/card-header.js +0 -48
- package/src/vendor/bootstrap-vue/src/components/card/card-header.spec.js +0 -98
- package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.js +0 -47
- package/src/vendor/bootstrap-vue/src/components/card/card-img-lazy.spec.js +0 -204
- package/src/vendor/bootstrap-vue/src/components/card/card-img.js +0 -50
- package/src/vendor/bootstrap-vue/src/components/card/card-img.spec.js +0 -208
- package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.js +0 -35
- package/src/vendor/bootstrap-vue/src/components/card/card-sub-title.spec.js +0 -60
- package/src/vendor/bootstrap-vue/src/components/card/card-text.js +0 -25
- package/src/vendor/bootstrap-vue/src/components/card/card-text.spec.js +0 -48
- package/src/vendor/bootstrap-vue/src/components/card/card-title.js +0 -33
- package/src/vendor/bootstrap-vue/src/components/card/card-title.spec.js +0 -45
- package/src/vendor/bootstrap-vue/src/components/card/card.js +0 -140
- package/src/vendor/bootstrap-vue/src/components/card/card.spec.js +0 -296
- package/src/vendor/bootstrap-vue/src/components/card/index.d.ts +0 -38
- package/src/vendor/bootstrap-vue/src/components/card/index.js +0 -40
- package/src/vendor/bootstrap-vue/src/components/card/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/card/package.json +0 -262
- package/src/vendor/bootstrap-vue/src/components/embed/README.md +0 -63
- package/src/vendor/bootstrap-vue/src/components/embed/embed.js +0 -51
- package/src/vendor/bootstrap-vue/src/components/embed/embed.spec.js +0 -110
- package/src/vendor/bootstrap-vue/src/components/embed/index.d.ts +0 -11
- package/src/vendor/bootstrap-vue/src/components/embed/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/components/embed/package.json +0 -29
- package/src/vendor/bootstrap-vue/src/components/form/form-datalist.js +0 -42
- package/src/vendor/bootstrap-vue/src/components/form/form-datalist.spec.js +0 -57
- package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/_form-btn-label-control.scss +0 -125
- package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/bv-form-btn-label-control.js +0 -278
- package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/form-btn-label-control/package.json +0 -5
- package/src/vendor/bootstrap-vue/src/components/form-datepicker/README.md +0 -694
- package/src/vendor/bootstrap-vue/src/components/form-datepicker/_form-datepicker.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.js +0 -342
- package/src/vendor/bootstrap-vue/src/components/form-datepicker/form-datepicker.spec.js +0 -562
- package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.d.ts +0 -12
- package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.js +0 -11
- package/src/vendor/bootstrap-vue/src/components/form-datepicker/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/form-datepicker/package.json +0 -420
- package/src/vendor/bootstrap-vue/src/components/form-file/README.md +0 -357
- package/src/vendor/bootstrap-vue/src/components/form-file/_form-file.scss +0 -61
- package/src/vendor/bootstrap-vue/src/components/form-file/form-file.js +0 -575
- package/src/vendor/bootstrap-vue/src/components/form-file/form-file.spec.js +0 -885
- package/src/vendor/bootstrap-vue/src/components/form-file/index.d.ts +0 -13
- package/src/vendor/bootstrap-vue/src/components/form-file/index.js +0 -11
- package/src/vendor/bootstrap-vue/src/components/form-file/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/form-file/package.json +0 -131
- package/src/vendor/bootstrap-vue/src/components/form-rating/README.md +0 -526
- package/src/vendor/bootstrap-vue/src/components/form-rating/_form-rating.scss +0 -57
- package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.js +0 -411
- package/src/vendor/bootstrap-vue/src/components/form-rating/form-rating.spec.js +0 -544
- package/src/vendor/bootstrap-vue/src/components/form-rating/index.d.ts +0 -14
- package/src/vendor/bootstrap-vue/src/components/form-rating/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/components/form-rating/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/form-rating/package.json +0 -166
- package/src/vendor/bootstrap-vue/src/components/form-spinbutton/README.md +0 -411
- package/src/vendor/bootstrap-vue/src/components/form-spinbutton/_spinbutton.scss +0 -76
- package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.js +0 -572
- package/src/vendor/bootstrap-vue/src/components/form-spinbutton/form-spinbutton.spec.js +0 -731
- package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.d.ts +0 -12
- package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.js +0 -11
- package/src/vendor/bootstrap-vue/src/components/form-spinbutton/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/form-spinbutton/package.json +0 -150
- package/src/vendor/bootstrap-vue/src/components/form-tags/README.md +0 -880
- package/src/vendor/bootstrap-vue/src/components/form-tags/_form-tags.scss +0 -70
- package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.js +0 -94
- package/src/vendor/bootstrap-vue/src/components/form-tags/form-tag.spec.js +0 -166
- package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.js +0 -891
- package/src/vendor/bootstrap-vue/src/components/form-tags/form-tags.spec.js +0 -920
- package/src/vendor/bootstrap-vue/src/components/form-tags/index.d.ts +0 -16
- package/src/vendor/bootstrap-vue/src/components/form-tags/index.js +0 -14
- package/src/vendor/bootstrap-vue/src/components/form-tags/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/form-tags/package.json +0 -440
- package/src/vendor/bootstrap-vue/src/components/form-timepicker/README.md +0 -450
- package/src/vendor/bootstrap-vue/src/components/form-timepicker/_form-timepicker.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.js +0 -308
- package/src/vendor/bootstrap-vue/src/components/form-timepicker/form-timepicker.spec.js +0 -440
- package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.d.ts +0 -12
- package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.js +0 -11
- package/src/vendor/bootstrap-vue/src/components/form-timepicker/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/form-timepicker/package.json +0 -255
- package/src/vendor/bootstrap-vue/src/components/image/README.md +0 -322
- package/src/vendor/bootstrap-vue/src/components/image/img-lazy.js +0 -161
- package/src/vendor/bootstrap-vue/src/components/image/img-lazy.spec.js +0 -96
- package/src/vendor/bootstrap-vue/src/components/image/img.js +0 -139
- package/src/vendor/bootstrap-vue/src/components/image/img.spec.js +0 -255
- package/src/vendor/bootstrap-vue/src/components/image/index.d.ts +0 -14
- package/src/vendor/bootstrap-vue/src/components/image/index.js +0 -12
- package/src/vendor/bootstrap-vue/src/components/image/package.json +0 -152
- package/src/vendor/bootstrap-vue/src/components/jumbotron/README.md +0 -109
- package/src/vendor/bootstrap-vue/src/components/jumbotron/index.d.ts +0 -11
- package/src/vendor/bootstrap-vue/src/components/jumbotron/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.js +0 -103
- package/src/vendor/bootstrap-vue/src/components/jumbotron/jumbotron.spec.js +0 -254
- package/src/vendor/bootstrap-vue/src/components/jumbotron/package.json +0 -66
- package/src/vendor/bootstrap-vue/src/components/layout/container.js +0 -40
- package/src/vendor/bootstrap-vue/src/components/layout/container.spec.js +0 -75
- package/src/vendor/bootstrap-vue/src/components/layout/row.js +0 -111
- package/src/vendor/bootstrap-vue/src/components/layout/row.spec.js +0 -138
- package/src/vendor/bootstrap-vue/src/components/list-group/README.md +0 -291
- package/src/vendor/bootstrap-vue/src/components/list-group/index.d.ts +0 -14
- package/src/vendor/bootstrap-vue/src/components/list-group/index.js +0 -12
- package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.js +0 -76
- package/src/vendor/bootstrap-vue/src/components/list-group/list-group-item.spec.js +0 -286
- package/src/vendor/bootstrap-vue/src/components/list-group/list-group.js +0 -42
- package/src/vendor/bootstrap-vue/src/components/list-group/list-group.spec.js +0 -132
- package/src/vendor/bootstrap-vue/src/components/list-group/package.json +0 -52
- package/src/vendor/bootstrap-vue/src/components/media/README.md +0 -183
- package/src/vendor/bootstrap-vue/src/components/media/_media.scss +0 -9
- package/src/vendor/bootstrap-vue/src/components/media/index.d.ts +0 -17
- package/src/vendor/bootstrap-vue/src/components/media/index.js +0 -14
- package/src/vendor/bootstrap-vue/src/components/media/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/media/media-aside.js +0 -45
- package/src/vendor/bootstrap-vue/src/components/media/media-aside.spec.js +0 -79
- package/src/vendor/bootstrap-vue/src/components/media/media-body.js +0 -25
- package/src/vendor/bootstrap-vue/src/components/media/media-body.spec.js +0 -47
- package/src/vendor/bootstrap-vue/src/components/media/media.js +0 -52
- package/src/vendor/bootstrap-vue/src/components/media/media.spec.js +0 -149
- package/src/vendor/bootstrap-vue/src/components/media/package.json +0 -65
- package/src/vendor/bootstrap-vue/src/components/nav/nav-form.js +0 -50
- package/src/vendor/bootstrap-vue/src/components/nav/nav-form.spec.js +0 -93
- package/src/vendor/bootstrap-vue/src/components/nav/nav-text.js +0 -18
- package/src/vendor/bootstrap-vue/src/components/nav/nav-text.spec.js +0 -30
- package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.js +0 -45
- package/src/vendor/bootstrap-vue/src/components/navbar/navbar-nav.spec.js +0 -105
- package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.js +0 -84
- package/src/vendor/bootstrap-vue/src/components/navbar/navbar-toggle.spec.js +0 -189
- package/src/vendor/bootstrap-vue/src/components/overlay/README.md +0 -815
- package/src/vendor/bootstrap-vue/src/components/overlay/index.d.ts +0 -11
- package/src/vendor/bootstrap-vue/src/components/overlay/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/components/overlay/overlay.js +0 -162
- package/src/vendor/bootstrap-vue/src/components/overlay/overlay.spec.js +0 -257
- package/src/vendor/bootstrap-vue/src/components/overlay/package.json +0 -130
- package/src/vendor/bootstrap-vue/src/components/pagination/README.md +0 -430
- package/src/vendor/bootstrap-vue/src/components/pagination/_pagination.scss +0 -26
- package/src/vendor/bootstrap-vue/src/components/pagination/index.d.ts +0 -11
- package/src/vendor/bootstrap-vue/src/components/pagination/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/components/pagination/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/pagination/package.json +0 -295
- package/src/vendor/bootstrap-vue/src/components/pagination/pagination.js +0 -138
- package/src/vendor/bootstrap-vue/src/components/pagination/pagination.spec.js +0 -1198
- package/src/vendor/bootstrap-vue/src/components/pagination-nav/README.md +0 -544
- package/src/vendor/bootstrap-vue/src/components/pagination-nav/_pagination-nav.scss +0 -2
- package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.d.ts +0 -11
- package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/components/pagination-nav/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/pagination-nav/package.json +0 -315
- package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.js +0 -281
- package/src/vendor/bootstrap-vue/src/components/pagination-nav/pagination-nav.spec.js +0 -671
- package/src/vendor/bootstrap-vue/src/components/sidebar/README.md +0 -406
- package/src/vendor/bootstrap-vue/src/components/sidebar/_sidebar.scss +0 -97
- package/src/vendor/bootstrap-vue/src/components/sidebar/index.d.ts +0 -11
- package/src/vendor/bootstrap-vue/src/components/sidebar/index.js +0 -10
- package/src/vendor/bootstrap-vue/src/components/sidebar/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/sidebar/package.json +0 -239
- package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.js +0 -438
- package/src/vendor/bootstrap-vue/src/components/sidebar/sidebar.spec.js +0 -404
- package/src/vendor/bootstrap-vue/src/components/skeleton/README.md +0 -275
- package/src/vendor/bootstrap-vue/src/components/skeleton/_skeleton.scss +0 -141
- package/src/vendor/bootstrap-vue/src/components/skeleton/index.d.ts +0 -23
- package/src/vendor/bootstrap-vue/src/components/skeleton/index.js +0 -18
- package/src/vendor/bootstrap-vue/src/components/skeleton/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/skeleton/package.json +0 -136
- package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.js +0 -45
- package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-icon.spec.js +0 -86
- package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.js +0 -49
- package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-img.spec.js +0 -139
- package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.js +0 -58
- package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-table.spec.js +0 -119
- package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.js +0 -47
- package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton-wrapper.spec.js +0 -48
- package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.js +0 -46
- package/src/vendor/bootstrap-vue/src/components/skeleton/skeleton.spec.js +0 -126
- package/src/vendor/bootstrap-vue/src/components/spinner/README.md +0 -229
- package/src/vendor/bootstrap-vue/src/components/spinner/index.d.ts +0 -11
- package/src/vendor/bootstrap-vue/src/components/spinner/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/components/spinner/package.json +0 -38
- package/src/vendor/bootstrap-vue/src/components/spinner/spinner.js +0 -54
- package/src/vendor/bootstrap-vue/src/components/spinner/spinner.spec.js +0 -305
- package/src/vendor/bootstrap-vue/src/components/time/README.md +0 -431
- package/src/vendor/bootstrap-vue/src/components/time/_time.scss +0 -41
- package/src/vendor/bootstrap-vue/src/components/time/index.d.ts +0 -27
- package/src/vendor/bootstrap-vue/src/components/time/index.js +0 -8
- package/src/vendor/bootstrap-vue/src/components/time/index.scss +0 -1
- package/src/vendor/bootstrap-vue/src/components/time/package.json +0 -123
- package/src/vendor/bootstrap-vue/src/components/time/time.js +0 -601
- package/src/vendor/bootstrap-vue/src/components/time/time.spec.js +0 -330
- package/src/vendor/bootstrap-vue/src/constants/date.js +0 -7
- package/src/vendor/bootstrap-vue/src/mixins/card.js +0 -23
- package/src/vendor/bootstrap-vue/src/mixins/pagination.js +0 -670
- package/src/vendor/bootstrap-vue/src/utils/date.js +0 -130
- package/src/vendor/bootstrap-vue/src/utils/date.spec.js +0 -159
|
@@ -1,357 +0,0 @@
|
|
|
1
|
-
# Form File
|
|
2
|
-
|
|
3
|
-
> Customized, cross-browser consistent, file input control that supports single file, multiple
|
|
4
|
-
> files, and directory upload (for browsers that support directory mode).
|
|
5
|
-
|
|
6
|
-
```html
|
|
7
|
-
<template>
|
|
8
|
-
<div>
|
|
9
|
-
<!-- Styled -->
|
|
10
|
-
<b-form-file
|
|
11
|
-
v-model="file1"
|
|
12
|
-
:state="Boolean(file1)"
|
|
13
|
-
placeholder="Choose a file or drop it here..."
|
|
14
|
-
drop-placeholder="Drop file here..."
|
|
15
|
-
></b-form-file>
|
|
16
|
-
<div class="mt-3">Selected file: {{ file1 ? file1.name : '' }}</div>
|
|
17
|
-
|
|
18
|
-
<!-- Plain mode -->
|
|
19
|
-
<b-form-file v-model="file2" class="mt-3" plain></b-form-file>
|
|
20
|
-
<div class="mt-3">Selected file: {{ file2 ? file2.name : '' }}</div>
|
|
21
|
-
</div>
|
|
22
|
-
</template>
|
|
23
|
-
|
|
24
|
-
<script>
|
|
25
|
-
export default {
|
|
26
|
-
data() {
|
|
27
|
-
return {
|
|
28
|
-
file1: null,
|
|
29
|
-
file2: null
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
</script>
|
|
34
|
-
|
|
35
|
-
<!-- b-form-file.vue -->
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
For cross browser consistency, `<b-form-file>` defaults to the Bootstrap custom file input to
|
|
39
|
-
replace the browser defaults. They're built on top of semantic and accessible markup, so it is a
|
|
40
|
-
solid replacement for the default file input.
|
|
41
|
-
|
|
42
|
-
## Single file (default)
|
|
43
|
-
|
|
44
|
-
On single file mode, when no file is selected or user cancels the "Browse" dialog, `v-model` is
|
|
45
|
-
`null` indicating no file selected. When a file is selected the return value will be a JavaScript
|
|
46
|
-
[`File`](https://developer.mozilla.org/en/docs/Web/API/File) object instance.
|
|
47
|
-
|
|
48
|
-
## Multiple files
|
|
49
|
-
|
|
50
|
-
Multiple file uploading is supported by adding `multiple` prop to component. In this case `v-model`
|
|
51
|
-
is _always_ an `Array`. When no files are selected, an empty array will be returned. When a file or
|
|
52
|
-
files are selected the return value will be an array of JavaScript
|
|
53
|
-
[`File`](https://developer.mozilla.org/en/docs/Web/API/File) object instances.
|
|
54
|
-
|
|
55
|
-
## Directory mode
|
|
56
|
-
|
|
57
|
-
<div class="alert alert-warning small mb-3">
|
|
58
|
-
<p class="mb-0">
|
|
59
|
-
<strong>CAUTION:</strong> Directory mode is a <em>non-standard</em> feature. While being
|
|
60
|
-
supported by all modern browsers, it should not be relied on for production.
|
|
61
|
-
Read more on <a class="alert-link" href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory">MDN</a>
|
|
62
|
-
and <a class="alert-link" href="https://caniuse.com/input-file-directory">Can I use</a>.
|
|
63
|
-
</p>
|
|
64
|
-
</div>
|
|
65
|
-
|
|
66
|
-
By adding the `directory` prop, a user can select directories instead of files. When a directory is
|
|
67
|
-
selected, the directory and its entire hierarchy of contents are included in the set of selected
|
|
68
|
-
items.
|
|
69
|
-
|
|
70
|
-
When in `directory` mode, files are returned in a nested array format by default. i.e.
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
dirA/
|
|
74
|
-
- fileA1
|
|
75
|
-
- fileA2
|
|
76
|
-
- dirB/
|
|
77
|
-
- fileB1
|
|
78
|
-
- dirC/
|
|
79
|
-
- fileC1
|
|
80
|
-
- fileC2
|
|
81
|
-
dirD/
|
|
82
|
-
- fileD1
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
will be returned as (or similar, file/directory order may vary):
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
[[fileA1, fileA2, [fileB1], [fileC1, fileC2]], [fileD1]]
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
If you set the `no-traverse` prop, the array will be flattened:
|
|
92
|
-
|
|
93
|
-
```
|
|
94
|
-
[fileA1, fileA2, fileB1, fileC1, fileC2, fileD1]
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Each file entry will have a special `$path` prop that will contain the relative path of each file.
|
|
98
|
-
For nested directory structures, BootstrapVue uses its own routine to determine the relative path,
|
|
99
|
-
otherwise it relies on
|
|
100
|
-
[`File.webkitRelativePath`](https://developer.mozilla.org/en-US/docs/Web/API/File/webkitRelativePath).
|
|
101
|
-
|
|
102
|
-
Directory mode is also supported when the file input is in [`plain` mode](#non-custom-file-input) on
|
|
103
|
-
**most** modern browsers.
|
|
104
|
-
|
|
105
|
-
## Drag and Drop support
|
|
106
|
-
|
|
107
|
-
Drop mode is enabled by default. It can disabled by setting the `no-drop` prop. `no-drop` has no
|
|
108
|
-
effect in [`plain` mode](#non-custom-file-input) (some browsers support dropping files onto a plain
|
|
109
|
-
input file).
|
|
110
|
-
|
|
111
|
-
You can optionally set a different placeholder while dragging via the `drop-placeholder` prop or the
|
|
112
|
-
scoped `drop-placeholder` slot. The prop only supports plain text. Use the slot for custom HTML
|
|
113
|
-
markup. The slot takes precedence over the prop. The `drop-placeholder` prop/slot has no effect if
|
|
114
|
-
`no-drop` is set or in [`plain` mode](#non-custom-file-input).
|
|
115
|
-
|
|
116
|
-
Note that native browser constraints (such as `required`) will not work with drop mode, as the
|
|
117
|
-
hidden file input does not handle the drag and drop functionality and will have zero files selected.
|
|
118
|
-
|
|
119
|
-
## Limiting to certain file types
|
|
120
|
-
|
|
121
|
-
You can limit the file types by setting the `accept` prop to a string containing the allowed file
|
|
122
|
-
type(s). To specify more than one type, separate the values with a comma.
|
|
123
|
-
|
|
124
|
-
```html
|
|
125
|
-
<div>
|
|
126
|
-
<!-- Accept all image formats by IANA media type wildcard-->
|
|
127
|
-
<b-form-file accept="image/*"></b-form-file>
|
|
128
|
-
|
|
129
|
-
<!-- Accept specific image formats by IANA type -->
|
|
130
|
-
<b-form-file accept="image/jpeg, image/png, image/gif"></b-form-file>
|
|
131
|
-
|
|
132
|
-
<!-- Accept specific image formats by extension -->
|
|
133
|
-
<b-form-file accept=".jpg, .png, .gif"></b-form-file>
|
|
134
|
-
</div>
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
To accept any file type, leave `accept` as `null` (default). You can mix and match IANA media types
|
|
138
|
-
and extensions.
|
|
139
|
-
|
|
140
|
-
Refer to [IANA Media Types](https://www.iana.org/assignments/media-types/) for a complete list of
|
|
141
|
-
standard media types.
|
|
142
|
-
|
|
143
|
-
**Note:** Not all browsers support or respect the `accept` attribute on file inputs.
|
|
144
|
-
|
|
145
|
-
For drag and drop, BootstrapVue uses an internal file type checking routine and will filter out
|
|
146
|
-
files that do not have the correct IANA media type or extension.
|
|
147
|
-
|
|
148
|
-
## Customizing
|
|
149
|
-
|
|
150
|
-
`<b-form-file>`, when not in [`plain` mode](#non-custom-file-input), provides several features for
|
|
151
|
-
customizing its appearance.
|
|
152
|
-
|
|
153
|
-
### Control sizing
|
|
154
|
-
|
|
155
|
-
Use the `size` prop to control the visual size of the input. The default size is considered `md`
|
|
156
|
-
(medium). Optional sizes are `lg` (large) and `sm` (small). These sizes line up with the sizes
|
|
157
|
-
available on other form controls.
|
|
158
|
-
|
|
159
|
-
```html
|
|
160
|
-
<div>
|
|
161
|
-
<b-form-group label="Small:" label-cols-sm="2" label-size="sm">
|
|
162
|
-
<b-form-file id="file-small" size="sm"></b-form-file>
|
|
163
|
-
</b-form-group>
|
|
164
|
-
|
|
165
|
-
<b-form-group label="Default:" label-cols-sm="2">
|
|
166
|
-
<b-form-file id="file-default"></b-form-file>
|
|
167
|
-
</b-form-group>
|
|
168
|
-
|
|
169
|
-
<b-form-group label="Large:" label-cols-sm="2" label-size="lg">
|
|
170
|
-
<b-form-file id="file-large" size="lg"></b-form-file>
|
|
171
|
-
</b-form-group>
|
|
172
|
-
</div>
|
|
173
|
-
|
|
174
|
-
<!-- form-file-sizes.vue -->
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
**Note:** Bootstrap v4.x does not natively support sizes for the custom file control. However,
|
|
178
|
-
BootstrapVue includes custom SCSS/CSS that adds support for sizing the custom file input control.
|
|
179
|
-
|
|
180
|
-
### Customize the placeholder text
|
|
181
|
-
|
|
182
|
-
Use the `placeholder` prop or the scoped `placeholder` slot to change the prompt text that is shown
|
|
183
|
-
when no files are selected. The prop only supports plain text. Use the slot for custom HTML markup.
|
|
184
|
-
The slot takes precedence over the prop.
|
|
185
|
-
|
|
186
|
-
### Customize browse button label
|
|
187
|
-
|
|
188
|
-
If you want to globally change `Browse` label, you can add something like this to your global
|
|
189
|
-
stylesheets. Also it is advised to use
|
|
190
|
-
[:lang()](https://developer.mozilla.org/en-US/docs/Web/CSS/:lang) for multi-language sites.
|
|
191
|
-
|
|
192
|
-
```css
|
|
193
|
-
.custom-file-input:lang(en) ~ .custom-file-label::after {
|
|
194
|
-
content: 'Browse';
|
|
195
|
-
}
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
Alternatively you can set the content of the custom file browse button text via the `browse-text`
|
|
199
|
-
prop. Note, only plain text is supported. HTML and components are not supported.
|
|
200
|
-
|
|
201
|
-
### File name formatter function
|
|
202
|
-
|
|
203
|
-
Set the prop `file-name-formatter` to a function that accepts three arguments:
|
|
204
|
-
|
|
205
|
-
| Argument | Type | Description |
|
|
206
|
-
| -------------------- | ----- | ----------------------------------------------------------------------------- |
|
|
207
|
-
| [1] `files` | Array | Flat array of `File` objects |
|
|
208
|
-
| [2] `filesTraversed` | Array | Array of arrays of `File` objects when in [`directory` mode](#directory-mode) |
|
|
209
|
-
| [3] `names` | Array | Flat array of file names (strings) |
|
|
210
|
-
|
|
211
|
-
The function should return a single formatted string (HTML is not supported). The formatter will not
|
|
212
|
-
be called if no files are selected.
|
|
213
|
-
|
|
214
|
-
```html
|
|
215
|
-
<template>
|
|
216
|
-
<b-form-file multiple :file-name-formatter="formatNames"></b-form-file>
|
|
217
|
-
</template>
|
|
218
|
-
|
|
219
|
-
<script>
|
|
220
|
-
export default {
|
|
221
|
-
methods: {
|
|
222
|
-
formatNames(files) {
|
|
223
|
-
return files.length === 1 ? files[0].name : `${files.length} files selected`
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
</script>
|
|
228
|
-
|
|
229
|
-
<!-- file-formatter-function.vue -->
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
### File name formatting via scoped slot
|
|
233
|
-
|
|
234
|
-
Alternatively, you can use the scoped slot `file-name` to render the file names. The scoped slot
|
|
235
|
-
will receive the following properties:
|
|
236
|
-
|
|
237
|
-
| Property | Type | Description |
|
|
238
|
-
| ---------------- | ----- | ----------------------------------------------------------------------------- |
|
|
239
|
-
| `files` | Array | Flat array of `File` objects |
|
|
240
|
-
| `filesTraversed` | Array | Array of arrays of `File` objects when in [`directory` mode](#directory-mode) |
|
|
241
|
-
| `names` | Array | Flat array of file names (strings) |
|
|
242
|
-
|
|
243
|
-
All three properties are always arrays, regardless of the setting of the `multiple` prop.
|
|
244
|
-
|
|
245
|
-
```html
|
|
246
|
-
<template>
|
|
247
|
-
<b-form-file multiple>
|
|
248
|
-
<template slot="file-name" slot-scope="{ names }">
|
|
249
|
-
<b-badge variant="dark">{{ names[0] }}</b-badge>
|
|
250
|
-
<b-badge v-if="names.length > 1" variant="dark" class="ml-1">
|
|
251
|
-
+ {{ names.length - 1 }} More files
|
|
252
|
-
</b-badge>
|
|
253
|
-
</template>
|
|
254
|
-
</b-form-file>
|
|
255
|
-
</template>
|
|
256
|
-
|
|
257
|
-
<!-- file-formatter-slot.vue -->
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
When using the `file-name` slot, the `file-name-formatter` prop is ignored. The slot **will not** be
|
|
261
|
-
rendered when there are no file(s) selected.
|
|
262
|
-
|
|
263
|
-
## Non custom file input
|
|
264
|
-
|
|
265
|
-
You can have `<b-form-file>` render a browser native file input by setting the `plain` prop. Note
|
|
266
|
-
that many of the custom features do not apply when `plain` is set.
|
|
267
|
-
|
|
268
|
-
## Contextual state feedback
|
|
269
|
-
|
|
270
|
-
Bootstrap includes validation styles for `valid` and `invalid` states on most form controls.
|
|
271
|
-
|
|
272
|
-
Generally speaking, you'll want to use a particular state for specific types of feedback:
|
|
273
|
-
|
|
274
|
-
- `false` (denotes invalid state) is great for when there's a blocking or required field. A user
|
|
275
|
-
must fill in this field properly to submit the form
|
|
276
|
-
- `true` (denotes valid state) is ideal for situations when you have per-field validation throughout
|
|
277
|
-
a form and want to encourage a user through the rest of the fields
|
|
278
|
-
- `null` displays no validation state (neither valid nor invalid)
|
|
279
|
-
|
|
280
|
-
To apply one of the contextual state icons on `<b-form-file>`, set the `state` prop to `false` (for
|
|
281
|
-
invalid), `true` (for valid), or `null` (no validation state).
|
|
282
|
-
|
|
283
|
-
**Note:** Contextual states are **not** supported when in [`plain` mode](#non-custom-file-input).
|
|
284
|
-
|
|
285
|
-
## Autofocus
|
|
286
|
-
|
|
287
|
-
When the `autofocus` prop is set on `<b-form-file>`, the input will be auto-focused when it is
|
|
288
|
-
inserted (i.e. **mounted**) into the document, or re-activated when inside a Vue `<keep-alive>`
|
|
289
|
-
component. Note that this prop **does not** set the `autofocus` attribute on the input, nor can it
|
|
290
|
-
tell when the input becomes visible.
|
|
291
|
-
|
|
292
|
-
## Accessibility
|
|
293
|
-
|
|
294
|
-
When using the custom version of `<b-form-file>` input which hides the original input, it is
|
|
295
|
-
**highly recommended** that you supply a document unique ID string via the `id` prop. This will
|
|
296
|
-
automatically render the extra ARIA attributes required to improve usability for persons using
|
|
297
|
-
assistive technologies.
|
|
298
|
-
|
|
299
|
-
## Clearing the file selection
|
|
300
|
-
|
|
301
|
-
With inputs of type file, normally the `v-model` is uni-directional (meaning you cannot pre-set the
|
|
302
|
-
selected files). However, you can clear the file input's selected files by setting the `v-model` to
|
|
303
|
-
either `null` (for single mode) or an empty array `[]` (for
|
|
304
|
-
[`multiple`](#multiple-files)/[`directory`](#directory-mode) mode).
|
|
305
|
-
|
|
306
|
-
Alternatively, `<b-form-file>` provides a `reset()` method that can be called to clear the file
|
|
307
|
-
input. To take advantage of the `reset()` method, you will need to obtain a reference to the
|
|
308
|
-
`<b-form-file>` component.
|
|
309
|
-
|
|
310
|
-
```html
|
|
311
|
-
<template>
|
|
312
|
-
<div>
|
|
313
|
-
<b-form-file v-model="file" ref="file-input" class="mb-2"></b-form-file>
|
|
314
|
-
|
|
315
|
-
<b-button @click="clearFiles" class="mr-2">Reset via method</b-button>
|
|
316
|
-
<b-button @click="file = null">Reset via v-model</b-button>
|
|
317
|
-
|
|
318
|
-
<p class="mt-2">Selected file: <b>{{ file ? file.name : '' }}</b></p>
|
|
319
|
-
</div>
|
|
320
|
-
</template>
|
|
321
|
-
|
|
322
|
-
<script>
|
|
323
|
-
export default {
|
|
324
|
-
data() {
|
|
325
|
-
return {
|
|
326
|
-
file: null
|
|
327
|
-
}
|
|
328
|
-
},
|
|
329
|
-
methods: {
|
|
330
|
-
clearFiles() {
|
|
331
|
-
this.$refs['file-input'].reset()
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
</script>
|
|
336
|
-
|
|
337
|
-
<!-- b-form-file-reset.vue -->
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
## Implementation notes
|
|
341
|
-
|
|
342
|
-
As not all browsers allow setting a value of a file input (even to `null` or an empty string),
|
|
343
|
-
`b-form-input` employs a technique that works cross-browser that involves changing the input type to
|
|
344
|
-
`null` and then immediately back to type `file`.
|
|
345
|
-
|
|
346
|
-
Nested file structures in [`directory` mode](#directory-mode) require `Promise` support in the
|
|
347
|
-
browser. If targeting your app for older browsers, such as IE 11, please include a polyfill that
|
|
348
|
-
provides `Promise` support. If `Promise` support is not detected, files will always be in a flat
|
|
349
|
-
file structure.
|
|
350
|
-
|
|
351
|
-
Due to a ["bug" in Chromium](https://bugs.chromium.org/p/chromium/issues/detail?id=138987), nested
|
|
352
|
-
file structures in [`directory` mode](#directory-mode) are currently only supported when directories
|
|
353
|
-
are [dropped](#drag-and-drop-support) on the file input. When selecting them via the "Browse" dialog
|
|
354
|
-
they will always be in a flattened array structure. Mozilla implemented the behavior
|
|
355
|
-
[the same way as Chromium.](https://bugzilla.mozilla.org/show_bug.cgi?id=1326031)
|
|
356
|
-
|
|
357
|
-
<!-- Component reference added automatically from component package.json -->
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
// Adds in sizes for custom-file
|
|
2
|
-
|
|
3
|
-
// Prevent file names from overflowing the file input
|
|
4
|
-
// These styles can be removed when the related Bootstrap bug gets fixed:
|
|
5
|
-
// https://github.com/twbs/bootstrap/issues/31577
|
|
6
|
-
.custom-file-label {
|
|
7
|
-
white-space: nowrap;
|
|
8
|
-
overflow-x: hidden;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.b-custom-control-lg,
|
|
12
|
-
.input-group-lg {
|
|
13
|
-
&.custom-file,
|
|
14
|
-
.custom-file-input,
|
|
15
|
-
.custom-file-label {
|
|
16
|
-
font-size: $b-custom-file-font-size-lg;
|
|
17
|
-
height: $b-custom-file-height-lg;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.custom-file-label,
|
|
21
|
-
.custom-file-label:after {
|
|
22
|
-
padding: $b-custom-file-padding-y-lg $b-custom-file-padding-x-lg;
|
|
23
|
-
line-height: $b-custom-file-line-height-lg;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.custom-file-label {
|
|
27
|
-
@include border-radius($b-custom-file-border-radius-lg);
|
|
28
|
-
|
|
29
|
-
&::after {
|
|
30
|
-
font-size: inherit;
|
|
31
|
-
height: $b-custom-file-height-inner-lg;
|
|
32
|
-
@include border-radius(0 $b-custom-file-border-radius-lg $b-custom-file-border-radius-lg 0);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.b-custom-control-sm,
|
|
38
|
-
.input-group-sm {
|
|
39
|
-
&.custom-file,
|
|
40
|
-
.custom-file-input,
|
|
41
|
-
.custom-file-label {
|
|
42
|
-
font-size: $b-custom-file-font-size-sm;
|
|
43
|
-
height: $b-custom-file-height-sm;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.custom-file-label,
|
|
47
|
-
.custom-file-label:after {
|
|
48
|
-
padding: $b-custom-file-padding-y-sm $b-custom-file-padding-x-sm;
|
|
49
|
-
line-height: $b-custom-file-line-height-sm;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.custom-file-label {
|
|
53
|
-
@include border-radius($b-custom-file-border-radius-sm);
|
|
54
|
-
|
|
55
|
-
&::after {
|
|
56
|
-
font-size: inherit;
|
|
57
|
-
height: $b-custom-file-height-inner-sm;
|
|
58
|
-
@include border-radius(0 $b-custom-file-border-radius-sm $b-custom-file-border-radius-sm 0);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|