├── demo ├── .eslintignore ├── src │ ├── store │ │ ├── common │ │ │ ├── state.js │ │ │ ├── getters.js │ │ │ ├── actions.js │ │ │ ├── mutations.js │ │ │ └── index.js │ │ ├── store-flag.d.ts │ │ └── index.js │ ├── boot │ │ └── qflashcard.js │ ├── App.vue │ ├── pages │ │ ├── Error404.vue │ │ └── Index.vue │ ├── 404.html │ ├── components │ │ ├── ExampleTitle.vue │ │ └── Hero.vue │ ├── css │ │ └── quasar.variables.sass │ ├── router │ │ ├── routes.js │ │ └── index.js │ ├── utils │ │ └── page-utils.js │ ├── assets │ │ └── page-utils.js │ ├── index.template.html │ └── examples │ │ ├── Fade.vue │ │ ├── Spin.vue │ │ ├── Zoom.vue │ │ └── Nudge.vue ├── public │ ├── 1.jpg │ ├── 2.jpg │ ├── bgimg.jpg │ ├── icons │ │ ├── favicon.ico │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── icon-128x128.png │ │ ├── icon-192x192.png │ │ ├── icon-256x256.png │ │ ├── icon-384x384.png │ │ ├── icon-512x512.png │ │ ├── ms-icon-144x144.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-167x167.png │ │ └── apple-icon-180x180.png │ └── app-logo-128x128.png ├── babel.config.js ├── src-electron │ ├── icons │ │ ├── icon.icns │ │ ├── icon.ico │ │ └── linux-512x512.png │ ├── electron-flag.d.ts │ └── main-process │ │ ├── electron-main.dev.js │ │ └── electron-main.js ├── quasar.extensions.json ├── jsconfig.json ├── .editorconfig ├── .postcssrc.js ├── README.md ├── src-ssr │ ├── ssr-flag.d.ts │ └── extension.js ├── .gitignore ├── .stylintrc ├── LICENSE ├── package.json └── .eslintrc.js ├── ui ├── dev │ ├── src │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── components │ │ │ └── .gitkeep │ │ ├── css │ │ │ ├── app.sass │ │ │ └── quasar.variables.sass │ │ ├── boot │ │ │ └── register.js │ │ ├── App.vue │ │ ├── router │ │ │ ├── routes.js │ │ │ ├── pages.js │ │ │ └── index.js │ │ ├── layouts │ │ │ └── MyLayout.vue │ │ ├── pages │ │ │ └── Index.vue │ │ └── index.template.html │ ├── babel.config.js │ ├── public │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── bgimg.jpg │ │ ├── icons │ │ │ ├── favicon.ico │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── favicon-96x96.png │ │ │ ├── icon-128x128.png │ │ │ ├── icon-192x192.png │ │ │ ├── icon-256x256.png │ │ │ ├── icon-384x384.png │ │ │ ├── icon-512x512.png │ │ │ ├── ms-icon-144x144.png │ │ │ ├── apple-icon-120x120.png │ │ │ ├── apple-icon-152x152.png │ │ │ ├── apple-icon-167x167.png │ │ │ └── apple-icon-180x180.png │ │ └── app-logo-128x128.png │ ├── README.md │ ├── jsconfig.json │ ├── .editorconfig │ ├── .postcssrc.js │ ├── .gitignore │ ├── package.json │ └── quasar.conf.js ├── .eslintignore ├── build │ ├── entry │ │ ├── index.common.js │ │ ├── index.esm.js │ │ └── index.umd.js │ ├── script.open-umd.js │ ├── build.api.js │ ├── script.clean.js │ ├── config.js │ ├── index.js │ ├── utils.js │ ├── script.app-ext.js │ └── script.css.js ├── src │ ├── index.sass │ ├── components │ │ ├── QFlashcard.js │ │ ├── QFlashcard.json │ │ ├── QFlashcardSection.json │ │ └── QFlashcardSection.js │ └── index.js ├── .editorconfig ├── .npmignore ├── LICENSE ├── .eslintrc.js ├── umd-test.html └── package.json ├── app-extension ├── .eslintignore ├── src │ ├── boot │ │ └── register.js │ └── index.js ├── jsconfig.json ├── .editorconfig ├── .npmignore ├── README.md ├── package.json └── .eslintrc.js ├── docs ├── 1.jpg ├── 2.jpg ├── bgimg.jpg ├── icons │ ├── favicon.ico │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon-96x96.png │ ├── icon-128x128.png │ ├── icon-192x192.png │ ├── icon-256x256.png │ ├── icon-384x384.png │ ├── icon-512x512.png │ ├── ms-icon-144x144.png │ ├── apple-icon-120x120.png │ ├── apple-icon-152x152.png │ ├── apple-icon-167x167.png │ └── apple-icon-180x180.png ├── app-logo-128x128.png ├── css │ ├── 3.8927fd4c.css │ ├── 10.5b527357.css │ ├── 11.045beabb.css │ ├── 12.e0443bf0.css │ ├── 13.65616514.css │ ├── 14.219b4f43.css │ ├── 15.53aa6129.css │ ├── 16.3d7a4662.css │ ├── 17.73711549.css │ ├── 18.c6deaf1b.css │ ├── 19.d098af9c.css │ ├── 20.9dda8ea2.css │ ├── 21.70c27e91.css │ ├── 22.eaf3e9f2.css │ ├── 23.b363096d.css │ ├── 24.a8902f4c.css │ ├── 25.7af3ae8e.css │ ├── 26.f8d2b737.css │ ├── 5.cafa70cc.css │ ├── 6.2720d077.css │ ├── 7.76c9e97e.css │ ├── 8.ed167725.css │ └── 9.bd1fd5ac.css ├── fonts │ ├── fa-brands-400.ee26f57b.woff │ ├── fa-solid-900.9451d5fe.woff2 │ ├── fa-solid-900.a940d584.woff │ ├── fa-brands-400.31015e86.woff2 │ ├── fa-regular-400.8b892b79.woff │ ├── fa-regular-400.c5240512.woff2 │ ├── KFOmCnqEu92Fr1Mu4mxM.49ae34d4.woff │ ├── KFOkCnqEu92Fr1MmgVxIIzQ.a45108d3.woff │ ├── KFOlCnqEu92Fr1MmEU9fBBc-.cea99d3e.woff │ ├── KFOlCnqEu92Fr1MmSU5fBBc-.865f928c.woff │ ├── KFOlCnqEu92Fr1MmWUlfBBc-.2267169e.woff │ ├── KFOlCnqEu92Fr1MmYUtfBBc-.bac8362e.woff │ ├── flUhRq6tzZclQEJ-Vdg-IuiaDsNa.2d36eb59.woff │ └── flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.492281ee.woff2 ├── 404.html ├── index.html └── js │ ├── 14.012cbef5.js │ ├── 19.a0d4ecf9.js │ ├── 25.2aa85f79.js │ ├── 26.6ff6283a.js │ ├── 6.2ec8015f.js │ ├── 9.8389f5e3.js │ ├── 8.77e272b7.js │ ├── 10.3847de11.js │ ├── 13.d72b7adf.js │ ├── 7.745f1ce9.js │ ├── 11.36d9f991.js │ ├── 12.d408aab2.js │ ├── 17.218629c4.js │ ├── 18.1ebe0be9.js │ ├── 22.410aeb5d.js │ ├── 16.55609c26.js │ ├── 24.440f80fc.js │ ├── 15.49795a10.js │ ├── 20.99a5a92e.js │ ├── 21.6bdb2a44.js │ ├── 23.38f9b47b.js │ ├── 5.c3d42a85.js │ ├── 38.d071aa32.js │ ├── 49.a885218c.js │ ├── 50.b3507191.js │ ├── 43.c45a757f.js │ ├── 30.6418220c.js │ ├── 32.5ee4160d.js │ ├── 33.60c10af9.js │ ├── 34.76792697.js │ ├── 31.0df4a006.js │ ├── 37.b535e653.js │ ├── 35.26612176.js │ ├── 36.6a74c817.js │ ├── 41.b66af2b7.js │ └── 42.69bfc60e.js ├── .gitignore ├── .github ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md └── FUNDING.yml ├── LICENSE └── README.md /demo/.eslintignore: -------------------------------------------------------------------------------- 1 | /dist 2 | -------------------------------------------------------------------------------- /ui/dev/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/dev/src/components/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app-extension/.eslintignore: -------------------------------------------------------------------------------- 1 | docs 2 | -------------------------------------------------------------------------------- /ui/.eslintignore: -------------------------------------------------------------------------------- 1 | /docs 2 | /dist 3 | 4 | -------------------------------------------------------------------------------- /demo/src/store/common/state.js: -------------------------------------------------------------------------------- 1 | export default { 2 | toc: [] 3 | } 4 | -------------------------------------------------------------------------------- /demo/src/store/common/getters.js: -------------------------------------------------------------------------------- 1 | export const toc = (state) => state.toc 2 | -------------------------------------------------------------------------------- /docs/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/1.jpg -------------------------------------------------------------------------------- /docs/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/2.jpg -------------------------------------------------------------------------------- /demo/src/store/common/actions.js: -------------------------------------------------------------------------------- 1 | /* 2 | export function someAction (context) { 3 | } 4 | */ 5 | -------------------------------------------------------------------------------- /ui/dev/src/css/app.sass: -------------------------------------------------------------------------------- 1 | // app global css in Sass form 2 | @import '../../../src/index.sass' 3 | -------------------------------------------------------------------------------- /docs/bgimg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/bgimg.jpg -------------------------------------------------------------------------------- /ui/build/entry/index.common.js: -------------------------------------------------------------------------------- 1 | import Plugin from '../../src/index' 2 | 3 | export default Plugin 4 | -------------------------------------------------------------------------------- /demo/public/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/1.jpg -------------------------------------------------------------------------------- /demo/public/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/2.jpg -------------------------------------------------------------------------------- /demo/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@quasar/babel-preset-app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /ui/dev/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@quasar/babel-preset-app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /ui/dev/public/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/1.jpg -------------------------------------------------------------------------------- /ui/dev/public/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/2.jpg -------------------------------------------------------------------------------- /ui/src/index.sass: -------------------------------------------------------------------------------- 1 | @import 'quasar/src/css/variables.sass' 2 | @import './components/QFlashcard.sass' 3 | 4 | -------------------------------------------------------------------------------- /demo/public/bgimg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/bgimg.jpg -------------------------------------------------------------------------------- /docs/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/favicon.ico -------------------------------------------------------------------------------- /ui/dev/public/bgimg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/bgimg.jpg -------------------------------------------------------------------------------- /docs/app-logo-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/app-logo-128x128.png -------------------------------------------------------------------------------- /docs/css/3.8927fd4c.css: -------------------------------------------------------------------------------- 1 | .example-page{padding:16px 46px;font-weight:300;max-width:900px;margin-left:auto;margin-right:auto} -------------------------------------------------------------------------------- /docs/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/favicon-16x16.png -------------------------------------------------------------------------------- /docs/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/favicon-32x32.png -------------------------------------------------------------------------------- /docs/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/favicon-96x96.png -------------------------------------------------------------------------------- /docs/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/icon-128x128.png -------------------------------------------------------------------------------- /docs/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/icon-192x192.png -------------------------------------------------------------------------------- /docs/icons/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/icon-256x256.png -------------------------------------------------------------------------------- /docs/icons/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/icon-384x384.png -------------------------------------------------------------------------------- /docs/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/icon-512x512.png -------------------------------------------------------------------------------- /ui/dev/README.md: -------------------------------------------------------------------------------- 1 | # Dev app (playground) 2 | 3 | Adding .vue files to src/pages/ will auto-add them to the Index page list. 4 | -------------------------------------------------------------------------------- /demo/public/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/favicon.ico -------------------------------------------------------------------------------- /demo/src/store/common/mutations.js: -------------------------------------------------------------------------------- 1 | export const toc = (state, toc) => { 2 | state.toc.splice(0, state.toc.length, ...toc) 3 | } 4 | -------------------------------------------------------------------------------- /docs/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /demo/public/app-logo-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/app-logo-128x128.png -------------------------------------------------------------------------------- /demo/src-electron/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/src-electron/icons/icon.icns -------------------------------------------------------------------------------- /demo/src-electron/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/src-electron/icons/icon.ico -------------------------------------------------------------------------------- /docs/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /docs/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /docs/icons/apple-icon-167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/apple-icon-167x167.png -------------------------------------------------------------------------------- /docs/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /ui/build/entry/index.esm.js: -------------------------------------------------------------------------------- 1 | import Plugin from '../../src/index' 2 | 3 | export default Plugin 4 | export * from '../../src/index' 5 | -------------------------------------------------------------------------------- /ui/dev/public/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/favicon.ico -------------------------------------------------------------------------------- /demo/public/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/favicon-16x16.png -------------------------------------------------------------------------------- /demo/public/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/favicon-32x32.png -------------------------------------------------------------------------------- /demo/public/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/favicon-96x96.png -------------------------------------------------------------------------------- /demo/public/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/icon-128x128.png -------------------------------------------------------------------------------- /demo/public/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/icon-192x192.png -------------------------------------------------------------------------------- /demo/public/icons/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/icon-256x256.png -------------------------------------------------------------------------------- /demo/public/icons/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/icon-384x384.png -------------------------------------------------------------------------------- /demo/public/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/icon-512x512.png -------------------------------------------------------------------------------- /ui/dev/public/app-logo-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/app-logo-128x128.png -------------------------------------------------------------------------------- /app-extension/src/boot/register.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VuePlugin from '@quasar/quasar-ui-qflashcard' 3 | 4 | Vue.use(VuePlugin) 5 | -------------------------------------------------------------------------------- /demo/public/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /docs/fonts/fa-brands-400.ee26f57b.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/fa-brands-400.ee26f57b.woff -------------------------------------------------------------------------------- /docs/fonts/fa-solid-900.9451d5fe.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/fa-solid-900.9451d5fe.woff2 -------------------------------------------------------------------------------- /docs/fonts/fa-solid-900.a940d584.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/fa-solid-900.a940d584.woff -------------------------------------------------------------------------------- /ui/dev/public/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/favicon-16x16.png -------------------------------------------------------------------------------- /ui/dev/public/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/favicon-32x32.png -------------------------------------------------------------------------------- /ui/dev/public/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/favicon-96x96.png -------------------------------------------------------------------------------- /ui/dev/public/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/icon-128x128.png -------------------------------------------------------------------------------- /ui/dev/public/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/icon-192x192.png -------------------------------------------------------------------------------- /ui/dev/public/icons/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/icon-256x256.png -------------------------------------------------------------------------------- /ui/dev/public/icons/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/icon-384x384.png -------------------------------------------------------------------------------- /ui/dev/public/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/icon-512x512.png -------------------------------------------------------------------------------- /demo/public/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /demo/public/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /demo/public/icons/apple-icon-167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/apple-icon-167x167.png -------------------------------------------------------------------------------- /demo/public/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/public/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /demo/src/boot/qflashcard.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VuePlugin from 'ui' // "ui" is aliased in quasar.conf.js 3 | 4 | Vue.use(VuePlugin) 5 | -------------------------------------------------------------------------------- /docs/fonts/fa-brands-400.31015e86.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/fa-brands-400.31015e86.woff2 -------------------------------------------------------------------------------- /docs/fonts/fa-regular-400.8b892b79.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/fa-regular-400.8b892b79.woff -------------------------------------------------------------------------------- /docs/fonts/fa-regular-400.c5240512.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/fa-regular-400.c5240512.woff2 -------------------------------------------------------------------------------- /ui/dev/public/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /ui/dev/src/boot/register.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VuePlugin from 'ui' // "ui" is aliased in quasar.conf.js 3 | 4 | Vue.use(VuePlugin) 5 | -------------------------------------------------------------------------------- /demo/src-electron/icons/linux-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/demo/src-electron/icons/linux-512x512.png -------------------------------------------------------------------------------- /ui/dev/public/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /ui/dev/public/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /ui/dev/public/icons/apple-icon-167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/apple-icon-167x167.png -------------------------------------------------------------------------------- /ui/dev/public/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/ui/dev/public/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /docs/fonts/KFOmCnqEu92Fr1Mu4mxM.49ae34d4.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/KFOmCnqEu92Fr1Mu4mxM.49ae34d4.woff -------------------------------------------------------------------------------- /ui/build/entry/index.umd.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Plugin from '../../src/index' 3 | 4 | Vue.use(Plugin) 5 | 6 | export * from '../../src/index' 7 | -------------------------------------------------------------------------------- /docs/fonts/KFOkCnqEu92Fr1MmgVxIIzQ.a45108d3.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/KFOkCnqEu92Fr1MmgVxIIzQ.a45108d3.woff -------------------------------------------------------------------------------- /ui/build/script.open-umd.js: -------------------------------------------------------------------------------- 1 | const { resolve } = require('path') 2 | const open = require('open') 3 | 4 | open( 5 | resolve(__dirname, '../umd-test.html') 6 | ) 7 | -------------------------------------------------------------------------------- /docs/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.cea99d3e.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.cea99d3e.woff -------------------------------------------------------------------------------- /docs/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.865f928c.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.865f928c.woff -------------------------------------------------------------------------------- /docs/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.2267169e.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.2267169e.woff -------------------------------------------------------------------------------- /docs/fonts/KFOlCnqEu92Fr1MmYUtfBBc-.bac8362e.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/KFOlCnqEu92Fr1MmYUtfBBc-.bac8362e.woff -------------------------------------------------------------------------------- /docs/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.2d36eb59.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.2d36eb59.woff -------------------------------------------------------------------------------- /demo/quasar.extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "@quasar/qmarkdown": { 3 | "import_md": true, 4 | "import_vmd": true 5 | }, 6 | "json-api-viewer": {}, 7 | "example-viewer": {} 8 | } -------------------------------------------------------------------------------- /docs/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.492281ee.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/quasarframework/quasar-ui-qflashcard/HEAD/docs/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.492281ee.woff2 -------------------------------------------------------------------------------- /app-extension/jsconfig.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "compilerOptions": { 4 | "module": "commonjs", 5 | "target": "es6" 6 | }, 7 | "exclude": ["node_modules"], 8 | "include": ["src/**/*"] 9 | } -------------------------------------------------------------------------------- /ui/dev/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /ui/build/build.api.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | global.rootDir = path.resolve(__dirname, '..') 3 | global.distDir = path.resolve(__dirname, '../dist') 4 | 5 | require('quasar-json-api')() 6 | -------------------------------------------------------------------------------- /demo/jsconfig.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "compilerOptions": { 4 | "module": "commonjs", 5 | "target": "es6" 6 | }, 7 | "exclude": ["node_modules", ".quasar", "dist"], 8 | "include": ["src/**/*"] 9 | } -------------------------------------------------------------------------------- /ui/build/script.clean.js: -------------------------------------------------------------------------------- 1 | var 2 | rimraf = require('rimraf'), 3 | path = require('path') 4 | 5 | rimraf.sync(path.resolve(__dirname, '../dist/*')) 6 | console.log(` 💥 Cleaned build artifacts.\n`) 7 | -------------------------------------------------------------------------------- /ui/dev/jsconfig.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "compilerOptions": { 4 | "module": "commonjs", 5 | "target": "es6" 6 | }, 7 | "exclude": ["node_modules", ".quasar", "dist"], 8 | "include": ["src/**/*"] 9 | } -------------------------------------------------------------------------------- /demo/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /ui/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /ui/dev/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /app-extension/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /demo/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 15 | -------------------------------------------------------------------------------- /demo/.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | plugins: [ 5 | // to edit target browsers: use "browserslist" field in package.json 6 | require('autoprefixer') 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /ui/dev/.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | plugins: [ 5 | // to edit target browsers: use "browserslist" field in package.json 6 | require('autoprefixer') 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .thumbs.db 3 | node_modules 4 | dist 5 | yarn.lock 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | 10 | # Editor directories and files 11 | .idea 12 | .vscode 13 | *.suo 14 | *.ntvs* 15 | *.njsproj 16 | *.sln 17 | -------------------------------------------------------------------------------- /app-extension/.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .thumbs.db 3 | yarn.lock 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Editor directories and files 9 | .idea 10 | .vscode 11 | *.suo 12 | *.ntvs* 13 | *.njsproj 14 | *.sln 15 | .editorconfig 16 | .eslintignore 17 | .eslintrc.js 18 | -------------------------------------------------------------------------------- /demo/README.md: -------------------------------------------------------------------------------- 1 | # quasar-ui-qflashcard Demo 2 | In order to build the demo, you must first build the UI. 3 | Go to the `ui` folder and `yarn build`. This will create the JSON API in the `ui/dist` folder that the demo needs in order to be built. 4 | 5 | # Building 6 | To build the demo, type `quasar dev`. 7 | -------------------------------------------------------------------------------- /demo/src/store/common/index.js: -------------------------------------------------------------------------------- 1 | import state from './state' 2 | import * as getters from './getters' 3 | import * as mutations from './mutations' 4 | import * as actions from './actions' 5 | 6 | export default { 7 | namespaced: true, 8 | state, 9 | getters, 10 | mutations, 11 | actions 12 | } 13 | -------------------------------------------------------------------------------- /demo/src-ssr/ssr-flag.d.ts: -------------------------------------------------------------------------------- 1 | // THIS FEATURE-FLAG FILE IS AUTOGENERATED, 2 | // REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING 3 | import "quasar/dist/types/feature-flag"; 4 | 5 | declare module "quasar/dist/types/feature-flag" { 6 | interface QuasarFeatureFlags { 7 | ssr: true; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /demo/src/store/store-flag.d.ts: -------------------------------------------------------------------------------- 1 | // THIS FEATURE-FLAG FILE IS AUTOGENERATED, 2 | // REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING 3 | import "quasar/dist/types/feature-flag"; 4 | 5 | declare module "quasar/dist/types/feature-flag" { 6 | interface QuasarFeatureFlags { 7 | store: true; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /demo/src-electron/electron-flag.d.ts: -------------------------------------------------------------------------------- 1 | // THIS FEATURE-FLAG FILE IS AUTOGENERATED, 2 | // REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING 3 | import "quasar/dist/types/feature-flag"; 4 | 5 | declare module "quasar/dist/types/feature-flag" { 6 | interface QuasarFeatureFlags { 7 | electron: true; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ui/src/components/QFlashcard.js: -------------------------------------------------------------------------------- 1 | export default { 2 | name: 'QFlashcard', 3 | 4 | props: { 5 | noHover: Boolean 6 | }, 7 | 8 | render (h) { 9 | const slot = this.$slots.default 10 | 11 | return h('div', { 12 | staticClass: 'q-flashcard' + (this.noHover === true ? ' no-hover' : '') 13 | }, slot) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ui/dev/.gitignore: -------------------------------------------------------------------------------- 1 | .quasar 2 | .DS_Store 3 | .thumbs.db 4 | node_modules 5 | /dist 6 | /src-cordova/node_modules 7 | /src-cordova/platforms 8 | /src-cordova/plugins 9 | /src-cordova/www 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | -------------------------------------------------------------------------------- /demo/.gitignore: -------------------------------------------------------------------------------- 1 | .quasar 2 | .DS_Store 3 | .thumbs.db 4 | node_modules 5 | /dist 6 | /src-cordova/node_modules 7 | /src-cordova/platforms 8 | /src-cordova/plugins 9 | /src-cordova/www 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | yarn.lock 14 | 15 | # Editor directories and files 16 | .idea 17 | .vscode 18 | *.suo 19 | *.ntvs* 20 | *.njsproj 21 | *.sln 22 | -------------------------------------------------------------------------------- /ui/build/config.js: -------------------------------------------------------------------------------- 1 | const { name, author, version } = require('../package.json') 2 | const year = (new Date()).getFullYear() 3 | 4 | module.exports = { 5 | name, 6 | version, 7 | banner: 8 | '/*!\n' + 9 | ' * ' + name + ' v' + version + '\n' + 10 | ' * (c) ' + year + ' ' + author + '\n' + 11 | ' * Released under the MIT License.\n' + 12 | ' */\n' 13 | } 14 | -------------------------------------------------------------------------------- /ui/dev/src/router/routes.js: -------------------------------------------------------------------------------- 1 | import pages from './pages' 2 | 3 | const children = pages.map(page => ({ 4 | path: page.path, 5 | component: () => import('pages/' + page.file + '.vue') 6 | })) 7 | 8 | const routes = [ 9 | { 10 | path: '/', 11 | component: () => import('layouts/MyLayout.vue'), 12 | children: [ 13 | { path: '', component: () => import('pages/Index.vue') } 14 | ].concat(children) 15 | } 16 | ] 17 | 18 | export default routes 19 | -------------------------------------------------------------------------------- /ui/src/index.js: -------------------------------------------------------------------------------- 1 | import { version } from '../package.json' 2 | import QFlashcard from './components/QFlashcard' 3 | import QFlashcardSection from './components/QFlashcardSection' 4 | 5 | export { 6 | version, 7 | QFlashcard, 8 | QFlashcardSection 9 | } 10 | 11 | export default { 12 | version, 13 | QFlashcard, 14 | QFlashcardSection, 15 | 16 | install (Vue) { 17 | Vue.component(QFlashcard.name, QFlashcard) 18 | Vue.component(QFlashcardSection.name, QFlashcardSection) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ui/.npmignore: -------------------------------------------------------------------------------- 1 | /build 2 | /dev 3 | umd-test.html 4 | 5 | .DS_Store 6 | .thumbs.db 7 | yarn.lock 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | 12 | # Editor directories and files 13 | .idea 14 | .vscode 15 | *.suo 16 | *.ntvs* 17 | *.njsproj 18 | *.sln 19 | .editorconfig 20 | 21 | # Linters 22 | .eslintignore 23 | .eslintrc.js 24 | .babelrc 25 | 26 | # Other 27 | /src/components/QFlashcard.json 28 | /src/components/QFlashcardSection.json 29 | 30 | # Testing 31 | /test 32 | .env.jest 33 | jest.config.js 34 | -------------------------------------------------------------------------------- /demo/src/pages/Error404.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /demo/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | 4 | import common from './common' 5 | 6 | Vue.use(Vuex) 7 | 8 | /* 9 | * If not building with SSR mode, you can 10 | * directly export the Store instantiation 11 | */ 12 | 13 | export default function (/* { ssrContext } */) { 14 | const Store = new Vuex.Store({ 15 | modules: { 16 | common 17 | }, 18 | 19 | // enable strict mode (adds overhead!) 20 | // for dev mode only 21 | strict: process.env.DEV 22 | }) 23 | 24 | return Store 25 | } 26 | -------------------------------------------------------------------------------- /ui/src/components/QFlashcard.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "docsUrl": "https://quasarframework.github.io/quasar-ui-qflashcard/docs" 4 | }, 5 | "props": { 6 | "no-hover": { 7 | "type": "Boolean", 8 | "desc": "Turns off mouse hover/touch support. In this case, use the `active` property to control resting/active state", 9 | "category": "behavior" 10 | } 11 | }, 12 | "slots": { 13 | "default": { 14 | "desc": "Anything can go into this slot, but one or more QFlashcardSection components are expected" 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /docs/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 404 Redirect 8 | 9 | 12 | 13 | 14 | 15 | 16 | 17 |               18 |               19 |               20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /demo/src/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 404 Redirect 8 | 9 | 12 | 13 | 14 | 15 | 16 | 17 |               18 |               19 |               20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /demo/src/components/ExampleTitle.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 29 | -------------------------------------------------------------------------------- /demo/src/css/quasar.variables.sass: -------------------------------------------------------------------------------- 1 | // Quasar Stylus Variables 2 | // -------------------------------------------------- 3 | // To customize the look and feel of this app, you can override 4 | // the Stylus variables found in Quasar's source Stylus files. 5 | 6 | // Check documentation for full list of Quasar variables 7 | 8 | // It's highly recommended to change the default colors 9 | // to match your app's branding. 10 | // Tip: Use the "Theme Builder" on Quasar's documentation website. 11 | 12 | $primary : #027BE3 13 | $secondary : #26A69A 14 | $accent : #9C27B0 15 | 16 | $positive : #21BA45 17 | $negative : #C10015 18 | $info : #31CCEC 19 | $warning : #F2C037 20 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /ui/src/components/QFlashcardSection.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": { 3 | "docsUrl": "https://quasarframework.github.io/quasar-ui-qflashcard/docs" 4 | }, 5 | "props": { 6 | "transition": { 7 | "type": [ "String", "Array" ], 8 | "desc": "One or more transitions to be used", 9 | "examples": [ "fade-in", "fade-in flip-left-in", "['fade-in', 'flip-left-in']" ], 10 | "category": "behavior" 11 | }, 12 | "active": { 13 | "type": "Boolean", 14 | "desc": "Use along with `no-hover` property to control the non-active/active state", 15 | "category": "model" 16 | } 17 | }, 18 | "slots": { 19 | "default": { 20 | "desc": "Anything can go into this slot" 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /demo/src/router/routes.js: -------------------------------------------------------------------------------- 1 | 2 | const routes = [ 3 | { 4 | path: '/', 5 | redirect: '/docs' 6 | }, 7 | { 8 | path: '/docs', 9 | component: () => import('layouts/MainLayout.vue'), 10 | children: [ 11 | { path: '', component: () => import('pages/Index.vue') } 12 | ] 13 | }, 14 | { 15 | path: '/examples', 16 | component: () => import('layouts/MainLayout.vue'), 17 | children: [ 18 | { path: '', component: () => import('pages/Examples.vue') } 19 | ] 20 | } 21 | ] 22 | 23 | // Always leave this as last one 24 | if (process.env.MODE !== 'ssr') { 25 | routes.push({ 26 | path: '*', 27 | component: () => import('pages/Error404.vue') 28 | }) 29 | } 30 | 31 | export default routes 32 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [hawkeye64, rstoenescu] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with a single custom sponsorship URL -------------------------------------------------------------------------------- /ui/dev/src/router/pages.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Export files list for /pages folder 3 | */ 4 | 5 | function kebabCase (str) { 6 | const result = str.replace( 7 | /[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g, 8 | match => '-' + match.toLowerCase() 9 | ) 10 | return (str[0] === str[0].toUpperCase()) 11 | ? result.substring(1) 12 | : result 13 | } 14 | 15 | function slugify (str) { 16 | return encodeURIComponent(String(str).trim().replace(/\s+/g, '-')) 17 | } 18 | 19 | export default require.context('../pages', true, /^\.\/.*\.vue$/) 20 | .keys() 21 | .map(page => page.slice(2).replace('.vue', '')) 22 | .filter(page => page !== 'Index') 23 | .map(page => ({ 24 | file: page, 25 | title: page + '.vue', 26 | path: slugify(kebabCase(page)) 27 | })) 28 | -------------------------------------------------------------------------------- /ui/dev/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dev", 3 | "version": "1.0.0", 4 | "description": "A Quasar Framework app", 5 | "productName": "Quasar App", 6 | "cordovaId": "org.cordova.quasar.app", 7 | "private": true, 8 | "scripts": { 9 | "dev": "quasar dev", 10 | "dev:ssr": "quasar dev -m ssr", 11 | "dev:ios": "quasar dev -m ios", 12 | "dev:android": "quasar dev -m android", 13 | "dev:electron": "quasar dev -m electron" 14 | }, 15 | "dependencies": { 16 | "@quasar/extras": "^1.8.2" 17 | }, 18 | "devDependencies": { 19 | "@quasar/app": "^2.0.4" 20 | }, 21 | "engines": { 22 | "node": ">= 8.9.0", 23 | "npm": ">= 5.6.0", 24 | "yarn": ">= 1.6.0" 25 | }, 26 | "browserslist": [ 27 | "last 1 version, not dead, ie >= 11" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /docs/css/10.5b527357.css: -------------------------------------------------------------------------------- 1 | .description[data-v-e40262ce]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-e40262ce]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-e40262ce]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-e40262ce]{width:100%}.my-button[data-v-e40262ce]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-e40262ce]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/11.045beabb.css: -------------------------------------------------------------------------------- 1 | .description[data-v-2ded76a9]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-2ded76a9]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-2ded76a9]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-2ded76a9]{width:100%}.my-button[data-v-2ded76a9]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-2ded76a9]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/12.e0443bf0.css: -------------------------------------------------------------------------------- 1 | .description[data-v-c5e40ffe]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-c5e40ffe]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-c5e40ffe]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-c5e40ffe]{width:100%}.my-button[data-v-c5e40ffe]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-c5e40ffe]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/13.65616514.css: -------------------------------------------------------------------------------- 1 | .description[data-v-e4173ff0]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-e4173ff0]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-e4173ff0]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-e4173ff0]{width:100%}.my-button[data-v-e4173ff0]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-e4173ff0]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/14.219b4f43.css: -------------------------------------------------------------------------------- 1 | .description[data-v-b77aed48]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-b77aed48]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-b77aed48]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-b77aed48]{width:100%}.my-button[data-v-b77aed48]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-b77aed48]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/15.53aa6129.css: -------------------------------------------------------------------------------- 1 | .description[data-v-4647ceaf]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-4647ceaf]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-4647ceaf]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-4647ceaf]{width:100%}.my-button[data-v-4647ceaf]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-4647ceaf]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/16.3d7a4662.css: -------------------------------------------------------------------------------- 1 | .description[data-v-d2e973ae]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-d2e973ae]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-d2e973ae]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-d2e973ae]{width:100%}.my-button[data-v-d2e973ae]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-d2e973ae]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/17.73711549.css: -------------------------------------------------------------------------------- 1 | .description[data-v-25b1dd2a]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-25b1dd2a]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-25b1dd2a]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-25b1dd2a]{width:100%}.my-button[data-v-25b1dd2a]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-25b1dd2a]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/18.c6deaf1b.css: -------------------------------------------------------------------------------- 1 | .description[data-v-1f0fa0f0]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-1f0fa0f0]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-1f0fa0f0]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-1f0fa0f0]{width:100%}.my-button[data-v-1f0fa0f0]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-1f0fa0f0]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/19.d098af9c.css: -------------------------------------------------------------------------------- 1 | .description[data-v-ee6a1eda]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-ee6a1eda]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-ee6a1eda]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-ee6a1eda]{width:100%}.my-button[data-v-ee6a1eda]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-ee6a1eda]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/20.9dda8ea2.css: -------------------------------------------------------------------------------- 1 | .description[data-v-bd143ec2]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-bd143ec2]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-bd143ec2]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-bd143ec2]{width:100%}.my-button[data-v-bd143ec2]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-bd143ec2]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/21.70c27e91.css: -------------------------------------------------------------------------------- 1 | .description[data-v-96c43fd6]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-96c43fd6]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-96c43fd6]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-96c43fd6]{width:100%}.my-button[data-v-96c43fd6]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-96c43fd6]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/22.eaf3e9f2.css: -------------------------------------------------------------------------------- 1 | .description[data-v-00460dcb]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-00460dcb]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-00460dcb]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-00460dcb]{width:100%}.my-button[data-v-00460dcb]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-00460dcb]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/23.b363096d.css: -------------------------------------------------------------------------------- 1 | .description[data-v-2effcc19]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-2effcc19]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-2effcc19]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-2effcc19]{width:100%}.my-button[data-v-2effcc19]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-2effcc19]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/24.a8902f4c.css: -------------------------------------------------------------------------------- 1 | .description[data-v-6bf53b5a]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-6bf53b5a]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-6bf53b5a]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-6bf53b5a]{width:100%}.my-button[data-v-6bf53b5a]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-6bf53b5a]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/25.7af3ae8e.css: -------------------------------------------------------------------------------- 1 | .description[data-v-5a1b8c56]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-5a1b8c56]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-5a1b8c56]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-5a1b8c56]{width:100%}.my-button[data-v-5a1b8c56]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-5a1b8c56]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/26.f8d2b737.css: -------------------------------------------------------------------------------- 1 | .description[data-v-ba8af636]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-ba8af636]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-ba8af636]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-ba8af636]{width:100%}.my-button[data-v-ba8af636]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-ba8af636]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/5.cafa70cc.css: -------------------------------------------------------------------------------- 1 | .description[data-v-20f3a8ef]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-20f3a8ef]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-20f3a8ef]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-20f3a8ef]{width:100%}.my-button[data-v-20f3a8ef]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-20f3a8ef]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/6.2720d077.css: -------------------------------------------------------------------------------- 1 | .description[data-v-9313e192]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-9313e192]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-9313e192]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-9313e192]{width:100%}.my-button[data-v-9313e192]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-9313e192]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/7.76c9e97e.css: -------------------------------------------------------------------------------- 1 | .description[data-v-3bb6435d]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-3bb6435d]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-3bb6435d]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-3bb6435d]{width:100%}.my-button[data-v-3bb6435d]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-3bb6435d]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/8.ed167725.css: -------------------------------------------------------------------------------- 1 | .description[data-v-735723cc]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-735723cc]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-735723cc]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-735723cc]{width:100%}.my-button[data-v-735723cc]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-735723cc]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /docs/css/9.bd1fd5ac.css: -------------------------------------------------------------------------------- 1 | .description[data-v-59443a66]{padding:10px;background-color:#000;color:#fff;box-shadow:1px 1px 2px #e6e6e6}.my-header[data-v-59443a66]{width:100%;top:0;height:45px;color:#fff;background-color:rgba(0,0,0,0.8);text-transform:uppercase;text-align:center;font-size:17px;margin:20px 0 0 0;padding:10px}.my-text[data-v-59443a66]{width:100%;top:0;height:80px;color:#fff;text-align:center;font-size:12px;margin:60px 0 0 0;padding:20px;line-height:normal;font-family:Georgia,serif;font-style:italic}.my-button-container[data-v-59443a66]{width:100%}.my-button[data-v-59443a66]{text-decoration:none;margin:0 0 20px 0;text-align:center;padding:7px 14px;background-color:#000;color:#fff;text-transform:uppercase;box-shadow:0 0 1px #000;transition-delay:0.2s}.my-button[data-v-59443a66]:hover{box-shadow:0 0 5px #000} -------------------------------------------------------------------------------- /ui/build/index.js: -------------------------------------------------------------------------------- 1 | process.env.NODE_ENV = 'production' 2 | 3 | const parallel = require('os').cpus().length > 1 4 | const runJob = parallel ? require('child_process').fork : require 5 | const { join } = require('path') 6 | const { createFolder } = require('./utils') 7 | const { green, blue } = require('chalk') 8 | 9 | console.log() 10 | 11 | require('./script.app-ext.js').syncAppExt() 12 | require('./script.clean.js') 13 | 14 | console.log(` 📦 Building ${green('v' + require('../package.json').version)}...${parallel ? blue(' [multi-threaded]') : ''}\n`) 15 | 16 | createFolder('dist') 17 | createFolder('dist/api') 18 | createFolder('dist/vetur') 19 | 20 | // require('./script.javascript') 21 | // require('./script.css') 22 | runJob(join(__dirname, './script.javascript.js')) 23 | runJob(join(__dirname, './script.css.js')) 24 | -------------------------------------------------------------------------------- /ui/dev/src/css/quasar.variables.sass: -------------------------------------------------------------------------------- 1 | // Quasar Sass (& SCSS) Variables 2 | // -------------------------------------------------- 3 | // To customize the look and feel of this app, you can override 4 | // the Stylus variables found in Quasar's source Stylus files. 5 | 6 | // Check documentation for full list of Quasar variables 7 | 8 | // Your own variables (that are declared here) and Quasar's own 9 | // ones will be available out of the box in your .vue/.scss/.sass files 10 | 11 | // It's highly recommended to change the default colors 12 | // to match your app's branding. 13 | // Tip: Use the "Theme Builder" on Quasar's documentation website. 14 | 15 | $primary : #027BE3 16 | $secondary : #26A69A 17 | $accent : #9C27B0 18 | 19 | $positive : #21BA45 20 | $negative : #C10015 21 | $info : #31CCEC 22 | $warning : #F2C037 23 | -------------------------------------------------------------------------------- /demo/src-ssr/extension.js: -------------------------------------------------------------------------------- 1 | /* 2 | * This file runs in a Node context (it's NOT transpiled by Babel), so use only 3 | * the ES6 features that are supported by your Node version. https://node.green/ 4 | * 5 | * WARNING! 6 | * If you import anything from node_modules, then make sure that the package is specified 7 | * in package.json > dependencies and NOT in devDependencies 8 | * 9 | * Note: This file is used for both PRODUCTION & DEVELOPMENT. 10 | * Note: Changes to this file (but not any file it imports!) are picked up by the 11 | * development server, but such updates are costly since the dev-server needs a reboot. 12 | */ 13 | 14 | module.exports.extendApp = function ({ app, ssr }) { 15 | /* 16 | Extend the parts of the express app that you 17 | want to use with development server too. 18 | 19 | Example: app.use(), app.get() etc 20 | */ 21 | } 22 | -------------------------------------------------------------------------------- /ui/dev/src/layouts/MyLayout.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 40 | -------------------------------------------------------------------------------- /demo/src-electron/main-process/electron-main.dev.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This file is used specifically and only for development. It installs 3 | * `electron-debug` & `vue-devtools`. There shouldn't be any need to 4 | * modify this file, but it can be used to extend your development 5 | * environment. 6 | */ 7 | 8 | import electronDebug from 'electron-debug' 9 | import installExtension, { VUEJS_DEVTOOLS } from 'electron-devtools-installer' 10 | import { app } from 'electron' 11 | 12 | // Install `electron-debug` with `devtron` 13 | electronDebug({ showDevTools: true }) 14 | 15 | // Install vuejs devtools 16 | app.whenReady().then(() => { 17 | installExtension(VUEJS_DEVTOOLS) 18 | .then(ext => { 19 | console.log(`Added Extension: ${ext.name}`) 20 | }) 21 | .catch(err => { 22 | console.log('An error occurred: ', err) 23 | }) 24 | }) 25 | 26 | import './electron-main' 27 | -------------------------------------------------------------------------------- /demo/src/utils/page-utils.js: -------------------------------------------------------------------------------- 1 | export function copyHeading (id, message = 'Anchor has been copied to clipboard.', color = 'white', textColor = 'primary', icon = 'done', position = 'top', timeout = 2000) { 2 | const text = window.location.origin + window.location.pathname + '#' + id 3 | 4 | var textArea = document.createElement('textarea') 5 | textArea.className = 'fixed-top' 6 | textArea.value = text 7 | document.body.appendChild(textArea) 8 | textArea.focus() 9 | textArea.select() 10 | 11 | document.execCommand('copy') 12 | document.body.removeChild(textArea) 13 | 14 | this.$q.notify({ 15 | message: message, 16 | color: color, 17 | textColor: textColor, 18 | icon: icon, 19 | position: position, 20 | timeout: timeout 21 | }) 22 | } 23 | 24 | export function slugify (str) { 25 | return encodeURIComponent(String(str).trim().replace(/\s+/g, '-')) 26 | } 27 | -------------------------------------------------------------------------------- /ui/dev/src/pages/Index.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 33 | 34 | 39 | -------------------------------------------------------------------------------- /demo/.stylintrc: -------------------------------------------------------------------------------- 1 | { 2 | "blocks": "never", 3 | "brackets": "never", 4 | "colons": "never", 5 | "colors": "always", 6 | "commaSpace": "always", 7 | "commentSpace": "always", 8 | "cssLiteral": "never", 9 | "depthLimit": false, 10 | "duplicates": true, 11 | "efficient": "always", 12 | "extendPref": false, 13 | "globalDupe": true, 14 | "indentPref": 2, 15 | "leadingZero": "never", 16 | "maxErrors": false, 17 | "maxWarnings": false, 18 | "mixed": false, 19 | "namingConvention": false, 20 | "namingConventionStrict": false, 21 | "none": "never", 22 | "noImportant": false, 23 | "parenSpace": "never", 24 | "placeholder": false, 25 | "prefixVarsWithDollar": "always", 26 | "quotePref": "single", 27 | "semicolons": "never", 28 | "sortOrder": false, 29 | "stackedProperties": "never", 30 | "trailingWhitespace": "never", 31 | "universal": "never", 32 | "valid": true, 33 | "zeroUnits": "never", 34 | "zIndexNormalize": false 35 | } 36 | -------------------------------------------------------------------------------- /app-extension/README.md: -------------------------------------------------------------------------------- 1 | # Quasar App Extension Qflashcard 2 | 3 | The QFlashcard app extension (@quasar/quasar-app-extension-qflashcard) installs and manages the [QFlashcard UI](https://github.com/quasarframework/quasar-ui-qflashcard/tree/dev/ui) component. 4 | 5 | [![npm](https://img.shields.io/npm/v/@quasar/quasar-app-extension-qflashcard.svg?label=@quasar/quasar-app-extension-qflashcard)](https://www.npmjs.com/package/@quasar/quasar-app-extension-qflashcard) 6 | [![npm](https://img.shields.io/npm/dt/@quasar/quasar-app-extension-qflashcard.svg)](https://www.npmjs.com/package/@quasar/quasar-app-extension-qflashcard) 7 | 8 | # Install 9 | ```bash 10 | quasar ext add @quasar/qflashcard 11 | ``` 12 | Quasar CLI will retrieve it from NPM and install the extension. 13 | 14 | # Uninstall 15 | ```bash 16 | quasar ext remove @quasar/qflashcard 17 | ``` 18 | 19 | # Donate 20 | If you appreciate the work that went into this, please consider donating to [Quasar](https://donate.quasar.dev) or [Jeff](https://github.com/sponsors/hawkeye64). 21 | 22 | # License 23 | MIT (c) Jeff Galbraith 24 | -------------------------------------------------------------------------------- /ui/dev/src/index.template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <%= htmlWebpackPlugin.options.productName %> 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Jeff Galbraith 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /demo/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Jeff Galbraith 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ui/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Jeff Galbraith 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | For a legitimate bug, in order to process faster, please go here https://codepen.io/Hawkeye64/pen/qBEPVEG, fork the codepen, add code to reproduce the bug and submit link here (don't forget to save your codepen): 11 | 12 | **Describe the bug** 13 | A clear and concise description of what the bug is. 14 | 15 | **To Reproduce** 16 | Steps to reproduce the behavior: 17 | 1. Go to '...' 18 | 2. Click on '....' 19 | 3. Scroll down to '....' 20 | 4. See error 21 | 22 | **Expected behavior** 23 | A clear and concise description of what you expected to happen. 24 | 25 | **Screenshots** 26 | If applicable, add screenshots to help explain your problem. 27 | 28 | **Desktop (please complete the following information):** 29 | - OS: [e.g. iOS] 30 | - Browser [e.g. chrome, safari] 31 | - Version [e.g. 22] 32 | 33 | **Smartphone (please complete the following information):** 34 | - Device: [e.g. iPhone6] 35 | - OS: [e.g. iOS8.1] 36 | - Browser [e.g. stock browser, safari] 37 | - Version [e.g. 22] 38 | 39 | **Additional context** 40 | Add any other context about the problem here. 41 | -------------------------------------------------------------------------------- /demo/src/assets/page-utils.js: -------------------------------------------------------------------------------- 1 | export function copyToClipboard (text) { 2 | var textArea = document.createElement('textarea') 3 | textArea.className = 'fixed-top' 4 | textArea.value = text 5 | document.body.appendChild(textArea) 6 | textArea.focus() 7 | textArea.select() 8 | 9 | document.execCommand('copy') 10 | document.body.removeChild(textArea) 11 | } 12 | 13 | export function copyHeading (id) { 14 | const text = window.location.origin + window.location.pathname + '#' + id 15 | const el = document.getElementById(id) 16 | 17 | if (el) { 18 | el.id = '' 19 | } 20 | 21 | window.location.hash = '#' + id 22 | 23 | if (el) { 24 | setTimeout(() => { 25 | el.id = id 26 | }, 300) 27 | } 28 | 29 | copyToClipboard(text) 30 | 31 | this.$q.notify({ 32 | message: 'Anchor has been copied to clipboard.', 33 | color: 'white', 34 | textColor: 'primary', 35 | icon: 'done', 36 | position: 'top', 37 | timeout: 2000 38 | }) 39 | } 40 | 41 | export function slugify (str) { 42 | return encodeURIComponent(String(str).trim().replace(/\s+/g, '-')) 43 | } 44 | 45 | export function makeUrl (slug) { 46 | window.location = window.location.origin + window.location.pathname + '#' + slug 47 | } 48 | -------------------------------------------------------------------------------- /ui/dev/src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | import routes from './routes' 5 | 6 | Vue.use(VueRouter) 7 | 8 | /* 9 | * If not building with SSR mode, you can 10 | * directly export the Router instantiation 11 | */ 12 | 13 | export default function (/* { store, ssrContext } */) { 14 | const Router = new VueRouter({ 15 | scrollBehavior: () => ({ x: 0, y: 0 }), 16 | routes, 17 | 18 | // Leave these as is and change from quasar.conf.js instead! 19 | // quasar.conf.js -> build -> vueRouterMode 20 | // quasar.conf.js -> build -> publicPath 21 | mode: process.env.VUE_ROUTER_MODE, 22 | base: process.env.VUE_ROUTER_BASE 23 | }) 24 | 25 | // we get each page from server first! 26 | if (process.env.MODE === 'ssr' && process.env.CLIENT) { 27 | console.log('!!!!') 28 | console.log('On route change we deliberately load page from server -- in order to test hydration errors') 29 | console.log('!!!!') 30 | 31 | let reload = false 32 | Router.beforeEach((to, _, next) => { 33 | if (reload) { 34 | window.location.href = to.fullPath 35 | return 36 | } 37 | reload = true 38 | next() 39 | }) 40 | } 41 | 42 | return Router 43 | } 44 | -------------------------------------------------------------------------------- /ui/src/components/QFlashcardSection.js: -------------------------------------------------------------------------------- 1 | export default { 2 | name: 'QFlashcardSection', 3 | 4 | props: { 5 | active: Boolean, 6 | transition: [String, Array] 7 | }, 8 | 9 | computed: { 10 | classes () { 11 | if (this.transition === void 0) { 12 | return '' 13 | } 14 | let transition = this.transition 15 | if (typeof transition === 'string') { 16 | if (transition.includes(' ')) { 17 | // now transition is an array and handled below... 18 | transition = this.transition.split(' ') 19 | } else { 20 | return this.__transitionName(transition) 21 | } 22 | } 23 | 24 | if (Array.isArray(transition)) { 25 | return transition 26 | .map(t => this.__transitionName(t)) 27 | .join(' ') 28 | } 29 | 30 | return '' 31 | } 32 | }, 33 | 34 | methods: { 35 | __transitionName (transition) { 36 | const postfix = this.active === true ? '--active' : '' 37 | return (transition.startsWith('fc-') 38 | ? transition 39 | : 'fc-' + transition) + postfix 40 | } 41 | }, 42 | 43 | render (h) { 44 | const slot = this.$slots.default 45 | 46 | return h('div', { 47 | staticClass: 'q-flashcard__section', 48 | class: this.classes 49 | }, slot) 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /app-extension/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@quasar/quasar-app-extension-qflashcard", 3 | "version": "1.0.5", 4 | "description": "A Quasar App Extension", 5 | "author": "Jeff Galbraith ", 6 | "license": "MIT", 7 | "main": "src/index.js", 8 | "scripts": { 9 | "lint": "eslint --ext .js,.vue src", 10 | "lint-fix": "eslint --ext .js,.vue src --fix" 11 | }, 12 | "funding": { 13 | "type": "github", 14 | "url": "https://github.com/sponsors/hawkeye64" 15 | }, 16 | "publishConfig": { 17 | "access": "public" 18 | }, 19 | "bugs": "https://github.com/quasarframework/quasar-ui-qflashcard/issues", 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://github.com/quasarframework/quasar-ui-qflashcard.git" 23 | }, 24 | "homepage": "https://github.com/quasarframework/quasar-ui-qflashcard", 25 | "keywords": [ 26 | "quasar", 27 | "quasarframework", 28 | "app", 29 | "app extension", 30 | "extension", 31 | "animation" 32 | ], 33 | "engines": { 34 | "node": ">= 8.9.0", 35 | "npm": ">= 5.6.0", 36 | "yarn": ">= 1.6.0" 37 | }, 38 | "dependencies": { 39 | "@quasar/quasar-ui-qflashcard": "^1.0.5" 40 | }, 41 | "devDependencies": { 42 | "@vue/eslint-config-standard": "^5.1.2", 43 | "babel-eslint": "^10.1.0", 44 | "eslint": "^7.4.0", 45 | "eslint-loader": "^4.0.2", 46 | "eslint-plugin-vue": "^6.2.2" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /demo/src/index.template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <%= htmlWebpackPlugin.options.productName %> 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 28 | 29 | 30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /app-extension/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Quasar App Extension index/runner script 3 | * (runs on each dev/build) 4 | * 5 | * Docs: https://quasar.dev/app-extensions/development-guide/index-api 6 | * API: https://github.com/quasarframework/quasar/blob/master/app/lib/app-extension/IndexAPI.js 7 | */ 8 | 9 | function extendConf (conf) { 10 | // register our boot file 11 | conf.boot.push('~@quasar/quasar-app-extension-qflashcard/src/boot/register.js') 12 | 13 | // make sure app extension files & ui package gets transpiled 14 | conf.build.transpileDependencies.push(/quasar-app-extension-qflashcard[\\/]src/) 15 | conf.build.transpileDependencies.push(/quasar-ui-qflashcard[\\/]src/) 16 | 17 | // make sure the stylesheet goes through webpack to avoid SSR issues 18 | conf.css.push('~@quasar/quasar-ui-qflashcard/src/index.sass') 19 | } 20 | 21 | module.exports = function (api) { 22 | // Quasar compatibility check; you may need 23 | // hard dependencies, as in a minimum version of the "quasar" 24 | // package or a minimum version of "@quasar/app" CLI 25 | api.compatibleWith('quasar', '^1.5.0') 26 | api.compatibleWith('@quasar/app', '^1.3.0 || ^2.0.0') // needed for describe to work properly 27 | 28 | // Uncomment the line below if you provide a JSON API for your component 29 | api.registerDescribeApi('QFlashcard', '~@quasar/quasar-ui-qflashcard/dist/api/QFlashcard.json') 30 | api.registerDescribeApi('QFlashcardSection', '~@quasar/quasar-ui-qflashcard/dist/api/QFlashcardSection.json') 31 | 32 | // We extend /quasar.conf.js 33 | api.extendQuasarConf(extendConf) 34 | } 35 | -------------------------------------------------------------------------------- /app-extension/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | 4 | parserOptions: { 5 | parser: 'babel-eslint', 6 | sourceType: 'module' 7 | }, 8 | 9 | env: { 10 | browser: true 11 | }, 12 | 13 | extends: [ 14 | // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention 15 | // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. 16 | 'plugin:vue/essential', 17 | '@vue/standard' 18 | ], 19 | 20 | // required to lint *.vue files 21 | plugins: [ 22 | 'vue' 23 | ], 24 | 25 | globals: { 26 | 'ga': true, // Google Analytics 27 | 'cordova': true, 28 | '__statics': true, 29 | 'process': true 30 | }, 31 | 32 | // add your custom rules here 33 | rules: { 34 | // allow async-await 35 | 'generator-star-spacing': 'off', 36 | // allow paren-less arrow functions 37 | 'arrow-parens': 'off', 38 | 'one-var': 'off', 39 | 40 | 'import/first': 'off', 41 | 'import/named': 'error', 42 | 'import/namespace': 'error', 43 | 'import/default': 'error', 44 | 'import/export': 'error', 45 | 'import/extensions': 'off', 46 | 'import/no-unresolved': 'off', 47 | 'import/no-extraneous-dependencies': 'off', 48 | 'prefer-promise-reject-errors': 'off', 49 | 50 | // allow console.log during development only 51 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 52 | // allow debugger during development only 53 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /ui/build/utils.js: -------------------------------------------------------------------------------- 1 | const 2 | fs = require('fs'), 3 | path = require('path'), 4 | zlib = require('zlib'), 5 | { green, blue, red, cyan } = require('chalk'), 6 | kebabRegex = /[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g 7 | 8 | function getSize (code) { 9 | return (code.length / 1024).toFixed(2) + 'kb' 10 | } 11 | 12 | module.exports.createFolder = function (folder) { 13 | const dir = path.join(__dirname, '..', folder) 14 | if (!fs.existsSync(dir)) { 15 | fs.mkdirSync(dir) 16 | } 17 | } 18 | 19 | module.exports.writeFile = function (dest, code, zip) { 20 | const banner = dest.indexOf('.json') > -1 21 | ? red('[json]') 22 | : dest.indexOf('.js') > -1 23 | ? green('[js] ') 24 | : dest.indexOf('.ts') > -1 25 | ? cyan('[ts] ') 26 | : blue('[css] ') 27 | 28 | return new Promise((resolve, reject) => { 29 | function report (extra) { 30 | console.log(`${banner} ${path.relative(process.cwd(), dest).padEnd(41)} ${getSize(code).padStart(8)}${extra || ''}`) 31 | resolve(code) 32 | } 33 | 34 | fs.writeFile(dest, code, err => { 35 | if (err) return reject(err) 36 | if (zip) { 37 | zlib.gzip(code, (err, zipped) => { 38 | if (err) return reject(err) 39 | report(` (gzipped: ${getSize(zipped).padStart(8)})`) 40 | }) 41 | } 42 | else { 43 | report() 44 | } 45 | }) 46 | }) 47 | } 48 | 49 | module.exports.readFile = function (file) { 50 | return fs.readFileSync(file, 'utf-8') 51 | } 52 | 53 | module.exports.logError = function (err) { 54 | console.error('\n' + red('[Error]'), err) 55 | console.log() 56 | } 57 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > For Quasar v2/Vue v3 compatibility, go to the [next branch](https://github.com/quasarframework/quasar-ui-qflashcard/tree/next). 2 | 3 | QFlashcard (Vue Plugin, UMD and Quasar App Extension) 4 | === 5 | 6 | ![@quasar/quasar-ui-qflashcard](https://img.shields.io/npm/v/@quasar/quasar-ui-qflashcard.svg?label=@quasar/quasar-ui-qflashcard) 7 | ![@quasar/quasar-app-extension-qflashcard](https://img.shields.io/npm/v/@quasar/quasar-app-extension-qflashcard.svg?label=@quasar/quasar-app-extension-qflashcard) 8 | [![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/quasarframework/quasar-ui-qflashcard.svg)]() 9 | [![GitHub repo size in bytes](https://img.shields.io/github/repo-size/quasarframework/quasar-ui-qflashcard.svg)]() 10 | 11 | # Structure 12 | 13 | * [/ui](ui) - standalone npm package 14 | * [/app-extension](app-extension) - Quasar app extension 15 | * [/demo](demo) - docs, demo and examples project 16 | * [live demo](https://quasarframework.github.io/quasar-ui-qflashcard/docs) - live docs, demo and examples 17 | 18 | # Demo Workflow 19 | If you fork or download this project, make sure you have the Quasar CLI globally installed: 20 | 21 | ``` 22 | $ npm i -g @quasar/cli 23 | ``` 24 | 25 | The workflow to build the demo, on a fresh project, is as follows: 26 | ``` 27 | $ cd ui 28 | $ yarn 29 | $ yarn build 30 | $ cd ../demo 31 | $ yarn 32 | $ quasar dev 33 | ``` 34 | 35 | # Donate 36 | If you appreciate the work that went into this, please consider donating to [Quasar](https://donate.quasar.dev) or [Jeff](https://github.com/sponsors/hawkeye64). 37 | 38 | # License 39 | MIT (c) Jeff Galbraith 40 | -------------------------------------------------------------------------------- /ui/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | 4 | parserOptions: { 5 | parser: 'babel-eslint', 6 | sourceType: 'module' 7 | }, 8 | 9 | env: { 10 | browser: true 11 | }, 12 | 13 | extends: [ 14 | // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention 15 | // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. 16 | 'plugin:vue/essential', 17 | '@vue/standard', 18 | 'plugin:quasar/standard' 19 | ], 20 | 21 | // required to lint *.vue files 22 | plugins: [ 23 | 'vue', 24 | 'quasar' 25 | ], 26 | 27 | globals: { 28 | ga: true, // Google Analytics 29 | cordova: true, 30 | __statics: true, 31 | process: true 32 | }, 33 | 34 | // add your custom rules here 35 | rules: { 36 | // allow async-await 37 | 'generator-star-spacing': 'off', 38 | // allow paren-less arrow functions 39 | 'arrow-parens': 'off', 40 | 'one-var': 'off', 41 | 42 | 'import/first': 'off', 43 | 'import/named': 'error', 44 | 'import/namespace': 'error', 45 | 'import/default': 'error', 46 | 'import/export': 'error', 47 | 'import/extensions': 'off', 48 | 'import/no-unresolved': 'off', 49 | 'import/no-extraneous-dependencies': 'off', 50 | 'prefer-promise-reject-errors': 'off', 51 | 52 | 'no-void': 'off', 53 | // allow console.log during development only 54 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 55 | // allow debugger during development only 56 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /demo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo", 3 | "version": "0.0.1", 4 | "description": "QFlashcard docs, examples and demo site", 5 | "productName": "QFlashcard demo app", 6 | "cordovaId": "org.cordova.quasar.app", 7 | "author": "Jeff Galbraith ", 8 | "private": true, 9 | "scripts": { 10 | "dev": "quasar dev", 11 | "build-demo": "quasar build && cp ./src/404.html ./dist/spa && rm -rf ../docs && cp -r ./dist/spa/. ../docs", 12 | "lint": "eslint --ext .js,.vue src", 13 | "lint-fix": "eslint --ext .js,.vue src --fix", 14 | "test": "echo \"No test specified\" && exit 0" 15 | }, 16 | "dependencies": { 17 | "@quasar/extras": "^1.8.2", 18 | "quasar": "^1.12.10" 19 | }, 20 | "devDependencies": { 21 | "@quasar/app": "^2.0.4", 22 | "@quasar/quasar-app-extension-qmarkdown": "^1.0.29", 23 | "@vue/eslint-config-standard": "^5.1.2", 24 | "babel-eslint": "^10.1.0", 25 | "devtron": "^1.4.0", 26 | "electron": "^9.1.0", 27 | "electron-debug": "^3.1.0", 28 | "electron-devtools-installer": "^3.1.0", 29 | "eslint": "=7.4.0", 30 | "eslint-loader": "^4.0.2", 31 | "eslint-plugin-import": "^2.22.0", 32 | "eslint-plugin-node": "^11.1.0", 33 | "eslint-plugin-promise": "^4.2.1", 34 | "eslint-plugin-quasar": "^1.0.0", 35 | "eslint-plugin-standard": "^4.0.1", 36 | "eslint-plugin-vue": "^6.2.2", 37 | "quasar-app-extension-example-viewer": "^0.0.25", 38 | "quasar-app-extension-json-api-viewer": "^1.0.15" 39 | }, 40 | "engines": { 41 | "node": ">= 8.9.0", 42 | "npm": ">= 5.6.0", 43 | "yarn": ">= 1.6.0" 44 | }, 45 | "browserslist": [ 46 | "last 1 version, not dead, ie >= 11" 47 | ] 48 | } 49 | -------------------------------------------------------------------------------- /demo/src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | 4 | import routes from './routes' 5 | 6 | Vue.use(VueRouter) 7 | 8 | /* 9 | * If not building with SSR mode, you can 10 | * directly export the Router instantiation 11 | */ 12 | 13 | export default function (/* { store, ssrContext } */) { 14 | const Router = new VueRouter({ 15 | scrollBehavior (to, _, savedPosition) { 16 | return new Promise(resolve => { 17 | setTimeout(() => { 18 | if (to.hash !== void 0 && to.hash !== '') { 19 | const el = document.getElementById(to.hash.substring(1)) 20 | 21 | if (el !== null) { 22 | resolve({ x: 0, y: el.offsetTop - el.scrollHeight }) 23 | return 24 | } 25 | } 26 | 27 | resolve(savedPosition || { x: 0, y: 0 }) 28 | }, 100) 29 | }) 30 | }, 31 | routes, 32 | 33 | // Leave these as is and change from quasar.conf.js instead! 34 | // quasar.conf.js -> build -> vueRouterMode 35 | // quasar.conf.js -> build -> publicPath 36 | mode: process.env.VUE_ROUTER_MODE, 37 | base: process.env.VUE_ROUTER_BASE 38 | }) 39 | 40 | // we get each page from server first! 41 | if (process.env.MODE === 'ssr' && process.env.CLIENT) { 42 | console.log('!!!!') 43 | console.log('On route change we deliberately load page from server -- in order to test hydration errors') 44 | console.log('!!!!') 45 | 46 | let reload = false 47 | Router.beforeEach((to, _, next) => { 48 | if (reload) { 49 | window.location.href = to.fullPath 50 | return 51 | } 52 | reload = true 53 | next() 54 | }) 55 | } 56 | 57 | return Router 58 | } 59 | -------------------------------------------------------------------------------- /demo/src-electron/main-process/electron-main.js: -------------------------------------------------------------------------------- 1 | import { app, BrowserWindow, nativeTheme } from 'electron' 2 | 3 | try { 4 | if (process.platform === 'win32' && nativeTheme.shouldUseDarkColors === true) { 5 | require('fs').unlinkSync(require('path').join(app.getPath('userData'), 'DevTools Extensions')) 6 | } 7 | } catch (_) { } 8 | 9 | /** 10 | * Set `__statics` path to static files in production; 11 | * The reason we are setting it here is that the path needs to be evaluated at runtime 12 | */ 13 | if (process.env.PROD) { 14 | global.__statics = require('path').join(__dirname, 'statics').replace(/\\/g, '\\\\') 15 | } 16 | 17 | let mainWindow 18 | 19 | function createWindow () { 20 | /** 21 | * Initial window options 22 | */ 23 | mainWindow = new BrowserWindow({ 24 | width: 1000, 25 | height: 600, 26 | useContentSize: true, 27 | webPreferences: { 28 | // Change from /quasar.conf.js > electron > nodeIntegration; 29 | // More info: https://quasar.dev/quasar-cli/developing-electron-apps/node-integration 30 | nodeIntegration: QUASAR_NODE_INTEGRATION, 31 | nodeIntegrationInWorker: QUASAR_NODE_INTEGRATION, 32 | 33 | // More info: /quasar-cli/developing-electron-apps/electron-preload-script 34 | // preload: path.resolve(__dirname, 'electron-preload.js') 35 | } 36 | }) 37 | 38 | mainWindow.loadURL(process.env.APP_URL) 39 | 40 | mainWindow.on('closed', () => { 41 | mainWindow = null 42 | }) 43 | } 44 | 45 | app.on('ready', createWindow) 46 | 47 | app.on('window-all-closed', () => { 48 | if (process.platform !== 'darwin') { 49 | app.quit() 50 | } 51 | }) 52 | 53 | app.on('activate', () => { 54 | if (mainWindow === null) { 55 | createWindow() 56 | } 57 | }) 58 | -------------------------------------------------------------------------------- /demo/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | 4 | parserOptions: { 5 | parser: 'babel-eslint', 6 | sourceType: 'module' 7 | }, 8 | 9 | env: { 10 | browser: true 11 | }, 12 | 13 | extends: [ 14 | // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention 15 | // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. 16 | 'plugin:vue/essential', 17 | '@vue/standard', 18 | 'plugin:quasar/standard' 19 | ], 20 | 21 | // required to lint *.vue files 22 | plugins: [ 23 | 'vue', 24 | 'quasar' 25 | ], 26 | 27 | globals: { 28 | ga: true, // Google Analytics 29 | cordova: true, 30 | __statics: true, 31 | process: true 32 | }, 33 | 34 | // add your custom rules here 35 | rules: { 36 | // allow async-await 37 | 'generator-star-spacing': 'off', 38 | // allow paren-less arrow functions 39 | 'arrow-parens': 'off', 40 | 'one-var': 'off', 41 | 42 | 'import/first': 'off', 43 | 'import/named': 'error', 44 | 'import/namespace': 'error', 45 | 'import/default': 'error', 46 | 'import/export': 'error', 47 | 'import/extensions': 'off', 48 | 'import/no-unresolved': 'off', 49 | 'import/no-extraneous-dependencies': 'off', 50 | 'prefer-promise-reject-errors': 'off', 51 | 52 | 'import/no-webpack-loader-syntax': 'off', 53 | 54 | 'quasar/no-invalid-props': 'error', 55 | 'quasar/no-invalid-qfield-usage': 'error', 56 | 57 | 'no-void': 'off', 58 | // allow console.log during development only 59 | // 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 60 | // allow debugger during development only 61 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /docs/js/14.012cbef5.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[14],{"00d8":function(t,e,a){"use strict";a.r(e);var i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"fade-in",active:t.active}},[a("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="fade-in"')])],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"fade-out",active:t.active}},[a("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="fade-out"')])],1)])},s=[],r={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=r,o=(a("cbce"),a("2877")),c=a("9564"),d=a("eebe"),l=a.n(d),u=Object(o["a"])(n,i,s,!1,null,"b77aed48",null);e["default"]=u.exports;l()(u,"components",{QToggle:c["a"]})},"58b5":function(t,e,a){},cbce:function(t,e,a){"use strict";var i=a("58b5"),s=a.n(i);s.a}}]); -------------------------------------------------------------------------------- /docs/js/19.a0d4ecf9.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[19],{"5bd1":function(t,e,a){},8817:function(t,e,a){"use strict";var i=a("5bd1"),s=a.n(i);s.a},c420:function(t,e,a){"use strict";a.r(e);var i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"nudge-in",active:t.active}},[a("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="nudge-in"')])],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"nudge-out",active:t.active}},[a("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="nudge-out"')])],1)])},s=[],n={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},r=n,o=(a("8817"),a("2877")),c=a("9564"),d=a("eebe"),l=a.n(d),u=Object(o["a"])(r,i,s,!1,null,"ee6a1eda",null);e["default"]=u.exports;l()(u,"components",{QToggle:c["a"]})}}]); -------------------------------------------------------------------------------- /docs/js/25.2aa85f79.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[25],{"29b4":function(t,e,i){},"3b07":function(t,e,i){"use strict";var s=i("29b4"),a=i.n(s);a.a},"6ba7":function(t,e,i){"use strict";i.r(e);var s=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[i("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[i("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),i("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),i("div",{staticClass:"description text-center rounded-borders"},[i("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[i("q-flashcard-section",{attrs:{transition:"spin-in",active:t.active}},[i("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),i("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="spin-in"')])],1),i("div",{staticClass:"description text-center rounded-borders"},[i("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[i("q-flashcard-section",{attrs:{transition:"spin-out",active:t.active}},[i("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),i("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="spin-out"')])],1)])},a=[],n={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},r=n,o=(i("3b07"),i("2877")),c=i("9564"),l=i("eebe"),d=i.n(l),u=Object(o["a"])(r,s,a,!1,null,"5a1b8c56",null);e["default"]=u.exports;d()(u,"components",{QToggle:c["a"]})}}]); -------------------------------------------------------------------------------- /docs/js/26.6ff6283a.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[26],{"1d5d":function(t,e,a){"use strict";var i=a("c511"),s=a.n(i);s.a},c511:function(t,e,a){},f58d:function(t,e,a){"use strict";a.r(e);var i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"zoom-in",active:t.active}},[a("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="zoom-in"')])],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"zoom-out",active:t.active}},[a("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="zoom-out"')])],1)])},s=[],o={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},r=o,n=(a("1d5d"),a("2877")),c=a("9564"),l=a("eebe"),d=a.n(l),u=Object(n["a"])(r,i,s,!1,null,"ba8af636",null);e["default"]=u.exports;d()(u,"components",{QToggle:c["a"]})}}]); -------------------------------------------------------------------------------- /ui/build/script.app-ext.js: -------------------------------------------------------------------------------- 1 | const 2 | fs = require('fs'), 3 | path = require('path'), 4 | root = path.resolve(__dirname, '../..'), 5 | resolvePath = file => path.resolve(root, file), 6 | { blue } = require('chalk') 7 | 8 | const writeJson = function (file, json) { 9 | return fs.writeFileSync(file, JSON.stringify(json, null, 2) + '\n', 'utf-8') 10 | } 11 | 12 | module.exports.syncAppExt = function (both = true) { 13 | // make sure this project has an app-extension project 14 | const appExtDir = resolvePath('app-extension') 15 | if (!fs.existsSync(appExtDir)) { 16 | return 17 | } 18 | 19 | // make sure this project has an ui project 20 | const uiDir = resolvePath('ui') 21 | if (!fs.existsSync(uiDir)) { 22 | return 23 | } 24 | 25 | // get version and name from ui package.json 26 | const { name, version } = require(resolvePath(resolvePath('ui/package.json'))) 27 | 28 | // read app-ext package.json 29 | const appExtFile = resolvePath('app-extension/package.json') 30 | let appExtJson = require(appExtFile), 31 | finished = false 32 | 33 | // sync version numbers 34 | if (both === true) { 35 | appExtJson.version = version 36 | } 37 | 38 | // check dependencies 39 | if (appExtJson.dependencies !== void 0) { 40 | if (appExtJson.dependencies[name] !== void 0) { 41 | appExtJson.dependencies[name] = '^' + version 42 | finished = true 43 | } 44 | } 45 | // check devDependencies, if not finished 46 | if (finished === false && appExtJson.devDependencies !== void 0) { 47 | if (appExtJson.devDependencies[name] !== void 0) { 48 | appExtJson.devDependencies[name] = '^' + version 49 | finished = true 50 | } 51 | } 52 | 53 | if (finished === true) { 54 | writeJson(appExtFile, appExtJson) 55 | console.log(` ⭐️ App Extension version ${blue(appExtJson.name)} synced with UI version.\n`) 56 | return 57 | } 58 | 59 | console.error(` App Extension version and dependency NOT synced.\n`) 60 | } 61 | -------------------------------------------------------------------------------- /docs/js/6.2ec8015f.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[6],{"56aa":function(t,e,a){"use strict";a.r(e);var o=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"nudge-out",active:t.active}},[a("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})]),a("q-flashcard-section",{staticClass:"fit",attrs:{transition:"slide-up-in",active:t.active}},[a("div",{staticStyle:{"margin-top":"50%",opacity:"0.65"}},[a("q-toolbar",{staticClass:"bg-white text-black q-my-md shadow-2"},[a("q-space"),a("q-btn-toggle",{attrs:{flat:"",stretch:"","toggle-color":"yellow",options:[{label:"Task#1",value:"one"},{label:"Task#2",value:"two"},{label:"Task#3",value:"three"}]},model:{value:t.model,callback:function(e){t.model=e},expression:"model"}})],1)],1)])],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v("Component Demo #2")])],1)])},s=[],l={data:function(){return{model:!1,hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},i=l,n=(a("9b1d"),a("2877")),c=a("9564"),r=a("65c6"),d=a("2c91"),u=a("6a67"),g=a("eebe"),p=a.n(g),v=Object(n["a"])(i,o,s,!1,null,"9313e192",null);e["default"]=v.exports;p()(v,"components",{QToggle:c["a"],QToolbar:r["a"],QSpace:d["a"],QBtnToggle:u["a"]})},"9b1d":function(t,e,a){"use strict";var o=a("ddec"),s=a.n(o);s.a},ddec:function(t,e,a){}}]); -------------------------------------------------------------------------------- /demo/src/components/Hero.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 44 | -------------------------------------------------------------------------------- /ui/build/script.css.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | const sass = require('node-sass') 3 | const postcss = require('postcss') 4 | const cssnano = require('cssnano') 5 | const rtl = require('postcss-rtl') 6 | const autoprefixer = require('autoprefixer') 7 | 8 | const buildConf = require('./config') 9 | const buildUtils = require('./utils') 10 | 11 | const postCssCompiler = postcss([ autoprefixer ]) 12 | const postCssRtlCompiler = postcss([ rtl({}) ]) 13 | 14 | const nano = postcss([ 15 | cssnano({ 16 | preset: ['default', { 17 | mergeLonghand: false, 18 | convertValues: false, 19 | cssDeclarationSorter: false, 20 | reduceTransforms: false 21 | }] 22 | }) 23 | ]) 24 | 25 | Promise 26 | .all([ 27 | generate('src/index.sass', `dist/index`) 28 | ]) 29 | .catch(e => { 30 | console.error(e) 31 | process.exit(1) 32 | }) 33 | 34 | /** 35 | * Helpers 36 | */ 37 | 38 | function resolve (_path) { 39 | return path.resolve(__dirname, '..', _path) 40 | } 41 | 42 | function generate (src, dest) { 43 | src = resolve(src) 44 | dest = resolve(dest) 45 | 46 | return new Promise((resolve, reject) => { 47 | sass.render({ file: src, includePaths: ['node_modules'] }, (err, result) => { 48 | if (err) { 49 | reject(err) 50 | return 51 | } 52 | 53 | resolve(result.css) 54 | }) 55 | }) 56 | .then(code => buildConf.banner + code) 57 | .then(code => postCssCompiler.process(code, { from: void 0 })) 58 | .then(code => { 59 | code.warnings().forEach(warn => { 60 | console.warn(warn.toString()) 61 | }) 62 | return code.css 63 | }) 64 | .then(code => Promise.all([ 65 | generateUMD(dest, code), 66 | postCssRtlCompiler.process(code, { from: void 0 }) 67 | .then(code => generateUMD(dest, code.css, '.rtl')) 68 | ])) 69 | } 70 | 71 | function generateUMD (dest, code, ext = '') { 72 | return buildUtils.writeFile(`${dest}${ext}.css`, code, true) 73 | .then(code => nano.process(code, { from: void 0 })) 74 | .then(code => buildUtils.writeFile(`${dest}${ext}.min.css`, code.css, true)) 75 | } 76 | -------------------------------------------------------------------------------- /docs/js/9.8389f5e3.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[9],{4433:function(t,e,a){"use strict";var s=a("9029"),i=a.n(s);i.a},8727:function(t,e,a){"use strict";a.r(e);var s=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"fade-out",active:t.active}},[a("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})]),a("q-flashcard-section",{staticClass:"fit",staticStyle:{top:"0","background-color":"rgba(219,127,8, 0.7)"},attrs:{transition:"fade-in",active:t.active}},[a("q-flashcard-section",{staticClass:"text-center my-header",attrs:{active:t.active}},[t._v("\n Combo Demo #3\n ")]),a("q-flashcard-section",{staticClass:"my-text",attrs:{active:t.active}},[t._v("\n For beautiful eyes, look for the good in others; for beautiful lips, speak only words of kindness; and for poise, walk with the knowledge that you are never alone.\n ")]),a("q-flashcard-section",{staticClass:"fit flex justify-center items-end",attrs:{active:t.active}},[a("a",{staticClass:"my-button",attrs:{href:"#"}},[t._v("Learn More")])])],1)],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v("Combo Demo #3")])],1)])},i=[],o={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=o,r=(a("4433"),a("2877")),c=a("9564"),l=a("eebe"),d=a.n(l),u=Object(r["a"])(n,s,i,!1,null,"59443a66",null);e["default"]=u.exports;d()(u,"components",{QToggle:c["a"]})},9029:function(t,e,a){}}]); -------------------------------------------------------------------------------- /docs/js/8.77e272b7.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[8],{"98cb":function(t,e,a){},adbe:function(t,e,a){"use strict";var s=a("98cb"),i=a.n(s);i.a},d185:function(t,e,a){"use strict";a.r(e);var s=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"spin-out",active:t.active}},[a("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})]),a("q-flashcard-section",{staticClass:"fit",staticStyle:{top:"0","background-color":"rgba(219,127,8, 0.7)"},attrs:{transition:"spin-in",active:t.active}},[a("q-flashcard-section",{staticClass:"text-center my-header",attrs:{active:t.active}},[t._v("\n Combo Demo #2\n ")]),a("q-flashcard-section",{staticClass:"my-text",attrs:{active:t.active}},[t._v("\n For beautiful eyes, look for the good in others; for beautiful lips, speak only words of kindness; and for poise, walk with the knowledge that you are never alone.\n ")]),a("q-flashcard-section",{staticClass:"fit flex justify-center items-end",attrs:{active:t.active}},[a("a",{staticClass:"my-button",attrs:{href:"#"}},[t._v("Learn More")])])],1)],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v("Combo Demo #2")])],1)])},i=[],o={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=o,r=(a("adbe"),a("2877")),c=a("9564"),l=a("eebe"),d=a.n(l),u=Object(r["a"])(n,s,i,!1,null,"735723cc",null);e["default"]=u.exports;d()(u,"components",{QToggle:c["a"]})}}]); -------------------------------------------------------------------------------- /docs/js/10.3847de11.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[10],{"48a9":function(t,e,a){},"829e":function(t,e,a){"use strict";var s=a("48a9"),o=a.n(s);o.a},bf9f:function(t,e,a){"use strict";a.r(e);var s=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"zoom-out",active:t.active}},[a("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})]),a("q-flashcard-section",{staticClass:"fit",staticStyle:{top:"0","background-color":"rgba(219,127,8, 0.7)"},attrs:{transition:"zoom-in",active:t.active}},[a("q-flashcard-section",{staticClass:"text-center my-header",attrs:{active:t.active}},[t._v("\n Combo Demo #4\n ")]),a("q-flashcard-section",{staticClass:"my-text",attrs:{active:t.active}},[t._v("\n For beautiful eyes, look for the good in others; for beautiful lips, speak only words of kindness; and for poise, walk with the knowledge that you are never alone.\n ")]),a("q-flashcard-section",{staticClass:"fit flex justify-center items-end",attrs:{active:t.active}},[a("a",{staticClass:"my-button",attrs:{href:"#"}},[t._v("Learn More")])])],1)],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v("Combo Demo #4")])],1)])},o=[],i={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=i,r=(a("829e"),a("2877")),c=a("9564"),l=a("eebe"),d=a.n(l),u=Object(r["a"])(n,s,o,!1,null,"e40262ce",null);e["default"]=u.exports;d()(u,"components",{QToggle:c["a"]})}}]); -------------------------------------------------------------------------------- /docs/js/13.d72b7adf.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[13],{9755:function(t,e,a){"use strict";a.r(e);var s=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"flip-up-out",active:t.active}},[a("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})]),a("q-flashcard-section",{staticClass:"fit",staticStyle:{top:"0","background-color":"rgba(219,127,8, 0.7)"},attrs:{transition:"flip-up-in",active:t.active}},[a("q-flashcard-section",{staticClass:"text-center my-header",attrs:{active:t.active}},[t._v("\n Combo Demo #7\n ")]),a("q-flashcard-section",{staticClass:"my-text",attrs:{active:t.active}},[t._v("\n For beautiful eyes, look for the good in others; for beautiful lips, speak only words of kindness; and for poise, walk with the knowledge that you are never alone.\n ")]),a("q-flashcard-section",{staticClass:"fit flex justify-center items-end",attrs:{active:t.active}},[a("a",{staticClass:"my-button",attrs:{href:"#"}},[t._v("Learn More")])])],1)],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v("Combo Demo #7")])],1)])},i=[],o={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=o,r=(a("a489"),a("2877")),c=a("9564"),l=a("eebe"),d=a.n(l),u=Object(r["a"])(n,s,i,!1,null,"e4173ff0",null);e["default"]=u.exports;d()(u,"components",{QToggle:c["a"]})},"9b01":function(t,e,a){},a489:function(t,e,a){"use strict";var s=a("9b01"),i=a.n(s);i.a}}]); -------------------------------------------------------------------------------- /docs/js/7.745f1ce9.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[7],{"34b9":function(t,e,a){"use strict";a.r(e);var s=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"flip-left-out",active:t.active}},[a("img",{attrs:{src:"1.jpg",width:"300",height:"200"}})]),a("q-flashcard-section",{staticClass:"fit",staticStyle:{top:"0","background-color":"rgba(219,127,8, 0.7)"},attrs:{transition:"flip-left-in",active:t.active}},[a("q-flashcard-section",{staticClass:"text-center my-header",attrs:{active:t.active}},[t._v("\n Combo Demo #1\n ")]),a("q-flashcard-section",{staticClass:"my-text",attrs:{active:t.active}},[t._v("\n For beautiful eyes, look for the good in others; for beautiful lips, speak only words of kindness; and for poise, walk with the knowledge that you are never alone.\n ")]),a("q-flashcard-section",{staticClass:"fit flex justify-center items-end",attrs:{active:t.active}},[a("a",{staticClass:"my-button",attrs:{href:"#"}},[t._v("Learn More")])])],1)],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v("Combo Demo #1")])],1)])},i=[],o={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=o,r=(a("f6fc"),a("2877")),c=a("9564"),l=a("eebe"),d=a.n(l),f=Object(r["a"])(n,s,i,!1,null,"3bb6435d",null);e["default"]=f.exports;d()(f,"components",{QToggle:c["a"]})},ed8c:function(t,e,a){},f6fc:function(t,e,a){"use strict";var s=a("ed8c"),i=a.n(s);i.a}}]); -------------------------------------------------------------------------------- /docs/js/11.36d9f991.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[11],{"0faf":function(t,e,a){},a1c1:function(t,e,a){"use strict";var s=a("0faf"),i=a.n(s);i.a},d859:function(t,e,a){"use strict";a.r(e);var s=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"slide-right-out",active:t.active}},[a("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})]),a("q-flashcard-section",{staticClass:"fit",staticStyle:{top:"0","background-color":"rgba(219,127,8, 0.7)"},attrs:{transition:"slide-right-in",active:t.active}},[a("q-flashcard-section",{staticClass:"text-center my-header",attrs:{active:t.active}},[t._v("\n Combo Demo #5\n ")]),a("q-flashcard-section",{staticClass:"my-text",attrs:{active:t.active}},[t._v("\n For beautiful eyes, look for the good in others; for beautiful lips, speak only words of kindness; and for poise, walk with the knowledge that you are never alone.\n ")]),a("q-flashcard-section",{staticClass:"fit flex justify-center items-end",attrs:{active:t.active}},[a("a",{staticClass:"my-button",attrs:{href:"#"}},[t._v("Learn More")])])],1)],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v("Combo Demo #5")])],1)])},i=[],o={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},r=o,n=(a("a1c1"),a("2877")),c=a("9564"),l=a("eebe"),d=a.n(l),f=Object(n["a"])(r,s,i,!1,null,"2ded76a9",null);e["default"]=f.exports;d()(f,"components",{QToggle:c["a"]})}}]); -------------------------------------------------------------------------------- /docs/js/12.d408aab2.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[12],{"0163":function(t,e,a){"use strict";a.r(e);var s=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"slide-up-out",active:t.active}},[a("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})]),a("q-flashcard-section",{staticClass:"fit",staticStyle:{bottom:"20px",top:"0","background-color":"rgba(219,127,8, 0.7)"},attrs:{transition:"slide-up-in",active:t.active}},[a("q-flashcard-section",{staticClass:"text-center my-header",attrs:{active:t.active}},[t._v("\n Combo Demo #6\n ")]),a("q-flashcard-section",{staticClass:"my-text",attrs:{active:t.active}},[t._v("\n For beautiful eyes, look for the good in others; for beautiful lips, speak only words of kindness; and for poise, walk with the knowledge that you are never alone.\n ")]),a("q-flashcard-section",{staticClass:"fit flex justify-center items-end",attrs:{active:t.active}},[a("a",{staticClass:"my-button",attrs:{href:"#"}},[t._v("Learn More")])])],1)],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v("Combo Demo #6")])],1)])},i=[],o={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=o,r=(a("b1d4"),a("2877")),c=a("9564"),l=a("eebe"),d=a.n(l),u=Object(r["a"])(n,s,i,!1,null,"c5e40ffe",null);e["default"]=u.exports;d()(u,"components",{QToggle:c["a"]})},b1d4:function(t,e,a){"use strict";var s=a("e3e3"),i=a.n(s);i.a},e3e3:function(t,e,a){}}]); -------------------------------------------------------------------------------- /demo/src/pages/Index.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 76 | -------------------------------------------------------------------------------- /ui/umd-test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | UMD test 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | QFlashcard v{{ version }} 22 | 23 | 24 |
Quasar v{{ $q.version }}
25 |
26 |
27 | 28 | 29 | 30 |
    31 |
  • In /ui, run: "yarn build"
  • 32 |
  • You need to build & refresh page on each change manually.
  • 33 |
  • Use self-closing tags only!
  • 34 |
  • Example: <my-component></my-component>
  • 35 |
36 |
37 |
38 |
39 |
40 | 41 | 42 | 43 | 44 | 45 | 46 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /docs/js/17.218629c4.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[17],{9494:function(t,e,a){"use strict";a.r(e);var s=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"nudge-in",active:t.active}},[a("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})]),a("q-flashcard-section",{staticClass:"fit",attrs:{transition:"fade-in",active:t.active}},[a("div",{staticClass:"fit",staticStyle:{"background-color":"rgba(219,127,8, 0.7)"}}),a("q-flashcard-section",{staticClass:"text-center my-header",attrs:{transition:"drop-down",active:t.active}},[t._v("\n Mashup Demo #1\n ")]),a("q-flashcard-section",{staticClass:"my-text",attrs:{transition:"slide-up-in",active:t.active}},[t._v("\n For beautiful eyes, look for the good in others; for beautiful lips, speak only words of kindness; and for poise, walk with the knowledge that you are never alone.\n ")]),a("q-flashcard-section",{staticClass:"fit flex justify-center items-end",attrs:{transition:"fade-in",active:t.active}},[a("a",{staticClass:"my-button",attrs:{href:"#"}},[t._v("Learn More")])])],1)],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v("Mashup Demo #1")])],1)])},i=[],n={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},o=n,r=(a("e917"),a("2877")),c=a("9564"),l=a("eebe"),d=a.n(l),u=Object(r["a"])(o,s,i,!1,null,"25b1dd2a",null);e["default"]=u.exports;d()(u,"components",{QToggle:c["a"]})},b375:function(t,e,a){},e917:function(t,e,a){"use strict";var s=a("b375"),i=a.n(s);i.a}}]); -------------------------------------------------------------------------------- /docs/js/18.1ebe0be9.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[18],{"054e":function(t,e,a){},"4e1f":function(t,e,a){"use strict";a.r(e);var s=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"['nudge-out', 'fade-out']",active:t.active}},[a("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})]),a("q-flashcard-section",{staticClass:"fit",staticStyle:{top:"0","background-color":"rgba(219,127,8, 0.7)"},attrs:{transition:"fade-in",active:t.active}}),a("q-flashcard-section",{staticClass:"fit",attrs:{transition:"shake-down",active:t.active}},[a("div",{staticClass:"text-center my-header"},[t._v("\n Mashup Demo #2\n ")])]),a("q-flashcard-section",{staticClass:"fit",attrs:{transition:"spin-in",active:t.active}},[a("div",{staticClass:"my-text"},[t._v("\n For beautiful eyes, look for the good in others; for beautiful lips, speak only words of kindness; and for poise, walk with the knowledge that you are never alone.\n ")])]),a("q-flashcard-section",{staticClass:"fit flex justify-center items-end",staticStyle:{transition:"all 1s ease-in-out !important"},attrs:{transition:"slide-up-in",active:t.active}},[a("a",{staticClass:"my-button",attrs:{href:"#"}},[t._v("Learn More")])])],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v("Mashup Demo #2")])],1)])},i=[],n={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},o=n,r=(a("b633"),a("2877")),c=a("9564"),l=a("eebe"),d=a.n(l),u=Object(r["a"])(o,s,i,!1,null,"1f0fa0f0",null);e["default"]=u.exports;d()(u,"components",{QToggle:c["a"]})},b633:function(t,e,a){"use strict";var s=a("054e"),i=a.n(s);i.a}}]); -------------------------------------------------------------------------------- /docs/js/22.410aeb5d.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[22],{"566b":function(t,e,s){"use strict";var a=s("6de7"),i=s.n(a);i.a},"6de7":function(t,e,s){},e52c:function(t,e,s){"use strict";s.r(e);var a=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[s("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[s("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),s("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"shake-left",active:t.active}},[s("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="shake-left"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"shake-right",active:t.active}},[s("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="shake-right"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"shake-up",active:t.active}},[s("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="shake-up"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"shake-down",active:t.active}},[s("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="shake-down"')])],1)])},i=[],r={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=r,o=(s("566b"),s("2877")),c=s("9564"),d=s("eebe"),l=s.n(d),h=Object(o["a"])(n,a,i,!1,null,"00460dcb",null);e["default"]=h.exports;l()(h,"components",{QToggle:c["a"]})}}]); -------------------------------------------------------------------------------- /docs/js/16.55609c26.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[16],{"3bcd":function(t,e,i){"use strict";var s=i("6ccd"),a=i.n(s);a.a},"3e6f":function(t,e,i){"use strict";i.r(e);var s=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[i("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[i("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),i("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),i("div",{staticClass:"description text-center rounded-borders"},[i("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[i("q-flashcard-section",{attrs:{transition:"flip-up-in",active:t.active}},[i("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),i("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="flip-up-in"')])],1),i("div",{staticClass:"description text-center rounded-borders"},[i("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[i("q-flashcard-section",{attrs:{transition:"flip-up-out",active:t.active}},[i("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),i("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="flip-up-out"')])],1),i("div",{staticClass:"description text-center rounded-borders"},[i("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[i("q-flashcard-section",{attrs:{transition:"flip-down-in",active:t.active}},[i("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),i("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="flip-down-in"')])],1),i("div",{staticClass:"description text-center rounded-borders"},[i("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[i("q-flashcard-section",{attrs:{transition:"flip-down-out",active:t.active}},[i("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),i("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="flip-down-out"')])],1)])},a=[],r={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=r,o=(i("3bcd"),i("2877")),c=i("9564"),d=i("eebe"),l=i.n(d),h=Object(o["a"])(n,s,a,!1,null,"d2e973ae",null);e["default"]=h.exports;l()(h,"components",{QToggle:c["a"]})},"6ccd":function(t,e,i){}}]); -------------------------------------------------------------------------------- /docs/js/24.440f80fc.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[24],{3423:function(t,e,s){"use strict";s.r(e);var i=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[s("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[s("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),s("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"slide-up-in",active:t.active}},[s("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="slide-up-in"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"slide-up-out",active:t.active}},[s("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="slide-up-out"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"slide-down-in",active:t.active}},[s("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="slide-down-in"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"slide-down-out",active:t.active}},[s("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="slide-down-out"')])],1)])},a=[],r={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=r,o=(s("7ca8"),s("2877")),c=s("9564"),d=s("eebe"),l=s.n(d),h=Object(o["a"])(n,i,a,!1,null,"6bf53b5a",null);e["default"]=h.exports;l()(h,"components",{QToggle:c["a"]})},"7ca8":function(t,e,s){"use strict";var i=s("dedb"),a=s.n(i);a.a},dedb:function(t,e,s){}}]); -------------------------------------------------------------------------------- /docs/js/15.49795a10.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[15],{"54a3":function(t,e,i){"use strict";var s=i("dc90"),a=i.n(s);a.a},dc90:function(t,e,i){},fd7b:function(t,e,i){"use strict";i.r(e);var s=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[i("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[i("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),i("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),i("div",{staticClass:"description text-center rounded-borders"},[i("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[i("q-flashcard-section",{attrs:{transition:"flip-left-in",active:t.active}},[i("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),i("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="flip-left-in"')])],1),i("div",{staticClass:"description text-center rounded-borders"},[i("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[i("q-flashcard-section",{attrs:{transition:"flip-left-out",active:t.active}},[i("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),i("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="flip-left-out"')])],1),i("div",{staticClass:"description text-center rounded-borders"},[i("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[i("q-flashcard-section",{attrs:{transition:"flip-right-in",active:t.active}},[i("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),i("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="flip-right-in"')])],1),i("div",{staticClass:"description text-center rounded-borders"},[i("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[i("q-flashcard-section",{attrs:{transition:"flip-right-out",active:t.active}},[i("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),i("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="flip-right-out"')])],1)])},a=[],r={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=r,o=(i("54a3"),i("2877")),c=i("9564"),l=i("eebe"),d=i.n(l),h=Object(o["a"])(n,s,a,!1,null,"4647ceaf",null);e["default"]=h.exports;d()(h,"components",{QToggle:c["a"]})}}]); -------------------------------------------------------------------------------- /docs/js/20.99a5a92e.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[20],{6532:function(t,e,s){"use strict";var i=s("a9bc"),r=s.n(i);r.a},a9bc:function(t,e,s){},e888:function(t,e,s){"use strict";s.r(e);var i=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[s("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[s("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),s("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"roll-left-in",active:t.active}},[s("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="roll-left-in"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"roll-left-out",active:t.active}},[s("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="roll-left-out"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"roll-right-in",active:t.active}},[s("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="roll-right-in"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"roll-right-out",active:t.active}},[s("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="roll-right-out"')])],1)])},r=[],a={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},o=a,n=(s("6532"),s("2877")),l=s("9564"),c=s("eebe"),d=s.n(c),h=Object(n["a"])(o,i,r,!1,null,"bd143ec2",null);e["default"]=h.exports;d()(h,"components",{QToggle:l["a"]})}}]); -------------------------------------------------------------------------------- /docs/js/21.6bdb2a44.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[21],{"0bc7":function(t,e,s){"use strict";s.r(e);var i=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[s("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[s("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),s("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"roll-top-in",active:t.active}},[s("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="roll-top-in"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"roll-top-out",active:t.active}},[s("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="roll-top-out"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"roll-bottom-in",active:t.active}},[s("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="roll-bottom-in"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"roll-bottom-out",active:t.active}},[s("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="roll-bottom-out"')])],1)])},a=[],r={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},o=r,n=(s("f277"),s("2877")),c=s("9564"),l=s("eebe"),d=s.n(l),h=Object(n["a"])(o,i,a,!1,null,"96c43fd6",null);e["default"]=h.exports;d()(h,"components",{QToggle:c["a"]})},5653:function(t,e,s){},f277:function(t,e,s){"use strict";var i=s("5653"),a=s.n(i);a.a}}]); -------------------------------------------------------------------------------- /docs/js/23.38f9b47b.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[23],{"2b58":function(t,e,s){},"73ee":function(t,e,s){"use strict";s.r(e);var i=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[s("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[s("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),s("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"slide-left-in",active:t.active}},[s("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="slide-left-in"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"slide-left-out",active:t.active}},[s("img",{attrs:{src:t.getImage(0),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="slide-left-out"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"slide-right-in",active:t.active}},[s("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="slide-right-in"')])],1),s("div",{staticClass:"description text-center rounded-borders"},[s("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[s("q-flashcard-section",{attrs:{transition:"slide-right-out",active:t.active}},[s("img",{attrs:{src:t.getImage(1),width:"300",height:"200"}})])],1),s("div",{staticClass:"text-h5 q-pt-sm"},[t._v('transition="slide-right-out"')])],1)])},a=[],r={data:function(){return{hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},n=r,o=(s("774b"),s("2877")),c=s("9564"),l=s("eebe"),d=s.n(l),h=Object(o["a"])(n,i,a,!1,null,"2effcc19",null);e["default"]=h.exports;d()(h,"components",{QToggle:c["a"]})},"774b":function(t,e,s){"use strict";var i=s("2b58"),a=s.n(i);a.a}}]); -------------------------------------------------------------------------------- /ui/dev/quasar.conf.js: -------------------------------------------------------------------------------- 1 | // Configuration for your app 2 | // https://quasar.dev/quasar-cli/quasar-conf-js 3 | 4 | const path = require('path') 5 | 6 | module.exports = function (ctx) { 7 | return { 8 | // https://quasar.dev/quasar-cli/supporting-ts 9 | supportTS: false, 10 | 11 | // https://quasar.dev/quasar-cli/prefetch-feature 12 | // preFetch: true, 13 | 14 | // app boot file (/src/boot) 15 | // --> boot files are part of "main.js" 16 | boot: [ 17 | 'register.js' 18 | ], 19 | 20 | css: [ 21 | 'app.sass' 22 | ], 23 | 24 | extras: [ 25 | // 'ionicons-v4', 26 | // 'mdi-v4', 27 | 'fontawesome-v5', 28 | // 'eva-icons', 29 | // 'themify', 30 | // 'line-awesome', 31 | // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! 32 | 33 | 'roboto-font', // optional, you are not bound to it 34 | 'material-icons' // optional, you are not bound to it 35 | ], 36 | 37 | build: { 38 | vueRouterMode: 'history', 39 | 40 | // transpile: false, 41 | 42 | // Add dependencies for transpiling with Babel (Array of string/regex) 43 | // (from node_modules, which are by default not transpiled). 44 | // Applies only if "transpile" is set to true. 45 | // transpileDependencies: [], 46 | 47 | // vueCompiler: true, 48 | // preloadChunks: true, 49 | // showProgress: false, 50 | // gzip: true, 51 | // analyze: true, 52 | 53 | // Options below are automatically set depending on the env, set them if you want to override 54 | // extractCSS: false, 55 | 56 | chainWebpack (chain) { 57 | chain.resolve.alias.merge({ 58 | ui: path.resolve(__dirname, '../src/index.js') 59 | }) 60 | } 61 | }, 62 | 63 | devServer: { 64 | https: false, 65 | // port: 8080, 66 | open: true // opens browser window automatically 67 | }, 68 | 69 | framework: { 70 | iconSet: 'material-icons', // Quasar icon set 71 | lang: 'en-us', // Quasar language pack 72 | config: { 73 | dark: 'auto' 74 | }, 75 | 76 | // Possible values for "importStrategy": 77 | // * 'auto' - (DEFAULT) Auto-import needed Quasar components & directives 78 | // * 'all' - Manually specify what to import 79 | importStrategy: '', 80 | 81 | // Quasar plugins 82 | plugins: [] 83 | }, 84 | 85 | // animations: 'all', // --- includes all animations 86 | animations: [] 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /docs/js/5.c3d42a85.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[5],{4842:function(t,e,a){"use strict";var i=a("961d"),s=a.n(i);s.a},"961d":function(t,e,a){},c8a4:function(t,e,a){"use strict";a.r(e);var i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"q-ma-md row justify-evenly",staticStyle:{"max-width":"700px",width:"100%"}},[a("div",{staticClass:"q-ma-md row justify-center items-center full-width"},[a("q-toggle",{attrs:{label:"Toggle Hover"},model:{value:t.hover,callback:function(e){t.hover=e},expression:"hover"}}),a("q-toggle",{attrs:{label:"Toggle Transitions"},model:{value:t.active,callback:function(e){t.active=e},expression:"active"}})],1),a("div",{staticClass:"description text-center rounded-borders"},[a("q-flashcard",{style:t.style,attrs:{"no-hover":t.hover}},[a("q-flashcard-section",{attrs:{transition:"slide-left-out",active:t.active}},[a("div",{staticClass:"row full-width"},[a("div",{staticClass:"col-6"},[a("img",{staticStyle:{width:"100%","max-width":"100px"},attrs:{src:"wspa-logo.svg"}})]),a("div",{staticClass:"text-center text-black col-6"},[t._v("\n By signing up, you are joining a community of people who are moving the world to protect animals. Join our mailing list to receive email updates about our latest news.\n ")])]),a("div",{staticClass:"row"},[a("a",{staticClass:"my-button",attrs:{href:"https://www.worldanimalprotection.ca/",target:"_blank"}},[t._v("Learn More")])])]),a("q-flashcard-section",{staticClass:"fit",attrs:{transition:"slide-left-in",active:t.active}},[a("div",{staticClass:"q-pa-md q-gutter-sm"},[a("q-input",{attrs:{filled:"",type:"email",hint:"Email"},model:{value:t.email,callback:function(e){t.email=e},expression:"email"}}),a("q-flashcard-section",{staticStyle:{top:"60%"},attrs:{transition:"roll-left-in",active:t.active}},[a("q-btn",{staticClass:"q-mr-sm",attrs:{color:"white","text-color":"black",label:"Submit"}}),a("a",{staticClass:"my-button",attrs:{href:"https://www.worldanimalprotection.ca",target:"_blank"}},[t._v("Learn More")])],1)],1)])],1),a("div",{staticClass:"text-h5 q-pt-sm"},[t._v("Component Demo #1")])],1)])},s=[],l={data:function(){return{email:"",hover:!1,active:!1}},computed:{style:function(){return{width:"320px",height:"220px",backgroundImage:"url('bgimg.jpg')",padding:"10px",border:"10px solid #fff",textAlign:"center",boxShadow:"1px 1px 2px #e6e6e6"}}},methods:{getImage:function(t){return t%2?"1.jpg":"2.jpg"}}},o=l,n=(a("4842"),a("2877")),r=a("9564"),c=a("27f9"),d=a("9c40"),u=a("eebe"),m=a.n(u),p=Object(n["a"])(o,i,s,!1,null,"20f3a8ef",null);e["default"]=p.exports;m()(p,"components",{QToggle:r["a"],QInput:c["a"],QBtn:d["a"]})}}]); -------------------------------------------------------------------------------- /docs/js/38.d071aa32.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[38],{ba47:function(n,e,t){"use strict";t.r(e),e["default"]='\n\n 63 | 64 | 114 | -------------------------------------------------------------------------------- /demo/src/examples/Spin.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | 63 | 64 | 114 | -------------------------------------------------------------------------------- /demo/src/examples/Zoom.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | 63 | 64 | 114 | -------------------------------------------------------------------------------- /demo/src/examples/Nudge.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | 63 | 64 | 114 | -------------------------------------------------------------------------------- /docs/js/41.b66af2b7.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([[41],{"4e52":function(n,e,t){"use strict";t.r(e),e["default"]='\n\n