@desynova-digital/player 4.0.0 → 4.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 (2) hide show
  1. package/package.json +1 -1
  2. package/utils/dom.js +94 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@desynova-digital/player",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "description": "Video Player Package for Contido Application",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/utils/dom.js ADDED
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.blurNode = blurNode;
7
+ exports.findElPosition = findElPosition;
8
+ exports.getPointerPosition = getPointerPosition;
9
+ exports.hasClass = hasClass;
10
+ var _reactDom = require("react-dom");
11
+ /**
12
+ * Offset Left
13
+ * getBoundingClientRect technique from
14
+ * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/
15
+ *
16
+ * @function findElPosition
17
+ * @param {Element} el Element from which to get offset
18
+ * @return {Object}
19
+ */
20
+ function findElPosition(el) {
21
+ var box;
22
+ if (el.getBoundingClientRect && el.parentNode) {
23
+ box = el.getBoundingClientRect();
24
+ }
25
+ if (!box) {
26
+ return {
27
+ left: 0,
28
+ top: 0
29
+ };
30
+ }
31
+ var docEl = document.documentElement;
32
+ var _document = document,
33
+ body = _document.body;
34
+ var clientLeft = docEl.clientLeft || body.clientLeft || 0;
35
+ var scrollLeft = window.pageXOffset || body.scrollLeft;
36
+ var left = box.left + scrollLeft - clientLeft;
37
+ var clientTop = docEl.clientTop || body.clientTop || 0;
38
+ var scrollTop = window.pageYOffset || body.scrollTop;
39
+ var top = box.top + scrollTop - clientTop;
40
+
41
+ // Android sometimes returns slightly off decimal values, so need to round
42
+ return {
43
+ left: Math.round(left),
44
+ top: Math.round(top)
45
+ };
46
+ }
47
+
48
+ /**
49
+ * Get pointer position in element
50
+ * Returns an object with x and y coordinates.
51
+ * The base on the coordinates are the bottom left of the element.
52
+ *
53
+ * @function getPointerPosition
54
+ * @param {Element} el Element on which to get the pointer position on
55
+ * @param {Event} event Event object
56
+ * @return {Object} This object will have x and y
57
+ * coordinates corresponding to the mouse position
58
+ */
59
+ function getPointerPosition(el, event) {
60
+ var position = {};
61
+ var box = findElPosition(el);
62
+ var boxW = el.offsetWidth;
63
+ var boxH = el.offsetHeight;
64
+ var boxY = box.top;
65
+ var boxX = box.left;
66
+ var pageY = event.pageY;
67
+ var pageX = event.pageX;
68
+ if (event.changedTouches) {
69
+ pageX = event.changedTouches[0].pageX;
70
+ pageY = event.changedTouches[0].pageY;
71
+ }
72
+ position.y = Math.max(0, Math.min(1, (boxY - pageY + boxH) / boxH));
73
+ position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));
74
+ return position;
75
+ }
76
+
77
+ // blur an element
78
+ function blurNode(reactNode) {
79
+ var domNode = (0, _reactDom.findDOMNode)(reactNode);
80
+ if (domNode && domNode.blur) {
81
+ domNode.blur();
82
+ }
83
+ }
84
+
85
+ // check if an element has a class name
86
+ function hasClass(elm, cls) {
87
+ var classes = elm.className.split(' ');
88
+ for (var i = 0; i < classes.length; i++) {
89
+ if (classes[i].toLowerCase() === cls.toLowerCase()) {
90
+ return true;
91
+ }
92
+ }
93
+ return false;
94
+ }