@trackunit/filters-filter-bar 1.8.124 → 1.8.127

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.
Files changed (42) hide show
  1. package/index.cjs.js +16 -16
  2. package/index.esm.js +16 -16
  3. package/package.json +12 -12
  4. package/src/lib/components/FilterHeader.d.ts +1 -1
  5. package/src/lib/components/FiltersMenu.d.ts +1 -1
  6. package/src/lib/components/GroupedFiltersList.d.ts +1 -1
  7. package/src/lib/components/ResetFiltersButton.d.ts +1 -1
  8. package/src/lib/components/ResetFiltersButtonWithIcon.d.ts +1 -1
  9. package/translation.cjs.js +1 -0
  10. package/translation.cjs10.js +1 -0
  11. package/translation.cjs11.js +1 -0
  12. package/translation.cjs12.js +1 -0
  13. package/translation.cjs13.js +1 -0
  14. package/translation.cjs14.js +1 -0
  15. package/translation.cjs15.js +1 -0
  16. package/translation.cjs16.js +1 -0
  17. package/translation.cjs17.js +1 -0
  18. package/translation.cjs2.js +1 -0
  19. package/translation.cjs3.js +1 -0
  20. package/translation.cjs4.js +1 -0
  21. package/translation.cjs5.js +1 -0
  22. package/translation.cjs6.js +1 -0
  23. package/translation.cjs7.js +1 -0
  24. package/translation.cjs8.js +1 -0
  25. package/translation.cjs9.js +1 -0
  26. package/translation.esm.js +1 -0
  27. package/translation.esm10.js +1 -0
  28. package/translation.esm11.js +1 -0
  29. package/translation.esm12.js +1 -0
  30. package/translation.esm13.js +1 -0
  31. package/translation.esm14.js +1 -0
  32. package/translation.esm15.js +1 -0
  33. package/translation.esm16.js +1 -0
  34. package/translation.esm17.js +1 -0
  35. package/translation.esm2.js +1 -0
  36. package/translation.esm3.js +1 -0
  37. package/translation.esm4.js +1 -0
  38. package/translation.esm5.js +1 -0
  39. package/translation.esm6.js +1 -0
  40. package/translation.esm7.js +1 -0
  41. package/translation.esm8.js +1 -0
  42. package/translation.esm9.js +1 -0
package/index.cjs.js CHANGED
@@ -405,7 +405,7 @@ const FilterComponent = ({ filter, filterBarActions, filterState, readOnly = fal
405
405
  setValue,
406
406
  filterBarActions,
407
407
  filterState,
408
- }) })) : (jsxRuntime.jsx(reactFilterComponents.Filter, { activeLabel: activeFilterText, activeOptionsCount: valuesLength, asIcon: asIcon, className: className, dataTestId: `${filter.filterKey}-filter-button`, isActive: filterBarActions.appliedFilterKeys().includes(filter.filterKey), popoverProps: { placement: visualStyle === "list-item" ? "right-start" : "bottom-start" }, readOnly: readOnly, size: size, title: filter.title, visualStyle: visualStyle, withStickyHeader: true, children: filter.component({
408
+ }) })) : (jsxRuntime.jsx(reactFilterComponents.Filter, { activeLabel: activeFilterText, activeOptionsCount: valuesLength, asIcon: asIcon, className: className, "data-testid": `${filter.filterKey}-filter-button`, isActive: filterBarActions.appliedFilterKeys().includes(filter.filterKey), popoverProps: { placement: visualStyle === "list-item" ? "right-start" : "bottom-start" }, readOnly: readOnly, size: size, title: filter.title, visualStyle: visualStyle, withStickyHeader: true, children: filter.component({
409
409
  filterDefinition: filter,
410
410
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
411
411
  value: values,
@@ -440,9 +440,9 @@ const FiltersRenderer = ({ filters, filterBarConfig, visualStyle, }) => {
440
440
  *
441
441
  * @returns {ReactElement | null} The rendered ResetFiltersButton component, or null if no filters have been applied.
442
442
  */
443
- const ResetFiltersButtonWithIcon = ({ resetFiltersToInitialState, dataTestId, className, }) => {
443
+ const ResetFiltersButtonWithIcon = ({ resetFiltersToInitialState, "data-testid": dataTestId, className, }) => {
444
444
  const [t] = useTranslation();
445
- return (jsxRuntime.jsxs(reactComponents.Button, { className: className, dataTestId: dataTestId ?? "reset-filters-button", onClick: () => {
445
+ return (jsxRuntime.jsxs(reactComponents.Button, { className: className, "data-testid": dataTestId ?? "reset-filters-button", onClick: () => {
446
446
  resetFiltersToInitialState();
447
447
  }, prefix: jsxRuntime.jsx(reactComponents.Icon, { name: "ArrowPath", size: "small", type: "solid" }), size: "small", variant: "ghost-neutral", children: [t("filtersBar.resetFilters"), jsxRuntime.jsx("span", { className: "sr-only", children: t("filtersBar.resetFiltersSR") })] }));
448
448
  };
@@ -521,7 +521,7 @@ const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked
521
521
  if (!item) {
522
522
  return null;
523
523
  }
524
- return (jsxRuntime.jsx("li", { ...listItemProps, children: item.type === "search-more" ? (jsxRuntime.jsxs("div", { className: "p-3 pt-2", children: [jsxRuntime.jsx("span", { className: "text-sm text-neutral-600", children: t("filter.more.options.if.you.search.title", { count: rowCount }) }), jsxRuntime.jsx("br", {}), jsxRuntime.jsx("span", { className: "text-sm italic text-neutral-400", children: t("filter.more.options.if.you.search.description") })] })) : type === "Radio" ? (jsxRuntime.jsx(reactFilterComponents.RadioFilterItem, { dataTestId: "dynamic-filter-radio-" + item.key, itemCount: item.itemCount, label: item.label, selected: item.isChecked, value: item.key })) : (jsxRuntime.jsx(reactFilterComponents.CheckBoxFilterItem, { checked: item.isChecked, dataTestId: "dynamic-filter-check-box-" + item.key, itemCount: item.itemCount, label: item.label, name: item.key, onChange: () => {
524
+ return (jsxRuntime.jsx("li", { ...listItemProps, children: item.type === "search-more" ? (jsxRuntime.jsxs("div", { className: "p-3 pt-2", children: [jsxRuntime.jsx("span", { className: "text-sm text-neutral-600", children: t("filter.more.options.if.you.search.title", { count: rowCount }) }), jsxRuntime.jsx("br", {}), jsxRuntime.jsx("span", { className: "text-sm italic text-neutral-400", children: t("filter.more.options.if.you.search.description") })] })) : type === "Radio" ? (jsxRuntime.jsx(reactFilterComponents.RadioFilterItem, { "data-testid": "dynamic-filter-radio-" + item.key, itemCount: item.itemCount, label: item.label, selected: item.isChecked, value: item.key })) : (jsxRuntime.jsx(reactFilterComponents.CheckBoxFilterItem, { checked: item.isChecked, "data-testid": "dynamic-filter-check-box-" + item.key, itemCount: item.itemCount, label: item.label, name: item.key, onChange: () => {
525
525
  onChange?.(item.index);
526
526
  } })) }, key));
527
527
  } }) }));
@@ -532,13 +532,13 @@ const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked
532
532
  *
533
533
  * @returns {ReactElement} - Returns the FilterHeader component.
534
534
  */
535
- const FilterHeader = ({ filterKey, title, searchEnabled, searchProps, filterHasChanges, resetIndividualFilterToInitialState, onResetFilter, loading = false, className, dataTestId, hideHeader = false, children, }) => {
535
+ const FilterHeader = ({ filterKey, title, searchEnabled, searchProps, filterHasChanges, resetIndividualFilterToInitialState, onResetFilter, loading = false, className, "data-testid": dataTestId, hideHeader = false, children, }) => {
536
536
  const [t] = useTranslation();
537
537
  const handleResetFilter = () => {
538
538
  resetIndividualFilterToInitialState(filterKey);
539
539
  onResetFilter?.();
540
540
  };
541
- return (jsxRuntime.jsx(reactFilterComponents.FilterHeader, { className: className, dataTestId: dataTestId ?? `${filterKey}-filter-header`, loading: loading, onReset: handleResetFilter, resetLabel: t("filtersBar.resetFilter"), searchComponent: searchEnabled ? jsxRuntime.jsx(FilterHeaderSearchComponent, { filterKey: filterKey, searchProps: searchProps }) : undefined, showReset: filterHasChanges, title: hideHeader ? undefined : title, children: children }));
541
+ return (jsxRuntime.jsx(reactFilterComponents.FilterHeader, { className: className, "data-testid": dataTestId ?? `${filterKey}-filter-header`, loading: loading, onReset: handleResetFilter, resetLabel: t("filtersBar.resetFilter"), searchComponent: searchEnabled ? jsxRuntime.jsx(FilterHeaderSearchComponent, { filterKey: filterKey, searchProps: searchProps }) : undefined, showReset: filterHasChanges, title: hideHeader ? undefined : title, children: children }));
542
542
  };
543
543
  /**
544
544
  * FilterHeaderSearchComponent renders a search input for the FilterHeader component.
@@ -675,7 +675,7 @@ const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, lo
675
675
  onChange: customSearch?.onChange ?? setSearchText,
676
676
  onClear: customSearch?.onClear ?? (() => setSearchText("")),
677
677
  count: undefinedCount ? filteredOptions.length - 1 : filteredOptions.length,
678
- }, children: options.length >= 2 ? (jsxRuntime.jsx(reactComponents.Button, { className: "place-self-start", dataTestId: "selectAllButton", disabled: hasSelectedAll, onClick: handleSelectAll, size: "small", variant: "ghost", children: t("filtersBar.selectAll") })) : null }), jsxRuntime.jsx(FilterResults, { ignoreUndefined: undefinedCount !== null, loading: loading, results: results, children: res => (jsxRuntime.jsx(DynamicFilterList, { checked: index => {
678
+ }, children: options.length >= 2 ? (jsxRuntime.jsx(reactComponents.Button, { className: "place-self-start", "data-testid": "selectAllButton", disabled: hasSelectedAll, onClick: handleSelectAll, size: "small", variant: "ghost", children: t("filtersBar.selectAll") })) : null }), jsxRuntime.jsx(FilterResults, { ignoreUndefined: undefinedCount !== null, loading: loading, results: results, children: res => (jsxRuntime.jsx(DynamicFilterList, { checked: index => {
679
679
  return filterDefinition.type === "valueNameArray"
680
680
  ? filterBarActions.objectArrayIncludesValue(filterDefinition.filterKey, res[index]?.key || "")
681
681
  : filterBarActions.arrayIncludesValue(filterDefinition.filterKey, res[index]?.key || "");
@@ -686,7 +686,7 @@ const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, lo
686
686
  }
687
687
  }, rowCount: undefinedCount ? res.length - 1 : res.length, showRequestMoreUseSearch: showRequestMoreUseSearch, type: "CheckBox" })) }), showUndefinedOptionWithCountAtBottom && undefinedCount ? (jsxRuntime.jsx("div", { className: "border-t border-neutral-200 py-1", children: jsxRuntime.jsx(reactFilterComponents.CheckBoxFilterItem, { checked: filterDefinition.type === "valueNameArray"
688
688
  ? filterBarActions.objectArrayIncludesValue(filterDefinition.filterKey, results[undefinedCount.index]?.key || "")
689
- : filterBarActions.arrayIncludesValue(filterDefinition.filterKey, results[undefinedCount.index]?.key || ""), dataTestId: "dynamic-filter-check-box-undefined", itemCount: undefinedCount.count, label: results[undefinedCount.index]?.label, name: "dynamic-filter-check-box-undefined", onChange: () => {
689
+ : filterBarActions.arrayIncludesValue(filterDefinition.filterKey, results[undefinedCount.index]?.key || ""), "data-testid": "dynamic-filter-check-box-undefined", itemCount: undefinedCount.count, label: results[undefinedCount.index]?.label, name: "dynamic-filter-check-box-undefined", onChange: () => {
690
690
  const result = results[undefinedCount.index];
691
691
  if (result) {
692
692
  handleSetValue(result);
@@ -914,10 +914,10 @@ const useFiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters =
914
914
  *
915
915
  * @returns {ReactElement} - Returns the FiltersList component.
916
916
  */
917
- const GroupedFiltersList = ({ filterBarConfig, filtersGrouped, className, dataTestId = "grouped-filters-list", }) => {
917
+ const GroupedFiltersList = ({ filterBarConfig, filtersGrouped, className, "data-testid": dataTestId = "grouped-filters-list", }) => {
918
918
  return (jsxRuntime.jsx("div", { className: className, "data-testid": dataTestId, role: "menu", children: filtersGrouped.map((group, idx) => {
919
919
  const isLastGroup = idx === filtersGrouped.length - 1;
920
- return (jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [jsxRuntime.jsxs("div", { children: [filtersGrouped.length > 1 && (jsxRuntime.jsx(reactComponents.Text, { className: "h-7 px-3 py-2 text-neutral-400", dataTestId: `${group.key}-group-title`, size: "small", uppercase: true, weight: "bold", children: group.title })), jsxRuntime.jsx("ul", { "aria-labelledby": `${group.key}-group-title`, className: "grid", "data-testid": `${group.key}-group-list`, children: jsxRuntime.jsx(FiltersRenderer, { filterBarConfig: filterBarConfig, filters: group.filters, visualStyle: "list-item" }) })] }), isLastGroup ? null : jsxRuntime.jsx("div", { className: "h-[1px] w-full bg-neutral-200", role: "separator" })] }, group.key));
920
+ return (jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [jsxRuntime.jsxs("div", { children: [filtersGrouped.length > 1 && (jsxRuntime.jsx(reactComponents.Text, { className: "h-7 px-3 py-2 text-neutral-400", "data-testid": `${group.key}-group-title`, size: "small", uppercase: true, weight: "bold", children: group.title })), jsxRuntime.jsx("ul", { "aria-labelledby": `${group.key}-group-title`, className: "grid", "data-testid": `${group.key}-group-list`, children: jsxRuntime.jsx(FiltersRenderer, { filterBarConfig: filterBarConfig, filters: group.filters, visualStyle: "list-item" }) })] }), isLastGroup ? null : jsxRuntime.jsx("div", { className: "h-[1px] w-full bg-neutral-200", role: "separator" })] }, group.key));
921
921
  }) }));
922
922
  };
923
923
 
@@ -926,9 +926,9 @@ const GroupedFiltersList = ({ filterBarConfig, filtersGrouped, className, dataTe
926
926
  *
927
927
  * @returns {ReactElement | null} The rendered ResetFiltersButton component, or null if no filters have been applied.
928
928
  */
929
- const ResetFiltersButton = ({ resetFiltersToInitialState, dataTestId, className, }) => {
929
+ const ResetFiltersButton = ({ resetFiltersToInitialState, "data-testid": dataTestId, className, }) => {
930
930
  const [t] = useTranslation();
931
- return (jsxRuntime.jsxs(reactComponents.Button, { className: className, dataTestId: dataTestId ?? "reset-filters-button", onClick: () => {
931
+ return (jsxRuntime.jsxs(reactComponents.Button, { className: className, "data-testid": dataTestId ?? "reset-filters-button", onClick: () => {
932
932
  resetFiltersToInitialState();
933
933
  }, size: "small", variant: "ghost", children: [t("filtersBar.resetFilters"), jsxRuntime.jsx("span", { className: "sr-only", children: t("filtersBar.resetFiltersSR") })] }));
934
934
  };
@@ -938,7 +938,7 @@ const ResetFiltersButton = ({ resetFiltersToInitialState, dataTestId, className,
938
938
  */
939
939
  const FiltersMenuContent = ({ filterBarConfig, setShowCustomFilters, setSearchText, searchText, searchResultsGrouped, filtersToShowGrouped, removeCustomFieldsGroup, hasCustomFields, appliedCustomFields, showCustomFilters, filterBarDefinitionCount, }) => {
940
940
  const [t] = useTranslation();
941
- return (jsxRuntime.jsxs(reactComponents.Card, { className: "max-h-[min(600px,_calc(100dvh-32px))] w-[300px] overflow-y-hidden", dataTestId: "starred-filters-menu-popover", id: "starred-filters-menu-popover", tabIndex: 0, children: [jsxRuntime.jsxs("div", { className: "flex flex-col gap-1 p-1", children: [filterBarDefinitionCount > 5 && (jsxRuntime.jsx(reactFormComponents.Search, { autoFocus: true, dataTestId: "starred-filters-menu-search", fieldSize: "small", id: "search-filters-list", onChange: e => setSearchText(e.currentTarget.value), onClear: () => setSearchText(""), placeholder: t("filtersBar.searchFiltersPlaceholder"), value: searchText })), jsxRuntime.jsxs("div", { className: "flex h-7 items-center justify-between gap-1 pl-3", children: [jsxRuntime.jsx(reactComponents.Text, { className: "text-neutral-400", size: "small", children: jsxRuntime.jsx(FiltersAppliedCountLabel, { filterBarConfig: filterBarConfig }) }), filterBarConfig.appliedFilterKeys().length > 0 ? (jsxRuntime.jsx(ResetFiltersButton, { resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState })) : null] })] }), jsxRuntime.jsx(Separator, {}), jsxRuntime.jsxs(reactComponents.CardBody, { className: "gap-1 p-1", density: "none", disableGap: true, children: [jsxRuntime.jsx(GroupedFiltersList, { className: "flex flex-col gap-1", filterBarConfig: filterBarConfig, filtersGrouped: searchText
941
+ return (jsxRuntime.jsxs(reactComponents.Card, { className: "max-h-[min(600px,_calc(100dvh-32px))] w-[300px] overflow-y-hidden", "data-testid": "starred-filters-menu-popover", id: "starred-filters-menu-popover", tabIndex: 0, children: [jsxRuntime.jsxs("div", { className: "flex flex-col gap-1 p-1", children: [filterBarDefinitionCount > 5 && (jsxRuntime.jsx(reactFormComponents.Search, { autoFocus: true, "data-testid": "starred-filters-menu-search", fieldSize: "small", id: "search-filters-list", onChange: e => setSearchText(e.currentTarget.value), onClear: () => setSearchText(""), placeholder: t("filtersBar.searchFiltersPlaceholder"), value: searchText })), jsxRuntime.jsxs("div", { className: "flex h-7 items-center justify-between gap-1 pl-3", children: [jsxRuntime.jsx(reactComponents.Text, { className: "text-neutral-400", size: "small", children: jsxRuntime.jsx(FiltersAppliedCountLabel, { filterBarConfig: filterBarConfig }) }), filterBarConfig.appliedFilterKeys().length > 0 ? (jsxRuntime.jsx(ResetFiltersButton, { resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState })) : null] })] }), jsxRuntime.jsx(Separator, {}), jsxRuntime.jsxs(reactComponents.CardBody, { className: "gap-1 p-1", density: "none", disableGap: true, children: [jsxRuntime.jsx(GroupedFiltersList, { className: "flex flex-col gap-1", filterBarConfig: filterBarConfig, filtersGrouped: searchText
942
942
  ? searchResultsGrouped
943
943
  : showCustomFilters
944
944
  ? filtersToShowGrouped
@@ -1076,7 +1076,7 @@ const MultipleFilterTooltipLabel = ({ filterBarConfig, filterKeys, filters, }) =
1076
1076
  * @template TFilterBarDefinition - The type representing the filter bar definition.
1077
1077
  * @returns {ReactElement} - Returns the FilterMenu component.
1078
1078
  */
1079
- const FiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact = false, title, dataTestId = "filters-menu", className, buttonProps, allowShowFiltersDirectly = true, includeFilterKeys, }) => {
1079
+ const FiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact = false, title, "data-testid": dataTestId = "filters-menu", className, buttonProps, allowShowFiltersDirectly = true, includeFilterKeys, }) => {
1080
1080
  const [t] = useTranslation();
1081
1081
  const [showCustomFilters, setShowCustomFilters] = react.useState(false);
1082
1082
  const { isSm } = reactComponents.useViewportBreakpoints();
@@ -1317,7 +1317,7 @@ const RenderHierarchicalOption = ({ option, filterDefinition, filterBarActions,
1317
1317
  filterDefinition,
1318
1318
  logEvent,
1319
1319
  });
1320
- return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx("div", { className: cvaOptionItem({ indentationLevel: level > 6 ? 6 : level }), children: jsxRuntime.jsx(reactFilterComponents.CheckBoxFilterItem, { checked: isChecked, className: "rounded-none", dataTestId: `hierarchical-filter-check-box-${option.key}`, indeterminate: isIndeterminate, itemCount: showCount ? option.count : undefined, label: option.label, name: `hierarchical-filter-check-box-${option.key}`, onChange: handleSelect }) }), option.children?.map(child => (jsxRuntime.jsx(RenderHierarchicalOption, { cascadeSelection: cascadeSelection, filterBarActions: filterBarActions, filterDefinition: filterDefinition, logEvent: logEvent, option: child, optionsMap: optionsMap, selectedValues: selectedValues, setValue: setValue, showCount: showCount }, child.key)))] }, option.key));
1320
+ return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx("div", { className: cvaOptionItem({ indentationLevel: level > 6 ? 6 : level }), children: jsxRuntime.jsx(reactFilterComponents.CheckBoxFilterItem, { checked: isChecked, className: "rounded-none", "data-testid": `hierarchical-filter-check-box-${option.key}`, indeterminate: isIndeterminate, itemCount: showCount ? option.count : undefined, label: option.label, name: `hierarchical-filter-check-box-${option.key}`, onChange: handleSelect }) }), option.children?.map(child => (jsxRuntime.jsx(RenderHierarchicalOption, { cascadeSelection: cascadeSelection, filterBarActions: filterBarActions, filterDefinition: filterDefinition, logEvent: logEvent, option: child, optionsMap: optionsMap, selectedValues: selectedValues, setValue: setValue, showCount: showCount }, child.key)))] }, option.key));
1321
1321
  };
1322
1322
  const cvaOptionItem = cssClassVarianceUtilities.cvaMerge(["m-1"], {
1323
1323
  variants: {
@@ -1383,7 +1383,7 @@ const HierarchicalCheckboxFilter = ({ filterDefinition, filterBarActions, option
1383
1383
  * The FilterBar component serves as a wrapper for managing filters.
1384
1384
  */
1385
1385
  const FilterBar = ({ hiddenFilters, className, filterBarDefinition, filterBarConfig, compact = true, allowShowFiltersDirectly = true, title, }) => {
1386
- return (jsxRuntime.jsx(FiltersMenu, { allowShowFiltersDirectly: allowShowFiltersDirectly, className: className, compact: compact, dataTestId: `${filterBarConfig.name}-filterbar`, filterBarConfig: filterBarConfig, filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters, title: title }));
1386
+ return (jsxRuntime.jsx(FiltersMenu, { allowShowFiltersDirectly: allowShowFiltersDirectly, className: className, compact: compact, "data-testid": `${filterBarConfig.name}-filterbar`, filterBarConfig: filterBarConfig, filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters, title: title }));
1387
1387
  };
1388
1388
 
1389
1389
  // Can't import jest.fn so must define a function that does nothing but mimics the jest.fn
package/index.esm.js CHANGED
@@ -403,7 +403,7 @@ const FilterComponent = ({ filter, filterBarActions, filterState, readOnly = fal
403
403
  setValue,
404
404
  filterBarActions,
405
405
  filterState,
406
- }) })) : (jsx(Filter, { activeLabel: activeFilterText, activeOptionsCount: valuesLength, asIcon: asIcon, className: className, dataTestId: `${filter.filterKey}-filter-button`, isActive: filterBarActions.appliedFilterKeys().includes(filter.filterKey), popoverProps: { placement: visualStyle === "list-item" ? "right-start" : "bottom-start" }, readOnly: readOnly, size: size, title: filter.title, visualStyle: visualStyle, withStickyHeader: true, children: filter.component({
406
+ }) })) : (jsx(Filter, { activeLabel: activeFilterText, activeOptionsCount: valuesLength, asIcon: asIcon, className: className, "data-testid": `${filter.filterKey}-filter-button`, isActive: filterBarActions.appliedFilterKeys().includes(filter.filterKey), popoverProps: { placement: visualStyle === "list-item" ? "right-start" : "bottom-start" }, readOnly: readOnly, size: size, title: filter.title, visualStyle: visualStyle, withStickyHeader: true, children: filter.component({
407
407
  filterDefinition: filter,
408
408
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
409
409
  value: values,
@@ -438,9 +438,9 @@ const FiltersRenderer = ({ filters, filterBarConfig, visualStyle, }) => {
438
438
  *
439
439
  * @returns {ReactElement | null} The rendered ResetFiltersButton component, or null if no filters have been applied.
440
440
  */
441
- const ResetFiltersButtonWithIcon = ({ resetFiltersToInitialState, dataTestId, className, }) => {
441
+ const ResetFiltersButtonWithIcon = ({ resetFiltersToInitialState, "data-testid": dataTestId, className, }) => {
442
442
  const [t] = useTranslation();
443
- return (jsxs(Button, { className: className, dataTestId: dataTestId ?? "reset-filters-button", onClick: () => {
443
+ return (jsxs(Button, { className: className, "data-testid": dataTestId ?? "reset-filters-button", onClick: () => {
444
444
  resetFiltersToInitialState();
445
445
  }, prefix: jsx(Icon, { name: "ArrowPath", size: "small", type: "solid" }), size: "small", variant: "ghost-neutral", children: [t("filtersBar.resetFilters"), jsx("span", { className: "sr-only", children: t("filtersBar.resetFiltersSR") })] }));
446
446
  };
@@ -519,7 +519,7 @@ const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked
519
519
  if (!item) {
520
520
  return null;
521
521
  }
522
- return (jsx("li", { ...listItemProps, children: item.type === "search-more" ? (jsxs("div", { className: "p-3 pt-2", children: [jsx("span", { className: "text-sm text-neutral-600", children: t("filter.more.options.if.you.search.title", { count: rowCount }) }), jsx("br", {}), jsx("span", { className: "text-sm italic text-neutral-400", children: t("filter.more.options.if.you.search.description") })] })) : type === "Radio" ? (jsx(RadioFilterItem, { dataTestId: "dynamic-filter-radio-" + item.key, itemCount: item.itemCount, label: item.label, selected: item.isChecked, value: item.key })) : (jsx(CheckBoxFilterItem, { checked: item.isChecked, dataTestId: "dynamic-filter-check-box-" + item.key, itemCount: item.itemCount, label: item.label, name: item.key, onChange: () => {
522
+ return (jsx("li", { ...listItemProps, children: item.type === "search-more" ? (jsxs("div", { className: "p-3 pt-2", children: [jsx("span", { className: "text-sm text-neutral-600", children: t("filter.more.options.if.you.search.title", { count: rowCount }) }), jsx("br", {}), jsx("span", { className: "text-sm italic text-neutral-400", children: t("filter.more.options.if.you.search.description") })] })) : type === "Radio" ? (jsx(RadioFilterItem, { "data-testid": "dynamic-filter-radio-" + item.key, itemCount: item.itemCount, label: item.label, selected: item.isChecked, value: item.key })) : (jsx(CheckBoxFilterItem, { checked: item.isChecked, "data-testid": "dynamic-filter-check-box-" + item.key, itemCount: item.itemCount, label: item.label, name: item.key, onChange: () => {
523
523
  onChange?.(item.index);
524
524
  } })) }, key));
525
525
  } }) }));
@@ -530,13 +530,13 @@ const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked
530
530
  *
531
531
  * @returns {ReactElement} - Returns the FilterHeader component.
532
532
  */
533
- const FilterHeader = ({ filterKey, title, searchEnabled, searchProps, filterHasChanges, resetIndividualFilterToInitialState, onResetFilter, loading = false, className, dataTestId, hideHeader = false, children, }) => {
533
+ const FilterHeader = ({ filterKey, title, searchEnabled, searchProps, filterHasChanges, resetIndividualFilterToInitialState, onResetFilter, loading = false, className, "data-testid": dataTestId, hideHeader = false, children, }) => {
534
534
  const [t] = useTranslation();
535
535
  const handleResetFilter = () => {
536
536
  resetIndividualFilterToInitialState(filterKey);
537
537
  onResetFilter?.();
538
538
  };
539
- return (jsx(FilterHeader$1, { className: className, dataTestId: dataTestId ?? `${filterKey}-filter-header`, loading: loading, onReset: handleResetFilter, resetLabel: t("filtersBar.resetFilter"), searchComponent: searchEnabled ? jsx(FilterHeaderSearchComponent, { filterKey: filterKey, searchProps: searchProps }) : undefined, showReset: filterHasChanges, title: hideHeader ? undefined : title, children: children }));
539
+ return (jsx(FilterHeader$1, { className: className, "data-testid": dataTestId ?? `${filterKey}-filter-header`, loading: loading, onReset: handleResetFilter, resetLabel: t("filtersBar.resetFilter"), searchComponent: searchEnabled ? jsx(FilterHeaderSearchComponent, { filterKey: filterKey, searchProps: searchProps }) : undefined, showReset: filterHasChanges, title: hideHeader ? undefined : title, children: children }));
540
540
  };
541
541
  /**
542
542
  * FilterHeaderSearchComponent renders a search input for the FilterHeader component.
@@ -673,7 +673,7 @@ const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, lo
673
673
  onChange: customSearch?.onChange ?? setSearchText,
674
674
  onClear: customSearch?.onClear ?? (() => setSearchText("")),
675
675
  count: undefinedCount ? filteredOptions.length - 1 : filteredOptions.length,
676
- }, children: options.length >= 2 ? (jsx(Button, { className: "place-self-start", dataTestId: "selectAllButton", disabled: hasSelectedAll, onClick: handleSelectAll, size: "small", variant: "ghost", children: t("filtersBar.selectAll") })) : null }), jsx(FilterResults, { ignoreUndefined: undefinedCount !== null, loading: loading, results: results, children: res => (jsx(DynamicFilterList, { checked: index => {
676
+ }, children: options.length >= 2 ? (jsx(Button, { className: "place-self-start", "data-testid": "selectAllButton", disabled: hasSelectedAll, onClick: handleSelectAll, size: "small", variant: "ghost", children: t("filtersBar.selectAll") })) : null }), jsx(FilterResults, { ignoreUndefined: undefinedCount !== null, loading: loading, results: results, children: res => (jsx(DynamicFilterList, { checked: index => {
677
677
  return filterDefinition.type === "valueNameArray"
678
678
  ? filterBarActions.objectArrayIncludesValue(filterDefinition.filterKey, res[index]?.key || "")
679
679
  : filterBarActions.arrayIncludesValue(filterDefinition.filterKey, res[index]?.key || "");
@@ -684,7 +684,7 @@ const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, lo
684
684
  }
685
685
  }, rowCount: undefinedCount ? res.length - 1 : res.length, showRequestMoreUseSearch: showRequestMoreUseSearch, type: "CheckBox" })) }), showUndefinedOptionWithCountAtBottom && undefinedCount ? (jsx("div", { className: "border-t border-neutral-200 py-1", children: jsx(CheckBoxFilterItem, { checked: filterDefinition.type === "valueNameArray"
686
686
  ? filterBarActions.objectArrayIncludesValue(filterDefinition.filterKey, results[undefinedCount.index]?.key || "")
687
- : filterBarActions.arrayIncludesValue(filterDefinition.filterKey, results[undefinedCount.index]?.key || ""), dataTestId: "dynamic-filter-check-box-undefined", itemCount: undefinedCount.count, label: results[undefinedCount.index]?.label, name: "dynamic-filter-check-box-undefined", onChange: () => {
687
+ : filterBarActions.arrayIncludesValue(filterDefinition.filterKey, results[undefinedCount.index]?.key || ""), "data-testid": "dynamic-filter-check-box-undefined", itemCount: undefinedCount.count, label: results[undefinedCount.index]?.label, name: "dynamic-filter-check-box-undefined", onChange: () => {
688
688
  const result = results[undefinedCount.index];
689
689
  if (result) {
690
690
  handleSetValue(result);
@@ -912,10 +912,10 @@ const useFiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters =
912
912
  *
913
913
  * @returns {ReactElement} - Returns the FiltersList component.
914
914
  */
915
- const GroupedFiltersList = ({ filterBarConfig, filtersGrouped, className, dataTestId = "grouped-filters-list", }) => {
915
+ const GroupedFiltersList = ({ filterBarConfig, filtersGrouped, className, "data-testid": dataTestId = "grouped-filters-list", }) => {
916
916
  return (jsx("div", { className: className, "data-testid": dataTestId, role: "menu", children: filtersGrouped.map((group, idx) => {
917
917
  const isLastGroup = idx === filtersGrouped.length - 1;
918
- return (jsxs("div", { className: "flex flex-col gap-1", children: [jsxs("div", { children: [filtersGrouped.length > 1 && (jsx(Text, { className: "h-7 px-3 py-2 text-neutral-400", dataTestId: `${group.key}-group-title`, size: "small", uppercase: true, weight: "bold", children: group.title })), jsx("ul", { "aria-labelledby": `${group.key}-group-title`, className: "grid", "data-testid": `${group.key}-group-list`, children: jsx(FiltersRenderer, { filterBarConfig: filterBarConfig, filters: group.filters, visualStyle: "list-item" }) })] }), isLastGroup ? null : jsx("div", { className: "h-[1px] w-full bg-neutral-200", role: "separator" })] }, group.key));
918
+ return (jsxs("div", { className: "flex flex-col gap-1", children: [jsxs("div", { children: [filtersGrouped.length > 1 && (jsx(Text, { className: "h-7 px-3 py-2 text-neutral-400", "data-testid": `${group.key}-group-title`, size: "small", uppercase: true, weight: "bold", children: group.title })), jsx("ul", { "aria-labelledby": `${group.key}-group-title`, className: "grid", "data-testid": `${group.key}-group-list`, children: jsx(FiltersRenderer, { filterBarConfig: filterBarConfig, filters: group.filters, visualStyle: "list-item" }) })] }), isLastGroup ? null : jsx("div", { className: "h-[1px] w-full bg-neutral-200", role: "separator" })] }, group.key));
919
919
  }) }));
920
920
  };
921
921
 
@@ -924,9 +924,9 @@ const GroupedFiltersList = ({ filterBarConfig, filtersGrouped, className, dataTe
924
924
  *
925
925
  * @returns {ReactElement | null} The rendered ResetFiltersButton component, or null if no filters have been applied.
926
926
  */
927
- const ResetFiltersButton = ({ resetFiltersToInitialState, dataTestId, className, }) => {
927
+ const ResetFiltersButton = ({ resetFiltersToInitialState, "data-testid": dataTestId, className, }) => {
928
928
  const [t] = useTranslation();
929
- return (jsxs(Button, { className: className, dataTestId: dataTestId ?? "reset-filters-button", onClick: () => {
929
+ return (jsxs(Button, { className: className, "data-testid": dataTestId ?? "reset-filters-button", onClick: () => {
930
930
  resetFiltersToInitialState();
931
931
  }, size: "small", variant: "ghost", children: [t("filtersBar.resetFilters"), jsx("span", { className: "sr-only", children: t("filtersBar.resetFiltersSR") })] }));
932
932
  };
@@ -936,7 +936,7 @@ const ResetFiltersButton = ({ resetFiltersToInitialState, dataTestId, className,
936
936
  */
937
937
  const FiltersMenuContent = ({ filterBarConfig, setShowCustomFilters, setSearchText, searchText, searchResultsGrouped, filtersToShowGrouped, removeCustomFieldsGroup, hasCustomFields, appliedCustomFields, showCustomFilters, filterBarDefinitionCount, }) => {
938
938
  const [t] = useTranslation();
939
- return (jsxs(Card, { className: "max-h-[min(600px,_calc(100dvh-32px))] w-[300px] overflow-y-hidden", dataTestId: "starred-filters-menu-popover", id: "starred-filters-menu-popover", tabIndex: 0, children: [jsxs("div", { className: "flex flex-col gap-1 p-1", children: [filterBarDefinitionCount > 5 && (jsx(Search, { autoFocus: true, dataTestId: "starred-filters-menu-search", fieldSize: "small", id: "search-filters-list", onChange: e => setSearchText(e.currentTarget.value), onClear: () => setSearchText(""), placeholder: t("filtersBar.searchFiltersPlaceholder"), value: searchText })), jsxs("div", { className: "flex h-7 items-center justify-between gap-1 pl-3", children: [jsx(Text, { className: "text-neutral-400", size: "small", children: jsx(FiltersAppliedCountLabel, { filterBarConfig: filterBarConfig }) }), filterBarConfig.appliedFilterKeys().length > 0 ? (jsx(ResetFiltersButton, { resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState })) : null] })] }), jsx(Separator, {}), jsxs(CardBody, { className: "gap-1 p-1", density: "none", disableGap: true, children: [jsx(GroupedFiltersList, { className: "flex flex-col gap-1", filterBarConfig: filterBarConfig, filtersGrouped: searchText
939
+ return (jsxs(Card, { className: "max-h-[min(600px,_calc(100dvh-32px))] w-[300px] overflow-y-hidden", "data-testid": "starred-filters-menu-popover", id: "starred-filters-menu-popover", tabIndex: 0, children: [jsxs("div", { className: "flex flex-col gap-1 p-1", children: [filterBarDefinitionCount > 5 && (jsx(Search, { autoFocus: true, "data-testid": "starred-filters-menu-search", fieldSize: "small", id: "search-filters-list", onChange: e => setSearchText(e.currentTarget.value), onClear: () => setSearchText(""), placeholder: t("filtersBar.searchFiltersPlaceholder"), value: searchText })), jsxs("div", { className: "flex h-7 items-center justify-between gap-1 pl-3", children: [jsx(Text, { className: "text-neutral-400", size: "small", children: jsx(FiltersAppliedCountLabel, { filterBarConfig: filterBarConfig }) }), filterBarConfig.appliedFilterKeys().length > 0 ? (jsx(ResetFiltersButton, { resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState })) : null] })] }), jsx(Separator, {}), jsxs(CardBody, { className: "gap-1 p-1", density: "none", disableGap: true, children: [jsx(GroupedFiltersList, { className: "flex flex-col gap-1", filterBarConfig: filterBarConfig, filtersGrouped: searchText
940
940
  ? searchResultsGrouped
941
941
  : showCustomFilters
942
942
  ? filtersToShowGrouped
@@ -1074,7 +1074,7 @@ const MultipleFilterTooltipLabel = ({ filterBarConfig, filterKeys, filters, }) =
1074
1074
  * @template TFilterBarDefinition - The type representing the filter bar definition.
1075
1075
  * @returns {ReactElement} - Returns the FilterMenu component.
1076
1076
  */
1077
- const FiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact = false, title, dataTestId = "filters-menu", className, buttonProps, allowShowFiltersDirectly = true, includeFilterKeys, }) => {
1077
+ const FiltersMenu = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact = false, title, "data-testid": dataTestId = "filters-menu", className, buttonProps, allowShowFiltersDirectly = true, includeFilterKeys, }) => {
1078
1078
  const [t] = useTranslation();
1079
1079
  const [showCustomFilters, setShowCustomFilters] = useState(false);
1080
1080
  const { isSm } = useViewportBreakpoints();
@@ -1315,7 +1315,7 @@ const RenderHierarchicalOption = ({ option, filterDefinition, filterBarActions,
1315
1315
  filterDefinition,
1316
1316
  logEvent,
1317
1317
  });
1318
- return (jsxs(Fragment$1, { children: [jsx("div", { className: cvaOptionItem({ indentationLevel: level > 6 ? 6 : level }), children: jsx(CheckBoxFilterItem, { checked: isChecked, className: "rounded-none", dataTestId: `hierarchical-filter-check-box-${option.key}`, indeterminate: isIndeterminate, itemCount: showCount ? option.count : undefined, label: option.label, name: `hierarchical-filter-check-box-${option.key}`, onChange: handleSelect }) }), option.children?.map(child => (jsx(RenderHierarchicalOption, { cascadeSelection: cascadeSelection, filterBarActions: filterBarActions, filterDefinition: filterDefinition, logEvent: logEvent, option: child, optionsMap: optionsMap, selectedValues: selectedValues, setValue: setValue, showCount: showCount }, child.key)))] }, option.key));
1318
+ return (jsxs(Fragment$1, { children: [jsx("div", { className: cvaOptionItem({ indentationLevel: level > 6 ? 6 : level }), children: jsx(CheckBoxFilterItem, { checked: isChecked, className: "rounded-none", "data-testid": `hierarchical-filter-check-box-${option.key}`, indeterminate: isIndeterminate, itemCount: showCount ? option.count : undefined, label: option.label, name: `hierarchical-filter-check-box-${option.key}`, onChange: handleSelect }) }), option.children?.map(child => (jsx(RenderHierarchicalOption, { cascadeSelection: cascadeSelection, filterBarActions: filterBarActions, filterDefinition: filterDefinition, logEvent: logEvent, option: child, optionsMap: optionsMap, selectedValues: selectedValues, setValue: setValue, showCount: showCount }, child.key)))] }, option.key));
1319
1319
  };
1320
1320
  const cvaOptionItem = cvaMerge(["m-1"], {
1321
1321
  variants: {
@@ -1381,7 +1381,7 @@ const HierarchicalCheckboxFilter = ({ filterDefinition, filterBarActions, option
1381
1381
  * The FilterBar component serves as a wrapper for managing filters.
1382
1382
  */
1383
1383
  const FilterBar = ({ hiddenFilters, className, filterBarDefinition, filterBarConfig, compact = true, allowShowFiltersDirectly = true, title, }) => {
1384
- return (jsx(FiltersMenu, { allowShowFiltersDirectly: allowShowFiltersDirectly, className: className, compact: compact, dataTestId: `${filterBarConfig.name}-filterbar`, filterBarConfig: filterBarConfig, filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters, title: title }));
1384
+ return (jsx(FiltersMenu, { allowShowFiltersDirectly: allowShowFiltersDirectly, className: className, compact: compact, "data-testid": `${filterBarConfig.name}-filterbar`, filterBarConfig: filterBarConfig, filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters, title: title }));
1385
1385
  };
1386
1386
 
1387
1387
  // Can't import jest.fn so must define a function that does nothing but mimics the jest.fn
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/filters-filter-bar",
3
- "version": "1.8.124",
3
+ "version": "1.8.127",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -12,17 +12,17 @@
12
12
  "tailwind-merge": "^2.0.0",
13
13
  "string-ts": "^2.0.0",
14
14
  "zod": "^3.23.8",
15
- "@trackunit/iris-app-api": "1.9.12",
16
- "@trackunit/react-core-hooks": "1.7.87",
17
- "@trackunit/react-filter-components": "1.7.118",
18
- "@trackunit/react-date-and-time-components": "1.10.118",
19
- "@trackunit/shared-utils": "1.9.74",
20
- "@trackunit/react-form-components": "1.8.115",
21
- "@trackunit/iris-app-runtime-core-api": "1.7.83",
22
- "@trackunit/geo-json-utils": "1.7.74",
23
- "@trackunit/i18n-library-translation": "1.7.91",
24
- "@trackunit/css-class-variance-utilities": "1.7.74",
25
- "@trackunit/react-components": "1.10.48",
15
+ "@trackunit/iris-app-api": "1.9.15",
16
+ "@trackunit/react-core-hooks": "1.7.90",
17
+ "@trackunit/react-filter-components": "1.7.121",
18
+ "@trackunit/react-date-and-time-components": "1.10.121",
19
+ "@trackunit/shared-utils": "1.9.77",
20
+ "@trackunit/react-form-components": "1.8.118",
21
+ "@trackunit/iris-app-runtime-core-api": "1.7.86",
22
+ "@trackunit/geo-json-utils": "1.7.77",
23
+ "@trackunit/i18n-library-translation": "1.7.94",
24
+ "@trackunit/css-class-variance-utilities": "1.7.77",
25
+ "@trackunit/react-components": "1.10.51",
26
26
  "@tanstack/react-router": "1.114.29"
27
27
  },
28
28
  "module": "./index.esm.js",
@@ -70,5 +70,5 @@ type FilterHeaderProps = FilterHeaderCommonProps & FilterHeaderWithSearchProps;
70
70
  *
71
71
  * @returns {ReactElement} - Returns the FilterHeader component.
72
72
  */
73
- export declare const FilterHeader: ({ filterKey, title, searchEnabled, searchProps, filterHasChanges, resetIndividualFilterToInitialState, onResetFilter, loading, className, dataTestId, hideHeader, children, }: FilterHeaderProps) => ReactElement;
73
+ export declare const FilterHeader: ({ filterKey, title, searchEnabled, searchProps, filterHasChanges, resetIndividualFilterToInitialState, onResetFilter, loading, className, "data-testid": dataTestId, hideHeader, children, }: FilterHeaderProps) => ReactElement;
74
74
  export {};
@@ -41,5 +41,5 @@ interface FiltersMenuProps<TFilterBarDefinition extends FilterBarDefinition> ext
41
41
  * @template TFilterBarDefinition - The type representing the filter bar definition.
42
42
  * @returns {ReactElement} - Returns the FilterMenu component.
43
43
  */
44
- export declare const FiltersMenu: <TFilterBarDefinition extends FilterBarDefinition>({ filterBarDefinition, filterBarConfig, hiddenFilters, compact, title, dataTestId, className, buttonProps, allowShowFiltersDirectly, includeFilterKeys, }: FiltersMenuProps<TFilterBarDefinition>) => ReactElement;
44
+ export declare const FiltersMenu: <TFilterBarDefinition extends FilterBarDefinition>({ filterBarDefinition, filterBarConfig, hiddenFilters, compact, title, "data-testid": dataTestId, className, buttonProps, allowShowFiltersDirectly, includeFilterKeys, }: FiltersMenuProps<TFilterBarDefinition>) => ReactElement;
45
45
  export {};
@@ -14,5 +14,5 @@ interface FiltersListProps extends CommonProps {
14
14
  *
15
15
  * @returns {ReactElement} - Returns the FiltersList component.
16
16
  */
17
- export declare const GroupedFiltersList: ({ filterBarConfig, filtersGrouped, className, dataTestId, }: FiltersListProps) => ReactElement;
17
+ export declare const GroupedFiltersList: ({ filterBarConfig, filtersGrouped, className, "data-testid": dataTestId, }: FiltersListProps) => ReactElement;
18
18
  export {};
@@ -11,5 +11,5 @@ interface ResetFiltersProps extends CommonProps {
11
11
  *
12
12
  * @returns {ReactElement | null} The rendered ResetFiltersButton component, or null if no filters have been applied.
13
13
  */
14
- export declare const ResetFiltersButton: ({ resetFiltersToInitialState, dataTestId, className, }: ResetFiltersProps) => ReactElement | null;
14
+ export declare const ResetFiltersButton: ({ resetFiltersToInitialState, "data-testid": dataTestId, className, }: ResetFiltersProps) => ReactElement | null;
15
15
  export {};
@@ -11,5 +11,5 @@ interface ResetFiltersProps extends CommonProps {
11
11
  *
12
12
  * @returns {ReactElement | null} The rendered ResetFiltersButton component, or null if no filters have been applied.
13
13
  */
14
- export declare const ResetFiltersButtonWithIcon: ({ resetFiltersToInitialState, dataTestId, className, }: ResetFiltersProps) => ReactElement | null;
14
+ export declare const ResetFiltersButtonWithIcon: ({ resetFiltersToInitialState, "data-testid": dataTestId, className, }: ResetFiltersProps) => ReactElement | null;
15
15
  export {};
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Aktueller Standort",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Benutzerdefinierte Felder",
118
118
  "filtersBar.groups.CUSTOMERS": "Kunden",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Einheitsstatus",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Verwaltung",
121
122
  "filtersBar.groups.METADATA": "Metadaten",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Bieżąca lokalizacja",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Pola niestandardowe",
118
118
  "filtersBar.groups.CUSTOMERS": "Klienci",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Zarządzanie",
121
122
  "filtersBar.groups.METADATA": "Metadane",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Localização atual",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Campos personalizados",
118
118
  "filtersBar.groups.CUSTOMERS": "Clientes",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Gestão",
121
122
  "filtersBar.groups.METADATA": "Metadados",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Текущее местоположение",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Настраиваемые поля",
118
118
  "filtersBar.groups.CUSTOMERS": "Клиенты",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Управление",
121
122
  "filtersBar.groups.METADATA": "Метаданные",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Locația actuală",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Câmpuri personalizate",
118
118
  "filtersBar.groups.CUSTOMERS": "Clienți",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Gestionare",
121
122
  "filtersBar.groups.METADATA": "Metadate",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Ubicación actual",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Campos personalizados",
118
118
  "filtersBar.groups.CUSTOMERS": "Clientes",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Gestión",
121
122
  "filtersBar.groups.METADATA": "Metadatos",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Nuvarande plats",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Anpassade fält",
118
118
  "filtersBar.groups.CUSTOMERS": "Kunder",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Hantering",
121
122
  "filtersBar.groups.METADATA": "Metadata",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "現在の所在地",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "カスタムフィールド",
118
118
  "filtersBar.groups.CUSTOMERS": "顧客",
119
+ "filtersBar.groups.DEVICE_HEALTH": "デバイスヘルス",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "管理",
121
122
  "filtersBar.groups.METADATA": "メタデータ",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "ตำแหน่งที่ตั้งปัจจุบัน",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "ฟิลด์แบบกำหนดเอง",
118
118
  "filtersBar.groups.CUSTOMERS": "ลูกค้า",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "การจัดการ",
121
122
  "filtersBar.groups.METADATA": "ข้อมูลจำเพาะ",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Aktuel placering",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Brugerdefinerede felter",
118
118
  "filtersBar.groups.CUSTOMERS": "Kunder",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Enhedstilstand",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Administration",
121
122
  "filtersBar.groups.METADATA": "Metadata",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Aktuální umístění",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Vlastní pole",
118
118
  "filtersBar.groups.CUSTOMERS": "Zákazníci",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Správa",
121
122
  "filtersBar.groups.METADATA": "Metadata",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Huidige locatie",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Aangepaste velden",
118
118
  "filtersBar.groups.CUSTOMERS": "Klanten",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Beheer",
121
122
  "filtersBar.groups.METADATA": "Meta-data",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Emplacement actuel",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Champs personnalisés",
118
118
  "filtersBar.groups.CUSTOMERS": "Clients",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Santé de l'appareil",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Gestion",
121
122
  "filtersBar.groups.METADATA": "Métadonnées",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Nykyinen sijainti",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Mukautetut kentät",
118
118
  "filtersBar.groups.CUSTOMERS": "Asiakkaat",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Hallinnointi",
121
122
  "filtersBar.groups.METADATA": "Metatiedot",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Aktuális tartózkodási hely",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Egyéni mezők",
118
118
  "filtersBar.groups.CUSTOMERS": "Ügyfelek",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Kezelés",
121
122
  "filtersBar.groups.METADATA": "Metaadatok",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Posizione attuale",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Campi personalizzati",
118
118
  "filtersBar.groups.CUSTOMERS": "Clienti",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Gestione",
121
122
  "filtersBar.groups.METADATA": "Metadati",
@@ -116,6 +116,7 @@ var translation = {
116
116
  "filtersBar.groups.CURRENT_LOCATION": "Nåværende posisjon",
117
117
  "filtersBar.groups.CUSTOM_FIELDS": "Egendefinerte felter",
118
118
  "filtersBar.groups.CUSTOMERS": "Kunder",
119
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
119
120
  "filtersBar.groups.INTEGRATION": "Integration",
120
121
  "filtersBar.groups.MANAGEMENT": "Administrasjon",
121
122
  "filtersBar.groups.METADATA": "Metadata",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Aktueller Standort",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Benutzerdefinierte Felder",
116
116
  "filtersBar.groups.CUSTOMERS": "Kunden",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Einheitsstatus",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Verwaltung",
119
120
  "filtersBar.groups.METADATA": "Metadaten",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Bieżąca lokalizacja",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Pola niestandardowe",
116
116
  "filtersBar.groups.CUSTOMERS": "Klienci",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Zarządzanie",
119
120
  "filtersBar.groups.METADATA": "Metadane",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Localização atual",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Campos personalizados",
116
116
  "filtersBar.groups.CUSTOMERS": "Clientes",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Gestão",
119
120
  "filtersBar.groups.METADATA": "Metadados",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Текущее местоположение",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Настраиваемые поля",
116
116
  "filtersBar.groups.CUSTOMERS": "Клиенты",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Управление",
119
120
  "filtersBar.groups.METADATA": "Метаданные",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Locația actuală",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Câmpuri personalizate",
116
116
  "filtersBar.groups.CUSTOMERS": "Clienți",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Gestionare",
119
120
  "filtersBar.groups.METADATA": "Metadate",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Ubicación actual",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Campos personalizados",
116
116
  "filtersBar.groups.CUSTOMERS": "Clientes",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Gestión",
119
120
  "filtersBar.groups.METADATA": "Metadatos",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Nuvarande plats",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Anpassade fält",
116
116
  "filtersBar.groups.CUSTOMERS": "Kunder",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Hantering",
119
120
  "filtersBar.groups.METADATA": "Metadata",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "現在の所在地",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "カスタムフィールド",
116
116
  "filtersBar.groups.CUSTOMERS": "顧客",
117
+ "filtersBar.groups.DEVICE_HEALTH": "デバイスヘルス",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "管理",
119
120
  "filtersBar.groups.METADATA": "メタデータ",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "ตำแหน่งที่ตั้งปัจจุบัน",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "ฟิลด์แบบกำหนดเอง",
116
116
  "filtersBar.groups.CUSTOMERS": "ลูกค้า",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "การจัดการ",
119
120
  "filtersBar.groups.METADATA": "ข้อมูลจำเพาะ",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Aktuel placering",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Brugerdefinerede felter",
116
116
  "filtersBar.groups.CUSTOMERS": "Kunder",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Enhedstilstand",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Administration",
119
120
  "filtersBar.groups.METADATA": "Metadata",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Aktuální umístění",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Vlastní pole",
116
116
  "filtersBar.groups.CUSTOMERS": "Zákazníci",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Správa",
119
120
  "filtersBar.groups.METADATA": "Metadata",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Huidige locatie",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Aangepaste velden",
116
116
  "filtersBar.groups.CUSTOMERS": "Klanten",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Beheer",
119
120
  "filtersBar.groups.METADATA": "Meta-data",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Emplacement actuel",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Champs personnalisés",
116
116
  "filtersBar.groups.CUSTOMERS": "Clients",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Santé de l'appareil",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Gestion",
119
120
  "filtersBar.groups.METADATA": "Métadonnées",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Nykyinen sijainti",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Mukautetut kentät",
116
116
  "filtersBar.groups.CUSTOMERS": "Asiakkaat",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Hallinnointi",
119
120
  "filtersBar.groups.METADATA": "Metatiedot",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Aktuális tartózkodási hely",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Egyéni mezők",
116
116
  "filtersBar.groups.CUSTOMERS": "Ügyfelek",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Kezelés",
119
120
  "filtersBar.groups.METADATA": "Metaadatok",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Posizione attuale",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Campi personalizzati",
116
116
  "filtersBar.groups.CUSTOMERS": "Clienti",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Gestione",
119
120
  "filtersBar.groups.METADATA": "Metadati",
@@ -114,6 +114,7 @@ var translation = {
114
114
  "filtersBar.groups.CURRENT_LOCATION": "Nåværende posisjon",
115
115
  "filtersBar.groups.CUSTOM_FIELDS": "Egendefinerte felter",
116
116
  "filtersBar.groups.CUSTOMERS": "Kunder",
117
+ "filtersBar.groups.DEVICE_HEALTH": "Device Health",
117
118
  "filtersBar.groups.INTEGRATION": "Integration",
118
119
  "filtersBar.groups.MANAGEMENT": "Administrasjon",
119
120
  "filtersBar.groups.METADATA": "Metadata",