@trackunit/filters-filter-bar 0.0.5 → 0.0.6
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 +22 -12
- package/index.esm.js +22 -12
- package/package.json +1 -1
- package/src/lib/types/FilterTypes.d.ts +4 -0
package/index.cjs.js
CHANGED
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var i18nLibraryTranslation = require('@trackunit/i18n-library-translation');
|
|
7
|
+
var sharedUtils = require('@trackunit/shared-utils');
|
|
7
8
|
var React = require('react');
|
|
8
9
|
var reactFilterComponents = require('@trackunit/react-filter-components');
|
|
9
|
-
var sharedUtils = require('@trackunit/shared-utils');
|
|
10
10
|
var reactComponents = require('@trackunit/react-components');
|
|
11
11
|
var reactRouterDom = require('react-router-dom');
|
|
12
12
|
var reactCoreHooks = require('@trackunit/react-core-hooks');
|
|
@@ -447,16 +447,15 @@ const FilterEvents = {
|
|
|
447
447
|
const StarredFiltersMenu = ({ filterBarDefinition, updateStarredFilters, starredFilterKeys, hiddenFilters = [], }) => {
|
|
448
448
|
const [t] = useTranslation();
|
|
449
449
|
const { logEvent } = reactCoreHooks.useAnalytics(FilterEvents);
|
|
450
|
-
const hideInStarredMenu =
|
|
451
|
-
.
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
})
|
|
459
|
-
.filter(sharedUtils.truthy);
|
|
450
|
+
const hideInStarredMenu = React.useMemo(() => {
|
|
451
|
+
return Object.values(filterBarDefinition)
|
|
452
|
+
.map(filter => {
|
|
453
|
+
const showInStarredMenu = filter.showInStarredMenu ? filter.showInStarredMenu() : true;
|
|
454
|
+
const showInFilterBar = filter.showInFilterBar ? filter.showInFilterBar() : true;
|
|
455
|
+
return !showInStarredMenu && !showInFilterBar ? filter.filterKey : null;
|
|
456
|
+
})
|
|
457
|
+
.filter(sharedUtils.truthy);
|
|
458
|
+
}, [filterBarDefinition]);
|
|
460
459
|
const { filtersGrouped } = useStarredGroupFilters(Object.values(filterBarDefinition), [
|
|
461
460
|
...hideInStarredMenu,
|
|
462
461
|
...hiddenFilters,
|
|
@@ -488,7 +487,18 @@ const StarredFiltersMenu = ({ filterBarDefinition, updateStarredFilters, starred
|
|
|
488
487
|
* @returns {JSX.Element} - Returns the StarredFilters component.
|
|
489
488
|
*/
|
|
490
489
|
const StarredFilters = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], }) => {
|
|
491
|
-
const
|
|
490
|
+
const hideInFilterBar = React.useMemo(() => {
|
|
491
|
+
return Object.values(filterBarDefinition)
|
|
492
|
+
.map(filter => {
|
|
493
|
+
const showInFilterBar = filter.showInFilterBar ? filter.showInFilterBar() : true;
|
|
494
|
+
return !showInFilterBar ? filter.filterKey : null;
|
|
495
|
+
})
|
|
496
|
+
.filter(sharedUtils.truthy);
|
|
497
|
+
}, [filterBarDefinition]);
|
|
498
|
+
const { filtersGrouped } = useStarredGroupFilters(Object.values(filterBarDefinition), [
|
|
499
|
+
...hideInFilterBar,
|
|
500
|
+
...hiddenFilters,
|
|
501
|
+
]);
|
|
492
502
|
return (jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-3", "data-testid": "starred-filters", children: [jsxRuntime.jsx(StarredFiltersMenu, { hiddenFilters: hiddenFilters, starredFilterKeys: filterBarConfig.starredFilterKeys, filterBarDefinition: filterBarDefinition, updateStarredFilters: filterBarConfig.updateStarredFilters }), filtersGrouped.map(group => group.filters
|
|
493
503
|
.filter(filter => !hiddenFilters.includes(filter.filterKey))
|
|
494
504
|
.map(filter => {
|
package/index.esm.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { registerTranslations, useNamespaceTranslation } from '@trackunit/i18n-library-translation';
|
|
3
|
+
import { titleCase, truthy, capitalize as capitalize$1, nonNullable } from '@trackunit/shared-utils';
|
|
3
4
|
import React, { useMemo, Fragment as Fragment$1, useRef, useState, useEffect, useCallback } from 'react';
|
|
4
5
|
import { Filter as Filter$1, FilterBody, RadioFilterItem, CheckBoxFilterItem, FilterHeader as FilterHeader$1, FilterFooter } from '@trackunit/react-filter-components';
|
|
5
|
-
import { titleCase, truthy, capitalize as capitalize$1, nonNullable } from '@trackunit/shared-utils';
|
|
6
6
|
import { Button, Popover, PopoverTrigger, IconButton, Icon, PopoverContent, MenuList, Text, StarButton, DayRangePicker } from '@trackunit/react-components';
|
|
7
7
|
import { useLocation, useNavigate } from 'react-router-dom';
|
|
8
8
|
import { useAnalytics, useTextSearch } from '@trackunit/react-core-hooks';
|
|
@@ -439,16 +439,15 @@ const FilterEvents = {
|
|
|
439
439
|
const StarredFiltersMenu = ({ filterBarDefinition, updateStarredFilters, starredFilterKeys, hiddenFilters = [], }) => {
|
|
440
440
|
const [t] = useTranslation();
|
|
441
441
|
const { logEvent } = useAnalytics(FilterEvents);
|
|
442
|
-
const hideInStarredMenu =
|
|
443
|
-
.
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
})
|
|
451
|
-
.filter(truthy);
|
|
442
|
+
const hideInStarredMenu = useMemo(() => {
|
|
443
|
+
return Object.values(filterBarDefinition)
|
|
444
|
+
.map(filter => {
|
|
445
|
+
const showInStarredMenu = filter.showInStarredMenu ? filter.showInStarredMenu() : true;
|
|
446
|
+
const showInFilterBar = filter.showInFilterBar ? filter.showInFilterBar() : true;
|
|
447
|
+
return !showInStarredMenu && !showInFilterBar ? filter.filterKey : null;
|
|
448
|
+
})
|
|
449
|
+
.filter(truthy);
|
|
450
|
+
}, [filterBarDefinition]);
|
|
452
451
|
const { filtersGrouped } = useStarredGroupFilters(Object.values(filterBarDefinition), [
|
|
453
452
|
...hideInStarredMenu,
|
|
454
453
|
...hiddenFilters,
|
|
@@ -480,7 +479,18 @@ const StarredFiltersMenu = ({ filterBarDefinition, updateStarredFilters, starred
|
|
|
480
479
|
* @returns {JSX.Element} - Returns the StarredFilters component.
|
|
481
480
|
*/
|
|
482
481
|
const StarredFilters = ({ filterBarDefinition, filterBarConfig, hiddenFilters = [], }) => {
|
|
483
|
-
const
|
|
482
|
+
const hideInFilterBar = useMemo(() => {
|
|
483
|
+
return Object.values(filterBarDefinition)
|
|
484
|
+
.map(filter => {
|
|
485
|
+
const showInFilterBar = filter.showInFilterBar ? filter.showInFilterBar() : true;
|
|
486
|
+
return !showInFilterBar ? filter.filterKey : null;
|
|
487
|
+
})
|
|
488
|
+
.filter(truthy);
|
|
489
|
+
}, [filterBarDefinition]);
|
|
490
|
+
const { filtersGrouped } = useStarredGroupFilters(Object.values(filterBarDefinition), [
|
|
491
|
+
...hideInFilterBar,
|
|
492
|
+
...hiddenFilters,
|
|
493
|
+
]);
|
|
484
494
|
return (jsxs("div", { className: "flex flex-wrap items-center gap-3", "data-testid": "starred-filters", children: [jsx(StarredFiltersMenu, { hiddenFilters: hiddenFilters, starredFilterKeys: filterBarConfig.starredFilterKeys, filterBarDefinition: filterBarDefinition, updateStarredFilters: filterBarConfig.updateStarredFilters }), filtersGrouped.map(group => group.filters
|
|
485
495
|
.filter(filter => !hiddenFilters.includes(filter.filterKey))
|
|
486
496
|
.map(filter => {
|
package/package.json
CHANGED
|
@@ -93,6 +93,10 @@ export interface AbstractFilterDefinition {
|
|
|
93
93
|
* A function that determines if the filter should be displayed in the starred filter menu.
|
|
94
94
|
*/
|
|
95
95
|
showInStarredMenu?: () => boolean;
|
|
96
|
+
/**
|
|
97
|
+
* A function that determines if the filter should be displayed in the filter bar.
|
|
98
|
+
*/
|
|
99
|
+
showInFilterBar?: () => boolean;
|
|
96
100
|
}
|
|
97
101
|
export interface BooleanFilterDefinition extends AbstractFilterDefinition {
|
|
98
102
|
type: "boolean";
|