@addsign/moje-agenda-shared-lib 0.0.53 → 0.0.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/assets/tailwind.css +40 -2
  2. package/dist/components/Calendar.js +9 -4
  3. package/dist/components/Calendar.js.map +1 -1
  4. package/dist/components/ConfirmationModalDialog.js +2 -2
  5. package/dist/components/datatable/DataTable.js +1 -1
  6. package/dist/components/datatable/DataTableServer.js +198 -186
  7. package/dist/components/datatable/DataTableServer.js.map +1 -1
  8. package/dist/components/form/AutocompleteSearchBar.js +5 -48
  9. package/dist/components/form/AutocompleteSearchBar.js.map +1 -1
  10. package/dist/components/form/FileInput.js +3 -3
  11. package/dist/components/form/FileInput.js.map +1 -1
  12. package/dist/components/form/FormField.js +1 -1
  13. package/dist/components/form/InputField.d.ts +6 -0
  14. package/dist/components/form/InputField.js +144 -0
  15. package/dist/components/form/InputField.js.map +1 -0
  16. package/dist/components/form/PositionsSelectorSingle.js +15 -9
  17. package/dist/components/form/PositionsSelectorSingle.js.map +1 -1
  18. package/dist/components/form/SelectField.d.ts +8 -0
  19. package/dist/components/form/SelectField.js +142 -0
  20. package/dist/components/form/SelectField.js.map +1 -0
  21. package/dist/{iconBase-BY_L6Cb_.js → iconBase-B8_TsgYI.js} +8 -8
  22. package/dist/{iconBase-BY_L6Cb_.js.map → iconBase-B8_TsgYI.js.map} +1 -1
  23. package/dist/{index-ZA1ctELQ.js → index-BDqNIr_C.js} +13 -13
  24. package/dist/{index-ZA1ctELQ.js.map → index-BDqNIr_C.js.map} +1 -1
  25. package/dist/{index-DPrqKh-7.js → index-DUTU8Jwr.js} +2 -2
  26. package/dist/{index-DPrqKh-7.js.map → index-DUTU8Jwr.js.map} +1 -1
  27. package/dist/types.d.ts +19 -0
  28. package/dist/useClickAway-CH9ykBsx.js +49 -0
  29. package/dist/useClickAway-CH9ykBsx.js.map +1 -0
  30. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteSearchBar.js","sources":["../../../node_modules/react-use/esm/misc/util.js","../../../node_modules/react-use/esm/useClickAway.js","../../../lib/components/form/AutocompleteSearchBar.tsx"],"sourcesContent":["export var noop = function () { };\nexport function on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexport function off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexport var isBrowser = typeof window !== 'undefined';\nexport var isNavigator = typeof navigator !== 'undefined';\n","import { useEffect, useRef } from 'react';\nimport { off, on } from './misc/util';\nvar defaultEvents = ['mousedown', 'touchstart'];\nvar useClickAway = function (ref, onClickAway, events) {\n if (events === void 0) { events = defaultEvents; }\n var savedCallback = useRef(onClickAway);\n useEffect(function () {\n savedCallback.current = onClickAway;\n }, [onClickAway]);\n useEffect(function () {\n var handler = function (event) {\n var el = ref.current;\n el && !el.contains(event.target) && savedCallback.current(event);\n };\n for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {\n var eventName = events_1[_i];\n on(document, eventName, handler);\n }\n return function () {\n for (var _i = 0, events_2 = events; _i < events_2.length; _i++) {\n var eventName = events_2[_i];\n off(document, eventName, handler);\n }\n };\n }, [events, ref]);\n};\nexport default useClickAway;\n","import { useState, useEffect, useRef } from \"react\";\r\nimport { useClickAway } from \"react-use\";\r\nimport { IOptionItem, useFederationContext } from \"../../main\";\r\nimport { MdClose, MdExpandLess, MdExpandMore } from \"react-icons/md\";\r\n\r\ninterface OptionListProps {\r\n options: IOptionItem[];\r\n selectedOptionIndex: number;\r\n handleOptionClick: (option: IOptionItem) => void;\r\n}\r\n\r\ninterface SearchInputProps {\r\n value: string;\r\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n onFocus: () => void;\r\n clearQuery: () => void;\r\n inputRef: React.RefObject<HTMLInputElement>;\r\n placeholder?: string;\r\n isFocused?: boolean;\r\n onBlur: () => void;\r\n isLoading?: boolean;\r\n}\r\n\r\nconst AutocompleteSearchBar: React.FC<{\r\n label: string;\r\n name: string;\r\n required?: boolean;\r\n disabled?: boolean;\r\n description?: string;\r\n fetchUrl?: string;\r\n valueKey: string;\r\n labelKey: string;\r\n onChange: (value: any) => void;\r\n onFocus: () => void;\r\n onBlur: () => void;\r\n placeholder?: string;\r\n serverSearch?: boolean;\r\n value?: string;\r\n initOptions?: IOptionItem[];\r\n showId?: boolean;\r\n}> = ({\r\n label,\r\n name,\r\n required,\r\n disabled,\r\n description,\r\n fetchUrl,\r\n valueKey,\r\n labelKey,\r\n onChange,\r\n onFocus,\r\n onBlur,\r\n placeholder,\r\n serverSearch = false,\r\n value,\r\n initOptions,\r\n showId,\r\n}) => {\r\n const [query, setQuery] = useState(\"\");\r\n const [loading, setLoading] = useState(false);\r\n const [options, setOptions] = useState<IOptionItem[]>([]);\r\n const [selectedOptionIndex, setSelectedOptionIndex] = useState(-1);\r\n const [selectedOption, setSelectedOption] = useState<IOptionItem | null>(\r\n null\r\n );\r\n const [searchResults, setSearchResults] = useState<IOptionItem[]>([]);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const ref = useRef(null);\r\n const federationContext = useFederationContext();\r\n\r\n const [isFocused, setIsFocused] = useState(false);\r\n\r\n const [errors] = useState<any>({});\r\n\r\n useEffect(() => {\r\n const fetchOptions = async () => {\r\n setLoading(true);\r\n console.log(\r\n \"%csrcsharedAutocompleteSearchBar.tsx:77 fetchUrl, value\",\r\n \"color: #007acc;\",\r\n fetchUrl\r\n );\r\n const { data } = await federationContext.apiClient.get(fetchUrl || \"\");\r\n // osetreni obou variant navratu z BE\r\n const tmpData = data.content || data;\r\n\r\n setOptions(\r\n tmpData.map((item: any) => ({\r\n value: item[valueKey],\r\n label: item[labelKey] + (showId ? \" (\" + item[valueKey] + \")\" : \"\"),\r\n }))\r\n ); // Adjust map according to actual API response\r\n setLoading(false);\r\n };\r\n\r\n if (fetchUrl) fetchOptions();\r\n }, [fetchUrl]);\r\n\r\n useEffect(() => {\r\n if (initOptions) setOptions(initOptions);\r\n }, [initOptions]);\r\n\r\n useEffect(() => {\r\n if (value && options) {\r\n const initOption = options.find((it) => it.value == value);\r\n\r\n if (initOption) {\r\n setQuery(initOption.label);\r\n setSelectedOption(initOption);\r\n }\r\n }\r\n }, [value, options]);\r\n\r\n useEffect(() => {\r\n const fetchOptions = async () => {\r\n setLoading(true);\r\n const { data } = await federationContext.apiClient.get(fetchUrl + query);\r\n setOptions(\r\n data.map((item: any) => ({\r\n value: item[valueKey],\r\n label: item[labelKey] + (showId ? \" (\" + item[valueKey] + \")\" : \"\"),\r\n }))\r\n ); // Adjust map according to actual API response\r\n setSearchResults(\r\n data.map((item: any) => ({\r\n value: item[valueKey],\r\n label: item[labelKey] + (showId ? \" (\" + item[valueKey] + \")\" : \"\"),\r\n }))\r\n ); // Adjust map according to actual API response\r\n\r\n setLoading(false);\r\n };\r\n\r\n if (serverSearch) fetchOptions();\r\n }, [\r\n query,\r\n serverSearch,\r\n valueKey,\r\n labelKey,\r\n fetchUrl,\r\n federationContext.apiClient,\r\n showId,\r\n ]);\r\n\r\n useClickAway(ref, () => {\r\n setSearchResults([]);\r\n if (!selectedOption) {\r\n setQuery(\"\");\r\n onChange(null);\r\n }\r\n\r\n handleBlur();\r\n });\r\n\r\n const handleQueryChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n setQuery(event.target.value);\r\n setSelectedOption(null);\r\n setSelectedOptionIndex(-1);\r\n setSearchResults(\r\n options.filter((option) =>\r\n option?.label\r\n ?.toLowerCase()\r\n .includes(event.target?.value?.toLowerCase())\r\n )\r\n );\r\n };\r\n const handleFocus = () => {\r\n console.log(\"handleFocus query\", query);\r\n setIsFocused(true);\r\n onFocus();\r\n setSearchResults(\r\n options /*.filter((option) =>\r\n option.label.toLowerCase().includes(query.toLowerCase()),\r\n ),*/\r\n );\r\n };\r\n\r\n const handleClearQuery = () => {\r\n console.log(\r\n \"%csrcsharedAutocompleteSearchBar.tsx:95 handleClearQuery\",\r\n \"color: #007acc;\"\r\n );\r\n setQuery(\"\");\r\n onChange(null);\r\n setSelectedOption(null);\r\n setTimeout(() => {\r\n setSelectedOptionIndex(-1);\r\n setSearchResults(options);\r\n }, 1000);\r\n };\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (event.key === \"ArrowUp\" && searchResults.length > 0) {\r\n setSelectedOptionIndex((prevIndex) =>\r\n prevIndex > 0 ? prevIndex - 1 : searchResults.length - 1\r\n );\r\n } else if (event.key === \"ArrowDown\" && searchResults.length > 0) {\r\n setSelectedOptionIndex((prevIndex) =>\r\n prevIndex < searchResults.length - 1 ? prevIndex + 1 : 0\r\n );\r\n } else if (event.key === \"Enter\" && selectedOptionIndex !== -1) {\r\n handleOptionClick(searchResults[selectedOptionIndex]);\r\n } else if (event.key === \"Escape\" && selectedOptionIndex !== -1) {\r\n handleBlur();\r\n }\r\n };\r\n\r\n const handleOptionClick = (option: IOptionItem) => {\r\n setQuery(option.label);\r\n setSelectedOption(option);\r\n setSelectedOptionIndex(-1);\r\n\r\n onChange(option.value);\r\n\r\n handleBlur();\r\n };\r\n const handleBlur = () => {\r\n setSearchResults([]);\r\n onBlur();\r\n setIsFocused(false);\r\n };\r\n\r\n return (\r\n <div className=\"w-full min-h-20 flex-col justify-start items-start gap-1.5 inline-flex\">\r\n <div\r\n className=\"self-stretch min-h-14 flex-col justify-start items-start gap-1.5 flex relative\"\r\n ref={ref}\r\n >\r\n <label\r\n className=\"text-slate-700 text-sm leading-tight font-medium\"\r\n htmlFor={name}\r\n >\r\n {label} {required ? \"*\" : \"\"}\r\n </label>\r\n <div\r\n className={`self-stretch px-3 py-1.5 rounded-lg justify-start items-center gap-2 inline-flex outline-none border \r\n ${\r\n isFocused\r\n ? \"outline-4 outline-indigo-200 outline-offset-0 border-indigo-300\"\r\n : \"\"\r\n } \r\n ${\r\n isFocused && errors[name]?.message\r\n ? \"outline-4 outline-red-200 outline-offset-0 border-none\"\r\n : \"\"\r\n } \r\n ${!isFocused && errors[name]?.message ? \"border-red-200\" : \"\"} \r\n ${disabled ? \"bg-gray-100\" : \"bg-transparent\"}`}\r\n >\r\n <div className=\"Content grow shrink basis-0 min-h-5 xl:min-h-8 justify-start items-start gap-2 flex relative flex-col w-full mx-auto\">\r\n <SearchInput\r\n value={query}\r\n onChange={handleQueryChange}\r\n onKeyDown={handleKeyDown}\r\n onFocus={handleFocus} // Pass the onFocus handler\r\n clearQuery={handleClearQuery} // Pass the onFocus handler\r\n inputRef={inputRef}\r\n placeholder={placeholder}\r\n isFocused={isFocused}\r\n onBlur={handleBlur}\r\n isLoading={loading}\r\n />\r\n </div>\r\n </div>\r\n {searchResults.length > 0 && (\r\n <OptionList\r\n options={searchResults}\r\n selectedOptionIndex={selectedOptionIndex}\r\n handleOptionClick={handleOptionClick}\r\n />\r\n )}\r\n </div>\r\n {description && (\r\n <div className=\"HintText self-stretch text-slate-600 text-sm font-normal leading-tight\">\r\n {description}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nconst OptionList: React.FC<OptionListProps> = ({\r\n options,\r\n selectedOptionIndex,\r\n handleOptionClick,\r\n}) => {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n // Ensure the selected option is scrolled into view\r\n if (selectedOptionIndex >= 0 && selectedOptionIndex < options.length) {\r\n const selectedElement = containerRef.current?.children[\r\n selectedOptionIndex\r\n ] as HTMLDivElement;\r\n selectedElement?.scrollIntoView({\r\n behavior: \"instant\",\r\n block: \"nearest\",\r\n });\r\n }\r\n }, [selectedOptionIndex, options.length]);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className=\"overflow-y-auto resultOptionContainer w-full max-h-96 absolute outline-4 bg-white border border-gray-200 drop-shadow-xl rounded-xl z-50 top-[73px]\"\r\n >\r\n {options?.map((option, index) => (\r\n <div\r\n key={option.value as string}\r\n className={`py-2 px-4 flex items-center justify-between gap-8 hover:bg-gray-200 cursor-pointer ${\r\n selectedOptionIndex === index ? \"bg-gray-200\" : \"\"\r\n }`}\r\n onClick={() => handleOptionClick(option)}\r\n >\r\n <p className=\"font-normal\">{option.label}</p>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\nconst SearchInput: React.FC<SearchInputProps> = ({\r\n value,\r\n onChange,\r\n onKeyDown,\r\n onFocus,\r\n onBlur,\r\n inputRef,\r\n placeholder,\r\n clearQuery,\r\n isFocused,\r\n isLoading,\r\n}) => {\r\n const handleExpandMoreClick = () => {\r\n inputRef.current?.focus();\r\n onFocus();\r\n };\r\n\r\n const handleClearQuery = () => {\r\n clearQuery();\r\n };\r\n\r\n return (\r\n <div className=\"relative flex items-center w-full sharedResource\">\r\n <input\r\n type=\"text\"\r\n className={`pl-1 py-1 border-gray-800 w-full ${\r\n isLoading ? \"pr-10\" : \"pr-20\"\r\n }`}\r\n value={value}\r\n onChange={onChange}\r\n onKeyDown={onKeyDown}\r\n onFocus={onFocus}\r\n ref={inputRef}\r\n placeholder={placeholder}\r\n disabled={isLoading}\r\n />\r\n {isLoading && (\r\n <div className=\"loader absolute right-0 text-gray-500\">\r\n {/* You can replace this div with an SVG or another icon of your choice */}\r\n <svg\r\n className=\"animate-spin h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <circle\r\n className=\"opacity-25\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"4\"\r\n />\r\n <path\r\n className=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z\"\r\n />\r\n </svg>\r\n </div>\r\n )}\r\n {isFocused && !isLoading && (\r\n <MdExpandLess\r\n className=\"material-icons absolute right-0 cursor-pointer text-gray-500\"\r\n onClick={onBlur}\r\n />\r\n )}\r\n {!isFocused && !isLoading && (\r\n <MdExpandMore\r\n className=\"material-icons absolute right-0 cursor-pointer text-gray-500\"\r\n onClick={handleExpandMoreClick}\r\n />\r\n )}\r\n {value && !isLoading && (\r\n <MdClose\r\n className=\"material-icons absolute right-10 cursor-pointer text-gray-500\"\r\n onClick={handleClearQuery}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default AutocompleteSearchBar;\r\n"],"names":["_i","eventName","_b","_a"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"AutocompleteSearchBar.js","sources":["../../../lib/components/form/AutocompleteSearchBar.tsx"],"sourcesContent":["import { useState, useEffect, useRef } from \"react\";\r\nimport { useClickAway } from \"react-use\";\r\nimport { IOptionItem, useFederationContext } from \"../../main\";\r\nimport { MdClose, MdExpandLess, MdExpandMore } from \"react-icons/md\";\r\n\r\ninterface OptionListProps {\r\n options: IOptionItem[];\r\n selectedOptionIndex: number;\r\n handleOptionClick: (option: IOptionItem) => void;\r\n}\r\n\r\ninterface SearchInputProps {\r\n value: string;\r\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;\r\n onFocus: () => void;\r\n clearQuery: () => void;\r\n inputRef: React.RefObject<HTMLInputElement>;\r\n placeholder?: string;\r\n isFocused?: boolean;\r\n onBlur: () => void;\r\n isLoading?: boolean;\r\n}\r\n\r\nconst AutocompleteSearchBar: React.FC<{\r\n label: string;\r\n name: string;\r\n required?: boolean;\r\n disabled?: boolean;\r\n description?: string;\r\n fetchUrl?: string;\r\n valueKey: string;\r\n labelKey: string;\r\n onChange: (value: any) => void;\r\n onFocus: () => void;\r\n onBlur: () => void;\r\n placeholder?: string;\r\n serverSearch?: boolean;\r\n value?: string;\r\n initOptions?: IOptionItem[];\r\n showId?: boolean;\r\n}> = ({\r\n label,\r\n name,\r\n required,\r\n disabled,\r\n description,\r\n fetchUrl,\r\n valueKey,\r\n labelKey,\r\n onChange,\r\n onFocus,\r\n onBlur,\r\n placeholder,\r\n serverSearch = false,\r\n value,\r\n initOptions,\r\n showId,\r\n}) => {\r\n const [query, setQuery] = useState(\"\");\r\n const [loading, setLoading] = useState(false);\r\n const [options, setOptions] = useState<IOptionItem[]>([]);\r\n const [selectedOptionIndex, setSelectedOptionIndex] = useState(-1);\r\n const [selectedOption, setSelectedOption] = useState<IOptionItem | null>(\r\n null\r\n );\r\n const [searchResults, setSearchResults] = useState<IOptionItem[]>([]);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const ref = useRef(null);\r\n const federationContext = useFederationContext();\r\n\r\n const [isFocused, setIsFocused] = useState(false);\r\n\r\n const [errors] = useState<any>({});\r\n\r\n useEffect(() => {\r\n const fetchOptions = async () => {\r\n setLoading(true);\r\n console.log(\r\n \"%csrcsharedAutocompleteSearchBar.tsx:77 fetchUrl, value\",\r\n \"color: #007acc;\",\r\n fetchUrl\r\n );\r\n const { data } = await federationContext.apiClient.get(fetchUrl || \"\");\r\n // osetreni obou variant navratu z BE\r\n const tmpData = data.content || data;\r\n\r\n setOptions(\r\n tmpData.map((item: any) => ({\r\n value: item[valueKey],\r\n label: item[labelKey] + (showId ? \" (\" + item[valueKey] + \")\" : \"\"),\r\n }))\r\n ); // Adjust map according to actual API response\r\n setLoading(false);\r\n };\r\n\r\n if (fetchUrl) fetchOptions();\r\n }, [fetchUrl]);\r\n\r\n useEffect(() => {\r\n if (initOptions) setOptions(initOptions);\r\n }, [initOptions]);\r\n\r\n useEffect(() => {\r\n if (value && options) {\r\n const initOption = options.find((it) => it.value == value);\r\n\r\n if (initOption) {\r\n setQuery(initOption.label);\r\n setSelectedOption(initOption);\r\n }\r\n }\r\n }, [value, options]);\r\n\r\n useEffect(() => {\r\n const fetchOptions = async () => {\r\n setLoading(true);\r\n const { data } = await federationContext.apiClient.get(fetchUrl + query);\r\n setOptions(\r\n data.map((item: any) => ({\r\n value: item[valueKey],\r\n label: item[labelKey] + (showId ? \" (\" + item[valueKey] + \")\" : \"\"),\r\n }))\r\n ); // Adjust map according to actual API response\r\n setSearchResults(\r\n data.map((item: any) => ({\r\n value: item[valueKey],\r\n label: item[labelKey] + (showId ? \" (\" + item[valueKey] + \")\" : \"\"),\r\n }))\r\n ); // Adjust map according to actual API response\r\n\r\n setLoading(false);\r\n };\r\n\r\n if (serverSearch) fetchOptions();\r\n }, [\r\n query,\r\n serverSearch,\r\n valueKey,\r\n labelKey,\r\n fetchUrl,\r\n federationContext.apiClient,\r\n showId,\r\n ]);\r\n\r\n useClickAway(ref, () => {\r\n setSearchResults([]);\r\n if (!selectedOption) {\r\n setQuery(\"\");\r\n onChange(null);\r\n }\r\n\r\n handleBlur();\r\n });\r\n\r\n const handleQueryChange = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n setQuery(event.target.value);\r\n setSelectedOption(null);\r\n setSelectedOptionIndex(-1);\r\n setSearchResults(\r\n options.filter((option) =>\r\n option?.label\r\n ?.toLowerCase()\r\n .includes(event.target?.value?.toLowerCase())\r\n )\r\n );\r\n };\r\n const handleFocus = () => {\r\n console.log(\"handleFocus query\", query);\r\n setIsFocused(true);\r\n onFocus();\r\n setSearchResults(\r\n options /*.filter((option) =>\r\n option.label.toLowerCase().includes(query.toLowerCase()),\r\n ),*/\r\n );\r\n };\r\n\r\n const handleClearQuery = () => {\r\n console.log(\r\n \"%csrcsharedAutocompleteSearchBar.tsx:95 handleClearQuery\",\r\n \"color: #007acc;\"\r\n );\r\n setQuery(\"\");\r\n onChange(null);\r\n setSelectedOption(null);\r\n setTimeout(() => {\r\n setSelectedOptionIndex(-1);\r\n setSearchResults(options);\r\n }, 1000);\r\n };\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (event.key === \"ArrowUp\" && searchResults.length > 0) {\r\n setSelectedOptionIndex((prevIndex) =>\r\n prevIndex > 0 ? prevIndex - 1 : searchResults.length - 1\r\n );\r\n } else if (event.key === \"ArrowDown\" && searchResults.length > 0) {\r\n setSelectedOptionIndex((prevIndex) =>\r\n prevIndex < searchResults.length - 1 ? prevIndex + 1 : 0\r\n );\r\n } else if (event.key === \"Enter\" && selectedOptionIndex !== -1) {\r\n handleOptionClick(searchResults[selectedOptionIndex]);\r\n } else if (event.key === \"Escape\" && selectedOptionIndex !== -1) {\r\n handleBlur();\r\n }\r\n };\r\n\r\n const handleOptionClick = (option: IOptionItem) => {\r\n setQuery(option.label);\r\n setSelectedOption(option);\r\n setSelectedOptionIndex(-1);\r\n\r\n onChange(option.value);\r\n\r\n handleBlur();\r\n };\r\n const handleBlur = () => {\r\n setSearchResults([]);\r\n onBlur();\r\n setIsFocused(false);\r\n };\r\n\r\n return (\r\n <div className=\"w-full min-h-20 flex-col justify-start items-start gap-1.5 inline-flex\">\r\n <div\r\n className=\"self-stretch min-h-14 flex-col justify-start items-start gap-1.5 flex relative\"\r\n ref={ref}\r\n >\r\n <label\r\n className=\"text-slate-700 text-sm leading-tight font-medium\"\r\n htmlFor={name}\r\n >\r\n {label} {required ? \"*\" : \"\"}\r\n </label>\r\n <div\r\n className={`self-stretch px-3 py-1.5 rounded-lg justify-start items-center gap-2 inline-flex outline-none border \r\n ${\r\n isFocused\r\n ? \"outline-4 outline-indigo-200 outline-offset-0 border-indigo-300\"\r\n : \"\"\r\n } \r\n ${\r\n isFocused && errors[name]?.message\r\n ? \"outline-4 outline-red-200 outline-offset-0 border-none\"\r\n : \"\"\r\n } \r\n ${!isFocused && errors[name]?.message ? \"border-red-200\" : \"\"} \r\n ${disabled ? \"bg-gray-100\" : \"bg-transparent\"}`}\r\n >\r\n <div className=\"Content grow shrink basis-0 min-h-5 xl:min-h-8 justify-start items-start gap-2 flex relative flex-col w-full mx-auto\">\r\n <SearchInput\r\n value={query}\r\n onChange={handleQueryChange}\r\n onKeyDown={handleKeyDown}\r\n onFocus={handleFocus} // Pass the onFocus handler\r\n clearQuery={handleClearQuery} // Pass the onFocus handler\r\n inputRef={inputRef}\r\n placeholder={placeholder}\r\n isFocused={isFocused}\r\n onBlur={handleBlur}\r\n isLoading={loading}\r\n />\r\n </div>\r\n </div>\r\n {searchResults.length > 0 && (\r\n <OptionList\r\n options={searchResults}\r\n selectedOptionIndex={selectedOptionIndex}\r\n handleOptionClick={handleOptionClick}\r\n />\r\n )}\r\n </div>\r\n {description && (\r\n <div className=\"HintText self-stretch text-slate-600 text-sm font-normal leading-tight\">\r\n {description}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nconst OptionList: React.FC<OptionListProps> = ({\r\n options,\r\n selectedOptionIndex,\r\n handleOptionClick,\r\n}) => {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n // Ensure the selected option is scrolled into view\r\n if (selectedOptionIndex >= 0 && selectedOptionIndex < options.length) {\r\n const selectedElement = containerRef.current?.children[\r\n selectedOptionIndex\r\n ] as HTMLDivElement;\r\n selectedElement?.scrollIntoView({\r\n behavior: \"instant\",\r\n block: \"nearest\",\r\n });\r\n }\r\n }, [selectedOptionIndex, options.length]);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className=\"overflow-y-auto resultOptionContainer w-full max-h-96 absolute outline-4 bg-white border border-gray-200 drop-shadow-xl rounded-xl z-50 top-[73px]\"\r\n >\r\n {options?.map((option, index) => (\r\n <div\r\n key={option.value as string}\r\n className={`py-2 px-4 flex items-center justify-between gap-8 hover:bg-gray-200 cursor-pointer ${\r\n selectedOptionIndex === index ? \"bg-gray-200\" : \"\"\r\n }`}\r\n onClick={() => handleOptionClick(option)}\r\n >\r\n <p className=\"font-normal\">{option.label}</p>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\nconst SearchInput: React.FC<SearchInputProps> = ({\r\n value,\r\n onChange,\r\n onKeyDown,\r\n onFocus,\r\n onBlur,\r\n inputRef,\r\n placeholder,\r\n clearQuery,\r\n isFocused,\r\n isLoading,\r\n}) => {\r\n const handleExpandMoreClick = () => {\r\n inputRef.current?.focus();\r\n onFocus();\r\n };\r\n\r\n const handleClearQuery = () => {\r\n clearQuery();\r\n };\r\n\r\n return (\r\n <div className=\"relative flex items-center w-full sharedResource\">\r\n <input\r\n type=\"text\"\r\n className={`pl-1 py-1 border-gray-800 w-full ${\r\n isLoading ? \"pr-10 \" : \"pr-20\"\r\n }`}\r\n value={value}\r\n onChange={onChange}\r\n onKeyDown={onKeyDown}\r\n onFocus={onFocus}\r\n ref={inputRef}\r\n placeholder={placeholder}\r\n disabled={isLoading}\r\n />\r\n {isLoading && (\r\n <div className=\"loader absolute right-0 text-gray-500\">\r\n {/* You can replace this div with an SVG or another icon of your choice */}\r\n <svg\r\n className=\"animate-spin h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n >\r\n <circle\r\n className=\"opacity-25\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"4\"\r\n />\r\n <path\r\n className=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z\"\r\n />\r\n </svg>\r\n </div>\r\n )}\r\n {isFocused && !isLoading && (\r\n <MdExpandLess\r\n className=\"material-icons absolute right-0 cursor-pointer text-gray-500\"\r\n onClick={onBlur}\r\n />\r\n )}\r\n {!isFocused && !isLoading && (\r\n <MdExpandMore\r\n className=\"material-icons absolute right-0 cursor-pointer text-gray-500\"\r\n onClick={handleExpandMoreClick}\r\n />\r\n )}\r\n {value && !isLoading && (\r\n <MdClose\r\n className=\"material-icons absolute right-6 cursor-pointer text-gray-500\"\r\n onClick={handleClearQuery}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default AutocompleteSearchBar;\r\n"],"names":["_b","_a"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
- import React, { useMemo, useRef, useReducer, useEffect, useCallback, forwardRef, useImperativeHandle, Fragment, useState } from "react";
2
+ import React__default, { useMemo, useRef, useReducer, useEffect, useCallback, forwardRef, useImperativeHandle, Fragment, useState } from "react";
3
3
  import '../../assets/tailwind.css';/* empty css */
4
- import { k as MdInsertDriveFile, l as MdDeleteOutline } from "../../index-ZA1ctELQ.js";
4
+ import { k as MdInsertDriveFile, l as MdDeleteOutline } from "../../index-BDqNIr_C.js";
5
5
  import "../../contexts/FederationContext.js";
6
6
  import { useFederationContext } from "../../contexts/useFederationContext.js";
7
7
  import { handleErrors } from "../../utils/handleErrors.js";
@@ -1818,7 +1818,7 @@ var Dropzone = /* @__PURE__ */ forwardRef(function(_ref, ref) {
1818
1818
  open
1819
1819
  };
1820
1820
  }, [open]);
1821
- return /* @__PURE__ */ React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {
1821
+ return /* @__PURE__ */ React__default.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {
1822
1822
  open
1823
1823
  })));
1824
1824
  });