@activecollab/components 1.0.153 → 1.0.154
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/Filter/Filter.js +35 -3
- package/dist/cjs/components/Filter/Filter.js.map +1 -1
- package/dist/cjs/components/Filter/StartMenu.js +5 -3
- package/dist/cjs/components/Filter/StartMenu.js.map +1 -1
- package/dist/cjs/components/Filter/Styles.js +15 -2
- package/dist/cjs/components/Filter/Styles.js.map +1 -1
- package/dist/esm/components/Filter/Filter.d.ts +2 -1
- package/dist/esm/components/Filter/Filter.d.ts.map +1 -1
- package/dist/esm/components/Filter/Filter.js +31 -3
- package/dist/esm/components/Filter/Filter.js.map +1 -1
- package/dist/esm/components/Filter/StartMenu.d.ts +2 -0
- package/dist/esm/components/Filter/StartMenu.d.ts.map +1 -1
- package/dist/esm/components/Filter/StartMenu.js +6 -4
- package/dist/esm/components/Filter/StartMenu.js.map +1 -1
- package/dist/esm/components/Filter/Styles.d.ts +1 -0
- package/dist/esm/components/Filter/Styles.d.ts.map +1 -1
- package/dist/esm/components/Filter/Styles.js +11 -1
- package/dist/esm/components/Filter/Styles.js.map +1 -1
- package/dist/index.js +49 -7
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -31,6 +31,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
31
31
|
|
|
32
32
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
33
|
|
|
34
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
35
|
+
|
|
34
36
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
35
37
|
|
|
36
38
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
@@ -51,7 +53,8 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
51
53
|
|
|
52
54
|
var Filter = function Filter(_ref) {
|
|
53
55
|
var data = _ref.data,
|
|
54
|
-
selected = _ref.selected,
|
|
56
|
+
_ref$selected = _ref.selected,
|
|
57
|
+
selected = _ref$selected === void 0 ? {} : _ref$selected,
|
|
55
58
|
label = _ref.label,
|
|
56
59
|
clearAllText = _ref.clearAllText,
|
|
57
60
|
_ref$resetLabel = _ref.resetLabel,
|
|
@@ -60,6 +63,7 @@ var Filter = function Filter(_ref) {
|
|
|
60
63
|
_ref$width = _ref.width,
|
|
61
64
|
width = _ref$width === void 0 ? 260 : _ref$width,
|
|
62
65
|
noResultText = _ref.noResultText,
|
|
66
|
+
emptyFilterText = _ref.emptyFilterText,
|
|
63
67
|
children = _ref.children;
|
|
64
68
|
|
|
65
69
|
var _useState = (0, _react.useState)(false),
|
|
@@ -147,6 +151,32 @@ var Filter = function Filter(_ref) {
|
|
|
147
151
|
});
|
|
148
152
|
return c;
|
|
149
153
|
}, [filter]);
|
|
154
|
+
var shouldRenderSubmenus = (0, _react.useMemo)(function () {
|
|
155
|
+
if (data.length === 0) {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
var _iterator = _createForOfIteratorHelper(data),
|
|
160
|
+
_step;
|
|
161
|
+
|
|
162
|
+
try {
|
|
163
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
164
|
+
var _entry$submenu;
|
|
165
|
+
|
|
166
|
+
var entry = _step.value;
|
|
167
|
+
|
|
168
|
+
if (((_entry$submenu = entry.submenu) === null || _entry$submenu === void 0 ? void 0 : _entry$submenu.length) > 1) {
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
} catch (err) {
|
|
173
|
+
_iterator.e(err);
|
|
174
|
+
} finally {
|
|
175
|
+
_iterator.f();
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
return false;
|
|
179
|
+
}, [data]);
|
|
150
180
|
return /*#__PURE__*/_react.default.createElement(_Styles.StyledMenu, {
|
|
151
181
|
open: open,
|
|
152
182
|
onOpen: handleOpen,
|
|
@@ -181,8 +211,10 @@ var Filter = function Filter(_ref) {
|
|
|
181
211
|
width: width
|
|
182
212
|
},
|
|
183
213
|
onHeightChange: setHeight,
|
|
184
|
-
onItemClick: handleItemClick
|
|
185
|
-
|
|
214
|
+
onItemClick: handleItemClick,
|
|
215
|
+
shouldRenderSubmenus: shouldRenderSubmenus,
|
|
216
|
+
emptyFilterText: emptyFilterText
|
|
217
|
+
}, children))), shouldRenderSubmenus && data.map(function (_ref2, index) {
|
|
186
218
|
var _filter$id;
|
|
187
219
|
|
|
188
220
|
var id = _ref2.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Filter/Filter.tsx"],"names":["Filter","data","selected","label","clearAllText","resetLabel","onChange","width","noResultText","children","open","setOpen","menu","setMenu","isLeft","setIsLeft","height","setHeight","enteredMenu","setEnteredMenu","filter","setFilter","handleOpen","handleClose","handleHeight","element","offsetHeight","handleItemClick","value","setIndex","handleChange","selectedArray","newFilters","length","handleClearAll","event","stopPropagation","handleReset","count","c","Object","values","forEach","entry","map","index","id","title","submenu","searchPlaceholder","Boolean"],"mappings":"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","sourcesContent":["import React, { FC, useCallback, useMemo, useState } from \"react\";\nimport { MoveFocusInside } from \"react-focus-lock\";\nimport { Submenu } from \"./Submenu\";\nimport { StartMenu } from \"./StartMenu\";\nimport { FilterIcon } from \"../Icons\";\nimport { ResizeTransition, SlideLeftRightTransition } from \"../Transitions\";\nimport { IOptionGroupProps, IOptionItemProps, Select } from \"../Select\";\nimport { CounterButton } from \"../CounterButton\";\nimport { Button } from \"../Button\";\nimport { StyledMenu, StyledMenuFooter } from \"./Styles\";\n\nexport type DataType = {\n id: number | string;\n title: string;\n searchPlaceholder?: string;\n submenu: Array<IOptionGroupProps | IOptionItemProps>;\n};\n\nexport type SelectedType = {\n [key: number | string]: Array<string>;\n};\n\nexport interface FilterProps {\n /** Data rendered in submenus */\n data: Array<DataType>;\n /** Selected data inside submenus */\n selected: SelectedType;\n /** Main filter label */\n label: string;\n /** Filter width */\n width?: number;\n /** Text displayed for the tooltip of clear all button */\n clearAllText: string;\n /** Handler for changes on the filter */\n onChange: (selected: SelectedType) => void;\n /** Label for reset button inside submenu */\n resetLabel?: string;\n /** Text to show when search results are empty */\n noResultText: string;\n}\n\nexport const Filter: FC<FilterProps> = ({\n data,\n selected,\n label,\n clearAllText,\n resetLabel = \"Reset\",\n onChange,\n width = 260,\n noResultText,\n children,\n}) => {\n const [open, setOpen] = useState(false);\n const [menu, setMenu] = useState<number | string>(\"index\");\n const [isLeft, setIsLeft] = useState(true);\n const [height, setHeight] = useState(0);\n const [enteredMenu, setEnteredMenu] = useState<number | string>(\"index\");\n const [filter, setFilter] = useState<SelectedType>(() => selected);\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n setMenu(\"index\");\n setHeight(0);\n }, []);\n\n const handleHeight = useCallback((element) => {\n setHeight(element?.offsetHeight ?? 0);\n }, []);\n\n const handleItemClick = useCallback((value) => {\n setMenu(value);\n setIsLeft(true);\n }, []);\n\n const setIndex = useCallback(() => {\n setMenu(\"index\");\n setIsLeft(false);\n }, []);\n\n const handleChange = useCallback(\n (selectedArray) => {\n let newFilters = {};\n if (selectedArray.length) {\n newFilters = {\n ...filter,\n [menu]: selectedArray,\n };\n } else {\n newFilters = { ...filter };\n delete newFilters[menu];\n }\n\n setFilter(newFilters);\n onChange(newFilters);\n },\n [filter, menu, onChange]\n );\n\n const handleClearAll = useCallback(\n (event) => {\n event.stopPropagation();\n setFilter({});\n onChange({});\n },\n [onChange]\n );\n\n const handleReset = useCallback(() => {\n const newFilters = { ...filter };\n delete newFilters[menu];\n setFilter(newFilters);\n onChange(newFilters);\n }, [filter, menu, onChange]);\n\n const count = useMemo(() => {\n let c = 0;\n Object.values(filter).forEach((entry) => (c += entry.length));\n return c;\n }, [filter]);\n\n return (\n <StyledMenu\n open={open}\n onOpen={handleOpen}\n onClose={handleClose}\n position=\"bottom-end\"\n target={\n <CounterButton\n active={open}\n label={label}\n icon={<FilterIcon />}\n counter={count}\n tooltipText={clearAllText}\n onClearAll={handleClearAll}\n />\n }\n >\n <ResizeTransition in>\n <div style={{ height, width }}>\n <SlideLeftRightTransition\n in={menu === \"index\"}\n direction={isLeft ? \"left\" : \"right\"}\n onEnter={handleHeight}\n onEntered={() => setEnteredMenu(\"index\")}\n >\n <MoveFocusInside>\n <StartMenu\n data={data}\n selected={filter}\n style={{ width }}\n onHeightChange={setHeight}\n onItemClick={handleItemClick}\n >\n {children}\n </StartMenu>\n </MoveFocusInside>\n </SlideLeftRightTransition>\n {data.map(\n (\n { id, title, submenu, searchPlaceholder }: DataType,\n index: number\n ) => (\n <SlideLeftRightTransition\n key={`filter-submenu-${index}`}\n in={menu === id}\n direction={isLeft ? \"left\" : \"right\"}\n onEnter={handleHeight}\n onEntered={() => setEnteredMenu(id)}\n >\n <Submenu\n title={title}\n onBack={setIndex}\n onHeightChange={setHeight}\n style={{ width }}\n >\n <MoveFocusInside disabled={enteredMenu !== id}>\n <Select\n options={submenu}\n selected={filter[id]}\n onChange={handleChange}\n type=\"multiple\"\n autoHeightMax={255}\n placeholder={searchPlaceholder}\n noResultText={noResultText}\n keepSameOptionsOrder={Boolean(submenu.length <= 7)}\n disableSearch={Boolean(submenu.length <= 7)}\n />\n {filter[id]?.length ? (\n <StyledMenuFooter>\n <Button\n variant=\"text colored\"\n size=\"small\"\n onClick={handleReset}\n >\n {resetLabel}\n </Button>\n </StyledMenuFooter>\n ) : null}\n </MoveFocusInside>\n </Submenu>\n </SlideLeftRightTransition>\n )\n )}\n </div>\n </ResizeTransition>\n </StyledMenu>\n );\n};\n"],"file":"Filter.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Filter/Filter.tsx"],"names":["Filter","data","selected","label","clearAllText","resetLabel","onChange","width","noResultText","emptyFilterText","children","open","setOpen","menu","setMenu","isLeft","setIsLeft","height","setHeight","enteredMenu","setEnteredMenu","filter","setFilter","handleOpen","handleClose","handleHeight","element","offsetHeight","handleItemClick","value","setIndex","handleChange","selectedArray","newFilters","length","handleClearAll","event","stopPropagation","handleReset","count","c","Object","values","forEach","entry","shouldRenderSubmenus","submenu","map","index","id","title","searchPlaceholder","Boolean"],"mappings":"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","sourcesContent":["import React, { FC, useCallback, useMemo, useState } from \"react\";\nimport { MoveFocusInside } from \"react-focus-lock\";\nimport { Submenu } from \"./Submenu\";\nimport { StartMenu } from \"./StartMenu\";\nimport { FilterIcon } from \"../Icons\";\nimport { ResizeTransition, SlideLeftRightTransition } from \"../Transitions\";\nimport { IOptionGroupProps, IOptionItemProps, Select } from \"../Select\";\nimport { CounterButton } from \"../CounterButton\";\nimport { Button } from \"../Button\";\nimport { StyledMenu, StyledMenuFooter } from \"./Styles\";\n\nexport type DataType = {\n id: number | string;\n title: string;\n searchPlaceholder?: string;\n submenu: Array<IOptionGroupProps | IOptionItemProps>;\n};\n\nexport type SelectedType = {\n [key: number | string]: Array<string>;\n};\n\nexport interface FilterProps {\n /** Data rendered in submenus */\n data: Array<DataType>;\n /** Selected data inside submenus */\n selected?: SelectedType;\n /** Main filter label */\n label: string;\n /** Filter width */\n width?: number;\n /** Text displayed for the tooltip of clear all button */\n clearAllText: string;\n /** Handler for changes on the filter */\n onChange: (selected: SelectedType) => void;\n /** Label for reset button inside submenu */\n resetLabel?: string;\n /** Text to show when search results are empty */\n noResultText: string;\n /** Text to show when there are no submenus to display */\n emptyFilterText?: string;\n}\n\nexport const Filter: FC<FilterProps> = ({\n data,\n selected = {},\n label,\n clearAllText,\n resetLabel = \"Reset\",\n onChange,\n width = 260,\n noResultText,\n emptyFilterText,\n children,\n}) => {\n const [open, setOpen] = useState(false);\n const [menu, setMenu] = useState<number | string>(\"index\");\n const [isLeft, setIsLeft] = useState(true);\n const [height, setHeight] = useState(0);\n const [enteredMenu, setEnteredMenu] = useState<number | string>(\"index\");\n const [filter, setFilter] = useState<SelectedType>(() => selected);\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n setMenu(\"index\");\n setHeight(0);\n }, []);\n\n const handleHeight = useCallback((element) => {\n setHeight(element?.offsetHeight ?? 0);\n }, []);\n\n const handleItemClick = useCallback((value) => {\n setMenu(value);\n setIsLeft(true);\n }, []);\n\n const setIndex = useCallback(() => {\n setMenu(\"index\");\n setIsLeft(false);\n }, []);\n\n const handleChange = useCallback(\n (selectedArray) => {\n let newFilters = {};\n if (selectedArray.length) {\n newFilters = {\n ...filter,\n [menu]: selectedArray,\n };\n } else {\n newFilters = { ...filter };\n delete newFilters[menu];\n }\n\n setFilter(newFilters);\n onChange(newFilters);\n },\n [filter, menu, onChange]\n );\n\n const handleClearAll = useCallback(\n (event) => {\n event.stopPropagation();\n setFilter({});\n onChange({});\n },\n [onChange]\n );\n\n const handleReset = useCallback(() => {\n const newFilters = { ...filter };\n delete newFilters[menu];\n setFilter(newFilters);\n onChange(newFilters);\n }, [filter, menu, onChange]);\n\n const count = useMemo(() => {\n let c = 0;\n Object.values(filter).forEach((entry) => (c += entry.length));\n return c;\n }, [filter]);\n\n const shouldRenderSubmenus = useMemo(() => {\n if (data.length === 0) {\n return false;\n }\n\n for (const entry of data) {\n if (entry.submenu?.length > 1) {\n return true;\n }\n }\n\n return false;\n }, [data]);\n\n return (\n <StyledMenu\n open={open}\n onOpen={handleOpen}\n onClose={handleClose}\n position=\"bottom-end\"\n target={\n <CounterButton\n active={open}\n label={label}\n icon={<FilterIcon />}\n counter={count}\n tooltipText={clearAllText}\n onClearAll={handleClearAll}\n />\n }\n >\n <ResizeTransition in>\n <div style={{ height, width }}>\n <SlideLeftRightTransition\n in={menu === \"index\"}\n direction={isLeft ? \"left\" : \"right\"}\n onEnter={handleHeight}\n onEntered={() => setEnteredMenu(\"index\")}\n >\n <MoveFocusInside>\n <StartMenu\n data={data}\n selected={filter}\n style={{ width }}\n onHeightChange={setHeight}\n onItemClick={handleItemClick}\n shouldRenderSubmenus={shouldRenderSubmenus}\n emptyFilterText={emptyFilterText}\n >\n {children}\n </StartMenu>\n </MoveFocusInside>\n </SlideLeftRightTransition>\n {shouldRenderSubmenus &&\n data.map(\n (\n { id, title, submenu, searchPlaceholder }: DataType,\n index: number\n ) => (\n <SlideLeftRightTransition\n key={`filter-submenu-${index}`}\n in={menu === id}\n direction={isLeft ? \"left\" : \"right\"}\n onEnter={handleHeight}\n onEntered={() => setEnteredMenu(id)}\n >\n <Submenu\n title={title}\n onBack={setIndex}\n onHeightChange={setHeight}\n style={{ width }}\n >\n <MoveFocusInside disabled={enteredMenu !== id}>\n <Select\n options={submenu}\n selected={filter[id]}\n onChange={handleChange}\n type=\"multiple\"\n autoHeightMax={255}\n placeholder={searchPlaceholder}\n noResultText={noResultText}\n keepSameOptionsOrder={Boolean(submenu.length <= 7)}\n disableSearch={Boolean(submenu.length <= 7)}\n />\n {filter[id]?.length ? (\n <StyledMenuFooter>\n <Button\n variant=\"text colored\"\n size=\"small\"\n onClick={handleReset}\n >\n {resetLabel}\n </Button>\n </StyledMenuFooter>\n ) : null}\n </MoveFocusInside>\n </Submenu>\n </SlideLeftRightTransition>\n )\n )}\n </div>\n </ResizeTransition>\n </StyledMenu>\n );\n};\n"],"file":"Filter.js"}
|
|
@@ -25,6 +25,8 @@ var StartMenu = function StartMenu(_ref) {
|
|
|
25
25
|
onItemClick = _ref.onItemClick,
|
|
26
26
|
style = _ref.style,
|
|
27
27
|
onHeightChange = _ref.onHeightChange,
|
|
28
|
+
shouldRenderSubmenus = _ref.shouldRenderSubmenus,
|
|
29
|
+
emptyFilterText = _ref.emptyFilterText,
|
|
28
30
|
children = _ref.children;
|
|
29
31
|
var ref = (0, _react.useRef)(null);
|
|
30
32
|
var dimensions = (0, _utils.useResizeObserver)(ref);
|
|
@@ -37,7 +39,7 @@ var StartMenu = function StartMenu(_ref) {
|
|
|
37
39
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
38
40
|
style: style,
|
|
39
41
|
ref: ref
|
|
40
|
-
}, /*#__PURE__*/_react.default.createElement(_Styles.StyledStartMenuList, null, data.map(function (_ref2, index) {
|
|
42
|
+
}, /*#__PURE__*/_react.default.createElement(_Styles.StyledStartMenuList, null, shouldRenderSubmenus ? data.map(function (_ref2, index) {
|
|
41
43
|
var _selected$id;
|
|
42
44
|
|
|
43
45
|
var id = _ref2.id,
|
|
@@ -45,7 +47,7 @@ var StartMenu = function StartMenu(_ref) {
|
|
|
45
47
|
submenu = _ref2.submenu;
|
|
46
48
|
var count = (_selected$id = selected[id]) === null || _selected$id === void 0 ? void 0 : _selected$id.length;
|
|
47
49
|
|
|
48
|
-
if (submenu
|
|
50
|
+
if ((submenu === null || submenu === void 0 ? void 0 : submenu.length) > 1) {
|
|
49
51
|
return /*#__PURE__*/_react.default.createElement(_Styles.StyledStartMenuListItem, {
|
|
50
52
|
key: "filter-list-item-".concat(index),
|
|
51
53
|
onClick: function onClick() {
|
|
@@ -53,7 +55,7 @@ var StartMenu = function StartMenu(_ref) {
|
|
|
53
55
|
}
|
|
54
56
|
}, /*#__PURE__*/_react.default.createElement(_Styles.StyledStartMenuTitle, null, title), count > 0 ? /*#__PURE__*/_react.default.createElement(_Styles.StyledStartMenuDot, null, count) : null, /*#__PURE__*/_react.default.createElement(_Icons.ArrowRightIcon, null));
|
|
55
57
|
}
|
|
56
|
-
}), children));
|
|
58
|
+
}) : emptyFilterText ? /*#__PURE__*/_react.default.createElement(_Styles.StyledStartMenuNoResults, null, emptyFilterText) : null, children));
|
|
57
59
|
};
|
|
58
60
|
|
|
59
61
|
exports.StartMenu = StartMenu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Filter/StartMenu.tsx"],"names":["StartMenu","data","selected","onItemClick","style","onHeightChange","children","ref","dimensions","height","map","index","id","title","submenu","count","length"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Filter/StartMenu.tsx"],"names":["StartMenu","data","selected","onItemClick","style","onHeightChange","shouldRenderSubmenus","emptyFilterText","children","ref","dimensions","height","map","index","id","title","submenu","count","length"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AAOA;;;;;;AAWO,IAAMA,SAA8D,GAAG,SAAjEA,SAAiE,OASxE;AAAA,MARJC,IAQI,QARJA,IAQI;AAAA,MAPJC,QAOI,QAPJA,QAOI;AAAA,MANJC,WAMI,QANJA,WAMI;AAAA,MALJC,KAKI,QALJA,KAKI;AAAA,MAJJC,cAII,QAJJA,cAII;AAAA,MAHJC,oBAGI,QAHJA,oBAGI;AAAA,MAFJC,eAEI,QAFJA,eAEI;AAAA,MADJC,QACI,QADJA,QACI;AACJ,MAAMC,GAAG,GAAG,mBAAO,IAAP,CAAZ;AACA,MAAMC,UAAU,GAAG,8BAAkBD,GAAlB,CAAnB;AACA,MAAME,MAAM,GAAGD,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEC,MAA3B;AAEA,wBAAU,YAAM;AACd,QAAIA,MAAM,IAAIA,MAAM,GAAG,CAAvB,EAA0B;AACxBN,MAAAA,cAAc,CAACM,MAAD,CAAd;AACD;AACF,GAJD,EAIG,CAACA,MAAD,EAASN,cAAT,CAJH;AAMA,sBACE;AAAK,IAAA,KAAK,EAAED,KAAZ;AAAmB,IAAA,GAAG,EAAEK;AAAxB,kBACE,6BAAC,2BAAD,QACGH,oBAAoB,GACnBL,IAAI,CAACW,GAAL,CAAS,iBAAyBC,KAAzB,EAA2C;AAAA;;AAAA,QAAxCC,EAAwC,SAAxCA,EAAwC;AAAA,QAApCC,KAAoC,SAApCA,KAAoC;AAAA,QAA7BC,OAA6B,SAA7BA,OAA6B;AAClD,QAAMC,KAAK,mBAAGf,QAAQ,CAACY,EAAD,CAAX,iDAAG,aAAcI,MAA5B;;AACA,QAAI,CAAAF,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEE,MAAT,IAAkB,CAAtB,EAAyB;AACvB,0BACE,6BAAC,+BAAD;AACE,QAAA,GAAG,6BAAsBL,KAAtB,CADL;AAEE,QAAA,OAAO,EAAE;AAAA,iBAAMV,WAAW,CAACW,EAAD,CAAjB;AAAA;AAFX,sBAIE,6BAAC,4BAAD,QAAuBC,KAAvB,CAJF,EAKGE,KAAK,GAAG,CAAR,gBACC,6BAAC,0BAAD,QAAqBA,KAArB,CADD,GAEG,IAPN,eAQE,6BAAC,qBAAD,OARF,CADF;AAYD;AACF,GAhBD,CADmB,GAkBjBV,eAAe,gBACjB,6BAAC,gCAAD,QAA2BA,eAA3B,CADiB,GAEf,IArBN,EAsBGC,QAtBH,CADF,CADF;AA4BD,CAhDM","sourcesContent":["import React, { FC, useRef, useEffect, HTMLAttributes } from \"react\";\nimport { ArrowRightIcon } from \"../Icons\";\nimport { DataType, SelectedType } from \"./Filter\";\nimport {\n StyledStartMenuTitle,\n StyledStartMenuDot,\n StyledStartMenuListItem,\n StyledStartMenuList,\n StyledStartMenuNoResults,\n} from \"./Styles\";\nimport { useResizeObserver } from \"../../utils\";\n\nexport interface StartMenuProps {\n data: Array<DataType>;\n selected: SelectedType;\n onItemClick: (id: number | string) => void;\n onHeightChange: (height: number) => void;\n shouldRenderSubmenus: boolean;\n emptyFilterText?: string;\n}\n\nexport const StartMenu: FC<StartMenuProps & HTMLAttributes<HTMLDivElement>> = ({\n data,\n selected,\n onItemClick,\n style,\n onHeightChange,\n shouldRenderSubmenus,\n emptyFilterText,\n children,\n}) => {\n const ref = useRef(null);\n const dimensions = useResizeObserver(ref);\n const height = dimensions?.height;\n\n useEffect(() => {\n if (height && height > 0) {\n onHeightChange(height);\n }\n }, [height, onHeightChange]);\n\n return (\n <div style={style} ref={ref}>\n <StyledStartMenuList>\n {shouldRenderSubmenus ? (\n data.map(({ id, title, submenu }, index: number) => {\n const count = selected[id]?.length;\n if (submenu?.length > 1) {\n return (\n <StyledStartMenuListItem\n key={`filter-list-item-${index}`}\n onClick={() => onItemClick(id)}\n >\n <StyledStartMenuTitle>{title}</StyledStartMenuTitle>\n {count > 0 ? (\n <StyledStartMenuDot>{count}</StyledStartMenuDot>\n ) : null}\n <ArrowRightIcon />\n </StyledStartMenuListItem>\n );\n }\n })\n ) : emptyFilterText ? (\n <StyledStartMenuNoResults>{emptyFilterText}</StyledStartMenuNoResults>\n ) : null}\n {children}\n </StyledStartMenuList>\n </div>\n );\n};\n"],"file":"StartMenu.js"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.StyledStartMenuTitle = exports.StyledStartMenuListItem = exports.StyledStartMenuList = exports.StyledStartMenuDot = exports.StyledMenuFooter = exports.StyledMenu = void 0;
|
|
6
|
+
exports.StyledStartMenuTitle = exports.StyledStartMenuNoResults = exports.StyledStartMenuListItem = exports.StyledStartMenuList = exports.StyledStartMenuDot = exports.StyledMenuFooter = exports.StyledMenu = void 0;
|
|
7
7
|
|
|
8
8
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
9
|
|
|
@@ -54,9 +54,21 @@ var StyledStartMenuTitle = _styledComponents.default.div.withConfig({
|
|
|
54
54
|
|
|
55
55
|
exports.StyledStartMenuTitle = StyledStartMenuTitle;
|
|
56
56
|
|
|
57
|
+
var StyledStartMenuNoResults = _styledComponents.default.div.withConfig({
|
|
58
|
+
displayName: "Styles__StyledStartMenuNoResults",
|
|
59
|
+
componentId: "sc-lxuoiz-5"
|
|
60
|
+
})(["", " ", ""], {
|
|
61
|
+
"paddingTop": "0.125rem",
|
|
62
|
+
"paddingBottom": "0.125rem"
|
|
63
|
+
}, {
|
|
64
|
+
"textAlign": "center"
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
exports.StyledStartMenuNoResults = StyledStartMenuNoResults;
|
|
68
|
+
|
|
57
69
|
var StyledStartMenuDot = _styledComponents.default.span.withConfig({
|
|
58
70
|
displayName: "Styles__StyledStartMenuDot",
|
|
59
|
-
componentId: "sc-lxuoiz-
|
|
71
|
+
componentId: "sc-lxuoiz-6"
|
|
60
72
|
})(["border-radius:50%;background-color:var(--color-primary);color:var(--page-paper-main);line-height:15px;width:15px;font-weight:bold;font-size:10px;text-align:center;margin-left:4px;"]);
|
|
61
73
|
|
|
62
74
|
exports.StyledStartMenuDot = StyledStartMenuDot;
|
|
@@ -66,4 +78,5 @@ StyledStartMenuList.displayName = "StyledStartMenuList";
|
|
|
66
78
|
StyledStartMenuListItem.displayName = "StyledStartMenuListItem";
|
|
67
79
|
StyledStartMenuTitle.displayName = "StyledStartMenuTitle";
|
|
68
80
|
StyledStartMenuDot.displayName = "StyledStartMenuDot";
|
|
81
|
+
StyledStartMenuNoResults.displayName = "StyledStartMenuNoResults";
|
|
69
82
|
//# sourceMappingURL=Styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Filter/Styles.ts"],"names":["StyledMenu","Menu","StyledMenuFooter","MenuFooter","StyledStartMenuList","List","StyledStartMenuListItem","ListItem","StyledStartMenuTitle","styled","div","StyledStartMenuDot","span","displayName"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAGO,IAAMA,UAAU,GAAG,+BAAOC,UAAP,CAAH;AAAA;AAAA;AAAA,kBACjB;AAAA;AAAA,CADiB,EAEjB;AAAA;AAAA,CAFiB,CAAhB;;AAKA,IAAMC,gBAAgB,GAAG,+BAAOC,gBAAP,CAAH;AAAA;AAAA;AAAA,aACvB;AAAA;AAAA,CADuB,CAAtB;;AAIA,IAAMC,mBAAmB,GAAG,+BAAOC,UAAP,CAAH;AAAA;AAAA;AAAA,aAC1B;AAAA;AAAA;AAAA,CAD0B,CAAzB;;AAIA,IAAMC,uBAAuB,GAAG,+BAAOC,cAAP,CAAH;AAAA;AAAA;AAAA,aAC9B;AAAA;AAAA,CAD8B,CAA7B;;;AAIA,IAAMC,oBAAoB,GAAGC,0BAAOC,GAAV;AAAA;AAAA;AAAA,aAC3B;AAAA;AAAA,CAD2B,CAA1B;;;;AAIA,IAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Filter/Styles.ts"],"names":["StyledMenu","Menu","StyledMenuFooter","MenuFooter","StyledStartMenuList","List","StyledStartMenuListItem","ListItem","StyledStartMenuTitle","styled","div","StyledStartMenuNoResults","StyledStartMenuDot","span","displayName"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAGO,IAAMA,UAAU,GAAG,+BAAOC,UAAP,CAAH;AAAA;AAAA;AAAA,kBACjB;AAAA;AAAA,CADiB,EAEjB;AAAA;AAAA,CAFiB,CAAhB;;AAKA,IAAMC,gBAAgB,GAAG,+BAAOC,gBAAP,CAAH;AAAA;AAAA;AAAA,aACvB;AAAA;AAAA,CADuB,CAAtB;;AAIA,IAAMC,mBAAmB,GAAG,+BAAOC,UAAP,CAAH;AAAA;AAAA;AAAA,aAC1B;AAAA;AAAA;AAAA,CAD0B,CAAzB;;AAIA,IAAMC,uBAAuB,GAAG,+BAAOC,cAAP,CAAH;AAAA;AAAA;AAAA,aAC9B;AAAA;AAAA,CAD8B,CAA7B;;;AAIA,IAAMC,oBAAoB,GAAGC,0BAAOC,GAAV;AAAA;AAAA;AAAA,aAC3B;AAAA;AAAA,CAD2B,CAA1B;;;;AAIA,IAAMC,wBAAwB,GAAGF,0BAAOC,GAAV;AAAA;AAAA;AAAA,kBAC/B;AAAA;AAAA;AAAA,CAD+B,EAE/B;AAAA;AAAA,CAF+B,CAA9B;;;;AAKA,IAAME,kBAAkB,GAAGH,0BAAOI,IAAV;AAAA;AAAA;AAAA,2LAAxB;;;AAYPb,UAAU,CAACc,WAAX,GAAyB,YAAzB;AACAZ,gBAAgB,CAACY,WAAjB,GAA+B,kBAA/B;AACAV,mBAAmB,CAACU,WAApB,GAAkC,qBAAlC;AACAR,uBAAuB,CAACQ,WAAxB,GAAsC,yBAAtC;AACAN,oBAAoB,CAACM,WAArB,GAAmC,sBAAnC;AACAF,kBAAkB,CAACE,WAAnB,GAAiC,oBAAjC;AACAH,wBAAwB,CAACG,WAAzB,GAAuC,0BAAvC","sourcesContent":["import styled from \"styled-components\";\nimport { Menu, IMenu, MenuFooter, IMenuFooter } from \"../Menu\";\nimport { ListItem, IListItem, List, IList } from \"../List\";\nimport tw from \"twin.macro\";\n\nexport const StyledMenu = styled(Menu)<IMenu>`\n ${tw`tw-relative`}\n ${tw`tw-overflow-hidden`}\n`;\n\nexport const StyledMenuFooter = styled(MenuFooter)<IMenuFooter>`\n ${tw`tw-justify-center`}\n`;\n\nexport const StyledStartMenuList = styled(List)<IList>`\n ${tw`tw-py-2`}\n`;\n\nexport const StyledStartMenuListItem = styled(ListItem)<IListItem>`\n ${tw`tw-pr-3`}\n`;\n\nexport const StyledStartMenuTitle = styled.div`\n ${tw`tw-flex-1`}\n`;\n\nexport const StyledStartMenuNoResults = styled.div`\n ${tw`tw-py-0.5`}\n ${tw`tw-text-center`}\n`;\n\nexport const StyledStartMenuDot = styled.span`\n border-radius: 50%;\n background-color: var(--color-primary);\n color: var(--page-paper-main);\n line-height: 15px;\n width: 15px;\n font-weight: bold;\n font-size: 10px;\n text-align: center;\n margin-left: 4px;\n`;\n\nStyledMenu.displayName = \"StyledMenu\";\nStyledMenuFooter.displayName = \"StyledMenuFooter\";\nStyledStartMenuList.displayName = \"StyledStartMenuList\";\nStyledStartMenuListItem.displayName = \"StyledStartMenuListItem\";\nStyledStartMenuTitle.displayName = \"StyledStartMenuTitle\";\nStyledStartMenuDot.displayName = \"StyledStartMenuDot\";\nStyledStartMenuNoResults.displayName = \"StyledStartMenuNoResults\";\n"],"file":"Styles.js"}
|
|
@@ -11,13 +11,14 @@ export declare type SelectedType = {
|
|
|
11
11
|
};
|
|
12
12
|
export interface FilterProps {
|
|
13
13
|
data: Array<DataType>;
|
|
14
|
-
selected
|
|
14
|
+
selected?: SelectedType;
|
|
15
15
|
label: string;
|
|
16
16
|
width?: number;
|
|
17
17
|
clearAllText: string;
|
|
18
18
|
onChange: (selected: SelectedType) => void;
|
|
19
19
|
resetLabel?: string;
|
|
20
20
|
noResultText: string;
|
|
21
|
+
emptyFilterText?: string;
|
|
21
22
|
}
|
|
22
23
|
export declare const Filter: FC<FilterProps>;
|
|
23
24
|
//# sourceMappingURL=Filter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../../src/components/Filter/Filter.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAkC,MAAM,OAAO,CAAC;AAMlE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAU,MAAM,WAAW,CAAC;AAKxE,oBAAY,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,KAAK,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;CACtD,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,WAAW;IAE1B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtB,QAAQ,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../../src/components/Filter/Filter.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAkC,MAAM,OAAO,CAAC;AAMlE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAU,MAAM,WAAW,CAAC;AAKxE,oBAAY,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,KAAK,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;CACtD,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,WAAW;IAE1B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtB,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,KAAK,EAAE,MAAM,CAAC;IAEd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,YAAY,EAAE,MAAM,CAAC;IAErB,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IAE3C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CA4LlC,CAAC"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
|
|
3
|
+
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
8
|
+
|
|
2
9
|
import React, { useCallback, useMemo, useState } from "react";
|
|
3
10
|
import { MoveFocusInside } from "react-focus-lock";
|
|
4
11
|
import { Submenu } from "./Submenu";
|
|
@@ -11,7 +18,8 @@ import { Button } from "../Button";
|
|
|
11
18
|
import { StyledMenu, StyledMenuFooter } from "./Styles";
|
|
12
19
|
export var Filter = function Filter(_ref) {
|
|
13
20
|
var data = _ref.data,
|
|
14
|
-
selected = _ref.selected,
|
|
21
|
+
_ref$selected = _ref.selected,
|
|
22
|
+
selected = _ref$selected === void 0 ? {} : _ref$selected,
|
|
15
23
|
label = _ref.label,
|
|
16
24
|
clearAllText = _ref.clearAllText,
|
|
17
25
|
_ref$resetLabel = _ref.resetLabel,
|
|
@@ -20,6 +28,7 @@ export var Filter = function Filter(_ref) {
|
|
|
20
28
|
_ref$width = _ref.width,
|
|
21
29
|
width = _ref$width === void 0 ? 260 : _ref$width,
|
|
22
30
|
noResultText = _ref.noResultText,
|
|
31
|
+
emptyFilterText = _ref.emptyFilterText,
|
|
23
32
|
children = _ref.children;
|
|
24
33
|
|
|
25
34
|
var _useState = useState(false),
|
|
@@ -103,6 +112,23 @@ export var Filter = function Filter(_ref) {
|
|
|
103
112
|
});
|
|
104
113
|
return c;
|
|
105
114
|
}, [filter]);
|
|
115
|
+
var shouldRenderSubmenus = useMemo(function () {
|
|
116
|
+
if (data.length === 0) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
for (var _iterator = _createForOfIteratorHelperLoose(data), _step; !(_step = _iterator()).done;) {
|
|
121
|
+
var _entry$submenu;
|
|
122
|
+
|
|
123
|
+
var entry = _step.value;
|
|
124
|
+
|
|
125
|
+
if (((_entry$submenu = entry.submenu) == null ? void 0 : _entry$submenu.length) > 1) {
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return false;
|
|
131
|
+
}, [data]);
|
|
106
132
|
return /*#__PURE__*/React.createElement(StyledMenu, {
|
|
107
133
|
open: open,
|
|
108
134
|
onOpen: handleOpen,
|
|
@@ -137,8 +163,10 @@ export var Filter = function Filter(_ref) {
|
|
|
137
163
|
width: width
|
|
138
164
|
},
|
|
139
165
|
onHeightChange: setHeight,
|
|
140
|
-
onItemClick: handleItemClick
|
|
141
|
-
|
|
166
|
+
onItemClick: handleItemClick,
|
|
167
|
+
shouldRenderSubmenus: shouldRenderSubmenus,
|
|
168
|
+
emptyFilterText: emptyFilterText
|
|
169
|
+
}, children))), shouldRenderSubmenus && data.map(function (_ref2, index) {
|
|
142
170
|
var _filter$id;
|
|
143
171
|
|
|
144
172
|
var id = _ref2.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Filter/Filter.tsx"],"names":["React","useCallback","useMemo","useState","MoveFocusInside","Submenu","StartMenu","FilterIcon","ResizeTransition","SlideLeftRightTransition","Select","CounterButton","Button","StyledMenu","StyledMenuFooter","Filter","data","selected","label","clearAllText","resetLabel","onChange","width","noResultText","children","open","setOpen","menu","setMenu","isLeft","setIsLeft","height","setHeight","enteredMenu","setEnteredMenu","filter","setFilter","handleOpen","handleClose","handleHeight","element","offsetHeight","handleItemClick","value","setIndex","handleChange","selectedArray","newFilters","length","handleClearAll","event","stopPropagation","handleReset","count","c","Object","values","forEach","entry","map","index","id","title","submenu","searchPlaceholder","Boolean"],"mappings":"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","sourcesContent":["import React, { FC, useCallback, useMemo, useState } from \"react\";\nimport { MoveFocusInside } from \"react-focus-lock\";\nimport { Submenu } from \"./Submenu\";\nimport { StartMenu } from \"./StartMenu\";\nimport { FilterIcon } from \"../Icons\";\nimport { ResizeTransition, SlideLeftRightTransition } from \"../Transitions\";\nimport { IOptionGroupProps, IOptionItemProps, Select } from \"../Select\";\nimport { CounterButton } from \"../CounterButton\";\nimport { Button } from \"../Button\";\nimport { StyledMenu, StyledMenuFooter } from \"./Styles\";\n\nexport type DataType = {\n id: number | string;\n title: string;\n searchPlaceholder?: string;\n submenu: Array<IOptionGroupProps | IOptionItemProps>;\n};\n\nexport type SelectedType = {\n [key: number | string]: Array<string>;\n};\n\nexport interface FilterProps {\n /** Data rendered in submenus */\n data: Array<DataType>;\n /** Selected data inside submenus */\n selected: SelectedType;\n /** Main filter label */\n label: string;\n /** Filter width */\n width?: number;\n /** Text displayed for the tooltip of clear all button */\n clearAllText: string;\n /** Handler for changes on the filter */\n onChange: (selected: SelectedType) => void;\n /** Label for reset button inside submenu */\n resetLabel?: string;\n /** Text to show when search results are empty */\n noResultText: string;\n}\n\nexport const Filter: FC<FilterProps> = ({\n data,\n selected,\n label,\n clearAllText,\n resetLabel = \"Reset\",\n onChange,\n width = 260,\n noResultText,\n children,\n}) => {\n const [open, setOpen] = useState(false);\n const [menu, setMenu] = useState<number | string>(\"index\");\n const [isLeft, setIsLeft] = useState(true);\n const [height, setHeight] = useState(0);\n const [enteredMenu, setEnteredMenu] = useState<number | string>(\"index\");\n const [filter, setFilter] = useState<SelectedType>(() => selected);\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n setMenu(\"index\");\n setHeight(0);\n }, []);\n\n const handleHeight = useCallback((element) => {\n setHeight(element?.offsetHeight ?? 0);\n }, []);\n\n const handleItemClick = useCallback((value) => {\n setMenu(value);\n setIsLeft(true);\n }, []);\n\n const setIndex = useCallback(() => {\n setMenu(\"index\");\n setIsLeft(false);\n }, []);\n\n const handleChange = useCallback(\n (selectedArray) => {\n let newFilters = {};\n if (selectedArray.length) {\n newFilters = {\n ...filter,\n [menu]: selectedArray,\n };\n } else {\n newFilters = { ...filter };\n delete newFilters[menu];\n }\n\n setFilter(newFilters);\n onChange(newFilters);\n },\n [filter, menu, onChange]\n );\n\n const handleClearAll = useCallback(\n (event) => {\n event.stopPropagation();\n setFilter({});\n onChange({});\n },\n [onChange]\n );\n\n const handleReset = useCallback(() => {\n const newFilters = { ...filter };\n delete newFilters[menu];\n setFilter(newFilters);\n onChange(newFilters);\n }, [filter, menu, onChange]);\n\n const count = useMemo(() => {\n let c = 0;\n Object.values(filter).forEach((entry) => (c += entry.length));\n return c;\n }, [filter]);\n\n return (\n <StyledMenu\n open={open}\n onOpen={handleOpen}\n onClose={handleClose}\n position=\"bottom-end\"\n target={\n <CounterButton\n active={open}\n label={label}\n icon={<FilterIcon />}\n counter={count}\n tooltipText={clearAllText}\n onClearAll={handleClearAll}\n />\n }\n >\n <ResizeTransition in>\n <div style={{ height, width }}>\n <SlideLeftRightTransition\n in={menu === \"index\"}\n direction={isLeft ? \"left\" : \"right\"}\n onEnter={handleHeight}\n onEntered={() => setEnteredMenu(\"index\")}\n >\n <MoveFocusInside>\n <StartMenu\n data={data}\n selected={filter}\n style={{ width }}\n onHeightChange={setHeight}\n onItemClick={handleItemClick}\n >\n {children}\n </StartMenu>\n </MoveFocusInside>\n </SlideLeftRightTransition>\n {data.map(\n (\n { id, title, submenu, searchPlaceholder }: DataType,\n index: number\n ) => (\n <SlideLeftRightTransition\n key={`filter-submenu-${index}`}\n in={menu === id}\n direction={isLeft ? \"left\" : \"right\"}\n onEnter={handleHeight}\n onEntered={() => setEnteredMenu(id)}\n >\n <Submenu\n title={title}\n onBack={setIndex}\n onHeightChange={setHeight}\n style={{ width }}\n >\n <MoveFocusInside disabled={enteredMenu !== id}>\n <Select\n options={submenu}\n selected={filter[id]}\n onChange={handleChange}\n type=\"multiple\"\n autoHeightMax={255}\n placeholder={searchPlaceholder}\n noResultText={noResultText}\n keepSameOptionsOrder={Boolean(submenu.length <= 7)}\n disableSearch={Boolean(submenu.length <= 7)}\n />\n {filter[id]?.length ? (\n <StyledMenuFooter>\n <Button\n variant=\"text colored\"\n size=\"small\"\n onClick={handleReset}\n >\n {resetLabel}\n </Button>\n </StyledMenuFooter>\n ) : null}\n </MoveFocusInside>\n </Submenu>\n </SlideLeftRightTransition>\n )\n )}\n </div>\n </ResizeTransition>\n </StyledMenu>\n );\n};\n"],"file":"Filter.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Filter/Filter.tsx"],"names":["React","useCallback","useMemo","useState","MoveFocusInside","Submenu","StartMenu","FilterIcon","ResizeTransition","SlideLeftRightTransition","Select","CounterButton","Button","StyledMenu","StyledMenuFooter","Filter","data","selected","label","clearAllText","resetLabel","onChange","width","noResultText","emptyFilterText","children","open","setOpen","menu","setMenu","isLeft","setIsLeft","height","setHeight","enteredMenu","setEnteredMenu","filter","setFilter","handleOpen","handleClose","handleHeight","element","offsetHeight","handleItemClick","value","setIndex","handleChange","selectedArray","newFilters","length","handleClearAll","event","stopPropagation","handleReset","count","c","Object","values","forEach","entry","shouldRenderSubmenus","submenu","map","index","id","title","searchPlaceholder","Boolean"],"mappings":"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","sourcesContent":["import React, { FC, useCallback, useMemo, useState } from \"react\";\nimport { MoveFocusInside } from \"react-focus-lock\";\nimport { Submenu } from \"./Submenu\";\nimport { StartMenu } from \"./StartMenu\";\nimport { FilterIcon } from \"../Icons\";\nimport { ResizeTransition, SlideLeftRightTransition } from \"../Transitions\";\nimport { IOptionGroupProps, IOptionItemProps, Select } from \"../Select\";\nimport { CounterButton } from \"../CounterButton\";\nimport { Button } from \"../Button\";\nimport { StyledMenu, StyledMenuFooter } from \"./Styles\";\n\nexport type DataType = {\n id: number | string;\n title: string;\n searchPlaceholder?: string;\n submenu: Array<IOptionGroupProps | IOptionItemProps>;\n};\n\nexport type SelectedType = {\n [key: number | string]: Array<string>;\n};\n\nexport interface FilterProps {\n /** Data rendered in submenus */\n data: Array<DataType>;\n /** Selected data inside submenus */\n selected?: SelectedType;\n /** Main filter label */\n label: string;\n /** Filter width */\n width?: number;\n /** Text displayed for the tooltip of clear all button */\n clearAllText: string;\n /** Handler for changes on the filter */\n onChange: (selected: SelectedType) => void;\n /** Label for reset button inside submenu */\n resetLabel?: string;\n /** Text to show when search results are empty */\n noResultText: string;\n /** Text to show when there are no submenus to display */\n emptyFilterText?: string;\n}\n\nexport const Filter: FC<FilterProps> = ({\n data,\n selected = {},\n label,\n clearAllText,\n resetLabel = \"Reset\",\n onChange,\n width = 260,\n noResultText,\n emptyFilterText,\n children,\n}) => {\n const [open, setOpen] = useState(false);\n const [menu, setMenu] = useState<number | string>(\"index\");\n const [isLeft, setIsLeft] = useState(true);\n const [height, setHeight] = useState(0);\n const [enteredMenu, setEnteredMenu] = useState<number | string>(\"index\");\n const [filter, setFilter] = useState<SelectedType>(() => selected);\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n }, []);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n setMenu(\"index\");\n setHeight(0);\n }, []);\n\n const handleHeight = useCallback((element) => {\n setHeight(element?.offsetHeight ?? 0);\n }, []);\n\n const handleItemClick = useCallback((value) => {\n setMenu(value);\n setIsLeft(true);\n }, []);\n\n const setIndex = useCallback(() => {\n setMenu(\"index\");\n setIsLeft(false);\n }, []);\n\n const handleChange = useCallback(\n (selectedArray) => {\n let newFilters = {};\n if (selectedArray.length) {\n newFilters = {\n ...filter,\n [menu]: selectedArray,\n };\n } else {\n newFilters = { ...filter };\n delete newFilters[menu];\n }\n\n setFilter(newFilters);\n onChange(newFilters);\n },\n [filter, menu, onChange]\n );\n\n const handleClearAll = useCallback(\n (event) => {\n event.stopPropagation();\n setFilter({});\n onChange({});\n },\n [onChange]\n );\n\n const handleReset = useCallback(() => {\n const newFilters = { ...filter };\n delete newFilters[menu];\n setFilter(newFilters);\n onChange(newFilters);\n }, [filter, menu, onChange]);\n\n const count = useMemo(() => {\n let c = 0;\n Object.values(filter).forEach((entry) => (c += entry.length));\n return c;\n }, [filter]);\n\n const shouldRenderSubmenus = useMemo(() => {\n if (data.length === 0) {\n return false;\n }\n\n for (const entry of data) {\n if (entry.submenu?.length > 1) {\n return true;\n }\n }\n\n return false;\n }, [data]);\n\n return (\n <StyledMenu\n open={open}\n onOpen={handleOpen}\n onClose={handleClose}\n position=\"bottom-end\"\n target={\n <CounterButton\n active={open}\n label={label}\n icon={<FilterIcon />}\n counter={count}\n tooltipText={clearAllText}\n onClearAll={handleClearAll}\n />\n }\n >\n <ResizeTransition in>\n <div style={{ height, width }}>\n <SlideLeftRightTransition\n in={menu === \"index\"}\n direction={isLeft ? \"left\" : \"right\"}\n onEnter={handleHeight}\n onEntered={() => setEnteredMenu(\"index\")}\n >\n <MoveFocusInside>\n <StartMenu\n data={data}\n selected={filter}\n style={{ width }}\n onHeightChange={setHeight}\n onItemClick={handleItemClick}\n shouldRenderSubmenus={shouldRenderSubmenus}\n emptyFilterText={emptyFilterText}\n >\n {children}\n </StartMenu>\n </MoveFocusInside>\n </SlideLeftRightTransition>\n {shouldRenderSubmenus &&\n data.map(\n (\n { id, title, submenu, searchPlaceholder }: DataType,\n index: number\n ) => (\n <SlideLeftRightTransition\n key={`filter-submenu-${index}`}\n in={menu === id}\n direction={isLeft ? \"left\" : \"right\"}\n onEnter={handleHeight}\n onEntered={() => setEnteredMenu(id)}\n >\n <Submenu\n title={title}\n onBack={setIndex}\n onHeightChange={setHeight}\n style={{ width }}\n >\n <MoveFocusInside disabled={enteredMenu !== id}>\n <Select\n options={submenu}\n selected={filter[id]}\n onChange={handleChange}\n type=\"multiple\"\n autoHeightMax={255}\n placeholder={searchPlaceholder}\n noResultText={noResultText}\n keepSameOptionsOrder={Boolean(submenu.length <= 7)}\n disableSearch={Boolean(submenu.length <= 7)}\n />\n {filter[id]?.length ? (\n <StyledMenuFooter>\n <Button\n variant=\"text colored\"\n size=\"small\"\n onClick={handleReset}\n >\n {resetLabel}\n </Button>\n </StyledMenuFooter>\n ) : null}\n </MoveFocusInside>\n </Submenu>\n </SlideLeftRightTransition>\n )\n )}\n </div>\n </ResizeTransition>\n </StyledMenu>\n );\n};\n"],"file":"Filter.js"}
|
|
@@ -5,6 +5,8 @@ export interface StartMenuProps {
|
|
|
5
5
|
selected: SelectedType;
|
|
6
6
|
onItemClick: (id: number | string) => void;
|
|
7
7
|
onHeightChange: (height: number) => void;
|
|
8
|
+
shouldRenderSubmenus: boolean;
|
|
9
|
+
emptyFilterText?: string;
|
|
8
10
|
}
|
|
9
11
|
export declare const StartMenu: FC<StartMenuProps & HTMLAttributes<HTMLDivElement>>;
|
|
10
12
|
//# sourceMappingURL=StartMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Filter/StartMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAqB,cAAc,EAAE,MAAM,OAAO,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"StartMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Filter/StartMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAqB,cAAc,EAAE,MAAM,OAAO,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAUlD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC3C,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,CAgDzE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useRef, useEffect } from "react";
|
|
2
2
|
import { ArrowRightIcon } from "../Icons";
|
|
3
|
-
import { StyledStartMenuTitle, StyledStartMenuDot, StyledStartMenuListItem, StyledStartMenuList } from "./Styles";
|
|
3
|
+
import { StyledStartMenuTitle, StyledStartMenuDot, StyledStartMenuListItem, StyledStartMenuList, StyledStartMenuNoResults } from "./Styles";
|
|
4
4
|
import { useResizeObserver } from "../../utils";
|
|
5
5
|
export var StartMenu = function StartMenu(_ref) {
|
|
6
6
|
var data = _ref.data,
|
|
@@ -8,6 +8,8 @@ export var StartMenu = function StartMenu(_ref) {
|
|
|
8
8
|
onItemClick = _ref.onItemClick,
|
|
9
9
|
style = _ref.style,
|
|
10
10
|
onHeightChange = _ref.onHeightChange,
|
|
11
|
+
shouldRenderSubmenus = _ref.shouldRenderSubmenus,
|
|
12
|
+
emptyFilterText = _ref.emptyFilterText,
|
|
11
13
|
children = _ref.children;
|
|
12
14
|
var ref = useRef(null);
|
|
13
15
|
var dimensions = useResizeObserver(ref);
|
|
@@ -20,7 +22,7 @@ export var StartMenu = function StartMenu(_ref) {
|
|
|
20
22
|
return /*#__PURE__*/React.createElement("div", {
|
|
21
23
|
style: style,
|
|
22
24
|
ref: ref
|
|
23
|
-
}, /*#__PURE__*/React.createElement(StyledStartMenuList, null, data.map(function (_ref2, index) {
|
|
25
|
+
}, /*#__PURE__*/React.createElement(StyledStartMenuList, null, shouldRenderSubmenus ? data.map(function (_ref2, index) {
|
|
24
26
|
var _selected$id;
|
|
25
27
|
|
|
26
28
|
var id = _ref2.id,
|
|
@@ -28,7 +30,7 @@ export var StartMenu = function StartMenu(_ref) {
|
|
|
28
30
|
submenu = _ref2.submenu;
|
|
29
31
|
var count = (_selected$id = selected[id]) == null ? void 0 : _selected$id.length;
|
|
30
32
|
|
|
31
|
-
if (submenu
|
|
33
|
+
if ((submenu == null ? void 0 : submenu.length) > 1) {
|
|
32
34
|
return /*#__PURE__*/React.createElement(StyledStartMenuListItem, {
|
|
33
35
|
key: "filter-list-item-" + index,
|
|
34
36
|
onClick: function onClick() {
|
|
@@ -36,6 +38,6 @@ export var StartMenu = function StartMenu(_ref) {
|
|
|
36
38
|
}
|
|
37
39
|
}, /*#__PURE__*/React.createElement(StyledStartMenuTitle, null, title), count > 0 ? /*#__PURE__*/React.createElement(StyledStartMenuDot, null, count) : null, /*#__PURE__*/React.createElement(ArrowRightIcon, null));
|
|
38
40
|
}
|
|
39
|
-
}), children));
|
|
41
|
+
}) : emptyFilterText ? /*#__PURE__*/React.createElement(StyledStartMenuNoResults, null, emptyFilterText) : null, children));
|
|
40
42
|
};
|
|
41
43
|
//# sourceMappingURL=StartMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Filter/StartMenu.tsx"],"names":["React","useRef","useEffect","ArrowRightIcon","StyledStartMenuTitle","StyledStartMenuDot","StyledStartMenuListItem","StyledStartMenuList","useResizeObserver","StartMenu","data","selected","onItemClick","style","onHeightChange","children","ref","dimensions","height","map","index","id","title","submenu","count","length"],"mappings":"AAAA,OAAOA,KAAP,IAAoBC,MAApB,EAA4BC,SAA5B,QAA6D,OAA7D;AACA,SAASC,cAAT,QAA+B,UAA/B;AAEA,SACEC,oBADF,EAEEC,kBAFF,EAGEC,uBAHF,EAIEC,mBAJF,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Filter/StartMenu.tsx"],"names":["React","useRef","useEffect","ArrowRightIcon","StyledStartMenuTitle","StyledStartMenuDot","StyledStartMenuListItem","StyledStartMenuList","StyledStartMenuNoResults","useResizeObserver","StartMenu","data","selected","onItemClick","style","onHeightChange","shouldRenderSubmenus","emptyFilterText","children","ref","dimensions","height","map","index","id","title","submenu","count","length"],"mappings":"AAAA,OAAOA,KAAP,IAAoBC,MAApB,EAA4BC,SAA5B,QAA6D,OAA7D;AACA,SAASC,cAAT,QAA+B,UAA/B;AAEA,SACEC,oBADF,EAEEC,kBAFF,EAGEC,uBAHF,EAIEC,mBAJF,EAKEC,wBALF,QAMO,UANP;AAOA,SAASC,iBAAT,QAAkC,aAAlC;AAWA,OAAO,IAAMC,SAA8D,GAAG,SAAjEA,SAAiE,OASxE;AAAA,MARJC,IAQI,QARJA,IAQI;AAAA,MAPJC,QAOI,QAPJA,QAOI;AAAA,MANJC,WAMI,QANJA,WAMI;AAAA,MALJC,KAKI,QALJA,KAKI;AAAA,MAJJC,cAII,QAJJA,cAII;AAAA,MAHJC,oBAGI,QAHJA,oBAGI;AAAA,MAFJC,eAEI,QAFJA,eAEI;AAAA,MADJC,QACI,QADJA,QACI;AACJ,MAAMC,GAAG,GAAGlB,MAAM,CAAC,IAAD,CAAlB;AACA,MAAMmB,UAAU,GAAGX,iBAAiB,CAACU,GAAD,CAApC;AACA,MAAME,MAAM,GAAGD,UAAH,oBAAGA,UAAU,CAAEC,MAA3B;AAEAnB,EAAAA,SAAS,CAAC,YAAM;AACd,QAAImB,MAAM,IAAIA,MAAM,GAAG,CAAvB,EAA0B;AACxBN,MAAAA,cAAc,CAACM,MAAD,CAAd;AACD;AACF,GAJQ,EAIN,CAACA,MAAD,EAASN,cAAT,CAJM,CAAT;AAMA,sBACE;AAAK,IAAA,KAAK,EAAED,KAAZ;AAAmB,IAAA,GAAG,EAAEK;AAAxB,kBACE,oBAAC,mBAAD,QACGH,oBAAoB,GACnBL,IAAI,CAACW,GAAL,CAAS,iBAAyBC,KAAzB,EAA2C;AAAA;;AAAA,QAAxCC,EAAwC,SAAxCA,EAAwC;AAAA,QAApCC,KAAoC,SAApCA,KAAoC;AAAA,QAA7BC,OAA6B,SAA7BA,OAA6B;AAClD,QAAMC,KAAK,mBAAGf,QAAQ,CAACY,EAAD,CAAX,qBAAG,aAAcI,MAA5B;;AACA,QAAI,CAAAF,OAAO,QAAP,YAAAA,OAAO,CAAEE,MAAT,IAAkB,CAAtB,EAAyB;AACvB,0BACE,oBAAC,uBAAD;AACE,QAAA,GAAG,wBAAsBL,KAD3B;AAEE,QAAA,OAAO,EAAE;AAAA,iBAAMV,WAAW,CAACW,EAAD,CAAjB;AAAA;AAFX,sBAIE,oBAAC,oBAAD,QAAuBC,KAAvB,CAJF,EAKGE,KAAK,GAAG,CAAR,gBACC,oBAAC,kBAAD,QAAqBA,KAArB,CADD,GAEG,IAPN,eAQE,oBAAC,cAAD,OARF,CADF;AAYD;AACF,GAhBD,CADmB,GAkBjBV,eAAe,gBACjB,oBAAC,wBAAD,QAA2BA,eAA3B,CADiB,GAEf,IArBN,EAsBGC,QAtBH,CADF,CADF;AA4BD,CAhDM","sourcesContent":["import React, { FC, useRef, useEffect, HTMLAttributes } from \"react\";\nimport { ArrowRightIcon } from \"../Icons\";\nimport { DataType, SelectedType } from \"./Filter\";\nimport {\n StyledStartMenuTitle,\n StyledStartMenuDot,\n StyledStartMenuListItem,\n StyledStartMenuList,\n StyledStartMenuNoResults,\n} from \"./Styles\";\nimport { useResizeObserver } from \"../../utils\";\n\nexport interface StartMenuProps {\n data: Array<DataType>;\n selected: SelectedType;\n onItemClick: (id: number | string) => void;\n onHeightChange: (height: number) => void;\n shouldRenderSubmenus: boolean;\n emptyFilterText?: string;\n}\n\nexport const StartMenu: FC<StartMenuProps & HTMLAttributes<HTMLDivElement>> = ({\n data,\n selected,\n onItemClick,\n style,\n onHeightChange,\n shouldRenderSubmenus,\n emptyFilterText,\n children,\n}) => {\n const ref = useRef(null);\n const dimensions = useResizeObserver(ref);\n const height = dimensions?.height;\n\n useEffect(() => {\n if (height && height > 0) {\n onHeightChange(height);\n }\n }, [height, onHeightChange]);\n\n return (\n <div style={style} ref={ref}>\n <StyledStartMenuList>\n {shouldRenderSubmenus ? (\n data.map(({ id, title, submenu }, index: number) => {\n const count = selected[id]?.length;\n if (submenu?.length > 1) {\n return (\n <StyledStartMenuListItem\n key={`filter-list-item-${index}`}\n onClick={() => onItemClick(id)}\n >\n <StyledStartMenuTitle>{title}</StyledStartMenuTitle>\n {count > 0 ? (\n <StyledStartMenuDot>{count}</StyledStartMenuDot>\n ) : null}\n <ArrowRightIcon />\n </StyledStartMenuListItem>\n );\n }\n })\n ) : emptyFilterText ? (\n <StyledStartMenuNoResults>{emptyFilterText}</StyledStartMenuNoResults>\n ) : null}\n {children}\n </StyledStartMenuList>\n </div>\n );\n};\n"],"file":"StartMenu.js"}
|
|
@@ -6,5 +6,6 @@ export declare const StyledMenuFooter: import("styled-components").StyledCompone
|
|
|
6
6
|
export declare const StyledStartMenuList: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<IList & import("react").HTMLAttributes<HTMLUListElement> & import("react").RefAttributes<HTMLUListElement>>, any, IList, never>;
|
|
7
7
|
export declare const StyledStartMenuListItem: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<IListItem & import("react").HTMLAttributes<HTMLLIElement> & import("react").RefAttributes<HTMLLIElement>>, any, IListItem, never>;
|
|
8
8
|
export declare const StyledStartMenuTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
9
|
+
export declare const StyledStartMenuNoResults: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
9
10
|
export declare const StyledStartMenuDot: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
10
11
|
//# sourceMappingURL=Styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Filter/Styles.ts"],"names":[],"mappings":";AACA,OAAO,EAAQ,KAAK,EAAc,WAAW,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAY,SAAS,EAAQ,KAAK,EAAE,MAAM,SAAS,CAAC;AAG3D,eAAO,MAAM,UAAU,2FAGtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+NAE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,uNAE/B,CAAC;AAEF,eAAO,MAAM,uBAAuB,yNAEnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,oEAEhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,qEAU9B,CAAC"}
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Filter/Styles.ts"],"names":[],"mappings":";AACA,OAAO,EAAQ,KAAK,EAAc,WAAW,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAY,SAAS,EAAQ,KAAK,EAAE,MAAM,SAAS,CAAC;AAG3D,eAAO,MAAM,UAAU,2FAGtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+NAE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,uNAE/B,CAAC;AAEF,eAAO,MAAM,uBAAuB,yNAEnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,oEAEhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,oEAGpC,CAAC;AAEF,eAAO,MAAM,kBAAkB,qEAU9B,CAAC"}
|
|
@@ -34,9 +34,18 @@ export var StyledStartMenuTitle = styled.div.withConfig({
|
|
|
34
34
|
})(["", ""], {
|
|
35
35
|
"flex": "1 1 0%"
|
|
36
36
|
});
|
|
37
|
+
export var StyledStartMenuNoResults = styled.div.withConfig({
|
|
38
|
+
displayName: "Styles__StyledStartMenuNoResults",
|
|
39
|
+
componentId: "sc-lxuoiz-5"
|
|
40
|
+
})(["", " ", ""], {
|
|
41
|
+
"paddingTop": "0.125rem",
|
|
42
|
+
"paddingBottom": "0.125rem"
|
|
43
|
+
}, {
|
|
44
|
+
"textAlign": "center"
|
|
45
|
+
});
|
|
37
46
|
export var StyledStartMenuDot = styled.span.withConfig({
|
|
38
47
|
displayName: "Styles__StyledStartMenuDot",
|
|
39
|
-
componentId: "sc-lxuoiz-
|
|
48
|
+
componentId: "sc-lxuoiz-6"
|
|
40
49
|
})(["border-radius:50%;background-color:var(--color-primary);color:var(--page-paper-main);line-height:15px;width:15px;font-weight:bold;font-size:10px;text-align:center;margin-left:4px;"]);
|
|
41
50
|
StyledMenu.displayName = "StyledMenu";
|
|
42
51
|
StyledMenuFooter.displayName = "StyledMenuFooter";
|
|
@@ -44,4 +53,5 @@ StyledStartMenuList.displayName = "StyledStartMenuList";
|
|
|
44
53
|
StyledStartMenuListItem.displayName = "StyledStartMenuListItem";
|
|
45
54
|
StyledStartMenuTitle.displayName = "StyledStartMenuTitle";
|
|
46
55
|
StyledStartMenuDot.displayName = "StyledStartMenuDot";
|
|
56
|
+
StyledStartMenuNoResults.displayName = "StyledStartMenuNoResults";
|
|
47
57
|
//# sourceMappingURL=Styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Filter/Styles.ts"],"names":["styled","Menu","MenuFooter","ListItem","List","StyledMenu","StyledMenuFooter","StyledStartMenuList","StyledStartMenuListItem","StyledStartMenuTitle","div","StyledStartMenuDot","span","displayName"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,mBAAnB;AACA,SAASC,IAAT,EAAsBC,UAAtB,QAAqD,SAArD;AACA,SAASC,QAAT,EAA8BC,IAA9B,QAAiD,SAAjD;AAGA,OAAO,IAAMC,UAAU,GAAGL,MAAM,CAACC,IAAD,CAAT;AAAA;AAAA;AAAA,kBACjB;AAAA;AAAA,CADiB,EAEjB;AAAA;AAAA,CAFiB,CAAhB;AAKP,OAAO,IAAMK,gBAAgB,GAAGN,MAAM,CAACE,UAAD,CAAT;AAAA;AAAA;AAAA,aACvB;AAAA;AAAA,CADuB,CAAtB;AAIP,OAAO,IAAMK,mBAAmB,GAAGP,MAAM,CAACI,IAAD,CAAT;AAAA;AAAA;AAAA,aAC1B;AAAA;AAAA;AAAA,CAD0B,CAAzB;AAIP,OAAO,IAAMI,uBAAuB,GAAGR,MAAM,CAACG,QAAD,CAAT;AAAA;AAAA;AAAA,aAC9B;AAAA;AAAA,CAD8B,CAA7B;AAIP,OAAO,IAAMM,oBAAoB,GAAGT,MAAM,CAACU,GAAV;AAAA;AAAA;AAAA,aAC3B;AAAA;AAAA,CAD2B,CAA1B;AAIP,OAAO,IAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Filter/Styles.ts"],"names":["styled","Menu","MenuFooter","ListItem","List","StyledMenu","StyledMenuFooter","StyledStartMenuList","StyledStartMenuListItem","StyledStartMenuTitle","div","StyledStartMenuNoResults","StyledStartMenuDot","span","displayName"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,mBAAnB;AACA,SAASC,IAAT,EAAsBC,UAAtB,QAAqD,SAArD;AACA,SAASC,QAAT,EAA8BC,IAA9B,QAAiD,SAAjD;AAGA,OAAO,IAAMC,UAAU,GAAGL,MAAM,CAACC,IAAD,CAAT;AAAA;AAAA;AAAA,kBACjB;AAAA;AAAA,CADiB,EAEjB;AAAA;AAAA,CAFiB,CAAhB;AAKP,OAAO,IAAMK,gBAAgB,GAAGN,MAAM,CAACE,UAAD,CAAT;AAAA;AAAA;AAAA,aACvB;AAAA;AAAA,CADuB,CAAtB;AAIP,OAAO,IAAMK,mBAAmB,GAAGP,MAAM,CAACI,IAAD,CAAT;AAAA;AAAA;AAAA,aAC1B;AAAA;AAAA;AAAA,CAD0B,CAAzB;AAIP,OAAO,IAAMI,uBAAuB,GAAGR,MAAM,CAACG,QAAD,CAAT;AAAA;AAAA;AAAA,aAC9B;AAAA;AAAA,CAD8B,CAA7B;AAIP,OAAO,IAAMM,oBAAoB,GAAGT,MAAM,CAACU,GAAV;AAAA;AAAA;AAAA,aAC3B;AAAA;AAAA,CAD2B,CAA1B;AAIP,OAAO,IAAMC,wBAAwB,GAAGX,MAAM,CAACU,GAAV;AAAA;AAAA;AAAA,kBAC/B;AAAA;AAAA;AAAA,CAD+B,EAE/B;AAAA;AAAA,CAF+B,CAA9B;AAKP,OAAO,IAAME,kBAAkB,GAAGZ,MAAM,CAACa,IAAV;AAAA;AAAA;AAAA,2LAAxB;AAYPR,UAAU,CAACS,WAAX,GAAyB,YAAzB;AACAR,gBAAgB,CAACQ,WAAjB,GAA+B,kBAA/B;AACAP,mBAAmB,CAACO,WAApB,GAAkC,qBAAlC;AACAN,uBAAuB,CAACM,WAAxB,GAAsC,yBAAtC;AACAL,oBAAoB,CAACK,WAArB,GAAmC,sBAAnC;AACAF,kBAAkB,CAACE,WAAnB,GAAiC,oBAAjC;AACAH,wBAAwB,CAACG,WAAzB,GAAuC,0BAAvC","sourcesContent":["import styled from \"styled-components\";\nimport { Menu, IMenu, MenuFooter, IMenuFooter } from \"../Menu\";\nimport { ListItem, IListItem, List, IList } from \"../List\";\nimport tw from \"twin.macro\";\n\nexport const StyledMenu = styled(Menu)<IMenu>`\n ${tw`tw-relative`}\n ${tw`tw-overflow-hidden`}\n`;\n\nexport const StyledMenuFooter = styled(MenuFooter)<IMenuFooter>`\n ${tw`tw-justify-center`}\n`;\n\nexport const StyledStartMenuList = styled(List)<IList>`\n ${tw`tw-py-2`}\n`;\n\nexport const StyledStartMenuListItem = styled(ListItem)<IListItem>`\n ${tw`tw-pr-3`}\n`;\n\nexport const StyledStartMenuTitle = styled.div`\n ${tw`tw-flex-1`}\n`;\n\nexport const StyledStartMenuNoResults = styled.div`\n ${tw`tw-py-0.5`}\n ${tw`tw-text-center`}\n`;\n\nexport const StyledStartMenuDot = styled.span`\n border-radius: 50%;\n background-color: var(--color-primary);\n color: var(--page-paper-main);\n line-height: 15px;\n width: 15px;\n font-weight: bold;\n font-size: 10px;\n text-align: center;\n margin-left: 4px;\n`;\n\nStyledMenu.displayName = \"StyledMenu\";\nStyledMenuFooter.displayName = \"StyledMenuFooter\";\nStyledStartMenuList.displayName = \"StyledStartMenuList\";\nStyledStartMenuListItem.displayName = \"StyledStartMenuListItem\";\nStyledStartMenuTitle.displayName = \"StyledStartMenuTitle\";\nStyledStartMenuDot.displayName = \"StyledStartMenuDot\";\nStyledStartMenuNoResults.displayName = \"StyledStartMenuNoResults\";\n"],"file":"Styles.js"}
|