All files / src index.js

83.33% Statements 10/12
50% Branches 2/4
100% Functions 1/1
83.33% Lines 10/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74                  1x             1x                                                       1x             12x   516x 516x   516x             12x 12x   12x              
// @ts-check
 
/* properly load bootstrap and jquery */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import * as bootstrap from "bootstrap"; // jshint ignore:line
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import $ from "jquery"; // jshint ignore:line
 
/* eslint-disable-next-line @typescript-eslint/no-unused-vars */ // @ts-ignore
import(/* webpackChunkName: "base" */ "./scss/_base.scss"); // jshint ignore:line
import filters from "./filters";
import utils from "./utils";
import { get } from "lodash";
import Vue from "vue";
import VueRouter from "vue-router";
 
Vue.use(VueRouter);
 
// Mixins
export { default as BaseKeyboardEventMixin, _globalListener } from "./mixins/BaseKeyboardEventMixin";
export { default as BaseKeepFocusMixin } from "./mixins/BaseKeepFocusMixin";
export { default as BaseHasSlotMixin } from "./mixins/BaseHasSlotMixin";
export { default as BaseHasErrorHandlerMixin } from "./mixins/BaseErrorHandlerMixin";
export { default as BaseChangeReloadMixin } from "./mixins/BaseChangeReloadMixin";
 
// Plugins
export { default as CodeMirrorEditor } from "./plugins/CodeMirrorEditor.vue";
export { default as MarkdownViewer } from "./plugins/MarkdownViewer.vue";
export { default as TempusDominusDatePicker } from "./plugins/TempusDominusDatePicker.vue";
 
// Base
import * as components from "./components";
export * from "./components";
export { default as BaseAnimation } from "./BaseAnimation/BaseAnimation";
export { default as BaseLogger } from "./Logger/BaseLogger";
export { default as BaseMatchMedia } from "./BaseMatchMedia";
 
export { createStore, sources, storeOptions, getStore, destroyStore } from "./store";
import { getStore, sources } from "./store";
import UserSource from "./store/sources/UserSource";
export { default as BaseIntervalSource } from "./store/sources/BaseIntervalSource";
 
export { utils as butils } from "./utils";
 
const BaseVue = {
  /**
   * @param {Vue.VueConstructor<Vue>} Vue
   * @param {{ auth?: boolean }} [options]
   */
  install(Vue, options) {
    // eslint-disable-next-line guard-for-in
    for (const prop in components) {
      /** @type {string|undefined} */ // @ts-ignore
      const name = components[prop].options.name;
      if (name) {
        // @ts-ignore
        Vue.component(name, components[prop]);
      }
      else E{
        console.warn("[base-vue]: component name not set on: ", prop);
      }
    }
 
    filters.install(Vue);
    utils.install(Vue);
 
    Iif (get(options, "auth", false)) {
      sources.user = new UserSource(getStore());
    }
  }
};
 
export default BaseVue;