slate-instant-replace
Version:
A Slate plugin that gives you full power on the last word your user typed.
1 lines • 2.25 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("slate")):"function"==typeof define&&define.amd?define("slateInstantReplace",["slate"],t):"object"==typeof exports?exports.slateInstantReplace=t(require("slate")):e.slateInstantReplace=t(e._)}(global,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(t,n){t.exports=e},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return a}));const r=e=>e.value.fragment.text,o=e=>e.value.selection.focus.offset,u=e=>0===o(e),i=e=>{const t=e.value.focusBlock,n=e.value.selection.focus.key;return t.getPreviousSibling(n)},s=e=>{const t=o(e);return c(e,t)},c=(e,t,n=0)=>{if(n===t){const t=r(e);return e.moveFocusForward(n),t}const o=r(e.moveFocusBackward(1));return" "===o[0]?(e.moveFocusForward(n+1),o.substring(1)):c(e,t,n+1)};var f=n(0);const l=e=>{if(u(e)){const t=i(e);t&&f.Inline.isInline(t)&&e.moveToEndOfNode(t).normalize(document)}};var a=e=>({queries:{getSelection:r,getCurrentWordOffset:o,getLastWord:s,getPreviousNode:i,isFirstCharOfNode:u},commands:{focusPreviousInlineNode:l},onKeyDown(t,n,r){if(!(e=>1===e.key.length)(t))return r();if((e=>e.ctrlKey||e.metaKey)(t))return r();if((e=>" "===e.key)(t)||l(n),n.insertText(t.key),Array.isArray(e))e.forEach(e=>{const t=s(n);e(n,t)});else if(e){const t=s(n);e(n,t)}return t.preventDefault(),r()}})}])}));