@hortiview/shared-components 0.0.7335 → 0.0.7373

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 (71) hide show
  1. package/README.md +83 -1
  2. package/dist/assets/contextMenu.css +1 -1
  3. package/dist/assets/genericCard.css +1 -0
  4. package/dist/assets/genericTable.css +1 -1
  5. package/dist/components/AlertBanner/AlertBanner.js +1 -1
  6. package/dist/components/AlertBanner/AlertBanner.test.js +2 -2
  7. package/dist/components/BaseView/BaseView.js +1 -1
  8. package/dist/components/BaseView/BaseView.test.js +2 -2
  9. package/dist/components/BasicHeading/BasicHeading.js +1 -1
  10. package/dist/components/BasicHeading/BasicHeading.test.js +1 -1
  11. package/dist/components/BlockView/BlockView.test.js +1 -1
  12. package/dist/components/ContextMenu/ContextMenu.js +16 -15
  13. package/dist/components/ContextMenu/ContextMenu.test.js +1 -1
  14. package/dist/components/DeleteModal/DeleteModal.test.js +1 -1
  15. package/dist/components/Disclaimer/Disclaimer.test.js +1 -1
  16. package/dist/components/EmptyView/EmptyView.test.js +1 -1
  17. package/dist/components/Filter/Filter.d.ts +4 -1
  18. package/dist/components/Filter/Filter.js +92 -87
  19. package/dist/components/Filter/Filter.test.js +44 -23
  20. package/dist/components/FormComponents/FormCheckBox/FormCheckBox.test.js +1 -1
  21. package/dist/components/FormComponents/FormDatePicker/FormDatePicker.test.js +1 -1
  22. package/dist/components/FormComponents/FormRadio/FormRadio.test.js +1 -1
  23. package/dist/components/FormComponents/FormSelect/FormSelect.test.js +2 -2
  24. package/dist/components/FormComponents/FormSlider/FormSlider.test.js +1 -1
  25. package/dist/components/FormComponents/FormText/FormText.test.js +1 -1
  26. package/dist/components/GenericTable/GenericTable.d.ts +7 -2
  27. package/dist/components/GenericTable/GenericTable.js +91 -66
  28. package/dist/components/GenericTable/GenericTable.test.js +59 -45
  29. package/dist/components/GenericTable/GenericTableService.d.ts +19 -0
  30. package/dist/components/GenericTable/GenericTableService.js +59 -0
  31. package/dist/components/GenericTable/Mobile/GenericCard.d.ts +19 -0
  32. package/dist/components/GenericTable/Mobile/GenericCard.js +68 -0
  33. package/dist/components/GenericTable/Mobile/GenericCard.test.d.ts +1 -0
  34. package/dist/components/GenericTable/Mobile/GenericCard.test.js +76 -0
  35. package/dist/components/GenericTable/Mobile/GenericCardList.d.ts +22 -0
  36. package/dist/components/GenericTable/Mobile/GenericCardList.js +20 -0
  37. package/dist/components/GenericTable/Mobile/GenericCardList.test.d.ts +1 -0
  38. package/dist/components/GenericTable/Mobile/GenericCardList.test.js +78 -0
  39. package/dist/components/HashTabView/HashTabView.js +1 -1
  40. package/dist/components/HashTabView/HashTabView.test.js +1 -1
  41. package/dist/components/HeaderFilter/HeaderFilter.test.js +1 -1
  42. package/dist/components/Iconify/Iconify.test.js +1 -1
  43. package/dist/components/InfoGroup/InfoGroup.js +1 -1
  44. package/dist/components/InfoGroup/InfoGroup.test.js +1 -1
  45. package/dist/components/ListArea/ListArea.test.js +1 -1
  46. package/dist/components/LoadingSpinner/Big/BigLoadingSpinner.test.js +1 -1
  47. package/dist/components/LoadingSpinner/Default/LoadingSpinner.test.js +1 -1
  48. package/dist/components/OverflowTooltip/OverflowTooltip.js +29 -13
  49. package/dist/components/OverflowTooltip/OverflowTooltip.test.js +2 -2
  50. package/dist/components/Scrollbar/scrollbar.test.js +1 -1
  51. package/dist/components/SearchBar/SearchBar.test.js +1 -1
  52. package/dist/components/VerticalDivider/VerticalDivider.test.js +1 -1
  53. package/dist/contextMenu.module-DNQ8d9Aj.js +8 -0
  54. package/dist/genericCard.module-DzqcufuN.js +12 -0
  55. package/dist/genericTable.module-CNV1Yt1K.js +16 -0
  56. package/dist/hooks/useBreakpoints.js +5 -0
  57. package/dist/hooks/useBreakpoints.test.js +2 -2
  58. package/dist/index-DW4oU_OU.js +11708 -0
  59. package/dist/main.d.ts +1 -1
  60. package/dist/main.js +60 -59
  61. package/dist/{react.esm-C3jDj5Fe.js → react.esm-Dy4VzU4L.js} +4 -1
  62. package/dist/types/Filter.d.ts +1 -0
  63. package/dist/types/GenericTable.d.ts +36 -0
  64. package/package.json +10 -10
  65. package/dist/assets/Filter.css +0 -22
  66. package/dist/contextMenu.module-B7aUMFPe.js +0 -7
  67. package/dist/genericTable.module-BkU2VDKR.js +0 -11
  68. package/dist/hooks/useBreakpoint.js +0 -5
  69. package/dist/index-BQnj-5Zt.js +0 -2963
  70. /package/dist/hooks/{useBreakpoint.d.ts → useBreakpoints.d.ts} +0 -0
  71. /package/dist/{useBreakpoint-BNeVhjjZ.js → useBreakpoints-BNeVhjjZ.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { jsx as r, Fragment as l, jsxs as c } from "react/jsx-runtime";
2
2
  import { Group as m, TypoBody as p } from "@element/react-components";
3
- import { u as d } from "../../useBreakpoint-BNeVhjjZ.js";
3
+ import { u as d } from "../../useBreakpoints-BNeVhjjZ.js";
4
4
  import { s as o } from "../../alertBanner.module-HneYdVzN.js";
5
5
  const h = ({
6
6
  text: e,
@@ -1,6 +1,6 @@
1
1
  import { jsx as e, Fragment as m } from "react/jsx-runtime";
2
- import { a as t, s } from "../../react.esm-C3jDj5Fe.js";
3
- import { a as l } from "../../useBreakpoint-BNeVhjjZ.js";
2
+ import { a as t, s } from "../../react.esm-Dy4VzU4L.js";
3
+ import { a as l } from "../../useBreakpoints-BNeVhjjZ.js";
4
4
  import { AlertBanner as n } from "./AlertBanner.js";
5
5
  import { d as c, b as p, t as r, g as o, v as a } from "../../vi.JYQecGiw-BbUbJcT8.js";
6
6
  c("AlertBanner Test", () => {
@@ -5,7 +5,7 @@ import { BasicHeading as u } from "../BasicHeading/BasicHeading.js";
5
5
  import { EmptyView as L } from "../EmptyView/EmptyView.js";
6
6
  import { ListArea as A } from "../ListArea/ListArea.js";
7
7
  import { VerticalDivider as V } from "../VerticalDivider/VerticalDivider.js";
8
- import { u as W } from "../../useBreakpoint-BNeVhjjZ.js";
8
+ import { u as W } from "../../useBreakpoints-BNeVhjjZ.js";
9
9
  import { s as r } from "../../baseView.module-ve87u_d0.js";
10
10
  const C = ({
11
11
  action: c,
@@ -1,6 +1,6 @@
1
1
  import { jsx as a, Fragment as s } from "react/jsx-runtime";
2
- import { a as r, s as e, f as p } from "../../react.esm-C3jDj5Fe.js";
3
- import { a as l } from "../../useBreakpoint-BNeVhjjZ.js";
2
+ import { a as r, s as e, f as p } from "../../react.esm-Dy4VzU4L.js";
3
+ import { a as l } from "../../useBreakpoints-BNeVhjjZ.js";
4
4
  import { BaseView as i } from "./BaseView.js";
5
5
  import { d as u, b as m, t as n, g as t, v as c } from "../../vi.JYQecGiw-BbUbJcT8.js";
6
6
  u("BaseView Test", () => {
@@ -2,7 +2,7 @@ import { jsxs as s, jsx as t } from "react/jsx-runtime";
2
2
  import { TypoDisplay as g, TypoBody as N, Icon as I } from "@element/react-components";
3
3
  import { I as x } from "../../Iconify-CY9lZjFd.js";
4
4
  import { AvailableCustomIcons as B } from "../../enums/AvailableCustomIcons.js";
5
- import { u as C } from "../../useBreakpoint-BNeVhjjZ.js";
5
+ import { u as C } from "../../useBreakpoints-BNeVhjjZ.js";
6
6
  import { OverflowTooltip as T } from "../OverflowTooltip/OverflowTooltip.js";
7
7
  import { s as e } from "../../basicHeading.module-BYb8xvuk.js";
8
8
  const $ = ({ icon: i }) => i ? typeof i != "string" ? /* @__PURE__ */ t("div", { className: e.iconContainer, children: i }) : i in B ? /* @__PURE__ */ t(
@@ -1,7 +1,7 @@
1
1
  import { jsx as o, Fragment as c } from "react/jsx-runtime";
2
2
  import { Button as g } from "@element/react-components";
3
3
  import { BasicHeading as a } from "./BasicHeading.js";
4
- import { a as i, s as n } from "../../react.esm-C3jDj5Fe.js";
4
+ import { a as i, s as n } from "../../react.esm-Dy4VzU4L.js";
5
5
  import { d as h, t as s, g as e } from "../../vi.JYQecGiw-BbUbJcT8.js";
6
6
  h("BasicHeading-Test", () => {
7
7
  s("render small container without content", () => {
@@ -1,5 +1,5 @@
1
1
  import { jsx as l } from "react/jsx-runtime";
2
- import { a as s, s as o, f as n } from "../../react.esm-C3jDj5Fe.js";
2
+ import { a as s, s as o, f as n } from "../../react.esm-Dy4VzU4L.js";
3
3
  import { BlockView as i } from "./BlockView.js";
4
4
  import { d as B, v as a, t as r, g as t } from "../../vi.JYQecGiw-BbUbJcT8.js";
5
5
  B("BlockView Test", () => {
@@ -1,46 +1,47 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { Menu as u, IconButton as c, List as d, ListItem as f } from "@element/react-components";
3
- import { useState as p, useCallback as s, useEffect as y } from "react";
4
- import { s as C } from "../../contextMenu.module-B7aUMFPe.js";
2
+ import { Menu as u, IconButton as d, List as f, ListItem as p } from "@element/react-components";
3
+ import { useState as y, useCallback as l, useEffect as C } from "react";
5
4
  import { uniqueId as k } from "lodash";
5
+ import { s as r } from "../../contextMenu.module-DNQ8d9Aj.js";
6
6
  const M = ({
7
7
  triggerOpen: n = null,
8
- actions: r,
9
- iconOrientation: a = "vertical"
8
+ actions: a,
9
+ iconOrientation: c = "vertical"
10
10
  }) => {
11
- const [e, t] = p(!1), m = s(() => {
11
+ const [e, t] = y(!1), m = l(() => {
12
12
  t(!e);
13
- }, [e]), l = s(() => {
13
+ }, [e]), s = l(() => {
14
14
  t(!1);
15
15
  }, []);
16
- return y(() => {
16
+ return C(() => {
17
17
  t(n !== null ? n : !1);
18
18
  }, [n]), /* @__PURE__ */ o(
19
19
  u,
20
20
  {
21
- className: C.menu,
21
+ className: r.menu,
22
22
  "data-testid": "selectionmenu",
23
23
  open: e,
24
24
  surfaceOnly: !0,
25
25
  hoistToBody: !0,
26
- onClose: l,
26
+ onClose: s,
27
27
  trigger: /* @__PURE__ */ o(
28
- c,
28
+ d,
29
29
  {
30
+ className: r.icon,
30
31
  variant: e ? "filled-primary" : void 0,
31
32
  "data-testid": "openButton",
32
- icon: a === "vertical" ? "more_vert" : "more_horiz",
33
+ icon: c === "vertical" ? "more_vert" : "more_horiz",
33
34
  onClick: m
34
35
  }
35
36
  ),
36
- children: /* @__PURE__ */ o(d, { children: r.map((i) => /* @__PURE__ */ o(
37
- f,
37
+ children: /* @__PURE__ */ o(f, { children: a.map((i) => /* @__PURE__ */ o(
38
+ p,
38
39
  {
39
40
  ...i,
40
41
  leadingBlockType: "icon",
41
42
  "data-testid": "listItemButton",
42
43
  onClick: () => {
43
- i?.onClick?.(), l();
44
+ i?.onClick?.(), s();
44
45
  }
45
46
  },
46
47
  k(`LI_${i.primaryText?.toString()}_`)
@@ -1,5 +1,5 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { a as d, s as n, f as o, w as a } from "../../react.esm-C3jDj5Fe.js";
2
+ import { a as d, s as n, f as o, w as a } from "../../react.esm-Dy4VzU4L.js";
3
3
  import { ContextMenu as u } from "./ContextMenu.js";
4
4
  import { v as m, d as g, t as B, g as e } from "../../vi.JYQecGiw-BbUbJcT8.js";
5
5
  const T = m.fn(), l = m.fn(), i = m.fn(), p = [
@@ -1,5 +1,5 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import { a as c, s as e } from "../../react.esm-C3jDj5Fe.js";
2
+ import { a as c, s as e } from "../../react.esm-Dy4VzU4L.js";
3
3
  import { DeleteModal as b } from "./DeleteModal.js";
4
4
  import { d as B, t as a, v as o, g as t } from "../../vi.JYQecGiw-BbUbJcT8.js";
5
5
  B("DeleteModal Test", () => {
@@ -1,5 +1,5 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { a as r, s as t } from "../../react.esm-C3jDj5Fe.js";
2
+ import { a as r, s as t } from "../../react.esm-Dy4VzU4L.js";
3
3
  import { Disclaimer as s } from "./Disclaimer.js";
4
4
  import { d as i, t as m, g as e } from "../../vi.JYQecGiw-BbUbJcT8.js";
5
5
  i("Disclaimer test", () => {
@@ -1,5 +1,5 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import { a as s, s as o, w as r, f as l } from "../../react.esm-C3jDj5Fe.js";
2
+ import { a as s, s as o, w as r, f as l } from "../../react.esm-Dy4VzU4L.js";
3
3
  import { EmptyView as c } from "./EmptyView.js";
4
4
  import { d as h, t as T, g as e, v as d } from "../../vi.JYQecGiw-BbUbJcT8.js";
5
5
  h("EmptyView", () => {
@@ -9,6 +9,7 @@ type FilterProps = {
9
9
  filterButtonText: string;
10
10
  filterModalTitle: string;
11
11
  filters: FilterData[];
12
+ useModal?: boolean;
12
13
  };
13
14
  /**
14
15
  * Filter component that allows the user to filter the data provided
@@ -21,7 +22,9 @@ type FilterProps = {
21
22
  * @param filters - the filter data
22
23
  * @param modalCancelButtonText - the text for the cancel button in the modal
23
24
  * @param modalConfirmButtonText - the text for the confirm button in the modal
25
+ * @param useModal - if the filter should use a modal and a filter button, default is true,
26
+ * if false the filters will be displayed directly in the page, be aware that the filters will be displayed in a row and there needs to be enough space for them
24
27
  * @returns
25
28
  */
26
- export declare const Filter: ({ clearFilterText, closeCallback, currentFilter, filterButtonAsIcon, filterButtonText, filterModalTitle, filters, modalCancelButtonText, modalConfirmButtonText, }: FilterProps) => import("react/jsx-runtime").JSX.Element;
29
+ export declare const Filter: ({ clearFilterText, closeCallback, currentFilter, filterButtonAsIcon, filterButtonText, filterModalTitle, filters, modalCancelButtonText, modalConfirmButtonText, useModal, }: FilterProps) => import("react/jsx-runtime").JSX.Element;
27
30
  export {};
@@ -1,25 +1,26 @@
1
- import "../../assets/Filter.css";
2
- import { jsxs as v, Fragment as I, jsx as t } from "react/jsx-runtime";
3
- import { Modal as j, Button as s, Group as q, Select as A, IconButton as D, NotificationBadge as C } from "@element/react-components";
4
- import { useState as u } from "react";
5
- import { u as _ } from "../../useBreakpoint-BNeVhjjZ.js";
1
+ import { jsx as t, jsxs as y, Fragment as I } from "react/jsx-runtime";
2
+ import { Group as v, Modal as W, Button as p, Select as j, IconButton as z, NotificationBadge as S } from "@element/react-components";
3
+ import { useState as g } from "react";
4
+ import { s as d } from "../../genericTable.module-CNV1Yt1K.js";
5
+ import { u as O } from "../../useBreakpoints-BNeVhjjZ.js";
6
6
  import "../../alertBanner.module-HneYdVzN.js";
7
- import "../../iconify.module-C89oaw5b.js";
8
- import "../../isArray-Ca4KR8TK.js";
7
+ import { I as H } from "../../Iconify-CY9lZjFd.js";
9
8
  import "../../react-tooltip.min-BzHiZW8k.js";
10
9
  import "../../basicHeading.module-BYb8xvuk.js";
10
+ import "../../isArray-Ca4KR8TK.js";
11
11
  import "../../_baseToString-BNXOi2Mf.js";
12
12
  import "../../_equalByTag-DJhSpgVG.js";
13
+ import "../../iconify.module-C89oaw5b.js";
13
14
  import "../../searchBar.module-9gKyrZRT.js";
14
15
  import "../../listArea.module-CGpHPOji.js";
15
16
  import "../../verticalDivider.module-C3_GL-fH.js";
16
17
  import "../../baseView.module-ve87u_d0.js";
17
18
  import "../../BlockView.module-BPlNT5uh.js";
18
- import "../../contextMenu.module-B7aUMFPe.js";
19
19
  import "lodash";
20
+ import "../../contextMenu.module-DNQ8d9Aj.js";
20
21
  import "../../deleteModal.module-Ds3MDzdl.js";
21
22
  import "../../disclaimer.module-BZydt-Q_.js";
22
- import "../../genericTable.module-BkU2VDKR.js";
23
+ import "../../genericCard.module-DzqcufuN.js";
23
24
  import "../../HashTabView.module-CJX4gxTu.js";
24
25
  import "../../HeaderFilter.module-DiBmulr5.js";
25
26
  import "../../infoGroup.module-B3E1gCGi.js";
@@ -30,114 +31,118 @@ import "react-hook-form";
30
31
  import "../../formDatePicker.module-BV3ma_7y.js";
31
32
  import "../../formSelect.module-C18N-SsT.js";
32
33
  import "../../formText.module-C0by6_DK.js";
33
- const K = "_filterButton_66wbq_1", M = "_filterBadge_66wbq_6", f = {
34
- filterButton: K,
35
- filterBadge: M
36
- }, gt = ({
37
- clearFilterText: a,
38
- closeCallback: m,
39
- currentFilter: i,
40
- filterButtonAsIcon: r = !1,
41
- filterButtonText: l,
42
- filterModalTitle: F,
43
- filters: x,
44
- modalCancelButtonText: y,
45
- modalConfirmButtonText: b
34
+ const vt = ({
35
+ clearFilterText: o,
36
+ closeCallback: l,
37
+ currentFilter: r,
38
+ filterButtonAsIcon: e = !1,
39
+ filterButtonText: i,
40
+ filterModalTitle: u,
41
+ filters: a,
42
+ modalCancelButtonText: m,
43
+ modalConfirmButtonText: n,
44
+ useModal: b = !0
46
45
  }) => {
47
- const { isDesktop: S } = _(), [k, c] = u(!1), [n, h] = u(i), [O, g] = u(0), B = () => {
48
- c(!1), m(n), g(
49
- n.reduce((e, { selectedOptions: o }) => e + o.length, 0)
46
+ const { isDesktop: N } = O(), [A, f] = g(!1), [s, C] = g(r), [_, x] = g(0), B = () => {
47
+ f(!1), l(s), x(
48
+ s.reduce((c, { selectedOptions: h }) => c + h.length, 0)
50
49
  );
51
50
  }, w = () => {
52
- h([]), g(0);
53
- }, N = (e) => {
54
- const o = [
55
- ...n.filter((d) => d.id !== e.id),
56
- e
51
+ C([]), x(0);
52
+ }, F = (c) => {
53
+ const h = [
54
+ ...s.filter((D) => D.id !== c.id),
55
+ c
57
56
  ];
58
- h(o);
57
+ C(h);
59
58
  };
60
- return /* @__PURE__ */ v(I, { children: [
59
+ return b ? /* @__PURE__ */ y(I, { children: [
61
60
  /* @__PURE__ */ t(
62
- z,
61
+ K,
63
62
  {
64
- filterButtonText: l,
65
- filterButtonAsIcon: r,
66
- count: O,
67
- onClick: () => c(!0)
63
+ filterButtonText: i,
64
+ filterButtonAsIcon: e,
65
+ count: _,
66
+ onClick: () => f(!0)
68
67
  }
69
68
  ),
70
69
  /* @__PURE__ */ t(
71
- j,
70
+ W,
72
71
  {
73
- open: k,
72
+ open: A,
74
73
  onClose: B,
75
- title: F,
76
- modalSize: S ? "small" : "fullscreen",
77
- headerActions: /* @__PURE__ */ t(s, { variant: "text", onClick: w, children: a }),
78
- dismissiveButton: /* @__PURE__ */ t(s, { variant: "outlined", onClick: () => c(!1), children: y }),
79
- primaryButton: /* @__PURE__ */ t(s, { variant: "filled", onClick: B, children: b }),
80
- children: /* @__PURE__ */ t(q, { direction: "vertical", children: x.map(({ id: e, title: o, availableOptions: d }) => /* @__PURE__ */ t(
81
- A,
82
- {
83
- variant: "outlined",
84
- options: d,
85
- label: o,
86
- multiSelect: !0,
87
- textKey: "text",
88
- valueKey: "id",
89
- value: n.find((p) => p.id === e)?.selectedOptions ?? [],
90
- onChange: (p) => N({ id: e, selectedOptions: p }),
91
- hoisted: !0,
92
- menuMaxHeight: "300px",
93
- disabled: e === "location",
94
- showOptionFilter: !1
95
- },
96
- e
97
- )) })
74
+ title: u,
75
+ modalSize: N ? "small" : "fullscreen",
76
+ headerActions: /* @__PURE__ */ t(p, { variant: "text", onClick: w, children: o }),
77
+ dismissiveButton: /* @__PURE__ */ t(p, { variant: "outlined", onClick: () => f(!1), children: m }),
78
+ primaryButton: /* @__PURE__ */ t(p, { variant: "filled", onClick: B, children: n }),
79
+ children: /* @__PURE__ */ t(v, { direction: "vertical", children: k(a, s, F) })
98
80
  }
99
81
  )
100
- ] });
101
- }, z = ({
102
- filterButtonText: a,
103
- filterButtonAsIcon: m,
104
- count: i,
105
- onClick: r
82
+ ] }) : /* @__PURE__ */ t(v, { secondaryAlign: "center", fullWidth: !0, children: k(a, s, F, !1) });
83
+ }, k = (o, l, r, e = !0) => o.map(({ id: i, title: u, availableOptions: a, icon: m }) => /* @__PURE__ */ y(v, { fullWidth: !0, secondaryAlign: "center", children: [
84
+ m ? /* @__PURE__ */ t(H, { icon: m, iconSize: "medium" }) : null,
85
+ /* @__PURE__ */ t(
86
+ j,
87
+ {
88
+ className: e ? void 0 : d.dense,
89
+ variant: "outlined",
90
+ options: a,
91
+ label: u,
92
+ multiSelect: !0,
93
+ textKey: "text",
94
+ valueKey: "id",
95
+ value: l.find((n) => n.id === i)?.selectedOptions ?? [],
96
+ onChange: (n) => r({ id: i, selectedOptions: n }),
97
+ hoisted: !0,
98
+ menuMaxHeight: "300px",
99
+ disabled: i === "location",
100
+ showOptionFilter: !1,
101
+ dense: !e,
102
+ fixedHeightInput: !e,
103
+ multiDisplayType: e ? "pills" : "text"
104
+ }
105
+ )
106
+ ] }, i)), K = ({
107
+ filterButtonText: o,
108
+ filterButtonAsIcon: l,
109
+ count: r,
110
+ onClick: e
106
111
  }) => {
107
- const { isDesktop: l } = _();
108
- return m ? /* @__PURE__ */ t(
109
- D,
112
+ const { isDesktop: i } = O();
113
+ return l ? /* @__PURE__ */ t(
114
+ z,
110
115
  {
111
116
  icon: "filter_list_alt",
112
- onClick: r,
113
- badge: i !== 0 && /* @__PURE__ */ t(
114
- C,
117
+ onClick: e,
118
+ badge: r !== 0 && /* @__PURE__ */ t(
119
+ S,
115
120
  {
116
- counter: i,
117
- className: f.filterBadge,
121
+ counter: r,
122
+ className: d.filterBadge,
118
123
  themeColor: "secondary",
119
124
  "data-testid": "filter-badge"
120
125
  }
121
126
  )
122
127
  }
123
- ) : /* @__PURE__ */ v("div", { style: { height: "100%", width: l ? void 0 : "100%" }, children: [
128
+ ) : /* @__PURE__ */ y("div", { style: { height: "100%", width: i ? void 0 : "100%" }, children: [
124
129
  /* @__PURE__ */ t(
125
- s,
130
+ p,
126
131
  {
127
132
  variant: "outlined",
128
133
  themeColor: "primary",
129
134
  leadingIcon: "filter_list_alt",
130
- onClick: r,
131
- className: f.filterButton,
132
- fullWidth: !l,
133
- children: a
135
+ onClick: e,
136
+ className: d.filterButton,
137
+ fullWidth: !i,
138
+ children: o
134
139
  }
135
140
  ),
136
- i !== 0 && /* @__PURE__ */ t(
137
- C,
141
+ r !== 0 && /* @__PURE__ */ t(
142
+ S,
138
143
  {
139
- counter: i,
140
- className: f.filterBadge,
144
+ counter: r,
145
+ className: d.filterBadge,
141
146
  themeColor: "secondary",
142
147
  "data-testid": "filter-badge"
143
148
  }
@@ -145,5 +150,5 @@ const K = "_filterButton_66wbq_1", M = "_filterBadge_66wbq_6", f = {
145
150
  ] });
146
151
  };
147
152
  export {
148
- gt as Filter
153
+ vt as Filter
149
154
  };
@@ -1,19 +1,23 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { a, s as t, f as c, t as u, w as x } from "../../react.esm-C3jDj5Fe.js";
3
- import { u as d } from "../../useBreakpoint-BNeVhjjZ.js";
2
+ import { a, s as t, f as u, t as c, w as x } from "../../react.esm-Dy4VzU4L.js";
3
+ import { a as d } from "../../useBreakpoints-BNeVhjjZ.js";
4
4
  import { Filter as T } from "./Filter.js";
5
5
  import { v as m, b as s, d as f, t as B, g as e } from "../../vi.JYQecGiw-BbUbJcT8.js";
6
6
  const o = m.fn();
7
- m.mock("../../hooks/useBreakpoint");
8
- const y = d;
9
7
  s(() => {
10
- y.mockReturnValue({ isDesktop: !0 });
8
+ m.spyOn(d, "useBreakpoints").mockReturnValue({
9
+ isDesktop: !0,
10
+ isMobile: !1,
11
+ isTablet: !1,
12
+ isDesktopNavbar: !1
13
+ });
11
14
  });
12
15
  f("Filter", () => {
13
- const n = [
16
+ const l = [
14
17
  {
15
18
  id: "1",
16
19
  title: "Filter 1",
20
+ icon: "farm",
17
21
  availableOptions: [
18
22
  { id: "1", text: "Option 1" },
19
23
  { id: "2", text: "Option 2" }
@@ -27,7 +31,7 @@ f("Filter", () => {
27
31
  { id: "4", text: "Option 4" }
28
32
  ]
29
33
  }
30
- ], i = [
34
+ ], n = [
31
35
  { id: "1", selectedOptions: [{ id: "1", text: "Option 1" }] },
32
36
  { id: "2", selectedOptions: [{ id: "3", text: "Option 3" }] }
33
37
  ];
@@ -36,8 +40,8 @@ f("Filter", () => {
36
40
  /* @__PURE__ */ r(
37
41
  T,
38
42
  {
39
- filters: n,
40
- currentFilter: i,
43
+ filters: l,
44
+ currentFilter: n,
41
45
  closeCallback: o,
42
46
  filterButtonText: "filterButtonText",
43
47
  filterModalTitle: "filterModalTitle",
@@ -46,9 +50,9 @@ f("Filter", () => {
46
50
  clearFilterText: "clearFilterText"
47
51
  }
48
52
  )
49
- ), e(t.getByText("filterButtonText")).toBeInTheDocument(), e(t.getByText("filterModalTitle")).toBeInTheDocument(), e(t.getByText("modalCancelButtonText")).toBeInTheDocument(), e(t.getByText("modalConfirmButtonText")).toBeInTheDocument(), e(t.getByText("clearFilterText")).toBeInTheDocument(), e(t.getByText("Filter 1")).toBeInTheDocument(), e(t.getByText("Filter 2")).toBeInTheDocument(), e(t.getByText("Option 1")).toBeInTheDocument(), e(t.getByText("Option 3")).toBeInTheDocument();
50
- const l = t.getByRole("button", { name: "modalConfirmButtonText" });
51
- c.click(l), u.act(() => {
53
+ ), e(t.getByText("filterButtonText")).toBeInTheDocument(), e(t.getByText("filterModalTitle")).toBeInTheDocument(), e(t.getByText("modalCancelButtonText")).toBeInTheDocument(), e(t.getByText("modalConfirmButtonText")).toBeInTheDocument(), e(t.getByText("clearFilterText")).toBeInTheDocument(), e(t.getByText("Filter 1")).toBeInTheDocument(), e(t.getByText("Filter 2")).toBeInTheDocument(), e(t.getByText("Option 1")).toBeInTheDocument(), e(t.getByText("Option 3")).toBeInTheDocument(), e(t.getByTestId("farm")).toBeInTheDocument();
54
+ const i = t.getByRole("button", { name: "modalConfirmButtonText" });
55
+ u.click(i), c.act(() => {
52
56
  e(o).toHaveBeenCalledTimes(1), e(t.getByText("2")).toBeInTheDocument();
53
57
  });
54
58
  }), B("should clear filter", () => {
@@ -56,8 +60,8 @@ f("Filter", () => {
56
60
  /* @__PURE__ */ r(
57
61
  T,
58
62
  {
59
- filters: n,
60
- currentFilter: i,
63
+ filters: l,
64
+ currentFilter: n,
61
65
  closeCallback: o,
62
66
  filterButtonText: "filterButtonText",
63
67
  filterModalTitle: "filterModalTitle",
@@ -67,8 +71,8 @@ f("Filter", () => {
67
71
  }
68
72
  )
69
73
  );
70
- const l = t.getByText("clearFilterText");
71
- c.click(l), u.act(() => {
74
+ const i = t.getByText("clearFilterText");
75
+ u.click(i), c.act(() => {
72
76
  e(o).toHaveBeenCalledTimes(1), e(t.queryByTestId("filter-badge")).not.toBeInTheDocument();
73
77
  });
74
78
  }), B("should close filter", () => {
@@ -76,8 +80,8 @@ f("Filter", () => {
76
80
  /* @__PURE__ */ r(
77
81
  T,
78
82
  {
79
- filters: n,
80
- currentFilter: i,
83
+ filters: l,
84
+ currentFilter: n,
81
85
  closeCallback: o,
82
86
  filterButtonText: "filterButtonText",
83
87
  filterModalTitle: "filterModalTitle",
@@ -87,8 +91,8 @@ f("Filter", () => {
87
91
  }
88
92
  )
89
93
  );
90
- const l = t.getByRole("button", { name: "modalCancelButtonText" });
91
- c.click(l), u.act(() => {
94
+ const i = t.getByRole("button", { name: "modalCancelButtonText" });
95
+ u.click(i), c.act(() => {
92
96
  e(o).toHaveBeenCalledTimes(1), e(t.queryByTestId("filter-badge")).not.toBeInTheDocument();
93
97
  }), x(() => {
94
98
  e(t.queryByText("filterModalTitle")).not.toBeInTheDocument(), e(t.queryByText("modalCancelButtonText")).not.toBeInTheDocument(), e(t.queryByText("modalConfirmButtonText")).not.toBeInTheDocument(), e(t.queryByText("clearFilterText")).not.toBeInTheDocument();
@@ -98,8 +102,8 @@ f("Filter", () => {
98
102
  /* @__PURE__ */ r(
99
103
  T,
100
104
  {
101
- filters: n,
102
- currentFilter: i,
105
+ filters: l,
106
+ currentFilter: n,
103
107
  closeCallback: o,
104
108
  filterButtonText: "filterButtonText",
105
109
  filterModalTitle: "filterModalTitle",
@@ -109,6 +113,23 @@ f("Filter", () => {
109
113
  filterButtonAsIcon: !0
110
114
  }
111
115
  )
112
- ), t.debug(void 0, 1 / 0), e(t.queryByText("filterButtonText")).not.toBeInTheDocument(), e(t.getByText("filter_list_alt")).toBeInTheDocument(), e(t.getByText("filter_list_alt").tagName).toBe("I");
116
+ ), e(t.queryByText("filterButtonText")).not.toBeInTheDocument(), e(t.getByText("filter_list_alt")).toBeInTheDocument(), e(t.getByText("filter_list_alt").tagName).toBe("I");
117
+ }), B("should render filter without modal", () => {
118
+ a(
119
+ /* @__PURE__ */ r(
120
+ T,
121
+ {
122
+ filters: l,
123
+ currentFilter: n,
124
+ closeCallback: o,
125
+ filterButtonText: "filterButtonText",
126
+ filterModalTitle: "filterModalTitle",
127
+ modalCancelButtonText: "modalCancelButtonText",
128
+ modalConfirmButtonText: "modalConfirmButtonText",
129
+ clearFilterText: "clearFilterText",
130
+ useModal: !1
131
+ }
132
+ )
133
+ ), e(t.queryByText("filterButtonText")).not.toBeInTheDocument(), e(t.queryByText("clearFilterText")).not.toBeInTheDocument(), e(t.queryByText("modalCancelButtonText")).not.toBeInTheDocument(), e(t.queryByText("modalConfirmButtonText")).not.toBeInTheDocument(), e(t.queryByText("clearFilterText")).not.toBeInTheDocument(), e(t.getByTestId("farm")).toBeInTheDocument(), e(t.getByText("Filter 1")).toBeInTheDocument(), e(t.getByText("Filter 2")).toBeInTheDocument(), e(t.getByText("Option 1")).toBeInTheDocument(), e(t.getByText("Option 3")).toBeInTheDocument();
113
134
  });
114
135
  });
@@ -1,5 +1,5 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
- import { a as n, s as t, f as m } from "../../../react.esm-C3jDj5Fe.js";
2
+ import { a as n, s as t, f as m } from "../../../react.esm-Dy4VzU4L.js";
3
3
  import { FormCheckBox as c } from "./FormCheckBox.js";
4
4
  import { v as e, d as h, t as l, g as r } from "../../../vi.JYQecGiw-BbUbJcT8.js";
5
5
  const a = e.fn();
@@ -1,5 +1,5 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import { a as s, s as a, f as m } from "../../../react.esm-C3jDj5Fe.js";
2
+ import { a as s, s as a, f as m } from "../../../react.esm-Dy4VzU4L.js";
3
3
  import { FormDatePicker as c } from "./FormDatePicker.js";
4
4
  import { v as e, d as f, t as l, g as r } from "../../../vi.JYQecGiw-BbUbJcT8.js";
5
5
  const i = e.fn();
@@ -1,5 +1,5 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import { a as s, s as t, f as m } from "../../../react.esm-C3jDj5Fe.js";
2
+ import { a as s, s as t, f as m } from "../../../react.esm-Dy4VzU4L.js";
3
3
  import { FormRadio as l } from "./FormRadio.js";
4
4
  import { v as e, d as c, t as i, g as o } from "../../../vi.JYQecGiw-BbUbJcT8.js";
5
5
  const r = e.fn();
@@ -1,6 +1,6 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import { a, s as t, f as T, w as p } from "../../../react.esm-C3jDj5Fe.js";
3
- import { u as B } from "../../../index-BQnj-5Zt.js";
2
+ import { a, s as t, f as T, w as p } from "../../../react.esm-Dy4VzU4L.js";
3
+ import { u as B } from "../../../index-DW4oU_OU.js";
4
4
  import { FormSelect as i } from "./FormSelect.js";
5
5
  import { SelectTooltipText as d } from "./SelectTooltipText.js";
6
6
  import { v as n, d as f, t as u, g as e } from "../../../vi.JYQecGiw-BbUbJcT8.js";
@@ -1,5 +1,5 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
- import { a, s as n } from "../../../react.esm-C3jDj5Fe.js";
2
+ import { a, s as n } from "../../../react.esm-Dy4VzU4L.js";
3
3
  import { FormSlider as l } from "./FormSlider.js";
4
4
  import { v as e, d as m, t as i, g as r } from "../../../vi.JYQecGiw-BbUbJcT8.js";
5
5
  const o = e.fn();
@@ -1,5 +1,5 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import { a as s, s as r, f as d } from "../../../react.esm-C3jDj5Fe.js";
2
+ import { a as s, s as r, f as d } from "../../../react.esm-Dy4VzU4L.js";
3
3
  import { FormText as o } from "./FormText.js";
4
4
  import { v as a, d as u, t as l, g as e } from "../../../vi.JYQecGiw-BbUbJcT8.js";
5
5
  const m = a.fn();
@@ -1,6 +1,7 @@
1
1
  import { TableLayoutProps } from '../../types/GenericTable';
2
2
  /**
3
- * Automatically creates a table layout based on the given data
3
+ * Automatically creates a table layout based on the given data.
4
+ * If the screen is too small, it will switch to a card layout.
4
5
  * @see {@link TableLayoutProps} for even more information on the props
5
6
  * @example <GenericTable<YourElementType> data={data} />
6
7
  * @example
@@ -48,6 +49,10 @@ import { TableLayoutProps } from '../../types/GenericTable';
48
49
  * @param pagination whether to show pagination or not
49
50
  * @param getRowActions function that will be called to get the actions for a row to be displayed as actions in a context menu
50
51
  * @param headerTranslation function that will be called to translate the headers by its key
52
+ * @param customColumnWidth custom column width
53
+ * @param title title of the table
54
+ * @param cardTitleColumn column to be used as the title in the card layout
55
+ * @param cardSubTitleColumn column to be used as the subtitle in the card layout
51
56
  * @returns a table based on a given type and data
52
57
  */
53
- export declare const GenericTable: <T>({ data, hiddenColumns, order, cellTemplates, tableActions, noContentText, headerTranslation, pagination, getRowActions, customColumnWidth, title, }: TableLayoutProps<T>) => import("react/jsx-runtime").JSX.Element;
58
+ export declare const GenericTable: <T>({ data, hiddenColumns, order, cellTemplates, tableActions, noContentText, headerTranslation, pagination, getRowActions, customColumnWidth, title, cardTitleColumn, cardSubTitleColumn, }: TableLayoutProps<T>) => import("react/jsx-runtime").JSX.Element;