@webalternatif/js-core 1.3.1 → 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.
@@ -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/esm/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 WeakMap();
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
- export default {
158
+ var dom = {
54
159
  /**
55
160
  * @param {Element} el
56
161
  * @param {string} [selector]
@@ -98,7 +203,7 @@ export default {
98
203
  });
99
204
  }
100
205
  try {
101
- return refEl.querySelectorAll(selector);
206
+ return Array.from(refEl.querySelectorAll(selector));
102
207
  } catch (e) {
103
208
  return [];
104
209
  }
@@ -520,7 +625,11 @@ export default {
520
625
  handler = selector;
521
626
  selector = null;
522
627
  }
523
- foreach(events.split(' '), function (event) {
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];
524
633
  var listener = function listener(ev) {
525
634
  if (!selector) {
526
635
  handler.call(el, ev);
@@ -529,11 +638,11 @@ export default {
529
638
  var currentTarget = ev.target;
530
639
  while (currentTarget && currentTarget !== el) {
531
640
  if (_this5.matches(currentTarget, selector)) {
532
- var wrappedEv = Object.assign({}, ev, {
641
+ var wrappedEv = {
533
642
  originalEvent: ev,
534
643
  type: ev.type,
535
- currentTarget: currentTarget,
536
644
  target: ev.target,
645
+ currentTarget: currentTarget,
537
646
  relatedTarget: ev.relatedTarget,
538
647
  button: ev.button,
539
648
  pageX: ev.pageX,
@@ -547,7 +656,7 @@ export default {
547
656
  stopImmediatePropagation: function stopImmediatePropagation() {
548
657
  return ev.stopImmediatePropagation.apply(ev, arguments);
549
658
  }
550
- });
659
+ };
551
660
  handler.call(currentTarget, wrappedEv);
552
661
  break;
553
662
  }
@@ -564,8 +673,12 @@ export default {
564
673
  handler: handler,
565
674
  selector: selector,
566
675
  listener: listener,
676
+ namespace: namespace,
567
677
  options: options
568
678
  });
679
+ if (inArray(event, CUSTOM_EVENTS)) {
680
+ supplyEvent(event);
681
+ }
569
682
  el.addEventListener(event, listener, options);
570
683
  });
571
684
  return el;
@@ -573,7 +686,7 @@ export default {
573
686
  /**
574
687
  * @param {Element|Document|Window} el
575
688
  * @param {string} [events]
576
- * @param {string|Element|function} selector
689
+ * @param {string|Element|function} [selector]
577
690
  * @param {function|AddEventListenerOptions|boolean} [handler]
578
691
  * @param {AddEventListenerOptions|boolean} [options]
579
692
  * @returns {Element}
@@ -587,10 +700,18 @@ export default {
587
700
  var store = LISTENERS.get(el);
588
701
  if (!store) return el;
589
702
  var evts = events ? events.split(' ') : [undefined];
590
- foreach(evts.split(' '), function (event) {
591
- each(_toConsumableArray(store).reverse(), function (i, l) {
592
- if ((undefined === event || l.event === event) && (undefined === handler || l.handler === handler) && (undefined === selector || l.selector === selector) && (undefined === options || l.options === options)) {
593
- el.removeEventListener(event, l.listener, l.options);
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);
594
715
  var index = store.indexOf(l);
595
716
  index !== -1 && store.splice(index, 1);
596
717
  }
@@ -628,14 +749,14 @@ export default {
628
749
  * @param {Element} el
629
750
  * @param {string} selectorClosest
630
751
  * @param {string} selectorFind
631
- * @returns {NodeList|null}
752
+ * @returns {Array<Element>}
632
753
  */
633
754
  closestFind: function closestFind(el, selectorClosest, selectorFind) {
634
755
  var closest = this.closest(el, selectorClosest);
635
756
  if (closest) {
636
757
  return this.find(closest, selectorFind);
637
758
  }
638
- return null;
759
+ return [];
639
760
  },
640
761
  /**
641
762
  * @param {Element} el
@@ -665,18 +786,30 @@ export default {
665
786
  */
666
787
  last: function last(nodeList) {
667
788
  var _arr;
789
+ if (nodeList instanceof Element) return nodeList;
668
790
  var arr = Array.from(nodeList);
669
791
  return (_arr = arr[arr.length - 1]) !== null && _arr !== void 0 ? _arr : null;
670
792
  },
671
793
  /**
672
794
  * @param {string} html
673
- * @returns {Element|null}
795
+ * @returns {Element|DocumentFragment|null}
674
796
  */
675
797
  create: function create(html) {
676
- var _tpl$content$firstEle;
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
+ }
677
805
  var tpl = document.createElement('template');
678
806
  tpl.innerHTML = html.trim();
679
- return (_tpl$content$firstEle = tpl.content.firstElementChild) !== null && _tpl$content$firstEle !== void 0 ? _tpl$content$firstEle : null;
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);
680
813
  },
681
814
  /**
682
815
  * @param {NodeList|Array<Element>} nodeList
@@ -728,13 +861,13 @@ export default {
728
861
  return el;
729
862
  },
730
863
  /**
731
- * @param {Element|NodeList} el
864
+ * @param {Element|NodeList|Array<Element>} el
732
865
  * @param {string|Element} selector
733
- * @return {Element[]}
866
+ * @return {Array<Element>}
734
867
  */
735
868
  not: function not(el, selector) {
736
869
  var elements = el instanceof Element ? [el] : Array.from(el);
737
- var selectorIsString = webf.isString(selector);
870
+ var selectorIsString = isString(selector);
738
871
  return elements.filter(function (e) {
739
872
  if (!(e instanceof Element)) return false;
740
873
  return selectorIsString ? !e.matches(selector) : e !== selector;
@@ -755,6 +888,7 @@ export default {
755
888
  * @param {string|Element} selector
756
889
  */
757
890
  matches: function matches(el, selector) {
891
+ if (!el) return false;
758
892
  return selector instanceof Element ? selector === el : el.matches(selector);
759
893
  },
760
894
  /**
@@ -767,14 +901,22 @@ export default {
767
901
  },
768
902
  /**
769
903
  * @param {Element} el
770
- * @param {Element[]} children
904
+ * @param {NodeList|Array<Element>|string[]} children
771
905
  * @returns {Element}
772
906
  */
773
907
  replaceChildren: function replaceChildren(el) {
908
+ var _this7 = this;
909
+ var nodes = [];
774
910
  for (var _len4 = arguments.length, children = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
775
911
  children[_key4 - 1] = arguments[_key4];
776
912
  }
777
- el.replaceChildren.apply(el, children);
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);
778
920
  return el;
779
921
  },
780
922
  /**
@@ -800,4 +942,13 @@ export default {
800
942
  left: rect.left + wOffset.left
801
943
  };
802
944
  }
803
- };
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/esm/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 './i18n.js';
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 };
@@ -8,7 +8,8 @@ import { isArray, isFloat, isInteger, isObject, isPlainObject, isString, isUndef
8
8
  import { dec2hex, hex2dec, round } from "./math.js";
9
9
  import { inArray } from "./array.js";
10
10
  import { each, foreach, map } from "./traversal.js";
11
- import { translate } from "./i18n.js";
11
+ // import {translate} from "./Translator.js";
12
+
12
13
  export var trim = function trim(str) {
13
14
  var _char = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '\\s';
14
15
  return ltrim(rtrim(str, _char), _char);
@@ -248,39 +249,36 @@ var _addUrlParam = function addUrlParam(url, param) {
248
249
  each(param, function (key, val) {
249
250
  url = _addUrlParam(url, key, val);
250
251
  });
251
- } else {
252
- var parseUrl = parse_url(url),
253
- pos,
254
- hash = "";
255
- if ((pos = url.indexOf("#")) > -1) {
256
- hash = url.slice(pos);
257
- }
258
- if (hash) {
259
- url = url.slice(0, url.lastIndexOf(hash));
260
- }
261
- if (!parseUrl.query) {
262
- url += "?" + param + "=" + value + hash;
263
- } else {
264
- var params = parseUrl.query.split('&');
265
- var param_exists = false;
266
- for (var i = 0; i < params.length; i++) {
267
- if (params[i].indexOf(param + "=") > -1) {
268
- param_exists = true;
269
- params[i] = param + "=" + value;
270
- break;
271
- }
272
- }
273
- if (false === param_exists) {
274
- params.push(param + "=" + value);
275
- }
276
- if (parseUrl.scheme && parseUrl.host) {
277
- url = parseUrl.scheme + '://' + parseUrl.host + (parseUrl.path || '') + "?" + params.join("&") + hash;
278
- } else {
279
- url = (parseUrl.host || '') + parseUrl.path + "?" + params.join("&") + hash;
280
- }
252
+ return url;
253
+ }
254
+ var parseUrl = parse_url(url),
255
+ pos,
256
+ hash = "";
257
+ if ((pos = url.indexOf("#")) > -1) {
258
+ hash = url.slice(pos);
259
+ url = url.slice(0, pos);
260
+ }
261
+ var key = encodeURIComponent(param);
262
+ var val = value === null ? '' : encodeURIComponent(value);
263
+ if (!parseUrl.query) {
264
+ return url + "?" + key + "=" + val + hash;
265
+ }
266
+ var params = parseUrl.query.split('&');
267
+ var param_exists = false;
268
+ for (var i = 0; i < params.length; i++) {
269
+ if (params[i].startsWith(key + "=")) {
270
+ params[i] = key + "=" + val;
271
+ param_exists = true;
272
+ break;
281
273
  }
282
274
  }
283
- return url;
275
+ if (!param_exists) {
276
+ params.push(key + "=" + val);
277
+ }
278
+ if (parseUrl.scheme && parseUrl.host) {
279
+ return parseUrl.scheme + '://' + parseUrl.host + (parseUrl.path || '') + "?" + params.join("&") + hash;
280
+ }
281
+ return (parseUrl.host || '') + parseUrl.path + "?" + params.join("&") + hash;
284
282
  };
285
283
  export { _addUrlParam as addUrlParam };
286
284
  export var decodeHtml = function decodeHtml(str) {
@@ -438,7 +436,7 @@ export var formatSize = function formatSize(bytes) {
438
436
  decimals = 1;
439
437
  }
440
438
  var units = map(['k', 'M', 'G', 'T', 'P', 'E'], function (i, prefix) {
441
- return prefix + translate('unitByte');
439
+ return prefix + 'B';
442
440
  });
443
441
  return numberFormat(Math.max(bytes, 0), decimals, true, '', decimalPoint) + ' ' + units[i];
444
442
  };
@@ -34,9 +34,9 @@ export var each = function each(o, callback, context) {
34
34
  for (var i in o) if (o.hasOwnProperty(i) && false === callback.call(context !== null && context !== void 0 ? context : o[i], i, o[i], o, ++index)) return;
35
35
  } else if (isString(o)) {
36
36
  var arr = o.split('');
37
- for (var _i = 0; _i < arr.length; _i++) if (false === callback.call(context !== null && context !== void 0 ? context : arr[_i], _i, arr[_i], o, _i)) return;
37
+ for (var _i = 0; _i < arr.length; _i++) if (false === callback.call(context !== null && context !== void 0 ? context : arr[_i], _i, arr[_i], o, _i)) return o;
38
38
  return o;
39
- } else if (o instanceof Map || o instanceof WeakMap) {
39
+ } else if (o instanceof Map) {
40
40
  var _index = 0;
41
41
  var _iterator = _createForOfIteratorHelper(o.entries()),
42
42
  _step;
@@ -45,7 +45,7 @@ export var each = function each(o, callback, context) {
45
45
  var _step$value = _slicedToArray(_step.value, 2),
46
46
  key = _step$value[0],
47
47
  value = _step$value[1];
48
- if (false === callback.call(context !== null && context !== void 0 ? context : value, key, value, o, _index++)) return;
48
+ if (false === callback.call(context !== null && context !== void 0 ? context : value, key, value, o, _index++)) return o;
49
49
  }
50
50
  } catch (err) {
51
51
  _iterator.e(err);
@@ -59,7 +59,7 @@ export var each = function each(o, callback, context) {
59
59
  try {
60
60
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
61
61
  var _value = _step2.value;
62
- if (false === callback.call(context !== null && context !== void 0 ? context : _value, _index2, _value, o, _index2)) return;
62
+ if (false === callback.call(context !== null && context !== void 0 ? context : _value, _index2, _value, o, _index2)) return o;
63
63
  _index2++;
64
64
  }
65
65
  } catch (err) {
@@ -69,7 +69,7 @@ export var each = function each(o, callback, context) {
69
69
  }
70
70
  } else if (isArrayLike(o)) {
71
71
  var _arr = Array.from(o);
72
- for (var _i2 = 0; _i2 < _arr.length; _i2++) if (false === callback.call(context || _arr[_i2], _i2, _arr[_i2], _arr, _i2)) return;
72
+ for (var _i2 = 0; _i2 < _arr.length; _i2++) if (false === callback.call(context || _arr[_i2], _i2, _arr[_i2], _arr, _i2)) return o;
73
73
  }
74
74
  return o;
75
75
  };
@@ -111,7 +111,8 @@ export var map = function map(o, callback, context) {
111
111
  var results = [];
112
112
  each(o, function (index, value, o, i) {
113
113
  var response = callback.call(context, index, value, o, i);
114
- if (false === response) return false;
114
+
115
+ // if (false === response) return false;
115
116
  if (null !== response) results.push(response);
116
117
  });
117
118
  return results;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webalternatif/js-core",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "types": "types/index.d.ts",
6
6
  "main": "dist/cjs/index.js",