@trackunit/filters-filter-bar 0.0.9-alpha-442fdb5e23.0 → 0.0.13

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 CHANGED
@@ -453,7 +453,7 @@ const StarredFiltersMenu = ({ filterBarDefinition, updateStarredFilters, starred
453
453
  .map(filter => {
454
454
  const showInStarredMenu = filter.showInStarredMenu ? filter.showInStarredMenu() : true;
455
455
  const showInFilterBar = filter.showInFilterBar ? filter.showInFilterBar() : true;
456
- return !showInStarredMenu && !showInFilterBar ? filter.filterKey : null;
456
+ return !showInStarredMenu || !showInFilterBar ? filter.filterKey : null;
457
457
  })
458
458
  .filter(sharedUtils.truthy);
459
459
  }, [filterBarDefinition]);
@@ -1395,7 +1395,6 @@ const createInitialState = (name, mainFilters, initialState, setValue) => {
1395
1395
  name,
1396
1396
  initialState: updatedInitialState,
1397
1397
  starredFilterKeys: defaultStarredKeys,
1398
- filterNames: mainFilters.map(filter => filter.filterKey),
1399
1398
  values,
1400
1399
  setters,
1401
1400
  };
@@ -18605,6 +18604,74 @@ var lodash = {exports: {}};
18605
18604
  }.call(commonjsGlobal));
18606
18605
  }(lodash, lodash.exports));
18607
18606
 
18607
+ const hasValue = (value) => {
18608
+ if (value === undefined || value === null) {
18609
+ return false;
18610
+ }
18611
+ if (typeof value === "object" && Object.keys(value).length === 0) {
18612
+ return false;
18613
+ }
18614
+ return !(Array.isArray(value) && value.length === 0);
18615
+ };
18616
+ const isNotRightType = (filterDefinition, foundFilter) => {
18617
+ return ((filterDefinition.type === "valueName" && !isValueNameFilterValue(foundFilter)) ||
18618
+ (filterDefinition.type === "stringArray" && !isStringArrayFilterValue(foundFilter)) ||
18619
+ (filterDefinition.type === "dateRange" && !isDateRangeValue(foundFilter)) ||
18620
+ (filterDefinition.type === "boundingBox" && !isBoundingBox(foundFilter)) ||
18621
+ (filterDefinition.type === "minMax" && !isMinMaxFilterValue(foundFilter)) ||
18622
+ (filterDefinition.type === "boolean" && !isBooleanValue(foundFilter)) ||
18623
+ (filterDefinition.type === "string" && typeof foundFilter !== "string") ||
18624
+ (filterDefinition.type === "number" && typeof foundFilter !== "number"));
18625
+ };
18626
+ /**
18627
+ *
18628
+ */
18629
+ const isMinMaxFilterValue = (value) => {
18630
+ return value
18631
+ ? typeof value === "object" && (Object.keys(value).includes("min") || Object.keys(value).includes("max"))
18632
+ : false;
18633
+ };
18634
+ /**
18635
+ *
18636
+ */
18637
+ const isDateRangeValue = (value) => {
18638
+ return value
18639
+ ? typeof value === "object" && (Object.keys(value).includes("from") || Object.keys(value).includes("to"))
18640
+ : false;
18641
+ };
18642
+ /**
18643
+ *
18644
+ */
18645
+ const isBoundingBox = (value) => {
18646
+ return value
18647
+ ? typeof value === "object" && Object.keys(value).includes("nw") && Object.keys(value).includes("se")
18648
+ : false;
18649
+ };
18650
+ /**
18651
+ *
18652
+ */
18653
+ const isArrayFilterValue = (value) => {
18654
+ return Array.isArray(value);
18655
+ };
18656
+ /**
18657
+ *
18658
+ */
18659
+ const isStringArrayFilterValue = (value) => {
18660
+ return isArrayFilterValue(value) && value.every(item => typeof item === "string");
18661
+ };
18662
+ /**
18663
+ *
18664
+ */
18665
+ const isBooleanValue = (value) => {
18666
+ return value ? typeof value === "object" && Object.keys(value).includes("booleanValue") : false;
18667
+ };
18668
+ /**
18669
+ *
18670
+ */
18671
+ const isValueNameFilterValue = (value) => {
18672
+ return (isArrayFilterValue(value) &&
18673
+ value.every(item => typeof item === "object" && Object.keys(item).includes("name") && Object.keys(item).includes("value")));
18674
+ };
18608
18675
  /**
18609
18676
  * Validates a filter configuration against filter definitions.
18610
18677
  *
@@ -18615,29 +18682,30 @@ var lodash = {exports: {}};
18615
18682
  */
18616
18683
  const validateFilter = (filter, filterDefinitions) => {
18617
18684
  const stateKeys = [];
18618
- // TODO this should validate the initialstate if it is still sane.
18619
18685
  let inBadState = false;
18620
- Object.entries(filter.values).forEach(([key, value]) => {
18686
+ for (const key of Object.keys((filter === null || filter === void 0 ? void 0 : filter.values) || {})) {
18621
18687
  if (filterDefinitions.find(filterDefinition => filterDefinition.filterKey === key)) {
18622
18688
  stateKeys.push(key);
18623
18689
  }
18624
18690
  else {
18625
18691
  inBadState = true;
18626
18692
  }
18627
- });
18628
- Object.values(filter.values).forEach(value => {
18629
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18630
- if (!value) {
18693
+ }
18694
+ filterDefinitions.forEach(filterDefinition => {
18695
+ const foundFilter = filter && filter.values[filterDefinition.filterKey];
18696
+ if (filter) {
18697
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18698
+ if (foundFilter && hasValue(foundFilter) && isNotRightType(filterDefinition, foundFilter)) {
18699
+ inBadState = true;
18700
+ }
18701
+ }
18702
+ else {
18631
18703
  inBadState = true;
18632
18704
  }
18633
18705
  });
18634
18706
  stateKeys.sort((a, b) => a.localeCompare(b));
18635
- const filtersNotEqual = !lodash.exports.isEqual(stateKeys, filterDefinitions.map(f => f.filterKey).sort((a, b) => a.localeCompare(b)));
18636
- return (
18637
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18638
- inBadState || !filter || filterDefinitions.length !== Object.keys(filter === null || filter === void 0 ? void 0 : filter.values).length || filtersNotEqual
18639
- ? true
18640
- : false);
18707
+ const filterKeysNotEqual = !lodash.exports.isEqual(stateKeys, filterDefinitions.map(f => f.filterKey).sort((a, b) => a.localeCompare(b)));
18708
+ return inBadState || filterKeysNotEqual ? false : true;
18641
18709
  };
18642
18710
 
18643
18711
  /**
@@ -18695,14 +18763,24 @@ const useFilterBar = ({ name, onValuesChange, filterBarDefinition, initialState,
18695
18763
  return Boolean(values);
18696
18764
  },
18697
18765
  get filtersHaveBeenApplied() {
18698
- const initialStateValues = filterBarConfig.initialState;
18699
- const currentFilters = filterBarConfig.values;
18700
- return !dequal(currentFilters, initialStateValues);
18766
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18767
+ const initialStateValues = filterBarConfig.initialState || {};
18768
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18769
+ const currentFilters = filterBarConfig.values || {};
18770
+ // parse and stringify to remove empty references before comparing
18771
+ const currentValuesWithoutEmptyRefs = JSON.parse(JSON.stringify(currentFilters));
18772
+ const initialStateValuesWithoutEmptyRefs = JSON.parse(JSON.stringify(initialStateValues));
18773
+ return !dequal(currentValuesWithoutEmptyRefs, initialStateValuesWithoutEmptyRefs);
18701
18774
  },
18702
18775
  filterHasChanged(key) {
18703
- const initialStateValue = filterBarConfig.initialState[key];
18704
- const currentValue = filterBarConfig.values[key];
18705
- return !dequal(currentValue, initialStateValue);
18776
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18777
+ const initialStateValue = filterBarConfig.initialState[key] || {};
18778
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18779
+ const currentValue = filterBarConfig.values[key] || {};
18780
+ // parse and stringify to remove empty references before comparing
18781
+ const currentValueWithoutEmptyRefs = JSON.parse(JSON.stringify(currentValue));
18782
+ const initialStateValueWithoutEmptyRefs = JSON.parse(JSON.stringify(initialStateValue));
18783
+ return !dequal(currentValueWithoutEmptyRefs, initialStateValueWithoutEmptyRefs);
18706
18784
  },
18707
18785
  objectArrayIncludesValue(key, value) {
18708
18786
  const filter = filterBarConfig.values[key];
@@ -18879,6 +18957,14 @@ exports.FilterBar = FilterBar;
18879
18957
  exports.FilterHeader = FilterHeader;
18880
18958
  exports.FilterResults = FilterResults;
18881
18959
  exports.StarredFilters = StarredFilters;
18960
+ exports.isArrayFilterValue = isArrayFilterValue;
18961
+ exports.isBooleanValue = isBooleanValue;
18962
+ exports.isBoundingBox = isBoundingBox;
18963
+ exports.isDateRangeValue = isDateRangeValue;
18964
+ exports.isMinMaxFilterValue = isMinMaxFilterValue;
18965
+ exports.isStringArrayFilterValue = isStringArrayFilterValue;
18966
+ exports.isValueNameFilterValue = isValueNameFilterValue;
18882
18967
  exports.mergeFilters = mergeFilters;
18883
18968
  exports.toggleFilterValue = toggleFilterValue;
18884
18969
  exports.useFilterBar = useFilterBar;
18970
+ exports.validateFilter = validateFilter;
package/index.esm.js CHANGED
@@ -445,7 +445,7 @@ const StarredFiltersMenu = ({ filterBarDefinition, updateStarredFilters, starred
445
445
  .map(filter => {
446
446
  const showInStarredMenu = filter.showInStarredMenu ? filter.showInStarredMenu() : true;
447
447
  const showInFilterBar = filter.showInFilterBar ? filter.showInFilterBar() : true;
448
- return !showInStarredMenu && !showInFilterBar ? filter.filterKey : null;
448
+ return !showInStarredMenu || !showInFilterBar ? filter.filterKey : null;
449
449
  })
450
450
  .filter(truthy);
451
451
  }, [filterBarDefinition]);
@@ -1387,7 +1387,6 @@ const createInitialState = (name, mainFilters, initialState, setValue) => {
1387
1387
  name,
1388
1388
  initialState: updatedInitialState,
1389
1389
  starredFilterKeys: defaultStarredKeys,
1390
- filterNames: mainFilters.map(filter => filter.filterKey),
1391
1390
  values,
1392
1391
  setters,
1393
1392
  };
@@ -18597,6 +18596,74 @@ var lodash = {exports: {}};
18597
18596
  }.call(commonjsGlobal));
18598
18597
  }(lodash, lodash.exports));
18599
18598
 
18599
+ const hasValue = (value) => {
18600
+ if (value === undefined || value === null) {
18601
+ return false;
18602
+ }
18603
+ if (typeof value === "object" && Object.keys(value).length === 0) {
18604
+ return false;
18605
+ }
18606
+ return !(Array.isArray(value) && value.length === 0);
18607
+ };
18608
+ const isNotRightType = (filterDefinition, foundFilter) => {
18609
+ return ((filterDefinition.type === "valueName" && !isValueNameFilterValue(foundFilter)) ||
18610
+ (filterDefinition.type === "stringArray" && !isStringArrayFilterValue(foundFilter)) ||
18611
+ (filterDefinition.type === "dateRange" && !isDateRangeValue(foundFilter)) ||
18612
+ (filterDefinition.type === "boundingBox" && !isBoundingBox(foundFilter)) ||
18613
+ (filterDefinition.type === "minMax" && !isMinMaxFilterValue(foundFilter)) ||
18614
+ (filterDefinition.type === "boolean" && !isBooleanValue(foundFilter)) ||
18615
+ (filterDefinition.type === "string" && typeof foundFilter !== "string") ||
18616
+ (filterDefinition.type === "number" && typeof foundFilter !== "number"));
18617
+ };
18618
+ /**
18619
+ *
18620
+ */
18621
+ const isMinMaxFilterValue = (value) => {
18622
+ return value
18623
+ ? typeof value === "object" && (Object.keys(value).includes("min") || Object.keys(value).includes("max"))
18624
+ : false;
18625
+ };
18626
+ /**
18627
+ *
18628
+ */
18629
+ const isDateRangeValue = (value) => {
18630
+ return value
18631
+ ? typeof value === "object" && (Object.keys(value).includes("from") || Object.keys(value).includes("to"))
18632
+ : false;
18633
+ };
18634
+ /**
18635
+ *
18636
+ */
18637
+ const isBoundingBox = (value) => {
18638
+ return value
18639
+ ? typeof value === "object" && Object.keys(value).includes("nw") && Object.keys(value).includes("se")
18640
+ : false;
18641
+ };
18642
+ /**
18643
+ *
18644
+ */
18645
+ const isArrayFilterValue = (value) => {
18646
+ return Array.isArray(value);
18647
+ };
18648
+ /**
18649
+ *
18650
+ */
18651
+ const isStringArrayFilterValue = (value) => {
18652
+ return isArrayFilterValue(value) && value.every(item => typeof item === "string");
18653
+ };
18654
+ /**
18655
+ *
18656
+ */
18657
+ const isBooleanValue = (value) => {
18658
+ return value ? typeof value === "object" && Object.keys(value).includes("booleanValue") : false;
18659
+ };
18660
+ /**
18661
+ *
18662
+ */
18663
+ const isValueNameFilterValue = (value) => {
18664
+ return (isArrayFilterValue(value) &&
18665
+ value.every(item => typeof item === "object" && Object.keys(item).includes("name") && Object.keys(item).includes("value")));
18666
+ };
18600
18667
  /**
18601
18668
  * Validates a filter configuration against filter definitions.
18602
18669
  *
@@ -18607,29 +18674,30 @@ var lodash = {exports: {}};
18607
18674
  */
18608
18675
  const validateFilter = (filter, filterDefinitions) => {
18609
18676
  const stateKeys = [];
18610
- // TODO this should validate the initialstate if it is still sane.
18611
18677
  let inBadState = false;
18612
- Object.entries(filter.values).forEach(([key, value]) => {
18678
+ for (const key of Object.keys((filter === null || filter === void 0 ? void 0 : filter.values) || {})) {
18613
18679
  if (filterDefinitions.find(filterDefinition => filterDefinition.filterKey === key)) {
18614
18680
  stateKeys.push(key);
18615
18681
  }
18616
18682
  else {
18617
18683
  inBadState = true;
18618
18684
  }
18619
- });
18620
- Object.values(filter.values).forEach(value => {
18621
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18622
- if (!value) {
18685
+ }
18686
+ filterDefinitions.forEach(filterDefinition => {
18687
+ const foundFilter = filter && filter.values[filterDefinition.filterKey];
18688
+ if (filter) {
18689
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18690
+ if (foundFilter && hasValue(foundFilter) && isNotRightType(filterDefinition, foundFilter)) {
18691
+ inBadState = true;
18692
+ }
18693
+ }
18694
+ else {
18623
18695
  inBadState = true;
18624
18696
  }
18625
18697
  });
18626
18698
  stateKeys.sort((a, b) => a.localeCompare(b));
18627
- const filtersNotEqual = !lodash.exports.isEqual(stateKeys, filterDefinitions.map(f => f.filterKey).sort((a, b) => a.localeCompare(b)));
18628
- return (
18629
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18630
- inBadState || !filter || filterDefinitions.length !== Object.keys(filter === null || filter === void 0 ? void 0 : filter.values).length || filtersNotEqual
18631
- ? true
18632
- : false);
18699
+ const filterKeysNotEqual = !lodash.exports.isEqual(stateKeys, filterDefinitions.map(f => f.filterKey).sort((a, b) => a.localeCompare(b)));
18700
+ return inBadState || filterKeysNotEqual ? false : true;
18633
18701
  };
18634
18702
 
18635
18703
  /**
@@ -18687,14 +18755,24 @@ const useFilterBar = ({ name, onValuesChange, filterBarDefinition, initialState,
18687
18755
  return Boolean(values);
18688
18756
  },
18689
18757
  get filtersHaveBeenApplied() {
18690
- const initialStateValues = filterBarConfig.initialState;
18691
- const currentFilters = filterBarConfig.values;
18692
- return !dequal(currentFilters, initialStateValues);
18758
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18759
+ const initialStateValues = filterBarConfig.initialState || {};
18760
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18761
+ const currentFilters = filterBarConfig.values || {};
18762
+ // parse and stringify to remove empty references before comparing
18763
+ const currentValuesWithoutEmptyRefs = JSON.parse(JSON.stringify(currentFilters));
18764
+ const initialStateValuesWithoutEmptyRefs = JSON.parse(JSON.stringify(initialStateValues));
18765
+ return !dequal(currentValuesWithoutEmptyRefs, initialStateValuesWithoutEmptyRefs);
18693
18766
  },
18694
18767
  filterHasChanged(key) {
18695
- const initialStateValue = filterBarConfig.initialState[key];
18696
- const currentValue = filterBarConfig.values[key];
18697
- return !dequal(currentValue, initialStateValue);
18768
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18769
+ const initialStateValue = filterBarConfig.initialState[key] || {};
18770
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
18771
+ const currentValue = filterBarConfig.values[key] || {};
18772
+ // parse and stringify to remove empty references before comparing
18773
+ const currentValueWithoutEmptyRefs = JSON.parse(JSON.stringify(currentValue));
18774
+ const initialStateValueWithoutEmptyRefs = JSON.parse(JSON.stringify(initialStateValue));
18775
+ return !dequal(currentValueWithoutEmptyRefs, initialStateValueWithoutEmptyRefs);
18698
18776
  },
18699
18777
  objectArrayIncludesValue(key, value) {
18700
18778
  const filter = filterBarConfig.values[key];
@@ -18862,4 +18940,4 @@ const mergeFilters = (filterBarDefinition, extraFilters) => {
18862
18940
  */
18863
18941
  setupLibraryTranslations();
18864
18942
 
18865
- export { DefaultCheckboxFilter, DefaultDateRangeFilter, DefaultMinMaxFilter, DefaultRadioFilter, DynamicFilterList, FilterBar, FilterHeader, FilterResults, StarredFilters, mergeFilters, toggleFilterValue, useFilterBar };
18943
+ export { DefaultCheckboxFilter, DefaultDateRangeFilter, DefaultMinMaxFilter, DefaultRadioFilter, DynamicFilterList, FilterBar, FilterHeader, FilterResults, StarredFilters, isArrayFilterValue, isBooleanValue, isBoundingBox, isDateRangeValue, isMinMaxFilterValue, isStringArrayFilterValue, isValueNameFilterValue, mergeFilters, toggleFilterValue, useFilterBar, validateFilter };
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "@trackunit/filters-filter-bar",
3
- "version": "0.0.9-alpha-442fdb5e23.0",
3
+ "version": "0.0.13",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
7
7
  "node": ">=18.x"
8
8
  },
9
9
  "dependencies": {
10
- "@trackunit/i18n-library-translation": "0.0.84-alpha-442fdb5e23.0",
11
- "@trackunit/iris-app-api": "0.0.122-alpha-442fdb5e23.0",
12
- "@trackunit/iris-app-runtime-core-api": "0.3.75-alpha-442fdb5e23.0",
13
- "@trackunit/react-components": "0.1.170-alpha-442fdb5e23.0",
14
- "@trackunit/react-core-contexts-api": "0.2.62-alpha-442fdb5e23.0",
15
- "@trackunit/react-core-contexts-test": "0.1.117-alpha-442fdb5e23.0",
16
- "@trackunit/react-core-hooks": "0.2.102-alpha-442fdb5e23.0",
17
- "@trackunit/react-filter-components": "0.0.222-alpha-442fdb5e23.0",
18
- "@trackunit/react-form-components": "0.0.163-alpha-442fdb5e23.0",
19
- "@trackunit/shared-utils": "0.0.11-alpha-442fdb5e23.0",
10
+ "@trackunit/i18n-library-translation": "0.0.85",
11
+ "@trackunit/iris-app-api": "0.0.123",
12
+ "@trackunit/iris-app-runtime-core-api": "0.3.75",
13
+ "@trackunit/react-components": "0.1.171",
14
+ "@trackunit/react-core-contexts-api": "0.2.62",
15
+ "@trackunit/react-core-contexts-test": "0.1.117",
16
+ "@trackunit/react-core-hooks": "0.2.102",
17
+ "@trackunit/react-filter-components": "0.0.225",
18
+ "@trackunit/react-form-components": "0.0.166",
19
+ "@trackunit/shared-utils": "0.0.10",
20
20
  "dequal": "2.0.3",
21
21
  "lodash": "4.17.21",
22
22
  "react": "18.2.0",
@@ -32,11 +32,11 @@ export declare const useFilterBar: <TFilterBarDefinition extends FilterBarDefini
32
32
  filtersHaveBeenApplied: boolean;
33
33
  filterHasChanged(key: string): boolean;
34
34
  isFilterIncludedByKey(key: string): boolean;
35
- /**
36
- * An optional initial state for the filter bar.
37
- */
38
35
  updateStarredFilters: (filterkey: string) => void;
39
36
  toggleArrayValue: (key: string, value: string) => void;
37
+ /**
38
+ * The filters that should potentially be used in the filter bar
39
+ */
40
40
  setStringValue: (key: string, value: string) => void;
41
41
  setArrayValue: (key: string, value: string[]) => void;
42
42
  setBoundingBox: (boundingBox: BoundingBox) => void;
@@ -50,7 +50,6 @@ export declare const useFilterBar: <TFilterBarDefinition extends FilterBarDefini
50
50
  resetIndividualFilterToInitialState: (key: string) => void;
51
51
  name: string;
52
52
  initialState: InitialState<TFilterBarDefinition>;
53
- filterNames: Extract<keyof TFilterBarDefinition, string>[];
54
53
  starredFilterKeys: Extract<keyof TFilterBarDefinition, string>[];
55
54
  values: FilterStateValues<TFilterBarDefinition>;
56
55
  setters: import("../types/FilterTypes").FilterStateSetters<TFilterBarDefinition>;
@@ -4,3 +4,4 @@ export * from "./hooks/useFilterBar";
4
4
  export * from "./types/FilterTypes";
5
5
  export * from "./utils/mergeFilters";
6
6
  export * from "./utils/toggleFilterValue";
7
+ export * from "./utils/validateFilter";
@@ -24,7 +24,7 @@ export type MinMaxFilterValue = {
24
24
  min?: number;
25
25
  max?: number;
26
26
  };
27
- export type FilterValueType = string[] | ValueName[] | MinMaxFilterValue | BoundingBox | string | number | boolean | undefined;
27
+ export type FilterValueType = string[] | ValueName[] | MinMaxFilterValue | BoundingBox | string | number | BooleanValue | undefined;
28
28
  export declare type FilterTypes = "boolean" | "string" | "number" | "dateRange" | "boundingBox" | "valueName" | "stringArray" | "minMax";
29
29
  export type FilterMapActions = {
30
30
  updateStarredFilters: (filterkey: string) => void;
@@ -113,7 +113,7 @@ export interface StringFilterDefinition extends AbstractFilterDefinition {
113
113
  export interface NumberFilterDefinition extends AbstractFilterDefinition {
114
114
  type: "number";
115
115
  defaultValue?: number;
116
- valueAsText?: (value: boolean) => string;
116
+ valueAsText?: (value: number) => string;
117
117
  component: (filterComponentProps: FilterViewProps<number>) => React.ReactNode;
118
118
  }
119
119
  export interface BoundingBoxFilterDefinition extends AbstractFilterDefinition {
@@ -182,7 +182,7 @@ export type FiltersStoreInstance<T extends FilterBarDefinition> = Partial<Filter
182
182
  export interface FilterStateMap<T extends FilterBarDefinition> {
183
183
  filtersMap: Record<string, FilterBarConfig<T>>;
184
184
  }
185
- export type FilterBarInferredValue<T extends FilterBarDefinition, K extends keyof T> = T[K]["type"] extends infer Type ? Type extends "boolean" ? boolean | undefined : Type extends "string" ? string | undefined : Type extends "number" ? number | undefined : Type extends "boundingBox" ? BoundingBox | undefined : Type extends "valueName" ? ValueName[] | undefined : Type extends "stringArray" ? string[] | undefined : Type extends "minMax" ? MinMaxFilterValue | undefined : Type extends "dateRange" ? DateRangeValue | undefined : undefined : undefined;
185
+ export type FilterBarInferredValue<T extends FilterBarDefinition, K extends keyof T> = T[K]["type"] extends infer Type ? Type extends "boolean" ? BooleanValue | undefined : Type extends "string" ? string | undefined : Type extends "number" ? number | undefined : Type extends "boundingBox" ? BoundingBox | undefined : Type extends "valueName" ? ValueName[] | undefined : Type extends "stringArray" ? string[] | undefined : Type extends "minMax" ? MinMaxFilterValue | undefined : Type extends "dateRange" ? DateRangeValue | undefined : undefined : undefined;
186
186
  export type SetterKey<T extends string> = `set${Capitalize<T>}`;
187
187
  export type ReverseSetterKey<T extends string> = Uncapitalize<T extends `set${infer U}` ? U : never>;
188
188
  export type ExtractFilterKeys<T extends FilterBarDefinition> = Extract<keyof T, string>;
@@ -212,10 +212,6 @@ export interface FilterBarConfig<T extends FilterBarDefinition> extends FilterSt
212
212
  * The initial state of the filters in this filter list.
213
213
  */
214
214
  initialState: InitialState<T>;
215
- /**
216
- * Allowed FilterName for this filter
217
- */
218
- filterNames: ExtractFilterKeys<T>[];
219
215
  /**
220
216
  * Filter names that should be starred for this filter list.
221
217
  */
@@ -1,4 +1,32 @@
1
- import { FilterBarConfig, FilterBarDefinition, FilterDefinition } from "../types/FilterTypes";
1
+ import { BooleanValue, BoundingBox, DateRangeValue, FilterBarConfig, FilterBarDefinition, FilterDefinition, FilterDefinitionValue, MinMaxFilterValue, ValueName } from "../types/FilterTypes";
2
+ /**
3
+ *
4
+ */
5
+ export declare const isMinMaxFilterValue: (value: FilterDefinitionValue) => value is MinMaxFilterValue;
6
+ /**
7
+ *
8
+ */
9
+ export declare const isDateRangeValue: (value: FilterDefinitionValue) => value is DateRangeValue;
10
+ /**
11
+ *
12
+ */
13
+ export declare const isBoundingBox: (value: FilterDefinitionValue) => value is BoundingBox;
14
+ /**
15
+ *
16
+ */
17
+ export declare const isArrayFilterValue: (value: FilterDefinitionValue) => value is [];
18
+ /**
19
+ *
20
+ */
21
+ export declare const isStringArrayFilterValue: (value: FilterDefinitionValue) => value is string[];
22
+ /**
23
+ *
24
+ */
25
+ export declare const isBooleanValue: (value: FilterDefinitionValue) => value is BooleanValue;
26
+ /**
27
+ *
28
+ */
29
+ export declare const isValueNameFilterValue: (value: FilterDefinitionValue) => value is ValueName[];
2
30
  /**
3
31
  * Validates a filter configuration against filter definitions.
4
32
  *
@@ -7,4 +35,4 @@ import { FilterBarConfig, FilterBarDefinition, FilterDefinition } from "../types
7
35
  * @param {FilterDefinition[]} filterDefinitions - An array of filter definitions to validate against.
8
36
  * @returns {boolean} - Returns `true` if the filter configuration is valid, otherwise `false`.
9
37
  */
10
- export declare const validateFilter: <TFilterBarDefinition extends FilterBarDefinition>(filter: FilterBarConfig<TFilterBarDefinition>, filterDefinitions: FilterDefinition[]) => boolean;
38
+ export declare const validateFilter: <TFilterBarDefinition extends FilterBarDefinition>(filter: FilterBarConfig<TFilterBarDefinition> | undefined, filterDefinitions: FilterDefinition[]) => boolean;
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Verbundenes Zubehör",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "CAN-Profil",
175
175
  "myNetwork.deviceList.filterBar.country": "Land",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Gerätezustand",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Geräte-Zustandsbewertung",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Gerätetyp",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Podłączone wyposażenie",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "Profil CAN",
175
175
  "myNetwork.deviceList.filterBar.country": "Państwo",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Stan urządzenia",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Ocena stanu urządzenia",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Typ urządzenia",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Acessório ligado",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "Perfil CAN",
175
175
  "myNetwork.deviceList.filterBar.country": "País",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Condição do dispositivo",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Pontuação do estado",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Tipo de dispositivo",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Подключенный аксессуар",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "Профиль CAN",
175
175
  "myNetwork.deviceList.filterBar.country": "Страна",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Работоспособность устройства",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Оценка работоспособности устройства",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Тип устройства",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Accesoriu conectat",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "Profil CAN",
175
175
  "myNetwork.deviceList.filterBar.country": "Țară",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Starea de sănătate a dispozitivului",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Scor de sănătate",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Tip de dispozitiv",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Accesorio conectado",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "Perfil CAN",
175
175
  "myNetwork.deviceList.filterBar.country": "País",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Salud del dispositivo",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Puntuación de salud",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Tipo de dispositivo",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Anslutet tillbehör",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "CAN-profil",
175
175
  "myNetwork.deviceList.filterBar.country": "Land",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Enhetens hälsa",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Hälsopoäng",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Typ av enhet",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "接続済みアクセサリー",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "CANプロファイル",
175
175
  "myNetwork.deviceList.filterBar.country": "国",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "デバイスヘルス",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "ヘルススコア",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "デバイスタイプ",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "อุปกรณ์เสริมที่เชื่อมต่อ",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "โปรไฟล์ CAN",
175
175
  "myNetwork.deviceList.filterBar.country": "ประเทศ",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "ความสมบูรณ์ของอุปกรณ์",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "คะแนนความสมบูรณ์",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "ประเภทอุปกรณ์",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Tilsluttet tilbehør",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "CAN-profil",
175
175
  "myNetwork.deviceList.filterBar.country": "Land",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Enhedstilstand",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Tilstandsscore",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Enhedstype",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Připojené příslušenství",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "Profil CAN",
175
175
  "myNetwork.deviceList.filterBar.country": "Země",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Stav zařízení",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Hodnocení stavu",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Typ zařízení",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Verbonden accessoire",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "CAN profiel",
175
175
  "myNetwork.deviceList.filterBar.country": "Land",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Gezondheid van het apparaat",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Gezondheidsscore",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Type apparaat",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Accessoire connecté",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "Profil CAN",
175
175
  "myNetwork.deviceList.filterBar.country": "Pays",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Santé de l'appareil",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Score de santé de l'appareil",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Type d’appareil",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Yhdistetyt lisävarusteet",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "CAN-profiili",
175
175
  "myNetwork.deviceList.filterBar.country": "Maa",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Laitteen kunto",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Kuntopisteet",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Laitetyyppi",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Csatlakoztatott kiegészítő",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "CAN-profil",
175
175
  "myNetwork.deviceList.filterBar.country": "Ország",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Eszközállapot",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Eszközállapot pontszám",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Eszköz típusa",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Accessorio connesso",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "Profilo CAN",
175
175
  "myNetwork.deviceList.filterBar.country": "Paese",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Stato del dispositivo",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Punteggio stato dispositivo",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Tipo di dispositivo",
@@ -173,6 +173,7 @@ var translation = {
173
173
  "myNetwork.deviceList.filterBar.accessControlType": "Tilkoblet tilbehør",
174
174
  "myNetwork.deviceList.filterBar.canProfile": "CAN-profil",
175
175
  "myNetwork.deviceList.filterBar.country": "Land",
176
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
176
177
  "myNetwork.deviceList.filterBar.deviceHealth": "Enhetens helse",
177
178
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Helsescore",
178
179
  "myNetwork.deviceList.filterBar.deviceType": "Enhetstype",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Verbundenes Zubehör",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "CAN-Profil",
173
173
  "myNetwork.deviceList.filterBar.country": "Land",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Gerätezustand",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Geräte-Zustandsbewertung",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Gerätetyp",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Podłączone wyposażenie",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "Profil CAN",
173
173
  "myNetwork.deviceList.filterBar.country": "Państwo",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Stan urządzenia",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Ocena stanu urządzenia",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Typ urządzenia",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Acessório ligado",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "Perfil CAN",
173
173
  "myNetwork.deviceList.filterBar.country": "País",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Condição do dispositivo",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Pontuação do estado",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Tipo de dispositivo",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Подключенный аксессуар",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "Профиль CAN",
173
173
  "myNetwork.deviceList.filterBar.country": "Страна",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Работоспособность устройства",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Оценка работоспособности устройства",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Тип устройства",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Accesoriu conectat",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "Profil CAN",
173
173
  "myNetwork.deviceList.filterBar.country": "Țară",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Starea de sănătate a dispozitivului",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Scor de sănătate",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Tip de dispozitiv",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Accesorio conectado",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "Perfil CAN",
173
173
  "myNetwork.deviceList.filterBar.country": "País",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Salud del dispositivo",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Puntuación de salud",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Tipo de dispositivo",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Anslutet tillbehör",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "CAN-profil",
173
173
  "myNetwork.deviceList.filterBar.country": "Land",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Enhetens hälsa",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Hälsopoäng",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Typ av enhet",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "接続済みアクセサリー",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "CANプロファイル",
173
173
  "myNetwork.deviceList.filterBar.country": "国",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "デバイスヘルス",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "ヘルススコア",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "デバイスタイプ",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "อุปกรณ์เสริมที่เชื่อมต่อ",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "โปรไฟล์ CAN",
173
173
  "myNetwork.deviceList.filterBar.country": "ประเทศ",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "ความสมบูรณ์ของอุปกรณ์",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "คะแนนความสมบูรณ์",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "ประเภทอุปกรณ์",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Tilsluttet tilbehør",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "CAN-profil",
173
173
  "myNetwork.deviceList.filterBar.country": "Land",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Enhedstilstand",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Tilstandsscore",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Enhedstype",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Připojené příslušenství",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "Profil CAN",
173
173
  "myNetwork.deviceList.filterBar.country": "Země",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Stav zařízení",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Hodnocení stavu",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Typ zařízení",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Verbonden accessoire",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "CAN profiel",
173
173
  "myNetwork.deviceList.filterBar.country": "Land",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Gezondheid van het apparaat",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Gezondheidsscore",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Type apparaat",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Accessoire connecté",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "Profil CAN",
173
173
  "myNetwork.deviceList.filterBar.country": "Pays",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Santé de l'appareil",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Score de santé de l'appareil",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Type d’appareil",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Yhdistetyt lisävarusteet",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "CAN-profiili",
173
173
  "myNetwork.deviceList.filterBar.country": "Maa",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Laitteen kunto",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Kuntopisteet",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Laitetyyppi",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Csatlakoztatott kiegészítő",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "CAN-profil",
173
173
  "myNetwork.deviceList.filterBar.country": "Ország",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Eszközállapot",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Eszközállapot pontszám",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Eszköz típusa",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Accessorio connesso",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "Profilo CAN",
173
173
  "myNetwork.deviceList.filterBar.country": "Paese",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Stato del dispositivo",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Punteggio stato dispositivo",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Tipo di dispositivo",
@@ -171,6 +171,7 @@ var translation = {
171
171
  "myNetwork.deviceList.filterBar.accessControlType": "Tilkoblet tilbehør",
172
172
  "myNetwork.deviceList.filterBar.canProfile": "CAN-profil",
173
173
  "myNetwork.deviceList.filterBar.country": "Land",
174
+ "myNetwork.deviceList.filterBar.dataFeed": "Data Feed",
174
175
  "myNetwork.deviceList.filterBar.deviceHealth": "Enhetens helse",
175
176
  "myNetwork.deviceList.filterBar.deviceHealthScore": "Helsescore",
176
177
  "myNetwork.deviceList.filterBar.deviceType": "Enhetstype",