editor.js/src/components/modules/caret.ts

557 lines
17 KiB
TypeScript
Raw Normal View History

Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
/**
* @class Caret
* @classdesc Contains methods for working Caret
*
* Uses Range methods to manipulate with caret
*
* @module Caret
*
* @version 2.0.0
*/
import Selection from '../selection';
import Module from '../__module';
import Block from '../block';
import $ from '../dom';
Release 2.16 (#966) * 2.16.0 * [Refactor] Separate internal and external settings (#845) * Enable flipping tools via standalone class (#830) * Enable flipping tools via standalone class * use flipper to refactor (#842) * use flipper to refactor * save changes * update * fix flipper on inline toolbar * ready for testing * requested changes * update doc * updates * destroy flippers * some requested changes * update * update * ready * update * last changes * update docs * Hghl active button of CT, simplify activate/deactivate * separate dom iterator * unhardcode directions * fixed a link in readme.md (#856) * Fix Block selection via CMD+A (#829) * Fix Block selection via CMD+A * Delete editor.js.map * update * update * Update CHANGELOG.md * Improve style of selected blocks (#858) * Cross-block-selection style improved * Update CHANGELOG.md * Fix case when property 'observer' in modificationObserver is not defined (#866) * Bump lodash.template from 4.4.0 to 4.5.0 (#885) Bumps [lodash.template](https://github.com/lodash/lodash) from 4.4.0 to 4.5.0. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.4.0...4.5.0) Signed-off-by: dependabot[bot] <support@github.com> * Bump eslint-utils from 1.3.1 to 1.4.2 (#886) Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.3.1 to 1.4.2. - [Release notes](https://github.com/mysticatea/eslint-utils/releases) - [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.3.1...v1.4.2) Signed-off-by: dependabot[bot] <support@github.com> * Bump mixin-deep from 1.3.1 to 1.3.2 (#887) Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/jonschlinkert/mixin-deep/releases) - [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2) Signed-off-by: dependabot[bot] <support@github.com> * update bundle and readme * Update README.md * upd codeowners, fix funding * Minor Docs Fix according to main Readme (#916) * Inline Toolbar now contains Conversion Toolbar (#932) * Block lifecycle hooks (#906) * [Fix] Arrow selection (#964) * Fix arrow selection * Add docs * [issue-926]: fix dom iterator leafing when items are empty (#958) * [issue-926]: fix dom iterator leafing when items are empty * update Changelog * Issue 869 (#963) * Fix issue 943 (#965) * [Draft] Feature/tooltip enhancements (#907) * initial * update * make module standalone * use tooltips as external module * update * build via prod mode * add tooltips as external module * add declaration file and options param * add api tooltip * update * removed submodule * removed due to the incorrect setip * setup tooltips again * wip * update tooltip module * toolbox, inline toolbar * Tooltips in block tunes not uses shorthand * shorthand in a plus and block settings * fix doc * Update tools-inline.md * Delete tooltip.css * Update CHANGELOG.md * Update codex.tooltips * Update api.md * [issue-779]: Grammarly conflicts (#956) * grammarly conflicts * update * upd bundle * Submodule Header now on master * Submodule Marker now on master * Submodule Paragraph now on master * Submodule InlineCode now on master * Submodule Simple Image now on master * [issue-868]: Deleting multiple blocks triggers back button in Firefox (#967) * Deleting multiple blocks triggers back button in Firefox @evgenusov * Update editor.js * Update CHANGELOG.md * pass options on removeEventListener (#904) * pass options on removeEventListener by removeAll * rebuild * Merge branch 'release/2.16' into pr/904 * Update CHANGELOG.md * Update inline.ts * [Fix] Selection rangecount (#968) * Fix #952 (#969) * Update codex.tooltips * Selection bugfix (#970) * Selection bugfix * fix cross block selection * close inline toolbar when blocks selected via shift * remove inline toolbar closing on cross block selection mouse up due to the bug (#972) * [Feature] Log levels (#971) * Decrease margins (#973) * Decrease margins * Update editor.licenses.txt * Update src/components/domIterator.ts Co-Authored-By: Murod Khaydarov <murod.haydarov@gmail.com> * [Fix] Fix delete blocks api method (#974) * Update docs/usage.md Co-Authored-By: Murod Khaydarov <murod.haydarov@gmail.com> * rm unused * Update yarn.lock file * upd bundle, changelog
2019-11-30 21:42:39 +01:00
import * as _ from '../utils';
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
/**
* @typedef {Caret} Caret
*/
export default class Caret extends Module {
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
/**
* Allowed caret positions in input
*
* @static
* @returns {{START: string, END: string, DEFAULT: string}}
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
*/
2019-01-12 01:44:43 +01:00
public get positions(): {START: string, END: string, DEFAULT: string} {
return {
START: 'start',
END: 'end',
DEFAULT: 'default',
};
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
}
/**
* Elements styles that can be useful for Caret Module
*/
private static get CSS(): {shadowCaret: string} {
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
return {
shadowCaret: 'cdx-shadow-caret',
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
};
}
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
/**
* Get's deepest first node and checks if offset is zero
* @return {boolean}
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
*/
public get isAtStart(): boolean {
2019-01-12 02:57:37 +01:00
const selection = Selection.get();
const firstNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput);
2019-07-01 13:10:30 +02:00
let focusNode = selection.focusNode;
/** In case lastNode is native input */
if ($.isNativeInput(firstNode)) {
return (firstNode as HTMLInputElement).selectionEnd === 0;
}
2019-07-01 13:10:30 +02:00
/** Case when selection have been cleared programmatically, for example after CBS */
if (!selection.anchorNode) {
return false;
}
/**
* Workaround case when caret in the text like " |Hello!"
* selection.anchorOffset is 1, but real caret visible position is 0
* @type {number}
*/
2019-07-01 13:10:30 +02:00
let firstLetterPosition = focusNode.textContent.search(/\S/);
if (firstLetterPosition === -1) { // empty text
firstLetterPosition = 0;
}
2019-01-12 02:57:37 +01:00
/**
* If caret was set by external code, it might be set to text node wrapper.
* <div>|hello</div> <---- Selection references to <div> instead of text node
*
* In this case, anchor node has ELEMENT_NODE node type.
* Anchor offset shows amount of children between start of the element and caret position.
*
2019-07-01 13:10:30 +02:00
* So we use child with focusOffset index as new anchorNode.
2019-01-12 02:57:37 +01:00
*/
2019-07-01 13:10:30 +02:00
let focusOffset = selection.focusOffset;
if (focusNode.nodeType !== Node.TEXT_NODE && focusNode.childNodes.length) {
if (focusNode.childNodes[focusOffset]) {
focusNode = focusNode.childNodes[focusOffset];
focusOffset = 0;
2019-01-12 02:57:37 +01:00
} else {
2019-07-01 13:10:30 +02:00
focusNode = focusNode.childNodes[focusOffset - 1];
focusOffset = focusNode.textContent.length;
2019-01-12 02:57:37 +01:00
}
}
/**
* In case of
* <div contenteditable>
* <p><b></b></p> <-- first (and deepest) node is <b></b>
2019-07-01 13:10:30 +02:00
* |adaddad <-- focus node
* </div>
*/
2019-01-12 02:57:37 +01:00
if ($.isLineBreakTag(firstNode as HTMLElement) || $.isEmpty(firstNode)) {
2019-07-01 13:10:30 +02:00
const leftSiblings = this.getHigherLevelSiblings(focusNode as HTMLElement, 'left');
const nothingAtLeft = leftSiblings.every((node) => {
/**
* Workaround case when block starts with several <br>'s (created by SHIFT+ENTER)
* @see https://github.com/codex-team/editor.js/issues/726
* We need to allow to delete such linebreaks, so in this case caret IS NOT AT START
*/
const regularLineBreak = $.isLineBreakTag(node);
/**
* Workaround SHIFT+ENTER in Safari, that creates <div><br></div> instead of <br>
*/
const lineBreakInSafari = node.children.length === 1 && $.isLineBreakTag(node.children[0] as HTMLElement);
const isLineBreak = regularLineBreak || lineBreakInSafari;
return $.isEmpty(node) && !isLineBreak;
});
2019-07-01 13:10:30 +02:00
if (nothingAtLeft && focusOffset === firstLetterPosition) {
return true;
}
}
/**
* We use <= comparison for case:
* "| Hello" <--- selection.anchorOffset is 0, but firstLetterPosition is 1
*/
2019-07-01 13:10:30 +02:00
return firstNode === null || focusNode === firstNode && focusOffset <= firstLetterPosition;
}
/**
* Get's deepest last node and checks if offset is last node text length
* @return {boolean}
*/
public get isAtEnd(): boolean {
2019-01-12 02:57:37 +01:00
const selection = Selection.get();
2019-07-01 13:10:30 +02:00
let focusNode = selection.focusNode;
2019-01-12 02:57:37 +01:00
const lastNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput, true);
/** In case lastNode is native input */
if ($.isNativeInput(lastNode)) {
return (lastNode as HTMLInputElement).selectionEnd === (lastNode as HTMLInputElement).value.length;
}
2019-07-01 13:10:30 +02:00
/** Case when selection have been cleared programmatically, for example after CBS */
if (!selection.focusNode) {
return false;
}
2019-01-12 02:57:37 +01:00
/**
* If caret was set by external code, it might be set to text node wrapper.
* <div>hello|</div> <---- Selection references to <div> instead of text node
*
* In this case, anchor node has ELEMENT_NODE node type.
* Anchor offset shows amount of children between start of the element and caret position.
*
2019-07-01 13:10:30 +02:00
* So we use child with anchofocusOffset - 1 as new focusNode.
2019-01-12 02:57:37 +01:00
*/
2019-07-01 13:10:30 +02:00
let focusOffset = selection.focusOffset;
if (focusNode.nodeType !== Node.TEXT_NODE && focusNode.childNodes.length) {
if (focusNode.childNodes[focusOffset - 1]) {
focusNode = focusNode.childNodes[focusOffset - 1];
focusOffset = focusNode.textContent.length;
2019-01-12 02:57:37 +01:00
} else {
2019-07-01 13:10:30 +02:00
focusNode = focusNode.childNodes[0];
focusOffset = 0;
2019-01-12 02:57:37 +01:00
}
}
/**
* In case of
* <div contenteditable>
* adaddad| <-- anchor node
* <p><b></b></p> <-- first (and deepest) node is <b></b>
* </div>
*/
2019-01-12 02:57:37 +01:00
if ($.isLineBreakTag(lastNode as HTMLElement) || $.isEmpty(lastNode)) {
2019-07-01 13:10:30 +02:00
const rightSiblings = this.getHigherLevelSiblings(focusNode as HTMLElement, 'right');
2019-01-12 02:57:37 +01:00
const nothingAtRight = rightSiblings.every((node, i) => {
2019-07-01 13:10:30 +02:00
/**
* If last right sibling is BR isEmpty returns false, but there actually nothing at right
*/
const isLastBR = i === rightSiblings.length - 1 && $.isLineBreakTag(node as HTMLElement);
return (isLastBR) || $.isEmpty(node) && !$.isLineBreakTag(node);
2019-01-12 02:57:37 +01:00
});
2019-07-01 13:10:30 +02:00
if (nothingAtRight && focusOffset === focusNode.textContent.length) {
return true;
}
}
/**
* Workaround case:
* hello | <--- anchorOffset will be 5, but textContent.length will be 6.
* Why not regular .trim():
* in case of ' hello |' trim() will also remove space at the beginning, so length will be lower than anchorOffset
*/
const rightTrimmedText = lastNode.textContent.replace(/\s+$/, '');
/**
* We use >= comparison for case:
* "Hello |" <--- selection.anchorOffset is 7, but rightTrimmedText is 6
*/
2019-07-01 13:10:30 +02:00
return focusNode === lastNode && focusOffset >= rightTrimmedText.length;
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
}
/**
* Method gets Block instance and puts caret to the text node with offset
* There two ways that method applies caret position:
* - first found text node: sets at the beginning, but you can pass an offset
* - last found text node: sets at the end of the node. Also, you can customize the behaviour
*
* @param {Block} block - Block class
* @param {String} position - position where to set caret.
* If default - leave default behaviour and apply offset if it's passed
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
* @param {Number} offset - caret offset regarding to the text node
*/
2019-01-12 01:44:43 +01:00
public setToBlock(block: Block, position: string = this.positions.DEFAULT, offset: number = 0): void {
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
const {BlockManager} = this.Editor;
let element;
switch (position) {
2019-01-12 01:44:43 +01:00
case this.positions.START:
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
element = block.firstInput;
break;
2019-01-12 01:44:43 +01:00
case this.positions.END:
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
element = block.lastInput;
break;
default:
element = block.currentInput;
}
if (!element) {
return;
}
2019-01-12 01:44:43 +01:00
const nodeToSet = $.getDeepestNode(element, position === this.positions.END);
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
const contentLength = $.getContentLength(nodeToSet);
switch (true) {
2019-01-12 01:44:43 +01:00
case position === this.positions.START:
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
offset = 0;
break;
2019-01-12 01:44:43 +01:00
case position === this.positions.END:
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
case offset > contentLength:
offset = contentLength;
break;
}
/**
* @todo try to fix via Promises or use querySelectorAll to not to use timeout
*/
_.delay( () => {
this.set(nodeToSet as HTMLElement, offset);
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
}, 20)();
BlockManager.setCurrentBlockByChildNode(block.holder);
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
BlockManager.currentBlock.currentInput = element;
}
/**
* Set caret to the current input of current Block.
*
* @param {HTMLElement} input - input where caret should be set
* @param {String} position - position of the caret.
* If default - leave default behaviour and apply offset if it's passed
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
* @param {number} offset - caret offset regarding to the text node
*/
2019-01-12 01:44:43 +01:00
public setToInput(input: HTMLElement, position: string = this.positions.DEFAULT, offset: number = 0): void {
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
const {currentBlock} = this.Editor.BlockManager;
const nodeToSet = $.getDeepestNode(input);
switch (position) {
2019-01-12 01:44:43 +01:00
case this.positions.START:
this.set(nodeToSet as HTMLElement, 0);
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
break;
2019-01-12 01:44:43 +01:00
case this.positions.END:
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
const contentLength = $.getContentLength(nodeToSet);
this.set(nodeToSet as HTMLElement, contentLength);
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
break;
default:
if (offset) {
this.set(nodeToSet as HTMLElement, offset);
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
}
}
currentBlock.currentInput = input;
}
/**
* Creates Document Range and sets caret to the element with offset
* @param {HTMLElement} element - target node.
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
* @param {Number} offset - offset
*/
public set(element: HTMLElement, offset: number = 0): void {
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
const range = document.createRange(),
selection = Selection.get();
/** if found deepest node is native input */
if ($.isNativeInput(element)) {
if (!$.canSetCaret(element)) {
return;
}
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
element.focus();
(element as HTMLInputElement).selectionStart = (element as HTMLInputElement).selectionEnd = offset;
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
return;
}
range.setStart(element, offset);
range.setEnd(element, offset);
selection.removeAllRanges();
selection.addRange(range);
/** If new cursor position is not visible, scroll to it */
2019-01-12 02:57:37 +01:00
const {top, bottom} = element.nodeType === Node.ELEMENT_NODE
? element.getBoundingClientRect()
: range.getBoundingClientRect();
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
const {innerHeight} = window;
if (top < 0) { window.scrollBy(0, top); }
if (bottom > innerHeight) { window.scrollBy(0, bottom - innerHeight); }
}
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
/**
* Set Caret to the last Block
* If last block is not empty, append another empty block
*/
public setToTheLastBlock(): void {
const lastBlock = this.Editor.BlockManager.lastBlock;
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
if (!lastBlock) {
return;
}
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
/**
* If last block is empty and it is an initialBlock, set to that.
* Otherwise, append new empty block and set to that
*/
2018-12-25 16:07:05 +01:00
if (this.Editor.Tools.isInitial(lastBlock.tool) && lastBlock.isEmpty) {
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
this.setToBlock(lastBlock);
} else {
const newBlock = this.Editor.BlockManager.insertAtEnd();
this.setToBlock(newBlock);
}
}
/**
* Extract content fragment of current Block from Caret position to the end of the Block
*/
public extractFragmentFromCaretPosition(): void|DocumentFragment {
const selection = Selection.get();
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
if (selection.rangeCount) {
const selectRange = selection.getRangeAt(0);
const currentBlockInput = this.Editor.BlockManager.currentBlock.currentInput;
selectRange.deleteContents();
if (currentBlockInput) {
const range = selectRange.cloneRange();
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
range.selectNodeContents(currentBlockInput);
range.setStart(selectRange.endContainer, selectRange.endOffset);
return range.extractContents();
}
}
}
/**
* Set's caret to the next Block or Tool`s input
* Before moving caret, we should check if caret position is at the end of Plugins node
* Using {@link Dom#getDeepestNode} to get a last node and match with current selection
*
* @param {Boolean} force - force navigation even if caret is not at the end
*
* @return {Boolean}
*/
public navigateNext(force: boolean = false): boolean {
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
const {currentBlock, nextContentfulBlock} = this.Editor.BlockManager;
const {nextInput} = currentBlock;
if (!nextContentfulBlock && !nextInput) {
return false;
}
2019-01-12 02:57:37 +01:00
if (force || this.isAtEnd) {
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
/** If next Tool`s input exists, focus on it. Otherwise set caret to the next Block */
if (!nextInput) {
2019-01-12 01:44:43 +01:00
this.setToBlock(nextContentfulBlock, this.positions.START);
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
} else {
2019-01-12 01:44:43 +01:00
this.setToInput(nextInput, this.positions.START);
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
}
return true;
}
return false;
}
/**
* Set's caret to the previous Tool`s input or Block
* Before moving caret, we should check if caret position is start of the Plugins node
* Using {@link Dom#getDeepestNode} to get a last node and match with current selection
*
* @param {Boolean} force - force navigation even if caret is not at the start
*
* @return {Boolean}
*/
public navigatePrevious(force: boolean = false): boolean {
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
const {currentBlock, previousContentfulBlock} = this.Editor.BlockManager;
if (!currentBlock) {
return false;
}
const {previousInput} = currentBlock;
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
if (!previousContentfulBlock && !previousInput) {
return false;
}
2019-01-12 02:57:37 +01:00
if (force || this.isAtStart) {
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
/** If previous Tool`s input exists, focus on it. Otherwise set caret to the previous Block */
if (!previousInput) {
2019-01-12 01:44:43 +01:00
this.setToBlock( previousContentfulBlock, this.positions.END );
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
} else {
2019-01-12 01:44:43 +01:00
this.setToInput(previousInput, this.positions.END);
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
}
return true;
}
return false;
}
/**
* Inserts shadow element after passed element where caret can be placed
* @param {Node} element
*/
public createShadow(element): void {
const shadowCaret = document.createElement('span');
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
shadowCaret.classList.add(Caret.CSS.shadowCaret);
element.insertAdjacentElement('beforeEnd', shadowCaret);
}
/**
* Restores caret position
* @param {HTMLElement} element
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
*/
public restoreCaret(element: HTMLElement): void {
const shadowCaret = element.querySelector(`.${Caret.CSS.shadowCaret}`);
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
if (!shadowCaret) {
return;
}
/**
* After we set the caret to the required place
* we need to clear shadow caret
*
* - make new range
* - select shadowed span
* - use extractContent to remove it from DOM
*/
const sel = new Selection();
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
sel.expandToTag(shadowCaret as HTMLElement);
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
setTimeout(() => {
const newRange = document.createRange();
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
newRange.selectNode(shadowCaret);
newRange.extractContents();
}, 50);
}
2018-12-27 14:01:00 +01:00
/**
* Inserts passed content at caret position
*
* @param {string} content - content to insert
*/
public insertContentAtCaretPosition(content: string): void {
const fragment = document.createDocumentFragment();
const wrapper = document.createElement('div');
const selection = Selection.get();
const range = Selection.range;
wrapper.innerHTML = content;
Array.from(wrapper.childNodes).forEach((child: Node) => fragment.appendChild(child));
const lastChild = fragment.lastChild;
range.deleteContents();
range.insertNode(fragment);
/** Cross-browser caret insertion */
const newRange = document.createRange();
newRange.setStart(lastChild, lastChild.textContent.length);
selection.removeAllRanges();
selection.addRange(newRange);
}
/**
* Get all first-level (first child of [contenteditabel]) siblings from passed node
* Then you can check it for emptiness
*
* @example
* <div contenteditable>
* <p></p> |
* <p></p> | left first-level siblings
* <p></p> |
* <blockquote><a><b>adaddad</b><a><blockquote> <-- passed node for example <b>
* <p></p> |
* <p></p> | right first-level siblings
* <p></p> |
* </div>
*
* @return {Element[]}
*/
private getHigherLevelSiblings(from: HTMLElement, direction?: string): HTMLElement[] {
let current = from;
const siblings = [];
/**
* Find passed node's firs-level parent (in example - blockquote)
*/
while (current.parentNode && (current.parentNode as HTMLElement).contentEditable !== 'true') {
current = current.parentNode as HTMLElement;
}
const sibling = direction === 'left' ? 'previousSibling' : 'nextSibling';
/**
* Find all left/right siblings
*/
while (current[sibling]) {
current = current[sibling] as HTMLElement;
siblings.push(current);
}
return siblings;
}
Release 2.0-beta (#387) * update * Toolbar, Toolbox, UI (#239) * Toolbox making * Add Toolbox buttons click handler * Toolbar, Toolbox, UI * Updates * update css prefix * trying to write docs * append callback behaviour * update request * update * empty initial data * initial saver * some requested changes * update request * requested changes * upgrade saver * new improvements * update * Caret module: initial * improvements * moving caret initial * small improvements * last changes, added docs * requested changes * implement getters instead of functions in block cursors * last requested changes * caret module docs and last improvements * update docs * upgrade request * update docs * upd * todo on delays * Sanitizer docs * split func upd * split blocks update * up docs * Listeners Module: initial * listener module updates * split is ready * update * start to make merge * upd * split general upd split is ready * ups * keyboard module update * BlockManager removed keyboard handler * commit before merging rewriting2.0 * general upd split * Documentation upd * document + listener upd * upd doc * documentation upd * doc upd * listener upd * update algh extract fragm * upd extractRangeContent * upd dom.js * keyboard upd (shift + enter & enableLineBreaks) * upd enter pressed * keyboard.js upd * enter pressed upd * documenation added * documentation upd * Toolbar: settings zone added. (#252) * Toolbar: settings zone added. * update some comments * Making a Toolbar * delete block * dom improvements and merging blocks * merge and split improvements * fix merging * do not remove block if block contains media * optimize code * caret behaviour improved * up * up * merging blocks. Now plugins handles this cases * mergeable getter * save * up * dom getdeepestnode improvements * improve getDeepest node method one more time * upd * Deal with it * improve isAtStart * improve docs * use smart isAtStart and isAtEnt method in navigateNext/navigatePrevious * improve docs * fix bug in $.isEmpty, improve keydown * fix isAtEnd * rollback setCaret code duplication * improve backspace * Debug tree walker * fix tree walker * small caret fix * queue ordering * update bundle * improve first letter checkup * doc upd * update current block index setter * TypeScript support, Webpack 4, Inline Toolbar beginning (#257) * Create UI * Support TypeScript Modules * remove tmp files * migrate to 2-spaced tabs * Add TS Linter * Inline Toolbar moving (#258) * Inline Toolbar moving * simplify code * Check is need to show Inline Toolbar * remove duplicate from doc * fix doc * open/close IT * Close IT by clicks on Redactor * @guryn going strange * default settings initial * add move up button to default tunes area * need to figure out with assets * Inline Toolbar Tools base example (#260) * Inline Toolbar Tools base example * texts fixed * imrpove texts * little fixes * save * tunes with interface * add tool settings * initial api methods * api is ready * started writing docs * Create svg sprite (#261) * API * requested changes * fix conflicts * add docs * doc fixes and interface improvements * update * API scopes improved * Deleting block: Initial * Delete block with confirmation * Event subscription&unsubscription * deletion trigger improvements * small improvements * Link Inline Tool (#264) * Link Inline Tool * api injected * text improved * Clear input on the reselection * little improvements * Delete tune fixes * UI: Block Settings, show Plus after Enter keydown (#265) * Some UI improvements: icons settigns * Show plus button after split * decrease autoprefixer * rename variable * Revert "Merge branch 'delete-tune-fixes' into rewriting-version2.0" * Delete Tune improvements * upd * upd comments * actualize API docs * Allow to connect external Inline Tools (#269) * Allow to connect external Inline Tools * unhardcode tool's api settings * Italic inline tool * update icon size * upgrade findParentTag function * add interface selection * fix cs * save marker * bundles * add todo * removing wrapper * update styles * market -> term * add comments * improve code * descrease margin * add text block to example * add line brakes * remove space * fix bugs * fix bug * umd as a library target * background -> background-color * Clear API (#274) * blockManager.clear * upd * api bez ebanoj knopki api * fix assignment * insert empty block with clear method * clear and render methods improved * open saver.save() * add comments * update comments * fix data returned by editor * rename plugin name field in data object (#276) * Text tool refactored (#277) Now it returns strict data format. * do not add block if tool is not exist (#278) * do not add block if tool is not exist * show warning * add todo * update warning message * put message into variable * Revert "put message into variable" * update comment * Module Keyboard rewrited to BlockEvents (#279) * Module Keydown rewrited to BlockEvents * move keyup and mouseup to the Block Events * Move-up tune (#268) * Move up tune initial * move up tune initial behaviour* moving up formula, docs and code cleaned * do not close the toolbar if moving block up* move nagivate methods to Caret Module* navigations returns boolean if caret is set * code improved * update comments * Eslint --fix for project files (#280) * Header plugin (#281) * header initial * fix styles * eslint fix * add appendCallback * add comments * update styles * add svgs * highlight settings buttons * do not show text plugin in the toolbar * remove svg * Fixing caret behaviour. (#282) Plugins can change their state so that affect on Block's pluginsContent property which is in memory. * remove useless code * fix merge * "MoveDown" tune (#283) * move down initial Swap current block with next block and scroll window screen * check if block is last added new method to the blocks API that returns blocks count * fix comments * animate tune * add animation when tune is disabled * requested changes * remove unused css * Fix merge function and rename Block's wrapper (#284) * Fix merge function and rename wrapper * update * renew condition * update * upd * Merging blocks: Restore caret position 🤟🤟💪 (#286) * Merging blocks: Restore caret position 🤟🤟💪 * requested changes * update removing shadow caret * hide toolbar and selection on typing (#289) * Editor Instance config Interface (#285) * create interface for editor config * use IEditorConfig * create some interfaces * add comments * editor interface * updates * update editor interface (#293) * При перемещении по стрелочкам убирать выделение блока (#296) * При перемещении по стрелочкам убирать выделение блока * Add comments * update comments * update comment * update toolbar design (#301) * Set caret at the end if clicked outsite the block (#305) * Set caret at last block or create new block at end * update comment * fix comments * Insert new Block when enter pressed on editor area (#307) * insert new block when enter pressed on editor zone * extra conditions. Enter must be handled on editors area * move at editor condition to the Selection method * closes can return null * fixing editor area * do not create new block * clean example * updates due to the requested changes * Add placeholder to contentEditable elements (#306) * add placeholder to contentEditable elements * store selection color in a variable * add placeholder to header block * Add placeholder to contenteditable only if attribute data-placeholder exists * remove tool config * Close toolbar after block is removed (#314) * makeSettings -> renderSettings (#315) * Term: new icon, new style. + margin between settings buttons (#316) * remove useless span wrapper * update linters * update styles * process click on svg by closest * remove commented code * rename function: svgIcon -> toolboxIcon * add toolboxIcon to docs * Paste (#259) * Paste module * Rewrite paste logic * Update due comments * Docs * Add all block elements * Sanitize content on paste * Remove logs and add header handler * Add comment to dom.js * Add comment to tools.js * Split block if paste not at the end * Update docs * Update docs * Take Tool name from config * Update docs * Label onPaste handler as private * Resolve conflict * Replace current block if it is empty (#320) * Improve Header line-height (#321) * Fix typo (#324) * CodeX Editor 2.0 * Module Shortcuts (#317) * import shortcuts * node modules works * enable shortcut for inline tools * check shortcut existance * enable shortcuts to Block tools * set caret to block if block replaced * enable shortcuts on inline-tools * improve code * last changes * update * fix * insert returns block so we can set caret * use Map instead own structure * disable shortcut if iniline-toolbar disabled * update code styles * remove todo * upd * update * remove settings from insert function * create interface * code improvements * use const instead of let * upd * Simple Image Tool (#326) * Simple Image * fix pattern * show tunes` state * update code * update code * upd * Fix toolbox appearance, tools boxed are clickable (#331) * Remove toolsConfig from Editor's config (#327) * fix linters * remove toolsConfig * update tool's interfaces * add comments * bundles * remove test headers * restore commented code * update tool's interface * toolConfig -> toolSetting * fix typos * update code comments * update installation doc * update docs * update dev dep packages (#333) * Check is paste handler a function only if it exists (#328) * Toolbar with tab (#330) * toolbar tabs initial * leaf initial * save state * flip back toolbox items * enter on toolbox item * update * requested changes * new condfition * update * improve animation on leaf * fix shift+tab flip * up * update * updates * Consecutive blank lines are forbidden * Correct choosing next toolbox item * update * update comment * Validate editor's config before initing (#341) * validate editor's config before initing * update readme * @ * update comments * add function _.isClass * Styles API (#343) * StylesAPI * use styles api in plugins * add inline styles * List Tool [new] (#344) * list tool initial * list class with settings * make tool reactive * final List improvements * reorder * tmp update * unhadrcode enter handler * updates * enableLineBreaks also checks * skip empty items * select LI by CMD+A, fix backspace in the last item * improve check for emptiness * Example page improved (#347) * Update new example * imrpove example.html * updates * improve code * Header plugin (#348) * isFunction function * use header from cdn * Improve paste behaviour (#346) * Improve paste behaviour * Done * Don't pass empty items * Update comment * move public up * Remove disallow paste option * Quote Tool (#329) * Quote Tool * Add icon * Upd * fix ENTER on quote * Remove useless code * items -> blocks (#351) * use SimpleImage from cdn (#355) * use simpleimage from cdn * add comments * fix spaces * fix comments * remove comments * update simple-image script * Update text on the example.html (#356) * use Paragraph Tool from CDN (#357) * use Paragraph Tool from CDN * add line brakes * rename block: paragraph -> text * Remove _callbacks.js (#358) * Clear unused files (#359) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON (#360) * TOOLBAR_ICON_CLASS -> TOOLBAR_ICON * remove defaultConfig * Delimiter tool (#362) * Delimiter added * ашч * use delimiter from cdn * Enter on editor (#363) * Enterpress on editor * use additional property * check enter on body * update * fix toolbar behaviour * upd * update bundle * remove useless ui property * update comment * add Element.prepend() function (#365) * add Element.prepend() function * allow to pass element of array to prepend() polyfill * use List Tool from cdn (#366) * use List Tool from cdn * add missing </div> in example.html * Pass "config" from Tool's settings to Tool's constructor (#367) * pass config from Tool's settings to Tool's constructor * reorder elements * add apiSettings.CONFIG property * use string as a object's key 😔 (#368) * update placeholder's styles (#369) * Add shortcuts for internal tools (#370) * Add shortcuts for internal tools * upd doc * remove articles * ☹️ guryn asked * use quote from cdn (#371) * Add cache to the inline tools (#372) * use Inline Code Tool from cdn (#375) * Issue 354 inline tools filter (#376) * Allow to filter inline tools. * update example * update header * fix endless cycle (#378) * Destructured options for Inline Tools (#379) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * Fix toolbar moving after arrow navigation (#380) * Fix toolbar moving after arrow navigation * move before open * fix error on Enter after block removing * add example Tools as submodules (#381) * add destructured options for inline-tools * temporary disable inlineCode * remove term sources * add inline code Tool as a submodule * update version of inline-code package * add Tools as submodules * update Tools and use destructured params object * Add constructor() docs * update package Paragraph Tool * update installation docs * Input navigation (#339) * Quote Tool * Add icon * Upd * Initial setup * Save changes * Add scroll and fix input focus * Add comments * Rebuild bundle * fix ENTER on quote * Fix split behaviour * Fix * Navigate only to contentful blocks * add comments * Fix backspace on last block * Remove log * It works * Resolve comments * Use constants * New readme 🦅 (#386) * New readme 🦅 * upd text * Issue 374 (#385) * Fix issue #374 * Set current block index to -1 if there is no blocks left * Insert new block if first one was removed by default * Paragraph as a default Tool in editor; Zero-conf (#389) * git commit -m "Removed submodule Paragraph" * add paragraph to core + zero-config * update bundle * update comment * remove log * enable minifying (#390) * Drop current block index only if there is no selection at the Editor (#388) * Drop current block index only if there is no selection at the Editor * Set current node if click ended out of editor * Small backspace behaviour improvement (#391) * Small backspace behaviour improvement * fix caret position * update from base branch * Update webpack config * Migrate to Yarn (#393) * Migrate to yarn * Update scripts * Rewrite helpers classes to TypeScript (#396) * Add docs and isReady promise (#394) * set default holderId value (#404) * Destroyer (#392) * Initial destroy method * Add destroy method to api docs * Export isReady promise in CodexEditor constructor 👨‍🎓 Co-authored-by: Murod Khaydarov <murod.haydarov@gmail.com> Co-authored-by: George Berezhnoy <gohabereg@gmail.com> Co-authored-by: Taly <vitalik7tv@yandex.ru>
2018-08-05 13:51:58 +02:00
}