Skip to content

Commit b754825

Browse files
neSpeccqqqaysjacobsmithgohaberegtasuku-s
committed
Release: 2.19 (#1364)
* typo fixed (#1235) * Improvements: more translations added to the i18n example (#1250) * Return the result of block.call (#1205) * [Improvements] ESLint action (#1099) * TSLint -> ESLint, GitHub Action * Update eslint.yml * Autofix * more autofix * fix * manually fix some issues * Update CHANGELOG.md * [Refactor] ESLint fixed (#1100) Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * [Feature] i18n (#1106) * i18n first steps * i18n internal, toolbox, api for tools * namespaced api * tn, t * tn in block tunes * join toolbox and inlineTools under toolNames * translations * make enum toolTypes * Update block.ts * Update src/components/core.ts Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * add more types * rm tn * export i18n types * upd bundle * fix tabulation * Add type-safe namespaces * upd * Improve example * Update toolbox.ts * improve examplle * upd * fix typo * Add comments for complex types Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> * Remove unused submodule * Fixed: icon centering in Firefox * Do not load styles twice (#1112) * Do not load styles twice * Add changelog * Fix issue link Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Show warning if Block to delete is not found (#1111) Resolves #1102 * Save Tools' order in the Toolbox (#1113) Resolves #1073 * fix $.isEmpty performance (#1096) * fix $.isEmpty performance * add changelog * upd bundle Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Add issue templates (#1114) * Update issue templates (#1121) * Update issue templates * Apply suggestions from code review Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * upd texts * Update feature_request.md * Update .github/ISSUE_TEMPLATE/discussion.md Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> * Allowing deleting block by block id (#1108) * Allowing deleting block by block id * Fixed no argument error * Making index value optional for delete operation * Added to changelog * Making index value optional for delete operation * Added parameter description * Update docs/CHANGELOG.md * Update types/api/blocks.d.ts * Update editor.js Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Allow navigate next from last non-initial block (#1110) Resolves #1103 * Create CODE_OF_CONDUCT.md (#1171) * Create CODE_OF_CONDUCT.md * Update changelog file * Update dependencies (#1122) * Update dependencies * upd codex.tooltip * Update editor.js.LICENSE.txt Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Feature/disable tab event config (#1164) * Highlight first block on autofocus (#1127) * Fix shortcut for external tools (#1141) * fix/shortcut-for-external-tools * Check inline tools property for shortcut Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * Hotfix/issue1133 selection shortcut removed on editor destroy (#1140) * Removed shortcut CMD+A on editor destroy #1133 * Removed patch version and made code cleaner #1133 * lint error fixes #1133 Co-authored-by: Sisir <sisir@hellosivi.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * [Feature] BlockAPI Interface (#1075) * Fix BlockManager.insert method (#1172) * Fix BlockManager.insert method * upd * Explicitly check for undefined * Update tools master branches (#1180) * Update master branches * Update image * Update CHANGELOG.md * Fix behaviour of inputs editing in block settings (#1123) * lint code * Update CHANGELOG.md * Return the result of block.call This change allows blocks to return the result of `call` methods, thus allowing them to expose arbitrary data as needed. My particular use case is I am using Vue to mount components inside of the larger editorjs framework. One of the components that we are developing can be thought of as a nested agenda, where labels need to be in an order like: ``` I. Top level a. second level i. third level ``` My plan is to have an orchestrator query all blocks, filter those that need labels prepended, and then programmatically tell each block (with another `call` method) to set its depth to the desired level. At that point, Vue can reactively update any labels, etc. that are needed. I believe this change will allow for other such uses, and I imagine it should not break any existing code since it was returning `null` before. * Disable ESLint for call method return value Because we are returning the value of an arbitrary function, the return value can be anything (hence, the return type must be `any`). However, to reduce noise in ESLint output, we disable ESLint checking the line with the `any` type return. * Change any type to unknown and add to CHANGELOG.md Change any type of the call method to unknown but eslint shows error saying the unknown type is undefined, Also, add the chnage to CHANGELOG.md as an improvement with the link to the PR itself as no issue was assigned with it. * Add unknown to eslint globals * upd Co-authored-by: Peter Savchenko <specc.dev@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> Co-authored-by: tasuku-s <tasuku@freemind.co.jp> Co-authored-by: Athul Anil Kumar <athul7744@outlook.com> Co-authored-by: Taly <vitalik7tv@yandex.ru> Co-authored-by: flaming-cl <51183663+flaming-cl@users.noreply.github.com> Co-authored-by: Nguyen Ngoc Son <sonnn.se@gmail.com> Co-authored-by: Sisir Das K <37764463+sis-dk@users.noreply.github.com> Co-authored-by: Sisir <sisir@hellosivi.com> Co-authored-by: ranemihir <mihirrane171@gmail.com> * <fix> toolbar--opened overlap with certain text [issue 1196] (#1201) * [Improvements] ESLint action (#1099) * TSLint -> ESLint, GitHub Action * Update eslint.yml * Autofix * more autofix * fix * manually fix some issues * Update CHANGELOG.md * [Refactor] ESLint fixed (#1100) Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * [Feature] i18n (#1106) * i18n first steps * i18n internal, toolbox, api for tools * namespaced api * tn, t * tn in block tunes * join toolbox and inlineTools under toolNames * translations * make enum toolTypes * Update block.ts * Update src/components/core.ts Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * add more types * rm tn * export i18n types * upd bundle * fix tabulation * Add type-safe namespaces * upd * Improve example * Update toolbox.ts * improve examplle * upd * fix typo * Add comments for complex types Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> * Remove unused submodule * Fixed: icon centering in Firefox * Do not load styles twice (#1112) * Do not load styles twice * Add changelog * Fix issue link Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Show warning if Block to delete is not found (#1111) Resolves #1102 * Save Tools' order in the Toolbox (#1113) Resolves #1073 * fix $.isEmpty performance (#1096) * fix $.isEmpty performance * add changelog * upd bundle Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Add issue templates (#1114) * Update issue templates (#1121) * Update issue templates * Apply suggestions from code review Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * upd texts * Update feature_request.md * Update .github/ISSUE_TEMPLATE/discussion.md Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> * Allowing deleting block by block id (#1108) * Allowing deleting block by block id * Fixed no argument error * Making index value optional for delete operation * Added to changelog * Making index value optional for delete operation * Added parameter description * Update docs/CHANGELOG.md * Update types/api/blocks.d.ts * Update editor.js Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Allow navigate next from last non-initial block (#1110) Resolves #1103 * Create CODE_OF_CONDUCT.md (#1171) * Create CODE_OF_CONDUCT.md * Update changelog file * Update dependencies (#1122) * Update dependencies * upd codex.tooltip * Update editor.js.LICENSE.txt Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Feature/disable tab event config (#1164) * Highlight first block on autofocus (#1127) * Fix shortcut for external tools (#1141) * fix/shortcut-for-external-tools * Check inline tools property for shortcut Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * Hotfix/issue1133 selection shortcut removed on editor destroy (#1140) * Removed shortcut CMD+A on editor destroy #1133 * Removed patch version and made code cleaner #1133 * lint error fixes #1133 Co-authored-by: Sisir <sisir@hellosivi.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * [Feature] BlockAPI Interface (#1075) * Fix BlockManager.insert method (#1172) * Fix BlockManager.insert method * upd * Explicitly check for undefined * Update tools master branches (#1180) * Update master branches * Update image * Update CHANGELOG.md * Fix behaviour of inputs editing in block settings (#1123) * lint code * Update CHANGELOG.md * <fix> toolbar overlap with text * Add Fix in CHANGELOG.md * Update editor.js Co-authored-by: Peter Savchenko <specc.dev@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> Co-authored-by: tasuku-s <tasuku@freemind.co.jp> Co-authored-by: Athul Anil Kumar <athul7744@outlook.com> Co-authored-by: Taly <vitalik7tv@yandex.ru> Co-authored-by: Nguyen Ngoc Son <sonnn.se@gmail.com> Co-authored-by: Sisir Das K <37764463+sis-dk@users.noreply.github.com> Co-authored-by: Sisir <sisir@hellosivi.com> Co-authored-by: ranemihir <mihirrane171@gmail.com> * Rename initialBlock to defaultBlock (#1209) * [Improvements] ESLint action (#1099) * TSLint -> ESLint, GitHub Action * Update eslint.yml * Autofix * more autofix * fix * manually fix some issues * Update CHANGELOG.md * [Refactor] ESLint fixed (#1100) Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * [Feature] i18n (#1106) * i18n first steps * i18n internal, toolbox, api for tools * namespaced api * tn, t * tn in block tunes * join toolbox and inlineTools under toolNames * translations * make enum toolTypes * Update block.ts * Update src/components/core.ts Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * add more types * rm tn * export i18n types * upd bundle * fix tabulation * Add type-safe namespaces * upd * Improve example * Update toolbox.ts * improve examplle * upd * fix typo * Add comments for complex types Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> * Remove unused submodule * Fixed: icon centering in Firefox * Do not load styles twice (#1112) * Do not load styles twice * Add changelog * Fix issue link Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Show warning if Block to delete is not found (#1111) Resolves #1102 * Save Tools' order in the Toolbox (#1113) Resolves #1073 * fix $.isEmpty performance (#1096) * fix $.isEmpty performance * add changelog * upd bundle Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Add issue templates (#1114) * Update issue templates (#1121) * Update issue templates * Apply suggestions from code review Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * upd texts * Update feature_request.md * Update .github/ISSUE_TEMPLATE/discussion.md Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> * Allowing deleting block by block id (#1108) * Allowing deleting block by block id * Fixed no argument error * Making index value optional for delete operation * Added to changelog * Making index value optional for delete operation * Added parameter description * Update docs/CHANGELOG.md * Update types/api/blocks.d.ts * Update editor.js Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Allow navigate next from last non-initial block (#1110) Resolves #1103 * Create CODE_OF_CONDUCT.md (#1171) * Create CODE_OF_CONDUCT.md * Update changelog file * Update dependencies (#1122) * Update dependencies * upd codex.tooltip * Update editor.js.LICENSE.txt Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Feature/disable tab event config (#1164) * Highlight first block on autofocus (#1127) * Fix shortcut for external tools (#1141) * fix/shortcut-for-external-tools * Check inline tools property for shortcut Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * Hotfix/issue1133 selection shortcut removed on editor destroy (#1140) * Removed shortcut CMD+A on editor destroy #1133 * Removed patch version and made code cleaner #1133 * lint error fixes #1133 Co-authored-by: Sisir <sisir@hellosivi.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * [Feature] BlockAPI Interface (#1075) * Fix BlockManager.insert method (#1172) * Fix BlockManager.insert method * upd * Explicitly check for undefined * Update tools master branches (#1180) * Update master branches * Update image * Update CHANGELOG.md * Fix behaviour of inputs editing in block settings (#1123) * lint code * Update CHANGELOG.md * Rename initialBlock to defaultBlock Closes #993 The initialBlock property is renamed to defaultBlock. * Change keyword 'InitialBlock' to 'DefaultBlock' in all methods Fixes #993 All the methods using the keyword 'Initial' or 'initial' for initial block are replace with 'Default' or 'default'. For example, the Tools.isIntitial() method is changed to Tools.isDefault(). * Keep initialBlock and defaultBlock both. initialBlock property is still kept but it will deprecated in the next major release. * Change defaultBlock in example.html and rebuild. * Remove package-lock.json file. * Update docs/tools.md Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update example/example-dev.html Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update example/example.html Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update example/example-dev.html Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update example/example.html Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update src/components/utils.ts Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update src/components/utils.ts Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update types/configs/editor-config.d.ts Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update types/configs/editor-config.d.ts Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update src/components/utils.ts Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Fix needAddDefaultBlock to needToAddDefaultBlock * Add as an Improvement to CHANGELOG.md * Delete editor.js.map * fix log, rename some more places * Update example.html * Update blockManager.ts Co-authored-by: Peter Savchenko <specc.dev@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> Co-authored-by: tasuku-s <tasuku@freemind.co.jp> Co-authored-by: Athul Anil Kumar <athul7744@outlook.com> Co-authored-by: Taly <vitalik7tv@yandex.ru> Co-authored-by: flaming-cl <51183663+flaming-cl@users.noreply.github.com> Co-authored-by: Nguyen Ngoc Son <sonnn.se@gmail.com> Co-authored-by: Sisir Das K <37764463+sis-dk@users.noreply.github.com> Co-authored-by: Sisir <sisir@hellosivi.com> * Fix blocks.delete with undefined index (#1182) (#1218) * [Improvements] ESLint action (#1099) * TSLint -> ESLint, GitHub Action * Update eslint.yml * Autofix * more autofix * fix * manually fix some issues * Update CHANGELOG.md * [Refactor] ESLint fixed (#1100) Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * [Feature] i18n (#1106) * i18n first steps * i18n internal, toolbox, api for tools * namespaced api * tn, t * tn in block tunes * join toolbox and inlineTools under toolNames * translations * make enum toolTypes * Update block.ts * Update src/components/core.ts Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * add more types * rm tn * export i18n types * upd bundle * fix tabulation * Add type-safe namespaces * upd * Improve example * Update toolbox.ts * improve examplle * upd * fix typo * Add comments for complex types Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> * Remove unused submodule * Fixed: icon centering in Firefox * Do not load styles twice (#1112) * Do not load styles twice * Add changelog * Fix issue link Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Show warning if Block to delete is not found (#1111) Resolves #1102 * Save Tools' order in the Toolbox (#1113) Resolves #1073 * fix $.isEmpty performance (#1096) * fix $.isEmpty performance * add changelog * upd bundle Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Add issue templates (#1114) * Update issue templates (#1121) * Update issue templates * Apply suggestions from code review Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * upd texts * Update feature_request.md * Update .github/ISSUE_TEMPLATE/discussion.md Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> * Allowing deleting block by block id (#1108) * Allowing deleting block by block id * Fixed no argument error * Making index value optional for delete operation * Added to changelog * Making index value optional for delete operation * Added parameter description * Update docs/CHANGELOG.md * Update types/api/blocks.d.ts * Update editor.js Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Allow navigate next from last non-initial block (#1110) Resolves #1103 * Create CODE_OF_CONDUCT.md (#1171) * Create CODE_OF_CONDUCT.md * Update changelog file * Update dependencies (#1122) * Update dependencies * upd codex.tooltip * Update editor.js.LICENSE.txt Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Feature/disable tab event config (#1164) * Highlight first block on autofocus (#1127) * Fix shortcut for external tools (#1141) * fix/shortcut-for-external-tools * Check inline tools property for shortcut Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * Hotfix/issue1133 selection shortcut removed on editor destroy (#1140) * Removed shortcut CMD+A on editor destroy #1133 * Removed patch version and made code cleaner #1133 * lint error fixes #1133 Co-authored-by: Sisir <sisir@hellosivi.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * [Feature] BlockAPI Interface (#1075) * Fix BlockManager.insert method (#1172) * Fix BlockManager.insert method * upd * Explicitly check for undefined * Update tools master branches (#1180) * Update master branches * Update image * Update CHANGELOG.md * Fix behaviour of inputs editing in block settings (#1123) * lint code * Update CHANGELOG.md * fix: blocks.delete with undefined index (#1182) * Add as a Fix in CHANGELOG.md. * Update editor.js Co-authored-by: Peter Savchenko <specc.dev@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> Co-authored-by: tasuku-s <tasuku@freemind.co.jp> Co-authored-by: Athul Anil Kumar <athul7744@outlook.com> Co-authored-by: Taly <vitalik7tv@yandex.ru> Co-authored-by: flaming-cl <51183663+flaming-cl@users.noreply.github.com> Co-authored-by: Nguyen Ngoc Son <sonnn.se@gmail.com> Co-authored-by: Sisir Das K <37764463+sis-dk@users.noreply.github.com> Co-authored-by: Sisir <sisir@hellosivi.com> Co-authored-by: ranemihir <mihirrane171@gmail.com> * Fix spam clicking the tune button in Firefox (#1285) * Fix spam cliclikng tune in Firefox #1273 * build * Disabled unwanted I18n messages (#1282) * The unwanted I18n messages from console is disabled * Update docs/CHANGELOG.md Improved Change log Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Remove import statement import * as _ from '../utils'; removed * Apply suggestions from code review Co-authored-by: Peter Savchenko <specc.dev@gmail.com> Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Move SavedData and ValidatedData interfaces from internal types (#1251) * Move SavedData and ValidatedData interfaces from internal types * Add changelog * Upd submodules (#1287) * upd modules * Revert "upd modules" This reverts commit e2ff850. * upd modules * Tools destroy called when the editor is destroyed (#1264) * Tools destroy called when the editor is destroyed When the editor instance is destroyed, it calls the destroy of the blockManager. blockManager inturn calls destroy of all the blocks that it manages. * Fixed lint errors * Use Prmoise.all and add as a Fix in CHANGELOG.md * Fix commit * Fix CHANGELOG.md * Add call of Tools reset methods * Update tools * Update changelog * Update docs/CHANGELOG.md Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * upd all * bundle * upd tools Co-authored-by: ranemihir <mihirrane171@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Bump elliptic from 6.5.2 to 6.5.3 (#1257) Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.3. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](indutny/elliptic@v6.5.2...v6.5.3) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix for input and textarea bug (#1214) * [Improvements] ESLint action (#1099) * TSLint -> ESLint, GitHub Action * Update eslint.yml * Autofix * more autofix * fix * manually fix some issues * Update CHANGELOG.md * [Refactor] ESLint fixed (#1100) Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * [Feature] i18n (#1106) * i18n first steps * i18n internal, toolbox, api for tools * namespaced api * tn, t * tn in block tunes * join toolbox and inlineTools under toolNames * translations * make enum toolTypes * Update block.ts * Update src/components/core.ts Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * add more types * rm tn * export i18n types * upd bundle * fix tabulation * Add type-safe namespaces * upd * Improve example * Update toolbox.ts * improve examplle * upd * fix typo * Add comments for complex types Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> * Remove unused submodule * Fixed: icon centering in Firefox * Do not load styles twice (#1112) * Do not load styles twice * Add changelog * Fix issue link Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Show warning if Block to delete is not found (#1111) Resolves #1102 * Save Tools' order in the Toolbox (#1113) Resolves #1073 * fix $.isEmpty performance (#1096) * fix $.isEmpty performance * add changelog * upd bundle Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Add issue templates (#1114) * Update issue templates (#1121) * Update issue templates * Apply suggestions from code review Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * upd texts * Update feature_request.md * Update .github/ISSUE_TEMPLATE/discussion.md Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> * Allowing deleting block by block id (#1108) * Allowing deleting block by block id * Fixed no argument error * Making index value optional for delete operation * Added to changelog * Making index value optional for delete operation * Added parameter description * Update docs/CHANGELOG.md * Update types/api/blocks.d.ts * Update editor.js Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Allow navigate next from last non-initial block (#1110) Resolves #1103 * Create CODE_OF_CONDUCT.md (#1171) * Create CODE_OF_CONDUCT.md * Update changelog file * Update dependencies (#1122) * Update dependencies * upd codex.tooltip * Update editor.js.LICENSE.txt Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Feature/disable tab event config (#1164) * Highlight first block on autofocus (#1127) * Fix shortcut for external tools (#1141) * fix/shortcut-for-external-tools * Check inline tools property for shortcut Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * Hotfix/issue1133 selection shortcut removed on editor destroy (#1140) * Removed shortcut CMD+A on editor destroy #1133 * Removed patch version and made code cleaner #1133 * lint error fixes #1133 Co-authored-by: Sisir <sisir@hellosivi.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * [Feature] BlockAPI Interface (#1075) * Fix BlockManager.insert method (#1172) * Fix BlockManager.insert method * upd * Explicitly check for undefined * Update tools master branches (#1180) * Update master branches * Update image * Update CHANGELOG.md * Fix behaviour of inputs editing in block settings (#1123) * lint code * Update CHANGELOG.md * added handling of inputs and textareas in custom plugins * Upd tools * Add changelog * Upd submodules Co-authored-by: Peter Savchenko <specc.dev@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> Co-authored-by: tasuku-s <tasuku@freemind.co.jp> Co-authored-by: Athul Anil Kumar <athul7744@outlook.com> Co-authored-by: Taly <vitalik7tv@yandex.ru> Co-authored-by: flaming-cl <51183663+flaming-cl@users.noreply.github.com> Co-authored-by: Nguyen Ngoc Son <sonnn.se@gmail.com> Co-authored-by: Sisir Das K <37764463+sis-dk@users.noreply.github.com> Co-authored-by: Sisir <sisir@hellosivi.com> * Typos changes required to be fixed on website when using the import concept (#1260) * Typos changes. Required to fix them too on the official documentation website * Update README.md Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> * Use only import Co-authored-by: Peter Savchenko <specc.dev@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * Add hidden option to toolbox (#1220) * Add hidden option to toolbox * Use false in order to hide toolbox * Add comment what false means * Add issue #1221 to changelog Co-authored-by: t.hata <hata@impact-blue.co.jp> * Add RTL support (#1248) * [Improvements] ESLint action (#1099) * TSLint -> ESLint, GitHub Action * Update eslint.yml * Autofix * more autofix * fix * manually fix some issues * Update CHANGELOG.md * [Refactor] ESLint fixed (#1100) Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * [Feature] i18n (#1106) * i18n first steps * i18n internal, toolbox, api for tools * namespaced api * tn, t * tn in block tunes * join toolbox and inlineTools under toolNames * translations * make enum toolTypes * Update block.ts * Update src/components/core.ts Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * add more types * rm tn * export i18n types * upd bundle * fix tabulation * Add type-safe namespaces * upd * Improve example * Update toolbox.ts * improve examplle * upd * fix typo * Add comments for complex types Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> * Remove unused submodule * Fixed: icon centering in Firefox * Do not load styles twice (#1112) * Do not load styles twice * Add changelog * Fix issue link Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Show warning if Block to delete is not found (#1111) Resolves #1102 * Save Tools' order in the Toolbox (#1113) Resolves #1073 * fix $.isEmpty performance (#1096) * fix $.isEmpty performance * add changelog * upd bundle Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Add issue templates (#1114) * Update issue templates (#1121) * Update issue templates * Apply suggestions from code review Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> * upd texts * Update feature_request.md * Update .github/ISSUE_TEMPLATE/discussion.md Co-Authored-By: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> * Allowing deleting block by block id (#1108) * Allowing deleting block by block id * Fixed no argument error * Making index value optional for delete operation * Added to changelog * Making index value optional for delete operation * Added parameter description * Update docs/CHANGELOG.md * Update types/api/blocks.d.ts * Update editor.js Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Allow navigate next from last non-initial block (#1110) Resolves #1103 * Create CODE_OF_CONDUCT.md (#1171) * Create CODE_OF_CONDUCT.md * Update changelog file * Update dependencies (#1122) * Update dependencies * upd codex.tooltip * Update editor.js.LICENSE.txt Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Feature/disable tab event config (#1164) * Highlight first block on autofocus (#1127) * Fix shortcut for external tools (#1141) * fix/shortcut-for-external-tools * Check inline tools property for shortcut Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * Hotfix/issue1133 selection shortcut removed on editor destroy (#1140) * Removed shortcut CMD+A on editor destroy #1133 * Removed patch version and made code cleaner #1133 * lint error fixes #1133 Co-authored-by: Sisir <sisir@hellosivi.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> * [Feature] BlockAPI Interface (#1075) * Fix BlockManager.insert method (#1172) * Fix BlockManager.insert method * upd * Explicitly check for undefined * Update tools master branches (#1180) * Update master branches * Update image * Update CHANGELOG.md * Fix behaviour of inputs editing in block settings (#1123) * lint code * Update CHANGELOG.md * Added RTL support * Fixed code style * Fixed icons positioning in the toolbar in the RTL mode * Renamed example-dev-rtl.html to example-rtl.html * Moved 'direction' option to 'i18n' section * Fixed an issue with arrow navigation between blocks * Renamed rtl-fix to codex-editor--rtl * Fixed icons positioning in the narrow mode for RTL * Replaced 'isRtl' method with getter * Fixed bug with the editor initialization when 'i18n' option is not set * narrow mode improved * Changelog added Co-authored-by: Peter Savchenko <specc.dev@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> Co-authored-by: tasuku-s <tasuku@freemind.co.jp> Co-authored-by: Athul Anil Kumar <athul7744@outlook.com> Co-authored-by: Taly <vitalik7tv@yandex.ru> Co-authored-by: flaming-cl <51183663+flaming-cl@users.noreply.github.com> Co-authored-by: Nguyen Ngoc Son <sonnn.se@gmail.com> Co-authored-by: Sisir Das K <37764463+sis-dk@users.noreply.github.com> Co-authored-by: Sisir <sisir@hellosivi.com> Co-authored-by: ImangazalievM <mahach.miangazaliev@gmail.com> * Fix i18n default configuration (#1290) * Fix i18n default configuration * update bundle * Fixing Bug #1270 and resolve all yarn lint warning. (#1292) * Fixing Bug #1270 and resolve all yarn lint warning. * Update CHANGELOG.md * Change the Log type from Error to Warn * upd types Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Stop click propagation only if click cause action (#1252) * Fixing: #843 problem with onchange callback (#1310) * Fixing: #843 problem with onchange callback * Update docs/CHANGELOG.md Co-authored-by: Peter Savchenko <specc.dev@gmail.com> Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * The read-only mode (#1035) (ノ◕ヮ◕)ノ*:・゚✧ * Update submodules (#1335) * Add inlineToolbar property (#1293) * Add inlineToolbar property * Fix lint errors * Fix comments Co-authored-by: Murod Khaydarov <murod.haydarov@inbox.ru> * Sort Tools Working, Can be optimized further * Fix dataset error and use children * Fix lint errors * Add as improvement to CHNAGELOG.md * Fix comments Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Add comments and small fixes * Fix lint errors * Fix sortTools() and check inlineToolbar property * Fix lint errors * Fix conditions and property names * Separate block toggler from buttons list in ui * Fix lint errors * Fix condition names in allowedToShow() * Minor bug fixes * Fix linter warnings * Update docs/CHANGELOG.md Co-authored-by: Murod Khaydarov <murod.haydarov@inbox.ru> * create inlineToolbarSettings() method * Minor fixes * Clearify boolean casting * upd bundle * fix getInlineToolbarSettings * refactor & create new instance every showing * remove unused codee Co-authored-by: Murod Khaydarov <murod.haydarov@inbox.ru> Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Throw error only if read-only is enabled from the start (#1337) * Throw error only if read-only is enabled from the start * update modules * Fixed the 1302 bug and improve the tab key behaviour (#1342) * Fixed the 1302 bug and improve the tab key behaviour * yarn lint:fixed based improvements * Update docs/CHANGELOG.md Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update src/components/modules/ui.ts Co-authored-by: Peter Savchenko <specc.dev@gmail.com> Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Fix caret behaviour (#1343) * Fix caret behaviour * Fix current input update * Toggle readonly on start (#1344) * Toggle readonly on start * Do not render block twice on start * Bugfix/fix modification observer disable (#1340) * Enable modification observer when onChange callback throws an error * Build * Update src/components/modules/modificationsObserver.ts Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> * Update CHANGELOG Co-authored-by: t.hata <hata@impact-blue.co.jp> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> * Improve the changelog and read-only toggler (#1347) * Use activeElement if anchorNode is undefined (#1350) * FIx errors on enter press when several blocks selected (#1349) * FIx errors on enter press when several blocks selected * Fix for safari * Fix blocks copy in read-only (#1351) * Fixes for 2.19 (#1356) * Fixes * Update docs/CHANGELOG.md Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Fix RTL * Optimize tune down * Add explanation on focus events listeners Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Fixes due code review (#1365) * Fixes for release: (#1366) * Fixes for release * Apply suggestions from code review Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> * Update toolbox.ts Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: Qays <whosqays@gmail.com> Co-authored-by: Jacob Smith <jacob.wesley.smith@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com> Co-authored-by: Georgy Berezhnoy <gohabereg@gmail.com> Co-authored-by: tasuku-s <tasuku@freemind.co.jp> Co-authored-by: Athul Anil Kumar <athul7744@outlook.com> Co-authored-by: Taly <vitalik7tv@yandex.ru> Co-authored-by: flaming-cl <51183663+flaming-cl@users.noreply.github.com> Co-authored-by: Nguyen Ngoc Son <sonnn.se@gmail.com> Co-authored-by: Sisir Das K <37764463+sis-dk@users.noreply.github.com> Co-authored-by: Sisir <sisir@hellosivi.com> Co-authored-by: ranemihir <mihirrane171@gmail.com> Co-authored-by: Mihir Rane <66768874+ranemihir@users.noreply.github.com> Co-authored-by: Stephen Richard <stephen.richard44@gmail.com> Co-authored-by: Umang G. Patel <23169768+robonetphy@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Nikola Pavlovic <47178050+PavlovicWorkCo@users.noreply.github.com> Co-authored-by: Cyber_Ninja <49983428+Gicehajunior@users.noreply.github.com> Co-authored-by: Tomoyuki Hata <hato6502@gmail.com> Co-authored-by: t.hata <hata@impact-blue.co.jp> Co-authored-by: Mahach Imangazaliev <mahach.imangazaliev@mail.ru> Co-authored-by: ImangazalievM <mahach.miangazaliev@gmail.com> Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: Hugh Boylan <bluehugh2@gmail.com> Co-authored-by: Murod Khaydarov <murod.haydarov@inbox.ru>
1 parent 63eeec0 commit b754825

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+2388
-802
lines changed

.eslintrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"DataTransfer": true,
4141
"DOMRect": true,
4242
"ClientRect": true,
43-
"ArrayLike": true
43+
"ArrayLike": true,
44+
"unknown": true
4445
}
4546
}

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,6 @@
4646
[submodule "example/tools/warning"]
4747
path = example/tools/warning
4848
url = https://github.com/editor-js/warning
49+
[submodule "example/tools/underline"]
50+
path = example/tools/underline
51+
url = https://github.com/editor-js/underline

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
[![](https://flat.badgen.net/bundlephobia/min/@editorjs/editorjs?color=cyan)](https://www.npmjs.com/package/@editorjs/editorjs)
55
[![](https://flat.badgen.net/bundlephobia/minzip/@editorjs/editorjs?color=green)](https://www.npmjs.com/package/@editorjs/editorjs)
66
[![Backers on Open Collective](https://opencollective.com/editorjs/backers/badge.svg)](#backers)
7-
[![Sponsors on Open Collective](https://opencollective.com/editorjs/sponsors/badge.svg)](#sponsors)
7+
[![Sponsors on Open Collective](https://opencollective.com/editorjs/sponsors/badge.svg)](#sponsors)
88
[![](https://flat.badgen.net/npm/license/@editorjs/editorjs)](https://www.npmjs.com/package/@editorjs/editorjs)
99
[![Join the chat at https://gitter.im/codex-team/editor.js](https://badges.gitter.im/codex-team/editor.js.svg)](https://gitter.im/codex-team/editor.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
1010

@@ -17,24 +17,24 @@
1717
If you like Editor.js you can support project improvements and development of new features with a donation to our collective.
1818

1919
👉 [https://opencollective.com/editorjs](https://opencollective.com/editorjs)
20-
20+
2121
### Sponsors
2222

2323
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/editorjs#sponsor)]
2424

2525
<a href="https://opencollective.com/editorjs/sponsor/0/website" target="_blank"><img src="https://opencollective.com/editorjs/sponsor/0/avatar.svg"></a>
26-
26+
2727
### Backers
28-
28+
2929
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/editorjs#backer)]
30-
30+
3131
<a href="https://opencollective.com/editorjs#backers" target="_blank"><img src="https://opencollective.com/editorjs/backers.svg?width=890"></a>
32-
32+
3333
### Contributors
3434

3535
This project exists thanks to all the people who contribute. <img src="https://opencollective.com/editorjs/contributors.svg?width=890&button=false" />
3636

37-
We really welcome new contributors. If you want to make some code with us, please take a look at the [Good First Tasks](https://github.com/codex-team/editor.js/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+task%22). You can write to us on `team@codex.so` or via special [Telegram chat](https://t.me/editorjsdev), or any other way.
37+
We really welcome new contributors. If you want to make some code with us, please take a look at the [Good First Tasks](https://github.com/codex-team/editor.js/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+task%22). You can write to us on `team@codex.so` or via special [Telegram chat](https://t.me/editorjsdev), or any other way.
3838

3939
## Documentation
4040

@@ -142,7 +142,7 @@ npm i @editorjs/editorjs
142142
Include module in your application
143143

144144
```javascript
145-
const EditorJS = require('@editorjs/editorjs');
145+
import EditorJS from '@editorjs/editorjs';
146146
```
147147

148148
##### Option B. Use a CDN
@@ -240,11 +240,11 @@ Take a look at the [example.html](example/example.html) to view more detailed ex
240240

241241
## Credits and references
242242

243-
- We use [HTMLJanitor](https://github.com/guardian/html-janitor) module in our Sanitizer module.
243+
- We use [HTMLJanitor](https://github.com/guardian/html-janitor) module in our Sanitizer module.
244244

245245
## About team
246246

247-
We are CodeX and we build products for developers and makers.
247+
We are CodeX and we build products for developers and makers.
248248

249249
Follow us on Twitter: [twitter.com/codex_team](https://twitter.com/codex_team)
250250

dist/editor.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/CHANGELOG.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
11
# Changelog
22

3+
### 2.19
4+
5+
- `New` - Read-only mode 🥳 [#837](https://github.com/codex-team/editor.js/issues/837)
6+
- `New` - RTL mode added [#670](https://github.com/codex-team/editor.js/issues/670)
7+
- `New` - Allows users to provide common `inlineToolbar` property which will be used for all tools whose `inlineToolbar` property is set to `true`. It can be overridden by the tool's own `inlineToolbar` property. Also, inline tools will be ordered according to the order of the inline tools in array provided in the `inlineToolbar` property. [#1056](https://github.com/codex-team/editor.js/issues/1056)
8+
- `New` - Tool's `reset` static method added to the API to clean up any data added by Tool on initialization
9+
- `Improvements` - The `initialBlock` property of Editor config is deprecated. Use the `defaultBlock` instead. [#993](https://github.com/codex-team/editor.js/issues/993)
10+
- `Improvements` - BlockAPI `call()` method now returns the result of calling method, thus allowing it to expose arbitrary data as needed [#1205](https://github.com/codex-team/editor.js/pull/1205)
11+
- `Improvements` - Unuseful log about missed i18n section has been removed [#1269](https://github.com/codex-team/editor.js/issues/1269)
12+
- `Improvements` - Allowed to set `false` as `toolbox` config in order to hide Toolbox button [#1221](https://github.com/codex-team/editor.js/issues/1221)
13+
- `Fix` — Fix problem with types usage [#1183](https://github.com/codex-team/editor.js/issues/1183)
14+
- `Fix` - Fixed issue with Spam clicking the "Click to tune" button duplicates the icons on FireFox. [#1273](https://github.com/codex-team/editor.js/issues/1273)
15+
- `Fix` - Fixed issue with `editor.blocks.delete(index)` method which throws an error when Editor.js is not focused, even after providing a valid index. [#1182](https://github.com/codex-team/editor.js/issues/1182)
16+
- `Fix` - Fixed the issue of toolbar not disappearing on entering input in Chinese, Hindi and some other languages. [#1196](https://github.com/codex-team/editor.js/issues/1196)
17+
- `Fix` - Do not stop events propagation if not needed (essential for React synthetic events) [#1051](https://github.com/codex-team/editor.js/issues/1051) [#946](https://github.com/codex-team/editor.js/issues/946)
18+
- `Fix` - Tool's `destroy` method is not invoked when `editor.destroy()` is called. [#1047](https://github.com/codex-team/editor.js/issues/1047)
19+
- `Fix` - Fixed issue with enter key in inputs and textareas [#920](https://github.com/codex-team/editor.js/issues/920)
20+
- `Fix` - blocks.getBlockByIndex() API method now returns void for indexes out of range [#1270](https://github.com/codex-team/editor.js/issues/1270)
21+
- `Fix` - Fixed the `Tab` key behavior when the caret is not set inside contenteditable element, but the block is selected [#1302](https://github.com/codex-team/editor.js/issues/1302).
22+
- `Fix` - Fixed the `onChange` callback issue. This method didn't be called for native inputs before some contentedtable element changed [#843](https://github.com/codex-team/editor.js/issues/843)
23+
- `Fix` - Fixed the `onChange` callback issue. This method didn't be called after the callback throws an exception [#1339](https://github.com/codex-team/editor.js/issues/1339)
24+
- `Fix` - The internal `shortcut` getter of Tools classes will work now.
25+
- `Deprecated` — The Inline Tool `clear()` method is deprecated because the new instance of Inline Tools will be created on every showing of the Inline Toolbar
26+
327
### 2.18
428

529
- `New` *I18n API* — Ability to provide internalization for Editor.js core and tools. [#751](https://github.com/codex-team/editor.js/issues/751)
@@ -24,7 +48,6 @@
2448

2549
> *Breaking changes* `blocks.getBlockByIndex` method now returns BlockAPI object. To access old value, use BlockAPI.holder property
2650
27-
2851
### 2.17
2952

3053
- `Improvements` - Editor's [onchange callback](https://editorjs.io/configuration#editor-modifications-callback) now accepts an API as a parameter

docs/installation.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ Install the package via NPM or Yarn
2424
npm i @editorjs/editorjs
2525
```
2626

27-
Include module at your application
27+
Include module at your application
2828

2929
```javascript
30-
const EditorJS = require('@editorjs/editorjs');
30+
import EditorJS from '@editorjs/editorjs';
3131
```
3232

3333
### Use from CDN
@@ -68,7 +68,7 @@ Check [Editor.js's community](https://github.com/editor-js/) to see Tools exampl
6868

6969
## Create Editor instance
7070

71-
Create an instance of Editor.js and pass [Configuration Object](../src/types-internal/editor-config.ts).
71+
Create an instance of Editor.js and pass [Configuration Object](../src/types-internal/editor-config.ts).
7272
At least the `holderId` option is required.
7373

7474
```html
@@ -119,7 +119,7 @@ Editor.js needs a bit of time to initialize. It is an asynchronous action so it
119119
120120
If you need to know when the editor instance is ready you can use one of the following ways:
121121
122-
##### Pass `onReady` property to the configuration object.
122+
##### Pass `onReady` property to the configuration object.
123123
124124
It must be a function:
125125
@@ -189,7 +189,7 @@ var editor = new EditorJS({
189189
* onReady callback
190190
*/
191191
onReady: () => {console.log('Editor.js is ready to work!')},
192-
192+
193193
/**
194194
* onChange callback
195195
*/

docs/tools.md

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ var editor = new EditorJS({
7878
},
7979
header: Header
8080
},
81-
initialBlock : 'text',
81+
defaultBlock : 'text',
8282
});
8383
```
8484

@@ -89,6 +89,36 @@ There are few options available by Editor.js.
8989
| `inlineToolbar` | _Boolean/Array_ | `false` | Pass `true` to enable the Inline Toolbar with all Tools, or pass an array with specified Tools list |
9090
| `config` | _Object_ | `null` | User's configuration for Plugin.
9191

92+
## Tool prepare and reset
93+
94+
If you need to prepare some data for Tool (eg. load external script, create HTML nodes in the document, etc) you can use static prepare method.
95+
96+
It accepts tools config passed on Editor's initialization as an argument:
97+
98+
```javascript
99+
class Tool {
100+
static prepare(config) {
101+
loadScript();
102+
insertNodes();
103+
...
104+
}
105+
}
106+
```
107+
108+
On Editor destroy you can use an opposite method `reset` to clean up all prepared data:
109+
110+
```javascript
111+
class Tool {
112+
static reset() {
113+
cleanUpScripts();
114+
deleteNodes();
115+
...
116+
}
117+
}
118+
```
119+
120+
Both methods might be async.
121+
92122
## Paste handling
93123

94124
Editor.js handles paste on Blocks and provides API for Tools to process the pasted data.
@@ -118,7 +148,7 @@ To handle pasted HTML elements object returned from `pasteConfig` getter should
118148
| -- | -- | -- |
119149
| `tags` | `String[]` | _Optional_. Should contain all tag names you want to be extracted from pasted data and processed by your `onPaste` method |
120150

121-
For correct work you MUST provide `onPaste` handler at least for `initialBlock` Tool.
151+
For correct work you MUST provide `onPaste` handler at least for `defaultBlock` Tool.
122152

123153
> Example
124154
@@ -144,7 +174,7 @@ Your Tool can analyze text by RegExp patterns to substitute pasted string with d
144174

145175
**Note** Editor will check pattern's full match, so don't forget to handle all available chars in there.
146176

147-
Pattern will be processed only if paste was on `initialBlock` Tool and pasted string length is less than 450 characters.
177+
Pattern will be processed only if paste was on `defaultBlock` Tool and pasted string length is less than 450 characters.
148178

149179
> Example
150180

example/assets/demo.css

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,32 @@ body {
120120
text-decoration: none;
121121
}
122122

123+
.ce-example__statusbar {
124+
position: fixed;
125+
bottom: 10px;
126+
right: 10px;
127+
background: #fff;
128+
border-radius: 8px;
129+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
130+
font-size: 12px;
131+
padding: 8px 15px;
132+
z-index: 1;
133+
}
134+
135+
.ce-example__statusbar-button {
136+
display: inline-flex;
137+
margin-left: 10px;
138+
background: #4A9DF8;
139+
padding: 6px 12px;
140+
box-shadow: 0 7px 8px -4px rgba(137, 207, 255, 0.77);
141+
transition: all 150ms ease;
142+
cursor: pointer;
143+
border-radius: 31px;
144+
color: #fff;
145+
font-family: 'PT Mono', Menlo, Monaco, Consolas, Courier New, monospace;
146+
text-align: center;
147+
}
148+
123149
@media all and (max-width: 730px){
124150
.ce-example__header,
125151
.ce-example__content{

example/example-dev.html

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,15 @@
3434
<div class="ce-example__button" id="saveButton">
3535
editor.save()
3636
</div>
37+
<div class="ce-example__statusbar">
38+
Readonly:
39+
<b id="readonly-state">
40+
Off
41+
</b>
42+
<div class="ce-example__statusbar-button" id="toggleReadOnlyButton">
43+
toggle
44+
</div>
45+
</div>
3746
</div>
3847
<div class="ce-example__output">
3948
<pre class="ce-example__output-content" id="output"></pre>
@@ -74,21 +83,29 @@
7483

7584
<!-- Initialization -->
7685
<script>
77-
/**
78-
* Saving button
79-
*/
80-
const saveButton = document.getElementById('saveButton');
81-
8286
/**
8387
* To initialize the Editor, create a new instance with configuration object
8488
* @see docs/installation.md for mode details
8589
*/
8690
var editor = new EditorJS({
91+
/**
92+
* Enable/Disable the read only mode
93+
*/
94+
readOnly: false,
95+
8796
/**
8897
* Wrapper of Editor
8998
*/
9099
holder: 'editorjs',
91100

101+
/**
102+
* Common Inline Toolbar settings
103+
* - if true (or not specified), the order from 'tool' property will be used
104+
* - if an array of tool names, this order will be used
105+
*/
106+
// inlineToolbar: ['link', 'marker', 'bold', 'italic'],
107+
// inlineToolbar: true,
108+
92109
/**
93110
* Tools list
94111
*/
@@ -98,7 +115,7 @@
98115
*/
99116
header: {
100117
class: Header,
101-
inlineToolbar: ['link'],
118+
inlineToolbar: ['marker', 'link'],
102119
config: {
103120
placeholder: 'Header'
104121
},
@@ -167,7 +184,7 @@
167184
/**
168185
* This Tool will be used as default
169186
*/
170-
// initialBlock: 'paragraph',
187+
// defaultBlock: 'paragraph',
171188

172189
/**
173190
* Initial Editor data
@@ -279,14 +296,37 @@
279296
},
280297
});
281298

299+
/**
300+
* Saving button
301+
*/
302+
const saveButton = document.getElementById('saveButton');
303+
304+
/**
305+
* Toggle read-only button
306+
*/
307+
const toggleReadOnlyButton = document.getElementById('toggleReadOnlyButton');
308+
const readOnlyIndicator = document.getElementById('readonly-state');
282309

283310
/**
284311
* Saving example
285312
*/
286313
saveButton.addEventListener('click', function () {
287-
editor.save().then((savedData) => {
288-
cPreview.show(savedData, document.getElementById("output"));
289-
});
314+
editor.save()
315+
.then((savedData) => {
316+
cPreview.show(savedData, document.getElementById("output"));
317+
})
318+
.catch((error) => {
319+
console.error('Saving error', error);
320+
});
321+
});
322+
323+
/**
324+
* Toggle read-only example
325+
*/
326+
toggleReadOnlyButton.addEventListener('click', async () => {
327+
const readOnlyState = await editor.readOnly.toggle();
328+
329+
readOnlyIndicator.textContent = readOnlyState ? 'On' : 'Off';
290330
});
291331
</script>
292332
</body>

0 commit comments

Comments
 (0)