@tspro/ts-utils-lib 3.1.1 → 3.3.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/CHANGELOG.md +11 -0
- package/README.md +6 -26
- package/dist/index.d.ts +16 -11
- package/dist/index.es5.iife.js +1 -1
- package/dist/index.es5.polyfilled.iife.js +1 -1
- package/dist/index.js +64 -25
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +64 -25
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* TsUtilsLib v3.
|
|
2
|
+
* TsUtilsLib v3.3.0 (esm)
|
|
3
3
|
* (c) 2023-2025 PahkaSoft
|
|
4
4
|
* Licensed under the MIT License
|
|
5
5
|
*/
|
|
@@ -114,7 +114,10 @@ __export(str_exports, {
|
|
|
114
114
|
splitByChars: () => splitByChars,
|
|
115
115
|
splitByStrings: () => splitByStrings,
|
|
116
116
|
stringify: () => stringify,
|
|
117
|
-
toCharArray: () => toCharArray
|
|
117
|
+
toCharArray: () => toCharArray,
|
|
118
|
+
trim: () => trim,
|
|
119
|
+
trimEnd: () => trimEnd,
|
|
120
|
+
trimStart: () => trimStart
|
|
118
121
|
});
|
|
119
122
|
|
|
120
123
|
// src/utils/obj/index.ts
|
|
@@ -697,6 +700,42 @@ function splitByStrings(str2, ...splitters) {
|
|
|
697
700
|
function splitByChars(str2, splitters) {
|
|
698
701
|
return splitByStrings(str2, ...splitters.split(""));
|
|
699
702
|
}
|
|
703
|
+
function trimStart(str2, ...chars) {
|
|
704
|
+
if (chars.length === 0) return str2.trimStart();
|
|
705
|
+
const sorted = [...chars].sort((a, b) => b.length - a.length);
|
|
706
|
+
let changed = true;
|
|
707
|
+
while (changed) {
|
|
708
|
+
changed = false;
|
|
709
|
+
for (const c of sorted) {
|
|
710
|
+
if (str2.startsWith(c)) {
|
|
711
|
+
str2 = str2.slice(c.length);
|
|
712
|
+
changed = true;
|
|
713
|
+
break;
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
return str2;
|
|
718
|
+
}
|
|
719
|
+
function trimEnd(str2, ...chars) {
|
|
720
|
+
if (chars.length === 0) return str2.trimEnd();
|
|
721
|
+
const sorted = [...chars].sort((a, b) => b.length - a.length);
|
|
722
|
+
let changed = true;
|
|
723
|
+
while (changed) {
|
|
724
|
+
changed = false;
|
|
725
|
+
for (const c of sorted) {
|
|
726
|
+
if (str2.endsWith(c)) {
|
|
727
|
+
str2 = str2.slice(0, -c.length);
|
|
728
|
+
changed = true;
|
|
729
|
+
break;
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
return str2;
|
|
734
|
+
}
|
|
735
|
+
function trim(str2, ...chars) {
|
|
736
|
+
if (chars.length === 0) return str2.trim();
|
|
737
|
+
return trimEnd(trimStart(str2, ...chars), ...chars);
|
|
738
|
+
}
|
|
700
739
|
|
|
701
740
|
// src/assert/index.ts
|
|
702
741
|
var fmt = stringify;
|
|
@@ -1481,32 +1520,32 @@ function toPx(value) {
|
|
|
1481
1520
|
return value === void 0 ? void 0 : device_exports.unitToPx(value);
|
|
1482
1521
|
}
|
|
1483
1522
|
function hasClass(el, className) {
|
|
1484
|
-
if (className.length === 0)
|
|
1523
|
+
if (className.length === 0)
|
|
1485
1524
|
return false;
|
|
1486
|
-
|
|
1525
|
+
else if (el.classList)
|
|
1487
1526
|
return el.classList.contains(className);
|
|
1488
|
-
|
|
1527
|
+
else
|
|
1489
1528
|
return !!el.className.match(new RegExp("(\\s|^)" + className + "(\\s|$)"));
|
|
1490
|
-
}
|
|
1491
|
-
}
|
|
1492
|
-
function addClass(el, className) {
|
|
1493
|
-
if (className.length === 0) {
|
|
1494
|
-
return;
|
|
1495
|
-
} else if (el.classList) {
|
|
1496
|
-
el.classList.add(className);
|
|
1497
|
-
} else if (!hasClass(el, className)) {
|
|
1498
|
-
el.className += " " + className;
|
|
1499
|
-
}
|
|
1500
1529
|
}
|
|
1501
|
-
function
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
el.classList
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
}
|
|
1530
|
+
function addClass(el, ...className) {
|
|
1531
|
+
className.forEach((cls) => {
|
|
1532
|
+
if (cls.length === 0)
|
|
1533
|
+
return;
|
|
1534
|
+
else if (el.classList)
|
|
1535
|
+
el.classList.add(cls);
|
|
1536
|
+
else if (!hasClass(el, cls))
|
|
1537
|
+
el.className += " " + cls;
|
|
1538
|
+
});
|
|
1539
|
+
}
|
|
1540
|
+
function removeClass(el, ...className) {
|
|
1541
|
+
className.forEach((cls) => {
|
|
1542
|
+
if (cls.length === 0)
|
|
1543
|
+
return;
|
|
1544
|
+
else if (el.classList)
|
|
1545
|
+
el.classList.remove(cls);
|
|
1546
|
+
else if (hasClass(el, cls))
|
|
1547
|
+
el.className = el.className.replace(new RegExp("(\\s|^)" + cls + "(\\s|$)"), " ");
|
|
1548
|
+
});
|
|
1510
1549
|
}
|
|
1511
1550
|
function setOffset(el, left, top, unit = "px") {
|
|
1512
1551
|
el.style.left = left + unit;
|
|
@@ -4425,7 +4464,7 @@ var CallTracker = _CallTracker;
|
|
|
4425
4464
|
|
|
4426
4465
|
// src/index.ts
|
|
4427
4466
|
function getLibInfo() {
|
|
4428
|
-
return "TsUtilsLib v3.
|
|
4467
|
+
return "TsUtilsLib v3.3.0 (esm)";
|
|
4429
4468
|
}
|
|
4430
4469
|
|
|
4431
4470
|
export { AnchoredRect, assert_exports as Assert, BaseContainer, BiMap, CallTracker, cookies_exports as Cookies, DefaultArray, DefaultEqualityFn, device_exports as Device, guard_exports as Guard, IndexArray, LRUCache, LinkedList, MultiContainer, Rect, SignedIndexArray, Stack, TriMap, UniMap, utils_exports as Utils, ValueSet, Vec, asMulti, getLibInfo };
|