listenOnRootOnce(event, callback) {
      if (this.bvEventRoot) {
        const _callback = (...args) => {
          this.unregisterRootListener(_callback)
          // eslint-disable-next-line node/no-callback-literal
          callback(...args)
        }

        this.bvEventRoot.$once(event, _callback)
        this.registerRootListener(event, _callback)
      }
    }
Safely register a `$once()` event listener on the root Vue node
While Vue automatically removes listeners for individual components,
when a component registers a listener on `$root` and is destroyed,
this orphans a callback because the node is gone, but the `$root`
does not clear the callback

When registering a `$root` listener, it also registers the listener
to be removed in the component's `beforeDestroy()` hook

@param {string} event
@param {function} callback