import { Plugin } from 'vue' ; import { ComponentFactory } from '../components/sharedTypes' ; import { providePlaceholders } from '../enhancers/providePlaceholders' ; export interface SitecoreJssPlaceholderPluginOptions { componentFactory ? : ComponentFactory ; } param { App } app param { SitecoreJssPlaceholderPluginOptions } options function install ( app , options ? ) { app . config . globalProperties . $jss = { ... app . config . globalProperties . $jss , componentFactory : options && options . componentFactory , } ; app . mixin ( { beforeCreate ( ) { providePlaceholders ( this , options && options . componentFactory ) ; } , } ) ; } export const SitecoreJssPlaceholderPlugin = { install , } ; declare module 'vue/dist/vue' { export interface Vue { $jss : { componentFactory ? : ComponentFactory ; } ; } }