@webalternatif/js-core 1.5.4 → 1.6.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/README.md +54 -2
- package/dist/cjs/Mouse.js +27 -10
- package/dist/cjs/Translator.js +5 -9
- package/dist/cjs/array.js +42 -7
- package/dist/cjs/dom.js +41 -262
- package/dist/cjs/index.js +64 -6
- package/dist/cjs/is.js +78 -5
- package/dist/cjs/onOff.js +308 -0
- package/dist/esm/Mouse.js +27 -10
- package/dist/esm/Translator.js +5 -9
- package/dist/esm/array.js +42 -7
- package/dist/esm/dom.js +42 -262
- package/dist/esm/index.js +69 -4
- package/dist/esm/is.js +79 -5
- package/dist/esm/onOff.js +299 -0
- package/package.json +11 -7
- package/types/Mouse.d.ts +20 -5
- package/types/Translator.d.ts +3 -3
- package/types/array.d.ts +2 -1
- package/types/dom.d.ts +63 -67
- package/types/index.d.ts +13 -63
- package/types/is.d.ts +3 -3
- package/types/onOff.d.ts +19 -0
package/dist/cjs/index.js
CHANGED
|
@@ -51,10 +51,9 @@ var math = _interopRequireWildcard(require("./math.js"));
|
|
|
51
51
|
exports.math = math;
|
|
52
52
|
var utils = _interopRequireWildcard(require("./utils.js"));
|
|
53
53
|
exports.utils = utils;
|
|
54
|
-
var _Translator = _interopRequireWildcard(require("./Translator.js"));
|
|
55
|
-
var i18n = _Translator;
|
|
56
54
|
var _eventDispatcher = _interopRequireDefault(require("./eventDispatcher.js"));
|
|
57
55
|
var _Mouse = _interopRequireDefault(require("./Mouse.js"));
|
|
56
|
+
var _Translator = _interopRequireDefault(require("./Translator.js"));
|
|
58
57
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
59
58
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
60
59
|
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); }
|
|
@@ -63,11 +62,70 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
63
62
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
64
63
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
65
64
|
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); }
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Main entry point of js-core.
|
|
67
|
+
*
|
|
68
|
+
* Provides pure JavaScript utility functions such as string, array,
|
|
69
|
+
* type checking, traversal, math and other helpers.
|
|
70
|
+
*
|
|
71
|
+
* @module webf
|
|
72
|
+
*/
|
|
73
|
+
var webf = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, stringFunctions), arrayFunctions), traversal), is), random), {}, {
|
|
68
74
|
isWindow: _dom.isWindow,
|
|
69
75
|
isDocument: _dom.isDocument,
|
|
70
76
|
isDomElement: _dom.isDomElement,
|
|
71
77
|
getStyle: _dom.getStyle
|
|
72
|
-
}, math), utils)
|
|
73
|
-
|
|
78
|
+
}, math), utils);
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Default export containing pure utility functions.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* import webf from '@webalternatif/js-core'
|
|
85
|
+
* webf.unique([1,2,2])
|
|
86
|
+
*/
|
|
87
|
+
var _default = exports["default"] = webf;
|
|
88
|
+
/**
|
|
89
|
+
* String utility functions.
|
|
90
|
+
* @module stringFunctions
|
|
91
|
+
*/
|
|
92
|
+
/**
|
|
93
|
+
* Array utility functions.
|
|
94
|
+
* @module arrayFunctions
|
|
95
|
+
*/
|
|
96
|
+
/**
|
|
97
|
+
* DOM manipulation and event helpers.
|
|
98
|
+
* Must be imported explicitly.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* import { dom } from '@webalternatif/js-core'
|
|
102
|
+
* dom.on(el, 'click', (ev) => {
|
|
103
|
+
* doSomething(ev.currentTarget)
|
|
104
|
+
* })
|
|
105
|
+
*
|
|
106
|
+
* @module dom
|
|
107
|
+
*/
|
|
108
|
+
/**
|
|
109
|
+
* Lightweight custom event dispatcher (pub/sub).
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* import { eventDispatcher } from '@webalternatif/js-core'
|
|
113
|
+
* const dispatcher = eventDispatcher()
|
|
114
|
+
* dispatcher.addListener('save', (eventName, arg1, arg2) => {})
|
|
115
|
+
* dispatcher.dispatch('save', arg1, arg2)
|
|
116
|
+
*
|
|
117
|
+
* @module eventDispatcher
|
|
118
|
+
*/
|
|
119
|
+
/**
|
|
120
|
+
* Mouse utilities.
|
|
121
|
+
* @module Mouse
|
|
122
|
+
*/
|
|
123
|
+
/**
|
|
124
|
+
* Simple translation utility.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* import { Translator } from '@webalternatif/js-core'
|
|
128
|
+
* const t = new Translator({ en: { hi: 'Hello' } })
|
|
129
|
+
*
|
|
130
|
+
* @module Translator
|
|
131
|
+
*/
|
package/dist/cjs/is.js
CHANGED
|
@@ -6,15 +6,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.isUndefined = exports.isTouchDevice = exports.isString = exports.isScalar = exports.isPlainObject = exports.isObject = exports.isInteger = exports.isInt = exports.isFunction = exports.isFloat = exports.isEventSupported = exports.isEvent = exports.isDate = exports.isBoolean = exports.isBool = exports.isArrayLike = exports.isArray = void 0;
|
|
7
7
|
var _array = require("./array.js");
|
|
8
8
|
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); }
|
|
9
|
+
/**
|
|
10
|
+
* @param {any} str
|
|
11
|
+
* @returns {boolean}
|
|
12
|
+
*/
|
|
9
13
|
var isString = exports.isString = function isString(str) {
|
|
10
14
|
return typeof str == 'string' || Object.prototype.toString.call(str) === '[object String]';
|
|
11
15
|
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @param {any} o
|
|
19
|
+
* @returns {boolean}
|
|
20
|
+
*/
|
|
12
21
|
var isObject = exports.isObject = function isObject(o) {
|
|
13
22
|
return !!o && !isArray(o) && _typeof(o) === 'object';
|
|
14
23
|
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @param {any} f
|
|
27
|
+
* @returns {boolean}
|
|
28
|
+
*/
|
|
15
29
|
var isFunction = exports.isFunction = function isFunction(f) {
|
|
16
30
|
return !!f && typeof f === 'function';
|
|
17
31
|
};
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @param {any} o
|
|
35
|
+
* @returns {boolean}
|
|
36
|
+
*/
|
|
18
37
|
var isPlainObject = exports.isPlainObject = function isPlainObject(o) {
|
|
19
38
|
if (false === isObject(o)) return false;
|
|
20
39
|
if (undefined === o.constructor) return true;
|
|
@@ -22,38 +41,88 @@ var isPlainObject = exports.isPlainObject = function isPlainObject(o) {
|
|
|
22
41
|
if (o.constructor.prototype.hasOwnProperty('isPrototypeOf') === false) return false;
|
|
23
42
|
return true;
|
|
24
43
|
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @param {any} b
|
|
47
|
+
* @returns {boolean}
|
|
48
|
+
*/
|
|
25
49
|
var isBoolean = exports.isBoolean = function isBoolean(b) {
|
|
26
50
|
return b === true || b === false;
|
|
27
51
|
};
|
|
28
52
|
var isBool = exports.isBool = isBoolean;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @param {any} v
|
|
56
|
+
* @returns {boolean}
|
|
57
|
+
*/
|
|
29
58
|
var isUndefined = exports.isUndefined = function isUndefined(v) {
|
|
30
59
|
return typeof v === 'undefined';
|
|
31
60
|
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @param {any} o
|
|
64
|
+
* @returns {boolean}
|
|
65
|
+
*/
|
|
32
66
|
var isArrayLike = exports.isArrayLike = function isArrayLike(o) {
|
|
33
67
|
return !!o && !isString(o) && !isFunction(o) && isInt(o.length)
|
|
34
68
|
// && o.length >= 0
|
|
35
69
|
&& Number.isFinite(o.length);
|
|
36
70
|
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @param {any} a
|
|
74
|
+
* @returns {boolean}
|
|
75
|
+
*/
|
|
37
76
|
var isArray = exports.isArray = function isArray(a) {
|
|
38
77
|
return Array.isArray(a);
|
|
39
78
|
};
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @param {any} o
|
|
82
|
+
* @returns {boolean}
|
|
83
|
+
*/
|
|
40
84
|
var isDate = exports.isDate = function isDate(o) {
|
|
41
85
|
return !!o && Object.prototype.toString.call(o) === '[object Date]';
|
|
42
86
|
};
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* @param {any} o
|
|
90
|
+
* @returns {boolean}
|
|
91
|
+
*/
|
|
43
92
|
var isEvent = exports.isEvent = function isEvent(o) {
|
|
44
93
|
return isObject(o) && (!!o.preventDefault || /\[object Event\]/.test(o.constructor.toString()));
|
|
45
94
|
};
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @param {any} n
|
|
98
|
+
* @returns {boolean}
|
|
99
|
+
*/
|
|
46
100
|
var isInteger = exports.isInteger = function isInteger(n) {
|
|
47
|
-
return /^[
|
|
101
|
+
return /^[\-+]?\d+$/.test(n + '');
|
|
48
102
|
};
|
|
49
103
|
var isInt = exports.isInt = isInteger;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* @param {any} n
|
|
107
|
+
* @returns {boolean}
|
|
108
|
+
*/
|
|
50
109
|
var isFloat = exports.isFloat = function isFloat(n) {
|
|
51
|
-
return /^[
|
|
110
|
+
return /^[\-+]?\d+(\.\d+)?$/.test(n + '');
|
|
52
111
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* @param {any} v
|
|
115
|
+
* @returns {boolean}
|
|
116
|
+
*/
|
|
117
|
+
var isScalar = exports.isScalar = function isScalar(v) {
|
|
118
|
+
var type = _typeof(v);
|
|
119
|
+
return null === v || (0, _array.inArray)(type, ['string', 'number', 'bigint', 'symbol', 'boolean']);
|
|
56
120
|
};
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @param {string} eventName
|
|
124
|
+
* @returns {boolean}
|
|
125
|
+
*/
|
|
57
126
|
var isEventSupported = exports.isEventSupported = function () {
|
|
58
127
|
var TAGNAMES = {
|
|
59
128
|
select: 'input',
|
|
@@ -73,6 +142,10 @@ var isEventSupported = exports.isEventSupported = function () {
|
|
|
73
142
|
}
|
|
74
143
|
return isEventSupported;
|
|
75
144
|
}();
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* @returns {boolean}
|
|
148
|
+
*/
|
|
76
149
|
var isTouchDevice = exports.isTouchDevice = function isTouchDevice() {
|
|
77
150
|
return isEventSupported('touchstart');
|
|
78
151
|
};
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.__resetCustomEventsForTests = __resetCustomEventsForTests;
|
|
7
|
+
exports.off = off;
|
|
8
|
+
exports.on = on;
|
|
9
|
+
var _is = require("./is.js");
|
|
10
|
+
var _traversal = require("./traversal.js");
|
|
11
|
+
var _array = require("./array.js");
|
|
12
|
+
var _Mouse = _interopRequireDefault(require("./Mouse.js"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
14
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
15
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
16
|
+
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."); }
|
|
17
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
18
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
19
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
20
|
+
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."); }
|
|
21
|
+
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; } }
|
|
22
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
23
|
+
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; } }
|
|
24
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
25
|
+
var LISTENERS = new Map();
|
|
26
|
+
var CUSTOM_EVENTS = ['longtap', 'dbltap'];
|
|
27
|
+
var ENABLED_EVENTS = new Set();
|
|
28
|
+
var _teardownLongTap = null;
|
|
29
|
+
var _teardownDblTap = null;
|
|
30
|
+
var supplyEvent = function supplyEvent(event) {
|
|
31
|
+
if (ENABLED_EVENTS !== null && ENABLED_EVENTS !== void 0 && ENABLED_EVENTS.has(event)) return;
|
|
32
|
+
if (event === 'longtap') enableLongTap();
|
|
33
|
+
if (event === 'dbltap') enableDblTap();
|
|
34
|
+
ENABLED_EVENTS.add(event);
|
|
35
|
+
};
|
|
36
|
+
var enableLongTap = function enableLongTap() {
|
|
37
|
+
var LONGPRESS_DELAY = 800;
|
|
38
|
+
var MOVE_TOLERANCE = 40;
|
|
39
|
+
var timer = null;
|
|
40
|
+
var startX = 0;
|
|
41
|
+
var startY = 0;
|
|
42
|
+
var target = null;
|
|
43
|
+
var start = function start(ev) {
|
|
44
|
+
target = ev.target;
|
|
45
|
+
var pos = _Mouse["default"].getViewportPosition(ev);
|
|
46
|
+
startX = pos.x;
|
|
47
|
+
startY = pos.y;
|
|
48
|
+
timer = setTimeout(function () {
|
|
49
|
+
target.dispatchEvent(new CustomEvent('longtap', {
|
|
50
|
+
bubbles: true,
|
|
51
|
+
cancelable: true,
|
|
52
|
+
detail: {
|
|
53
|
+
originalEvent: ev
|
|
54
|
+
}
|
|
55
|
+
}));
|
|
56
|
+
timer = null;
|
|
57
|
+
}, LONGPRESS_DELAY);
|
|
58
|
+
};
|
|
59
|
+
var move = function move(ev) {
|
|
60
|
+
// if (!timer) return;
|
|
61
|
+
|
|
62
|
+
var pos = _Mouse["default"].getViewportPosition(ev);
|
|
63
|
+
if (Math.hypot(pos.x - startX, pos.y - startY) > MOVE_TOLERANCE) {
|
|
64
|
+
clearTimeout(timer);
|
|
65
|
+
timer = null;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
var end = function end() {
|
|
69
|
+
clearTimeout(timer);
|
|
70
|
+
timer = null;
|
|
71
|
+
};
|
|
72
|
+
document.addEventListener('touchstart', start, {
|
|
73
|
+
passive: true
|
|
74
|
+
});
|
|
75
|
+
document.addEventListener('touchmove', move, {
|
|
76
|
+
passive: true
|
|
77
|
+
});
|
|
78
|
+
document.addEventListener('touchend', end);
|
|
79
|
+
document.addEventListener('touchcancel', end);
|
|
80
|
+
_teardownLongTap = function teardownLongTap() {
|
|
81
|
+
document.removeEventListener('touchstart', start, {
|
|
82
|
+
passive: true
|
|
83
|
+
});
|
|
84
|
+
document.removeEventListener('touchmove', move, {
|
|
85
|
+
passive: true
|
|
86
|
+
});
|
|
87
|
+
document.removeEventListener('touchend', end);
|
|
88
|
+
document.removeEventListener('touchcancel', end);
|
|
89
|
+
_teardownLongTap = null;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
var enableDblTap = function enableDblTap() {
|
|
93
|
+
var DBLTAP_DELAY = 300;
|
|
94
|
+
var MOVE_TOLERANCE = 40;
|
|
95
|
+
var lastTapTime = 0;
|
|
96
|
+
var lastPos = null;
|
|
97
|
+
if ((0, _is.isTouchDevice)()) {
|
|
98
|
+
document.addEventListener('dblclick', function (ev) {
|
|
99
|
+
ev.preventDefault();
|
|
100
|
+
ev.stopPropagation();
|
|
101
|
+
ev.stopImmediatePropagation();
|
|
102
|
+
}, {
|
|
103
|
+
capture: true
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
var start = function start(ev) {
|
|
107
|
+
var target = ev.target;
|
|
108
|
+
if (Date.now() - lastTapTime > DBLTAP_DELAY) {
|
|
109
|
+
lastTapTime = Date.now();
|
|
110
|
+
lastPos = _Mouse["default"].getViewportPosition(ev);
|
|
111
|
+
} else {
|
|
112
|
+
var pos = _Mouse["default"].getViewportPosition(ev);
|
|
113
|
+
if (Math.hypot(pos.x - lastPos.x, pos.y - lastPos.y) <= MOVE_TOLERANCE) {
|
|
114
|
+
target.dispatchEvent(new CustomEvent('dbltap', {
|
|
115
|
+
bubbles: true,
|
|
116
|
+
cancelable: true,
|
|
117
|
+
detail: {
|
|
118
|
+
originalEvent: ev
|
|
119
|
+
}
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
lastTapTime = Date.now();
|
|
123
|
+
lastPos = pos;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
document.addEventListener('touchstart', start, {
|
|
127
|
+
passive: true
|
|
128
|
+
});
|
|
129
|
+
_teardownDblTap = function teardownDblTap() {
|
|
130
|
+
document.removeEventListener('touchstart', start, {
|
|
131
|
+
passive: true
|
|
132
|
+
});
|
|
133
|
+
_teardownDblTap = null;
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* @param {Element} target
|
|
139
|
+
* @param {Element} el
|
|
140
|
+
* @returns {Element[]}
|
|
141
|
+
*/
|
|
142
|
+
function buildTree(target, el) {
|
|
143
|
+
var path = [];
|
|
144
|
+
var node = target.nodeType === 3 ? target.parentElement : target;
|
|
145
|
+
while (node) {
|
|
146
|
+
path.push(node);
|
|
147
|
+
if (node === el) break;
|
|
148
|
+
node = node.parentElement;
|
|
149
|
+
}
|
|
150
|
+
return path;
|
|
151
|
+
}
|
|
152
|
+
function createWrappedEvent(ev, currentTarget) {
|
|
153
|
+
var wrappedEv = {
|
|
154
|
+
_immediateStopped: false,
|
|
155
|
+
_propagationStopped: false,
|
|
156
|
+
originalEvent: ev,
|
|
157
|
+
currentTarget: currentTarget,
|
|
158
|
+
stopPropagation: function stopPropagation() {
|
|
159
|
+
wrappedEv._propagationStopped = true;
|
|
160
|
+
ev.stopPropagation.apply(ev, arguments);
|
|
161
|
+
},
|
|
162
|
+
stopImmediatePropagation: function stopImmediatePropagation() {
|
|
163
|
+
wrappedEv._immediateStopped = true;
|
|
164
|
+
wrappedEv._propagationStopped = true;
|
|
165
|
+
ev.stopImmediatePropagation.apply(ev, arguments);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
return new Proxy(wrappedEv, {
|
|
169
|
+
get: function get(target, prop, receiver) {
|
|
170
|
+
if (prop in target) {
|
|
171
|
+
return Reflect.get(target, prop, receiver);
|
|
172
|
+
}
|
|
173
|
+
var value = ev[prop];
|
|
174
|
+
return (0, _is.isFunction)(value) ? value.bind(ev) : value;
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* @param {Element|Document|Window} el
|
|
181
|
+
* @param {string} events
|
|
182
|
+
* @param {string|Element|function} selector
|
|
183
|
+
* @param {function|AddEventListenerOptions|boolean} [handler]
|
|
184
|
+
* @param {AddEventListenerOptions|boolean} [options]
|
|
185
|
+
* @returns {Element}
|
|
186
|
+
*/
|
|
187
|
+
function on(el, events, selector, handler, options) {
|
|
188
|
+
if ((0, _is.isFunction)(selector)) {
|
|
189
|
+
options = handler;
|
|
190
|
+
handler = selector;
|
|
191
|
+
selector = null;
|
|
192
|
+
}
|
|
193
|
+
(0, _traversal.foreach)(events.split(' '), function (rawEvent) {
|
|
194
|
+
var _rawEvent$split = rawEvent.split('.'),
|
|
195
|
+
_rawEvent$split2 = _slicedToArray(_rawEvent$split, 2),
|
|
196
|
+
event = _rawEvent$split2[0],
|
|
197
|
+
namespace = _rawEvent$split2[1];
|
|
198
|
+
var listener = function listener(ev) {
|
|
199
|
+
if (ev.cancelBubble) return;
|
|
200
|
+
var tree = buildTree(ev.target, el);
|
|
201
|
+
var binds = _toConsumableArray(LISTENERS.get(el));
|
|
202
|
+
var _iterator = _createForOfIteratorHelper(tree),
|
|
203
|
+
_step;
|
|
204
|
+
try {
|
|
205
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
206
|
+
var node = _step.value;
|
|
207
|
+
var propagationStoppedOnThisNode = false;
|
|
208
|
+
var _iterator2 = _createForOfIteratorHelper(binds),
|
|
209
|
+
_step2;
|
|
210
|
+
try {
|
|
211
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
212
|
+
var bind = _step2.value;
|
|
213
|
+
if (bind.event !== ev.type) continue;
|
|
214
|
+
if (bind.selector) {
|
|
215
|
+
if (!node.matches(bind.selector)) continue;
|
|
216
|
+
} else {
|
|
217
|
+
if (node !== el) continue;
|
|
218
|
+
}
|
|
219
|
+
var wrappedEv = createWrappedEvent(ev, node);
|
|
220
|
+
bind.handler.call(node, wrappedEv);
|
|
221
|
+
if (wrappedEv._immediateStopped) return;
|
|
222
|
+
if (wrappedEv._propagationStopped) {
|
|
223
|
+
propagationStoppedOnThisNode = true;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
} catch (err) {
|
|
227
|
+
_iterator2.e(err);
|
|
228
|
+
} finally {
|
|
229
|
+
_iterator2.f();
|
|
230
|
+
}
|
|
231
|
+
if (propagationStoppedOnThisNode) return;
|
|
232
|
+
}
|
|
233
|
+
} catch (err) {
|
|
234
|
+
_iterator.e(err);
|
|
235
|
+
} finally {
|
|
236
|
+
_iterator.f();
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
var store = LISTENERS.get(el);
|
|
240
|
+
if (!store) {
|
|
241
|
+
store = [];
|
|
242
|
+
LISTENERS.set(el, store);
|
|
243
|
+
}
|
|
244
|
+
if ((0, _array.inArray)(event, CUSTOM_EVENTS)) {
|
|
245
|
+
supplyEvent(event);
|
|
246
|
+
}
|
|
247
|
+
var events = (0, _traversal.map)(store, function (_, entry) {
|
|
248
|
+
return entry.event;
|
|
249
|
+
});
|
|
250
|
+
if (!(0, _array.inArray)(event, events)) {
|
|
251
|
+
el.addEventListener(event, listener, options);
|
|
252
|
+
}
|
|
253
|
+
store.push({
|
|
254
|
+
event: event,
|
|
255
|
+
handler: handler,
|
|
256
|
+
selector: selector,
|
|
257
|
+
listener: listener,
|
|
258
|
+
namespace: namespace,
|
|
259
|
+
options: options
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
return el;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* @param {Element|Document|Window} el
|
|
267
|
+
* @param {string} [events]
|
|
268
|
+
* @param {string|Element|function} [selector]
|
|
269
|
+
* @param {function|AddEventListenerOptions|boolean} [handler]
|
|
270
|
+
* @param {AddEventListenerOptions|boolean} [options]
|
|
271
|
+
* @returns {Element}
|
|
272
|
+
*/
|
|
273
|
+
function off(el, events, selector, handler, options) {
|
|
274
|
+
if ((0, _is.isFunction)(selector)) {
|
|
275
|
+
options = handler;
|
|
276
|
+
handler = selector;
|
|
277
|
+
selector = null;
|
|
278
|
+
}
|
|
279
|
+
var store = LISTENERS.get(el);
|
|
280
|
+
if (!store) return el;
|
|
281
|
+
var evts = events ? events.split(' ') : [undefined];
|
|
282
|
+
(0, _traversal.foreach)(evts, function (rawEvent) {
|
|
283
|
+
var _ref = undefined === rawEvent ? [undefined, undefined] : rawEvent.split('.'),
|
|
284
|
+
_ref2 = _slicedToArray(_ref, 2),
|
|
285
|
+
event = _ref2[0],
|
|
286
|
+
namespace = _ref2[1];
|
|
287
|
+
event = !event ? undefined : event;
|
|
288
|
+
var hasEvent = undefined !== event;
|
|
289
|
+
var hasNs = undefined !== namespace;
|
|
290
|
+
(0, _traversal.foreach)(_toConsumableArray(store).reverse(), function (l) {
|
|
291
|
+
var match = !hasEvent && !hasNs || hasEvent && !hasNs && l.event === event || !hasEvent && hasNs && l.namespace === namespace || hasEvent && hasNs && l.event === event && l.namespace === namespace;
|
|
292
|
+
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)) {
|
|
293
|
+
var index = store.indexOf(l);
|
|
294
|
+
index !== -1 && store.splice(index, 1);
|
|
295
|
+
if (!(0, _traversal.map)(store, function (_, entry) {
|
|
296
|
+
return entry.event === event ? entry : null;
|
|
297
|
+
})[0]) el.removeEventListener(l.event, l.listener, l.options);
|
|
298
|
+
}
|
|
299
|
+
});
|
|
300
|
+
});
|
|
301
|
+
return el;
|
|
302
|
+
}
|
|
303
|
+
function __resetCustomEventsForTests() {
|
|
304
|
+
var _teardownLongTap2, _teardownDblTap2;
|
|
305
|
+
ENABLED_EVENTS.clear();
|
|
306
|
+
(_teardownLongTap2 = _teardownLongTap) === null || _teardownLongTap2 === void 0 || _teardownLongTap2();
|
|
307
|
+
(_teardownDblTap2 = _teardownDblTap) === null || _teardownDblTap2 === void 0 || _teardownDblTap2();
|
|
308
|
+
}
|
package/dist/esm/Mouse.js
CHANGED
|
@@ -12,7 +12,13 @@ var Mouse = /*#__PURE__*/function () {
|
|
|
12
12
|
}
|
|
13
13
|
return _createClass(Mouse, null, [{
|
|
14
14
|
key: "getPosition",
|
|
15
|
-
value:
|
|
15
|
+
value:
|
|
16
|
+
/**
|
|
17
|
+
* @param {Event} ev
|
|
18
|
+
* @param {Element} element
|
|
19
|
+
* @returns {{x: number, y: number}}
|
|
20
|
+
*/
|
|
21
|
+
function getPosition(ev, element) {
|
|
16
22
|
ev = _assertClassBrand(Mouse, this, _getEvent).call(this, ev);
|
|
17
23
|
var rect = {
|
|
18
24
|
left: 0,
|
|
@@ -26,10 +32,15 @@ var Mouse = /*#__PURE__*/function () {
|
|
|
26
32
|
};
|
|
27
33
|
}
|
|
28
34
|
return {
|
|
29
|
-
x: ev.pageX
|
|
30
|
-
y: ev.pageY
|
|
35
|
+
x: ev.pageX - rect.left,
|
|
36
|
+
y: ev.pageY - rect.top
|
|
31
37
|
};
|
|
32
38
|
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @param {Event} ev
|
|
42
|
+
* @returns {{x: number, y: number}}
|
|
43
|
+
*/
|
|
33
44
|
}, {
|
|
34
45
|
key: "getViewportPosition",
|
|
35
46
|
value: function getViewportPosition(ev) {
|
|
@@ -45,18 +56,24 @@ var Mouse = /*#__PURE__*/function () {
|
|
|
45
56
|
ev = _assertClassBrand(Mouse, this, _getEvent).call(this, ev);
|
|
46
57
|
return window.document.elementFromPoint(ev.clientX, ev.clientY);
|
|
47
58
|
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @param {Event|{originalEvent?: Event}} ev
|
|
62
|
+
* @returns {Event}
|
|
63
|
+
*/
|
|
48
64
|
}]);
|
|
49
65
|
}();
|
|
50
66
|
function _getEvent(ev) {
|
|
51
67
|
var _ev$originalEvent;
|
|
68
|
+
ev = (_ev$originalEvent = ev.originalEvent) !== null && _ev$originalEvent !== void 0 ? _ev$originalEvent : ev;
|
|
52
69
|
if (isTouchDevice()) {
|
|
53
|
-
var
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
70
|
+
var _ev$changedTouches, _ev$touches;
|
|
71
|
+
var touch = ((_ev$changedTouches = ev.changedTouches) === null || _ev$changedTouches === void 0 ? void 0 : _ev$changedTouches[0]) || ((_ev$touches = ev.touches) === null || _ev$touches === void 0 ? void 0 : _ev$touches[0]);
|
|
72
|
+
ev.clientX = touch.clientX;
|
|
73
|
+
ev.clientY = touch.clientY;
|
|
74
|
+
ev.pageX = touch.pageX;
|
|
75
|
+
ev.pageY = touch.pageY;
|
|
59
76
|
}
|
|
60
|
-
return
|
|
77
|
+
return ev;
|
|
61
78
|
}
|
|
62
79
|
export default Mouse;
|
package/dist/esm/Translator.js
CHANGED
|
@@ -14,15 +14,15 @@ import { isFunction, isPlainObject } from "./is.js";
|
|
|
14
14
|
import { each, extend } from "./traversal.js";
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* @typedef {string
|
|
17
|
+
* @typedef {string|(()=>string)} TranslatorValue
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* @typedef {Record<string,
|
|
21
|
+
* @typedef {Record<string,Record<string,Record<string,TranslatorValue>>>} TranslatorNsMapping
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
* @typedef {Record<string,
|
|
25
|
+
* @typedef {Record<string,Record<string,TranslatorValue>>} TranslatorCoreMapping
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
28
|
/**
|
|
@@ -63,7 +63,7 @@ var Translator = /*#__PURE__*/function () {
|
|
|
63
63
|
var entry = _classPrivateFieldGet(_mapping, this)[namespace][lang][label];
|
|
64
64
|
return _assertClassBrand(_Translator_brand, this, _resolve).call(this, entry);
|
|
65
65
|
}
|
|
66
|
-
return 'en' !== lang ? this.translate(label,
|
|
66
|
+
return 'en' !== lang ? this.translate(label, 'en', namespace) : label;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
/**
|
|
@@ -140,11 +140,7 @@ function _findKeyByValue(entries, label) {
|
|
|
140
140
|
}
|
|
141
141
|
function _resolve(entry) {
|
|
142
142
|
if (isFunction(entry)) {
|
|
143
|
-
|
|
144
|
-
return entry();
|
|
145
|
-
} catch (e) {
|
|
146
|
-
return null;
|
|
147
|
-
}
|
|
143
|
+
return entry();
|
|
148
144
|
}
|
|
149
145
|
return entry;
|
|
150
146
|
}
|