@libs-ui/utils 0.2.355-9 → 0.2.356-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 +633 -2
- package/base64.d.ts +25 -0
- package/cache.d.ts +73 -0
- package/collection.d.ts +12 -0
- package/color.d.ts +37 -0
- package/communicate-micro.d.ts +34 -1
- package/crypto-3rd.d.ts +12 -0
- package/crypto.d.ts +17 -0
- package/dangerous-object.d.ts +8 -1
- package/data.d.ts +5 -3
- package/date.d.ts +12 -0
- package/dom.d.ts +56 -0
- package/download.d.ts +21 -0
- package/esm2022/base64.mjs +27 -2
- package/esm2022/cache.mjs +74 -1
- package/esm2022/collection.mjs +13 -1
- package/esm2022/color.mjs +38 -1
- package/esm2022/communicate-micro.mjs +37 -5
- package/esm2022/crypto-3rd.mjs +13 -1
- package/esm2022/crypto.mjs +18 -1
- package/esm2022/dangerous-object.mjs +11 -2
- package/esm2022/data.mjs +6 -4
- package/esm2022/date.mjs +13 -1
- package/esm2022/dom.mjs +57 -1
- package/esm2022/download.mjs +22 -1
- package/esm2022/file.mjs +54 -1
- package/esm2022/format-number.mjs +31 -3
- package/esm2022/format-text.mjs +73 -2
- package/esm2022/function-check-embed-frame.mjs +28 -1
- package/esm2022/pattern.mjs +83 -3
- package/esm2022/trace.mjs +8 -1
- package/esm2022/two-way-signal-object.mjs +14 -1
- package/esm2022/uri.mjs +22 -3
- package/esm2022/url-search-params.mjs +68 -1
- package/esm2022/url.mjs +10 -1
- package/esm2022/uuid.mjs +7 -1
- package/esm2022/xss-filter.mjs +14 -1
- package/fesm2022/libs-ui-utils.mjs +723 -21
- package/fesm2022/libs-ui-utils.mjs.map +1 -1
- package/file.d.ts +53 -0
- package/format-number.d.ts +29 -1
- package/format-text.d.ts +71 -0
- package/function-check-embed-frame.d.ts +22 -0
- package/package.json +2 -2
- package/pattern.d.ts +81 -1
- package/trace.d.ts +7 -0
- package/two-way-signal-object.d.ts +13 -0
- package/uri.d.ts +20 -0
- package/url-search-params.d.ts +67 -0
- package/url.d.ts +9 -0
- package/uuid.d.ts +6 -0
- package/xss-filter.d.ts +13 -0
package/file.d.ts
CHANGED
|
@@ -1,18 +1,71 @@
|
|
|
1
1
|
import { IFile } from '@libs-ui/interfaces-types';
|
|
2
|
+
/** Kiểm tra file có phải là ảnh không (image/*). */
|
|
2
3
|
export declare const isTypeImage: (file: File | Blob) => boolean;
|
|
4
|
+
/** Kiểm tra file có phải là video không (video/*). */
|
|
3
5
|
export declare const isTypeVideo: (file: File | Blob) => boolean;
|
|
6
|
+
/** Kiểm tra file có phải là audio không (audio/*). */
|
|
4
7
|
export declare const isTypeAudio: (file: File | Blob) => boolean;
|
|
8
|
+
/** Kiểm tra giá trị có phải là đối tượng File không. */
|
|
5
9
|
export declare const isTypeFile: (file: File) => boolean;
|
|
10
|
+
/** Danh sách extension/MIME type của file Excel. */
|
|
6
11
|
export declare const ExcelExtList: string[];
|
|
12
|
+
/** Danh sách extension/MIME type của tài liệu (Word, Excel, PDF, JSON...). */
|
|
7
13
|
export declare const DocumentExtList: string[];
|
|
14
|
+
/**
|
|
15
|
+
* Kiểm tra extension có thuộc danh sách tài liệu được chấp nhận không.
|
|
16
|
+
* @param ext Extension hoặc MIME type cần kiểm tra
|
|
17
|
+
* @param listExt Danh sách tùy chỉnh (mặc định là DocumentExtList)
|
|
18
|
+
*/
|
|
8
19
|
export declare const isIncludeDocumentExtList: (ext: string, listExt?: Array<string>) => boolean;
|
|
20
|
+
/** Danh sách extension/MIME type của ảnh. */
|
|
9
21
|
export declare const ImageExtList: string[];
|
|
22
|
+
/**
|
|
23
|
+
* Kiểm tra extension có thuộc danh sách ảnh không.
|
|
24
|
+
* @param ext Extension hoặc MIME type cần kiểm tra
|
|
25
|
+
* @param listExt Danh sách tùy chỉnh (mặc định là ImageExtList)
|
|
26
|
+
*/
|
|
10
27
|
export declare const isIncludeImageExtList: (ext: string, listExt?: Array<string>) => boolean;
|
|
28
|
+
/** Danh sách extension/MIME type của video. */
|
|
11
29
|
export declare const VideoExtList: string[];
|
|
30
|
+
/**
|
|
31
|
+
* Kiểm tra extension có thuộc danh sách video không.
|
|
32
|
+
* @param ext Extension hoặc MIME type cần kiểm tra
|
|
33
|
+
*/
|
|
12
34
|
export declare const isIncludeVideoExtList: (ext: string, listExt?: Array<string>) => boolean;
|
|
35
|
+
/** Danh sách extension/MIME type của audio. */
|
|
13
36
|
export declare const AudioExtList: string[];
|
|
37
|
+
/**
|
|
38
|
+
* Kiểm tra extension có thuộc danh sách audio không.
|
|
39
|
+
* @param ext Extension hoặc MIME type cần kiểm tra
|
|
40
|
+
*/
|
|
14
41
|
export declare const isIncludeAudioExtList: (ext: string, listExt?: Array<string>) => boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Lấy phần mở rộng (extension) của một file.
|
|
44
|
+
* Hỗ trợ cả đối tượng File gốc của Browser và IFile (interface nội bộ).
|
|
45
|
+
* @param file Đối tượng File hoặc IFile
|
|
46
|
+
* @returns Extension dạng chữ thường (vd: "jpg", "pdf") hoặc undefined
|
|
47
|
+
*/
|
|
15
48
|
export declare const getFileExtension: (file: IFile | File) => string | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Định dạng kích thước file dạng chuỗi dễ đọc (KB hoặc MB).
|
|
51
|
+
* @param size Kích thước file tính bằng byte
|
|
52
|
+
* @param toFixed Số chữ số thập phân (mặc định: 2)
|
|
53
|
+
* @returns Chuỗi định dạng (vd: " 1.50 MB", " 512.00 KB")
|
|
54
|
+
*/
|
|
16
55
|
export declare const getLabelBySizeFile: (size: number, toFixed?: number) => string;
|
|
56
|
+
/**
|
|
57
|
+
* Chuyển đổi đối tượng Blob thành File.
|
|
58
|
+
* Tự động xác định phần mở rộng từ MIME type của Blob.
|
|
59
|
+
* @param blob Đối tượng Blob cần chuyển
|
|
60
|
+
* @param fileName Tên file mong muốn (mặc định: UUID ngẫu nhiên)
|
|
61
|
+
* @returns Đối tượng File tương ứng
|
|
62
|
+
*/
|
|
17
63
|
export declare const convertBlobToFile: (blob: Blob, fileName?: string) => File;
|
|
64
|
+
/**
|
|
65
|
+
* Tải file từ URL và chuyển về đối tượng File.
|
|
66
|
+
* Sử dụng XHR + FileReader để đọc nội dung, sau đó chuyển Base64 → Blob → File.
|
|
67
|
+
* @param url URL của file cần tải
|
|
68
|
+
* @param fileName Tên file mong muốn (mặc định: timestamp)
|
|
69
|
+
* @returns Promise trả về File hoặc undefined nếu thất bại
|
|
70
|
+
*/
|
|
18
71
|
export declare const convertUrlToFile: (url: string, fileName?: string) => Promise<File | undefined>;
|
package/format-number.d.ts
CHANGED
|
@@ -1,2 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chuẩn hóa chuỗi số theo locale hiện tại về dạng số thực (parseable).
|
|
3
|
+
* - Với **EN**: Xóa dấu phẩy (`,`) — dấu phân tách hàng nghìn.
|
|
4
|
+
* - Với **VI**: Xóa dấu chấm (`.`) và đổi dấu phẩy (`,`) thành dấu chấm (`.`).
|
|
5
|
+
*
|
|
6
|
+
* @param value Chuỗi hoặc số cần chuẩn hóa
|
|
7
|
+
* @returns Chuỗi số đã được chuẩn hóa (không dấu phân cách locale)
|
|
8
|
+
* @example
|
|
9
|
+
* // EN: "1,234,567" → "1234567"
|
|
10
|
+
* // VI: "1.234.567,89" → "1234567.89"
|
|
11
|
+
*/
|
|
1
12
|
export declare const formatNumber: (value: string | number) => string;
|
|
2
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Định dạng và hiển thị số theo ngôn ngữ (VI/EN) với các tùy chọn linh hoạt.
|
|
15
|
+
* Xử lý số âm, phần thập phân, làm tròn và dấu phân cách hàng nghìn.
|
|
16
|
+
*
|
|
17
|
+
* @param value Giá trị số hoặc chuỗi số đầu vào
|
|
18
|
+
* @param acceptNegativeValue Có chấp nhận số âm không (false → trả về 0 nếu value <= 0)
|
|
19
|
+
* @param parseFixed Số chữ số thập phân muốn giữ lại (mặc định: 1)
|
|
20
|
+
* @param ignoreFormatSeparator Bỏ qua bước chuẩn hóa dấu phân cách (khi value đã là số thuần)
|
|
21
|
+
* @param ignoreParseFloat Bỏ qua bước làm tròn (giữ nguyên phần thập phân)
|
|
22
|
+
* @param lang Ngôn ngữ hiển thị ('vi' hoặc 'en'), mặc định lấy từ cache
|
|
23
|
+
* @returns Chuỗi số đã format theo locale (vd: "1.234.567,89" hoặc "1,234,567.89")
|
|
24
|
+
* @example
|
|
25
|
+
* // VI, 2 chữ số thập phân
|
|
26
|
+
* viewDataNumberByLanguage(1234567.891, true, 2) → "1.234.567,89"
|
|
27
|
+
* // EN, 2 chữ số thập phân
|
|
28
|
+
* viewDataNumberByLanguage(1234567.891, true, 2, false, false, 'en') → "1,234,567.89"
|
|
29
|
+
*/
|
|
30
|
+
export declare const viewDataNumberByLanguage: (value: string | number, acceptNegativeValue: boolean | undefined, parseFixed?: number, ignoreFormatSeparator?: boolean, ignoreParseFloat?: boolean, lang?: string) => any;
|
package/format-text.d.ts
CHANGED
|
@@ -1,11 +1,82 @@
|
|
|
1
1
|
import { ITextFormatOptions } from '@libs-ui/interfaces-types';
|
|
2
|
+
/**
|
|
3
|
+
* Highlight một từ khóa tìm kiếm bên trong chuỗi văn bản bằng cách bọc vào thẻ `<span>`.
|
|
4
|
+
* Hỗ trợ tìm kiếm không phân biệt dấu (Unicode-insensitive) và không phân biệt hoa/thường.
|
|
5
|
+
*
|
|
6
|
+
* @param value Chuỗi văn bản gốc cần highlight
|
|
7
|
+
* @param search Từ khóa cần tìm và highlight
|
|
8
|
+
* @param ignoreHighlight Nếu `true`, bỏ qua highlight và trả về chuỗi gốc
|
|
9
|
+
* @param classHightLight Class CSS áp dụng cho span highlight (mặc định: 'bg-[#19344a] text-white')
|
|
10
|
+
* @returns Chuỗi HTML đã được inject thẻ `<span>` quanh từ khóa
|
|
11
|
+
*/
|
|
2
12
|
export declare const highlightByKeyword: (value: string | undefined, search: string | undefined, ignoreHighlight?: boolean, classHightLight?: string) => string;
|
|
13
|
+
/**
|
|
14
|
+
* Chuẩn hóa chuỗi văn bản theo chuẩn Unicode NFC và áp dụng các tùy chọn format.
|
|
15
|
+
* Thường dùng để so sánh chuỗi nhất quán, không phụ thuộc vào cách gõ có dấu.
|
|
16
|
+
*
|
|
17
|
+
* @param text Chuỗi cần chuẩn hóa
|
|
18
|
+
* @param options Các tùy chọn transform (trim, removeEmoji, removeUnicode...)
|
|
19
|
+
* @returns Chuỗi đã chuẩn hóa
|
|
20
|
+
*/
|
|
3
21
|
export declare const formatTextCompare: (text: string, options?: ITextFormatOptions) => string;
|
|
22
|
+
/**
|
|
23
|
+
* Định dạng họ tên đầy đủ: viết hoa chữ cái đầu mỗi từ, xóa khoảng trắng thừa và emoji.
|
|
24
|
+
* @param value Chuỗi họ tên cần format
|
|
25
|
+
* @returns Chuỗi đã được chuẩn hóa
|
|
26
|
+
* @example fullNameFormat(' nguyễn văn a ') → 'Nguyễn Văn A'
|
|
27
|
+
*/
|
|
4
28
|
export declare const fullNameFormat: (value: string) => string;
|
|
29
|
+
/**
|
|
30
|
+
* Viết hoa chữ cái đầu tiên của mỗi từ trong chuỗi.
|
|
31
|
+
* @param text Chuỗi cần capitalize
|
|
32
|
+
* @param options Tùy chọn xử lý trước (lowercase, trim, removeEmoji...)
|
|
33
|
+
* @returns Chuỗi đã được capitalize theo từng từ
|
|
34
|
+
* @example capitalize('hello world') → 'Hello World'
|
|
35
|
+
*/
|
|
5
36
|
export declare const capitalize: (text: string, options?: ITextFormatOptions) => string;
|
|
37
|
+
/**
|
|
38
|
+
* Viết hoa chữ cái đầu tiên của chuỗi.
|
|
39
|
+
* @param text Chuỗi cần xử lý
|
|
40
|
+
* @param options Tùy chọn format bổ sung
|
|
41
|
+
* @returns Chuỗi với chữ cái đầu tiên được viết hoa
|
|
42
|
+
* @example firstLetterToUpperCase('hello') → 'Hello'
|
|
43
|
+
*/
|
|
6
44
|
export declare const firstLetterToUpperCase: (text: string, options?: ITextFormatOptions) => string;
|
|
45
|
+
/**
|
|
46
|
+
* Viết hoa một ký tự tại vị trí bất kỳ trong chuỗi.
|
|
47
|
+
* @param text Chuỗi cần xử lý
|
|
48
|
+
* @param position Vị trí ký tự cần viết hoa (0-indexed)
|
|
49
|
+
* @param options Tùy chọn format bổ sung
|
|
50
|
+
* @returns Chuỗi với ký tự tại vị trí được viết hoa
|
|
51
|
+
*/
|
|
7
52
|
export declare const uppercaseByPosition: (text: string, position: number, options?: ITextFormatOptions) => string;
|
|
53
|
+
/**
|
|
54
|
+
* Escape các ký tự đặc biệt HTML thành HTML entities để tránh XSS.
|
|
55
|
+
* @param str Chuỗi cần escape
|
|
56
|
+
* @returns Chuỗi an toàn (& → &, < → <, > → >, " → ", ' → ')
|
|
57
|
+
* @example escapeHtml('<script>') → '<script>'
|
|
58
|
+
*/
|
|
8
59
|
export declare const escapeHtml: (str: string) => string;
|
|
60
|
+
/**
|
|
61
|
+
* Giải mã chuỗi HTML entities về dạng ký tự gốc.
|
|
62
|
+
* Sử dụng thẻ textarea để giải mã an toàn, hỗ trợ multi-level encoding.
|
|
63
|
+
* @param str Chuỗi HTML encoded cần giải mã
|
|
64
|
+
* @returns Chuỗi gốc sau khi decode
|
|
65
|
+
* @example decodeEscapeHtml('<b>') → '<b>'
|
|
66
|
+
*/
|
|
9
67
|
export declare const decodeEscapeHtml: (str: string) => string;
|
|
68
|
+
/**
|
|
69
|
+
* Xóa dấu tiếng Việt khỏi chuỗi, chuyển tất cả ký tự có dấu về dạng Latin cơ bản.
|
|
70
|
+
* Hỗ trợ cả chữ thường lẫn hoa.
|
|
71
|
+
* @param str Chuỗi tiếng Việt cần xóa dấu
|
|
72
|
+
* @returns Chuỗi đã xóa dấu (vd: 'Nguyễn Văn An' → 'Nguyen Van An')
|
|
73
|
+
*/
|
|
10
74
|
export declare const deleteUnicode: (str: string) => string;
|
|
75
|
+
/**
|
|
76
|
+
* Xóa tất cả emoji khỏi chuỗi văn bản.
|
|
77
|
+
* Sử dụng pattern regex từ `patternEmoji()` để nhận diện toàn bộ emoji Unicode.
|
|
78
|
+
* @param text Chuỗi cần xóa emoji
|
|
79
|
+
* @returns Chuỗi đã được xóa emoji
|
|
80
|
+
* @example removeEmoji('Hello 😀 World 🎉') → 'Hello World '
|
|
81
|
+
*/
|
|
11
82
|
export declare const removeEmoji: (text: string) => string;
|
|
@@ -1,2 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ghi đè hàm kiểm tra embed frame bằng một hàm logic tùy chỉnh.
|
|
3
|
+
* Hữu ích trong môi trường Micro-frontend hoặc khi cần mock cho testing.
|
|
4
|
+
*
|
|
5
|
+
* @param functionCustom Hàm trả về `true` nếu app đang chạy trong iframe/embed frame
|
|
6
|
+
* @example
|
|
7
|
+
* // Micro-frontend: luôn coi là embed
|
|
8
|
+
* updateFunctionCheckEmbedFrame(() => true);
|
|
9
|
+
*
|
|
10
|
+
* // Testing: luôn coi là không embed
|
|
11
|
+
* updateFunctionCheckEmbedFrame(() => false);
|
|
12
|
+
*/
|
|
1
13
|
export declare const updateFunctionCheckEmbedFrame: (functionCustom: () => boolean) => void;
|
|
14
|
+
/**
|
|
15
|
+
* Kiểm tra ứng dụng hiện tại có đang được nhúng trong iframe/embed frame hay không.
|
|
16
|
+
* Sử dụng hàm logic đang được đăng ký (mặc định hoặc custom).
|
|
17
|
+
*
|
|
18
|
+
* @returns `true` nếu app đang chạy trong iframe/embed, `false` nếu đang chạy standalone
|
|
19
|
+
* @example
|
|
20
|
+
* if (isEmbedFrame()) {
|
|
21
|
+
* // Ẩn header, sidebar vì đã có container bên ngoài quản lý
|
|
22
|
+
* }
|
|
23
|
+
*/
|
|
2
24
|
export declare const isEmbedFrame: () => boolean;
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libs-ui/utils",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.356-0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=18.0.0",
|
|
6
6
|
"@angular/core": ">=18.0.0",
|
|
7
7
|
"crypto-es": "^2.1.0",
|
|
8
8
|
"dayjs": "1.11.5",
|
|
9
|
-
"@libs-ui/interfaces-types": "0.2.
|
|
9
|
+
"@libs-ui/interfaces-types": "0.2.356-0",
|
|
10
10
|
"rxjs": "~7.8.0"
|
|
11
11
|
},
|
|
12
12
|
"sideEffects": false,
|
package/pattern.d.ts
CHANGED
|
@@ -1,20 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns regex for email validation
|
|
3
|
+
* @returns {RegExp}
|
|
4
|
+
*/
|
|
1
5
|
export declare const patternEmail: () => RegExp;
|
|
2
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Returns regex for protocol in URL (http, https, ftp)
|
|
8
|
+
* @returns {RegExp}
|
|
9
|
+
*/
|
|
10
|
+
export declare const patternProtocolUrl: () => RegExp;
|
|
11
|
+
/**
|
|
12
|
+
* Returns regex for full URL validation
|
|
13
|
+
* @returns {RegExp}
|
|
14
|
+
*/
|
|
3
15
|
export declare const patternUrl: () => RegExp;
|
|
16
|
+
/**
|
|
17
|
+
* Returns regex for host part of URL
|
|
18
|
+
* @returns {RegExp}
|
|
19
|
+
*/
|
|
4
20
|
export declare const patternHostUrl: () => RegExp;
|
|
21
|
+
/**
|
|
22
|
+
* Returns regex for domain validation
|
|
23
|
+
* @returns {RegExp}
|
|
24
|
+
*/
|
|
5
25
|
export declare const patternDomain: () => RegExp;
|
|
26
|
+
/**
|
|
27
|
+
* Returns regex for Vietnamese mobile phone validation
|
|
28
|
+
* @returns {RegExp}
|
|
29
|
+
*/
|
|
6
30
|
export declare const patternMobilePhone: () => RegExp;
|
|
31
|
+
/**
|
|
32
|
+
* Returns regex for general phone number validation
|
|
33
|
+
* @returns {RegExp}
|
|
34
|
+
*/
|
|
7
35
|
export declare const patternPhone: () => RegExp;
|
|
36
|
+
/**
|
|
37
|
+
* Returns regex for digits
|
|
38
|
+
* @returns {RegExp}
|
|
39
|
+
*/
|
|
8
40
|
export declare const patternNumber: () => RegExp;
|
|
41
|
+
/**
|
|
42
|
+
* Returns regex for encoded URI characters
|
|
43
|
+
* @returns {RegExp}
|
|
44
|
+
*/
|
|
9
45
|
export declare const patternEncodeUri: () => RegExp;
|
|
46
|
+
/**
|
|
47
|
+
* Returns regex for standard name (alphanumeric and spaces)
|
|
48
|
+
* @returns {RegExp}
|
|
49
|
+
*/
|
|
10
50
|
export declare const patternName: () => RegExp;
|
|
51
|
+
/**
|
|
52
|
+
* Returns regex for UTF-8 name (including Vietnamese characters)
|
|
53
|
+
* @returns {RegExp}
|
|
54
|
+
*/
|
|
11
55
|
export declare const patternNameUtf8: () => RegExp;
|
|
56
|
+
/**
|
|
57
|
+
* Returns regex for special characters in name
|
|
58
|
+
* @returns {RegExp}
|
|
59
|
+
*/
|
|
12
60
|
export declare const patternNameSpecial: () => RegExp;
|
|
61
|
+
/**
|
|
62
|
+
* Returns regex for profile name
|
|
63
|
+
* @returns {RegExp}
|
|
64
|
+
*/
|
|
13
65
|
export declare const patternNameProfile: () => RegExp;
|
|
66
|
+
/**
|
|
67
|
+
* Returns regex for emojis
|
|
68
|
+
* @returns {RegExp}
|
|
69
|
+
*/
|
|
14
70
|
export declare const patternEmoji: () => RegExp;
|
|
71
|
+
/**
|
|
72
|
+
* Returns regex for matching field replacement markers (e.g. {{field}})
|
|
73
|
+
* @returns {RegExp}
|
|
74
|
+
*/
|
|
15
75
|
export declare const patternRuleFieldReplace: () => RegExp;
|
|
76
|
+
/**
|
|
77
|
+
* Returns regex for extracting field name from replacement markers
|
|
78
|
+
* @returns {RegExp}
|
|
79
|
+
*/
|
|
16
80
|
export declare const patternGetFieldByRuleFieldReplace: () => RegExp;
|
|
81
|
+
/**
|
|
82
|
+
* Returns regex for PEM format validation
|
|
83
|
+
* @returns {RegExp}
|
|
84
|
+
*/
|
|
17
85
|
export declare const patternPem: () => RegExp;
|
|
86
|
+
/**
|
|
87
|
+
* Returns regex for tax ID validation
|
|
88
|
+
* @returns {RegExp}
|
|
89
|
+
*/
|
|
18
90
|
export declare const patternTax: () => RegExp;
|
|
91
|
+
/**
|
|
92
|
+
* Returns regex for key validation (identical to tax regex)
|
|
93
|
+
* @returns {RegExp}
|
|
94
|
+
*/
|
|
19
95
|
export declare const patternKey: () => RegExp;
|
|
96
|
+
/**
|
|
97
|
+
* Returns regex for account validation (must contain @)
|
|
98
|
+
* @returns {RegExp}
|
|
99
|
+
*/
|
|
20
100
|
export declare const patternAccount: () => RegExp;
|
package/trace.d.ts
CHANGED
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trả về danh sách tên các hàm trong stack trace hiện tại.
|
|
3
|
+
* Đã lọc bỏ các hàm nội bộ của Angular, RxJS, Zone.js và các thư viện hệ thống.
|
|
4
|
+
* Hữu ích cho việc logging hoặc debugging để biết source gọi đến function hiện tại.
|
|
5
|
+
*
|
|
6
|
+
* @returns {string[]} Mảng chứa tên các hàm theo thứ tự từ gốc đến ngọn (ngược callback stack).
|
|
7
|
+
*/
|
|
1
8
|
export declare const traceStack: () => string[];
|
|
@@ -11,7 +11,20 @@
|
|
|
11
11
|
* @returns Dữ liệu đã được chuyển đổi theo kiểu T
|
|
12
12
|
*/
|
|
13
13
|
export declare const convertObjectToSignal: <T = any>(data: any, cloneDeepIfNotSignal?: boolean, isSignalPrimitiveType?: boolean, acceptConvertObjectInnerWritableSignal?: boolean, seen?: WeakMap<object, any>) => T;
|
|
14
|
+
/**
|
|
15
|
+
* Chuyển đổi một đối tượng signal (có thể lồng nhau) thành đối tượng plain object/array/map/set.
|
|
16
|
+
* @param data Dữ liệu signal hoặc đối tượng chứa signal cần chuyển đổi.
|
|
17
|
+
* @param isCloneDeep Có thực hiện sao chép sâu dữ liệu trong quá trình chuyển đổi hay không. Mặc định là true.
|
|
18
|
+
* @param seen Dùng nội bộ để tránh lặp vô hạn (WeakMap).
|
|
19
|
+
* @param options Tùy chọn chuyển đổi (ví dụ: convertWhenFirstItemArrayNotIsSignal).
|
|
20
|
+
* @returns Đối tượng plain object đã được "giải nén" mọi signal bên trong.
|
|
21
|
+
*/
|
|
14
22
|
export declare const convertSignalToObject: <T = any>(data: any, isCloneDeep?: boolean, seen?: WeakMap<object, any>, options?: {
|
|
15
23
|
convertWhenFirstItemArrayNotIsSignal?: boolean;
|
|
16
24
|
}) => T;
|
|
25
|
+
/**
|
|
26
|
+
* Unwrap một giá trị cho đến khi không còn là signal nữa.
|
|
27
|
+
* @param data Giá trị (có thể là lồng nhiều cấp signal) cần unwrap.
|
|
28
|
+
* @returns Giá trị cuối cùng bên trong signal.
|
|
29
|
+
*/
|
|
17
30
|
export declare const unwrapSignal: (data: any) => any;
|
package/uri.d.ts
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
import { TYPE_OBJECT } from '@libs-ui/interfaces-types';
|
|
2
2
|
export declare const ENCODE_URI_PATTERN: RegExp;
|
|
3
|
+
/**
|
|
4
|
+
* Giải mã chuỗi URI một cách an toàn.
|
|
5
|
+
*
|
|
6
|
+
* @param value Chuỗi cần giải mã.
|
|
7
|
+
* @returns Chuỗi đã được giải mã.
|
|
8
|
+
*/
|
|
3
9
|
export declare const decodeURI: (value: string) => string;
|
|
10
|
+
/**
|
|
11
|
+
* Mã hóa chuỗi URI.
|
|
12
|
+
*
|
|
13
|
+
* @param value Chuỗi cần mã hóa.
|
|
14
|
+
* @returns Chuỗi đã được mã hóa.
|
|
15
|
+
*/
|
|
4
16
|
export declare const encodeURI: (value: string) => string;
|
|
17
|
+
/**
|
|
18
|
+
* Chuyển đổi đối tượng parameters thành chuỗi query string hoặc body string.
|
|
19
|
+
* Tự động loại bỏ các giá trị rỗng, null, hoặc undefined.
|
|
20
|
+
*
|
|
21
|
+
* @param params Đối tượng chứa các tham số.
|
|
22
|
+
* @param isBody Nếu true, trả về chuỗi không có dấu '?' ở đầu.
|
|
23
|
+
* @returns Chuỗi tham số đã được mã hóa.
|
|
24
|
+
*/
|
|
5
25
|
export declare const endCodeUrl: (params: TYPE_OBJECT, isBody: boolean) => string;
|
package/url-search-params.d.ts
CHANGED
|
@@ -1,25 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tiện ích xử lý tham số truy vấn trên URL (URL Search Parameters).
|
|
3
|
+
* Cung cấp các phương thức để parse, thêm, xóa, lấy giá trị và so sánh các tham số.
|
|
4
|
+
*/
|
|
1
5
|
export declare class UtilsUrlSearchParams {
|
|
2
6
|
private static instance;
|
|
3
7
|
private params;
|
|
8
|
+
/**
|
|
9
|
+
* Khởi tạo UtilsUrlSearchParams từ một chuỗi query string.
|
|
10
|
+
* @param paramString Chuỗi tham số (ví dụ: "?id=1&name=test" hoặc đơn giản là "id=1&name=test").
|
|
11
|
+
*/
|
|
4
12
|
constructor(paramString: string);
|
|
13
|
+
/**
|
|
14
|
+
* Lấy instance duy nhất (Singleton) của UtilsUrlSearchParams.
|
|
15
|
+
* @returns {UtilsUrlSearchParams} Instance của lớp.
|
|
16
|
+
*/
|
|
5
17
|
static getInstance(): UtilsUrlSearchParams;
|
|
18
|
+
/**
|
|
19
|
+
* Chuyển đổi một đối tượng key-value thành chuỗi query string.
|
|
20
|
+
* @param params Đối tượng chứa các tham số (ví dụ: { id: "1", name: "test" }).
|
|
21
|
+
* @returns {string} Chuỗi query string đã được sắp xếp theo key (ví dụ: "id=1&name=test").
|
|
22
|
+
*/
|
|
6
23
|
static toStringParamObject(params: {
|
|
7
24
|
[key in string]: string;
|
|
8
25
|
}): string;
|
|
26
|
+
/**
|
|
27
|
+
* Chuyển đổi mảng các cặp key-value thành chuỗi query string.
|
|
28
|
+
* Các tham số sẽ được sắp xếp theo thứ tự bảng chữ cái của key.
|
|
29
|
+
* @param params Mảng các đối tượng { key, value }.
|
|
30
|
+
* @returns {string} Chuỗi query string.
|
|
31
|
+
*/
|
|
9
32
|
static ToString(params: Array<{
|
|
10
33
|
key: string;
|
|
11
34
|
value: string;
|
|
12
35
|
}>): string;
|
|
36
|
+
/**
|
|
37
|
+
* Phân tích chuỗi query string thành mảng các cặp key-value.
|
|
38
|
+
* Tự động decode các giá trị và xử lý các trường hợp URL lỗi (nhiều dấu ?).
|
|
39
|
+
* @param paramString Chuỗi cần phân tích.
|
|
40
|
+
* @returns {Array<{ key: string; value: string }>} Mảng kết quả.
|
|
41
|
+
*/
|
|
13
42
|
private buildParams;
|
|
43
|
+
/**
|
|
44
|
+
* Thêm hoặc cập nhật giá trị của một tham số.
|
|
45
|
+
* @param key Tên tham số.
|
|
46
|
+
* @param value Giá trị tham số.
|
|
47
|
+
*/
|
|
14
48
|
set(key: string, value: string): void;
|
|
49
|
+
/**
|
|
50
|
+
* Lấy giá trị của một tham số theo key.
|
|
51
|
+
* @param key Tên tham số cần lấy.
|
|
52
|
+
* @returns {string | undefined} Giá trị của tham số hoặc undefined nếu không tìm thấy.
|
|
53
|
+
*/
|
|
15
54
|
get(key: string): string | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Kiểm tra xem một tham số có tồn tại hay không.
|
|
57
|
+
* @param key Tên tham số cần kiểm tra.
|
|
58
|
+
* @returns {boolean} True nếu tồn tại.
|
|
59
|
+
*/
|
|
16
60
|
has(key: string): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Xóa một tham số khỏi danh sách.
|
|
63
|
+
* @param key Tên tham số cần xóa.
|
|
64
|
+
*/
|
|
17
65
|
delete(key: string): void;
|
|
66
|
+
/**
|
|
67
|
+
* @returns {number} Số lượng tham số hiện có.
|
|
68
|
+
*/
|
|
18
69
|
length(): number;
|
|
70
|
+
/**
|
|
71
|
+
* Chuyển đổi các tham số hiện tại (hoặc mảng truyền vào) thành chuỗi query string.
|
|
72
|
+
* @param params (Tùy chọn) Mảng tham số cần convert. Nếu không truyền sẽ dùng params nội bộ.
|
|
73
|
+
* @returns {string} Chuỗi query string.
|
|
74
|
+
*/
|
|
19
75
|
toString(params?: Array<{
|
|
20
76
|
key: string;
|
|
21
77
|
value: string;
|
|
22
78
|
}>): string;
|
|
79
|
+
/**
|
|
80
|
+
* Chuyển đổi danh sách tham số hiện tại thành một đối tượng plain object.
|
|
81
|
+
* @returns {Record<string, string>} Đối tượng key-value.
|
|
82
|
+
*/
|
|
23
83
|
getParamObject(): Record<string, string>;
|
|
84
|
+
/**
|
|
85
|
+
* So sánh hai chuỗi query string xem chúng có chứa cùng tập tham số và giá trị hay không.
|
|
86
|
+
* Thứ tự các tham số trong chuỗi ban đầu không quan trọng.
|
|
87
|
+
* @param param1 Chuỗi thứ nhất.
|
|
88
|
+
* @param param2 Chuỗi thứ hai.
|
|
89
|
+
* @returns {boolean} True nếu giống nhau.
|
|
90
|
+
*/
|
|
24
91
|
compareParams(param1: string, param2: string): boolean;
|
|
25
92
|
}
|
package/url.d.ts
CHANGED
|
@@ -1 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chuẩn hóa một URL bằng cách loại bỏ các dấu gạch chéo kép (//) trong pathname.
|
|
3
|
+
*
|
|
4
|
+
* @param rawUrl - URL cần chuẩn hóa.
|
|
5
|
+
* @returns URL đã được chuẩn hóa dưới dạng chuỗi.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* normalizeUrl('https://example.com//path//to//file') // => 'https://example.com/path/to/file'
|
|
9
|
+
*/
|
|
1
10
|
export declare const normalizeUrl: (rawUrl: string) => string;
|
package/uuid.d.ts
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tạo một chuỗi định danh duy nhất (Unique ID) dựa trên thời gian (timestamp) và các ký tự ngẫu nhiên.
|
|
3
|
+
* Chuỗi kết quả được xáo trộn và băm bằng MD5, trả về một chuỗi 32 ký tự alphanumeric.
|
|
4
|
+
*
|
|
5
|
+
* @returns {string} Chuỗi định danh duy nhất (MD5 hash).
|
|
6
|
+
*/
|
|
1
7
|
export declare const uuid: () => string;
|
package/xss-filter.d.ts
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
1
|
export type TYPE_FUNCTION_XSS = (data: string) => Promise<string>;
|
|
2
|
+
/**
|
|
3
|
+
* Cập nhật hàm lọc XSS.
|
|
4
|
+
* Cho phép ghi đè hàm xử lý XSS mặc định (trả về nguyên gốc) bằng một implementation bảo mật do project cung cấp (ví dụ: dùng DOMPurify).
|
|
5
|
+
*
|
|
6
|
+
* @param functionCustom Hàm xử lý XSS tùy chỉnh cần cập nhật.
|
|
7
|
+
*/
|
|
2
8
|
export declare const updateFunctionXssFilter: (functionCustom: TYPE_FUNCTION_XSS) => void;
|
|
9
|
+
/**
|
|
10
|
+
* Lọc dữ liệu thông qua hàm lọc XSS đã được định cấu hình.
|
|
11
|
+
* Theo mặc định, hàm này sẽ trả lại chuỗi ban đầu. Nếu bạn đã cung cấp một custom filter qua `updateFunctionXssFilter`, hàm đó sẽ được sử dụng.
|
|
12
|
+
*
|
|
13
|
+
* @param data Chuỗi dữ liệu đầu vào.
|
|
14
|
+
* @returns {Promise<string>} Promise chứa kết quả đã được lọc XSS.
|
|
15
|
+
*/
|
|
3
16
|
export declare const xssFilter: TYPE_FUNCTION_XSS;
|