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.
@@ -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";
@@ -5,7 +5,7 @@ import RichTextarea from "./richTextarea";
5
5
  const content = "",
6
6
  richTextarea =
7
7
 
8
- <RichTextarea onChange={changeHandler} onScroll={scrollHandler} onFocus={focusHandler} onBlur={blurHandler} />
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
@@ -1,3 +1,4 @@
1
1
  "use strict";
2
2
 
3
+ export const F_KEY_CODE = 70;
3
4
  export const Z_KEY_CODE = 90;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { Element, document, eventTypes } from "easy";
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
- const { CUT_EVENT_TYPE,
17
- COPY_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 } = eventTypes;
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 { onChange, onScroll, onFocus, onBlur } = this.properties,
498
- changeHandler = onChange, ///
499
- scrollHandler = onScroll, ///
529
+ const { onFind, onBlur, onFocus, onChange, onScroll } = this.properties,
530
+ findHandler = onFind, ///
531
+ blurHandler = onBlur, ///
500
532
  focusHandler = onFocus, ///
501
- blurHandler = onBlur; ///
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
- changeHandler && this.onChange(changeHandler, this);
543
+ findHandler && this.onFind(findHandler, this);
511
544
 
512
- scrollHandler && this.onScroll(scrollHandler, this);
545
+ blurHandler && this.onBlur(blurHandler, this);
513
546
 
514
547
  focusHandler && this.onFocus(focusHandler, this);
515
548
 
516
- blurHandler && this.onBlur(blurHandler, this);
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 { onChange, onScroll, onFocus, onBlur } = this.properties,
531
- changeHandler = onChange, ///
532
- scrollHandler = onScroll, ///
533
- focusHandler = onFocus, ///
534
- blurHandler = onBlur; ///
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
- changeHandler && this.offChange(changeHandler, this);
572
+ findHandler && this.offFind(findHandler, this);
537
573
 
538
- scrollHandler && this.offScroll(scrollHandler, this);
574
+ blurHandler && this.offBlur(blurHandler, this);
539
575
 
540
576
  focusHandler && this.offFocus(focusHandler, this);
541
577
 
542
- blurHandler && this.offBlur(blurHandler, this);
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 = {