@trackunit/filters-graphql-hook 2.18.10-alpha-15da733192f.0 → 2.18.12
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/index.cjs.js +24 -2
- package/index.esm.js +24 -3
- package/package.json +9 -9
- package/src/index.d.ts +1 -0
- package/src/useAssetSearchQuery.d.ts +7 -0
package/index.cjs.js
CHANGED
|
@@ -421,6 +421,26 @@ const siteTypeSFS = {
|
|
|
421
421
|
WORK_PLACE: "WORK_PLACE",
|
|
422
422
|
};
|
|
423
423
|
|
|
424
|
+
const MIN_ASSET_SEARCH_QUERY_LENGTH = 3;
|
|
425
|
+
/**
|
|
426
|
+
* Converts an asset search value to the query accepted by sfs-api.
|
|
427
|
+
*
|
|
428
|
+
* @param search - Raw asset search value.
|
|
429
|
+
* @returns {string | undefined} The original value when it contains at least three meaningful characters.
|
|
430
|
+
*/
|
|
431
|
+
const useAssetSearchQuery = (search) => {
|
|
432
|
+
return react.useMemo(() => {
|
|
433
|
+
if (typeof search !== "string") {
|
|
434
|
+
return undefined;
|
|
435
|
+
}
|
|
436
|
+
const meaningfulSearchQuery = search
|
|
437
|
+
.trim()
|
|
438
|
+
.replace(/^\*+|\*+$/g, "")
|
|
439
|
+
.trim();
|
|
440
|
+
return meaningfulSearchQuery.length >= MIN_ASSET_SEARCH_QUERY_LENGTH ? search : undefined;
|
|
441
|
+
}, [search]);
|
|
442
|
+
};
|
|
443
|
+
|
|
424
444
|
const CustomFieldPrefix$1 = "cf__";
|
|
425
445
|
/**
|
|
426
446
|
* Converts custom field filters to a format that can be used by the GraphQL API
|
|
@@ -552,6 +572,7 @@ const buildInspectionLastFilters = (filters) => {
|
|
|
552
572
|
const useActiveAssetFilters = (filters) => {
|
|
553
573
|
const { systemOfMeasurement } = reactCoreHooks.useCurrentUserSystemOfMeasurement();
|
|
554
574
|
const customFields = useCustomFieldFilters(filters);
|
|
575
|
+
const searchQuery = useAssetSearchQuery(filters?.search);
|
|
555
576
|
// TODO make typesafe checks for all filters
|
|
556
577
|
return react.useMemo(() => {
|
|
557
578
|
if (!filters) {
|
|
@@ -562,7 +583,7 @@ const useActiveAssetFilters = (filters) => {
|
|
|
562
583
|
const parsedArea = geoJsonSimplifiedPolygonSchema.safeParse(filters.area);
|
|
563
584
|
return {
|
|
564
585
|
assetIds: stringArrayOrUndefined(filters.assetIds),
|
|
565
|
-
searchQuery
|
|
586
|
+
searchQuery,
|
|
566
587
|
nameQuery: typeof filters.nameQuery === "string" && filters.nameQuery !== "" ? filters.nameQuery : undefined,
|
|
567
588
|
activities: fixTypes(filters.activity, assetActivityState),
|
|
568
589
|
geometry: parsedArea.success ? parsedArea.data : undefined,
|
|
@@ -672,7 +693,7 @@ const useActiveAssetFilters = (filters) => {
|
|
|
672
693
|
};
|
|
673
694
|
})(),
|
|
674
695
|
};
|
|
675
|
-
}, [filters, customFields, systemOfMeasurement]);
|
|
696
|
+
}, [filters, customFields, searchQuery, systemOfMeasurement]);
|
|
676
697
|
};
|
|
677
698
|
const booleanArraySchema = zod.z.array(zod.z.boolean());
|
|
678
699
|
|
|
@@ -1175,6 +1196,7 @@ exports.stringArrayOrUndefined = stringArrayOrUndefined;
|
|
|
1175
1196
|
exports.useActiveAssetFilters = useActiveAssetFilters;
|
|
1176
1197
|
exports.useAssetFiltersInputToFilterBarValues = useAssetFiltersInputToFilterBarValues;
|
|
1177
1198
|
exports.useAssetQueryFilters = useAssetQueryFilters;
|
|
1199
|
+
exports.useAssetSearchQuery = useAssetSearchQuery;
|
|
1178
1200
|
exports.useAssetSortInput = useAssetSortInput;
|
|
1179
1201
|
exports.useCustomFieldFilters = useCustomFieldFilters;
|
|
1180
1202
|
exports.valueBooleanOrUndefined = valueBooleanOrUndefined;
|
package/index.esm.js
CHANGED
|
@@ -419,6 +419,26 @@ const siteTypeSFS = {
|
|
|
419
419
|
WORK_PLACE: "WORK_PLACE",
|
|
420
420
|
};
|
|
421
421
|
|
|
422
|
+
const MIN_ASSET_SEARCH_QUERY_LENGTH = 3;
|
|
423
|
+
/**
|
|
424
|
+
* Converts an asset search value to the query accepted by sfs-api.
|
|
425
|
+
*
|
|
426
|
+
* @param search - Raw asset search value.
|
|
427
|
+
* @returns {string | undefined} The original value when it contains at least three meaningful characters.
|
|
428
|
+
*/
|
|
429
|
+
const useAssetSearchQuery = (search) => {
|
|
430
|
+
return useMemo(() => {
|
|
431
|
+
if (typeof search !== "string") {
|
|
432
|
+
return undefined;
|
|
433
|
+
}
|
|
434
|
+
const meaningfulSearchQuery = search
|
|
435
|
+
.trim()
|
|
436
|
+
.replace(/^\*+|\*+$/g, "")
|
|
437
|
+
.trim();
|
|
438
|
+
return meaningfulSearchQuery.length >= MIN_ASSET_SEARCH_QUERY_LENGTH ? search : undefined;
|
|
439
|
+
}, [search]);
|
|
440
|
+
};
|
|
441
|
+
|
|
422
442
|
const CustomFieldPrefix$1 = "cf__";
|
|
423
443
|
/**
|
|
424
444
|
* Converts custom field filters to a format that can be used by the GraphQL API
|
|
@@ -550,6 +570,7 @@ const buildInspectionLastFilters = (filters) => {
|
|
|
550
570
|
const useActiveAssetFilters = (filters) => {
|
|
551
571
|
const { systemOfMeasurement } = useCurrentUserSystemOfMeasurement();
|
|
552
572
|
const customFields = useCustomFieldFilters(filters);
|
|
573
|
+
const searchQuery = useAssetSearchQuery(filters?.search);
|
|
553
574
|
// TODO make typesafe checks for all filters
|
|
554
575
|
return useMemo(() => {
|
|
555
576
|
if (!filters) {
|
|
@@ -560,7 +581,7 @@ const useActiveAssetFilters = (filters) => {
|
|
|
560
581
|
const parsedArea = geoJsonSimplifiedPolygonSchema.safeParse(filters.area);
|
|
561
582
|
return {
|
|
562
583
|
assetIds: stringArrayOrUndefined(filters.assetIds),
|
|
563
|
-
searchQuery
|
|
584
|
+
searchQuery,
|
|
564
585
|
nameQuery: typeof filters.nameQuery === "string" && filters.nameQuery !== "" ? filters.nameQuery : undefined,
|
|
565
586
|
activities: fixTypes(filters.activity, assetActivityState),
|
|
566
587
|
geometry: parsedArea.success ? parsedArea.data : undefined,
|
|
@@ -670,7 +691,7 @@ const useActiveAssetFilters = (filters) => {
|
|
|
670
691
|
};
|
|
671
692
|
})(),
|
|
672
693
|
};
|
|
673
|
-
}, [filters, customFields, systemOfMeasurement]);
|
|
694
|
+
}, [filters, customFields, searchQuery, systemOfMeasurement]);
|
|
674
695
|
};
|
|
675
696
|
const booleanArraySchema = z.array(z.boolean());
|
|
676
697
|
|
|
@@ -1155,4 +1176,4 @@ const useAssetQueryFilters = (props) => {
|
|
|
1155
1176
|
*/
|
|
1156
1177
|
setupLibraryTranslations();
|
|
1157
1178
|
|
|
1158
|
-
export { CustomFieldPrefix, activeFilterToGraphQL, booleanValueToArray, convertToAssetSortInput, fixType, fixTypes, geoJsonSimplifiedPolygonSchema, isStringArrayValue, isValueName, isValueNameArray, minMaxFilterValueToAggregatedNumberRange, minMaxFilterValueToArray, minMaxFilterValueToNumberRange, positiveValueBooleanOrNull, stringArrayOrUndefined, useActiveAssetFilters, useAssetFiltersInputToFilterBarValues, useAssetQueryFilters, useAssetSortInput, useCustomFieldFilters, valueBooleanOrUndefined, valueNameArrayOrUndefined, valueNameBooleanToArray, valueNameOrUndefined, valuesIfNotEmpty };
|
|
1179
|
+
export { CustomFieldPrefix, activeFilterToGraphQL, booleanValueToArray, convertToAssetSortInput, fixType, fixTypes, geoJsonSimplifiedPolygonSchema, isStringArrayValue, isValueName, isValueNameArray, minMaxFilterValueToAggregatedNumberRange, minMaxFilterValueToArray, minMaxFilterValueToNumberRange, positiveValueBooleanOrNull, stringArrayOrUndefined, useActiveAssetFilters, useAssetFiltersInputToFilterBarValues, useAssetQueryFilters, useAssetSearchQuery, useAssetSortInput, useCustomFieldFilters, valueBooleanOrUndefined, valueNameArrayOrUndefined, valueNameBooleanToArray, valueNameOrUndefined, valuesIfNotEmpty };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/filters-graphql-hook",
|
|
3
|
-
"version": "2.18.
|
|
3
|
+
"version": "2.18.12",
|
|
4
4
|
"repository": "https://github.com/Trackunit/manager",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"engines": {
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
"@graphql-codegen/cli": "^5.0.3",
|
|
11
11
|
"@graphql-typed-document-node/core": "^3.2.0",
|
|
12
12
|
"zod": "^3.25.76",
|
|
13
|
-
"@trackunit/iris-app-build-utilities": "2.4.
|
|
14
|
-
"@trackunit/filters-filter-bar": "2.6.
|
|
15
|
-
"@trackunit/shared-utils": "1.16.
|
|
16
|
-
"@trackunit/iris-app-api": "2.6.
|
|
17
|
-
"@trackunit/react-core-contexts-test": "1.18.
|
|
18
|
-
"@trackunit/i18n-library-translation": "2.4.
|
|
19
|
-
"@trackunit/iris-app-runtime-core-api": "1.17.
|
|
20
|
-
"@trackunit/react-core-hooks": "1.21.
|
|
13
|
+
"@trackunit/iris-app-build-utilities": "2.4.59",
|
|
14
|
+
"@trackunit/filters-filter-bar": "2.6.78",
|
|
15
|
+
"@trackunit/shared-utils": "1.16.50",
|
|
16
|
+
"@trackunit/iris-app-api": "2.6.7",
|
|
17
|
+
"@trackunit/react-core-contexts-test": "1.18.62",
|
|
18
|
+
"@trackunit/i18n-library-translation": "2.4.65",
|
|
19
|
+
"@trackunit/iris-app-runtime-core-api": "1.17.62",
|
|
20
|
+
"@trackunit/react-core-hooks": "1.21.65"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"@apollo/client": "^3.13.8",
|
package/src/index.d.ts
CHANGED
|
@@ -2,5 +2,6 @@ export * from "./fixTypes";
|
|
|
2
2
|
export * from "./useActiveAssetFilters";
|
|
3
3
|
export * from "./useAssetFiltersInputToFilterBarValues";
|
|
4
4
|
export * from "./useAssetQueryFilters";
|
|
5
|
+
export * from "./useAssetSearchQuery";
|
|
5
6
|
export * from "./useAssetSortInput";
|
|
6
7
|
export * from "./useCustomFieldFilters";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts an asset search value to the query accepted by sfs-api.
|
|
3
|
+
*
|
|
4
|
+
* @param search - Raw asset search value.
|
|
5
|
+
* @returns {string | undefined} The original value when it contains at least three meaningful characters.
|
|
6
|
+
*/
|
|
7
|
+
export declare const useAssetSearchQuery: (search: unknown) => string | undefined;
|