All files / src index.ts

100% Statements 12/12
100% Branches 3/3
100% Functions 1/1
100% Lines 11/11

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                                                                          29x 29x       29x 29x 29x   29x 29x 29x 29x 29x 29x      
import type { App } from 'vue'
import { LOADING_CONFIG, type LoadingKitConfig } from './config'
import { PAGE_PROGRESS, bindRouter, createPageProgress, type RouterLike } from './utils/pageProgress'
import Skeleton from './components/Skeleton/Skeleton.vue'
import Spinner from './components/Spinner/Spinner.vue'
import SmartLoader from './components/SmartLoader.vue'
import ProgressBar from './components/ProgressBar/ProgressBar.vue'
import PageProgress from './components/PageProgress/PageProgress.vue'
import { vSkeleton } from './skeletonize/directive'
import './skeletonize/skeletonize.css'
export { Skeleton, Spinner, SmartLoader, ProgressBar, PageProgress }
export { usePageProgress } from './utils/pageProgress'
export { vSkeleton } from './skeletonize/directive'
export type { SkeletonDirectiveValue } from './skeletonize/directive'
export type { PageProgress as PageProgressController, RouterLike } from './utils/pageProgress'
export { useDelayedLoading } from './utils/useDelayedLoading'
export { provideLoadingConfig, useLoadingConfig } from './config'
export type { LoadingKitConfig } from './config'
 
export interface LoadingKitOptions extends LoadingKitConfig {
  /** A vue-router instance: <PageProgress> then follows every navigation. */
  router?: RouterLike
}
export type { DelayedLoadingOptions } from './utils/useDelayedLoading'
export type {
  SkeletonBaseProps,
  SkeletonVariantName,
  SkeletonAnimationName,
  SkeletonOutline,
} from './components/Skeleton/types'
export type {
  SpinnerProps,
  SpinnerVariantName,
  SpinnerType,
} from './components/Spinner/spinner.types'
export default {
  install(app: App, options: LoadingKitOptions = {}) {
    const { router, ...config } = options
    app.provide(LOADING_CONFIG, config)
 
    // one page progress per app (not a module singleton, so SSR requests
    // never share it), driven by the router and by usePageProgress()
    const progress = createPageProgress()
    app.provide(PAGE_PROGRESS, progress)
    if (router) bindRouter(progress, router)
 
    app.component('Skeleton', Skeleton)
    app.component('Spinner', Spinner)
    app.component('SmartLoader', SmartLoader)
    app.component('ProgressBar', ProgressBar)
    app.component('PageProgress', PageProgress)
    app.directive('skeleton', vSkeleton)
  }
}