easy 19.0.4 → 20.0.1

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.
Files changed (67) hide show
  1. package/README.md +18 -130
  2. package/example.js +648 -850
  3. package/lib/bounds.js +1 -1
  4. package/lib/constants.js +1 -13
  5. package/lib/document.js +3 -5
  6. package/lib/element/body.js +13 -24
  7. package/lib/element/button.js +13 -24
  8. package/lib/element/checkbox.js +16 -28
  9. package/lib/element/input.js +151 -0
  10. package/lib/element/link.js +13 -24
  11. package/lib/element/select.js +16 -64
  12. package/lib/element/textarea.js +151 -0
  13. package/lib/element.js +8 -26
  14. package/lib/example/view/div.js +184 -0
  15. package/lib/example/view.js +13 -92
  16. package/lib/index.js +5 -9
  17. package/lib/mixins/customEvent.js +1 -1
  18. package/lib/mixins/element.js +27 -4
  19. package/lib/mixins/event.js +19 -8
  20. package/lib/mixins/focus.js +45 -0
  21. package/lib/mixins/input.js +40 -0
  22. package/lib/mixins/mouse.js +1 -1
  23. package/lib/mixins/resize.js +2 -34
  24. package/lib/mixins/scroll.js +5 -5
  25. package/lib/mixins/selection.js +46 -2
  26. package/lib/mixins/textElement.js +20 -0
  27. package/lib/offset.js +1 -1
  28. package/lib/textElement.js +4 -5
  29. package/lib/utilities/string.js +2 -3
  30. package/lib/window.js +20 -11
  31. package/package.json +1 -1
  32. package/src/constants.js +0 -3
  33. package/src/document.js +2 -4
  34. package/src/element/button.js +3 -0
  35. package/src/element/checkbox.js +5 -5
  36. package/src/element/input.js +14 -0
  37. package/src/element/link.js +3 -0
  38. package/src/element/select.js +5 -13
  39. package/src/element/textarea.js +14 -0
  40. package/src/element.js +7 -17
  41. package/src/example/view/div.js +40 -0
  42. package/src/example/view.js +4 -66
  43. package/src/index.js +4 -8
  44. package/src/mixins/element.js +6 -6
  45. package/src/mixins/event.js +25 -10
  46. package/src/mixins/focus.js +33 -0
  47. package/src/mixins/input.js +26 -0
  48. package/src/mixins/mouse.js +1 -5
  49. package/src/mixins/resize.js +1 -58
  50. package/src/mixins/scroll.js +3 -3
  51. package/src/mixins/selection.js +35 -2
  52. package/src/mixins/textElement.js +12 -0
  53. package/src/textElement.js +3 -5
  54. package/src/utilities/string.js +1 -3
  55. package/src/window.js +19 -6
  56. package/lib/example/view/checkbox.js +0 -110
  57. package/lib/inputElement/input.js +0 -112
  58. package/lib/inputElement/textarea.js +0 -112
  59. package/lib/inputElement.js +0 -238
  60. package/lib/mixins/change.js +0 -24
  61. package/lib/mixins/window.js +0 -17
  62. package/src/example/view/checkbox.js +0 -10
  63. package/src/inputElement/input.js +0 -7
  64. package/src/inputElement/textarea.js +0 -7
  65. package/src/inputElement.js +0 -38
  66. package/src/mixins/change.js +0 -14
  67. package/src/mixins/window.js +0 -8
@@ -1,41 +1,16 @@
1
1
  "use strict";
2
2
 
3
- import { Button, Element, Textarea, mouseButtons } from "../index"; ///
3
+ import { Element } from "../index"; ///
4
4
 
5
- import Checkbox from "./view/checkbox";
6
-
7
- const { LEFT_MOUSE_BUTTON } = mouseButtons;
5
+ import Div from "./view/div";
8
6
 
9
7
  export default class View extends Element {
10
8
  childElements() {
11
- return ([
12
-
13
- <Checkbox onChange={(event, element) => {
14
- console.log("Changed")
15
- }}
16
- checked
17
- />,
18
- <Textarea onChange={(event, element) => {
19
- console.log("change")
20
- }}
21
- onScroll={function(event, element) { ///
22
- const scrollTop = this.getScrollTop(),
23
- scrollLeft = this.getScrollLeft();
24
-
25
- console.log(scrollTop, scrollLeft)
26
- }}
27
- />,
28
- <Button onClick={(event, element) => {
29
- const { button } = event;
9
+ return (
30
10
 
31
- console.log(button === LEFT_MOUSE_BUTTON)
32
- }}
33
- >
34
- Submit
35
- </Button>,
36
11
  <Div/>
37
12
 
38
- ]);
13
+ );
39
14
  }
40
15
 
41
16
  static tagName = "div";
@@ -44,40 +19,3 @@ export default class View extends Element {
44
19
  className: "view"
45
20
  };
46
21
  }
47
-
48
- class Div extends Element {
49
- mouseMoveHandler = (event, element) => {
50
- const { pageX, pageY } = event;
51
-
52
- console.log(pageX, pageY)
53
- }
54
-
55
- resizeHandler = (event, element) => {
56
- const width = this.getWidth(),
57
- height = this.getHeight();
58
-
59
- console.log(width, height)
60
- }
61
-
62
- didMount() {
63
- this.onResize(this.resizeHandler, this);
64
- this.onMouseMove(this.mouseMoveHandler, this);
65
- }
66
-
67
- willUnmount() {
68
- this.offMouseMove(this.mouseMoveHandler, this);
69
- this.offResize(this.resizeHandler, this);
70
- }
71
-
72
- childElements() {
73
- return (
74
-
75
- <p>
76
- A paragraph contained in a div with resize and mouse move handlers.
77
- </p>
78
-
79
- );
80
- }
81
-
82
- static tagName = "div";
83
- }
package/src/index.js CHANGED
@@ -3,21 +3,17 @@
3
3
  export { default as React } from "./react";
4
4
  export { default as Bounds } from "./bounds";
5
5
  export { default as Offset } from "./offset";
6
-
6
+ export { default as Element } from "./element";
7
+ export { default as TextElement } from "./textElement";
7
8
  export { default as Body } from "./element/body";
8
9
  export { default as Link } from "./element/link";
9
- export { default as Input } from "./inputElement/input";
10
+ export { default as Input } from "./element/input";
10
11
  export { default as Button } from "./element/button";
11
12
  export { default as Select } from "./element/select";
12
- export { default as Element } from "./element";
13
13
  export { default as Checkbox } from "./element/checkbox";
14
- export { default as Textarea } from "./inputElement/textarea";
15
- export { default as TextElement } from "./textElement";
16
- export { default as InputElement } from "./inputElement";
17
-
14
+ export { default as Textarea } from "./element/textarea";
18
15
  export { default as window } from "./window";
19
16
  export { default as document } from "./document";
20
17
  export { default as eventTypes } from "./eventTypes";
21
18
  export { default as mouseButtons } from "./mouseButtons";
22
-
23
19
  export { default as elementUtilities } from "./utilities/element";
@@ -4,7 +4,7 @@ import { first } from "../utilities/array";
4
4
  import { WILDCARD } from "../constants";
5
5
  import { domNodeMatchesSelector, elementsFromDOMElements, filterDOMNodesBySelector, ascendantDOMNodesFromDOMNode, descendantDOMNodesFromDOMNode } from "../utilities/dom";
6
6
 
7
- function getParentElement(selector = WILDCARD) {
7
+ export function getParentElement(selector = WILDCARD) {
8
8
  let parentElement = null;
9
9
 
10
10
  const parentDOMElement = this.domElement.parentElement; ///
@@ -24,7 +24,7 @@ function getParentElement(selector = WILDCARD) {
24
24
  return parentElement;
25
25
  }
26
26
 
27
- function getChildElements(selector = WILDCARD) {
27
+ export function getChildElements(selector = WILDCARD) {
28
28
  const childDOMNodes = this.domElement.childNodes, ///
29
29
  childDOMElements = filterDOMNodesBySelector(childDOMNodes, selector),
30
30
  childElements = elementsFromDOMElements(childDOMElements);
@@ -32,7 +32,7 @@ function getChildElements(selector = WILDCARD) {
32
32
  return childElements;
33
33
  }
34
34
 
35
- function getAscendantElements(selector = WILDCARD, maximumHeight = Infinity) {
35
+ export function getAscendantElements(selector = WILDCARD, maximumHeight = Infinity) {
36
36
  const height = maximumHeight, ///
37
37
  domNode = this.domElement, ///
38
38
  ascendantDOMNodes = ascendantDOMNodesFromDOMNode(domNode, height),
@@ -42,7 +42,7 @@ function getAscendantElements(selector = WILDCARD, maximumHeight = Infinity) {
42
42
  return ascendantElements;
43
43
  }
44
44
 
45
- function getDescendantElements(selector = WILDCARD, maximumDepth = Infinity) {
45
+ export function getDescendantElements(selector = WILDCARD, maximumDepth = Infinity) {
46
46
  const depth = maximumDepth, ///
47
47
  domNode = this.domElement, ///
48
48
  descendantDOMNodes = descendantDOMNodesFromDOMNode(domNode, depth),
@@ -52,7 +52,7 @@ function getDescendantElements(selector = WILDCARD, maximumDepth = Infinity) {
52
52
  return descendantElements;
53
53
  }
54
54
 
55
- function getNextSiblingElement(selector = WILDCARD) {
55
+ export function getNextSiblingElement(selector = WILDCARD) {
56
56
  let nextSiblingElement = null;
57
57
 
58
58
  const nextSiblingDOMNode = this.domElement.nextSibling; ///
@@ -64,7 +64,7 @@ function getNextSiblingElement(selector = WILDCARD) {
64
64
  return nextSiblingElement;
65
65
  }
66
66
 
67
- function getPreviousSiblingElement(selector = WILDCARD) {
67
+ export function getPreviousSiblingElement(selector = WILDCARD) {
68
68
  let previousSiblingElement = null;
69
69
 
70
70
  const previousSiblingDOMNode = this.domElement.previousSibling; ///
@@ -2,7 +2,6 @@
2
2
 
3
3
  import { SPACE } from "../constants";
4
4
  import { RESIZE_EVENT_TYPE } from "../eventTypes";
5
- import { removeResizeObject } from "../mixins/resize";
6
5
 
7
6
  function onEvent(eventTypes, handler, element = this) {
8
7
  eventTypes = eventTypes.split(SPACE); ///
@@ -13,13 +12,25 @@ function onEvent(eventTypes, handler, element = this) {
13
12
  resizeEventListenersLength = resizeEventListeners.length;
14
13
 
15
14
  if (resizeEventListenersLength === 0) {
16
- this.addResizeObject();
15
+ this.resizeObserver = new ResizeObserver((entries) => {
16
+ const resizeEventListeners = this.findEventListeners(RESIZE_EVENT_TYPE);
17
+
18
+ resizeEventListeners.forEach((resizeEventListener) => {
19
+ const event = null;
20
+
21
+ resizeEventListener(event);
22
+ });
23
+ });
24
+
25
+ this.resizeObserver.observe(this.domElement)
17
26
  }
18
- }
19
27
 
20
- const eventListener = this.addEventListener(eventType, handler, element);
28
+ this.addEventListener(eventType, handler, element);
29
+ } else {
30
+ const eventListener = this.addEventListener(eventType, handler, element);
21
31
 
22
- this.domElement.addEventListener(eventType, eventListener);
32
+ this.domElement.addEventListener(eventType, eventListener);
33
+ }
23
34
  });
24
35
  }
25
36
 
@@ -27,17 +38,21 @@ function offEvent(eventTypes, handler, element = this) {
27
38
  eventTypes = eventTypes.split(SPACE); ///
28
39
 
29
40
  eventTypes.forEach((eventType) => {
30
- const eventListener = this.removeEventListener(eventType, handler, element);
31
-
32
- this.domElement.removeEventListener(eventType, eventListener);
33
-
34
41
  if (eventType === RESIZE_EVENT_TYPE) {
42
+ this.removeEventListener(eventType, handler, element);
43
+
35
44
  const resizeEventListeners = this.findEventListeners(RESIZE_EVENT_TYPE),
36
45
  resizeEventListenersLength = resizeEventListeners.length;
37
46
 
38
47
  if (resizeEventListenersLength === 0) {
39
- this.removeResizeObject();
48
+ this.resizeObserver.unobserve(this.domElement);
49
+
50
+ delete this.resizeObserver;
40
51
  }
52
+ } else {
53
+ const eventListener = this.removeEventListener(eventType, handler, element);
54
+
55
+ this.domElement.removeEventListener(eventType, eventListener);
41
56
  }
42
57
  });
43
58
  }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ import { BLUR_EVENT_TYPE, FOCUS_EVENT_TYPE } from "../eventTypes";
4
+
5
+ function onBlur(blurHandler, element) { this.onEvent(BLUR_EVENT_TYPE, blurHandler, element); }
6
+
7
+ function offBlur(blurHandler, element) { this.offEvent(BLUR_EVENT_TYPE, blurHandler, element); }
8
+
9
+ function onFocus(focusHandler, element) { this.onEvent(FOCUS_EVENT_TYPE, focusHandler, element); }
10
+
11
+ function offFocus(focusHandler, element) { this.offEvent(FOCUS_EVENT_TYPE, focusHandler, element); }
12
+
13
+ function blur() { this.domElement.blur(); }
14
+
15
+ function focus() { this.domElement.focus(); }
16
+
17
+ function hasFocus() {
18
+ const focus = (document.activeElement === this.domElement); ///
19
+
20
+ return focus;
21
+ }
22
+
23
+ const focusMixins = {
24
+ onBlur,
25
+ offBlur,
26
+ onFocus,
27
+ offFocus,
28
+ blur,
29
+ focus,
30
+ hasFocus
31
+ };
32
+
33
+ export default focusMixins;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ import { CHANGE_EVENT_TYPE } from "../eventTypes";
4
+
5
+ function onChange(changeHandler, element) { this.onEvent(CHANGE_EVENT_TYPE, changeHandler, element); }
6
+
7
+ function offChange(changeHandler, element) { this.offEvent(CHANGE_EVENT_TYPE, changeHandler, element); }
8
+
9
+ function getValue() { return this.domElement.value; }
10
+
11
+ function setValue(value) { this.domElement.value = value; }
12
+
13
+ function isReadOnly() { return this.domElement.readOnly; }
14
+
15
+ function setReadOnly(readOnly) { this.domElement.readOnly = readOnly; }
16
+
17
+ const inputMixins = {
18
+ onChange,
19
+ offChange,
20
+ getValue,
21
+ setValue,
22
+ isReadOnly,
23
+ setReadOnly
24
+ };
25
+
26
+ export default inputMixins;
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { MOUSEUP_EVENT_TYPE,
4
- MOUSEOUT_EVENT_TYPE,
5
- MOUSEDOWN_EVENT_TYPE,
6
- MOUSEOVER_EVENT_TYPE,
7
- MOUSEMOVE_EVENT_TYPE } from "../eventTypes";
3
+ import { MOUSEUP_EVENT_TYPE, MOUSEOUT_EVENT_TYPE, MOUSEDOWN_EVENT_TYPE, MOUSEOVER_EVENT_TYPE, MOUSEMOVE_EVENT_TYPE } from "../eventTypes";
8
4
 
9
5
  function onMouseUp(mouseUpHandler, element) { this.onEvent(MOUSEUP_EVENT_TYPE, mouseUpHandler, element); }
10
6
 
@@ -1,71 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  import { RESIZE_EVENT_TYPE } from "../eventTypes";
4
- import { OBJECT, TEXT_HTML, ABOUT_BLANK } from "../constants";
5
4
 
6
5
  export function onResize(resizeHandler, element) { this.onEvent(RESIZE_EVENT_TYPE, resizeHandler, element); }
7
6
 
8
7
  export function offResize(resizeHandler, element) { this.offEvent(RESIZE_EVENT_TYPE, resizeHandler, element); }
9
8
 
10
- function addResizeObject() {
11
- const resizeObject = document.createElement(OBJECT),
12
- type = TEXT_HTML, ///
13
- data = ABOUT_BLANK, ///
14
- style = `display: block;
15
- position: absolute;
16
- top: 0;
17
- left: 0;
18
- height: 100%;
19
- width: 100%;
20
- overflow: hidden;
21
- pointer-events: none;
22
- z-index: -1;`;
23
-
24
- Object.assign(resizeObject, {
25
- type,
26
- data
27
- });
28
-
29
- resizeObject.setAttribute("style", style);
30
-
31
- this.__resizeObject__ = resizeObject; ///
32
-
33
- resizeObject.onload = () => {
34
- resizeObjectLoadHandler(this);
35
- };
36
-
37
- this.domElement.appendChild(resizeObject);
38
- }
39
-
40
- function removeResizeObject() {
41
- const resizeObject = this.__resizeObject__, ///
42
- objectWindow = resizeObject.contentDocument.defaultView; ///
43
-
44
- objectWindow.removeEventListener(RESIZE_EVENT_TYPE, resizeEventListener);
45
-
46
- this.domElement.removeChild(resizeObject);
47
-
48
- delete this.__resizeObject__;
49
- }
50
-
51
9
  const resizeMixins = {
52
10
  onResize,
53
- offResize,
54
- addResizeObject,
55
- removeResizeObject
11
+ offResize
56
12
  };
57
13
 
58
14
  export default resizeMixins;
59
-
60
- function resizeObjectLoadHandler(element) {
61
- const resizeObject = element.__resizeObject__,
62
- resizeObjectWindow = resizeObject.contentDocument.defaultView; ///
63
-
64
- resizeObjectWindow.addEventListener(RESIZE_EVENT_TYPE, (event) => {
65
- const resizeEventListeners = element.findEventListeners(RESIZE_EVENT_TYPE);
66
-
67
- resizeEventListeners.forEach((resizeEventListener) => {
68
- resizeEventListener(event);
69
- });
70
- });
71
- }
@@ -6,12 +6,12 @@ function onScroll(scrollHandler, element) { this.onEvent(SCROLL_EVENT_TYPE, scro
6
6
 
7
7
  function offScroll(scrollHandler, element) { this.offEvent(SCROLL_EVENT_TYPE, scrollHandler, element); }
8
8
 
9
+ function scrollTo(scrollTop, scrollLeft) { this.domElement.scrollTo(scrollTop, scrollLeft); }
10
+
9
11
  function getScrollTop() { return this.domElement.scrollTop; }
10
12
 
11
13
  function getScrollLeft() { return this.domElement.scrollLeft; }
12
14
 
13
- function scrollTo(scrollTop, scrollLeft) { this.domElement.scrollTo(scrollTop, scrollLeft); }
14
-
15
15
  function setScrollTop(scrollTop) { this.domElement.scrollTop = scrollTop; }
16
16
 
17
17
  function setScrollLeft(scrollLeft) { this.domElement.scrollLeft = scrollLeft; }
@@ -19,9 +19,9 @@ function setScrollLeft(scrollLeft) { this.domElement.scrollLeft = scrollLeft; }
19
19
  const scrollMixins = {
20
20
  onScroll,
21
21
  offScroll,
22
+ scrollTo,
22
23
  getScrollTop,
23
24
  getScrollLeft,
24
- scrollTo,
25
25
  setScrollTop,
26
26
  setScrollLeft
27
27
  };
@@ -1,6 +1,18 @@
1
1
  "use strict";
2
2
 
3
- import { SELECTIONCHANGE_EVENT_TYPE } from "../eventTypes";
3
+ import { CUT_EVENT_TYPE, COPY_EVENT_TYPE, PASTE_EVENT_TYPE, SELECTIONCHANGE_EVENT_TYPE } from "../eventTypes";
4
+
5
+ function onCut(cutHandler, element) { this.onEvent(CUT_EVENT_TYPE, cutHandler, element); }
6
+
7
+ function offCut(cutHandler, element) { this.offEvent(CUT_EVENT_TYPE, cutHandler, element); }
8
+
9
+ function onCopy(copyHandler, element) { this.onEvent(COPY_EVENT_TYPE, copyHandler, element); }
10
+
11
+ function offCopy(copyHandler, element) { this.offEvent(COPY_EVENT_TYPE, copyHandler, element); }
12
+
13
+ function onPaste(pasteHandler, element) { this.onEvent(PASTE_EVENT_TYPE, pasteHandler, element); }
14
+
15
+ function offPaste(pasteHandler, element) { this.offEvent(PASTE_EVENT_TYPE, pasteHandler, element); }
4
16
 
5
17
  function onSelectionChange(selectionChangeHandler, element) { this.onEvent(SELECTIONCHANGE_EVENT_TYPE, selectionChangeHandler, element); }
6
18
 
@@ -36,10 +48,31 @@ function createEventListener(eventType, handler, element) {
36
48
  return eventListener;
37
49
  }
38
50
 
51
+ function getSelectionStart() { return this.domElement.selectionStart; }
52
+
53
+ function getSelectionEnd() { return this.domElement.selectionEnd; }
54
+
55
+ function setSelectionStart(selectionStart) { this.domElement.selectionStart = selectionStart; }
56
+
57
+ function setSelectionEnd(selectionEnd) { this.domElement.selectionEnd = selectionEnd; }
58
+
59
+ function select() { this.domElement.select(); }
60
+
39
61
  const selectionMixins = {
62
+ onCut,
63
+ offCut,
64
+ onCopy,
65
+ offCopy,
66
+ onPaste,
67
+ offPaste,
40
68
  onSelectionChange,
41
69
  offSelectionChange,
42
- createEventListener
70
+ createEventListener,
71
+ getSelectionStart,
72
+ getSelectionEnd,
73
+ setSelectionStart,
74
+ setSelectionEnd,
75
+ select
43
76
  };
44
77
 
45
78
  export default selectionMixins;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ import { getParentElement, getAscendantElements, getNextSiblingElement, getPreviousSiblingElement } from "../mixins/element";
4
+
5
+ const textElementMixins = {
6
+ getParentElement,
7
+ getAscendantElements,
8
+ getNextSiblingElement,
9
+ getPreviousSiblingElement
10
+ };
11
+
12
+ export default textElementMixins;
@@ -2,9 +2,9 @@
2
2
 
3
3
  import Offset from "./offset";
4
4
  import Bounds from "./bounds";
5
- import elementMixins from "./mixins/element";
5
+ import textElementMixins from "./mixins/textElement";
6
6
 
7
- class TextElement {
7
+ export default class TextElement {
8
8
  constructor(text) {
9
9
  this.domElement = document.createTextNode(text); ///
10
10
 
@@ -84,6 +84,4 @@ class TextElement {
84
84
  }
85
85
  }
86
86
 
87
- Object.assign(TextElement.prototype, elementMixins);
88
-
89
- export default TextElement;
87
+ Object.assign(TextElement.prototype, textElementMixins);
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import { DASH } from "../constants";
4
-
5
3
  export function camelCaseToSnakeCase(string) {
6
4
  return string.replace(/([A-Z]+)/g, (match, characters) => {
7
5
  const upperCaseCharacters = characters.toLowerCase(),
8
- snakeCaseCharacters = `${DASH}${upperCaseCharacters}`;
6
+ snakeCaseCharacters = `-${upperCaseCharacters}`;
9
7
 
10
8
  return snakeCaseCharacters;
11
9
  });
package/src/window.js CHANGED
@@ -4,10 +4,12 @@ import keyMixins from "./mixins/key";
4
4
  import eventMixins from "./mixins/event";
5
5
  import mouseMixins from "./mixins/mouse";
6
6
  import clickMixins from "./mixins/click";
7
- import windowMixins from "./mixins/window";
7
+ import focusMixins from "./mixins/focus";
8
+ import scrollMixins from "./mixins/scroll";
8
9
  import customEventMixins from "./mixins/customEvent";
9
10
 
10
11
  import { UNDEFINED } from "./constants";
12
+ import { RESIZE_EVENT_TYPE } from "./eventTypes";
11
13
 
12
14
  class Window {
13
15
  constructor() {
@@ -24,10 +26,6 @@ class Window {
24
26
  Object.assign(target, ...sources);
25
27
  }
26
28
 
27
- addResizeObject() {} ///
28
-
29
- removeResizeObject() {} ///
30
-
31
29
  getWidth() { return this.domElement.innerWidth; } ///
32
30
 
33
31
  getHeight() { return this.domElement.innerHeight; } ///
@@ -37,13 +35,28 @@ class Window {
37
35
  getScrollLeft() { return this.domElement.pageXOffset; } ///
38
36
 
39
37
  getSelection() { return this.domElement.getSelection(); }
38
+
39
+ onResize(resizeHandler, element) {
40
+ const eventType = RESIZE_EVENT_TYPE,
41
+ eventListener = this.addEventListener(eventType, resizeHandler, element);
42
+
43
+ this.domElement.addEventListener(eventType, eventListener);
44
+ }
45
+
46
+ offResize(resizeHandler, element) {
47
+ const eventType = RESIZE_EVENT_TYPE,
48
+ eventListener = this.removeEventListener(eventType, resizeHandler, element);
49
+
50
+ this.domElement.removeEventListener(eventType, eventListener);
51
+ }
40
52
  }
41
53
 
42
54
  Object.assign(Window.prototype, keyMixins);
43
55
  Object.assign(Window.prototype, eventMixins);
44
56
  Object.assign(Window.prototype, mouseMixins);
45
57
  Object.assign(Window.prototype, clickMixins);
46
- Object.assign(Window.prototype, windowMixins);
58
+ Object.assign(Window.prototype, focusMixins);
59
+ Object.assign(Window.prototype, scrollMixins);
47
60
  Object.assign(Window.prototype, customEventMixins);
48
61
 
49
62
  export default (typeof window === UNDEFINED) ? undefined : new Window(); ///
@@ -1,110 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _class;
9
- }
10
- });
11
- var _index = require("../../index");
12
- function _assert_this_initialized(self) {
13
- if (self === void 0) {
14
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
15
- }
16
- return self;
17
- }
18
- function _class_call_check(instance, Constructor) {
19
- if (!(instance instanceof Constructor)) {
20
- throw new TypeError("Cannot call a class as a function");
21
- }
22
- }
23
- function _define_property(obj, key, value) {
24
- if (key in obj) {
25
- Object.defineProperty(obj, key, {
26
- value: value,
27
- enumerable: true,
28
- configurable: true,
29
- writable: true
30
- });
31
- } else {
32
- obj[key] = value;
33
- }
34
- return obj;
35
- }
36
- function _get_prototype_of(o) {
37
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
38
- return o.__proto__ || Object.getPrototypeOf(o);
39
- };
40
- return _get_prototype_of(o);
41
- }
42
- function _inherits(subClass, superClass) {
43
- if (typeof superClass !== "function" && superClass !== null) {
44
- throw new TypeError("Super expression must either be null or a function");
45
- }
46
- subClass.prototype = Object.create(superClass && superClass.prototype, {
47
- constructor: {
48
- value: subClass,
49
- writable: true,
50
- configurable: true
51
- }
52
- });
53
- if (superClass) _set_prototype_of(subClass, superClass);
54
- }
55
- function _possible_constructor_return(self, call) {
56
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
57
- return call;
58
- }
59
- return _assert_this_initialized(self);
60
- }
61
- function _set_prototype_of(o, p) {
62
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
63
- o.__proto__ = p;
64
- return o;
65
- };
66
- return _set_prototype_of(o, p);
67
- }
68
- function _type_of(obj) {
69
- "@swc/helpers - typeof";
70
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
71
- }
72
- function _is_native_reflect_construct() {
73
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
74
- if (Reflect.construct.sham) return false;
75
- if (typeof Proxy === "function") return true;
76
- try {
77
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
78
- return true;
79
- } catch (e) {
80
- return false;
81
- }
82
- }
83
- function _create_super(Derived) {
84
- var hasNativeReflectConstruct = _is_native_reflect_construct();
85
- return function _createSuperInternal() {
86
- var Super = _get_prototype_of(Derived), result;
87
- if (hasNativeReflectConstruct) {
88
- var NewTarget = _get_prototype_of(this).constructor;
89
- result = Reflect.construct(Super, arguments, NewTarget);
90
- } else {
91
- result = Super.apply(this, arguments);
92
- }
93
- return _possible_constructor_return(this, result);
94
- };
95
- }
96
- var _class = /*#__PURE__*/ function(Checkbox) {
97
- _inherits(_class, Checkbox);
98
- var _super = _create_super(_class);
99
- function _class() {
100
- _class_call_check(this, _class);
101
- return _super.apply(this, arguments);
102
- }
103
- return _class;
104
- }(_index.Checkbox);
105
- _define_property(_class, "defaultProperties", {
106
- className: "example",
107
- reference: "example"
108
- });
109
-
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvY2hlY2tib3guanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IENoZWNrYm94IH0gZnJvbSBcIi4uLy4uL2luZGV4XCI7ICAvLy9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgZXh0ZW5kcyBDaGVja2JveCB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwiZXhhbXBsZVwiLFxuICAgIHJlZmVyZW5jZTogXCJleGFtcGxlXCJcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNoZWNrYm94IiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiLCJyZWZlcmVuY2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O3FCQUV5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVWLElBQUEsdUJBQUssQUFBTDs7Ozs7Ozs7RUFBY0EsZUFBUTtBQUNuQyx5QkFBT0MscUJBQW9CO0lBQ3pCQyxXQUFXO0lBQ1hDLFdBQVc7QUFDYiJ9