@cranberry-money/shared-utils 8.17.40 → 8.17.41
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/filters.d.ts +1 -39
- package/dist/filters.d.ts.map +1 -1
- package/dist/filters.js +0 -97
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/filters.d.ts
CHANGED
|
@@ -16,13 +16,6 @@ export declare function hasActiveFilters<T extends Record<string, unknown>>(filt
|
|
|
16
16
|
* @returns The number of active filters
|
|
17
17
|
*/
|
|
18
18
|
export declare function countActiveFilters<T extends Record<string, unknown>>(filters: T, excludeFields?: (keyof T)[]): number;
|
|
19
|
-
/**
|
|
20
|
-
* Clears all filters except specified fields
|
|
21
|
-
* @param filters - The filter object to clear
|
|
22
|
-
* @param preserveFields - Fields to preserve when clearing (default: [])
|
|
23
|
-
* @returns A new filter object with cleared values
|
|
24
|
-
*/
|
|
25
|
-
export declare function clearAllFilters<T extends Record<string, unknown>>(filters: T, preserveFields?: (keyof T)[]): Partial<T>;
|
|
26
19
|
/**
|
|
27
20
|
* Type-safe filter update helper
|
|
28
21
|
* @param currentFilters - The current filter state
|
|
@@ -30,38 +23,6 @@ export declare function clearAllFilters<T extends Record<string, unknown>>(filte
|
|
|
30
23
|
* @returns A new filter object with updates applied
|
|
31
24
|
*/
|
|
32
25
|
export declare function updateFilters<T extends Record<string, unknown>>(currentFilters: T, updates: Partial<T>): T;
|
|
33
|
-
/**
|
|
34
|
-
* Checks if a filter value is empty
|
|
35
|
-
* @param value - The value to check
|
|
36
|
-
* @returns true if the value is empty, false otherwise
|
|
37
|
-
*/
|
|
38
|
-
export declare function isFilterEmpty(value: unknown): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Removes empty filter values from an object
|
|
41
|
-
* @param filters - The filter object to clean
|
|
42
|
-
* @returns A new filter object with empty values removed
|
|
43
|
-
*/
|
|
44
|
-
export declare function removeEmptyFilters<T extends Record<string, unknown>>(filters: T): Partial<T>;
|
|
45
|
-
/**
|
|
46
|
-
* Merges two filter objects, with the second object taking precedence
|
|
47
|
-
* @param baseFilters - The base filter object
|
|
48
|
-
* @param overrideFilters - The override filter object
|
|
49
|
-
* @returns A new merged filter object
|
|
50
|
-
*/
|
|
51
|
-
export declare function mergeFilters<T extends Record<string, unknown>>(baseFilters: T, overrideFilters: Partial<T>): T;
|
|
52
|
-
/**
|
|
53
|
-
* Compares two filter objects for equality
|
|
54
|
-
* @param filters1 - The first filter object
|
|
55
|
-
* @param filters2 - The second filter object
|
|
56
|
-
* @returns true if the filters are equal, false otherwise
|
|
57
|
-
*/
|
|
58
|
-
export declare function areFiltersEqual<T extends Record<string, unknown>>(filters1: T, filters2: T): boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Creates a filter predicate function from a filter object
|
|
61
|
-
* @param filters - The filter object to create a predicate from
|
|
62
|
-
* @returns A predicate function that tests if an item matches the filters
|
|
63
|
-
*/
|
|
64
|
-
export declare function createFilterPredicate<T extends Record<string, unknown>, U extends Record<string, unknown>>(filters: T): (item: U) => boolean;
|
|
65
26
|
/**
|
|
66
27
|
* Check if any instrument filters are active (excluding searchQuery)
|
|
67
28
|
* Common pattern for instrument filter checking across applications
|
|
@@ -118,3 +79,4 @@ export declare function hasActiveTargetTradeFilters<T extends Record<string, unk
|
|
|
118
79
|
* @returns number of active non-search filters
|
|
119
80
|
*/
|
|
120
81
|
export declare function countActiveTargetTradeFilters<T extends Record<string, unknown>>(filters: T): number;
|
|
82
|
+
//# sourceMappingURL=filters.d.ts.map
|
package/dist/filters.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../src/filters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,OAAO,EAAE,CAAC,EACV,aAAa,GAAE,CAAC,MAAM,CAAC,CAAC,EAA+B,GACtD,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,OAAO,EAAE,CAAC,EACV,aAAa,GAAE,CAAC,MAAM,CAAC,CAAC,EAA+B,GACtD,MAAM,CAOR;AAED;;;;;GAKG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../src/filters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,OAAO,EAAE,CAAC,EACV,aAAa,GAAE,CAAC,MAAM,CAAC,CAAC,EAA+B,GACtD,OAAO,CAOT;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,OAAO,EAAE,CAAC,EACV,aAAa,GAAE,CAAC,MAAM,CAAC,CAAC,EAA+B,GACtD,MAAM,CAOR;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAE1G;AAOD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAEjG;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,CAElG;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAE5F;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,CAE7F;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAElG;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,CAEnG;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAElG;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,MAAM,CAEnG"}
|
package/dist/filters.js
CHANGED
|
@@ -22,22 +22,6 @@ export function countActiveFilters(filters, excludeFields = ['searchQuery']) {
|
|
|
22
22
|
const relevantEntries = Object.entries(filters).filter(([key]) => !excludeFields.includes(key));
|
|
23
23
|
return relevantEntries.filter(([, value]) => value !== undefined && value !== null && value !== '' && !(Array.isArray(value) && value.length === 0)).length;
|
|
24
24
|
}
|
|
25
|
-
/**
|
|
26
|
-
* Clears all filters except specified fields
|
|
27
|
-
* @param filters - The filter object to clear
|
|
28
|
-
* @param preserveFields - Fields to preserve when clearing (default: [])
|
|
29
|
-
* @returns A new filter object with cleared values
|
|
30
|
-
*/
|
|
31
|
-
export function clearAllFilters(filters, preserveFields = []) {
|
|
32
|
-
const clearedFilters = {};
|
|
33
|
-
// Preserve specified fields
|
|
34
|
-
preserveFields.forEach(field => {
|
|
35
|
-
if (field in filters) {
|
|
36
|
-
clearedFilters[field] = filters[field];
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
return clearedFilters;
|
|
40
|
-
}
|
|
41
25
|
/**
|
|
42
26
|
* Type-safe filter update helper
|
|
43
27
|
* @param currentFilters - The current filter state
|
|
@@ -47,87 +31,6 @@ export function clearAllFilters(filters, preserveFields = []) {
|
|
|
47
31
|
export function updateFilters(currentFilters, updates) {
|
|
48
32
|
return { ...currentFilters, ...updates };
|
|
49
33
|
}
|
|
50
|
-
/**
|
|
51
|
-
* Checks if a filter value is empty
|
|
52
|
-
* @param value - The value to check
|
|
53
|
-
* @returns true if the value is empty, false otherwise
|
|
54
|
-
*/
|
|
55
|
-
export function isFilterEmpty(value) {
|
|
56
|
-
return (value === undefined ||
|
|
57
|
-
value === null ||
|
|
58
|
-
value === '' ||
|
|
59
|
-
(Array.isArray(value) && value.length === 0) ||
|
|
60
|
-
(typeof value === 'object' && value !== null && Object.keys(value).length === 0));
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Removes empty filter values from an object
|
|
64
|
-
* @param filters - The filter object to clean
|
|
65
|
-
* @returns A new filter object with empty values removed
|
|
66
|
-
*/
|
|
67
|
-
export function removeEmptyFilters(filters) {
|
|
68
|
-
const cleanedFilters = {};
|
|
69
|
-
Object.keys(filters).forEach(key => {
|
|
70
|
-
const value = filters[key];
|
|
71
|
-
if (!isFilterEmpty(value)) {
|
|
72
|
-
cleanedFilters[key] = value;
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
return cleanedFilters;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Merges two filter objects, with the second object taking precedence
|
|
79
|
-
* @param baseFilters - The base filter object
|
|
80
|
-
* @param overrideFilters - The override filter object
|
|
81
|
-
* @returns A new merged filter object
|
|
82
|
-
*/
|
|
83
|
-
export function mergeFilters(baseFilters, overrideFilters) {
|
|
84
|
-
return { ...baseFilters, ...overrideFilters };
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Compares two filter objects for equality
|
|
88
|
-
* @param filters1 - The first filter object
|
|
89
|
-
* @param filters2 - The second filter object
|
|
90
|
-
* @returns true if the filters are equal, false otherwise
|
|
91
|
-
*/
|
|
92
|
-
export function areFiltersEqual(filters1, filters2) {
|
|
93
|
-
const keys1 = Object.keys(filters1);
|
|
94
|
-
const keys2 = Object.keys(filters2);
|
|
95
|
-
if (keys1.length !== keys2.length) {
|
|
96
|
-
return false;
|
|
97
|
-
}
|
|
98
|
-
return keys1.every(key => {
|
|
99
|
-
const value1 = filters1[key];
|
|
100
|
-
const value2 = filters2[key];
|
|
101
|
-
if (Array.isArray(value1) && Array.isArray(value2)) {
|
|
102
|
-
return value1.length === value2.length && value1.every((v, i) => v === value2[i]);
|
|
103
|
-
}
|
|
104
|
-
return value1 === value2;
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Creates a filter predicate function from a filter object
|
|
109
|
-
* @param filters - The filter object to create a predicate from
|
|
110
|
-
* @returns A predicate function that tests if an item matches the filters
|
|
111
|
-
*/
|
|
112
|
-
export function createFilterPredicate(filters) {
|
|
113
|
-
const activeFilters = removeEmptyFilters(filters);
|
|
114
|
-
const filterEntries = Object.entries(activeFilters);
|
|
115
|
-
if (filterEntries.length === 0) {
|
|
116
|
-
return () => true;
|
|
117
|
-
}
|
|
118
|
-
return (item) => {
|
|
119
|
-
return filterEntries.every(([key, filterValue]) => {
|
|
120
|
-
const itemValue = item[key];
|
|
121
|
-
if (Array.isArray(filterValue)) {
|
|
122
|
-
return filterValue.includes(itemValue);
|
|
123
|
-
}
|
|
124
|
-
if (typeof filterValue === 'string' && typeof itemValue === 'string') {
|
|
125
|
-
return itemValue.toLowerCase().includes(filterValue.toLowerCase());
|
|
126
|
-
}
|
|
127
|
-
return itemValue === filterValue;
|
|
128
|
-
});
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
34
|
// ============================================================================
|
|
132
35
|
// Common Filter Patterns
|
|
133
36
|
// Pre-configured utilities for common filter use cases
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export { getTradeStatusBadge, getWithdrawalStatusBadge, getLiquidationStatusBadg
|
|
|
12
12
|
export { formatPortfolioValue, calculateTotalValue, getMarketAllocation, getCashAllocation } from './portfolio';
|
|
13
13
|
export { calculateLiquidationProgress, getTotalEstimatedValue } from './withdrawal';
|
|
14
14
|
export { isNumericOnly, validatePassword, isValidTokenFormat, formatVerificationToken, validateEmailConfirmation, isValidEmail, validatePasswordExtended, isValidPhoneFormat, isValidFullName, isValidDateOfBirth, formatPhoneNumber, isValidInvestmentAmount, isValidSourceOfFunds, hasMinimumSelection, isSelected, } from './validation';
|
|
15
|
-
export { hasActiveFilters, countActiveFilters,
|
|
15
|
+
export { hasActiveFilters, countActiveFilters, updateFilters, hasActiveInstrumentFilters, countActiveInstrumentFilters, hasActiveTradeFilters, countActiveTradeFilters, hasActiveTransactionFilters, countActiveTransactionFilters, hasActiveTargetTradeFilters, countActiveTargetTradeFilters, } from './filters';
|
|
16
16
|
export { isTokenExpired, isTokenExpiringSoon, getTimeUntilExpiry, formatTimeUntilExpiry, parseDeviceInfo, isRefreshSuccess, getRefreshErrorMessage, createAutoRefreshHandler, } from './auth';
|
|
17
17
|
export { formatInstrumentPrice, getCurrencySymbol } from './instruments';
|
|
18
18
|
export { downloadBlob } from './downloads';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGjF,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGnE,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhH,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGpF,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,EACZ,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,GACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGjF,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,EACrC,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGnE,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhH,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGpF,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,EACZ,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,GACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EAEb,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGzE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAGzD,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,cAAc,EACd,yBAAyB,EACzB,yBAAyB,EACzB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAG3F,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACvB,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -21,7 +21,7 @@ export { calculateLiquidationProgress, getTotalEstimatedValue } from './withdraw
|
|
|
21
21
|
// Validation utilities
|
|
22
22
|
export { isNumericOnly, validatePassword, isValidTokenFormat, formatVerificationToken, validateEmailConfirmation, isValidEmail, validatePasswordExtended, isValidPhoneFormat, isValidFullName, isValidDateOfBirth, formatPhoneNumber, isValidInvestmentAmount, isValidSourceOfFunds, hasMinimumSelection, isSelected, } from './validation';
|
|
23
23
|
// Filter utilities
|
|
24
|
-
export { hasActiveFilters, countActiveFilters,
|
|
24
|
+
export { hasActiveFilters, countActiveFilters, updateFilters,
|
|
25
25
|
// Common filter patterns
|
|
26
26
|
hasActiveInstrumentFilters, countActiveInstrumentFilters, hasActiveTradeFilters, countActiveTradeFilters, hasActiveTransactionFilters, countActiveTransactionFilters, hasActiveTargetTradeFilters, countActiveTargetTradeFilters, } from './filters';
|
|
27
27
|
// Authentication utilities
|