diff --git a/wax-prosemirror-core/src/Application.js b/wax-prosemirror-core/src/Application.js index a9534f3fd8e068d8f875477598c0b1beeace9ad4..40916f3a4d93c55beecf018b728cb1c924deb7d6 100644 --- a/wax-prosemirror-core/src/Application.js +++ b/wax-prosemirror-core/src/Application.js @@ -96,9 +96,12 @@ export default class Application { */ const app = container.get('Wax'); app.setConfig(); - appConfig.config.PmPlugins.forEach(configPlugin => { - app.PmPlugins.add(configPlugin.key, configPlugin); - }); + + if (appConfig.config.PmPlugins) { + appConfig.config.PmPlugins.forEach(configPlugin => { + app.PmPlugins.add(configPlugin.key, configPlugin); + }); + } app.registerServices(); return app; diff --git a/wax-prosemirror-core/src/Wax.js b/wax-prosemirror-core/src/Wax.js index a97c6c3afe14f9fcb2e038e5590f7a99ab740240..c55b193c8b98732edbe904de99f2db3825b95629 100644 --- a/wax-prosemirror-core/src/Wax.js +++ b/wax-prosemirror-core/src/Wax.js @@ -137,4 +137,8 @@ const Wax = props => { ); }; +Wax.defaultProps = { + config: { services: [] }, +}; + export default Wax; diff --git a/wax-prosemirror-services/src/MenuService/MenuService.js b/wax-prosemirror-services/src/MenuService/MenuService.js index 420d8a3a7ac55528a80a696de2830dc8ff9ad2f1..d4a3e8350188444540ce6734a0fe2bbcc1a7ed9e 100644 --- a/wax-prosemirror-services/src/MenuService/MenuService.js +++ b/wax-prosemirror-services/src/MenuService/MenuService.js @@ -6,6 +6,7 @@ import MenuCollection from './MenuCollection'; class MenuService extends Service { name = 'MenuService'; boot() { + if (this.app.config.get('config.MenuService') === undefined) return false; const { menus } = this.container.get('MenuCollection'); const layout = this.container.get('Layout'); menus.forEach(menu => { @@ -14,6 +15,7 @@ class MenuService extends Service { } register() { + if (this.app.config.get('config.MenuService') === undefined) return false; /* create Menu Factory */ this.config.map(conf => { this.container.bind('Menu').toFactory(context => { diff --git a/wax-prosemirror-services/src/RulesService/Rules.js b/wax-prosemirror-services/src/RulesService/Rules.js index 9974670afab8b1e9d5202b8e7f7f184bb2d5979e..bb876783218e38e2bbc00b62ee9dc8df7050fca0 100644 --- a/wax-prosemirror-services/src/RulesService/Rules.js +++ b/wax-prosemirror-services/src/RulesService/Rules.js @@ -1,10 +1,10 @@ -import { injectable } from "inversify"; +import { injectable } from 'inversify'; import { inputRules, wrappingInputRule, textblockTypeInputRule, - smartQuotes -} from "prosemirror-inputrules"; + smartQuotes, +} from 'prosemirror-inputrules'; @injectable() class Rules { @@ -21,7 +21,7 @@ class Rules { createRules() { const rulesCreated = inputRules({ rules: this.extendedRules }); - this.PmPlugins.add("rules", rulesCreated); + this.PmPlugins.add('rules', rulesCreated); } allRules() { @@ -35,7 +35,7 @@ class Rules { /^(\d+)\.\s$/, this.schema.nodes.orderedlist, match => ({ order: +match[1] }), - (match, node) => node.childCount + node.attrs.order === +match[1] + (match, node) => node.childCount + node.attrs.order === +match[1], ), // * bullet list @@ -46,10 +46,10 @@ class Rules { // # heading textblockTypeInputRule( - new RegExp("^(#{1,6})\\s$"), + new RegExp('^(#{1,6})\\s$'), this.schema.nodes.heading, - match => ({ level: match[1].length }) - ) + match => ({ level: match[1].length }), + ), ]; } } diff --git a/wax-prosemirror-services/src/RulesService/RulesService.js b/wax-prosemirror-services/src/RulesService/RulesService.js index ea4bdac5c308e3ecfb51e1b74b426ed0e023e55c..2ca9dbe9600f9aae0cbd96a47e855355dd550602 100644 --- a/wax-prosemirror-services/src/RulesService/RulesService.js +++ b/wax-prosemirror-services/src/RulesService/RulesService.js @@ -5,9 +5,9 @@ export default class RulesService extends Service { name = 'RulesService'; boot() { - const configRules = this.config; + const configRules = this.app.config.get('config.RulesService'); const rules = this.container.get('Rules'); - rules.addRule(configRules); + if (configRules) rules.addRule(configRules); rules.createRules(); }