easy-richtextarea 4.0.20 → 4.0.21
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/example.js +169 -67
- package/lib/eventTypes.js +53 -0
- package/lib/example/view.js +14 -10
- package/lib/keyCodes.js +13 -4
- package/lib/richTextarea.js +77 -45
- package/package.json +1 -1
- package/src/eventTypes.js +17 -0
- package/src/example/view.js +13 -9
- package/src/keyCodes.js +1 -0
- package/src/richTextarea.js +70 -31
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { eventTypes } from "easy";
|
|
4
|
+
|
|
5
|
+
export const { CUT_EVENT_TYPE,
|
|
6
|
+
COPY_EVENT_TYPE,
|
|
7
|
+
BLUR_EVENT_TYPE,
|
|
8
|
+
PASTE_EVENT_TYPE,
|
|
9
|
+
INPUT_EVENT_TYPE,
|
|
10
|
+
FOCUS_EVENT_TYPE,
|
|
11
|
+
CHANGE_EVENT_TYPE,
|
|
12
|
+
SCROLL_EVENT_TYPE,
|
|
13
|
+
KEYDOWN_EVENT_TYPE,
|
|
14
|
+
CONTEXTMENU_EVENT_TYPE,
|
|
15
|
+
SELECTIONCHANGE_EVENT_TYPE } = eventTypes;
|
|
16
|
+
|
|
17
|
+
export const FIND_EVENT_TYPE = "find";
|
package/src/example/view.js
CHANGED
|
@@ -5,7 +5,7 @@ import RichTextarea from "./richTextarea";
|
|
|
5
5
|
const content = "",
|
|
6
6
|
richTextarea =
|
|
7
7
|
|
|
8
|
-
<RichTextarea
|
|
8
|
+
<RichTextarea onFind={findHandler} onBlur={blurHandler} onFocus={focusHandler} onChange={changeHandler} onScroll={scrollHandler} />
|
|
9
9
|
|
|
10
10
|
;
|
|
11
11
|
|
|
@@ -23,6 +23,18 @@ const View = (properties) =>
|
|
|
23
23
|
|
|
24
24
|
export default View;
|
|
25
25
|
|
|
26
|
+
function findHandler(event, element) {
|
|
27
|
+
console.log("find")
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function blurHandler(event, element) {
|
|
31
|
+
console.log("blur")
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function focusHandler(event, element) {
|
|
35
|
+
console.log("focus")
|
|
36
|
+
}
|
|
37
|
+
|
|
26
38
|
function changeHandler(event, element) {
|
|
27
39
|
const contentChanged = richTextarea.hasContentChanged(),
|
|
28
40
|
selectionChanged = richTextarea.hasSelectionChanged();
|
|
@@ -36,11 +48,3 @@ function scrollHandler(event, element) {
|
|
|
36
48
|
|
|
37
49
|
console.log(scrollTop, scrollLeft)
|
|
38
50
|
}
|
|
39
|
-
|
|
40
|
-
function focusHandler(event, element) {
|
|
41
|
-
console.log("focus")
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function blurHandler(event, element) {
|
|
45
|
-
console.log("blur")
|
|
46
|
-
}
|
package/src/keyCodes.js
CHANGED
package/src/richTextarea.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { Element, document
|
|
3
|
+
import { Element, document } from "easy";
|
|
4
4
|
|
|
5
5
|
import Selection from "./selection"
|
|
6
6
|
import UndoBuffer from "./undoBuffer";
|
|
@@ -10,20 +10,20 @@ import transformContent from "./transform/content";
|
|
|
10
10
|
import transformSelection from "./transform/selection";
|
|
11
11
|
import generateOperations from "./operations/generate";
|
|
12
12
|
|
|
13
|
-
import { Z_KEY_CODE } from "./keyCodes";
|
|
14
13
|
import { TEXT, EMPTY_STRING } from "./constants";
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
import { F_KEY_CODE, Z_KEY_CODE } from "./keyCodes";
|
|
15
|
+
import { CUT_EVENT_TYPE,
|
|
16
|
+
COPY_EVENT_TYPE,
|
|
17
|
+
FIND_EVENT_TYPE,
|
|
18
|
+
BLUR_EVENT_TYPE,
|
|
19
|
+
PASTE_EVENT_TYPE,
|
|
20
|
+
INPUT_EVENT_TYPE,
|
|
21
|
+
FOCUS_EVENT_TYPE,
|
|
22
|
+
CHANGE_EVENT_TYPE,
|
|
23
|
+
SCROLL_EVENT_TYPE,
|
|
24
|
+
KEYDOWN_EVENT_TYPE,
|
|
25
|
+
CONTEXTMENU_EVENT_TYPE,
|
|
26
|
+
SELECTIONCHANGE_EVENT_TYPE } from "./eventTypes";
|
|
27
27
|
|
|
28
28
|
export default class RichTextarea extends Element {
|
|
29
29
|
constructor(selector, focused, readOnly, undoBuffer, previousContent, previousSelection) {
|
|
@@ -132,6 +132,18 @@ export default class RichTextarea extends Element {
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
+
if (keyCode === F_KEY_CODE) {
|
|
136
|
+
const { ctrlKey, metaKey } = event;
|
|
137
|
+
|
|
138
|
+
if (ctrlKey || metaKey) {
|
|
139
|
+
this.find(event, element);
|
|
140
|
+
|
|
141
|
+
event.preventDefault();
|
|
142
|
+
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
135
147
|
defer(() => {
|
|
136
148
|
this.intermediateHandler(event, element);
|
|
137
149
|
});
|
|
@@ -313,6 +325,12 @@ export default class RichTextarea extends Element {
|
|
|
313
325
|
}
|
|
314
326
|
}
|
|
315
327
|
|
|
328
|
+
find(event, element) {
|
|
329
|
+
const eventType = FIND_EVENT_TYPE;
|
|
330
|
+
|
|
331
|
+
this.callHandlers(eventType, event, element);
|
|
332
|
+
}
|
|
333
|
+
|
|
316
334
|
undo(event, element) {
|
|
317
335
|
const undoOperation = this.undoBuffer.undo();
|
|
318
336
|
|
|
@@ -437,6 +455,20 @@ export default class RichTextarea extends Element {
|
|
|
437
455
|
this.removeClass("active");
|
|
438
456
|
}
|
|
439
457
|
|
|
458
|
+
onFind(findHandler, element) {
|
|
459
|
+
const eventType = FIND_EVENT_TYPE,
|
|
460
|
+
handler = findHandler; ///
|
|
461
|
+
|
|
462
|
+
this.addEventListener(eventType, handler, element);
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
offFind(findHandler, element) {
|
|
466
|
+
const eventType = FIND_EVENT_TYPE,
|
|
467
|
+
handler = findHandler; ///
|
|
468
|
+
|
|
469
|
+
this.removeEventListener(eventType, handler, element);
|
|
470
|
+
}
|
|
471
|
+
|
|
440
472
|
onBlur(blurHandler, element) {
|
|
441
473
|
const eventType = BLUR_EVENT_TYPE,
|
|
442
474
|
handler = blurHandler; ///
|
|
@@ -494,11 +526,12 @@ export default class RichTextarea extends Element {
|
|
|
494
526
|
}
|
|
495
527
|
|
|
496
528
|
didMount() {
|
|
497
|
-
const {
|
|
498
|
-
|
|
499
|
-
|
|
529
|
+
const { onFind, onBlur, onFocus, onChange, onScroll } = this.properties,
|
|
530
|
+
findHandler = onFind, ///
|
|
531
|
+
blurHandler = onBlur, ///
|
|
500
532
|
focusHandler = onFocus, ///
|
|
501
|
-
|
|
533
|
+
changeHandler = onChange, ///
|
|
534
|
+
scrollHandler = onScroll; ///
|
|
502
535
|
|
|
503
536
|
const content = this.getContent(),
|
|
504
537
|
selection = this.getSelection();
|
|
@@ -507,13 +540,15 @@ export default class RichTextarea extends Element {
|
|
|
507
540
|
|
|
508
541
|
this.previousSelection = selection; ///
|
|
509
542
|
|
|
510
|
-
|
|
543
|
+
findHandler && this.onFind(findHandler, this);
|
|
511
544
|
|
|
512
|
-
|
|
545
|
+
blurHandler && this.onBlur(blurHandler, this);
|
|
513
546
|
|
|
514
547
|
focusHandler && this.onFocus(focusHandler, this);
|
|
515
548
|
|
|
516
|
-
|
|
549
|
+
changeHandler && this.onChange(changeHandler, this);
|
|
550
|
+
|
|
551
|
+
scrollHandler && this.onScroll(scrollHandler, this);
|
|
517
552
|
|
|
518
553
|
this.on(CUT_EVENT_TYPE, this.cutHandler);
|
|
519
554
|
|
|
@@ -527,19 +562,22 @@ export default class RichTextarea extends Element {
|
|
|
527
562
|
}
|
|
528
563
|
|
|
529
564
|
willUnmount() {
|
|
530
|
-
const {
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
565
|
+
const { onFind, onBlur, onFocus, onChange, onScroll } = this.properties,
|
|
566
|
+
findHandler = onFind, ///
|
|
567
|
+
blurHandler = onBlur, ///
|
|
568
|
+
focusHandler = onFocus, ///
|
|
569
|
+
changeHandler = onChange, ///
|
|
570
|
+
scrollHandler = onScroll; ///
|
|
535
571
|
|
|
536
|
-
|
|
572
|
+
findHandler && this.offFind(findHandler, this);
|
|
537
573
|
|
|
538
|
-
|
|
574
|
+
blurHandler && this.offBlur(blurHandler, this);
|
|
539
575
|
|
|
540
576
|
focusHandler && this.offFocus(focusHandler, this);
|
|
541
577
|
|
|
542
|
-
|
|
578
|
+
changeHandler && this.offChange(changeHandler, this);
|
|
579
|
+
|
|
580
|
+
scrollHandler && this.offScroll(scrollHandler, this);
|
|
543
581
|
|
|
544
582
|
this.off(CUT_EVENT_TYPE, this.cutHandler);
|
|
545
583
|
|
|
@@ -561,10 +599,11 @@ export default class RichTextarea extends Element {
|
|
|
561
599
|
static tagName = "textarea";
|
|
562
600
|
|
|
563
601
|
static ignoredProperties = [
|
|
602
|
+
"onFind",
|
|
603
|
+
"onBlur",
|
|
604
|
+
"onFocus",
|
|
564
605
|
"onChange",
|
|
565
606
|
"onScroll",
|
|
566
|
-
"onFocus",
|
|
567
|
-
"onBlur"
|
|
568
607
|
];
|
|
569
608
|
|
|
570
609
|
static defaultProperties = {
|