@trackunit/filters-asset-filter-definitions 1.3.47 → 1.3.48

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
@@ -319,7 +319,7 @@ const ActiveFilterFiltersView = (props) => {
319
319
  return newValue === "true" ? { booleanValue: true } : { booleanValue: false };
320
320
  });
321
321
  };
322
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { className: "m-1", limitSize: true, children: jsxRuntime.jsxs(reactFormComponents.RadioGroup, { id: "ActiveAsset", onChange: e => handleChange(e.currentTarget.value), value: props.value ? props.value.booleanValue + "" : "true", children: [jsxRuntime.jsx(reactFilterComponents.RadioFilterItem, { label: t("filtersBar.defaultAssetFilters.activeAssetFilter.hide"), value: "true" }), jsxRuntime.jsx(reactFilterComponents.RadioFilterItem, { label: t("filtersBar.defaultAssetFilters.activeAssetFilter.show"), value: "false" })] }) })] }));
322
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { className: "m-1", limitSize: true, children: jsxRuntime.jsxs(reactFormComponents.RadioGroup, { id: "ActiveAsset", onChange: e => handleChange(e.currentTarget.value), value: props.value ? props.value.booleanValue + "" : "true", children: [jsxRuntime.jsx(reactFilterComponents.RadioFilterItem, { label: t("filtersBar.defaultAssetFilters.activeAssetFilter.hide"), value: "true" }), jsxRuntime.jsx(reactFilterComponents.RadioFilterItem, { label: t("filtersBar.defaultAssetFilters.activeAssetFilter.show"), value: "false" })] }) })] }));
323
323
  };
324
324
  /**
325
325
  *
@@ -2226,9 +2226,9 @@ const AreaView = (props) => {
2226
2226
  // Temporary while we are testing the new area filter bar behind feature flag
2227
2227
  // This emulated the old look of the boundingbox filter
2228
2228
  // TODO [BUSS] Remove this once the new area filter is ready for prime time
2229
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: jsxRuntime.jsx("p", { className: "p-2", children: `${t("assetFilters.boundingBoxFilter.value")}` }) })] }));
2229
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: jsxRuntime.jsx("p", { className: "p-2", children: `${t("assetFilters.boundingBoxFilter.value")}` }) })] }));
2230
2230
  }
2231
- return (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, loading: loading, searchEnabled: true, searchProps: {
2231
+ return (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey), loading: loading, searchEnabled: true, searchProps: {
2232
2232
  onChange: setSearchString,
2233
2233
  value: searchString,
2234
2234
  count: places.length,
@@ -2302,7 +2302,7 @@ const getSelectedOption = (value, options) => {
2302
2302
  };
2303
2303
 
2304
2304
  const AssetIdsFiltersView = (props) => {
2305
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsxRuntime.jsx("span", {})] }));
2305
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsxRuntime.jsx("span", {})] }));
2306
2306
  };
2307
2307
  /**
2308
2308
  * AssetIds filter definition
@@ -2583,7 +2583,7 @@ const FollowedFiltersView = (props) => {
2583
2583
  });
2584
2584
  props.setValue(prev => newValue);
2585
2585
  };
2586
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: jsxRuntime.jsxs(reactFormComponents.RadioGroup, { className: "pl-2 pr-2", id: "followed", label: "", onChange: e => handleChange(e.currentTarget.value), value: props.value ?? "ALL", children: [jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("filtersBar.defaultAssetFilters.followedFilter.allLabel"), value: "ALL" }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("filtersBar.defaultAssetFilters.followedFilter.followedOnlyLabel"), value: "FOLLOWED" })] }) })] }));
2586
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: jsxRuntime.jsxs(reactFormComponents.RadioGroup, { className: "pl-2 pr-2", id: "followed", label: "", onChange: e => handleChange(e.currentTarget.value), value: props.value ?? "ALL", children: [jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("filtersBar.defaultAssetFilters.followedFilter.allLabel"), value: "ALL" }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("filtersBar.defaultAssetFilters.followedFilter.followedOnlyLabel"), value: "FOLLOWED" })] }) })] }));
2587
2587
  };
2588
2588
  /**
2589
2589
  *
@@ -2711,7 +2711,7 @@ const LastSeenFiltersView = (props) => {
2711
2711
  });
2712
2712
  props.setValue(prev => value);
2713
2713
  };
2714
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: jsxRuntime.jsxs(reactFormComponents.RadioGroup, { className: "pl-2 pr-2", id: "lastSeen", label: "", onChange: val => handleChange(val.currentTarget.value), value: props.value ?? "ALL", children: [jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.anytime"), value: "ALL" }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.lastHour"), value: exports.AssetLastSeen.LastHour }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.last24Hours"), value: exports.AssetLastSeen.Last_24Hours }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.last7Days"), value: exports.AssetLastSeen.Last_7Days }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.last30Days"), value: exports.AssetLastSeen.Last_30Days }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.olderThan30Days"), value: exports.AssetLastSeen.OlderThan_30Days })] }) })] }));
2714
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: jsxRuntime.jsxs(reactFormComponents.RadioGroup, { className: "pl-2 pr-2", id: "lastSeen", label: "", onChange: val => handleChange(val.currentTarget.value), value: props.value ?? "ALL", children: [jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.anytime"), value: "ALL" }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.lastHour"), value: exports.AssetLastSeen.LastHour }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.last24Hours"), value: exports.AssetLastSeen.Last_24Hours }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.last7Days"), value: exports.AssetLastSeen.Last_7Days }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.last30Days"), value: exports.AssetLastSeen.Last_30Days }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.lastSeenFilter.olderThan30Days"), value: exports.AssetLastSeen.OlderThan_30Days })] }) })] }));
2715
2715
  };
2716
2716
  /**
2717
2717
  *
@@ -2942,7 +2942,7 @@ const PeriodFilterView = (props) => {
2942
2942
  });
2943
2943
  props.setValue(prev => value);
2944
2944
  };
2945
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: jsxRuntime.jsxs(reactFormComponents.RadioGroup, { id: "period", label: "", onChange: val => handleChange(val.currentTarget.value), value: props.value || "LAST_24_HOURS", children: [props.filterBarActions.getFilterBarName() !== "utilizationFilter" ? (jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.periodFilter.LAST_24_HOURS"), value: exports.DayPeriod.LAST_24_HOURS })) : null, jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.periodFilter.LAST_7_DAYS"), value: exports.DayPeriod.LAST_7_DAYS }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.periodFilter.LAST_30_DAYS"), value: exports.DayPeriod.LAST_30_DAYS }), props.filterBarActions.getFilterBarName() === "fleetEmissionsFilter" && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.periodFilter.LAST_YEAR"), value: exports.DayPeriod.LAST_YEAR }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.periodFilter.LIFETIME"), value: exports.DayPeriod.LIFETIME })] }))] }) })] }));
2945
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: jsxRuntime.jsxs(reactFormComponents.RadioGroup, { id: "period", label: "", onChange: val => handleChange(val.currentTarget.value), value: props.value || "LAST_24_HOURS", children: [props.filterBarActions.getFilterBarName() !== "utilizationFilter" ? (jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.periodFilter.LAST_24_HOURS"), value: exports.DayPeriod.LAST_24_HOURS })) : null, jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.periodFilter.LAST_7_DAYS"), value: exports.DayPeriod.LAST_7_DAYS }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.periodFilter.LAST_30_DAYS"), value: exports.DayPeriod.LAST_30_DAYS }), props.filterBarActions.getFilterBarName() === "fleetEmissionsFilter" && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.periodFilter.LAST_YEAR"), value: exports.DayPeriod.LAST_YEAR }), jsxRuntime.jsx(reactFormComponents.RadioItem, { label: t("assetFilters.periodFilter.LIFETIME"), value: exports.DayPeriod.LIFETIME })] }))] }) })] }));
2946
2946
  };
2947
2947
  /**
2948
2948
  *
@@ -3463,7 +3463,7 @@ const TelematicsConnectedFiltersView = (props) => {
3463
3463
  return newValue === "true" ? { booleanValue: true } : { booleanValue: false };
3464
3464
  });
3465
3465
  };
3466
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, loading: loading }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: jsxRuntime.jsxs(reactFormComponents.RadioGroup, { className: "pl-2 pr-2", id: "followed", label: "", onChange: e => handleChange(e.currentTarget.value), value: props.value ? props.value.booleanValue + "" : "", children: [jsxRuntime.jsx(reactFilterComponents.RadioFilterItem, { itemCount: summaries.find(item => item.key === "numberOfAssetsConnectedWithTelematicsDevice")?.count, label: t("filtersBar.defaultAssetFilters.telematicsConnectedFilter.connected"), value: "true" }), jsxRuntime.jsx(reactFilterComponents.RadioFilterItem, { itemCount: summaries.find(item => item.key === "numberOfAssetsNotConnectedWithTelematicsDevice")?.count, label: t("filtersBar.defaultAssetFilters.telematicsConnectedFilter.notConnected"), value: "false" })] }) })] }));
3466
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey), loading: loading }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: jsxRuntime.jsxs(reactFormComponents.RadioGroup, { className: "pl-2 pr-2", id: "followed", label: "", onChange: e => handleChange(e.currentTarget.value), value: props.value ? props.value.booleanValue + "" : "", children: [jsxRuntime.jsx(reactFilterComponents.RadioFilterItem, { itemCount: summaries.find(item => item.key === "numberOfAssetsConnectedWithTelematicsDevice")?.count, label: t("filtersBar.defaultAssetFilters.telematicsConnectedFilter.connected"), value: "true" }), jsxRuntime.jsx(reactFilterComponents.RadioFilterItem, { itemCount: summaries.find(item => item.key === "numberOfAssetsNotConnectedWithTelematicsDevice")?.count, label: t("filtersBar.defaultAssetFilters.telematicsConnectedFilter.notConnected"), value: "false" })] }) })] }));
3467
3467
  };
3468
3468
  /**
3469
3469
  *
@@ -3475,7 +3475,6 @@ const useTelematicsConnectedFilter = () => {
3475
3475
  filterKey: "telematicsConnected",
3476
3476
  type: "boolean",
3477
3477
  group: "METADATA",
3478
- defaultValue: { booleanValue: undefined },
3479
3478
  title: t("assetFilters.telematicsConnectedFilter.label"),
3480
3479
  default: true,
3481
3480
  valueAsText: (value) => {
@@ -3971,7 +3970,7 @@ const mockForGetPlaceDetailsQuery = (variables, data) => {
3971
3970
  };
3972
3971
 
3973
3972
  const PartnerFilterView = ({ filterDefinition, value, filterBarActions }) => {
3974
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...filterDefinition, ...filterBarActions }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: value?.map(vn => vn.name).join(",") })] }));
3973
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(filtersFilterBar.FilterHeader, { ...filterDefinition, ...filterBarActions, filterHasChanges: filterBarActions.appliedFilterKeys().includes(filterDefinition.filterKey) }), jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, children: value?.map(vn => vn.name).join(",") })] }));
3975
3974
  };
3976
3975
  /**
3977
3976
  * Partner filter definition
@@ -4145,6 +4144,7 @@ const useDefaultAssetFilterBarDefinition = ({ sitesEnabled, owningDepotEnabled,
4145
4144
  * Parses (some) filters from the url and sets their respective values in the filter bar.
4146
4145
  */
4147
4146
  const useSetAssetFilterStateFromUrl = ({ setters, isLoading }) => {
4147
+ const [isDoneSettingFilters, setIsDoneSettingFilters] = react.useState(false);
4148
4148
  const search = reactRouter.useSearch({ strict: false });
4149
4149
  const navigate = reactRouter.useNavigate();
4150
4150
  const errorHandler = reactCoreHooks.useErrorHandler();
@@ -4238,9 +4238,10 @@ const useSetAssetFilterStateFromUrl = ({ setters, isLoading }) => {
4238
4238
  replace: true,
4239
4239
  params: {},
4240
4240
  });
4241
+ setIsDoneSettingFilters(true);
4241
4242
  }
4242
4243
  }, [search, setters, navigate, filterMappings, isLoading]);
4243
- return { search };
4244
+ return { search, isDoneSettingFilters };
4244
4245
  };
4245
4246
  const coordinateSchema = zod.z.object({
4246
4247
  latitude: zod.z.number(),
package/index.esm.js CHANGED
@@ -317,7 +317,7 @@ const ActiveFilterFiltersView = (props) => {
317
317
  return newValue === "true" ? { booleanValue: true } : { booleanValue: false };
318
318
  });
319
319
  };
320
- return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsx(FilterBody, { className: "m-1", limitSize: true, children: jsxs(RadioGroup, { id: "ActiveAsset", onChange: e => handleChange(e.currentTarget.value), value: props.value ? props.value.booleanValue + "" : "true", children: [jsx(RadioFilterItem, { label: t("filtersBar.defaultAssetFilters.activeAssetFilter.hide"), value: "true" }), jsx(RadioFilterItem, { label: t("filtersBar.defaultAssetFilters.activeAssetFilter.show"), value: "false" })] }) })] }));
320
+ return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsx(FilterBody, { className: "m-1", limitSize: true, children: jsxs(RadioGroup, { id: "ActiveAsset", onChange: e => handleChange(e.currentTarget.value), value: props.value ? props.value.booleanValue + "" : "true", children: [jsx(RadioFilterItem, { label: t("filtersBar.defaultAssetFilters.activeAssetFilter.hide"), value: "true" }), jsx(RadioFilterItem, { label: t("filtersBar.defaultAssetFilters.activeAssetFilter.show"), value: "false" })] }) })] }));
321
321
  };
322
322
  /**
323
323
  *
@@ -2224,9 +2224,9 @@ const AreaView = (props) => {
2224
2224
  // Temporary while we are testing the new area filter bar behind feature flag
2225
2225
  // This emulated the old look of the boundingbox filter
2226
2226
  // TODO [BUSS] Remove this once the new area filter is ready for prime time
2227
- return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsx(FilterBody, { limitSize: true, children: jsx("p", { className: "p-2", children: `${t("assetFilters.boundingBoxFilter.value")}` }) })] }));
2227
+ return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsx(FilterBody, { limitSize: true, children: jsx("p", { className: "p-2", children: `${t("assetFilters.boundingBoxFilter.value")}` }) })] }));
2228
2228
  }
2229
- return (jsxs("div", { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, loading: loading, searchEnabled: true, searchProps: {
2229
+ return (jsxs("div", { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey), loading: loading, searchEnabled: true, searchProps: {
2230
2230
  onChange: setSearchString,
2231
2231
  value: searchString,
2232
2232
  count: places.length,
@@ -2300,7 +2300,7 @@ const getSelectedOption = (value, options) => {
2300
2300
  };
2301
2301
 
2302
2302
  const AssetIdsFiltersView = (props) => {
2303
- return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsx("span", {})] }));
2303
+ return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsx("span", {})] }));
2304
2304
  };
2305
2305
  /**
2306
2306
  * AssetIds filter definition
@@ -2581,7 +2581,7 @@ const FollowedFiltersView = (props) => {
2581
2581
  });
2582
2582
  props.setValue(prev => newValue);
2583
2583
  };
2584
- return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsx(FilterBody, { limitSize: true, children: jsxs(RadioGroup, { className: "pl-2 pr-2", id: "followed", label: "", onChange: e => handleChange(e.currentTarget.value), value: props.value ?? "ALL", children: [jsx(RadioItem, { label: t("filtersBar.defaultAssetFilters.followedFilter.allLabel"), value: "ALL" }), jsx(RadioItem, { label: t("filtersBar.defaultAssetFilters.followedFilter.followedOnlyLabel"), value: "FOLLOWED" })] }) })] }));
2584
+ return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsx(FilterBody, { limitSize: true, children: jsxs(RadioGroup, { className: "pl-2 pr-2", id: "followed", label: "", onChange: e => handleChange(e.currentTarget.value), value: props.value ?? "ALL", children: [jsx(RadioItem, { label: t("filtersBar.defaultAssetFilters.followedFilter.allLabel"), value: "ALL" }), jsx(RadioItem, { label: t("filtersBar.defaultAssetFilters.followedFilter.followedOnlyLabel"), value: "FOLLOWED" })] }) })] }));
2585
2585
  };
2586
2586
  /**
2587
2587
  *
@@ -2709,7 +2709,7 @@ const LastSeenFiltersView = (props) => {
2709
2709
  });
2710
2710
  props.setValue(prev => value);
2711
2711
  };
2712
- return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsx(FilterBody, { limitSize: true, children: jsxs(RadioGroup, { className: "pl-2 pr-2", id: "lastSeen", label: "", onChange: val => handleChange(val.currentTarget.value), value: props.value ?? "ALL", children: [jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.anytime"), value: "ALL" }), jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.lastHour"), value: AssetLastSeen.LastHour }), jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.last24Hours"), value: AssetLastSeen.Last_24Hours }), jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.last7Days"), value: AssetLastSeen.Last_7Days }), jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.last30Days"), value: AssetLastSeen.Last_30Days }), jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.olderThan30Days"), value: AssetLastSeen.OlderThan_30Days })] }) })] }));
2712
+ return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsx(FilterBody, { limitSize: true, children: jsxs(RadioGroup, { className: "pl-2 pr-2", id: "lastSeen", label: "", onChange: val => handleChange(val.currentTarget.value), value: props.value ?? "ALL", children: [jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.anytime"), value: "ALL" }), jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.lastHour"), value: AssetLastSeen.LastHour }), jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.last24Hours"), value: AssetLastSeen.Last_24Hours }), jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.last7Days"), value: AssetLastSeen.Last_7Days }), jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.last30Days"), value: AssetLastSeen.Last_30Days }), jsx(RadioItem, { label: t("assetFilters.lastSeenFilter.olderThan30Days"), value: AssetLastSeen.OlderThan_30Days })] }) })] }));
2713
2713
  };
2714
2714
  /**
2715
2715
  *
@@ -2940,7 +2940,7 @@ const PeriodFilterView = (props) => {
2940
2940
  });
2941
2941
  props.setValue(prev => value);
2942
2942
  };
2943
- return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions }), jsx(FilterBody, { limitSize: true, children: jsxs(RadioGroup, { id: "period", label: "", onChange: val => handleChange(val.currentTarget.value), value: props.value || "LAST_24_HOURS", children: [props.filterBarActions.getFilterBarName() !== "utilizationFilter" ? (jsx(RadioItem, { label: t("assetFilters.periodFilter.LAST_24_HOURS"), value: DayPeriod.LAST_24_HOURS })) : null, jsx(RadioItem, { label: t("assetFilters.periodFilter.LAST_7_DAYS"), value: DayPeriod.LAST_7_DAYS }), jsx(RadioItem, { label: t("assetFilters.periodFilter.LAST_30_DAYS"), value: DayPeriod.LAST_30_DAYS }), props.filterBarActions.getFilterBarName() === "fleetEmissionsFilter" && (jsxs(Fragment, { children: [jsx(RadioItem, { label: t("assetFilters.periodFilter.LAST_YEAR"), value: DayPeriod.LAST_YEAR }), jsx(RadioItem, { label: t("assetFilters.periodFilter.LIFETIME"), value: DayPeriod.LIFETIME })] }))] }) })] }));
2943
+ return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey) }), jsx(FilterBody, { limitSize: true, children: jsxs(RadioGroup, { id: "period", label: "", onChange: val => handleChange(val.currentTarget.value), value: props.value || "LAST_24_HOURS", children: [props.filterBarActions.getFilterBarName() !== "utilizationFilter" ? (jsx(RadioItem, { label: t("assetFilters.periodFilter.LAST_24_HOURS"), value: DayPeriod.LAST_24_HOURS })) : null, jsx(RadioItem, { label: t("assetFilters.periodFilter.LAST_7_DAYS"), value: DayPeriod.LAST_7_DAYS }), jsx(RadioItem, { label: t("assetFilters.periodFilter.LAST_30_DAYS"), value: DayPeriod.LAST_30_DAYS }), props.filterBarActions.getFilterBarName() === "fleetEmissionsFilter" && (jsxs(Fragment, { children: [jsx(RadioItem, { label: t("assetFilters.periodFilter.LAST_YEAR"), value: DayPeriod.LAST_YEAR }), jsx(RadioItem, { label: t("assetFilters.periodFilter.LIFETIME"), value: DayPeriod.LIFETIME })] }))] }) })] }));
2944
2944
  };
2945
2945
  /**
2946
2946
  *
@@ -3461,7 +3461,7 @@ const TelematicsConnectedFiltersView = (props) => {
3461
3461
  return newValue === "true" ? { booleanValue: true } : { booleanValue: false };
3462
3462
  });
3463
3463
  };
3464
- return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, loading: loading }), jsx(FilterBody, { limitSize: true, children: jsxs(RadioGroup, { className: "pl-2 pr-2", id: "followed", label: "", onChange: e => handleChange(e.currentTarget.value), value: props.value ? props.value.booleanValue + "" : "", children: [jsx(RadioFilterItem, { itemCount: summaries.find(item => item.key === "numberOfAssetsConnectedWithTelematicsDevice")?.count, label: t("filtersBar.defaultAssetFilters.telematicsConnectedFilter.connected"), value: "true" }), jsx(RadioFilterItem, { itemCount: summaries.find(item => item.key === "numberOfAssetsNotConnectedWithTelematicsDevice")?.count, label: t("filtersBar.defaultAssetFilters.telematicsConnectedFilter.notConnected"), value: "false" })] }) })] }));
3464
+ return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...props.filterDefinition, ...props.filterBarActions, filterHasChanges: props.filterBarActions.appliedFilterKeys().includes(props.filterDefinition.filterKey), loading: loading }), jsx(FilterBody, { limitSize: true, children: jsxs(RadioGroup, { className: "pl-2 pr-2", id: "followed", label: "", onChange: e => handleChange(e.currentTarget.value), value: props.value ? props.value.booleanValue + "" : "", children: [jsx(RadioFilterItem, { itemCount: summaries.find(item => item.key === "numberOfAssetsConnectedWithTelematicsDevice")?.count, label: t("filtersBar.defaultAssetFilters.telematicsConnectedFilter.connected"), value: "true" }), jsx(RadioFilterItem, { itemCount: summaries.find(item => item.key === "numberOfAssetsNotConnectedWithTelematicsDevice")?.count, label: t("filtersBar.defaultAssetFilters.telematicsConnectedFilter.notConnected"), value: "false" })] }) })] }));
3465
3465
  };
3466
3466
  /**
3467
3467
  *
@@ -3473,7 +3473,6 @@ const useTelematicsConnectedFilter = () => {
3473
3473
  filterKey: "telematicsConnected",
3474
3474
  type: "boolean",
3475
3475
  group: "METADATA",
3476
- defaultValue: { booleanValue: undefined },
3477
3476
  title: t("assetFilters.telematicsConnectedFilter.label"),
3478
3477
  default: true,
3479
3478
  valueAsText: (value) => {
@@ -3969,7 +3968,7 @@ const mockForGetPlaceDetailsQuery = (variables, data) => {
3969
3968
  };
3970
3969
 
3971
3970
  const PartnerFilterView = ({ filterDefinition, value, filterBarActions }) => {
3972
- return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...filterDefinition, ...filterBarActions }), jsx(FilterBody, { limitSize: true, children: value?.map(vn => vn.name).join(",") })] }));
3971
+ return (jsxs(Fragment, { children: [jsx(FilterHeader, { ...filterDefinition, ...filterBarActions, filterHasChanges: filterBarActions.appliedFilterKeys().includes(filterDefinition.filterKey) }), jsx(FilterBody, { limitSize: true, children: value?.map(vn => vn.name).join(",") })] }));
3973
3972
  };
3974
3973
  /**
3975
3974
  * Partner filter definition
@@ -4143,6 +4142,7 @@ const useDefaultAssetFilterBarDefinition = ({ sitesEnabled, owningDepotEnabled,
4143
4142
  * Parses (some) filters from the url and sets their respective values in the filter bar.
4144
4143
  */
4145
4144
  const useSetAssetFilterStateFromUrl = ({ setters, isLoading }) => {
4145
+ const [isDoneSettingFilters, setIsDoneSettingFilters] = useState(false);
4146
4146
  const search = useSearch({ strict: false });
4147
4147
  const navigate = useNavigate();
4148
4148
  const errorHandler = useErrorHandler();
@@ -4236,9 +4236,10 @@ const useSetAssetFilterStateFromUrl = ({ setters, isLoading }) => {
4236
4236
  replace: true,
4237
4237
  params: {},
4238
4238
  });
4239
+ setIsDoneSettingFilters(true);
4239
4240
  }
4240
4241
  }, [search, setters, navigate, filterMappings, isLoading]);
4241
- return { search };
4242
+ return { search, isDoneSettingFilters };
4242
4243
  };
4243
4244
  const coordinateSchema = z.object({
4244
4245
  latitude: z.number(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/filters-asset-filter-definitions",
3
- "version": "1.3.47",
3
+ "version": "1.3.48",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -17,21 +17,21 @@
17
17
  "@tanstack/react-router": "1.47.1",
18
18
  "string-ts": "^2.0.0",
19
19
  "tailwind-merge": "^2.0.0",
20
- "@trackunit/iris-app-build-utilities": "1.3.29",
21
- "@trackunit/filters-filter-bar": "1.3.42",
22
- "@trackunit/react-core-hooks": "1.3.30",
23
- "@trackunit/react-filter-components": "1.3.35",
24
- "@trackunit/react-form-components": "1.3.35",
25
- "@trackunit/filters-graphql-hook": "1.3.42",
26
- "@trackunit/utilization-indicator": "1.3.31",
27
- "@trackunit/geo-json-utils": "1.3.30",
28
- "@trackunit/react-components": "1.4.30",
29
- "@trackunit/shared-utils": "1.5.29",
30
- "@trackunit/translations-machine-type": "1.3.31",
31
- "@trackunit/criticality-indicator": "1.3.31",
32
- "@trackunit/iris-app-api": "1.3.29",
33
- "@trackunit/react-core-contexts-test": "1.3.30",
34
- "@trackunit/i18n-library-translation": "1.3.30"
20
+ "@trackunit/iris-app-build-utilities": "1.3.30",
21
+ "@trackunit/filters-filter-bar": "1.3.43",
22
+ "@trackunit/react-core-hooks": "1.3.31",
23
+ "@trackunit/react-filter-components": "1.3.36",
24
+ "@trackunit/react-form-components": "1.3.36",
25
+ "@trackunit/filters-graphql-hook": "1.3.43",
26
+ "@trackunit/utilization-indicator": "1.3.32",
27
+ "@trackunit/geo-json-utils": "1.3.31",
28
+ "@trackunit/react-components": "1.4.31",
29
+ "@trackunit/shared-utils": "1.5.30",
30
+ "@trackunit/translations-machine-type": "1.3.32",
31
+ "@trackunit/criticality-indicator": "1.3.32",
32
+ "@trackunit/iris-app-api": "1.3.30",
33
+ "@trackunit/react-core-contexts-test": "1.3.31",
34
+ "@trackunit/i18n-library-translation": "1.3.31"
35
35
  },
36
36
  "module": "./index.esm.js",
37
37
  "main": "./index.cjs.js",
@@ -1,7 +1,7 @@
1
- import { useFilterBar } from "@trackunit/filters-filter-bar";
1
+ import { FilterBarConfig } from "@trackunit/filters-filter-bar";
2
2
  import { DefaultAssetFilterBarDefinition } from "./useDefaultAssetFilterBarDefinition";
3
3
  interface UseSetAssetFilterStateFromUrlProps {
4
- setters: ReturnType<typeof useFilterBar<DefaultAssetFilterBarDefinition>>["filterBarConfig"]["setters"];
4
+ setters: FilterBarConfig<DefaultAssetFilterBarDefinition>["setters"];
5
5
  isLoading?: boolean;
6
6
  }
7
7
  /**
@@ -9,5 +9,6 @@ interface UseSetAssetFilterStateFromUrlProps {
9
9
  */
10
10
  export declare const useSetAssetFilterStateFromUrl: ({ setters, isLoading }: UseSetAssetFilterStateFromUrlProps) => {
11
11
  search: any;
12
+ isDoneSettingFilters: boolean;
12
13
  };
13
14
  export {};