@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/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * TsUtilsLib v3.1.1 (esm)
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
- } else if (el.classList) {
1525
+ else if (el.classList)
1487
1526
  return el.classList.contains(className);
1488
- } else {
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 removeClass(el, className) {
1502
- if (className.length === 0) {
1503
- return;
1504
- } else if (el.classList) {
1505
- el.classList.remove(className);
1506
- } else if (hasClass(el, className)) {
1507
- var reg = new RegExp("(\\s|^)" + className + "(\\s|$)");
1508
- el.className = el.className.replace(reg, " ");
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.1.1 (esm)";
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 };