@libs-ui/utils 0.2.306-7 → 0.2.306-8
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/dangerous-object.d.ts +75 -0
- package/esm2022/dangerous-object.mjs +143 -0
- package/esm2022/dom.mjs +1 -1
- package/esm2022/helpers.mjs +21 -15
- package/esm2022/index.mjs +2 -1
- package/esm2022/two-way-signal-object.mjs +27 -27
- package/fesm2022/libs-ui-utils.mjs +184 -38
- package/fesm2022/libs-ui-utils.mjs.map +1 -1
- package/helpers.d.ts +5 -1
- package/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import DeviceDetector from 'device-detector-js';
|
|
2
2
|
import Quill from 'quill';
|
|
3
|
-
import { fromEvent, tap, takeUntil, mergeMap, startWith, finalize, lastValueFrom, timer, Subject, filter
|
|
3
|
+
import { fromEvent, tap, takeUntil, mergeMap, startWith, finalize, lastValueFrom, timer, Observable, Subject, filter } from 'rxjs';
|
|
4
4
|
import CryptoES from 'crypto-es';
|
|
5
5
|
import { HttpParams } from '@angular/common/http';
|
|
6
|
-
import {
|
|
6
|
+
import { TemplateRef, ElementRef, isSignal, signal, InjectionToken } from '@angular/core';
|
|
7
7
|
import dayjs from 'dayjs';
|
|
8
8
|
import 'dayjs/locale/en';
|
|
9
9
|
import 'dayjs/locale/vi';
|
|
@@ -629,6 +629,145 @@ const uuid = () => {
|
|
|
629
629
|
return md5(shuffledString);
|
|
630
630
|
};
|
|
631
631
|
|
|
632
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
633
|
+
/**
|
|
634
|
+
* Danh sách các constructor name nguy hiểm
|
|
635
|
+
*/
|
|
636
|
+
const DANGEROUS_CONSTRUCTOR_NAMES = ['Window', 'Document', 'HTMLDocument', 'HTMLElement', 'Element', 'Node', 'Location', 'Navigator', 'Screen', 'History', 'Storage', 'Console', 'Performance'];
|
|
637
|
+
/**
|
|
638
|
+
* Kiểm tra xem đối tượng có phải là browser global object không
|
|
639
|
+
*/
|
|
640
|
+
const isBrowserGlobalObject = (obj) => {
|
|
641
|
+
if (obj === null || typeof obj !== 'object') {
|
|
642
|
+
return false;
|
|
643
|
+
}
|
|
644
|
+
return obj instanceof Window || obj instanceof Document || obj === window || obj === document || obj === globalThis;
|
|
645
|
+
};
|
|
646
|
+
/**
|
|
647
|
+
* Kiểm tra xem đối tượng có phải là DOM object không
|
|
648
|
+
*/
|
|
649
|
+
const isDOMObject = (obj) => {
|
|
650
|
+
if (obj === null || typeof obj !== 'object') {
|
|
651
|
+
return false;
|
|
652
|
+
}
|
|
653
|
+
return obj instanceof HTMLElement || obj instanceof Node || obj instanceof Element;
|
|
654
|
+
};
|
|
655
|
+
/**
|
|
656
|
+
* Kiểm tra xem đối tượng có phải là browser API object không
|
|
657
|
+
*/
|
|
658
|
+
const isBrowserAPIObject = (obj) => {
|
|
659
|
+
if (obj === null || typeof obj !== 'object' || typeof window === 'undefined') {
|
|
660
|
+
return false;
|
|
661
|
+
}
|
|
662
|
+
return obj === window.location || obj === window.navigator || obj === window.screen || obj === window.history || obj === window.localStorage || obj === window.sessionStorage || obj === window.console || obj === window.performance;
|
|
663
|
+
};
|
|
664
|
+
/**
|
|
665
|
+
* Kiểm tra constructor name có nằm trong danh sách nguy hiểm không
|
|
666
|
+
*/
|
|
667
|
+
const hasDangerousConstructorName = (obj) => {
|
|
668
|
+
if (obj === null || typeof obj !== 'object') {
|
|
669
|
+
return false;
|
|
670
|
+
}
|
|
671
|
+
const constructorName = obj.constructor?.name;
|
|
672
|
+
return constructorName && DANGEROUS_CONSTRUCTOR_NAMES.includes(constructorName);
|
|
673
|
+
};
|
|
674
|
+
/**
|
|
675
|
+
* Kiểm tra xem đối tượng có phải là DOM object hoặc browser object nguy hiểm không
|
|
676
|
+
* Những đối tượng này có thể gây ra circular reference và maximum call stack
|
|
677
|
+
*/
|
|
678
|
+
const isDangerousObject = (obj) => {
|
|
679
|
+
if (obj === null || typeof obj !== 'object') {
|
|
680
|
+
return false;
|
|
681
|
+
}
|
|
682
|
+
return isBrowserGlobalObject(obj) || isDOMObject(obj) || isBrowserAPIObject(obj) || hasDangerousConstructorName(obj);
|
|
683
|
+
};
|
|
684
|
+
/**
|
|
685
|
+
* Kiểm tra đối tượng có phải là Angular/Framework object không
|
|
686
|
+
*/
|
|
687
|
+
const isFrameworkObject = (obj) => {
|
|
688
|
+
if (obj === null || typeof obj !== 'object') {
|
|
689
|
+
return false;
|
|
690
|
+
}
|
|
691
|
+
return obj instanceof TemplateRef || obj instanceof ElementRef;
|
|
692
|
+
};
|
|
693
|
+
/**
|
|
694
|
+
* Kiểm tra đối tượng có phải là File/Blob object không
|
|
695
|
+
*/
|
|
696
|
+
const isFileObject = (obj) => {
|
|
697
|
+
if (obj === null || typeof obj !== 'object') {
|
|
698
|
+
return false;
|
|
699
|
+
}
|
|
700
|
+
return obj instanceof File || obj instanceof Blob || Object.prototype.toString.call(obj) === '[object File]';
|
|
701
|
+
};
|
|
702
|
+
/**
|
|
703
|
+
* Kiểm tra đối tượng có phải là Built-in object không
|
|
704
|
+
*/
|
|
705
|
+
const isBuiltInObject = (obj) => {
|
|
706
|
+
if (obj === null || typeof obj !== 'object') {
|
|
707
|
+
return false;
|
|
708
|
+
}
|
|
709
|
+
return obj instanceof Date || obj instanceof RegExp || obj instanceof HttpParams;
|
|
710
|
+
};
|
|
711
|
+
/**
|
|
712
|
+
* Kiểm tra đối tượng có phải là Async object không
|
|
713
|
+
*/
|
|
714
|
+
const isAsyncObject = (obj) => {
|
|
715
|
+
if (obj === null || typeof obj !== 'object') {
|
|
716
|
+
return false;
|
|
717
|
+
}
|
|
718
|
+
return obj instanceof Promise || obj instanceof Observable;
|
|
719
|
+
};
|
|
720
|
+
/**
|
|
721
|
+
* Kiểm tra đối tượng có phải là Special object cần bỏ qua không
|
|
722
|
+
* Bao gồm: Framework objects, File objects, Built-in objects, Async objects
|
|
723
|
+
*/
|
|
724
|
+
const isSpecialObject = (obj) => {
|
|
725
|
+
return isFrameworkObject(obj) || isFileObject(obj) || isBuiltInObject(obj) || isAsyncObject(obj);
|
|
726
|
+
};
|
|
727
|
+
/**
|
|
728
|
+
* Kiểm tra đối tượng có phải là dayjs object không
|
|
729
|
+
*/
|
|
730
|
+
const isDayjsObject = (obj) => {
|
|
731
|
+
return dayjs.isDayjs(obj);
|
|
732
|
+
};
|
|
733
|
+
/**
|
|
734
|
+
* Kiểm tra đối tượng có phải là object cần bỏ qua trong quá trình convert không
|
|
735
|
+
*/
|
|
736
|
+
const isSkippableObject = (obj) => {
|
|
737
|
+
return isDangerousObject(obj) || isSpecialObject(obj);
|
|
738
|
+
};
|
|
739
|
+
/**
|
|
740
|
+
* Kiểm tra đối tượng có phải là Map object không
|
|
741
|
+
*/
|
|
742
|
+
const isMapObject = (obj) => {
|
|
743
|
+
return obj instanceof Map;
|
|
744
|
+
};
|
|
745
|
+
/**
|
|
746
|
+
* Kiểm tra đối tượng có phải là Set object không
|
|
747
|
+
*/
|
|
748
|
+
const isSetObject = (obj) => {
|
|
749
|
+
return obj instanceof Set;
|
|
750
|
+
};
|
|
751
|
+
/**
|
|
752
|
+
* Kiểm tra đối tượng có phải là Array object không
|
|
753
|
+
*/
|
|
754
|
+
const isArrayObject = (obj) => {
|
|
755
|
+
return Array.isArray(obj);
|
|
756
|
+
};
|
|
757
|
+
/**
|
|
758
|
+
* Kiểm tra đối tượng có phải là object cần trả về nguyên trạng không
|
|
759
|
+
* Bao gồm: dangerous objects, special objects, dayjs objects
|
|
760
|
+
*/
|
|
761
|
+
const isReturnAsIsObject = (obj) => {
|
|
762
|
+
return isSkippableObject(obj) || isDayjsObject(obj);
|
|
763
|
+
};
|
|
764
|
+
/**
|
|
765
|
+
* Kiểm tra xem đối tượng có an toàn để clone/convert không
|
|
766
|
+
*/
|
|
767
|
+
const isSafeToProcess = (obj) => {
|
|
768
|
+
return !isDangerousObject(obj);
|
|
769
|
+
};
|
|
770
|
+
|
|
632
771
|
let key = '12~@#loqwsxacva(3rdhaq12';
|
|
633
772
|
/**
|
|
634
773
|
* @description Thiết lập key mã hóa
|
|
@@ -1568,11 +1707,11 @@ const convertObjectToSignal = (data, cloneDeepIfNotSignal = true, isSignalPrimit
|
|
|
1568
1707
|
seen.set(data, convertObjectToSignal(data(), cloneDeepIfNotSignal, isSignalPrimitiveType, acceptConvertObjectInnerWritableSignal, seen));
|
|
1569
1708
|
return seen.get(data);
|
|
1570
1709
|
}
|
|
1571
|
-
if (
|
|
1710
|
+
if (isArrayObject(data)) {
|
|
1572
1711
|
seen.set(data, signal(data.map((item) => convertObjectToSignal(item, cloneDeepIfNotSignal, isSignalPrimitiveType, acceptConvertObjectInnerWritableSignal, seen))));
|
|
1573
1712
|
return seen.get(data);
|
|
1574
1713
|
}
|
|
1575
|
-
if (data
|
|
1714
|
+
if (isMapObject(data)) {
|
|
1576
1715
|
const mapCopy = new Map();
|
|
1577
1716
|
Array.from(data.keys()).forEach((key) => {
|
|
1578
1717
|
mapCopy.set(key, convertObjectToSignal(data.get(key), cloneDeepIfNotSignal, isSignalPrimitiveType, acceptConvertObjectInnerWritableSignal));
|
|
@@ -1580,26 +1719,16 @@ const convertObjectToSignal = (data, cloneDeepIfNotSignal = true, isSignalPrimit
|
|
|
1580
1719
|
seen.set(data, signal(mapCopy));
|
|
1581
1720
|
return seen.get(data);
|
|
1582
1721
|
}
|
|
1583
|
-
|
|
1722
|
+
// Bỏ qua các đối tượng async
|
|
1723
|
+
if (isAsyncObject(data)) {
|
|
1584
1724
|
return data;
|
|
1585
1725
|
}
|
|
1586
1726
|
data = signal(cloneDeepIfNotSignal ? { ...data } : data);
|
|
1587
1727
|
seen.set(data, data);
|
|
1588
1728
|
for (const key in data()) {
|
|
1589
1729
|
const value = data()[key];
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
value instanceof Blob ||
|
|
1593
|
-
Object.prototype.toString.call(value) === '[object File]' ||
|
|
1594
|
-
value instanceof ElementRef ||
|
|
1595
|
-
value instanceof Element ||
|
|
1596
|
-
value instanceof Date ||
|
|
1597
|
-
value instanceof RegExp ||
|
|
1598
|
-
value instanceof Set ||
|
|
1599
|
-
value instanceof Map ||
|
|
1600
|
-
value instanceof Promise ||
|
|
1601
|
-
value instanceof Observable ||
|
|
1602
|
-
value instanceof HttpParams) {
|
|
1730
|
+
// Bỏ qua các đối tượng nguy hiểm và đặc biệt
|
|
1731
|
+
if (isReturnAsIsObject(value)) {
|
|
1603
1732
|
continue;
|
|
1604
1733
|
}
|
|
1605
1734
|
if (Object.prototype.hasOwnProperty.call(data(), key)) {
|
|
@@ -1613,7 +1742,7 @@ const convertSignalToObject = (data, isCloneDeep = true, seen = new WeakMap()) =
|
|
|
1613
1742
|
while (isSignal(data) && !seen.has(data)) {
|
|
1614
1743
|
const dataConvert = data();
|
|
1615
1744
|
if (typeof dataConvert === 'object') {
|
|
1616
|
-
if (dataConvert === null) {
|
|
1745
|
+
if (dataConvert === null || isReturnAsIsObject(dataConvert)) {
|
|
1617
1746
|
return dataConvert;
|
|
1618
1747
|
}
|
|
1619
1748
|
seen.set(dataConvert, dataConvert);
|
|
@@ -1624,20 +1753,20 @@ const convertSignalToObject = (data, isCloneDeep = true, seen = new WeakMap()) =
|
|
|
1624
1753
|
seen.set(data, dataConvert);
|
|
1625
1754
|
data = dataConvert;
|
|
1626
1755
|
}
|
|
1627
|
-
if (data === null || typeof data === 'function' || typeof data !== 'object') {
|
|
1756
|
+
if (data === null || typeof data === 'function' || typeof data !== 'object' || isReturnAsIsObject(data)) {
|
|
1628
1757
|
return data;
|
|
1629
1758
|
}
|
|
1630
1759
|
if (!ignoreCheckSeenHasDataAfterWhile && seen.has(data)) {
|
|
1631
1760
|
return seen.get(data);
|
|
1632
1761
|
}
|
|
1633
|
-
if (
|
|
1762
|
+
if (isArrayObject(data)) {
|
|
1634
1763
|
if (!isSignal(data[0])) {
|
|
1635
1764
|
return data;
|
|
1636
1765
|
}
|
|
1637
1766
|
seen.set(data, data.map((item) => convertSignalToObject(isCloneDeep ? cloneDeep(item) : item, isCloneDeep, seen)));
|
|
1638
1767
|
return seen.get(data);
|
|
1639
1768
|
}
|
|
1640
|
-
if (data
|
|
1769
|
+
if (isMapObject(data)) {
|
|
1641
1770
|
const mapCopy = new Map();
|
|
1642
1771
|
Array.from(data.keys()).forEach((key) => {
|
|
1643
1772
|
mapCopy.set(key, convertSignalToObject(isCloneDeep ? cloneDeep(data.get(key)) : data.get(key), isCloneDeep));
|
|
@@ -1645,10 +1774,16 @@ const convertSignalToObject = (data, isCloneDeep = true, seen = new WeakMap()) =
|
|
|
1645
1774
|
seen.set(data, mapCopy);
|
|
1646
1775
|
return seen.get(data);
|
|
1647
1776
|
}
|
|
1648
|
-
if (
|
|
1649
|
-
|
|
1777
|
+
if (isSetObject(data)) {
|
|
1778
|
+
const setCopy = new Set();
|
|
1779
|
+
Array.from(data.values()).forEach((value) => {
|
|
1780
|
+
setCopy.add(convertSignalToObject(isCloneDeep ? cloneDeep(value) : value, isCloneDeep));
|
|
1781
|
+
});
|
|
1782
|
+
seen.set(data, setCopy);
|
|
1783
|
+
return seen.get(data);
|
|
1650
1784
|
}
|
|
1651
|
-
|
|
1785
|
+
// Bỏ qua các đối tượng nguy hiểm và đặc biệt
|
|
1786
|
+
if (isReturnAsIsObject(data)) {
|
|
1652
1787
|
return data;
|
|
1653
1788
|
}
|
|
1654
1789
|
const result = isCloneDeep ? {} : data;
|
|
@@ -1656,6 +1791,11 @@ const convertSignalToObject = (data, isCloneDeep = true, seen = new WeakMap()) =
|
|
|
1656
1791
|
for (const key in data) {
|
|
1657
1792
|
const value = data[key];
|
|
1658
1793
|
if (Object.prototype.hasOwnProperty.call(data, key)) {
|
|
1794
|
+
// Bỏ qua các đối tượng nguy hiểm để tránh maximum call stack
|
|
1795
|
+
if (isReturnAsIsObject(value)) {
|
|
1796
|
+
result[key] = value;
|
|
1797
|
+
continue;
|
|
1798
|
+
}
|
|
1659
1799
|
result[key] = convertSignalToObject(isCloneDeep ? cloneDeep(value) : value, isCloneDeep);
|
|
1660
1800
|
}
|
|
1661
1801
|
}
|
|
@@ -1694,16 +1834,17 @@ const isNil = (value, options) => {
|
|
|
1694
1834
|
* isEmpty({ a: 1 }); // false
|
|
1695
1835
|
*/
|
|
1696
1836
|
const isEmpty = (value, options) => {
|
|
1697
|
-
if (options?.ignoreUnWrapSignal) {
|
|
1837
|
+
if (!options?.ignoreUnWrapSignal) {
|
|
1698
1838
|
value = convertSignalToObject(value);
|
|
1699
1839
|
}
|
|
1700
1840
|
if (options?.ignoreCheckFalsy) {
|
|
1701
1841
|
return isEmptyTypeObject(value);
|
|
1702
1842
|
}
|
|
1843
|
+
const valueIsFalsy = isFalsy(value, { ignoreUnWrapSignal: options?.ignoreUnWrapSignal, ignoreZero: true, ignoreCheckString: options?.ignoreCheckString });
|
|
1703
1844
|
if (options?.ignoreCheckTypeObj) {
|
|
1704
|
-
return
|
|
1845
|
+
return valueIsFalsy;
|
|
1705
1846
|
}
|
|
1706
|
-
return
|
|
1847
|
+
return valueIsFalsy || isEmptyTypeObject(value);
|
|
1707
1848
|
};
|
|
1708
1849
|
/**
|
|
1709
1850
|
* Kiểm tra xem một giá trị có phải là object rỗng hay không
|
|
@@ -1751,7 +1892,7 @@ const isFalsy = (value, options) => {
|
|
|
1751
1892
|
if (!options?.ignoreUnWrapSignal) {
|
|
1752
1893
|
value = convertSignalToObject(value);
|
|
1753
1894
|
}
|
|
1754
|
-
if (isNil(value)) {
|
|
1895
|
+
if (isNil(value, { ignoreUnWrapSignal: options?.ignoreUnWrapSignal })) {
|
|
1755
1896
|
return true;
|
|
1756
1897
|
}
|
|
1757
1898
|
if (options?.ignoreZero) {
|
|
@@ -1900,7 +2041,7 @@ const get = (obj, path, defaultValue, keepLastValueIfSignal) => {
|
|
|
1900
2041
|
* const obj = { a: { b: 1 } };
|
|
1901
2042
|
* set(obj, 'a.b', 2); // { a: { b: 2 } }
|
|
1902
2043
|
*/
|
|
1903
|
-
const set = (obj, path, value) => {
|
|
2044
|
+
const set = (obj, path, value, options) => {
|
|
1904
2045
|
if (!obj || (typeof obj !== 'object' && !isSignal(obj)) || (isSignal(obj) && typeof obj() !== 'object')) {
|
|
1905
2046
|
throw new Error('The first argument must be an object');
|
|
1906
2047
|
}
|
|
@@ -1920,7 +2061,7 @@ const set = (obj, path, value) => {
|
|
|
1920
2061
|
if (!(key in currentObjectByKey) || (typeof currentObjectByKey[key] !== 'object' && !isSignal(currentObjectByKey[key]))) {
|
|
1921
2062
|
const nextKey = pathArray[index + 1];
|
|
1922
2063
|
key = key.replace(/\[(\d+)]/g, '$1');
|
|
1923
|
-
currentObjectByKey[key] = /\[(\d+)]/g.test(nextKey) ? [] : {};
|
|
2064
|
+
currentObjectByKey[key] = /\[(\d+)]/g.test(nextKey) ? (options?.valueDefaultPathArrayUndefined ?? []) : (options?.valueDefaultPathObjectUndefined ?? {});
|
|
1924
2065
|
}
|
|
1925
2066
|
currentObjectByKey = key ? currentObjectByKey[key] : currentObjectByKey;
|
|
1926
2067
|
preObjectByKey = currentObjectByKey;
|
|
@@ -1979,7 +2120,7 @@ const set = (obj, path, value) => {
|
|
|
1979
2120
|
* // clone là một bản sao hoàn toàn độc lập của obj
|
|
1980
2121
|
*/
|
|
1981
2122
|
const cloneDeep = (data, options = { ignoreSignal: false }, seen = new WeakMap()) => {
|
|
1982
|
-
if (data === null || (typeof data !== 'object' && !isSignal(data))) {
|
|
2123
|
+
if (data === null || (typeof data !== 'object' && !isSignal(data)) || isDangerousObject(data)) {
|
|
1983
2124
|
return data;
|
|
1984
2125
|
}
|
|
1985
2126
|
if (seen.has(data)) {
|
|
@@ -2017,10 +2158,7 @@ const cloneDeep = (data, options = { ignoreSignal: false }, seen = new WeakMap()
|
|
|
2017
2158
|
seen.set(data, data.map((item) => cloneDeep(item, options, seen)));
|
|
2018
2159
|
return seen.get(data);
|
|
2019
2160
|
}
|
|
2020
|
-
if (
|
|
2021
|
-
return data;
|
|
2022
|
-
}
|
|
2023
|
-
if (data instanceof TemplateRef || data instanceof ElementRef || data instanceof Element || data instanceof Promise || data instanceof Observable) {
|
|
2161
|
+
if (isReturnAsIsObject(data)) {
|
|
2024
2162
|
return data;
|
|
2025
2163
|
}
|
|
2026
2164
|
if (isSignal(data)) {
|
|
@@ -2038,11 +2176,19 @@ const cloneDeep = (data, options = { ignoreSignal: false }, seen = new WeakMap()
|
|
|
2038
2176
|
result[key] = new UtilsHttpParamsRequest(undefined, value);
|
|
2039
2177
|
continue;
|
|
2040
2178
|
}
|
|
2179
|
+
if (value instanceof Date) {
|
|
2180
|
+
result[key] = new Date(value.getTime());
|
|
2181
|
+
continue;
|
|
2182
|
+
}
|
|
2041
2183
|
if (dayjs.isDayjs(value)) {
|
|
2042
2184
|
result[key] = getDayjs({ date: value.valueOf() });
|
|
2043
2185
|
continue;
|
|
2044
2186
|
}
|
|
2045
|
-
if (value instanceof
|
|
2187
|
+
if (value instanceof RegExp) {
|
|
2188
|
+
result[key] = new RegExp(value.source, value.flags);
|
|
2189
|
+
continue;
|
|
2190
|
+
}
|
|
2191
|
+
if (isReturnAsIsObject(data)) {
|
|
2046
2192
|
result[key] = value;
|
|
2047
2193
|
continue;
|
|
2048
2194
|
}
|
|
@@ -3056,5 +3202,5 @@ const createUniqueRandomIntGenerator = (min, max) => {
|
|
|
3056
3202
|
* Generated bundle index. Do not edit.
|
|
3057
3203
|
*/
|
|
3058
3204
|
|
|
3059
|
-
export { AudioExtList, CHARACTER_DATA_EMPTY, COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE, COMMUNICATE_MICRO_PREFIX_TYPE, DEFAULT_START_PAGE_0, DocumentExtList, ENCODE_URI_PATTERN, ERROR_MESSAGE_EMPTY_VALID, ERROR_MESSAGE_MAX_LENGTH, ERROR_MESSAGE_MAX_VALID, ERROR_MESSAGE_MIN_LENGTH, ERROR_MESSAGE_MIN_VALID, ERROR_MESSAGE_PATTEN_VALID, ExcelExtList, ImageExtList, LINK_IMAGE_ERROR_TOKEN_INJECT, PROCESS_BAR_STANDARD_CONFIG_DEFAULT_TOKEN_INJECT, PROCESS_BAR_STEPS_CONFIG_DEFAULT_TOKEN_INJECT, UtilsCache, UtilsCommunicateMicro, UtilsCommunicateMicroKeyGlobal, UtilsHttpParamsRequest, UtilsHttpParamsRequestInstance, UtilsKeyCodeConstant, UtilsLanguageConstants, UtilsUrlSearchParams, VideoExtList, base64Decode, base64Encode, capitalize, checkMouseOverInContainer, checkViewInScreen, cloneDeep, cloneIBoundingClientRect, colorContrastFromOrigin, colorStepContrastFromOrigin, convertBase64ToBlob, convertBlobToFile, convertFileToBase64, convertFileToBase64_ObjectUrl, convertHtmlToDivBlocks, convertObjectToSignal, convertSignalToObject, convertUrlToFile, createUniqueRandomIntGenerator, decodeEscapeHtml, decodeURI, decrypt, decrypt3rd, deleteUnicode, downloadFileByUrl, downloadFileByUrlUseXmlRequest, downloadImageFromELement, encodeURI, encrypt, encrypt3rd, endCodeUrl, escapeHtml, firstLetterToUpperCase, formatDate, formatNumber, formatTextCompare, fullNameFormat, generateInterface, get, getColorById, getDayjs, getDeltaFromHTML, getDeviceInfo, getDocumentByString, getDragEventByElement, getEventNameHandleClick, getFileExtension, getHTMLFromQuill, getKeyCacheByArrayObject, getLabelBySizeFile, getPlatFromBrowser, getSmartAxisScale, getViewport, groupBy, highlightByKeyword, insertContentWithRange, isDifferenceDay, isDifferenceMonth, isDifferenceYear, isEmbedFrame, isEmpty, isEqual, isFalsy, isIncludeAudioExtList, isIncludeDocumentExtList, isIncludeImageExtList, isIncludeVideoExtList, isNil, isTruthy, isTypeAudio, isTypeFile, isTypeImage, isTypeVideo, keyBy, listColorDefine, md5, omitBy, patternAccount, patternDomain, patternEmail, patternEmoji, patternEncodeUri, patternGetFieldByRuleFieldReplace, patternHostUrl, patternKey, patternMobilePhone, patternName, patternNameProfile, patternNameSpecial, patternNameUtf8, patternNumber, patternPem, patternPhone, patternPhoneNormal, patternRuleFieldReplace, patternTax, patternUrl, processPasteData, protectString, range, removeEmoji, revealString, rgbToHex, set, setCaretPosition, setDefaultTimeZone, setKeyCrypto, setKeyCrypto3rd, setStylesElement, uniqBy, updateFunctionCheckEmbedFrame, updateFunctionFormatDate, updateFunctionXssFilter, uppercaseByPosition, uuid, viewDataNumberByLanguage, xssFilter };
|
|
3205
|
+
export { AudioExtList, CHARACTER_DATA_EMPTY, COMMUNICATE_MICRO_KEY_GET_ALL_MESSAGE, COMMUNICATE_MICRO_PREFIX_TYPE, DEFAULT_START_PAGE_0, DocumentExtList, ENCODE_URI_PATTERN, ERROR_MESSAGE_EMPTY_VALID, ERROR_MESSAGE_MAX_LENGTH, ERROR_MESSAGE_MAX_VALID, ERROR_MESSAGE_MIN_LENGTH, ERROR_MESSAGE_MIN_VALID, ERROR_MESSAGE_PATTEN_VALID, ExcelExtList, ImageExtList, LINK_IMAGE_ERROR_TOKEN_INJECT, PROCESS_BAR_STANDARD_CONFIG_DEFAULT_TOKEN_INJECT, PROCESS_BAR_STEPS_CONFIG_DEFAULT_TOKEN_INJECT, UtilsCache, UtilsCommunicateMicro, UtilsCommunicateMicroKeyGlobal, UtilsHttpParamsRequest, UtilsHttpParamsRequestInstance, UtilsKeyCodeConstant, UtilsLanguageConstants, UtilsUrlSearchParams, VideoExtList, base64Decode, base64Encode, capitalize, checkMouseOverInContainer, checkViewInScreen, cloneDeep, cloneIBoundingClientRect, colorContrastFromOrigin, colorStepContrastFromOrigin, convertBase64ToBlob, convertBlobToFile, convertFileToBase64, convertFileToBase64_ObjectUrl, convertHtmlToDivBlocks, convertObjectToSignal, convertSignalToObject, convertUrlToFile, createUniqueRandomIntGenerator, decodeEscapeHtml, decodeURI, decrypt, decrypt3rd, deleteUnicode, downloadFileByUrl, downloadFileByUrlUseXmlRequest, downloadImageFromELement, encodeURI, encrypt, encrypt3rd, endCodeUrl, escapeHtml, firstLetterToUpperCase, formatDate, formatNumber, formatTextCompare, fullNameFormat, generateInterface, get, getColorById, getDayjs, getDeltaFromHTML, getDeviceInfo, getDocumentByString, getDragEventByElement, getEventNameHandleClick, getFileExtension, getHTMLFromQuill, getKeyCacheByArrayObject, getLabelBySizeFile, getPlatFromBrowser, getSmartAxisScale, getViewport, groupBy, hasDangerousConstructorName, highlightByKeyword, insertContentWithRange, isArrayObject, isAsyncObject, isBrowserAPIObject, isBrowserGlobalObject, isBuiltInObject, isDOMObject, isDangerousObject, isDayjsObject, isDifferenceDay, isDifferenceMonth, isDifferenceYear, isEmbedFrame, isEmpty, isEqual, isFalsy, isFileObject, isFrameworkObject, isIncludeAudioExtList, isIncludeDocumentExtList, isIncludeImageExtList, isIncludeVideoExtList, isMapObject, isNil, isReturnAsIsObject, isSafeToProcess, isSetObject, isSkippableObject, isSpecialObject, isTruthy, isTypeAudio, isTypeFile, isTypeImage, isTypeVideo, keyBy, listColorDefine, md5, omitBy, patternAccount, patternDomain, patternEmail, patternEmoji, patternEncodeUri, patternGetFieldByRuleFieldReplace, patternHostUrl, patternKey, patternMobilePhone, patternName, patternNameProfile, patternNameSpecial, patternNameUtf8, patternNumber, patternPem, patternPhone, patternPhoneNormal, patternRuleFieldReplace, patternTax, patternUrl, processPasteData, protectString, range, removeEmoji, revealString, rgbToHex, set, setCaretPosition, setDefaultTimeZone, setKeyCrypto, setKeyCrypto3rd, setStylesElement, uniqBy, updateFunctionCheckEmbedFrame, updateFunctionFormatDate, updateFunctionXssFilter, uppercaseByPosition, uuid, viewDataNumberByLanguage, xssFilter };
|
|
3060
3206
|
//# sourceMappingURL=libs-ui-utils.mjs.map
|