|
4 | 4 | > [standard-version](https://github.com/conventional-changelog/standard-version) for commit |
5 | 5 | > guidelines. |
6 | 6 |
|
| 7 | +<a name="2.0.0"></a> |
| 8 | + |
| 9 | +## [v2.0.0](https://github.com/bootstrap-vue/bootstrap-vue/compare/v2.0.0-rc.28...v2.0.0) |
| 10 | + |
| 11 | +Released: 2019-09-06 |
| 12 | + |
| 13 | +> **BoootstrapVue 2.0.0 stable** introduces several new features and bug fixes. Please note that |
| 14 | +> this release also _includes several breaking changes_. |
| 15 | +
|
| 16 | +**Notable improvements:** |
| 17 | + |
| 18 | +- Tooltips and popovers have been competely re-written for better reactivity and stability. The |
| 19 | + directive versions are now reactive to trigger element `title` attribute changes and configuration |
| 20 | + changes. The component versions now perform better when qucikly hovering/unhovering the trigger |
| 21 | + element. Component and directive versions now have a default delay of `50`ms (affects `'hover'` |
| 22 | + and `'focus'` triggers only). They can now have a trigger of `'manual'` (when used by itself) of |
| 23 | + which they can only be opened or closed programmatically. Users can now optionally specify the ID |
| 24 | + that the tooltip or popover uses. For accessibility reasons, the `title` attribute is removed from |
| 25 | + the trigger element (target) only when the tooltip or popover is showing, and is restored when |
| 26 | + hidden. |
| 27 | +- Modals, tooltips, popovers, and toasts now work with scoped style classes (requires the use of |
| 28 | + vue-loader's `/deep/`, `::v-deep` or `>>>` |
| 29 | + [deep selectors](https://vue-loader.vuejs.org/guide/scoped-css.html#child-component-root-elements) |
| 30 | + for targeting inner elements, just like with any other component). |
| 31 | +- New SVG background image based sorting indicator icons for `<b-table>`, with the ability to place |
| 32 | + them on either the right (default) or left of the table cell headers (via a new prop). |
| 33 | +- Programmatic selection of `<b-table>` selctable rows. |
| 34 | +- Ability to provide your own custom footer structure for `<b-table>` and `<b-table-lite>`. |
| 35 | + |
| 36 | +### Breaking changes and deprecated features removal v2.0.0 |
| 37 | + |
| 38 | +**Please carefully read the following before upgrading to v2.0.0 stable!** |
| 39 | + |
| 40 | +- Vue `2.6`+ is now **required** at a minimum, `2.6.10`+ is recommended. Some components will fail |
| 41 | + to work as expected if using Vue `2.5` (notably tooltips and popovers, but other components may be |
| 42 | + affected as well). |
| 43 | +- All **deprecated features** have been removed in v2.0.0 stable in order to reduce bundle size and |
| 44 | + simplify code. |
| 45 | + |
| 46 | +**Two notable breaking changes are:** |
| 47 | + |
| 48 | +- **changes to the table slot naming syntax:** the table slot syntax introduced in rc.28 has been |
| 49 | + modified in v2.0.0 stable for better compatibility with the new Vue `v-slot` syntax and its |
| 50 | + limitations (which currently are not documented in the Vue.JS docs). |
| 51 | +- **the removal of the deprecated `/es` build directory:** Users should now be importing the new |
| 52 | + top-level named exports when importing individual components, directives, and plugins. |
| 53 | + |
| 54 | +Read the following migration guide for more details. |
| 55 | + |
| 56 | +### Migration guide v2.0.0 |
| 57 | + |
| 58 | +- **Removal of the deprecated `/es` build directory**. Users should now be using the new simplified |
| 59 | + import syntax introduced in v2.0.0-rc.22. Users should be importing the top-level _named exports_ |
| 60 | + instead. |
| 61 | +- `b-dropdown`: removal of deprecated `text` slot. Use the `button-content` slot instead. |
| 62 | +- `b-form-*` controls, `b-form-group`, `b-form-invalid-feedback` and `b-form-valid-feedback`: |
| 63 | + validation prop `state` now only accepts `true`, `false`, or `null` values. Passing the strings |
| 64 | + `'invalid'` or `'valid'` will no longer work. |
| 65 | +- `b-form-group`: removal of the deprecated `horizontal` and `breakpoint` props. Use props |
| 66 | + `label-cols{-{breakpoint}}` instead. |
| 67 | +- `b-img-lazy`, `b-card-img-lazy`: now rely only on `IntersectionObserver` support (native or via a |
| 68 | + polyfill) to determine when to show the image. If `IntersectionObserver` support is not detected, |
| 69 | + then the image will _always_ be shown. Use a polyfill if you need to support older browsers (e.g. |
| 70 | + IE11) |
| 71 | +- `b-modal`: the deprecated `BvModalEvent` method `cancel()` has been removed. Use the method |
| 72 | + `preventDefault()` instead. |
| 73 | +- `b-modal`: the deprecated `BvModalEvent` property `modalId` has been removed. Use the property |
| 74 | + `componentId` instead. |
| 75 | +- `b-nav`: removal of the deprecated `is-nav` prop. Use `b-navbar-nav` component instead when |
| 76 | + placing navs in `b-navbar`. |
| 77 | +- `b-nav-item-dropdown`: deprecated props `extra-menu-classes` and `extra-toggle-classes` have been |
| 78 | + removed. Used props `menu-class` and `toggle-class` (respectively) instead. |
| 79 | +- `b-table` and `b-table-lite`: **table cell field, header and footer scoped slot naming convention |
| 80 | + has changed**. Users should be using the new table round bracketed slot naming syntax: use slot |
| 81 | + `cell(field)` instead of `field` or `[field]`, use slot `head(field)` instead of `HEAD_field` or |
| 82 | + `HEAD[field]`, use `foot(field)` instead of `FOOT_field` or `FOOT[field]`. This change was |
| 83 | + _required_ for better compatibility with the new Vue `v-slot` syntax. The square bracket syntax |
| 84 | + introduced in `2.0.0-rc.28` has been replaced with the round bracket syntax to reduce possible |
| 85 | + confusion and potential future issues with Vue 2.6's new |
| 86 | + [dynamic slot name](https://vuejs.org/v2/guide/components-slots.html#Dynamic-Slot-Names) syntax. |
| 87 | +- `b-table`: the `filter` prop will no longer accept a function reference (previously deprecated). |
| 88 | + Instead, pass a function to the `filter-function` prop when using a custom filter function. The |
| 89 | + prop `filter` is only to be used for the filter's _criteria_ (i.e. the search value, search |
| 90 | + `RegExpr`, etc). |
| 91 | +- `b-table`: passing an object as a `fields` definition will no longer work. Use the _array of |
| 92 | + strings_ or _array of objects_ (or a combination of the two) fields definition format instead. |
| 93 | +- `b-table`: sorting icon SASS variables have been changed to handle the new SVG backgrounds. If you |
| 94 | + previously had custom CSS styling/icons, they will not work as expected - but sorting will still |
| 95 | + work. the SVG backgrounds can be controlled via SASS variables. |
| 96 | +- `b-tab`: removal of deprecated `href` prop. Use `<b-nav>` for controlling panes that change with |
| 97 | + URL changes. |
| 98 | +- `b-tabs`: removal of deprecated `tabs` slot. Use slot `tabs-end` instead. |
| 99 | +- `b-tabs`: removal of deprecated `bottom` prop. Use the `end` prop instead. |
| 100 | +- Tooltip SCSS: deprecated variable `$bv-tooltip-bg-level` has been removed. Use variable |
| 101 | + `$b-tooltip-bg-level` instead. |
| 102 | +- Popover SCSS: deprecated variables `$bv-popover-bg-level`, `$bv-popover-border-level`, and |
| 103 | + `$bv-popover-color-level` have been removed. Use variables `$b-popover-bg-level`, |
| 104 | + `$b-popover-border-level`, and `$b-popover-color-level` (respectively) instead. |
| 105 | + |
| 106 | +Please refer to the [documentation](https://bootstrap-vue.js.org/) for the latest usage and |
| 107 | +examples, and below for a list of fixes and new features. |
| 108 | + |
| 109 | +### Bug Fixes v2.0.0 |
| 110 | + |
| 111 | +- **b-dropdown-\*:** ensure class bindings are placed on root element for all dropdown sub-components |
| 112 | + (closes [#4022](https://github.com/bootstrap-vue/bootstrap-vue/issues/4022)) |
| 113 | + ([#4024](https://github.com/bootstrap-vue/bootstrap-vue/issues/4024)) |
| 114 | + ([81efb89](https://github.com/bootstrap-vue/bootstrap-vue/commit/81efb89)) |
| 115 | +- **b-form-textarea:** handle initial auto-height when in modal, tabs, or other component with |
| 116 | + transition or which uses `v-show` (fixes |
| 117 | + [#3936](https://github.com/bootstrap-vue/bootstrap-vue/issues/3936), |
| 118 | + [#3702](https://github.com/bootstrap-vue/bootstrap-vue/issues/3702)) |
| 119 | + ([#3937](https://github.com/bootstrap-vue/bootstrap-vue/issues/3937)) |
| 120 | + ([be3ac62](https://github.com/bootstrap-vue/bootstrap-vue/commit/be3ac62)) |
| 121 | +- **b-link:** only add the `nativeOn` property to componentData when rendering a router link |
| 122 | + ([#3976](https://github.com/bootstrap-vue/bootstrap-vue/issues/3976)) |
| 123 | + ([62fb0b6](https://github.com/bootstrap-vue/bootstrap-vue/commit/62fb0b6)) |
| 124 | +- **b-modal:** ensure non-prop attributes are transferred to the modal outer wrapper `div` (closes |
| 125 | + [#3896](https://github.com/bootstrap-vue/bootstrap-vue/issues/3896)) |
| 126 | + ([#3921](https://github.com/bootstrap-vue/bootstrap-vue/issues/3921)) |
| 127 | + ([8bf3a55](https://github.com/bootstrap-vue/bootstrap-vue/commit/8bf3a55)) |
| 128 | +- **b-modal:** fix scroll to top issue when modal has `no-fade` set |
| 129 | + ([#4004](https://github.com/bootstrap-vue/bootstrap-vue/issues/4004)) |
| 130 | + ([332b79f](https://github.com/bootstrap-vue/bootstrap-vue/commit/332b79f)) |
| 131 | +- **b-table, b-table-lite:** handle edge case where field slot returns no vNodes (fixes |
| 132 | + [#3919](https://github.com/bootstrap-vue/bootstrap-vue/issues/3919)) |
| 133 | + ([#3920](https://github.com/bootstrap-vue/bootstrap-vue/issues/3920)) |
| 134 | + ([a392059](https://github.com/bootstrap-vue/bootstrap-vue/commit/a392059)) |
| 135 | +- **b-table, b-table-lite:** render header when not always stacked mode (fixes |
| 136 | + [#3886](https://github.com/bootstrap-vue/bootstrap-vue/issues/3886)) |
| 137 | + ([#3887](https://github.com/bootstrap-vue/bootstrap-vue/issues/3887)) |
| 138 | + ([2302b31](https://github.com/bootstrap-vue/bootstrap-vue/commit/2302b31)) |
| 139 | +- **b-table, b-table-lite:** generate `:key` for `row-details` row based on the `primary-key` field |
| 140 | + value if available |
| 141 | + ([#4025](https://github.com/bootstrap-vue/bootstrap-vue/issues/4025)) |
| 142 | + ([c7cb16f](https://github.com/bootstrap-vue/bootstrap-vue/commit/c7cb16f)) |
| 143 | +- **v-b-toggle:** don't override `role` if element has a `role` assigned |
| 144 | + ([#3889](https://github.com/bootstrap-vue/bootstrap-vue/issues/3889)) |
| 145 | + ([5d155ba](https://github.com/bootstrap-vue/bootstrap-vue/commit/5d155ba)) |
| 146 | +- **tooltip, popover:** overall code refactor for better reactivity and performance (fixes: |
| 147 | + [#1990](https://github.com/bootstrap-vue/bootstrap-vue/issues/1990), |
| 148 | + [#2937](https://github.com/bootstrap-vue/bootstrap-vue/issues/2937), |
| 149 | + [#3480](https://github.com/bootstrap-vue/bootstrap-vue/issues/3480), |
| 150 | + [#3717](https://github.com/bootstrap-vue/bootstrap-vue/issues/3717), |
| 151 | + [#3854](https://github.com/bootstrap-vue/bootstrap-vue/issues/3854), closes |
| 152 | + [#3451](https://github.com/bootstrap-vue/bootstrap-vue/issues/3451)) |
| 153 | + ([#3908](https://github.com/bootstrap-vue/bootstrap-vue/issues/3908)) |
| 154 | + ([eebab43](https://github.com/bootstrap-vue/bootstrap-vue/commit/eebab43)) |
| 155 | + |
| 156 | +### Features v2.0.0 |
| 157 | + |
| 158 | +- **b-carousel:** add prop `no-wrap` for disabling wrapping to start/end (closes |
| 159 | + [#3902](https://github.com/bootstrap-vue/bootstrap-vue/issues/3902)) |
| 160 | + ([#3905](https://github.com/bootstrap-vue/bootstrap-vue/issues/3905)) |
| 161 | + ([2c8bd23](https://github.com/bootstrap-vue/bootstrap-vue/commit/2c8bd23)) |
| 162 | +- **b-dropdown:** add `role=presentation` to `<li>` elements for improved a11y |
| 163 | + ([#3996](https://github.com/bootstrap-vue/bootstrap-vue/issues/3996)) |
| 164 | + ([464d257](https://github.com/bootstrap-vue/bootstrap-vue/commit/464d257)) |
| 165 | +- **b-img-lazy:** switch IntersectionObserver to use private `v-b-visible` directive |
| 166 | + ([#3977](https://github.com/bootstrap-vue/bootstrap-vue/issues/3977)) |
| 167 | + ([249ccfa](https://github.com/bootstrap-vue/bootstrap-vue/commit/249ccfa)) |
| 168 | +- **b-modal:** add scoped style support when portalled (non-static modal) |
| 169 | + ([#3962](https://github.com/bootstrap-vue/bootstrap-vue/issues/3962)) |
| 170 | + ([77ad6b9](https://github.com/bootstrap-vue/bootstrap-vue/commit/77ad6b9)) |
| 171 | +- **b-nav:** add card header support |
| 172 | + ([#3883](https://github.com/bootstrap-vue/bootstrap-vue/issues/3883)) |
| 173 | + ([4046a53](https://github.com/bootstrap-vue/bootstrap-vue/commit/4046a53)) |
| 174 | +- **b-pagination:** if number of pages changes, try and keep current page active (closes |
| 175 | + [#3716](https://github.com/bootstrap-vue/bootstrap-vue/issues/3716)) |
| 176 | + ([#3990](https://github.com/bootstrap-vue/bootstrap-vue/issues/3990)) |
| 177 | + ([ae8ce78](https://github.com/bootstrap-vue/bootstrap-vue/commit/ae8ce78)) |
| 178 | +- **b-modal:** add prop for auto focusing one of the built in-buttons once `shown` (closes |
| 179 | + [#3945](https://github.com/bootstrap-vue/bootstrap-vue/issues/3945)) |
| 180 | + ([#3979](https://github.com/bootstrap-vue/bootstrap-vue/issues/3979)) |
| 181 | + ([6f2827e](https://github.com/bootstrap-vue/bootstrap-vue/commit/6f2827e)) |
| 182 | +- **b-table:** allow field definition properties `filterByFormatted` and `sortByFormatted` to accept |
| 183 | + a formatter function reference (closes |
| 184 | + [#3892](https://github.com/bootstrap-vue/bootstrap-vue/issues/3892)) |
| 185 | + ([#3898](https://github.com/bootstrap-vue/bootstrap-vue/issues/3898)) |
| 186 | + ([5492b38](https://github.com/bootstrap-vue/bootstrap-vue/commit/5492b38)) |
| 187 | +- **b-table:** new sorting icons using SVG, plus option to place icon on left of header cell (closes |
| 188 | + [#3687](https://github.com/bootstrap-vue/bootstrap-vue/issues/3687), |
| 189 | + [#3696](https://github.com/bootstrap-vue/bootstrap-vue/issues/3696), |
| 190 | + [#3918](https://github.com/bootstrap-vue/bootstrap-vue/issues/3918), |
| 191 | + [#3966](https://github.com/bootstrap-vue/bootstrap-vue/issues/3966)) |
| 192 | + ([#3968](https://github.com/bootstrap-vue/bootstrap-vue/issues/3968)) |
| 193 | + ([c4442f4](https://github.com/bootstrap-vue/bootstrap-vue/commit/c4442f4)) |
| 194 | +- **b-table:** add `filter-debounce` prop for debouncing filter updates |
| 195 | + ([#3891](https://github.com/bootstrap-vue/bootstrap-vue/issues/3891)) |
| 196 | + ([03536a5](https://github.com/bootstrap-vue/bootstrap-vue/commit/03536a5)) |
| 197 | +- **b-table:** add `selectAllRows()` and `clearSelected()` to thead/tfoot slot scopes (addresses |
| 198 | + [#3901](https://github.com/bootstrap-vue/bootstrap-vue/issues/3901)) |
| 199 | + ([#3907](https://github.com/bootstrap-vue/bootstrap-vue/issues/3907)) |
| 200 | + ([86c53dd](https://github.com/bootstrap-vue/bootstrap-vue/commit/86c53dd)) |
| 201 | +- **b-table, b-table-lite:** switch slot name syntax to use round brackets instead of square |
| 202 | + brackets ([#3986](https://github.com/bootstrap-vue/bootstrap-vue/issues/3986)) |
| 203 | + ([fca7bd5](https://github.com/bootstrap-vue/bootstrap-vue/commit/fca7bd5)) |
| 204 | +- **b-table, b-table-lite:** remove deprecated slot names, introduce new slot names |
| 205 | + ([#3866](https://github.com/bootstrap-vue/bootstrap-vue/issues/3866)) |
| 206 | + ([249efd9](https://github.com/bootstrap-vue/bootstrap-vue/commit/249efd9)) |
| 207 | +- **b-table, b-table-lite:** use `aria-details` rather than `aria-describedby` when details row |
| 208 | + showing (addresses [#3801](https://github.com/bootstrap-vue/bootstrap-vue/issues/3801)) |
| 209 | + ([#3992](https://github.com/bootstrap-vue/bootstrap-vue/issues/3992)) |
| 210 | + ([f6f73c7](https://github.com/bootstrap-vue/bootstrap-vue/commit/f6f73c7)) |
| 211 | +- **b-table, b-table-lite:** add support for custom header attributes (closes |
| 212 | + [#2244](https://github.com/bootstrap-vue/bootstrap-vue/issues/2244)) |
| 213 | + ([#3876](https://github.com/bootstrap-vue/bootstrap-vue/issues/3876)) |
| 214 | + ([8784f31](https://github.com/bootstrap-vue/bootstrap-vue/commit/8784f31)) |
| 215 | +- **b-table, b-table-lite:** add new scoped slot `custom-foot` to allow user to create their own |
| 216 | + table footer (closes [#3960](https://github.com/bootstrap-vue/bootstrap-vue/issues/3960)) |
| 217 | + ([#4027](https://github.com/bootstrap-vue/bootstrap-vue/issues/4027)) |
| 218 | + ([cbeeef9](https://github.com/bootstrap-vue/bootstrap-vue/commit/cbeeef9)) |
| 219 | +- **b-table, b-table-lite, b-table-simple:** add `no-border-collapse` prop and SCSS |
| 220 | + ([#3987](https://github.com/bootstrap-vue/bootstrap-vue/issues/3987)) |
| 221 | + ([253b4f6](https://github.com/bootstrap-vue/bootstrap-vue/commit/253b4f6)) |
| 222 | +- **b-toast:** add support for scoped styles |
| 223 | + ([#3963](https://github.com/bootstrap-vue/bootstrap-vue/issues/3963)) |
| 224 | + ([ca1b5de](https://github.com/bootstrap-vue/bootstrap-vue/commit/ca1b5de)) |
| 225 | +- **tooltip, popover:** overall code refactor for better reactivity and performance (fixes: |
| 226 | + [#1990](https://github.com/bootstrap-vue/bootstrap-vue/issues/1990), |
| 227 | + [#2937](https://github.com/bootstrap-vue/bootstrap-vue/issues/2937), |
| 228 | + [#3480](https://github.com/bootstrap-vue/bootstrap-vue/issues/3480), |
| 229 | + [#3717](https://github.com/bootstrap-vue/bootstrap-vue/issues/3717), |
| 230 | + [#3854](https://github.com/bootstrap-vue/bootstrap-vue/issues/3854), closes |
| 231 | + [#3451](https://github.com/bootstrap-vue/bootstrap-vue/issues/3451)) |
| 232 | + ([#3908](https://github.com/bootstrap-vue/bootstrap-vue/issues/3908)) |
| 233 | + ([eebab43](https://github.com/bootstrap-vue/bootstrap-vue/commit/eebab43)) |
| 234 | + |
| 235 | +### Depreaction removals v2.0.0 |
| 236 | + |
| 237 | +- **b-dropdown:** remove deprecated slot `text` |
| 238 | + ([#3868](https://github.com/bootstrap-vue/bootstrap-vue/issues/3868)) |
| 239 | + ([29eb8b1](https://github.com/bootstrap-vue/bootstrap-vue/commit/29eb8b1)) |
| 240 | +- **b-form-group:** remove deprecated prop `horizontal` and `breakpoint` |
| 241 | + ([#3879](https://github.com/bootstrap-vue/bootstrap-vue/issues/3879)) |
| 242 | + ([b301822](https://github.com/bootstrap-vue/bootstrap-vue/commit/b301822)) |
| 243 | +- **b-nav, b-nav-item-dropdown:** remove deprecated slot and props |
| 244 | + ([#3867](https://github.com/bootstrap-vue/bootstrap-vue/issues/3867)) |
| 245 | + ([21fab35](https://github.com/bootstrap-vue/bootstrap-vue/commit/21fab35)) |
| 246 | +- **b-modal:** remove `BvModalEvent` deprecations |
| 247 | + ([#3864](https://github.com/bootstrap-vue/bootstrap-vue/issues/3864)) |
| 248 | + ([90c299c](https://github.com/bootstrap-vue/bootstrap-vue/commit/90c299c)) |
| 249 | +- **b-table, b-table-lite:** switch slot name syntax to use round brackets instead of square |
| 250 | + brackets ([#3986](https://github.com/bootstrap-vue/bootstrap-vue/issues/3986)) |
| 251 | + ([fca7bd5](https://github.com/bootstrap-vue/bootstrap-vue/commit/fca7bd5)) |
| 252 | +- **b-table, b-table-lite:** remove deprecated slot names, introduce new slot names |
| 253 | + ([#3866](https://github.com/bootstrap-vue/bootstrap-vue/issues/3866)) |
| 254 | + ([249efd9](https://github.com/bootstrap-vue/bootstrap-vue/commit/249efd9)) |
| 255 | +- **b-tabs:** remove deprecations |
| 256 | + ([#3863](https://github.com/bootstrap-vue/bootstrap-vue/issues/3863)) |
| 257 | + ([0edac49](https://github.com/bootstrap-vue/bootstrap-vue/commit/0edac49)) |
| 258 | +- **tooltip/popover:** remove SCSS deprecations |
| 259 | + ([#3869](https://github.com/bootstrap-vue/bootstrap-vue/issues/3869)) |
| 260 | + ([bea49d4](https://github.com/bootstrap-vue/bootstrap-vue/commit/bea49d4)) |
| 261 | +- **build:** remove deprecated `es/` build |
| 262 | + ([#3604](https://github.com/bootstrap-vue/bootstrap-vue/issues/3604)) |
| 263 | + ([3828f59](https://github.com/bootstrap-vue/bootstrap-vue/commit/3828f59)) |
| 264 | + |
| 265 | +<br> |
| 266 | +<hr> |
| 267 | + |
7 | 268 | <a name="2.0.0-rc.28"></a> |
8 | 269 |
|
9 | 270 | ## [v2.0.0-rc.28](https://github.com/bootstrap-vue/bootstrap-vue/compare/v2.0.0-rc.27...v2.0.0-rc.28) |
|
0 commit comments