@activecollab/components 2.0.279 → 2.0.280

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.js","names":["React","useCallback","useEffect","useMemo","useState","MoveFocusInside","StartMenu","StyledMenu","StyledMenuFooter","Submenu","Button","CounterButton","FilterIcon","Select","ResizeTransition","SlideLeftRightTransition","Filter","_ref","data","selected","label","clearAllText","resetLabel","onChange","width","noResultText","emptyFilterText","children","icon","createElement","position","disabled","className","open","setOpen","menu","setMenu","isLeft","setIsLeft","height","setHeight","enteredMenu","setEnteredMenu","filter","setFilter","Object","keys","length","handleOpen","handleClose","handleHeight","element","_element$offsetHeight","offsetHeight","handleItemClick","value","setIndex","handleChange","selectedArray","newFilters","_extends","handleClearAll","event","stopPropagation","handleReset","count","c","values","forEach","entry","shouldRenderSubmenus","_entry$submenu","submenu","onOpen","onClose","target","active","counter","tooltipText","onClearAll","labelClassName","in","style","direction","onEnter","onEntered","onHeightChange","onItemClick","map","_ref2","index","_filter$id","id","title","searchPlaceholder","disableInternalSort","isSingleSelect","defaultValue","rest","_objectWithoutPropertiesLoose","_excluded","key","onBack","indexPage","options","type","autoHeightMax","placeholder","keepSameOptionsOrder","Boolean","disableSearch","disabledInternalSort","variant","size","onClick"],"sources":["../../../../src/components/Filter/Filter.tsx"],"sourcesContent":["import React, {\n FC,\n ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useState,\n PropsWithChildren,\n} from \"react\";\nimport { MoveFocusInside } from \"react-focus-lock\";\n\nimport { Placement } from \"@popperjs/core\";\n\nimport { StartMenu } from \"./StartMenu\";\nimport { StyledMenu, StyledMenuFooter } from \"./Styles\";\nimport { Submenu } from \"./Submenu\";\nimport { Button } from \"../Button\";\nimport { CounterButton } from \"../CounterButton\";\nimport { FilterIcon } from \"../Icons\";\nimport { IOptionGroupProps, IOptionItemProps, Select } from \"../Select\";\nimport { ResizeTransition, SlideLeftRightTransition } from \"../Transitions\";\n\nexport type DataType = {\n id: number | string;\n title: string;\n searchPlaceholder?: string;\n disableInternalSort?: boolean;\n submenu: Array<IOptionGroupProps | IOptionItemProps>;\n isSingleSelect?: boolean;\n defaultValue?: string;\n emptyValue?: string;\n emptyAction?: (e: string | undefined) => void;\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 /** Position of the dropped menu. */\n position?: Placement;\n /** Icon of the trigger element. */\n icon?: ReactElement;\n /** Disabled state of the trigger. */\n disabled?: boolean;\n /** Applies passed classes for label text */\n className?: string;\n}\n\nexport const Filter: FC<PropsWithChildren<FilterProps>> = ({\n data,\n selected = {},\n label,\n clearAllText,\n resetLabel = \"Reset\",\n onChange,\n width = 260,\n noResultText,\n emptyFilterText,\n children,\n icon = <FilterIcon />,\n position = \"bottom-end\",\n disabled = false,\n className,\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 useEffect(() => {\n if (Object.keys(selected).length > 0 || Object.keys(filter).length > 0) {\n setFilter(selected);\n }\n }, [selected, filter]);\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 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\n Object.values(filter).forEach((entry) => {\n if (typeof entry === \"string\") {\n return (c += 1);\n }\n\n return (c += entry.length);\n });\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={position}\n target={\n <CounterButton\n active={open}\n label={label}\n icon={icon}\n counter={count}\n tooltipText={clearAllText}\n onClearAll={handleClearAll}\n disabled={disabled}\n labelClassName={className}\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 {\n id,\n title,\n submenu,\n searchPlaceholder,\n disableInternalSort,\n isSingleSelect,\n defaultValue,\n ...rest\n }: 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 indexPage={menu === \"index\"}\n >\n <MoveFocusInside disabled={enteredMenu !== id}>\n <Select\n options={submenu}\n selected={filter[id]}\n onChange={handleChange}\n type={isSingleSelect ? \"single\" : \"multiple\"}\n autoHeightMax={255}\n placeholder={searchPlaceholder}\n noResultText={noResultText}\n keepSameOptionsOrder={Boolean(submenu.length <= 7)}\n disableSearch={Boolean(submenu.length <= 7)}\n disabledInternalSort={disableInternalSort}\n defaultValue={defaultValue}\n {...rest}\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Filter.js","names":["React","useCallback","useEffect","useMemo","useState","MoveFocusInside","InputSubmenu","StartMenu","StyledMenu","StyledMenuFooter","Submenu","Button","CounterButton","FilterIcon","Select","ResizeTransition","SlideLeftRightTransition","Filter","_ref","data","selected","label","clearAllText","resetLabel","onChange","width","noResultText","emptyFilterText","children","icon","createElement","position","disabled","className","open","setOpen","menu","setMenu","isLeft","setIsLeft","height","setHeight","enteredMenu","setEnteredMenu","filter","setFilter","Object","keys","length","handleOpen","handleClose","handleHeight","element","_element$offsetHeight","offsetHeight","handleItemClick","value","setIndex","handleChange","selectedArray","newFilters","_extends","handleClearAll","event","stopPropagation","handleReset","handleInputSave","id","trim","handleInputClear","count","c","values","forEach","entry","shouldRenderSubmenus","_entry$submenu","type","submenu","onOpen","onClose","target","active","counter","tooltipText","onClearAll","labelClassName","in","style","direction","onEnter","onEntered","onHeightChange","onItemClick","map","_ref2","index","_filter$id$","_filter$id","_filter$id2","title","searchPlaceholder","disableInternalSort","isSingleSelect","defaultValue","submenuType","inputPlaceholder","saveLabel","clearLabel","rest","_objectWithoutPropertiesLoose","_excluded","key","onBack","indexPage","placeholder","onSave","onClear","Fragment","options","autoHeightMax","keepSameOptionsOrder","Boolean","disableSearch","disabledInternalSort","variant","size","onClick"],"sources":["../../../../src/components/Filter/Filter.tsx"],"sourcesContent":["import React, {\n FC,\n ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useState,\n PropsWithChildren,\n} from \"react\";\nimport { MoveFocusInside } from \"react-focus-lock\";\n\nimport { Placement } from \"@popperjs/core\";\n\nimport { InputSubmenu } from \"./InputSubmenu\";\nimport { StartMenu } from \"./StartMenu\";\nimport { StyledMenu, StyledMenuFooter } from \"./Styles\";\nimport { Submenu } from \"./Submenu\";\nimport { Button } from \"../Button\";\nimport { CounterButton } from \"../CounterButton\";\nimport { FilterIcon } from \"../Icons\";\nimport { IOptionGroupProps, IOptionItemProps, Select } from \"../Select\";\nimport { ResizeTransition, SlideLeftRightTransition } from \"../Transitions\";\n\nexport type DataType = {\n id: number | string;\n title: string;\n searchPlaceholder?: string;\n disableInternalSort?: boolean;\n submenu: Array<IOptionGroupProps | IOptionItemProps>;\n isSingleSelect?: boolean;\n defaultValue?: string;\n emptyValue?: string;\n emptyAction?: (e: string | undefined) => void;\n /** Type of submenu - 'select' renders options list, 'input' renders an input field with save button */\n type?: \"select\" | \"input\";\n /** Placeholder text for input field (only used when type='input') */\n inputPlaceholder?: string;\n /** Label for the save button (only used when type='input') */\n saveLabel?: string;\n /** Label for the clear button (only used when type='input') */\n clearLabel?: string;\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 /** Position of the dropped menu. */\n position?: Placement;\n /** Icon of the trigger element. */\n icon?: ReactElement;\n /** Disabled state of the trigger. */\n disabled?: boolean;\n /** Applies passed classes for label text */\n className?: string;\n}\n\nexport const Filter: FC<PropsWithChildren<FilterProps>> = ({\n data,\n selected = {},\n label,\n clearAllText,\n resetLabel = \"Reset\",\n onChange,\n width = 260,\n noResultText,\n emptyFilterText,\n children,\n icon = <FilterIcon />,\n position = \"bottom-end\",\n disabled = false,\n className,\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 useEffect(() => {\n if (Object.keys(selected).length > 0 || Object.keys(filter).length > 0) {\n setFilter(selected);\n }\n }, [selected, filter]);\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 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 handleInputSave = useCallback(\n (id: number | string, value: string) => {\n let newFilters = {};\n if (value.trim()) {\n newFilters = {\n ...filter,\n [id]: [value],\n };\n } else {\n newFilters = { ...filter };\n delete newFilters[id];\n }\n setFilter(newFilters);\n onChange(newFilters);\n setIndex();\n },\n [filter, onChange, setIndex]\n );\n\n const handleInputClear = useCallback(\n (id: number | string) => {\n const newFilters = { ...filter };\n delete newFilters[id];\n setFilter(newFilters);\n onChange(newFilters);\n setIndex();\n },\n [filter, onChange, setIndex]\n );\n\n const count = useMemo(() => {\n let c = 0;\n\n Object.values(filter).forEach((entry) => {\n if (typeof entry === \"string\") {\n return (c += 1);\n }\n\n return (c += entry.length);\n });\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.type === \"input\" || 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={position}\n target={\n <CounterButton\n active={open}\n label={label}\n icon={icon}\n counter={count}\n tooltipText={clearAllText}\n onClearAll={handleClearAll}\n disabled={disabled}\n labelClassName={className}\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 {\n id,\n title,\n submenu,\n searchPlaceholder,\n disableInternalSort,\n isSingleSelect,\n defaultValue,\n type: submenuType = \"select\",\n inputPlaceholder,\n saveLabel = \"Save\",\n clearLabel,\n ...rest\n }: 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 indexPage={menu === \"index\"}\n >\n <MoveFocusInside disabled={enteredMenu !== id}>\n {submenuType === \"input\" ? (\n <InputSubmenu\n value={filter[id]?.[0] ?? \"\"}\n placeholder={inputPlaceholder}\n saveLabel={saveLabel}\n clearLabel={clearLabel}\n onSave={(value) => handleInputSave(id, value)}\n onClear={() => handleInputClear(id)}\n />\n ) : (\n <>\n <Select\n options={submenu}\n selected={filter[id]}\n onChange={handleChange}\n type={isSingleSelect ? \"single\" : \"multiple\"}\n autoHeightMax={255}\n placeholder={searchPlaceholder}\n noResultText={noResultText}\n keepSameOptionsOrder={Boolean(submenu.length <= 7)}\n disableSearch={Boolean(submenu.length <= 7)}\n disabledInternalSort={disableInternalSort}\n defaultValue={defaultValue}\n {...rest}\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 </>\n )}\n </MoveFocusInside>\n </Submenu>\n </SlideLeftRightTransition>\n )\n )}\n </div>\n </ResizeTransition>\n </StyledMenu>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { FC } from "react";
2
+ interface InputSubmenuProps {
3
+ value?: string;
4
+ placeholder?: string;
5
+ saveLabel: string;
6
+ clearLabel?: string;
7
+ onSave: (value: string) => void;
8
+ onClear: () => void;
9
+ }
10
+ export declare const InputSubmenu: FC<InputSubmenuProps>;
11
+ export {};
12
+ //# sourceMappingURL=InputSubmenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputSubmenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Filter/InputSubmenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAoC,MAAM,OAAO,CAAC;AASpE,UAAU,iBAAiB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAoD9C,CAAC"}
@@ -0,0 +1,43 @@
1
+ import React, { useState, useCallback, useEffect } from "react";
2
+ import { StyledInputSubmenu, StyledInputSubmenuFooter, StyledInput } from "./Styles";
3
+ import { Button } from "../Button";
4
+ export const InputSubmenu = _ref => {
5
+ let {
6
+ value = "",
7
+ placeholder,
8
+ saveLabel,
9
+ clearLabel = "Clear",
10
+ onSave,
11
+ onClear
12
+ } = _ref;
13
+ const [inputValue, setInputValue] = useState(value);
14
+ useEffect(() => {
15
+ setInputValue(value);
16
+ }, [value]);
17
+ const handleChange = useCallback(event => {
18
+ setInputValue(event.target.value);
19
+ }, []);
20
+ const handleSave = useCallback(() => {
21
+ onSave(inputValue);
22
+ }, [inputValue, onSave]);
23
+ const handleKeyDown = useCallback(event => {
24
+ if (event.key === "Enter") {
25
+ onSave(inputValue);
26
+ }
27
+ }, [inputValue, onSave]);
28
+ return /*#__PURE__*/React.createElement(StyledInputSubmenu, null, /*#__PURE__*/React.createElement(StyledInput, {
29
+ value: inputValue,
30
+ onChange: handleChange,
31
+ onKeyDown: handleKeyDown,
32
+ placeholder: placeholder
33
+ }), /*#__PURE__*/React.createElement(StyledInputSubmenuFooter, null, /*#__PURE__*/React.createElement(Button, {
34
+ variant: "primary",
35
+ size: "small",
36
+ onClick: handleSave
37
+ }, saveLabel), /*#__PURE__*/React.createElement(Button, {
38
+ variant: "text gray",
39
+ size: "small",
40
+ onClick: onClear
41
+ }, clearLabel)));
42
+ };
43
+ //# sourceMappingURL=InputSubmenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputSubmenu.js","names":["React","useState","useCallback","useEffect","StyledInputSubmenu","StyledInputSubmenuFooter","StyledInput","Button","InputSubmenu","_ref","value","placeholder","saveLabel","clearLabel","onSave","onClear","inputValue","setInputValue","handleChange","event","target","handleSave","handleKeyDown","key","createElement","onChange","onKeyDown","variant","size","onClick"],"sources":["../../../../src/components/Filter/InputSubmenu.tsx"],"sourcesContent":["import React, { FC, useState, useCallback, useEffect } from \"react\";\n\nimport {\n StyledInputSubmenu,\n StyledInputSubmenuFooter,\n StyledInput,\n} from \"./Styles\";\nimport { Button } from \"../Button\";\n\ninterface InputSubmenuProps {\n value?: string;\n placeholder?: string;\n saveLabel: string;\n clearLabel?: string;\n onSave: (value: string) => void;\n onClear: () => void;\n}\n\nexport const InputSubmenu: FC<InputSubmenuProps> = ({\n value = \"\",\n placeholder,\n saveLabel,\n clearLabel = \"Clear\",\n onSave,\n onClear,\n}) => {\n const [inputValue, setInputValue] = useState(value);\n\n useEffect(() => {\n setInputValue(value);\n }, [value]);\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value);\n },\n []\n );\n\n const handleSave = useCallback(() => {\n onSave(inputValue);\n }, [inputValue, onSave]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\") {\n onSave(inputValue);\n }\n },\n [inputValue, onSave]\n );\n\n return (\n <StyledInputSubmenu>\n <StyledInput\n value={inputValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n />\n <StyledInputSubmenuFooter>\n <Button variant=\"primary\" size=\"small\" onClick={handleSave}>\n {saveLabel}\n </Button>\n <Button variant=\"text gray\" size=\"small\" onClick={onClear}>\n {clearLabel}\n </Button>\n </StyledInputSubmenuFooter>\n </StyledInputSubmenu>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAQC,QAAQ,EAAEC,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAEnE,SACEC,kBAAkB,EAClBC,wBAAwB,EACxBC,WAAW,QACN,UAAU;AACjB,SAASC,MAAM,QAAQ,WAAW;AAWlC,OAAO,MAAMC,YAAmC,GAAGC,IAAA,IAO7C;EAAA,IAP8C;IAClDC,KAAK,GAAG,EAAE;IACVC,WAAW;IACXC,SAAS;IACTC,UAAU,GAAG,OAAO;IACpBC,MAAM;IACNC;EACF,CAAC,GAAAN,IAAA;EACC,MAAM,CAACO,UAAU,EAAEC,aAAa,CAAC,GAAGhB,QAAQ,CAACS,KAAK,CAAC;EAEnDP,SAAS,CAAC,MAAM;IACdc,aAAa,CAACP,KAAK,CAAC;EACtB,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,MAAMQ,YAAY,GAAGhB,WAAW,CAC7BiB,KAA0C,IAAK;IAC9CF,aAAa,CAACE,KAAK,CAACC,MAAM,CAACV,KAAK,CAAC;EACnC,CAAC,EACD,EACF,CAAC;EAED,MAAMW,UAAU,GAAGnB,WAAW,CAAC,MAAM;IACnCY,MAAM,CAACE,UAAU,CAAC;EACpB,CAAC,EAAE,CAACA,UAAU,EAAEF,MAAM,CAAC,CAAC;EAExB,MAAMQ,aAAa,GAAGpB,WAAW,CAC9BiB,KAA4C,IAAK;IAChD,IAAIA,KAAK,CAACI,GAAG,KAAK,OAAO,EAAE;MACzBT,MAAM,CAACE,UAAU,CAAC;IACpB;EACF,CAAC,EACD,CAACA,UAAU,EAAEF,MAAM,CACrB,CAAC;EAED,oBACEd,KAAA,CAAAwB,aAAA,CAACpB,kBAAkB,qBACjBJ,KAAA,CAAAwB,aAAA,CAAClB,WAAW;IACVI,KAAK,EAAEM,UAAW;IAClBS,QAAQ,EAAEP,YAAa;IACvBQ,SAAS,EAAEJ,aAAc;IACzBX,WAAW,EAAEA;EAAY,CAC1B,CAAC,eACFX,KAAA,CAAAwB,aAAA,CAACnB,wBAAwB,qBACvBL,KAAA,CAAAwB,aAAA,CAACjB,MAAM;IAACoB,OAAO,EAAC,SAAS;IAACC,IAAI,EAAC,OAAO;IAACC,OAAO,EAAER;EAAW,GACxDT,SACK,CAAC,eACTZ,KAAA,CAAAwB,aAAA,CAACjB,MAAM;IAACoB,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,OAAO;IAACC,OAAO,EAAEd;EAAQ,GACvDF,UACK,CACgB,CACR,CAAC;AAEzB,CAAC","ignoreList":[]}
@@ -29,7 +29,8 @@ export const StartMenu = _ref => {
29
29
  let {
30
30
  id,
31
31
  title,
32
- submenu
32
+ submenu,
33
+ type
33
34
  } = _ref2;
34
35
  let count = 0;
35
36
  // Popricati o ovome kada je selected[id] vrednost 0.
@@ -39,7 +40,7 @@ export const StartMenu = _ref => {
39
40
  var _selected$id;
40
41
  count = (_selected$id = selected[id]) == null ? void 0 : _selected$id.length;
41
42
  }
42
- if ((submenu == null ? void 0 : submenu.length) > 1) {
43
+ if (type === "input" || (submenu == null ? void 0 : submenu.length) > 1) {
43
44
  return /*#__PURE__*/React.createElement(StyledStartMenuListItem, {
44
45
  key: "filter-list-item-" + index,
45
46
  onClick: () => onItemClick(id)
@@ -1 +1 @@
1
- {"version":3,"file":"StartMenu.js","names":["React","useRef","useEffect","StyledStartMenuTitle","StyledStartMenuListItem","StyledStartMenuList","StyledStartMenuNoResults","useResizeObserver","Badge","ArrowRightIcon","StartMenu","_ref","data","selected","onItemClick","style","onHeightChange","shouldRenderSubmenus","emptyFilterText","children","ref","dimensions","height","createElement","map","_ref2","index","id","title","submenu","count","_selected$id","length","key","onClick","dimension","value","isStandalone"],"sources":["../../../../src/components/Filter/StartMenu.tsx"],"sourcesContent":["import React, { FC, useRef, useEffect, HTMLAttributes } from \"react\";\n\nimport { DataType, SelectedType } from \"./Filter\";\nimport {\n StyledStartMenuTitle,\n StyledStartMenuListItem,\n StyledStartMenuList,\n StyledStartMenuNoResults,\n} from \"./Styles\";\nimport { useResizeObserver } from \"../../utils\";\nimport { Badge } from \"../Badge\";\nimport { ArrowRightIcon } from \"../Icons\";\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 let count = 0;\n // Popricati o ovome kada je selected[id] vrednost 0.\n if (typeof selected[id] === \"string\") {\n count += 1;\n } else {\n count = selected[id]?.length;\n }\n\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 <Badge dimension={16} value={count} isStandalone={true} />\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"],"mappings":"AAAA,OAAOA,KAAK,IAAQC,MAAM,EAAEC,SAAS,QAAwB,OAAO;AAGpE,SACEC,oBAAoB,EACpBC,uBAAuB,EACvBC,mBAAmB,EACnBC,wBAAwB,QACnB,UAAU;AACjB,SAASC,iBAAiB,QAAQ,aAAa;AAC/C,SAASC,KAAK,QAAQ,UAAU;AAChC,SAASC,cAAc,QAAQ,UAAU;AAWzC,OAAO,MAAMC,SAA8D,GAAGC,IAAA,IASxE;EAAA,IATyE;IAC7EC,IAAI;IACJC,QAAQ;IACRC,WAAW;IACXC,KAAK;IACLC,cAAc;IACdC,oBAAoB;IACpBC,eAAe;IACfC;EACF,CAAC,GAAAR,IAAA;EACC,MAAMS,GAAG,GAAGnB,MAAM,CAAC,IAAI,CAAC;EACxB,MAAMoB,UAAU,GAAGd,iBAAiB,CAACa,GAAG,CAAC;EACzC,MAAME,MAAM,GAAGD,UAAU,oBAAVA,UAAU,CAAEC,MAAM;EAEjCpB,SAAS,CAAC,MAAM;IACd,IAAIoB,MAAM,IAAIA,MAAM,GAAG,CAAC,EAAE;MACxBN,cAAc,CAACM,MAAM,CAAC;IACxB;EACF,CAAC,EAAE,CAACA,MAAM,EAAEN,cAAc,CAAC,CAAC;EAE5B,oBACEhB,KAAA,CAAAuB,aAAA;IAAKR,KAAK,EAAEA,KAAM;IAACK,GAAG,EAAEA;EAAI,gBAC1BpB,KAAA,CAAAuB,aAAA,CAAClB,mBAAmB,QACjBY,oBAAoB,GACnBL,IAAI,CAACY,GAAG,CAAC,CAAAC,KAAA,EAAyBC,KAAa,KAAK;IAAA,IAA1C;MAAEC,EAAE;MAAEC,KAAK;MAAEC;IAAQ,CAAC,GAAAJ,KAAA;IAC9B,IAAIK,KAAK,GAAG,CAAC;IACb;IACA,IAAI,OAAOjB,QAAQ,CAACc,EAAE,CAAC,KAAK,QAAQ,EAAE;MACpCG,KAAK,IAAI,CAAC;IACZ,CAAC,MAAM;MAAA,IAAAC,YAAA;MACLD,KAAK,IAAAC,YAAA,GAAGlB,QAAQ,CAACc,EAAE,CAAC,qBAAZI,YAAA,CAAcC,MAAM;IAC9B;IAEA,IAAI,CAAAH,OAAO,oBAAPA,OAAO,CAAEG,MAAM,IAAG,CAAC,EAAE;MACvB,oBACEhC,KAAA,CAAAuB,aAAA,CAACnB,uBAAuB;QACtB6B,GAAG,wBAAsBP,KAAQ;QACjCQ,OAAO,EAAEA,CAAA,KAAMpB,WAAW,CAACa,EAAE;MAAE,gBAE/B3B,KAAA,CAAAuB,aAAA,CAACpB,oBAAoB,QAAEyB,KAA4B,CAAC,EACnDE,KAAK,GAAG,CAAC,gBACR9B,KAAA,CAAAuB,aAAA,CAACf,KAAK;QAAC2B,SAAS,EAAE,EAAG;QAACC,KAAK,EAAEN,KAAM;QAACO,YAAY,EAAE;MAAK,CAAE,CAAC,GACxD,IAAI,eACRrC,KAAA,CAAAuB,aAAA,CAACd,cAAc,MAAE,CACM,CAAC;IAE9B;EACF,CAAC,CAAC,GACAS,eAAe,gBACjBlB,KAAA,CAAAuB,aAAA,CAACjB,wBAAwB,QAAEY,eAA0C,CAAC,GACpE,IAAI,EACPC,QACkB,CAClB,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"StartMenu.js","names":["React","useRef","useEffect","StyledStartMenuTitle","StyledStartMenuListItem","StyledStartMenuList","StyledStartMenuNoResults","useResizeObserver","Badge","ArrowRightIcon","StartMenu","_ref","data","selected","onItemClick","style","onHeightChange","shouldRenderSubmenus","emptyFilterText","children","ref","dimensions","height","createElement","map","_ref2","index","id","title","submenu","type","count","_selected$id","length","key","onClick","dimension","value","isStandalone"],"sources":["../../../../src/components/Filter/StartMenu.tsx"],"sourcesContent":["import React, { FC, useRef, useEffect, HTMLAttributes } from \"react\";\n\nimport { DataType, SelectedType } from \"./Filter\";\nimport {\n StyledStartMenuTitle,\n StyledStartMenuListItem,\n StyledStartMenuList,\n StyledStartMenuNoResults,\n} from \"./Styles\";\nimport { useResizeObserver } from \"../../utils\";\nimport { Badge } from \"../Badge\";\nimport { ArrowRightIcon } from \"../Icons\";\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, type }, index: number) => {\n let count = 0;\n // Popricati o ovome kada je selected[id] vrednost 0.\n if (typeof selected[id] === \"string\") {\n count += 1;\n } else {\n count = selected[id]?.length;\n }\n\n if (type === \"input\" || 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 <Badge dimension={16} value={count} isStandalone={true} />\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"],"mappings":"AAAA,OAAOA,KAAK,IAAQC,MAAM,EAAEC,SAAS,QAAwB,OAAO;AAGpE,SACEC,oBAAoB,EACpBC,uBAAuB,EACvBC,mBAAmB,EACnBC,wBAAwB,QACnB,UAAU;AACjB,SAASC,iBAAiB,QAAQ,aAAa;AAC/C,SAASC,KAAK,QAAQ,UAAU;AAChC,SAASC,cAAc,QAAQ,UAAU;AAWzC,OAAO,MAAMC,SAA8D,GAAGC,IAAA,IASxE;EAAA,IATyE;IAC7EC,IAAI;IACJC,QAAQ;IACRC,WAAW;IACXC,KAAK;IACLC,cAAc;IACdC,oBAAoB;IACpBC,eAAe;IACfC;EACF,CAAC,GAAAR,IAAA;EACC,MAAMS,GAAG,GAAGnB,MAAM,CAAC,IAAI,CAAC;EACxB,MAAMoB,UAAU,GAAGd,iBAAiB,CAACa,GAAG,CAAC;EACzC,MAAME,MAAM,GAAGD,UAAU,oBAAVA,UAAU,CAAEC,MAAM;EAEjCpB,SAAS,CAAC,MAAM;IACd,IAAIoB,MAAM,IAAIA,MAAM,GAAG,CAAC,EAAE;MACxBN,cAAc,CAACM,MAAM,CAAC;IACxB;EACF,CAAC,EAAE,CAACA,MAAM,EAAEN,cAAc,CAAC,CAAC;EAE5B,oBACEhB,KAAA,CAAAuB,aAAA;IAAKR,KAAK,EAAEA,KAAM;IAACK,GAAG,EAAEA;EAAI,gBAC1BpB,KAAA,CAAAuB,aAAA,CAAClB,mBAAmB,QACjBY,oBAAoB,GACnBL,IAAI,CAACY,GAAG,CAAC,CAAAC,KAAA,EAA+BC,KAAa,KAAK;IAAA,IAAhD;MAAEC,EAAE;MAAEC,KAAK;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAAAL,KAAA;IACpC,IAAIM,KAAK,GAAG,CAAC;IACb;IACA,IAAI,OAAOlB,QAAQ,CAACc,EAAE,CAAC,KAAK,QAAQ,EAAE;MACpCI,KAAK,IAAI,CAAC;IACZ,CAAC,MAAM;MAAA,IAAAC,YAAA;MACLD,KAAK,IAAAC,YAAA,GAAGnB,QAAQ,CAACc,EAAE,CAAC,qBAAZK,YAAA,CAAcC,MAAM;IAC9B;IAEA,IAAIH,IAAI,KAAK,OAAO,IAAI,CAAAD,OAAO,oBAAPA,OAAO,CAAEI,MAAM,IAAG,CAAC,EAAE;MAC3C,oBACEjC,KAAA,CAAAuB,aAAA,CAACnB,uBAAuB;QACtB8B,GAAG,wBAAsBR,KAAQ;QACjCS,OAAO,EAAEA,CAAA,KAAMrB,WAAW,CAACa,EAAE;MAAE,gBAE/B3B,KAAA,CAAAuB,aAAA,CAACpB,oBAAoB,QAAEyB,KAA4B,CAAC,EACnDG,KAAK,GAAG,CAAC,gBACR/B,KAAA,CAAAuB,aAAA,CAACf,KAAK;QAAC4B,SAAS,EAAE,EAAG;QAACC,KAAK,EAAEN,KAAM;QAACO,YAAY,EAAE;MAAK,CAAE,CAAC,GACxD,IAAI,eACRtC,KAAA,CAAAuB,aAAA,CAACd,cAAc,MAAE,CACM,CAAC;IAE9B;EACF,CAAC,CAAC,GACAS,eAAe,gBACjBlB,KAAA,CAAAuB,aAAA,CAACjB,wBAAwB,QAAEY,eAA0C,CAAC,GACpE,IAAI,EACPC,QACkB,CAClB,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -19,4 +19,7 @@ export declare const StyledStartMenuListItem: import("styled-components").Styled
19
19
  export declare const StyledStartMenuTitle: import("styled-components").StyledComponent<"div", any, {}, never>;
20
20
  export declare const StyledStartMenuNoResults: import("styled-components").StyledComponent<"div", any, {}, never>;
21
21
  export declare const StyledStartMenuDot: import("styled-components").StyledComponent<"span", any, {}, never>;
22
+ export declare const StyledInputSubmenu: import("styled-components").StyledComponent<"div", any, {}, never>;
23
+ export declare const StyledInputSubmenuFooter: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<IMenuFooter & import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>, any, IMenuFooter, never>;
24
+ export declare const StyledInput: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("..").InputProps & import("react").RefAttributes<HTMLInputElement>>, any, {}, never>;
22
25
  //# sourceMappingURL=Styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Filter/Styles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,SAAS,EAAQ,aAAa,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAQ,KAAK,EAAc,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,eAAO,MAAM,UAAU,2FAGtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+NAE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;yBAE/B,CAAC;AAEF,eAAO,MAAM,uBAAuB;;6HAEnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,oEAEhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,oEAGpC,CAAC;AAEF,eAAO,MAAM,kBAAkB,qEAU9B,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Filter/Styles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,SAAS,EAAQ,aAAa,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAQ,KAAK,EAAc,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,eAAO,MAAM,UAAU,2FAGtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+NAE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;yBAE/B,CAAC;AAEF,eAAO,MAAM,uBAAuB;;6HAEnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,oEAEhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,oEAGpC,CAAC;AAEF,eAAO,MAAM,kBAAkB,qEAU9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,oEAE9B,CAAC;AAEF,eAAO,MAAM,wBAAwB,+NAGpC,CAAC;AAEF,eAAO,MAAM,WAAW,mLAEvB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import styled from "styled-components";
2
+ import { Input } from "../Input";
2
3
  import { ListItem, List } from "../List";
3
4
  import { Menu, MenuFooter } from "../Menu";
4
5
  export const StyledMenu = styled(Menu).withConfig({
@@ -47,6 +48,29 @@ export const StyledStartMenuDot = styled.span.withConfig({
47
48
  displayName: "Styles__StyledStartMenuDot",
48
49
  componentId: "sc-lxuoiz-6"
49
50
  })(["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;"]);
51
+ export const StyledInputSubmenu = styled.div.withConfig({
52
+ displayName: "Styles__StyledInputSubmenu",
53
+ componentId: "sc-lxuoiz-7"
54
+ })(["", ""], {
55
+ "paddingLeft": "0.75rem",
56
+ "paddingRight": "0.75rem",
57
+ "paddingBottom": "0.5rem",
58
+ "paddingTop": "0.75rem"
59
+ });
60
+ export const StyledInputSubmenuFooter = styled(MenuFooter).withConfig({
61
+ displayName: "Styles__StyledInputSubmenuFooter",
62
+ componentId: "sc-lxuoiz-8"
63
+ })(["", " height:auto;"], {
64
+ "justifyContent": "space-between",
65
+ "paddingTop": "0.75rem"
66
+ });
67
+ export const StyledInput = styled(Input).withConfig({
68
+ displayName: "Styles__StyledInput",
69
+ componentId: "sc-lxuoiz-9"
70
+ })(["", ""], {
71
+ "marginBottom": "1.25rem",
72
+ "width": "100%"
73
+ });
50
74
  StyledMenu.displayName = "StyledMenu";
51
75
  StyledMenuFooter.displayName = "StyledMenuFooter";
52
76
  StyledStartMenuList.displayName = "StyledStartMenuList";
@@ -54,4 +78,7 @@ StyledStartMenuListItem.displayName = "StyledStartMenuListItem";
54
78
  StyledStartMenuTitle.displayName = "StyledStartMenuTitle";
55
79
  StyledStartMenuDot.displayName = "StyledStartMenuDot";
56
80
  StyledStartMenuNoResults.displayName = "StyledStartMenuNoResults";
81
+ StyledInputSubmenu.displayName = "StyledInputSubmenu";
82
+ StyledInputSubmenuFooter.displayName = "StyledInputSubmenuFooter";
83
+ StyledInput.displayName = "StyledInput";
57
84
  //# sourceMappingURL=Styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","ListItem","List","Menu","MenuFooter","StyledMenu","withConfig","displayName","componentId","StyledMenuFooter","StyledStartMenuList","StyledStartMenuListItem","StyledStartMenuTitle","div","StyledStartMenuNoResults","StyledStartMenuDot","span"],"sources":["../../../../src/components/Filter/Styles.ts"],"sourcesContent":["import styled from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { ListItem, ListProps, List, ListItemProps } from \"../List\";\nimport { Menu, IMenu, MenuFooter, IMenuFooter } from \"../Menu\";\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)<ListProps>`\n ${tw`tw-py-2`}\n`;\n\nexport const StyledStartMenuListItem = styled(ListItem)<ListItemProps>`\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"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAGtC,SAASC,QAAQ,EAAaC,IAAI,QAAuB,SAAS;AAClE,SAASC,IAAI,EAASC,UAAU,QAAqB,SAAS;AAE9D,OAAO,MAAMC,UAAU,GAAGL,MAAM,CAACG,IAAI,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kBAChC;EAAA;AAAY,CAAC,EACb;EAAA;AAAmB,CAAC,CACzB;AAED,OAAO,MAAMC,gBAAgB,GAAGT,MAAM,CAACI,UAAU,CAAC,CAAAE,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aAC5C;EAAA;AAAkB,CAAC,CACxB;AAED,OAAO,MAAME,mBAAmB,GAAGV,MAAM,CAACE,IAAI,CAAC,CAAAI,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aACzC;EAAA;EAAA;AAAQ,CAAC,CACd;AAED,OAAO,MAAMG,uBAAuB,GAAGX,MAAM,CAACC,QAAQ,CAAC,CAAAK,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aACjD;EAAA;AAAQ,CAAC,CACd;AAED,OAAO,MAAMI,oBAAoB,GAAGZ,MAAM,CAACa,GAAG,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aACxC;EAAA;AAAU,CAAC,CAChB;AAED,OAAO,MAAMM,wBAAwB,GAAGd,MAAM,CAACa,GAAG,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kBAC5C;EAAA;EAAA;AAAU,CAAC,EACX;EAAA;AAAe,CAAC,CACrB;AAED,OAAO,MAAMO,kBAAkB,GAAGf,MAAM,CAACgB,IAAI,CAAAV,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2LAU5C;AAEDH,UAAU,CAACE,WAAW,GAAG,YAAY;AACrCE,gBAAgB,CAACF,WAAW,GAAG,kBAAkB;AACjDG,mBAAmB,CAACH,WAAW,GAAG,qBAAqB;AACvDI,uBAAuB,CAACJ,WAAW,GAAG,yBAAyB;AAC/DK,oBAAoB,CAACL,WAAW,GAAG,sBAAsB;AACzDQ,kBAAkB,CAACR,WAAW,GAAG,oBAAoB;AACrDO,wBAAwB,CAACP,WAAW,GAAG,0BAA0B","ignoreList":[]}
1
+ {"version":3,"file":"Styles.js","names":["styled","Input","ListItem","List","Menu","MenuFooter","StyledMenu","withConfig","displayName","componentId","StyledMenuFooter","StyledStartMenuList","StyledStartMenuListItem","StyledStartMenuTitle","div","StyledStartMenuNoResults","StyledStartMenuDot","span","StyledInputSubmenu","StyledInputSubmenuFooter","StyledInput"],"sources":["../../../../src/components/Filter/Styles.ts"],"sourcesContent":["import styled from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { Input } from \"../Input\";\nimport { ListItem, ListProps, List, ListItemProps } from \"../List\";\nimport { Menu, IMenu, MenuFooter, IMenuFooter } from \"../Menu\";\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)<ListProps>`\n ${tw`tw-py-2`}\n`;\n\nexport const StyledStartMenuListItem = styled(ListItem)<ListItemProps>`\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\nexport const StyledInputSubmenu = styled.div`\n ${tw`tw-px-3 tw-pt-3 tw-pb-2`}\n`;\n\nexport const StyledInputSubmenuFooter = styled(MenuFooter)<IMenuFooter>`\n ${tw`tw-justify-between tw-pt-3`}\n height: auto;\n`;\n\nexport const StyledInput = styled(Input)`\n ${tw`tw-w-full tw-mb-5`}\n`;\n\nStyledMenu.displayName = \"StyledMenu\";\nStyledMenuFooter.displayName = \"StyledMenuFooter\";\nStyledStartMenuList.displayName = \"StyledStartMenuList\";\nStyledStartMenuListItem.displayName = \"StyledStartMenuListItem\";\nStyledStartMenuTitle.displayName = \"StyledStartMenuTitle\";\nStyledStartMenuDot.displayName = \"StyledStartMenuDot\";\nStyledStartMenuNoResults.displayName = \"StyledStartMenuNoResults\";\nStyledInputSubmenu.displayName = \"StyledInputSubmenu\";\nStyledInputSubmenuFooter.displayName = \"StyledInputSubmenuFooter\";\nStyledInput.displayName = \"StyledInput\";\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAGtC,SAASC,KAAK,QAAQ,UAAU;AAChC,SAASC,QAAQ,EAAaC,IAAI,QAAuB,SAAS;AAClE,SAASC,IAAI,EAASC,UAAU,QAAqB,SAAS;AAE9D,OAAO,MAAMC,UAAU,GAAGN,MAAM,CAACI,IAAI,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kBAChC;EAAA;AAAY,CAAC,EACb;EAAA;AAAmB,CAAC,CACzB;AAED,OAAO,MAAMC,gBAAgB,GAAGV,MAAM,CAACK,UAAU,CAAC,CAAAE,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aAC5C;EAAA;AAAkB,CAAC,CACxB;AAED,OAAO,MAAME,mBAAmB,GAAGX,MAAM,CAACG,IAAI,CAAC,CAAAI,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aACzC;EAAA;EAAA;AAAQ,CAAC,CACd;AAED,OAAO,MAAMG,uBAAuB,GAAGZ,MAAM,CAACE,QAAQ,CAAC,CAAAK,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aACjD;EAAA;AAAQ,CAAC,CACd;AAED,OAAO,MAAMI,oBAAoB,GAAGb,MAAM,CAACc,GAAG,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aACxC;EAAA;AAAU,CAAC,CAChB;AAED,OAAO,MAAMM,wBAAwB,GAAGf,MAAM,CAACc,GAAG,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kBAC5C;EAAA;EAAA;AAAU,CAAC,EACX;EAAA;AAAe,CAAC,CACrB;AAED,OAAO,MAAMO,kBAAkB,GAAGhB,MAAM,CAACiB,IAAI,CAAAV,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2LAU5C;AAED,OAAO,MAAMS,kBAAkB,GAAGlB,MAAM,CAACc,GAAG,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aACtC;EAAA;EAAA;EAAA;EAAA;AAAwB,CAAC,CAC9B;AAED,OAAO,MAAMU,wBAAwB,GAAGnB,MAAM,CAACK,UAAU,CAAC,CAAAE,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0BACpD;EAAA;EAAA;AAA2B,CAAC,CAEjC;AAED,OAAO,MAAMW,WAAW,GAAGpB,MAAM,CAACC,KAAK,CAAC,CAAAM,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aAClC;EAAA;EAAA;AAAkB,CAAC,CACxB;AAEDH,UAAU,CAACE,WAAW,GAAG,YAAY;AACrCE,gBAAgB,CAACF,WAAW,GAAG,kBAAkB;AACjDG,mBAAmB,CAACH,WAAW,GAAG,qBAAqB;AACvDI,uBAAuB,CAACJ,WAAW,GAAG,yBAAyB;AAC/DK,oBAAoB,CAACL,WAAW,GAAG,sBAAsB;AACzDQ,kBAAkB,CAACR,WAAW,GAAG,oBAAoB;AACrDO,wBAAwB,CAACP,WAAW,GAAG,0BAA0B;AACjEU,kBAAkB,CAACV,WAAW,GAAG,oBAAoB;AACrDW,wBAAwB,CAACX,WAAW,GAAG,0BAA0B;AACjEY,WAAW,CAACZ,WAAW,GAAG,aAAa","ignoreList":[]}
package/dist/index.js CHANGED
@@ -16406,11 +16406,11 @@
16406
16406
  CheckboxIcon.displayName = "CheckboxIcon";
16407
16407
  var CheckboxIcon$1 = CheckboxIcon;
16408
16408
 
16409
- var StyledInput$3 = styled__default["default"].input.withConfig({
16409
+ var StyledInput$4 = styled__default["default"].input.withConfig({
16410
16410
  displayName: "Styles__StyledInput",
16411
16411
  componentId: "sc-y7zymm-0"
16412
16412
  })(["border:0px;clip:rect(0px,0px,0px,0px);cursor:pointer;height:1px;margin:-1px;opacity:0;overflow:hidden;padding:0px;position:absolute;white-space:nowrap;width:1px;"]);
16413
- StyledInput$3.displayName = "StyledInput";
16413
+ StyledInput$4.displayName = "StyledInput";
16414
16414
  var StyledLabel$1 = styled__default["default"].label.withConfig({
16415
16415
  displayName: "Styles__StyledLabel",
16416
16416
  componentId: "sc-y7zymm-1"
@@ -16425,13 +16425,13 @@
16425
16425
  return !props.mixed && styled.css(["stroke:var(--color-theme-500);"]);
16426
16426
  }, function (props) {
16427
16427
  return props.mixed && styled.css(["stroke:transparent;"]);
16428
- }, StyledInput$3, StyledLabel$1, StyledInput$3, StyledLabel$1, function (props) {
16428
+ }, StyledInput$4, StyledLabel$1, StyledInput$4, StyledLabel$1, function (props) {
16429
16429
  return !props.mixed && styled.css(["rect{stroke:var(--color-secondary);stroke-width:3px;}"]);
16430
- }, StyledInput$3, StyledLabel$1, function (props) {
16430
+ }, StyledInput$4, StyledLabel$1, function (props) {
16431
16431
  return props.mixed && styled.css(["stroke:transparent;"]);
16432
16432
  }, function (props) {
16433
- return props.hover && !props.mixed && styled.css(["", ":not(:checked) ~ ", "{path{stroke:var(--color-secondary-500);stroke-dashoffset:24;}rect{stroke:var(--color-secondary);stroke-width:3px;}}"], StyledInput$3, StyledLabel$1);
16434
- }, StyledInput$3, StyledLabel$1, function (props) {
16433
+ return props.hover && !props.mixed && styled.css(["", ":not(:checked) ~ ", "{path{stroke:var(--color-secondary-500);stroke-dashoffset:24;}rect{stroke:var(--color-secondary);stroke-width:3px;}}"], StyledInput$4, StyledLabel$1);
16434
+ }, StyledInput$4, StyledLabel$1, function (props) {
16435
16435
  return !props.mixed && styled.css(["stroke:var(--page-paper-main);stroke-dashoffset:24;"]);
16436
16436
  }, function (props) {
16437
16437
  return props.mixed && styled.css(["stroke:transparent;"]);
@@ -16490,7 +16490,7 @@
16490
16490
  tabIndex: -1,
16491
16491
  mixed: indeterminate,
16492
16492
  $disabled: disabled
16493
- }, /*#__PURE__*/React__default["default"].createElement(StyledInput$3, _extends({
16493
+ }, /*#__PURE__*/React__default["default"].createElement(StyledInput$4, _extends({
16494
16494
  role: "checkbox",
16495
16495
  id: id,
16496
16496
  className: "c-checkbox--input",
@@ -16533,7 +16533,7 @@
16533
16533
  return !props.$disabled && props.$invalid && props.$mode === "outlined" && styled.css(["border-color:var(--red-alert);"]);
16534
16534
  });
16535
16535
  StyledInputWrapper.displayName = "StyledInputWrapper";
16536
- var StyledInput$2 = styled__default["default"].input.withConfig({
16536
+ var StyledInput$3 = styled__default["default"].input.withConfig({
16537
16537
  displayName: "Styles__StyledInput",
16538
16538
  componentId: "sc-ce8kcp-1"
16539
16539
  })(["", " ", " background-color:var(--input-background-color);border:none;color:var(--color-theme-900);font-size:0.875rem;font-weight:400;letter-spacing:0.02em;margin-block:0;margin-inline:4px;outline:none;padding:0;width:100%;", " &::placeholder{color:var(--color-theme-transparent-500);}", " ", " ", " ", " ", " ", ""], BoxSizingStyle, InputResetStyle, function (props) {
@@ -16551,7 +16551,7 @@
16551
16551
  }, function (props) {
16552
16552
  return props.$mode === "flat" && props.$invalid && styled.css(["color:var(--red-alert);"]);
16553
16553
  });
16554
- StyledInput$2.displayName = "StyledInput";
16554
+ StyledInput$3.displayName = "StyledInput";
16555
16555
  var StyledPasswordIndicatorWrapper = styled__default["default"].div.withConfig({
16556
16556
  displayName: "Styles__StyledPasswordIndicatorWrapper",
16557
16557
  componentId: "sc-ce8kcp-2"
@@ -16663,7 +16663,7 @@
16663
16663
  className: classNames__default["default"]("c-input-wrapper", className),
16664
16664
  onClick: handleWrapperClick,
16665
16665
  ref: wrapRef
16666
- }, startAdornment, /*#__PURE__*/React__default["default"].createElement(StyledInput$2, _extends({
16666
+ }, startAdornment, /*#__PURE__*/React__default["default"].createElement(StyledInput$3, _extends({
16667
16667
  ref: handleRef,
16668
16668
  type: type,
16669
16669
  $size: size,
@@ -19911,7 +19911,7 @@
19911
19911
  $open: open,
19912
19912
  ref: chipWrapper,
19913
19913
  $_css5: autoSize === "auto" && scrollWrapper ? sizeMap[size] * 3 + 8 + "px" : undefined
19914
- }, startAdornment, /*#__PURE__*/React__default["default"].createElement(StyledInput$2, {
19914
+ }, startAdornment, /*#__PURE__*/React__default["default"].createElement(StyledInput$3, {
19915
19915
  className: "c-combo-box-input",
19916
19916
  onBlur: handleBlur,
19917
19917
  onFocus: function onFocus() {
@@ -22689,7 +22689,7 @@
22689
22689
  return invalid && styled.css(["border:1px solid var(--red-alert);"]);
22690
22690
  });
22691
22691
  StyledSpan.displayName = "StyledSpan";
22692
- var StyledInput$1 = styled__default["default"](Typography).withConfig({
22692
+ var StyledInput$2 = styled__default["default"](Typography).withConfig({
22693
22693
  displayName: "Styles__StyledInput",
22694
22694
  componentId: "sc-1wapx2a-2"
22695
22695
  })(["", " background-color:inherit;padding-left:4px;padding-right:4px;padding-top:1px;padding-bottom:1px;text-overflow:ellipsis;font-variant-numeric:tabular-nums;&:focus-whitin{text-overflow:clip;}outline-width:0px;outline:none;&:disabled{opacity:0;}", ""], {
@@ -22714,7 +22714,7 @@
22714
22714
  var invalid = _ref4.invalid;
22715
22715
  return invalid && styled.css(["border-color:var(--red-alert) !important;"]);
22716
22716
  });
22717
- StyledInput$1.displayName = "StyledInput";
22717
+ StyledInput$2.displayName = "StyledInput";
22718
22718
  var StyledMultilineSpan = styled__default["default"](StyledSpan).withConfig({
22719
22719
  displayName: "Styles__StyledMultilineSpan",
22720
22720
  componentId: "sc-1wapx2a-3"
@@ -22774,7 +22774,7 @@
22774
22774
  weight: weight,
22775
22775
  $disabled: disabled,
22776
22776
  className: "presentation"
22777
- }, children ? children : inputProps === null || inputProps === void 0 ? void 0 : inputProps.value), /*#__PURE__*/React__default["default"].createElement(StyledInput$1, _extends({}, inputProps, {
22777
+ }, children ? children : inputProps === null || inputProps === void 0 ? void 0 : inputProps.value), /*#__PURE__*/React__default["default"].createElement(StyledInput$2, _extends({}, inputProps, {
22778
22778
  ref: handleRef,
22779
22779
  forwardedAs: "input",
22780
22780
  variant: variant,
@@ -23383,6 +23383,29 @@
23383
23383
  displayName: "Styles__StyledStartMenuDot",
23384
23384
  componentId: "sc-lxuoiz-6"
23385
23385
  })(["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;"]);
23386
+ var StyledInputSubmenu = styled__default["default"].div.withConfig({
23387
+ displayName: "Styles__StyledInputSubmenu",
23388
+ componentId: "sc-lxuoiz-7"
23389
+ })(["", ""], {
23390
+ "paddingLeft": "0.75rem",
23391
+ "paddingRight": "0.75rem",
23392
+ "paddingBottom": "0.5rem",
23393
+ "paddingTop": "0.75rem"
23394
+ });
23395
+ var StyledInputSubmenuFooter = styled__default["default"](MenuFooter).withConfig({
23396
+ displayName: "Styles__StyledInputSubmenuFooter",
23397
+ componentId: "sc-lxuoiz-8"
23398
+ })(["", " height:auto;"], {
23399
+ "justifyContent": "space-between",
23400
+ "paddingTop": "0.75rem"
23401
+ });
23402
+ var StyledInput$1 = styled__default["default"](Input).withConfig({
23403
+ displayName: "Styles__StyledInput",
23404
+ componentId: "sc-lxuoiz-9"
23405
+ })(["", ""], {
23406
+ "marginBottom": "1.25rem",
23407
+ "width": "100%"
23408
+ });
23386
23409
  StyledMenu.displayName = "StyledMenu";
23387
23410
  StyledMenuFooter.displayName = "StyledMenuFooter";
23388
23411
  StyledStartMenuList.displayName = "StyledStartMenuList";
@@ -23390,6 +23413,52 @@
23390
23413
  StyledStartMenuTitle.displayName = "StyledStartMenuTitle";
23391
23414
  StyledStartMenuDot.displayName = "StyledStartMenuDot";
23392
23415
  StyledStartMenuNoResults.displayName = "StyledStartMenuNoResults";
23416
+ StyledInputSubmenu.displayName = "StyledInputSubmenu";
23417
+ StyledInputSubmenuFooter.displayName = "StyledInputSubmenuFooter";
23418
+ StyledInput$1.displayName = "StyledInput";
23419
+
23420
+ var InputSubmenu = function InputSubmenu(_ref) {
23421
+ var _ref$value = _ref.value,
23422
+ value = _ref$value === void 0 ? "" : _ref$value,
23423
+ placeholder = _ref.placeholder,
23424
+ saveLabel = _ref.saveLabel,
23425
+ _ref$clearLabel = _ref.clearLabel,
23426
+ clearLabel = _ref$clearLabel === void 0 ? "Clear" : _ref$clearLabel,
23427
+ onSave = _ref.onSave,
23428
+ onClear = _ref.onClear;
23429
+ var _useState = React.useState(value),
23430
+ _useState2 = _slicedToArray(_useState, 2),
23431
+ inputValue = _useState2[0],
23432
+ setInputValue = _useState2[1];
23433
+ React.useEffect(function () {
23434
+ setInputValue(value);
23435
+ }, [value]);
23436
+ var handleChange = React.useCallback(function (event) {
23437
+ setInputValue(event.target.value);
23438
+ }, []);
23439
+ var handleSave = React.useCallback(function () {
23440
+ onSave(inputValue);
23441
+ }, [inputValue, onSave]);
23442
+ var handleKeyDown = React.useCallback(function (event) {
23443
+ if (event.key === "Enter") {
23444
+ onSave(inputValue);
23445
+ }
23446
+ }, [inputValue, onSave]);
23447
+ return /*#__PURE__*/React__default["default"].createElement(StyledInputSubmenu, null, /*#__PURE__*/React__default["default"].createElement(StyledInput$1, {
23448
+ value: inputValue,
23449
+ onChange: handleChange,
23450
+ onKeyDown: handleKeyDown,
23451
+ placeholder: placeholder
23452
+ }), /*#__PURE__*/React__default["default"].createElement(StyledInputSubmenuFooter, null, /*#__PURE__*/React__default["default"].createElement(Button, {
23453
+ variant: "primary",
23454
+ size: "small",
23455
+ onClick: handleSave
23456
+ }, saveLabel), /*#__PURE__*/React__default["default"].createElement(Button, {
23457
+ variant: "text gray",
23458
+ size: "small",
23459
+ onClick: onClear
23460
+ }, clearLabel)));
23461
+ };
23393
23462
 
23394
23463
  var StartMenu = function StartMenu(_ref) {
23395
23464
  var data = _ref.data,
@@ -23414,7 +23483,8 @@
23414
23483
  }, /*#__PURE__*/React__default["default"].createElement(StyledStartMenuList, null, shouldRenderSubmenus ? data.map(function (_ref2, index) {
23415
23484
  var id = _ref2.id,
23416
23485
  title = _ref2.title,
23417
- submenu = _ref2.submenu;
23486
+ submenu = _ref2.submenu,
23487
+ type = _ref2.type;
23418
23488
  var count = 0;
23419
23489
  // Popricati o ovome kada je selected[id] vrednost 0.
23420
23490
  if (typeof selected[id] === "string") {
@@ -23423,7 +23493,7 @@
23423
23493
  var _selected$id;
23424
23494
  count = (_selected$id = selected[id]) === null || _selected$id === void 0 ? void 0 : _selected$id.length;
23425
23495
  }
23426
- if ((submenu === null || submenu === void 0 ? void 0 : submenu.length) > 1) {
23496
+ if (type === "input" || (submenu === null || submenu === void 0 ? void 0 : submenu.length) > 1) {
23427
23497
  return /*#__PURE__*/React__default["default"].createElement(StyledStartMenuListItem, {
23428
23498
  key: "filter-list-item-".concat(index),
23429
23499
  onClick: function onClick() {
@@ -23466,7 +23536,7 @@
23466
23536
  }), children);
23467
23537
  };
23468
23538
 
23469
- var _excluded$7 = ["id", "title", "submenu", "searchPlaceholder", "disableInternalSort", "isSingleSelect", "defaultValue"];
23539
+ var _excluded$7 = ["id", "title", "submenu", "searchPlaceholder", "disableInternalSort", "isSingleSelect", "defaultValue", "type", "inputPlaceholder", "saveLabel", "clearLabel"];
23470
23540
  var Filter = function Filter(_ref) {
23471
23541
  var data = _ref.data,
23472
23542
  _ref$selected = _ref.selected,
@@ -23563,6 +23633,27 @@
23563
23633
  setFilter(newFilters);
23564
23634
  onChange(newFilters);
23565
23635
  }, [filter, menu, onChange]);
23636
+ var handleInputSave = React.useCallback(function (id, value) {
23637
+ var newFilters = {};
23638
+ if (value.trim()) {
23639
+ newFilters = _objectSpread2(_objectSpread2({}, filter), {}, {
23640
+ [id]: [value]
23641
+ });
23642
+ } else {
23643
+ newFilters = _objectSpread2({}, filter);
23644
+ delete newFilters[id];
23645
+ }
23646
+ setFilter(newFilters);
23647
+ onChange(newFilters);
23648
+ setIndex();
23649
+ }, [filter, onChange, setIndex]);
23650
+ var handleInputClear = React.useCallback(function (id) {
23651
+ var newFilters = _objectSpread2({}, filter);
23652
+ delete newFilters[id];
23653
+ setFilter(newFilters);
23654
+ onChange(newFilters);
23655
+ setIndex();
23656
+ }, [filter, onChange, setIndex]);
23566
23657
  var count = React.useMemo(function () {
23567
23658
  var c = 0;
23568
23659
  Object.values(filter).forEach(function (entry) {
@@ -23579,7 +23670,7 @@
23579
23670
  }
23580
23671
  for (var entry of data) {
23581
23672
  var _entry$submenu;
23582
- if (((_entry$submenu = entry.submenu) === null || _entry$submenu === void 0 ? void 0 : _entry$submenu.length) > 1) {
23673
+ if (entry.type === "input" || ((_entry$submenu = entry.submenu) === null || _entry$submenu === void 0 ? void 0 : _entry$submenu.length) > 1) {
23583
23674
  return true;
23584
23675
  }
23585
23676
  }
@@ -23625,7 +23716,7 @@
23625
23716
  shouldRenderSubmenus: shouldRenderSubmenus,
23626
23717
  emptyFilterText: emptyFilterText
23627
23718
  }, children))), shouldRenderSubmenus && data.map(function (_ref2, index) {
23628
- var _filter$id;
23719
+ var _filter$id$, _filter$id, _filter$id2;
23629
23720
  var id = _ref2.id,
23630
23721
  title = _ref2.title,
23631
23722
  submenu = _ref2.submenu,
@@ -23633,6 +23724,12 @@
23633
23724
  disableInternalSort = _ref2.disableInternalSort,
23634
23725
  isSingleSelect = _ref2.isSingleSelect,
23635
23726
  defaultValue = _ref2.defaultValue,
23727
+ _ref2$type = _ref2.type,
23728
+ submenuType = _ref2$type === void 0 ? "select" : _ref2$type,
23729
+ inputPlaceholder = _ref2.inputPlaceholder,
23730
+ _ref2$saveLabel = _ref2.saveLabel,
23731
+ saveLabel = _ref2$saveLabel === void 0 ? "Save" : _ref2$saveLabel,
23732
+ clearLabel = _ref2.clearLabel,
23636
23733
  rest = _objectWithoutProperties(_ref2, _excluded$7);
23637
23734
  return /*#__PURE__*/React__default["default"].createElement(SlideLeftRightTransition, {
23638
23735
  key: "filter-submenu-".concat(index),
@@ -23652,7 +23749,18 @@
23652
23749
  indexPage: menu === "index"
23653
23750
  }, /*#__PURE__*/React__default["default"].createElement(FocusLock.MoveFocusInside, {
23654
23751
  disabled: enteredMenu !== id
23655
- }, /*#__PURE__*/React__default["default"].createElement(Select, _extends({
23752
+ }, submenuType === "input" ? /*#__PURE__*/React__default["default"].createElement(InputSubmenu, {
23753
+ value: (_filter$id$ = (_filter$id = filter[id]) === null || _filter$id === void 0 ? void 0 : _filter$id[0]) !== null && _filter$id$ !== void 0 ? _filter$id$ : "",
23754
+ placeholder: inputPlaceholder,
23755
+ saveLabel: saveLabel,
23756
+ clearLabel: clearLabel,
23757
+ onSave: function onSave(value) {
23758
+ return handleInputSave(id, value);
23759
+ },
23760
+ onClear: function onClear() {
23761
+ return handleInputClear(id);
23762
+ }
23763
+ }) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Select, _extends({
23656
23764
  options: submenu,
23657
23765
  selected: filter[id],
23658
23766
  onChange: handleChange,
@@ -23664,11 +23772,11 @@
23664
23772
  disableSearch: Boolean(submenu.length <= 7),
23665
23773
  disabledInternalSort: disableInternalSort,
23666
23774
  defaultValue: defaultValue
23667
- }, rest)), (_filter$id = filter[id]) !== null && _filter$id !== void 0 && _filter$id.length ? /*#__PURE__*/React__default["default"].createElement(StyledMenuFooter, null, /*#__PURE__*/React__default["default"].createElement(Button, {
23775
+ }, rest)), (_filter$id2 = filter[id]) !== null && _filter$id2 !== void 0 && _filter$id2.length ? /*#__PURE__*/React__default["default"].createElement(StyledMenuFooter, null, /*#__PURE__*/React__default["default"].createElement(Button, {
23668
23776
  variant: "text colored",
23669
23777
  size: "small",
23670
23778
  onClick: handleReset
23671
- }, resetLabel)) : null)));
23779
+ }, resetLabel)) : null))));
23672
23780
  }))));
23673
23781
  };
23674
23782