@trackunit/filters-asset-filter-definitions 2.9.39 → 2.10.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/index.cjs.js +218 -0
- package/index.esm.js +219 -2
- package/package.json +17 -17
- package/src/defaultFilters/defaults/ConnectedAccessoryFilter/ConnectedAccessoryFilter.d.ts +16 -0
- package/src/defaultFilters/defaults/ConnectedAccessoryFilter/connectedAccessoryOptions.d.ts +58 -0
- package/src/defaultFilters/defaults/ConnectedAccessoryFilter/useConnectedAccessoryFilter.d.ts +12 -0
- package/src/generated/graphql-api/gql.d.ts +7 -0
- package/src/generated/graphql-api/graphql.d.ts +42 -0
- package/src/generated/graphql-api/mock.d.ts +7 -0
- package/src/index.d.ts +1 -0
- package/src/translation.d.ts +2 -2
- package/migrations/entry.js.map +0 -1
package/index.cjs.js
CHANGED
|
@@ -45,6 +45,14 @@ var defaultTranslations = {
|
|
|
45
45
|
"assetFilters.boundingBoxFilter.value": "Within map area",
|
|
46
46
|
"assetFilters.can1Profile.label": "CAN1 profile",
|
|
47
47
|
"assetFilters.can2Profile.label": "CAN2 profile",
|
|
48
|
+
"assetFilters.connectedAccessory.DUALID": "DualID",
|
|
49
|
+
"assetFilters.connectedAccessory.DUALID_II": "DualID II",
|
|
50
|
+
"assetFilters.connectedAccessory.IBUTTON_READER": "iButton Reader",
|
|
51
|
+
"assetFilters.connectedAccessory.K300": "K300",
|
|
52
|
+
"assetFilters.connectedAccessory.label": "Connected Accessory",
|
|
53
|
+
"assetFilters.connectedAccessory.M7_KEYPAD": "M7 Keypad",
|
|
54
|
+
"assetFilters.connectedAccessory.NO_ACCESSORY_CONNECTED": "No accessory connected",
|
|
55
|
+
"assetFilters.connectedAccessory.UNKNOWN": "Unknown",
|
|
48
56
|
"assetFilters.criticality.CRITICAL": "Critical",
|
|
49
57
|
"assetFilters.criticality.LOW": "Low",
|
|
50
58
|
"assetFilters.criticality.NONE": "Good",
|
|
@@ -411,6 +419,15 @@ const assetCriticalityState = {
|
|
|
411
419
|
LOW: "LOW",
|
|
412
420
|
NONE: "NONE",
|
|
413
421
|
};
|
|
422
|
+
const connectedAccessoryType = {
|
|
423
|
+
DUALID: "DUALID",
|
|
424
|
+
DUALID_II: "DUALID_II",
|
|
425
|
+
IBUTTON_READER: "IBUTTON_READER",
|
|
426
|
+
K300: "K300",
|
|
427
|
+
M7_KEYPAD: "M7_KEYPAD",
|
|
428
|
+
NO_ACCESSORY_CONNECTED: "NO_ACCESSORY_CONNECTED",
|
|
429
|
+
UNKNOWN: "UNKNOWN",
|
|
430
|
+
};
|
|
414
431
|
const deviceHealthDeviceStatus = {
|
|
415
432
|
CRITICAL: "CRITICAL",
|
|
416
433
|
LOW: "LOW",
|
|
@@ -921,6 +938,66 @@ const GetFleetCan2ProfileSummaryMissingDocument = {
|
|
|
921
938
|
},
|
|
922
939
|
],
|
|
923
940
|
};
|
|
941
|
+
const GetFleetConnectedAccessorySummaryDocument = {
|
|
942
|
+
kind: "Document",
|
|
943
|
+
definitions: [
|
|
944
|
+
{
|
|
945
|
+
kind: "OperationDefinition",
|
|
946
|
+
operation: "query",
|
|
947
|
+
name: { kind: "Name", value: "GetFleetConnectedAccessorySummary" },
|
|
948
|
+
variableDefinitions: [
|
|
949
|
+
{
|
|
950
|
+
kind: "VariableDefinition",
|
|
951
|
+
variable: { kind: "Variable", name: { kind: "Name", value: "filters" } },
|
|
952
|
+
type: { kind: "NamedType", name: { kind: "Name", value: "AssetFiltersInput" } },
|
|
953
|
+
},
|
|
954
|
+
],
|
|
955
|
+
selectionSet: {
|
|
956
|
+
kind: "SelectionSet",
|
|
957
|
+
selections: [
|
|
958
|
+
{
|
|
959
|
+
kind: "Field",
|
|
960
|
+
name: { kind: "Name", value: "assetSummary" },
|
|
961
|
+
arguments: [
|
|
962
|
+
{
|
|
963
|
+
kind: "Argument",
|
|
964
|
+
name: { kind: "Name", value: "filters" },
|
|
965
|
+
value: { kind: "Variable", name: { kind: "Name", value: "filters" } },
|
|
966
|
+
},
|
|
967
|
+
],
|
|
968
|
+
selectionSet: {
|
|
969
|
+
kind: "SelectionSet",
|
|
970
|
+
selections: [
|
|
971
|
+
{
|
|
972
|
+
kind: "Field",
|
|
973
|
+
name: { kind: "Name", value: "connectedAccessoryTypes" },
|
|
974
|
+
selectionSet: {
|
|
975
|
+
kind: "SelectionSet",
|
|
976
|
+
selections: [
|
|
977
|
+
{ kind: "Field", name: { kind: "Name", value: "total" } },
|
|
978
|
+
{
|
|
979
|
+
kind: "Field",
|
|
980
|
+
name: { kind: "Name", value: "summary" },
|
|
981
|
+
selectionSet: {
|
|
982
|
+
kind: "SelectionSet",
|
|
983
|
+
selections: [
|
|
984
|
+
{ kind: "Field", name: { kind: "Name", value: "category" } },
|
|
985
|
+
{ kind: "Field", name: { kind: "Name", value: "type" } },
|
|
986
|
+
{ kind: "Field", name: { kind: "Name", value: "count" } },
|
|
987
|
+
],
|
|
988
|
+
},
|
|
989
|
+
},
|
|
990
|
+
],
|
|
991
|
+
},
|
|
992
|
+
},
|
|
993
|
+
],
|
|
994
|
+
},
|
|
995
|
+
},
|
|
996
|
+
],
|
|
997
|
+
},
|
|
998
|
+
},
|
|
999
|
+
],
|
|
1000
|
+
};
|
|
924
1001
|
const GetFleetCountriesSummaryDocument = {
|
|
925
1002
|
kind: "Document",
|
|
926
1003
|
definitions: [
|
|
@@ -5305,6 +5382,146 @@ const useCan2ProfileFilter = () => {
|
|
|
5305
5382
|
}, [t]);
|
|
5306
5383
|
};
|
|
5307
5384
|
|
|
5385
|
+
/**
|
|
5386
|
+
* Maps an accessory type to its label. An accessory the schema does not know shares the
|
|
5387
|
+
* `UNKNOWN` label, so a value already held in filter state before the client is regenerated still
|
|
5388
|
+
* reads as a label rather than as a raw type.
|
|
5389
|
+
*
|
|
5390
|
+
* @param type - The reported accessory type.
|
|
5391
|
+
* @returns {TranslationKeys} The translation key for the type's label.
|
|
5392
|
+
*/
|
|
5393
|
+
const mapConnectedAccessoryTypeToLabelId = (type) => {
|
|
5394
|
+
switch (type) {
|
|
5395
|
+
case connectedAccessoryType.DUALID:
|
|
5396
|
+
return "assetFilters.connectedAccessory.DUALID";
|
|
5397
|
+
case connectedAccessoryType.DUALID_II:
|
|
5398
|
+
return "assetFilters.connectedAccessory.DUALID_II";
|
|
5399
|
+
case connectedAccessoryType.IBUTTON_READER:
|
|
5400
|
+
return "assetFilters.connectedAccessory.IBUTTON_READER";
|
|
5401
|
+
case connectedAccessoryType.K300:
|
|
5402
|
+
return "assetFilters.connectedAccessory.K300";
|
|
5403
|
+
case connectedAccessoryType.M7_KEYPAD:
|
|
5404
|
+
return "assetFilters.connectedAccessory.M7_KEYPAD";
|
|
5405
|
+
case connectedAccessoryType.NO_ACCESSORY_CONNECTED:
|
|
5406
|
+
return "assetFilters.connectedAccessory.NO_ACCESSORY_CONNECTED";
|
|
5407
|
+
default:
|
|
5408
|
+
return "assetFilters.connectedAccessory.UNKNOWN";
|
|
5409
|
+
}
|
|
5410
|
+
};
|
|
5411
|
+
/**
|
|
5412
|
+
* Narrows a reported type to the enum the asset query accepts. A type the schema does not know
|
|
5413
|
+
* folds into `UNKNOWN` rather than becoming an option of its own, because selecting an option puts
|
|
5414
|
+
* its key into filter state and the asset query rejects any value outside the enum.
|
|
5415
|
+
*
|
|
5416
|
+
* @param type - The reported accessory type.
|
|
5417
|
+
* @returns {ConnectedAccessoryType} The matching enum member, or `UNKNOWN`.
|
|
5418
|
+
*/
|
|
5419
|
+
const toKnownConnectedAccessoryType = (type) => sharedUtils.objectValues(connectedAccessoryType).find(knownType => knownType === type) ?? connectedAccessoryType.UNKNOWN;
|
|
5420
|
+
/**
|
|
5421
|
+
* Turns the summary rows into one option per accessory type.
|
|
5422
|
+
*
|
|
5423
|
+
* Counts are summed across categories because the filter selects on the type level alone. A type
|
|
5424
|
+
* belongs to exactly one category today, so summing cannot double-count an asset. Types the schema
|
|
5425
|
+
* does not know are summed into the single `UNKNOWN` option, so every key is one the filter can
|
|
5426
|
+
* select on. Display order is not decided here — it follows the translated labels, so
|
|
5427
|
+
* `compareConnectedAccessoryOptions` applies it once the caller has resolved them.
|
|
5428
|
+
*
|
|
5429
|
+
* @param summary - The connected accessory summary rows.
|
|
5430
|
+
* @returns {Array<ConnectedAccessoryOption>} One option per reported type.
|
|
5431
|
+
*/
|
|
5432
|
+
const toConnectedAccessoryOptions = (summary) => {
|
|
5433
|
+
const countByType = new Map();
|
|
5434
|
+
summary.forEach(({ type, count }) => {
|
|
5435
|
+
const knownType = toKnownConnectedAccessoryType(type);
|
|
5436
|
+
countByType.set(knownType, (countByType.get(knownType) ?? 0) + count);
|
|
5437
|
+
});
|
|
5438
|
+
return [...countByType.entries()]
|
|
5439
|
+
.filter(([, count]) => count > 0)
|
|
5440
|
+
.map(([type, count]) => ({ key: type, labelId: mapConnectedAccessoryTypeToLabelId(type), count }));
|
|
5441
|
+
};
|
|
5442
|
+
/**
|
|
5443
|
+
* Orders the options for display: alphabetically by label, with `UNKNOWN` last.
|
|
5444
|
+
*
|
|
5445
|
+
* Sorting by count would put the answer an asset gives most often first, which says nothing about
|
|
5446
|
+
* where a reader looks for a given accessory. `UNKNOWN` is pinned last because it is the bucket
|
|
5447
|
+
* `DefaultCheckboxFilter` renders in the footer and leaves out of `Select all`, and because "we
|
|
5448
|
+
* could not tell" belongs below the accessories we could. `NO_ACCESSORY_CONNECTED` is a real
|
|
5449
|
+
* answer, so it sorts among the accessories rather than with `UNKNOWN`.
|
|
5450
|
+
*
|
|
5451
|
+
* @param optionA - The first option to compare.
|
|
5452
|
+
* @param optionB - The option to compare it against.
|
|
5453
|
+
* @returns {number} Negative when `optionA` sorts first, positive when `optionB` does, 0 when tied.
|
|
5454
|
+
*/
|
|
5455
|
+
const compareConnectedAccessoryOptions = (optionA, optionB) => {
|
|
5456
|
+
if (optionA.key === optionB.key) {
|
|
5457
|
+
return 0;
|
|
5458
|
+
}
|
|
5459
|
+
if (optionA.key === connectedAccessoryType.UNKNOWN) {
|
|
5460
|
+
return 1;
|
|
5461
|
+
}
|
|
5462
|
+
if (optionB.key === connectedAccessoryType.UNKNOWN) {
|
|
5463
|
+
return -1;
|
|
5464
|
+
}
|
|
5465
|
+
return sharedUtils.stringNaturalCompare(optionA.label, optionB.label);
|
|
5466
|
+
};
|
|
5467
|
+
|
|
5468
|
+
/**
|
|
5469
|
+
* The Connected Accessory Filter component.
|
|
5470
|
+
*
|
|
5471
|
+
* Selects assets by the accessory they report. The options come from the
|
|
5472
|
+
* `connectedAccessoryTypes` summary, which counts assets, so an option's count is what selecting
|
|
5473
|
+
* it returns. The summary field takes no search or limit arguments, so the list is always complete.
|
|
5474
|
+
*
|
|
5475
|
+
* @param props - The filter view props.
|
|
5476
|
+
* @param props.filterDefinition - The filter's definition.
|
|
5477
|
+
* @param props.filterState - The current state of the filter, including selected values.
|
|
5478
|
+
* @param props.filterBarActions - Actions for the filter's interaction with the filter bar.
|
|
5479
|
+
* @returns {ReactElement} React component to render the connected accessory filter.
|
|
5480
|
+
*/
|
|
5481
|
+
const ConnectedAccessoryFilter = ({ filterDefinition, filterState, filterBarActions, ...props }) => {
|
|
5482
|
+
const [t] = useTranslation();
|
|
5483
|
+
const activeFilters = filtersGraphqlHook.useActiveAssetFilters(filterState.values);
|
|
5484
|
+
const { data, loading } = reactGraphqlHooks.useQuery(GetFleetConnectedAccessorySummaryDocument, {
|
|
5485
|
+
variables: {
|
|
5486
|
+
filters: {
|
|
5487
|
+
...activeFilters,
|
|
5488
|
+
connectedAccessoryTypes: null, // Omit the filter's own values so the list shows all options correctly
|
|
5489
|
+
},
|
|
5490
|
+
},
|
|
5491
|
+
fetchPolicy: "cache-first",
|
|
5492
|
+
});
|
|
5493
|
+
const options = react.useMemo(() => {
|
|
5494
|
+
return toConnectedAccessoryOptions(data?.assetSummary?.connectedAccessoryTypes.summary ?? [])
|
|
5495
|
+
.map(({ key, labelId, count }) => ({ key, count, label: t(labelId) }))
|
|
5496
|
+
.sort(compareConnectedAccessoryOptions);
|
|
5497
|
+
}, [data?.assetSummary?.connectedAccessoryTypes.summary, t]);
|
|
5498
|
+
return (jsxRuntime.jsx(filtersFilterBar.DefaultCheckboxFilter, { ...props, filterBarActions: filterBarActions, filterDefinition: filterDefinition, filterState: filterState, loading: loading, options: options, undefinedOptionKey: connectedAccessoryType.UNKNOWN }));
|
|
5499
|
+
};
|
|
5500
|
+
|
|
5501
|
+
/**
|
|
5502
|
+
* Get the Connected Accessory filter definition.
|
|
5503
|
+
*
|
|
5504
|
+
* Grouped under DEVICE; values are the `ConnectedAccessoryType` enum and are fetched dynamically
|
|
5505
|
+
* from the `connectedAccessoryTypes` summary. The `filterKey` maps to
|
|
5506
|
+
* `AssetFiltersInput.connectedAccessoryTypes`. Only the type level is filtered on — a category
|
|
5507
|
+
* filter would add a step without narrowing anything while one category exists.
|
|
5508
|
+
*
|
|
5509
|
+
* @returns {StringArrayFilterDefinition} The Connected Accessory filter definition
|
|
5510
|
+
*/
|
|
5511
|
+
const useConnectedAccessoryFilter = () => {
|
|
5512
|
+
const [t] = useTranslation();
|
|
5513
|
+
return react.useMemo(() => {
|
|
5514
|
+
return {
|
|
5515
|
+
filterKey: "connectedAccessoryTypes",
|
|
5516
|
+
type: "stringArray",
|
|
5517
|
+
group: "DEVICE",
|
|
5518
|
+
title: t("assetFilters.connectedAccessory.label"),
|
|
5519
|
+
valueAsText: values => values.map(value => t(mapConnectedAccessoryTypeToLabelId(value))),
|
|
5520
|
+
component: props => jsxRuntime.jsx(ConnectedAccessoryFilter, { ...props }),
|
|
5521
|
+
};
|
|
5522
|
+
}, [t]);
|
|
5523
|
+
};
|
|
5524
|
+
|
|
5308
5525
|
/**
|
|
5309
5526
|
* Build the country filter options from the SFS country summary, translating each
|
|
5310
5527
|
* code to its localized name and ordering the list alphabetically by that name.
|
|
@@ -8595,6 +8812,7 @@ exports.useAssetTypeFilter = useAssetTypeFilter;
|
|
|
8595
8812
|
exports.useBrandFilter = useBrandFilter;
|
|
8596
8813
|
exports.useCan1ProfileFilter = useCan1ProfileFilter;
|
|
8597
8814
|
exports.useCan2ProfileFilter = useCan2ProfileFilter;
|
|
8815
|
+
exports.useConnectedAccessoryFilter = useConnectedAccessoryFilter;
|
|
8598
8816
|
exports.useCountryFilter = useCountryFilter;
|
|
8599
8817
|
exports.useCriticalityFilter = useCriticalityFilter;
|
|
8600
8818
|
exports.useCustomerIdsFilter = useCustomerIdsFilter;
|
package/index.esm.js
CHANGED
|
@@ -13,7 +13,7 @@ import { geoJsonPolygonSchema, geoJsonPointSchema, geoJsonMultiPolygonSchema, ge
|
|
|
13
13
|
import { z } from 'zod';
|
|
14
14
|
import { useLocalStorage, useDebounce, IconButton, Icon, Text, Button, usePrevious, MenuItem, useMeasure, Popover, PopoverTrigger, PopoverContent, MenuContent } from '@trackunit/react-components';
|
|
15
15
|
import { titleCase, lowerCase } from 'string-ts';
|
|
16
|
-
import { objectValues, getCountryName, stringCompare, hourIntervals, exhaustiveCheck, enumFromValue } from '@trackunit/shared-utils';
|
|
16
|
+
import { objectValues, stringNaturalCompare, getCountryName, stringCompare, hourIntervals, exhaustiveCheck, enumFromValue } from '@trackunit/shared-utils';
|
|
17
17
|
import { useMachineTypeTranslations } from '@trackunit/translations-machine-type';
|
|
18
18
|
import { CriticalityIndicator } from '@trackunit/criticality-indicator';
|
|
19
19
|
import { useDeviceTypeTranslations } from '@trackunit/translations-device';
|
|
@@ -43,6 +43,14 @@ var defaultTranslations = {
|
|
|
43
43
|
"assetFilters.boundingBoxFilter.value": "Within map area",
|
|
44
44
|
"assetFilters.can1Profile.label": "CAN1 profile",
|
|
45
45
|
"assetFilters.can2Profile.label": "CAN2 profile",
|
|
46
|
+
"assetFilters.connectedAccessory.DUALID": "DualID",
|
|
47
|
+
"assetFilters.connectedAccessory.DUALID_II": "DualID II",
|
|
48
|
+
"assetFilters.connectedAccessory.IBUTTON_READER": "iButton Reader",
|
|
49
|
+
"assetFilters.connectedAccessory.K300": "K300",
|
|
50
|
+
"assetFilters.connectedAccessory.label": "Connected Accessory",
|
|
51
|
+
"assetFilters.connectedAccessory.M7_KEYPAD": "M7 Keypad",
|
|
52
|
+
"assetFilters.connectedAccessory.NO_ACCESSORY_CONNECTED": "No accessory connected",
|
|
53
|
+
"assetFilters.connectedAccessory.UNKNOWN": "Unknown",
|
|
46
54
|
"assetFilters.criticality.CRITICAL": "Critical",
|
|
47
55
|
"assetFilters.criticality.LOW": "Low",
|
|
48
56
|
"assetFilters.criticality.NONE": "Good",
|
|
@@ -409,6 +417,15 @@ const assetCriticalityState = {
|
|
|
409
417
|
LOW: "LOW",
|
|
410
418
|
NONE: "NONE",
|
|
411
419
|
};
|
|
420
|
+
const connectedAccessoryType = {
|
|
421
|
+
DUALID: "DUALID",
|
|
422
|
+
DUALID_II: "DUALID_II",
|
|
423
|
+
IBUTTON_READER: "IBUTTON_READER",
|
|
424
|
+
K300: "K300",
|
|
425
|
+
M7_KEYPAD: "M7_KEYPAD",
|
|
426
|
+
NO_ACCESSORY_CONNECTED: "NO_ACCESSORY_CONNECTED",
|
|
427
|
+
UNKNOWN: "UNKNOWN",
|
|
428
|
+
};
|
|
412
429
|
const deviceHealthDeviceStatus = {
|
|
413
430
|
CRITICAL: "CRITICAL",
|
|
414
431
|
LOW: "LOW",
|
|
@@ -919,6 +936,66 @@ const GetFleetCan2ProfileSummaryMissingDocument = {
|
|
|
919
936
|
},
|
|
920
937
|
],
|
|
921
938
|
};
|
|
939
|
+
const GetFleetConnectedAccessorySummaryDocument = {
|
|
940
|
+
kind: "Document",
|
|
941
|
+
definitions: [
|
|
942
|
+
{
|
|
943
|
+
kind: "OperationDefinition",
|
|
944
|
+
operation: "query",
|
|
945
|
+
name: { kind: "Name", value: "GetFleetConnectedAccessorySummary" },
|
|
946
|
+
variableDefinitions: [
|
|
947
|
+
{
|
|
948
|
+
kind: "VariableDefinition",
|
|
949
|
+
variable: { kind: "Variable", name: { kind: "Name", value: "filters" } },
|
|
950
|
+
type: { kind: "NamedType", name: { kind: "Name", value: "AssetFiltersInput" } },
|
|
951
|
+
},
|
|
952
|
+
],
|
|
953
|
+
selectionSet: {
|
|
954
|
+
kind: "SelectionSet",
|
|
955
|
+
selections: [
|
|
956
|
+
{
|
|
957
|
+
kind: "Field",
|
|
958
|
+
name: { kind: "Name", value: "assetSummary" },
|
|
959
|
+
arguments: [
|
|
960
|
+
{
|
|
961
|
+
kind: "Argument",
|
|
962
|
+
name: { kind: "Name", value: "filters" },
|
|
963
|
+
value: { kind: "Variable", name: { kind: "Name", value: "filters" } },
|
|
964
|
+
},
|
|
965
|
+
],
|
|
966
|
+
selectionSet: {
|
|
967
|
+
kind: "SelectionSet",
|
|
968
|
+
selections: [
|
|
969
|
+
{
|
|
970
|
+
kind: "Field",
|
|
971
|
+
name: { kind: "Name", value: "connectedAccessoryTypes" },
|
|
972
|
+
selectionSet: {
|
|
973
|
+
kind: "SelectionSet",
|
|
974
|
+
selections: [
|
|
975
|
+
{ kind: "Field", name: { kind: "Name", value: "total" } },
|
|
976
|
+
{
|
|
977
|
+
kind: "Field",
|
|
978
|
+
name: { kind: "Name", value: "summary" },
|
|
979
|
+
selectionSet: {
|
|
980
|
+
kind: "SelectionSet",
|
|
981
|
+
selections: [
|
|
982
|
+
{ kind: "Field", name: { kind: "Name", value: "category" } },
|
|
983
|
+
{ kind: "Field", name: { kind: "Name", value: "type" } },
|
|
984
|
+
{ kind: "Field", name: { kind: "Name", value: "count" } },
|
|
985
|
+
],
|
|
986
|
+
},
|
|
987
|
+
},
|
|
988
|
+
],
|
|
989
|
+
},
|
|
990
|
+
},
|
|
991
|
+
],
|
|
992
|
+
},
|
|
993
|
+
},
|
|
994
|
+
],
|
|
995
|
+
},
|
|
996
|
+
},
|
|
997
|
+
],
|
|
998
|
+
};
|
|
922
999
|
const GetFleetCountriesSummaryDocument = {
|
|
923
1000
|
kind: "Document",
|
|
924
1001
|
definitions: [
|
|
@@ -5303,6 +5380,146 @@ const useCan2ProfileFilter = () => {
|
|
|
5303
5380
|
}, [t]);
|
|
5304
5381
|
};
|
|
5305
5382
|
|
|
5383
|
+
/**
|
|
5384
|
+
* Maps an accessory type to its label. An accessory the schema does not know shares the
|
|
5385
|
+
* `UNKNOWN` label, so a value already held in filter state before the client is regenerated still
|
|
5386
|
+
* reads as a label rather than as a raw type.
|
|
5387
|
+
*
|
|
5388
|
+
* @param type - The reported accessory type.
|
|
5389
|
+
* @returns {TranslationKeys} The translation key for the type's label.
|
|
5390
|
+
*/
|
|
5391
|
+
const mapConnectedAccessoryTypeToLabelId = (type) => {
|
|
5392
|
+
switch (type) {
|
|
5393
|
+
case connectedAccessoryType.DUALID:
|
|
5394
|
+
return "assetFilters.connectedAccessory.DUALID";
|
|
5395
|
+
case connectedAccessoryType.DUALID_II:
|
|
5396
|
+
return "assetFilters.connectedAccessory.DUALID_II";
|
|
5397
|
+
case connectedAccessoryType.IBUTTON_READER:
|
|
5398
|
+
return "assetFilters.connectedAccessory.IBUTTON_READER";
|
|
5399
|
+
case connectedAccessoryType.K300:
|
|
5400
|
+
return "assetFilters.connectedAccessory.K300";
|
|
5401
|
+
case connectedAccessoryType.M7_KEYPAD:
|
|
5402
|
+
return "assetFilters.connectedAccessory.M7_KEYPAD";
|
|
5403
|
+
case connectedAccessoryType.NO_ACCESSORY_CONNECTED:
|
|
5404
|
+
return "assetFilters.connectedAccessory.NO_ACCESSORY_CONNECTED";
|
|
5405
|
+
default:
|
|
5406
|
+
return "assetFilters.connectedAccessory.UNKNOWN";
|
|
5407
|
+
}
|
|
5408
|
+
};
|
|
5409
|
+
/**
|
|
5410
|
+
* Narrows a reported type to the enum the asset query accepts. A type the schema does not know
|
|
5411
|
+
* folds into `UNKNOWN` rather than becoming an option of its own, because selecting an option puts
|
|
5412
|
+
* its key into filter state and the asset query rejects any value outside the enum.
|
|
5413
|
+
*
|
|
5414
|
+
* @param type - The reported accessory type.
|
|
5415
|
+
* @returns {ConnectedAccessoryType} The matching enum member, or `UNKNOWN`.
|
|
5416
|
+
*/
|
|
5417
|
+
const toKnownConnectedAccessoryType = (type) => objectValues(connectedAccessoryType).find(knownType => knownType === type) ?? connectedAccessoryType.UNKNOWN;
|
|
5418
|
+
/**
|
|
5419
|
+
* Turns the summary rows into one option per accessory type.
|
|
5420
|
+
*
|
|
5421
|
+
* Counts are summed across categories because the filter selects on the type level alone. A type
|
|
5422
|
+
* belongs to exactly one category today, so summing cannot double-count an asset. Types the schema
|
|
5423
|
+
* does not know are summed into the single `UNKNOWN` option, so every key is one the filter can
|
|
5424
|
+
* select on. Display order is not decided here — it follows the translated labels, so
|
|
5425
|
+
* `compareConnectedAccessoryOptions` applies it once the caller has resolved them.
|
|
5426
|
+
*
|
|
5427
|
+
* @param summary - The connected accessory summary rows.
|
|
5428
|
+
* @returns {Array<ConnectedAccessoryOption>} One option per reported type.
|
|
5429
|
+
*/
|
|
5430
|
+
const toConnectedAccessoryOptions = (summary) => {
|
|
5431
|
+
const countByType = new Map();
|
|
5432
|
+
summary.forEach(({ type, count }) => {
|
|
5433
|
+
const knownType = toKnownConnectedAccessoryType(type);
|
|
5434
|
+
countByType.set(knownType, (countByType.get(knownType) ?? 0) + count);
|
|
5435
|
+
});
|
|
5436
|
+
return [...countByType.entries()]
|
|
5437
|
+
.filter(([, count]) => count > 0)
|
|
5438
|
+
.map(([type, count]) => ({ key: type, labelId: mapConnectedAccessoryTypeToLabelId(type), count }));
|
|
5439
|
+
};
|
|
5440
|
+
/**
|
|
5441
|
+
* Orders the options for display: alphabetically by label, with `UNKNOWN` last.
|
|
5442
|
+
*
|
|
5443
|
+
* Sorting by count would put the answer an asset gives most often first, which says nothing about
|
|
5444
|
+
* where a reader looks for a given accessory. `UNKNOWN` is pinned last because it is the bucket
|
|
5445
|
+
* `DefaultCheckboxFilter` renders in the footer and leaves out of `Select all`, and because "we
|
|
5446
|
+
* could not tell" belongs below the accessories we could. `NO_ACCESSORY_CONNECTED` is a real
|
|
5447
|
+
* answer, so it sorts among the accessories rather than with `UNKNOWN`.
|
|
5448
|
+
*
|
|
5449
|
+
* @param optionA - The first option to compare.
|
|
5450
|
+
* @param optionB - The option to compare it against.
|
|
5451
|
+
* @returns {number} Negative when `optionA` sorts first, positive when `optionB` does, 0 when tied.
|
|
5452
|
+
*/
|
|
5453
|
+
const compareConnectedAccessoryOptions = (optionA, optionB) => {
|
|
5454
|
+
if (optionA.key === optionB.key) {
|
|
5455
|
+
return 0;
|
|
5456
|
+
}
|
|
5457
|
+
if (optionA.key === connectedAccessoryType.UNKNOWN) {
|
|
5458
|
+
return 1;
|
|
5459
|
+
}
|
|
5460
|
+
if (optionB.key === connectedAccessoryType.UNKNOWN) {
|
|
5461
|
+
return -1;
|
|
5462
|
+
}
|
|
5463
|
+
return stringNaturalCompare(optionA.label, optionB.label);
|
|
5464
|
+
};
|
|
5465
|
+
|
|
5466
|
+
/**
|
|
5467
|
+
* The Connected Accessory Filter component.
|
|
5468
|
+
*
|
|
5469
|
+
* Selects assets by the accessory they report. The options come from the
|
|
5470
|
+
* `connectedAccessoryTypes` summary, which counts assets, so an option's count is what selecting
|
|
5471
|
+
* it returns. The summary field takes no search or limit arguments, so the list is always complete.
|
|
5472
|
+
*
|
|
5473
|
+
* @param props - The filter view props.
|
|
5474
|
+
* @param props.filterDefinition - The filter's definition.
|
|
5475
|
+
* @param props.filterState - The current state of the filter, including selected values.
|
|
5476
|
+
* @param props.filterBarActions - Actions for the filter's interaction with the filter bar.
|
|
5477
|
+
* @returns {ReactElement} React component to render the connected accessory filter.
|
|
5478
|
+
*/
|
|
5479
|
+
const ConnectedAccessoryFilter = ({ filterDefinition, filterState, filterBarActions, ...props }) => {
|
|
5480
|
+
const [t] = useTranslation();
|
|
5481
|
+
const activeFilters = useActiveAssetFilters(filterState.values);
|
|
5482
|
+
const { data, loading } = useQuery(GetFleetConnectedAccessorySummaryDocument, {
|
|
5483
|
+
variables: {
|
|
5484
|
+
filters: {
|
|
5485
|
+
...activeFilters,
|
|
5486
|
+
connectedAccessoryTypes: null, // Omit the filter's own values so the list shows all options correctly
|
|
5487
|
+
},
|
|
5488
|
+
},
|
|
5489
|
+
fetchPolicy: "cache-first",
|
|
5490
|
+
});
|
|
5491
|
+
const options = useMemo(() => {
|
|
5492
|
+
return toConnectedAccessoryOptions(data?.assetSummary?.connectedAccessoryTypes.summary ?? [])
|
|
5493
|
+
.map(({ key, labelId, count }) => ({ key, count, label: t(labelId) }))
|
|
5494
|
+
.sort(compareConnectedAccessoryOptions);
|
|
5495
|
+
}, [data?.assetSummary?.connectedAccessoryTypes.summary, t]);
|
|
5496
|
+
return (jsx(DefaultCheckboxFilter, { ...props, filterBarActions: filterBarActions, filterDefinition: filterDefinition, filterState: filterState, loading: loading, options: options, undefinedOptionKey: connectedAccessoryType.UNKNOWN }));
|
|
5497
|
+
};
|
|
5498
|
+
|
|
5499
|
+
/**
|
|
5500
|
+
* Get the Connected Accessory filter definition.
|
|
5501
|
+
*
|
|
5502
|
+
* Grouped under DEVICE; values are the `ConnectedAccessoryType` enum and are fetched dynamically
|
|
5503
|
+
* from the `connectedAccessoryTypes` summary. The `filterKey` maps to
|
|
5504
|
+
* `AssetFiltersInput.connectedAccessoryTypes`. Only the type level is filtered on — a category
|
|
5505
|
+
* filter would add a step without narrowing anything while one category exists.
|
|
5506
|
+
*
|
|
5507
|
+
* @returns {StringArrayFilterDefinition} The Connected Accessory filter definition
|
|
5508
|
+
*/
|
|
5509
|
+
const useConnectedAccessoryFilter = () => {
|
|
5510
|
+
const [t] = useTranslation();
|
|
5511
|
+
return useMemo(() => {
|
|
5512
|
+
return {
|
|
5513
|
+
filterKey: "connectedAccessoryTypes",
|
|
5514
|
+
type: "stringArray",
|
|
5515
|
+
group: "DEVICE",
|
|
5516
|
+
title: t("assetFilters.connectedAccessory.label"),
|
|
5517
|
+
valueAsText: values => values.map(value => t(mapConnectedAccessoryTypeToLabelId(value))),
|
|
5518
|
+
component: props => jsx(ConnectedAccessoryFilter, { ...props }),
|
|
5519
|
+
};
|
|
5520
|
+
}, [t]);
|
|
5521
|
+
};
|
|
5522
|
+
|
|
5306
5523
|
/**
|
|
5307
5524
|
* Build the country filter options from the SFS country summary, translating each
|
|
5308
5525
|
* code to its localized name and ordering the list alphabetically by that name.
|
|
@@ -8524,4 +8741,4 @@ const useDefaultAssetFilterBarDefinition = () => {
|
|
|
8524
8741
|
*/
|
|
8525
8742
|
setupLibraryTranslations();
|
|
8526
8743
|
|
|
8527
|
-
export { ALL_TYPES, AccessManagementMode, ActiveFilterFiltersView, ActivityFiltersView, AreaView, AssetActivityState, AssetIdsFiltersView, AssetLastSeen, AssetTypesFilterView, BrandFilterView, ClearItemButton, CriticalityFiltersView, CustomerIdsFilterView, DayPeriod, FollowedFiltersView, FreeTextRecentSearchesFilterView, GetFleetGroupSummaryConnectionDocument, GetFleetGroupSummaryMissingDocument, GroupIdsFilterView, HourIntervalFilterView, InsightsAfterTreatmentDieselExhaustFluidTankLevelFilterView, InsightsBatteryChargerStateFilterView, InsightsBatteryPotentialFilterView, InsightsBatteryStateOfChargePercentFilterView, InsightsFuelLevelFilterView, InspectionTemplateAssignedFilter, LastInspectionResultFiltersView, LastPerformedInspectionFilterView, LastSeenFiltersView, MetadataCompletenessFilterView, ModelsFilterView, NameFilterView, OwnerAccountIdsFilterView, PartnerFilterView, PeriodFilterView, ProductionYearFilterView, RecentSearchesFooter, RentalContractCustomerParentExternalReferenceFilterView, RentalContractCustomerParentNameFilterView, RentalContractOrderNumberFilterView, RentalContractReferenceCodeDescriptionFilterView, RentalContractReferenceCodeFilterView, SERVICE_PLAN_STATUSES_TO_SHOW, SearchFilterInline, ServicePanStatusesFiltersView, SiteDepotOwnershipIdsFilterView, SiteIdsFilterView, SiteStatus, SiteStatusFilterView, SiteTypeSFS, SiteTypesFilterView, TelematicsConnectedFiltersView, TypesFilterView, areaFilterInternalGeoJsonGeometrySchema, areaFilterInternalSchema, assetTypeConst, inspectionTemplateAssignedOptions, lastInspectionResultOptionKeys, lastPerformedInspectionOptions, mapActivityToLabelId, mapMetadataCompletenessToLabelId, metadataCompleteness, metadataCompletenessOptions, placePredictionSchema, placeSchema, sortSiteTypeSummary, useAccessManagementModeFilter, useActiveFilterFilter, useActivityFilter, useAreaFilter, useAssetIdsFilter, useAssetTypeFilter, useBrandFilter, useCan1ProfileFilter, useCan2ProfileFilter, useCountryFilter, useCriticalityFilter, useCustomerIdsFilter, useDefaultAssetFilterBarDefinition, useDeviceHealthIssueCategoryFilter, useDeviceHealthIssueStatusFilter, useDeviceHealthIssueTypeFilter, useDeviceTypesFilter, useFirmwareVersionFilter, useFollowedFilter, useFreeTextRecentSearches, useGroupIdsFilter, useHourIntervalFilter, useInsightsAfterTreatmentDieselExhaustFluidTankLevelFilter, useInsightsBatteryChargerStateFilter, useInsightsBatteryPotentialFilter, useInsightsBatteryStateOfChargePercentFilter, useInsightsFuelLevelFilter, useInspectionTemplateAssignedFilter, useLastInspectionResultFilter, useLastPerformedInspectionFilter, useLastSeenFilter, useMetadataCompletenessFilter, useModbusProfileFilter, useModelsFilter, useNameFilter, useNetworkTechnologyFilter, useOwnerAccountIdsFilter, usePartnerFilter, usePeriodFilter, usePlacesSearch, useProductionYearFilter, useRentalActiveContractItemOffRentDatesDateRangeFilter, useRentalActiveContractItemOnRentDatesDateRangeFilter, useRentalContractCustomerParentExternalReferenceFilter, useRentalContractCustomerParentNameFilter, useRentalContractOrderNumberFilter, useRentalContractReferenceCodeDescriptionFilter, useRentalContractReferenceCodeFilter, useSearchFilter, useServicePlanStatusFilter, useSiteDepotOwnershipIdsFilter, useSiteIdsFilter, useSiteStatusFilter, useSiteTypeFilter, useTelematicsConnectedFilter, useTypesFilter };
|
|
8744
|
+
export { ALL_TYPES, AccessManagementMode, ActiveFilterFiltersView, ActivityFiltersView, AreaView, AssetActivityState, AssetIdsFiltersView, AssetLastSeen, AssetTypesFilterView, BrandFilterView, ClearItemButton, CriticalityFiltersView, CustomerIdsFilterView, DayPeriod, FollowedFiltersView, FreeTextRecentSearchesFilterView, GetFleetGroupSummaryConnectionDocument, GetFleetGroupSummaryMissingDocument, GroupIdsFilterView, HourIntervalFilterView, InsightsAfterTreatmentDieselExhaustFluidTankLevelFilterView, InsightsBatteryChargerStateFilterView, InsightsBatteryPotentialFilterView, InsightsBatteryStateOfChargePercentFilterView, InsightsFuelLevelFilterView, InspectionTemplateAssignedFilter, LastInspectionResultFiltersView, LastPerformedInspectionFilterView, LastSeenFiltersView, MetadataCompletenessFilterView, ModelsFilterView, NameFilterView, OwnerAccountIdsFilterView, PartnerFilterView, PeriodFilterView, ProductionYearFilterView, RecentSearchesFooter, RentalContractCustomerParentExternalReferenceFilterView, RentalContractCustomerParentNameFilterView, RentalContractOrderNumberFilterView, RentalContractReferenceCodeDescriptionFilterView, RentalContractReferenceCodeFilterView, SERVICE_PLAN_STATUSES_TO_SHOW, SearchFilterInline, ServicePanStatusesFiltersView, SiteDepotOwnershipIdsFilterView, SiteIdsFilterView, SiteStatus, SiteStatusFilterView, SiteTypeSFS, SiteTypesFilterView, TelematicsConnectedFiltersView, TypesFilterView, areaFilterInternalGeoJsonGeometrySchema, areaFilterInternalSchema, assetTypeConst, inspectionTemplateAssignedOptions, lastInspectionResultOptionKeys, lastPerformedInspectionOptions, mapActivityToLabelId, mapMetadataCompletenessToLabelId, metadataCompleteness, metadataCompletenessOptions, placePredictionSchema, placeSchema, sortSiteTypeSummary, useAccessManagementModeFilter, useActiveFilterFilter, useActivityFilter, useAreaFilter, useAssetIdsFilter, useAssetTypeFilter, useBrandFilter, useCan1ProfileFilter, useCan2ProfileFilter, useConnectedAccessoryFilter, useCountryFilter, useCriticalityFilter, useCustomerIdsFilter, useDefaultAssetFilterBarDefinition, useDeviceHealthIssueCategoryFilter, useDeviceHealthIssueStatusFilter, useDeviceHealthIssueTypeFilter, useDeviceTypesFilter, useFirmwareVersionFilter, useFollowedFilter, useFreeTextRecentSearches, useGroupIdsFilter, useHourIntervalFilter, useInsightsAfterTreatmentDieselExhaustFluidTankLevelFilter, useInsightsBatteryChargerStateFilter, useInsightsBatteryPotentialFilter, useInsightsBatteryStateOfChargePercentFilter, useInsightsFuelLevelFilter, useInspectionTemplateAssignedFilter, useLastInspectionResultFilter, useLastPerformedInspectionFilter, useLastSeenFilter, useMetadataCompletenessFilter, useModbusProfileFilter, useModelsFilter, useNameFilter, useNetworkTechnologyFilter, useOwnerAccountIdsFilter, usePartnerFilter, usePeriodFilter, usePlacesSearch, useProductionYearFilter, useRentalActiveContractItemOffRentDatesDateRangeFilter, useRentalActiveContractItemOnRentDatesDateRangeFilter, useRentalContractCustomerParentExternalReferenceFilter, useRentalContractCustomerParentNameFilter, useRentalContractOrderNumberFilter, useRentalContractReferenceCodeDescriptionFilter, useRentalContractReferenceCodeFilter, useSearchFilter, useServicePlanStatusFilter, useSiteDepotOwnershipIdsFilter, useSiteIdsFilter, useSiteStatusFilter, useSiteTypeFilter, useTelematicsConnectedFilter, useTypesFilter };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/filters-asset-filter-definitions",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0",
|
|
4
4
|
"repository": "https://github.com/Trackunit/manager",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"engines": {
|
|
@@ -12,24 +12,24 @@
|
|
|
12
12
|
"zod": "^3.25.76",
|
|
13
13
|
"string-ts": "^2.0.0",
|
|
14
14
|
"tailwind-merge": "^2.0.0",
|
|
15
|
-
"@trackunit/iris-app-build-utilities": "2.4.
|
|
16
|
-
"@trackunit/filters-filter-bar": "2.6.
|
|
17
|
-
"@trackunit/react-core-hooks": "1.21.
|
|
18
|
-
"@trackunit/react-filter-components": "2.6.
|
|
19
|
-
"@trackunit/react-form-components": "2.6.
|
|
20
|
-
"@trackunit/filters-graphql-hook": "2.
|
|
21
|
-
"@trackunit/utilization-indicator": "2.6.
|
|
15
|
+
"@trackunit/iris-app-build-utilities": "2.4.23",
|
|
16
|
+
"@trackunit/filters-filter-bar": "2.6.27",
|
|
17
|
+
"@trackunit/react-core-hooks": "1.21.25",
|
|
18
|
+
"@trackunit/react-filter-components": "2.6.26",
|
|
19
|
+
"@trackunit/react-form-components": "2.6.26",
|
|
20
|
+
"@trackunit/filters-graphql-hook": "2.9.0",
|
|
21
|
+
"@trackunit/utilization-indicator": "2.6.24",
|
|
22
22
|
"@trackunit/geo-json-utils": "1.15.21",
|
|
23
|
-
"@trackunit/react-components": "2.10.
|
|
23
|
+
"@trackunit/react-components": "2.10.19",
|
|
24
24
|
"@trackunit/shared-utils": "1.16.22",
|
|
25
|
-
"@trackunit/translations-machine-type": "2.4.
|
|
26
|
-
"@trackunit/criticality-indicator": "2.6.
|
|
27
|
-
"@trackunit/iris-app-api": "2.4.
|
|
28
|
-
"@trackunit/react-core-contexts-test": "1.18.
|
|
29
|
-
"@trackunit/i18n-library-translation": "2.4.
|
|
30
|
-
"@trackunit/iris-app-runtime-core-api": "1.17.
|
|
31
|
-
"@trackunit/react-graphql-hooks": "2.6.
|
|
32
|
-
"@trackunit/translations-device": "1.
|
|
25
|
+
"@trackunit/translations-machine-type": "2.4.27",
|
|
26
|
+
"@trackunit/criticality-indicator": "2.6.24",
|
|
27
|
+
"@trackunit/iris-app-api": "2.4.17",
|
|
28
|
+
"@trackunit/react-core-contexts-test": "1.18.28",
|
|
29
|
+
"@trackunit/i18n-library-translation": "2.4.25",
|
|
30
|
+
"@trackunit/iris-app-runtime-core-api": "1.17.28",
|
|
31
|
+
"@trackunit/react-graphql-hooks": "2.6.24",
|
|
32
|
+
"@trackunit/translations-device": "1.8.0"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"@apollo/client": "^3.13.8",
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FilterViewProps } from "@trackunit/filters-filter-bar";
|
|
2
|
+
import { ReactElement } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* The Connected Accessory Filter component.
|
|
5
|
+
*
|
|
6
|
+
* Selects assets by the accessory they report. The options come from the
|
|
7
|
+
* `connectedAccessoryTypes` summary, which counts assets, so an option's count is what selecting
|
|
8
|
+
* it returns. The summary field takes no search or limit arguments, so the list is always complete.
|
|
9
|
+
*
|
|
10
|
+
* @param props - The filter view props.
|
|
11
|
+
* @param props.filterDefinition - The filter's definition.
|
|
12
|
+
* @param props.filterState - The current state of the filter, including selected values.
|
|
13
|
+
* @param props.filterBarActions - Actions for the filter's interaction with the filter bar.
|
|
14
|
+
* @returns {ReactElement} React component to render the connected accessory filter.
|
|
15
|
+
*/
|
|
16
|
+
export declare const ConnectedAccessoryFilter: ({ filterDefinition, filterState, filterBarActions, ...props }: FilterViewProps<Array<string>>) => ReactElement;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ConnectedAccessoryType } from "../../../generated/graphql-api/graphql";
|
|
2
|
+
import { TranslationKeys } from "../../../translation";
|
|
3
|
+
/**
|
|
4
|
+
* One row of the connected accessory summary. The SFS keys each row by the (category, type) pair,
|
|
5
|
+
* so the same type can appear more than once.
|
|
6
|
+
*/
|
|
7
|
+
interface ConnectedAccessorySummaryRow {
|
|
8
|
+
readonly type: string;
|
|
9
|
+
readonly count: number;
|
|
10
|
+
}
|
|
11
|
+
/** A checkbox option for one accessory type, before its label is translated. */
|
|
12
|
+
export interface ConnectedAccessoryOption {
|
|
13
|
+
readonly key: ConnectedAccessoryType;
|
|
14
|
+
readonly labelId: TranslationKeys;
|
|
15
|
+
readonly count: number;
|
|
16
|
+
}
|
|
17
|
+
/** A checkbox option once its label is translated, which is what decides the display order. */
|
|
18
|
+
export interface TranslatedConnectedAccessoryOption {
|
|
19
|
+
readonly key: ConnectedAccessoryType;
|
|
20
|
+
readonly label: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Maps an accessory type to its label. An accessory the schema does not know shares the
|
|
24
|
+
* `UNKNOWN` label, so a value already held in filter state before the client is regenerated still
|
|
25
|
+
* reads as a label rather than as a raw type.
|
|
26
|
+
*
|
|
27
|
+
* @param type - The reported accessory type.
|
|
28
|
+
* @returns {TranslationKeys} The translation key for the type's label.
|
|
29
|
+
*/
|
|
30
|
+
export declare const mapConnectedAccessoryTypeToLabelId: (type: string) => TranslationKeys;
|
|
31
|
+
/**
|
|
32
|
+
* Turns the summary rows into one option per accessory type.
|
|
33
|
+
*
|
|
34
|
+
* Counts are summed across categories because the filter selects on the type level alone. A type
|
|
35
|
+
* belongs to exactly one category today, so summing cannot double-count an asset. Types the schema
|
|
36
|
+
* does not know are summed into the single `UNKNOWN` option, so every key is one the filter can
|
|
37
|
+
* select on. Display order is not decided here — it follows the translated labels, so
|
|
38
|
+
* `compareConnectedAccessoryOptions` applies it once the caller has resolved them.
|
|
39
|
+
*
|
|
40
|
+
* @param summary - The connected accessory summary rows.
|
|
41
|
+
* @returns {Array<ConnectedAccessoryOption>} One option per reported type.
|
|
42
|
+
*/
|
|
43
|
+
export declare const toConnectedAccessoryOptions: (summary: ReadonlyArray<ConnectedAccessorySummaryRow>) => Array<ConnectedAccessoryOption>;
|
|
44
|
+
/**
|
|
45
|
+
* Orders the options for display: alphabetically by label, with `UNKNOWN` last.
|
|
46
|
+
*
|
|
47
|
+
* Sorting by count would put the answer an asset gives most often first, which says nothing about
|
|
48
|
+
* where a reader looks for a given accessory. `UNKNOWN` is pinned last because it is the bucket
|
|
49
|
+
* `DefaultCheckboxFilter` renders in the footer and leaves out of `Select all`, and because "we
|
|
50
|
+
* could not tell" belongs below the accessories we could. `NO_ACCESSORY_CONNECTED` is a real
|
|
51
|
+
* answer, so it sorts among the accessories rather than with `UNKNOWN`.
|
|
52
|
+
*
|
|
53
|
+
* @param optionA - The first option to compare.
|
|
54
|
+
* @param optionB - The option to compare it against.
|
|
55
|
+
* @returns {number} Negative when `optionA` sorts first, positive when `optionB` does, 0 when tied.
|
|
56
|
+
*/
|
|
57
|
+
export declare const compareConnectedAccessoryOptions: (optionA: TranslatedConnectedAccessoryOption, optionB: TranslatedConnectedAccessoryOption) => number;
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { StringArrayFilterDefinition } from "@trackunit/filters-filter-bar";
|
|
2
|
+
/**
|
|
3
|
+
* Get the Connected Accessory filter definition.
|
|
4
|
+
*
|
|
5
|
+
* Grouped under DEVICE; values are the `ConnectedAccessoryType` enum and are fetched dynamically
|
|
6
|
+
* from the `connectedAccessoryTypes` summary. The `filterKey` maps to
|
|
7
|
+
* `AssetFiltersInput.connectedAccessoryTypes`. Only the type level is filtered on — a category
|
|
8
|
+
* filter would add a step without narrowing anything while one category exists.
|
|
9
|
+
*
|
|
10
|
+
* @returns {StringArrayFilterDefinition} The Connected Accessory filter definition
|
|
11
|
+
*/
|
|
12
|
+
export declare const useConnectedAccessoryFilter: () => StringArrayFilterDefinition;
|
|
@@ -34,6 +34,9 @@ declare const documents: {
|
|
|
34
34
|
before: types.InputMaybe<types.Scalars["Cursor"]["input"]>;
|
|
35
35
|
last: types.InputMaybe<types.Scalars["Int"]["input"]>;
|
|
36
36
|
}>>;
|
|
37
|
+
"query GetFleetConnectedAccessorySummary($filters: AssetFiltersInput) {\n assetSummary(filters: $filters) {\n connectedAccessoryTypes {\n total\n summary {\n category\n type\n count\n }\n }\n }\n}": DocumentNode<types.GetFleetConnectedAccessorySummaryQuery, types.Exact<{
|
|
38
|
+
filters: types.InputMaybe<types.AssetFiltersInput>;
|
|
39
|
+
}>>;
|
|
37
40
|
"query GetFleetCountriesSummary($filters: AssetFiltersInput, $limit: Int) {\n assetSummary(filters: $filters) {\n countries(limit: $limit) {\n total\n summary {\n key\n count\n }\n }\n }\n}": DocumentNode<types.GetFleetCountriesSummaryQuery, types.Exact<{
|
|
38
41
|
filters: types.InputMaybe<types.AssetFiltersInput>;
|
|
39
42
|
limit: types.InputMaybe<types.Scalars["Int"]["input"]>;
|
|
@@ -105,6 +108,10 @@ export declare function graphql(source: "query TelematicsDeviceCan2ProfileNames
|
|
|
105
108
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
106
109
|
*/
|
|
107
110
|
export declare function graphql(source: "query GetFleetCan2ProfileSummaryConnection($filters: AssetFiltersInput, $search: String, $first: Int, $after: Cursor, $before: Cursor, $last: Int) {\n assetSummary(filters: $filters) {\n can2ProfileSummaryConnection(\n filter: $search\n first: $first\n after: $after\n before: $before\n last: $last\n ) {\n ...FleetSummaryConnectionFields\n }\n }\n}\n\nquery GetFleetCan2ProfileSummaryMissing($filters: AssetFiltersInput) {\n assetSummary(filters: $filters) {\n can2ProfileSummaryConnection(first: 1) {\n missing\n }\n }\n}"): (typeof documents)["query GetFleetCan2ProfileSummaryConnection($filters: AssetFiltersInput, $search: String, $first: Int, $after: Cursor, $before: Cursor, $last: Int) {\n assetSummary(filters: $filters) {\n can2ProfileSummaryConnection(\n filter: $search\n first: $first\n after: $after\n before: $before\n last: $last\n ) {\n ...FleetSummaryConnectionFields\n }\n }\n}\n\nquery GetFleetCan2ProfileSummaryMissing($filters: AssetFiltersInput) {\n assetSummary(filters: $filters) {\n can2ProfileSummaryConnection(first: 1) {\n missing\n }\n }\n}"];
|
|
111
|
+
/**
|
|
112
|
+
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
113
|
+
*/
|
|
114
|
+
export declare function graphql(source: "query GetFleetConnectedAccessorySummary($filters: AssetFiltersInput) {\n assetSummary(filters: $filters) {\n connectedAccessoryTypes {\n total\n summary {\n category\n type\n count\n }\n }\n }\n}"): (typeof documents)["query GetFleetConnectedAccessorySummary($filters: AssetFiltersInput) {\n assetSummary(filters: $filters) {\n connectedAccessoryTypes {\n total\n summary {\n category\n type\n count\n }\n }\n }\n}"];
|
|
108
115
|
/**
|
|
109
116
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
110
117
|
*/
|
|
@@ -336,6 +336,21 @@ export declare const assetType: {
|
|
|
336
336
|
readonly VEHICLE: "VEHICLE";
|
|
337
337
|
};
|
|
338
338
|
export type AssetType = (typeof assetType)[keyof typeof assetType];
|
|
339
|
+
export declare const connectedAccessoryCategory: {
|
|
340
|
+
readonly ACCESS_MANAGEMENT_DEVICE: "ACCESS_MANAGEMENT_DEVICE";
|
|
341
|
+
readonly UNKNOWN: "UNKNOWN";
|
|
342
|
+
};
|
|
343
|
+
export type ConnectedAccessoryCategory = (typeof connectedAccessoryCategory)[keyof typeof connectedAccessoryCategory];
|
|
344
|
+
export declare const connectedAccessoryType: {
|
|
345
|
+
readonly DUALID: "DUALID";
|
|
346
|
+
readonly DUALID_II: "DUALID_II";
|
|
347
|
+
readonly IBUTTON_READER: "IBUTTON_READER";
|
|
348
|
+
readonly K300: "K300";
|
|
349
|
+
readonly M7_KEYPAD: "M7_KEYPAD";
|
|
350
|
+
readonly NO_ACCESSORY_CONNECTED: "NO_ACCESSORY_CONNECTED";
|
|
351
|
+
readonly UNKNOWN: "UNKNOWN";
|
|
352
|
+
};
|
|
353
|
+
export type ConnectedAccessoryType = (typeof connectedAccessoryType)[keyof typeof connectedAccessoryType];
|
|
339
354
|
export declare const customFieldOwnerType: {
|
|
340
355
|
readonly ACCOUNT: "ACCOUNT";
|
|
341
356
|
readonly IRIS_APP: "IRIS_APP";
|
|
@@ -532,6 +547,13 @@ export type AssetFiltersInput = {
|
|
|
532
547
|
can1Profile?: InputMaybe<Array<Scalars["String"]["input"]>>;
|
|
533
548
|
/** Filter by reported CAN profile 2 values */
|
|
534
549
|
can2Profile?: InputMaybe<Array<Scalars["String"]["input"]>>;
|
|
550
|
+
/** Filter by the category of the accessories an asset reports */
|
|
551
|
+
connectedAccessoryCategories?: InputMaybe<Array<ConnectedAccessoryCategory>>;
|
|
552
|
+
/**
|
|
553
|
+
* Filter by the type of the accessories an asset reports. Combined with
|
|
554
|
+
* `connectedAccessoryCategories`, an asset is selected where it reports an accessory matching both.
|
|
555
|
+
*/
|
|
556
|
+
connectedAccessoryTypes?: InputMaybe<Array<ConnectedAccessoryType>>;
|
|
535
557
|
/** Filter to only include this list of countries */
|
|
536
558
|
countries?: InputMaybe<Array<Scalars["String"]["input"]>>;
|
|
537
559
|
/** List of criticalities */
|
|
@@ -901,6 +923,25 @@ export type GetFleetCan2ProfileSummaryMissingQuery = {
|
|
|
901
923
|
};
|
|
902
924
|
} | null;
|
|
903
925
|
};
|
|
926
|
+
export type GetFleetConnectedAccessorySummaryQueryVariables = Exact<{
|
|
927
|
+
filters: InputMaybe<AssetFiltersInput>;
|
|
928
|
+
}>;
|
|
929
|
+
export type GetFleetConnectedAccessorySummaryQuery = {
|
|
930
|
+
__typename?: "Query";
|
|
931
|
+
assetSummary: {
|
|
932
|
+
__typename?: "AssetSummary";
|
|
933
|
+
connectedAccessoryTypes: {
|
|
934
|
+
__typename?: "ConnectedAccessoryTypesSummary";
|
|
935
|
+
total: number;
|
|
936
|
+
summary: Array<{
|
|
937
|
+
__typename?: "ConnectedAccessoryTypeSummary";
|
|
938
|
+
category: ConnectedAccessoryCategory;
|
|
939
|
+
type: ConnectedAccessoryType;
|
|
940
|
+
count: number;
|
|
941
|
+
}>;
|
|
942
|
+
};
|
|
943
|
+
} | null;
|
|
944
|
+
};
|
|
904
945
|
export type GetFleetCountriesSummaryQueryVariables = Exact<{
|
|
905
946
|
filters: InputMaybe<AssetFiltersInput>;
|
|
906
947
|
limit: InputMaybe<Scalars["Int"]["input"]>;
|
|
@@ -1912,6 +1953,7 @@ export declare const GetFleetCan1ProfileSummaryMissingDocument: DocumentNode<Get
|
|
|
1912
1953
|
export declare const TelematicsDeviceCan2ProfileNamesDocument: DocumentNode<TelematicsDeviceCan2ProfileNamesQuery, TelematicsDeviceCan2ProfileNamesQueryVariables>;
|
|
1913
1954
|
export declare const GetFleetCan2ProfileSummaryConnectionDocument: DocumentNode<GetFleetCan2ProfileSummaryConnectionQuery, GetFleetCan2ProfileSummaryConnectionQueryVariables>;
|
|
1914
1955
|
export declare const GetFleetCan2ProfileSummaryMissingDocument: DocumentNode<GetFleetCan2ProfileSummaryMissingQuery, GetFleetCan2ProfileSummaryMissingQueryVariables>;
|
|
1956
|
+
export declare const GetFleetConnectedAccessorySummaryDocument: DocumentNode<GetFleetConnectedAccessorySummaryQuery, GetFleetConnectedAccessorySummaryQueryVariables>;
|
|
1915
1957
|
export declare const GetFleetCountriesSummaryDocument: DocumentNode<GetFleetCountriesSummaryQuery, GetFleetCountriesSummaryQueryVariables>;
|
|
1916
1958
|
export declare const DeviceHealthIssueCategorySummariesDocument: DocumentNode<DeviceHealthIssueCategorySummariesQuery, DeviceHealthIssueCategorySummariesQueryVariables>;
|
|
1917
1959
|
export declare const DeviceHealthIssueStatusSummariesDocument: DocumentNode<DeviceHealthIssueStatusSummariesQuery, DeviceHealthIssueStatusSummariesQueryVariables>;
|
|
@@ -42,6 +42,13 @@ export declare const mockForGetFleetCan2ProfileSummaryConnectionQuery: (variable
|
|
|
42
42
|
export declare const mockForGetFleetCan2ProfileSummaryMissingQuery: (variables?: DeepPartialNullable<gql.GetFleetCan2ProfileSummaryMissingQueryVariables>, data?: DeepPartialNullable<gql.GetFleetCan2ProfileSummaryMissingQuery>) => import("@apollo/client/testing").MockedResponse<gql.GetFleetCan2ProfileSummaryMissingQuery, Record<string, any>> & {
|
|
43
43
|
data: gql.GetFleetCan2ProfileSummaryMissingQuery;
|
|
44
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* Required authorization scopes (the token needs at least one allowed scope per accessed field):
|
|
47
|
+
* - asset.view
|
|
48
|
+
*/
|
|
49
|
+
export declare const mockForGetFleetConnectedAccessorySummaryQuery: (variables?: DeepPartialNullable<gql.GetFleetConnectedAccessorySummaryQueryVariables>, data?: DeepPartialNullable<gql.GetFleetConnectedAccessorySummaryQuery>) => import("@apollo/client/testing").MockedResponse<gql.GetFleetConnectedAccessorySummaryQuery, Record<string, any>> & {
|
|
50
|
+
data: gql.GetFleetConnectedAccessorySummaryQuery;
|
|
51
|
+
};
|
|
45
52
|
/**
|
|
46
53
|
* Required authorization scopes (the token needs at least one allowed scope per accessed field):
|
|
47
54
|
* - asset.view
|
package/src/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export * from "./defaultFilters/defaults/AssetTypesFilterView";
|
|
|
9
9
|
export * from "./defaultFilters/defaults/BrandFilterView";
|
|
10
10
|
export * from "./defaultFilters/defaults/CanProfileFilter/useCan1ProfileFilter";
|
|
11
11
|
export * from "./defaultFilters/defaults/CanProfileFilter/useCan2ProfileFilter";
|
|
12
|
+
export * from "./defaultFilters/defaults/ConnectedAccessoryFilter/useConnectedAccessoryFilter";
|
|
12
13
|
export * from "./defaultFilters/defaults/CountryFilter/useCountryFilter";
|
|
13
14
|
export * from "./defaultFilters/defaults/CriticalityFiltersView";
|
|
14
15
|
export * from "./defaultFilters/defaults/CustomerIdsFilterView";
|
package/src/translation.d.ts
CHANGED
|
@@ -14,8 +14,8 @@ export declare const translations: TranslationResource<TranslationKeys>;
|
|
|
14
14
|
/**
|
|
15
15
|
* Local useTranslation for this specific library
|
|
16
16
|
*/
|
|
17
|
-
export declare const useTranslation: () => [TransForLibs<"access.management.accessManagementMode.LOCKED_FOR_ALL" | "access.management.accessManagementMode.UNKNOWN" | "access.management.accessManagementMode.UNLOCKED_FOR_ALL" | "access.management.accessManagementMode.UNLOCKED_FOR_KEY" | "access.management.accessManagementMode.UNSUPPORTED" | "access.management.assets.filterBar.accessManagementMode" | "assetFilters.activeAssetFilter.label" | "assetFilters.activityFilter.idling" | "assetFilters.activityFilter.stopped" | "assetFilters.activityFilter.unknown" | "assetFilters.activityFilter.working" | "assetFilters.area.label" | "assetFilters.assetType.ATTACHMENT" | "assetFilters.assetType.EQUIPMENT" | "assetFilters.assetType.GATEWAY" | "assetFilters.assetType.MACHINE" | "assetFilters.assetType.OTHER" | "assetFilters.assetType.TOOL" | "assetFilters.assetType.VEHICLE" | "assetFilters.boundingBoxFilter.value" | "assetFilters.can1Profile.label" | "assetFilters.can2Profile.label" | "assetFilters.criticality.CRITICAL" | "assetFilters.criticality.LOW" | "assetFilters.criticality.NONE" | "assetFilters.deviceHealthIssueCategories" | "assetFilters.deviceHealthIssueCategory.coverageIssues" | "assetFilters.deviceHealthIssueCategory.deviceBatteryIssues" | "assetFilters.deviceHealthIssueCategory.installAndConfigurationHealth" | "assetFilters.deviceHealthIssueCategory.nonReportingUnit" | "assetFilters.deviceHealthIssueStatus" | "assetFilters.deviceHealthIssueStatus.critical" | "assetFilters.deviceHealthIssueStatus.low" | "assetFilters.deviceHealthIssueType.dataNotReceived" | "assetFilters.deviceHealthIssueType.deviceBatteryApproachingEndOfLife" | "assetFilters.deviceHealthIssueType.lowCellularCoverage" | "assetFilters.deviceHealthIssueType.lowDeviceBattery" | "assetFilters.deviceHealthIssueType.lowDeviceInputVoltage" | "assetFilters.deviceHealthIssueType.lowGpsCoverage" | "assetFilters.deviceHealthIssueType.noCanDataConfiguration" | "assetFilters.deviceHealthIssueType.operatingHours" | "assetFilters.deviceHealthIssueType.operatingHoursFromCanModified" | "assetFilters.deviceHealthIssueType.operatingHoursReporting0HoursPerDay" | "assetFilters.deviceHealthIssueType.operatingHoursReporting24HoursPerDay" | "assetFilters.deviceHealthIssueTypes" | "assetFilters.deviceTypes" | "assetFilters.firmwareVersion.label" | "assetFilters.followedFilter.label" | "assetFilters.groupFilter.missingGroup" | "assetFilters.hourIntervalFilter.label" | "assetFilters.inspectionTemplateAssigned.ALL" | "assetFilters.inspectionTemplateAssigned.HAS_TEMPLATE" | "assetFilters.inspectionTemplateAssigned.NO_TEMPLATE" | "assetFilters.lastInspectionResult.FAILED_CRITICAL" | "assetFilters.lastInspectionResult.FAILED_LOW" | "assetFilters.lastInspectionResult.NO_LAST_INSPECTION" | "assetFilters.lastInspectionResult.PASSED" | "assetFilters.lastInspectionResult.SKIPPED" | "assetFilters.lastPerformedInspection.ALL" | "assetFilters.lastPerformedInspection.MORE_THAN_12_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_2_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_24_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_7_DAYS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_8_HOURS_AGO" | "assetFilters.lastPerformedInspection.NEVER" | "assetFilters.lastPerformedInspection.WITHIN_12_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_2_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_24_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_7_DAYS" | "assetFilters.lastPerformedInspection.WITHIN_8_HOURS" | "assetFilters.lastSeenFilter.anytime" | "assetFilters.lastSeenFilter.last24Hours" | "assetFilters.lastSeenFilter.last30Days" | "assetFilters.lastSeenFilter.last7Days" | "assetFilters.lastSeenFilter.lastHour" | "assetFilters.lastSeenFilter.olderThan30Days" | "assetFilters.metadataCompleteness.ALL" | "assetFilters.metadataCompleteness.COMPLETE" | "assetFilters.metadataCompleteness.PARTIAL" | "assetFilters.modbusProfile.label" | "assetFilters.nameFilter.label" | "assetFilters.nameFilter.searchPlaceholder" | "assetFilters.networkTechnology.label" | "assetFilters.ownerAccountNameFilter.label" | "assetFilters.partnerFilter.label" | "assetFilters.pendingTelematicsDevicesFilter.label" | "assetFilters.periodFilter.label" | "assetFilters.periodFilter.LAST_24_HOURS" | "assetFilters.periodFilter.LAST_30_DAYS" | "assetFilters.periodFilter.LAST_7_DAYS" | "assetFilters.periodFilter.LAST_YEAR" | "assetFilters.periodFilter.LIFETIME" | "assetFilters.productionYear.label" | "assetFilters.rentalActiveContractItemOffRentDatesDateRangeFilter.label" | "assetFilters.rentalActiveContractItemOnRentDatesDateRangeFilter.label" | "assetFilters.rentalContractCustomerParentExternalReferenceFilter.label" | "assetFilters.rentalContractCustomerParentNameFilter.label" | "assetFilters.rentalContractOrderNumberFilter.label" | "assetFilters.rentalContractReferenceCodeDescriptionFilter.label" | "assetFilters.rentalContractReferenceCodeDescriptionFilter.searchPlaceholder" | "assetFilters.rentalContractReferenceCodeFilter.label" | "assetFilters.searchFilter.label" | "assetFilters.serviceStatusFilter.COMPLETE" | "assetFilters.serviceStatusFilter.DRAFT" | "assetFilters.serviceStatusFilter.FULLY_CONFIGURED" | "assetFilters.serviceStatusFilter.HAS_PLAN" | "assetFilters.serviceStatusFilter.HAS_SERVICE_PROVIDER" | "assetFilters.serviceStatusFilter.label" | "assetFilters.serviceStatusFilter.MISSING_PLAN" | "assetFilters.serviceStatusFilter.MISSING_PROVIDER" | "assetFilters.serviceStatusFilter.overdue" | "assetFilters.serviceStatusFilter.OVERDUE" | "assetFilters.serviceStatusFilter.PLANNED" | "assetFilters.serviceStatusFilter.UNKNOWN" | "assetFilters.serviceStatusFilter.upcoming" | "assetFilters.serviceStatusFilter.UPCOMING" | "assetFilters.telematicsConnectedFilter.label" | "assetFilters.unknown" | "filters.shared.clear" | "filters.shared.clearAll" | "filters.shared.noHistory" | "filters.shared.notJustWhitepsace" | "filters.shared.recentSearches" | "filters.shared.typeMore" | "filtersBar.defaultAssetFilters.activeAssetFilter.excludeHidden" | "filtersBar.defaultAssetFilters.activeAssetFilter.onlyHidden" | "filtersBar.defaultAssetFilters.activeAssetFilter.showAll" | "filtersBar.defaultAssetFilters.batteryChargerState.OFF" | "filtersBar.defaultAssetFilters.batteryChargerState.ON" | "filtersBar.defaultAssetFilters.followedFilter.allLabel" | "filtersBar.defaultAssetFilters.followedFilter.followedOnlyLabel" | "filtersBar.defaultAssetFilters.telematicsConnectedFilter.connected" | "filtersBar.defaultAssetFilters.telematicsConnectedFilter.notConnected" | "filtersBar.emptyResults" | "filtersBar.loading" | "fleetlist.column.activity" | "fleetlist.column.assetIds" | "fleetlist.column.assetType" | "fleetlist.column.attention" | "fleetlist.column.brand" | "fleetlist.column.country" | "fleetlist.column.customerIds" | "fleetlist.column.groupIds" | "fleetlist.column.insights.afterTreatmentDieselExhaustFluidTankLevel" | "fleetlist.column.insights.batteryChargerState" | "fleetlist.column.insights.batteryPotential" | "fleetlist.column.insights.batteryStateOfChargePercent" | "fleetlist.column.insights.cumulativeIdleHours" | "fleetlist.column.insights.cumulativeOperatingHours" | "fleetlist.column.insights.fuelLevel" | "fleetlist.column.inspectionTemplateAssigned" | "fleetlist.column.lastInspectionResult" | "fleetlist.column.lastPerformedInspection" | "fleetlist.column.lastSeen" | "fleetlist.column.metadataCompleteness" | "fleetlist.column.model" | "fleetlist.column.servicePlanStatus" | "fleetlist.column.siteDepotOwnershipIds" | "fleetlist.column.siteIds" | "fleetlist.column.siteStatus" | "fleetlist.column.siteType" | "fleetlist.column.type" | "machine.types.Unknown" | "pages.machines.telematics.networkTechnology.NW_TECH_2G" | "pages.machines.telematics.networkTechnology.NW_TECH_3G" | "pages.machines.telematics.networkTechnology.NW_TECH_4G" | "siteFilters.siteStatus.ACTIVE" | "siteFilters.siteStatus.ARCHIVED" | "siteFilters.siteStatus.FINISHED" | "siteFilters.siteStatus.PLANNED" | "siteFilters.siteStatus.unknown" | "siteFilters.siteType.AREA" | "siteFilters.siteType.CLASSIC_POI" | "siteFilters.siteType.CLASSIC_ZONE" | "siteFilters.siteType.CONSTRUCTION_SITE" | "siteFilters.siteType.DEPOT" | "siteFilters.siteType.NOT_ON_SITE" | "siteFilters.siteType.unknown" | "siteFilters.siteType.WORK_PLACE" | "siteOwningDepot.notOwned" | "siteOwningDepot.unknown">, import("i18next").i18n, boolean] & {
|
|
18
|
-
t: TransForLibs<"access.management.accessManagementMode.LOCKED_FOR_ALL" | "access.management.accessManagementMode.UNKNOWN" | "access.management.accessManagementMode.UNLOCKED_FOR_ALL" | "access.management.accessManagementMode.UNLOCKED_FOR_KEY" | "access.management.accessManagementMode.UNSUPPORTED" | "access.management.assets.filterBar.accessManagementMode" | "assetFilters.activeAssetFilter.label" | "assetFilters.activityFilter.idling" | "assetFilters.activityFilter.stopped" | "assetFilters.activityFilter.unknown" | "assetFilters.activityFilter.working" | "assetFilters.area.label" | "assetFilters.assetType.ATTACHMENT" | "assetFilters.assetType.EQUIPMENT" | "assetFilters.assetType.GATEWAY" | "assetFilters.assetType.MACHINE" | "assetFilters.assetType.OTHER" | "assetFilters.assetType.TOOL" | "assetFilters.assetType.VEHICLE" | "assetFilters.boundingBoxFilter.value" | "assetFilters.can1Profile.label" | "assetFilters.can2Profile.label" | "assetFilters.criticality.CRITICAL" | "assetFilters.criticality.LOW" | "assetFilters.criticality.NONE" | "assetFilters.deviceHealthIssueCategories" | "assetFilters.deviceHealthIssueCategory.coverageIssues" | "assetFilters.deviceHealthIssueCategory.deviceBatteryIssues" | "assetFilters.deviceHealthIssueCategory.installAndConfigurationHealth" | "assetFilters.deviceHealthIssueCategory.nonReportingUnit" | "assetFilters.deviceHealthIssueStatus" | "assetFilters.deviceHealthIssueStatus.critical" | "assetFilters.deviceHealthIssueStatus.low" | "assetFilters.deviceHealthIssueType.dataNotReceived" | "assetFilters.deviceHealthIssueType.deviceBatteryApproachingEndOfLife" | "assetFilters.deviceHealthIssueType.lowCellularCoverage" | "assetFilters.deviceHealthIssueType.lowDeviceBattery" | "assetFilters.deviceHealthIssueType.lowDeviceInputVoltage" | "assetFilters.deviceHealthIssueType.lowGpsCoverage" | "assetFilters.deviceHealthIssueType.noCanDataConfiguration" | "assetFilters.deviceHealthIssueType.operatingHours" | "assetFilters.deviceHealthIssueType.operatingHoursFromCanModified" | "assetFilters.deviceHealthIssueType.operatingHoursReporting0HoursPerDay" | "assetFilters.deviceHealthIssueType.operatingHoursReporting24HoursPerDay" | "assetFilters.deviceHealthIssueTypes" | "assetFilters.deviceTypes" | "assetFilters.firmwareVersion.label" | "assetFilters.followedFilter.label" | "assetFilters.groupFilter.missingGroup" | "assetFilters.hourIntervalFilter.label" | "assetFilters.inspectionTemplateAssigned.ALL" | "assetFilters.inspectionTemplateAssigned.HAS_TEMPLATE" | "assetFilters.inspectionTemplateAssigned.NO_TEMPLATE" | "assetFilters.lastInspectionResult.FAILED_CRITICAL" | "assetFilters.lastInspectionResult.FAILED_LOW" | "assetFilters.lastInspectionResult.NO_LAST_INSPECTION" | "assetFilters.lastInspectionResult.PASSED" | "assetFilters.lastInspectionResult.SKIPPED" | "assetFilters.lastPerformedInspection.ALL" | "assetFilters.lastPerformedInspection.MORE_THAN_12_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_2_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_24_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_7_DAYS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_8_HOURS_AGO" | "assetFilters.lastPerformedInspection.NEVER" | "assetFilters.lastPerformedInspection.WITHIN_12_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_2_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_24_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_7_DAYS" | "assetFilters.lastPerformedInspection.WITHIN_8_HOURS" | "assetFilters.lastSeenFilter.anytime" | "assetFilters.lastSeenFilter.last24Hours" | "assetFilters.lastSeenFilter.last30Days" | "assetFilters.lastSeenFilter.last7Days" | "assetFilters.lastSeenFilter.lastHour" | "assetFilters.lastSeenFilter.olderThan30Days" | "assetFilters.metadataCompleteness.ALL" | "assetFilters.metadataCompleteness.COMPLETE" | "assetFilters.metadataCompleteness.PARTIAL" | "assetFilters.modbusProfile.label" | "assetFilters.nameFilter.label" | "assetFilters.nameFilter.searchPlaceholder" | "assetFilters.networkTechnology.label" | "assetFilters.ownerAccountNameFilter.label" | "assetFilters.partnerFilter.label" | "assetFilters.pendingTelematicsDevicesFilter.label" | "assetFilters.periodFilter.label" | "assetFilters.periodFilter.LAST_24_HOURS" | "assetFilters.periodFilter.LAST_30_DAYS" | "assetFilters.periodFilter.LAST_7_DAYS" | "assetFilters.periodFilter.LAST_YEAR" | "assetFilters.periodFilter.LIFETIME" | "assetFilters.productionYear.label" | "assetFilters.rentalActiveContractItemOffRentDatesDateRangeFilter.label" | "assetFilters.rentalActiveContractItemOnRentDatesDateRangeFilter.label" | "assetFilters.rentalContractCustomerParentExternalReferenceFilter.label" | "assetFilters.rentalContractCustomerParentNameFilter.label" | "assetFilters.rentalContractOrderNumberFilter.label" | "assetFilters.rentalContractReferenceCodeDescriptionFilter.label" | "assetFilters.rentalContractReferenceCodeDescriptionFilter.searchPlaceholder" | "assetFilters.rentalContractReferenceCodeFilter.label" | "assetFilters.searchFilter.label" | "assetFilters.serviceStatusFilter.COMPLETE" | "assetFilters.serviceStatusFilter.DRAFT" | "assetFilters.serviceStatusFilter.FULLY_CONFIGURED" | "assetFilters.serviceStatusFilter.HAS_PLAN" | "assetFilters.serviceStatusFilter.HAS_SERVICE_PROVIDER" | "assetFilters.serviceStatusFilter.label" | "assetFilters.serviceStatusFilter.MISSING_PLAN" | "assetFilters.serviceStatusFilter.MISSING_PROVIDER" | "assetFilters.serviceStatusFilter.overdue" | "assetFilters.serviceStatusFilter.OVERDUE" | "assetFilters.serviceStatusFilter.PLANNED" | "assetFilters.serviceStatusFilter.UNKNOWN" | "assetFilters.serviceStatusFilter.upcoming" | "assetFilters.serviceStatusFilter.UPCOMING" | "assetFilters.telematicsConnectedFilter.label" | "assetFilters.unknown" | "filters.shared.clear" | "filters.shared.clearAll" | "filters.shared.noHistory" | "filters.shared.notJustWhitepsace" | "filters.shared.recentSearches" | "filters.shared.typeMore" | "filtersBar.defaultAssetFilters.activeAssetFilter.excludeHidden" | "filtersBar.defaultAssetFilters.activeAssetFilter.onlyHidden" | "filtersBar.defaultAssetFilters.activeAssetFilter.showAll" | "filtersBar.defaultAssetFilters.batteryChargerState.OFF" | "filtersBar.defaultAssetFilters.batteryChargerState.ON" | "filtersBar.defaultAssetFilters.followedFilter.allLabel" | "filtersBar.defaultAssetFilters.followedFilter.followedOnlyLabel" | "filtersBar.defaultAssetFilters.telematicsConnectedFilter.connected" | "filtersBar.defaultAssetFilters.telematicsConnectedFilter.notConnected" | "filtersBar.emptyResults" | "filtersBar.loading" | "fleetlist.column.activity" | "fleetlist.column.assetIds" | "fleetlist.column.assetType" | "fleetlist.column.attention" | "fleetlist.column.brand" | "fleetlist.column.country" | "fleetlist.column.customerIds" | "fleetlist.column.groupIds" | "fleetlist.column.insights.afterTreatmentDieselExhaustFluidTankLevel" | "fleetlist.column.insights.batteryChargerState" | "fleetlist.column.insights.batteryPotential" | "fleetlist.column.insights.batteryStateOfChargePercent" | "fleetlist.column.insights.cumulativeIdleHours" | "fleetlist.column.insights.cumulativeOperatingHours" | "fleetlist.column.insights.fuelLevel" | "fleetlist.column.inspectionTemplateAssigned" | "fleetlist.column.lastInspectionResult" | "fleetlist.column.lastPerformedInspection" | "fleetlist.column.lastSeen" | "fleetlist.column.metadataCompleteness" | "fleetlist.column.model" | "fleetlist.column.servicePlanStatus" | "fleetlist.column.siteDepotOwnershipIds" | "fleetlist.column.siteIds" | "fleetlist.column.siteStatus" | "fleetlist.column.siteType" | "fleetlist.column.type" | "machine.types.Unknown" | "pages.machines.telematics.networkTechnology.NW_TECH_2G" | "pages.machines.telematics.networkTechnology.NW_TECH_3G" | "pages.machines.telematics.networkTechnology.NW_TECH_4G" | "siteFilters.siteStatus.ACTIVE" | "siteFilters.siteStatus.ARCHIVED" | "siteFilters.siteStatus.FINISHED" | "siteFilters.siteStatus.PLANNED" | "siteFilters.siteStatus.unknown" | "siteFilters.siteType.AREA" | "siteFilters.siteType.CLASSIC_POI" | "siteFilters.siteType.CLASSIC_ZONE" | "siteFilters.siteType.CONSTRUCTION_SITE" | "siteFilters.siteType.DEPOT" | "siteFilters.siteType.NOT_ON_SITE" | "siteFilters.siteType.unknown" | "siteFilters.siteType.WORK_PLACE" | "siteOwningDepot.notOwned" | "siteOwningDepot.unknown">;
|
|
17
|
+
export declare const useTranslation: () => [TransForLibs<"access.management.accessManagementMode.LOCKED_FOR_ALL" | "access.management.accessManagementMode.UNKNOWN" | "access.management.accessManagementMode.UNLOCKED_FOR_ALL" | "access.management.accessManagementMode.UNLOCKED_FOR_KEY" | "access.management.accessManagementMode.UNSUPPORTED" | "access.management.assets.filterBar.accessManagementMode" | "assetFilters.activeAssetFilter.label" | "assetFilters.activityFilter.idling" | "assetFilters.activityFilter.stopped" | "assetFilters.activityFilter.unknown" | "assetFilters.activityFilter.working" | "assetFilters.area.label" | "assetFilters.assetType.ATTACHMENT" | "assetFilters.assetType.EQUIPMENT" | "assetFilters.assetType.GATEWAY" | "assetFilters.assetType.MACHINE" | "assetFilters.assetType.OTHER" | "assetFilters.assetType.TOOL" | "assetFilters.assetType.VEHICLE" | "assetFilters.boundingBoxFilter.value" | "assetFilters.can1Profile.label" | "assetFilters.can2Profile.label" | "assetFilters.connectedAccessory.DUALID" | "assetFilters.connectedAccessory.DUALID_II" | "assetFilters.connectedAccessory.IBUTTON_READER" | "assetFilters.connectedAccessory.K300" | "assetFilters.connectedAccessory.label" | "assetFilters.connectedAccessory.M7_KEYPAD" | "assetFilters.connectedAccessory.NO_ACCESSORY_CONNECTED" | "assetFilters.connectedAccessory.UNKNOWN" | "assetFilters.criticality.CRITICAL" | "assetFilters.criticality.LOW" | "assetFilters.criticality.NONE" | "assetFilters.deviceHealthIssueCategories" | "assetFilters.deviceHealthIssueCategory.coverageIssues" | "assetFilters.deviceHealthIssueCategory.deviceBatteryIssues" | "assetFilters.deviceHealthIssueCategory.installAndConfigurationHealth" | "assetFilters.deviceHealthIssueCategory.nonReportingUnit" | "assetFilters.deviceHealthIssueStatus" | "assetFilters.deviceHealthIssueStatus.critical" | "assetFilters.deviceHealthIssueStatus.low" | "assetFilters.deviceHealthIssueType.dataNotReceived" | "assetFilters.deviceHealthIssueType.deviceBatteryApproachingEndOfLife" | "assetFilters.deviceHealthIssueType.lowCellularCoverage" | "assetFilters.deviceHealthIssueType.lowDeviceBattery" | "assetFilters.deviceHealthIssueType.lowDeviceInputVoltage" | "assetFilters.deviceHealthIssueType.lowGpsCoverage" | "assetFilters.deviceHealthIssueType.noCanDataConfiguration" | "assetFilters.deviceHealthIssueType.operatingHours" | "assetFilters.deviceHealthIssueType.operatingHoursFromCanModified" | "assetFilters.deviceHealthIssueType.operatingHoursReporting0HoursPerDay" | "assetFilters.deviceHealthIssueType.operatingHoursReporting24HoursPerDay" | "assetFilters.deviceHealthIssueTypes" | "assetFilters.deviceTypes" | "assetFilters.firmwareVersion.label" | "assetFilters.followedFilter.label" | "assetFilters.groupFilter.missingGroup" | "assetFilters.hourIntervalFilter.label" | "assetFilters.inspectionTemplateAssigned.ALL" | "assetFilters.inspectionTemplateAssigned.HAS_TEMPLATE" | "assetFilters.inspectionTemplateAssigned.NO_TEMPLATE" | "assetFilters.lastInspectionResult.FAILED_CRITICAL" | "assetFilters.lastInspectionResult.FAILED_LOW" | "assetFilters.lastInspectionResult.NO_LAST_INSPECTION" | "assetFilters.lastInspectionResult.PASSED" | "assetFilters.lastInspectionResult.SKIPPED" | "assetFilters.lastPerformedInspection.ALL" | "assetFilters.lastPerformedInspection.MORE_THAN_12_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_2_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_24_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_7_DAYS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_8_HOURS_AGO" | "assetFilters.lastPerformedInspection.NEVER" | "assetFilters.lastPerformedInspection.WITHIN_12_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_2_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_24_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_7_DAYS" | "assetFilters.lastPerformedInspection.WITHIN_8_HOURS" | "assetFilters.lastSeenFilter.anytime" | "assetFilters.lastSeenFilter.last24Hours" | "assetFilters.lastSeenFilter.last30Days" | "assetFilters.lastSeenFilter.last7Days" | "assetFilters.lastSeenFilter.lastHour" | "assetFilters.lastSeenFilter.olderThan30Days" | "assetFilters.metadataCompleteness.ALL" | "assetFilters.metadataCompleteness.COMPLETE" | "assetFilters.metadataCompleteness.PARTIAL" | "assetFilters.modbusProfile.label" | "assetFilters.nameFilter.label" | "assetFilters.nameFilter.searchPlaceholder" | "assetFilters.networkTechnology.label" | "assetFilters.ownerAccountNameFilter.label" | "assetFilters.partnerFilter.label" | "assetFilters.pendingTelematicsDevicesFilter.label" | "assetFilters.periodFilter.label" | "assetFilters.periodFilter.LAST_24_HOURS" | "assetFilters.periodFilter.LAST_30_DAYS" | "assetFilters.periodFilter.LAST_7_DAYS" | "assetFilters.periodFilter.LAST_YEAR" | "assetFilters.periodFilter.LIFETIME" | "assetFilters.productionYear.label" | "assetFilters.rentalActiveContractItemOffRentDatesDateRangeFilter.label" | "assetFilters.rentalActiveContractItemOnRentDatesDateRangeFilter.label" | "assetFilters.rentalContractCustomerParentExternalReferenceFilter.label" | "assetFilters.rentalContractCustomerParentNameFilter.label" | "assetFilters.rentalContractOrderNumberFilter.label" | "assetFilters.rentalContractReferenceCodeDescriptionFilter.label" | "assetFilters.rentalContractReferenceCodeDescriptionFilter.searchPlaceholder" | "assetFilters.rentalContractReferenceCodeFilter.label" | "assetFilters.searchFilter.label" | "assetFilters.serviceStatusFilter.COMPLETE" | "assetFilters.serviceStatusFilter.DRAFT" | "assetFilters.serviceStatusFilter.FULLY_CONFIGURED" | "assetFilters.serviceStatusFilter.HAS_PLAN" | "assetFilters.serviceStatusFilter.HAS_SERVICE_PROVIDER" | "assetFilters.serviceStatusFilter.label" | "assetFilters.serviceStatusFilter.MISSING_PLAN" | "assetFilters.serviceStatusFilter.MISSING_PROVIDER" | "assetFilters.serviceStatusFilter.overdue" | "assetFilters.serviceStatusFilter.OVERDUE" | "assetFilters.serviceStatusFilter.PLANNED" | "assetFilters.serviceStatusFilter.UNKNOWN" | "assetFilters.serviceStatusFilter.upcoming" | "assetFilters.serviceStatusFilter.UPCOMING" | "assetFilters.telematicsConnectedFilter.label" | "assetFilters.unknown" | "filters.shared.clear" | "filters.shared.clearAll" | "filters.shared.noHistory" | "filters.shared.notJustWhitepsace" | "filters.shared.recentSearches" | "filters.shared.typeMore" | "filtersBar.defaultAssetFilters.activeAssetFilter.excludeHidden" | "filtersBar.defaultAssetFilters.activeAssetFilter.onlyHidden" | "filtersBar.defaultAssetFilters.activeAssetFilter.showAll" | "filtersBar.defaultAssetFilters.batteryChargerState.OFF" | "filtersBar.defaultAssetFilters.batteryChargerState.ON" | "filtersBar.defaultAssetFilters.followedFilter.allLabel" | "filtersBar.defaultAssetFilters.followedFilter.followedOnlyLabel" | "filtersBar.defaultAssetFilters.telematicsConnectedFilter.connected" | "filtersBar.defaultAssetFilters.telematicsConnectedFilter.notConnected" | "filtersBar.emptyResults" | "filtersBar.loading" | "fleetlist.column.activity" | "fleetlist.column.assetIds" | "fleetlist.column.assetType" | "fleetlist.column.attention" | "fleetlist.column.brand" | "fleetlist.column.country" | "fleetlist.column.customerIds" | "fleetlist.column.groupIds" | "fleetlist.column.insights.afterTreatmentDieselExhaustFluidTankLevel" | "fleetlist.column.insights.batteryChargerState" | "fleetlist.column.insights.batteryPotential" | "fleetlist.column.insights.batteryStateOfChargePercent" | "fleetlist.column.insights.cumulativeIdleHours" | "fleetlist.column.insights.cumulativeOperatingHours" | "fleetlist.column.insights.fuelLevel" | "fleetlist.column.inspectionTemplateAssigned" | "fleetlist.column.lastInspectionResult" | "fleetlist.column.lastPerformedInspection" | "fleetlist.column.lastSeen" | "fleetlist.column.metadataCompleteness" | "fleetlist.column.model" | "fleetlist.column.servicePlanStatus" | "fleetlist.column.siteDepotOwnershipIds" | "fleetlist.column.siteIds" | "fleetlist.column.siteStatus" | "fleetlist.column.siteType" | "fleetlist.column.type" | "machine.types.Unknown" | "pages.machines.telematics.networkTechnology.NW_TECH_2G" | "pages.machines.telematics.networkTechnology.NW_TECH_3G" | "pages.machines.telematics.networkTechnology.NW_TECH_4G" | "siteFilters.siteStatus.ACTIVE" | "siteFilters.siteStatus.ARCHIVED" | "siteFilters.siteStatus.FINISHED" | "siteFilters.siteStatus.PLANNED" | "siteFilters.siteStatus.unknown" | "siteFilters.siteType.AREA" | "siteFilters.siteType.CLASSIC_POI" | "siteFilters.siteType.CLASSIC_ZONE" | "siteFilters.siteType.CONSTRUCTION_SITE" | "siteFilters.siteType.DEPOT" | "siteFilters.siteType.NOT_ON_SITE" | "siteFilters.siteType.unknown" | "siteFilters.siteType.WORK_PLACE" | "siteOwningDepot.notOwned" | "siteOwningDepot.unknown">, import("i18next").i18n, boolean] & {
|
|
18
|
+
t: TransForLibs<"access.management.accessManagementMode.LOCKED_FOR_ALL" | "access.management.accessManagementMode.UNKNOWN" | "access.management.accessManagementMode.UNLOCKED_FOR_ALL" | "access.management.accessManagementMode.UNLOCKED_FOR_KEY" | "access.management.accessManagementMode.UNSUPPORTED" | "access.management.assets.filterBar.accessManagementMode" | "assetFilters.activeAssetFilter.label" | "assetFilters.activityFilter.idling" | "assetFilters.activityFilter.stopped" | "assetFilters.activityFilter.unknown" | "assetFilters.activityFilter.working" | "assetFilters.area.label" | "assetFilters.assetType.ATTACHMENT" | "assetFilters.assetType.EQUIPMENT" | "assetFilters.assetType.GATEWAY" | "assetFilters.assetType.MACHINE" | "assetFilters.assetType.OTHER" | "assetFilters.assetType.TOOL" | "assetFilters.assetType.VEHICLE" | "assetFilters.boundingBoxFilter.value" | "assetFilters.can1Profile.label" | "assetFilters.can2Profile.label" | "assetFilters.connectedAccessory.DUALID" | "assetFilters.connectedAccessory.DUALID_II" | "assetFilters.connectedAccessory.IBUTTON_READER" | "assetFilters.connectedAccessory.K300" | "assetFilters.connectedAccessory.label" | "assetFilters.connectedAccessory.M7_KEYPAD" | "assetFilters.connectedAccessory.NO_ACCESSORY_CONNECTED" | "assetFilters.connectedAccessory.UNKNOWN" | "assetFilters.criticality.CRITICAL" | "assetFilters.criticality.LOW" | "assetFilters.criticality.NONE" | "assetFilters.deviceHealthIssueCategories" | "assetFilters.deviceHealthIssueCategory.coverageIssues" | "assetFilters.deviceHealthIssueCategory.deviceBatteryIssues" | "assetFilters.deviceHealthIssueCategory.installAndConfigurationHealth" | "assetFilters.deviceHealthIssueCategory.nonReportingUnit" | "assetFilters.deviceHealthIssueStatus" | "assetFilters.deviceHealthIssueStatus.critical" | "assetFilters.deviceHealthIssueStatus.low" | "assetFilters.deviceHealthIssueType.dataNotReceived" | "assetFilters.deviceHealthIssueType.deviceBatteryApproachingEndOfLife" | "assetFilters.deviceHealthIssueType.lowCellularCoverage" | "assetFilters.deviceHealthIssueType.lowDeviceBattery" | "assetFilters.deviceHealthIssueType.lowDeviceInputVoltage" | "assetFilters.deviceHealthIssueType.lowGpsCoverage" | "assetFilters.deviceHealthIssueType.noCanDataConfiguration" | "assetFilters.deviceHealthIssueType.operatingHours" | "assetFilters.deviceHealthIssueType.operatingHoursFromCanModified" | "assetFilters.deviceHealthIssueType.operatingHoursReporting0HoursPerDay" | "assetFilters.deviceHealthIssueType.operatingHoursReporting24HoursPerDay" | "assetFilters.deviceHealthIssueTypes" | "assetFilters.deviceTypes" | "assetFilters.firmwareVersion.label" | "assetFilters.followedFilter.label" | "assetFilters.groupFilter.missingGroup" | "assetFilters.hourIntervalFilter.label" | "assetFilters.inspectionTemplateAssigned.ALL" | "assetFilters.inspectionTemplateAssigned.HAS_TEMPLATE" | "assetFilters.inspectionTemplateAssigned.NO_TEMPLATE" | "assetFilters.lastInspectionResult.FAILED_CRITICAL" | "assetFilters.lastInspectionResult.FAILED_LOW" | "assetFilters.lastInspectionResult.NO_LAST_INSPECTION" | "assetFilters.lastInspectionResult.PASSED" | "assetFilters.lastInspectionResult.SKIPPED" | "assetFilters.lastPerformedInspection.ALL" | "assetFilters.lastPerformedInspection.MORE_THAN_12_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_2_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_24_HOURS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_7_DAYS_AGO" | "assetFilters.lastPerformedInspection.MORE_THAN_8_HOURS_AGO" | "assetFilters.lastPerformedInspection.NEVER" | "assetFilters.lastPerformedInspection.WITHIN_12_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_2_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_24_HOURS" | "assetFilters.lastPerformedInspection.WITHIN_7_DAYS" | "assetFilters.lastPerformedInspection.WITHIN_8_HOURS" | "assetFilters.lastSeenFilter.anytime" | "assetFilters.lastSeenFilter.last24Hours" | "assetFilters.lastSeenFilter.last30Days" | "assetFilters.lastSeenFilter.last7Days" | "assetFilters.lastSeenFilter.lastHour" | "assetFilters.lastSeenFilter.olderThan30Days" | "assetFilters.metadataCompleteness.ALL" | "assetFilters.metadataCompleteness.COMPLETE" | "assetFilters.metadataCompleteness.PARTIAL" | "assetFilters.modbusProfile.label" | "assetFilters.nameFilter.label" | "assetFilters.nameFilter.searchPlaceholder" | "assetFilters.networkTechnology.label" | "assetFilters.ownerAccountNameFilter.label" | "assetFilters.partnerFilter.label" | "assetFilters.pendingTelematicsDevicesFilter.label" | "assetFilters.periodFilter.label" | "assetFilters.periodFilter.LAST_24_HOURS" | "assetFilters.periodFilter.LAST_30_DAYS" | "assetFilters.periodFilter.LAST_7_DAYS" | "assetFilters.periodFilter.LAST_YEAR" | "assetFilters.periodFilter.LIFETIME" | "assetFilters.productionYear.label" | "assetFilters.rentalActiveContractItemOffRentDatesDateRangeFilter.label" | "assetFilters.rentalActiveContractItemOnRentDatesDateRangeFilter.label" | "assetFilters.rentalContractCustomerParentExternalReferenceFilter.label" | "assetFilters.rentalContractCustomerParentNameFilter.label" | "assetFilters.rentalContractOrderNumberFilter.label" | "assetFilters.rentalContractReferenceCodeDescriptionFilter.label" | "assetFilters.rentalContractReferenceCodeDescriptionFilter.searchPlaceholder" | "assetFilters.rentalContractReferenceCodeFilter.label" | "assetFilters.searchFilter.label" | "assetFilters.serviceStatusFilter.COMPLETE" | "assetFilters.serviceStatusFilter.DRAFT" | "assetFilters.serviceStatusFilter.FULLY_CONFIGURED" | "assetFilters.serviceStatusFilter.HAS_PLAN" | "assetFilters.serviceStatusFilter.HAS_SERVICE_PROVIDER" | "assetFilters.serviceStatusFilter.label" | "assetFilters.serviceStatusFilter.MISSING_PLAN" | "assetFilters.serviceStatusFilter.MISSING_PROVIDER" | "assetFilters.serviceStatusFilter.overdue" | "assetFilters.serviceStatusFilter.OVERDUE" | "assetFilters.serviceStatusFilter.PLANNED" | "assetFilters.serviceStatusFilter.UNKNOWN" | "assetFilters.serviceStatusFilter.upcoming" | "assetFilters.serviceStatusFilter.UPCOMING" | "assetFilters.telematicsConnectedFilter.label" | "assetFilters.unknown" | "filters.shared.clear" | "filters.shared.clearAll" | "filters.shared.noHistory" | "filters.shared.notJustWhitepsace" | "filters.shared.recentSearches" | "filters.shared.typeMore" | "filtersBar.defaultAssetFilters.activeAssetFilter.excludeHidden" | "filtersBar.defaultAssetFilters.activeAssetFilter.onlyHidden" | "filtersBar.defaultAssetFilters.activeAssetFilter.showAll" | "filtersBar.defaultAssetFilters.batteryChargerState.OFF" | "filtersBar.defaultAssetFilters.batteryChargerState.ON" | "filtersBar.defaultAssetFilters.followedFilter.allLabel" | "filtersBar.defaultAssetFilters.followedFilter.followedOnlyLabel" | "filtersBar.defaultAssetFilters.telematicsConnectedFilter.connected" | "filtersBar.defaultAssetFilters.telematicsConnectedFilter.notConnected" | "filtersBar.emptyResults" | "filtersBar.loading" | "fleetlist.column.activity" | "fleetlist.column.assetIds" | "fleetlist.column.assetType" | "fleetlist.column.attention" | "fleetlist.column.brand" | "fleetlist.column.country" | "fleetlist.column.customerIds" | "fleetlist.column.groupIds" | "fleetlist.column.insights.afterTreatmentDieselExhaustFluidTankLevel" | "fleetlist.column.insights.batteryChargerState" | "fleetlist.column.insights.batteryPotential" | "fleetlist.column.insights.batteryStateOfChargePercent" | "fleetlist.column.insights.cumulativeIdleHours" | "fleetlist.column.insights.cumulativeOperatingHours" | "fleetlist.column.insights.fuelLevel" | "fleetlist.column.inspectionTemplateAssigned" | "fleetlist.column.lastInspectionResult" | "fleetlist.column.lastPerformedInspection" | "fleetlist.column.lastSeen" | "fleetlist.column.metadataCompleteness" | "fleetlist.column.model" | "fleetlist.column.servicePlanStatus" | "fleetlist.column.siteDepotOwnershipIds" | "fleetlist.column.siteIds" | "fleetlist.column.siteStatus" | "fleetlist.column.siteType" | "fleetlist.column.type" | "machine.types.Unknown" | "pages.machines.telematics.networkTechnology.NW_TECH_2G" | "pages.machines.telematics.networkTechnology.NW_TECH_3G" | "pages.machines.telematics.networkTechnology.NW_TECH_4G" | "siteFilters.siteStatus.ACTIVE" | "siteFilters.siteStatus.ARCHIVED" | "siteFilters.siteStatus.FINISHED" | "siteFilters.siteStatus.PLANNED" | "siteFilters.siteStatus.unknown" | "siteFilters.siteType.AREA" | "siteFilters.siteType.CLASSIC_POI" | "siteFilters.siteType.CLASSIC_ZONE" | "siteFilters.siteType.CONSTRUCTION_SITE" | "siteFilters.siteType.DEPOT" | "siteFilters.siteType.NOT_ON_SITE" | "siteFilters.siteType.unknown" | "siteFilters.siteType.WORK_PLACE" | "siteOwningDepot.notOwned" | "siteOwningDepot.unknown">;
|
|
19
19
|
i18n: import("i18next").i18n;
|
|
20
20
|
ready: boolean;
|
|
21
21
|
};
|
package/migrations/entry.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../../../libs/filters/asset-filter-definitions/migrations/entry.ts"],"names":[],"mappings":"","sourcesContent":["export {};\n"]}
|