@ethlete/query 5.41.2 → 5.41.4
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 +12 -0
- package/fesm2022/ethlete-query.mjs +19 -4
- package/fesm2022/ethlete-query.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ethlete/query
|
|
2
2
|
|
|
3
|
+
## 5.41.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`437b578`](https://github.com/ethlete-io/ethdk/commit/437b5789bd90e5f9159a0a596f803442cadf9c1e) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix serialized null values not always getting parsed to null inside query form
|
|
8
|
+
|
|
9
|
+
## 5.41.3
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`b55b919`](https://github.com/ethlete-io/ethdk/commit/b55b919b019ba53bf801ba3d63721452f83c444d) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix handling of number query fields that have a default value other than null
|
|
14
|
+
|
|
3
15
|
## 5.41.2
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -5927,6 +5927,7 @@ const transformToSortQueryParam = (value) => {
|
|
|
5927
5927
|
|
|
5928
5928
|
const ET_ARR_PREFIX = 'ET_ARR__';
|
|
5929
5929
|
const ET_OBJ_PREFIX = 'ET_OBJ__';
|
|
5930
|
+
const ET_PROP_NULL_VALUE = 'ET_NULL__';
|
|
5930
5931
|
class QueryField {
|
|
5931
5932
|
get control() {
|
|
5932
5933
|
return this.data.control;
|
|
@@ -6253,14 +6254,18 @@ class QueryForm {
|
|
|
6253
6254
|
deserializedValue = field.data.queryParamToValueTransformFn(value);
|
|
6254
6255
|
}
|
|
6255
6256
|
else if (!field.data.skipAutoTransform) {
|
|
6256
|
-
const defaultIsNum = this._getDefaultValue(key) === 'number';
|
|
6257
|
+
const defaultIsNum = typeof this._getDefaultValue(key) === 'number';
|
|
6257
6258
|
const valueIsNum = !isNaN(Number(value));
|
|
6258
6259
|
const valueContainsWhitespace = typeof value === 'string' && value.trim() !== value;
|
|
6259
6260
|
const valueHasLeadingZero = typeof value === 'string' && value.startsWith('0');
|
|
6260
6261
|
const valueEndsWithDot = typeof value === 'string' && value.endsWith('.');
|
|
6261
6262
|
const defaultIsBool = this._getDefaultValue(key) === 'boolean';
|
|
6262
6263
|
const valueIsBool = value === 'true' || value === 'false';
|
|
6263
|
-
if (
|
|
6264
|
+
if (value === ET_PROP_NULL_VALUE) {
|
|
6265
|
+
deserializedValue = null;
|
|
6266
|
+
}
|
|
6267
|
+
else if (defaultIsNum ||
|
|
6268
|
+
(valueIsNum && !valueContainsWhitespace && !valueHasLeadingZero && !valueEndsWithDot)) {
|
|
6264
6269
|
deserializedValue = transformToNumber(value);
|
|
6265
6270
|
}
|
|
6266
6271
|
else if (defaultIsBool || valueIsBool) {
|
|
@@ -6327,6 +6332,9 @@ class QueryForm {
|
|
|
6327
6332
|
else if (typeof val === 'function') {
|
|
6328
6333
|
return val();
|
|
6329
6334
|
}
|
|
6335
|
+
else if (val === ET_PROP_NULL_VALUE) {
|
|
6336
|
+
return null;
|
|
6337
|
+
}
|
|
6330
6338
|
return val ?? null;
|
|
6331
6339
|
}
|
|
6332
6340
|
_transformKeyToQueryParam(key) {
|
|
@@ -6342,7 +6350,9 @@ class QueryForm {
|
|
|
6342
6350
|
? `${ET_ARR_PREFIX}${JSON.stringify(value)}`
|
|
6343
6351
|
: typeof value === 'object' && value !== null
|
|
6344
6352
|
? `${ET_OBJ_PREFIX}${JSON.stringify(value)}`
|
|
6345
|
-
: value
|
|
6353
|
+
: value === null
|
|
6354
|
+
? ET_PROP_NULL_VALUE
|
|
6355
|
+
: value;
|
|
6346
6356
|
return this._defaultValues[key] === normalizedValue;
|
|
6347
6357
|
}
|
|
6348
6358
|
_setupFormGroup() {
|
|
@@ -6366,6 +6376,9 @@ class QueryForm {
|
|
|
6366
6376
|
else if (typeof value === 'object' && value !== null) {
|
|
6367
6377
|
defaultValues[key] = `${ET_OBJ_PREFIX}${JSON.stringify(value)}`;
|
|
6368
6378
|
}
|
|
6379
|
+
else if (value === null) {
|
|
6380
|
+
defaultValues[key] = ET_PROP_NULL_VALUE;
|
|
6381
|
+
}
|
|
6369
6382
|
else {
|
|
6370
6383
|
defaultValues[key] = value;
|
|
6371
6384
|
}
|
|
@@ -6389,7 +6402,9 @@ class QueryForm {
|
|
|
6389
6402
|
else {
|
|
6390
6403
|
queryParams[queryParamKey] = field.data.valueToQueryParamTransformFn
|
|
6391
6404
|
? field.data.valueToQueryParamTransformFn?.(value)
|
|
6392
|
-
: value
|
|
6405
|
+
: value === null
|
|
6406
|
+
? ET_PROP_NULL_VALUE
|
|
6407
|
+
: value;
|
|
6393
6408
|
}
|
|
6394
6409
|
}
|
|
6395
6410
|
this._zone.run(() => {
|