Skip to content

Commit 7656fc2

Browse files
committed
feat: Update prompts; add all Material Icons types; add auto import feature (WIP)
1 parent c4c56fb commit 7656fc2

File tree

6 files changed

+220
-97
lines changed

6 files changed

+220
-97
lines changed

generator/index.js

Lines changed: 29 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,11 @@ Enjoy! - Quasar Team
2121
const iconMap = {
2222
ionicons: 'ionicons-v4',
2323
fontawesome: 'fontawesome-v5',
24-
mdi: 'mdi-v3'
24+
mdi: 'mdi-v4'
2525
}
2626

2727
module.exports = (api, opts) => {
28-
const components = [
29-
'QLayout',
30-
'QHeader',
31-
'QDrawer',
32-
'QPageContainer',
33-
'QPage',
34-
'QToolbar',
35-
'QToolbarTitle',
36-
'QBtn',
37-
'QIcon',
38-
'QList',
39-
'QItem',
40-
'QItemSection',
41-
'QItemLabel'
42-
]
43-
28+
const components = []
4429
const directives = []
4530
const plugins = []
4631

@@ -78,9 +63,7 @@ module.exports = (api, opts) => {
7863
pluginOptions.quasar.rtlSupport = opts.quasar.rtlSupport
7964
}
8065

81-
if (opts.quasar.treeShake) {
82-
pluginOptions.quasar.treeShake = opts.quasar.treeShake
83-
}
66+
pluginOptions.quasar.importStrategy = opts.quasar.importStrategy
8467

8568
transpileDependencies.push('quasar')
8669

@@ -109,9 +92,7 @@ module.exports = (api, opts) => {
10992
}
11093

11194
api.onCreateComplete(() => {
112-
if (opts.quasar.treeShake) {
113-
extendBabel(api)
114-
}
95+
extendBabel(api)
11596

11697
let lines = `import Vue from 'vue'\n`
11798

@@ -147,44 +128,37 @@ module.exports = (api, opts) => {
147128

148129
// build import
149130
lines += `\nimport `
150-
if (opts.quasar.treeShake) {
151-
lines += `{\n Quasar, `
152-
components
153-
.concat(directives)
154-
.concat(plugins)
155-
.forEach(part => {
156-
lines += `\n ${part},`
157-
})
158-
lines += `\n}`
159-
} else {
160-
lines += `Quasar`
161-
}
131+
lines += `{\n Quasar, `
132+
components
133+
.concat(directives)
134+
.concat(plugins)
135+
.forEach(part => {
136+
lines += `\n ${part},`
137+
})
138+
lines += `\n}`
162139
lines += ` from 'quasar'`
163140

164141
// build Vue.use()
165142
lines += `\n\nVue.use(Quasar, {`
166143
lines += `\n config: {}`
167144

168-
// if tree-shake was chosen then we want to include specific defaults
169-
if (opts.quasar.treeShake) {
170-
lines += ',\n components: {'
171-
components.forEach(part => {
172-
lines += `\n ${part},`
173-
})
174-
lines += `\n }`
175-
176-
lines += ',\n directives: {'
177-
directives.forEach(part => {
178-
lines += `\n ${part},`
179-
})
180-
lines += `\n }`
181-
182-
lines += ',\n plugins: {'
183-
plugins.forEach(part => {
184-
lines += `\n ${part},`
185-
})
186-
lines += `\n }`
187-
}
145+
lines += ',\n components: {'
146+
components.forEach(part => {
147+
lines += `\n ${part},`
148+
})
149+
lines += `\n }`
150+
151+
lines += ',\n directives: {'
152+
directives.forEach(part => {
153+
lines += `\n ${part},`
154+
})
155+
lines += `\n }`
156+
157+
lines += ',\n plugins: {'
158+
plugins.forEach(part => {
159+
lines += `\n ${part},`
160+
})
161+
lines += `\n }`
188162

189163
if (hasLang) {
190164
lines += `,\n lang: lang`

generator/templates/with-router/src/layouts/Default.vue

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
round
99
@click="leftDrawerOpen = !leftDrawerOpen"
1010
aria-label="Menu"
11-
icon="<% if (quasar.iconSet === "material-icons") { %>menu<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-bars<% } else if (quasar.iconSet === "ionicons") { %>ion-menu<% } else if (quasar.iconSet === "mdi") { %>mdi-menu<% } else if (quasar.iconSet === "eva-icons") { %>eva-menu-outline<% } %>"
11+
icon="<% if (quasar.iconSet === "material-icons") { %>menu<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_menu<% } else if (quasar.iconSet === "material-icons-round") { %>r_menu<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_menu<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-bars<% } else if (quasar.iconSet === "ionicons") { %>ion-menu<% } else if (quasar.iconSet === "mdi") { %>mdi-menu<% } else if (quasar.iconSet === "eva-icons") { %>eva-menu-outline<% } %>"
1212
/>
1313

1414
<q-toolbar-title>
@@ -21,22 +21,23 @@
2121

2222
<q-drawer
2323
v-model="leftDrawerOpen"
24+
show-if-above
2425
bordered
2526
content-class="bg-grey-2"
2627
>
2728
<q-list>
2829
<q-item-label header>Navigation</q-item-label>
2930
<q-item to="/" exact>
3031
<q-item-section avatar>
31-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>home<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-home<% } else if (quasar.iconSet === "ionicons") { %>ion-home<% } else if (quasar.iconSet === "mdi") { %>mdi-home<% } else if (quasar.iconSet === "eva-icons") { %>eva-home-outline<% } %>" />
32+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>home<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_home<% } else if (quasar.iconSet === "material-icons-round") { %>r_home<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_home<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-home<% } else if (quasar.iconSet === "ionicons") { %>ion-home<% } else if (quasar.iconSet === "mdi") { %>mdi-home<% } else if (quasar.iconSet === "eva-icons") { %>eva-home-outline<% } %>" />
3233
</q-item-section>
3334
<q-item-section>
3435
<q-item-label>Home</q-item-label>
3536
</q-item-section>
3637
</q-item>
3738
<q-item to="/about" exact>
3839
<q-item-section avatar>
39-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>info<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-info<% } else if (quasar.iconSet === "ionicons") { %>ion-information-circle-outline<% } else if (quasar.iconSet === "mdi") { %>mdi-information-outline<% } else if (quasar.iconSet === "eva-icons") { %>eva-info-outline<% } %>" />
40+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>info<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_info<% } else if (quasar.iconSet === "material-icons-round") { %>r_info<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_info<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-info<% } else if (quasar.iconSet === "ionicons") { %>ion-information-circle-outline<% } else if (quasar.iconSet === "mdi") { %>mdi-information-outline<% } else if (quasar.iconSet === "eva-icons") { %>eva-info-outline<% } %>" />
4041
</q-item-section>
4142
<q-item-section>
4243
<q-item-label>About</q-item-label>
@@ -46,7 +47,7 @@
4647
<q-item-label header>Essential Links</q-item-label>
4748
<q-item clickable tag="a" target="_blank" href="https://quasar.dev">
4849
<q-item-section avatar>
49-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>school<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-graduation-cap<% } else if (quasar.iconSet === "ionicons") { %>ion-school<% } else if (quasar.iconSet === "mdi") { %>mdi-school<% } else if (quasar.iconSet === "eva-icons") { %>eva-file-text-outline<% } %>" />
50+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>school<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_school<% } else if (quasar.iconSet === "material-icons-round") { %>r_school<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_school<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-graduation-cap<% } else if (quasar.iconSet === "ionicons") { %>ion-school<% } else if (quasar.iconSet === "mdi") { %>mdi-school<% } else if (quasar.iconSet === "eva-icons") { %>eva-file-text-outline<% } %>" />
5051
</q-item-section>
5152
<q-item-section>
5253
<q-item-label>Docs</q-item-label>
@@ -55,7 +56,7 @@
5556
</q-item>
5657
<q-item clickable tag="a" target="_blank" href="https://github.com/quasarframework/">
5758
<q-item-section avatar>
58-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>code<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-code<% } else if (quasar.iconSet === "ionicons") { %>ion-code<% } else if (quasar.iconSet === "mdi") { %>mdi-code-tags<% } else if (quasar.iconSet === "eva-icons") { %>eva-github-outline<% } %>" />
59+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>code<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_code<% } else if (quasar.iconSet === "material-icons-round") { %>r_code<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_code<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-code<% } else if (quasar.iconSet === "ionicons") { %>ion-code<% } else if (quasar.iconSet === "mdi") { %>mdi-code-tags<% } else if (quasar.iconSet === "eva-icons") { %>eva-github-outline<% } %>" />
5960
</q-item-section>
6061
<q-item-section>
6162
<q-item-label>Github</q-item-label>
@@ -64,7 +65,7 @@
6465
</q-item>
6566
<q-item clickable tag="a" target="_blank" href="https://chat.quasar.dev">
6667
<q-item-section avatar>
67-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>chat<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-comments<% } else if (quasar.iconSet === "ionicons") { %>ion-chatbubbles<% } else if (quasar.iconSet === "mdi") { %>mdi-message-text<% } else if (quasar.iconSet === "eva-icons") { %>eva-message-square-outline<% } %>" />
68+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>chat<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_chat<% } else if (quasar.iconSet === "material-icons-round") { %>r_chat<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_chat<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-comments<% } else if (quasar.iconSet === "ionicons") { %>ion-chatbubbles<% } else if (quasar.iconSet === "mdi") { %>mdi-message-text<% } else if (quasar.iconSet === "eva-icons") { %>eva-message-square-outline<% } %>" />
6869
</q-item-section>
6970
<q-item-section>
7071
<q-item-label>Discord Chat Channel</q-item-label>
@@ -73,7 +74,7 @@
7374
</q-item>
7475
<q-item clickable tag="a" target="_blank" href="https://forum.quasar.dev">
7576
<q-item-section avatar>
76-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>forum<% } else if (quasar.iconSet === "fontawesome") { %>far fa-clipboard<% } else if (quasar.iconSet === "ionicons") { %>ion-chatboxes<% } else if (quasar.iconSet === "mdi") { %>mdi-forum<% } else if (quasar.iconSet === "eva-icons") { %>eva-people-outline<% } %>" />
77+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>forum<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_forum<% } else if (quasar.iconSet === "material-icons-round") { %>r_forum<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_forum<% } else if (quasar.iconSet === "fontawesome") { %>far fa-clipboard<% } else if (quasar.iconSet === "ionicons") { %>ion-chatboxes<% } else if (quasar.iconSet === "mdi") { %>mdi-forum<% } else if (quasar.iconSet === "eva-icons") { %>eva-people-outline<% } %>" />
7778
</q-item-section>
7879
<q-item-section>
7980
<q-item-label>Forum</q-item-label>
@@ -82,7 +83,7 @@
8283
</q-item>
8384
<q-item clickable tag="a" target="_blank" href="https://twitter.com/quasarframework">
8485
<q-item-section avatar>
85-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>rss_feed<% } else if (quasar.iconSet === "fontawesome") { %>fab fa-twitter<% } else if (quasar.iconSet === "ionicons") { %>ion-logo-twitter<% } else if (quasar.iconSet === "mdi") { %>mdi-twitter<% } else if (quasar.iconSet === "eva-icons") { %>eva-twitter-outline<% } %>" />
86+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>rss_feed<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_rss_feed<% } else if (quasar.iconSet === "material-icons-round") { %>r_rss_feed<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_rss_feed<% } else if (quasar.iconSet === "fontawesome") { %>fab fa-twitter<% } else if (quasar.iconSet === "ionicons") { %>ion-logo-twitter<% } else if (quasar.iconSet === "mdi") { %>mdi-twitter<% } else if (quasar.iconSet === "eva-icons") { %>eva-twitter-outline<% } %>" />
8687
</q-item-section>
8788
<q-item-section>
8889
<q-item-label>Twitter</q-item-label>
@@ -104,7 +105,7 @@ export default {
104105
105106
data () {
106107
return {
107-
leftDrawerOpen: this.$q.platform.is.desktop
108+
leftDrawerOpen: false
108109
}
109110
}
110111
}

generator/templates/without-router/src/App.vue

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
round
99
@click="leftDrawerOpen = !leftDrawerOpen"
1010
aria-label="Menu"
11-
icon="<% if (quasar.iconSet === "material-icons") { %>menu<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-bars<% } else if (quasar.iconSet === "ionicons") { %>ion-menu<% } else if (quasar.iconSet === "mdi") { %>mdi-menu<% } else if (quasar.iconSet === "eva-icons") { %>eva-menu-outline<% } %>"
11+
icon="<% if (quasar.iconSet === "material-icons") { %>menu<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_menu<% } else if (quasar.iconSet === "material-icons-round") { %>r_menu<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_menu<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-bars<% } else if (quasar.iconSet === "ionicons") { %>ion-menu<% } else if (quasar.iconSet === "mdi") { %>mdi-menu<% } else if (quasar.iconSet === "eva-icons") { %>eva-menu-outline<% } %>"
1212
/>
1313

1414
<q-toolbar-title>
@@ -21,14 +21,15 @@
2121

2222
<q-drawer
2323
v-model="leftDrawerOpen"
24+
show-if-above
2425
bordered
2526
content-class="bg-grey-2"
2627
>
2728
<q-list>
2829
<q-item-label header>Essential Links</q-item-label>
2930
<q-item clickable tag="a" target="_blank" href="https://quasar.dev">
3031
<q-item-section avatar>
31-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>school<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-graduation-cap<% } else if (quasar.iconSet === "ionicons") { %>ion-school<% } else if (quasar.iconSet === "mdi") { %>mdi-school<% } else if (quasar.iconSet === "eva-icons") { %>eva-file-text-outline<% } %>" />
32+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>school<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_school<% } else if (quasar.iconSet === "material-icons-round") { %>r_school<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_school<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-graduation-cap<% } else if (quasar.iconSet === "ionicons") { %>ion-school<% } else if (quasar.iconSet === "mdi") { %>mdi-school<% } else if (quasar.iconSet === "eva-icons") { %>eva-file-text-outline<% } %>" />
3233
</q-item-section>
3334
<q-item-section>
3435
<q-item-label>Docs</q-item-label>
@@ -37,7 +38,7 @@
3738
</q-item>
3839
<q-item clickable tag="a" target="_blank" href="https://github.com/quasarframework/">
3940
<q-item-section avatar>
40-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>code<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-code<% } else if (quasar.iconSet === "ionicons") { %>ion-code<% } else if (quasar.iconSet === "mdi") { %>mdi-code-tags<% } else if (quasar.iconSet === "eva-icons") { %>eva-github-outline<% } %>" />
41+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>code<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_code<% } else if (quasar.iconSet === "material-icons-round") { %>r_code<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_code<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-code<% } else if (quasar.iconSet === "ionicons") { %>ion-code<% } else if (quasar.iconSet === "mdi") { %>mdi-code-tags<% } else if (quasar.iconSet === "eva-icons") { %>eva-github-outline<% } %>" />
4142
</q-item-section>
4243
<q-item-section>
4344
<q-item-label>Github</q-item-label>
@@ -46,7 +47,7 @@
4647
</q-item>
4748
<q-item clickable tag="a" target="_blank" href="https://chat.quasar.dev">
4849
<q-item-section avatar>
49-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>chat<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-comments<% } else if (quasar.iconSet === "ionicons") { %>ion-chatbubbles<% } else if (quasar.iconSet === "mdi") { %>mdi-message-text<% } else if (quasar.iconSet === "eva-icons") { %>eva-message-square-outline<% } %>" />
50+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>chat<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_chat<% } else if (quasar.iconSet === "material-icons-round") { %>r_chat<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_chat<% } else if (quasar.iconSet === "fontawesome") { %>fas fa-comments<% } else if (quasar.iconSet === "ionicons") { %>ion-chatbubbles<% } else if (quasar.iconSet === "mdi") { %>mdi-message-text<% } else if (quasar.iconSet === "eva-icons") { %>eva-message-square-outline<% } %>" />
5051
</q-item-section>
5152
<q-item-section>
5253
<q-item-label>Discord Chat Channel</q-item-label>
@@ -55,7 +56,7 @@
5556
</q-item>
5657
<q-item clickable tag="a" target="_blank" href="https://forum.quasar.dev">
5758
<q-item-section avatar>
58-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>forum<% } else if (quasar.iconSet === "fontawesome") { %>far fa-clipboard<% } else if (quasar.iconSet === "ionicons") { %>ion-chatboxes<% } else if (quasar.iconSet === "mdi") { %>mdi-forum<% } else if (quasar.iconSet === "eva-icons") { %>eva-people-outline<% } %>" />
59+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>forum<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_forum<% } else if (quasar.iconSet === "material-icons-round") { %>r_forum<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_forum<% } else if (quasar.iconSet === "fontawesome") { %>far fa-clipboard<% } else if (quasar.iconSet === "ionicons") { %>ion-chatboxes<% } else if (quasar.iconSet === "mdi") { %>mdi-forum<% } else if (quasar.iconSet === "eva-icons") { %>eva-people-outline<% } %>" />
5960
</q-item-section>
6061
<q-item-section>
6162
<q-item-label>Forum</q-item-label>
@@ -64,7 +65,7 @@
6465
</q-item>
6566
<q-item clickable tag="a" target="_blank" href="https://twitter.com/quasarframework">
6667
<q-item-section avatar>
67-
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>rss_feed<% } else if (quasar.iconSet === "fontawesome") { %>fab fa-twitter<% } else if (quasar.iconSet === "ionicons") { %>ion-logo-twitter<% } else if (quasar.iconSet === "mdi") { %>mdi-twitter<% } else if (quasar.iconSet === "eva-icons") { %>eva-twitter-outline<% } %>" />
68+
<q-icon name="<% if (quasar.iconSet === "material-icons") { %>rss_feed<% } else if (quasar.iconSet === "material-icons-outlined") { %>o_rss_feed<% } else if (quasar.iconSet === "material-icons-round") { %>r_rss_feed<% } else if (quasar.iconSet === "material-icons-sharp") { %>s_rss_feed<% } else if (quasar.iconSet === "fontawesome") { %>fab fa-twitter<% } else if (quasar.iconSet === "ionicons") { %>ion-logo-twitter<% } else if (quasar.iconSet === "mdi") { %>mdi-twitter<% } else if (quasar.iconSet === "eva-icons") { %>eva-twitter-outline<% } %>" />
6869
</q-item-section>
6970
<q-item-section>
7071
<q-item-label>Twitter</q-item-label>
@@ -92,7 +93,7 @@ export default {
9293
9394
data () {
9495
return {
95-
leftDrawerOpen: this.$q.platform.is.desktop
96+
leftDrawerOpen: false
9697
}
9798
}
9899
}

index.js

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,6 @@ module.exports = (api, options) => {
44
}
55

66
api.chainWebpack(chain => {
7-
const treeShake = options.pluginOptions.quasar.treeShake
8-
9-
if (!treeShake) {
10-
chain.resolve.alias.set(
11-
'quasar$',
12-
'quasar/dist/quasar.esm.js'
13-
)
14-
}
15-
167
chain.resolve.alias
178
.set(
189
'quasar-variables',
@@ -31,6 +22,6 @@ module.exports = (api, options) => {
3122
'quasar/src/css/flex-addon.styl'
3223
)
3324

34-
chain.performance.maxEntrypointSize(treeShake ? 512000 : 1024000)
25+
chain.performance.maxEntrypointSize(512000)
3526
})
3627
}

0 commit comments

Comments
 (0)