@trackunit/filters-filter-bar 1.3.106 → 1.3.109

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
@@ -1047,7 +1047,7 @@ const StarredFiltersMenu = ({ filterBarDefinition, updateStarredFilters, starred
1047
1047
  * @template TFilterBarDefinition - The type representing the filter bar definition.
1048
1048
  * @returns {ReactElement} - Returns the StarredFilters component.
1049
1049
  */
1050
- const StarredFilters = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact, dataTestId, className, }) => {
1050
+ const StarredFilters = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact, dataTestId, className, title, }) => {
1051
1051
  const [t] = useTranslation();
1052
1052
  const { isLg } = reactComponents.useViewportBreakpoints();
1053
1053
  const isCompactMode = react.useMemo(() => compact ?? !isLg, [compact, isLg]);
@@ -1081,7 +1081,7 @@ const StarredFilters = ({ filterBarDefinition, filterBarConfig, hiddenFilters =
1081
1081
  }, [filterBarConfig, filtersGrouped]);
1082
1082
  return (jsxRuntime.jsxs("div", { className: tailwindMerge.twMerge("flex flex-wrap items-center gap-2", className), "data-testid": dataTestId, children: [jsxRuntime.jsx(reactComponents.Popover, { placement: "bottom-start", children: modalState => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(reactComponents.PopoverTrigger, { children: jsxRuntime.jsx("div", { "data-testid": "starred-filters-menu-trigger", children: jsxRuntime.jsxs(reactComponents.Tooltip, { disabled: !isCompactMode || modalState.isOpen, label: jsxRuntime.jsx(FilterButtonTooltipLabel, { filterBarConfig: filterBarConfig }), children: [jsxRuntime.jsx(reactComponents.Button, { className: "@xs:flex hidden", prefix: jsxRuntime.jsx(reactComponents.Icon, { color: filterBarConfig.appliedFilterKeys().length > 0 ? "primary" : undefined, name: "Funnel", size: "small" }), size: "small", suffix: isCompactMode && filterBarConfig.appliedFilterKeys().length > 0
1083
1083
  ? `(${filterBarConfig.appliedFilterKeys().length})`
1084
- : undefined, variant: "secondary", children: t("filtersBar.filtersHeading") }), jsxRuntime.jsx(reactComponents.IconButton, { className: "@xs:hidden", icon: jsxRuntime.jsx(reactComponents.Icon, { color: filterBarConfig.appliedFilterKeys().length > 0 ? "primary" : undefined, name: "Funnel", size: "small" }), size: "small", variant: "secondary" })] }) }) }), jsxRuntime.jsx(reactComponents.PopoverContent, { cellPadding: 100, children: jsxRuntime.jsxs(reactComponents.Card, { className: "max-h-[min(600px,_calc(100dvh-32px))] overflow-hidden sm:w-[350px]", children: [filtersToShow.length > 0 ? (jsxRuntime.jsx(reactComponents.CardBody, { density: "dense", children: jsxRuntime.jsx("div", { className: "flex h-full min-w-min flex-col gap-2", children: jsxRuntime.jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: filtersToShow }) }) })) : null, jsxRuntime.jsxs(reactComponents.CardFooter, { className: filtersToShow.length === 0 ? "border-none" : undefined, density: "dense", children: [jsxRuntime.jsx(StarredFiltersMenu, { className: "mr-auto", filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters, starredFilterKeys: filterBarConfig.starredFilterKeys, updateStarredFilters: filterBarConfig.updateStarredFilters }), !isCompactMode ? null : (jsxRuntime.jsx(ResetFiltersButton, { filtersHaveBeenApplied: filterBarConfig.appliedFilterKeys().length > 0, resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState }))] })] }) })] })) }), showDirectlyFilters.length > 0 ? (jsxRuntime.jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: showDirectlyFilters })) : null, !isCompactMode ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [appliedFilters.filter(filter => !filter.showDirectly).length > 0 ? (jsxRuntime.jsx("div", { className: "h-4 w-[1px] bg-slate-300" })) : null, jsxRuntime.jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: appliedFilters }), jsxRuntime.jsx(ResetFiltersButton, { filtersHaveBeenApplied: filterBarConfig.appliedFilterKeys().length > 0, resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState })] })) : null] }));
1084
+ : undefined, variant: "secondary", children: title ? title : t("filtersBar.filtersHeading") }), jsxRuntime.jsx(reactComponents.IconButton, { className: "@xs:hidden", icon: jsxRuntime.jsx(reactComponents.Icon, { color: filterBarConfig.appliedFilterKeys().length > 0 ? "primary" : undefined, name: "Funnel", size: "small" }), size: "small", variant: "secondary" })] }) }) }), jsxRuntime.jsx(reactComponents.PopoverContent, { cellPadding: 100, children: jsxRuntime.jsxs(reactComponents.Card, { className: "max-h-[min(600px,_calc(100dvh-32px))] overflow-hidden sm:w-[350px]", children: [filtersToShow.length > 0 ? (jsxRuntime.jsx(reactComponents.CardBody, { density: "dense", children: jsxRuntime.jsx("div", { className: "flex h-full min-w-min flex-col gap-2", children: jsxRuntime.jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: filtersToShow }) }) })) : null, jsxRuntime.jsxs(reactComponents.CardFooter, { className: filtersToShow.length === 0 ? "border-none" : undefined, density: "dense", children: [jsxRuntime.jsx(StarredFiltersMenu, { className: "mr-auto", filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters, starredFilterKeys: filterBarConfig.starredFilterKeys, updateStarredFilters: filterBarConfig.updateStarredFilters }), !isCompactMode ? null : (jsxRuntime.jsx(ResetFiltersButton, { filtersHaveBeenApplied: filterBarConfig.appliedFilterKeys().length > 0, resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState }))] })] }) })] })) }), showDirectlyFilters.length > 0 ? (jsxRuntime.jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: showDirectlyFilters })) : null, !isCompactMode ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [appliedFilters.filter(filter => !filter.showDirectly).length > 0 ? (jsxRuntime.jsx("div", { className: "h-4 w-[1px] bg-slate-300" })) : null, jsxRuntime.jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: appliedFilters }), jsxRuntime.jsx(ResetFiltersButton, { filtersHaveBeenApplied: filterBarConfig.appliedFilterKeys().length > 0, resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState })] })) : null] }));
1085
1085
  };
1086
1086
  const FiltersList = ({ filters, filterBarConfig }) => {
1087
1087
  return filters.length === 0
@@ -1109,8 +1109,8 @@ const FilterButtonTooltipLabel = ({ filterBarConfig, }) => {
1109
1109
  /**
1110
1110
  * The FilterBar component serves as a wrapper for managing filters.
1111
1111
  */
1112
- const FilterBar = ({ hiddenFilters, className, filterBarDefinition, filterBarConfig, compact, }) => {
1113
- return (jsxRuntime.jsx(StarredFilters, { className: className, compact: compact, dataTestId: `${filterBarConfig.name}-filterbar`, filterBarConfig: filterBarConfig, filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters }));
1112
+ const FilterBar = ({ hiddenFilters, className, filterBarDefinition, filterBarConfig, compact, title, }) => {
1113
+ return (jsxRuntime.jsx(StarredFilters, { className: className, compact: compact, dataTestId: `${filterBarConfig.name}-filterbar`, filterBarConfig: filterBarConfig, filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters, title: title }));
1114
1114
  };
1115
1115
 
1116
1116
  // Can't import jest.fn so must define a function that does nothing but mimics the jest.fn
package/index.esm.js CHANGED
@@ -1045,7 +1045,7 @@ const StarredFiltersMenu = ({ filterBarDefinition, updateStarredFilters, starred
1045
1045
  * @template TFilterBarDefinition - The type representing the filter bar definition.
1046
1046
  * @returns {ReactElement} - Returns the StarredFilters component.
1047
1047
  */
1048
- const StarredFilters = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact, dataTestId, className, }) => {
1048
+ const StarredFilters = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], compact, dataTestId, className, title, }) => {
1049
1049
  const [t] = useTranslation();
1050
1050
  const { isLg } = useViewportBreakpoints();
1051
1051
  const isCompactMode = useMemo(() => compact ?? !isLg, [compact, isLg]);
@@ -1079,7 +1079,7 @@ const StarredFilters = ({ filterBarDefinition, filterBarConfig, hiddenFilters =
1079
1079
  }, [filterBarConfig, filtersGrouped]);
1080
1080
  return (jsxs("div", { className: twMerge("flex flex-wrap items-center gap-2", className), "data-testid": dataTestId, children: [jsx(Popover, { placement: "bottom-start", children: modalState => (jsxs(Fragment, { children: [jsx(PopoverTrigger, { children: jsx("div", { "data-testid": "starred-filters-menu-trigger", children: jsxs(Tooltip, { disabled: !isCompactMode || modalState.isOpen, label: jsx(FilterButtonTooltipLabel, { filterBarConfig: filterBarConfig }), children: [jsx(Button, { className: "@xs:flex hidden", prefix: jsx(Icon, { color: filterBarConfig.appliedFilterKeys().length > 0 ? "primary" : undefined, name: "Funnel", size: "small" }), size: "small", suffix: isCompactMode && filterBarConfig.appliedFilterKeys().length > 0
1081
1081
  ? `(${filterBarConfig.appliedFilterKeys().length})`
1082
- : undefined, variant: "secondary", children: t("filtersBar.filtersHeading") }), jsx(IconButton, { className: "@xs:hidden", icon: jsx(Icon, { color: filterBarConfig.appliedFilterKeys().length > 0 ? "primary" : undefined, name: "Funnel", size: "small" }), size: "small", variant: "secondary" })] }) }) }), jsx(PopoverContent, { cellPadding: 100, children: jsxs(Card, { className: "max-h-[min(600px,_calc(100dvh-32px))] overflow-hidden sm:w-[350px]", children: [filtersToShow.length > 0 ? (jsx(CardBody, { density: "dense", children: jsx("div", { className: "flex h-full min-w-min flex-col gap-2", children: jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: filtersToShow }) }) })) : null, jsxs(CardFooter, { className: filtersToShow.length === 0 ? "border-none" : undefined, density: "dense", children: [jsx(StarredFiltersMenu, { className: "mr-auto", filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters, starredFilterKeys: filterBarConfig.starredFilterKeys, updateStarredFilters: filterBarConfig.updateStarredFilters }), !isCompactMode ? null : (jsx(ResetFiltersButton, { filtersHaveBeenApplied: filterBarConfig.appliedFilterKeys().length > 0, resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState }))] })] }) })] })) }), showDirectlyFilters.length > 0 ? (jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: showDirectlyFilters })) : null, !isCompactMode ? (jsxs(Fragment, { children: [appliedFilters.filter(filter => !filter.showDirectly).length > 0 ? (jsx("div", { className: "h-4 w-[1px] bg-slate-300" })) : null, jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: appliedFilters }), jsx(ResetFiltersButton, { filtersHaveBeenApplied: filterBarConfig.appliedFilterKeys().length > 0, resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState })] })) : null] }));
1082
+ : undefined, variant: "secondary", children: title ? title : t("filtersBar.filtersHeading") }), jsx(IconButton, { className: "@xs:hidden", icon: jsx(Icon, { color: filterBarConfig.appliedFilterKeys().length > 0 ? "primary" : undefined, name: "Funnel", size: "small" }), size: "small", variant: "secondary" })] }) }) }), jsx(PopoverContent, { cellPadding: 100, children: jsxs(Card, { className: "max-h-[min(600px,_calc(100dvh-32px))] overflow-hidden sm:w-[350px]", children: [filtersToShow.length > 0 ? (jsx(CardBody, { density: "dense", children: jsx("div", { className: "flex h-full min-w-min flex-col gap-2", children: jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: filtersToShow }) }) })) : null, jsxs(CardFooter, { className: filtersToShow.length === 0 ? "border-none" : undefined, density: "dense", children: [jsx(StarredFiltersMenu, { className: "mr-auto", filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters, starredFilterKeys: filterBarConfig.starredFilterKeys, updateStarredFilters: filterBarConfig.updateStarredFilters }), !isCompactMode ? null : (jsx(ResetFiltersButton, { filtersHaveBeenApplied: filterBarConfig.appliedFilterKeys().length > 0, resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState }))] })] }) })] })) }), showDirectlyFilters.length > 0 ? (jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: showDirectlyFilters })) : null, !isCompactMode ? (jsxs(Fragment, { children: [appliedFilters.filter(filter => !filter.showDirectly).length > 0 ? (jsx("div", { className: "h-4 w-[1px] bg-slate-300" })) : null, jsx(FiltersList, { filterBarConfig: filterBarConfig, filters: appliedFilters }), jsx(ResetFiltersButton, { filtersHaveBeenApplied: filterBarConfig.appliedFilterKeys().length > 0, resetFiltersToInitialState: filterBarConfig.resetFiltersToInitialState })] })) : null] }));
1083
1083
  };
1084
1084
  const FiltersList = ({ filters, filterBarConfig }) => {
1085
1085
  return filters.length === 0
@@ -1107,8 +1107,8 @@ const FilterButtonTooltipLabel = ({ filterBarConfig, }) => {
1107
1107
  /**
1108
1108
  * The FilterBar component serves as a wrapper for managing filters.
1109
1109
  */
1110
- const FilterBar = ({ hiddenFilters, className, filterBarDefinition, filterBarConfig, compact, }) => {
1111
- return (jsx(StarredFilters, { className: className, compact: compact, dataTestId: `${filterBarConfig.name}-filterbar`, filterBarConfig: filterBarConfig, filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters }));
1110
+ const FilterBar = ({ hiddenFilters, className, filterBarDefinition, filterBarConfig, compact, title, }) => {
1111
+ return (jsx(StarredFilters, { className: className, compact: compact, dataTestId: `${filterBarConfig.name}-filterbar`, filterBarConfig: filterBarConfig, filterBarDefinition: filterBarDefinition, hiddenFilters: hiddenFilters, title: title }));
1112
1112
  };
1113
1113
 
1114
1114
  // 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.3.106",
3
+ "version": "1.3.109",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -14,16 +14,16 @@
14
14
  "tailwind-merge": "^2.0.0",
15
15
  "string-ts": "^2.0.0",
16
16
  "zod": "3.22.4",
17
- "@trackunit/react-components": "1.4.78",
18
- "@trackunit/react-core-hooks": "1.3.67",
19
- "@trackunit/react-filter-components": "1.3.89",
20
- "@trackunit/react-date-and-time-components": "1.3.87",
21
- "@trackunit/shared-utils": "1.5.64",
22
- "@trackunit/react-form-components": "1.3.89",
23
- "@trackunit/react-core-contexts-api": "1.4.65",
24
- "@trackunit/geo-json-utils": "1.3.65",
25
- "@trackunit/i18n-library-translation": "1.3.69",
26
- "@trackunit/css-class-variance-utilities": "1.3.64"
17
+ "@trackunit/react-components": "1.4.81",
18
+ "@trackunit/react-core-hooks": "1.3.70",
19
+ "@trackunit/react-filter-components": "1.3.92",
20
+ "@trackunit/react-date-and-time-components": "1.3.90",
21
+ "@trackunit/shared-utils": "1.5.67",
22
+ "@trackunit/react-form-components": "1.3.92",
23
+ "@trackunit/react-core-contexts-api": "1.4.68",
24
+ "@trackunit/geo-json-utils": "1.3.68",
25
+ "@trackunit/i18n-library-translation": "1.3.72",
26
+ "@trackunit/css-class-variance-utilities": "1.3.67"
27
27
  },
28
28
  "module": "./index.esm.js",
29
29
  "main": "./index.cjs.js",
@@ -22,9 +22,13 @@ interface FilterBarProps<TFilterBarDefinition extends FilterBarDefinition> {
22
22
  * If true, the starred filters will be displayed in a compact mode
23
23
  */
24
24
  compact?: boolean;
25
+ /**
26
+ * The title of the filter bar default is "Filters" (translated)
27
+ */
28
+ title?: string;
25
29
  }
26
30
  /**
27
31
  * The FilterBar component serves as a wrapper for managing filters.
28
32
  */
29
- export declare const FilterBar: <TFilterBarDefinition extends FilterBarDefinition>({ hiddenFilters, className, filterBarDefinition, filterBarConfig, compact, }: FilterBarProps<TFilterBarDefinition>) => import("react/jsx-runtime").JSX.Element;
33
+ export declare const FilterBar: <TFilterBarDefinition extends FilterBarDefinition>({ hiddenFilters, className, filterBarDefinition, filterBarConfig, compact, title, }: FilterBarProps<TFilterBarDefinition>) => import("react/jsx-runtime").JSX.Element;
30
34
  export {};
@@ -17,6 +17,10 @@ interface StarredFiltersProps<TFilterBarDefinition extends FilterBarDefinition>
17
17
  * If true, the starred filters will be displayed in a compact mode
18
18
  */
19
19
  compact?: boolean;
20
+ /**
21
+ * The title of the filter bar default is "Filters" (translated)
22
+ */
23
+ title?: string;
20
24
  }
21
25
  /**
22
26
  * StarredFilters is a React component that displays a list of starred filters based on the provided filter bar configuration.
@@ -24,5 +28,5 @@ interface StarredFiltersProps<TFilterBarDefinition extends FilterBarDefinition>
24
28
  * @template TFilterBarDefinition - The type representing the filter bar definition.
25
29
  * @returns {ReactElement} - Returns the StarredFilters component.
26
30
  */
27
- export declare const StarredFilters: <TFilterBarDefinition extends FilterBarDefinition>({ filterBarDefinition, filterBarConfig, hiddenFilters, compact, dataTestId, className, }: StarredFiltersProps<TFilterBarDefinition>) => import("react/jsx-runtime").JSX.Element;
31
+ export declare const StarredFilters: <TFilterBarDefinition extends FilterBarDefinition>({ filterBarDefinition, filterBarConfig, hiddenFilters, compact, dataTestId, className, title, }: StarredFiltersProps<TFilterBarDefinition>) => import("react/jsx-runtime").JSX.Element;
28
32
  export {};
@@ -227,8 +227,8 @@ var translation = {
227
227
  "pages.machines.telematics.operationalStatus.digitalKeyMode.UNKNOWN": "不明",
228
228
  "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_ALL": "全員に対してロック解除済み",
229
229
  "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_ALL_FIXED": "全員に対してロック解除済み(キーパッドはIris上のまま)",
230
- "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_KEY": "キーに対してロック解除済み",
231
- "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_KEY_AND_PIN": "キーとピンに対してロック解除済み",
230
+ "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_KEY": "キー保持者に対してロック解除済み",
231
+ "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_KEY_AND_PIN": "キーとピン保持者に対してロック解除済み",
232
232
  "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_PIN": "ピンロック解除済み",
233
233
  "pages.machines.telematics.operationalStatus.digitalKeyMode.UNSUPPORTED": "未対応",
234
234
  "rental.status.available": "利用可能",
@@ -225,8 +225,8 @@ var translation = {
225
225
  "pages.machines.telematics.operationalStatus.digitalKeyMode.UNKNOWN": "不明",
226
226
  "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_ALL": "全員に対してロック解除済み",
227
227
  "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_ALL_FIXED": "全員に対してロック解除済み(キーパッドはIris上のまま)",
228
- "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_KEY": "キーに対してロック解除済み",
229
- "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_KEY_AND_PIN": "キーとピンに対してロック解除済み",
228
+ "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_KEY": "キー保持者に対してロック解除済み",
229
+ "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_KEY_AND_PIN": "キーとピン保持者に対してロック解除済み",
230
230
  "pages.machines.telematics.operationalStatus.digitalKeyMode.UNLOCKED_FOR_PIN": "ピンロック解除済み",
231
231
  "pages.machines.telematics.operationalStatus.digitalKeyMode.UNSUPPORTED": "未対応",
232
232
  "rental.status.available": "利用可能",