@trackunit/filters-filter-bar 1.8.8 → 1.8.9

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 (3) hide show
  1. package/index.cjs.js +17 -5
  2. package/index.esm.js +17 -5
  3. package/package.json +13 -13
package/index.cjs.js CHANGED
@@ -8,10 +8,10 @@ var reactComponents = require('@trackunit/react-components');
8
8
  var reactCoreHooks = require('@trackunit/react-core-hooks');
9
9
  var stringTs = require('string-ts');
10
10
  var reactCoreContextsApi = require('@trackunit/react-core-contexts-api');
11
+ var tailwindMerge = require('tailwind-merge');
11
12
  var reactFormComponents = require('@trackunit/react-form-components');
12
13
  var reactDateAndTimeComponents = require('@trackunit/react-date-and-time-components');
13
14
  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');
@@ -497,10 +497,22 @@ const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked
497
497
  const [t] = useTranslation();
498
498
  const parentRef = react.useRef(null);
499
499
  const updatedRowCount = react.useMemo(() => (showRequestMoreUseSearch ? rowCount + 1 : rowCount), [rowCount, showRequestMoreUseSearch]);
500
- return (jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, ref: parentRef, children: jsxRuntime.jsx(reactComponents.List, { className: className, count: updatedRowCount, rowHeight: 40, separator: "space", children: index => {
501
- return (jsxRuntime.jsx("div", { children: showRequestMoreUseSearch && index === rowCount ? (jsxRuntime.jsxs("div", { className: "p-3 pt-2", children: [jsxRuntime.jsx("span", { className: "text-sm text-gray-600", children: t("filter.more.options.if.you.search.title", { count: rowCount }) }), jsxRuntime.jsx("br", {}), jsxRuntime.jsx("span", { className: "text-sm italic text-gray-400", children: t("filter.more.options.if.you.search.description") })] })) : type === "Radio" ? (jsxRuntime.jsx(reactFilterComponents.RadioFilterItem, { dataTestId: "dynamic-filter-radio-" + keyMapper(index), itemCount: count(index), label: labelMapper(index), selected: checked(index), value: keyMapper(index) }, keyMapper(index))) : (jsxRuntime.jsx(reactFilterComponents.CheckBoxFilterItem, { checked: checked(index), dataTestId: "dynamic-filter-check-box-" + keyMapper(index), itemCount: count(index), label: labelMapper(index), name: keyMapper(index), onChange: () => {
502
- onChange?.(index);
503
- } }, keyMapper(index))) }));
500
+ return (jsxRuntime.jsx(reactFilterComponents.FilterBody, { limitSize: true, ref: parentRef, children: jsxRuntime.jsx(reactComponents.List, { className: className, count: updatedRowCount, getItem: index => {
501
+ if (showRequestMoreUseSearch && index === rowCount) {
502
+ return { type: "search-more" };
503
+ }
504
+ return {
505
+ type: "filter-item",
506
+ key: keyMapper(index),
507
+ label: labelMapper(index),
508
+ itemCount: count(index),
509
+ isChecked: checked(index),
510
+ index,
511
+ };
512
+ }, separator: "none", children: (listItemProps, item, index) => {
513
+ return (jsxRuntime.jsx("li", { ...listItemProps, className: tailwindMerge.twMerge(listItemProps.className, "[&:not(:last-child)]:pb-0.5"), children: item.type === "search-more" ? (jsxRuntime.jsxs("div", { className: "p-3 pt-2", children: [jsxRuntime.jsx("span", { className: "text-sm text-gray-600", children: t("filter.more.options.if.you.search.title", { count: rowCount }) }), jsxRuntime.jsx("br", {}), jsxRuntime.jsx("span", { className: "text-sm italic text-gray-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 }, 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: () => {
514
+ onChange?.(item.index);
515
+ } }, item.key)) }, index));
504
516
  } }) }));
505
517
  };
506
518
 
package/index.esm.js CHANGED
@@ -6,10 +6,10 @@ import { Button, Icon, List, Text, Card, CardBody, useViewportBreakpoints, Popov
6
6
  import { useAnalytics, useTextSearch, useCurrentUser, useCustomEncoding } from '@trackunit/react-core-hooks';
7
7
  import { capitalize } from 'string-ts';
8
8
  import { createEvent } from '@trackunit/react-core-contexts-api';
9
+ import { twMerge } from 'tailwind-merge';
9
10
  import { Search, NumberField, RadioGroup } from '@trackunit/react-form-components';
10
11
  import { DayRangePicker } from '@trackunit/react-date-and-time-components';
11
12
  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';
@@ -495,10 +495,22 @@ const DynamicFilterList = ({ rowCount, keyMapper, labelMapper, onChange, checked
495
495
  const [t] = useTranslation();
496
496
  const parentRef = useRef(null);
497
497
  const updatedRowCount = useMemo(() => (showRequestMoreUseSearch ? rowCount + 1 : rowCount), [rowCount, showRequestMoreUseSearch]);
498
- return (jsx(FilterBody, { limitSize: true, ref: parentRef, children: jsx(List, { className: className, count: updatedRowCount, rowHeight: 40, separator: "space", children: index => {
499
- return (jsx("div", { children: showRequestMoreUseSearch && index === rowCount ? (jsxs("div", { className: "p-3 pt-2", children: [jsx("span", { className: "text-sm text-gray-600", children: t("filter.more.options.if.you.search.title", { count: rowCount }) }), jsx("br", {}), jsx("span", { className: "text-sm italic text-gray-400", children: t("filter.more.options.if.you.search.description") })] })) : type === "Radio" ? (jsx(RadioFilterItem, { dataTestId: "dynamic-filter-radio-" + keyMapper(index), itemCount: count(index), label: labelMapper(index), selected: checked(index), value: keyMapper(index) }, keyMapper(index))) : (jsx(CheckBoxFilterItem, { checked: checked(index), dataTestId: "dynamic-filter-check-box-" + keyMapper(index), itemCount: count(index), label: labelMapper(index), name: keyMapper(index), onChange: () => {
500
- onChange?.(index);
501
- } }, keyMapper(index))) }));
498
+ return (jsx(FilterBody, { limitSize: true, ref: parentRef, children: jsx(List, { className: className, count: updatedRowCount, getItem: index => {
499
+ if (showRequestMoreUseSearch && index === rowCount) {
500
+ return { type: "search-more" };
501
+ }
502
+ return {
503
+ type: "filter-item",
504
+ key: keyMapper(index),
505
+ label: labelMapper(index),
506
+ itemCount: count(index),
507
+ isChecked: checked(index),
508
+ index,
509
+ };
510
+ }, separator: "none", children: (listItemProps, item, index) => {
511
+ return (jsx("li", { ...listItemProps, className: twMerge(listItemProps.className, "[&:not(:last-child)]:pb-0.5"), children: item.type === "search-more" ? (jsxs("div", { className: "p-3 pt-2", children: [jsx("span", { className: "text-sm text-gray-600", children: t("filter.more.options.if.you.search.title", { count: rowCount }) }), jsx("br", {}), jsx("span", { className: "text-sm italic text-gray-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 }, item.key)) : (jsx(CheckBoxFilterItem, { checked: item.isChecked, dataTestId: "dynamic-filter-check-box-" + item.key, itemCount: item.itemCount, label: item.label, name: item.key, onChange: () => {
512
+ onChange?.(item.index);
513
+ } }, item.key)) }, index));
502
514
  } }) }));
503
515
  };
504
516
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/filters-filter-bar",
3
- "version": "1.8.8",
3
+ "version": "1.8.9",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -13,18 +13,18 @@
13
13
  "tailwind-merge": "^2.0.0",
14
14
  "string-ts": "^2.0.0",
15
15
  "zod": "^3.23.8",
16
- "@trackunit/iris-app-api": "1.7.6",
17
- "@trackunit/react-core-hooks": "1.7.6",
18
- "@trackunit/react-filter-components": "1.7.8",
19
- "@trackunit/react-date-and-time-components": "1.10.8",
20
- "@trackunit/shared-utils": "1.9.5",
21
- "@trackunit/react-form-components": "1.8.8",
22
- "@trackunit/react-core-contexts-api": "1.8.6",
23
- "@trackunit/geo-json-utils": "1.7.5",
24
- "@trackunit/i18n-library-translation": "1.7.7",
25
- "@trackunit/css-class-variance-utilities": "1.7.5",
26
- "@trackunit/react-components": "1.9.8",
27
- "@trackunit/react-test-setup": "1.4.5",
16
+ "@trackunit/iris-app-api": "1.7.7",
17
+ "@trackunit/react-core-hooks": "1.7.7",
18
+ "@trackunit/react-filter-components": "1.7.9",
19
+ "@trackunit/react-date-and-time-components": "1.10.9",
20
+ "@trackunit/shared-utils": "1.9.6",
21
+ "@trackunit/react-form-components": "1.8.9",
22
+ "@trackunit/react-core-contexts-api": "1.8.7",
23
+ "@trackunit/geo-json-utils": "1.7.6",
24
+ "@trackunit/i18n-library-translation": "1.7.8",
25
+ "@trackunit/css-class-variance-utilities": "1.7.6",
26
+ "@trackunit/react-components": "1.9.9",
27
+ "@trackunit/react-test-setup": "1.4.6",
28
28
  "@tanstack/react-router": "1.114.29"
29
29
  },
30
30
  "module": "./index.esm.js",