Reduced bundle size using dynamic imports for Vue components

This commit is contained in:
Stefan Zermatten
2021-12-27 16:29:43 +02:00
parent 1dc03c8a28
commit dca55d1d00
14 changed files with 451 additions and 502 deletions

View File

@@ -5,15 +5,10 @@
accounts-password
random
dburles:collection-helpers
reactive-var
underscore
momentjs:moment
dburles:mongo-collection-instances
accounts-google
email
meteorhacks:subs-manager
chuangbo:marked
meteor-base
mobile-experience
mongo
@@ -25,22 +20,17 @@ ejson
check
standard-minifier-js
shell-server
templates:array
ecmascript
es5-shim
reactive-dict
percolate:synced-cron
ongoworks:speakingurl
service-configuration
dynamic-import
ddp-rate-limiter
rate-limit
mdg:validated-method
akryum:vue-router2
static-html
aldeed:collection2
aldeed:schema-index
zer0th:meteor-vuetify-loader
accounts-patreon
bozhao:link-accounts
peerlibrary:reactive-publish
@@ -49,8 +39,9 @@ simple:rest-method-mixin
mikowals:batch-insert
peerlibrary:subscription-data
seba:minifiers-autoprefixer
zer0th:meteor-vuetify-loader
akryum:vue-component
akryum:vue-sass
akryum:vue-router2
percolate:migrations
meteortesting:mocha
ostrio:files

View File

@@ -8,7 +8,6 @@ akryum:vue-component@0.15.2
akryum:vue-component-dev-client@0.4.7
akryum:vue-component-dev-server@0.1.4
akryum:vue-router2@0.2.3
akryum:vue-sass@0.1.2
aldeed:collection2@3.4.1
aldeed:schema-index@3.0.0
allow-deny@1.1.0
@@ -24,17 +23,14 @@ caching-compiler@1.2.2
caching-html-compiler@1.2.1
callback-hook@1.3.0
check@1.3.1
chuangbo:marked@0.3.5_1
coffeescript@2.4.1
coffeescript-compiler@2.4.1
dburles:collection-helpers@1.1.0
dburles:mongo-collection-instances@0.3.5
ddp@1.4.0
ddp-client@2.4.1
ddp-common@1.4.0
ddp-rate-limiter@1.0.9
ddp-server@2.3.3
deps@1.0.12
diff-sequence@1.1.1
dynamic-import@0.6.0
ecmascript@0.15.1
@@ -61,7 +57,6 @@ logging@1.2.0
mdg:validated-method@1.2.0
meteor@1.9.3
meteor-base@1.4.0
meteorhacks:subs-manager@1.6.4
meteortesting:browser-tests@1.3.4
meteortesting:mocha@2.0.2
meteortesting:mocha-core@8.0.1
@@ -74,7 +69,6 @@ mobile-status-bar@1.1.0
modern-browsers@0.1.5
modules@0.16.0
modules-runtime@0.12.0
momentjs:moment@2.29.1
mongo@1.11.1
mongo-decimal@0.1.2
mongo-dev-server@1.1.0
@@ -83,7 +77,6 @@ npm-bcrypt@0.9.4
npm-mongo@3.9.0
oauth@1.3.2
oauth2@1.3.0
ongoworks:speakingurl@9.0.0
ordered-dict@1.1.0
ostrio:cookies@2.7.0
ostrio:files@2.0.1
@@ -123,7 +116,6 @@ spacebars-compiler@1.3.0
srp@1.1.0
standard-minifier-js@2.6.1
static-html@1.3.2
templates:array@1.0.3
templating-tools@1.2.1
tmeasday:check-npm-versions@1.0.2
tracker@1.2.0
@@ -132,4 +124,4 @@ underscore@1.0.10
url@1.3.2
webapp@1.10.1
webapp-hashing@1.1.0
zer0th:meteor-vuetify-loader@0.1.30
zer0th:meteor-vuetify-loader@0.1.41

View File

@@ -3,7 +3,7 @@ import { FilesCollection } from 'meteor/ostrio:files';
const ArchiveCreatureFiles = new FilesCollection({
collectionName: 'archiveCreatureFiles',
allowClientCode: false, // Disallow remove files from Client
storagePath: '/DiceCloud/uploads/',
storagePath: '/DiceCloud/archiveCreatures/',
onBeforeUpload(file) {
// Allow upload files under 10MB, and only in json format
if (file.size > 10485760) {

View File

@@ -9,7 +9,10 @@ import Experiences from '/imports/api/creature/experience/Experiences.js';
import { removeCreatureWork } from '/imports/api/creature/creatures/methods/removeCreature.js';
import ArchiveCreatureFiles from '/imports/api/creature/archive/ArchiveCreatureFiles.js';
import readFile from '/imports/api/creature/archive/methods/readFile.js';
import migrateArchive from '/imports/migrations/server/migrateArchive.js';
let migrateArchive;
if (Meteor.isServerr){
migrateArchive = require('/imports/migrations/server/migrateArchive.js').default;
}
function restoreCreature(file, archive){
if (SCHEMA_VERSION < archive.meta.schemaVersion){

View File

@@ -0,0 +1,3 @@
const MAINTENANCE_MODE = Meteor.settings?.public?.maintenanceMode || false;
export default MAINTENANCE_MODE;

View File

@@ -47,28 +47,28 @@
class="creature-property-viewer"
:model="model"
/>
<v-row
v-show="!embedded && childrenLength"
class="mt-1"
dense
>
<property-field
name="Child properties"
:cols="{cols: 12}"
>
<creature-properties-tree
style="width: 100%;"
:root="{collection: 'creatureProperties', id: model._id}"
@length="childrenLength = $event"
@selected="selectSubProperty"
/>
</property-field>
</v-row>
</div>
<p v-else>
This property can't be viewed yet.
</p>
</v-fade-transition>
<v-row
v-show="!editing && !embedded && childrenLength"
class="mt-1"
dense
>
<property-field
name="Child properties"
:cols="{cols: 12}"
>
<creature-properties-tree
style="width: 100%;"
:root="{collection: 'creatureProperties', id: model._id}"
@length="childrenLength = $event"
@selected="selectSubProperty"
/>
</property-field>
</v-row>
</template>
<div
v-if="!embedded"

View File

@@ -1,28 +1,28 @@
import AddCreaturePropertyDialog from '/imports/ui/creature/creatureProperties/AddCreaturePropertyDialog.vue';
import ArchiveDialog from '/imports/ui/creature/archive/ArchiveDialog.vue';
import CastSpellWithSlotDialog from '/imports/ui/properties/components/spells/CastSpellWithSlotDialog.vue';
import CreatureFormDialog from '/imports/ui/creature/CreatureFormDialog.vue';
import CreaturePropertyCreationDialog from '/imports/ui/creature/creatureProperties/CreaturePropertyCreationDialog.vue';
import CreaturePropertyDialog from '/imports/ui/creature/creatureProperties/CreaturePropertyDialog.vue'
import CreaturePropertyFromLibraryDialog from '/imports/ui/creature/creatureProperties/CreaturePropertyFromLibraryDialog.vue'
import DeleteConfirmationDialog from '/imports/ui/dialogStack/DeleteConfirmationDialog.vue';
import DeleteUserAccountDialog from '/imports/ui/user/DeleteUserAccountDialog.vue';
import ExperienceInsertDialog from '/imports/ui/creature/experiences/ExperienceInsertDialog.vue';
import ExperienceListDialog from '/imports/ui/creature/experiences/ExperienceListDialog.vue';
import InviteDialog from '/imports/ui/user/InviteDialog.vue';
import LibraryCreationDialog from '/imports/ui/library/LibraryCreationDialog.vue';
import LibraryEditDialog from '/imports/ui/library/LibraryEditDialog.vue';
import LibraryNodeCreationDialog from '/imports/ui/library/LibraryNodeCreationDialog.vue';
import LibraryNodeDialog from '/imports/ui/library/LibraryNodeDialog.vue';
import MoveLibraryNodeDialog from '/imports/ui/library/MoveLibraryNodeDialog.vue'
import SelectCreaturesDialog from '/imports/ui/tabletop/SelectCreaturesDialog.vue';
import SelectLibraryNodeDialog from '/imports/ui/library/SelectLibraryNodeDialog.vue';
import ShareDialog from '/imports/ui/sharing/ShareDialog.vue';
import SlotDetailsDialog from '/imports/ui/creature/slots/SlotDetailsDialog.vue';
import SlotFillDialog from '/imports/ui/creature/slots/SlotFillDialog.vue';
import TierTooLowDialog from '/imports/ui/user/TierTooLowDialog.vue';
import TransferOwnershipDialog from '/imports/ui/sharing/TransferOwnershipDialog.vue';
import UsernameDialog from '/imports/ui/user/UsernameDialog.vue';
const AddCreaturePropertyDialog = () => import('/imports/ui/creature/creatureProperties/AddCreaturePropertyDialog.vue');
const ArchiveDialog = () => import('/imports/ui/creature/archive/ArchiveDialog.vue');
const CastSpellWithSlotDialog = () => import('/imports/ui/properties/components/spells/CastSpellWithSlotDialog.vue');
const CreatureFormDialog = () => import('/imports/ui/creature/CreatureFormDialog.vue');
const CreaturePropertyCreationDialog = () => import('/imports/ui/creature/creatureProperties/CreaturePropertyCreationDialog.vue');
const CreaturePropertyDialog = () => import('/imports/ui/creature/creatureProperties/CreaturePropertyDialog.vue');
const CreaturePropertyFromLibraryDialog = () => import('/imports/ui/creature/creatureProperties/CreaturePropertyFromLibraryDialog.vue');
const DeleteConfirmationDialog = () => import('/imports/ui/dialogStack/DeleteConfirmationDialog.vue');
const DeleteUserAccountDialog = () => import('/imports/ui/user/DeleteUserAccountDialog.vue');
const ExperienceInsertDialog = () => import( '/imports/ui/creature/experiences/ExperienceInsertDialog.vue');
const ExperienceListDialog = () => import( '/imports/ui/creature/experiences/ExperienceListDialog.vue');
const InviteDialog = () => import('/imports/ui/user/InviteDialog.vue');
const LibraryCreationDialog = () => import('/imports/ui/library/LibraryCreationDialog.vue');
const LibraryEditDialog = () => import('/imports/ui/library/LibraryEditDialog.vue');
const LibraryNodeCreationDialog = () => import('/imports/ui/library/LibraryNodeCreationDialog.vue');
const LibraryNodeDialog = () => import('/imports/ui/library/LibraryNodeDialog.vue');
const MoveLibraryNodeDialog = () => import('/imports/ui/library/MoveLibraryNodeDialog.vue');
const SelectCreaturesDialog = () => import('/imports/ui/tabletop/SelectCreaturesDialog.vue');
const SelectLibraryNodeDialog = () => import('/imports/ui/library/SelectLibraryNodeDialog.vue');
const ShareDialog = () => import('/imports/ui/sharing/ShareDialog.vue');
const SlotDetailsDialog = () => import('/imports/ui/creature/slots/SlotDetailsDialog.vue');
const SlotFillDialog = () => import('/imports/ui/creature/slots/SlotFillDialog.vue');
const TierTooLowDialog = () => import('/imports/ui/user/TierTooLowDialog.vue');
const TransferOwnershipDialog = () => import('/imports/ui/sharing/TransferOwnershipDialog.vue');
const UsernameDialog = () => import('/imports/ui/user/UsernameDialog.vue');
export default {
AddCreaturePropertyDialog,

View File

@@ -1,28 +1,28 @@
import ActionForm from '/imports/ui/properties/forms/ActionForm.vue';
import AdjustmentForm from '/imports/ui/properties/forms/AdjustmentForm.vue';
import AttackForm from '/imports/ui/properties/forms/AttackForm.vue';
import AttributeForm from '/imports/ui/properties/forms/AttributeForm.vue';
import BuffForm from '/imports/ui/properties/forms/BuffForm.vue';
import ClassLevelForm from '/imports/ui/properties/forms/ClassLevelForm.vue';
import ConstantForm from '/imports/ui/properties/forms/ConstantForm.vue';
import ContainerForm from '/imports/ui/properties/forms/ContainerForm.vue';
import DamageForm from '/imports/ui/properties/forms/DamageForm.vue';
import DamageMultiplierForm from '/imports/ui/properties/forms/DamageMultiplierForm.vue';
import EffectForm from '/imports/ui/properties/forms/EffectForm.vue';
import FeatureForm from '/imports/ui/properties/forms/FeatureForm.vue';
import FolderForm from '/imports/ui/properties/forms/FolderForm.vue';
import ItemForm from '/imports/ui/properties/forms/ItemForm.vue';
import NoteForm from '/imports/ui/properties/forms/NoteForm.vue';
import ProficiencyForm from '/imports/ui/properties/forms/ProficiencyForm.vue';
import ReferenceForm from '/imports/ui/properties/forms/ReferenceForm.vue';
import RollForm from '/imports/ui/properties/forms/RollForm.vue';
import SavingThrowForm from '/imports/ui/properties/forms/SavingThrowForm.vue';
import SkillForm from '/imports/ui/properties/forms/SkillForm.vue';
import SlotForm from '/imports/ui/properties/forms/SlotForm.vue';
import SlotFillerForm from '/imports/ui/properties/forms/SlotFillerForm.vue';
import SpellListForm from '/imports/ui/properties/forms/SpellListForm.vue';
import SpellForm from '/imports/ui/properties/forms/SpellForm.vue';
import ToggleForm from '/imports/ui/properties/forms/ToggleForm.vue';
const ActionForm = () => import('/imports/ui/properties/forms/ActionForm.vue');
const AdjustmentForm = () => import('/imports/ui/properties/forms/AdjustmentForm.vue');
const AttackForm = () => import('/imports/ui/properties/forms/AttackForm.vue');
const AttributeForm = () => import('/imports/ui/properties/forms/AttributeForm.vue');
const BuffForm = () => import('/imports/ui/properties/forms/BuffForm.vue');
const ClassLevelForm = () => import('/imports/ui/properties/forms/ClassLevelForm.vue');
const ConstantForm = () => import('/imports/ui/properties/forms/ConstantForm.vue');
const ContainerForm = () => import('/imports/ui/properties/forms/ContainerForm.vue');
const DamageForm = () => import('/imports/ui/properties/forms/DamageForm.vue');
const DamageMultiplierForm = () => import('/imports/ui/properties/forms/DamageMultiplierForm.vue');
const EffectForm = () => import('/imports/ui/properties/forms/EffectForm.vue');
const FeatureForm = () => import('/imports/ui/properties/forms/FeatureForm.vue');
const FolderForm = () => import('/imports/ui/properties/forms/FolderForm.vue');
const ItemForm = () => import('/imports/ui/properties/forms/ItemForm.vue');
const NoteForm = () => import('/imports/ui/properties/forms/NoteForm.vue');
const ProficiencyForm = () => import('/imports/ui/properties/forms/ProficiencyForm.vue');
const ReferenceForm = () => import('/imports/ui/properties/forms/ReferenceForm.vue');
const RollForm = () => import('/imports/ui/properties/forms/RollForm.vue');
const SavingThrowForm = () => import('/imports/ui/properties/forms/SavingThrowForm.vue');
const SkillForm = () => import('/imports/ui/properties/forms/SkillForm.vue');
const SlotForm = () => import('/imports/ui/properties/forms/SlotForm.vue');
const SlotFillerForm = () => import('/imports/ui/properties/forms/SlotFillerForm.vue');
const SpellListForm = () => import('/imports/ui/properties/forms/SpellListForm.vue');
const SpellForm = () => import('/imports/ui/properties/forms/SpellForm.vue');
const ToggleForm = () => import('/imports/ui/properties/forms/ToggleForm.vue');
export default {
action: ActionForm,

View File

@@ -1,27 +1,27 @@
import ActionViewer from '/imports/ui/properties/viewers/ActionViewer.vue';
import AdjustmentViewer from '/imports/ui/properties/viewers/AdjustmentViewer.vue';
import AttributeViewer from '/imports/ui/properties/viewers/AttributeViewer.vue';
import BuffViewer from '/imports/ui/properties/viewers/BuffViewer.vue';
import ContainerViewer from '/imports/ui/properties/viewers/ContainerViewer.vue';
import ClassLevelViewer from '/imports/ui/properties/viewers/ClassLevelViewer.vue';
import ConstantViewer from '/imports/ui/properties/viewers/ConstantViewer.vue';
import DamageViewer from '/imports/ui/properties/viewers/DamageViewer.vue';
import DamageMultiplierViewer from '/imports/ui/properties/viewers/DamageMultiplierViewer.vue';
import EffectViewer from '/imports/ui/properties/viewers/EffectViewer.vue';
import FeatureViewer from '/imports/ui/properties/viewers/FeatureViewer.vue';
import FolderViewer from '/imports/ui/properties/viewers/FolderViewer.vue';
import ItemViewer from '/imports/ui/properties/viewers/ItemViewer.vue';
import NoteViewer from '/imports/ui/properties/viewers/NoteViewer.vue';
import ProficiencyViewer from '/imports/ui/properties/viewers/ProficiencyViewer.vue';
import ReferenceViewer from '/imports/ui/properties/viewers/ReferenceViewer.vue';
import RollViewer from '/imports/ui/properties/viewers/RollViewer.vue';
import SkillViewer from '/imports/ui/properties/viewers/SkillViewer.vue';
import SavingThrowViewer from '/imports/ui/properties/viewers/SavingThrowViewer.vue';
import SlotViewer from '/imports/ui/properties/viewers/SlotViewer.vue';
import SlotFillerViewer from '/imports/ui/properties/viewers/SlotFillerViewer.vue';
import SpellListViewer from '/imports/ui/properties/viewers/SpellListViewer.vue';
import SpellViewer from '/imports/ui/properties/viewers/SpellViewer.vue';
import ToggleViewer from '/imports/ui/properties/viewers/ToggleViewer.vue';
const ActionViewer = () => import ('/imports/ui/properties/viewers/ActionViewer.vue');
const AdjustmentViewer = () => import ('/imports/ui/properties/viewers/AdjustmentViewer.vue');
const AttributeViewer = () => import ('/imports/ui/properties/viewers/AttributeViewer.vue');
const BuffViewer = () => import ('/imports/ui/properties/viewers/BuffViewer.vue');
const ContainerViewer = () => import ('/imports/ui/properties/viewers/ContainerViewer.vue');
const ClassLevelViewer = () => import ('/imports/ui/properties/viewers/ClassLevelViewer.vue');
const ConstantViewer = () => import ('/imports/ui/properties/viewers/ConstantViewer.vue');
const DamageViewer = () => import ('/imports/ui/properties/viewers/DamageViewer.vue');
const DamageMultiplierViewer = () => import ('/imports/ui/properties/viewers/DamageMultiplierViewer.vue');
const EffectViewer = () => import ('/imports/ui/properties/viewers/EffectViewer.vue');
const FeatureViewer = () => import ('/imports/ui/properties/viewers/FeatureViewer.vue');
const FolderViewer = () => import ('/imports/ui/properties/viewers/FolderViewer.vue');
const ItemViewer = () => import ('/imports/ui/properties/viewers/ItemViewer.vue');
const NoteViewer = () => import ('/imports/ui/properties/viewers/NoteViewer.vue');
const ProficiencyViewer = () => import ('/imports/ui/properties/viewers/ProficiencyViewer.vue');
const ReferenceViewer = () => import ('/imports/ui/properties/viewers/ReferenceViewer.vue');
const RollViewer = () => import ('/imports/ui/properties/viewers/RollViewer.vue');
const SkillViewer = () => import ('/imports/ui/properties/viewers/SkillViewer.vue');
const SavingThrowViewer = () => import ('/imports/ui/properties/viewers/SavingThrowViewer.vue');
const SlotViewer = () => import ('/imports/ui/properties/viewers/SlotViewer.vue');
const SlotFillerViewer = () => import ('/imports/ui/properties/viewers/SlotFillerViewer.vue');
const SpellListViewer = () => import ('/imports/ui/properties/viewers/SpellListViewer.vue');
const SpellViewer = () => import ('/imports/ui/properties/viewers/SpellViewer.vue');
const ToggleViewer = () => import ('/imports/ui/properties/viewers/ToggleViewer.vue');
export default {
action: ActionViewer,

View File

@@ -2,36 +2,35 @@ import { RouterFactory, nativeScrollBehavior } from 'meteor/akryum:vue-router2';
import { acceptInviteToken } from '/imports/api/users/Invites.js';
// Components
import Home from '/imports/ui/pages/Home.vue';
import About from '/imports/ui/pages/About.vue';
import CharacterList from '/imports/ui/pages/CharacterList.vue';
import CharacterListToolbarItems from '/imports/ui/creature/creatureList/CharacterListToolbarItems.vue';
import Library from '/imports/ui/pages/Library.vue';
import SingleLibraryToolbar from '/imports/ui/library/SingleLibraryToolbar.vue';
import CharacterSheetPage from '/imports/ui/pages/CharacterSheetPage.vue';
import CharacterSheetToolbar from '/imports/ui/creature/character/CharacterSheetToolbar.vue';
import CharacterSheetRightDrawer from '/imports/ui/creature/character/CharacterSheetRightDrawer.vue';
import SignIn from '/imports/ui/pages/SignIn.vue' ;
import Register from '/imports/ui/pages/Register.vue';
import IconAdmin from '/imports/ui/icons/IconAdmin.vue';
//import Friends from '/imports/ui/pages/Friends.vue' ;
import Feedback from '/imports/ui/pages/Feedback.vue' ;
import Account from '/imports/ui/pages/Account.vue' ;
import InviteSuccess from '/imports/ui/pages/InviteSuccess.vue' ;
import InviteError from '/imports/ui/pages/InviteError.vue' ;
import NotImplemented from '/imports/ui/pages/NotImplemented.vue';
import PatreonLevelTooLow from '/imports/ui/pages/PatreonLevelTooLow.vue';
import Tabletops from '/imports/ui/pages/Tabletops.vue';
import Tabletop from '/imports/ui/pages/Tabletop.vue';
import TabletopToolbar from '/imports/ui/tabletop/TabletopToolbar.vue';
import TabletopRightDrawer from '/imports/ui/tabletop/TabletopRightDrawer.vue';
import Admin from '/imports/ui/pages/Admin.vue';
const Home = () => import('/imports/ui/pages/Home.vue');
const About = () => import('/imports/ui/pages/About.vue');
const CharacterList = () => import('/imports/ui/pages/CharacterList.vue');
const CharacterListToolbarItems = () => import('/imports/ui/creature/creatureList/CharacterListToolbarItems.vue');
const Library = () => import('/imports/ui/pages/Library.vue');
const SingleLibraryToolbar = () => import('/imports/ui/library/SingleLibraryToolbar.vue');
const CharacterSheetPage = () => import('/imports/ui/pages/CharacterSheetPage.vue');
const CharacterSheetToolbar = () => import('/imports/ui/creature/character/CharacterSheetToolbar.vue');
const CharacterSheetRightDrawer = () => import('/imports/ui/creature/character/CharacterSheetRightDrawer.vue');
const SignIn = () => import('/imports/ui/pages/SignIn.vue' );
const Register = () => import('/imports/ui/pages/Register.vue');
const IconAdmin = () => import('/imports/ui/icons/IconAdmin.vue');
//const Friends = () => import('/imports/ui/pages/Friends.vue' );
const Feedback = () => import('/imports/ui/pages/Feedback.vue' );
const Account = () => import('/imports/ui/pages/Account.vue' );
const InviteSuccess = () => import('/imports/ui/pages/InviteSuccess.vue' );
const InviteError = () => import('/imports/ui/pages/InviteError.vue' );
const NotImplemented = () => import('/imports/ui/pages/NotImplemented.vue');
const PatreonLevelTooLow = () => import('/imports/ui/pages/PatreonLevelTooLow.vue');
const Tabletops = () => import('/imports/ui/pages/Tabletops.vue');
const Tabletop = () => import('/imports/ui/pages/Tabletop.vue');
const TabletopToolbar = () => import('/imports/ui/tabletop/TabletopToolbar.vue');
const TabletopRightDrawer = () => import('/imports/ui/tabletop/TabletopRightDrawer.vue');
const Admin = () => import('/imports/ui/pages/Admin.vue');
// Not found
const NotFound = () => import('/imports/ui/pages/NotFound.vue');
let userSubscription = Meteor.subscribe('user');
// Not found
import NotFound from '/imports/ui/pages/NotFound.vue';
// Create router instance
const routerFactory = new RouterFactory({
mode: 'history',

View File

@@ -8,17 +8,10 @@ import router from '/imports/ui/router.js';
import '/imports/ui/components/global/globalIndex.js';
import '/imports/ui/markdownCofig.js';
import vuetify from '/imports/ui/vuetify.js';
import Vuetify from 'vuetify/lib';
import { Scroll } from 'vuetify/lib/directives'
Vue.use(VueMeteorTracker);
Vue.config.meteor.freeze = true;
Vue.config.devtools = true;
Vue.use(Vuetify, {
directives: {
Scroll,
},
});
Vue.use(ReactiveProvide, {
name: 'reactiveProvide', // default value
});

View File

@@ -1,7 +1,16 @@
import Vue from 'vue';
import Vuetify from 'vuetify/lib';
import { Scroll } from 'vuetify/lib/directives';
import SVG_ICONS from '/imports/constants/SVG_ICONS.js';
import SvgIconByName from '/imports/ui/icons/SvgIconByName.vue';
import themes from '/imports/ui/themes.js';
import minifyTheme from 'minify-css-string';
Vue.use(Vuetify, {
directives: {
Scroll,
},
});
let icons = {};
@@ -18,7 +27,10 @@ for (const name in SVG_ICONS) {
let vuetify = new Vuetify({
theme: {
themes,
options: { variations: false },
options: {
variations: false,
minifyTheme,
},
//options: { customProperties: true },
},
icons: {

639
app/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -17,7 +17,7 @@
"npm": "6.13.x"
},
"dependencies": {
"@babel/runtime": "^7.14.8",
"@babel/runtime": "^7.16.5",
"@chenfengyuan/vue-countdown": "^1.1.5",
"@tozd/vue-observer-utils": "^0.5.0",
"animejs": "^2.2.0",
@@ -27,38 +27,39 @@
"date-fns": "^1.30.1",
"ddp-rate-limiter-mixin": "^1.1.10",
"discord.js": "^12.5.3",
"dompurify": "^2.3.0",
"ignore": "^5.1.8",
"dompurify": "^2.3.4",
"ignore": "^5.2.0",
"ignore-styles": "^5.0.1",
"lodash": "^4.17.20",
"marked": "^0.8.2",
"meteor-node-stubs": "^1.1.0",
"minify-css-string": "^1.0.0",
"moo": "^0.5.1",
"nearley": "^2.19.1",
"ngraph.graph": "^19.1.0",
"qrcode": "^1.4.4",
"qrcode": "^1.5.0",
"request": "^2.88.2",
"simpl-schema": "^1.12.0",
"source-map-support": "^0.5.16",
"source-map-support": "^0.5.21",
"speakingurl": "^14.0.1",
"styles": "^0.2.1",
"underscore": "^1.13.1",
"underscore": "^1.13.2",
"vue": "2.6.10",
"vue-meteor-tracker": "^2.0.0-beta.5",
"vue-reactive-provide": "^0.3.0",
"vue-router": "^3.5.2",
"vue-router": "^3.5.3",
"vuedraggable": "^2.23.2",
"vuetify": "^2.5.7",
"vuetify": "^2.6.1",
"vuetify-upload-button": "^2.0.2",
"vuex": "^3.1.3"
},
"devDependencies": {
"chai": "^4.3.4",
"eslint": "^7.31.0",
"eslint-plugin-vue": "^7.14.0",
"eslint-plugin-vuetify": "^1.0.1",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^7.20.0",
"eslint-plugin-vuetify": "^1.1.0",
"mem": "^6.1.1",
"sass": "^1.35.2"
"sass": "^1.45.1"
},
"eslintConfig": {
"extends": [