@webalternatif/js-core 1.3.0 → 1.4.0
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/dist/cjs/Mouse.js +62 -0
- package/dist/cjs/Translator.js +110 -0
- package/dist/cjs/dom.js +193 -34
- package/dist/cjs/index.js +5 -3
- package/dist/cjs/is.js +3 -1
- package/dist/cjs/string.js +31 -33
- package/dist/cjs/traversal.js +8 -7
- package/dist/esm/Mouse.js +62 -0
- package/dist/esm/Translator.js +110 -0
- package/dist/esm/dom.js +193 -34
- package/dist/esm/index.js +5 -3
- package/dist/esm/is.js +3 -1
- package/dist/esm/string.js +31 -33
- package/dist/esm/traversal.js +8 -7
- package/package.json +2 -1
- package/types/Mouse.d.ts +13 -0
- package/types/Translator.d.ts +34 -0
- package/types/dom.d.ts +28 -28
- package/types/index.d.ts +16 -16
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
3
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
4
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
|
8
|
+
import { isTouchDevice } from "./is.js";
|
|
9
|
+
var Mouse = /*#__PURE__*/function () {
|
|
10
|
+
function Mouse() {
|
|
11
|
+
_classCallCheck(this, Mouse);
|
|
12
|
+
}
|
|
13
|
+
return _createClass(Mouse, null, [{
|
|
14
|
+
key: "getPosition",
|
|
15
|
+
value: function getPosition(ev, element) {
|
|
16
|
+
ev = _assertClassBrand(Mouse, this, _getEvent).call(this, ev);
|
|
17
|
+
var rect = {
|
|
18
|
+
left: 0,
|
|
19
|
+
top: 0
|
|
20
|
+
};
|
|
21
|
+
if (element instanceof Element) {
|
|
22
|
+
var r = element.getBoundingClientRect();
|
|
23
|
+
rect = {
|
|
24
|
+
left: window.scrollX + r.left,
|
|
25
|
+
top: window.scrollY + r.top
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
x: ev.pageX !== undefined ? ev.pageX - rect.left : rect.left,
|
|
30
|
+
y: ev.pageY !== undefined ? ev.pageY - rect.top : rect.top
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}, {
|
|
34
|
+
key: "getViewportPosition",
|
|
35
|
+
value: function getViewportPosition(ev) {
|
|
36
|
+
ev = _assertClassBrand(Mouse, this, _getEvent).call(this, ev);
|
|
37
|
+
return {
|
|
38
|
+
x: ev.clientX,
|
|
39
|
+
y: ev.clientY
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}, {
|
|
43
|
+
key: "getElement",
|
|
44
|
+
value: function getElement(ev) {
|
|
45
|
+
ev = _assertClassBrand(Mouse, this, _getEvent).call(this, ev);
|
|
46
|
+
return window.document.elementFromPoint(ev.clientX, ev.clientY);
|
|
47
|
+
}
|
|
48
|
+
}]);
|
|
49
|
+
}();
|
|
50
|
+
function _getEvent(ev) {
|
|
51
|
+
var _ev$originalEvent;
|
|
52
|
+
if (isTouchDevice()) {
|
|
53
|
+
var orgEvent = ev.originalEvent ? ev.originalEvent : ev;
|
|
54
|
+
if (orgEvent.changedTouches && orgEvent.changedTouches.length) {
|
|
55
|
+
ev = orgEvent.changedTouches[0];
|
|
56
|
+
} else if (orgEvent.touches) {
|
|
57
|
+
ev = orgEvent.touches[0];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return (_ev$originalEvent = ev.originalEvent) !== null && _ev$originalEvent !== void 0 ? _ev$originalEvent : ev;
|
|
61
|
+
}
|
|
62
|
+
export default Mouse;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
3
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
4
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
+
function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
|
|
8
|
+
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
|
9
|
+
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
|
10
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
11
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
12
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
|
13
|
+
import { isFunction, isPlainObject } from "./is.js";
|
|
14
|
+
import { each, extend } from "./traversal.js";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @typedef {string | (() => string)} TranslatorValue
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @typedef {Record<string, Record<string, Record<string, TranslatorValue>>>} TranslatorNsMapping
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @typedef {Record<string, Record<string, TranslatorValue>>} TranslatorCoreMapping
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @typedef {TranslatorNsMapping | TranslatorCoreMapping} TranslatorMapping
|
|
30
|
+
*/
|
|
31
|
+
var _lang = /*#__PURE__*/new WeakMap();
|
|
32
|
+
var _mapping = /*#__PURE__*/new WeakMap();
|
|
33
|
+
var _Translator_brand = /*#__PURE__*/new WeakSet();
|
|
34
|
+
var Translator = /*#__PURE__*/function () {
|
|
35
|
+
/**
|
|
36
|
+
* @param {TranslatorMapping} mapping
|
|
37
|
+
* @param {string} [defaultLang]
|
|
38
|
+
*/
|
|
39
|
+
function Translator(_mapping2, defaultLang) {
|
|
40
|
+
_classCallCheck(this, Translator);
|
|
41
|
+
_classPrivateMethodInitSpec(this, _Translator_brand);
|
|
42
|
+
/** @type string */
|
|
43
|
+
_classPrivateFieldInitSpec(this, _lang, void 0);
|
|
44
|
+
/** @type TranslatorMapping */
|
|
45
|
+
_classPrivateFieldInitSpec(this, _mapping, void 0);
|
|
46
|
+
_assertClassBrand(_Translator_brand, this, _setMapping).call(this, _mapping2);
|
|
47
|
+
this.setLang(defaultLang);
|
|
48
|
+
}
|
|
49
|
+
return _createClass(Translator, [{
|
|
50
|
+
key: "translate",
|
|
51
|
+
value:
|
|
52
|
+
/**
|
|
53
|
+
* @param {string} label
|
|
54
|
+
* @param {string} [namespace]
|
|
55
|
+
* @param {string} [lang]
|
|
56
|
+
* @returns {string}
|
|
57
|
+
*/
|
|
58
|
+
function translate(label, namespace, lang) {
|
|
59
|
+
lang = undefined === lang ? this.getLang() : lang;
|
|
60
|
+
namespace = undefined === namespace ? 'core' : namespace;
|
|
61
|
+
var translationExists = undefined !== _classPrivateFieldGet(_mapping, this)[namespace] && undefined !== _classPrivateFieldGet(_mapping, this)[namespace][lang] && undefined !== _classPrivateFieldGet(_mapping, this)[namespace][lang][label];
|
|
62
|
+
if (translationExists) {
|
|
63
|
+
var tr = _classPrivateFieldGet(_mapping, this)[namespace][lang][label];
|
|
64
|
+
return isFunction(tr) ? tr() : tr;
|
|
65
|
+
}
|
|
66
|
+
return 'en' !== lang ? this.translate(label, namespace, 'en') : label;
|
|
67
|
+
}
|
|
68
|
+
}, {
|
|
69
|
+
key: "_",
|
|
70
|
+
value: function _() {
|
|
71
|
+
return this.translate.apply(this, arguments);
|
|
72
|
+
}
|
|
73
|
+
}, {
|
|
74
|
+
key: "getLang",
|
|
75
|
+
value: function getLang() {
|
|
76
|
+
return _classPrivateFieldGet(_lang, this);
|
|
77
|
+
}
|
|
78
|
+
}, {
|
|
79
|
+
key: "setLang",
|
|
80
|
+
value: function setLang(lang) {
|
|
81
|
+
if (!lang) {
|
|
82
|
+
if (typeof navigator !== 'undefined' && navigator.language) {
|
|
83
|
+
lang = navigator.language;
|
|
84
|
+
} else if (typeof process !== 'undefined' && process.env) {
|
|
85
|
+
lang = process.env.LANG || process.env.LC_ALL || process.env.LC_MESSAGES;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
_classPrivateFieldSet(_lang, this, (lang || 'en').trim().toLowerCase().slice(0, 2));
|
|
89
|
+
}
|
|
90
|
+
}]);
|
|
91
|
+
}();
|
|
92
|
+
function _setMapping(mapping) {
|
|
93
|
+
var nsMapping = {},
|
|
94
|
+
coreMapping = {};
|
|
95
|
+
each(mapping, function (ns, langs) {
|
|
96
|
+
each(langs, function (lang, trads) {
|
|
97
|
+
if (isPlainObject(trads)) {
|
|
98
|
+
if (undefined === nsMapping[ns]) nsMapping[ns] = {};
|
|
99
|
+
nsMapping[ns][lang] = trads;
|
|
100
|
+
} else {
|
|
101
|
+
if (undefined === coreMapping[ns]) coreMapping[ns] = {};
|
|
102
|
+
coreMapping[ns][lang] = trads;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
_classPrivateFieldSet(_mapping, this, extend(true, nsMapping, {
|
|
107
|
+
core: extend({}, nsMapping.core || {}, coreMapping)
|
|
108
|
+
}));
|
|
109
|
+
}
|
|
110
|
+
export { Translator as default };
|
package/dist/cjs/dom.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
4
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
1
5
|
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
2
6
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
7
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
@@ -8,8 +12,109 @@ import { isArray, isArrayLike, isFunction, isObject, isPlainObject, isString } f
|
|
|
8
12
|
import { camelCase } from "./string.js";
|
|
9
13
|
import { each, foreach, map } from "./traversal.js";
|
|
10
14
|
import { inArray } from "./array.js";
|
|
15
|
+
import Mouse from "./Mouse.js";
|
|
11
16
|
var cssNumber = ['animationIterationCount', 'aspectRatio', 'borderImageSlice', 'columnCount', 'flexGrow', 'flexShrink', 'fontWeight', 'gridArea', 'gridColumn', 'gridColumnEnd', 'gridColumnStart', 'gridRow', 'gridRowEnd', 'gridRowStart', 'lineHeight', 'opacity', 'order', 'orphans', 'scale', 'widows', 'zIndex', 'zoom', 'fillOpacity', 'floodOpacity', 'stopOpacity', 'strokeMiterlimit', 'strokeOpacity'];
|
|
12
|
-
var LISTENERS = new
|
|
17
|
+
var LISTENERS = new Map();
|
|
18
|
+
var CUSTOM_EVENTS = ['longtap', 'dbltap'];
|
|
19
|
+
var ENABLED_EVENTS = new Set();
|
|
20
|
+
var _teardownLongTap = null;
|
|
21
|
+
var _teardownDblTap = null;
|
|
22
|
+
var supplyEvent = function supplyEvent(event) {
|
|
23
|
+
if (ENABLED_EVENTS !== null && ENABLED_EVENTS !== void 0 && ENABLED_EVENTS.has(event)) return;
|
|
24
|
+
if (event === 'longtap') enableLongTap();
|
|
25
|
+
if (event === 'dbltap') enableDblTap();
|
|
26
|
+
ENABLED_EVENTS.add(event);
|
|
27
|
+
};
|
|
28
|
+
var enableLongTap = function enableLongTap() {
|
|
29
|
+
var LONGPRESS_DELAY = 800;
|
|
30
|
+
var MOVE_TOLERANCE = 8;
|
|
31
|
+
var timer = null;
|
|
32
|
+
var startX = 0;
|
|
33
|
+
var startY = 0;
|
|
34
|
+
var target = null;
|
|
35
|
+
var start = function start(ev) {
|
|
36
|
+
target = ev.target;
|
|
37
|
+
var pos = Mouse.getViewportPosition(ev);
|
|
38
|
+
startX = pos.x;
|
|
39
|
+
startY = pos.y;
|
|
40
|
+
timer = setTimeout(function () {
|
|
41
|
+
target.dispatchEvent(new CustomEvent('longtap', {
|
|
42
|
+
bubbles: true,
|
|
43
|
+
cancelable: true,
|
|
44
|
+
detail: {
|
|
45
|
+
originalEvent: ev
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
timer = null;
|
|
49
|
+
}, LONGPRESS_DELAY);
|
|
50
|
+
};
|
|
51
|
+
var move = function move(ev) {
|
|
52
|
+
if (!timer) return;
|
|
53
|
+
var pos = Mouse.getViewportPosition(ev);
|
|
54
|
+
if (Math.hypot(pos.x - startX, pos.y - startY) > MOVE_TOLERANCE) {
|
|
55
|
+
clearTimeout(timer);
|
|
56
|
+
timer = null;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
var end = function end() {
|
|
60
|
+
if (timer) clearTimeout(timer);
|
|
61
|
+
timer = null;
|
|
62
|
+
};
|
|
63
|
+
document.addEventListener('touchstart', start, {
|
|
64
|
+
passive: true
|
|
65
|
+
});
|
|
66
|
+
document.addEventListener('touchmove', move, {
|
|
67
|
+
passive: true
|
|
68
|
+
});
|
|
69
|
+
document.addEventListener('touchend', end);
|
|
70
|
+
document.addEventListener('touchcancel', end);
|
|
71
|
+
_teardownLongTap = function teardownLongTap() {
|
|
72
|
+
document.removeEventListener('touchstart', start, {
|
|
73
|
+
passive: true
|
|
74
|
+
});
|
|
75
|
+
document.removeEventListener('touchmove', move, {
|
|
76
|
+
passive: true
|
|
77
|
+
});
|
|
78
|
+
document.removeEventListener('touchend', end);
|
|
79
|
+
document.removeEventListener('touchcancel', end);
|
|
80
|
+
_teardownLongTap = null;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
var enableDblTap = function enableDblTap() {
|
|
84
|
+
var DBLTAP_DELAY = 300;
|
|
85
|
+
var MOVE_TOLERANCE = 8;
|
|
86
|
+
var lastTapTime = 0;
|
|
87
|
+
var lastPos = null;
|
|
88
|
+
var start = function start(ev) {
|
|
89
|
+
var target = ev.target;
|
|
90
|
+
if (Date.now() - lastTapTime > DBLTAP_DELAY) {
|
|
91
|
+
lastTapTime = Date.now();
|
|
92
|
+
lastPos = Mouse.getViewportPosition(ev);
|
|
93
|
+
} else {
|
|
94
|
+
var pos = Mouse.getViewportPosition(ev);
|
|
95
|
+
if (Math.hypot(pos.x - lastPos.x, pos.y - lastPos.y) <= MOVE_TOLERANCE) {
|
|
96
|
+
target.dispatchEvent(new CustomEvent('dbltap', {
|
|
97
|
+
bubbles: true,
|
|
98
|
+
cancelable: true,
|
|
99
|
+
detail: {
|
|
100
|
+
originalEvent: ev
|
|
101
|
+
}
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
lastTapTime = Date.now();
|
|
105
|
+
lastPos = pos;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
document.addEventListener('touchstart', start, {
|
|
109
|
+
passive: true
|
|
110
|
+
});
|
|
111
|
+
_teardownDblTap = function teardownDblTap() {
|
|
112
|
+
document.removeEventListener('touchstart', start, {
|
|
113
|
+
passive: true
|
|
114
|
+
});
|
|
115
|
+
_teardownDblTap = null;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
13
118
|
|
|
14
119
|
/**
|
|
15
120
|
* @param {any} o
|
|
@@ -50,7 +155,7 @@ export var getStyle = function getStyle(el, cssRule) {
|
|
|
50
155
|
}
|
|
51
156
|
return el.style[camelCase(cssRule)] || '';
|
|
52
157
|
};
|
|
53
|
-
|
|
158
|
+
var dom = {
|
|
54
159
|
/**
|
|
55
160
|
* @param {Element} el
|
|
56
161
|
* @param {string} [selector]
|
|
@@ -68,16 +173,16 @@ export default {
|
|
|
68
173
|
return this.first(this.children(el, selector));
|
|
69
174
|
},
|
|
70
175
|
/**
|
|
71
|
-
* @param {Element|Document} refEl
|
|
72
|
-
* @param {string|Element|NodeList|Array<Element>}
|
|
73
|
-
* @returns {Element
|
|
176
|
+
* @param {Element|Document|string} refEl
|
|
177
|
+
* @param {string|Element|NodeList|Array<Element>} selector
|
|
178
|
+
* @returns {Element}
|
|
74
179
|
*/
|
|
75
180
|
findOne: function findOne(refEl, selector) {
|
|
76
181
|
var _this$find$;
|
|
77
182
|
return (_this$find$ = this.find(refEl, selector)[0]) !== null && _this$find$ !== void 0 ? _this$find$ : null;
|
|
78
183
|
},
|
|
79
184
|
/**
|
|
80
|
-
* @param {Element|Document} refEl
|
|
185
|
+
* @param {Element|Document|string} refEl
|
|
81
186
|
* @param {string|Element|NodeList|Array<Element>} selector
|
|
82
187
|
* @returns {Array<Element>}
|
|
83
188
|
*/
|
|
@@ -97,12 +202,16 @@ export default {
|
|
|
97
202
|
return null;
|
|
98
203
|
});
|
|
99
204
|
}
|
|
100
|
-
|
|
205
|
+
try {
|
|
206
|
+
return Array.from(refEl.querySelectorAll(selector));
|
|
207
|
+
} catch (e) {
|
|
208
|
+
return [];
|
|
209
|
+
}
|
|
101
210
|
},
|
|
102
211
|
/**
|
|
103
|
-
* @param {Element} el
|
|
212
|
+
* @param {Element|string} el
|
|
104
213
|
* @param {string} data
|
|
105
|
-
* @param {string} value
|
|
214
|
+
* @param {string} [value]
|
|
106
215
|
* @returns {Element|null}
|
|
107
216
|
*/
|
|
108
217
|
findOneByData: function findOneByData(el, data, value) {
|
|
@@ -110,9 +219,9 @@ export default {
|
|
|
110
219
|
return (_this$findByData$ = this.findByData(el, data, value)[0]) !== null && _this$findByData$ !== void 0 ? _this$findByData$ : null;
|
|
111
220
|
},
|
|
112
221
|
/**
|
|
113
|
-
* @param {Element} el
|
|
222
|
+
* @param {Element|string} el
|
|
114
223
|
* @param {string} data
|
|
115
|
-
* @param {string} value
|
|
224
|
+
* @param {string} [value]
|
|
116
225
|
* @returns {Element[]}
|
|
117
226
|
*/
|
|
118
227
|
findByData: function findByData(el, data, value) {
|
|
@@ -218,7 +327,7 @@ export default {
|
|
|
218
327
|
for (var _len2 = arguments.length, children = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
219
328
|
children[_key2 - 1] = arguments[_key2];
|
|
220
329
|
}
|
|
221
|
-
foreach(children, function (child) {
|
|
330
|
+
foreach([].concat(children).reverse(), function (child) {
|
|
222
331
|
if (isString(child)) {
|
|
223
332
|
child = _this2.create(child);
|
|
224
333
|
}
|
|
@@ -249,7 +358,7 @@ export default {
|
|
|
249
358
|
},
|
|
250
359
|
/**
|
|
251
360
|
* @param {Element} el
|
|
252
|
-
* @param {string|Element} selector
|
|
361
|
+
* @param {string|Element} [selector]
|
|
253
362
|
* @returns {Element|null}
|
|
254
363
|
*/
|
|
255
364
|
closest: function closest(el, selector) {
|
|
@@ -266,6 +375,9 @@ export default {
|
|
|
266
375
|
}
|
|
267
376
|
return null;
|
|
268
377
|
}
|
|
378
|
+
if (undefined === selector) {
|
|
379
|
+
return el;
|
|
380
|
+
}
|
|
269
381
|
return el.closest(selector);
|
|
270
382
|
},
|
|
271
383
|
/**
|
|
@@ -513,7 +625,11 @@ export default {
|
|
|
513
625
|
handler = selector;
|
|
514
626
|
selector = null;
|
|
515
627
|
}
|
|
516
|
-
foreach(events.split(' '), function (
|
|
628
|
+
foreach(events.split(' '), function (rawEvent) {
|
|
629
|
+
var _rawEvent$split = rawEvent.split('.'),
|
|
630
|
+
_rawEvent$split2 = _slicedToArray(_rawEvent$split, 2),
|
|
631
|
+
event = _rawEvent$split2[0],
|
|
632
|
+
namespace = _rawEvent$split2[1];
|
|
517
633
|
var listener = function listener(ev) {
|
|
518
634
|
if (!selector) {
|
|
519
635
|
handler.call(el, ev);
|
|
@@ -522,11 +638,11 @@ export default {
|
|
|
522
638
|
var currentTarget = ev.target;
|
|
523
639
|
while (currentTarget && currentTarget !== el) {
|
|
524
640
|
if (_this5.matches(currentTarget, selector)) {
|
|
525
|
-
var wrappedEv =
|
|
641
|
+
var wrappedEv = {
|
|
526
642
|
originalEvent: ev,
|
|
527
643
|
type: ev.type,
|
|
528
|
-
currentTarget: currentTarget,
|
|
529
644
|
target: ev.target,
|
|
645
|
+
currentTarget: currentTarget,
|
|
530
646
|
relatedTarget: ev.relatedTarget,
|
|
531
647
|
button: ev.button,
|
|
532
648
|
pageX: ev.pageX,
|
|
@@ -540,7 +656,7 @@ export default {
|
|
|
540
656
|
stopImmediatePropagation: function stopImmediatePropagation() {
|
|
541
657
|
return ev.stopImmediatePropagation.apply(ev, arguments);
|
|
542
658
|
}
|
|
543
|
-
}
|
|
659
|
+
};
|
|
544
660
|
handler.call(currentTarget, wrappedEv);
|
|
545
661
|
break;
|
|
546
662
|
}
|
|
@@ -557,16 +673,20 @@ export default {
|
|
|
557
673
|
handler: handler,
|
|
558
674
|
selector: selector,
|
|
559
675
|
listener: listener,
|
|
676
|
+
namespace: namespace,
|
|
560
677
|
options: options
|
|
561
678
|
});
|
|
679
|
+
if (inArray(event, CUSTOM_EVENTS)) {
|
|
680
|
+
supplyEvent(event);
|
|
681
|
+
}
|
|
562
682
|
el.addEventListener(event, listener, options);
|
|
563
683
|
});
|
|
564
684
|
return el;
|
|
565
685
|
},
|
|
566
686
|
/**
|
|
567
687
|
* @param {Element|Document|Window} el
|
|
568
|
-
* @param {string} events
|
|
569
|
-
* @param {string|Element|function} selector
|
|
688
|
+
* @param {string} [events]
|
|
689
|
+
* @param {string|Element|function} [selector]
|
|
570
690
|
* @param {function|AddEventListenerOptions|boolean} [handler]
|
|
571
691
|
* @param {AddEventListenerOptions|boolean} [options]
|
|
572
692
|
* @returns {Element}
|
|
@@ -579,10 +699,19 @@ export default {
|
|
|
579
699
|
}
|
|
580
700
|
var store = LISTENERS.get(el);
|
|
581
701
|
if (!store) return el;
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
702
|
+
var evts = events ? events.split(' ') : [undefined];
|
|
703
|
+
foreach(evts, function (rawEvent) {
|
|
704
|
+
var _ref = undefined === rawEvent ? [undefined, undefined] : rawEvent.split('.'),
|
|
705
|
+
_ref2 = _slicedToArray(_ref, 2),
|
|
706
|
+
event = _ref2[0],
|
|
707
|
+
namespace = _ref2[1];
|
|
708
|
+
event = !event ? undefined : event;
|
|
709
|
+
var hasEvent = undefined !== event;
|
|
710
|
+
var hasNs = undefined !== namespace;
|
|
711
|
+
foreach(_toConsumableArray(store).reverse(), function (l) {
|
|
712
|
+
var match = !hasEvent && !hasNs || hasEvent && !hasNs && l.event === event || !hasEvent && hasNs && l.namespace === namespace || hasEvent && hasNs && l.event === event && l.namespace === namespace;
|
|
713
|
+
if (match && (undefined === event || l.event === event) && (undefined === handler || l.handler === handler) && (undefined === selector || l.selector === selector) && (undefined === namespace || l.namespace === namespace) && (undefined === options || l.options === options)) {
|
|
714
|
+
el.removeEventListener(l.event, l.listener, l.options);
|
|
586
715
|
var index = store.indexOf(l);
|
|
587
716
|
index !== -1 && store.splice(index, 1);
|
|
588
717
|
}
|
|
@@ -620,14 +749,14 @@ export default {
|
|
|
620
749
|
* @param {Element} el
|
|
621
750
|
* @param {string} selectorClosest
|
|
622
751
|
* @param {string} selectorFind
|
|
623
|
-
* @returns {
|
|
752
|
+
* @returns {Array<Element>}
|
|
624
753
|
*/
|
|
625
754
|
closestFind: function closestFind(el, selectorClosest, selectorFind) {
|
|
626
755
|
var closest = this.closest(el, selectorClosest);
|
|
627
756
|
if (closest) {
|
|
628
757
|
return this.find(closest, selectorFind);
|
|
629
758
|
}
|
|
630
|
-
return
|
|
759
|
+
return [];
|
|
631
760
|
},
|
|
632
761
|
/**
|
|
633
762
|
* @param {Element} el
|
|
@@ -657,18 +786,30 @@ export default {
|
|
|
657
786
|
*/
|
|
658
787
|
last: function last(nodeList) {
|
|
659
788
|
var _arr;
|
|
789
|
+
if (nodeList instanceof Element) return nodeList;
|
|
660
790
|
var arr = Array.from(nodeList);
|
|
661
791
|
return (_arr = arr[arr.length - 1]) !== null && _arr !== void 0 ? _arr : null;
|
|
662
792
|
},
|
|
663
793
|
/**
|
|
664
794
|
* @param {string} html
|
|
665
|
-
* @returns {Element|null}
|
|
795
|
+
* @returns {Element|DocumentFragment|null}
|
|
666
796
|
*/
|
|
667
797
|
create: function create(html) {
|
|
668
|
-
|
|
798
|
+
html += '';
|
|
799
|
+
var isTagName = function isTagName(s) {
|
|
800
|
+
return /^[A-Za-z][A-Za-z0-9-]*$/.test(s);
|
|
801
|
+
};
|
|
802
|
+
if (isTagName(html)) {
|
|
803
|
+
return document.createElement(html);
|
|
804
|
+
}
|
|
669
805
|
var tpl = document.createElement('template');
|
|
670
806
|
tpl.innerHTML = html.trim();
|
|
671
|
-
|
|
807
|
+
var frag = tpl.content;
|
|
808
|
+
if (frag.childElementCount === 1 && frag.children.length === 1) {
|
|
809
|
+
return frag.firstElementChild;
|
|
810
|
+
}
|
|
811
|
+
if (!frag.firstChild) return null;
|
|
812
|
+
return frag.cloneNode(true);
|
|
672
813
|
},
|
|
673
814
|
/**
|
|
674
815
|
* @param {NodeList|Array<Element>} nodeList
|
|
@@ -720,13 +861,13 @@ export default {
|
|
|
720
861
|
return el;
|
|
721
862
|
},
|
|
722
863
|
/**
|
|
723
|
-
* @param {Element|NodeList} el
|
|
864
|
+
* @param {Element|NodeList|Array<Element>} el
|
|
724
865
|
* @param {string|Element} selector
|
|
725
|
-
* @return {Element
|
|
866
|
+
* @return {Array<Element>}
|
|
726
867
|
*/
|
|
727
868
|
not: function not(el, selector) {
|
|
728
869
|
var elements = el instanceof Element ? [el] : Array.from(el);
|
|
729
|
-
var selectorIsString =
|
|
870
|
+
var selectorIsString = isString(selector);
|
|
730
871
|
return elements.filter(function (e) {
|
|
731
872
|
if (!(e instanceof Element)) return false;
|
|
732
873
|
return selectorIsString ? !e.matches(selector) : e !== selector;
|
|
@@ -747,6 +888,7 @@ export default {
|
|
|
747
888
|
* @param {string|Element} selector
|
|
748
889
|
*/
|
|
749
890
|
matches: function matches(el, selector) {
|
|
891
|
+
if (!el) return false;
|
|
750
892
|
return selector instanceof Element ? selector === el : el.matches(selector);
|
|
751
893
|
},
|
|
752
894
|
/**
|
|
@@ -759,14 +901,22 @@ export default {
|
|
|
759
901
|
},
|
|
760
902
|
/**
|
|
761
903
|
* @param {Element} el
|
|
762
|
-
* @param {Element[]} children
|
|
904
|
+
* @param {NodeList|Array<Element>|string[]} children
|
|
763
905
|
* @returns {Element}
|
|
764
906
|
*/
|
|
765
907
|
replaceChildren: function replaceChildren(el) {
|
|
908
|
+
var _this7 = this;
|
|
909
|
+
var nodes = [];
|
|
766
910
|
for (var _len4 = arguments.length, children = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
|
|
767
911
|
children[_key4 - 1] = arguments[_key4];
|
|
768
912
|
}
|
|
769
|
-
|
|
913
|
+
foreach(children, function (child) {
|
|
914
|
+
if (isString(child)) {
|
|
915
|
+
child = _this7.create(child);
|
|
916
|
+
}
|
|
917
|
+
if (child) nodes.push(child);
|
|
918
|
+
});
|
|
919
|
+
el.replaceChildren.apply(el, nodes);
|
|
770
920
|
return el;
|
|
771
921
|
},
|
|
772
922
|
/**
|
|
@@ -792,4 +942,13 @@ export default {
|
|
|
792
942
|
left: rect.left + wOffset.left
|
|
793
943
|
};
|
|
794
944
|
}
|
|
795
|
-
};
|
|
945
|
+
};
|
|
946
|
+
if ('test' === process.env.NODE_ENV) {
|
|
947
|
+
dom.__resetCustomEventsForTests = function () {
|
|
948
|
+
var _teardownLongTap2, _teardownDblTap2;
|
|
949
|
+
ENABLED_EVENTS.clear();
|
|
950
|
+
(_teardownLongTap2 = _teardownLongTap) === null || _teardownLongTap2 === void 0 || _teardownLongTap2();
|
|
951
|
+
(_teardownDblTap2 = _teardownDblTap) === null || _teardownDblTap2 === void 0 || _teardownDblTap2();
|
|
952
|
+
};
|
|
953
|
+
}
|
|
954
|
+
export default dom;
|
package/dist/cjs/index.js
CHANGED
|
@@ -13,8 +13,9 @@ import * as traversal from './traversal.js';
|
|
|
13
13
|
import dom, { getStyle, isDomElement, isWindow, isDocument } from './dom.js';
|
|
14
14
|
import * as math from './math.js';
|
|
15
15
|
import * as utils from './utils.js';
|
|
16
|
-
import * as i18n from './
|
|
16
|
+
import * as i18n from './Translator.js';
|
|
17
17
|
import eventDispatcher from './eventDispatcher.js';
|
|
18
|
+
import Mouse from './Mouse.js';
|
|
18
19
|
var webf = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, stringFunctions), arrayFunctions), traversal), is), random), {}, {
|
|
19
20
|
dom: dom,
|
|
20
21
|
isWindow: isWindow,
|
|
@@ -22,7 +23,8 @@ var webf = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread
|
|
|
22
23
|
isDomElement: isDomElement,
|
|
23
24
|
getStyle: getStyle
|
|
24
25
|
}, math), utils), i18n), {}, {
|
|
25
|
-
eventDispatcher: eventDispatcher
|
|
26
|
+
eventDispatcher: eventDispatcher,
|
|
27
|
+
Mouse: Mouse
|
|
26
28
|
});
|
|
27
29
|
export default webf;
|
|
28
|
-
export { stringFunctions, arrayFunctions, traversal, is, random, getStyle, dom, math, utils, eventDispatcher };
|
|
30
|
+
export { stringFunctions, arrayFunctions, traversal, is, random, getStyle, dom, math, utils, eventDispatcher, Mouse };
|
package/dist/cjs/is.js
CHANGED
|
@@ -24,7 +24,9 @@ export var isUndefined = function isUndefined(v) {
|
|
|
24
24
|
return typeof v === 'undefined';
|
|
25
25
|
};
|
|
26
26
|
export var isArrayLike = function isArrayLike(o) {
|
|
27
|
-
return
|
|
27
|
+
return !!o && !isString(o) && !isFunction(o) && isInt(o.length)
|
|
28
|
+
// && o.length >= 0
|
|
29
|
+
&& Number.isFinite(o.length);
|
|
28
30
|
};
|
|
29
31
|
export var isArray = function isArray(a) {
|
|
30
32
|
return Array.isArray(a);
|