Skip to content
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

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

Merged
merged 10 commits into from
Sep 11, 2017

Conversation

tmorehouse
Copy link
Member

@tmorehouse tmorehouse commented Sep 11, 2017

Allow callback to be called based on passed options.

Previously it was only being called if nodes were added or inserted, and only for the first mutation record in the event, regardless of which options were passed (i.e. attribute, childList, characterData)

This fix remove this restriction.

…e 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.
@codecov-io
Copy link

codecov-io commented Sep 11, 2017

Codecov Report

Merging #1025 into dev will decrease coverage by 0.15%.
The diff coverage is 0%.

Impacted file tree graph

@@            Coverage Diff             @@
##              dev    #1025      +/-   ##
==========================================
- Coverage   37.48%   37.33%   -0.16%     
==========================================
  Files         104      104              
  Lines        2945     2957      +12     
  Branches      872      876       +4     
==========================================
  Hits         1104     1104              
- Misses       1531     1539       +8     
- Partials      310      314       +4
Impacted Files Coverage Δ
lib/utils/observe-dom.js 27.27% <0%> (-32.73%) ⬇️

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 5790b39...9d933b8. Read the comment docs.

@tmorehouse tmorehouse merged commit 88cfaef into dev Sep 11, 2017
@tmorehouse tmorehouse deleted the fix/observedom branch September 11, 2017 22:18
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 tmorehouse restored the fix/observedom branch September 12, 2017 07:28
tmorehouse added a commit that referenced this pull request Sep 12, 2017
tmorehouse added a commit that referenced this pull request Sep 12, 2017
…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 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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants