UNPKG

1.05 kBJavaScriptView Raw
1import Vue from 'vue'
2
3import { isSSR } from './plugins/Platform.js'
4import materialIcons from '../icon-set/material-icons.js'
5
6export default {
7 install ($q, queues, iconSet) {
8 const initialSet = iconSet || materialIcons
9
10 this.set = (setObject, ssrContext) => {
11 const def = { ...setObject }
12
13 if (isSSR === true) {
14 if (ssrContext === void 0) {
15 console.error('SSR ERROR: second param required: Quasar.iconSet.set(iconSet, ssrContext)')
16 return
17 }
18
19 def.set = ssrContext.$q.iconSet.set
20 ssrContext.$q.iconSet = def
21 }
22 else {
23 def.set = this.set
24 $q.iconSet = def
25 }
26 }
27
28 if (isSSR === true) {
29 queues.server.push((q, ctx) => {
30 q.iconSet = {}
31 q.iconSet.set = setObject => {
32 this.set(setObject, ctx.ssr)
33 }
34
35 q.iconSet.set(initialSet)
36 })
37 }
38 else {
39 Vue.util.defineReactive($q, 'iconMapFn', void 0)
40 Vue.util.defineReactive($q, 'iconSet', {})
41
42 this.set(initialSet)
43 }
44 }
45}