Skip to content

fix(link): if to is an object and to.path exists, use to.path has href fallback #940

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 4 commits into from

Conversation

tmorehouse
Copy link
Member

No description provided.

@codecov-io
Copy link

codecov-io commented Aug 28, 2017

Codecov Report

Merging #940 into dev will decrease coverage by 0.03%.
The diff coverage is 66.66%.

Impacted file tree graph

@@            Coverage Diff             @@
##              dev     #940      +/-   ##
==========================================
- Coverage   42.62%   42.59%   -0.04%     
==========================================
  Files          96       96              
  Lines        2353     2355       +2     
  Branches      680      682       +2     
==========================================
  Hits         1003     1003              
  Misses       1188     1188              
- Partials      162      164       +2
Impacted Files Coverage Δ
lib/components/link.js 77.5% <66.66%> (-4.08%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a9bb99f...9a000fb. Read the comment docs.

@alexsasharegan
Copy link
Member

alexsasharegan commented Aug 28, 2017

It's this necessary? View router already does this for us I thought. Also, if I use an object with a path but I also supply params, would they get removed?

@tmorehouse tmorehouse changed the title fix(link): if to is an object and to.path exists, use it has href fix(link): if to is an object and to.path exists, use to.path has href Aug 28, 2017
@tmorehouse
Copy link
Member Author

Maybe it does... so should we even set href at all if to is provided? (or maybe always set to '#' ?

@tmorehouse
Copy link
Member Author

This used to be in the original b-link code from way back (before my time).

I think it was a fallback in case vue-router wasn't available

@alexsasharegan
Copy link
Member

Then maybe it should check for vue-router first. Maybe it could use Boolean(parent.$router)?

@tmorehouse
Copy link
Member Author

Is there a $isRouter prop on the vue instance?

@tmorehouse
Copy link
Member Author

Note... just vm.$router

@tmorehouse tmorehouse changed the title fix(link): if to is an object and to.path exists, use to.path has href fix(link): if to is an object and to.path exists, use to.path has href fallback Aug 28, 2017
@tmorehouse
Copy link
Member Author

Actually it appears that router-link ignores the href prop.

@pi0
Copy link
Member

pi0 commented Aug 30, 2017

@tmorehouse We have initially made b-link abstraction to make BV more portable not depending on special libraries like vue-router and also have a tight integration with the router if exists. This made many big challenges. First that router-link itself creates href too so having both on our custom component makes many problems specially with SSR renders. But i think with the The parent.$router guard in this PR is safe as it just happens when there is no router :)

@tmorehouse
Copy link
Member Author

tmorehouse commented Aug 30, 2017

@pi0 Should we event set an href (right now defaults to # if to is provided and parent.$router is defined). Should it maybe return null or empty string in this case?

@pi0
Copy link
Member

pi0 commented Aug 30, 2017

@tmorehouse, To be honest, can't remind the exact story and reason. But I think it was '#' to show a correct cursor on drop-down, btn etc when router is available but to is not specified

@pi0
Copy link
Member

pi0 commented Aug 30, 2017

Ah it's getting more complicated :)) we need a psudo like code to specify b-link's behavior 😆

@tmorehouse
Copy link
Member Author

maybe if $router is defined and to provided, we return null for HREF, and let router link generate the HREF. but if to is provided and $router not avail, return to/to.path,

@@ -89,12 +89,16 @@ function computeTag(props) {
return props.to && !props.disabled ? "router-link" : "a";
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this should check for parent.$router as well?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes i think it should too.

Copy link
Member Author

@tmorehouse tmorehouse Aug 30, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just need to make sure it is passed parent as the next arg after props

@tmorehouse
Copy link
Member Author

Closing s this has been superseded by #1016

@tmorehouse tmorehouse closed this Sep 8, 2017
@tmorehouse tmorehouse deleted the tmorehouse/link-to branch September 8, 2017 05:12
alexsasharegan added a commit that referenced this pull request Sep 8, 2017
…#1016)

* fix(link): don't use href for router-links

* Merged dev into fix/link-router-to (#1018)

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* fix: add fixes from PR #940

* fix: don't change href when disabled

Previously, we we're altering the href to a "#" when disabled. Since we already handle disabling the link via click handlers, there is no reason to alter the semantics of the link.

* Update toolpop.js

* Update popover.vue

* Update tooltip.vue

* fix: typos

* refactor: remove link mixin usage

* fix(docs): proper component reference

* fix: incorporate @pi0's typo fix
tmorehouse added a commit that referenced this pull request Sep 12, 2017
* chore(docs): Minor update to popover example

* fix(carousel): Prevent reflow trigger from being optimised out (#995)

* Update carousel.vue

* fix(popover+tooltip): Allow indiviual component imports (#999)

* [tooltip class] import BvEvent direct
* [popover class] Import ToolTip direct

* fix(form-group): Not applying label-for prop value (#1000)

* feat(modal): Add props to change the variant of the default modal buttons (#1004)

* Add props to set variant of modal footer buttons

* update docs

* feat(popover+tooltip): Add hide event listener on $root (#1003)

* feat(popover/tooltip): Add hide on $root events

Optimized adding/removing of events.

Only listen/watch to certain events while the tooltip/popover is open

Adds listener for `bv::hide::(popover|tooltip)` event on root to allow user to close all popovers or tooltips via emitting on $root.

* [popover component] Document bv:hide::popover event

* [tooltip component] Document bv:hide:tooltip event

* [popover directive] Document bv:hide:popover event

* [tooltip directive]: Document bv:hide::tooltip event

* feat(table): Refactor field formatter support + optimized sort-compare handling (#991)

* refactor(b-table): use original item object

* chore(table.spec): eslint format

* feat(b-table): Allow usr provided sortCopmpare to handle only specific fields

if user provided sortCompare returns `null` (or `undefined`), then we assume it doesn't handle sorting for the field specified by `sortBy`

* ESLint

* Always return formattedValue as `value` in scoped slot.

Unformatted value is available as property `unformatted` on scoped slot data.

* Update docs

* Update README.md

* Allow formattter to return html content

* Update README.md

* fix(table-docs): unexpected identifier error

* fix(table-docs): typo corrections ⌨💥

* Allow v-html without need for wrapper div via v-if/v-else

* fix(tooltip-popover): Click not triggered for elements with inner HTML elements in Chrome (#1006)

Issue #1005

* docs: Update getting started

* feat(dropdowns): Add hide() and show() methods (#1012)

Addresses issue #1011

* [form-group] Use dom utils

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* feat(dom utils): Add getById method

* feat(tooltip+popover): Create mixin for common props and methods (#1021)

* feat(tooltip+popover): Create mixin for common props and methods

* make mixin available

* ESLint

* Update toolpop.js

* Update toolpop.js

* [tooltip.vue] use toolpop mixin

* [popover.vue] Use toolpop mixin

* chore: Update getting started

* fix type

* fix(lform-group): Missing return in target ID selection

* fix(link): clear router-link/href collision and remove old link mixin (#1016)

* fix(link): don't use href for router-links

* Merged dev into fix/link-router-to (#1018)

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* fix: add fixes from PR #940

* fix: don't change href when disabled

Previously, we we're altering the href to a "#" when disabled. Since we already handle disabling the link via click handlers, there is no reason to alter the semantics of the link.

* Update toolpop.js

* Update popover.vue

* Update tooltip.vue

* fix: typos

* refactor: remove link mixin usage

* fix(docs): proper component reference

* fix: incorporate @pi0's typo fix

* fix(tooltip.js) Remove unneeded line of code

* fix(tabs): Remove aria-expanded in favor of aria-seleted

As per Bootstrap V4 PR twbs/bootstrap#23907

* fix: Add lodash.startcase to dependancies

`b-table` requires `lodash.startcase`

* feat(modal): Improve modal transitions, padding adjustments, and aditional features (#1024)

* [modal] Fix transitions

* Update modal.vue

* Update modal.vue

* [v-b-modal] Use new namespaced $root event

* [modal] Incorporate BvEvent

* Update modal.vue

* [modal] Scrolbar adjustments & observeDom

* Update modal.vue

* [modal] Add variants

* Update demo.html

* Update demo.js

* Update meta.json

* Update README.md

* [modal] Add modal-header-close slot

* Update meta.json

* [b-button-close] New functional component for close button

Used by b-modal and b-alert

* make b-button-close available

* Update button-close.js

* [button-close] Ensure click event propagation is stopped when disabled

* [modal] use b-btn-close functional component

* [alert] Use b-btn-close component

* Update modal.vue

* add b-button-close to b-button meta.json

* [tooltip.js] Update to use only new modal close namespaced event

* [tooltip+popover] Auto-append tooltip/popover to modal if in a modal

Save user from having to specify the modal as a container when tooltip/popover is inside a modal

* [popover.js] Use dom utils

* [dom utils] Add class and attribute methods

* Update dom.js

* [modal] Use new dom utils class/atttr methods

* Update dom.js

* Update dom.js

* Update dom.js

* [tooltip.js] Use new DOM utils methods

* [popover.js] Use new dom utils class/attribute methods

* [modal] Update docs

* fix: correct some typos

* fix: clear console errors

* fix: add const declarations

* [modal] Call onAfterEvent transition handler

* fix: evt names for modal triggering & is_visible typo

* fix: modal v-model typo

* fix(btn-close): allow for innerHTML override

* refactor(modal): use object for conditional props

* feat(docs): new modal examples

* Classes: Wrap in Boolean and remove dangling commas

* [modal] minor updates to docs

* feat(form-file): Add focus styling for custom-file input (#1033)

* feat(form-file): Add focus styling for custom-file input

* Update form-file.vue

* [form-file] Remove wrapper div when in plain mode

* add sizing to plain file input

Unfortunately there doesn't appear to be an option to size the custom-file input.

* Update form-file.vue

* fix(observedom): Callback not being called for changes other than childList changes (#1025)

* fix(observedom): Callback not being called for changes other than node inert/remove

Allow callback to be called based on passed options.

Previously it was only being called if nodes were added or inserted, regardless of which options were passed (i.e. attribute changes, childList, textnode changes, etc.)

This fix remove this restriction.

* Create loose-equal.js

* Update index.js

* Update observe-dom.js

* Update index.js

* Delete loose-equal.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* [WIP] feat(collpase): Use new $root namespaced events (#1037)

feat(collpase): Use new $root namespaced events + dom utils
tmorehouse added a commit that referenced this pull request Sep 12, 2017
* chore(docs): Minor update to popover example

* fix(carousel): Prevent reflow trigger from being optimised out (#995)

* Update carousel.vue

* fix(popover+tooltip): Allow indiviual component imports (#999)

* [tooltip class] import BvEvent direct
* [popover class] Import ToolTip direct

* fix(form-group): Not applying label-for prop value (#1000)

* feat(modal): Add props to change the variant of the default modal buttons (#1004)

* Add props to set variant of modal footer buttons

* update docs

* feat(popover+tooltip): Add hide event listener on $root (#1003)

* feat(popover/tooltip): Add hide on $root events

Optimized adding/removing of events.

Only listen/watch to certain events while the tooltip/popover is open

Adds listener for `bv::hide::(popover|tooltip)` event on root to allow user to close all popovers or tooltips via emitting on $root.

* [popover component] Document bv:hide::popover event

* [tooltip component] Document bv:hide:tooltip event

* [popover directive] Document bv:hide:popover event

* [tooltip directive]: Document bv:hide::tooltip event

* feat(table): Refactor field formatter support + optimized sort-compare handling (#991)

* refactor(b-table): use original item object

* chore(table.spec): eslint format

* feat(b-table): Allow usr provided sortCopmpare to handle only specific fields

if user provided sortCompare returns `null` (or `undefined`), then we assume it doesn't handle sorting for the field specified by `sortBy`

* ESLint

* Always return formattedValue as `value` in scoped slot.

Unformatted value is available as property `unformatted` on scoped slot data.

* Update docs

* Update README.md

* Allow formattter to return html content

* Update README.md

* fix(table-docs): unexpected identifier error

* fix(table-docs): typo corrections ⌨💥

* Allow v-html without need for wrapper div via v-if/v-else

* fix(tooltip-popover): Click not triggered for elements with inner HTML elements in Chrome (#1006)

Issue #1005

* docs: Update getting started

* feat(dropdowns): Add hide() and show() methods (#1012)

Addresses issue #1011

* [form-group] Use dom utils

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* feat(dom utils): Add getById method

* feat(tooltip+popover): Create mixin for common props and methods (#1021)

* feat(tooltip+popover): Create mixin for common props and methods

* make mixin available

* ESLint

* Update toolpop.js

* Update toolpop.js

* [tooltip.vue] use toolpop mixin

* [popover.vue] Use toolpop mixin

* chore: Update getting started

* fix type

* fix(lform-group): Missing return in target ID selection

* fix(link): clear router-link/href collision and remove old link mixin (#1016)

* fix(link): don't use href for router-links

* Merged dev into fix/link-router-to (#1018)

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* fix: add fixes from PR #940

* fix: don't change href when disabled

Previously, we we're altering the href to a "#" when disabled. Since we already handle disabling the link via click handlers, there is no reason to alter the semantics of the link.

* Update toolpop.js

* Update popover.vue

* Update tooltip.vue

* fix: typos

* refactor: remove link mixin usage

* fix(docs): proper component reference

* fix: incorporate @pi0's typo fix

* fix(tooltip.js) Remove unneeded line of code

* fix(tabs): Remove aria-expanded in favor of aria-seleted

As per Bootstrap V4 PR twbs/bootstrap#23907

* fix: Add lodash.startcase to dependancies

`b-table` requires `lodash.startcase`

* feat(modal): Improve modal transitions, padding adjustments, and aditional features (#1024)

* [modal] Fix transitions

* Update modal.vue

* Update modal.vue

* [v-b-modal] Use new namespaced $root event

* [modal] Incorporate BvEvent

* Update modal.vue

* [modal] Scrolbar adjustments & observeDom

* Update modal.vue

* [modal] Add variants

* Update demo.html

* Update demo.js

* Update meta.json

* Update README.md

* [modal] Add modal-header-close slot

* Update meta.json

* [b-button-close] New functional component for close button

Used by b-modal and b-alert

* make b-button-close available

* Update button-close.js

* [button-close] Ensure click event propagation is stopped when disabled

* [modal] use b-btn-close functional component

* [alert] Use b-btn-close component

* Update modal.vue

* add b-button-close to b-button meta.json

* [tooltip.js] Update to use only new modal close namespaced event

* [tooltip+popover] Auto-append tooltip/popover to modal if in a modal

Save user from having to specify the modal as a container when tooltip/popover is inside a modal

* [popover.js] Use dom utils

* [dom utils] Add class and attribute methods

* Update dom.js

* [modal] Use new dom utils class/atttr methods

* Update dom.js

* Update dom.js

* Update dom.js

* [tooltip.js] Use new DOM utils methods

* [popover.js] Use new dom utils class/attribute methods

* [modal] Update docs

* fix: correct some typos

* fix: clear console errors

* fix: add const declarations

* [modal] Call onAfterEvent transition handler

* fix: evt names for modal triggering & is_visible typo

* fix: modal v-model typo

* fix(btn-close): allow for innerHTML override

* refactor(modal): use object for conditional props

* feat(docs): new modal examples

* Classes: Wrap in Boolean and remove dangling commas

* [modal] minor updates to docs

* feat(form-file): Add focus styling for custom-file input (#1033)

* feat(form-file): Add focus styling for custom-file input

* Update form-file.vue

* [form-file] Remove wrapper div when in plain mode

* add sizing to plain file input

Unfortunately there doesn't appear to be an option to size the custom-file input.

* Update form-file.vue

* fix(observedom): Callback not being called for changes other than childList changes (#1025)

* fix(observedom): Callback not being called for changes other than node inert/remove

Allow callback to be called based on passed options.

Previously it was only being called if nodes were added or inserted, regardless of which options were passed (i.e. attribute changes, childList, textnode changes, etc.)

This fix remove this restriction.

* Create loose-equal.js

* Update index.js

* Update observe-dom.js

* Update index.js

* Delete loose-equal.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* [WIP] feat(collpase): Use new $root namespaced events (#1037)

feat(collpase): Use new $root namespaced events + dom utils

* Revert "fix(observedom): Callback not being called for changes other than childList changes" (#1039)

This reverts commit f44c5eb.

* Revert "fix(observedom): Callback not being called for changes other than childList changes (#1025)"

This reverts commit 88cfaef.
tmorehouse added a commit that referenced this pull request Sep 14, 2017
…oxes (#994)

* Create loose-equal.js

* Update loose-equal.js

* Add looseEqual to utils

* Create form-option.vue

* Create form-optgroup.js

* Make b-form-optgroup and b-form-option available

alias b-form-optgroup as b-optgroup, and b-form-option as b-option

* Create form-radios.vue

* Update form-select.vue

* Update form-radios.vue

* Update index.js

* Create form-checkboxes.vue

* Update index.js

* Update form-options.js

* Update form-checkbox.vue

* Update form-radio.vue

* Update form-checkbox.vue

* Update form-radio.vue

* Update form-checkbox.vue

* Update form-radio.vue

* Update form-checkbox.vue

* Update form-checkbox.vue

* Update form-radio.vue

* Update form-radio.vue

* Update form-select.vue

* Update form-checkboxes.vue

* Update form-optgroup.js

* Update index.js

* Update meta.json

* Update index.js

* Rename docs/components/form-checkbox/meta.json to docs/components/form-checkboxes/meta.json

* Rename docs/components/form-checkbox/README.md to docs/components/form-checkboxes/README.md

* Rename docs/components/form-checkbox/index.js to docs/components/form-checkboxes/index.js

* Update and rename docs/components/form-radio/meta.json to docs/components/form-radios/meta.json

* Rename docs/components/form-radio/index.js to docs/components/form-radios/index.js

* Rename docs/components/form-radio/README.md to docs/components/form-radios/README.md

* Update meta.json

* Update meta.json

* Update index.js

* [form-select] Docs update

* Update form-checkboxes.vue

* [form-radios] Updated docs

* Update README.md

* Update README.md

* Update README.md

* Update index.js

* Rename form-checkboxes.vue to form-checkbox-group.vue

* Rename form-radios.vue to form-radio-group.vue

* Update meta.json

* Update meta.json

* Update index.js

* Update README.md

* Update README.md

* Update README.md

* Update demo.html

* [form-select] Docs: Switch to native <option> and <optgroup>

* Update meta.json

* [form-select] Switch to native browser <option>

* Update index.js

* Delete form-optgroup.js

* Delete form-option.vue

* resolve conflict

* Delete README.md

* Resolve conflict: This file should be deleted after merge

* Update README.md

* Update README.md

* Update form-options.js

* Update form-radio-group.vue

* Update form-checkbox-group.vue

* Update form-radio-group.vue

* Update form-radio.vue

* Create form-radio-check.js

* add new mixin

* [form-radio] Use form-radio-check mixin

* Update form-radio-check.js

* [form-checkbox] Use form-radio-check mixin

* Update form-checkbox.vue

* Update form-checkbox.vue

* Delete form-checkbox.js

* Update form-radio-group.vue

* Update form-checkbox-group.vue

* Update form-radio-group.vue

* [form-file] Add focus styling

* [form-file] Move focus styling to separate PR

* Update form-radio-check.js

* Update form-checkbox.vue

* Update form-options.js

* Update form-checkbox-group.vue

* Update form-checkbox.vue

* Update form-select.vue

* Update form-radio-check.js

* Update form-options.js

* Update form-radio-check.js

* Update form-radio.vue

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update form-checkbox-group.vue

* Update form-radio-group.vue

* Update README.md

* Update form-radio.vue

* Update form-checkbox.vue

* Update form-checkbox.vue

* Update form-checkbox.vue

* Update README.md

* Mrged dev into forms/1x (#1038)

* chore(docs): Minor update to popover example

* fix(carousel): Prevent reflow trigger from being optimised out (#995)

* Update carousel.vue

* fix(popover+tooltip): Allow indiviual component imports (#999)

* [tooltip class] import BvEvent direct
* [popover class] Import ToolTip direct

* fix(form-group): Not applying label-for prop value (#1000)

* feat(modal): Add props to change the variant of the default modal buttons (#1004)

* Add props to set variant of modal footer buttons

* update docs

* feat(popover+tooltip): Add hide event listener on $root (#1003)

* feat(popover/tooltip): Add hide on $root events

Optimized adding/removing of events.

Only listen/watch to certain events while the tooltip/popover is open

Adds listener for `bv::hide::(popover|tooltip)` event on root to allow user to close all popovers or tooltips via emitting on $root.

* [popover component] Document bv:hide::popover event

* [tooltip component] Document bv:hide:tooltip event

* [popover directive] Document bv:hide:popover event

* [tooltip directive]: Document bv:hide::tooltip event

* feat(table): Refactor field formatter support + optimized sort-compare handling (#991)

* refactor(b-table): use original item object

* chore(table.spec): eslint format

* feat(b-table): Allow usr provided sortCopmpare to handle only specific fields

if user provided sortCompare returns `null` (or `undefined`), then we assume it doesn't handle sorting for the field specified by `sortBy`

* ESLint

* Always return formattedValue as `value` in scoped slot.

Unformatted value is available as property `unformatted` on scoped slot data.

* Update docs

* Update README.md

* Allow formattter to return html content

* Update README.md

* fix(table-docs): unexpected identifier error

* fix(table-docs): typo corrections ⌨💥

* Allow v-html without need for wrapper div via v-if/v-else

* fix(tooltip-popover): Click not triggered for elements with inner HTML elements in Chrome (#1006)

Issue #1005

* docs: Update getting started

* feat(dropdowns): Add hide() and show() methods (#1012)

Addresses issue #1011

* [form-group] Use dom utils

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* feat(dom utils): Add getById method

* feat(tooltip+popover): Create mixin for common props and methods (#1021)

* feat(tooltip+popover): Create mixin for common props and methods

* make mixin available

* ESLint

* Update toolpop.js

* Update toolpop.js

* [tooltip.vue] use toolpop mixin

* [popover.vue] Use toolpop mixin

* chore: Update getting started

* fix type

* fix(lform-group): Missing return in target ID selection

* fix(link): clear router-link/href collision and remove old link mixin (#1016)

* fix(link): don't use href for router-links

* Merged dev into fix/link-router-to (#1018)

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* fix: add fixes from PR #940

* fix: don't change href when disabled

Previously, we we're altering the href to a "#" when disabled. Since we already handle disabling the link via click handlers, there is no reason to alter the semantics of the link.

* Update toolpop.js

* Update popover.vue

* Update tooltip.vue

* fix: typos

* refactor: remove link mixin usage

* fix(docs): proper component reference

* fix: incorporate @pi0's typo fix

* fix(tooltip.js) Remove unneeded line of code

* fix(tabs): Remove aria-expanded in favor of aria-seleted

As per Bootstrap V4 PR twbs/bootstrap#23907

* fix: Add lodash.startcase to dependancies

`b-table` requires `lodash.startcase`

* feat(modal): Improve modal transitions, padding adjustments, and aditional features (#1024)

* [modal] Fix transitions

* Update modal.vue

* Update modal.vue

* [v-b-modal] Use new namespaced $root event

* [modal] Incorporate BvEvent

* Update modal.vue

* [modal] Scrolbar adjustments & observeDom

* Update modal.vue

* [modal] Add variants

* Update demo.html

* Update demo.js

* Update meta.json

* Update README.md

* [modal] Add modal-header-close slot

* Update meta.json

* [b-button-close] New functional component for close button

Used by b-modal and b-alert

* make b-button-close available

* Update button-close.js

* [button-close] Ensure click event propagation is stopped when disabled

* [modal] use b-btn-close functional component

* [alert] Use b-btn-close component

* Update modal.vue

* add b-button-close to b-button meta.json

* [tooltip.js] Update to use only new modal close namespaced event

* [tooltip+popover] Auto-append tooltip/popover to modal if in a modal

Save user from having to specify the modal as a container when tooltip/popover is inside a modal

* [popover.js] Use dom utils

* [dom utils] Add class and attribute methods

* Update dom.js

* [modal] Use new dom utils class/atttr methods

* Update dom.js

* Update dom.js

* Update dom.js

* [tooltip.js] Use new DOM utils methods

* [popover.js] Use new dom utils class/attribute methods

* [modal] Update docs

* fix: correct some typos

* fix: clear console errors

* fix: add const declarations

* [modal] Call onAfterEvent transition handler

* fix: evt names for modal triggering & is_visible typo

* fix: modal v-model typo

* fix(btn-close): allow for innerHTML override

* refactor(modal): use object for conditional props

* feat(docs): new modal examples

* Classes: Wrap in Boolean and remove dangling commas

* [modal] minor updates to docs

* feat(form-file): Add focus styling for custom-file input (#1033)

* feat(form-file): Add focus styling for custom-file input

* Update form-file.vue

* [form-file] Remove wrapper div when in plain mode

* add sizing to plain file input

Unfortunately there doesn't appear to be an option to size the custom-file input.

* Update form-file.vue

* fix(observedom): Callback not being called for changes other than childList changes (#1025)

* fix(observedom): Callback not being called for changes other than node inert/remove

Allow callback to be called based on passed options.

Previously it was only being called if nodes were added or inserted, regardless of which options were passed (i.e. attribute changes, childList, textnode changes, etc.)

This fix remove this restriction.

* Create loose-equal.js

* Update index.js

* Update observe-dom.js

* Update index.js

* Delete loose-equal.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* [WIP] feat(collpase): Use new $root namespaced events (#1037)

feat(collpase): Use new $root namespaced events + dom utils

* Merge dev into forms/1x (#1040)

* chore(docs): Minor update to popover example

* fix(carousel): Prevent reflow trigger from being optimised out (#995)

* Update carousel.vue

* fix(popover+tooltip): Allow indiviual component imports (#999)

* [tooltip class] import BvEvent direct
* [popover class] Import ToolTip direct

* fix(form-group): Not applying label-for prop value (#1000)

* feat(modal): Add props to change the variant of the default modal buttons (#1004)

* Add props to set variant of modal footer buttons

* update docs

* feat(popover+tooltip): Add hide event listener on $root (#1003)

* feat(popover/tooltip): Add hide on $root events

Optimized adding/removing of events.

Only listen/watch to certain events while the tooltip/popover is open

Adds listener for `bv::hide::(popover|tooltip)` event on root to allow user to close all popovers or tooltips via emitting on $root.

* [popover component] Document bv:hide::popover event

* [tooltip component] Document bv:hide:tooltip event

* [popover directive] Document bv:hide:popover event

* [tooltip directive]: Document bv:hide::tooltip event

* feat(table): Refactor field formatter support + optimized sort-compare handling (#991)

* refactor(b-table): use original item object

* chore(table.spec): eslint format

* feat(b-table): Allow usr provided sortCopmpare to handle only specific fields

if user provided sortCompare returns `null` (or `undefined`), then we assume it doesn't handle sorting for the field specified by `sortBy`

* ESLint

* Always return formattedValue as `value` in scoped slot.

Unformatted value is available as property `unformatted` on scoped slot data.

* Update docs

* Update README.md

* Allow formattter to return html content

* Update README.md

* fix(table-docs): unexpected identifier error

* fix(table-docs): typo corrections ⌨💥

* Allow v-html without need for wrapper div via v-if/v-else

* fix(tooltip-popover): Click not triggered for elements with inner HTML elements in Chrome (#1006)

Issue #1005

* docs: Update getting started

* feat(dropdowns): Add hide() and show() methods (#1012)

Addresses issue #1011

* [form-group] Use dom utils

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* feat(dom utils): Add getById method

* feat(tooltip+popover): Create mixin for common props and methods (#1021)

* feat(tooltip+popover): Create mixin for common props and methods

* make mixin available

* ESLint

* Update toolpop.js

* Update toolpop.js

* [tooltip.vue] use toolpop mixin

* [popover.vue] Use toolpop mixin

* chore: Update getting started

* fix type

* fix(lform-group): Missing return in target ID selection

* fix(link): clear router-link/href collision and remove old link mixin (#1016)

* fix(link): don't use href for router-links

* Merged dev into fix/link-router-to (#1018)

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* fix: add fixes from PR #940

* fix: don't change href when disabled

Previously, we we're altering the href to a "#" when disabled. Since we already handle disabling the link via click handlers, there is no reason to alter the semantics of the link.

* Update toolpop.js

* Update popover.vue

* Update tooltip.vue

* fix: typos

* refactor: remove link mixin usage

* fix(docs): proper component reference

* fix: incorporate @pi0's typo fix

* fix(tooltip.js) Remove unneeded line of code

* fix(tabs): Remove aria-expanded in favor of aria-seleted

As per Bootstrap V4 PR twbs/bootstrap#23907

* fix: Add lodash.startcase to dependancies

`b-table` requires `lodash.startcase`

* feat(modal): Improve modal transitions, padding adjustments, and aditional features (#1024)

* [modal] Fix transitions

* Update modal.vue

* Update modal.vue

* [v-b-modal] Use new namespaced $root event

* [modal] Incorporate BvEvent

* Update modal.vue

* [modal] Scrolbar adjustments & observeDom

* Update modal.vue

* [modal] Add variants

* Update demo.html

* Update demo.js

* Update meta.json

* Update README.md

* [modal] Add modal-header-close slot

* Update meta.json

* [b-button-close] New functional component for close button

Used by b-modal and b-alert

* make b-button-close available

* Update button-close.js

* [button-close] Ensure click event propagation is stopped when disabled

* [modal] use b-btn-close functional component

* [alert] Use b-btn-close component

* Update modal.vue

* add b-button-close to b-button meta.json

* [tooltip.js] Update to use only new modal close namespaced event

* [tooltip+popover] Auto-append tooltip/popover to modal if in a modal

Save user from having to specify the modal as a container when tooltip/popover is inside a modal

* [popover.js] Use dom utils

* [dom utils] Add class and attribute methods

* Update dom.js

* [modal] Use new dom utils class/atttr methods

* Update dom.js

* Update dom.js

* Update dom.js

* [tooltip.js] Use new DOM utils methods

* [popover.js] Use new dom utils class/attribute methods

* [modal] Update docs

* fix: correct some typos

* fix: clear console errors

* fix: add const declarations

* [modal] Call onAfterEvent transition handler

* fix: evt names for modal triggering & is_visible typo

* fix: modal v-model typo

* fix(btn-close): allow for innerHTML override

* refactor(modal): use object for conditional props

* feat(docs): new modal examples

* Classes: Wrap in Boolean and remove dangling commas

* [modal] minor updates to docs

* feat(form-file): Add focus styling for custom-file input (#1033)

* feat(form-file): Add focus styling for custom-file input

* Update form-file.vue

* [form-file] Remove wrapper div when in plain mode

* add sizing to plain file input

Unfortunately there doesn't appear to be an option to size the custom-file input.

* Update form-file.vue

* fix(observedom): Callback not being called for changes other than childList changes (#1025)

* fix(observedom): Callback not being called for changes other than node inert/remove

Allow callback to be called based on passed options.

Previously it was only being called if nodes were added or inserted, regardless of which options were passed (i.e. attribute changes, childList, textnode changes, etc.)

This fix remove this restriction.

* Create loose-equal.js

* Update index.js

* Update observe-dom.js

* Update index.js

* Delete loose-equal.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* [WIP] feat(collpase): Use new $root namespaced events (#1037)

feat(collpase): Use new $root namespaced events + dom utils

* Revert "fix(observedom): Callback not being called for changes other than childList changes" (#1039)

This reverts commit f44c5eb.

* Revert "fix(observedom): Callback not being called for changes other than childList changes (#1025)"

This reverts commit 88cfaef.

* revert observerdom changes

* Update form-checkbox.vue

* Update form-checkbox-group.vue

* Update form-checkbox.vue

* Update form-checkbox.vue

* Update form-checkbox.vue

* Update form-radio-check.js

* [form-group] include role=group in input-selector

* Update form-checkbox.vue

* Update README.md

* Update README.md

* Update README.md

* Update form-radio-check.js

* [form-checkbox-group]: Emit change event on user interaction

* [form-radio-group] Emit change event on user interaction

* Update meta.json

* Update meta.json

* Update sidebar.vue

* Update index.js

* [form-radios] Docs breaking change notice

* [form-select] Update docs with extra example
tmorehouse added a commit that referenced this pull request Sep 14, 2017
* fix: Add lodash.startcase to dependancies

`b-table` requires `lodash.startcase`

* feat(modal): Improve modal transitions, padding adjustments, and aditional features (#1024)

* [modal] Fix transitions

* Update modal.vue

* Update modal.vue

* [v-b-modal] Use new namespaced $root event

* [modal] Incorporate BvEvent

* Update modal.vue

* [modal] Scrolbar adjustments & observeDom

* Update modal.vue

* [modal] Add variants

* Update demo.html

* Update demo.js

* Update meta.json

* Update README.md

* [modal] Add modal-header-close slot

* Update meta.json

* [b-button-close] New functional component for close button

Used by b-modal and b-alert

* make b-button-close available

* Update button-close.js

* [button-close] Ensure click event propagation is stopped when disabled

* [modal] use b-btn-close functional component

* [alert] Use b-btn-close component

* Update modal.vue

* add b-button-close to b-button meta.json

* [tooltip.js] Update to use only new modal close namespaced event

* [tooltip+popover] Auto-append tooltip/popover to modal if in a modal

Save user from having to specify the modal as a container when tooltip/popover is inside a modal

* [popover.js] Use dom utils

* [dom utils] Add class and attribute methods

* Update dom.js

* [modal] Use new dom utils class/atttr methods

* Update dom.js

* Update dom.js

* Update dom.js

* [tooltip.js] Use new DOM utils methods

* [popover.js] Use new dom utils class/attribute methods

* [modal] Update docs

* fix: correct some typos

* fix: clear console errors

* fix: add const declarations

* [modal] Call onAfterEvent transition handler

* fix: evt names for modal triggering & is_visible typo

* fix: modal v-model typo

* fix(btn-close): allow for innerHTML override

* refactor(modal): use object for conditional props

* feat(docs): new modal examples

* Classes: Wrap in Boolean and remove dangling commas

* [modal] minor updates to docs

* feat(form-file): Add focus styling for custom-file input (#1033)

* feat(form-file): Add focus styling for custom-file input

* Update form-file.vue

* [form-file] Remove wrapper div when in plain mode

* add sizing to plain file input

Unfortunately there doesn't appear to be an option to size the custom-file input.

* Update form-file.vue

* fix(observedom): Callback not being called for changes other than childList changes (#1025)

* fix(observedom): Callback not being called for changes other than node inert/remove

Allow callback to be called based on passed options.

Previously it was only being called if nodes were added or inserted, regardless of which options were passed (i.e. attribute changes, childList, textnode changes, etc.)

This fix remove this restriction.

* Create loose-equal.js

* Update index.js

* Update observe-dom.js

* Update index.js

* Delete loose-equal.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* [WIP] feat(collpase): Use new $root namespaced events (#1037)

feat(collpase): Use new $root namespaced events + dom utils

* Revert "fix(observedom): Callback not being called for changes other than childList changes" (#1039)

This reverts commit f44c5eb.

* Revert "fix(observedom): Callback not being called for changes other than childList changes (#1025)"

This reverts commit 88cfaef.

* chore(form-file): Minor uopdate

* chore(form-file): Minor update

* fix(modal): Minor bug fixes

* fix(modal): Fix aria hidden attr and observeDom target element

* fix(popover): getting title from title attribute

* fix(b-col): handle bool style prop for sm,md,lg,xl (#1042)

Fixes #1041

* fix(form-file): Selected file name(s) not always showing

Due to Bootstrap V4.beta CSS specificity, teh cutom props or filenames were not always being displayed

* docs(modal): Additional examples

* feat(docs): Add a new reference section (#1050)

* feat(docs): Add reference section

* Create SIZES.md

* Rename docs/reference/SIZES.md to docs/reference/sizes/README.md

* Rename docs/reference/VARIANTS.md to docs/reference/variants/README.md

* Create index.js

* Create index.js

* Update index.js

* Create index.js

* Update index.js

* Create README.md

* Create index.js

* Update index.js

* Update README.md

* Create README.md

* Update README.md

* Create index.js

* Update index.js

* Update README.md

* Update index.js

* Update index.js

* Update README.md

* Create _reference.vue

* Update README.md

* chore(dom-utls): Add reflow method

* [dom utils] Add getBoundingClientRect method

* feat(forms): New handling of form-select, form-radios and form-checkboxes (#994)

* Create loose-equal.js

* Update loose-equal.js

* Add looseEqual to utils

* Create form-option.vue

* Create form-optgroup.js

* Make b-form-optgroup and b-form-option available

alias b-form-optgroup as b-optgroup, and b-form-option as b-option

* Create form-radios.vue

* Update form-select.vue

* Update form-radios.vue

* Update index.js

* Create form-checkboxes.vue

* Update index.js

* Update form-options.js

* Update form-checkbox.vue

* Update form-radio.vue

* Update form-checkbox.vue

* Update form-radio.vue

* Update form-checkbox.vue

* Update form-radio.vue

* Update form-checkbox.vue

* Update form-checkbox.vue

* Update form-radio.vue

* Update form-radio.vue

* Update form-select.vue

* Update form-checkboxes.vue

* Update form-optgroup.js

* Update index.js

* Update meta.json

* Update index.js

* Rename docs/components/form-checkbox/meta.json to docs/components/form-checkboxes/meta.json

* Rename docs/components/form-checkbox/README.md to docs/components/form-checkboxes/README.md

* Rename docs/components/form-checkbox/index.js to docs/components/form-checkboxes/index.js

* Update and rename docs/components/form-radio/meta.json to docs/components/form-radios/meta.json

* Rename docs/components/form-radio/index.js to docs/components/form-radios/index.js

* Rename docs/components/form-radio/README.md to docs/components/form-radios/README.md

* Update meta.json

* Update meta.json

* Update index.js

* [form-select] Docs update

* Update form-checkboxes.vue

* [form-radios] Updated docs

* Update README.md

* Update README.md

* Update README.md

* Update index.js

* Rename form-checkboxes.vue to form-checkbox-group.vue

* Rename form-radios.vue to form-radio-group.vue

* Update meta.json

* Update meta.json

* Update index.js

* Update README.md

* Update README.md

* Update README.md

* Update demo.html

* [form-select] Docs: Switch to native <option> and <optgroup>

* Update meta.json

* [form-select] Switch to native browser <option>

* Update index.js

* Delete form-optgroup.js

* Delete form-option.vue

* resolve conflict

* Delete README.md

* Resolve conflict: This file should be deleted after merge

* Update README.md

* Update README.md

* Update form-options.js

* Update form-radio-group.vue

* Update form-checkbox-group.vue

* Update form-radio-group.vue

* Update form-radio.vue

* Create form-radio-check.js

* add new mixin

* [form-radio] Use form-radio-check mixin

* Update form-radio-check.js

* [form-checkbox] Use form-radio-check mixin

* Update form-checkbox.vue

* Update form-checkbox.vue

* Delete form-checkbox.js

* Update form-radio-group.vue

* Update form-checkbox-group.vue

* Update form-radio-group.vue

* [form-file] Add focus styling

* [form-file] Move focus styling to separate PR

* Update form-radio-check.js

* Update form-checkbox.vue

* Update form-options.js

* Update form-checkbox-group.vue

* Update form-checkbox.vue

* Update form-select.vue

* Update form-radio-check.js

* Update form-options.js

* Update form-radio-check.js

* Update form-radio.vue

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update form-checkbox-group.vue

* Update form-radio-group.vue

* Update README.md

* Update form-radio.vue

* Update form-checkbox.vue

* Update form-checkbox.vue

* Update form-checkbox.vue

* Update README.md

* Mrged dev into forms/1x (#1038)

* chore(docs): Minor update to popover example

* fix(carousel): Prevent reflow trigger from being optimised out (#995)

* Update carousel.vue

* fix(popover+tooltip): Allow indiviual component imports (#999)

* [tooltip class] import BvEvent direct
* [popover class] Import ToolTip direct

* fix(form-group): Not applying label-for prop value (#1000)

* feat(modal): Add props to change the variant of the default modal buttons (#1004)

* Add props to set variant of modal footer buttons

* update docs

* feat(popover+tooltip): Add hide event listener on $root (#1003)

* feat(popover/tooltip): Add hide on $root events

Optimized adding/removing of events.

Only listen/watch to certain events while the tooltip/popover is open

Adds listener for `bv::hide::(popover|tooltip)` event on root to allow user to close all popovers or tooltips via emitting on $root.

* [popover component] Document bv:hide::popover event

* [tooltip component] Document bv:hide:tooltip event

* [popover directive] Document bv:hide:popover event

* [tooltip directive]: Document bv:hide::tooltip event

* feat(table): Refactor field formatter support + optimized sort-compare handling (#991)

* refactor(b-table): use original item object

* chore(table.spec): eslint format

* feat(b-table): Allow usr provided sortCopmpare to handle only specific fields

if user provided sortCompare returns `null` (or `undefined`), then we assume it doesn't handle sorting for the field specified by `sortBy`

* ESLint

* Always return formattedValue as `value` in scoped slot.

Unformatted value is available as property `unformatted` on scoped slot data.

* Update docs

* Update README.md

* Allow formattter to return html content

* Update README.md

* fix(table-docs): unexpected identifier error

* fix(table-docs): typo corrections ⌨💥

* Allow v-html without need for wrapper div via v-if/v-else

* fix(tooltip-popover): Click not triggered for elements with inner HTML elements in Chrome (#1006)

Issue #1005

* docs: Update getting started

* feat(dropdowns): Add hide() and show() methods (#1012)

Addresses issue #1011

* [form-group] Use dom utils

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* feat(dom utils): Add getById method

* feat(tooltip+popover): Create mixin for common props and methods (#1021)

* feat(tooltip+popover): Create mixin for common props and methods

* make mixin available

* ESLint

* Update toolpop.js

* Update toolpop.js

* [tooltip.vue] use toolpop mixin

* [popover.vue] Use toolpop mixin

* chore: Update getting started

* fix type

* fix(lform-group): Missing return in target ID selection

* fix(link): clear router-link/href collision and remove old link mixin (#1016)

* fix(link): don't use href for router-links

* Merged dev into fix/link-router-to (#1018)

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* fix: add fixes from PR #940

* fix: don't change href when disabled

Previously, we we're altering the href to a "#" when disabled. Since we already handle disabling the link via click handlers, there is no reason to alter the semantics of the link.

* Update toolpop.js

* Update popover.vue

* Update tooltip.vue

* fix: typos

* refactor: remove link mixin usage

* fix(docs): proper component reference

* fix: incorporate @pi0's typo fix

* fix(tooltip.js) Remove unneeded line of code

* fix(tabs): Remove aria-expanded in favor of aria-seleted

As per Bootstrap V4 PR twbs/bootstrap#23907

* fix: Add lodash.startcase to dependancies

`b-table` requires `lodash.startcase`

* feat(modal): Improve modal transitions, padding adjustments, and aditional features (#1024)

* [modal] Fix transitions

* Update modal.vue

* Update modal.vue

* [v-b-modal] Use new namespaced $root event

* [modal] Incorporate BvEvent

* Update modal.vue

* [modal] Scrolbar adjustments & observeDom

* Update modal.vue

* [modal] Add variants

* Update demo.html

* Update demo.js

* Update meta.json

* Update README.md

* [modal] Add modal-header-close slot

* Update meta.json

* [b-button-close] New functional component for close button

Used by b-modal and b-alert

* make b-button-close available

* Update button-close.js

* [button-close] Ensure click event propagation is stopped when disabled

* [modal] use b-btn-close functional component

* [alert] Use b-btn-close component

* Update modal.vue

* add b-button-close to b-button meta.json

* [tooltip.js] Update to use only new modal close namespaced event

* [tooltip+popover] Auto-append tooltip/popover to modal if in a modal

Save user from having to specify the modal as a container when tooltip/popover is inside a modal

* [popover.js] Use dom utils

* [dom utils] Add class and attribute methods

* Update dom.js

* [modal] Use new dom utils class/atttr methods

* Update dom.js

* Update dom.js

* Update dom.js

* [tooltip.js] Use new DOM utils methods

* [popover.js] Use new dom utils class/attribute methods

* [modal] Update docs

* fix: correct some typos

* fix: clear console errors

* fix: add const declarations

* [modal] Call onAfterEvent transition handler

* fix: evt names for modal triggering & is_visible typo

* fix: modal v-model typo

* fix(btn-close): allow for innerHTML override

* refactor(modal): use object for conditional props

* feat(docs): new modal examples

* Classes: Wrap in Boolean and remove dangling commas

* [modal] minor updates to docs

* feat(form-file): Add focus styling for custom-file input (#1033)

* feat(form-file): Add focus styling for custom-file input

* Update form-file.vue

* [form-file] Remove wrapper div when in plain mode

* add sizing to plain file input

Unfortunately there doesn't appear to be an option to size the custom-file input.

* Update form-file.vue

* fix(observedom): Callback not being called for changes other than childList changes (#1025)

* fix(observedom): Callback not being called for changes other than node inert/remove

Allow callback to be called based on passed options.

Previously it was only being called if nodes were added or inserted, regardless of which options were passed (i.e. attribute changes, childList, textnode changes, etc.)

This fix remove this restriction.

* Create loose-equal.js

* Update index.js

* Update observe-dom.js

* Update index.js

* Delete loose-equal.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* [WIP] feat(collpase): Use new $root namespaced events (#1037)

feat(collpase): Use new $root namespaced events + dom utils

* Merge dev into forms/1x (#1040)

* chore(docs): Minor update to popover example

* fix(carousel): Prevent reflow trigger from being optimised out (#995)

* Update carousel.vue

* fix(popover+tooltip): Allow indiviual component imports (#999)

* [tooltip class] import BvEvent direct
* [popover class] Import ToolTip direct

* fix(form-group): Not applying label-for prop value (#1000)

* feat(modal): Add props to change the variant of the default modal buttons (#1004)

* Add props to set variant of modal footer buttons

* update docs

* feat(popover+tooltip): Add hide event listener on $root (#1003)

* feat(popover/tooltip): Add hide on $root events

Optimized adding/removing of events.

Only listen/watch to certain events while the tooltip/popover is open

Adds listener for `bv::hide::(popover|tooltip)` event on root to allow user to close all popovers or tooltips via emitting on $root.

* [popover component] Document bv:hide::popover event

* [tooltip component] Document bv:hide:tooltip event

* [popover directive] Document bv:hide:popover event

* [tooltip directive]: Document bv:hide::tooltip event

* feat(table): Refactor field formatter support + optimized sort-compare handling (#991)

* refactor(b-table): use original item object

* chore(table.spec): eslint format

* feat(b-table): Allow usr provided sortCopmpare to handle only specific fields

if user provided sortCompare returns `null` (or `undefined`), then we assume it doesn't handle sorting for the field specified by `sortBy`

* ESLint

* Always return formattedValue as `value` in scoped slot.

Unformatted value is available as property `unformatted` on scoped slot data.

* Update docs

* Update README.md

* Allow formattter to return html content

* Update README.md

* fix(table-docs): unexpected identifier error

* fix(table-docs): typo corrections ⌨💥

* Allow v-html without need for wrapper div via v-if/v-else

* fix(tooltip-popover): Click not triggered for elements with inner HTML elements in Chrome (#1006)

Issue #1005

* docs: Update getting started

* feat(dropdowns): Add hide() and show() methods (#1012)

Addresses issue #1011

* [form-group] Use dom utils

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* feat(dom utils): Add getById method

* feat(tooltip+popover): Create mixin for common props and methods (#1021)

* feat(tooltip+popover): Create mixin for common props and methods

* make mixin available

* ESLint

* Update toolpop.js

* Update toolpop.js

* [tooltip.vue] use toolpop mixin

* [popover.vue] Use toolpop mixin

* chore: Update getting started

* fix type

* fix(lform-group): Missing return in target ID selection

* fix(link): clear router-link/href collision and remove old link mixin (#1016)

* fix(link): don't use href for router-links

* Merged dev into fix/link-router-to (#1018)

* [carousel] Use dom utils

* feat: dom utility methods (#1013)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat: Use dom utils (#1017)

* feat: dom utility methods

* Update index.js

* [tooltip.js] Use dom utils

* [dropdown.js] Use dom utils

* [scrollspy.js] Use dom utils

* feat(array mixin): Add polyfill for Array.find for IE

* [modal] use dom utils

* [popover.vue] Use dom utils

* [tooltip.vue] Use dom utils

* fix: add fixes from PR #940

* fix: don't change href when disabled

Previously, we we're altering the href to a "#" when disabled. Since we already handle disabling the link via click handlers, there is no reason to alter the semantics of the link.

* Update toolpop.js

* Update popover.vue

* Update tooltip.vue

* fix: typos

* refactor: remove link mixin usage

* fix(docs): proper component reference

* fix: incorporate @pi0's typo fix

* fix(tooltip.js) Remove unneeded line of code

* fix(tabs): Remove aria-expanded in favor of aria-seleted

As per Bootstrap V4 PR twbs/bootstrap#23907

* fix: Add lodash.startcase to dependancies

`b-table` requires `lodash.startcase`

* feat(modal): Improve modal transitions, padding adjustments, and aditional features (#1024)

* [modal] Fix transitions

* Update modal.vue

* Update modal.vue

* [v-b-modal] Use new namespaced $root event

* [modal] Incorporate BvEvent

* Update modal.vue

* [modal] Scrolbar adjustments & observeDom

* Update modal.vue

* [modal] Add variants

* Update demo.html

* Update demo.js

* Update meta.json

* Update README.md

* [modal] Add modal-header-close slot

* Update meta.json

* [b-button-close] New functional component for close button

Used by b-modal and b-alert

* make b-button-close available

* Update button-close.js

* [button-close] Ensure click event propagation is stopped when disabled

* [modal] use b-btn-close functional component

* [alert] Use b-btn-close component

* Update modal.vue

* add b-button-close to b-button meta.json

* [tooltip.js] Update to use only new modal close namespaced event

* [tooltip+popover] Auto-append tooltip/popover to modal if in a modal

Save user from having to specify the modal as a container when tooltip/popover is inside a modal

* [popover.js] Use dom utils

* [dom utils] Add class and attribute methods

* Update dom.js

* [modal] Use new dom utils class/atttr methods

* Update dom.js

* Update dom.js

* Update dom.js

* [tooltip.js] Use new DOM utils methods

* [popover.js] Use new dom utils class/attribute methods

* [modal] Update docs

* fix: correct some typos

* fix: clear console errors

* fix: add const declarations

* [modal] Call onAfterEvent transition handler

* fix: evt names for modal triggering & is_visible typo

* fix: modal v-model typo

* fix(btn-close): allow for innerHTML override

* refactor(modal): use object for conditional props

* feat(docs): new modal examples

* Classes: Wrap in Boolean and remove dangling commas

* [modal] minor updates to docs

* feat(form-file): Add focus styling for custom-file input (#1033)

* feat(form-file): Add focus styling for custom-file input

* Update form-file.vue

* [form-file] Remove wrapper div when in plain mode

* add sizing to plain file input

Unfortunately there doesn't appear to be an option to size the custom-file input.

* Update form-file.vue

* fix(observedom): Callback not being called for changes other than childList changes (#1025)

* fix(observedom): Callback not being called for changes other than node inert/remove

Allow callback to be called based on passed options.

Previously it was only being called if nodes were added or inserted, regardless of which options were passed (i.e. attribute changes, childList, textnode changes, etc.)

This fix remove this restriction.

* Create loose-equal.js

* Update index.js

* Update observe-dom.js

* Update index.js

* Delete loose-equal.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* Update observe-dom.js

* [WIP] feat(collpase): Use new $root namespaced events (#1037)

feat(collpase): Use new $root namespaced events + dom utils

* Revert "fix(observedom): Callback not being called for changes other than childList changes" (#1039)

This reverts commit f44c5eb.

* Revert "fix(observedom): Callback not being called for changes other than childList changes (#1025)"

This reverts commit 88cfaef.

* revert observerdom changes

* Update form-checkbox.vue

* Update form-checkbox-group.vue

* Update form-checkbox.vue

* Update form-checkbox.vue

* Update form-checkbox.vue

* Update form-radio-check.js

* [form-group] include role=group in input-selector

* Update form-checkbox.vue

* Update README.md

* Update README.md

* Update README.md

* Update form-radio-check.js

* [form-checkbox-group]: Emit change event on user interaction

* [form-radio-group] Emit change event on user interaction

* Update meta.json

* Update meta.json

* Update sidebar.vue

* Update index.js

* [form-radios] Docs breaking change notice

* [form-select] Update docs with extra example

* feat(modal): Add lazy loaded modal support (#1046)

* feat(modal): Add lazy loaded modal support

New `lazy` prop allows modal to be taken out of dom (`v-if`) when not visible

* ESLint

* [modal] prevent backdrop FOUC in no-fade mode

* Prevent backrop from disapearing before modal finishes closing

* [observe-dom] return observer refernce

So we can call the observer.disconnect() method

* [modal] only observerdom while open

* Update observe-dom.js

* [observe-dom] Ensure we have an element reference

* chore(docs): minor update

* chore(docs): minor udpate

* chore(docs): minor update

* chore(docs): minor update

* docs(modal): Minor update

* chore(docs): remove old form-checkbox docs

* chore(docs): Adjust title for sizing reference

* Update README.md

* chore(docs): minor update

* feat(dom util): new reflow, getBoundingClientRect, eventOn, eventOff methods (#1052)

* feat(dom): b-modal use dom.reflow method

* [collapse] Use dom.reflow from dom-utls

* [carousel] use dom.reflow method from dom utils

* [dom utils] Add getBoundingClientRect method (#1051)

* [dom utils] add eventPOn and eventOff methods

* [img-lazy] Use new dom utils methods

* [carousel] use new dom util methods

* Update img-lazy.vue

* Update img-lazy.vue

* Update img-lazy.vue

* [scrollspy] use dom utils event methods

* [ttoltip.js] Use dom event methods

* [dropdown mixin] Use new dom util methods

* [button] use dom utils

* [button-toolbar] use dom utils

* [pagination] use dom utils

* Update scrollspy.js

* Update button-toolbar.vue

* [pagination-nav] use DOM utils

* Update pagination.vue

* chore(docs): fix typo

* chore(docs): minor update

* chore(docs): minor update

* chore(docs): minor update to form-checkboxes

* Update carousel.vue

* Update carousel.vue

* Update dom.js

* Update dom.js

* Update img-lazy.vue

* Update button-toolbar.vue

* Update dropdown.js

* Update scrollspy.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants