@taufik-nurrohman/text-editor.key 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +7 -1
- package/index.min.js +1 -1
- package/index.mjs +5 -2
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -169,6 +169,9 @@
|
|
|
169
169
|
var offEventDefault = function offEventDefault(e) {
|
|
170
170
|
return e && e.preventDefault();
|
|
171
171
|
};
|
|
172
|
+
var offEventPropagation = function offEventPropagation(e) {
|
|
173
|
+
return e && e.stopPropagation();
|
|
174
|
+
};
|
|
172
175
|
var bounce = debounce(function (map) {
|
|
173
176
|
return map.pull();
|
|
174
177
|
}, 1000);
|
|
@@ -184,14 +187,17 @@
|
|
|
184
187
|
}
|
|
185
188
|
|
|
186
189
|
function onKeyDown(e) {
|
|
190
|
+
var $ = this;
|
|
187
191
|
var command,
|
|
188
|
-
map =
|
|
192
|
+
map = $[id],
|
|
189
193
|
v;
|
|
190
194
|
map.push(e.key); // Add current key to the queue
|
|
195
|
+
$._event = e;
|
|
191
196
|
if (command = map.command()) {
|
|
192
197
|
v = map.fire(command);
|
|
193
198
|
if (false === v) {
|
|
194
199
|
offEventDefault(e);
|
|
200
|
+
offEventPropagation(e);
|
|
195
201
|
} else if (null === v) {
|
|
196
202
|
console.warn('Unknown command: `' + command + '`');
|
|
197
203
|
}
|
package/index.min.js
CHANGED
|
@@ -23,4 +23,4 @@
|
|
|
23
23
|
* SOFTWARE.
|
|
24
24
|
*
|
|
25
25
|
*/
|
|
26
|
-
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((n="undefined"!=typeof globalThis?globalThis:n||self).TextEditor=n.TextEditor||{},n.TextEditor.Key=t())}(this,(function(){"use strict";var n=function(n){return Array.isArray(n)},t=function(n){return"function"==typeof n},e=function(n,t){return void 0===t&&(t=!0),"object"==typeof n&&(!t||function(n,t){return n&&r(t)&&n instanceof t}(n,Object))},r=function(n){return function(n){return void 0!==n}(n)&&!function(n){return null===n}(n)},o=function(n){return"string"==typeof n},u=function t(){for(var o=arguments.length,u=Array(o),f=0;f<o;f++)u[f]=arguments[f];for(var c,s=u.shift(),a=0,l=i(u);a<l;++a)for(var y in u[a])if(r(s[y]))if(n(s[y])&&n(u[a][y])){s[y]=[].concat(s[y]);for(var d=0,
|
|
26
|
+
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((n="undefined"!=typeof globalThis?globalThis:n||self).TextEditor=n.TextEditor||{},n.TextEditor.Key=t())}(this,(function(){"use strict";var n=function(n){return Array.isArray(n)},t=function(n){return"function"==typeof n},e=function(n,t){return void 0===t&&(t=!0),"object"==typeof n&&(!t||function(n,t){return n&&r(t)&&n instanceof t}(n,Object))},r=function(n){return function(n){return void 0!==n}(n)&&!function(n){return null===n}(n)},o=function(n){return"string"==typeof n},u=function t(){for(var o=arguments.length,u=Array(o),f=0;f<o;f++)u[f]=arguments[f];for(var c,s=u.shift(),a=0,l=i(u);a<l;++a)for(var y in u[a])if(r(s[y]))if(n(s[y])&&n(u[a][y])){s[y]=[].concat(s[y]);for(var d=0,p=i(u[a][y]);d<p;++d)c=u[a][y][d],-1===s[y].indexOf(c)&&s[y].push(u[a][y][d])}else e(s[y])&&e(u[a][y])?s[y]=t({},s[y],u[a][y]):s[y]=u[a][y];else s[y]=u[a][y];return s},i=function(n){return n.length};function f(n){var t=this;return t.commands={},t.key=null,t.keys={},t.queue={},t.self=n||t,t}var c=f.prototype;c.command=function(n){var t=this;if(o(n))return n===t.toString();var e=t.keys[t.toString()];return!!r(e)&&e},c.fire=function(e){var u,i,f=this,c=f.self||f;if(t(e))u=e.call(c),i=!0;else if(o(e)&&(e=f.commands[e]))u=e.call(c),i=!0;else if(n(e)){var s=e[1]||[];(e=f.commands[e[0]])&&(u=e.apply(c,s),i=!0)}return i?!r(u)||u:null},c.pull=function(n){var t=this;return t.key=null,r(n)?(delete t.queue[n],t):(t.queue={},t)},c.push=function(n){var t=this;return t.queue[t.key=n]=1,t},c.toString=function(){return(n=this.queue,Object.keys(n)).join("-");var n},Object.defineProperty(f,"name",{value:"Key"});var s,a,l,y=function(n){return n&&n.preventDefault()},d=function(n){return n&&n.stopPropagation()},p=(s=function(n){return n.pull()},a=1e3,function(){var n=arguments,t=this;l&&clearTimeout(l),l=setTimeout((function(){return s.apply(t,n)}),a)}),m="_Key";function h(n){this[m].pull()}function v(n){h.call(this)}function k(n){var t,e,r=this[m];r.push(n.key),this._event=n,(t=r.command())&&(!1===(e=r.fire(t))?(y(n),d(n)):null===e&&console.warn("Unknown command: `"+t+"`")),p(r)}function b(n){this[m].pull(n.key)}var g={attach:function(){var n=this,e=n.constructor.prototype,o=new f(n);return n.commands=u(n.commands=o.commands,n.state.commands||{}),n.keys=u(n.keys=o.keys,n.state.keys||{}),!t(e.command)&&(e.command=function(n,t){return this.commands[n]=t,this}),!t(e.k)&&(e.k=function(n){var t,e=this[m]+"";return r(n)&&"-"!==n&&(t=""!==e?e.split(/-(?!$)/):[],!1!==n)?t.join(n):!1===n?"-"===e?[e]:t:e}),!t(e.key)&&(e.key=function(n,t){return this.keys[n]=t,this}),n.on("blur",h),n.on("input",v),n.on("key.down",k),n.on("key.up",b),n[m]=o,n},detach:function(){var n=this;return n[m].pull(),n.off("blur",h),n.off("input",v),n.off("key.down",k),n.off("key.up",b),delete n[m],n},name:"TextEditor.Key"};return g}));
|
package/index.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import Key from '@taufik-nurrohman/key';
|
|
|
2
2
|
import {debounce} from '@taufik-nurrohman/tick';
|
|
3
3
|
import {fromStates} from '@taufik-nurrohman/from';
|
|
4
4
|
import {isFunction, isSet} from '@taufik-nurrohman/is';
|
|
5
|
-
import {offEventDefault} from '@taufik-nurrohman/event';
|
|
5
|
+
import {offEventDefault, offEventPropagation} from '@taufik-nurrohman/event';
|
|
6
6
|
|
|
7
7
|
const bounce = debounce(map => map.pull(), 1000);
|
|
8
8
|
const name = 'TextEditor.Key';
|
|
@@ -18,12 +18,15 @@ function onInput(e) {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
function onKeyDown(e) {
|
|
21
|
-
let
|
|
21
|
+
let $ = this;
|
|
22
|
+
let command, map = $[id], v;
|
|
22
23
|
map.push(e.key); // Add current key to the queue
|
|
24
|
+
$._event = e;
|
|
23
25
|
if (command = map.command()) {
|
|
24
26
|
v = map.fire(command);
|
|
25
27
|
if (false === v) {
|
|
26
28
|
offEventDefault(e);
|
|
29
|
+
offEventPropagation(e);
|
|
27
30
|
} else if (null === v) {
|
|
28
31
|
console.warn('Unknown command: `' + command + '`');
|
|
29
32
|
}
|
package/package.json
CHANGED