@hitachivantara/uikit-react-core 5.7.0 → 5.7.2
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/dist/cjs/components/Banner/BannerContent/BannerContent.cjs +1 -1
- package/dist/cjs/components/Banner/BannerContent/BannerContent.cjs.map +1 -1
- package/dist/cjs/components/Card/Card.cjs +8 -8
- package/dist/cjs/components/Card/Card.cjs.map +1 -1
- package/dist/cjs/components/Card/Content/Content.cjs +3 -3
- package/dist/cjs/components/Card/Content/Content.cjs.map +1 -1
- package/dist/cjs/components/Card/Header/Header.cjs +10 -10
- package/dist/cjs/components/Card/Header/Header.cjs.map +1 -1
- package/dist/cjs/components/Card/Media/Media.cjs +4 -4
- package/dist/cjs/components/Card/Media/Media.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.cjs +21 -20
- package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.cjs +7 -7
- package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
- package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs +7 -6
- package/dist/cjs/components/DropDownMenu/DropDownMenu.cjs.map +1 -1
- package/dist/cjs/components/DropDownMenu/DropDownMenu.styles.cjs +4 -6
- package/dist/cjs/components/DropDownMenu/DropDownMenu.styles.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/Counter/Counter.cjs +4 -4
- package/dist/cjs/components/FilterGroup/Counter/Counter.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/FilterContent/FilterContent.cjs +12 -12
- package/dist/cjs/components/FilterGroup/FilterContent/FilterContent.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/FilterGroup.cjs +7 -7
- package/dist/cjs/components/FilterGroup/FilterGroup.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/LeftPanel/LeftPanel.cjs +3 -3
- package/dist/cjs/components/FilterGroup/LeftPanel/LeftPanel.cjs.map +1 -1
- package/dist/cjs/components/FilterGroup/RightPanel/RightPanel.cjs +8 -7
- package/dist/cjs/components/FilterGroup/RightPanel/RightPanel.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.styles.cjs +11 -5
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.styles.cjs.map +1 -1
- package/dist/cjs/components/InlineEditor/InlineEditor.cjs +9 -9
- package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -1
- package/dist/cjs/components/InlineEditor/InlineEditor.styles.cjs +16 -14
- package/dist/cjs/components/InlineEditor/InlineEditor.styles.cjs.map +1 -1
- package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs +5 -5
- package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs +5 -5
- package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs +11 -9
- package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs +4 -4
- package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs.map +1 -1
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs +8 -7
- package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs.map +1 -1
- package/dist/esm/components/Banner/BannerContent/BannerContent.js +1 -1
- package/dist/esm/components/Banner/BannerContent/BannerContent.js.map +1 -1
- package/dist/esm/components/Card/Card.js +8 -8
- package/dist/esm/components/Card/Card.js.map +1 -1
- package/dist/esm/components/Card/Content/Content.js +3 -3
- package/dist/esm/components/Card/Content/Content.js.map +1 -1
- package/dist/esm/components/Card/Header/Header.js +10 -10
- package/dist/esm/components/Card/Header/Header.js.map +1 -1
- package/dist/esm/components/Card/Media/Media.js +4 -4
- package/dist/esm/components/Card/Media/Media.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +21 -20
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.js +7 -7
- package/dist/esm/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/DropDownMenu/DropDownMenu.js +7 -6
- package/dist/esm/components/DropDownMenu/DropDownMenu.js.map +1 -1
- package/dist/esm/components/DropDownMenu/DropDownMenu.styles.js +4 -6
- package/dist/esm/components/DropDownMenu/DropDownMenu.styles.js.map +1 -1
- package/dist/esm/components/FilterGroup/Counter/Counter.js +4 -4
- package/dist/esm/components/FilterGroup/Counter/Counter.js.map +1 -1
- package/dist/esm/components/FilterGroup/FilterContent/FilterContent.js +12 -12
- package/dist/esm/components/FilterGroup/FilterContent/FilterContent.js.map +1 -1
- package/dist/esm/components/FilterGroup/FilterGroup.js +7 -7
- package/dist/esm/components/FilterGroup/FilterGroup.js.map +1 -1
- package/dist/esm/components/FilterGroup/LeftPanel/LeftPanel.js +3 -3
- package/dist/esm/components/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
- package/dist/esm/components/FilterGroup/RightPanel/RightPanel.js +8 -7
- package/dist/esm/components/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.styles.js +11 -5
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.styles.js.map +1 -1
- package/dist/esm/components/InlineEditor/InlineEditor.js +9 -9
- package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -1
- package/dist/esm/components/InlineEditor/InlineEditor.styles.js +16 -14
- package/dist/esm/components/InlineEditor/InlineEditor.styles.js.map +1 -1
- package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js +5 -5
- package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +5 -5
- package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
- package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js +11 -9
- package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
- package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js +4 -4
- package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js +8 -7
- package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
- package/package.json +5 -5
|
@@ -36,7 +36,7 @@ const StyledBaseDropDown = /* @__PURE__ */ _styled((props) => /* @__PURE__ */ js
|
|
|
36
36
|
} : {
|
|
37
37
|
name: "1p2i2oq",
|
|
38
38
|
styles: "width:32px",
|
|
39
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRHJvcERvd25NZW51L0Ryb3BEb3duTWVudS5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFrQyIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL0Ryb3BEb3duTWVudS9Ecm9wRG93bk1lbnUuc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHtcbiAgSHZCYXNlRHJvcGRvd24sXG4gIEh2QmFzZURyb3Bkb3duUHJvcHMsXG4gIEh2QnV0dG9uLFxuICBIdkJ1dHRvblByb3BzLFxuICBIdlBhbmVsLFxuICBIdlBhbmVsUHJvcHMsXG59IGZyb20gXCJAY29yZS9jb21wb25lbnRzXCI7XG5pbXBvcnQgeyB0cmFuc2llbnRPcHRpb25zIH0gZnJvbSBcIkBjb3JlL3V0aWxzL3RyYW5zaWVudE9wdGlvbnNcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcbmltcG9ydCB7IFJlZiwgZm9yd2FyZFJlZiB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkQmFzZURyb3BEb3duID0gc3R5bGVkKChwcm9wczogSHZCYXNlRHJvcGRvd25Qcm9wcykgPT4gKFxuICA8SHZCYXNlRHJvcGRvd24gey4uLnByb3BzfSAvPlxuKSkoe1xuICB3aWR0aDogMzIsXG59KTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEJ1dHRvbiA9IHN0eWxlZChcbiAgZm9yd2FyZFJlZigocHJvcHM6IEh2QnV0dG9uUHJvcHMsIHJlZj86IFJlZjxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICByZXR1cm4gPEh2QnV0dG9uIHsuLi5wcm9wc30gcmVmPXtyZWZ9IC8+O1xuICB9KSxcbiAgdHJhbnNpZW50T3B0aW9uc1xuKSgoeyAkb3BlbiB9OiB7ICRvcGVuOiBib29sZWFuIH0pID0+
|
|
39
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRHJvcERvd25NZW51L0Ryb3BEb3duTWVudS5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFrQyIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL0Ryb3BEb3duTWVudS9Ecm9wRG93bk1lbnUuc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHtcbiAgSHZCYXNlRHJvcGRvd24sXG4gIEh2QmFzZURyb3Bkb3duUHJvcHMsXG4gIEh2QnV0dG9uLFxuICBIdkJ1dHRvblByb3BzLFxuICBIdlBhbmVsLFxuICBIdlBhbmVsUHJvcHMsXG59IGZyb20gXCJAY29yZS9jb21wb25lbnRzXCI7XG5pbXBvcnQgeyB0cmFuc2llbnRPcHRpb25zIH0gZnJvbSBcIkBjb3JlL3V0aWxzL3RyYW5zaWVudE9wdGlvbnNcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcbmltcG9ydCB7IFJlZiwgZm9yd2FyZFJlZiB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkQmFzZURyb3BEb3duID0gc3R5bGVkKChwcm9wczogSHZCYXNlRHJvcGRvd25Qcm9wcykgPT4gKFxuICA8SHZCYXNlRHJvcGRvd24gey4uLnByb3BzfSAvPlxuKSkoe1xuICB3aWR0aDogMzIsXG59KTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEJ1dHRvbiA9IHN0eWxlZChcbiAgZm9yd2FyZFJlZigocHJvcHM6IEh2QnV0dG9uUHJvcHMsIHJlZj86IFJlZjxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICByZXR1cm4gPEh2QnV0dG9uIHsuLi5wcm9wc30gcmVmPXtyZWZ9IC8+O1xuICB9KSxcbiAgdHJhbnNpZW50T3B0aW9uc1xuKSgoeyAkb3BlbiB9OiB7ICRvcGVuOiBib29sZWFuIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIGJveFNpemluZzogXCJjb250ZW50LWJveFwiLFxuICBwYWRkaW5nOiAwLFxuXG4gIGJvcmRlclJhZGl1czogdGhlbWUuZHJvcERvd25NZW51LmJvcmRlclJhZGl1cyxcbiAgYm9yZGVyOiB0aGVtZS5kcm9wRG93bk1lbnUuYm9yZGVyQ2xvc2VkLFxuXG4gIC4uLigkb3BlbiAmJiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5jb2xvcnMuYXRtbzEsXG4gICAgYm94U2hhZG93OiB0aGVtZS5jb2xvcnMuc2hhZG93LFxuXG4gICAgXCImOmhvdmVyXCI6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLmF0bW8xLFxuICAgIH0sXG5cbiAgICBcIiYgc3ZnIC5jb2xvcjBcIjoge1xuICAgICAgZmlsbDogdGhlbWUuY29sb3JzLnNlY29uZGFyeSxcbiAgICB9LFxuXG4gICAgYm9yZGVyUmFkaXVzOiBgJHt0aGVtZS5yYWRpaS5iYXNlfSAke3RoZW1lLnJhZGlpLmJhc2V9IDBweCAwcHhgLFxuICAgIGJvcmRlcjogdGhlbWUuZHJvcERvd25NZW51LmJvcmRlck9wZW5lZCxcbiAgfSksXG59KSk7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRQYW5lbCA9IHN0eWxlZCgocHJvcHM6IEh2UGFuZWxQcm9wcykgPT4gKFxuICA8SHZQYW5lbCB7Li4ucHJvcHN9IC8+XG4pKSh7XG4gIGJvcmRlcjogdGhlbWUuZHJvcERvd25NZW51LmJvcmRlck9wZW5lZCxcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS5kcm9wRG93bk1lbnUuYm9yZGVyUmFkaXVzLFxufSk7XG4iXX0= */",
|
|
40
40
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
41
41
|
});
|
|
42
42
|
const StyledButton = /* @__PURE__ */ _styled(forwardRef((props, ref) => {
|
|
@@ -57,7 +57,6 @@ const StyledButton = /* @__PURE__ */ _styled(forwardRef((props, ref) => {
|
|
|
57
57
|
padding: 0,
|
|
58
58
|
borderRadius: theme.dropDownMenu.borderRadius,
|
|
59
59
|
border: theme.dropDownMenu.borderClosed,
|
|
60
|
-
borderBottom: "none",
|
|
61
60
|
...$open && {
|
|
62
61
|
backgroundColor: theme.colors.atmo1,
|
|
63
62
|
boxShadow: theme.colors.shadow,
|
|
@@ -68,10 +67,9 @@ const StyledButton = /* @__PURE__ */ _styled(forwardRef((props, ref) => {
|
|
|
68
67
|
fill: theme.colors.secondary
|
|
69
68
|
},
|
|
70
69
|
borderRadius: `${theme.radii.base} ${theme.radii.base} 0px 0px`,
|
|
71
|
-
border: theme.dropDownMenu.borderOpened
|
|
72
|
-
borderBottom: "none"
|
|
70
|
+
border: theme.dropDownMenu.borderOpened
|
|
73
71
|
}
|
|
74
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRHJvcERvd25NZW51L0Ryb3BEb3duTWVudS5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CNEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9Ecm9wRG93bk1lbnUvRHJvcERvd25NZW51LnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7XG4gIEh2QmFzZURyb3Bkb3duLFxuICBIdkJhc2VEcm9wZG93blByb3BzLFxuICBIdkJ1dHRvbixcbiAgSHZCdXR0b25Qcm9wcyxcbiAgSHZQYW5lbCxcbiAgSHZQYW5lbFByb3BzLFxufSBmcm9tIFwiQGNvcmUvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgdHJhbnNpZW50T3B0aW9ucyB9IGZyb20gXCJAY29yZS91dGlscy90cmFuc2llbnRPcHRpb25zXCI7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5pbXBvcnQgeyBSZWYsIGZvcndhcmRSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEJhc2VEcm9wRG93biA9IHN0eWxlZCgocHJvcHM6IEh2QmFzZURyb3Bkb3duUHJvcHMpID0+IChcbiAgPEh2QmFzZURyb3Bkb3duIHsuLi5wcm9wc30gLz5cbikpKHtcbiAgd2lkdGg6IDMyLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQoXG4gIGZvcndhcmRSZWYoKHByb3BzOiBIdkJ1dHRvblByb3BzLCByZWY/OiBSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+
|
|
72
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRHJvcERvd25NZW51L0Ryb3BEb3duTWVudS5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CNEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9Ecm9wRG93bk1lbnUvRHJvcERvd25NZW51LnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7XG4gIEh2QmFzZURyb3Bkb3duLFxuICBIdkJhc2VEcm9wZG93blByb3BzLFxuICBIdkJ1dHRvbixcbiAgSHZCdXR0b25Qcm9wcyxcbiAgSHZQYW5lbCxcbiAgSHZQYW5lbFByb3BzLFxufSBmcm9tIFwiQGNvcmUvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgdHJhbnNpZW50T3B0aW9ucyB9IGZyb20gXCJAY29yZS91dGlscy90cmFuc2llbnRPcHRpb25zXCI7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5pbXBvcnQgeyBSZWYsIGZvcndhcmRSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEJhc2VEcm9wRG93biA9IHN0eWxlZCgocHJvcHM6IEh2QmFzZURyb3Bkb3duUHJvcHMpID0+IChcbiAgPEh2QmFzZURyb3Bkb3duIHsuLi5wcm9wc30gLz5cbikpKHtcbiAgd2lkdGg6IDMyLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQoXG4gIGZvcndhcmRSZWYoKHByb3BzOiBIdkJ1dHRvblByb3BzLCByZWY/OiBSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgcmV0dXJuIDxIdkJ1dHRvbiB7Li4ucHJvcHN9IHJlZj17cmVmfSAvPjtcbiAgfSksXG4gIHRyYW5zaWVudE9wdGlvbnNcbikoKHsgJG9wZW4gfTogeyAkb3BlbjogYm9vbGVhbiB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICBib3hTaXppbmc6IFwiY29udGVudC1ib3hcIixcbiAgcGFkZGluZzogMCxcblxuICBib3JkZXJSYWRpdXM6IHRoZW1lLmRyb3BEb3duTWVudS5ib3JkZXJSYWRpdXMsXG4gIGJvcmRlcjogdGhlbWUuZHJvcERvd25NZW51LmJvcmRlckNsb3NlZCxcblxuICAuLi4oJG9wZW4gJiYge1xuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLmF0bW8xLFxuICAgIGJveFNoYWRvdzogdGhlbWUuY29sb3JzLnNoYWRvdyxcblxuICAgIFwiJjpob3ZlclwiOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5hdG1vMSxcbiAgICB9LFxuXG4gICAgXCImIHN2ZyAuY29sb3IwXCI6IHtcbiAgICAgIGZpbGw6IHRoZW1lLmNvbG9ycy5zZWNvbmRhcnksXG4gICAgfSxcblxuICAgIGJvcmRlclJhZGl1czogYCR7dGhlbWUucmFkaWkuYmFzZX0gJHt0aGVtZS5yYWRpaS5iYXNlfSAwcHggMHB4YCxcbiAgICBib3JkZXI6IHRoZW1lLmRyb3BEb3duTWVudS5ib3JkZXJPcGVuZWQsXG4gIH0pLFxufSkpO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkUGFuZWwgPSBzdHlsZWQoKHByb3BzOiBIdlBhbmVsUHJvcHMpID0+IChcbiAgPEh2UGFuZWwgey4uLnByb3BzfSAvPlxuKSkoe1xuICBib3JkZXI6IHRoZW1lLmRyb3BEb3duTWVudS5ib3JkZXJPcGVuZWQsXG4gIGJvcmRlclJhZGl1czogdGhlbWUuZHJvcERvd25NZW51LmJvcmRlclJhZGl1cyxcbn0pO1xuIl19 */");
|
|
75
73
|
const StyledPanel = /* @__PURE__ */ _styled((props) => /* @__PURE__ */ jsx(HvPanel, {
|
|
76
74
|
...props
|
|
77
75
|
}), process.env.NODE_ENV === "production" ? {
|
|
@@ -82,7 +80,7 @@ const StyledPanel = /* @__PURE__ */ _styled((props) => /* @__PURE__ */ jsx(HvPan
|
|
|
82
80
|
})({
|
|
83
81
|
border: theme.dropDownMenu.borderOpened,
|
|
84
82
|
borderRadius: theme.dropDownMenu.borderRadius
|
|
85
|
-
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
83
|
+
}, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRHJvcERvd25NZW51L0Ryb3BEb3duTWVudS5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlEMkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9Ecm9wRG93bk1lbnUvRHJvcERvd25NZW51LnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7XG4gIEh2QmFzZURyb3Bkb3duLFxuICBIdkJhc2VEcm9wZG93blByb3BzLFxuICBIdkJ1dHRvbixcbiAgSHZCdXR0b25Qcm9wcyxcbiAgSHZQYW5lbCxcbiAgSHZQYW5lbFByb3BzLFxufSBmcm9tIFwiQGNvcmUvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgdHJhbnNpZW50T3B0aW9ucyB9IGZyb20gXCJAY29yZS91dGlscy90cmFuc2llbnRPcHRpb25zXCI7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gXCJAaGl0YWNoaXZhbnRhcmEvdWlraXQtc3R5bGVzXCI7XG5pbXBvcnQgeyBSZWYsIGZvcndhcmRSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEJhc2VEcm9wRG93biA9IHN0eWxlZCgocHJvcHM6IEh2QmFzZURyb3Bkb3duUHJvcHMpID0+IChcbiAgPEh2QmFzZURyb3Bkb3duIHsuLi5wcm9wc30gLz5cbikpKHtcbiAgd2lkdGg6IDMyLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQoXG4gIGZvcndhcmRSZWYoKHByb3BzOiBIdkJ1dHRvblByb3BzLCByZWY/OiBSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgcmV0dXJuIDxIdkJ1dHRvbiB7Li4ucHJvcHN9IHJlZj17cmVmfSAvPjtcbiAgfSksXG4gIHRyYW5zaWVudE9wdGlvbnNcbikoKHsgJG9wZW4gfTogeyAkb3BlbjogYm9vbGVhbiB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICBib3hTaXppbmc6IFwiY29udGVudC1ib3hcIixcbiAgcGFkZGluZzogMCxcblxuICBib3JkZXJSYWRpdXM6IHRoZW1lLmRyb3BEb3duTWVudS5ib3JkZXJSYWRpdXMsXG4gIGJvcmRlcjogdGhlbWUuZHJvcERvd25NZW51LmJvcmRlckNsb3NlZCxcblxuICAuLi4oJG9wZW4gJiYge1xuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLmF0bW8xLFxuICAgIGJveFNoYWRvdzogdGhlbWUuY29sb3JzLnNoYWRvdyxcblxuICAgIFwiJjpob3ZlclwiOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5hdG1vMSxcbiAgICB9LFxuXG4gICAgXCImIHN2ZyAuY29sb3IwXCI6IHtcbiAgICAgIGZpbGw6IHRoZW1lLmNvbG9ycy5zZWNvbmRhcnksXG4gICAgfSxcblxuICAgIGJvcmRlclJhZGl1czogYCR7dGhlbWUucmFkaWkuYmFzZX0gJHt0aGVtZS5yYWRpaS5iYXNlfSAwcHggMHB4YCxcbiAgICBib3JkZXI6IHRoZW1lLmRyb3BEb3duTWVudS5ib3JkZXJPcGVuZWQsXG4gIH0pLFxufSkpO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkUGFuZWwgPSBzdHlsZWQoKHByb3BzOiBIdlBhbmVsUHJvcHMpID0+IChcbiAgPEh2UGFuZWwgey4uLnByb3BzfSAvPlxuKSkoe1xuICBib3JkZXI6IHRoZW1lLmRyb3BEb3duTWVudS5ib3JkZXJPcGVuZWQsXG4gIGJvcmRlclJhZGl1czogdGhlbWUuZHJvcERvd25NZW51LmJvcmRlclJhZGl1cyxcbn0pO1xuIl19 */");
|
|
86
84
|
export {
|
|
87
85
|
StyledBaseDropDown,
|
|
88
86
|
StyledButton,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropDownMenu.styles.js","sources":["../../../../src/components/DropDownMenu/DropDownMenu.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport {\n HvBaseDropdown,\n HvBaseDropdownProps,\n HvButton,\n HvButtonProps,\n HvPanel,\n HvPanelProps,\n} from \"@core/components\";\nimport { transientOptions } from \"@core/utils/transientOptions\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { Ref, forwardRef } from \"react\";\n\nexport const StyledBaseDropDown = styled((props: HvBaseDropdownProps) => (\n <HvBaseDropdown {...props} />\n))({\n width: 32,\n});\n\nexport const StyledButton = styled(\n forwardRef((props: HvButtonProps, ref?: Ref<HTMLButtonElement>) => {\n return <HvButton {...props} ref={ref} />;\n }),\n transientOptions\n)(({ $open }: { $open: boolean }) => ({\n position: \"relative\",\n boxSizing: \"content-box\",\n padding: 0,\n\n borderRadius: theme.dropDownMenu.borderRadius,\n border: theme.dropDownMenu.borderClosed,\n
|
|
1
|
+
{"version":3,"file":"DropDownMenu.styles.js","sources":["../../../../src/components/DropDownMenu/DropDownMenu.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport {\n HvBaseDropdown,\n HvBaseDropdownProps,\n HvButton,\n HvButtonProps,\n HvPanel,\n HvPanelProps,\n} from \"@core/components\";\nimport { transientOptions } from \"@core/utils/transientOptions\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { Ref, forwardRef } from \"react\";\n\nexport const StyledBaseDropDown = styled((props: HvBaseDropdownProps) => (\n <HvBaseDropdown {...props} />\n))({\n width: 32,\n});\n\nexport const StyledButton = styled(\n forwardRef((props: HvButtonProps, ref?: Ref<HTMLButtonElement>) => {\n return <HvButton {...props} ref={ref} />;\n }),\n transientOptions\n)(({ $open }: { $open: boolean }) => ({\n position: \"relative\",\n boxSizing: \"content-box\",\n padding: 0,\n\n borderRadius: theme.dropDownMenu.borderRadius,\n border: theme.dropDownMenu.borderClosed,\n\n ...($open && {\n backgroundColor: theme.colors.atmo1,\n boxShadow: theme.colors.shadow,\n\n \"&:hover\": {\n backgroundColor: theme.colors.atmo1,\n },\n\n \"& svg .color0\": {\n fill: theme.colors.secondary,\n },\n\n borderRadius: `${theme.radii.base} ${theme.radii.base} 0px 0px`,\n border: theme.dropDownMenu.borderOpened,\n }),\n}));\n\nexport const StyledPanel = styled((props: HvPanelProps) => (\n <HvPanel {...props} />\n))({\n border: theme.dropDownMenu.borderOpened,\n borderRadius: theme.dropDownMenu.borderRadius,\n});\n"],"names":["StyledBaseDropDown","_styled","props","HvBaseDropdown","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","StyledButton","forwardRef","ref","HvButton","_extends","transientOptions","$open","position","boxSizing","padding","borderRadius","theme","dropDownMenu","border","borderClosed","backgroundColor","colors","atmo1","boxShadow","shadow","fill","secondary","radii","base","borderOpened","StyledPanel","HvPanel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAMA,qBAAqBC,wBAAO,CAACC,8BACvCC,gBAAc;AAAA,EAAA,GAAKD;AAAK,CAAA,GAC1BE,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAACJ,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAG,MAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAD,MAAA;AAAA,EAAAC,QAAA;AAAA,EAAAC,KAAA;AAAA,EAAAC,UAAAC;AAAA,CAEA;AAEK,MAAMC,eAAeb,wBAC1Bc,WAAW,CAACb,OAAsBc,QAAiC;AACjE,6BAAQC,UAAQ;AAAA,IAAA,GAAKf;AAAAA,IAAOc;AAAAA,EAAAA,CAAY;AAC1C,CAAC,GAACZ,QAAAC,IAAAC,4BAAAY,SAAA,IAAA;AAAA,EAAAX,QAAA;AAAA,GACFY,gBAAgB,IAAAD,SAAA,IAAA;AAAA,EAAAX,QAAA;AAAA,EAAAC,OAAA;AAAA,GAAhBW,gBAAgB,CACjB,EAAC,CAAC;AAAA,EAAEC;AAA0B,OAAO;AAAA,EACpCC,UAAU;AAAA,EACVC,WAAW;AAAA,EACXC,SAAS;AAAA,EAETC,cAAcC,MAAMC,aAAaF;AAAAA,EACjCG,QAAQF,MAAMC,aAAaE;AAAAA,EAE3B,GAAIR,SAAS;AAAA,IACXS,iBAAiBJ,MAAMK,OAAOC;AAAAA,IAC9BC,WAAWP,MAAMK,OAAOG;AAAAA,IAExB,WAAW;AAAA,MACTJ,iBAAiBJ,MAAMK,OAAOC;AAAAA,IAChC;AAAA,IAEA,iBAAiB;AAAA,MACfG,MAAMT,MAAMK,OAAOK;AAAAA,IACrB;AAAA,IAEAX,cAAe,GAAEC,MAAMW,MAAMC,QAAQZ,MAAMW,MAAMC;AAAAA,IACjDV,QAAQF,MAAMC,aAAaY;AAAAA,EAC7B;AACF,IAAElC,QAAAC,IAAAC,aAAC,eAAA,KAAA,i4EAAA;AAEI,MAAMiC,cAActC,wBAAO,CAACC,8BAChCsC,SAAO;AAAA,EAAA,GAAKtC;AAAK,CAAA,GACnBE,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA,EACDmB,QAAQF,MAAMC,aAAaY;AAAAA,EAC3Bd,cAAcC,MAAMC,aAAaF;AACnC,GAACpB,QAAAC,IAAAC,aAAC,eAAA,KAAA,i4EAAA;"}
|
|
@@ -2,7 +2,6 @@ import { useContext } from "react";
|
|
|
2
2
|
import { HvFilterGroupContext } from "../FilterGroupContext.js";
|
|
3
3
|
import { styles } from "./Counter.styles.js";
|
|
4
4
|
import { ClassNames } from "@emotion/react";
|
|
5
|
-
import { clsx } from "clsx";
|
|
6
5
|
import filterGroupCounterClasses from "./counterClasses.js";
|
|
7
6
|
import { jsx, jsxs } from "@emotion/react/jsx-runtime";
|
|
8
7
|
const getExistingFiltersById = (idx, filterValues, filterOptions) => {
|
|
@@ -37,11 +36,12 @@ const HvFilterGroupCounter = ({
|
|
|
37
36
|
const totalCounter = options.reduce((acc, option) => acc + option.data.length, 0);
|
|
38
37
|
return /* @__PURE__ */ jsx(ClassNames, {
|
|
39
38
|
children: ({
|
|
40
|
-
css
|
|
39
|
+
css,
|
|
40
|
+
cx
|
|
41
41
|
}) => /* @__PURE__ */ jsxs("div", {
|
|
42
|
-
className:
|
|
42
|
+
className: cx(filterGroupCounterClasses.root, css(styles.root), className, classes == null ? void 0 : classes.root),
|
|
43
43
|
children: [partialCounter > 0 ? /* @__PURE__ */ jsx("p", {
|
|
44
|
-
className:
|
|
44
|
+
className: cx(filterGroupCounterClasses.partialCounter, css(styles.partialCounter), classes == null ? void 0 : classes.partialCounter),
|
|
45
45
|
children: partialCounter
|
|
46
46
|
}) : partialCounter, ` / ${totalCounter}`]
|
|
47
47
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Counter.js","sources":["../../../../../src/components/FilterGroup/Counter/Counter.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { styles } from \"./Counter.styles\";\nimport { HvFilterGroupFilters, HvFilterGroupValue } from \"../FilterGroup\";\nimport { ClassNames } from \"@emotion/react\";\nimport
|
|
1
|
+
{"version":3,"file":"Counter.js","sources":["../../../../../src/components/FilterGroup/Counter/Counter.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { styles } from \"./Counter.styles\";\nimport { HvFilterGroupFilters, HvFilterGroupValue } from \"../FilterGroup\";\nimport { ClassNames } from \"@emotion/react\";\nimport filterGroupCounterClasses, {\n HvFilterGroupCounterClasses,\n} from \"./counterClasses\";\n\nexport interface HvFilterGroupCounterProps {\n className?: string;\n id?: string;\n classes?: HvFilterGroupCounterClasses;\n}\n\nconst getExistingFiltersById = (\n idx: number,\n filterValues: HvFilterGroupValue,\n filterOptions: HvFilterGroupFilters\n) => {\n let total = 0;\n filterValues[idx]?.forEach((fv) => {\n if (filterOptions[idx]?.data.find((f) => f.id === fv)) {\n total += 1;\n }\n });\n return total;\n};\n\nexport const HvFilterGroupCounter = ({\n className,\n id,\n classes,\n}: HvFilterGroupCounterProps) => {\n const {\n filterOptions,\n filterValues = [],\n appliedFilters = [],\n } = useContext(HvFilterGroupContext);\n\n const options =\n id && filterOptions.find((option) => option.id === id)\n ? ([\n filterOptions.find((option) => option.id === id),\n ] as HvFilterGroupFilters)\n : filterOptions;\n const optionIdx = filterOptions.findIndex((option) => option.id === id);\n\n let groupsCounter = 0;\n appliedFilters\n ?.flat()\n ?.filter((elem) => elem !== undefined)\n .forEach((fg, i) => {\n groupsCounter += getExistingFiltersById(i, filterValues, filterOptions);\n });\n\n const partialCounter = id\n ? getExistingFiltersById(optionIdx, filterValues, filterOptions) || 0\n : groupsCounter;\n\n const totalCounter = options.reduce(\n (acc, option) => acc + option.data.length,\n 0\n );\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <div\n className={cx(\n filterGroupCounterClasses.root,\n css(styles.root),\n className,\n classes?.root\n )}\n >\n {partialCounter > 0 ? (\n <p\n className={cx(\n filterGroupCounterClasses.partialCounter,\n css(styles.partialCounter),\n classes?.partialCounter\n )}\n >\n {partialCounter}\n </p>\n ) : (\n partialCounter\n )}\n {` / ${totalCounter}`}\n </div>\n )}\n </ClassNames>\n );\n};\n"],"names":["getExistingFiltersById","idx","filterValues","filterOptions","total","forEach","fv","data","find","f","id","HvFilterGroupCounter","className","classes","appliedFilters","useContext","HvFilterGroupContext","options","option","optionIdx","findIndex","groupsCounter","flat","filter","elem","undefined","fg","i","partialCounter","totalCounter","reduce","acc","length","ClassNames","children","css","cx","filterGroupCounterClasses","root","styles"],"mappings":";;;;;;AAeA,MAAMA,yBAAyBA,CAC7BC,KACAC,cACAC,kBACG;;AACH,MAAIC,QAAQ;AACCH,qBAAAA,GAAG,MAAHA,mBAAMI,QAASC,CAAO,OAAA;;AAC7BH,SAAAA,MAAAA,cAAcF,GAAG,MAAjBE,gBAAAA,IAAoBI,KAAKC,KAAMC,CAAMA,MAAAA,EAAEC,OAAOJ,KAAK;AAC5C,eAAA;AAAA,IACX;AAAA,EAAA;AAEKF,SAAAA;AACT;AAEO,MAAMO,uBAAuBA,CAAC;AAAA,EACnCC;AAAAA,EACAF;AAAAA,EACAG;AACyB,MAAM;;AACzB,QAAA;AAAA,IACJV;AAAAA,IACAD,eAAe,CAAE;AAAA,IACjBY,iBAAiB,CAAA;AAAA,EAAA,IACfC,WAAWC,oBAAoB;AAEnC,QAAMC,UACJP,MAAMP,cAAcK,KAAMU,CAAAA,WAAWA,OAAOR,OAAOA,EAAE,IAChD,CACCP,cAAcK,KAAMU,CAAAA,WAAWA,OAAOR,OAAOA,EAAE,CAAC,IAElDP;AACN,QAAMgB,YAAYhB,cAAciB,UAAWF,CAAWA,WAAAA,OAAOR,OAAOA,EAAE;AAEtE,MAAIW,gBAAgB;AAEhBC,yDAAAA,WAAAA,mBACAC,OAAQC,CAASA,SAAAA,SAASC,QAC3BpB,QAAQ,CAACqB,IAAIC,MAAM;AACD3B,qBAAAA,uBAAuB2B,GAAGzB,cAAcC,aAAa;AAAA,EAAA;AAG1E,QAAMyB,iBAAiBlB,KACnBV,uBAAuBmB,WAAWjB,cAAcC,aAAa,KAAK,IAClEkB;AAEEQ,QAAAA,eAAeZ,QAAQa,OAC3B,CAACC,KAAKb,WAAWa,MAAMb,OAAOX,KAAKyB,QACnC,CAAC;AAGH,6BACGC,YAAU;AAAA,IAAAC,UACRA,CAAC;AAAA,MAAEC;AAAAA,MAAKC;AAAAA,IAAAA,2BACP,OAAA;AAAA,MACExB,WAAWwB,GACTC,0BAA0BC,MAC1BH,IAAII,OAAOD,IAAI,GACf1B,WACAC,mCAASyB,IAAI;AAAA,MACbJ,UAEDN,CAAAA,iBAAiB,wBAChB,KAAA;AAAA,QACEhB,WAAWwB,GACTC,0BAA0BT,gBAC1BO,IAAII,OAAOX,cAAc,GACzBf,mCAASe,cAAc;AAAA,QACvBM,UAEDN;AAAAA,MAAc,CAAA,IAGjBA,gBAEA,MAAKC,cAAc;AAAA,IAAA,CAAA;AAAA,EAAA,CAGd;AAEjB;"}
|
|
@@ -3,7 +3,6 @@ import filterGroupContentClasses from "./filterContentClasses.js";
|
|
|
3
3
|
import { HvFilterGroupContext } from "../FilterGroupContext.js";
|
|
4
4
|
import { useState, useContext, useRef, useMemo } from "react";
|
|
5
5
|
import { Filters } from "@hitachivantara/uikit-react-icons";
|
|
6
|
-
import { clsx } from "clsx";
|
|
7
6
|
import { ClassNames } from "@emotion/react";
|
|
8
7
|
import { jsxs, Fragment, jsx } from "@emotion/react/jsx-runtime";
|
|
9
8
|
import { HvFilterGroupLeftPanel } from "../LeftPanel/LeftPanel.js";
|
|
@@ -82,15 +81,16 @@ const HvFilterGroupContent = ({
|
|
|
82
81
|
}), [labels == null ? void 0 : labels.placeholder]);
|
|
83
82
|
return /* @__PURE__ */ jsx(ClassNames, {
|
|
84
83
|
children: ({
|
|
85
|
-
css
|
|
84
|
+
css,
|
|
85
|
+
cx
|
|
86
86
|
}) => /* @__PURE__ */ jsxs(HvBaseDropdown, {
|
|
87
87
|
id: setId(id, "dropdown"),
|
|
88
88
|
role: "combobox",
|
|
89
89
|
classes: {
|
|
90
|
-
root:
|
|
91
|
-
panel:
|
|
92
|
-
selection:
|
|
93
|
-
header:
|
|
90
|
+
root: cx(filterGroupContentClasses.dropdown, classes == null ? void 0 : classes.dropdown),
|
|
91
|
+
panel: cx(filterGroupContentClasses.panel, css(styles.panel), classes == null ? void 0 : classes.panel),
|
|
92
|
+
selection: cx(filterGroupContentClasses.baseDropdownSelection, css(styles.baseDropdownSelection), classes == null ? void 0 : classes.baseDropdownSelection),
|
|
93
|
+
header: cx(filterGroupContentClasses.header, css(styles.header), classes == null ? void 0 : classes.header)
|
|
94
94
|
},
|
|
95
95
|
disabled,
|
|
96
96
|
disablePortal,
|
|
@@ -119,22 +119,22 @@ const HvFilterGroupContent = ({
|
|
|
119
119
|
ref: focusTarget,
|
|
120
120
|
tabIndex: -1
|
|
121
121
|
}), /* @__PURE__ */ jsxs("div", {
|
|
122
|
-
className:
|
|
122
|
+
className: cx(filterGroupContentClasses.root, css(styles.root), classes == null ? void 0 : classes.root),
|
|
123
123
|
style: {
|
|
124
124
|
height
|
|
125
125
|
},
|
|
126
126
|
children: [/* @__PURE__ */ jsx(HvFilterGroupLeftPanel, {
|
|
127
127
|
id,
|
|
128
|
-
className:
|
|
128
|
+
className: cx(filterGroupContentClasses.leftSidePanel, css(styles.leftSidePanel), classes == null ? void 0 : classes.leftSidePanel),
|
|
129
129
|
emptyElement: leftEmptyElement
|
|
130
130
|
}), /* @__PURE__ */ jsx(HvFilterGroupRightPanel, {
|
|
131
131
|
id,
|
|
132
|
-
className:
|
|
132
|
+
className: cx(filterGroupContentClasses.rightSidePanel, css(styles.rightSidePanel), classes == null ? void 0 : classes.rightSidePanel),
|
|
133
133
|
emptyElement: rightEmptyElement,
|
|
134
134
|
labels
|
|
135
135
|
})]
|
|
136
136
|
}), /* @__PURE__ */ jsxs(HvActionBar, {
|
|
137
|
-
className:
|
|
137
|
+
className: cx(filterGroupContentClasses.actionBar, css(styles.actionBar), classes == null ? void 0 : classes.actionBar),
|
|
138
138
|
children: [/* @__PURE__ */ jsx(HvButton, {
|
|
139
139
|
id: setId(id, "clearFilters-button"),
|
|
140
140
|
disabled: defaultValue ? (defaultValue == null ? void 0 : defaultValue.flat().length) === (filterValues == null ? void 0 : filterValues.flat().length) : (filterValues == null ? void 0 : filterValues.flat().length) === 0,
|
|
@@ -143,14 +143,14 @@ const HvFilterGroupContent = ({
|
|
|
143
143
|
children: labels == null ? void 0 : labels.clearLabel
|
|
144
144
|
}), /* @__PURE__ */ jsx("div", {
|
|
145
145
|
"aria-hidden": "true",
|
|
146
|
-
className:
|
|
146
|
+
className: cx(filterGroupContentClasses.space, css(styles.space), classes == null ? void 0 : classes.space),
|
|
147
147
|
children: " "
|
|
148
148
|
}), /* @__PURE__ */ jsx(HvButton, {
|
|
149
149
|
id: setId(id, "apply-button"),
|
|
150
150
|
disabled: applyDisabled,
|
|
151
151
|
variant: activeTheme == null ? void 0 : activeTheme.filterGroup.applyButtonVariant,
|
|
152
152
|
onClick: onApplyHandler,
|
|
153
|
-
className:
|
|
153
|
+
className: cx(filterGroupContentClasses.applyButton, css(styles.applyButton), classes == null ? void 0 : classes.applyButton),
|
|
154
154
|
children: labels == null ? void 0 : labels.applyLabel
|
|
155
155
|
}), /* @__PURE__ */ jsx(HvButton, {
|
|
156
156
|
id: setId(id, "cancel-button"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterContent.js","sources":["../../../../../src/components/FilterGroup/FilterContent/FilterContent.tsx"],"sourcesContent":["import {\n HvActionBar,\n HvBaseDropdown,\n HvBaseDropdownProps,\n HvButton,\n HvButtonVariant,\n HvFormStatus,\n HvTypography,\n} from \"@core/components\";\nimport { setId } from \"@core/utils\";\nimport {\n HvFilterGroupLabels,\n HvFilterGroupValue,\n HvFilterGroupHorizontalPlacement,\n} from \"../FilterGroup\";\nimport { styles } from \"./FilterContent.styles\";\nimport filterGroupContentClasses, {\n HvFilterGroupContentClasses,\n} from \"./filterContentClasses\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { useContext, useMemo, useRef, useState } from \"react\";\nimport { Filters } from \"@hitachivantara/uikit-react-icons\";\nimport { clsx } from \"clsx\";\nimport { HvFilterGroupCounter } from \"../Counter\";\nimport { ClassNames } from \"@emotion/react\";\nimport { HvFilterGroupLeftPanel } from \"../LeftPanel\";\nimport { HvFilterGroupRightPanel } from \"../RightPanel\";\nimport { useTheme } from \"@core/hooks\";\n\nexport interface HvFilterGroupContentProps\n extends Omit<HvBaseDropdownProps, \"onChange\"> {\n description?: React.ReactNode;\n status?: HvFormStatus;\n onChange?: (\n event: React.MouseEvent<HTMLButtonElement>,\n value?: HvFilterGroupValue\n ) => void;\n onCancel?: (event: React.MouseEvent<HTMLButtonElement> | Event) => void;\n onClear?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n labels?: HvFilterGroupLabels;\n horizontalPlacement?: HvFilterGroupHorizontalPlacement;\n disablePortal?: boolean;\n escapeWithReference?: boolean;\n height?: string | number;\n leftEmptyElement?: React.ReactNode;\n rightEmptyElement?: React.ReactNode;\n disabled?: boolean;\n classes?: HvFilterGroupContentClasses;\n}\n\nexport const HvFilterGroupContent = ({\n id,\n status,\n disabled = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n onCancel,\n onClear,\n labels,\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n height,\n leftEmptyElement,\n rightEmptyElement,\n classes,\n ...others\n}: HvFilterGroupContentProps) => {\n const { activeTheme } = useTheme();\n\n const [filterGroupOpen, setFilterGroupOpen] = useState<boolean>(false);\n\n const {\n defaultValue,\n filterValues,\n rollbackFilters,\n clearFilters,\n applyFilters,\n applyDisabled,\n } = useContext(HvFilterGroupContext);\n\n const focusTarget = useRef<HTMLDivElement>(null);\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const onApplyHandler = (event: React.MouseEvent<HTMLButtonElement>) => {\n applyFilters();\n onChange?.(event, filterValues);\n setFilterGroupOpen(false);\n };\n\n const onCancelHandler = (\n event: React.MouseEvent<HTMLButtonElement> | Event\n ) => {\n rollbackFilters();\n onCancel?.(event);\n setFilterGroupOpen(false);\n };\n\n const onClearHandler = (event: React.MouseEvent<HTMLButtonElement>) => {\n clearFilters();\n onClear?.(event);\n };\n\n const handleToggle = (event: Event, open: boolean) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (event === null) return;\n setFilterGroupOpen(open);\n if (!open) onCancelHandler?.(event);\n };\n\n const Header = useMemo(\n () => (\n <>\n <Filters />\n <HvTypography variant=\"label\">{labels?.placeholder}</HvTypography>\n </>\n ),\n [labels?.placeholder]\n );\n\n return (\n <ClassNames>\n {({ css }) => (\n <HvBaseDropdown\n id={setId(id, \"dropdown\")}\n role=\"combobox\"\n classes={{\n root: clsx(classes?.dropdown, filterGroupContentClasses.dropdown),\n panel: clsx(\n classes?.panel,\n filterGroupContentClasses.panel,\n css(styles.panel)\n ),\n selection: clsx(\n classes?.baseDropdownSelection,\n filterGroupContentClasses.baseDropdownSelection,\n css(styles.baseDropdownSelection)\n ),\n header: clsx(\n classes?.header,\n filterGroupContentClasses.header,\n css(styles.header)\n ),\n }}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={filterGroupOpen}\n onToggle={handleToggle}\n onClickOutside={onCancelHandler}\n onContainerCreation={focusOnContainer}\n placeholder={Header}\n adornment={<HvFilterGroupCounter />}\n popperProps={{\n modifiers: [\n { name: \"preventOverflow\", enabled: escapeWithReference },\n ],\n }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={status === \"invalid\" ? true : undefined}\n aria-errormessage={\n status === \"invalid\" ? setId(id, \"error\") : undefined\n }\n aria-describedby={\n [description && setId(id, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n {...others}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <div\n className={clsx(\n classes?.root,\n filterGroupContentClasses.root,\n css(styles.root)\n )}\n style={{ height }}\n >\n <HvFilterGroupLeftPanel\n id={id}\n className={clsx(\n classes?.leftSidePanel,\n filterGroupContentClasses.leftSidePanel,\n css(styles.leftSidePanel)\n )}\n emptyElement={leftEmptyElement}\n />\n <HvFilterGroupRightPanel\n id={id}\n className={clsx(\n classes?.rightSidePanel,\n filterGroupContentClasses.rightSidePanel,\n css(styles.rightSidePanel)\n )}\n emptyElement={rightEmptyElement}\n labels={labels}\n />\n </div>\n <HvActionBar\n className={clsx(\n classes?.actionBar,\n filterGroupContentClasses.actionBar,\n css(styles.actionBar)\n )}\n >\n <HvButton\n id={setId(id, \"clearFilters-button\")}\n disabled={\n defaultValue\n ? defaultValue?.flat().length === filterValues?.flat().length\n : filterValues?.flat().length === 0\n }\n variant=\"secondaryGhost\"\n onClick={onClearHandler}\n >\n {labels?.clearLabel}\n </HvButton>\n <div\n aria-hidden=\"true\"\n className={clsx(\n classes?.space,\n filterGroupContentClasses.space,\n css(styles.space)\n )}\n >\n \n </div>\n <HvButton\n id={setId(id, \"apply-button\")}\n disabled={applyDisabled}\n variant={\n activeTheme?.filterGroup.applyButtonVariant as HvButtonVariant\n }\n onClick={onApplyHandler}\n className={clsx(\n filterGroupContentClasses.applyButton,\n css(styles.applyButton),\n classes?.applyButton\n )}\n >\n {labels?.applyLabel}\n </HvButton>\n <HvButton\n id={setId(id, \"cancel-button\")}\n variant={\n activeTheme?.filterGroup.cancelButtonVariant as HvButtonVariant\n }\n onClick={onCancelHandler}\n >\n {labels?.cancelLabel}\n </HvButton>\n </HvActionBar>\n </HvBaseDropdown>\n )}\n </ClassNames>\n );\n};\n"],"names":["HvFilterGroupContent","id","status","disabled","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","labels","horizontalPlacement","disablePortal","escapeWithReference","height","leftEmptyElement","rightEmptyElement","classes","others","activeTheme","useTheme","filterGroupOpen","setFilterGroupOpen","useState","defaultValue","filterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","useContext","HvFilterGroupContext","focusTarget","useRef","focusOnContainer","current","focus","onApplyHandler","event","onCancelHandler","onClearHandler","handleToggle","open","Header","useMemo","_jsxs","_Fragment","children","Filters","HvTypography","variant","placeholder","ClassNames","css","HvBaseDropdown","setId","role","root","clsx","dropdown","filterGroupContentClasses","panel","styles","selection","baseDropdownSelection","header","variableWidth","placement","expanded","onToggle","onClickOutside","onContainerCreation","adornment","_jsx","HvFilterGroupCounter","popperProps","modifiers","name","enabled","undefined","join","trim","ref","tabIndex","className","style","HvFilterGroupLeftPanel","leftSidePanel","emptyElement","HvFilterGroupRightPanel","rightSidePanel","HvActionBar","actionBar","HvButton","flat","length","onClick","clearLabel","space","filterGroup","applyButtonVariant","applyButton","applyLabel","cancelButtonVariant","cancelLabel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilterContent.js","sources":["../../../../../src/components/FilterGroup/FilterContent/FilterContent.tsx"],"sourcesContent":["import {\n HvActionBar,\n HvBaseDropdown,\n HvBaseDropdownProps,\n HvButton,\n HvButtonVariant,\n HvFormStatus,\n HvTypography,\n} from \"@core/components\";\nimport { setId } from \"@core/utils\";\nimport {\n HvFilterGroupLabels,\n HvFilterGroupValue,\n HvFilterGroupHorizontalPlacement,\n} from \"../FilterGroup\";\nimport { styles } from \"./FilterContent.styles\";\nimport filterGroupContentClasses, {\n HvFilterGroupContentClasses,\n} from \"./filterContentClasses\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { useContext, useMemo, useRef, useState } from \"react\";\nimport { Filters } from \"@hitachivantara/uikit-react-icons\";\nimport { HvFilterGroupCounter } from \"../Counter\";\nimport { ClassNames } from \"@emotion/react\";\nimport { HvFilterGroupLeftPanel } from \"../LeftPanel\";\nimport { HvFilterGroupRightPanel } from \"../RightPanel\";\nimport { useTheme } from \"@core/hooks\";\n\nexport interface HvFilterGroupContentProps\n extends Omit<HvBaseDropdownProps, \"onChange\"> {\n description?: React.ReactNode;\n status?: HvFormStatus;\n onChange?: (\n event: React.MouseEvent<HTMLButtonElement>,\n value?: HvFilterGroupValue\n ) => void;\n onCancel?: (event: React.MouseEvent<HTMLButtonElement> | Event) => void;\n onClear?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n labels?: HvFilterGroupLabels;\n horizontalPlacement?: HvFilterGroupHorizontalPlacement;\n disablePortal?: boolean;\n escapeWithReference?: boolean;\n height?: string | number;\n leftEmptyElement?: React.ReactNode;\n rightEmptyElement?: React.ReactNode;\n disabled?: boolean;\n classes?: HvFilterGroupContentClasses;\n}\n\nexport const HvFilterGroupContent = ({\n id,\n status,\n disabled = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n onCancel,\n onClear,\n labels,\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n height,\n leftEmptyElement,\n rightEmptyElement,\n classes,\n ...others\n}: HvFilterGroupContentProps) => {\n const { activeTheme } = useTheme();\n\n const [filterGroupOpen, setFilterGroupOpen] = useState<boolean>(false);\n\n const {\n defaultValue,\n filterValues,\n rollbackFilters,\n clearFilters,\n applyFilters,\n applyDisabled,\n } = useContext(HvFilterGroupContext);\n\n const focusTarget = useRef<HTMLDivElement>(null);\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const onApplyHandler = (event: React.MouseEvent<HTMLButtonElement>) => {\n applyFilters();\n onChange?.(event, filterValues);\n setFilterGroupOpen(false);\n };\n\n const onCancelHandler = (\n event: React.MouseEvent<HTMLButtonElement> | Event\n ) => {\n rollbackFilters();\n onCancel?.(event);\n setFilterGroupOpen(false);\n };\n\n const onClearHandler = (event: React.MouseEvent<HTMLButtonElement>) => {\n clearFilters();\n onClear?.(event);\n };\n\n const handleToggle = (event: Event, open: boolean) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (event === null) return;\n setFilterGroupOpen(open);\n if (!open) onCancelHandler?.(event);\n };\n\n const Header = useMemo(\n () => (\n <>\n <Filters />\n <HvTypography variant=\"label\">{labels?.placeholder}</HvTypography>\n </>\n ),\n [labels?.placeholder]\n );\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <HvBaseDropdown\n id={setId(id, \"dropdown\")}\n role=\"combobox\"\n classes={{\n root: cx(filterGroupContentClasses.dropdown, classes?.dropdown),\n panel: cx(\n filterGroupContentClasses.panel,\n css(styles.panel),\n classes?.panel\n ),\n selection: cx(\n filterGroupContentClasses.baseDropdownSelection,\n css(styles.baseDropdownSelection),\n classes?.baseDropdownSelection\n ),\n header: cx(\n filterGroupContentClasses.header,\n css(styles.header),\n classes?.header\n ),\n }}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={filterGroupOpen}\n onToggle={handleToggle}\n onClickOutside={onCancelHandler}\n onContainerCreation={focusOnContainer}\n placeholder={Header}\n adornment={<HvFilterGroupCounter />}\n popperProps={{\n modifiers: [\n { name: \"preventOverflow\", enabled: escapeWithReference },\n ],\n }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={status === \"invalid\" ? true : undefined}\n aria-errormessage={\n status === \"invalid\" ? setId(id, \"error\") : undefined\n }\n aria-describedby={\n [description && setId(id, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n {...others}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <div\n className={cx(\n filterGroupContentClasses.root,\n css(styles.root),\n classes?.root\n )}\n style={{ height }}\n >\n <HvFilterGroupLeftPanel\n id={id}\n className={cx(\n filterGroupContentClasses.leftSidePanel,\n css(styles.leftSidePanel),\n classes?.leftSidePanel\n )}\n emptyElement={leftEmptyElement}\n />\n <HvFilterGroupRightPanel\n id={id}\n className={cx(\n filterGroupContentClasses.rightSidePanel,\n css(styles.rightSidePanel),\n classes?.rightSidePanel\n )}\n emptyElement={rightEmptyElement}\n labels={labels}\n />\n </div>\n <HvActionBar\n className={cx(\n filterGroupContentClasses.actionBar,\n css(styles.actionBar),\n classes?.actionBar\n )}\n >\n <HvButton\n id={setId(id, \"clearFilters-button\")}\n disabled={\n defaultValue\n ? defaultValue?.flat().length === filterValues?.flat().length\n : filterValues?.flat().length === 0\n }\n variant=\"secondaryGhost\"\n onClick={onClearHandler}\n >\n {labels?.clearLabel}\n </HvButton>\n <div\n aria-hidden=\"true\"\n className={cx(\n filterGroupContentClasses.space,\n css(styles.space),\n classes?.space\n )}\n >\n \n </div>\n <HvButton\n id={setId(id, \"apply-button\")}\n disabled={applyDisabled}\n variant={\n activeTheme?.filterGroup.applyButtonVariant as HvButtonVariant\n }\n onClick={onApplyHandler}\n className={cx(\n filterGroupContentClasses.applyButton,\n css(styles.applyButton),\n classes?.applyButton\n )}\n >\n {labels?.applyLabel}\n </HvButton>\n <HvButton\n id={setId(id, \"cancel-button\")}\n variant={\n activeTheme?.filterGroup.cancelButtonVariant as HvButtonVariant\n }\n onClick={onCancelHandler}\n >\n {labels?.cancelLabel}\n </HvButton>\n </HvActionBar>\n </HvBaseDropdown>\n )}\n </ClassNames>\n );\n};\n"],"names":["HvFilterGroupContent","id","status","disabled","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","labels","horizontalPlacement","disablePortal","escapeWithReference","height","leftEmptyElement","rightEmptyElement","classes","others","activeTheme","useTheme","filterGroupOpen","setFilterGroupOpen","useState","defaultValue","filterValues","rollbackFilters","clearFilters","applyFilters","applyDisabled","useContext","HvFilterGroupContext","focusTarget","useRef","focusOnContainer","current","focus","onApplyHandler","event","onCancelHandler","onClearHandler","handleToggle","open","Header","useMemo","_jsxs","_Fragment","children","Filters","HvTypography","variant","placeholder","ClassNames","css","cx","HvBaseDropdown","setId","role","root","filterGroupContentClasses","dropdown","panel","styles","selection","baseDropdownSelection","header","variableWidth","placement","expanded","onToggle","onClickOutside","onContainerCreation","adornment","_jsx","HvFilterGroupCounter","popperProps","modifiers","name","enabled","undefined","join","trim","ref","tabIndex","className","style","HvFilterGroupLeftPanel","leftSidePanel","emptyElement","HvFilterGroupRightPanel","rightSidePanel","HvActionBar","actionBar","HvButton","flat","length","onClick","clearLabel","space","filterGroup","applyButtonVariant","applyButton","applyLabel","cancelButtonVariant","cancelLabel"],"mappings":";;;;;;;;;;;;;;;;AAiDO,MAAMA,uBAAuBA,CAAC;AAAA,EACnCC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACX,cAAcC;AAAAA,EACd,mBAAmBC;AAAAA,EACnBC;AAAAA,EACA,oBAAoBC;AAAAA,EACpBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,sBAAsB;AAAA,EACtBC,gBAAgB;AAAA,EAChBC,sBAAsB;AAAA,EACtBC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACsB,MAAM;AACzB,QAAA;AAAA,IAAEC;AAAAA,MAAgBC,SAAU;AAElC,QAAM,CAACC,iBAAiBC,kBAAkB,IAAIC,SAAkB,KAAK;AAE/D,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,EAAAA,IACEC,WAAWC,oBAAoB;AAE7BC,QAAAA,cAAcC,OAAuB,IAAI;AAE/C,QAAMC,mBAAmBA,MAAM;;AAC7BF,sBAAYG,YAAZH,mBAAqBI;AAAAA,EAAO;AAGxBC,QAAAA,iBAAiBA,CAACC,UAA+C;AACvD;AACd/B,yCAAW+B,OAAOb;AAClBH,uBAAmB,KAAK;AAAA,EAAA;AAGpBiB,QAAAA,kBAAkBA,CACtBD,UACG;AACc;AACjB9B,yCAAW8B;AACXhB,uBAAmB,KAAK;AAAA,EAAA;AAGpBkB,QAAAA,iBAAiBA,CAACF,UAA+C;AACvD;AACd7B,uCAAU6B;AAAAA,EAAK;AAGXG,QAAAA,eAAeA,CAACH,OAAcI,SAAkB;AAMpD,QAAIJ,UAAU;AAAM;AACpBhB,uBAAmBoB,IAAI;AACvB,QAAI,CAACA;AAAMH,yDAAkBD;AAAAA,EAAK;AAGpC,QAAMK,SAASC,QACb,MACEC,qBAAAC,UAAA;AAAA,IAAAC,UAAA,CACGC,oBAAAA,kCACAC,cAAY;AAAA,MAACC,SAAQ;AAAA,MAAOH,UAAErC,iCAAQyC;AAAAA,IAAAA,CAA2B,CAAA;AAAA,EAAA,CAAA,GAGtE,CAACzC,iCAAQyC,WAAW,CAAC;AAGvB,6BACGC,YAAU;AAAA,IAAAL,UACRA,CAAC;AAAA,MAAEM;AAAAA,MAAKC;AAAAA,IAAAA,2BACNC,gBAAc;AAAA,MACbvD,IAAIwD,MAAMxD,IAAI,UAAU;AAAA,MACxByD,MAAK;AAAA,MACLxC,SAAS;AAAA,QACPyC,MAAMJ,GAAGK,0BAA0BC,UAAU3C,mCAAS2C,QAAQ;AAAA,QAC9DC,OAAOP,GACLK,0BAA0BE,OAC1BR,IAAIS,OAAOD,KAAK,GAChB5C,mCAAS4C,KAAK;AAAA,QAEhBE,WAAWT,GACTK,0BAA0BK,uBAC1BX,IAAIS,OAAOE,qBAAqB,GAChC/C,mCAAS+C,qBAAqB;AAAA,QAEhCC,QAAQX,GACNK,0BAA0BM,QAC1BZ,IAAIS,OAAOG,MAAM,GACjBhD,mCAASgD,MAAM;AAAA,MAEnB;AAAA,MACA/D;AAAAA,MACAU;AAAAA,MACAsD,eAAa;AAAA,MACbC,WAAWxD;AAAAA,MACXyD,UAAU/C;AAAAA,MACVgD,UAAU5B;AAAAA,MACV6B,gBAAgB/B;AAAAA,MAChBgC,qBAAqBrC;AAAAA,MACrBiB,aAAaR;AAAAA,MACb6B,WAAWC,oBAACC,sBAAwB,EAAA;AAAA,MACpCC,aAAa;AAAA,QACXC,WAAW,CACT;AAAA,UAAEC,MAAM;AAAA,UAAmBC,SAASjE;AAAAA,QAAAA,CAAqB;AAAA,MAE7D;AAAA,MACA,iBAAc;AAAA,MACd,cAAYV;AAAAA,MACZ,mBAAiBC;AAAAA,MACjB,gBAAcH,WAAW,YAAY,OAAO8E;AAAAA,MAC5C,qBACE9E,WAAW,YAAYuD,MAAMxD,IAAI,OAAO,IAAI+E;AAAAA,MAE9C,oBACE,CAAC1E,eAAemD,MAAMxD,IAAI,aAAa,GAAGM,eAAe,EACtD0E,KAAK,GAAG,EACRC,UAAUF;AAAAA,MACd,GACG7D;AAAAA,MAAM6B,WAEV0B,oBAAA,OAAA;AAAA,QAAKS,KAAKlD;AAAAA,QAAamD,UAAU;AAAA,MAAA,CAAG,GACpCtC,qBAAA,OAAA;AAAA,QACEuC,WAAW9B,GACTK,0BAA0BD,MAC1BL,IAAIS,OAAOJ,IAAI,GACfzC,mCAASyC,IAAI;AAAA,QAEf2B,OAAO;AAAA,UAAEvE;AAAAA,QAAO;AAAA,QAAEiC,UAAA,CAElB0B,oBAACa,wBAAsB;AAAA,UACrBtF;AAAAA,UACAoF,WAAW9B,GACTK,0BAA0B4B,eAC1BlC,IAAIS,OAAOyB,aAAa,GACxBtE,mCAASsE,aAAa;AAAA,UAExBC,cAAczE;AAAAA,QAAAA,CACd,GACF0D,oBAACgB,yBAAuB;AAAA,UACtBzF;AAAAA,UACAoF,WAAW9B,GACTK,0BAA0B+B,gBAC1BrC,IAAIS,OAAO4B,cAAc,GACzBzE,mCAASyE,cAAc;AAAA,UAEzBF,cAAcxE;AAAAA,UACdN;AAAAA,QAAAA,CACA,CAAA;AAAA,MAAA,CACE,GACNmC,qBAAC8C,aAAW;AAAA,QACVP,WAAW9B,GACTK,0BAA0BiC,WAC1BvC,IAAIS,OAAO8B,SAAS,GACpB3E,mCAAS2E,SAAS;AAAA,QAClB7C,UAAA,CAEF0B,oBAACoB,UAAQ;AAAA,UACP7F,IAAIwD,MAAMxD,IAAI,qBAAqB;AAAA,UACnCE,UACEsB,gBACIA,6CAAcsE,OAAOC,aAAWtE,6CAAcqE,OAAOC,WACrDtE,6CAAcqE,OAAOC,YAAW;AAAA,UAEtC7C,SAAQ;AAAA,UACR8C,SAASxD;AAAAA,UAAeO,UAEvBrC,iCAAQuF;AAAAA,QAAAA,CAAU,GAErBxB,oBAAA,OAAA;AAAA,UACE,eAAY;AAAA,UACZW,WAAW9B,GACTK,0BAA0BuC,OAC1B7C,IAAIS,OAAOoC,KAAK,GAChBjF,mCAASiF,KAAK;AAAA,UACdnD,UACH;AAAA,QAAA,CAEK,GACN0B,oBAACoB,UAAQ;AAAA,UACP7F,IAAIwD,MAAMxD,IAAI,cAAc;AAAA,UAC5BE,UAAU2B;AAAAA,UACVqB,SACE/B,2CAAagF,YAAYC;AAAAA,UAE3BJ,SAAS3D;AAAAA,UACT+C,WAAW9B,GACTK,0BAA0B0C,aAC1BhD,IAAIS,OAAOuC,WAAW,GACtBpF,mCAASoF,WAAW;AAAA,UACpBtD,UAEDrC,iCAAQ4F;AAAAA,QAAAA,CACA,GACX7B,oBAACoB,UAAQ;AAAA,UACP7F,IAAIwD,MAAMxD,IAAI,eAAe;AAAA,UAC7BkD,SACE/B,2CAAagF,YAAYI;AAAAA,UAE3BP,SAASzD;AAAAA,UAAgBQ,UAExBrC,iCAAQ8F;AAAAA,QAAAA,CACA,CAAA;AAAA,MAAA,CACC,CAAA;AAAA,IAAA,CAAA;AAAA,EAAA,CAGP;AAEjB;"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import filterGroupClasses from "./filterGroupClasses.js";
|
|
2
|
-
import { clsx } from "clsx";
|
|
3
2
|
import { styles } from "./FilterGroup.styles.js";
|
|
4
3
|
import { HvFilterGroupProvider } from "./FilterGroupContext.js";
|
|
5
4
|
import { ClassNames } from "@emotion/react";
|
|
@@ -58,7 +57,8 @@ const HvFilterGroup = ({
|
|
|
58
57
|
const canShowError = status !== void 0 || required;
|
|
59
58
|
return /* @__PURE__ */ jsx(ClassNames, {
|
|
60
59
|
children: ({
|
|
61
|
-
css
|
|
60
|
+
css,
|
|
61
|
+
cx
|
|
62
62
|
}) => /* @__PURE__ */ jsxs(HvFormElement, {
|
|
63
63
|
id,
|
|
64
64
|
name,
|
|
@@ -66,18 +66,18 @@ const HvFilterGroup = ({
|
|
|
66
66
|
status,
|
|
67
67
|
disabled,
|
|
68
68
|
required,
|
|
69
|
-
className:
|
|
69
|
+
className: cx(filterGroupClasses.root, className, classes == null ? void 0 : classes.root),
|
|
70
70
|
...others,
|
|
71
71
|
children: [(hasLabel || hasDescription) && /* @__PURE__ */ jsxs("div", {
|
|
72
|
-
className:
|
|
72
|
+
className: cx(filterGroupClasses.labelContainer, css(styles.labelContainer), classes == null ? void 0 : classes.labelContainer),
|
|
73
73
|
children: [hasLabel && /* @__PURE__ */ jsx(HvLabel, {
|
|
74
74
|
id: setId(elementId, "label"),
|
|
75
75
|
htmlFor: setId(elementId, "input"),
|
|
76
76
|
label,
|
|
77
|
-
className:
|
|
77
|
+
className: cx(filterGroupClasses.label, css(styles.label), classes == null ? void 0 : classes.label)
|
|
78
78
|
}), hasDescription && /* @__PURE__ */ jsx(HvInfoMessage, {
|
|
79
79
|
id: setId(elementId, "description"),
|
|
80
|
-
className:
|
|
80
|
+
className: cx(filterGroupClasses.description, classes == null ? void 0 : classes.description),
|
|
81
81
|
children: description
|
|
82
82
|
})]
|
|
83
83
|
}), /* @__PURE__ */ jsxs(HvFilterGroupProvider, {
|
|
@@ -103,7 +103,7 @@ const HvFilterGroup = ({
|
|
|
103
103
|
}), canShowError && /* @__PURE__ */ jsx(HvWarningText, {
|
|
104
104
|
id: setId(elementId, "error"),
|
|
105
105
|
disableBorder: true,
|
|
106
|
-
className:
|
|
106
|
+
className: cx(filterGroupClasses.error, classes == null ? void 0 : classes.error),
|
|
107
107
|
children: validationMessage
|
|
108
108
|
})]
|
|
109
109
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterGroup.js","sources":["../../../../src/components/FilterGroup/FilterGroup.tsx"],"sourcesContent":["import {\n HvFormElement,\n HvFormElementProps,\n HvFormStatus,\n HvInfoMessage,\n HvLabel,\n HvWarningText,\n} from \"@core/components\";\nimport filterGroupClasses, { HvFilterGroupClasses } from \"./filterGroupClasses\";\nimport {\n HvFilterGroupContent,\n HvFilterGroupContentProps,\n} from \"./FilterContent\";\nimport { clsx } from \"clsx\";\nimport { useControlled, useLabels, useUniqueId } from \"@core/hooks\";\nimport { styles } from \"./FilterGroup.styles\";\nimport { setId } from \"@core/utils\";\nimport { HvFilterGroupProvider } from \"./FilterGroupContext\";\nimport { ClassNames } from \"@emotion/react\";\n\nexport type HvFilterGroupValue = (string | number)[][];\n\nexport interface HvFilterGroupLabels {\n /** Apply button label. */\n applyLabel?: string;\n /** Cancel button label. */\n cancelLabel?: string;\n /** Cancel button label. */\n clearLabel?: string;\n /** Placeholder label. */\n placeholder?: string;\n /** SearchBox placeholder label. */\n searchBoxPlaceholder?: string;\n /** Select All placeholder label. */\n selectAll?: string;\n /** Multi selection conjunction placeholder label. */\n multiSelectionConjunction?: string;\n}\n\nexport type HvFilterGroupFilters = {\n id: string;\n name: string;\n data: {\n id: string | number;\n name: string;\n }[];\n}[];\n\nexport type HvFilterGroupHorizontalPlacement = \"left\" | \"right\";\n\nexport interface HvFilterGroupProps\n extends Omit<\n HvFormElementProps,\n \"onChange\" | \"defaultValue\" | \"statusMessage\"\n > {\n /** The initial value of the input when in single calendar mode. */\n filters: HvFilterGroupFilters;\n /** The form element name. */\n name?: string;\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /** Provide additional descriptive text for the form element. */\n description?: React.ReactNode;\n /** Indicates that the form element is disabled. */\n disabled?: boolean;\n /** Indicates that user input is required on the form element. */\n required?: boolean;\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvFormStatus;\n /** The error message to show when `status` is \"invalid\". Defaults to \"Required\". */\n statusMessage?: React.ReactNode;\n /** The callback fired when the cancel button is clicked. */\n onCancel?: (event: React.MouseEvent<HTMLButtonElement> | Event) => void;\n /** The callback fired when the clear filters button is clicked. */\n onClear?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n /** The callback fired when the value changes. */\n onChange?: (\n event: React.MouseEvent<HTMLButtonElement>,\n value?: HvFilterGroupValue\n ) => void;\n /** An Object containing the various text associated with the input. */\n labels?: HvFilterGroupLabels;\n /** The placeholder value when nothing is selected. */\n placeholder?: string;\n /** The default value of the filter group. If defined the clear action will reset to it. */\n defaultValue?: HvFilterGroupValue;\n /** The value of the filter group. */\n value?: HvFilterGroupValue;\n /** The placement where the filter group should be placed according to the input. Options are `left` or `right`. */\n horizontalPlacement?: HvFilterGroupHorizontalPlacement;\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n /** Sets if the filter container should be out of the screen or stay visible. */\n escapeWithReference?: boolean;\n /** The height of the filter panel, between 295 and 425. Defaults to 350 */\n height?: number | string;\n /** The filter content props */\n filterContentProps?: Partial<HvFilterGroupContentProps>;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvFilterGroupClasses;\n}\n\nconst DEFAULT_LABELS: HvFilterGroupLabels = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear Filters\",\n placeholder: \"Filters\",\n searchBoxPlaceholder: \"Search\",\n selectAll: \"All\",\n multiSelectionConjunction: \"/\",\n};\n\n/**\n * This component implements one potential use-case of the Filter Group pattern Design System Specifies.\n * Due to the enormous variety of capabilities required for this, we strongly recommend checking the code of the component and extend it yourself,\n * while we do not provide a better approach for building this component with smaller and more composable parts.\n */\nexport const HvFilterGroup = ({\n className,\n id,\n name,\n required = false,\n disabled = false,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n onCancel,\n onClear,\n status,\n statusMessage,\n labels: labelsProp,\n defaultValue,\n value,\n filters,\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n height = 350,\n filterContentProps,\n classes,\n ...others\n}: HvFilterGroupProps) => {\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvfiltergroup\");\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const hasLabel = label != null;\n\n const hasDescription = description != null;\n\n // Error message area will only be needed if the status is being controlled\n // or if required is true\n const canShowError = status !== undefined || required;\n\n return (\n <ClassNames>\n {({ css }) => (\n <HvFormElement\n id={id}\n name={name}\n value={value}\n status={status}\n disabled={disabled}\n required={required}\n className={clsx(className, classes?.root, filterGroupClasses.root)}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div\n className={clsx(\n classes?.labelContainer,\n filterGroupClasses.labelContainer,\n css(styles.labelContainer)\n )}\n >\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={clsx(\n classes?.label,\n filterGroupClasses.label,\n css(styles.label)\n )}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage\n id={setId(elementId, \"description\")}\n className={clsx(\n classes?.description,\n filterGroupClasses.description\n )}\n >\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <HvFilterGroupProvider\n defaultValue={defaultValue}\n value={value}\n filters={filters}\n >\n <HvFilterGroupContent\n id={elementId}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n escapeWithReference={escapeWithReference}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n status={status}\n onChange={onChange}\n onCancel={onCancel}\n onClear={onClear}\n labels={labels}\n height={height}\n {...filterContentProps}\n />\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableBorder\n className={clsx(classes?.error, filterGroupClasses.error)}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </HvFilterGroupProvider>\n </HvFormElement>\n )}\n </ClassNames>\n );\n};\n"],"names":["DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","placeholder","searchBoxPlaceholder","selectAll","multiSelectionConjunction","HvFilterGroup","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","labels","labelsProp","defaultValue","value","filters","horizontalPlacement","disablePortal","escapeWithReference","height","filterContentProps","classes","others","validationMessage","useControlled","elementId","useUniqueId","useLabels","hasLabel","hasDescription","canShowError","undefined","ClassNames","children","css","HvFormElement","clsx","root","filterGroupClasses","labelContainer","styles","_jsx","HvLabel","setId","htmlFor","HvInfoMessage","_jsxs","HvFilterGroupProvider","HvFilterGroupContent","variableWidth","placement","HvWarningText","disableBorder","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilterGroup.js","sources":["../../../../src/components/FilterGroup/FilterGroup.tsx"],"sourcesContent":["import {\n HvFormElement,\n HvFormElementProps,\n HvFormStatus,\n HvInfoMessage,\n HvLabel,\n HvWarningText,\n} from \"@core/components\";\nimport filterGroupClasses, { HvFilterGroupClasses } from \"./filterGroupClasses\";\nimport {\n HvFilterGroupContent,\n HvFilterGroupContentProps,\n} from \"./FilterContent\";\nimport { useControlled, useLabels, useUniqueId } from \"@core/hooks\";\nimport { styles } from \"./FilterGroup.styles\";\nimport { setId } from \"@core/utils\";\nimport { HvFilterGroupProvider } from \"./FilterGroupContext\";\nimport { ClassNames } from \"@emotion/react\";\n\nexport type HvFilterGroupValue = (string | number)[][];\n\nexport interface HvFilterGroupLabels {\n /** Apply button label. */\n applyLabel?: string;\n /** Cancel button label. */\n cancelLabel?: string;\n /** Cancel button label. */\n clearLabel?: string;\n /** Placeholder label. */\n placeholder?: string;\n /** SearchBox placeholder label. */\n searchBoxPlaceholder?: string;\n /** Select All placeholder label. */\n selectAll?: string;\n /** Multi selection conjunction placeholder label. */\n multiSelectionConjunction?: string;\n}\n\nexport type HvFilterGroupFilters = {\n id: string;\n name: string;\n data: {\n id: string | number;\n name: string;\n }[];\n}[];\n\nexport type HvFilterGroupHorizontalPlacement = \"left\" | \"right\";\n\nexport interface HvFilterGroupProps\n extends Omit<\n HvFormElementProps,\n \"onChange\" | \"defaultValue\" | \"statusMessage\"\n > {\n /** The initial value of the input when in single calendar mode. */\n filters: HvFilterGroupFilters;\n /** The form element name. */\n name?: string;\n /**\n * The label of the form element.\n *\n * The form element must be labeled for accessibility reasons.\n * If not provided, an aria-label or aria-labelledby must be provided instead.\n */\n label?: React.ReactNode;\n /** Provide additional descriptive text for the form element. */\n description?: React.ReactNode;\n /** Indicates that the form element is disabled. */\n disabled?: boolean;\n /** Indicates that user input is required on the form element. */\n required?: boolean;\n /**\n * The status of the form element.\n *\n * Valid is correct, invalid is incorrect and standBy means no validations have run.\n *\n * When uncontrolled and unspecified it will default to \"standBy\" and change to either \"valid\"\n * or \"invalid\" after any change to the state.\n */\n status?: HvFormStatus;\n /** The error message to show when `status` is \"invalid\". Defaults to \"Required\". */\n statusMessage?: React.ReactNode;\n /** The callback fired when the cancel button is clicked. */\n onCancel?: (event: React.MouseEvent<HTMLButtonElement> | Event) => void;\n /** The callback fired when the clear filters button is clicked. */\n onClear?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n /** The callback fired when the value changes. */\n onChange?: (\n event: React.MouseEvent<HTMLButtonElement>,\n value?: HvFilterGroupValue\n ) => void;\n /** An Object containing the various text associated with the input. */\n labels?: HvFilterGroupLabels;\n /** The placeholder value when nothing is selected. */\n placeholder?: string;\n /** The default value of the filter group. If defined the clear action will reset to it. */\n defaultValue?: HvFilterGroupValue;\n /** The value of the filter group. */\n value?: HvFilterGroupValue;\n /** The placement where the filter group should be placed according to the input. Options are `left` or `right`. */\n horizontalPlacement?: HvFilterGroupHorizontalPlacement;\n /** Disable the portal behavior. The children stay within it's parent DOM hierarchy. */\n disablePortal?: boolean;\n /** Sets if the filter container should be out of the screen or stay visible. */\n escapeWithReference?: boolean;\n /** The height of the filter panel, between 295 and 425. Defaults to 350 */\n height?: number | string;\n /** The filter content props */\n filterContentProps?: Partial<HvFilterGroupContentProps>;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvFilterGroupClasses;\n}\n\nconst DEFAULT_LABELS: HvFilterGroupLabels = {\n applyLabel: \"Apply\",\n cancelLabel: \"Cancel\",\n clearLabel: \"Clear Filters\",\n placeholder: \"Filters\",\n searchBoxPlaceholder: \"Search\",\n selectAll: \"All\",\n multiSelectionConjunction: \"/\",\n};\n\n/**\n * This component implements one potential use-case of the Filter Group pattern Design System Specifies.\n * Due to the enormous variety of capabilities required for this, we strongly recommend checking the code of the component and extend it yourself,\n * while we do not provide a better approach for building this component with smaller and more composable parts.\n */\nexport const HvFilterGroup = ({\n className,\n id,\n name,\n required = false,\n disabled = false,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n onCancel,\n onClear,\n status,\n statusMessage,\n labels: labelsProp,\n defaultValue,\n value,\n filters,\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n height = 350,\n filterContentProps,\n classes,\n ...others\n}: HvFilterGroupProps) => {\n const [validationMessage] = useControlled(statusMessage, \"Required\");\n\n const elementId = useUniqueId(id, \"hvfiltergroup\");\n\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const hasLabel = label != null;\n\n const hasDescription = description != null;\n\n // Error message area will only be needed if the status is being controlled\n // or if required is true\n const canShowError = status !== undefined || required;\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <HvFormElement\n id={id}\n name={name}\n value={value}\n status={status}\n disabled={disabled}\n required={required}\n className={cx(filterGroupClasses.root, className, classes?.root)}\n {...others}\n >\n {(hasLabel || hasDescription) && (\n <div\n className={cx(\n filterGroupClasses.labelContainer,\n css(styles.labelContainer),\n classes?.labelContainer\n )}\n >\n {hasLabel && (\n <HvLabel\n id={setId(elementId, \"label\")}\n htmlFor={setId(elementId, \"input\")}\n label={label}\n className={cx(\n filterGroupClasses.label,\n css(styles.label),\n classes?.label\n )}\n />\n )}\n\n {hasDescription && (\n <HvInfoMessage\n id={setId(elementId, \"description\")}\n className={cx(\n filterGroupClasses.description,\n classes?.description\n )}\n >\n {description}\n </HvInfoMessage>\n )}\n </div>\n )}\n <HvFilterGroupProvider\n defaultValue={defaultValue}\n value={value}\n filters={filters}\n >\n <HvFilterGroupContent\n id={elementId}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n escapeWithReference={escapeWithReference}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n status={status}\n onChange={onChange}\n onCancel={onCancel}\n onClear={onClear}\n labels={labels}\n height={height}\n {...filterContentProps}\n />\n {canShowError && (\n <HvWarningText\n id={setId(elementId, \"error\")}\n disableBorder\n className={cx(filterGroupClasses.error, classes?.error)}\n >\n {validationMessage}\n </HvWarningText>\n )}\n </HvFilterGroupProvider>\n </HvFormElement>\n )}\n </ClassNames>\n );\n};\n"],"names":["DEFAULT_LABELS","applyLabel","cancelLabel","clearLabel","placeholder","searchBoxPlaceholder","selectAll","multiSelectionConjunction","HvFilterGroup","className","id","name","required","disabled","label","ariaLabel","ariaLabelledBy","description","ariaDescribedBy","onChange","onCancel","onClear","status","statusMessage","labels","labelsProp","defaultValue","value","filters","horizontalPlacement","disablePortal","escapeWithReference","height","filterContentProps","classes","others","validationMessage","useControlled","elementId","useUniqueId","useLabels","hasLabel","hasDescription","canShowError","undefined","ClassNames","children","css","cx","HvFormElement","filterGroupClasses","root","labelContainer","styles","_jsx","HvLabel","setId","htmlFor","HvInfoMessage","_jsxs","HvFilterGroupProvider","HvFilterGroupContent","variableWidth","placement","HvWarningText","disableBorder","error"],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ import { useContext } from "react";
|
|
|
2
2
|
import { HvFilterGroupContext } from "../FilterGroupContext.js";
|
|
3
3
|
import { ClassNames } from "@emotion/react";
|
|
4
4
|
import { styles } from "./LeftPanel.styles.js";
|
|
5
|
-
import { clsx } from "clsx";
|
|
6
5
|
import filterGroupLeftPanelClasses from "./leftPanelClasses.js";
|
|
7
6
|
import { jsx } from "@emotion/react/jsx-runtime";
|
|
8
7
|
import { HvFilterGroupCounter } from "../Counter/Counter.js";
|
|
@@ -24,7 +23,8 @@ const HvFilterGroupLeftPanel = ({
|
|
|
24
23
|
} = useContext(HvFilterGroupContext);
|
|
25
24
|
return /* @__PURE__ */ jsx(ClassNames, {
|
|
26
25
|
children: ({
|
|
27
|
-
css
|
|
26
|
+
css,
|
|
27
|
+
cx
|
|
28
28
|
}) => /* @__PURE__ */ jsx(HvPanel, {
|
|
29
29
|
id: setId(id, "leftPanel"),
|
|
30
30
|
className,
|
|
@@ -36,7 +36,7 @@ const HvFilterGroupLeftPanel = ({
|
|
|
36
36
|
const ItemText = wrapperTooltip(true, group.name, group.name);
|
|
37
37
|
return /* @__PURE__ */ jsx(HvListItem, {
|
|
38
38
|
id: group.id,
|
|
39
|
-
className:
|
|
39
|
+
className: cx(filterGroupLeftPanelClasses.listItem, css(styles.listItem), classes == null ? void 0 : classes.listItem),
|
|
40
40
|
onClick: () => setActiveGroup(index),
|
|
41
41
|
selected: filterOptions[activeGroup].id === group.id,
|
|
42
42
|
endAdornment: /* @__PURE__ */ jsx(HvFilterGroupCounter, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeftPanel.js","sources":["../../../../../src/components/FilterGroup/LeftPanel/LeftPanel.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { HvListContainer, HvListItem, HvPanel } from \"@core/components\";\nimport { setId, wrapperTooltip } from \"@core/utils\";\nimport { HvFilterGroupCounter } from \"../Counter\";\nimport { ClassNames } from \"@emotion/react\";\nimport { styles } from \"./LeftPanel.styles\";\nimport
|
|
1
|
+
{"version":3,"file":"LeftPanel.js","sources":["../../../../../src/components/FilterGroup/LeftPanel/LeftPanel.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { HvListContainer, HvListItem, HvPanel } from \"@core/components\";\nimport { setId, wrapperTooltip } from \"@core/utils\";\nimport { HvFilterGroupCounter } from \"../Counter\";\nimport { ClassNames } from \"@emotion/react\";\nimport { styles } from \"./LeftPanel.styles\";\nimport filterGroupLeftPanelClasses, {\n HvFilterGroupLeftPanelClasses,\n} from \"./leftPanelClasses\";\n\nexport interface HvFilterGroupLeftPanelProps {\n id?: string;\n className?: string;\n emptyElement?: React.ReactNode;\n classes?: HvFilterGroupLeftPanelClasses;\n}\n\nexport const HvFilterGroupLeftPanel = ({\n id,\n className,\n emptyElement,\n classes,\n}: HvFilterGroupLeftPanelProps) => {\n const { filterOptions, activeGroup, setActiveGroup } =\n useContext(HvFilterGroupContext);\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <HvPanel id={setId(id, \"leftPanel\")} className={className}>\n {filterOptions.length > 0 ? (\n <HvListContainer\n id={setId(id, \"leftPanel-list\")}\n condensed\n interactive\n >\n {filterOptions.map((group, index) => {\n const ItemText = wrapperTooltip(true, group.name, group.name);\n\n return (\n <HvListItem\n id={group.id}\n key={group.name}\n className={cx(\n filterGroupLeftPanelClasses.listItem,\n css(styles.listItem),\n classes?.listItem\n )}\n onClick={() => setActiveGroup(index)}\n selected={filterOptions[activeGroup].id === group.id}\n endAdornment={<HvFilterGroupCounter id={group.id} />}\n >\n <ItemText />\n </HvListItem>\n );\n })}\n </HvListContainer>\n ) : (\n emptyElement\n )}\n </HvPanel>\n )}\n </ClassNames>\n );\n};\n"],"names":["HvFilterGroupLeftPanel","id","className","emptyElement","classes","filterOptions","activeGroup","setActiveGroup","useContext","HvFilterGroupContext","ClassNames","children","css","cx","HvPanel","setId","length","HvListContainer","condensed","interactive","map","group","index","ItemText","wrapperTooltip","name","HvListItem","filterGroupLeftPanelClasses","listItem","styles","onClick","selected","endAdornment","HvFilterGroupCounter","_jsx"],"mappings":";;;;;;;;;;;;AAkBO,MAAMA,yBAAyBA,CAAC;AAAA,EACrCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAC2B,MAAM;AAC3B,QAAA;AAAA,IAAEC;AAAAA,IAAeC;AAAAA,IAAaC;AAAAA,EAAAA,IAClCC,WAAWC,oBAAoB;AAEjC,6BACGC,YAAU;AAAA,IAAAC,UACRA,CAAC;AAAA,MAAEC;AAAAA,MAAKC;AAAAA,IAAAA,0BACNC,SAAO;AAAA,MAACb,IAAIc,MAAMd,IAAI,WAAW;AAAA,MAAGC;AAAAA,MAAqBS,UACvDN,cAAcW,SAAS,wBACrBC,iBAAe;AAAA,QACdhB,IAAIc,MAAMd,IAAI,gBAAgB;AAAA,QAC9BiB,WAAS;AAAA,QACTC,aAAW;AAAA,QAAAR,UAEVN,cAAce,IAAI,CAACC,OAAOC,UAAU;AACnC,gBAAMC,WAAWC,eAAe,MAAMH,MAAMI,MAAMJ,MAAMI,IAAI;AAE5D,qCACGC,YAAU;AAAA,YACTzB,IAAIoB,MAAMpB;AAAAA,YAEVC,WAAWW,GACTc,4BAA4BC,UAC5BhB,IAAIiB,OAAOD,QAAQ,GACnBxB,mCAASwB,QAAQ;AAAA,YAEnBE,SAASA,MAAMvB,eAAee,KAAK;AAAA,YACnCS,UAAU1B,cAAcC,WAAW,EAAEL,OAAOoB,MAAMpB;AAAAA,YAClD+B,kCAAeC,sBAAoB;AAAA,cAAChC,IAAIoB,MAAMpB;AAAAA,YAAAA,CAAO;AAAA,YAAAU,UAErDuB,oBAACX,UAAQ,EAAA;AAAA,UAAA,GAVJF,MAAMI,IAAI;AAAA,QAAA,CAapB;AAAA,MAAC,CAAA,IAGJtB;AAAAA,IAAAA,CACD;AAAA,EAAA,CAGM;AAEjB;"}
|
|
@@ -3,7 +3,6 @@ import { HvFilterGroupContext } from "../FilterGroupContext.js";
|
|
|
3
3
|
import cloneDeep from "lodash/cloneDeep";
|
|
4
4
|
import { ClassNames } from "@emotion/react";
|
|
5
5
|
import { styles } from "./RightPanel.styles.js";
|
|
6
|
-
import { clsx } from "clsx";
|
|
7
6
|
import filterGroupRightPanelClasses from "./rightPanelClasses.js";
|
|
8
7
|
import { jsx, jsxs, Fragment } from "@emotion/react/jsx-runtime";
|
|
9
8
|
import { HvTypography } from "../../Typography/Typography.js";
|
|
@@ -84,14 +83,15 @@ const HvFilterGroupRightPanel = ({
|
|
|
84
83
|
});
|
|
85
84
|
return /* @__PURE__ */ jsx(ClassNames, {
|
|
86
85
|
children: ({
|
|
87
|
-
css
|
|
86
|
+
css,
|
|
87
|
+
cx
|
|
88
88
|
}) => /* @__PURE__ */ jsx("div", {
|
|
89
|
-
className:
|
|
89
|
+
className: cx(filterGroupRightPanelClasses.selectAllContainer, css(styles.selectAllContainer), classes == null ? void 0 : classes.selectAllContainer),
|
|
90
90
|
children: /* @__PURE__ */ jsx(HvCheckBox, {
|
|
91
91
|
id: setId(id, "select-all"),
|
|
92
92
|
label: defaultLabel,
|
|
93
93
|
onChange: () => handleSelectAll(),
|
|
94
|
-
className:
|
|
94
|
+
className: cx(filterGroupRightPanelClasses.selectAll, css(styles.selectAll), classes == null ? void 0 : classes.selectAll),
|
|
95
95
|
indeterminate: anySelected && !allSelected,
|
|
96
96
|
checked: allSelected
|
|
97
97
|
})
|
|
@@ -100,7 +100,8 @@ const HvFilterGroupRightPanel = ({
|
|
|
100
100
|
}, [activeFilterValues == null ? void 0 : activeFilterValues.length, activeGroupOptions.length, allSelected, anySelected, handleSelectAll, id, labels]);
|
|
101
101
|
return /* @__PURE__ */ jsx(ClassNames, {
|
|
102
102
|
children: ({
|
|
103
|
-
css
|
|
103
|
+
css,
|
|
104
|
+
cx
|
|
104
105
|
}) => /* @__PURE__ */ jsx(HvPanel, {
|
|
105
106
|
id: setId(id, "rightPanel"),
|
|
106
107
|
className,
|
|
@@ -108,7 +109,7 @@ const HvFilterGroupRightPanel = ({
|
|
|
108
109
|
children: [/* @__PURE__ */ jsx(HvInput, {
|
|
109
110
|
id: setId(id, "search"),
|
|
110
111
|
classes: {
|
|
111
|
-
root:
|
|
112
|
+
root: cx(filterGroupRightPanelClasses.search, css(styles.search), classes == null ? void 0 : classes.search)
|
|
112
113
|
},
|
|
113
114
|
type: "search",
|
|
114
115
|
placeholder: labels == null ? void 0 : labels.searchBoxPlaceholder,
|
|
@@ -117,7 +118,7 @@ const HvFilterGroupRightPanel = ({
|
|
|
117
118
|
}), /* @__PURE__ */ jsx(SelectAll, {}), /* @__PURE__ */ jsx(HvList, {
|
|
118
119
|
id: setId(id, "list"),
|
|
119
120
|
values: listValues,
|
|
120
|
-
className:
|
|
121
|
+
className: cx(filterGroupRightPanelClasses.list, css(styles.list), classes == null ? void 0 : classes.list),
|
|
121
122
|
multiSelect: true,
|
|
122
123
|
useSelector: true,
|
|
123
124
|
showSelectAll: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RightPanel.js","sources":["../../../../../src/components/FilterGroup/RightPanel/RightPanel.tsx"],"sourcesContent":["import {\n HvCheckBox,\n HvInput,\n HvList,\n HvPanel,\n HvTypography,\n} from \"@core/components\";\nimport { setId } from \"@core/utils\";\nimport { useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { ClassNames } from \"@emotion/react\";\nimport { styles } from \"./RightPanel.styles\";\nimport { clsx } from \"clsx\";\nimport filterGroupRightPanelClasses, {\n HvFilterGroupRightPanelClasses,\n} from \"./rightPanelClasses\";\n\nexport interface HvFilterGroupRightPanelProps {\n id?: string;\n className?: string;\n labels?: {\n searchBoxPlaceholder?: string;\n selectAll?: string;\n multiSelectionConjunction?: string;\n };\n emptyElement?: React.ReactNode;\n classes?: HvFilterGroupRightPanelClasses;\n}\n\nexport const HvFilterGroupRightPanel = ({\n id,\n className,\n labels,\n emptyElement,\n classes,\n}: HvFilterGroupRightPanelProps) => {\n const [searchStr, setSearchStr] = useState<string>(\"\");\n const [allSelected, setAllSelected] = useState<boolean>(false);\n const [anySelected, setAnySelected] = useState<boolean>(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(HvFilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () => filterOptions[activeGroup]?.data.map((option) => option.id) || [],\n [filterOptions, activeGroup]\n );\n\n const activeFilterValues = useMemo(\n () =>\n filterValues[activeGroup]?.filter((value) =>\n activeGroupOptions.includes(value)\n ) || [],\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup]?.data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden:\n option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })) || [],\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((_, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n newFilterValues[activeGroup] = anySelected ? [] : activeGroupOptions;\n\n setFilterValues(newFilterValues);\n }, [\n activeGroup,\n activeGroupOptions,\n anySelected,\n filterValues,\n setFilterValues,\n ]);\n\n /**\n * Create selectAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${labels?.multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{labels?.selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <ClassNames>\n {({ css }) => (\n <div\n className={clsx(\n filterGroupRightPanelClasses.selectAllContainer,\n css(styles.selectAllContainer),\n classes?.selectAllContainer\n )}\n >\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n className={clsx(\n filterGroupRightPanelClasses.selectAll,\n css(styles.selectAll),\n classes?.selectAll\n )}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n )}\n </ClassNames>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <ClassNames>\n {({ css }) => (\n <HvPanel id={setId(id, \"rightPanel\")} className={className}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: clsx(\n filterGroupRightPanelClasses.search,\n css(styles.search),\n classes?.search\n ),\n }}\n type=\"search\"\n placeholder={labels?.searchBoxPlaceholder}\n value={searchStr}\n onChange={(_, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n values={listValues}\n className={clsx(\n filterGroupRightPanelClasses.list,\n css(styles.list),\n classes?.list\n )}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n )}\n </ClassNames>\n );\n};\n"],"names":["HvFilterGroupRightPanel","id","className","labels","emptyElement","classes","searchStr","setSearchStr","useState","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","useContext","HvFilterGroupContext","activeGroupOptions","useMemo","data","map","option","activeFilterValues","filter","value","includes","listValues","label","name","selected","isHidden","toLowerCase","indexOf","updateSelectAll","useCallback","nbrSelected","length","hasSelection","allSelect","useEffect","onChangeHandler","values","newFilterValues","_","i","v","handleSelectAll","cloneDeep","SelectAll","defaultLabel","HvTypography","component","children","_jsxs","_Fragment","_jsx","multiSelectionConjunction","selectAll","ClassNames","css","clsx","filterGroupRightPanelClasses","selectAllContainer","styles","HvCheckBox","setId","onChange","indeterminate","checked","HvPanel","HvInput","root","search","type","placeholder","searchBoxPlaceholder","str","HvList","list","multiSelect","useSelector","showSelectAll","selectable","condensed","hasTooltips"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RightPanel.js","sources":["../../../../../src/components/FilterGroup/RightPanel/RightPanel.tsx"],"sourcesContent":["import {\n HvCheckBox,\n HvInput,\n HvList,\n HvPanel,\n HvTypography,\n} from \"@core/components\";\nimport { setId } from \"@core/utils\";\nimport { useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { ClassNames } from \"@emotion/react\";\nimport { styles } from \"./RightPanel.styles\";\nimport filterGroupRightPanelClasses, {\n HvFilterGroupRightPanelClasses,\n} from \"./rightPanelClasses\";\n\nexport interface HvFilterGroupRightPanelProps {\n id?: string;\n className?: string;\n labels?: {\n searchBoxPlaceholder?: string;\n selectAll?: string;\n multiSelectionConjunction?: string;\n };\n emptyElement?: React.ReactNode;\n classes?: HvFilterGroupRightPanelClasses;\n}\n\nexport const HvFilterGroupRightPanel = ({\n id,\n className,\n labels,\n emptyElement,\n classes,\n}: HvFilterGroupRightPanelProps) => {\n const [searchStr, setSearchStr] = useState<string>(\"\");\n const [allSelected, setAllSelected] = useState<boolean>(false);\n const [anySelected, setAnySelected] = useState<boolean>(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(HvFilterGroupContext);\n\n const activeGroupOptions = useMemo(\n () => filterOptions[activeGroup]?.data.map((option) => option.id) || [],\n [filterOptions, activeGroup]\n );\n\n const activeFilterValues = useMemo(\n () =>\n filterValues[activeGroup]?.filter((value) =>\n activeGroupOptions.includes(value)\n ) || [],\n [filterValues, activeGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup]?.data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden:\n option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })) || [],\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === activeGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, activeGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler = (values) => {\n const newFilterValues = filterOptions.map((_, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n newFilterValues[activeGroup] = anySelected ? [] : activeGroupOptions;\n\n setFilterValues(newFilterValues);\n }, [\n activeGroup,\n activeGroupOptions,\n anySelected,\n filterValues,\n setFilterValues,\n ]);\n\n /**\n * Create selectAll component.\n *\n * @returns {*}\n */\n const SelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${labels?.multiSelectionConjunction} ${activeGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{labels?.selectAll}</b>\n {` (${activeGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <div\n className={cx(\n filterGroupRightPanelClasses.selectAllContainer,\n css(styles.selectAllContainer),\n classes?.selectAllContainer\n )}\n >\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n className={cx(\n filterGroupRightPanelClasses.selectAll,\n css(styles.selectAll),\n classes?.selectAll\n )}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n )}\n </ClassNames>\n );\n }, [\n activeFilterValues?.length,\n activeGroupOptions.length,\n allSelected,\n anySelected,\n handleSelectAll,\n id,\n labels,\n ]);\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <HvPanel id={setId(id, \"rightPanel\")} className={className}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: cx(\n filterGroupRightPanelClasses.search,\n css(styles.search),\n classes?.search\n ),\n }}\n type=\"search\"\n placeholder={labels?.searchBoxPlaceholder}\n value={searchStr}\n onChange={(_, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n values={listValues}\n className={cx(\n filterGroupRightPanelClasses.list,\n css(styles.list),\n classes?.list\n )}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n )}\n </ClassNames>\n );\n};\n"],"names":["HvFilterGroupRightPanel","id","className","labels","emptyElement","classes","searchStr","setSearchStr","useState","allSelected","setAllSelected","anySelected","setAnySelected","filterOptions","filterValues","setFilterValues","activeGroup","useContext","HvFilterGroupContext","activeGroupOptions","useMemo","data","map","option","activeFilterValues","filter","value","includes","listValues","label","name","selected","isHidden","toLowerCase","indexOf","updateSelectAll","useCallback","nbrSelected","length","hasSelection","allSelect","useEffect","onChangeHandler","values","newFilterValues","_","i","v","handleSelectAll","cloneDeep","SelectAll","defaultLabel","HvTypography","component","children","_jsxs","_Fragment","_jsx","multiSelectionConjunction","selectAll","ClassNames","css","cx","filterGroupRightPanelClasses","selectAllContainer","styles","HvCheckBox","setId","onChange","indeterminate","checked","HvPanel","HvInput","root","search","type","placeholder","searchBoxPlaceholder","str","HvList","list","multiSelect","useSelector","showSelectAll","selectable","condensed","hasTooltips"],"mappings":"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"}
|