@trackunit/filters-filter-bar 2.3.7 → 2.3.10-alpha-90b6c9b97dd.0
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 +24 -45
- package/index.esm.js +25 -46
- package/package.json +12 -12
- package/src/lib/components/DefaultCheckboxFilter.d.ts +1 -1
- package/src/lib/components/DefaultFilterTypes.d.ts +0 -6
- package/src/lib/components/DynamicFilterList.d.ts +1 -6
- package/src/lib/types/FilterTypes.d.ts +1 -1
- package/migrations/entry.js.map +0 -1
package/index.cjs.js
CHANGED
|
@@ -7,11 +7,11 @@ var reactFilterComponents = require('@trackunit/react-filter-components');
|
|
|
7
7
|
var reactComponents = require('@trackunit/react-components');
|
|
8
8
|
var reactCoreHooks = require('@trackunit/react-core-hooks');
|
|
9
9
|
var stringTs = require('string-ts');
|
|
10
|
-
var tailwindMerge = require('tailwind-merge');
|
|
11
10
|
var irisAppRuntimeCoreApi = require('@trackunit/iris-app-runtime-core-api');
|
|
12
11
|
var reactFormComponents = require('@trackunit/react-form-components');
|
|
13
12
|
var reactDateAndTimeComponents = require('@trackunit/react-date-and-time-components');
|
|
14
13
|
var sharedUtils = require('@trackunit/shared-utils');
|
|
14
|
+
var tailwindMerge = require('tailwind-merge');
|
|
15
15
|
var irisAppApi = require('@trackunit/iris-app-api');
|
|
16
16
|
var cssClassVarianceUtilities = require('@trackunit/css-class-variance-utilities');
|
|
17
17
|
var dequal = require('dequal');
|
|
@@ -139,7 +139,6 @@ var defaultTranslations = {
|
|
|
139
139
|
"filtersBar.groups.INTEGRATION": "Integration",
|
|
140
140
|
"filtersBar.groups.MANAGEMENT": "Management",
|
|
141
141
|
"filtersBar.groups.METADATA": "Metadata",
|
|
142
|
-
"filtersBar.groups.METRICS": "Metrics",
|
|
143
142
|
"filtersBar.groups.MY_NETWORK": "My Network",
|
|
144
143
|
"filtersBar.groups.OPERATOR": "Operator",
|
|
145
144
|
"filtersBar.groups.OTHER": "Others",
|
|
@@ -491,33 +490,19 @@ const toggleFilterValue = (value) => {
|
|
|
491
490
|
};
|
|
492
491
|
|
|
493
492
|
const ITEM_HEIGHT = 28; //measured in DevTools on 03/10/2025
|
|
494
|
-
/**
|
|
495
|
-
* Filter rows are single-line checkboxes, so the skeleton drops the thumbnail and description slots
|
|
496
|
-
* it renders by default. The first page is already announced by `FilterHeader`/`FilterResults`, which
|
|
497
|
-
* is why only the pages fetched while scrolling get placeholder rows.
|
|
498
|
-
*/
|
|
499
|
-
const LOADING_INDICATOR = {
|
|
500
|
-
type: "skeleton",
|
|
501
|
-
hasThumbnail: false,
|
|
502
|
-
hasDescription: false,
|
|
503
|
-
initialLoadingCount: 0,
|
|
504
|
-
scrollLoadingCount: 3,
|
|
505
|
-
};
|
|
506
493
|
/**
|
|
507
494
|
* DynamicFilterList is a React component that displays a list of dynamic filters with options like CheckBoxes or Radio buttons.
|
|
508
495
|
*
|
|
509
496
|
* @returns {ReactElement} - Returns the DynamicFilterList component.
|
|
510
497
|
*/
|
|
511
|
-
const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked, count, showRequestMoreUseSearch = false,
|
|
498
|
+
const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked, count, showRequestMoreUseSearch = false, type = undefined, className, }) => {
|
|
512
499
|
const [t] = useTranslation();
|
|
513
|
-
const
|
|
514
|
-
const updatedRowCount = react.useMemo(() => (
|
|
500
|
+
const parentRef = react.useRef(null);
|
|
501
|
+
const updatedRowCount = react.useMemo(() => (showRequestMoreUseSearch ? rowCount + 1 : rowCount), [rowCount, showRequestMoreUseSearch]);
|
|
515
502
|
const list = reactComponents.useList({
|
|
516
503
|
count: updatedRowCount,
|
|
517
|
-
pagination,
|
|
518
|
-
loadingIndicator: LOADING_INDICATOR,
|
|
519
504
|
getItem: index => {
|
|
520
|
-
if (
|
|
505
|
+
if (showRequestMoreUseSearch && index === rowCount) {
|
|
521
506
|
return { type: "search-more" };
|
|
522
507
|
}
|
|
523
508
|
return {
|
|
@@ -532,7 +517,7 @@ const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked
|
|
|
532
517
|
separator: "none",
|
|
533
518
|
estimateItemSize: () => ITEM_HEIGHT,
|
|
534
519
|
});
|
|
535
|
-
return (jsxRuntime.jsx(reactFilterComponents.FilterBody, {
|
|
520
|
+
return (jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, ref: parentRef, children: jsxRuntime.jsx(reactComponents.List, { className: className, ...list, children: ({ key, listItemProps, item }) => {
|
|
536
521
|
if (!item) {
|
|
537
522
|
return null;
|
|
538
523
|
}
|
|
@@ -595,7 +580,7 @@ const EmptyResults = ({ loading = false }) => {
|
|
|
595
580
|
*
|
|
596
581
|
* @param {DefaultFilterProps<string[]>} props - The properties required for the `DefaultCheckboxFilter` component.
|
|
597
582
|
*/
|
|
598
|
-
const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, loading, setValue, filterName, customSearch, showRequestMoreUseSearch = false, showUndefinedOptionWithCountAtBottom = true,
|
|
583
|
+
const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, loading, setValue, filterName, customSearch, showRequestMoreUseSearch = false, showUndefinedOptionWithCountAtBottom = true, }) => {
|
|
599
584
|
const { logEvent } = reactCoreHooks.useAnalytics(FilterEvents);
|
|
600
585
|
const { t } = useTranslation();
|
|
601
586
|
const handleSetValue = (value) => {
|
|
@@ -656,12 +641,6 @@ const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, lo
|
|
|
656
641
|
}
|
|
657
642
|
return null;
|
|
658
643
|
}, [results]);
|
|
659
|
-
/**
|
|
660
|
-
* Selects the options loaded so far, which for a paginated facet is the pages fetched up to now
|
|
661
|
-
* rather than every value the server could return. That is what this button has always done — it
|
|
662
|
-
* used to act on a single capped page — so scrolling in another page re-enables it for the
|
|
663
|
-
* options that just arrived.
|
|
664
|
-
*/
|
|
665
644
|
const hasSelectedAll = react.useMemo(() => {
|
|
666
645
|
const values = filterBarActions.getValuesByKey(filterDefinition.filterKey);
|
|
667
646
|
if (Array.isArray(values)) {
|
|
@@ -687,23 +666,23 @@ const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, lo
|
|
|
687
666
|
onChange: customSearch?.onChange ?? setSearchText,
|
|
688
667
|
onClear: customSearch?.onClear ?? (() => setSearchText("")),
|
|
689
668
|
count: undefinedCount ? filteredOptions.length - 1 : filteredOptions.length,
|
|
690
|
-
}, 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.
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
669
|
+
}, 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 => {
|
|
670
|
+
return filterDefinition.type === "valueNameArray"
|
|
671
|
+
? filterBarActions.objectArrayIncludesValue(filterDefinition.filterKey, res[index]?.key || "")
|
|
672
|
+
: filterBarActions.arrayIncludesValue(filterDefinition.filterKey, res[index]?.key || "");
|
|
673
|
+
}, className: "mb-1", count: index => res[index]?.count, keyMapper: index => res[index]?.key || "", labelMapper: index => res[index]?.label || "", onChange: index => {
|
|
674
|
+
const result = res[index];
|
|
675
|
+
if (result) {
|
|
676
|
+
handleSetValue(result);
|
|
677
|
+
}
|
|
678
|
+
}, 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"
|
|
679
|
+
? filterBarActions.objectArrayIncludesValue(filterDefinition.filterKey, results[undefinedCount.index]?.key || "")
|
|
680
|
+
: 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: () => {
|
|
681
|
+
const result = results[undefinedCount.index];
|
|
682
|
+
if (result) {
|
|
683
|
+
handleSetValue(result);
|
|
684
|
+
}
|
|
685
|
+
} }, "dynamic-filter-check-box-undefined") })) : null] }));
|
|
707
686
|
};
|
|
708
687
|
|
|
709
688
|
const formatToJustDate = (date) => {
|
package/index.esm.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { registerTranslations, useNamespaceTranslation } from '@trackunit/i18n-library-translation';
|
|
3
|
-
import { useMemo, useState, useEffect, useCallback, Fragment as Fragment$1
|
|
3
|
+
import { useMemo, useRef, useState, useEffect, useCallback, Fragment as Fragment$1 } from 'react';
|
|
4
4
|
import { Filter, FilterBody, RadioFilterItem, CheckBoxFilterItem, FilterHeader as FilterHeader$1, FilterFooter } from '@trackunit/react-filter-components';
|
|
5
5
|
import { Button, Icon, useList, List, Text, useTextSearch, Card, CardBody, useViewportBreakpoints, Popover, PopoverTrigger, Tooltip, Badge, PopoverContent, IconButton, MenuList, useCustomEncoding, useSearchParamSync, useStorageKey, storageSerializer, useWatch } from '@trackunit/react-components';
|
|
6
6
|
import { useAnalytics, useCurrentUser } from '@trackunit/react-core-hooks';
|
|
7
7
|
import { capitalize } from 'string-ts';
|
|
8
|
-
import { twMerge } from 'tailwind-merge';
|
|
9
8
|
import { createEvent } from '@trackunit/iris-app-runtime-core-api';
|
|
10
9
|
import { Search, NumberField, RadioGroup } from '@trackunit/react-form-components';
|
|
11
10
|
import { DayRangePicker } from '@trackunit/react-date-and-time-components';
|
|
12
11
|
import { nonNullable, capitalize as capitalize$1, objectValues, truthy, objectKeys } from '@trackunit/shared-utils';
|
|
12
|
+
import { twMerge } from 'tailwind-merge';
|
|
13
13
|
import { customFieldFilterKey } from '@trackunit/iris-app-api';
|
|
14
14
|
import { cvaMerge } from '@trackunit/css-class-variance-utilities';
|
|
15
15
|
import { dequal } from 'dequal';
|
|
@@ -137,7 +137,6 @@ var defaultTranslations = {
|
|
|
137
137
|
"filtersBar.groups.INTEGRATION": "Integration",
|
|
138
138
|
"filtersBar.groups.MANAGEMENT": "Management",
|
|
139
139
|
"filtersBar.groups.METADATA": "Metadata",
|
|
140
|
-
"filtersBar.groups.METRICS": "Metrics",
|
|
141
140
|
"filtersBar.groups.MY_NETWORK": "My Network",
|
|
142
141
|
"filtersBar.groups.OPERATOR": "Operator",
|
|
143
142
|
"filtersBar.groups.OTHER": "Others",
|
|
@@ -489,33 +488,19 @@ const toggleFilterValue = (value) => {
|
|
|
489
488
|
};
|
|
490
489
|
|
|
491
490
|
const ITEM_HEIGHT = 28; //measured in DevTools on 03/10/2025
|
|
492
|
-
/**
|
|
493
|
-
* Filter rows are single-line checkboxes, so the skeleton drops the thumbnail and description slots
|
|
494
|
-
* it renders by default. The first page is already announced by `FilterHeader`/`FilterResults`, which
|
|
495
|
-
* is why only the pages fetched while scrolling get placeholder rows.
|
|
496
|
-
*/
|
|
497
|
-
const LOADING_INDICATOR = {
|
|
498
|
-
type: "skeleton",
|
|
499
|
-
hasThumbnail: false,
|
|
500
|
-
hasDescription: false,
|
|
501
|
-
initialLoadingCount: 0,
|
|
502
|
-
scrollLoadingCount: 3,
|
|
503
|
-
};
|
|
504
491
|
/**
|
|
505
492
|
* DynamicFilterList is a React component that displays a list of dynamic filters with options like CheckBoxes or Radio buttons.
|
|
506
493
|
*
|
|
507
494
|
* @returns {ReactElement} - Returns the DynamicFilterList component.
|
|
508
495
|
*/
|
|
509
|
-
const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked, count, showRequestMoreUseSearch = false,
|
|
496
|
+
const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked, count, showRequestMoreUseSearch = false, type = undefined, className, }) => {
|
|
510
497
|
const [t] = useTranslation();
|
|
511
|
-
const
|
|
512
|
-
const updatedRowCount = useMemo(() => (
|
|
498
|
+
const parentRef = useRef(null);
|
|
499
|
+
const updatedRowCount = useMemo(() => (showRequestMoreUseSearch ? rowCount + 1 : rowCount), [rowCount, showRequestMoreUseSearch]);
|
|
513
500
|
const list = useList({
|
|
514
501
|
count: updatedRowCount,
|
|
515
|
-
pagination,
|
|
516
|
-
loadingIndicator: LOADING_INDICATOR,
|
|
517
502
|
getItem: index => {
|
|
518
|
-
if (
|
|
503
|
+
if (showRequestMoreUseSearch && index === rowCount) {
|
|
519
504
|
return { type: "search-more" };
|
|
520
505
|
}
|
|
521
506
|
return {
|
|
@@ -530,7 +515,7 @@ const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked
|
|
|
530
515
|
separator: "none",
|
|
531
516
|
estimateItemSize: () => ITEM_HEIGHT,
|
|
532
517
|
});
|
|
533
|
-
return (jsx(FilterBody, {
|
|
518
|
+
return (jsx(FilterBody, { limitSize: true, ref: parentRef, children: jsx(List, { className: className, ...list, children: ({ key, listItemProps, item }) => {
|
|
534
519
|
if (!item) {
|
|
535
520
|
return null;
|
|
536
521
|
}
|
|
@@ -593,7 +578,7 @@ const EmptyResults = ({ loading = false }) => {
|
|
|
593
578
|
*
|
|
594
579
|
* @param {DefaultFilterProps<string[]>} props - The properties required for the `DefaultCheckboxFilter` component.
|
|
595
580
|
*/
|
|
596
|
-
const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, loading, setValue, filterName, customSearch, showRequestMoreUseSearch = false, showUndefinedOptionWithCountAtBottom = true,
|
|
581
|
+
const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, loading, setValue, filterName, customSearch, showRequestMoreUseSearch = false, showUndefinedOptionWithCountAtBottom = true, }) => {
|
|
597
582
|
const { logEvent } = useAnalytics(FilterEvents);
|
|
598
583
|
const { t } = useTranslation();
|
|
599
584
|
const handleSetValue = (value) => {
|
|
@@ -654,12 +639,6 @@ const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, lo
|
|
|
654
639
|
}
|
|
655
640
|
return null;
|
|
656
641
|
}, [results]);
|
|
657
|
-
/**
|
|
658
|
-
* Selects the options loaded so far, which for a paginated facet is the pages fetched up to now
|
|
659
|
-
* rather than every value the server could return. That is what this button has always done — it
|
|
660
|
-
* used to act on a single capped page — so scrolling in another page re-enables it for the
|
|
661
|
-
* options that just arrived.
|
|
662
|
-
*/
|
|
663
642
|
const hasSelectedAll = useMemo(() => {
|
|
664
643
|
const values = filterBarActions.getValuesByKey(filterDefinition.filterKey);
|
|
665
644
|
if (Array.isArray(values)) {
|
|
@@ -685,23 +664,23 @@ const DefaultCheckboxFilter = ({ filterDefinition, filterBarActions, options, lo
|
|
|
685
664
|
onChange: customSearch?.onChange ?? setSearchText,
|
|
686
665
|
onClear: customSearch?.onClear ?? (() => setSearchText("")),
|
|
687
666
|
count: undefinedCount ? filteredOptions.length - 1 : filteredOptions.length,
|
|
688
|
-
}, 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 }),
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
667
|
+
}, 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 => {
|
|
668
|
+
return filterDefinition.type === "valueNameArray"
|
|
669
|
+
? filterBarActions.objectArrayIncludesValue(filterDefinition.filterKey, res[index]?.key || "")
|
|
670
|
+
: filterBarActions.arrayIncludesValue(filterDefinition.filterKey, res[index]?.key || "");
|
|
671
|
+
}, className: "mb-1", count: index => res[index]?.count, keyMapper: index => res[index]?.key || "", labelMapper: index => res[index]?.label || "", onChange: index => {
|
|
672
|
+
const result = res[index];
|
|
673
|
+
if (result) {
|
|
674
|
+
handleSetValue(result);
|
|
675
|
+
}
|
|
676
|
+
}, 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"
|
|
677
|
+
? filterBarActions.objectArrayIncludesValue(filterDefinition.filterKey, results[undefinedCount.index]?.key || "")
|
|
678
|
+
: 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: () => {
|
|
679
|
+
const result = results[undefinedCount.index];
|
|
680
|
+
if (result) {
|
|
681
|
+
handleSetValue(result);
|
|
682
|
+
}
|
|
683
|
+
} }, "dynamic-filter-check-box-undefined") })) : null] }));
|
|
705
684
|
};
|
|
706
685
|
|
|
707
686
|
const formatToJustDate = (date) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/filters-filter-bar",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.10-alpha-90b6c9b97dd.0",
|
|
4
4
|
"repository": "https://github.com/Trackunit/manager",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"engines": {
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
"tailwind-merge": "^2.0.0",
|
|
12
12
|
"string-ts": "^2.0.0",
|
|
13
13
|
"zod": "^3.25.76",
|
|
14
|
-
"@trackunit/iris-app-api": "2.2.
|
|
15
|
-
"@trackunit/react-core-hooks": "1.19.
|
|
16
|
-
"@trackunit/react-filter-components": "2.3.
|
|
17
|
-
"@trackunit/react-date-and-time-components": "2.3.
|
|
18
|
-
"@trackunit/shared-utils": "1.15.
|
|
19
|
-
"@trackunit/react-form-components": "2.3.
|
|
20
|
-
"@trackunit/iris-app-runtime-core-api": "1.16.
|
|
21
|
-
"@trackunit/geo-json-utils": "1.14.
|
|
22
|
-
"@trackunit/i18n-library-translation": "2.2.
|
|
23
|
-
"@trackunit/css-class-variance-utilities": "1.13.
|
|
24
|
-
"@trackunit/react-components": "2.4.0"
|
|
14
|
+
"@trackunit/iris-app-api": "2.2.7-alpha-90b6c9b97dd.0",
|
|
15
|
+
"@trackunit/react-core-hooks": "1.19.7-alpha-90b6c9b97dd.0",
|
|
16
|
+
"@trackunit/react-filter-components": "2.3.9-alpha-90b6c9b97dd.0",
|
|
17
|
+
"@trackunit/react-date-and-time-components": "2.3.9-alpha-90b6c9b97dd.0",
|
|
18
|
+
"@trackunit/shared-utils": "1.15.95-alpha-90b6c9b97dd.0",
|
|
19
|
+
"@trackunit/react-form-components": "2.3.8-alpha-90b6c9b97dd.0",
|
|
20
|
+
"@trackunit/iris-app-runtime-core-api": "1.16.101-alpha-90b6c9b97dd.0",
|
|
21
|
+
"@trackunit/geo-json-utils": "1.14.95-alpha-90b6c9b97dd.0",
|
|
22
|
+
"@trackunit/i18n-library-translation": "2.2.7-alpha-90b6c9b97dd.0",
|
|
23
|
+
"@trackunit/css-class-variance-utilities": "1.13.92-alpha-90b6c9b97dd.0",
|
|
24
|
+
"@trackunit/react-components": "2.4.2-alpha-90b6c9b97dd.0"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"@apollo/client": "^3.13.8",
|
|
@@ -7,5 +7,5 @@ type FilterDefinitionValue = Array<string> | Array<ValueName>;
|
|
|
7
7
|
*
|
|
8
8
|
* @param {DefaultFilterProps<string[]>} props - The properties required for the `DefaultCheckboxFilter` component.
|
|
9
9
|
*/
|
|
10
|
-
export declare const DefaultCheckboxFilter: <TFilterValue extends FilterDefinitionValue>({ filterDefinition, filterBarActions, options, loading, setValue, filterName, customSearch, showRequestMoreUseSearch, showUndefinedOptionWithCountAtBottom,
|
|
10
|
+
export declare const DefaultCheckboxFilter: <TFilterValue extends FilterDefinitionValue>({ filterDefinition, filterBarActions, options, loading, setValue, filterName, customSearch, showRequestMoreUseSearch, showUndefinedOptionWithCountAtBottom, }: DefaultFilterProps<TFilterValue>) => ReactElement;
|
|
11
11
|
export {};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { RelayPagination } from "@trackunit/react-components";
|
|
2
1
|
import { ReactNode } from "react";
|
|
3
2
|
import { FilterName, FilterViewProps } from "../types/FilterTypes";
|
|
4
3
|
export interface FilterOption {
|
|
@@ -50,11 +49,6 @@ export interface DefaultFilterProps<TReturnType> extends FilterViewProps<TReturn
|
|
|
50
49
|
* A flag indicating whether the "Use search to refine results." option should be displayed.
|
|
51
50
|
*/
|
|
52
51
|
showRequestMoreUseSearch?: boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Relay-style pagination for server-side infinite scroll in the filter list.
|
|
55
|
-
* When set, additional pages load as the user scrolls (via `useList` / `List`).
|
|
56
|
-
*/
|
|
57
|
-
pagination?: RelayPagination;
|
|
58
52
|
/**
|
|
59
53
|
* A flag indicating whether the key "UNDEFINED" should be moved to bottom of the list always visible. Default is true
|
|
60
54
|
*/
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { RelayPagination } from "@trackunit/react-components";
|
|
2
1
|
import { ReactElement } from "react";
|
|
3
2
|
interface DynamicFilterListProps {
|
|
4
3
|
/**
|
|
@@ -47,10 +46,6 @@ interface DynamicFilterListProps {
|
|
|
47
46
|
* A flag indicating whether the "Use search to refine results." option should be displayed.
|
|
48
47
|
*/
|
|
49
48
|
showRequestMoreUseSearch?: boolean;
|
|
50
|
-
/**
|
|
51
|
-
* Relay-style pagination for server-side infinite scroll.
|
|
52
|
-
*/
|
|
53
|
-
pagination?: RelayPagination;
|
|
54
49
|
/**
|
|
55
50
|
* A class name to apply to the filter list.
|
|
56
51
|
*/
|
|
@@ -61,5 +56,5 @@ interface DynamicFilterListProps {
|
|
|
61
56
|
*
|
|
62
57
|
* @returns {ReactElement} - Returns the DynamicFilterList component.
|
|
63
58
|
*/
|
|
64
|
-
export declare const DynamicFilterList: ({ rowCount, keyMapper, labelMapper, onChange, checked, count, showRequestMoreUseSearch,
|
|
59
|
+
export declare const DynamicFilterList: ({ rowCount, keyMapper, labelMapper, onChange, checked, count, showRequestMoreUseSearch, type, className, }: DynamicFilterListProps) => ReactElement;
|
|
65
60
|
export {};
|
|
@@ -47,7 +47,7 @@ export type FilterMapGetter = {
|
|
|
47
47
|
export type FilterName = string;
|
|
48
48
|
export type FilterBarDefinition = Record<FilterName, FilterDefinition>;
|
|
49
49
|
export type FilterTranslation = string;
|
|
50
|
-
export type FilterGroup = "METADATA" | "STATUS" | "SITES" | "CUSTOMERS" | "OTHER" | "CUSTOM_FIELDS" | "MY_NETWORK" | "DEVICE_HEALTH" | "DEVICE" | "ASSET" | "OPERATOR" | "SERVICE" | "RENTAL" | "INTEGRATION" | "CURRENT_LOCATION" | "MANAGEMENT"
|
|
50
|
+
export type FilterGroup = "METADATA" | "STATUS" | "SITES" | "CUSTOMERS" | "OTHER" | "CUSTOM_FIELDS" | "MY_NETWORK" | "DEVICE_HEALTH" | "DEVICE" | "ASSET" | "OPERATOR" | "SERVICE" | "RENTAL" | "INTEGRATION" | "CURRENT_LOCATION" | "MANAGEMENT";
|
|
51
51
|
export interface AbstractFilterDefinition {
|
|
52
52
|
/**
|
|
53
53
|
* The unique key or identifier for the filter.
|
package/migrations/entry.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../../../libs/filters/filter-bar/migrations/entry.ts"],"names":[],"mappings":"","sourcesContent":["export {};\n"]}
|