utopia-ui 3.0.18 → 3.0.20

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 (74) hide show
  1. package/README.md +9 -7
  2. package/dist/Components/AppShell/AppShell.d.ts +2 -2
  3. package/dist/Components/AppShell/Content.d.ts +1 -1
  4. package/dist/Components/AppShell/SetAppState.d.ts +1 -1
  5. package/dist/Components/AppShell/hooks/useAppState.d.ts +4 -4
  6. package/dist/Components/AppShell/hooks/useAssets.d.ts +2 -2
  7. package/dist/Components/Auth/useAuth.d.ts +8 -8
  8. package/dist/Components/Gaming/Modal.d.ts +1 -1
  9. package/dist/Components/Gaming/hooks/useQuests.d.ts +1 -1
  10. package/dist/Components/Input/Autocomplete.d.ts +1 -1
  11. package/dist/Components/Map/ItemForm.d.ts +5 -6
  12. package/dist/Components/Map/ItemView.d.ts +3 -5
  13. package/dist/Components/Map/Layer.d.ts +1 -1
  14. package/dist/Components/Map/Permissions.d.ts +1 -1
  15. package/dist/Components/Map/Subcomponents/AddButton.d.ts +1 -1
  16. package/dist/Components/Map/Subcomponents/Controls/Control.d.ts +0 -1
  17. package/dist/Components/Map/Subcomponents/ItemFormPopup.d.ts +1 -10
  18. package/dist/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.d.ts +1 -1
  19. package/dist/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.d.ts +1 -1
  20. package/dist/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.d.ts +1 -1
  21. package/dist/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.d.ts +3 -3
  22. package/dist/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.d.ts +1 -1
  23. package/dist/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.d.ts +1 -1
  24. package/dist/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.d.ts +1 -1
  25. package/dist/Components/Map/Subcomponents/ItemPopupComponents/TextView.d.ts +1 -1
  26. package/dist/Components/Map/Subcomponents/ItemViewPopup.d.ts +3 -4
  27. package/dist/Components/Map/Tags.d.ts +1 -1
  28. package/dist/Components/Map/UtopiaMap.d.ts +1 -1
  29. package/dist/Components/Map/UtopiaMapInner.d.ts +1 -1
  30. package/dist/Components/Map/hooks/useClusterRef.d.ts +1 -1
  31. package/dist/Components/Map/hooks/useFilter.d.ts +2 -2
  32. package/dist/Components/Map/hooks/useItems.d.ts +2 -2
  33. package/dist/Components/Map/hooks/useLayers.d.ts +2 -2
  34. package/dist/Components/Map/hooks/useLeafletRefs.d.ts +4 -4
  35. package/dist/Components/Map/hooks/usePermissions.d.ts +2 -2
  36. package/dist/Components/Map/hooks/useSelectPosition.d.ts +4 -5
  37. package/dist/Components/Map/hooks/useTags.d.ts +2 -2
  38. package/dist/Components/Profile/ProfileView.d.ts +1 -1
  39. package/dist/Components/Profile/Subcomponents/ActionsButton.d.ts +1 -1
  40. package/dist/Components/Profile/Subcomponents/AvatarWidget.d.ts +1 -1
  41. package/dist/Components/Profile/Subcomponents/ContactInfo.d.ts +6 -3
  42. package/dist/Components/Profile/Subcomponents/ContactInfoForm.d.ts +1 -2
  43. package/dist/Components/Profile/Subcomponents/ContactInfoView.d.ts +1 -1
  44. package/dist/Components/Profile/Subcomponents/GroupSubHeaderView.d.ts +1 -1
  45. package/dist/Components/Profile/Subcomponents/GroupSubheaderForm.d.ts +3 -5
  46. package/dist/Components/Profile/Subcomponents/LinkedItemsHeaderView.d.ts +1 -1
  47. package/dist/Components/Profile/Subcomponents/PlusButton.d.ts +1 -1
  48. package/dist/Components/Profile/Subcomponents/ProfileStartEndForm.d.ts +1 -2
  49. package/dist/Components/Profile/Subcomponents/ProfileStartEndView.d.ts +1 -1
  50. package/dist/Components/Profile/Subcomponents/ProfileTextForm.d.ts +1 -2
  51. package/dist/Components/Profile/Subcomponents/ProfileTextView.d.ts +1 -1
  52. package/dist/Components/Profile/Subcomponents/SocialShareBar.d.ts +2 -2
  53. package/dist/Components/Profile/Subcomponents/SocialShareButton.d.ts +4 -4
  54. package/dist/Components/Profile/Templates/FlexForm.d.ts +1 -3
  55. package/dist/Components/Profile/Templates/FlexView.d.ts +1 -1
  56. package/dist/Components/Profile/Templates/OnepagerForm.d.ts +1 -19
  57. package/dist/Components/Profile/Templates/OnepagerView.d.ts +1 -1
  58. package/dist/Components/Profile/Templates/SimpleView.d.ts +1 -1
  59. package/dist/Components/Profile/Templates/TabsView.d.ts +5 -5
  60. package/dist/Components/Profile/itemFunctions.d.ts +0 -1
  61. package/dist/Components/Templates/AttestationForm.d.ts +1 -1
  62. package/dist/Components/Templates/CardPage.d.ts +3 -3
  63. package/dist/Components/Templates/DateUserInfo.d.ts +1 -1
  64. package/dist/Components/Templates/DialogModal.d.ts +3 -3
  65. package/dist/Components/Templates/ItemCard.d.ts +1 -1
  66. package/dist/Components/Templates/MapOverlayPage.d.ts +1 -1
  67. package/dist/Components/Templates/TagView.d.ts +1 -1
  68. package/dist/Components/Templates/TitleCard.d.ts +1 -1
  69. package/dist/Components/Typography/Subtitle.d.ts +1 -1
  70. package/dist/Utils/MarkerIconFactory.d.ts +1 -2
  71. package/dist/index.js +3100 -3057
  72. package/dist/index.js.map +1 -1
  73. package/dist/types.d.ts +37 -12
  74. package/package.json +15 -4
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/Components/Gaming/hooks/useQuests.tsx","../src/Components/Map/hooks/useClusterRef.tsx","../src/Components/Map/hooks/useLayers.tsx","../src/Components/Map/hooks/useWindowDimension.tsx","../src/Components/Map/hooks/useFilter.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Components/Map/hooks/useLeafletRefs.tsx","../src/Components/Auth/useAuth.tsx","../src/Components/Typography/Subtitle.tsx","../src/Components/Templates/TitleCard.tsx","../src/Components/Templates/CardPage.tsx","../src/Components/Templates/MapOverlayPage.tsx","../src/Components/Templates/CircleLayout.tsx","../src/Utils/Moon.ts","../src/Components/Templates/MoonCalendar.tsx","../src/Components/AppShell/hooks/useAppState.tsx","../src/Components/Templates/SelectUser.tsx","../src/Components/Profile/Subcomponents/PlusButton.tsx","../src/Utils/HashTagRegex.tsx","../src/Utils/GetValue.ts","../src/Components/Map/hooks/useTags.tsx","../src/Components/Input/TextAreaInput.tsx","../src/Components/Input/TextInput.tsx","../src/Components/Input/SelectBox.tsx","../src/Utils/RandomColor.ts","../src/Utils/TimeAgo.ts","../src/Components/Templates/DateUserInfo.tsx","../src/Components/Templates/DialogModal.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Components/Templates/ItemCard.tsx","../src/Components/Map/Subcomponents/Controls/Control.tsx","../src/Components/Map/hooks/useTimeout.tsx","../src/Components/Map/hooks/useDebounce.tsx","../node_modules/leaflet.locatecontrol/src/L.Control.Locate.js","../src/Components/Map/Subcomponents/Controls/LocateControl.tsx","../src/Utils/MarkerIconFactory.ts","../src/Utils/FormatTags.ts","../src/Components/Map/Subcomponents/Controls/SidebarControl.tsx","../src/Components/Map/Subcomponents/Controls/SearchControl.tsx","../src/Components/Map/Subcomponents/Controls/TagsControl.tsx","../src/Components/Templates/OverlayItemsIndexPage.tsx","../src/Components/Templates/EmojiPicker.tsx","../src/Components/Templates/AttestationForm.tsx","../src/Components/Templates/TagView.tsx","../src/Components/Templates/MarketView.tsx","../src/Components/Auth/LoginPage.tsx","../src/Components/Auth/SignupPage.tsx","../src/Components/Auth/RequestPasswordPage.tsx","../src/Components/Auth/SetNewPasswordPage.tsx","../src/Components/Map/hooks/usePermissions.tsx","../src/types.ts","../src/Components/Map/hooks/useSelectPosition.tsx","../src/Components/AppShell/ContextWrapper.tsx","../src/Components/Map/Subcomponents/AddButton.tsx","../src/Components/Map/Subcomponents/Controls/FilterControl.tsx","../src/Components/Map/Subcomponents/Controls/LayerControl.tsx","../src/Components/Map/Subcomponents/Controls/GratitudeControl.tsx","../src/Components/Map/Subcomponents/SelectPosition.tsx","../src/Utils/ReplaceURLs.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx","../src/Components/Map/UtopiaMapInner.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Components/Map/Subcomponents/ItemViewPopup.tsx","../src/Components/Map/Subcomponents/ItemFormPopup.tsx","../src/Components/Map/Layer.tsx","../src/Components/Map/Tags.tsx","../src/Components/Map/Permissions.tsx","../src/Components/Map/ItemForm.tsx","../src/Components/Map/ItemView.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx","../src/Components/AppShell/NavBar.tsx","../src/Components/AppShell/SetAppState.tsx","../src/Components/AppShell/AppShell.tsx","../src/Components/AppShell/SidebarSubmenu.tsx","../src/Components/AppShell/SideBar.tsx","../src/Components/AppShell/Content.tsx","../src/Components/AppShell/Sitemap.tsx","../src/Components/Profile/UserSettings.tsx","../src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx","../src/Components/Profile/Subcomponents/ActionsButton.tsx","../src/Components/Profile/Templates/TabsView.tsx","../src/Components/Profile/Subcomponents/ContactInfoView.tsx","../src/Components/Profile/Subcomponents/SocialShareButton.tsx","../src/Components/Profile/Subcomponents/SocialShareBar.tsx","../src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx","../src/Components/Profile/Templates/OnepagerView.tsx","../src/Components/Profile/Templates/SimpleView.tsx","../src/Components/Profile/itemFunctions.ts","../src/Components/Profile/Subcomponents/ProfileTextView.tsx","../src/Components/Profile/Subcomponents/ProfileStartEndView.tsx","../src/Components/Profile/Templates/FlexView.tsx","../src/Components/Profile/ProfileView.tsx","../src/Components/Input/ComboBoxInput.tsx","../src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx","../src/Components/Profile/Subcomponents/ContactInfoForm.tsx","../src/Components/Profile/Templates/OnepagerForm.tsx","../src/Components/Profile/Templates/SimpleForm.tsx","../src/Components/Input/Autocomplete.tsx","../src/Components/Profile/Subcomponents/TagsWidget.tsx","../src/Components/Profile/Templates/TabsForm.tsx","../src/Components/Profile/Subcomponents/AvatarWidget.tsx","../src/Components/Profile/hooks/useClickOutside.tsx","../src/Components/Profile/Subcomponents/ColorPicker.tsx","../src/Components/Profile/Subcomponents/FormHeader.tsx","../src/Components/Profile/Subcomponents/ProfileTextForm.tsx","../src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx","../src/Components/Profile/Templates/FlexForm.tsx","../src/Components/Profile/ProfileForm.tsx","../src/Components/Gaming/Modal.tsx","../src/Components/Gaming/Quests.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { useCallback, useState, createContext, useContext } from 'react'\nimport * as React from 'react'\n\ntype UseQuestManagerResult = ReturnType<typeof useQuestsManager>\n\nconst QuestContext = createContext<UseQuestManagerResult>({\n open: false,\n setQuestsOpen: () => {},\n})\n\nfunction useQuestsManager(initialOpen: boolean): {\n open: boolean\n setQuestsOpen: (open: boolean) => void\n} {\n const [open, setOpen] = useState<boolean>(initialOpen)\n\n const setQuestsOpen = useCallback((questOpen: boolean) => {\n setOpen(questOpen)\n }, [])\n\n return { open, setQuestsOpen }\n}\n\nexport const QuestsProvider: React.FunctionComponent<{\n initialOpen: boolean\n children?: React.ReactNode\n}> = ({ initialOpen, children }) => (\n <QuestContext.Provider value={useQuestsManager(initialOpen)}>{children}</QuestContext.Provider>\n)\n\nexport const useQuestsOpen = (): boolean => {\n const { open } = useContext(QuestContext)\n return open\n}\n\nexport const useSetQuestOpen = (): UseQuestManagerResult['setQuestsOpen'] => {\n const { setQuestsOpen } = useContext(QuestContext)\n return setQuestsOpen\n}\n","import * as React from 'react'\nimport { createContext, useContext, useState } from 'react'\n\ntype UseClusterRefManagerResult = ReturnType<typeof useClusterRefManager>\n\nconst ClusterRefContext = createContext<UseClusterRefManagerResult>({\n clusterRef: {} as React.MutableRefObject<undefined>,\n setClusterRef: () => {},\n})\n\nfunction useClusterRefManager(): {\n clusterRef: any\n setClusterRef: React.Dispatch<React.SetStateAction<React.MutableRefObject<undefined>>>\n} {\n const [clusterRef, setClusterRef] = useState<React.MutableRefObject<undefined>>(\n {} as React.MutableRefObject<undefined>,\n )\n\n return { clusterRef, setClusterRef }\n}\n\nexport const ClusterRefProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <ClusterRefContext.Provider value={useClusterRefManager()}>{children}</ClusterRefContext.Provider>\n)\n\nexport const useClusterRef = (): any => {\n const { clusterRef } = useContext(ClusterRefContext)\n return clusterRef\n}\n\nexport const useSetClusterRef = (): UseClusterRefManagerResult['setClusterRef'] => {\n const { setClusterRef } = useContext(ClusterRefContext)\n return setClusterRef\n}\n","import { useCallback, useReducer, createContext, useContext } from 'react'\nimport * as React from 'react'\nimport { LayerProps } from '../../../types'\n\ntype ActionType = { type: 'ADD LAYER'; layer: LayerProps }\n\ntype UseItemManagerResult = ReturnType<typeof useLayerManager>\n\nconst LayerContext = createContext<UseItemManagerResult>({\n layers: [],\n addLayer: () => {},\n})\n\nfunction useLayerManager(initialLayers: LayerProps[]): {\n layers: LayerProps[]\n addLayer: (layer: LayerProps) => void\n} {\n const [layers, dispatch] = useReducer((state: LayerProps[], action: ActionType) => {\n switch (action.type) {\n case 'ADD LAYER':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find((layer) => layer.name === action.layer.name)\n if (!exist) {\n return [...state, action.layer]\n } else return state\n default:\n throw new Error()\n }\n }, initialLayers)\n\n const addLayer = useCallback((layer: LayerProps) => {\n dispatch({\n type: 'ADD LAYER',\n layer,\n })\n }, [])\n\n return { layers, addLayer }\n}\n\nexport const LayersProvider: React.FunctionComponent<{\n initialLayers: LayerProps[]\n children?: React.ReactNode\n}> = ({ initialLayers, children }) => (\n <LayerContext.Provider value={useLayerManager(initialLayers)}>{children}</LayerContext.Provider>\n)\n\nexport const useLayers = (): LayerProps[] => {\n const { layers } = useContext(LayerContext)\n return layers\n}\n\nexport const useAddLayer = (): UseItemManagerResult['addLayer'] => {\n const { addLayer } = useContext(LayerContext)\n return addLayer\n}\n","import { useState, useEffect } from 'react'\n\nfunction getWindowDimensions() {\n const { innerWidth: width, innerHeight: height } = window\n return {\n width,\n height,\n }\n}\n\nexport default function useWindowDimensions() {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions())\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions())\n }\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n return windowDimensions\n}\n","/* eslint-disable no-case-declarations */\nimport { useCallback, useReducer, createContext, useContext } from 'react'\nimport * as React from 'react'\nimport { LayerProps, Tag } from '../../../types'\nimport { useLayers } from './useLayers'\nimport { useNavigate } from 'react-router-dom'\nimport useWindowDimensions from './useWindowDimension'\n\ntype ActionType =\n | { type: 'ADD_TAG'; tag: Tag }\n | { type: 'REMOVE_TAG'; name: string }\n | { type: 'RESET_TAGS' }\n | { type: 'TOGGLE_LAYER'; layer: LayerProps }\n | { type: 'ADD_LAYER'; layer: LayerProps }\n | { type: 'RESET_LAYERS' }\n | { type: 'TOGGLE_GROUP_TYPE'; groupType: string }\n | { type: 'ADD_GROUP_TYPE'; groupType: string }\n | { type: 'RESET_GROUP_TYPE' }\n\ntype UseFilterManagerResult = ReturnType<typeof useFilterManager>\n\nconst FilterContext = createContext<UseFilterManagerResult>({\n filterTags: [],\n searchPhrase: '',\n visibleLayers: [],\n visibleGroupTypes: [],\n addFilterTag: () => {},\n removeFilterTag: () => {},\n resetFilterTags: () => {},\n setSearchPhrase: () => {},\n addVisibleLayer: () => {},\n toggleVisibleLayer: () => {},\n resetVisibleLayers: () => {},\n isLayerVisible: () => true,\n addVisibleGroupType: () => {},\n toggleVisibleGroupType: () => {},\n isGroupTypeVisible: () => true,\n})\n\nfunction useFilterManager(initialTags: Tag[]): {\n filterTags: Tag[]\n searchPhrase: string\n visibleLayers: LayerProps[]\n visibleGroupTypes: string[]\n\n addFilterTag: (tag: Tag) => void\n removeFilterTag: (name: string) => void\n resetFilterTags: () => void\n setSearchPhrase: (phrase: string) => void\n addVisibleLayer: (layer: LayerProps) => void\n toggleVisibleLayer: (layer: LayerProps) => void\n resetVisibleLayers: () => void\n isLayerVisible: (layer: LayerProps) => boolean\n addVisibleGroupType: (groupType: string) => void\n toggleVisibleGroupType: (groupType: string) => void\n isGroupTypeVisible: (groupType: string) => boolean\n} {\n const [filterTags, dispatchTags] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_TAG':\n const exist = state.find((tag) => tag.id === action.tag.id)\n if (!exist) {\n return [...state, action.tag]\n } else return state\n case 'REMOVE_TAG':\n return state.filter(({ name }) => name !== action.name)\n case 'RESET_TAGS':\n return initialTags\n default:\n throw new Error()\n }\n }, initialTags)\n\n const initialLayers = useLayers()\n const navigate = useNavigate()\n const windowDimensions = useWindowDimensions()\n\n const [visibleLayers, dispatchLayers] = useReducer((state: LayerProps[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_LAYER':\n const exist1 = state.find((layer) => layer.name === action.layer.name)\n if (!exist1) {\n return [...state, action.layer]\n } else return state\n case 'TOGGLE_LAYER':\n const exist2 = state.some((layer) => layer.name === action.layer.name)\n if (exist2) return state.filter(({ name }) => name !== action.layer.name)\n else return [...state, action.layer]\n case 'RESET_LAYERS':\n return initialLayers\n default:\n throw new Error()\n }\n }, initialLayers)\n\n const [visibleGroupTypes, dispatchGroupTypes] = useReducer(\n (state: string[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_GROUP_TYPE':\n const exist1 = state.find((groupType) => groupType === action.groupType)\n if (!exist1) {\n return [...state, action.groupType]\n } else return state\n case 'TOGGLE_GROUP_TYPE':\n const exist2 = state.some((groupType) => groupType === action.groupType)\n if (exist2) return state.filter((groupType) => groupType !== action.groupType)\n else return [...state, action.groupType]\n case 'RESET_GROUP_TYPE':\n return []\n default:\n throw new Error()\n }\n },\n [],\n )\n\n const [searchPhrase, searchPhraseSet] = React.useState<string>('')\n\n const addFilterTag = useCallback((tag: Tag) => {\n const params = new URLSearchParams(location.search)\n const urlTags = params.get('tags')\n const decodedTags = urlTags ? decodeURIComponent(urlTags) : ''\n\n if (!decodedTags?.includes(tag.name)) {\n params.set('tags', `${urlTags || ''}${urlTags ? ';' : ''}${tag.name}`)\n }\n if (windowDimensions.width < 786 && location.pathname.split('/').length > 2)\n navigate('/' + `${params ? `?${params}` : ''}`)\n else navigate(location.pathname + `${params ? `?${params}` : ''}`)\n\n dispatchTags({\n type: 'ADD_TAG',\n tag,\n })\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const removeFilterTag = useCallback((name: string) => {\n const params = new URLSearchParams(window.location.search)\n const urlTags = params.get('tags')\n let newUrlTags = ''\n const tags = urlTags?.split(';')\n if (tags?.length === 0 && urlTags?.length && urlTags?.length > 0) tags[0] = urlTags\n tags?.map((urlTag) => {\n if (!(urlTag.toLocaleLowerCase() === name.toLocaleLowerCase())) {\n newUrlTags = newUrlTags + `${newUrlTags === '' ? urlTag : `;${urlTag}`}`\n }\n return null\n })\n if (newUrlTags !== '') {\n params.set('tags', `${newUrlTags}`)\n navigate(location.pathname + `${params ? `?${params}` : ''}`)\n } else {\n params.delete('tags')\n navigate(location.pathname + `${params ? `?${params}` : ''}`)\n }\n\n dispatchTags({\n type: 'REMOVE_TAG',\n name,\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const resetFilterTags = useCallback(() => {\n dispatchTags({\n type: 'RESET_TAGS',\n })\n }, [])\n\n const addVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: 'ADD_LAYER',\n layer,\n })\n }\n\n const toggleVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: 'TOGGLE_LAYER',\n layer,\n })\n }\n\n const resetVisibleLayers = useCallback(() => {\n dispatchLayers({\n type: 'RESET_LAYERS',\n })\n }, [])\n\n const isLayerVisible = useCallback(\n (layer: LayerProps) => {\n return visibleLayers.some((l) => l.name === layer.name)\n },\n [visibleLayers],\n )\n\n const addVisibleGroupType = (groupType: string) => {\n dispatchGroupTypes({\n type: 'ADD_GROUP_TYPE',\n groupType,\n })\n }\n\n const toggleVisibleGroupType = (groupType: string) => {\n dispatchGroupTypes({\n type: 'TOGGLE_GROUP_TYPE',\n groupType,\n })\n }\n\n const isGroupTypeVisible = useCallback(\n (groupType: string) => {\n return visibleGroupTypes.some((gt) => gt === groupType)\n },\n [visibleGroupTypes],\n )\n\n const setSearchPhrase = useCallback((phrase: string) => {\n searchPhraseSet(phrase)\n }, [])\n\n return {\n filterTags,\n addFilterTag,\n removeFilterTag,\n resetFilterTags,\n setSearchPhrase,\n searchPhrase,\n visibleLayers,\n toggleVisibleLayer,\n resetVisibleLayers,\n isLayerVisible,\n addVisibleLayer,\n visibleGroupTypes,\n addVisibleGroupType,\n toggleVisibleGroupType,\n isGroupTypeVisible,\n }\n}\n\nexport const FilterProvider: React.FunctionComponent<{\n initialTags: Tag[]\n children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <FilterContext.Provider value={useFilterManager(initialTags)}>{children}</FilterContext.Provider>\n)\n\nexport const useFilterTags = (): Tag[] => {\n const { filterTags } = useContext(FilterContext)\n return filterTags\n}\n\nexport const useAddFilterTag = (): UseFilterManagerResult['addFilterTag'] => {\n const { addFilterTag } = useContext(FilterContext)\n return addFilterTag\n}\n\nexport const useRemoveFilterTag = (): UseFilterManagerResult['removeFilterTag'] => {\n const { removeFilterTag } = useContext(FilterContext)\n return removeFilterTag\n}\n\nexport const useResetFilterTags = (): UseFilterManagerResult['resetFilterTags'] => {\n const { resetFilterTags } = useContext(FilterContext)\n return resetFilterTags\n}\n\nexport const useSearchPhrase = (): UseFilterManagerResult['searchPhrase'] => {\n const { searchPhrase } = useContext(FilterContext)\n return searchPhrase\n}\n\nexport const useSetSearchPhrase = (): UseFilterManagerResult['setSearchPhrase'] => {\n const { setSearchPhrase } = useContext(FilterContext)\n return setSearchPhrase\n}\n\nexport const useVisibleLayer = (): UseFilterManagerResult['visibleLayers'] => {\n const { visibleLayers } = useContext(FilterContext)\n return visibleLayers\n}\n\nexport const useAddVisibleLayer = (): UseFilterManagerResult['addVisibleLayer'] => {\n const { addVisibleLayer } = useContext(FilterContext)\n return addVisibleLayer\n}\n\nexport const useToggleVisibleLayer = (): UseFilterManagerResult['toggleVisibleLayer'] => {\n const { toggleVisibleLayer } = useContext(FilterContext)\n return toggleVisibleLayer\n}\n\nexport const useResetVisibleLayers = (): UseFilterManagerResult['resetVisibleLayers'] => {\n const { resetVisibleLayers } = useContext(FilterContext)\n return resetVisibleLayers\n}\n\nexport const useIsLayerVisible = (): UseFilterManagerResult['isLayerVisible'] => {\n const { isLayerVisible } = useContext(FilterContext)\n return isLayerVisible\n}\n\nexport const useAddVisibleGroupType = (): UseFilterManagerResult['addVisibleGroupType'] => {\n const { addVisibleGroupType } = useContext(FilterContext)\n return addVisibleGroupType\n}\n\nexport const useToggleVisibleGroupType = (): UseFilterManagerResult['toggleVisibleGroupType'] => {\n const { toggleVisibleGroupType } = useContext(FilterContext)\n return toggleVisibleGroupType\n}\n\nexport const useIsGroupTypeVisible = (): UseFilterManagerResult['isGroupTypeVisible'] => {\n const { isGroupTypeVisible } = useContext(FilterContext)\n return isGroupTypeVisible\n}\n\nexport const useVisibleGroupType = (): UseFilterManagerResult['visibleGroupTypes'] => {\n const { visibleGroupTypes } = useContext(FilterContext)\n return visibleGroupTypes\n}\n","import { useCallback, useReducer, createContext, useContext, useState } from 'react'\nimport * as React from 'react'\nimport { Item, LayerProps } from '../../../types'\nimport { toast } from 'react-toastify'\nimport { useAddLayer } from './useLayers'\n\ntype ActionType =\n | { type: 'ADD'; item: Item }\n | { type: 'UPDATE'; item: Item }\n | { type: 'REMOVE'; item: Item }\n | { type: 'RESET'; layer: LayerProps }\n\ntype UseItemManagerResult = ReturnType<typeof useItemsManager>\n\nconst ItemContext = createContext<UseItemManagerResult>({\n items: [],\n addItem: () => {},\n updateItem: () => {},\n removeItem: () => {},\n resetItems: () => {},\n setItemsApi: () => {},\n setItemsData: () => {},\n allItemsLoaded: false,\n})\n\nfunction useItemsManager(initialItems: Item[]): {\n items: Item[]\n addItem: (item: Item) => void\n updateItem: (item: Item) => void\n removeItem: (item: Item) => void\n resetItems: (layer: LayerProps) => void\n setItemsApi: (layer: LayerProps) => void\n setItemsData: (layer: LayerProps) => void\n allItemsLoaded: boolean\n} {\n const addLayer = useAddLayer()\n\n const [allItemsLoaded, setallItemsLoaded] = useState<boolean>(false)\n\n const [items, dispatch] = useReducer((state: Item[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find((item) => item.id === action.item.id)\n if (!exist) {\n return [...state, action.item]\n } else return state\n case 'UPDATE':\n return state.map((item) => {\n if (item.id === action.item.id) {\n return action.item\n }\n return item\n })\n case 'REMOVE':\n return state.filter((item) => item !== action.item)\n case 'RESET':\n return state.filter((item) => item.layer?.name !== action.layer.name)\n default:\n throw new Error()\n }\n }, initialItems)\n\n const setItemsApi = useCallback(async (layer: LayerProps) => {\n addLayer(layer)\n const result = await toast.promise(layer.api!.getItems(), {\n pending: `loading ${layer.name} ...`,\n success: `${layer.name} loaded`,\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n if (result) {\n result.map((item) => {\n dispatch({ type: 'ADD', item: { ...item, layer } })\n return null\n })\n setallItemsLoaded(true)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const setItemsData = useCallback((layer: LayerProps) => {\n addLayer(layer)\n layer.data?.map((item) => {\n dispatch({ type: 'ADD', item: { ...item, layer } })\n return null\n })\n setallItemsLoaded(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const addItem = useCallback(async (item: Item) => {\n dispatch({\n type: 'ADD',\n item,\n })\n }, [])\n\n const updateItem = useCallback(async (item: Item) => {\n dispatch({\n type: 'UPDATE',\n item,\n })\n }, [])\n\n const removeItem = useCallback((item: Item) => {\n dispatch({\n type: 'REMOVE',\n item,\n })\n }, [])\n\n const resetItems = useCallback((layer: LayerProps) => {\n dispatch({\n type: 'RESET',\n layer,\n })\n }, [])\n\n return {\n items,\n updateItem,\n addItem,\n removeItem,\n resetItems,\n setItemsApi,\n setItemsData,\n allItemsLoaded,\n }\n}\n\nexport const ItemsProvider: React.FunctionComponent<{\n initialItems: Item[]\n children?: React.ReactNode\n}> = ({ initialItems, children }) => (\n <ItemContext.Provider value={useItemsManager(initialItems)}>{children}</ItemContext.Provider>\n)\n\nexport const useItems = (): Item[] => {\n const { items } = useContext(ItemContext)\n return items\n}\n\nexport const useAddItem = (): UseItemManagerResult['addItem'] => {\n const { addItem } = useContext(ItemContext)\n return addItem\n}\n\nexport const useUpdateItem = (): UseItemManagerResult['updateItem'] => {\n const { updateItem } = useContext(ItemContext)\n return updateItem\n}\n\nexport const useRemoveItem = (): UseItemManagerResult['removeItem'] => {\n const { removeItem } = useContext(ItemContext)\n return removeItem\n}\n\nexport const useResetItems = (): UseItemManagerResult['resetItems'] => {\n const { resetItems } = useContext(ItemContext)\n return resetItems\n}\n\nexport const useSetItemsApi = (): UseItemManagerResult['setItemsApi'] => {\n const { setItemsApi } = useContext(ItemContext)\n return setItemsApi\n}\n\nexport const useSetItemsData = (): UseItemManagerResult['setItemsData'] => {\n const { setItemsData } = useContext(ItemContext)\n return setItemsData\n}\n\nexport const useAllItemsLoaded = (): UseItemManagerResult['allItemsLoaded'] => {\n const { allItemsLoaded } = useContext(ItemContext)\n return allItemsLoaded\n}\n","import { useCallback, useReducer, createContext, useContext } from 'react'\nimport * as React from 'react'\nimport { Item } from '../../../types'\nimport { Marker, Popup } from 'leaflet'\n\ntype LeafletRef = {\n item: Item\n marker: Marker\n popup: Popup\n}\n\ntype ActionType =\n | { type: 'ADD_MARKER'; item: Item; marker: Marker }\n | { type: 'ADD_POPUP'; item: Item; popup: Popup }\n\ntype UseLeafletRefsManagerResult = ReturnType<typeof useLeafletRefsManager>\n\nconst LeafletRefsContext = createContext<UseLeafletRefsManagerResult>({\n leafletRefs: {},\n addMarker: () => {},\n addPopup: () => {},\n})\n\nfunction useLeafletRefsManager(initialLeafletRefs: {}): {\n leafletRefs: Record<string, LeafletRef>\n addMarker: (item: Item, marker: Marker) => void\n addPopup: (item: Item, popup: Popup) => void\n} {\n const [leafletRefs, dispatch] = useReducer(\n (state: Record<string, LeafletRef>, action: ActionType) => {\n switch (action.type) {\n case 'ADD_MARKER':\n return {\n ...state,\n [action.item.id]: {\n ...state[action.item.id],\n marker: action.marker,\n item: action.item,\n },\n }\n case 'ADD_POPUP':\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], popup: action.popup, item: action.item },\n }\n default:\n throw new Error()\n }\n },\n initialLeafletRefs,\n )\n\n const addMarker = useCallback((item: Item, marker: Marker) => {\n dispatch({\n type: 'ADD_MARKER',\n item,\n marker,\n })\n }, [])\n\n const addPopup = useCallback((item: Item, popup: Popup) => {\n dispatch({\n type: 'ADD_POPUP',\n item,\n popup,\n })\n }, [])\n\n return { leafletRefs, addMarker, addPopup }\n}\n\nexport const LeafletRefsProvider: React.FunctionComponent<{\n initialLeafletRefs: {}\n children?: React.ReactNode\n}> = ({ initialLeafletRefs, children }) => (\n <LeafletRefsContext.Provider value={useLeafletRefsManager(initialLeafletRefs)}>\n {children}\n </LeafletRefsContext.Provider>\n)\n\nexport const useLeafletRefs = (): Record<string, LeafletRef> => {\n const { leafletRefs } = useContext(LeafletRefsContext)\n return leafletRefs\n}\n\nexport const useAddMarker = (): UseLeafletRefsManagerResult['addMarker'] => {\n const { addMarker } = useContext(LeafletRefsContext)\n return addMarker\n}\n\nexport const useAddPopup = (): UseLeafletRefsManagerResult['addPopup'] => {\n const { addPopup } = useContext(LeafletRefsContext)\n return addPopup\n}\n","import { createContext, useState, useContext, useEffect } from 'react'\nimport * as React from 'react'\nimport { UserApi, UserItem } from '../../types'\n\ntype AuthProviderProps = {\n userApi: UserApi\n children?: React.ReactNode\n}\n\ntype AuthCredentials = {\n email: string\n password: string\n otp?: string | undefined\n}\n\ntype AuthContextProps = {\n isAuthenticated: boolean\n user: UserItem | null\n login: (credentials: AuthCredentials) => Promise<UserItem | undefined>\n register: (credentials: AuthCredentials, userName: string) => Promise<UserItem | undefined>\n loading: boolean\n logout: () => Promise<any>\n updateUser: (user: UserItem) => any\n token: string | null\n requestPasswordReset: (email: string, reset_url: string) => Promise<any>\n passwordReset: (token: string, new_password: string) => Promise<any>\n}\n\nconst AuthContext = createContext<AuthContextProps>({\n isAuthenticated: false,\n user: null,\n login: () => Promise.reject(Error('Unimplemented')),\n register: () => Promise.reject(Error('Unimplemented')),\n loading: false,\n logout: () => Promise.reject(Error('Unimplemented')),\n updateUser: () => Promise.reject(Error('Unimplemented')),\n token: '',\n requestPasswordReset: () => Promise.reject(Error('Unimplemented')),\n passwordReset: () => Promise.reject(Error('Unimplemented')),\n})\n\nexport const AuthProvider = ({ userApi, children }: AuthProviderProps) => {\n const [user, setUser] = useState<UserItem | null>(null)\n const [token, setToken] = useState<string | null>(null)\n const [loading, setLoading] = useState<boolean>(false)\n const isAuthenticated = !!user\n\n useEffect(() => {\n setLoading(true)\n loadUser()\n setLoading(false)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n async function loadUser(): Promise<UserItem | undefined> {\n try {\n const token = await userApi.getToken()\n setToken(token)\n if (token) {\n const me = await userApi.getUser()\n setUser(me as UserItem)\n setLoading(false)\n return me as UserItem\n } else return undefined\n } catch (error) {\n setLoading(false)\n return undefined\n }\n }\n\n const login = async (credentials: AuthCredentials): Promise<UserItem | undefined> => {\n setLoading(true)\n try {\n const res = await userApi.login(credentials.email, credentials.password)\n setToken(res.access_token)\n return await loadUser()\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const register = async (\n credentials: AuthCredentials,\n userName,\n ): Promise<UserItem | undefined> => {\n setLoading(true)\n try {\n /* const res = */ await userApi.register(credentials.email, credentials.password, userName)\n return await login(credentials)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const logout = async () => {\n try {\n await userApi.logout()\n setUser(null)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const updateUser = async (user: UserItem) => {\n setLoading(true)\n const { id, ...userRest } = user\n\n try {\n const res = await userApi.updateUser(userRest)\n setUser(res as any)\n loadUser()\n setLoading(false)\n return res as any\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const requestPasswordReset = async (email: string, resetUrl?: string): Promise<any> => {\n setLoading(true)\n try {\n await userApi.requestPasswordReset(email, resetUrl)\n return setLoading(false)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const passwordReset = async (token: string, newPassword: string): Promise<any> => {\n setLoading(true)\n try {\n await userApi.passwordReset(token, newPassword)\n return setLoading(false)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n return (\n <AuthContext.Provider\n value={{\n isAuthenticated,\n user,\n login,\n register,\n loading,\n logout,\n updateUser,\n token,\n requestPasswordReset,\n passwordReset,\n }}\n >\n {children}\n </AuthContext.Provider>\n )\n}\nexport const useAuth = () => useContext(AuthContext)\n","import * as React from 'react'\n\nfunction Subtitle({ styleClass, children }: { styleClass: string; children: React.ReactNode }) {\n return <div className={`tw-text-xl tw-font-semibold ${styleClass}`}>{children}</div>\n}\n\nexport default Subtitle\n","import Subtitle from '../Typography/Subtitle'\nimport * as React from 'react'\n\ninterface TitleCardProps {\n title?: string\n hideTitle?: boolean\n children?: React.ReactNode\n topMargin?: string\n className?: string\n TopSideButtons?: any\n}\n\nexport function TitleCard({\n title,\n hideTitle,\n children,\n topMargin,\n TopSideButtons,\n className,\n}: TitleCardProps) {\n return (\n <div\n className={\n 'tw-card tw-w-full tw-p-6 tw-bg-base-100 tw-shadow-xl tw-h-fit tw-mb-4 ' +\n (className || '') +\n ' ' +\n (topMargin || 'tw-mt-6')\n }\n >\n {!hideTitle && (\n <>\n <Subtitle styleClass={TopSideButtons ? 'tw-inline-block' : ''}>\n {title}\n\n {/* Top side button, show only if present */}\n {TopSideButtons && (\n <div className='tw-inline-block tw-float-right'>{TopSideButtons}</div>\n )}\n </Subtitle>\n <div className='tw-divider tw-mt-2'></div>\n </>\n )}\n\n {/** Card Body */}\n <div className='tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100'>{children}</div>\n </div>\n )\n}\n","import { Link } from 'react-router-dom'\nimport * as React from 'react'\nimport { TitleCard } from './TitleCard'\n\nexport function CardPage({\n title,\n hideTitle,\n children,\n parents,\n}: {\n title: string\n hideTitle?: boolean\n children?: React.ReactNode\n parents?: Array<{ name: string; path: string }>\n}) {\n return (\n <main className='tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-2 tw-px-6 tw-min-w-80 tw-flex tw-justify-center'>\n <div className='tw-w-full xl:tw-max-w-6xl '>\n <div className='tw-text-sm tw-breadcrumbs'>\n <ul>\n <li>\n <Link to={'/'}>Home</Link>\n </li>\n {parents?.map((b, i) => (\n <li key={i}>\n <Link to={b.path}>{b.name}</Link>\n </li>\n ))}\n <li>{title}</li>\n </ul>\n </div>\n <TitleCard hideTitle={hideTitle} title={title} topMargin='tw-my-2' className=' tw-mb-4'>\n {children}\n </TitleCard>\n </div>\n </main>\n )\n}\n","import * as L from 'leaflet'\nimport * as React from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nexport function MapOverlayPage({\n children,\n className,\n backdrop,\n card = true,\n}: {\n children: React.ReactNode\n className?: string\n backdrop?: boolean\n card?: boolean\n}) {\n const closeScreen = () => {\n navigate(`/${window.location.search ? window.location.search : ''}`)\n }\n\n const navigate = useNavigate()\n\n const overlayRef = React.createRef<HTMLDivElement>()\n const backdropRef = React.createRef<HTMLDivElement>()\n\n React.useEffect(() => {\n if (overlayRef.current !== null) {\n L.DomEvent.disableClickPropagation(overlayRef.current)\n L.DomEvent.disableScrollPropagation(overlayRef.current)\n }\n if (backdropRef.current !== null && backdrop) {\n L.DomEvent.disableClickPropagation(backdropRef.current)\n L.DomEvent.disableScrollPropagation(backdropRef.current)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [overlayRef, backdropRef])\n\n return (\n <div className={`tw-absolute tw-h-full tw-w-full tw-m-auto ${backdrop && 'tw-z-[2000]'}`}>\n <div\n ref={backdropRef}\n className={`${backdrop && 'tw-backdrop-brightness-75'} tw-h-full tw-w-full tw-grid tw-place-items-center tw-m-auto`}\n >\n <div\n ref={overlayRef}\n className={`${card && 'tw-card tw-card-body'} tw-shadow-xl tw-bg-base-100 tw-p-6 ${className && className} ${!backdrop && 'tw-z-[2000]'} tw-absolute tw-top-0 tw-bottom-0 tw-right-0 tw-left-0 tw-m-auto`}\n >\n {children}\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2'\n onClick={() => closeScreen()}\n >\n ✕\n </button>\n </div>\n </div>\n </div>\n )\n}\n","import { useEffect, useRef } from 'react'\n\nexport const CircleLayout = ({\n items,\n radius,\n fontSize,\n}: {\n items: any\n radius: number\n fontSize: any\n}) => {\n const containerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const container = containerRef.current\n const itemCount = items.length\n\n if (container) {\n for (let i = 0; i < itemCount; i++) {\n const startAngle = Math.PI / 2\n const angle = startAngle + (i / itemCount) * (2 * Math.PI)\n const x = radius * Math.cos(angle)\n const y = radius * Math.sin(angle)\n const child = container.children[i] as HTMLElement\n child.style.transform = `translate(${x}px, ${y}px)`\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <div\n className='tw-absolute tw-mx-auto tw-flex tw-justify-center tw-items-center tw-h-full tw-w-full'\n ref={containerRef}\n >\n {items.map((item: any) => (\n <div key={item} className='tw-absolute' style={{ fontSize }}>\n {item}\n </div>\n ))}\n </div>\n )\n}\n","export const LUNAR_MONTH = 29.530588853\n\nexport const getJulianDate = (date: Date = new Date()): number => {\n const time: number = date.getTime()\n const tzoffset: number = date.getTimezoneOffset()\n return time / 86400000 - tzoffset / 1440 + 2440587.5\n}\n\nexport const normalize = (value: number): number => {\n value = value - Math.floor(value)\n if (value < 0) value += 1\n return value\n}\n\nexport const getLunarAgePercent = (date: Date = new Date()): number => {\n return normalize((getJulianDate(date) - 2451550.1) / LUNAR_MONTH)\n}\n\nexport const getLunarAge = (date: Date = new Date()): number => {\n const percent: number = getLunarAgePercent(date)\n return percent * LUNAR_MONTH\n}\n\nexport const getNextNewMoon = (): Date => {\n return new Date(getLastNewMoon().getTime() + LUNAR_MONTH * 86400000)\n}\n\nexport const getLastNewMoon = (date: Date = new Date()): Date => {\n const lunarAge: number = getLunarAge(date)\n return new Date(date.getTime() - lunarAge * 86400000)\n}\n","import * as React from 'react'\nimport { useState } from 'react'\nimport { add, format, parse, startOfToday, sub } from 'date-fns'\nimport { ChevronLeftIcon, ChevronRightIcon } from '@heroicons/react/24/outline'\nimport { MapOverlayPage } from './MapOverlayPage'\nimport { CircleLayout } from './CircleLayout'\nimport { LUNAR_MONTH, getLastNewMoon, getNextNewMoon } from '../../Utils/Moon'\n\nexport const MoonCalendar = () => {\n const today = startOfToday()\n\n const [currMonth, setCurrMonth] = useState(() => format(today, 'MMM-yyyy'))\n const firstDayOfMonth = parse(currMonth, 'MMM-yyyy', new Date())\n\n const getPrevMonth = (event: React.MouseEvent<SVGSVGElement>) => {\n event.preventDefault()\n const firstDayOfPrevMonth = add(firstDayOfMonth, { months: -1 })\n setCurrMonth(format(firstDayOfPrevMonth, 'MMM-yyyy'))\n }\n\n const getNextMonth = (event: React.MouseEvent<SVGSVGElement>) => {\n event.preventDefault()\n const firstDayOfNextMonth = add(firstDayOfMonth, { months: 1 })\n setCurrMonth(format(firstDayOfNextMonth, 'MMM-yyyy'))\n }\n\n return (\n <MapOverlayPage backdrop className='tw-h-96 tw-w-80'>\n <p className='tw-self-center tw-text-lg tw-font-bold'>Moon Cycle</p>\n <div className='tw-relative tw-h-full'>\n <CircleLayout\n items={['🌑', '🌒', '🌓', '🌔', '🌕', '🌖', '🌗', '🌘']}\n radius={80}\n fontSize={'3em'}\n />\n <CircleLayout\n items={[\n format(getLastNewMoon(), 'dd.MM hh:mm'),\n format(\n sub(getNextNewMoon(), { seconds: ((LUNAR_MONTH * 86400) / 4) * 3 }),\n 'dd.MM hh:mm',\n ),\n format(sub(getNextNewMoon(), { seconds: (LUNAR_MONTH * 86400) / 2 }), 'dd.MM hh:mm'),\n format(sub(getNextNewMoon(), { seconds: (LUNAR_MONTH * 86400) / 4 }), 'dd.MM hh:mm'),\n ]}\n radius={120}\n fontSize={'0.8em'}\n />\n </div>\n <div className='tw-flex tw-flex-row'>\n <ChevronLeftIcon className='tw-w-6 tw-h-6 tw-cursor-pointer' onClick={getPrevMonth} />\n <p className='tw-text-center tw-p-1 tw-h-full tw-grow'>\n from {format(getLastNewMoon(), 'dd.MM')} - to {format(getNextNewMoon(), 'dd.MM')}\n </p>\n\n <ChevronRightIcon className='tw-w-6 tw-h-6 tw-cursor-pointer' onClick={getNextMonth} />\n </div>\n </MapOverlayPage>\n )\n}\n","import { useCallback, useState, createContext, useContext } from 'react'\nimport * as React from 'react'\nimport { AssetsApi } from '../../../types'\n\ntype AppState = {\n assetsApi: AssetsApi\n userType: string\n}\n\ntype UseAppManagerResult = ReturnType<typeof useAppManager>\n\nconst initialAppState: AppState = {\n assetsApi: {} as AssetsApi,\n userType: '',\n}\n\nconst AppContext = createContext<UseAppManagerResult>({\n state: initialAppState,\n setAppState: () => {},\n})\n\nfunction useAppManager(): {\n state: AppState\n setAppState: (newState: Partial<AppState>) => void\n} {\n const [state, setState] = useState<AppState>(initialAppState)\n\n const setAppState = useCallback((newState: Partial<AppState>) => {\n setState((prevState) => ({\n ...prevState,\n ...newState,\n }))\n }, [])\n\n return { state, setAppState }\n}\n\nexport const AppStateProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => <AppContext.Provider value={useAppManager()}>{children}</AppContext.Provider>\n\nexport const useAppState = (): AppState => {\n const { state } = useContext(AppContext)\n return state\n}\n\nexport const useSetAppState = (): UseAppManagerResult['setAppState'] => {\n const { setAppState } = useContext(AppContext)\n return setAppState\n}\n","import { useState } from 'react'\nimport { MapOverlayPage } from './MapOverlayPage'\nimport { useItems } from '../Map/hooks/useItems'\nimport { useAppState } from '../AppShell/hooks/useAppState'\nimport { Link } from 'react-router-dom'\n\nexport const SelectUser = () => {\n const appState = useAppState()\n const items = useItems()\n const users = items.filter((i) => i.layer?.itemType.name === appState.userType)\n\n const [selectedUsers, setSelectedUsers] = useState<Array<string>>([])\n\n return (\n <MapOverlayPage backdrop className='tw-h-3/4 tw-w-80'>\n <div className='tw-text-center tw-text-xl tw-font-bold tw-mb-4'>Gratitude to ...</div>\n\n {/* Team Member list in table format loaded constant */}\n <div className='tw-overflow-x-auto tw-w-full fade'>\n <table className='tw-table tw-w-full'>\n <tbody>\n {users.map((u, k) => {\n return (\n <tr key={k}>\n <td>\n <input\n type='checkbox'\n onChange={() => setSelectedUsers((prev) => [...prev, u.id])}\n className='tw-checkbox tw-checkbox-sm'\n />\n </td>\n <td>\n <div className='tw-flex tw-items-center tw-space-x-3'>\n {u.image ? (\n <div className='tw-avatar'>\n <div className='tw-mask tw-mask-circle tw-w-8 tw-h-8'>\n <img\n src={appState.assetsApi.url + u.image + '?width=40&heigth=40'}\n alt='Avatar'\n />\n </div>\n </div>\n ) : (\n <div className='tw-mask tw-mask-circle tw-text-xl md:tw-text-2xl tw-bg-slate-200 tw-rounded-full tw-w-8 tw-h-8'></div>\n )}\n <div>\n <div className='tw-font-bold'>{u.name}</div>\n </div>\n </div>\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n <div className='tw-w-full tw-grid tw-mt-4'>\n <Link\n className='tw-place-self-center '\n to={'/attestation-form' + '?to=' + selectedUsers.map((u) => u, ',')}\n >\n <button className='tw-btn tw-px-8'>Next</button>\n </Link>\n </div>\n </MapOverlayPage>\n )\n}\n","import { LayerProps } from '../../../types'\nimport { useHasUserPermission } from '../../Map/hooks/usePermissions'\n\nexport function PlusButton({\n layer,\n triggerAction,\n color,\n collection = 'items',\n}: {\n layer?: LayerProps\n triggerAction: any\n color: string\n collection?: string\n}) {\n const hasUserPermission = useHasUserPermission()\n return (\n <>\n {hasUserPermission(collection, 'create', undefined, layer) && (\n <div className='tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-3000 tw-absolute tw-right-4 tw-bottom-4'>\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow'\n onClick={() => {\n triggerAction()\n }}\n style={{ backgroundColor: color, color: '#fff' }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='2'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </button>\n </div>\n )}\n </>\n )\n}\n","export const hashTagRegex = /(#+[a-zA-Z0-9À-ÖØ-öø-ʸ_-]{1,})/g\n","export function getValue(obj, path) {\n if (!obj || typeof path !== 'string') return undefined\n\n const pathArray = path.split('.') // Use a different variable for the split path\n for (let i = 0, len = pathArray.length; i < len; i++) {\n if (!obj) return undefined // Check if obj is falsy at each step\n obj = obj[pathArray[i]] // Dive one level deeper\n }\n return obj // Return the final value\n}\n","import { useCallback, useReducer, createContext, useContext, useState } from 'react'\nimport * as React from 'react'\nimport { Item, ItemsApi, Tag } from '../../../types'\nimport { hashTagRegex } from '../../../Utils/HashTagRegex'\nimport { getValue } from '../../../Utils/GetValue'\n\ntype ActionType = { type: 'ADD'; tag: Tag } | { type: 'REMOVE'; id: string }\n\ntype UseTagManagerResult = ReturnType<typeof useTagsManager>\n\nconst TagContext = createContext<UseTagManagerResult>({\n tags: [],\n addTag: () => {},\n setTagApi: () => {},\n setTagData: () => {},\n getItemTags: () => [],\n allTagsLoaded: false,\n})\n\nfunction useTagsManager(initialTags: Tag[]): {\n tags: Tag[]\n addTag: (tag: Tag) => void\n setTagApi: (api: ItemsApi<Tag>) => void\n setTagData: (data: Tag[]) => void\n getItemTags: (item: Item) => Tag[]\n allTagsLoaded: boolean\n} {\n const [allTagsLoaded, setallTagsLoaded] = useState<boolean>(false)\n const [tagCount, setTagCount] = useState<number>(0)\n\n const [tags, dispatch] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find(\n (tag) => tag.name.toLocaleLowerCase() === action.tag.name.toLocaleLowerCase(),\n )\n if (!exist) {\n const newState = [...state, { ...action.tag }]\n if (tagCount === newState.length) setallTagsLoaded(true)\n return newState\n } else return state\n default:\n throw new Error()\n }\n }, initialTags)\n\n const [api, setApi] = React.useState<ItemsApi<Tag>>({} as ItemsApi<Tag>)\n\n const setTagApi = useCallback(async (api: ItemsApi<Tag>) => {\n setApi(api)\n const result = await api.getItems()\n setTagCount(result.length)\n if (tagCount === 0) setallTagsLoaded(true)\n if (result) {\n result.map((tag) => {\n // tag.name = tag.name.toLocaleLowerCase();\n dispatch({ type: 'ADD', tag })\n return null\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const setTagData = useCallback((data: Tag[]) => {\n data.map((tag) => {\n // tag.name = tag.name.toLocaleLowerCase();\n dispatch({ type: 'ADD', tag })\n return null\n })\n }, [])\n\n const addTag = (tag: Tag) => {\n dispatch({\n type: 'ADD',\n tag,\n })\n if (!tags.some((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())) {\n api?.createItem && api.createItem(tag)\n }\n }\n\n const getItemTags = useCallback(\n (item: Item) => {\n const text =\n item?.layer?.itemTextField && item ? getValue(item, item.layer?.itemTextField) : undefined\n const itemTagStrings = text?.match(hashTagRegex)\n const itemTags: Tag[] = []\n itemTagStrings?.map((tag) => {\n if (tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n itemTags.push(\n tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())!,\n )\n }\n return null\n })\n item.layer?.itemOffersField &&\n getValue(item, item.layer.itemOffersField)?.map((o) => {\n const offer = tags.find((t) => t.id === o.tags_id)\n offer && itemTags.push(offer)\n return null\n })\n item.layer?.itemNeedsField &&\n getValue(item, item.layer.itemNeedsField)?.map((n) => {\n const need = tags.find((t) => t.id === n.tags_id)\n need && itemTags.push(need)\n return null\n })\n\n return itemTags\n },\n [tags],\n )\n\n return { tags, addTag, setTagApi, setTagData, getItemTags, allTagsLoaded }\n}\n\nexport const TagsProvider: React.FunctionComponent<{\n initialTags: Tag[]\n children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <TagContext.Provider value={useTagsManager(initialTags)}>{children}</TagContext.Provider>\n)\n\nexport const useTags = (): Tag[] => {\n const { tags } = useContext(TagContext)\n return tags\n}\n\nexport const useAddTag = (): UseTagManagerResult['addTag'] => {\n const { addTag } = useContext(TagContext)\n return addTag\n}\n\nexport const useSetTagApi = (): UseTagManagerResult['setTagApi'] => {\n const { setTagApi } = useContext(TagContext)\n return setTagApi\n}\n\nexport const useSetTagData = (): UseTagManagerResult['setTagData'] => {\n const { setTagData } = useContext(TagContext)\n return setTagData\n}\n\nexport const useGetItemTags = (): UseTagManagerResult['getItemTags'] => {\n const { getItemTags } = useContext(TagContext)\n return getItemTags\n}\n\nexport const useAllTagsLoaded = (): UseTagManagerResult['allTagsLoaded'] => {\n const { allTagsLoaded } = useContext(TagContext)\n return allTagsLoaded\n}\n","import * as React from 'react'\nimport { useEffect, useRef, useState } from 'react'\nimport Tribute from 'tributejs'\nimport { useTags } from '../Map/hooks/useTags'\n\ntype TextAreaProps = {\n labelTitle?: string\n labelStyle?: string\n containerStyle?: string\n dataField?: string\n inputStyle?: string\n defaultValue: string\n placeholder?: string\n updateFormValue?: (value: string) => void\n}\n\ninterface KeyValue {\n [key: string]: string\n}\n\nexport function TextAreaInput({\n labelTitle,\n dataField,\n labelStyle,\n containerStyle,\n inputStyle,\n defaultValue,\n placeholder,\n updateFormValue,\n}: TextAreaProps) {\n const ref = useRef<HTMLTextAreaElement>(null)\n const [inputValue, setInputValue] = useState<string>(defaultValue)\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const tags = useTags()\n\n const values: KeyValue[] = []\n\n tags.forEach((tag) => {\n values.push({ key: tag.name, value: tag.name, color: tag.color })\n })\n\n const tribute = new Tribute({\n containerClass: 'tw-z-3000 tw-bg-base-100 tw-p-2 tw-rounded-lg tw-shadow',\n selectClass: 'tw-font-bold',\n trigger: '#',\n values,\n menuShowMinLength: 3,\n noMatchTemplate: () => {\n return ''\n },\n menuItemTemplate: function (item) {\n return `<span style=\"color: ${item.original.color}; padding: 5px; border-radius: 3px;\">#${item.string}</span>`\n },\n })\n\n useEffect(() => {\n if (!init.current) {\n if (ref.current) {\n tribute.attach(ref.current)\n }\n init.current = true\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref])\n\n useEffect(() => {\n setInputValue(defaultValue)\n }, [defaultValue])\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value\n setInputValue(newValue)\n if (updateFormValue) {\n updateFormValue(newValue)\n }\n }\n\n return (\n <div className={`tw-form-control tw-w-full ${containerStyle || ''}`}>\n {labelTitle ? (\n <label className='tw-label'>\n <span className={`tw-label-text tw-text-base-content ${labelStyle}`}>{labelTitle}</span>\n </label>\n ) : null}\n <textarea\n required\n ref={ref}\n value={inputValue}\n name={dataField}\n className={`tw-textarea tw-textarea-bordered tw-w-full tw-leading-5 ${inputStyle || ''}`}\n placeholder={placeholder || ''}\n onChange={handleChange}\n ></textarea>\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\nimport * as React from 'react'\n\ntype InputTextProps = {\n labelTitle?: string\n labelStyle?: string\n type?: string\n dataField?: string\n containerStyle?: string\n inputStyle?: string\n defaultValue?: string\n placeholder?: string\n autocomplete?: string\n updateFormValue?: (value: string) => void\n}\n\nexport function TextInput({\n labelTitle,\n labelStyle,\n type,\n dataField,\n containerStyle,\n inputStyle,\n defaultValue,\n placeholder,\n autocomplete,\n updateFormValue,\n}: InputTextProps) {\n const [inputValue, setInputValue] = useState<string>(defaultValue || '')\n\n useEffect(() => {\n setInputValue(defaultValue || '')\n }, [defaultValue])\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setInputValue(newValue)\n if (updateFormValue) {\n updateFormValue(newValue)\n }\n }\n\n return (\n <div className={`tw-form-control ${containerStyle}`}>\n {labelTitle ? (\n <label className='tw-label'>\n <span className={`tw-label-text tw-text-base-content ${labelStyle}`}>{labelTitle}</span>\n </label>\n ) : null}\n <input\n required\n type={type || 'text'}\n name={dataField}\n value={inputValue}\n placeholder={placeholder || ''}\n autoComplete={autocomplete}\n onChange={handleChange}\n className={`tw-input tw-input-bordered tw-w-full ${inputStyle || ''}`}\n />\n </div>\n )\n}\n","import { useState } from 'react'\nimport InformationCircleIcon from '@heroicons/react/24/outline/InformationCircleIcon'\nimport * as React from 'react'\n\ntype SelectBoxProps = {\n labelTitle?: string\n labelStyle?: string\n type?: string\n containerStyle?: string\n defaultValue: string\n placeholder?: string\n\n updateFormValue: (value: string) => void\n\n options: { name: string; value: string }[]\n labelDescription?: string\n}\n\nexport function SelectBox(props: SelectBoxProps) {\n const {\n labelTitle,\n labelDescription,\n defaultValue,\n containerStyle,\n placeholder,\n labelStyle,\n options,\n updateFormValue,\n } = props\n\n const [value, setValue] = useState(defaultValue || '')\n\n const updateValue = (newValue: string) => {\n updateFormValue(newValue)\n setValue(newValue)\n }\n\n return (\n <div className={`tw-inline-block ${containerStyle}`}>\n {labelTitle ? (\n <label className={`tw-label ${labelStyle}`}>\n <div className='tw-label-text'>\n {labelTitle}\n {labelDescription && (\n <div className='tw-tooltip tw-tooltip-right' data-tip={labelDescription}>\n <InformationCircleIcon className='tw-w-4 tw-h-4' />\n </div>\n )}\n </div>\n </label>\n ) : (\n ''\n )}\n <select\n className='tw-select tw-select-bordered tw-w-full'\n value={value}\n onChange={(e) => updateValue(e.target.value)}\n >\n <option disabled value='PLACEHOLDER'>\n {placeholder}\n </option>\n {options.map((o, k) => {\n return (\n <option value={o.value || o.name} key={k}>\n {o.name}\n </option>\n )\n })}\n </select>\n </div>\n )\n}\n","const goldenRatioConjugate = 0.618033988749895\n\nexport const randomColor = () => {\n return hsvToHex((Math.random() + goldenRatioConjugate) % 1, 0.8, 0.7)\n}\n\nfunction hsvToHex(h, s, v) {\n let r, g, b\n const i = Math.floor(h * 6)\n const f = h * 6 - i\n const p = v * (1 - s)\n const q = v * (1 - f * s)\n const t = v * (1 - (1 - f) * s)\n\n switch (i % 6) {\n case 0:\n r = v\n g = t\n b = p\n break\n case 1:\n r = q\n g = v\n b = p\n break\n case 2:\n r = p\n g = v\n b = t\n break\n case 3:\n r = p\n g = q\n b = v\n break\n case 4:\n r = t\n g = p\n b = v\n break\n case 5:\n r = v\n g = p\n b = q\n break\n }\n\n return rgbToHex(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255))\n}\n\nconst rgbToHex = (r, g, b) =>\n '#' +\n [r, g, b]\n .map((x) => {\n const hex = x.toString(16)\n return hex.length === 1 ? '0' + hex : hex\n })\n .join('')\n","// in miliseconds\nconst units = [\n { label: 'year', seconds: 31536000 },\n { label: 'month', seconds: 2592000 },\n { label: 'week', seconds: 604800 },\n { label: 'day', seconds: 86400 },\n { label: 'hour', seconds: 3600 },\n { label: 'minute', seconds: 60 },\n { label: 'second', seconds: 1 },\n]\n\nexport const timeAgo = (date: string | number | Date) => {\n const time = Math.floor((new Date().valueOf() - new Date(date).valueOf()) / 1000)\n const { interval, unit } = calculateTimeDifference(time)\n const suffix = interval === 1 ? '' : 's'\n return `${interval} ${unit}${suffix} ago`\n}\n\nconst calculateTimeDifference = (time: number) => {\n for (const { label, seconds } of units) {\n const interval = Math.floor(time / seconds)\n if (interval >= 1) {\n return {\n interval,\n unit: label,\n }\n }\n }\n return {\n interval: 0,\n unit: '',\n }\n}\n","import { useState } from 'react'\nimport { timeAgo } from '../../Utils/TimeAgo'\nimport { Item } from '../../types'\n\nexport const DateUserInfo = ({ item }: { item: Item }) => {\n const [infoExpanded, setInfoExpanded] = useState<boolean>(false)\n return (\n <div\n className='tw-flex -tw-mb-1 tw-flex-row tw-mr-2 -tw-mt-2'\n onClick={(e) => e.stopPropagation()}\n >\n {infoExpanded ? (\n <p\n className={'tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500'}\n onClick={() => setInfoExpanded(false)}\n >{`${item.date_updated && item.date_updated !== item.date_created ? 'updated' : 'posted'} ${item && item.user_created && item.user_created.first_name ? `by ${item.user_created.first_name}` : ''} ${item.date_updated ? timeAgo(item.date_updated) : timeAgo(item.date_created!)}`}</p>\n ) : (\n <p\n className='!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500'\n onClick={() => setInfoExpanded(true)}\n >\n ⓘ\n </p>\n )}\n <div className='tw-grow '></div>\n </div>\n )\n}\n","import * as React from 'react'\nimport { MouseEvent, useEffect, useRef } from 'react'\n\nconst isClickInsideRectangle = (e: MouseEvent, element: HTMLElement) => {\n const r = element.getBoundingClientRect()\n\n return e.clientX > r.left && e.clientX < r.right && e.clientY > r.top && e.clientY < r.bottom\n}\n\ntype Props = {\n title: string\n isOpened: boolean\n onClose: () => void\n children: React.ReactNode\n showCloseButton?: boolean\n closeOnClickOutside?: boolean\n className?: string\n}\n\nconst DialogModal = ({\n title,\n isOpened,\n onClose,\n children,\n showCloseButton = true,\n closeOnClickOutside = true,\n className,\n}: Props) => {\n const ref = useRef<HTMLDialogElement>(null)\n\n useEffect(() => {\n if (isOpened) {\n ref.current?.showModal()\n ref.current?.classList.remove('tw-hidden')\n document.body.classList.add('modal-open') // prevent bg scroll\n } else {\n ref.current?.close()\n ref.current?.classList.add('tw-hidden')\n document.body.classList.remove('modal-open')\n }\n }, [isOpened])\n\n if (isOpened) {\n return (\n <dialog\n className={`${className || ''} tw-card tw-shadow-xl tw-absolute tw-right-0 tw-top-0 tw-bottom-0 tw-left-0 tw-m-auto tw-transition-opacity tw-duration-300 tw-p-4 tw-max-w-xl tw-bg-base-100`}\n ref={ref}\n // eslint-disable-next-line react/no-unknown-property\n onCancel={onClose}\n onClick={(e) =>\n ref.current && !isClickInsideRectangle(e, ref.current) && closeOnClickOutside && onClose()\n }\n >\n <div className='tw-card-body tw-p-2'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>{title}</h2>\n\n {children}\n {showCloseButton && (\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2'\n onClick={onClose}\n >\n ✕\n </button>\n )}\n </div>\n </dialog>\n )\n } else return <></>\n}\n\nexport default DialogModal\n","import * as React from 'react'\nimport { Item, ItemsApi } from '../../../../types'\nimport { useHasUserPermission } from '../../hooks/usePermissions'\nimport { getValue } from '../../../../Utils/GetValue'\nimport { useAppState } from '../../../AppShell/hooks/useAppState'\nimport DialogModal from '../../../Templates/DialogModal'\nimport { useNavigate } from 'react-router-dom'\n\nexport function HeaderView({\n item,\n api,\n editCallback,\n deleteCallback,\n setPositionCallback,\n itemNameField,\n itemSubnameField,\n itemAvatarField,\n loading,\n hideMenu = false,\n big = false,\n truncateSubname = true,\n hideSubname = false,\n showAddress = false,\n}: {\n item: Item\n api?: ItemsApi<any>\n editCallback?: any\n deleteCallback?: any\n setPositionCallback?: any\n itemNameField?: string\n itemAvatarField?: string\n itemSubnameField?: string\n loading?: boolean\n hideMenu?: boolean\n big?: boolean\n hideSubname?: boolean\n truncateSubname?: boolean\n showAddress?: boolean\n}) {\n const [modalOpen, setModalOpen] = React.useState<boolean>(false)\n\n const hasUserPermission = useHasUserPermission()\n const navigate = useNavigate()\n const appState = useAppState()\n\n const avatar =\n itemAvatarField && getValue(item, itemAvatarField)\n ? appState.assetsApi.url +\n getValue(item, itemAvatarField) +\n `${big ? '?width=160&heigth=160' : '?width=80&heigth=80'}`\n : item.layer?.itemAvatarField &&\n item &&\n getValue(item, item.layer?.itemAvatarField) &&\n appState.assetsApi.url +\n getValue(item, item.layer?.itemAvatarField) +\n `${big ? '?width=160&heigth=160' : '?width=80&heigth=80'}`\n const title = itemNameField\n ? getValue(item, itemNameField)\n : item.layer?.itemNameField && item && getValue(item, item.layer?.itemNameField)\n const subtitle = itemSubnameField\n ? getValue(item, itemSubnameField)\n : item.layer?.itemSubnameField && item && getValue(item, item.layer?.itemSubnameField)\n\n const [address] = React.useState<string>('')\n\n const params = new URLSearchParams(window.location.search)\n\n const openDeleteModal = async (event: React.MouseEvent<HTMLElement>) => {\n setModalOpen(true)\n event.stopPropagation()\n }\n\n return (\n <>\n <div className='tw-flex tw-flex-row'>\n <div className={'tw-grow tw-max-w-[calc(100%-60px)] }'}>\n <div className='flex items-center'>\n {avatar && (\n <div className='tw-avatar'>\n <div\n className={`${big ? 'tw-w-20' : 'tw-w-10'} tw-inline tw-items-center tw-justify-center overflow-hidden`}\n >\n <img\n className={'tw-w-full tw-h-full tw-object-cover tw-rounded-full'}\n src={avatar}\n alt={item.name + ' logo'}\n />\n </div>\n </div>\n )}\n <div className={`${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`}>\n <div\n className={`${big ? 'xl:tw-text-3xl tw-text-2xl' : 'tw-text-xl'} tw-font-semibold tw-truncate`}\n >\n {title}\n </div>\n {showAddress && address && !hideSubname && (\n <div className={`tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`}>\n {address}\n </div>\n )}\n {subtitle && !hideSubname && (\n <div className={`tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`}>\n {subtitle}\n </div>\n )}\n </div>\n </div>\n </div>\n <div onClick={(e) => e.stopPropagation()} className={`${big ? 'tw-mt-5' : 'tw-mt-1'}`}>\n {(api?.deleteItem || item.layer?.api?.updateItem) &&\n (hasUserPermission(api?.collectionName!, 'delete', item) ||\n hasUserPermission(api?.collectionName!, 'update', item)) &&\n !hideMenu && (\n <div className='tw-dropdown tw-dropdown-bottom'>\n <label\n tabIndex={0}\n className='tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path d='M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z' />\n </svg>\n </label>\n <ul\n tabIndex={0}\n className='tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000'\n >\n {api?.updateItem &&\n hasUserPermission(api.collectionName!, 'update', item) &&\n editCallback && (\n <li>\n <a\n className='!tw-text-base-content tw-cursor-pointer'\n onClick={(e) =>\n item.layer?.customEditLink\n ? navigate(\n `${item.layer.customEditLink}${item.layer.customEditParameter ? `/${getValue(item, item.layer.customEditParameter)}${params && '?' + params}` : ''} `,\n )\n : editCallback(e)\n }\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path d='M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z' />\n </svg>\n </a>\n </li>\n )}\n {api?.updateItem &&\n hasUserPermission(api.collectionName!, 'update', item) &&\n setPositionCallback && (\n <li>\n <a\n className='!tw-text-base-content tw-cursor-pointer'\n onClick={setPositionCallback}\n >\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n className='tw-w-5 tw-h-5'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'></path>\n </svg>\n </a>\n </li>\n )}\n {api?.deleteItem &&\n hasUserPermission(api.collectionName!, 'delete', item) &&\n deleteCallback && (\n <li>\n <a className='tw-cursor-pointer !tw-text-error' onClick={openDeleteModal}>\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-sm'></span>\n ) : (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path\n fillRule='evenodd'\n d='M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z'\n clipRule='evenodd'\n />\n </svg>\n )}\n </a>\n </li>\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n <DialogModal\n isOpened={modalOpen}\n title='Are you sure?'\n showCloseButton={false}\n onClose={() => setModalOpen(false)}\n >\n <div onClick={(e) => e.stopPropagation()}>\n <span>\n Do you want to delete <b>{item.name}</b>?\n </span>\n <div className='tw-grid'>\n <div className='tw-flex tw-justify-between'>\n <label\n className='tw-btn tw-mt-4 tw-btn-error'\n onClick={(e) => {\n deleteCallback(e)\n setModalOpen(false)\n }}\n >\n Yes\n </label>\n <label className='tw-btn tw-mt-4' onClick={() => setModalOpen(false)}>\n No\n </label>\n </div>\n </div>\n </div>\n </DialogModal>\n </>\n )\n}\n","import { DateUserInfo } from './DateUserInfo'\nimport { StartEndView, TextView } from '../Map'\nimport { HeaderView } from '../Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport { Item } from '../../types'\nimport { useNavigate } from 'react-router-dom'\nimport { getValue } from '../../Utils/GetValue'\nimport useWindowDimensions from '../Map/hooks/useWindowDimension'\n\nexport const ItemCard = ({\n i,\n loading,\n url,\n parameterField,\n deleteCallback,\n}: {\n i: Item\n loading: boolean\n url: string\n parameterField: string\n deleteCallback: any\n}) => {\n const navigate = useNavigate()\n const windowDimensions = useWindowDimensions()\n\n return (\n <div\n className='tw-cursor-pointer tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-p-4 tw-mb-4 tw-h-fit'\n onClick={() => {\n const params = new URLSearchParams(window.location.search)\n if (windowDimensions.width < 786 && i.position)\n navigate('/' + getValue(i, parameterField) + `${params ? `?${params}` : ''}`)\n else navigate(url + getValue(i, parameterField) + `${params ? `?${params}` : ''}`)\n }}\n >\n <HeaderView\n loading={loading}\n item={i}\n api={i.layer?.api}\n itemAvatarField={i.layer?.itemAvatarField}\n itemNameField={i.layer?.itemNameField}\n itemSubnameField={i.layer?.itemSubnameField}\n editCallback={() => navigate('/edit-item/' + i.id)}\n deleteCallback={() => deleteCallback(i)}\n ></HeaderView>\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n {i.layer?.itemType.show_start_end && <StartEndView item={i}></StartEndView>}\n {i.layer?.itemType.show_text && (\n <TextView truncate item={i} itemTextField={i.layer?.itemTextField} />\n )}\n </div>\n <DateUserInfo item={i}></DateUserInfo>\n </div>\n )\n}\n","import * as L from 'leaflet'\nimport * as React from 'react'\n\nexport const Control = ({\n position,\n children,\n zIndex,\n absolute,\n}: {\n position: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight'\n children: React.ReactNode\n zIndex: string\n absolute: boolean\n}) => {\n const controlContainerRef = React.createRef<HTMLDivElement>()\n\n React.useEffect(() => {\n if (controlContainerRef.current !== null) {\n L.DomEvent.disableClickPropagation(controlContainerRef.current)\n L.DomEvent.disableScrollPropagation(controlContainerRef.current)\n }\n }, [controlContainerRef])\n\n return (\n <div\n ref={controlContainerRef}\n style={{ zIndex }}\n className={`${absolute && 'tw-absolute'} tw-z-[999] tw-flex-col ${position === 'topLeft' && 'tw-top-4 tw-left-4'} ${position === 'bottomLeft' && 'tw-bottom-4 tw-left-4'} ${position === 'topRight' && 'tw-bottom-4 tw-right-4'} ${position === 'bottomRight' && 'tw-bottom-4 tw-right-4'}`}\n >\n {children}\n </div>\n )\n}\n","import { useCallback, useEffect, useRef } from 'react'\n\nexport const useTimeout = (callback, delay) => {\n const callbackRef = useRef(callback)\n const timeoutRef = useRef<any>()\n\n useEffect(() => {\n callbackRef.current = callback\n }, [callback])\n\n const set = useCallback(() => {\n timeoutRef.current = setTimeout(() => callbackRef.current(), delay)\n }, [delay])\n\n const clear = useCallback(() => {\n timeoutRef.current && clearTimeout(timeoutRef.current)\n }, [])\n\n useEffect(() => {\n set()\n return clear\n }, [delay, set, clear])\n\n const reset = useCallback(() => {\n clear()\n set()\n }, [clear, set])\n\n return { reset, clear }\n}\n","import { useEffect } from 'react'\nimport { useTimeout } from './useTimeout'\n\nexport const useDebounce = (callback, delay, deps) => {\n const { reset, clear } = useTimeout(callback, delay)\n\n useEffect(reset, [...deps, reset])\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(clear, [])\n}\n","/*!\nCopyright (c) 2016 Dominik Moritz\n\nThis file is part of the leaflet locate control. It is licensed under the MIT license.\nYou can find the project at: https://github.com/domoritz/leaflet-locatecontrol\n*/\n(function (factory, window) {\n // see https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md#module-loaders\n // for details on how to structure a leaflet plugin.\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === \"function\" && define.amd) {\n define([\"leaflet\"], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === \"object\") {\n if (typeof window !== \"undefined\" && window.L) {\n module.exports = factory(L);\n } else {\n module.exports = factory(require(\"leaflet\"));\n }\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== \"undefined\" && window.L) {\n window.L.Control.Locate = factory(L);\n }\n})(function (L) {\n const LDomUtilApplyClassesMethod = (method, element, classNames) => {\n classNames = classNames.split(\" \");\n classNames.forEach(function (className) {\n L.DomUtil[method].call(this, element, className);\n });\n };\n\n const addClasses = (el, names) => LDomUtilApplyClassesMethod(\"addClass\", el, names);\n const removeClasses = (el, names) => LDomUtilApplyClassesMethod(\"removeClass\", el, names);\n\n /**\n * Compatible with L.Circle but a true marker instead of a path\n */\n const LocationMarker = L.Marker.extend({\n initialize(latlng, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this.createIcon();\n },\n\n /**\n * Create a styled circle location marker\n */\n createIcon() {\n const opt = this.options;\n\n let style = \"\";\n\n if (opt.color !== undefined) {\n style += `stroke:${opt.color};`;\n }\n if (opt.weight !== undefined) {\n style += `stroke-width:${opt.weight};`;\n }\n if (opt.fillColor !== undefined) {\n style += `fill:${opt.fillColor};`;\n }\n if (opt.fillOpacity !== undefined) {\n style += `fill-opacity:${opt.fillOpacity};`;\n }\n if (opt.opacity !== undefined) {\n style += `opacity:${opt.opacity};`;\n }\n\n const icon = this._getIconSVG(opt, style);\n\n this._locationIcon = L.divIcon({\n className: icon.className,\n html: icon.svg,\n iconSize: [icon.w, icon.h]\n });\n\n this.setIcon(this._locationIcon);\n },\n\n /**\n * Return the raw svg for the shape\n *\n * Split so can be easily overridden\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.weight;\n const s = r + w;\n const s2 = s * 2;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${s2}\" height=\"${s2}\" version=\"1.1\" viewBox=\"-${s} -${s} ${s2} ${s2}\">` +\n '<circle r=\"' +\n r +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-location\",\n svg,\n w: s2,\n h: s2\n };\n },\n\n setStyle(style) {\n L.Util.setOptions(this, style);\n this.createIcon();\n }\n });\n\n const CompassMarker = LocationMarker.extend({\n initialize(latlng, heading, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this._heading = heading;\n this.createIcon();\n },\n\n setHeading(heading) {\n this._heading = heading;\n },\n\n /**\n * Create a styled arrow compass marker\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.width + options.weight;\n const h = (r + options.depth + options.weight) * 2;\n const path = `M0,0 l${options.width / 2},${options.depth} l-${w},0 z`;\n const svgstyle = `transform: rotate(${this._heading}deg)`;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${w}\" height=\"${h}\" version=\"1.1\" viewBox=\"-${w / 2} 0 ${w} ${h}\" style=\"${svgstyle}\">` +\n '<path d=\"' +\n path +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-heading\",\n svg,\n w,\n h\n };\n }\n });\n\n const LocateControl = L.Control.extend({\n options: {\n /** Position of the control */\n position: \"topleft\",\n /** The layer that the user's location should be drawn on. By default creates a new layer. */\n layer: undefined,\n /**\n * Automatically sets the map view (zoom and pan) to the user's location as it updates.\n * While the map is following the user's location, the control is in the `following` state,\n * which changes the style of the control and the circle marker.\n *\n * Possible values:\n * - false: never updates the map view when location changes.\n * - 'once': set the view when the location is first determined\n * - 'always': always updates the map view when location changes.\n * The map view follows the user's location.\n * - 'untilPan': like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n * - 'untilPanOrZoom': (default) like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n */\n setView: \"untilPanOrZoom\",\n /** Keep the current map zoom level when setting the view and only pan. */\n keepCurrentZoomLevel: false,\n /** After activating the plugin by clicking on the icon, zoom to the selected zoom level, even when keepCurrentZoomLevel is true. Set to 'false' to disable this feature. */\n initialZoomLevel: false,\n /**\n * This callback can be used to override the viewport tracking\n * This function should return a LatLngBounds object.\n *\n * For example to extend the viewport to ensure that a particular LatLng is visible:\n *\n * getLocationBounds: function(locationEvent) {\n * return locationEvent.bounds.extend([-33.873085, 151.219273]);\n * },\n */\n getLocationBounds(locationEvent) {\n return locationEvent.bounds;\n },\n /** Smooth pan and zoom to the location of the marker. Only works in Leaflet 1.0+. */\n flyTo: false,\n /**\n * The user location can be inside and outside the current view when the user clicks on the\n * control that is already active. Both cases can be configures separately.\n * Possible values are:\n * - 'setView': zoom and pan to the current location\n * - 'stop': stop locating and remove the location marker\n */\n clickBehavior: {\n /** What should happen if the user clicks on the control while the location is within the current view. */\n inView: \"stop\",\n /** What should happen if the user clicks on the control while the location is outside the current view. */\n outOfView: \"setView\",\n /**\n * What should happen if the user clicks on the control while the location is within the current view\n * and we could be following but are not. Defaults to a special value which inherits from 'inView';\n */\n inViewNotFollowing: \"inView\"\n },\n /**\n * If set, save the map bounds just before centering to the user's\n * location. When control is disabled, set the view back to the\n * bounds that were saved.\n */\n returnToPrevBounds: false,\n /**\n * Keep a cache of the location after the user deactivates the control. If set to false, the user has to wait\n * until the locate API returns a new location before they see where they are again.\n */\n cacheLocation: true,\n /** If set, a circle that shows the location accuracy is drawn. */\n drawCircle: true,\n /** If set, the marker at the users' location is drawn. */\n drawMarker: true,\n /** If set and supported then show the compass heading */\n showCompass: true,\n /** The class to be used to create the marker. For example L.CircleMarker or L.Marker */\n markerClass: LocationMarker,\n /** The class us be used to create the compass bearing arrow */\n compassClass: CompassMarker,\n /** Accuracy circle style properties. NOTE these styles should match the css animations styles */\n circleStyle: {\n className: \"leaflet-control-locate-circle\",\n color: \"#136AEC\",\n fillColor: \"#136AEC\",\n fillOpacity: 0.15,\n weight: 0\n },\n /** Inner marker style properties. Only works if your marker class supports `setStyle`. */\n markerStyle: {\n className: \"leaflet-control-locate-marker\",\n color: \"#fff\",\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 3,\n opacity: 1,\n radius: 9\n },\n /** Compass */\n compassStyle: {\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 0,\n color: \"#fff\",\n opacity: 1,\n radius: 9, // How far is the arrow is from the center of of the marker\n width: 9, // Width of the arrow\n depth: 6 // Length of the arrow\n },\n /**\n * Changes to accuracy circle and inner marker while following.\n * It is only necessary to provide the properties that should change.\n */\n followCircleStyle: {},\n followMarkerStyle: {\n // color: '#FFA500',\n // fillColor: '#FFB000'\n },\n followCompassStyle: {},\n /** The CSS class for the icon. For example fa-location-arrow or fa-map-marker */\n icon: \"leaflet-control-locate-location-arrow\",\n iconLoading: \"leaflet-control-locate-spinner\",\n /** The element to be created for icons. For example span or i */\n iconElementTag: \"span\",\n /** The element to be created for the text. For example small or span */\n textElementTag: \"small\",\n /** Padding around the accuracy circle. */\n circlePadding: [0, 0],\n /** Use metric units. */\n metric: true,\n /**\n * This callback can be used in case you would like to override button creation behavior.\n * This is useful for DOM manipulation frameworks such as angular etc.\n * This function should return an object with HtmlElement for the button (link property) and the icon (icon property).\n */\n createButtonCallback(container, options) {\n const link = L.DomUtil.create(\"a\", \"leaflet-bar-part leaflet-bar-part-single\", container);\n link.title = options.strings.title;\n link.href = \"#\";\n link.setAttribute(\"role\", \"button\");\n const icon = L.DomUtil.create(options.iconElementTag, options.icon, link);\n\n if (options.strings.text !== undefined) {\n const text = L.DomUtil.create(options.textElementTag, \"leaflet-locate-text\", link);\n text.textContent = options.strings.text;\n link.classList.add(\"leaflet-locate-text-active\");\n link.parentNode.style.display = \"flex\";\n if (options.icon.length > 0) {\n icon.classList.add(\"leaflet-locate-icon\");\n }\n }\n\n return { link, icon };\n },\n /** This event is called in case of any location error that is not a time out error. */\n onLocationError(err, control) {\n alert(err.message);\n },\n /**\n * This event is called when the user's location is outside the bounds set on the map.\n * The event is called repeatedly when the location changes.\n */\n onLocationOutsideMapBounds(control) {\n control.stop();\n alert(control.options.strings.outsideMapBoundsMsg);\n },\n /** Display a pop-up when the user click on the inner marker. */\n showPopup: true,\n strings: {\n title: \"Show me where I am\",\n metersUnit: \"meters\",\n feetUnit: \"feet\",\n popup: \"You are within {distance} {unit} from this point\",\n outsideMapBoundsMsg: \"You seem located outside the boundaries of the map\"\n },\n /** The default options passed to leaflets locate method. */\n locateOptions: {\n maxZoom: Infinity,\n watch: true, // if you overwrite this, visualization cannot be updated\n setView: false // have to set this to false because we have to\n // do setView manually\n }\n },\n\n initialize(options) {\n // set default options if nothing is set (merge one step deep)\n for (const i in options) {\n if (typeof this.options[i] === \"object\") {\n L.extend(this.options[i], options[i]);\n } else {\n this.options[i] = options[i];\n }\n }\n\n // extend the follow marker style and circle from the normal style\n this.options.followMarkerStyle = L.extend({}, this.options.markerStyle, this.options.followMarkerStyle);\n this.options.followCircleStyle = L.extend({}, this.options.circleStyle, this.options.followCircleStyle);\n this.options.followCompassStyle = L.extend({}, this.options.compassStyle, this.options.followCompassStyle);\n },\n\n /**\n * Add control to map. Returns the container for the control.\n */\n onAdd(map) {\n const container = L.DomUtil.create(\"div\", \"leaflet-control-locate leaflet-bar leaflet-control\");\n this._container = container;\n this._map = map;\n this._layer = this.options.layer || new L.LayerGroup();\n this._layer.addTo(map);\n this._event = undefined;\n this._compassHeading = null;\n this._prevBounds = null;\n\n const linkAndIcon = this.options.createButtonCallback(container, this.options);\n this._link = linkAndIcon.link;\n this._icon = linkAndIcon.icon;\n\n L.DomEvent.on(\n this._link,\n \"click\",\n function (ev) {\n L.DomEvent.stopPropagation(ev);\n L.DomEvent.preventDefault(ev);\n this._onClick();\n },\n this\n ).on(this._link, \"dblclick\", L.DomEvent.stopPropagation);\n\n this._resetVariables();\n\n this._map.on(\"unload\", this._unload, this);\n\n return container;\n },\n\n /**\n * This method is called when the user clicks on the control.\n */\n _onClick() {\n this._justClicked = true;\n const wasFollowing = this._isFollowing();\n this._userPanned = false;\n this._userZoomed = false;\n\n if (this._active && !this._event) {\n // click while requesting\n this.stop();\n } else if (this._active) {\n const behaviors = this.options.clickBehavior;\n let behavior = behaviors.outOfView;\n if (this._map.getBounds().contains(this._event.latlng)) {\n behavior = wasFollowing ? behaviors.inView : behaviors.inViewNotFollowing;\n }\n\n // Allow inheriting from another behavior\n if (behaviors[behavior]) {\n behavior = behaviors[behavior];\n }\n\n switch (behavior) {\n case \"setView\":\n this.setView();\n break;\n case \"stop\":\n this.stop();\n if (this.options.returnToPrevBounds) {\n const f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n f.bind(this._map)(this._prevBounds);\n }\n break;\n }\n } else {\n if (this.options.returnToPrevBounds) {\n this._prevBounds = this._map.getBounds();\n }\n this.start();\n }\n\n this._updateContainerStyle();\n },\n\n /**\n * Starts the plugin:\n * - activates the engine\n * - draws the marker (if coordinates available)\n */\n start() {\n this._activate();\n\n if (this._event) {\n this._drawMarker(this._map);\n\n // if we already have a location but the user clicked on the control\n if (this.options.setView) {\n this.setView();\n }\n }\n this._updateContainerStyle();\n },\n\n /**\n * Stops the plugin:\n * - deactivates the engine\n * - reinitializes the button\n * - removes the marker\n */\n stop() {\n this._deactivate();\n\n this._cleanClasses();\n this._resetVariables();\n\n this._removeMarker();\n },\n\n /**\n * Keep the control active but stop following the location\n */\n stopFollowing() {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n },\n\n /**\n * This method launches the location engine.\n * It is called before the marker is updated,\n * event if it does not mean that the event will be ready.\n *\n * Override it if you want to add more functionalities.\n * It should set the this._active to true and do nothing if\n * this._active is true.\n */\n _activate() {\n if (this._active || !this._map) {\n return;\n }\n\n this._map.locate(this.options.locateOptions);\n this._map.fire(\"locateactivate\", this);\n this._active = true;\n\n // bind event listeners\n this._map.on(\"locationfound\", this._onLocationFound, this);\n this._map.on(\"locationerror\", this._onLocationError, this);\n this._map.on(\"dragstart\", this._onDrag, this);\n this._map.on(\"zoomstart\", this._onZoom, this);\n this._map.on(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n const oriAbs = \"ondeviceorientationabsolute\" in window;\n if (oriAbs || \"ondeviceorientation\" in window) {\n const _this = this;\n const deviceorientation = function () {\n L.DomEvent.on(window, oriAbs ? \"deviceorientationabsolute\" : \"deviceorientation\", _this._onDeviceOrientation, _this);\n };\n if (DeviceOrientationEvent && typeof DeviceOrientationEvent.requestPermission === \"function\") {\n DeviceOrientationEvent.requestPermission().then(function (permissionState) {\n if (permissionState === \"granted\") {\n deviceorientation();\n }\n });\n } else {\n deviceorientation();\n }\n }\n }\n },\n\n /**\n * Called to stop the location engine.\n *\n * Override it to shutdown any functionalities you added on start.\n */\n _deactivate() {\n if (!this._active || !this._map) {\n return;\n }\n\n this._map.stopLocate();\n this._map.fire(\"locatedeactivate\", this);\n this._active = false;\n\n if (!this.options.cacheLocation) {\n this._event = undefined;\n }\n\n // unbind event listeners\n this._map.off(\"locationfound\", this._onLocationFound, this);\n this._map.off(\"locationerror\", this._onLocationError, this);\n this._map.off(\"dragstart\", this._onDrag, this);\n this._map.off(\"zoomstart\", this._onZoom, this);\n this._map.off(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n this._compassHeading = null;\n if (\"ondeviceorientationabsolute\" in window) {\n L.DomEvent.off(window, \"deviceorientationabsolute\", this._onDeviceOrientation, this);\n } else if (\"ondeviceorientation\" in window) {\n L.DomEvent.off(window, \"deviceorientation\", this._onDeviceOrientation, this);\n }\n }\n },\n\n /**\n * Zoom (unless we should keep the zoom level) and an to the current view.\n */\n setView() {\n this._drawMarker();\n if (this._isOutsideMapBounds()) {\n this._event = undefined; // clear the current location so we can get back into the bounds\n this.options.onLocationOutsideMapBounds(this);\n } else {\n if (this._justClicked && this.options.initialZoomLevel !== false) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.setView;\n f.bind(this._map)([this._event.latitude, this._event.longitude], this.options.initialZoomLevel);\n } else if (this.options.keepCurrentZoomLevel) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.panTo;\n f.bind(this._map)([this._event.latitude, this._event.longitude]);\n } else {\n var f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n // Ignore zoom events while setting the viewport as these would stop following\n this._ignoreEvent = true;\n f.bind(this._map)(this.options.getLocationBounds(this._event), {\n padding: this.options.circlePadding,\n maxZoom: this.options.initialZoomLevel || this.options.locateOptions.maxZoom\n });\n L.Util.requestAnimFrame(function () {\n // Wait until after the next animFrame because the flyTo can be async\n this._ignoreEvent = false;\n }, this);\n }\n }\n },\n\n /**\n *\n */\n _drawCompass() {\n if (!this._event) {\n return;\n }\n\n const latlng = this._event.latlng;\n\n if (this.options.showCompass && latlng && this._compassHeading !== null) {\n const cStyle = this._isFollowing() ? this.options.followCompassStyle : this.options.compassStyle;\n if (!this._compass) {\n this._compass = new this.options.compassClass(latlng, this._compassHeading, cStyle).addTo(this._layer);\n } else {\n this._compass.setLatLng(latlng);\n this._compass.setHeading(this._compassHeading);\n // If the compassClass can be updated with setStyle, update it.\n if (this._compass.setStyle) {\n this._compass.setStyle(cStyle);\n }\n }\n //\n }\n if (this._compass && (!this.options.showCompass || this._compassHeading === null)) {\n this._compass.removeFrom(this._layer);\n this._compass = null;\n }\n },\n\n /**\n * Draw the marker and accuracy circle on the map.\n *\n * Uses the event retrieved from onLocationFound from the map.\n */\n _drawMarker() {\n if (this._event.accuracy === undefined) {\n this._event.accuracy = 0;\n }\n\n const radius = this._event.accuracy;\n const latlng = this._event.latlng;\n\n // circle with the radius of the location's accuracy\n if (this.options.drawCircle) {\n const style = this._isFollowing() ? this.options.followCircleStyle : this.options.circleStyle;\n\n if (!this._circle) {\n this._circle = L.circle(latlng, radius, style).addTo(this._layer);\n } else {\n this._circle.setLatLng(latlng).setRadius(radius).setStyle(style);\n }\n }\n\n let distance;\n let unit;\n if (this.options.metric) {\n distance = radius.toFixed(0);\n unit = this.options.strings.metersUnit;\n } else {\n distance = (radius * 3.2808399).toFixed(0);\n unit = this.options.strings.feetUnit;\n }\n\n // small inner marker\n if (this.options.drawMarker) {\n const mStyle = this._isFollowing() ? this.options.followMarkerStyle : this.options.markerStyle;\n if (!this._marker) {\n this._marker = new this.options.markerClass(latlng, mStyle).addTo(this._layer);\n } else {\n this._marker.setLatLng(latlng);\n // If the markerClass can be updated with setStyle, update it.\n if (this._marker.setStyle) {\n this._marker.setStyle(mStyle);\n }\n }\n }\n\n this._drawCompass();\n\n const t = this.options.strings.popup;\n function getPopupText() {\n if (typeof t === \"string\") {\n return L.Util.template(t, { distance, unit });\n } else if (typeof t === \"function\") {\n return t({ distance, unit });\n } else {\n return t;\n }\n }\n if (this.options.showPopup && t && this._marker) {\n this._marker.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n if (this.options.showPopup && t && this._compass) {\n this._compass.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n },\n\n /**\n * Remove the marker from map.\n */\n _removeMarker() {\n this._layer.clearLayers();\n this._marker = undefined;\n this._circle = undefined;\n },\n\n /**\n * Unload the plugin and all event listeners.\n * Kind of the opposite of onAdd.\n */\n _unload() {\n this.stop();\n this._map.off(\"unload\", this._unload, this);\n },\n\n /**\n * Sets the compass heading\n */\n _setCompassHeading(angle) {\n if (!isNaN(parseFloat(angle)) && isFinite(angle)) {\n angle = Math.round(angle);\n\n this._compassHeading = angle;\n L.Util.requestAnimFrame(this._drawCompass, this);\n } else {\n this._compassHeading = null;\n }\n },\n\n /**\n * If the compass fails calibration just fail safely and remove the compass\n */\n _onCompassNeedsCalibration() {\n this._setCompassHeading();\n },\n\n /**\n * Process and normalise compass events\n */\n _onDeviceOrientation(e) {\n if (!this._active) {\n return;\n }\n\n if (e.webkitCompassHeading) {\n // iOS\n this._setCompassHeading(e.webkitCompassHeading);\n } else if (e.absolute && e.alpha) {\n // Android\n this._setCompassHeading(360 - e.alpha);\n }\n },\n\n /**\n * Calls deactivate and dispatches an error.\n */\n _onLocationError(err) {\n // ignore time out error if the location is watched\n if (err.code == 3 && this.options.locateOptions.watch) {\n return;\n }\n\n this.stop();\n this.options.onLocationError(err, this);\n },\n\n /**\n * Stores the received event and updates the marker.\n */\n _onLocationFound(e) {\n // no need to do anything if the location has not changed\n if (this._event && this._event.latlng.lat === e.latlng.lat && this._event.latlng.lng === e.latlng.lng && this._event.accuracy === e.accuracy) {\n return;\n }\n\n if (!this._active) {\n // we may have a stray event\n return;\n }\n\n this._event = e;\n\n this._drawMarker();\n this._updateContainerStyle();\n\n switch (this.options.setView) {\n case \"once\":\n if (this._justClicked) {\n this.setView();\n }\n break;\n case \"untilPan\":\n if (!this._userPanned) {\n this.setView();\n }\n break;\n case \"untilPanOrZoom\":\n if (!this._userPanned && !this._userZoomed) {\n this.setView();\n }\n break;\n case \"always\":\n this.setView();\n break;\n case false:\n // don't set the view\n break;\n }\n\n this._justClicked = false;\n },\n\n /**\n * When the user drags. Need a separate event so we can bind and unbind event listeners.\n */\n _onDrag() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * When the user zooms. Need a separate event so we can bind and unbind event listeners.\n */\n _onZoom() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userZoomed = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * After a zoom ends update the compass and handle sideways zooms\n */\n _onZoomEnd() {\n if (this._event) {\n this._drawCompass();\n }\n\n if (this._event && !this._ignoreEvent) {\n // If we have zoomed in and out and ended up sideways treat it as a pan\n if (this._marker && !this._map.getBounds().pad(-0.3).contains(this._marker.getLatLng())) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n }\n },\n\n /**\n * Compute whether the map is following the user location with pan and zoom.\n */\n _isFollowing() {\n if (!this._active) {\n return false;\n }\n\n if (this.options.setView === \"always\") {\n return true;\n } else if (this.options.setView === \"untilPan\") {\n return !this._userPanned;\n } else if (this.options.setView === \"untilPanOrZoom\") {\n return !this._userPanned && !this._userZoomed;\n }\n },\n\n /**\n * Check if location is in map bounds\n */\n _isOutsideMapBounds() {\n if (this._event === undefined) {\n return false;\n }\n return this._map.options.maxBounds && !this._map.options.maxBounds.contains(this._event.latlng);\n },\n\n /**\n * Toggles button class between following and active.\n */\n _updateContainerStyle() {\n if (!this._container) {\n return;\n }\n\n if (this._active && !this._event) {\n // active but don't have a location yet\n this._setClasses(\"requesting\");\n } else if (this._isFollowing()) {\n this._setClasses(\"following\");\n } else if (this._active) {\n this._setClasses(\"active\");\n } else {\n this._cleanClasses();\n }\n },\n\n /**\n * Sets the CSS classes for the state.\n */\n _setClasses(state) {\n if (state == \"requesting\") {\n removeClasses(this._container, \"active following\");\n addClasses(this._container, \"requesting\");\n\n removeClasses(this._icon, this.options.icon);\n addClasses(this._icon, this.options.iconLoading);\n } else if (state == \"active\") {\n removeClasses(this._container, \"requesting following\");\n addClasses(this._container, \"active\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n } else if (state == \"following\") {\n removeClasses(this._container, \"requesting\");\n addClasses(this._container, \"active following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n }\n },\n\n /**\n * Removes all classes from button.\n */\n _cleanClasses() {\n L.DomUtil.removeClass(this._container, \"requesting\");\n L.DomUtil.removeClass(this._container, \"active\");\n L.DomUtil.removeClass(this._container, \"following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n },\n\n /**\n * Reinitializes state variables.\n */\n _resetVariables() {\n // whether locate is active or not\n this._active = false;\n\n // true if the control was clicked for the first time\n // we need this so we can pan and zoom once we have the location\n this._justClicked = false;\n\n // true if the user has panned the map after clicking the control\n this._userPanned = false;\n\n // true if the user has zoomed the map after clicking the control\n this._userZoomed = false;\n }\n });\n\n L.control.locate = (options) => new L.Control.Locate(options);\n\n return LocateControl;\n}, window);\n","import * as L from 'leaflet'\nimport { useMap, useMapEvents } from 'react-leaflet'\nimport 'leaflet.locatecontrol'\n\nimport 'leaflet.locatecontrol/dist/L.Control.Locate.css'\nimport { useEffect, useRef, useState } from 'react'\n\n// Converts leaflet.locatecontrol to a React Component\nexport const LocateControl = () => {\n const map = useMap()\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const [lc, setLc] = useState<any>(null)\n const [active, setActive] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n\n useEffect(() => {\n if (!init.current) {\n // @ts-ignore\n setLc(L.control.locate().addTo(map))\n init.current = true\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useMapEvents({\n locationfound: () => {\n setLoading(false)\n setActive(true)\n },\n })\n\n return (\n <>\n <div className='tw-card tw-h-12 tw-w-12 tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300 tw-ml-2'>\n <div\n className='tw-card-body tw-card tw-p-2 tw-h-10 tw-w-10 '\n onClick={() => {\n if (active) {\n lc.stop()\n setActive(false)\n } else {\n lc.start()\n setLoading(true)\n }\n }}\n >\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-md tw-mt-1'></span>\n ) : (\n <svg\n fill={`${active ? '#fc8702' : 'currentColor'}`}\n viewBox='0 0 32 32'\n version='1.1'\n xmlns='http://www.w3.org/2000/svg'\n className='tw-mt-1 tw-p-[1px]'\n >\n <path d='M30 14.75h-2.824c-0.608-5.219-4.707-9.318-9.874-9.921l-0.053-0.005v-2.824c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.824c-5.219 0.608-9.318 4.707-9.921 9.874l-0.005 0.053h-2.824c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.824c0.608 5.219 4.707 9.318 9.874 9.921l0.053 0.005v2.824c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.824c5.219-0.608 9.318-4.707 9.921-9.874l0.005-0.053h2.824c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0zM17.25 24.624v-2.624c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.624c-3.821-0.57-6.803-3.553-7.368-7.326l-0.006-0.048h2.624c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0h-2.624c0.57-3.821 3.553-6.804 7.326-7.368l0.048-0.006v2.624c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.624c3.821 0.57 6.803 3.553 7.368 7.326l0.006 0.048h-2.624c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.624c-0.571 3.821-3.553 6.803-7.326 7.368l-0.048 0.006z'></path>\n </svg>\n )}\n </div>\n </div>\n </>\n )\n}\n","import * as L from 'leaflet'\n\nconst createSvg = (shape: string, markerColor: string, borderColor: string) => {\n const svgMap = {\n circle:\n '<svg width=\"32\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.5 2.746c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.439-17.863.056-.08a15.422 15.422 0 002.343-6.112c.123-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307\" fill=\"' +\n markerColor +\n '\" /><path d=\"M17.488 2.748c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.44-17.863.055-.08a15.422 15.422 0 002.343-6.112c.124-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307m0 1.071c7.68 0 13.929 6.386 13.929 14.236 0 .685-.064 1.423-.193 2.258-.325 2.075-1.059 3.99-2.164 5.667l-.055.078-11.557 16.595L6.032 26.14l-.12-.174a14.256 14.256 0 01-2.105-5.29 14.698 14.698 0 01-.247-2.62c0-7.851 6.249-14.237 13.928-14.237\" fill=\"' +\n borderColor +\n '\" opacity=\"1\" /></svg>',\n square:\n '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M28.205 3.217H6.777c-2.367 0-4.286 1.87-4.286 4.179v19.847c0 2.308 1.919 4.179 4.286 4.179h5.357l5.337 13.58 5.377-13.58h5.357c2.366 0 4.285-1.87 4.285-4.179V7.396c0-2.308-1.919-4.179-4.285-4.179\" fill=\"' +\n markerColor +\n '\" /><g opacity=\"1\" transform=\"matrix(1.0714 0 0 -1.0714 -233.22 146.783)\"><path d=\"M244 134h-20c-2.209 0-4-1.746-4-3.9v-18.525c0-2.154 1.791-3.9 4-3.9h5L233.982 95 239 107.675h5c2.209 0 4 1.746 4 3.9V130.1c0 2.154-1.791 3.9-4 3.9m0-1c1.654 0 3-1.301 3-2.9v-18.525c0-1.599-1.346-2.9-3-2.9h-5.68l-.25-.632-4.084-10.318-4.055 10.316-.249.634H224c-1.654 0-3 1.301-3 2.9V130.1c0 1.599 1.346 2.9 3 2.9h20\" fill=\"' +\n borderColor +\n '\" /></g></svg>',\n star:\n '<svg width=\"34\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M32.92 16.93l-3.525-3.525V8.419a1.983 1.983 0 00-1.983-1.982h-4.985L18.9 2.91a1.984 1.984 0 00-2.803 0l-3.524 3.526H7.588a1.983 1.983 0 00-1.982 1.982v4.986L2.081 16.93a1.982 1.982 0 000 2.803l3.525 3.526v4.984c0 1.096.888 1.983 1.982 1.983h4.986L17.457 45l4.97-14.773h4.985a1.983 1.983 0 001.983-1.983V23.26l3.525-3.526a1.982 1.982 0 000-2.803\" fill=\"' +\n markerColor +\n '\" /><g opacity=\".15\" transform=\"matrix(1.0667 0 0 -1.0667 -347.3 97.26)\"><path d=\"M342 89c-.476 0-.951-.181-1.314-.544l-3.305-3.305h-4.673a1.858 1.858 0 01-1.859-1.858v-4.674l-3.305-3.305a1.857 1.857 0 010-2.627l3.305-3.305v-4.674a1.86 1.86 0 011.859-1.859h4.673L341.959 49l4.659 13.849h4.674a1.86 1.86 0 011.859 1.859v4.674l3.305 3.305a1.858 1.858 0 010 2.627l-3.305 3.305v4.674a1.859 1.859 0 01-1.859 1.858h-4.674l-3.304 3.305A1.851 1.851 0 01342 89m0-1a.853.853 0 00.607-.251l3.304-3.305.293-.293h5.088a.86.86 0 00.859-.858v-5.088l3.598-3.598A.852.852 0 00356 74a.85.85 0 00-.251-.606l-3.598-3.598v-5.088a.86.86 0 00-.859-.859h-5.393l-.229-.681-3.702-11.006-3.637 11.001-.227.686h-5.396a.86.86 0 00-.859.859v5.088l-3.598 3.598c-.162.162-.251.377-.251.606s.089.445.251.607l3.598 3.598v5.088a.86.86 0 00.859.858h5.087l3.598 3.598A.853.853 0 00342 88\" fill=\"#231f20\" /></g></svg>',\n penta:\n '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.872 17.35L9.679 2.993h15.615L33.1 17.35 17.486 44.992z\" fill=\"' +\n markerColor +\n '\" /><g opacity=\".15\" transform=\"matrix(1.0769 0 0 -1.0769 -272.731 48.23)\"><path d=\"M276.75 42h-14.5L255 28.668 269.5 3 284 28.668zm-.595-1l6.701-12.323L269.5 5.033l-13.356 23.644L262.845 41z\" fill=\"#231f20\" /></g></svg>',\n }\n return svgMap[shape]\n}\n\nconst addIcon = (icon: string) => {\n switch (icon) {\n case 'point':\n return '<svg fill=\"#fff\" class=\"circle-icon\" width=\"13\"xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z\"/></svg>'\n case 'calendar':\n return '<svg fill=\"#fff\" class=\"calendar-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d=\"M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM64 304C64 312.8 71.16 320 80 320H112C120.8 320 128 312.8 128 304V272C128 263.2 120.8 256 112 256H80C71.16 256 64 263.2 64 272V304zM192 304C192 312.8 199.2 320 208 320H240C248.8 320 256 312.8 256 304V272C256 263.2 248.8 256 240 256H208C199.2 256 192 263.2 192 272V304zM336 256C327.2 256 320 263.2 320 272V304C320 312.8 327.2 320 336 320H368C376.8 320 384 312.8 384 304V272C384 263.2 376.8 256 368 256H336zM64 432C64 440.8 71.16 448 80 448H112C120.8 448 128 440.8 128 432V400C128 391.2 120.8 384 112 384H80C71.16 384 64 391.2 64 400V432zM208 384C199.2 384 192 391.2 192 400V432C192 440.8 199.2 448 208 448H240C248.8 448 256 440.8 256 432V400C256 391.2 248.8 384 240 384H208zM320 432C320 440.8 327.2 448 336 448H368C376.8 448 384 440.8 384 432V400C384 391.2 376.8 384 368 384H336C327.2 384 320 391.2 320 400V432z\"/></svg>'\n case 'user':\n return '<svg fill=\"#fff\" class=\"user-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"1.5em\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d=\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"/></svg>'\n case 'fire':\n return '<svg fill=\"#fff\" class=\"fire-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 19.534 26.387\"><path d=\"M7.15 26.05C2.894 24.876.006 21.028.006 16.53c0-4.036 2.718-8.378 4.38-6.999.289.24.383.993.383 3.074 0 3.3.46 4.508 1.997 5.237 2.512 1.192 5.206-1.18 4.506-3.969-.097-.386-.99-1.562-1.986-2.614C7.04 8.887 6.583 8.026 6.583 6.176c0-2.333 2.02-6.182 3.244-6.182.59 0 1.292.98 1.292 1.805 0 1.227.951 2.596 3.727 5.362 3.655 3.642 4.493 5.216 4.671 8.776.143 2.847-.365 4.593-1.93 6.644-2.332 3.054-6.69 4.503-10.437 3.47z\"/></svg>'\n case 'tree':\n return '<svg fill=\"#fff\" class=\"tree-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"2em\" xml:space=\"preserve\" viewBox=\"0 0 24 24\"><path d=\"M11 21v-4.3c-.5.2-1 .3-1.5.3C7 17 5 15 5 12.5c0-1.3.5-2.4 1.4-3.2-.3-.6-.4-1.2-.4-1.8C6 5 8 3 10.5 3c1.6 0 2.9.8 3.8 2h.2c3 0 5.5 2.5 5.5 5.5S17.5 16 14.5 16c-.5 0-1-.1-1.5-.2V21h-2z\"/><path fill=\"none\" d=\"M0 0h24v24H0z\"/></svg>'\n case 'music':\n return '<svg fill=\"#fff\" class=\"music-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"1.4em\" viewBox=\"0 0 512 512\"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d=\"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"/></svg>'\n case 'drum':\n return '<svg class=\"drum-icon\" stroke=\"#fff\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 32 32\" height=\"1.8em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 27.1875 5.09375 L 16.125 10.34375 C 15.804688 10.128906 15.414063 10 15 10 C 13.894531 10 13 10.894531 13 12 C 13 13.105469 13.894531 14 15 14 C 16.050781 14 16.921875 13.1875 17 12.15625 L 23.0625 9.28125 C 24.878906 10.046875 26 11.046875 26 12 C 26 13.886719 21.722656 16 16 16 C 10.277344 16 6 13.886719 6 12 C 6 10.113281 10.277344 8 16 8 C 16.171875 8 16.328125 7.996094 16.5 8 L 20.03125 6.34375 C 18.777344 6.132813 17.433594 6 16 6 C 9.160156 6 4 8.578125 4 12 L 4 22 C 4 22.988281 4.445313 23.894531 5.125 24.625 C 5.804688 25.355469 6.730469 25.945313 7.8125 26.4375 C 9.976563 27.421875 12.839844 28 16 28 C 19.160156 28 22.023438 27.421875 24.1875 26.4375 C 25.269531 25.945313 26.195313 25.355469 26.875 24.625 C 27.554688 23.894531 28 22.988281 28 22 L 28 12 C 28 10.523438 27.023438 9.210938 25.375 8.1875 L 28.03125 6.90625 Z M 6 15.40625 C 7.015625 16.171875 8.378906 16.800781 10 17.25 L 10 25.15625 C 9.5 25 9.042969 24.816406 8.625 24.625 C 7.71875 24.210938 7.027344 23.714844 6.59375 23.25 C 6.160156 22.785156 6 22.394531 6 22 Z M 26 15.40625 L 26 22 C 26 22.394531 25.839844 22.785156 25.40625 23.25 C 24.972656 23.714844 24.28125 24.210938 23.375 24.625 C 22.957031 24.816406 22.5 25 22 25.15625 L 22 17.25 C 23.621094 16.800781 24.984375 16.171875 26 15.40625 Z M 12 17.6875 C 13.242188 17.894531 14.582031 18 16 18 C 17.417969 18 18.757813 17.894531 20 17.6875 L 20 25.625 C 18.769531 25.855469 17.421875 26 16 26 C 14.578125 26 13.230469 25.855469 12 25.625 Z\"></path></svg>'\n case 'quest':\n return '<svg class=\"quest-icon\" viewBox=\"0 0 4.69 5.987\" fill=\"#fff\" height=\"1.3em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.395 0 0 .898v2.096C0 4.79 2.395 5.987 2.395 5.987S4.79 4.79 4.79 2.994V.898zm.026 1.262c.518 0 1.07.404 1.07.937 0 .707-.764.718-.764.98v.035c0 .08-.065.146-.146.146H2.14a.146.146 0 0 1-.146-.146v-.06c0-.377.285-.528.501-.649.186-.104.3-.174.3-.312 0-.182-.232-.303-.42-.303-.239 0-.352.11-.505.302a.147.147 0 0 1-.203.025l-.263-.2a.147.147 0 0 1-.032-.2c.248-.355.563-.555 1.05-.555zM2.36 3.54a.423.423 0 1 1 0 .846.423.423 0 0 1 0-.846z\"/></svg>'\n case 'compass':\n return '<svg class=\"compass-icon\" fill=\"#fff\" height=\"1.8em\" viewBox=\"0 0 67.731 67.731\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m135.772 101.812-7.157-.73c-1.669-10.98-11.344-20.654-22.323-22.323l-.73-7.144c-.536-2.136-3.571-2.136-4.107 0l-.73 7.157c-10.98 1.669-20.654 11.344-22.323 22.323l-7.144.73c-2.136.536-2.136 3.571 0 4.107l7.157.73c1.669 10.98 11.344 20.654 22.323 22.323l.73 7.157c.536 2.136 3.571 2.136 4.107 0l.73-7.157c10.98-1.669 20.655-11.344 22.323-22.323l7.157-.73c2.136-.536 2.136-3.571 0-4.107zm-11.687-1.323-15.126-2.074-2.064-15.126c7.718 1.857 15.332 9.471 17.19 17.19zm-23.963-17.198-2.064 15.124-15.126 2.064c1.857-7.719 9.471-15.333 17.19-17.19zm-17.198 23.964 15.134 2.06 2.064 15.127c-7.719-1.858-15.333-9.472-17.19-17.19zm23.963 17.198 2.064-15.127 15.126-2.063c-1.86 7.712-9.47 15.32-17.182 17.179z\" style=\"stroke-width:.264583\" transform=\"translate(-69.656 -70.013)\"/></svg>'\n case 'liebevoll.jetzt':\n return '<svg class=\"liebevoll-jetzt-icon\" fill=\"#fff\" height=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 42 42\"><path fill=\"#e52220\" d=\"M32.554 33.551c0-.2.2-.5 0-.7-.2-.2-.1 0-.3-.1-.5-.2-1.2-.1-1.7.2-.7.3-1.7 1.5-1.3 2.4.2.3.5.6.8.8.5.3.8-.1 1.2-.4.4-.3.7-.5.9-1 .1-.1.8-1.2.4-1.2z\"/> <path fill=\"#fff\" d=\"M14.426 41.57c-1.512-.808-2.234-2.322-2.403-5.038-.104-1.671.136-3.65.844-6.962.497-2.327.545-2.56.81-3.95.236-1.234 3.381-10.767 4.237-12.842.688-1.667 3.022-6.084 3.379-6.394.158-.137.708-.948 1.22-1.802C24.243 1.704 25.935 0 27.065 0c1.134 0 2.303 1.066 2.763 2.521.274.864.133 2.528-.34 4.032-.551 1.754-2.928 6.42-3.994 7.84a37.025 37.025 0 0 0-1.753 2.622c-1.173 1.957-2.233 3.525-4.002 5.92-.831 1.126-1.628 2.306-1.77 2.621-.422.932-1.792 6.558-1.836 7.536-.023.496-.095 1.73-.16 2.742-.175 2.714.265 3.687 1.54 3.407.737-.162 1.569-.967 3.197-3.092 2.302-3.005 5.204-7.528 6.524-10.17.622-1.243 1.228-2.06 1.528-2.06.394 0 .46 1.003.131 1.975-.413 1.219-4.57 8.126-6.186 10.277-1.727 2.3-4.191 4.785-5.233 5.277-1.194.564-2.15.602-3.048.123zm6.76-23.631c2.714-4.414 5.248-9.115 5.42-10.052.027-.148.172-.553.322-.9.397-.915.872-2.532.997-3.386.077-.532.04-.833-.132-1.065-.232-.315-.259-.305-.918.33-1.692 1.632-4.116 7.08-6.488 14.581-.484 1.532-.88 2.855-.881 2.94-.002.255.192-.026 1.68-2.449z\"/></svg>'\n case 'group':\n return '<svg class=\"group-icon\" stroke=\"#fff\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 20 20\" aria-hidden=\"true\" height=\"1.6em\" width=\"1.6em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM6 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM1.49 15.326a.78.78 0 0 1-.358-.442 3 3 0 0 1 4.308-3.516 6.484 6.484 0 0 0-1.905 3.959c-.023.222-.014.442.025.654a4.97 4.97 0 0 1-2.07-.655ZM16.44 15.98a4.97 4.97 0 0 0 2.07-.654.78.78 0 0 0 .357-.442 3 3 0 0 0-4.308-3.517 6.484 6.484 0 0 1 1.907 3.96 2.32 2.32 0 0 1-.026.654ZM18 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM5.304 16.19a.844.844 0 0 1-.277-.71 5 5 0 0 1 9.947 0 .843.843 0 0 1-.277.71A6.975 6.975 0 0 1 10 18a6.974 6.974 0 0 1-4.696-1.81Z\"></path></svg>'\n case 'puzzle':\n return '<svg class=\"group-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"#fff\" width=\"1.6em\" height=\"1.6em\"><path d=\"M11.25 5.337c0-.355-.186-.676-.401-.959a1.647 1.647 0 0 1-.349-1.003c0-1.036 1.007-1.875 2.25-1.875S15 2.34 15 3.375c0 .369-.128.713-.349 1.003-.215.283-.401.604-.401.959 0 .332.278.598.61.578 1.91-.114 3.79-.342 5.632-.676a.75.75 0 0 1 .878.645 49.17 49.17 0 0 1 .376 5.452.657.657 0 0 1-.66.664c-.354 0-.675-.186-.958-.401a1.647 1.647 0 0 0-1.003-.349c-1.035 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401.31 0 .557.262.534.571a48.774 48.774 0 0 1-.595 4.845.75.75 0 0 1-.61.61c-1.82.317-3.673.533-5.555.642a.58.58 0 0 1-.611-.581c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.035-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959a.641.641 0 0 1-.658.643 49.118 49.118 0 0 1-4.708-.36.75.75 0 0 1-.645-.878c.293-1.614.504-3.257.629-4.924A.53.53 0 0 0 5.337 15c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.036 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.369 0 .713.128 1.003.349.283.215.604.401.959.401a.656.656 0 0 0 .659-.663 47.703 47.703 0 0 0-.31-4.82.75.75 0 0 1 .83-.832c1.343.155 2.703.254 4.077.294a.64.64 0 0 0 .657-.642Z\" /></svg>'\n case 'staff-snake':\n return '<svg class=\"staff-snake-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 384 512\" height=\"1.4em\" width=\"1.4em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M222.6 43.2l-.1 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"></path></svg>'\n case 'flower':\n return '<svg class=\"flower-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 256 256\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M210.35,129.36c-.81-.47-1.7-.92-2.62-1.36.92-.44,1.81-.89,2.62-1.36a40,40,0,1,0-40-69.28c-.81.47-1.65,1-2.48,1.59.08-1,.13-2,.13-3a40,40,0,0,0-80,0c0,.94,0,1.94.13,3-.83-.57-1.67-1.12-2.48-1.59a40,40,0,1,0-40,69.28c.81.47,1.7.92,2.62,1.36-.92.44-1.81.89-2.62,1.36a40,40,0,1,0,40,69.28c.81-.47,1.65-1,2.48-1.59-.08,1-.13,2-.13,2.95a40,40,0,0,0,80,0c0-.94-.05-1.94-.13-2.95.83.57,1.67,1.12,2.48,1.59A39.79,39.79,0,0,0,190.29,204a40.43,40.43,0,0,0,10.42-1.38,40,40,0,0,0,9.64-73.28ZM104,128a24,24,0,1,1,24,24A24,24,0,0,1,104,128Zm74.35-56.79a24,24,0,1,1,24,41.57c-6.27,3.63-18.61,6.13-35.16,7.19A40,40,0,0,0,154.53,98.1C163.73,84.28,172.08,74.84,178.35,71.21ZM128,32a24,24,0,0,1,24,24c0,7.24-4,19.19-11.36,34.06a39.81,39.81,0,0,0-25.28,0C108,75.19,104,63.24,104,56A24,24,0,0,1,128,32ZM44.86,80a24,24,0,0,1,32.79-8.79c6.27,3.63,14.62,13.07,23.82,26.89A40,40,0,0,0,88.81,120c-16.55-1.06-28.89-3.56-35.16-7.18A24,24,0,0,1,44.86,80ZM77.65,184.79a24,24,0,1,1-24-41.57c6.27-3.63,18.61-6.13,35.16-7.19a40,40,0,0,0,12.66,21.87C92.27,171.72,83.92,181.16,77.65,184.79ZM128,224a24,24,0,0,1-24-24c0-7.24,4-19.19,11.36-34.06a39.81,39.81,0,0,0,25.28,0C148,180.81,152,192.76,152,200A24,24,0,0,1,128,224Zm83.14-48a24,24,0,0,1-32.79,8.79c-6.27-3.63-14.62-13.07-23.82-26.89A40,40,0,0,0,167.19,136c16.55,1.06,28.89,3.56,35.16,7.18A24,24,0,0,1,211.14,176Z\"></path></svg>'\n case 'network':\n return '<svg class=\"network-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 256 256\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M212,200a36,36,0,1,1-69.85-12.25l-53-34.05a36,36,0,1,1,0-51.4l53-34a36.09,36.09,0,1,1,8.67,13.45l-53,34.05a36,36,0,0,1,0,24.5l53,34.05A36,36,0,0,1,212,200Z\"></path></svg>'\n default:\n return ''\n }\n}\n\nconst MarkerIconFactory = (shape: string, color1: string, color2: string, icon: string) => {\n return L.divIcon({\n html: `${createSvg(shape, color1, color2)}${addIcon(icon)}`,\n iconAnchor: [17, 40],\n popupAnchor: [0, -40],\n iconSize: new L.Point(40, 46),\n className: 'leaflet-data-marker',\n shadowAnchor: [0, 0],\n })\n}\n\nexport default MarkerIconFactory\n","export function decodeTag(string: string) {\n const formatedTag = string.replace(/_/g, '\\u00A0')\n return formatedTag.charAt(0).toUpperCase() + formatedTag.slice(1)\n}\n\nexport function encodeTag(string: string) {\n return string.replace(/\\s+/g, '_')\n}\n","// Converts leaflet.locatecontrol to a React Component\nexport const SidebarControl = () => {\n return (\n <>\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300 tw-mr-2 tw-h-12 tw-w-12 '>\n <div className='tw-card-body tw-card tw-p-0'>\n <button\n className='tw-btn tw-btn-square tw-btn-ghost tw-rounded-2xl'\n data-te-sidenav-toggle-ref\n data-te-target='#sidenav'\n aria-controls='#sidenav'\n aria-haspopup='true'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n className='tw-inline-block tw-w-5 tw-h-5 tw-stroke-current'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='2'\n d='M4 6h16M4 12h16M4 18h16'\n ></path>\n </svg>\n </button>\n </div>\n </div>\n </>\n )\n}\n","import * as React from 'react'\nimport { useAddFilterTag } from '../../hooks/useFilter'\nimport useWindowDimensions from '../../hooks/useWindowDimension'\nimport axios from 'axios'\nimport { useEffect, useRef, useState } from 'react'\nimport { useMap, useMapEvents } from 'react-leaflet'\nimport { LatLng, LatLngBounds } from 'leaflet'\nimport { useDebounce } from '../../hooks/useDebounce'\nimport { useTags } from '../../hooks/useTags'\nimport { useItems } from '../../hooks/useItems'\nimport { useLeafletRefs } from '../../hooks/useLeafletRefs'\nimport { getValue } from '../../../../Utils/GetValue'\nimport { LocateControl } from './LocateControl'\nimport * as L from 'leaflet'\nimport MarkerIconFactory from '../../../../Utils/MarkerIconFactory'\nimport { decodeTag } from '../../../../Utils/FormatTags'\nimport { useLocation, useNavigate } from 'react-router-dom'\nimport { Item } from '../../../../types'\nimport { SidebarControl } from './SidebarControl'\n\nexport const SearchControl = () => {\n const windowDimensions = useWindowDimensions()\n const [popupOpen, setPopupOpen] = useState(false)\n\n const [value, setValue] = useState('')\n const [geoResults, setGeoResults] = useState<Array<any>>([])\n const [tagsResults, setTagsResults] = useState<Array<any>>([])\n const [itemsResults, setItemsResults] = useState<Array<Item>>([])\n const [hideSuggestions, setHideSuggestions] = useState(true)\n\n const map = useMap()\n const tags = useTags()\n const items = useItems()\n const leafletRefs = useLeafletRefs()\n const addFilterTag = useAddFilterTag()\n\n useMapEvents({\n popupopen: () => {\n setPopupOpen(true)\n },\n popupclose: () => {\n setPopupOpen(false)\n },\n })\n\n const navigate = useNavigate()\n\n useDebounce(\n () => {\n const searchGeo = async () => {\n try {\n const { data } = await axios.get(`https://photon.komoot.io/api/?q=${value}&limit=5`)\n setGeoResults(data.features)\n } catch (error) {\n console.log(error)\n }\n }\n searchGeo()\n setItemsResults(\n items.filter((item) => {\n if (item.layer?.itemNameField) item.name = getValue(item, item.layer.itemNameField)\n if (item.layer?.itemTextField) item.text = getValue(item, item.layer.itemTextField)\n return (\n value.length > 2 &&\n ((item.layer?.listed && item.name?.toLowerCase().includes(value.toLowerCase())) ||\n item.text?.toLowerCase().includes(value.toLowerCase()))\n )\n }),\n )\n let phrase = value\n if (value.startsWith('#')) phrase = value.substring(1)\n setTagsResults(tags.filter((tag) => tag.name?.toLowerCase().includes(phrase.toLowerCase())))\n },\n 500,\n [value],\n )\n\n const hide = async () => {\n setTimeout(() => {\n setHideSuggestions(true)\n }, 200)\n }\n\n const searchInput = useRef<HTMLInputElement>(null)\n const [embedded, setEmbedded] = useState<boolean>(true)\n\n const location = useLocation()\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setEmbedded(false)\n }, [location])\n\n return (\n <>\n {!(windowDimensions.height < 500 && popupOpen && hideSuggestions) && (\n <div className='tw-w-[calc(100vw-2rem)] tw-max-w-[22rem] '>\n <div className='tw-flex tw-flex-row'>\n {embedded && <SidebarControl />}\n <div className='tw-relative'>\n <input\n type='text'\n placeholder='search ...'\n autoComplete='off'\n value={value}\n className='tw-input tw-input-bordered tw-grow tw-shadow-xl tw-rounded-lg tw-pr-12'\n ref={searchInput}\n onChange={(e) => setValue(e.target.value)}\n onFocus={() => {\n setHideSuggestions(false)\n if (windowDimensions.width < 500) map.closePopup()\n }}\n onBlur={() => hide()}\n />\n {value.length > 0 && (\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-absolute tw-right-2 tw-top-2'\n onClick={() => setValue('')}\n >\n ✕\n </button>\n )}\n </div>\n <LocateControl />\n </div>\n {hideSuggestions ||\n (Array.from(geoResults).length === 0 &&\n itemsResults.length === 0 &&\n tagsResults.length === 0 &&\n !isGeoCoordinate(value)) ||\n value.length === 0 ? (\n ''\n ) : (\n <div className='tw-card tw-card-body tw-bg-base-100 tw-p-4 tw-mt-2 tw-shadow-xl tw-overflow-y-auto tw-max-h-[calc(100dvh-152px)] tw-absolute tw-z-3000'>\n {tagsResults.length > 0 && (\n <div className='tw-flex tw-flex-wrap'>\n {tagsResults.slice(0, 3).map((tag) => (\n <div\n key={tag.name}\n className='tw-rounded-2xl tw-text-white tw-p-1 tw-px-4 tw-shadow-md tw-card tw-mr-2 tw-mb-2 tw-cursor-pointer'\n style={{ backgroundColor: tag.color }}\n onClick={() => {\n addFilterTag(tag)\n }}\n >\n <b>#{decodeTag(tag.name)}</b>\n </div>\n ))}\n </div>\n )}\n\n {itemsResults.length > 0 && tagsResults.length > 0 && (\n <hr className='tw-opacity-50'></hr>\n )}\n {itemsResults.slice(0, 5).map((item) => (\n <div\n key={item.id}\n className='tw-cursor-pointer hover:tw-font-bold'\n onClick={() => {\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === item)?.[1]\n .marker\n if (marker) {\n navigate(`/${item.id}?${new URLSearchParams(window.location.search)}`)\n } else {\n navigate(\n 'item/' + item.id + '?' + new URLSearchParams(window.location.search),\n )\n }\n }}\n >\n <div className='tw-flex tw-flex-row'>\n <img\n src={item.layer?.menuIcon}\n className='tw-text-current tw-w-5 tw-mr-2 tw-mt-0'\n />\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {item.name}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {item.text}\n </div>\n </div>\n </div>\n </div>\n ))}\n {Array.from(geoResults).length > 0 &&\n (itemsResults.length > 0 || tagsResults.length > 0) && (\n <hr className='tw-opacity-50'></hr>\n )}\n {Array.from(geoResults).map((geo) => (\n <div\n className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer'\n key={Math.random()}\n onClick={() => {\n searchInput.current?.blur()\n L.marker(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), {\n icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),\n })\n .addTo(map)\n .bindPopup(\n `<h3 class=\"tw-text-base tw-font-bold\">${geo?.properties.name ? geo?.properties.name : value}<h3>${capitalizeFirstLetter(geo?.properties?.osm_value)}`,\n )\n .openPopup()\n .addEventListener('popupclose', (e) => {\n console.log(e.target.remove())\n })\n if (geo.properties.extent)\n map.fitBounds(\n new LatLngBounds(\n new LatLng(geo.properties.extent[1], geo.properties.extent[0]),\n new LatLng(geo.properties.extent[3], geo.properties.extent[2]),\n ),\n )\n else\n map.setView(\n new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]),\n 15,\n { duration: 1 },\n )\n hide()\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='1.5'\n stroke='currentColor'\n className='tw-text-current tw-mr-2 tw-mt-0 tw-w-4'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z'\n />\n </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {geo?.properties.name ? geo?.properties.name : value}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {geo?.properties?.city && `${capitalizeFirstLetter(geo?.properties?.city)}, `}{' '}\n {geo?.properties?.osm_value &&\n geo?.properties?.osm_value !== 'yes' &&\n geo?.properties?.osm_value !== 'primary' &&\n geo?.properties?.osm_value !== 'path' &&\n geo?.properties?.osm_value !== 'secondary' &&\n geo?.properties?.osm_value !== 'residential' &&\n geo?.properties?.osm_value !== 'unclassified' &&\n `${capitalizeFirstLetter(geo?.properties?.osm_value)}, `}{' '}\n {geo.properties.state && `${geo.properties.state}, `}{' '}\n {geo.properties.country && geo.properties.country}\n </div>\n </div>\n </div>\n ))}\n {isGeoCoordinate(value) && (\n <div\n className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer'\n onClick={() => {\n L.marker(\n new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]),\n {\n icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),\n },\n )\n .addTo(map)\n .bindPopup(\n `<h3 class=\"tw-text-base tw-font-bold\">${extractCoordinates(value)![0]}, ${extractCoordinates(value)![1]}</h3>`,\n )\n .openPopup()\n .addEventListener('popupclose', (e) => {\n console.log(e.target.remove())\n })\n map.setView(\n new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]),\n 15,\n { duration: 1 },\n )\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={1.5}\n stroke='currentColor'\n className='tw-text-current tw-mr-2 tw-mt-0 tw-w-4'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M3 3v1.5M3 21v-6m0 0 2.77-.693a9 9 0 0 1 6.208.682l.108.054a9 9 0 0 0 6.086.71l3.114-.732a48.524 48.524 0 0 1-.005-10.499l-3.11.732a9 9 0 0 1-6.085-.711l-.108-.054a9 9 0 0 0-6.208-.682L3 4.5M3 15V4.5'\n />\n </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {value}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {'Coordiante'}\n </div>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </>\n )\n}\n\nfunction isGeoCoordinate(input) {\n const geokoordinatenRegex =\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/\n return geokoordinatenRegex.test(input)\n}\n\nfunction extractCoordinates(input): number[] | null {\n const result = input.split(',')\n if (result) {\n const latitude = parseFloat(result[0])\n const longitude = parseFloat(result[1])\n if (!isNaN(latitude) && !isNaN(longitude)) {\n return [latitude, longitude]\n }\n }\n return null // Invalid input or error\n}\n\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1)\n}\n","import * as React from 'react'\nimport { useFilterTags, useRemoveFilterTag } from '../../hooks/useFilter'\nimport { decodeTag } from '../../../../Utils/FormatTags'\n\nexport const TagsControl = () => {\n const filterTags = useFilterTags()\n const removeFilterTag = useRemoveFilterTag()\n\n return (\n <div className='tw-flex tw-flex-wrap tw-mt-4 tw-w-[calc(100vw-2rem)] tw-max-w-xs'>\n {filterTags.map((tag) => (\n <div\n key={tag.id}\n className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mr-2 tw-mb-2'\n style={{ backgroundColor: tag.color }}\n >\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600'\n onClick={() => removeFilterTag(tag.name!)}\n >\n ✕\n </label>\n </div>\n <b>#{decodeTag(tag.name)}</b>\n </div>\n ))}\n </div>\n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { Item } from '../../types'\nimport { PopupStartEndInput } from '../Map'\nimport { PlusButton } from '../Profile/Subcomponents/PlusButton'\nimport { TextInput, TextAreaInput } from '../Input'\nimport { useAddTag, useGetItemTags, useTags } from '../Map/hooks/useTags'\nimport { toast } from 'react-toastify'\nimport { hashTagRegex } from '../../Utils/HashTagRegex'\nimport { randomColor } from '../../Utils/RandomColor'\nimport { useAuth } from '../Auth'\nimport { useLayers } from '../Map/hooks/useLayers'\nimport { MapOverlayPage } from './MapOverlayPage'\nimport { useAddItem, useItems, useRemoveItem } from '../Map/hooks/useItems'\nimport { ItemCard } from './ItemCard'\nimport { Control } from '../Map/Subcomponents/Controls/Control'\nimport { SearchControl } from '../Map/Subcomponents/Controls/SearchControl'\nimport { TagsControl } from '../Map/Subcomponents/Controls/TagsControl'\nimport { useFilterTags } from '../Map/hooks/useFilter'\n\nexport const OverlayItemsIndexPage = ({\n url,\n layerName,\n parameterField,\n plusButton = true,\n}: {\n layerName: string\n url: string\n parameterField: string\n plusButton?: boolean\n}) => {\n const [loading, setLoading] = useState<boolean>(false)\n const [addItemPopupType, setAddItemPopupType] = useState<string>('')\n\n const tabRef = useRef<HTMLFormElement>(null)\n\n function scroll() {\n tabRef.current?.scrollIntoView()\n }\n\n useEffect(() => {\n scroll()\n }, [addItemPopupType])\n\n useEffect(() => {\n setAddItemPopupType('')\n }, [layerName])\n\n const tags = useTags()\n const addTag = useAddTag()\n const { user } = useAuth()\n const items = useItems()\n const addItem = useAddItem()\n const removeItem = useRemoveItem()\n const layers = useLayers()\n\n const filterTags = useFilterTags()\n const getItemTags = useGetItemTags()\n\n const layer = layers.find((l) => l.name === layerName)\n\n const submitNewItem = async (evt: any) => {\n evt.preventDefault()\n const formItem: Item = {} as Item\n Array.from(evt.target).forEach((input: HTMLInputElement) => {\n if (input.name) {\n formItem[input.name] = input.value\n }\n })\n setLoading(true)\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\n })\n const uuid = crypto.randomUUID()\n let success = false\n try {\n await layer?.api?.createItem!({ ...formItem, id: uuid })\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n toast.success('New item created')\n }\n addItem({ ...formItem, user_created: user, id: uuid, layer, public_edit: !user })\n setLoading(false)\n setAddItemPopupType('')\n }\n\n const deleteItem = async (item) => {\n setLoading(true)\n let success = false\n try {\n await layer?.api?.deleteItem!(item.id)\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n toast.success('Item deleted')\n }\n removeItem(item)\n setLoading(false)\n }\n\n return (\n <>\n <MapOverlayPage className='tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4'>\n <div className='tw-flex tw-flex-col tw-h-full'>\n <div className='tw-flex-none'>\n <Control position='topLeft' zIndex='1000' absolute={false}>\n <SearchControl />\n <TagsControl />\n </Control>\n </div>\n <div className='tw-overflow-scroll fade tw-flex-1'>\n <div className='tw-columns-1 md:tw-columns-2 lg:tw-columns-3 2xl:tw-columns-4 tw-gap-6 tw-pt-4'>\n {items\n ?.filter((i) => i.layer?.name === layerName)\n .filter((item) =>\n filterTags.length === 0\n ? item\n : filterTags.some((tag) =>\n getItemTags(item).some(\n (filterTag) =>\n filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase(),\n ),\n ),\n )\n ?.sort((a, b) => {\n // Convert date_created to milliseconds, handle undefined by converting to lowest possible date (0 milliseconds)\n const dateA = a.date_updated\n ? new Date(a.date_updated).getTime()\n : a.date_created\n ? new Date(a.date_created).getTime()\n : 0\n const dateB = b.date_updated\n ? new Date(b.date_updated).getTime()\n : b.date_created\n ? new Date(b.date_created).getTime()\n : 0\n return dateB - dateA // Subtracts milliseconds which are numbers\n })\n ?.map((i, k) => (\n <div key={k} className='tw-break-inside-avoid tw-mb-6'>\n <ItemCard\n i={i}\n loading={loading}\n url={url}\n parameterField={parameterField}\n deleteCallback={() => deleteItem(i)}\n />\n </div>\n ))}\n {addItemPopupType === 'place' && (\n <form ref={tabRef} autoComplete='off' onSubmit={(e) => submitNewItem(e)}>\n <div className='tw-cursor-pointer tw-break-inside-avoid tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-p-6 tw-mb-10'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => setAddItemPopupType('')}\n >\n <p className='tw-text-center'>✕</p>\n </label>\n <TextInput\n type='text'\n placeholder='Name'\n dataField='name'\n defaultValue={''}\n inputStyle=''\n />\n {layer?.itemType.show_start_end_input && <PopupStartEndInput />}\n <TextAreaInput\n placeholder='Text'\n dataField='text'\n defaultValue={''}\n inputStyle='tw-h-40 tw-mt-5'\n />\n <div className='tw-flex tw-justify-center'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'\n : 'tw-btn tw-mt-5 tw-place-self-center'\n }\n type='submit'\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Save'}\n </button>\n </div>\n </div>\n </form>\n )}\n </div>\n </div>\n </div>\n </MapOverlayPage>\n\n {plusButton && (\n <PlusButton\n layer={layer}\n triggerAction={() => {\n setAddItemPopupType('place')\n scroll()\n }}\n color={'#777'}\n collection='items'\n />\n )}\n </>\n )\n}\n","import { useState } from 'react'\n\nexport const EmojiPicker = ({\n // eslint-disable-next-line react/prop-types\n selectedEmoji,\n // eslint-disable-next-line react/prop-types\n selectedColor,\n // eslint-disable-next-line react/prop-types\n selectedShape,\n // eslint-disable-next-line react/prop-types\n setSelectedEmoji,\n // eslint-disable-next-line react/prop-types\n setSelectedColor,\n // eslint-disable-next-line react/prop-types\n setSelectedShape,\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n\n const emojis = [\n '❤️',\n '🙏',\n '👍',\n '🌻',\n '✨',\n '☀️',\n '🔥',\n '🪵',\n '💧',\n '🎶',\n '🎨',\n '🍄',\n '📝',\n '✉️',\n '🧩',\n '💡',\n '🎓',\n '💬',\n '🛠',\n '💻',\n '🕹',\n '🖨',\n '🚐',\n '🛒',\n '⚽️',\n '🧵',\n '👀',\n '🌱',\n '🏕',\n '💪',\n '🎁',\n '🏹',\n '🥕',\n '🥇',\n '🥈',\n '🥉',\n ]\n const shapes = ['squircle', 'circle', 'hexagon-2']\n\n const colors = [\n '#FF99C8',\n '#fff0d6',\n '#FCF6BD',\n '#D0F4DE',\n '#A9DEF9',\n '#E4C1F9',\n '#de324c',\n '#f4895f',\n '#f8e16f',\n '#95cf92',\n '#369acc',\n '#9656a2',\n ]\n\n const toggleDropdown = () => {\n setIsOpen(!isOpen)\n }\n\n const selectEmoji = (emoji) => {\n setSelectedEmoji(emoji)\n setIsOpen(false)\n }\n\n const selectShape = (shape) => {\n setSelectedShape(shape)\n setIsOpen(false)\n }\n\n const selectColor = (color) => {\n setSelectedColor(color)\n setIsOpen(false)\n }\n\n return (\n <>\n <div\n onClick={toggleDropdown}\n className={`tw-cursor-pointer ${selectedEmoji === 'select badge' ? 'tw-text-sm !tw-p-9 tw-text-center ' : 'tw-text-6xl'} tw-mask tw-mask-${selectedShape} tw-p-6 tw-bg-[${selectedColor}]`}\n >\n {selectedEmoji}\n </div>\n\n {isOpen && (\n <div className='tw-absolute tw-z-3000 tw-top-0 tw-left-1/2 tw-transform tw--translate-x-1/2 tw-mt-12 tw-bg-base-100 tw-rounded-2xl tw-shadow-lg tw-p-2 tw-w-full'>\n <div className='tw-grid tw-grid-cols-6 tw-gap-2 tw-pb-2'>\n {emojis.map((emoji) => (\n <button\n key={emoji}\n onClick={() => selectEmoji(emoji)}\n className={`tw-cursor-pointer tw-text-2xl tw-p-2 hover:tw-bg-base-200 tw-rounded-md ${emoji === selectedEmoji && 'tw-bg-base-300'}`}\n >\n {emoji}\n </button>\n ))}\n </div>\n <hr />\n <div className='tw-grid tw-grid-cols-3 tw-gap-2 tw-py-2'>\n {shapes.map((shape) => (\n <div\n key={shape}\n className={`tw-cursor-pointer hover:tw-bg-base-200 tw-rounded-md tw-p-2 ${shape === selectedShape && 'tw-bg-base-300'}`}\n onClick={() => selectShape(shape)}\n >\n <div className={`tw-h-12 tw-mask tw-mask-${shape} tw-bg-neutral-content`}></div>\n </div>\n ))}\n </div>\n <hr />\n <div className='tw-grid tw-grid-cols-6 tw-gap-2 tw-py-2 tw-px-6'>\n {colors.map((color) => (\n <div\n key={color}\n className={`tw-cursor-pointer hover:tw-bg-base-200 tw-rounded-md tw-p-2 tw-flex tw-justify-center tw-items-center ${color === selectedColor && 'tw-bg-base-300'}`}\n onClick={() => selectColor(color)}\n >\n <div className={`tw-h-8 tw-w-8 tw-rounded-full tw-bg-[${color}]`}></div>\n </div>\n ))}\n </div>\n </div>\n )}\n </>\n )\n}\n","import * as React from 'react'\nimport { MapOverlayPage } from './MapOverlayPage'\nimport { useItems } from '../Map/hooks/useItems'\nimport { useAppState } from '../AppShell/hooks/useAppState'\nimport { EmojiPicker } from './EmojiPicker'\nimport { useNavigate } from 'react-router-dom'\nimport { useRef, useState, useEffect } from 'react'\nimport { Item, ItemsApi } from '../../types'\nimport { toast } from 'react-toastify'\n\nexport const AttestationForm = ({ api }: { api?: ItemsApi<any> }) => {\n const items = useItems()\n const appState = useAppState()\n const [users, setUsers] = useState<Array<Item>>()\n const navigate = useNavigate()\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const toUserIds = params.get('to')\n setUsers(items.filter((i) => toUserIds?.includes(i.id)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, location])\n\n const [inputValue, setInputValue] = useState('')\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.style.width = 'auto'\n inputRef.current.style.width = `${inputRef.current.scrollWidth + 20}px`\n }\n }, [inputValue])\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value)\n }\n\n const sendAttestation = async () => {\n const to: Array<any> = []\n users?.map((u) => to.push({ directus_users_id: u.user_created.id }))\n\n api?.createItem &&\n toast\n .promise(\n api.createItem({\n text: inputValue,\n emoji: selectedEmoji,\n color: selectedColor,\n shape: selectedShape,\n to,\n }),\n {\n pending: 'creating attestation ...',\n success: 'Attestation created',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n },\n )\n .then(() =>\n navigate(\n '/item/' +\n items.find(\n (i) =>\n i.user_created.id === to[0].directus_users_id &&\n i.layer?.itemType.name === 'player',\n )?.id +\n '?tab=2',\n ),\n )\n }\n\n const [selectedEmoji, setSelectedEmoji] = useState('select badge')\n const [selectedShape, setSelectedShape] = useState('circle')\n const [selectedColor, setSelectedColor] = useState('#fff0d6')\n\n return (\n <MapOverlayPage backdrop className='tw-h-fit tw-min-h-56 tw-w-96'>\n <div className='tw-text-center tw-text-xl tw-font-bold'>Gratitude</div>\n <div className='tw-text-center tw-text-base tw-text-gray-400'>to</div>\n <div className='tw-flex tw-flex-row tw-justify-center tw-items-center tw-flex-wrap'>\n {users &&\n users.map(\n (u, k) => (\n <div key={k} className='tw-flex tw-items-center tw-space-x-3 tw-mx-2 tw-my-1'>\n {u.image ? (\n <div className='tw-avatar'>\n <div className='tw-mask tw-mask-circle tw-w-8 tw-h-8'>\n <img\n src={appState.assetsApi.url + u.image + '?width=40&heigth=40'}\n alt='Avatar'\n />\n </div>\n </div>\n ) : (\n <div className='tw-mask tw-mask-circle tw-text-xl md:tw-text-2xl tw-bg-slate-200 tw-rounded-full tw-w-8 tw-h-8'></div>\n )}\n <div>\n <div className='tw-font-bold'>{u.name}</div>\n </div>\n </div>\n ),\n ', ',\n )}\n </div>\n\n <div className='tw-w-full'>\n <div className='tw-flex tw-justify-center tw-items-center'>\n <div className=' tw-flex tw-justify-center tw-items-center tw-w-28 tw-h-28 tw-m-4'>\n <EmojiPicker\n selectedEmoji={selectedEmoji}\n selectedColor={selectedColor}\n selectedShape={selectedShape}\n setSelectedEmoji={setSelectedEmoji}\n setSelectedColor={setSelectedColor}\n setSelectedShape={setSelectedShape}\n />\n </div>\n </div>\n <div className='tw-flex tw-justify-center tw-items-center'>\n <input\n ref={inputRef}\n value={inputValue}\n onChange={handleChange}\n type='text'\n placeholder='... and say some words'\n className='tw-input tw-min-w-0 tw-w-fit tw-resize-none tw-overflow-hidden tw-text-center '\n />\n </div>\n </div>\n <div className='tw-w-full tw-grid tw-mt-4'>\n <button onClick={sendAttestation} className='tw-btn tw-place-self-center tw-px-8'>\n Next\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","import * as React from 'react'\nimport { decodeTag } from '../../Utils/FormatTags'\nimport { Tag } from '../../types'\n\nexport const TagView = ({\n tag,\n heighlight,\n onClick,\n count,\n}: {\n tag: Tag\n heighlight?: boolean\n onClick?: (/* e */) => void\n count?: number\n}) => {\n return (\n // Use your imagination to render suggestions.\n\n <div\n key={tag.name}\n onClick={onClick}\n className={`tw-flex tw-items-center tw-flex-row tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mt-3 tw-mr-4 tw-cursor-pointer tw-w-fit ${heighlight && 'tw-border-4 tw-border-base-200 tw-shadow-lg'}`}\n style={{ backgroundColor: tag.color ? tag.color : '#666' }}\n >\n <b>{decodeTag(tag.name)}</b>\n {count && <span className='tw-ml-2'>({count})</span>}\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\nimport { useItems } from '../Map/hooks/useItems'\nimport { Tag } from '../../types'\nimport { useTags } from '../Map/hooks/useTags'\nimport { getValue } from '../../Utils/GetValue'\nimport { MapOverlayPage } from './MapOverlayPage'\nimport { TagView } from './TagView'\nimport { useNavigate } from 'react-router-dom'\n\nfunction groupAndCount(arr) {\n const grouped = arr.reduce((acc, obj) => {\n const found = acc.find((item) => JSON.stringify(item.object) === JSON.stringify(obj))\n\n if (found) {\n found.count += 1\n } else {\n acc.push({ object: obj, count: 1 })\n }\n\n return acc\n }, [])\n\n return grouped.sort((a, b) => b.count - a.count)\n}\n\nexport const MarketView = () => {\n const [offers, setOffers] = useState<Array<Tag>>([])\n const [needs, setNeeds] = useState<Array<Tag>>([])\n const navigate = useNavigate()\n\n const items = useItems()\n const tags = useTags()\n\n useEffect(() => {\n setOffers([])\n setNeeds([])\n items.map((i) => {\n i?.layer?.itemOffersField &&\n getValue(i, i.layer.itemOffersField)?.map((o) => {\n const tag = tags.find((t) => t.id === o.tags_id)\n tag && setOffers((current) => [...current, tag])\n return null\n })\n i?.layer?.itemNeedsField &&\n getValue(i, i.layer.itemNeedsField)?.map((n) => {\n const tag = tags.find((t) => t.id === n.tags_id)\n tag && setNeeds((current) => [...current, tag])\n return null\n })\n return null\n })\n console.log(offers)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <MapOverlayPage className='tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4'>\n <div className='tw-grid tw-grid-cols-1 md:tw-grid-cols-2'>\n <div>\n <p className='tw-text-lg tw-font-bold'>Offers</p>\n <div className='tw-flex tw-flex-wrap'>\n {groupAndCount(offers).map((o) => (\n <TagView\n onClick={() => navigate(`/?tags=${o.object.name}`)}\n key={o.object.id}\n tag={o.object}\n count={o.count}\n ></TagView>\n ))}\n </div>\n </div>\n <div>\n <p className='tw-text-lg tw-font-bold'>Needs</p>\n <div className='tw-flex tw-flex-wrap'>\n {groupAndCount(needs).map((o) => (\n <TagView\n onClick={() => navigate(`/?tags=${o.object.name}`)}\n key={o.object.id}\n tag={o.object}\n count={o.count}\n ></TagView>\n ))}\n </div>\n </div>\n </div>\n </MapOverlayPage>\n )\n}\n","import { useEffect, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\nimport { useAuth } from './useAuth'\nimport { MapOverlayPage } from '../Templates'\n\nexport function LoginPage() {\n const [email, setEmail] = useState<string>('')\n const [password, setPassword] = useState<string>('')\n\n const { login, loading } = useAuth()\n\n const navigate = useNavigate()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onLogin = async () => {\n await toast.promise(login({ email, password }), {\n success: {\n render({ data }) {\n navigate('/')\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: '✌️',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n autoClose: 10000,\n },\n pending: 'logging in ...',\n })\n }\n\n useEffect(() => {\n const keyDownHandler = (event) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n onLogin()\n }\n }\n document.addEventListener('keydown', keyDownHandler)\n return () => {\n document.removeEventListener('keydown', keyDownHandler)\n }\n }, [onLogin])\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Login</h2>\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-text-right tw-text-primary'>\n <Link to='/reset-password'>\n <span className='tw-text-sm tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200'>\n Forgot Password?\n </span>\n </Link>\n </div>\n <div className='tw-card-actions'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onLogin()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Login'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","import { useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { toast } from 'react-toastify'\nimport { useAuth } from './useAuth'\nimport { MapOverlayPage } from '../Templates'\n\nexport function SignupPage() {\n const [email, setEmail] = useState<string>('')\n const [userName, setUserName] = useState<string>('')\n\n const [password, setPassword] = useState<string>('')\n\n const { register, loading } = useAuth()\n\n const navigate = useNavigate()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onRegister = async () => {\n await toast.promise(register({ email, password }, userName), {\n success: {\n render({ data }) {\n navigate('/')\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: '✌️',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n autoClose: 10000,\n },\n pending: 'creating new user ...',\n })\n }\n\n useEffect(() => {\n const keyDownHandler = (event) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n onRegister()\n }\n }\n document.addEventListener('keydown', keyDownHandler)\n return () => {\n document.removeEventListener('keydown', keyDownHandler)\n }\n }, [onRegister])\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Sign Up</h2>\n <input\n type='text'\n placeholder='Name'\n value={userName}\n onChange={(e) => setUserName(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onRegister()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Sign Up'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","import { useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\nimport { useAuth } from './useAuth'\nimport { MapOverlayPage } from '../Templates'\n\n// eslint-disable-next-line react/prop-types\nexport function RequestPasswordPage({ resetUrl }) {\n const [email, setEmail] = useState<string>('')\n\n const { requestPasswordReset, loading } = useAuth()\n\n const navigate = useNavigate()\n\n const onReset = async () => {\n await toast.promise(requestPasswordReset(email, resetUrl), {\n success: {\n render() {\n navigate('/')\n return 'Check your mailbox'\n },\n // other options\n icon: '📬',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n pending: 'sending email ...',\n })\n }\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Reset Password</h2>\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onReset()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Send'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","import { useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { toast } from 'react-toastify'\nimport { useAuth } from './useAuth'\nimport { MapOverlayPage } from '../Templates'\n\nexport function SetNewPasswordPage() {\n const [password, setPassword] = useState<string>('')\n\n const { passwordReset, loading } = useAuth()\n\n const navigate = useNavigate()\n\n const onReset = async () => {\n const token = window.location.search.split('token=')[1]\n console.log(token)\n\n await toast.promise(passwordReset(token, password), {\n success: {\n render() {\n navigate('/')\n return 'New password set'\n },\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n pending: 'setting password ...',\n })\n }\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Set new Password</h2>\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onReset()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Set'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","import { useCallback, useReducer, createContext, useContext } from 'react'\nimport * as React from 'react'\nimport { Item, ItemsApi, LayerProps, Permission, PermissionAction } from '../../../types'\nimport { useAuth } from '../../Auth'\n\ntype ActionType = { type: 'ADD'; permission: Permission } | { type: 'REMOVE'; id: string }\n\ntype UsePermissionManagerResult = ReturnType<typeof usePermissionsManager>\n\nconst PermissionContext = createContext<UsePermissionManagerResult>({\n permissions: [],\n setPermissionApi: () => {},\n setPermissionData: () => {},\n setAdminRole: () => {},\n hasUserPermission: () => true,\n})\n\nfunction usePermissionsManager(initialPermissions: Permission[]): {\n permissions: Permission[]\n setPermissionApi: (api: ItemsApi<any>) => void\n setPermissionData: (data: Permission[]) => void\n setAdminRole: (adminRole: string) => void\n hasUserPermission: (\n collectionName: string,\n action: PermissionAction,\n item?: Item,\n layer?: LayerProps,\n ) => boolean\n} {\n const [permissions, dispatch] = useReducer((state: Permission[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find((permission) => permission.id === action.permission.id)\n if (!exist) {\n return [...state, action.permission]\n } else return state\n\n case 'REMOVE':\n return state.filter(({ id }) => id !== action.id)\n default:\n throw new Error()\n }\n }, initialPermissions)\n\n const [adminRole, setAdminRole] = React.useState<string | null>(null)\n const { user } = useAuth()\n\n const setPermissionApi = useCallback(async (api: ItemsApi<Permission>) => {\n const result = await api.getItems()\n if (result) {\n result.map((permission) => {\n dispatch({ type: 'ADD', permission })\n return null\n })\n }\n }, [])\n\n const setPermissionData = useCallback((data: Permission[]) => {\n data.map((permission) => {\n dispatch({ type: 'ADD', permission })\n return null\n })\n }, [])\n\n const hasUserPermission = useCallback(\n (collectionName: string, action: PermissionAction, item?: Item, layer?: LayerProps) => {\n const evaluateCondition = (condition: any) => {\n if (condition.user_created?._eq === '$CURRENT_USER') {\n return item?.user_created?.id === user?.id\n }\n if (condition.public_edit?._eq === true) {\n return item?.public_edit === true\n }\n return false\n }\n\n const evaluatePermissions = (permissionConditions: any) => {\n if (!permissionConditions || !permissionConditions._and) {\n return true\n }\n\n return permissionConditions._and.every((andCondition: any) =>\n andCondition._or\n ? andCondition._or.some((orCondition: any) => evaluateCondition(orCondition))\n : evaluateCondition(andCondition),\n )\n }\n if (collectionName === 'items' && action === 'create' && layer?.public_edit_items) return true\n // Bedingung für leere Berechtigungen nur, wenn NICHT item und create\n if (permissions.length === 0) return true\n else if (user && user.role.id === adminRole) return true\n else {\n return permissions.some(\n (p) =>\n p.action === action &&\n p.collection === collectionName &&\n ((p.policy?.name === user?.role.name &&\n (!item || evaluatePermissions(p.permissions))) ||\n (p.policy?.name === '$t:public_label' &&\n (layer?.public_edit_items || item?.layer?.public_edit_items) &&\n (!item || evaluatePermissions(p.permissions)))),\n )\n }\n },\n [permissions, user, adminRole],\n )\n\n return { permissions, setPermissionApi, setPermissionData, setAdminRole, hasUserPermission }\n}\n\nexport const PermissionsProvider: React.FunctionComponent<{\n initialPermissions: Permission[]\n children?: React.ReactNode\n}> = ({ initialPermissions, children }) => (\n <PermissionContext.Provider value={usePermissionsManager(initialPermissions)}>\n {children}\n </PermissionContext.Provider>\n)\n\nexport const usePermissions = (): Permission[] => {\n const { permissions } = useContext(PermissionContext)\n return permissions\n}\n\nexport const useSetPermissionApi = (): UsePermissionManagerResult['setPermissionApi'] => {\n const { setPermissionApi } = useContext(PermissionContext)\n return setPermissionApi\n}\n\nexport const useSetPermissionData = (): UsePermissionManagerResult['setPermissionData'] => {\n const { setPermissionData } = useContext(PermissionContext)\n return setPermissionData\n}\n\nexport const useHasUserPermission = (): UsePermissionManagerResult['hasUserPermission'] => {\n const { hasUserPermission } = useContext(PermissionContext)\n return hasUserPermission\n}\n\nexport const useSetAdminRole = (): UsePermissionManagerResult['setAdminRole'] => {\n const { setAdminRole } = useContext(PermissionContext)\n return setAdminRole\n}\n","import * as React from 'react'\nimport { ItemFormPopupProps } from './Components/Map/Subcomponents/ItemFormPopup'\n\nexport interface Tag {\n color: string\n id: string\n name: string\n offer_or_need?: boolean\n}\n\nexport interface UtopiaMapProps {\n height?: string\n width?: string\n center?: [number, number]\n zoom?: number\n tags?: Tag[]\n children?: React.ReactNode\n geo?: any\n showFilterControl?: boolean\n showLayerControl?: boolean\n showGratitudeControl?: boolean\n infoText?: string\n}\n\nexport interface ItemType {\n name: string\n [key: string]: any\n}\n\nexport interface ItemsApi<T> {\n getItems(): Promise<any>\n getItem?(id: string): Promise<any>\n createItem?(item: T): Promise<any>\n updateItem?(item: T): Promise<any>\n deleteItem?(id: string): Promise<any>\n collectionName?: string\n}\n\nexport interface LayerProps {\n id?: string\n // eslint-disable-next-line no-use-before-define\n data?: Item[]\n children?: React.ReactNode\n name: string\n menuIcon: any\n menuColor: string\n menuText: string\n markerIcon: string\n markerShape: string\n markerDefaultColor: string\n markerDefaultColor2?: string\n api?: ItemsApi<any>\n itemType: ItemType\n itemNameField?: string\n itemSubnameField?: string\n itemTextField?: string\n itemAvatarField?: string\n itemColorField?: string\n itemOwnerField?: string\n itemTagsField?: string\n itemLatitudeField?: any\n itemLongitudeField?: any\n itemOffersField?: string\n itemNeedsField?: string\n onlyOnePerOwner?: boolean\n customEditLink?: string\n customEditParameter?: string\n public_edit_items?: boolean\n listed?: boolean\n item_presets?: Record<string, unknown>\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n itemFormPopup?: ItemFormPopupProps | null\n clusterRef?: any\n}\n\nexport class Geometry {\n type: string\n coordinates: number[]\n constructor(lng: number, lat: number) {\n this.coordinates = [lng, lat]\n this.type = 'Point'\n }\n}\n\nexport type Relation = {\n related_items_id: string\n [key: string]: any\n}\n\nexport class Item {\n id: string\n name: string\n text: string\n position?: Geometry\n date_created?: string\n date_updated?: string | null\n start?: string\n end?: string\n api?: ItemsApi<any>\n tags?: string[]\n layer?: LayerProps\n relations?: Relation[]\n parent?: string\n subname?: string\n public_edit?: boolean;\n // eslint-disable-next-line no-undef\n [key: string]: any\n constructor(\n id: string,\n name: string,\n text: string,\n position: Geometry,\n layer?: LayerProps,\n api?: ItemsApi<any>,\n ) {\n this.id = id\n this.name = name\n this.text = text\n this.position = position\n this.layer = layer\n this.api = api\n }\n}\n\nexport interface AssetsApi {\n upload(file: Blob, title: string): any\n url: string\n}\n\nexport type Profile = {\n id?: string\n avatar?: string\n color?: string\n name: string\n text: string\n geoposition?: Geometry\n}\n\nexport type UserItem = {\n id?: string\n role?: any\n email?: string\n password?: string\n profile?: Profile\n [key: string]: any\n}\n\nexport interface UserApi {\n register(email: string, password: string, userName: string): Promise<void>\n login(email: string, password: string): Promise<any>\n logout(): Promise<void>\n getUser(): Promise<UserItem>\n getToken(): Promise<any>\n updateUser(user: UserItem): Promise<void>\n requestPasswordReset(email: string, reset_url?: string)\n passwordReset(token: string, new_password: string)\n}\n\nexport type PermissionCondition = {\n user_created?: {\n _eq: string // Erwartet den speziellen Wert \"$CURRENT_USER\" oder eine spezifische UUID\n }\n public_edit?: {\n _eq: boolean // Erwartet den speziellen Wert \"$CURRENT_USER\" oder eine spezifische UUID\n }\n}\n\nexport type PermissionAction = 'create' | 'read' | 'update' | 'delete'\n\nexport type Permission = {\n id?: string\n policy: any\n collection: string\n action: PermissionAction\n permissions?: {\n // Optional, für spezifische Bedingungen wie `user_created`\n _and: PermissionCondition[]\n }\n}\n","import * as React from 'react'\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport { Geometry, Item, LayerProps } from '../../../types'\nimport { useUpdateItem } from './useItems'\nimport { toast } from 'react-toastify'\nimport { useHasUserPermission } from './usePermissions'\nimport { LatLng } from 'leaflet'\nimport { ItemFormPopupProps } from '../Subcomponents/ItemFormPopup'\n\ntype PolygonClickedProps = {\n position: LatLng\n setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\ntype UseSelectPositionManagerResult = ReturnType<typeof useSelectPositionManager>\n\nconst SelectPositionContext = createContext<UseSelectPositionManagerResult>({\n selectPosition: null,\n setSelectPosition: () => {},\n setMarkerClicked: () => {},\n setMapClicked: () => {},\n})\n\nfunction useSelectPositionManager(): {\n selectPosition: Item | LayerProps | null\n setSelectPosition: React.Dispatch<React.SetStateAction<Item | LayerProps | null>>\n setMarkerClicked: React.Dispatch<React.SetStateAction<Item>>\n setMapClicked: React.Dispatch<React.SetStateAction<PolygonClickedProps | undefined>>\n} {\n const [selectPosition, setSelectPosition] = useState<LayerProps | null | Item>(null)\n const [markerClicked, setMarkerClicked] = useState<Item | null>()\n const [mapClicked, setMapClicked] = useState<PolygonClickedProps>()\n const updateItem = useUpdateItem()\n const hasUserPermission = useHasUserPermission()\n\n useEffect(() => {\n if (\n selectPosition &&\n markerClicked &&\n 'text' in selectPosition &&\n markerClicked.id !== selectPosition.id\n ) {\n itemUpdateParent({ ...selectPosition, parent: markerClicked.id })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [markerClicked])\n\n useEffect(() => {\n if (selectPosition != null) {\n if ('menuIcon' in selectPosition) {\n mapClicked &&\n mapClicked.setItemFormPopup({\n layer: selectPosition as LayerProps,\n position: mapClicked?.position,\n })\n setSelectPosition(null)\n }\n if ('text' in selectPosition) {\n const position =\n mapClicked?.position.lng &&\n new Geometry(mapClicked?.position.lng, mapClicked?.position.lat)\n position && itemUpdatePosition({ ...(selectPosition as Item), position })\n setSelectPosition(null)\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mapClicked])\n\n const itemUpdateParent = async (updatedItem: Item) => {\n if (\n markerClicked?.layer?.api?.collectionName &&\n hasUserPermission(markerClicked?.layer?.api?.collectionName, 'update', markerClicked)\n ) {\n let success = false\n try {\n await updatedItem?.layer?.api?.updateItem!({\n id: updatedItem.id,\n parent: updatedItem.parent,\n position: null,\n })\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n await updateItem({ ...updatedItem, parent: updatedItem.parent, position: undefined })\n await linkItem(updatedItem.id)\n toast.success('Item position updated')\n setSelectPosition(null)\n setMarkerClicked(null)\n }\n } else {\n setSelectPosition(null)\n toast.error(\"you don't have permission to add items to \" + markerClicked?.name)\n }\n }\n\n const itemUpdatePosition = async (updatedItem: Item) => {\n let success = false\n try {\n await updatedItem?.layer?.api?.updateItem!({\n id: updatedItem.id,\n position: updatedItem.position,\n })\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem(updatedItem)\n toast.success('Item position updated')\n }\n }\n\n const linkItem = async (id: string) => {\n if (markerClicked) {\n const newRelations = markerClicked.relations || []\n\n if (!newRelations.some((r) => r.related_items_id === id)) {\n newRelations?.push({ items_id: markerClicked.id, related_items_id: id })\n const updatedItem = { id: markerClicked.id, relations: newRelations }\n\n let success = false\n try {\n await markerClicked?.layer?.api?.updateItem!(updatedItem)\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...markerClicked, relations: newRelations })\n toast.success('Item linked')\n }\n }\n }\n }\n return { selectPosition, setSelectPosition, setMarkerClicked, setMapClicked }\n}\n\nexport const SelectPositionProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <SelectPositionContext.Provider value={useSelectPositionManager()}>\n {children}\n </SelectPositionContext.Provider>\n)\n\nexport const useSelectPosition = (): Item | LayerProps | null => {\n const { selectPosition } = useContext(SelectPositionContext)\n return selectPosition\n}\n\nexport const useSetSelectPosition = (): UseSelectPositionManagerResult['setSelectPosition'] => {\n const { setSelectPosition } = useContext(SelectPositionContext)\n return setSelectPosition\n}\n\nexport const useSetMarkerClicked = (): UseSelectPositionManagerResult['setMarkerClicked'] => {\n const { setMarkerClicked } = useContext(SelectPositionContext)\n return setMarkerClicked\n}\n\nexport const useSetMapClicked = (): UseSelectPositionManagerResult['setMapClicked'] => {\n const { setMapClicked } = useContext(SelectPositionContext)\n return setMapClicked\n}\n","import { QueryClient, QueryClientProvider } from '@tanstack/react-query'\nimport { ToastContainer } from 'react-toastify'\nimport { QuestsProvider } from '../Gaming/hooks/useQuests'\nimport { ClusterRefProvider } from '../Map/hooks/useClusterRef'\nimport { FilterProvider } from '../Map/hooks/useFilter'\nimport { ItemsProvider } from '../Map/hooks/useItems'\nimport { LayersProvider } from '../Map/hooks/useLayers'\nimport { LeafletRefsProvider } from '../Map/hooks/useLeafletRefs'\nimport { PermissionsProvider } from '../Map/hooks/usePermissions'\nimport { SelectPositionProvider } from '../Map/hooks/useSelectPosition'\nimport { TagsProvider } from '../Map/hooks/useTags'\nimport { AppStateProvider } from './hooks/useAppState'\nimport { useContext, createContext } from 'react'\nimport { BrowserRouter as Router, useLocation } from 'react-router-dom'\n\n// Helper context to determine if the ContextWrapper is already present.\nconst ContextCheckContext = createContext(false)\n\n// eslint-disable-next-line react/prop-types\nexport const ContextWrapper = ({ children }) => {\n const isWrapped = useContext(ContextCheckContext)\n\n // Check if we are already inside a Router\n let location\n try {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n location = useLocation()\n } catch (e) {\n location = null\n }\n\n // Case 1: Only the Router is missing, but ContextWrapper is already provided\n if (!location && isWrapped) {\n return <Router>{children}</Router>\n }\n\n // Case 2: Neither Router nor ContextWrapper is present\n if (!location && !isWrapped) {\n return (\n <Router>\n <ContextCheckContext.Provider value={true}>\n <Wrappers>{children}</Wrappers>\n </ContextCheckContext.Provider>\n </Router>\n )\n }\n\n // Case 3: Only ContextWrapper is missing\n if (location && !isWrapped) {\n return (\n <ContextCheckContext.Provider value={true}>\n <Wrappers>{children}</Wrappers>\n </ContextCheckContext.Provider>\n )\n }\n\n // Case 4: Both Router and ContextWrapper are already present\n return children\n}\n\n// eslint-disable-next-line react/prop-types\nexport const Wrappers = ({ children }) => {\n const queryClient = new QueryClient()\n\n return (\n <PermissionsProvider initialPermissions={[]}>\n <TagsProvider initialTags={[]}>\n <LayersProvider initialLayers={[]}>\n <FilterProvider initialTags={[]}>\n <ItemsProvider initialItems={[]}>\n <SelectPositionProvider>\n <LeafletRefsProvider initialLeafletRefs={{}}>\n <QueryClientProvider client={queryClient}>\n <AppStateProvider>\n <ClusterRefProvider>\n <QuestsProvider initialOpen={true}>\n <ToastContainer\n position='top-right'\n autoClose={2000}\n hideProgressBar\n newestOnTop={false}\n closeOnClick\n rtl={false}\n pauseOnFocusLoss\n draggable\n pauseOnHover\n theme='light'\n />\n {children}\n </QuestsProvider>\n </ClusterRefProvider>\n </AppStateProvider>\n </QueryClientProvider>\n </LeafletRefsProvider>\n </SelectPositionProvider>\n </ItemsProvider>\n </FilterProvider>\n </LayersProvider>\n </TagsProvider>\n </PermissionsProvider>\n )\n}\n","import * as React from 'react'\nimport { useLayers } from '../hooks/useLayers'\nimport { useHasUserPermission } from '../hooks/usePermissions'\n\nexport default function AddButton({\n triggerAction,\n}: {\n triggerAction: React.Dispatch<React.SetStateAction<any>>\n}) {\n const layers = useLayers()\n const hasUserPermission = useHasUserPermission()\n\n const canAddItems = () => {\n let canAdd = false\n layers.map((layer) => {\n if (\n layer.api?.createItem &&\n hasUserPermission(layer.api.collectionName!, 'create', undefined, layer) &&\n layer.listed\n )\n canAdd = true\n return null\n })\n return canAdd\n }\n\n return (\n <>\n {canAddItems() ? (\n <div className='tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-500 tw-absolute tw-right-4 tw-bottom-4'>\n <label tabIndex={0} className='tw-z-500 tw-btn tw-btn-circle tw-shadow tw-bg-base-100'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='3'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </label>\n <ul tabIndex={0} className='tw-dropdown-content tw-pr-1 tw-list-none'>\n {layers.map(\n (layer) =>\n layer.api?.createItem &&\n hasUserPermission(layer.api.collectionName!, 'create', undefined, layer) &&\n layer.listed && (\n <li key={layer.name}>\n <a>\n <div className='tw-tooltip tw-tooltip-left' data-tip={layer.menuText}>\n <button\n tabIndex={0}\n className='tw-z-500 tw-border-0 tw-pl-2 tw-p-0 tw-mb-3 tw-w-10 tw-h-10 tw-cursor-pointer tw-rounded-full tw-mouse tw-drop-shadow-md tw-transition tw-ease-in tw-duration-200 focus:tw-outline-none'\n style={{ backgroundColor: layer.menuColor || '#777' }}\n onClick={() => {\n triggerAction(layer)\n }}\n >\n <img\n src={layer.menuIcon}\n className='tw-h-6 tw-w-6 tw-text-white'\n style={{ filter: 'invert(100%) brightness(200%)' }}\n />\n </button>\n </div>\n </a>\n </li>\n ),\n )}\n </ul>\n </div>\n ) : (\n ''\n )}\n </>\n )\n}\n","import * as React from 'react'\nimport {\n useAddVisibleGroupType,\n useIsGroupTypeVisible,\n useToggleVisibleGroupType,\n useVisibleGroupType,\n} from '../../hooks/useFilter'\nimport { useEffect } from 'react'\n\nexport function FilterControl() {\n const [open, setOpen] = React.useState(false)\n\n const groupTypes = [\n { text: 'Regional Gruppe', value: 'wuerdekompass' },\n { text: 'Themen Gruppe', value: 'themenkompass' },\n { text: 'liebevoll.jetzt', value: 'liebevoll.jetzt' },\n ]\n\n useEffect(() => {\n groupTypes.map((layer) => addVisibleGroupType(layer.value))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const isGroupTypeVisible = useIsGroupTypeVisible()\n const toggleVisibleGroupType = useToggleVisibleGroupType()\n const addVisibleGroupType = useAddVisibleGroupType()\n const visibleGroupTypes = useVisibleGroupType()\n\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {open ? (\n <div className='tw-card-body tw-pr-4 tw-min-w-[8rem] tw-p-2 tw-w-fit tw-transition-all tw-duration-300'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setOpen(false)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <ul className='tw-flex-row'>\n {groupTypes.map((groupType) => (\n <li key={groupType.value}>\n <label\n htmlFor={groupType.value}\n className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'\n >\n <input\n id={groupType.value}\n onChange={() => toggleVisibleGroupType(groupType.value)}\n type='checkbox'\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isGroupTypeVisible(groupType.value)}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>\n {groupType.text}\n </span>\n </label>\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className='tw-indicator'>\n {visibleGroupTypes.length < groupTypes.length && (\n <span className='tw-indicator-item tw-badge tw-badge-success tw-h-4 tw-p-2 tw-translate-x-1/3 -tw-translate-y-1/3 tw-border-0'></span>\n )}\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n setOpen(true)\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={2.3}\n stroke='currentColor'\n className='size-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z'\n />\n </svg>\n </div>\n </div>\n )}\n </div>\n )\n}\n","import * as React from 'react'\nimport { useLayers } from '../../hooks/useLayers'\nimport { useIsLayerVisible, useToggleVisibleLayer } from '../../hooks/useFilter'\n\nexport function LayerControl() {\n const [open, setOpen] = React.useState(false)\n\n const layers = useLayers()\n\n const isLayerVisible = useIsLayerVisible()\n const toggleVisibleLayer = useToggleVisibleLayer()\n\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {open ? (\n <div className='tw-card-body tw-pr-4 tw-min-w-[8rem] tw-p-2 tw-transition-all tw-w-fit tw-duration-300'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setOpen(false)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <ul className='tw-flex-row'>\n {layers.map(\n (layer) =>\n layer.listed && (\n <li key={layer.name}>\n <label\n htmlFor={layer.name}\n className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'\n >\n <input\n id={layer.name}\n onChange={() => toggleVisibleLayer(layer)}\n type='checkbox'\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isLayerVisible(layer)}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>\n {layer.name}\n </span>\n </label>\n </li>\n ),\n )}\n </ul>\n </div>\n ) : (\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n setOpen(true)\n }}\n >\n <svg version='1.1' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'>\n <path\n id='svg_1'\n fill='currentColor'\n d='m2.75565,11.90727l-1.03852,0.28372c-0.77718,0.38859 -0.77718,1.0138 0,1.4023l7.0156,3.5078c0.77718,0.38859 2.0275,0.38859 2.8047,0l7.0156,-3.5078c0.77718,-0.38859 0.77718,-1.0138 0,-1.4023l-0.63311,-0.48643l-4.67718,2.23624c-1.5452,0.77262 -3.31877,1.58343 -4.86407,0.81081l-5.62302,-2.84434z'\n />\n <path\n id='svg_2'\n strokeWidth='2'\n stroke='currentColor'\n fill='none'\n d='m11.247,4.30851l6.2349,3.0877c0.69083,0.34211 0.69083,0.89295 0,1.2351l-6.2349,3.0877c-0.69083,0.34211 -1.8031,0.34212 -2.494,0l-6.2349,-3.0877c-0.69083,-0.34211 -0.69083,-0.89295 0,-1.2351l6.2349,-3.0877c0.69083,-0.34211 1.8031,-0.34211 2.494,0z'\n />\n </svg>\n </div>\n )}\n </div>\n )\n}\n","import { useNavigate } from 'react-router-dom'\nimport { useAuth } from '../../../Auth'\n\nexport const GratitudeControl = () => {\n const navigate = useNavigate()\n const { isAuthenticated } = useAuth()\n\n if (isAuthenticated) {\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n navigate('/select-user')\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={2.5}\n stroke='currentColor'\n className='size-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z'\n />\n </svg>\n </div>\n }\n </div>\n )\n } else return <></>\n}\n","export const SelectPosition = ({ setSelectNewItemPosition }: { setSelectNewItemPosition }) => {\n return (\n <div className='tw-animate-pulseGrow tw-button tw-z-1000 tw-absolute tw-right-5 tw-top-4 tw-drop-shadow-md'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setSelectNewItemPosition(null)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <div className='tw-alert tw-bg-base-100 tw-text-base-content'>\n <div>\n <span className='tw-text-lg'>Select position on the map!</span>\n </div>\n </div>\n </div>\n )\n}\n","export const urlRegex =\n // eslint-disable-next-line no-useless-escape\n /(^| )(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,10})?(\\/.*)?$/gm\nexport const mailRegex = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)/gi\n\nexport function fixUrls(message: string): string {\n message = message.replace(urlRegex, function (url) {\n let hyperlink = url.replace(' ', '')\n\n if (!hyperlink.match('^https?://')) {\n hyperlink = 'https://' + hyperlink\n }\n return hyperlink\n })\n\n return message\n}\n","import { Item } from '../../../../types'\nimport { useTags } from '../../hooks/useTags'\nimport { useAddFilterTag } from '../../hooks/useFilter'\nimport { hashTagRegex } from '../../../../Utils/HashTagRegex'\nimport { fixUrls, mailRegex } from '../../../../Utils/ReplaceURLs'\nimport Markdown from 'react-markdown'\nimport { getValue } from '../../../../Utils/GetValue'\nimport remarkBreaks from 'remark-breaks'\nimport { decodeTag } from '../../../../Utils/FormatTags'\nimport { memo } from 'react'\n\nexport const TextView = ({\n item,\n truncate = false,\n itemTextField,\n rawText,\n}: {\n item?: Item\n truncate?: boolean\n itemTextField?: string\n rawText?: string\n}) => {\n const tags = useTags()\n const addFilterTag = useAddFilterTag()\n\n let text = ''\n let replacedText = ''\n\n if (rawText) {\n text = replacedText = rawText\n } else if (itemTextField && item) {\n text = getValue(item, itemTextField)\n } else {\n text = item?.layer?.itemTextField && item ? getValue(item, item.layer?.itemTextField) : ''\n }\n\n if (item && text && truncate) text = truncateText(removeMarkdownKeepLinksAndParagraphs(text), 100)\n\n if (item && text) replacedText = fixUrls(text)\n\n if (replacedText) {\n replacedText = replacedText.replace(/(?<!\\]?\\()https?:\\/\\/[^\\s)]+(?!\\))/g, (url) => {\n let shortUrl = url\n\n if (url.match('^https://')) {\n shortUrl = url.split('https://')[1]\n }\n\n if (url.match('^http://')) {\n shortUrl = url.split('http://')[1]\n }\n\n return `[${shortUrl}](${url})`\n })\n }\n\n if (replacedText) {\n replacedText = replacedText.replace(mailRegex, (url) => {\n return `[${url}](mailto:${url})`\n })\n }\n\n if (replacedText) {\n replacedText = replacedText.replace(hashTagRegex, (match) => {\n return `[${match}](${match})`\n })\n }\n\n // eslint-disable-next-line react/prop-types\n const CustomH1 = ({ children }) => <h1 className='tw-text-xl tw-font-bold'>{children}</h1>\n // eslint-disable-next-line react/prop-types\n const CustomH2 = ({ children }) => <h2 className='tw-text-lg tw-font-bold'>{children}</h2>\n // eslint-disable-next-line react/prop-types\n const CustomH3 = ({ children }) => <h3 className='tw-text-base tw-font-bold'>{children}</h3>\n // eslint-disable-next-line react/prop-types\n const CustomH4 = ({ children }) => <h4 className='tw-text-base tw-font-bold'>{children}</h4>\n // eslint-disable-next-line react/prop-types\n const CustomH5 = ({ children }) => <h5 className='tw-text-sm tw-font-bold'>{children}</h5>\n // eslint-disable-next-line react/prop-types\n const CustomH6 = ({ children }) => <h6 className='tw-text-sm tw-font-bold'>{children}</h6>\n // eslint-disable-next-line react/prop-types\n const CustomParagraph = ({ children }) => <p className='!tw-my-2'>{children}</p>\n // eslint-disable-next-line react/prop-types\n const CustomUnorderdList = ({ children }) => (\n <ul className='tw-list-disc tw-list-inside'>{children}</ul>\n )\n // eslint-disable-next-line react/prop-types\n const CustomOrderdList = ({ children }) => (\n <ol className='tw-list-decimal tw-list-inside'>{children}</ol>\n )\n // eslint-disable-next-line react/prop-types\n const CustomHorizontalRow = ({ children }) => <hr className='tw-border-current'>{children}</hr>\n // eslint-disable-next-line react/prop-types\n const CustomImage = ({ alt, src, title }) => (\n <img className='tw-max-w-full tw-rounded tw-shadow' src={src} alt={alt} title={title} />\n )\n // eslint-disable-next-line react/prop-types\n const CustomExternalLink = ({ href, children }) => (\n <a className='tw-font-bold tw-underline' href={href} target='_blank' rel='noreferrer'>\n {' '}\n {children}\n </a>\n )\n /* eslint-disable react/prop-types */\n const CustomHashTagLink = ({ children, tag, item }) => {\n return (\n <a\n style={{ color: tag ? tag.color : '#faa', fontWeight: 'bold', cursor: 'pointer' }}\n key={tag ? tag.name + item!.id : item.id}\n onClick={(e) => {\n e.stopPropagation()\n addFilterTag(tag!)\n }}\n >\n {decodeTag(children)}\n </a>\n )\n }\n /* eslint-enable react/prop-types */\n\n // eslint-disable-next-line react/display-name\n const MemoizedVideoEmbed = memo(({ url }: { url: string }) => (\n <iframe\n className='tw-w-full'\n src={url}\n allow='fullscreen; picture-in-picture'\n allowFullScreen\n />\n ))\n\n return (\n <Markdown\n className={'tw-text-map tw-leading-map tw-text-sm'}\n remarkPlugins={[remarkBreaks]}\n components={{\n p: CustomParagraph,\n a: ({ href, children }) => {\n // eslint-disable-next-line react/prop-types\n const isYouTubeVideo = href?.startsWith('https://www.youtube.com/watch?v=')\n // eslint-disable-next-line react/prop-types\n const isRumbleVideo = href?.startsWith('https://rumble.com/embed/')\n\n if (isYouTubeVideo) {\n // eslint-disable-next-line react/prop-types\n const videoId = href?.split('v=')[1].split('&')[0]\n const youtubeEmbedUrl = `https://www.youtube-nocookie.com/embed/${videoId}`\n\n return <MemoizedVideoEmbed url={youtubeEmbedUrl}></MemoizedVideoEmbed>\n }\n if (isRumbleVideo) {\n return <MemoizedVideoEmbed url={href!}></MemoizedVideoEmbed>\n }\n // eslint-disable-next-line react/prop-types\n if (href?.startsWith('#')) {\n const tag = tags.find(\n (t) => t.name.toLowerCase() === decodeURI(href).slice(1).toLowerCase(),\n )\n return (\n <CustomHashTagLink tag={tag} item={item}>\n {children}\n </CustomHashTagLink>\n )\n } else {\n return <CustomExternalLink href={href}>{children}</CustomExternalLink>\n }\n },\n ul: CustomUnorderdList,\n ol: CustomOrderdList,\n img: CustomImage,\n hr: CustomHorizontalRow,\n h1: CustomH1,\n h2: CustomH2,\n h3: CustomH3,\n h4: CustomH4,\n h5: CustomH5,\n h6: CustomH6,\n }}\n >\n {replacedText}\n </Markdown>\n )\n}\n\nfunction removeMarkdownKeepLinksAndParagraphs(text) {\n // Remove Markdown syntax using regular expressions but keep links and paragraphs\n return text\n .replace(/!\\[.*?\\]\\(.*?\\)/g, '') // Remove images\n .replace(/(`{1,3})(.*?)\\1/g, '$2') // Remove inline code\n .replace(/(\\*{1,2}|_{1,2})(.*?)\\1/g, '$2') // Remove bold and italic\n .replace(/(#+)\\s+(.*)/g, '$2') // Remove headers\n .replace(/>\\s+(.*)/g, '$1') // Remove blockquotes\n .replace(/^\\s*\\n/gm, '\\n') // Preserve empty lines\n .replace(/(\\r\\n|\\n|\\r)/gm, '\\n') // Preserve line breaks\n}\n\nfunction truncateText(text, limit) {\n if (text.length <= limit) {\n return text\n }\n\n let truncated = ''\n let length = 0\n\n // Split the text by paragraphs\n const paragraphs = text.split('\\n')\n\n for (const paragraph of paragraphs) {\n if (length + paragraph.length > limit) {\n truncated += paragraph.slice(0, limit - length) + '...'\n break\n } else {\n truncated += paragraph + '\\n'\n length += paragraph.length\n }\n }\n\n return truncated.trim()\n}\n","import { TileLayer, MapContainer, useMapEvents, GeoJSON } from 'react-leaflet'\nimport 'leaflet/dist/leaflet.css'\nimport * as React from 'react'\nimport { UtopiaMapProps } from '../../types'\nimport './UtopiaMap.css'\nimport { LatLng } from 'leaflet'\nimport MarkerClusterGroup from 'react-leaflet-cluster'\nimport AddButton from './Subcomponents/AddButton'\nimport { useEffect, useRef, useState } from 'react'\nimport { ItemFormPopupProps } from './Subcomponents/ItemFormPopup'\nimport { SearchControl } from './Subcomponents/Controls/SearchControl'\nimport { Control } from './Subcomponents/Controls/Control'\nimport { Outlet } from 'react-router-dom'\nimport { TagsControl } from './Subcomponents/Controls/TagsControl'\nimport {\n useSelectPosition,\n useSetMapClicked,\n useSetSelectPosition,\n} from './hooks/useSelectPosition'\nimport { useClusterRef, useSetClusterRef } from './hooks/useClusterRef'\nimport { Feature, Geometry as GeoJSONGeometry } from 'geojson'\nimport { FilterControl } from './Subcomponents/Controls/FilterControl'\nimport { LayerControl } from './Subcomponents/Controls/LayerControl'\nimport { useLayers } from './hooks/useLayers'\nimport { useAddVisibleLayer } from './hooks/useFilter'\nimport { GratitudeControl } from './Subcomponents/Controls/GratitudeControl'\nimport { SelectPosition } from './Subcomponents/SelectPosition'\nimport { toast } from 'react-toastify'\nimport { TextView } from './Subcomponents/ItemPopupComponents/TextView'\n\nconst mapDivRef = React.createRef()\n\nexport function UtopiaMapInner({\n height = '500px',\n width = '100%',\n center = [50.6, 9.5],\n zoom = 10,\n children,\n geo,\n showFilterControl = false,\n showGratitudeControl = false,\n showLayerControl = true,\n infoText,\n}: UtopiaMapProps) {\n // Hooks that rely on contexts, called after ContextWrapper is provided\n const selectNewItemPosition = useSelectPosition()\n const setSelectNewItemPosition = useSetSelectPosition()\n const setClusterRef = useSetClusterRef()\n const clusterRef = useClusterRef()\n const setMapClicked = useSetMapClicked()\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null)\n\n const layers = useLayers()\n const addVisibleLayer = useAddVisibleLayer()\n\n useEffect(() => {\n layers.forEach((layer) => addVisibleLayer(layer))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [layers])\n\n const init = useRef(false)\n useEffect(() => {\n if (!init.current) {\n infoText &&\n setTimeout(() => {\n toast(<TextView rawText={infoText} />, { autoClose: false })\n }, 4000)\n init.current = true\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n function MapEventListener() {\n useMapEvents({\n click: (e) => {\n resetMetaTags()\n console.log(e.latlng.lat + ',' + e.latlng.lng)\n if (selectNewItemPosition) {\n setMapClicked({ position: e.latlng, setItemFormPopup })\n }\n },\n moveend: () => {},\n })\n return null\n }\n\n const resetMetaTags = () => {\n const params = new URLSearchParams(window.location.search)\n if (!window.location.pathname.includes('/item/')) {\n window.history.pushState({}, '', '/' + `${params.toString() !== '' ? `?${params}` : ''}`)\n }\n document.title = document.title.split('-')[0]\n document.querySelector('meta[property=\"og:title\"]')?.setAttribute('content', document.title)\n document\n .querySelector('meta[property=\"og:description\"]')\n ?.setAttribute(\n 'content',\n `${document.querySelector('meta[name=\"description\"]')?.getAttribute('content')}`,\n )\n }\n\n // eslint-disable-next-line no-undef\n const onEachFeature = (feature: Feature<GeoJSONGeometry, any>, layer: L.Layer) => {\n if (feature.properties) {\n layer.bindPopup(feature.properties.name)\n }\n }\n\n return (\n <div\n className={`tw-h-full ${selectNewItemPosition != null ? 'crosshair-cursor-enabled' : undefined}`}\n >\n <MapContainer\n ref={mapDivRef}\n style={{ height, width }}\n center={new LatLng(center[0], center[1])}\n zoom={zoom}\n zoomControl={false}\n maxZoom={19}\n >\n <Outlet />\n <Control position='topLeft' zIndex='1000' absolute>\n <SearchControl />\n <TagsControl />\n </Control>\n <Control position='bottomLeft' zIndex='999' absolute>\n {showFilterControl && <FilterControl />}\n {showLayerControl && <LayerControl />}\n {showGratitudeControl && <GratitudeControl />}\n </Control>\n <TileLayer\n maxZoom={19}\n attribution='&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n url='https://tile.osmand.net/hd/{z}/{x}/{y}.png'\n />\n <MarkerClusterGroup\n ref={(r) => setClusterRef(r)}\n showCoverageOnHover\n chunkedLoading\n maxClusterRadius={50}\n removeOutsideVisibleBounds={false}\n >\n {React.Children.toArray(children).map((child) =>\n React.isValidElement<{\n setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps>>\n itemFormPopup: ItemFormPopupProps | null\n clusterRef: React.MutableRefObject<undefined>\n }>(child)\n ? React.cloneElement(child, { setItemFormPopup, itemFormPopup, clusterRef })\n : child,\n )}\n </MarkerClusterGroup>\n {geo && (\n <GeoJSON\n data={geo}\n onEachFeature={onEachFeature}\n eventHandlers={{\n click: (e) => {\n if (selectNewItemPosition) {\n e.layer!.closePopup()\n setMapClicked({ position: e.latlng, setItemFormPopup })\n }\n },\n }}\n />\n )}\n <MapEventListener />\n </MapContainer>\n <AddButton triggerAction={setSelectNewItemPosition} />\n {selectNewItemPosition != null && (\n <SelectPosition setSelectNewItemPosition={setSelectNewItemPosition} />\n )}\n </div>\n )\n}\n","import { UtopiaMapProps } from '../../types'\nimport { ContextWrapper } from '../AppShell/ContextWrapper'\nimport { UtopiaMapInner } from './UtopiaMapInner'\nimport 'react-toastify/dist/ReactToastify.css'\n\nfunction UtopiaMap(props: UtopiaMapProps) {\n return (\n <ContextWrapper>\n <UtopiaMapInner {...props} />\n </ContextWrapper>\n )\n}\n\nexport { UtopiaMap }\n","import * as React from 'react'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { Item } from '../../../types'\nimport { ItemFormPopupProps } from './ItemFormPopup'\nimport { HeaderView } from './ItemPopupComponents/HeaderView'\nimport { TextView } from './ItemPopupComponents/TextView'\nimport { timeAgo } from '../../../Utils/TimeAgo'\nimport { useState } from 'react'\nimport { LatLng } from 'leaflet'\nimport { useNavigate } from 'react-router-dom'\nimport { useRemoveItem, useUpdateItem } from '../hooks/useItems'\nimport { toast } from 'react-toastify'\nimport { useSetSelectPosition } from '../hooks/useSelectPosition'\n\nexport interface ItemViewPopupProps {\n item: Item\n children?: React.ReactNode\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\n// eslint-disable-next-line react/display-name\nexport const ItemViewPopup = React.forwardRef((props: ItemViewPopupProps, ref: any) => {\n const map = useMap()\n const [loading, setLoading] = React.useState<boolean>(false)\n const removeItem = useRemoveItem()\n const updadateItem = useUpdateItem()\n const navigate = useNavigate()\n const setSelectPosition = useSetSelectPosition()\n\n const [infoExpanded, setInfoExpanded] = useState<boolean>(false)\n\n const handleEdit = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation()\n map.closePopup()\n props.setItemFormPopup &&\n props.setItemFormPopup({\n position: new LatLng(\n props.item.position?.coordinates[1]!,\n props.item.position?.coordinates[0]!,\n ),\n layer: props.item.layer!,\n item: props.item,\n setItemFormPopup: props.setItemFormPopup,\n })\n }\n\n const handleDelete = async (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation()\n setLoading(true)\n let success = false\n try {\n !props.item.layer?.onlyOnePerOwner &&\n (await props.item.layer?.api?.deleteItem!(props.item.id))\n props.item.layer?.onlyOnePerOwner &&\n (await props.item.layer.api?.updateItem!({ id: props.item.id, position: null }))\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n !props.item.layer?.onlyOnePerOwner && removeItem(props.item)\n props.item.layer?.onlyOnePerOwner && updadateItem({ ...props.item, position: undefined })\n toast.success('Item deleted')\n }\n setLoading(false)\n map.closePopup()\n const params = new URLSearchParams(window.location.search)\n window.history.pushState({}, '', '/' + `${params ? `?${params}` : ''}`)\n navigate('/')\n }\n\n return (\n <LeafletPopup ref={ref} maxHeight={377} minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}>\n <div className='tw-bg-base-100 tw-text-base-content'>\n <HeaderView\n api={props.item.layer?.api}\n item={props.item}\n editCallback={handleEdit}\n deleteCallback={handleDelete}\n setPositionCallback={() => {\n map.closePopup()\n setSelectPosition(props.item)\n navigate('/')\n }}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n {props.children ? (\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement<{ item: Item; test: string }>(child)\n ? React.cloneElement(child, { item: props.item })\n : '',\n )\n ) : (\n <TextView item={props.item} />\n )}\n </div>\n <div className='tw-flex -tw-mb-1 tw-flex-row tw-mr-2 tw-mt-1'>\n {infoExpanded ? (\n <p\n className={'tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500'}\n >{`${props.item.date_updated && props.item.date_updated !== props.item.date_created ? 'updated' : 'posted'} ${props.item && props.item.user_created && props.item.user_created.first_name ? `by ${props.item.user_created.first_name}` : ''} ${props.item.date_updated ? timeAgo(props.item.date_updated) : timeAgo(props.item.date_created!)}`}</p>\n ) : (\n <p\n className='!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500'\n onClick={() => setInfoExpanded(true)}\n >\n ⓘ\n </p>\n )}\n <div className='tw-grow'></div>\n {\n //* * <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\" className=\"tw-place-self-end tw-w-4 tw-h-4 tw-mb-1 tw-cursor-pointer\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15\" /></svg> */\n }\n </div>\n </div>\n </LeafletPopup>\n )\n})\n","import * as React from 'react'\nimport { LatLng } from 'leaflet'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { useEffect, useRef, useState } from 'react'\nimport { useAddItem, useItems, useRemoveItem, useUpdateItem } from '../hooks/useItems'\nimport { Geometry, LayerProps, Item } from '../../../types'\nimport { TextAreaInput } from '../../Input/TextAreaInput'\nimport { TextInput } from '../../Input/TextInput'\nimport { toast } from 'react-toastify'\nimport { useResetFilterTags } from '../hooks/useFilter'\nimport { hashTagRegex } from '../../../Utils/HashTagRegex'\nimport { randomColor } from '../../../Utils/RandomColor'\nimport { useAddTag, useTags } from '../hooks/useTags'\nimport { useAuth } from '../../Auth'\n\nexport interface ItemFormPopupProps {\n position: LatLng\n layer: LayerProps\n item?: Item\n children?: React.ReactNode\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\nexport function ItemFormPopup(props: ItemFormPopupProps) {\n const [spinner, setSpinner] = useState(false)\n\n // eslint-disable-next-line no-unused-vars\n const [popupTitle, setPopupTitle] = useState<string>('')\n\n const formRef = useRef<HTMLFormElement>(null)\n\n const map = useMap()\n\n const addItem = useAddItem()\n const updateItem = useUpdateItem()\n const items = useItems()\n // eslint-disable-next-line no-unused-vars\n const removeItem = useRemoveItem()\n\n const tags = useTags()\n const addTag = useAddTag()\n\n const resetFilterTags = useResetFilterTags()\n\n const { user } = useAuth()\n\n const handleSubmit = async (evt: any) => {\n const formItem: Item = {} as Item\n Array.from(evt.target).forEach((input: HTMLInputElement) => {\n if (input.name) {\n formItem[input.name] = input.value\n }\n })\n formItem.position = new Geometry(props.position.lng, props.position.lat)\n evt.preventDefault()\n setSpinner(true)\n\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\n })\n\n if (props.item) {\n let success = false\n try {\n await props.layer.api?.updateItem!({ ...formItem, id: props.item.id })\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n console.log(props.item)\n\n updateItem({ ...props.item, ...formItem })\n toast.success('Item updated')\n }\n setSpinner(false)\n map.closePopup()\n } else {\n const item = items.find(\n (i) =>\n i.user_created?.id === user?.id && i.layer?.itemType.name === props.layer.itemType.name,\n )\n\n const uuid = crypto.randomUUID()\n let success = false\n try {\n props.layer.onlyOnePerOwner &&\n item &&\n (await props.layer.api?.updateItem!({ ...formItem, id: item?.id }))\n ;(!props.layer.onlyOnePerOwner || !item) &&\n (await props.layer.api?.createItem!({\n ...formItem,\n id: uuid,\n name: formItem.name ? formItem.name : user?.first_name,\n }))\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n if (props.layer.onlyOnePerOwner && item) updateItem({ ...item, ...formItem })\n if (!props.layer.onlyOnePerOwner || !item) {\n addItem({\n ...formItem,\n name: formItem.name ? formItem.name : user?.first_name,\n user_created: user,\n type: props.layer.itemType,\n id: uuid,\n layer: props.layer,\n public_edit: !user,\n })\n }\n toast.success('New item created')\n resetFilterTags()\n }\n setSpinner(false)\n map.closePopup()\n }\n props.setItemFormPopup!(null)\n }\n\n const resetPopup = () => {\n if (formRef.current) {\n formRef.current.reset()\n }\n }\n\n useEffect(() => {\n resetPopup()\n }, [props.position])\n\n return (\n <LeafletPopup\n minWidth={275}\n maxWidth={275}\n autoPanPadding={[20, 80]}\n eventHandlers={{\n remove: () => {\n setTimeout(function () {\n resetPopup()\n }, 100)\n },\n }}\n position={props.position}\n >\n <form ref={formRef} onReset={resetPopup} autoComplete='off' onSubmit={(e) => handleSubmit(e)}>\n {props.item ? (\n <div className='tw-h-3'></div>\n ) : (\n <div className='tw-flex tw-justify-center'>\n <b className='tw-text-xl tw-text-center tw-font-bold'>{props.layer.menuText}</b>\n </div>\n )}\n\n {props.children ? (\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement<{\n item: Item\n test: string\n setPopupTitle: React.Dispatch<React.SetStateAction<string>>\n }>(child)\n ? React.cloneElement(child, {\n item: props.item,\n key: props.position.toString(),\n setPopupTitle,\n })\n : '',\n )\n ) : (\n <>\n <TextInput\n type='text'\n placeholder='Name'\n dataField='name'\n defaultValue={props.item ? props.item.name : ''}\n inputStyle=''\n />\n <TextAreaInput\n key={props.position.toString()}\n placeholder='Text'\n dataField='text'\n defaultValue={props.item ? props.item.text : ''}\n inputStyle='tw-h-40 tw-mt-5'\n />\n </>\n )}\n\n <div className='tw-flex tw-justify-center'>\n <button\n className={\n spinner\n ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'\n : 'tw-btn tw-mt-5 tw-place-self-center'\n }\n type='submit'\n >\n {spinner ? <span className='tw-loading tw-loading-spinner'></span> : 'Save'}\n </button>\n </div>\n </form>\n </LeafletPopup>\n )\n}\n","import * as React from 'react'\nimport { Marker, Tooltip, useMap, useMapEvents } from 'react-leaflet'\nimport { Item, LayerProps, Tag } from '../../types'\nimport MarkerIconFactory from '../../Utils/MarkerIconFactory'\nimport { ItemViewPopup } from './Subcomponents/ItemViewPopup'\nimport { useAllItemsLoaded, useItems, useSetItemsApi, useSetItemsData } from './hooks/useItems'\nimport { useEffect, useState } from 'react'\nimport { ItemFormPopup } from './Subcomponents/ItemFormPopup'\nimport {\n useFilterTags,\n useIsGroupTypeVisible,\n useIsLayerVisible,\n useVisibleGroupType,\n} from './hooks/useFilter'\nimport { useAddTag, useAllTagsLoaded, useGetItemTags, useTags } from './hooks/useTags'\nimport { useAddMarker, useAddPopup, useLeafletRefs } from './hooks/useLeafletRefs'\nimport { Popup } from 'leaflet'\nimport { useLocation } from 'react-router-dom'\nimport { getValue } from '../../Utils/GetValue'\nimport { hashTagRegex } from '../../Utils/HashTagRegex'\nimport { randomColor } from '../../Utils/RandomColor'\nimport { encodeTag } from '../../Utils/FormatTags'\nimport { useSelectPosition, useSetMarkerClicked } from './hooks/useSelectPosition'\n\nexport const Layer = ({\n data,\n children,\n name = 'places',\n menuIcon = 'MapPinIcon',\n menuText = 'add new place',\n menuColor = '#2E7D32',\n markerIcon = 'circle-solid',\n markerShape = 'circle',\n markerDefaultColor = '#777',\n markerDefaultColor2 = 'RGBA(35, 31, 32, 0.2)',\n api,\n itemType,\n itemNameField = 'name',\n itemSubnameField,\n itemTextField = 'text',\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemLatitudeField = 'position.coordinates.1',\n itemLongitudeField = 'position.coordinates.0',\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner = false,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed = true,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n}: LayerProps) => {\n const filterTags = useFilterTags()\n\n const items = useItems()\n const setItemsApi = useSetItemsApi()\n const setItemsData = useSetItemsData()\n const getItemTags = useGetItemTags()\n const addMarker = useAddMarker()\n const addPopup = useAddPopup()\n const leafletRefs = useLeafletRefs()\n\n const location = useLocation()\n\n const allTagsLoaded = useAllTagsLoaded()\n const allItemsLoaded = useAllItemsLoaded()\n\n const setMarkerClicked = useSetMarkerClicked()\n const selectPosition = useSelectPosition()\n\n const tags = useTags()\n const addTag = useAddTag()\n const [newTagsToAdd, setNewTagsToAdd] = useState<Tag[]>([])\n const [tagsReady, setTagsReady] = useState<boolean>(false)\n\n const map = useMap()\n\n const isLayerVisible = useIsLayerVisible()\n\n const isGroupTypeVisible = useIsGroupTypeVisible()\n\n const visibleGroupTypes = useVisibleGroupType()\n\n useEffect(() => {\n data &&\n setItemsData({\n data,\n children,\n name,\n menuIcon,\n menuText,\n menuColor,\n markerIcon,\n markerShape,\n markerDefaultColor,\n markerDefaultColor2,\n api,\n itemType,\n itemNameField,\n itemSubnameField,\n itemTextField,\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n })\n api &&\n setItemsApi({\n data,\n children,\n name,\n menuIcon,\n menuText,\n menuColor,\n markerIcon,\n markerShape,\n markerDefaultColor,\n markerDefaultColor2,\n api,\n itemType,\n itemNameField,\n itemSubnameField,\n itemTextField,\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, api])\n\n useMapEvents({\n popupopen: (e) => {\n const item = Object.entries(leafletRefs).find((r) => r[1].popup === e.popup)?.[1].item\n if (item?.layer?.name === name && window.location.pathname.split('/')[1] !== item.id) {\n const params = new URLSearchParams(window.location.search)\n if (!location.pathname.includes('/item/')) {\n window.history.pushState(\n {},\n '',\n `/${item.id}` + `${params.toString() !== '' ? `?${params}` : ''}`,\n )\n }\n let title = ''\n if (item.name) title = item.name\n else if (item.layer?.itemNameField) title = getValue(item, item.layer.itemNameField)\n document.title = `${document.title.split('-')[0]} - ${title}`\n }\n },\n })\n\n const openPopup = () => {\n if (\n window.location.pathname.split('/').length <= 1 ||\n window.location.pathname.split('/')[1] === ''\n ) {\n map.closePopup()\n } else {\n if (window.location.pathname.split('/')[1]) {\n const id = window.location.pathname.split('/')[1]\n const ref = leafletRefs[id]\n if (ref?.marker && ref.item.layer?.name === name) {\n ref.marker &&\n clusterRef.hasLayer(ref.marker) &&\n clusterRef?.zoomToShowLayer(ref.marker, () => {\n ref.marker.openPopup()\n })\n let title = ''\n if (ref.item.name) title = ref.item.name\n else if (ref.item.layer?.itemNameField)\n title = getValue(ref.item.name, ref.item.layer.itemNameField)\n document.title = `${document.title.split('-')[0]} - ${title}`\n document\n .querySelector('meta[property=\"og:title\"]')\n ?.setAttribute('content', ref.item.name)\n document\n .querySelector('meta[property=\"og:description\"]')\n ?.setAttribute('content', ref.item.text)\n }\n }\n }\n }\n\n useEffect(() => {\n openPopup()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [leafletRefs, location])\n\n useEffect(() => {\n if (tagsReady) {\n const processedTags = {}\n newTagsToAdd.map((newtag) => {\n if (!processedTags[newtag.name]) {\n processedTags[newtag.name] = true\n addTag(newtag)\n }\n return null\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tagsReady])\n\n return (\n <>\n {items &&\n items\n .filter((item) => item.layer?.name === name)\n ?.filter((item) =>\n filterTags.length === 0\n ? item\n : filterTags.some((tag) =>\n getItemTags(item).some(\n (filterTag) =>\n filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase(),\n ),\n ),\n )\n ?.filter((item) => item.layer && isLayerVisible(item.layer))\n .filter(\n (item) =>\n (item.group_type && isGroupTypeVisible(item.group_type)) ||\n visibleGroupTypes.length === 0,\n )\n .map((item: Item) => {\n if (getValue(item, itemLongitudeField) && getValue(item, itemLatitudeField)) {\n if (getValue(item, itemTextField)) item[itemTextField] = getValue(item, itemTextField)\n else item[itemTextField] = ''\n\n if (item?.tags) {\n item[itemTextField] = item[itemTextField] + '\\n\\n'\n item.tags.map((tag) => {\n if (!item[itemTextField].includes(`#${encodeTag(tag)}`)) {\n return (item[itemTextField] = item[itemTextField] + `#${encodeTag(tag)} `)\n }\n return item[itemTextField]\n })\n }\n\n if (allTagsLoaded && allItemsLoaded) {\n item[itemTextField].match(hashTagRegex)?.map((tag) => {\n if (\n !tags.find(\n (t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase(),\n ) &&\n !newTagsToAdd.find(\n (t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase(),\n )\n ) {\n const newTag = {\n id: crypto.randomUUID(),\n name: tag.slice(1),\n color: randomColor(),\n }\n setNewTagsToAdd((current) => [...current, newTag])\n }\n return null\n })\n !tagsReady && setTagsReady(true)\n }\n\n const itemTags = getItemTags(item)\n\n const latitude =\n itemLatitudeField && item ? getValue(item, itemLatitudeField) : undefined\n const longitude =\n itemLongitudeField && item ? getValue(item, itemLongitudeField) : undefined\n\n let color1 = markerDefaultColor\n let color2 = markerDefaultColor2\n if (itemColorField && getValue(item, itemColorField) != null)\n color1 = getValue(item, itemColorField)\n else if (itemTags && itemTags[0]) {\n color1 = itemTags[0].color\n }\n if (itemTags && itemTags[0] && itemColorField) color2 = itemTags[0].color\n else if (itemTags && itemTags[1]) {\n color2 = itemTags[1].color\n }\n return (\n <Marker\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].marker === r)) {\n r && addMarker(item, r)\n }\n }}\n eventHandlers={{\n click: () => {\n selectPosition && setMarkerClicked(item)\n },\n }}\n icon={MarkerIconFactory(\n markerShape,\n color1,\n color2,\n item.markerIcon ? item.markerIcon : markerIcon,\n )}\n key={item.id}\n position={[latitude, longitude]}\n >\n {children &&\n React.Children.toArray(children).some(\n (child) => React.isValidElement(child) && child.props.__TYPE === 'ItemView',\n ) ? (\n React.Children.toArray(children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === 'ItemView' ? (\n <ItemViewPopup\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup === r)) {\n r && addPopup(item, r as Popup)\n }\n }}\n key={item.id + item.name}\n item={item}\n setItemFormPopup={setItemFormPopup}\n >\n {child}\n </ItemViewPopup>\n ) : (\n ''\n ),\n )\n ) : (\n <>\n <ItemViewPopup\n key={item.id + item.name}\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup === r)) {\n r && addPopup(item, r as Popup)\n }\n }}\n item={item}\n setItemFormPopup={setItemFormPopup}\n />\n </>\n )}\n <Tooltip offset={[0, -38]} direction='top'>\n {item.name ? item.name : getValue(item, itemNameField)}\n </Tooltip>\n </Marker>\n )\n } else return null\n })}\n {\n // {children}}\n }\n {itemFormPopup &&\n itemFormPopup.layer!.name === name &&\n (children &&\n React.Children.toArray(children).some(\n (child) => React.isValidElement(child) && child.props.__TYPE === 'ItemForm',\n ) ? (\n React.Children.toArray(children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === 'ItemForm' ? (\n <ItemFormPopup\n key={setItemFormPopup?.name}\n position={itemFormPopup!.position}\n layer={itemFormPopup!.layer}\n setItemFormPopup={setItemFormPopup}\n item={itemFormPopup!.item}\n >\n {child}\n </ItemFormPopup>\n ) : (\n ''\n ),\n )\n ) : (\n <>\n <ItemFormPopup\n position={itemFormPopup!.position}\n layer={itemFormPopup!.layer}\n setItemFormPopup={setItemFormPopup}\n item={itemFormPopup!.item}\n />\n </>\n ))}\n </>\n )\n}\n","import * as React from 'react'\nimport { useEffect } from 'react'\nimport { ItemsApi, Tag } from '../../types'\nimport { useSetTagData, useSetTagApi, useTags } from './hooks/useTags'\nimport { useLocation } from 'react-router-dom'\nimport { useAddFilterTag, useFilterTags, useResetFilterTags } from './hooks/useFilter'\n\nexport function Tags({ data, api }: { data?: Tag[]; api?: ItemsApi<Tag> }) {\n const setTagData = useSetTagData()\n const setTagApi = useSetTagApi()\n\n useEffect(() => {\n data && setTagData(data)\n api && setTagApi(api)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [api, data])\n\n const location = useLocation()\n const addFilterTag = useAddFilterTag()\n const resetFilterTags = useResetFilterTags()\n const tags = useTags()\n const filterTags = useFilterTags()\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTags = params.get('tags')\n const decodedTags = urlTags ? decodeURIComponent(urlTags) : ''\n const decodedTagsArray = decodedTags.split(';')\n if (\n decodedTagsArray?.some(\n (ut) => !filterTags.find((ft) => ut.toLocaleLowerCase() === ft.name.toLocaleLowerCase()),\n ) ||\n filterTags?.some(\n (ft) =>\n !decodedTagsArray?.find((ut) => ut.toLocaleLowerCase() === ft.name.toLocaleLowerCase()),\n )\n ) {\n resetFilterTags()\n decodedTagsArray?.map((urlTag) => {\n const tag = tags.find((t) => t.name.toLocaleLowerCase() === urlTag.toLocaleLowerCase())\n tag && addFilterTag(tag)\n return null\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location, tags])\n\n return <></>\n}\n","import * as React from 'react'\nimport { useEffect } from 'react'\nimport { ItemsApi, Permission } from '../../types'\nimport { useSetPermissionData, useSetPermissionApi, useSetAdminRole } from './hooks/usePermissions'\nimport { useAuth } from '../Auth'\n\nexport function Permissions({\n data,\n api,\n adminRole,\n}: {\n data?: Permission[]\n api?: ItemsApi<Permission>\n adminRole?: string\n}) {\n const setPermissionData = useSetPermissionData()\n const setPermissionApi = useSetPermissionApi()\n const setAdminRole = useSetAdminRole()\n const { user } = useAuth()\n\n useEffect(() => {\n adminRole && setAdminRole(adminRole)\n data && setPermissionData(data)\n api && setPermissionApi(api)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [api, data, adminRole, user])\n\n return <></>\n}\n","import * as React from 'react'\nimport { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\nimport { useEffect } from 'react'\n\nexport const ItemForm = ({\n children,\n item,\n title,\n setPopupTitle,\n}: {\n children?: React.ReactNode\n item?: Item\n title?: string\n setPopupTitle?: React.Dispatch<React.SetStateAction<string>>\n}) => {\n useEffect(() => {\n setPopupTitle && title && setPopupTitle(title)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [title])\n\n return (\n <div>\n {children\n ? React.Children.toArray(children).map((child) =>\n React.isValidElement<{ item: Item; test: string }>(child)\n ? React.cloneElement(child, { item, test: 'test' })\n : '',\n )\n : ''}\n </div>\n )\n}\n\nItemForm.propTypes = {\n children: PropTypes.node,\n __TYPE: PropTypes.string,\n}\n\nItemForm.defaultProps = {\n __TYPE: 'ItemForm',\n}\n","import * as React from 'react'\nimport { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\n\nexport const ItemView = ({ children, item }: { children?: React.ReactNode; item?: Item }) => {\n return (\n <div>\n {children\n ? React.Children.toArray(children).map((child) =>\n React.isValidElement<{ item: Item }>(child) ? React.cloneElement(child, { item }) : '',\n )\n : ''}\n </div>\n )\n}\n\nItemView.propTypes = {\n children: PropTypes.node,\n __TYPE: PropTypes.string,\n}\n\nItemView.defaultProps = {\n __TYPE: 'ItemView',\n}\n","import * as React from 'react'\nimport { TextAreaInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\nexport const PopupTextAreaInput = ({\n dataField,\n placeholder,\n style,\n item,\n}: {\n dataField: string\n placeholder: string\n style?: string\n item?: Item\n}) => {\n return (\n <TextAreaInput\n defaultValue={item?.text ? item.text : ''}\n dataField={dataField}\n placeholder={placeholder}\n inputStyle={style}\n ></TextAreaInput>\n )\n}\n","import * as React from 'react'\nimport { TextInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\ntype StartEndInputProps = {\n item?: Item\n showLabels?: boolean\n updateStartValue?: (value: string) => void\n updateEndValue?: (value: string) => void\n}\n\nexport const PopupStartEndInput = ({\n item,\n showLabels = true,\n updateStartValue,\n updateEndValue,\n}: StartEndInputProps) => {\n return (\n <div className='tw-grid tw-grid-cols-2 tw-gap-2'>\n <TextInput\n type='date'\n placeholder='start'\n dataField='start'\n inputStyle='tw-text-sm tw-px-2'\n labelTitle={showLabels ? 'start' : ''}\n defaultValue={item && item.start ? item.start.substring(0, 10) : ''}\n autocomplete='one-time-code'\n updateFormValue={updateStartValue}\n ></TextInput>\n <TextInput\n type='date'\n placeholder='end'\n dataField='end'\n inputStyle='tw-text-sm tw-px-2'\n labelTitle={showLabels ? 'end' : ''}\n defaultValue={item && item.end ? item.end.substring(0, 10) : ''}\n autocomplete='one-time-code'\n updateFormValue={updateEndValue}\n ></TextInput>\n </div>\n )\n}\n","import * as React from 'react'\nimport { TextInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\nexport const PopupTextInput = ({\n dataField,\n placeholder,\n style,\n item,\n}: {\n dataField: string\n placeholder: string\n style?: string\n item?: Item\n}) => {\n return (\n <TextInput\n defaultValue={item?.name ? item.name : ''}\n dataField={dataField}\n placeholder={placeholder}\n inputStyle={style}\n type='text'\n containerStyle={'tw-mt-4'}\n ></TextInput>\n )\n}\n","import { Item } from '../../../../types'\n\nexport const PopupCheckboxInput = ({\n dataField,\n label,\n item,\n}: {\n dataField: string\n label: string\n item?: Item\n}) => {\n return (\n <label htmlFor={item?.id} className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'>\n <input\n id={item?.id}\n type='checkbox'\n name={dataField}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={item?.public_edit}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>{label}</span>\n </label>\n )\n}\n","import * as React from 'react'\nimport { Item } from '../../../../types'\n\nexport const StartEndView = ({ item }: { item?: Item }) => {\n return (\n <div className='tw-flex tw-flex-row tw-mb-4 tw-mt-1'>\n <div className='tw-basis-2/5 tw-flex tw-flex-row'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-4 tw-w-4 tw-mr-2'\n fill='none'\n viewBox='0 0 24 24'\n stroke='currentColor'\n strokeWidth={2}\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z'\n />\n </svg>\n <time\n className='tw-align-middle'\n dateTime={item && item.start ? item.start.substring(0, 10) : ''}\n >\n {item && item.start ? new Date(item.start).toLocaleDateString() : ''}\n </time>\n </div>\n <div className='tw-basis-1/5 tw-place-content-center'>\n <span>-</span>\n </div>\n <div className='tw-basis-2/5 tw-flex tw-flex-row'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-4 tw-w-4 tw-mr-2'\n fill='none'\n viewBox='0 0 24 24'\n stroke='currentColor'\n strokeWidth={2}\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z'\n />\n </svg>\n <time\n className='tw-align-middle'\n dateTime={item && item.end ? item.end.substring(0, 10) : ''}\n >\n {item && item.end ? new Date(item.end).toLocaleDateString() : ''}\n </time>\n </div>\n </div>\n )\n}\n","import { Link } from 'react-router-dom'\nimport { getValue } from '../../../../Utils/GetValue'\nimport { Item } from '../../../../types'\nimport { useGetItemTags } from '../../hooks/useTags'\n\nexport const PopupButton = ({\n url,\n parameterField,\n text,\n colorField,\n item,\n}: {\n url: string\n parameterField?: string\n text: string\n colorField?: string\n item?: Item\n}) => {\n const params = new URLSearchParams(window.location.search)\n const getItemTags = useGetItemTags()\n\n return (\n <Link to={`${url}/${parameterField ? getValue(item, parameterField) : ''}?${params}`}>\n <button\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : item && getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor}`,\n }}\n className='tw-btn tw-text-white tw-btn-sm tw-float-right tw-mt-1'\n >\n {text}\n </button>\n </Link>\n )\n}\n","import { useAuth } from '../Auth'\nimport { Link, useLocation } from 'react-router-dom'\nimport { toast } from 'react-toastify'\nimport QuestionMarkIcon from '@heroicons/react/24/outline/QuestionMarkCircleIcon'\nimport { useEffect, useRef, useState } from 'react'\nimport { useItems } from '../Map/hooks/useItems'\nimport { Item } from '../../types'\n\nexport default function NavBar({ appName, userType }: { appName: string; userType: string }) {\n const { isAuthenticated, user, logout } = useAuth()\n\n const [userProfile, setUserProfile] = useState<Item>({} as Item)\n const items = useItems()\n\n useEffect(() => {\n const profile =\n user &&\n items.find((i) => i.user_created?.id === user.id && i.layer?.itemType.name === userType)\n profile\n ? setUserProfile(profile)\n : setUserProfile({ id: crypto.randomUUID(), name: user?.first_name, text: '' })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [user, items])\n\n useEffect(() => {}, [userProfile])\n\n const nameRef = useRef<any>(null)\n const [nameWidth, setNameWidth] = useState<number>(0)\n const location = useLocation()\n const [showNav, setShowNav] = useState<boolean>(false)\n\n useEffect(() => {\n showNav && nameRef && setNameWidth(nameRef.current.scrollWidth)\n }, [nameRef, appName, showNav])\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setShowNav(true)\n }, [location])\n\n const onLogout = () => {\n toast.promise(logout(), {\n success: {\n render() {\n return 'Bye bye'\n },\n // other options\n icon: '👋',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n pending: 'logging out ..',\n })\n }\n\n if (showNav) {\n return (\n <>\n <div className='tw-navbar tw-bg-base-100 tw-z-[10000] tw-shadow-xl tw-relative'>\n <button\n className='tw-btn tw-btn-square tw-btn-ghost'\n data-te-sidenav-toggle-ref\n data-te-target='#sidenav'\n aria-controls='#sidenav'\n aria-haspopup='true'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n className='tw-inline-block tw-w-5 tw-h-5 tw-stroke-current'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='2'\n d='M4 6h16M4 12h16M4 18h16'\n ></path>\n </svg>\n </button>\n <div className='tw-flex-1 tw-mr-2'>\n <div\n className={'tw-flex-1 tw-truncate tw-grid tw-grid-flow-col'}\n style={{ maxWidth: nameWidth + 60 }}\n >\n <Link\n className='tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate'\n to={'/'}\n >\n <h1 ref={nameRef} className='tw-truncate'>\n {appName}\n </h1>\n </Link>\n <button\n className='tw-btn tw-px-2 tw-btn-ghost'\n onClick={() => window.my_modal_3.showModal()}\n >\n <QuestionMarkIcon className='tw-h-5 tw-w-5' />\n </button>\n </div>\n </div>\n\n {isAuthenticated ? (\n <div className='tw-flex-none'>\n <Link\n to={`${userProfile.id && '/item/' + userProfile.id}`}\n className='tw-flex tw-items-center'\n >\n {userProfile?.image && (\n <div className='tw-avatar'>\n <div className='tw-w-10 tw-rounded-full'>\n <img src={'https://api.utopia-lab.org/assets/' + userProfile.image} />\n </div>\n </div>\n )}\n <div className='tw-ml-2 tw-mr-2'>{userProfile.name || user?.first_name}</div>\n </Link>\n <div className='tw-dropdown tw-dropdown-end'>\n <label tabIndex={0} className='tw-btn tw-btn-ghost tw-btn-square'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path d='M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z' />\n </svg>\n </label>\n <ul\n tabIndex={0}\n className='tw-menu tw-menu-compact tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]'\n >\n <li>\n <Link to={`${userProfile.id && '/edit-item/' + userProfile.id}`}>Profile</Link>\n </li>\n <li>\n <Link to={'/user-settings'}>Settings</Link>\n </li>\n <li>\n <a\n onClick={() => {\n onLogout()\n }}\n >\n Logout\n </a>\n </li>\n </ul>\n </div>\n </div>\n ) : (\n <div>\n <div className='tw-hidden md:tw-flex'>\n <Link to={'/login'}>\n <div className='tw-btn tw-btn-ghost tw-mr-2'>Login</div>\n </Link>\n\n <Link to={'/signup'}>\n <div className='tw-btn tw-btn-ghost tw-mr-2'>Sign Up</div>\n </Link>\n </div>\n <div className='tw-dropdown tw-dropdown-end'>\n <label tabIndex={1} className='tw-btn tw-btn-ghost md:tw-hidden'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path d='M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z' />\n </svg>\n </label>\n <ul\n tabIndex={1}\n className='tw-menu tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]'\n >\n <li>\n <Link to={'/login'}>Login</Link>\n </li>\n <li>\n <Link to={'/signup'}>Sign Up</Link>\n </li>\n </ul>\n </div>\n </div>\n )}\n </div>\n </>\n )\n } else return <></>\n}\n","import { useSetAppState } from './hooks/useAppState'\nimport { AssetsApi } from '../../types'\nimport { useEffect } from 'react'\n\nexport const SetAppState = ({\n assetsApi,\n userType,\n}: {\n assetsApi: AssetsApi\n userType: string\n}) => {\n const setAppState = useSetAppState()\n\n useEffect(() => {\n setAppState({ assetsApi })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [assetsApi])\n\n useEffect(() => {\n setAppState({ userType })\n }, [setAppState, userType])\n\n return <></>\n}\n","import * as React from 'react'\nimport NavBar from './NavBar'\nimport { SetAppState } from './SetAppState'\nimport { AssetsApi } from '../../types'\nimport { ContextWrapper } from './ContextWrapper'\n\nexport function AppShell({\n appName,\n children,\n assetsApi,\n userType,\n}: {\n appName: string\n children: React.ReactNode\n assetsApi: AssetsApi\n userType: string\n}) {\n return (\n <ContextWrapper>\n <div className='tw-flex tw-flex-col tw-h-full'>\n <SetAppState assetsApi={assetsApi} userType={userType} />\n <NavBar userType={userType} appName={appName}></NavBar>\n <div id='app-content' className='tw-flex-grow'>\n {children}\n </div>\n </div>\n </ContextWrapper>\n )\n}\n","import ChevronDownIcon from '@heroicons/react/24/outline/ChevronDownIcon'\nimport { useEffect, useState } from 'react'\nimport { Link, useLocation } from 'react-router-dom'\n\nfunction SidebarSubmenu({\n submenu,\n name,\n icon,\n}: {\n path: string\n // eslint-disable-next-line no-undef\n icon: JSX.Element\n name: string\n submenu?: any | undefined\n}) {\n const location = useLocation()\n const [isExpanded, setIsExpanded] = useState(false)\n\n /** Open Submenu list if path found in routes, this is for directly loading submenu routes first time */\n useEffect(() => {\n if (\n submenu.filter((m) => {\n return m.path === location.pathname\n })[0]\n )\n setIsExpanded(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <div className='flex-col'>\n {/** Route header */}\n <div className='w-full' onClick={() => setIsExpanded(!isExpanded)}>\n {icon}{' '}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\"\n data-te-sidenav-slim='false'\n >\n {name}{' '}\n </span>\n <ChevronDownIcon\n className={\n 'w-5 h-5 mt-1 float-right delay-400 duration-500 transition-all ' +\n (isExpanded ? 'rotate-180' : '')\n }\n />\n </div>\n\n {/** Submenu list */}\n <div className={' w-full data-[te-collapse-show]:!hidden ' + (isExpanded ? '' : 'hidden')}>\n <ul className={'menu menu-compact'}>\n {submenu.map((m, k) => {\n return (\n <li key={k}>\n <Link to={m.path} className=''>\n {m.icon}\n <span className='' data-te-sidenav-slim='false'>\n {m.name}\n </span>\n {location.pathname === m.path ? (\n <span\n className='absolute mt-1 mb-1 inset-y-0 left-0 w-1 rounded-tr-md rounded-br-md bg-primary '\n aria-hidden='true'\n ></span>\n ) : null}\n </Link>\n </li>\n )\n })}\n </ul>\n </div>\n </div>\n )\n}\n\nexport default SidebarSubmenu\n","import { useRef, useState, useEffect } from 'react'\nimport { NavLink, useLocation } from 'react-router-dom'\nimport { Sidenav, initTE } from 'tw-elements'\nimport SidebarSubmenu from './SidebarSubmenu'\nimport ChevronRightIcon from '@heroicons/react/24/outline/ChevronRightIcon'\nimport * as React from 'react'\n\ntype route = {\n path: string\n // eslint-disable-next-line no-undef\n icon: JSX.Element\n name: string\n submenu?: route\n blank?: boolean\n}\n\nexport function SideBar({ routes, bottomRoutes }: { routes: route[]; bottomRoutes?: route[] }) {\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const location = useLocation()\n\n const [instance, setInstance] = useState<any>(null)\n const [slim, setSlim] = useState<boolean>(false)\n\n const toggleSlim = () => {\n setSlim(!slim)\n instance.toggleSlim()\n }\n\n useEffect(() => {\n if (!init.current) {\n initTE({ Sidenav })\n const instance = Sidenav.getInstance(document.getElementById('sidenav'))\n setInstance(instance)\n instance.toggleSlim()\n init.current = true\n }\n }, [])\n\n const [embedded, setEmbedded] = useState<boolean>(true)\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setEmbedded(false)\n }, [location])\n\n const params = new URLSearchParams(window.location.search)\n\n return (\n <nav\n id='sidenav'\n className={`group tw-fixed tw-left-0 ${embedded ? 'tw-mt-0 tw-h-[100dvh]' : 'tw-mt-16 tw-h-[calc(100dvh-64px)]'} tw-top-0 tw-z-[10035] tw--translate-x-full tw-overflow-hidden tw-shadow-xl data-[te-sidenav-slim='true']:tw-hidden data-[te-sidenav-slim-collapsed='true']:tw-w-[56px] data-[te-sidenav-slim='true']:tw-w-[56px] data-[te-sidenav-hidden='false']:tw-translate-x-0 dark:tw-bg-zinc-800 [&[data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='false']]:tw-hidden [&[data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='true']]:[display:unset]`}\n data-te-sidenav-init\n data-te-sidenav-hidden='true'\n data-te-sidenav-mode='side'\n data-te-sidenav-slim='true'\n data-te-sidenav-content='#app-content'\n data-te-sidenav-slim-collapsed='true'\n data-te-sidenav-slim-width='56'\n data-te-sidenav-width='180'\n >\n <div\n className={`tw-flex tw-flex-col ${embedded ? 'tw-h-full' : 'tw-h-[calc(100dvh-64px)]'}`}\n >\n <ul\n className='tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0'\n data-te-sidenav-menu-ref\n >\n {routes.map((route, k) => {\n return (\n <li className='' key={k}>\n {route.submenu ? (\n <SidebarSubmenu {...route} />\n ) : (\n <NavLink\n end\n target={route.blank ? '_blank' : '_self'}\n to={`${route.path}${params && '?' + params}`}\n className={({ isActive }) =>\n `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`\n }\n onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle()\n }}\n >\n {route.icon}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\"\n data-te-sidenav-slim='false'\n >\n {route.name}\n </span>\n {(location.pathname.includes(route.path) && route.path.length > 1) ||\n location.pathname === route.path ? (\n <span\n className='tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary '\n aria-hidden='true'\n ></span>\n ) : null}\n </NavLink>\n )}\n </li>\n )\n })}\n </ul>\n\n <div\n id='slim-toggler'\n className='tw-w-full tw-bg-base-100 tw-flex-1 tw-grid tw-place-items-end'\n aria-haspopup='true'\n >\n <div className='tw-w-full'>\n <ul\n className='tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0 tw-mb-0'\n data-te-sidenav-menu-ref\n >\n {bottomRoutes?.map((route, k) => {\n return (\n <li className='' key={k}>\n {route.submenu ? (\n <SidebarSubmenu {...route} />\n ) : (\n <NavLink\n end\n target={route.blank ? '_blank' : '_self'}\n to={route.path}\n className={({ isActive }) =>\n `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`\n }\n onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle()\n }}\n >\n {route.icon}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\"\n data-te-sidenav-slim='false'\n >\n {route.name}\n </span>\n {(location.pathname.includes(route.path) && route.path.length > 1) ||\n location.pathname === route.path ? (\n <span\n className='tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary '\n aria-hidden='true'\n ></span>\n ) : null}\n </NavLink>\n )}\n </li>\n )\n })}\n </ul>\n\n <ChevronRightIcon\n className={\n 'tw-w-5 tw-h-5 tw-mb-4 tw-mr-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all ' +\n (!slim ? 'tw-rotate-180' : '')\n }\n onClick={() => toggleSlim()}\n />\n </div>\n </div>\n </div>\n </nav>\n )\n}\n","import * as React from 'react'\n\ntype ContentProps = {\n children?: React.ReactNode\n}\n\nexport function Content({ children }: ContentProps) {\n return (\n <div className='tw-flex tw-flex-col tw-w-full tw-h-full tw-bg-base-200 tw-relative'>\n {children}\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\nimport { useItems } from '../Map/hooks/useItems'\n\nexport const Sitemap = ({ url }: { url: string }) => {\n const [sitemap, setSitemap] = useState('')\n\n const items = useItems()\n\n useEffect(() => {\n if (items.length) {\n const generateSitemap = () => {\n let sitemapXML = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n'\n sitemapXML += '<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\\n'\n\n items.forEach((item) => {\n sitemapXML += ' <url>\\n'\n sitemapXML += ` <loc>${url}/${item.slug}</loc>\\n`\n sitemapXML += ' </url>\\n'\n })\n\n sitemapXML += '</urlset>'\n return sitemapXML\n }\n\n setSitemap(generateSitemap())\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <div>\n <h1>Sitemap</h1>\n <textarea value={sitemap} readOnly rows={items.length + 4} cols={80} />\n </div>\n )\n}\n","import * as React from 'react'\nimport { MapOverlayPage } from '../Templates'\nimport { useNavigate } from 'react-router-dom'\nimport { useState } from 'react'\nimport { UserItem } from '../../types'\nimport { toast } from 'react-toastify'\nimport { useAuth } from '../Auth'\nimport { TextInput } from '../Input'\n\nexport function UserSettings() {\n const { user, updateUser, loading /* token */ } = useAuth()\n\n const [id, setId] = useState<string>('')\n const [email, setEmail] = useState<string>('')\n const [password, setPassword] = useState<string>('')\n\n const [passwordChanged, setPasswordChanged] = useState<boolean>(false)\n\n const navigate = useNavigate()\n\n React.useEffect(() => {\n setId(user?.id ? user.id : '')\n setEmail(user?.email ? user.email : '')\n setPassword(user?.password ? user.password : '')\n }, [user])\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem\n\n changedUser = { id, email, ...(passwordChanged && { password }) }\n\n toast\n .promise(updateUser(changedUser), {\n pending: 'updating Profile ...',\n success: 'Profile updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .then(() => navigate('/'))\n }\n\n return (\n <MapOverlayPage\n backdrop\n className='tw-mx-4 tw-mt-4 tw-max-h-[calc(100dvh-96px)] tw-h-fit md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-max-w-xl !tw-left-auto tw-top-0 tw-bottom-0'\n >\n <div className={'tw-text-xl tw-font-semibold'}>Settings</div>\n <div className='tw-divider tw-mt-2'></div>\n <div className='tw-grid tw-grid-cols-1 tw-gap-6'>\n <TextInput\n type='email'\n placeholder='new E-Mail'\n defaultValue={user?.email ? user.email : ''}\n updateFormValue={(v) => setEmail(v)}\n />\n <TextInput\n type='password'\n placeholder='new Password'\n defaultValue={user?.password ? user.password : ''}\n updateFormValue={(v) => {\n setPassword(v)\n setPasswordChanged(true)\n }}\n />\n {/* <ToogleInput updateType=\"syncData\" labelTitle=\"Sync Data\" defaultValue={true} updateFormValue={updateFormValue}/> */}\n </div>\n\n <div className='tw-mt-8'>\n <button\n className={\n loading\n ? ' tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right'\n : 'tw-btn tw-btn-primary tw-float-right'\n }\n onClick={() => onUpdateUser()}\n >\n Update\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","import { useEffect } from 'react'\nimport { getValue } from '../../../Utils/GetValue'\nimport { Item } from '../../../types'\nimport { useAppState } from '../../AppShell/hooks/useAppState'\n\nexport function LinkedItemsHeaderView({\n item,\n unlinkCallback,\n itemNameField,\n itemAvatarField,\n loading,\n unlinkPermission,\n itemSubnameField,\n}: {\n item: Item\n unlinkCallback?: any\n itemNameField?: string\n itemAvatarField?: string\n itemSubnameField?: string\n loading?: boolean\n unlinkPermission: boolean\n}) {\n const appState = useAppState()\n\n const avatar =\n itemAvatarField && getValue(item, itemAvatarField)\n ? appState.assetsApi.url + getValue(item, itemAvatarField)\n : item.layer?.itemAvatarField &&\n item &&\n getValue(item, item.layer?.itemAvatarField) &&\n appState.assetsApi.url + getValue(item, item.layer?.itemAvatarField)\n const title = itemNameField\n ? getValue(item, itemNameField)\n : item.layer?.itemNameField && item && getValue(item, item.layer?.itemNameField)\n const subtitle = itemSubnameField\n ? getValue(item, itemSubnameField)\n : item.layer?.itemSubnameField && item && getValue(item, item.layer?.itemSubnameField)\n\n useEffect(() => {}, [item])\n\n return (\n <>\n <div className='tw-flex tw-flex-row'>\n <div className={'tw-grow tw-max-w-[calc(100%-60px)] }'}>\n <div className='flex items-center'>\n {avatar && (\n <img\n className={'tw-w-10 tw-inline tw-rounded-full'}\n src={avatar}\n alt={item.name + ' logo'}\n />\n )}\n <div className={`${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`}>\n <div className={'tw-text-xl tw-font-semibold tw-truncate'}>{title}</div>\n {subtitle && (\n <div className='tw-text-xs tw-truncate tw-text-gray-500 '>{subtitle}</div>\n )}\n </div>\n </div>\n </div>\n <div className='tw-col-span-1' onClick={(e) => e.stopPropagation()}>\n {unlinkPermission && (\n <div className='tw-dropdown tw-dropdown-bottom'>\n <label\n tabIndex={0}\n className=' tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path d='M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z' />\n </svg>\n </label>\n <ul\n tabIndex={0}\n className='tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000'\n >\n {true && (\n <li>\n <a\n className='tw-cursor-pointer !tw-text-error'\n onClick={() => unlinkCallback(item.id)}\n >\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-sm'></span>\n ) : (\n <svg\n className='tw-h-5 tw-w-5'\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z'></path>\n </svg>\n )}\n </a>\n </li>\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n </>\n )\n}\n","import { useState } from 'react'\nimport { useHasUserPermission } from '../../Map/hooks/usePermissions'\nimport DialogModal from '../../Templates/DialogModal'\nimport { useItems } from '../../Map/hooks/useItems'\nimport { HeaderView } from '../../Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport { Item } from '../../../types'\nimport { TextInput } from '../../Input'\nimport { getValue } from '../../../Utils/GetValue'\nimport { useGetItemTags } from '../../Map/hooks/useTags'\n\nexport function ActionButton({\n item,\n triggerAddButton,\n triggerItemSelected,\n existingRelations,\n itemType,\n colorField,\n collection = 'items',\n customStyle,\n}: {\n triggerAddButton?: any\n triggerItemSelected?: any\n existingRelations: Item[]\n itemType?: string\n colorField?: string\n collection?: string\n customStyle?: string\n item: Item\n}) {\n const hasUserPermission = useHasUserPermission()\n const [modalOpen, setModalOpen] = useState<boolean>(false)\n const [search, setSearch] = useState<string>('')\n const getItemTags = useGetItemTags()\n\n const items = useItems()\n\n const filterdItems = items\n .filter((i) => !itemType || i.layer?.itemType.name === itemType)\n .filter((i) => !existingRelations.some((s) => s.id === i.id))\n .filter((i) => i.id !== item.id)\n\n return (\n <>\n {hasUserPermission(collection, 'update', item) && (\n <>\n <div className={`tw-absolute tw-right-4 tw-bottom-4 tw-flex tw-flex-col ${customStyle}`}>\n {triggerItemSelected && (\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow'\n onClick={() => {\n setModalOpen(true)\n }}\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n <svg\n className='tw-h-5 tw-w-5'\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z'></path>\n </svg>\n </button>\n )}\n {triggerAddButton && (\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow tw-mt-2'\n onClick={() => {\n triggerAddButton()\n }}\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='4'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </button>\n )}\n </div>\n <DialogModal\n title={'Select'}\n isOpened={modalOpen}\n onClose={() => setModalOpen(false)}\n className='tw-w-xl sm:tw-w-2xl tw-min-h-80 tw-bg-base-200'\n >\n <TextInput\n defaultValue=''\n placeholder='🔍 Search'\n containerStyle='lg:col-span-2 tw-m-4 '\n updateFormValue={(val) => {\n setSearch(val)\n }}\n ></TextInput>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2'>\n {filterdItems\n .filter((item) => {\n return search === ''\n ? item\n : item.name.toLowerCase().includes(search.toLowerCase())\n })\n .map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-mx-4 tw-p-4 tw-mb-4 tw-h-fit'\n onClick={() => {\n triggerItemSelected(i.id)\n setModalOpen(false)\n }}\n >\n <HeaderView item={i} hideMenu></HeaderView>\n </div>\n ))}\n </div>\n </DialogModal>\n </>\n )}\n </>\n )\n}\n","import { StartEndView, TextView } from '../../Map'\nimport { TagView } from '../../Templates/TagView'\nimport { LinkedItemsHeaderView } from '../Subcomponents/LinkedItemsHeaderView'\nimport { ActionButton } from '../Subcomponents/ActionsButton'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { useAddFilterTag } from '../../Map/hooks/useFilter'\nimport { Item, Tag } from '../../../types'\nimport { Link, useNavigate } from 'react-router-dom'\nimport { useItems } from '../../Map/hooks/useItems'\nimport { useAppState } from '../../AppShell/hooks/useAppState'\nimport { timeAgo } from '../../../Utils/TimeAgo'\n\nexport const TabsView = ({\n attestations,\n item,\n offers,\n needs,\n relations,\n updatePermission,\n loading,\n linkItem,\n unlinkItem,\n}: {\n attestations: Array<any>\n item: Item\n offers: Array<Tag>\n needs: Array<Tag>\n relations: Array<Item>\n updatePermission: boolean\n loading: boolean\n linkItem: (id: string) => Promise<void>\n unlinkItem: (id: string) => Promise<void>\n}) => {\n const addFilterTag = useAddFilterTag()\n const [activeTab, setActiveTab] = useState<number>()\n const navigate = useNavigate()\n\n const [addItemPopupType] = useState<string>('')\n\n const items = useItems()\n const appState = useAppState()\n const getUserProfile = (id: string) => {\n return items.find(\n (i) => i.user_created.id === id && i.layer?.itemType.name === appState.userType,\n )\n }\n\n useEffect(() => {\n scroll()\n }, [addItemPopupType])\n\n function scroll() {\n tabRef.current?.scrollIntoView()\n }\n\n const tabRef = useRef<HTMLFormElement>(null)\n\n const updateActiveTab = useCallback(\n (id: number) => {\n setActiveTab(id)\n\n const params = new URLSearchParams(window.location.search)\n params.set('tab', `${id}`)\n const newUrl = location.pathname + '?' + params.toString()\n window.history.pushState({}, '', newUrl)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [location.pathname],\n )\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTab = params.get('tab')\n setActiveTab(urlTab ? Number(urlTab) : 1)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search])\n\n return (\n <div role='tablist' className='tw-tabs tw-tabs-lifted tw-mt-2 tw-mb-2 tw-px-6'>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label={`${item.layer?.itemType.icon_as_labels && activeTab !== 1 ? '📝' : '📝\\u00A0Info'}`}\n checked={activeTab === 1 && true}\n onChange={() => updateActiveTab(1)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-4 tw-mb-4 tw-overflow-x-hidden'\n >\n {item.layer?.itemType.show_start_end && (\n <div className='tw-max-w-xs'>\n <StartEndView item={item}></StartEndView>\n </div>\n )}\n <TextView item={item} />\n <div className='tw-h-4'></div>\n <TextView item={item} itemTextField='contact' />\n </div>\n {item.layer?.itemType.questlog && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label={`${item.layer?.itemType.icon_as_labels && activeTab !== 2 ? '❤️' : '❤️\\u00A0Credibility'}`}\n checked={activeTab === 2 && true}\n onChange={() => updateActiveTab(2)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-4 tw-mb-4 tw-overflow-x-hidden'\n >\n <table className='sm:tw-table-sm md:tw-table-md'>\n <tbody>\n {attestations\n .filter((a) => a.to.some((t) => t.directus_users_id === item.user_created.id))\n .sort(\n (a, b) =>\n new Date(b.date_created).getTime() - new Date(a.date_created).getTime(),\n )\n .map((a, i) => (\n <tr key={i}>\n <td>\n <div\n className={`tw-cursor-pointer tw-text-3xl tw-mask tw-mask-${a.shape} tw-p-3 tw-mr-2 tw-shadow-xl tw-bg-[${a.color}]`}\n >\n {a.emoji}\n </div>\n </td>\n <td>\n <div className='tw-mr-2'>\n <i>{a.text}</i>\n </div>\n </td>\n <td>\n <Link to={'/item/' + getUserProfile(a.user_created.id)?.id}>\n <div className='flex items-center gap-3'>\n <div className='tw-avatar'>\n <div className='tw-mask tw-rounded-full h-8 w-8 tw-mr-2'>\n <img\n src={\n appState.assetsApi.url +\n getUserProfile(a.user_created.id)?.image\n }\n alt='Avatar Tailwind CSS Component'\n />\n </div>\n </div>\n <div>\n <div className='font-bold'>\n {getUserProfile(a.user_created.id)?.name}\n </div>\n <div className='tw-text-xs opacity-50 tw-text-zinc-500'>\n {timeAgo(a.date_created)}\n </div>\n </div>\n </div>\n </Link>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </>\n )}\n {item.layer?.itemType.offers_and_needs && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={`tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 ${!(item.layer?.itemType.icon_as_labels && activeTab !== 3) && 'tw-min-w-[10.4em]'} [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]`}\n aria-label={`${item.layer?.itemType.icon_as_labels && activeTab !== 3 ? '♻️' : '♻️\\u00A0Offers & Needs'}`}\n checked={activeTab === 3 && true}\n onChange={() => updateActiveTab(3)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-4 tw-pb-1'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1'>\n {offers.length > 0 ? (\n <div className='tw-col-span-1'>\n <h3 className='-tw-mb-2'>Offers</h3>\n <div className='tw-flex tw-flex-wrap tw-mb-4'>\n {offers.map((o) => (\n <TagView\n key={o?.id}\n tag={o}\n onClick={() => {\n addFilterTag(o)\n }}\n />\n ))}\n </div>\n </div>\n ) : (\n ''\n )}\n {needs.length > 0 ? (\n <div className='tw-col-span-1'>\n <h3 className='-tw-mb-2 tw-col-span-1'>Needs</h3>\n <div className='tw-flex tw-flex-wrap tw-mb-4'>\n {needs.map((n) => (\n <TagView key={n?.id} tag={n} onClick={() => addFilterTag(n)} />\n ))}\n </div>\n </div>\n ) : (\n ''\n )}\n </div>\n </div>\n </div>\n </>\n )}\n\n {item.layer?.itemType.relations && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className='tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n aria-label={`${item.layer?.itemType.icon_as_labels && activeTab !== 7 ? '🔗' : '🔗\\u00A0Relations'}`}\n checked={activeTab === 7 && true}\n onChange={() => updateActiveTab(7)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto tw-pt-4 tw-pb-1 -tw-mr-4 -tw-mb-4 tw-overflow-x-hidden'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2 md:tw-grid-cols-1 lg:tw-grid-cols-1 xl:tw-grid-cols-1 2xl:tw-grid-cols-2 tw-pb-4'>\n {relations &&\n relations.map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-bg-base-200 tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-text-base-content tw-p-6 tw-mr-4 tw-mb-4'\n onClick={() => navigate('/item/' + i.id)}\n >\n <LinkedItemsHeaderView\n unlinkPermission={updatePermission}\n item={i}\n unlinkCallback={unlinkItem}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n <TextView truncate item={i} />\n </div>\n </div>\n ))}\n {updatePermission && (\n <ActionButton\n collection='items'\n item={item}\n existingRelations={relations}\n triggerItemSelected={linkItem}\n colorField={item.layer.itemColorField}\n ></ActionButton>\n )}\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n )\n}\n","import { Link } from 'react-router-dom'\nimport { useAppState } from '../../AppShell/hooks/useAppState'\nimport { Item } from '../../../types'\nimport { useEffect, useState } from 'react'\nimport { useItems } from '../../Map/hooks/useItems'\n\nexport const ContactInfoView = ({ item, heading }: { item: Item; heading: string }) => {\n const appState = useAppState()\n const [profileOwner, setProfileOwner] = useState<Item>()\n const items = useItems()\n\n useEffect(() => {\n console.log(\n 'user:',\n items.find(\n (i) =>\n i.user_created?.id === item.user_created?.id &&\n i.layer?.itemType.name === appState.userType,\n ),\n )\n\n setProfileOwner(\n items.find(\n (i) =>\n i.user_created?.id === item.user_created?.id &&\n i.layer?.itemType.name === appState.userType,\n ),\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, items])\n\n return (\n <div className='tw-bg-base-200 tw-mb-6 tw-mt-6 tw-p-6'>\n <h2 className='tw-text-lg tw-font-semibold'>{heading}</h2>\n <div className='tw-mt-4 tw-flex tw-items-center'>\n {profileOwner?.image && (\n <ConditionalLink url={'/item/' + profileOwner?.id}>\n <div className='tw-mr-5 tw-flex tw-items-center tw-justify-center'>\n <div className='tw-avatar'>\n <div className='tw-w-20 tw-h-20 tw-bg-gray-200 rounded-full tw-flex tw-items-center tw-justify-center overflow-hidden'>\n <img\n src={appState.assetsApi.url + profileOwner?.image}\n alt={profileOwner?.name}\n className='tw-w-full tw-h-full tw-object-cover'\n />\n </div>\n </div>\n </div>\n </ConditionalLink>\n )}\n <div className='tw-text-sm tw-flex-grow'>\n <p className='tw-font-semibold'>{profileOwner?.name}</p>\n {item.contact && (\n <p>\n <a\n href={`mailto:${item.contact}`}\n className='tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='tw-w-4 tw-h-4 tw-mr-1'\n >\n <path d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'></path>\n <polyline points='22,6 12,13 2,6'></polyline>\n </svg>\n {item.contact}\n </a>\n </p>\n )}\n {item.telephone && (\n <p>\n <a\n href={`tel:${item.telephone}`}\n className='tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center tw-whitespace-nowrap'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='tw-w-4 tw-h-4 tw-mr-1'\n >\n <path d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z' />\n </svg>\n {item.telephone}\n </a>\n </p>\n )}\n </div>\n </div>\n </div>\n )\n}\n\n// eslint-disable-next-line react/prop-types\nconst ConditionalLink = ({ url, children }) => {\n const params = new URLSearchParams(window.location.search)\n\n if (url) {\n return <Link to={url + '?' + params}>{children}</Link>\n }\n return children\n}\n","import * as React from 'react'\n\nconst platformConfigs = {\n facebook: {\n shareUrl: 'https://www.facebook.com/sharer/sharer.php?u={url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M18 2h-3a5 5 0 00-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z' />\n </svg>\n ),\n bgColor: '#3b5998',\n },\n twitter: {\n shareUrl: 'https://twitter.com/intent/tweet?text={title}:%20{url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M23 3a10.9 10.9 0 01-3.14 1.53 4.48 4.48 0 00-7.86 3v1A10.66 10.66 0 013 4s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5a4.5 4.5 0 00-.08-.83A7.72 7.72 0 0023 3z' />\n </svg>\n ),\n bgColor: '#55acee',\n },\n linkedin: {\n shareUrl: 'http://www.linkedin.com/shareArticle?mini=true&url={url}&title={title}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6zM2 9h4v12H2z' />\n <circle cx='4' cy='4' r='2' />\n </svg>\n ),\n bgColor: '#4875b4',\n },\n xing: {\n shareUrl: 'https://www.xing-share.com/app/user?op=share;sc_p=xing-share;url={url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M18.188 0c-.517 0-.741.325-.927.66 0 0-7.455 13.224-7.702 13.657.015.024 4.919 9.023 4.919 9.023.17.308.436.66.967.66h3.454c.211 0 .375-.078.463-.22.089-.151.089-.346-.009-.536l-4.879-8.916c-.004-.006-.004-.016 0-.022L22.139.756c.095-.191.097-.387.006-.535C22.056.078 21.894 0 21.686 0h-3.498zM3.648 4.74c-.211 0-.385.074-.473.216-.09.149-.078.339.02.531l2.34 4.05c.004.01.004.016 0 .021L1.86 16.051c-.099.188-.093.381 0 .529.085.142.239.234.45.234h3.461c.518 0 .766-.348.945-.667l3.734-6.609-2.378-4.155c-.172-.315-.434-.659-.962-.659H3.648v.016z' />\n </svg>\n ),\n bgColor: '#026466',\n },\n whatsapp: {\n shareUrl: 'https://api.whatsapp.com/send?text={title}%20{url}',\n icon: (\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z'></path>\n </svg>\n ),\n bgColor: '#25D366',\n },\n telegram: {\n shareUrl: 'https://t.me/share/url?url={url}&text={title}',\n icon: (\n <svg\n stroke='white'\n fill='white'\n strokeWidth='0'\n viewBox='0 0 448 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z'></path>\n </svg>\n ),\n bgColor: '#0088cc',\n },\n}\n\n// eslint-disable-next-line react/prop-types\nconst SocialShareButton = ({ platform, url, title }) => {\n const config = platformConfigs[platform]\n\n if (!config) {\n return null\n }\n\n const { shareUrl, icon, bgColor } = config\n const finalShareUrl = shareUrl\n .replace('{url}', encodeURIComponent(url))\n .replace('{title}', encodeURIComponent(title))\n\n return (\n <a\n href={finalShareUrl}\n target='_blank'\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white'\n style={{\n color: 'white',\n backgroundColor: bgColor,\n }}\n title={`share link ${platform === 'email' ? 'via email' : 'on ' + platform}`}\n >\n {React.cloneElement(icon, { className: 'tw-w-4 tw-h-4 tw-fill-current' })}\n </a>\n )\n}\n\nexport default SocialShareButton\n","import { toast } from 'react-toastify'\nimport SocialShareButton from './SocialShareButton'\n\nconst SocialShareBar = ({\n // eslint-disable-next-line react/prop-types\n url,\n // eslint-disable-next-line react/prop-types\n title,\n // eslint-disable-next-line react/prop-types\n platforms = ['facebook', 'twitter', 'linkedin', 'xing', 'email'],\n}) => {\n const copyLink = () => {\n navigator.clipboard\n .writeText(url)\n .then(() => {\n toast.success('link copied to clipboard')\n })\n .catch((error) => {\n toast.error('Fehler beim Kopieren des Links: ', error)\n })\n }\n return (\n <div className='tw-flex tw-place-content-end tw-justify-end tw-space-x-2 tw-grow tw-min-w-fit tw-pl-2'>\n {platforms.map((platform) => (\n <SocialShareButton key={platform} platform={platform} url={url} title={title} />\n ))}\n {platforms.includes('email') && (\n <a\n href={`mailto:?subject=${title}&body=${url}`}\n target='_blank'\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white hover:tw-cursor-pointer'\n style={{\n color: 'white',\n backgroundColor: '#444',\n }}\n onClick={() => copyLink()}\n title='copy Link'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='white'\n className='tw-h-4 tw-w-4'\n >\n <path d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z' />\n </svg>\n </a>\n )}\n {platforms.includes('clipboard') && (\n <div\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white hover:tw-cursor-pointer'\n style={{\n color: 'white',\n backgroundColor: '#888',\n }}\n onClick={() => copyLink()}\n title='copy Link'\n >\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 256 256'\n height='1.5em'\n width='1.5em'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M180,64H40A12,12,0,0,0,28,76V216a12,12,0,0,0,12,12H180a12,12,0,0,0,12-12V76A12,12,0,0,0,180,64ZM168,204H52V88H168ZM228,40V180a12,12,0,0,1-24,0V52H76a12,12,0,0,1,0-24H216A12,12,0,0,1,228,40Z'></path>\n </svg>\n </div>\n )}\n </div>\n )\n}\n\nexport default SocialShareBar\n","import { Item } from '../../../types'\nimport SocialShareBar from './SocialShareBar'\n\nexport const GroupSubHeaderView = ({\n item,\n shareBaseUrl,\n platforms,\n}: {\n item: Item\n shareBaseUrl: string\n platforms?: string[]\n}) => (\n <div className='tw-px-6'>\n <div className='tw-float-left tw-mt-2 tw-mb-4 tw-flex tw-items-center'>\n {item.status && (\n <div className='tw-mt-1.5'>\n <span className='tw-text-sm tw-text-current tw-bg-base-300 tw-rounded tw-py-0.5 tw-px-2 tw-inline-flex tw-items-center tw-mr-2'>\n {item.status}\n </span>\n </div>\n )}\n {item.group_type && (\n <div className='tw-mt-1.5'>\n <span className='tw-text-sm tw-text-current tw-bg-base-300 tw-rounded tw-py-1 tw-px-2'>\n {item.group_type}\n </span>\n </div>\n )}\n </div>\n <div>\n <SocialShareBar\n url={\n shareBaseUrl && item.slug\n ? shareBaseUrl + item.slug\n : window.location.protocol + '//' + window.location.host + '/item/' + item.id\n }\n title={item.name}\n platforms={platforms}\n />\n </div>\n </div>\n)\n","import { Item } from '../../../types'\nimport { TextView } from '../../Map'\nimport { ContactInfoView } from '../Subcomponents/ContactInfoView'\nimport { GroupSubHeaderView } from '../Subcomponents/GroupSubHeaderView'\n\nexport const OnepagerView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-h-full tw-overflow-y-auto fade'>\n <GroupSubHeaderView\n item={item}\n shareBaseUrl={`https://www.wuerdekompass.org/aktivitaeten/gruppensuche/#/gruppe/${item.slug}`}\n />\n {item.user_created.first_name && <ContactInfoView heading='Du hast Fragen?' item={item} />}\n {/* Description Section */}\n <div className='tw-my-10 tw-mt-2 tw-px-6 tw-text-sm '>\n <TextView rawText={item.text || 'Keine Beschreibung vorhanden'} />\n </div>\n {/* Next Appointment Section */}\n {item.next_appointment && (\n <div className='tw-my-10 tw-px-6'>\n <h2 className='tw-text-lg tw-font-semibold'>Nächste Termine</h2>\n <div className='tw-mt-2 tw-text-sm'>\n <TextView rawText={item.next_appointment} />\n </div>\n </div>\n )}\n ;{/* Relations Section */}\n {/* {d.relations && ( */}\n {/* <div className=\"tw-my-10 tw-px-6\"> */}\n {/* <h2 className=\"tw-text-lg tw-font-semibold tw-mb-4\">Projekte</h2> */}\n {/* {d.relations.map((project, index) => ( */}\n {/* <RelationCard */}\n {/* key={index} */}\n {/* title={project.title} */}\n {/* description={project.description} */}\n {/* imageSrc={project.imageSrc} */}\n {/* /> */}\n {/* ))} */}\n {/* </div> */}\n {/* )} */}\n </div>\n )\n}\n","import * as React from 'react'\nimport { TextView } from '../../Map'\nimport { Item } from '../../../types'\n\nexport const SimpleView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-mt-8 tw-h-full tw-overflow-y-auto fade tw-px-6'>\n <TextView item={item} />\n </div>\n )\n}\n","import * as React from 'react'\nimport { Item } from '../../types'\nimport { encodeTag } from '../../Utils/FormatTags'\nimport { hashTagRegex } from '../../Utils/HashTagRegex'\nimport { randomColor } from '../../Utils/RandomColor'\nimport { toast } from 'react-toastify'\n\nconst sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms))\n\nexport const submitNewItem = async (\n evt: any,\n type: string,\n item,\n user,\n setLoading,\n tags,\n addTag,\n addItem,\n linkItem,\n resetFilterTags,\n layers,\n addItemPopupType,\n setAddItemPopupType,\n) => {\n evt.preventDefault()\n const formItem: Item = {} as Item\n Array.from(evt.target).forEach((input: HTMLInputElement) => {\n if (input.name) {\n formItem[input.name] = input.value\n }\n })\n setLoading(true)\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\n })\n const uuid = crypto.randomUUID()\n\n const layer = layers.find(\n (l) => l.name.toLocaleLowerCase().replace('s', '') === addItemPopupType.toLocaleLowerCase(),\n )\n\n let success = false\n try {\n await layer?.api?.createItem!({ ...formItem, id: uuid, type, parent: item.id })\n await linkItem(uuid)\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n addItem({ ...formItem, id: uuid, type, layer, user_created: user, parent: item.id })\n toast.success('New item created')\n resetFilterTags()\n }\n setLoading(false)\n setAddItemPopupType('')\n}\n\nexport const linkItem = async (id: string, item, updateItem) => {\n const newRelations = item.relations || []\n newRelations?.push({ items_id: item.id, related_items_id: id })\n const updatedItem = { id: item.id, relations: newRelations }\n\n let success = false\n try {\n await item?.layer?.api?.updateItem!(updatedItem)\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...item, relations: newRelations })\n toast.success('Item linked')\n }\n}\n\nexport const unlinkItem = async (id: string, item, updateItem) => {\n const newRelations = item.relations?.filter((r) => r.related_items_id !== id)\n const updatedItem = { id: item.id, relations: newRelations }\n\n let success = false\n try {\n await item?.layer?.api?.updateItem!(updatedItem)\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...item, relations: newRelations })\n toast.success('Item unlinked')\n }\n}\n\nexport const handleDelete = async (\n event: React.MouseEvent<HTMLElement>,\n item,\n setLoading,\n removeItem,\n map,\n navigate,\n) => {\n event.stopPropagation()\n setLoading(true)\n let success = false\n try {\n await item.layer?.api?.deleteItem!(item.id)\n success = true\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n removeItem(item)\n toast.success('Item deleted')\n }\n setLoading(false)\n map.closePopup()\n const params = new URLSearchParams(window.location.search)\n window.history.pushState({}, '', '/' + `${params ? `?${params}` : ''}`)\n navigate('/')\n}\n\nexport const onUpdateItem = async (\n state,\n item,\n tags,\n addTag,\n setLoading,\n navigate,\n updateItem,\n addItem,\n user,\n params,\n) => {\n let changedItem = {} as Item\n\n const offerUpdates: Array<any> = []\n // check for new offers\n await state.offers?.map((o) => {\n const existingOffer = item?.offers?.find((t) => t.tags_id === o.id)\n existingOffer && offerUpdates.push(existingOffer.id)\n if (!existingOffer && !tags.some((t) => t.id === o.id)) addTag({ ...o, offer_or_need: true })\n !existingOffer && offerUpdates.push({ items_id: item?.id, tags_id: o.id })\n return null\n })\n\n const needsUpdates: Array<any> = []\n\n await state.needs?.map((n) => {\n const existingNeed = item?.needs?.find((t) => t.tags_id === n.id)\n existingNeed && needsUpdates.push(existingNeed.id)\n !existingNeed && needsUpdates.push({ items_id: item?.id, tags_id: n.id })\n !existingNeed && !tags.some((t) => t.id === n.id) && addTag({ ...n, offer_or_need: true })\n return null\n })\n\n // update profile item in current state\n changedItem = {\n id: state.id,\n name: state.name,\n subname: state.subname,\n text: state.text,\n ...(state.color && { color: state.color }),\n position: item.position,\n ...(state.group_type && { group_type: state.group_type }),\n ...(state.status && { status: state.status }),\n contact: state.contact,\n telephone: state.telephone,\n ...(state.end && { end: state.end }),\n ...(state.start && { start: state.start }),\n ...(state.marker_icon && { markerIcon: state.marker_icon }),\n next_appointment: state.next_appointment,\n ...(state.image.length > 10 && { image: state.image }),\n ...(state.offers.length > 0 && { offers: offerUpdates }),\n ...(state.needs.length > 0 && { needs: needsUpdates }),\n }\n\n const offersState: Array<any> = []\n const needsState: Array<any> = []\n\n state.offers.map((o) => {\n offersState.push({ items_id: item?.id, tags_id: o.id })\n return null\n })\n\n state.needs.map((n) => {\n needsState.push({ items_id: item?.id, tags_id: n.id })\n return null\n })\n\n changedItem = { ...changedItem, offers: offersState, needs: needsState }\n\n setLoading(true)\n\n await state.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({\n id: crypto.randomUUID(),\n name: encodeTag(tag.slice(1).toLocaleLowerCase()),\n color: randomColor(),\n })\n }\n return null\n })\n\n // take care that addTag request comes before item request\n await sleep(200)\n\n if (!item.new) {\n item?.layer?.api?.updateItem &&\n toast\n .promise(item?.layer?.api?.updateItem(changedItem), {\n pending: 'updating Item ...',\n success: 'Item updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .catch(setLoading(false))\n .then(() => item && updateItem({ ...item, ...changedItem }))\n .then(() => {\n setLoading(false)\n navigate(`/item/${item.id}${params && '?' + params}`)\n })\n } else {\n item.new = false\n item.layer?.api?.createItem &&\n toast\n .promise(item.layer?.api?.createItem(changedItem), {\n pending: 'updating Item ...',\n success: 'Item updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .catch(setLoading(false))\n .then(\n () =>\n item &&\n addItem({\n ...item,\n ...changedItem,\n layer: item.layer,\n user_created: user,\n type: item.layer?.itemType,\n }),\n )\n .then(() => {\n setLoading(false)\n navigate(`/${params && '?' + params}`)\n })\n }\n}\n","import { Item } from '../../../types'\nimport { getValue } from '../../../Utils/GetValue'\nimport { TextView } from '../../Map'\n\nexport const ProfileTextView = ({\n item,\n dataField,\n heading,\n hideWhenEmpty,\n}: {\n item: Item\n dataField: string\n heading: string\n hideWhenEmpty: boolean\n}) => {\n return (\n <div className='tw-my-10 tw-mt-2 tw-px-6'>\n {!(getValue(item, dataField) === '' && hideWhenEmpty) && (\n <h2 className='tw-text-lg tw-font-semibold'>{heading}</h2>\n )}\n <div className='tw-mt-2 tw-text-sm'>\n <TextView rawText={dataField ? getValue(item, dataField) : getValue(item, 'text')} />\n </div>\n </div>\n )\n}\n","import * as React from 'react'\nimport { StartEndView } from '../../Map'\nimport { Item } from '../../../types'\n\nexport const ProfileStartEndView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-mt-2 tw-px-6 tw-max-w-xs'>\n <StartEndView item={item}></StartEndView>\n </div>\n )\n}\n","import { GroupSubHeaderView } from '../Subcomponents/GroupSubHeaderView'\nimport { ProfileTextView } from '../Subcomponents/ProfileTextView'\nimport { ContactInfoView } from '../Subcomponents/ContactInfoView'\nimport { Item } from '../../../types'\nimport { ProfileStartEndView } from '../Subcomponents/ProfileStartEndView'\n\nconst componentMap = {\n groupSubheaders: GroupSubHeaderView,\n texts: ProfileTextView,\n contactInfos: ContactInfoView,\n startEnd: ProfileStartEndView,\n // weitere Komponenten hier\n}\n\nexport const FlexView = ({ item }: { item: Item }) => {\n console.log(item)\n return (\n <div className='tw-h-full tw-overflow-y-auto fade'>\n {item.layer?.itemType.profileTemplate.map((templateItem) => {\n const TemplateComponent = componentMap[templateItem.collection]\n return TemplateComponent ? (\n <TemplateComponent key={templateItem.id} item={item} {...templateItem.item} />\n ) : (\n <div key={templateItem.id}>Component not found</div>\n )\n })}\n </div>\n )\n}\n","import { MapOverlayPage } from '../Templates'\nimport { useItems, useRemoveItem, useUpdateItem } from '../Map/hooks/useItems'\nimport { useLocation, useNavigate } from 'react-router-dom'\nimport { useEffect, useState } from 'react'\nimport { Item, ItemsApi, Tag } from '../../types'\nimport { useMap } from 'react-leaflet'\nimport { LatLng } from 'leaflet'\nimport { useHasUserPermission } from '../Map/hooks/usePermissions'\nimport { HeaderView } from '../Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport { useSelectPosition, useSetSelectPosition } from '../Map/hooks/useSelectPosition'\nimport { useClusterRef } from '../Map/hooks/useClusterRef'\nimport { useLeafletRefs } from '../Map/hooks/useLeafletRefs'\nimport { getValue } from '../../Utils/GetValue'\nimport { TabsView } from './Templates/TabsView'\nimport { OnepagerView } from './Templates/OnepagerView'\nimport { SimpleView } from './Templates/SimpleView'\nimport { handleDelete, linkItem, unlinkItem } from './itemFunctions'\nimport { useTags } from '../Map/hooks/useTags'\nimport { FlexView } from './Templates/FlexView'\nimport { useAppState } from '../AppShell/hooks/useAppState'\n\nexport function ProfileView({ attestationApi }: { attestationApi?: ItemsApi<any> }) {\n const [item, setItem] = useState<Item>()\n const [updatePermission, setUpdatePermission] = useState<boolean>(false)\n const [relations, setRelations] = useState<Array<Item>>([])\n const [offers, setOffers] = useState<Array<Tag>>([])\n const [needs, setNeeds] = useState<Array<Tag>>([])\n const [loading, setLoading] = useState<boolean>(false)\n const [template, setTemplate] = useState<string>('')\n\n const location = useLocation()\n const items = useItems()\n const updateItem = useUpdateItem()\n const map = useMap()\n const selectPosition = useSelectPosition()\n const removeItem = useRemoveItem()\n const tags = useTags()\n const navigate = useNavigate()\n const hasUserPermission = useHasUserPermission()\n const setSelectPosition = useSetSelectPosition()\n const clusterRef = useClusterRef()\n const leafletRefs = useLeafletRefs()\n const appState = useAppState()\n\n const [attestations, setAttestations] = useState<Array<any>>([])\n\n useEffect(() => {\n if (attestationApi) {\n attestationApi\n .getItems()\n .then((value) => {\n console.log(value)\n\n setAttestations(value)\n })\n .catch((error) => {\n console.error('Error fetching items:', error)\n })\n }\n }, [attestationApi])\n\n useEffect(() => {\n const itemId = location.pathname.split('/')[2]\n const item = items.find((i) => i.id === itemId)\n item && setItem(item)\n }, [items, location])\n\n useEffect(() => {\n setOffers([])\n setNeeds([])\n setRelations([])\n\n item?.layer?.itemOffersField &&\n getValue(item, item.layer.itemOffersField)?.map((o) => {\n const tag = tags.find((t) => t.id === o.tags_id)\n tag && setOffers((current) => [...current, tag])\n return null\n })\n item?.layer?.itemNeedsField &&\n getValue(item, item.layer.itemNeedsField)?.map((n) => {\n const tag = tags.find((t) => t.id === n.tags_id)\n tag && setNeeds((current) => [...current, tag])\n return null\n })\n item?.relations?.map((r) => {\n const item = items.find((i) => i.id === r.related_items_id)\n item && setRelations((current) => [...current, item])\n return null\n })\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, items])\n\n useEffect(() => {\n const setMap = async (marker, x) => {\n await map.setView(\n new LatLng(item?.position?.coordinates[1]!, item?.position?.coordinates[0]! + x / 4),\n undefined,\n )\n setTimeout(() => {\n marker.openPopup()\n }, 500)\n }\n if (item) {\n if (item.position) {\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === item)?.[1].marker\n marker &&\n clusterRef.hasLayer(marker) &&\n clusterRef?.zoomToShowLayer(marker, () => {\n const bounds = map.getBounds()\n const x = bounds.getEast() - bounds.getWest()\n setMap(marker, x)\n })\n } else {\n const parent = getFirstAncestor(item)\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === parent)?.[1].marker\n marker &&\n clusterRef.hasLayer(marker) &&\n clusterRef?.zoomToShowLayer(marker, () => {\n const bounds = map.getBounds()\n const x = bounds.getEast() - bounds.getWest()\n setMap(marker, x)\n })\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item])\n\n const getFirstAncestor = (item: Item): Item | undefined => {\n const parent = items.find((i) => i.id === item.parent)\n if (parent?.parent) {\n return getFirstAncestor(parent)\n } else {\n return parent\n }\n }\n\n useEffect(() => {\n item && hasUserPermission('items', 'update', item) && setUpdatePermission(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item])\n\n useEffect(() => {\n selectPosition && map.closePopup()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectPosition])\n\n useEffect(() => {\n setTemplate(item?.layer?.itemType.template || appState.userType)\n }, [appState.userType, item])\n\n return (\n <>\n {item && (\n <MapOverlayPage\n key={item.id}\n className={`!tw-p-0 tw-mx-4 tw-mt-4 tw-mb-4 md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-min-w-80 tw-max-w-3xl !tw-left-0 sm:!tw-left-auto tw-top-0 tw-bottom-0 tw-transition-opacity tw-duration-500 ${!selectPosition ? 'tw-opacity-100 tw-pointer-events-auto' : 'tw-opacity-0 tw-pointer-events-none'}`}\n >\n <>\n <div className={'tw-px-6 tw-pt-6'}>\n <HeaderView\n api={item.layer?.api}\n item={item}\n deleteCallback={(e) => handleDelete(e, item, setLoading, removeItem, map, navigate)}\n editCallback={() => navigate('/edit-item/' + item.id)}\n setPositionCallback={() => {\n map.closePopup()\n setSelectPosition(item)\n navigate('/')\n }}\n big\n truncateSubname={false}\n />\n </div>\n\n {template === 'onepager' && <OnepagerView item={item} />}\n\n {template === 'simple' && <SimpleView item={item} />}\n\n {template === 'flex' && <FlexView item={item} />}\n\n {template === 'tabs' && (\n <TabsView\n attestations={attestations}\n item={item}\n loading={loading}\n offers={offers}\n needs={needs}\n relations={relations}\n updatePermission={updatePermission}\n linkItem={(id) => linkItem(id, item, updateItem)}\n unlinkItem={(id) => unlinkItem(id, item, updateItem)}\n />\n )}\n </>\n </MapOverlayPage>\n )}\n </>\n )\n}\n","import * as React from 'react'\n\ninterface ComboBoxProps {\n id?: string\n options: string[]\n value: string\n onValueChange: (newValue: string) => void\n}\n\nconst ComboBoxInput = ({ id, options, value, onValueChange }: ComboBoxProps) => {\n const handleChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const value = e.target.value\n onValueChange(value)\n }\n\n return (\n <select\n id={id}\n className='tw-form-select tw-block tw-w-full tw-py-2 tw-px-4 tw-border tw-border-gray-300 rounded-md tw-shadow-sm tw-text-sm focus:tw-outline-none focus:tw-ring-indigo-500 focus:tw-border-indigo-500 sm:tw-text-sm'\n onChange={handleChange}\n >\n {options.map((o) => (\n <option value={o} key={o} selected={o === value}>\n {o}\n </option>\n ))}\n </select>\n )\n}\n\nexport default ComboBoxInput\n","import * as React from 'react'\nimport ComboBoxInput from '../../Input/ComboBoxInput'\nimport { Item } from '../../../types'\nimport { useEffect } from 'react'\nimport { FormState } from '../Templates/OnepagerForm'\n\ntype groupType = {\n groupTypes_id: {\n name: string\n color: string\n image: string\n markerIcon: string\n }\n}\n\nexport const GroupSubheaderForm = ({\n state,\n setState,\n groupStates,\n groupTypes,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n groupStates?: string[]\n groupTypes?: groupType[]\n}) => {\n useEffect(() => {\n if (groupTypes && groupStates) {\n const groupType = groupTypes.find((gt) => gt.groupTypes_id.name === state.group_type)\n console.log(state.group_type)\n setState((prevState) => ({\n ...prevState,\n color: groupType?.groupTypes_id.color || groupTypes[0].groupTypes_id.color,\n marker_icon: groupType?.groupTypes_id.markerIcon || groupTypes[0].groupTypes_id.markerIcon,\n image: groupType?.groupTypes_id.image || groupTypes[0].groupTypes_id.image,\n status: state.status || groupStates[0],\n group_type: state.group_type || groupTypes[0].groupTypes_id.name,\n }))\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.group_type, groupTypes])\n\n return (\n <div className='tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6'>\n <div>\n <label\n htmlFor='status'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenstatus:\n </label>\n <ComboBoxInput\n id='status'\n options={groupStates || []}\n value={state.status}\n onValueChange={(v) =>\n setState((prevState) => ({\n ...prevState,\n status: v,\n }))\n }\n />\n </div>\n <div>\n <label\n htmlFor='groupType'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenart:\n </label>\n <ComboBoxInput\n id='groupType'\n options={groupTypes?.map((gt) => gt.groupTypes_id.name) || []}\n value={state.group_type}\n onValueChange={(v) =>\n setState((prevState) => ({\n ...prevState,\n group_type: v,\n }))\n }\n />\n </div>\n </div>\n )\n}\n","import * as React from 'react'\nimport { TextInput } from '../../Input'\nimport { FormState } from '../Templates/OnepagerForm'\n\nexport const ContactInfoForm = ({\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n}) => {\n return (\n <div className='tw-mt-4 tw-space-y-4'>\n <div>\n <label\n htmlFor='email'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Email-Adresse (Kontakt):\n </label>\n <TextInput\n placeholder='Email'\n type='email'\n defaultValue={state.contact}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n contact: v,\n }))\n }\n />\n </div>\n\n <div>\n <label\n htmlFor='telephone'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Telefonnummer (Kontakt):\n </label>\n <TextInput\n placeholder='Telefonnummer'\n defaultValue={state.telephone}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n telephone: v,\n }))\n }\n />\n </div>\n </div>\n )\n}\n","import * as React from 'react'\nimport { Item, Tag } from '../../../types'\nimport { TextAreaInput } from '../../Input'\nimport { GroupSubheaderForm } from '../Subcomponents/GroupSubheaderForm'\nimport { ContactInfoForm } from '../Subcomponents/ContactInfoForm'\n\nexport type FormState = {\n color: string\n id: string\n group_type: string\n status: string\n name: string\n subname: string\n text: string\n contact: string\n telephone: string\n next_appointment: string\n image: string\n marker_icon: string\n offers: Tag[]\n needs: Tag[]\n relations: Item[]\n}\n\nexport const OnepagerForm = ({\n item,\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n}) => {\n return (\n <div className='tw-space-y-6 tw-mt-6'>\n <GroupSubheaderForm state={state} setState={setState} item={item}></GroupSubheaderForm>\n <ContactInfoForm state={state} setState={setState}></ContactInfoForm>\n\n <div>\n <label\n htmlFor='description'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenbeschreibung:\n </label>\n <TextAreaInput\n placeholder='Beschreibung'\n defaultValue={state.text || ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n inputStyle='tw-h-48'\n />\n </div>\n </div>\n )\n}\n","import { TextAreaInput } from '../../Input'\n\n// eslint-disable-next-line react/prop-types\nexport const SimpleForm = ({ state, setState }) => {\n return (\n <TextAreaInput\n placeholder='About me ...'\n // eslint-disable-next-line react/prop-types\n defaultValue={state?.text || ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n containerStyle='tw-mt-8 tw-h-full'\n inputStyle='tw-h-full'\n />\n )\n}\n","import * as React from 'react'\nimport { useEffect } from 'react'\nimport { TagView } from '../Templates/TagView'\n\nexport const Autocomplete = ({\n inputProps,\n suggestions,\n onSelected,\n pushFilteredSuggestions,\n setFocus,\n}: {\n inputProps: any\n suggestions: Array<any>\n onSelected: (suggestion) => void\n pushFilteredSuggestions?: Array<any>\n setFocus?: boolean\n}) => {\n const [filteredSuggestions, setFilteredSuggestions] = React.useState<Array<any>>([])\n const [heighlightedSuggestion, setHeighlightedSuggestion] = React.useState<number>(0)\n\n useEffect(() => {\n pushFilteredSuggestions && setFilteredSuggestions(pushFilteredSuggestions)\n }, [pushFilteredSuggestions])\n\n useEffect(() => {\n setFocus && inputRef.current?.focus()\n }, [setFocus])\n\n const inputRef = React.useRef<HTMLInputElement>()\n\n // eslint-disable-next-line no-unused-vars\n const getSuggestionValue = (suggestion) => suggestion.name\n\n const getSuggestions = (value) => {\n const inputValue = value.trim().toLowerCase()\n const inputLength = inputValue.length\n\n return inputLength === 0\n ? []\n : suggestions.filter((tag) => tag.name.toLowerCase().slice(0, inputLength) === inputValue)\n }\n\n const handleChange = (e) => {\n setFilteredSuggestions(getSuggestions(e.target.value))\n\n // Call the parent's onChange handler, if it exists\n if (inputProps.onChange) {\n inputProps.onChange(e)\n }\n }\n\n function handleSuggestionClick(suggestion) {\n onSelected(suggestion)\n }\n\n const handleKeyDown = (event) => {\n switch (event.key) {\n case 'ArrowDown':\n heighlightedSuggestion < filteredSuggestions.length - 1 &&\n setHeighlightedSuggestion((current) => current + 1)\n break\n case 'ArrowUp':\n heighlightedSuggestion > 0 && setHeighlightedSuggestion((current) => current - 1)\n break\n case 'Enter':\n if (filteredSuggestions.length > 0) {\n onSelected(filteredSuggestions[heighlightedSuggestion])\n setHeighlightedSuggestion(0)\n }\n filteredSuggestions.length === 0 && inputProps.onKeyDown(event)\n break\n default:\n inputProps.onKeyDown(event)\n break\n }\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n {...inputProps}\n type='text'\n onChange={(e) => handleChange(e)}\n tabIndex='-1'\n onKeyDown={handleKeyDown}\n />\n <ul\n className={`tw-absolute tw-z-[4000] ${filteredSuggestions.length > 0 && 'tw-bg-base-100 tw-rounded-xl tw-p-2'}`}\n >\n {filteredSuggestions.map((suggestion, index) => (\n <li key={index} onClick={() => handleSuggestionClick(suggestion)}>\n <TagView heighlight={index === heighlightedSuggestion} tag={suggestion}></TagView>\n </li>\n ))}\n </ul>\n </div>\n )\n}\n","import * as React from 'react'\nimport { useEffect, useState } from 'react'\nimport { useTags } from '../../Map/hooks/useTags'\nimport { Tag } from '../../../types'\nimport { Autocomplete } from '../../Input/Autocomplete'\nimport { randomColor } from '../../../Utils/RandomColor'\nimport { decodeTag, encodeTag } from '../../../Utils/FormatTags'\n\n// eslint-disable-next-line react/prop-types\nexport const TagsWidget = ({ placeholder, containerStyle, defaultTags, onUpdate }) => {\n const [input, setInput] = useState('')\n const [isKeyReleased, setIsKeyReleased] = useState(false)\n const tags = useTags()\n const [pushFilteredSuggestions, setPushFilteredSuggestions] = useState<Array<any>>([])\n\n const [focusInput, setFocusInput] = useState<boolean>(false)\n const [currentTags, setCurrentTags] = useState<Array<Tag>>(defaultTags)\n\n useEffect(() => {\n setCurrentTags(defaultTags)\n }, [defaultTags])\n\n const onChange = (e) => {\n const { value } = e.target\n setInput(value)\n }\n\n const onKeyDown = (e) => {\n const { key } = e\n const trimmedInput = input.trim()\n\n if (\n (key === 'Enter' || key === ',') &&\n trimmedInput.length &&\n // eslint-disable-next-line react/prop-types\n !defaultTags.some((tag) => tag.name.toLocaleLowerCase() === trimmedInput.toLocaleLowerCase())\n ) {\n e.preventDefault()\n const newTag = tags.find((t) => t.name === trimmedInput.toLocaleLowerCase())\n newTag && onUpdate([...currentTags, newTag])\n !newTag &&\n onUpdate([\n ...currentTags,\n { id: crypto.randomUUID(), name: encodeTag(trimmedInput), color: randomColor() },\n ])\n setInput('')\n setPushFilteredSuggestions([])\n }\n\n // eslint-disable-next-line react/prop-types\n if (key === 'Backspace' && !input.length && defaultTags.length && isKeyReleased) {\n const defaultTagsCopy = [...defaultTags]\n const poppedTag = defaultTagsCopy.pop()\n e.preventDefault()\n onUpdate(defaultTagsCopy)\n poppedTag && setInput(poppedTag.name)\n }\n\n setIsKeyReleased(false)\n }\n\n const onKeyUp = () => {\n setIsKeyReleased(true)\n }\n\n const deleteTag = (tag) => {\n onUpdate(currentTags.filter((t) => t !== tag))\n }\n\n const onSelected = (tag) => {\n // eslint-disable-next-line react/prop-types\n if (!defaultTags.some((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())) {\n const newTag = tags.find((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())\n newTag && onUpdate([...currentTags, newTag])\n !newTag &&\n onUpdate([\n ...currentTags,\n { id: crypto.randomUUID(), name: tag.name.toLocaleLowerCase(), color: randomColor() },\n ])\n setInput('')\n setPushFilteredSuggestions([])\n }\n }\n\n const inputProps = {\n value: input,\n placeholder,\n onKeyDown,\n onKeyUp,\n onChange,\n className: 'tw-bg-transparent tw-w-fit tw-mt-5 tw-h-fit',\n }\n\n /* eslint-disable react/prop-types */\n return (\n <div\n onClick={() => {\n setFocusInput(true)\n setTimeout(() => {\n setFocusInput(false)\n }, 200)\n }}\n className={`tw-input tw-input-bordered tw-cursor-text ${containerStyle}`}\n >\n <div className='tw-flex tw-flex-wrap tw-h-fit'>\n {defaultTags.map((tag) => (\n <div\n key={tag.name}\n className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mt-3 tw-mr-4'\n style={{ backgroundColor: tag.color ? tag.color : '#666' }}\n >\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600'\n onClick={() => deleteTag(tag)}\n >\n ✕\n </label>\n </div>\n <b>{decodeTag(tag.name)}</b>\n </div>\n ))}\n <Autocomplete\n suggestions={tags}\n pushFilteredSuggestions={pushFilteredSuggestions}\n setFocus={focusInput}\n inputProps={inputProps}\n onSelected={(tag) => onSelected(tag)}\n />\n </div>\n </div>\n )\n /* eslint-enable react/prop-types */\n}\n","/* eslint-disable react/prop-types */\nimport { useCallback, useEffect, useState } from 'react'\nimport { TextAreaInput } from '../../Input'\nimport { PopupStartEndInput, TextView } from '../../Map'\nimport { ActionButton } from '../Subcomponents/ActionsButton'\nimport { LinkedItemsHeaderView } from '../Subcomponents/LinkedItemsHeaderView'\nimport { TagsWidget } from '../Subcomponents/TagsWidget'\nimport { useNavigate } from 'react-router-dom'\nimport { useUpdateItem } from '../../Map/hooks/useItems'\n\nexport const TabsForm = ({\n item,\n state,\n setState,\n updatePermission,\n linkItem,\n unlinkItem,\n loading,\n setUrlParams,\n}) => {\n const [activeTab, setActiveTab] = useState<number>(1)\n const navigate = useNavigate()\n const updateItem = useUpdateItem()\n\n const updateActiveTab = useCallback(\n (id: number) => {\n setActiveTab(id)\n\n const params = new URLSearchParams(window.location.search)\n\n params.set('tab', `${id}`)\n const newUrl = location.pathname + '?' + params.toString()\n window.history.pushState({}, '', newUrl)\n setUrlParams(params)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [location.pathname],\n )\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTab = params.get('tab')\n setActiveTab(urlTab ? Number(urlTab) : 1)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search])\n\n return (\n <div role='tablist' className='tw-tabs tw-tabs-lifted tw-mt-3'>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={'tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'}\n aria-label='Info'\n checked={activeTab === 1 && true}\n onChange={() => updateActiveTab(1)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56 tw-border-none'\n >\n <div\n className={`tw-flex tw-flex-col tw-h-full ${item.layer.itemType.show_start_end_input && 'tw-pt-4'}`}\n >\n {item.layer.itemType.show_start_end_input && (\n <PopupStartEndInput\n item={item}\n showLabels={false}\n updateEndValue={(e) =>\n setState((prevState) => ({\n ...prevState,\n end: e,\n }))\n }\n updateStartValue={(s) =>\n setState((prevState) => ({\n ...prevState,\n start: s,\n }))\n }\n ></PopupStartEndInput>\n )}\n\n <TextAreaInput\n placeholder='about ...'\n defaultValue={item?.text ? item.text : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n containerStyle='tw-grow'\n inputStyle={`tw-h-full ${!item.layer.itemType.show_start_end_input && 'tw-border-t-0 tw-rounded-tl-none'}`}\n />\n <div>\n <TextAreaInput\n placeholder='contact info ...'\n defaultValue={state.contact || ''}\n updateFormValue={(c) =>\n setState((prevState) => ({\n ...prevState,\n contact: c,\n }))\n }\n inputStyle='tw-h-24'\n containerStyle='tw-pt-4'\n />\n </div>\n </div>\n </div>\n {item.layer?.itemType.offers_and_needs && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label='Offers & Needs'\n checked={activeTab === 3 && true}\n onChange={() => updateActiveTab(3)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56 tw-border-none'\n >\n <div className='tw-h-full'>\n <div className='tw-w-full tw-h-[calc(50%-0.75em)] tw-mb-4'>\n <TagsWidget\n defaultTags={state.offers}\n onUpdate={(v) =>\n setState((prevState) => ({\n ...prevState,\n offers: v,\n }))\n }\n placeholder='enter your offers'\n containerStyle='tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto'\n />\n </div>\n <div className='tw-w-full tw-h-[calc(50%-1.5em)]'>\n <TagsWidget\n defaultTags={state.needs}\n onUpdate={(v) =>\n setState((prevState) => ({\n ...prevState,\n needs: v,\n }))\n }\n placeholder='enter your needs'\n containerStyle='tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto'\n />\n </div>\n </div>\n </div>\n </>\n )}\n {item.layer?.itemType.relations && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className='tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n aria-label='Relations'\n checked={activeTab === 7 && true}\n onChange={() => updateActiveTab(7)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-332px)] tw-overflow-y-auto tw-pt-4 tw-pb-1 -tw-mx-4 tw-overflow-x-hidden fade'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2 md:tw-grid-cols-1 lg:tw-grid-cols-1 xl:tw-grid-cols-1 2xl:tw-grid-cols-2 tw-mb-4'>\n {state.relations &&\n state.relations.map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-bg-base-200 tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-text-base-content tw-mx-4 tw-p-6 tw-mb-4'\n onClick={() => navigate('/item/' + i.id)}\n >\n <LinkedItemsHeaderView\n unlinkPermission={updatePermission}\n item={i}\n unlinkCallback={(id) => unlinkItem(id, item, updateItem)}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n <TextView truncate item={i} />\n </div>\n </div>\n ))}\n {updatePermission && (\n <ActionButton\n customStyle='!tw-bottom-24'\n collection='items'\n item={item}\n existingRelations={state.relations}\n triggerItemSelected={(id) => linkItem(id, item, updateItem)}\n colorField={item.layer.itemColorField}\n ></ActionButton>\n )}\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n )\n}\n","import * as React from 'react'\nimport { useState, useCallback, useRef } from 'react'\nimport ReactCrop, { Crop, centerCrop, makeAspectCrop } from 'react-image-crop'\nimport { useAppState } from '../../AppShell/hooks/useAppState'\nimport 'react-image-crop/dist/ReactCrop.css'\nimport DialogModal from '../../Templates/DialogModal'\n\ninterface AvatarWidgetProps {\n avatar: string\n setAvatar: React.Dispatch<React.SetStateAction<any>>\n}\n\nexport const AvatarWidget: React.FC<AvatarWidgetProps> = ({ avatar, setAvatar }) => {\n const [crop, setCrop] = useState<Crop>()\n const [image, setImage] = useState<string>('')\n const [cropModalOpen, setCropModalOpen] = useState<boolean>(false)\n const [cropping, setCropping] = useState<boolean>(false)\n\n const appState = useAppState()\n\n const imgRef = useRef<HTMLImageElement>(null)\n\n const onImageChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n const file = event.target.files && event.target.files[0]\n if (file) {\n const validFormats = ['image/jpeg', 'image/png']\n const maxSizeMB = 10\n const maxSizeBytes = maxSizeMB * 1024 * 1024\n\n if (!validFormats.includes(file.type)) {\n alert('Unsupported file format. Please upload a JPEG or PNG image.')\n return\n }\n\n if (file.size > maxSizeBytes) {\n alert(`File size exceeds ${maxSizeMB}MB. Please upload a smaller image.`)\n return\n }\n\n setImage(URL.createObjectURL(file))\n setCropModalOpen(true)\n } else {\n alert('No file selected or an error occurred while selecting the file.')\n }\n }, [])\n\n const onImageLoad = useCallback((e: React.SyntheticEvent<HTMLImageElement>) => {\n const { width, height } = e.currentTarget\n setCrop(centerAspectCrop(width, height, 1))\n }, [])\n\n const centerAspectCrop = (mediaWidth: number, mediaHeight: number, aspect: number) => {\n return centerCrop(\n makeAspectCrop(\n {\n unit: 'px',\n width: mediaWidth / 2,\n },\n aspect,\n mediaWidth,\n mediaHeight,\n ),\n mediaWidth,\n mediaHeight,\n )\n }\n\n async function resizeImage(\n image: HTMLImageElement,\n maxWidth: number,\n maxHeight: number,\n ): Promise<HTMLImageElement> {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n\n let width = image.width\n let height = image.height\n\n if (width > maxWidth) {\n height *= maxWidth / width\n width = maxWidth\n }\n if (height > maxHeight) {\n width *= maxHeight / height\n height = maxHeight\n }\n\n canvas.width = width\n canvas.height = height\n\n if (ctx) {\n ctx.drawImage(image, 0, 0, width, height)\n }\n\n const resizedImage = new Image()\n resizedImage.src = canvas.toDataURL()\n\n await resizedImage.decode()\n return resizedImage\n }\n\n const renderCrop = useCallback(async () => {\n const image = imgRef.current\n if (crop && image) {\n const resizedImage = await resizeImage(image, 1024, 1024) // Bildgröße vor dem Zuschneiden reduzieren\n const scaleX = resizedImage.naturalWidth / resizedImage.width\n const scaleY = resizedImage.naturalHeight / resizedImage.height\n\n const canvas = new OffscreenCanvas(crop.width * scaleX, crop.height * scaleY)\n const ctx = canvas.getContext('2d')\n const pixelRatio = window.devicePixelRatio\n canvas.width = crop.width * pixelRatio * scaleX\n canvas.height = crop.height * pixelRatio * scaleY\n\n if (ctx) {\n ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0)\n ctx.drawImage(\n resizedImage,\n crop.x * scaleX,\n crop.y * scaleY,\n crop.width * scaleX,\n crop.height * scaleY,\n 0,\n 0,\n crop.width * scaleX,\n crop.height * scaleY,\n )\n }\n\n const blob = await canvas.convertToBlob()\n await resizeBlob(blob)\n setCropping(false)\n setImage('')\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [crop])\n\n const resizeBlob = useCallback(\n async (blob: Blob) => {\n const img = new Image()\n img.src = URL.createObjectURL(blob)\n await img.decode()\n\n const canvas = new OffscreenCanvas(400, 400)\n const ctx = canvas.getContext('2d')\n ctx?.drawImage(img, 0, 0, 400, 400)\n\n const resizedBlob = await canvas.convertToBlob()\n const asset = await appState.assetsApi.upload(resizedBlob, 'avatar')\n setAvatar(asset.id)\n },\n [appState.assetsApi, setAvatar],\n )\n\n return (\n <>\n {!cropping ? (\n <label className='custom-file-upload'>\n <input\n type='file'\n accept='image/*'\n className='tw-file-input tw-w-full tw-max-w-xs'\n onChange={onImageChange}\n />\n <div className='button tw-btn tw-btn-lg tw-btn-circle tw-animate-none'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='1.5'\n stroke='currentColor'\n className='tw-w-6 tw-h-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5'\n />\n </svg>\n </div>\n {avatar ? (\n <div className='tw-h-20 tw-w-20'>\n <img\n src={appState.assetsApi.url + avatar}\n className='tw-h-20 tw-w-20 tw-rounded-full'\n />\n </div>\n ) : (\n <div className='tw-h-20 tw-w-20'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n version='1.0'\n viewBox='0 0 150 150'\n className='tw-w-20 tw-h-20 tw-rounded-full'\n style={{ backgroundColor: '#eee' }}\n >\n <path\n fill='#ccc'\n d='M 104.68731,56.689353 C 102.19435,80.640493 93.104981,97.26875 74.372196,97.26875 55.639402,97.26875 46.988823,82.308034 44.057005,57.289941 41.623314,34.938838 55.639402,15.800152 74.372196,15.800152 c 18.732785,0 32.451944,18.493971 30.315114,40.889201 z'\n />\n <path\n fill='#ccc'\n d='M 92.5675 89.6048 C 90.79484 93.47893 89.39893 102.4504 94.86478 106.9039 C 103.9375 114.2963 106.7064 116.4723 118.3117 118.9462 C 144.0432 124.4314 141.6492 138.1543 146.5244 149.2206 L 4.268444 149.1023 C 8.472223 138.6518 6.505799 124.7812 32.40051 118.387 C 41.80992 116.0635 45.66513 113.8823 53.58659 107.0158 C 58.52744 102.7329 57.52583 93.99267 56.43084 89.26926 C 52.49275 88.83011 94.1739 88.14054 92.5675 89.6048 z'\n />\n </svg>\n </div>\n )}\n </label>\n ) : (\n <div className='tw-w-20 tw-flex tw-items-center tw-justify-center'>\n <span className='tw-loading tw-loading-spinner'></span>\n </div>\n )}\n <DialogModal\n title=''\n isOpened={cropModalOpen}\n onClose={() => {\n setCropModalOpen(false)\n setImage('')\n }}\n closeOnClickOutside={false}\n >\n <ReactCrop crop={crop} onChange={(c) => setCrop(c)} aspect={1}>\n <img src={image} ref={imgRef} onLoad={onImageLoad} />\n </ReactCrop>\n <button\n className={'tw-btn tw-btn-primary'}\n onClick={() => {\n setCropping(true)\n setCropModalOpen(false)\n renderCrop()\n }}\n >\n Select\n </button>\n </DialogModal>\n </>\n )\n}\n","import { useEffect } from 'react'\n\n// Improved version of https://usehooks.com/useOnClickOutside/\nconst useClickOutside = (ref, handler) => {\n useEffect(() => {\n let startedInside = false\n let startedWhenMounted = false\n\n const listener = (event) => {\n // Do nothing if `mousedown` or `touchstart` started inside ref element\n if (startedInside || !startedWhenMounted) return\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) return\n\n handler(event)\n }\n\n const validateEventStart = (event) => {\n startedWhenMounted = ref.current\n startedInside = ref.current && ref.current.contains(event.target)\n }\n\n document.addEventListener('mousedown', validateEventStart)\n document.addEventListener('touchstart', validateEventStart)\n document.addEventListener('click', listener)\n\n return () => {\n document.removeEventListener('mousedown', validateEventStart)\n document.removeEventListener('touchstart', validateEventStart)\n document.removeEventListener('click', listener)\n }\n }, [ref, handler])\n}\n\nexport default useClickOutside\n","import { useCallback, useEffect, useRef, useState } from 'react'\nimport * as React from 'react'\nimport { HexColorPicker } from 'react-colorful'\nimport './ColorPicker.css'\nimport useClickOutside from '../hooks/useClickOutside'\n\n// eslint-disable-next-line react/prop-types\nexport const ColorPicker = ({ color, onChange, className }) => {\n const popover = useRef<HTMLDivElement>(null)\n const [isOpen, toggle] = useState(false)\n\n const close = useCallback(() => toggle(false), [])\n useClickOutside(popover, close)\n\n const colorPickerRef = React.useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n // Füge dem Color-Picker explizit Event-Listener hinzu\n const colorPickerElement = colorPickerRef.current\n if (colorPickerElement) {\n const enablePropagation = (event) => {\n // Verhindere, dass Leaflet die Propagation stoppt\n event.stopPropagation = () => {}\n }\n\n // Event-Listener für den Color-Picker\n ;['click', 'dblclick', 'mousedown', 'touchstart'].forEach((eventType) => {\n colorPickerElement.addEventListener(eventType, enablePropagation, true)\n })\n }\n }, [])\n\n return (\n <div ref={colorPickerRef} className={`picker ${className}`}>\n <div className='swatch' style={{ backgroundColor: color }} onClick={() => toggle(true)} />\n\n {isOpen && (\n <div className='popover tw-z-[10000]' ref={popover}>\n <HexColorPicker color={color} onChange={onChange} onClick={() => toggle(false)} />\n </div>\n )}\n </div>\n )\n}\n","/* eslint-disable react/prop-types */\nimport { TextInput } from '../../Input'\nimport { AvatarWidget } from './AvatarWidget'\nimport { ColorPicker } from './ColorPicker'\n\nexport const FormHeader = ({ item, state, setState }) => {\n return (\n <div className='tw-flex'>\n <AvatarWidget\n avatar={state.image}\n setAvatar={(i) =>\n setState((prevState) => ({\n ...prevState,\n image: i,\n }))\n }\n />\n <ColorPicker\n color={state.color}\n onChange={(c) =>\n setState((prevState) => ({\n ...prevState,\n color: c,\n }))\n }\n className={'-tw-left-6 tw-top-14 -tw-mr-6'}\n />\n <div className='tw-grow tw-mr-4'>\n <TextInput\n placeholder='Name'\n defaultValue={item?.name ? item.name : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n name: v,\n }))\n }\n containerStyle='tw-grow tw-input-md'\n />\n <TextInput\n placeholder='Subtitle'\n defaultValue={item?.subname ? item.subname : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n subname: v,\n }))\n }\n containerStyle='tw-grow tw-input-sm tw-px-4 tw-mt-1'\n />\n </div>\n </div>\n )\n}\n","import * as React from 'react'\nimport { TextAreaInput } from '../../Input'\nimport { FormState } from '../Templates/OnepagerForm'\nimport { getValue } from '../../../Utils/GetValue'\nimport { useEffect, useState } from 'react'\n\nexport const ProfileTextForm = ({\n state,\n setState,\n dataField,\n heading,\n size,\n hideInputLabel,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n dataField?: string\n heading: string\n size: string\n hideInputLabel: boolean\n}) => {\n const [field, setField] = useState<string>(dataField || 'text')\n\n useEffect(() => {\n if (!dataField) {\n setField('text')\n }\n }, [dataField])\n\n return (\n <div className='tw-h-full tw-flex tw-flex-col tw-mt-4'>\n <label\n htmlFor='nextAppointment'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n {heading || 'Text'}:\n </label>\n <TextAreaInput\n placeholder={'...'}\n defaultValue={getValue(state, field)}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n [field]: v,\n }))\n }\n labelStyle={hideInputLabel ? 'tw-hidden' : ''}\n containerStyle={size === 'full' ? 'tw-grow tw-h-full' : ''}\n inputStyle={size === 'full' ? 'tw-h-full' : 'tw-h-24'}\n />\n </div>\n )\n}\n","import * as React from 'react'\nimport { PopupStartEndInput } from '../../Map'\nimport { Item } from '../../../types'\n\nexport const ProfileStartEndForm = ({\n item,\n setState,\n}: {\n item: Item\n setState: React.Dispatch<React.SetStateAction<any>>\n}) => {\n return (\n <PopupStartEndInput\n item={item}\n showLabels={false}\n updateEndValue={(e) =>\n setState((prevState) => ({\n ...prevState,\n end: e,\n }))\n }\n updateStartValue={(s) =>\n setState((prevState) => ({\n ...prevState,\n start: s,\n }))\n }\n ></PopupStartEndInput>\n )\n}\n","import * as React from 'react'\nimport { Item } from '../../../types'\nimport { FormState } from './OnepagerForm'\nimport { GroupSubheaderForm } from '../Subcomponents/GroupSubheaderForm'\nimport { ContactInfoForm } from '../Subcomponents/ContactInfoForm'\nimport { ProfileTextForm } from '../Subcomponents/ProfileTextForm'\nimport { ProfileStartEndForm } from '../Subcomponents/ProfileStartEndForm'\n\nconst componentMap = {\n groupSubheaders: GroupSubheaderForm,\n texts: ProfileTextForm,\n contactInfos: ContactInfoForm,\n startEnd: ProfileStartEndForm,\n // weitere Komponenten hier\n}\n\nexport const FlexForm = ({\n item,\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n}) => {\n return (\n <div className='tw-mt-6 tw-flex tw-flex-col tw-h-full'>\n {item.layer?.itemType.profileTemplate.map((templateItem) => {\n const TemplateComponent = componentMap[templateItem.collection]\n return TemplateComponent ? (\n <TemplateComponent\n key={templateItem.id}\n state={state}\n setState={setState}\n item={item}\n {...templateItem.item}\n />\n ) : (\n <div key={templateItem.id}>Component not found</div>\n )\n })}\n </div>\n )\n}\n","import { useItems, useUpdateItem, useAddItem } from '../Map/hooks/useItems'\nimport { useEffect, useState } from 'react'\nimport { getValue } from '../../Utils/GetValue'\nimport { useAuth } from '../Auth'\nimport { useAddTag, useGetItemTags, useTags } from '../Map/hooks/useTags'\nimport { useLocation, useNavigate } from 'react-router-dom'\nimport { Item, Tag } from '../../types'\nimport { MapOverlayPage } from '../Templates'\nimport { useLayers } from '../Map/hooks/useLayers'\nimport { useHasUserPermission } from '../Map/hooks/usePermissions'\nimport { OnepagerForm } from './Templates/OnepagerForm'\nimport { linkItem, onUpdateItem, unlinkItem } from './itemFunctions'\nimport { SimpleForm } from './Templates/SimpleForm'\nimport { TabsForm } from './Templates/TabsForm'\nimport { FormHeader } from './Subcomponents/FormHeader'\nimport { useAppState } from '../AppShell/hooks/useAppState'\nimport { FlexForm } from './Templates/FlexForm'\n\nexport function ProfileForm() {\n const [state, setState] = useState({\n color: '',\n id: '',\n group_type: 'wuerdekompass',\n status: 'active',\n name: '',\n subname: '',\n text: '',\n contact: '',\n telephone: '',\n next_appointment: '',\n image: '',\n marker_icon: '',\n offers: [] as Tag[],\n needs: [] as Tag[],\n relations: [] as Item[],\n start: '',\n end: '',\n })\n\n const [updatePermission, setUpdatePermission] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n const [item, setItem] = useState<Item>({} as Item)\n const { user } = useAuth()\n const updateItem = useUpdateItem()\n const addItem = useAddItem()\n const layers = useLayers()\n const location = useLocation()\n const tags = useTags()\n const addTag = useAddTag()\n const navigate = useNavigate()\n const hasUserPermission = useHasUserPermission()\n const getItemTags = useGetItemTags()\n const items = useItems()\n const appState = useAppState()\n\n const [urlParams, setUrlParams] = useState(new URLSearchParams(location.search))\n\n useEffect(() => {\n item && hasUserPermission('items', 'update', item) && setUpdatePermission(true)\n }, [hasUserPermission, item])\n\n useEffect(() => {\n const itemId = location.pathname.split('/')[2]\n\n const item = items.find((i) => i.id === itemId)\n item && setItem(item)\n\n if (!item) {\n const layer = layers.find((l) => l.itemType.name === appState.userType)\n setItem({\n id: crypto.randomUUID(),\n name: user ? user.first_name : '',\n text: '',\n layer,\n new: true,\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n useEffect(() => {\n const newColor =\n item.layer?.itemColorField && getValue(item, item.layer?.itemColorField)\n ? getValue(item, item.layer?.itemColorField)\n : getItemTags(item) && getItemTags(item)[0]?.color\n ? getItemTags(item)[0].color\n : item?.layer?.markerDefaultColor\n\n const offers = (item?.offers ?? []).reduce((acc: Tag[], o) => {\n const offer = tags.find((t) => t.id === o.tags_id)\n if (offer) acc.push(offer)\n return acc\n }, [])\n\n const needs = (item?.needs ?? []).reduce((acc: Tag[], o) => {\n const need = tags.find((t) => t.id === o.tags_id)\n if (need) acc.push(need)\n return acc\n }, [])\n\n const relations = (item?.relations ?? []).reduce((acc: Item[], r) => {\n const relatedItem = items.find((i) => i.id === r.related_items_id)\n if (relatedItem) acc.push(relatedItem)\n return acc\n }, [])\n\n setState({\n color: newColor,\n id: item?.id ?? '',\n group_type: item?.group_type ?? '',\n status: item?.status ?? '',\n name: item?.name ?? '',\n subname: item?.subname ?? '',\n text: item?.text ?? '',\n contact: item?.contact ?? '',\n telephone: item?.telephone ?? '',\n next_appointment: item?.next_appointment ?? '',\n image: item?.image ?? '',\n marker_icon: item?.marker_icon ?? '',\n offers,\n needs,\n relations,\n start: item?.start ?? '',\n end: item?.end ?? '',\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, tags, items])\n\n const [template, setTemplate] = useState<string>('')\n\n useEffect(() => {\n setTemplate(item.layer?.itemType.template || appState.userType)\n }, [appState.userType, item])\n\n return (\n <>\n <MapOverlayPage\n backdrop\n className='tw-mx-4 tw-mt-4 tw-mb-4 tw-overflow-x-hidden tw-w-[calc(100%-32px)] md:tw-w-[calc(50%-32px)] tw-max-w-3xl !tw-left-auto tw-top-0 tw-bottom-0'\n >\n <div className='tw-flex tw-flex-col tw-h-full'>\n <FormHeader item={item} state={state} setState={setState} />\n\n {template === 'onepager' && (\n <OnepagerForm item={item} state={state} setState={setState}></OnepagerForm>\n )}\n\n {template === 'simple' && <SimpleForm state={state} setState={setState}></SimpleForm>}\n\n {template === 'flex' && (\n <FlexForm item={item} state={state} setState={setState}></FlexForm>\n )}\n\n {template === 'tabs' && (\n <TabsForm\n loading={loading}\n item={item}\n state={state}\n setState={setState}\n updatePermission={updatePermission}\n linkItem={(id) => linkItem(id, item, updateItem)}\n unlinkItem={(id) => unlinkItem(id, item, updateItem)}\n setUrlParams={setUrlParams}\n ></TabsForm>\n )}\n\n <div className='tw-mt-4'>\n <button\n className={loading ? ' tw-loading tw-btn tw-float-right' : 'tw-btn tw-float-right'}\n onClick={() =>\n onUpdateItem(\n state,\n item,\n tags,\n addTag,\n setLoading,\n navigate,\n updateItem,\n addItem,\n user,\n urlParams,\n )\n }\n style={{\n backgroundColor: `${item.layer?.itemColorField && getValue(item, item.layer?.itemColorField) ? getValue(item, item.layer?.itemColorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n Update\n </button>\n </div>\n </div>\n </MapOverlayPage>\n </>\n )\n}\n","import * as React from 'react'\nimport { useEffect } from 'react'\n\nexport function Modal({\n children,\n showOnStartup,\n}: {\n children: React.ReactNode\n showOnStartup?: boolean\n}) {\n useEffect(() => {\n if (showOnStartup) {\n window.my_modal_3.showModal()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <>\n {/* You can open the modal using ID.showModal() method */}\n <dialog id='my_modal_3' className='tw-modal tw-transition-all tw-duration-300'>\n <form method='dialog' className='tw-modal-box tw-transition-none'>\n <button className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2 focus:tw-outline-none'>\n ✕\n </button>\n {children}\n </form>\n <form method='dialog' className='tw-modal-backdrop'>\n <button>close</button>\n </form>\n </dialog>\n </>\n )\n}\n","import { useQuestsOpen, useSetQuestOpen } from './hooks/useQuests'\nimport { useAuth } from '../Auth'\nimport { useEffect, useState } from 'react'\nimport { useItems } from '../Map/hooks/useItems'\nimport { Item } from '../../types'\n\nexport function Quests() {\n const questsOpen = useQuestsOpen()\n const setQuestsOpen = useSetQuestOpen()\n const { isAuthenticated, user } = useAuth()\n\n useEffect(() => {\n setQuestsOpen(false)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const [profile, setProfie] = useState<Item>()\n\n const items = useItems()\n\n useEffect(() => {\n setProfie(\n items.find(\n (i) =>\n i.user_created?.id === user?.id &&\n i.layer?.itemType.name === 'user' &&\n i.user_created?.id != null,\n ),\n )\n }, [items, user])\n\n return (\n <>\n {questsOpen ? (\n <div className='tw-card tw-w-48 tw-bg-base-100 tw-shadow-xl tw-absolute tw-bottom-4 tw-left-4 tw-z-[2000]'>\n <div className='tw-card-body tw-p-4 tw-pt-0'>\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-1 tw-top-1'\n onClick={() => setQuestsOpen(false)}\n >\n ✕\n </label>\n </div>\n <h2 className='tw-card-title tw-m-auto '>\n Level 1\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={1.5}\n stroke='#aaa'\n className='tw-w-5 tw-h-5 tw-cursor-pointer'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z'\n />\n </svg>\n </h2>\n <ul className='tw-flex-row'>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isAuthenticated || false}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Sign Up</span>\n </label>\n </li>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={!!profile?.text}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Fill Profile</span>\n </label>\n </li>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={!!profile?.image}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Upload Avatar</span>\n </label>\n </li>\n </ul>\n {/** <button className='tw-btn tw-btn-xs tw-btn-neutral tw-w-fit tw-self-center tw-mt-1'>Next &gt;</button> */}{' '}\n </div>\n </div>\n ) : (\n ''\n )}\n </>\n )\n}\n"],"names":["_jsx","_jsxs","_Fragment","L","Router","LeafletPopup","ChevronRightIcon","componentMap"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/Components/Gaming/hooks/useQuests.tsx","../src/Components/Map/hooks/useClusterRef.tsx","../src/Components/Map/hooks/useLayers.tsx","../src/Components/Map/hooks/useWindowDimension.tsx","../src/Components/Map/hooks/useFilter.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Components/Map/hooks/useLeafletRefs.tsx","../src/Components/Auth/useAuth.tsx","../src/Components/Map/hooks/usePermissions.tsx","../src/types.ts","../src/Components/Map/hooks/useSelectPosition.tsx","../src/Utils/GetValue.ts","../src/Utils/HashTagRegex.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Components/AppShell/hooks/useAppState.tsx","../src/Components/AppShell/ContextWrapper.tsx","../src/Components/Map/Subcomponents/AddButton.tsx","../src/Components/Map/Subcomponents/Controls/Control.tsx","../src/Components/Map/Subcomponents/Controls/FilterControl.tsx","../src/Components/Templates/MapOverlayPage.tsx","../src/Components/Auth/LoginPage.tsx","../src/Components/Auth/SignupPage.tsx","../src/Components/Auth/RequestPasswordPage.tsx","../src/Components/Auth/SetNewPasswordPage.tsx","../src/Components/Map/Subcomponents/Controls/GratitudeControl.tsx","../src/Components/Map/Subcomponents/Controls/LayerControl.tsx","../src/Components/Map/hooks/useTimeout.tsx","../src/Components/Map/hooks/useDebounce.tsx","../src/Utils/FormatTags.ts","../src/Utils/MarkerIconFactory.ts","../node_modules/leaflet.locatecontrol/src/L.Control.Locate.js","../src/Components/Map/Subcomponents/Controls/LocateControl.tsx","../src/Components/Map/Subcomponents/Controls/SidebarControl.tsx","../src/Components/Map/Subcomponents/Controls/SearchControl.tsx","../src/Components/Map/Subcomponents/Controls/TagsControl.tsx","../src/Utils/ReplaceURLs.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx","../src/Components/Map/Subcomponents/SelectPosition.tsx","../src/Components/Map/UtopiaMapInner.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/RandomColor.ts","../src/Components/Input/TextAreaInput.tsx","../src/Components/Input/TextInput.tsx","../src/Components/Map/Subcomponents/ItemFormPopup.tsx","../src/Utils/TimeAgo.ts","../src/Components/Templates/DialogModal.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Components/Map/Subcomponents/ItemViewPopup.tsx","../src/Components/Map/Layer.tsx","../src/Components/Map/Tags.tsx","../src/Components/Map/Permissions.tsx","../src/Components/Map/ItemForm.tsx","../src/Components/Map/ItemView.tsx","../src/Components/Input/SelectBox.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx","../src/Components/AppShell/NavBar.tsx","../src/Components/AppShell/SetAppState.tsx","../src/Components/AppShell/AppShell.tsx","../src/Components/AppShell/SidebarSubmenu.tsx","../src/Components/AppShell/SideBar.tsx","../src/Components/AppShell/Content.tsx","../src/Components/AppShell/Sitemap.tsx","../src/Components/Typography/Subtitle.tsx","../src/Components/Templates/TitleCard.tsx","../src/Components/Templates/CardPage.tsx","../src/Utils/Moon.ts","../src/Components/Templates/CircleLayout.tsx","../src/Components/Templates/MoonCalendar.tsx","../src/Components/Templates/SelectUser.tsx","../src/Components/Profile/Subcomponents/PlusButton.tsx","../src/Components/Templates/DateUserInfo.tsx","../src/Components/Templates/ItemCard.tsx","../src/Components/Templates/OverlayItemsIndexPage.tsx","../src/Components/Templates/EmojiPicker.tsx","../src/Components/Templates/AttestationForm.tsx","../src/Components/Templates/TagView.tsx","../src/Components/Templates/MarketView.tsx","../src/Components/Profile/UserSettings.tsx","../src/Components/Profile/itemFunctions.ts","../src/Components/Profile/Subcomponents/ContactInfoView.tsx","../src/Components/Profile/Subcomponents/SocialShareButton.tsx","../src/Components/Profile/Subcomponents/SocialShareBar.tsx","../src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx","../src/Components/Profile/Subcomponents/ProfileStartEndView.tsx","../src/Components/Profile/Subcomponents/ProfileTextView.tsx","../src/Components/Profile/Templates/FlexView.tsx","../src/Components/Profile/Templates/OnepagerView.tsx","../src/Components/Profile/Templates/SimpleView.tsx","../src/Components/Profile/Subcomponents/ActionsButton.tsx","../src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx","../src/Components/Profile/Templates/TabsView.tsx","../src/Components/Profile/ProfileView.tsx","../src/Components/Profile/Subcomponents/AvatarWidget.tsx","../src/Components/Profile/hooks/useClickOutside.tsx","../src/Components/Profile/Subcomponents/ColorPicker.tsx","../src/Components/Profile/Subcomponents/FormHeader.tsx","../src/Components/Profile/Subcomponents/ContactInfoForm.tsx","../src/Components/Input/ComboBoxInput.tsx","../src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx","../src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx","../src/Components/Profile/Subcomponents/ProfileTextForm.tsx","../src/Components/Profile/Templates/FlexForm.tsx","../src/Components/Profile/Templates/OnepagerForm.tsx","../src/Components/Profile/Templates/SimpleForm.tsx","../src/Components/Input/Autocomplete.tsx","../src/Components/Profile/Subcomponents/TagsWidget.tsx","../src/Components/Profile/Templates/TabsForm.tsx","../src/Components/Profile/ProfileForm.tsx","../src/Components/Gaming/Modal.tsx","../src/Components/Gaming/Quests.tsx"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { useCallback, useState, createContext, useContext } from 'react'\n\ntype UseQuestManagerResult = ReturnType<typeof useQuestsManager>\n\nconst QuestContext = createContext<UseQuestManagerResult>({\n open: false,\n setQuestsOpen: () => {},\n})\n\nfunction useQuestsManager(initialOpen: boolean): {\n open: boolean\n setQuestsOpen: (open: boolean) => void\n} {\n const [open, setOpen] = useState<boolean>(initialOpen)\n\n const setQuestsOpen = useCallback((questOpen: boolean) => {\n setOpen(questOpen)\n }, [])\n\n return { open, setQuestsOpen }\n}\n\nexport const QuestsProvider: React.FunctionComponent<{\n initialOpen: boolean\n children?: React.ReactNode\n}> = ({ initialOpen, children }) => (\n <QuestContext.Provider value={useQuestsManager(initialOpen)}>{children}</QuestContext.Provider>\n)\n\nexport const useQuestsOpen = (): boolean => {\n const { open } = useContext(QuestContext)\n return open\n}\n\nexport const useSetQuestOpen = (): UseQuestManagerResult['setQuestsOpen'] => {\n const { setQuestsOpen } = useContext(QuestContext)\n return setQuestsOpen\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext, useContext, useState } from 'react'\n\ntype UseClusterRefManagerResult = ReturnType<typeof useClusterRefManager>\n\nconst ClusterRefContext = createContext<UseClusterRefManagerResult>({\n clusterRef: {} as React.MutableRefObject<undefined>,\n setClusterRef: () => {},\n})\n\nfunction useClusterRefManager(): {\n clusterRef: any\n setClusterRef: React.Dispatch<React.SetStateAction<React.MutableRefObject<undefined>>>\n} {\n const [clusterRef, setClusterRef] = useState<React.MutableRefObject<undefined>>(\n {} as React.MutableRefObject<undefined>,\n )\n\n return { clusterRef, setClusterRef }\n}\n\nexport const ClusterRefProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <ClusterRefContext.Provider value={useClusterRefManager()}>{children}</ClusterRefContext.Provider>\n)\n\nexport const useClusterRef = (): any => {\n const { clusterRef } = useContext(ClusterRefContext)\n return clusterRef\n}\n\nexport const useSetClusterRef = (): UseClusterRefManagerResult['setClusterRef'] => {\n const { setClusterRef } = useContext(ClusterRefContext)\n return setClusterRef\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { useCallback, useReducer, createContext, useContext } from 'react'\n\nimport { LayerProps } from '#src/types'\n\ninterface ActionType {\n type: 'ADD LAYER'\n layer: LayerProps\n}\n\ntype UseItemManagerResult = ReturnType<typeof useLayerManager>\n\nconst LayerContext = createContext<UseItemManagerResult>({\n layers: [],\n addLayer: () => {},\n})\n\nfunction useLayerManager(initialLayers: LayerProps[]): {\n layers: LayerProps[]\n addLayer: (layer: LayerProps) => void\n} {\n const [layers, dispatch] = useReducer((state: LayerProps[], action: ActionType) => {\n switch (action.type) {\n case 'ADD LAYER':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find((layer) => layer.name === action.layer.name)\n if (!exist) {\n return [...state, action.layer]\n } else return state\n default:\n throw new Error()\n }\n }, initialLayers)\n\n const addLayer = useCallback((layer: LayerProps) => {\n dispatch({\n type: 'ADD LAYER',\n layer,\n })\n }, [])\n\n return { layers, addLayer }\n}\n\nexport const LayersProvider: React.FunctionComponent<{\n initialLayers: LayerProps[]\n children?: React.ReactNode\n}> = ({ initialLayers, children }) => (\n <LayerContext.Provider value={useLayerManager(initialLayers)}>{children}</LayerContext.Provider>\n)\n\nexport const useLayers = (): LayerProps[] => {\n const { layers } = useContext(LayerContext)\n return layers\n}\n\nexport const useAddLayer = (): UseItemManagerResult['addLayer'] => {\n const { addLayer } = useContext(LayerContext)\n return addLayer\n}\n","import { useState, useEffect } from 'react'\n\nfunction getWindowDimensions() {\n const { innerWidth: width, innerHeight: height } = window\n return {\n width,\n height,\n }\n}\n\nexport default function useWindowDimensions() {\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions())\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions())\n }\n\n window.addEventListener('resize', handleResize)\n return () => window.removeEventListener('resize', handleResize)\n }, [])\n\n return windowDimensions\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable no-case-declarations */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { LayerProps, Tag } from '#src/types'\n\nimport { useLayers } from './useLayers'\nimport useWindowDimensions from './useWindowDimension'\n\ntype ActionType =\n | { type: 'ADD_TAG'; tag: Tag }\n | { type: 'REMOVE_TAG'; name: string }\n | { type: 'RESET_TAGS' }\n | { type: 'TOGGLE_LAYER'; layer: LayerProps }\n | { type: 'ADD_LAYER'; layer: LayerProps }\n | { type: 'RESET_LAYERS' }\n | { type: 'TOGGLE_GROUP_TYPE'; groupType: string }\n | { type: 'ADD_GROUP_TYPE'; groupType: string }\n | { type: 'RESET_GROUP_TYPE' }\n\ntype UseFilterManagerResult = ReturnType<typeof useFilterManager>\n\nconst FilterContext = createContext<UseFilterManagerResult>({\n filterTags: [],\n searchPhrase: '',\n visibleLayers: [],\n visibleGroupTypes: [],\n addFilterTag: () => {},\n removeFilterTag: () => {},\n resetFilterTags: () => {},\n setSearchPhrase: () => {},\n addVisibleLayer: () => {},\n toggleVisibleLayer: () => {},\n resetVisibleLayers: () => {},\n isLayerVisible: () => true,\n addVisibleGroupType: () => {},\n toggleVisibleGroupType: () => {},\n isGroupTypeVisible: () => true,\n})\n\nfunction useFilterManager(initialTags: Tag[]): {\n filterTags: Tag[]\n searchPhrase: string\n visibleLayers: LayerProps[]\n visibleGroupTypes: string[]\n\n addFilterTag: (tag: Tag) => void\n removeFilterTag: (name: string) => void\n resetFilterTags: () => void\n setSearchPhrase: (phrase: string) => void\n addVisibleLayer: (layer: LayerProps) => void\n toggleVisibleLayer: (layer: LayerProps) => void\n resetVisibleLayers: () => void\n isLayerVisible: (layer: LayerProps) => boolean\n addVisibleGroupType: (groupType: string) => void\n toggleVisibleGroupType: (groupType: string) => void\n isGroupTypeVisible: (groupType: string) => boolean\n} {\n const [filterTags, dispatchTags] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_TAG':\n const exist = state.find((tag) => tag.id === action.tag.id)\n if (!exist) {\n return [...state, action.tag]\n } else return state\n case 'REMOVE_TAG':\n return state.filter(({ name }) => name !== action.name)\n case 'RESET_TAGS':\n return initialTags\n default:\n throw new Error()\n }\n }, initialTags)\n\n const initialLayers = useLayers()\n const navigate = useNavigate()\n const windowDimensions = useWindowDimensions()\n\n const [visibleLayers, dispatchLayers] = useReducer((state: LayerProps[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_LAYER':\n const exist1 = state.find((layer) => layer.name === action.layer.name)\n if (!exist1) {\n return [...state, action.layer]\n } else return state\n case 'TOGGLE_LAYER':\n const exist2 = state.some((layer) => layer.name === action.layer.name)\n if (exist2) return state.filter(({ name }) => name !== action.layer.name)\n else return [...state, action.layer]\n case 'RESET_LAYERS':\n return initialLayers\n default:\n throw new Error()\n }\n }, initialLayers)\n\n const [visibleGroupTypes, dispatchGroupTypes] = useReducer(\n (state: string[], action: ActionType) => {\n switch (action.type) {\n case 'ADD_GROUP_TYPE':\n const exist1 = state.find((groupType) => groupType === action.groupType)\n if (!exist1) {\n return [...state, action.groupType]\n } else return state\n case 'TOGGLE_GROUP_TYPE':\n const exist2 = state.some((groupType) => groupType === action.groupType)\n if (exist2) return state.filter((groupType) => groupType !== action.groupType)\n else return [...state, action.groupType]\n case 'RESET_GROUP_TYPE':\n return []\n default:\n throw new Error()\n }\n },\n [],\n )\n\n const [searchPhrase, searchPhraseSet] = useState<string>('')\n\n const addFilterTag = useCallback((tag: Tag) => {\n const params = new URLSearchParams(location.search)\n const urlTags = params.get('tags')\n const decodedTags = urlTags ? decodeURIComponent(urlTags) : ''\n\n if (!decodedTags.includes(tag.name)) {\n params.set('tags', `${urlTags || ''}${urlTags ? ';' : ''}${tag.name}`)\n }\n if (windowDimensions.width < 786 && location.pathname.split('/').length > 2)\n navigate('/' + `${params ? `?${params}` : ''}`)\n else navigate(location.pathname + `${params ? `?${params}` : ''}`)\n\n dispatchTags({\n type: 'ADD_TAG',\n tag,\n })\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const removeFilterTag = useCallback((name: string) => {\n const params = new URLSearchParams(window.location.search)\n const urlTags = params.get('tags')\n let newUrlTags = ''\n const tags = urlTags?.split(';')\n if (tags?.length === 0 && urlTags?.length && urlTags.length > 0) tags[0] = urlTags\n tags?.map((urlTag) => {\n if (!(urlTag.toLocaleLowerCase() === name.toLocaleLowerCase())) {\n newUrlTags = newUrlTags + `${newUrlTags === '' ? urlTag : `;${urlTag}`}`\n }\n return null\n })\n if (newUrlTags !== '') {\n params.set('tags', `${newUrlTags}`)\n navigate(location.pathname + `${params ? `?${params}` : ''}`)\n } else {\n params.delete('tags')\n navigate(location.pathname + `${params ? `?${params}` : ''}`)\n }\n\n dispatchTags({\n type: 'REMOVE_TAG',\n name,\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const resetFilterTags = useCallback(() => {\n dispatchTags({\n type: 'RESET_TAGS',\n })\n }, [])\n\n const addVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: 'ADD_LAYER',\n layer,\n })\n }\n\n const toggleVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: 'TOGGLE_LAYER',\n layer,\n })\n }\n\n const resetVisibleLayers = useCallback(() => {\n dispatchLayers({\n type: 'RESET_LAYERS',\n })\n }, [])\n\n const isLayerVisible = useCallback(\n (layer: LayerProps) => {\n return visibleLayers.some((l) => l.name === layer.name)\n },\n [visibleLayers],\n )\n\n const addVisibleGroupType = (groupType: string) => {\n dispatchGroupTypes({\n type: 'ADD_GROUP_TYPE',\n groupType,\n })\n }\n\n const toggleVisibleGroupType = (groupType: string) => {\n dispatchGroupTypes({\n type: 'TOGGLE_GROUP_TYPE',\n groupType,\n })\n }\n\n const isGroupTypeVisible = useCallback(\n (groupType: string) => {\n return visibleGroupTypes.some((gt) => gt === groupType)\n },\n [visibleGroupTypes],\n )\n\n const setSearchPhrase = useCallback((phrase: string) => {\n searchPhraseSet(phrase)\n }, [])\n\n return {\n filterTags,\n addFilterTag,\n removeFilterTag,\n resetFilterTags,\n setSearchPhrase,\n searchPhrase,\n visibleLayers,\n toggleVisibleLayer,\n resetVisibleLayers,\n isLayerVisible,\n addVisibleLayer,\n visibleGroupTypes,\n addVisibleGroupType,\n toggleVisibleGroupType,\n isGroupTypeVisible,\n }\n}\n\nexport const FilterProvider: React.FunctionComponent<{\n initialTags: Tag[]\n children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <FilterContext.Provider value={useFilterManager(initialTags)}>{children}</FilterContext.Provider>\n)\n\nexport const useFilterTags = (): Tag[] => {\n const { filterTags } = useContext(FilterContext)\n return filterTags\n}\n\nexport const useAddFilterTag = (): UseFilterManagerResult['addFilterTag'] => {\n const { addFilterTag } = useContext(FilterContext)\n return addFilterTag\n}\n\nexport const useRemoveFilterTag = (): UseFilterManagerResult['removeFilterTag'] => {\n const { removeFilterTag } = useContext(FilterContext)\n return removeFilterTag\n}\n\nexport const useResetFilterTags = (): UseFilterManagerResult['resetFilterTags'] => {\n const { resetFilterTags } = useContext(FilterContext)\n return resetFilterTags\n}\n\nexport const useSearchPhrase = (): UseFilterManagerResult['searchPhrase'] => {\n const { searchPhrase } = useContext(FilterContext)\n return searchPhrase\n}\n\nexport const useSetSearchPhrase = (): UseFilterManagerResult['setSearchPhrase'] => {\n const { setSearchPhrase } = useContext(FilterContext)\n return setSearchPhrase\n}\n\nexport const useVisibleLayer = (): UseFilterManagerResult['visibleLayers'] => {\n const { visibleLayers } = useContext(FilterContext)\n return visibleLayers\n}\n\nexport const useAddVisibleLayer = (): UseFilterManagerResult['addVisibleLayer'] => {\n const { addVisibleLayer } = useContext(FilterContext)\n return addVisibleLayer\n}\n\nexport const useToggleVisibleLayer = (): UseFilterManagerResult['toggleVisibleLayer'] => {\n const { toggleVisibleLayer } = useContext(FilterContext)\n return toggleVisibleLayer\n}\n\nexport const useResetVisibleLayers = (): UseFilterManagerResult['resetVisibleLayers'] => {\n const { resetVisibleLayers } = useContext(FilterContext)\n return resetVisibleLayers\n}\n\nexport const useIsLayerVisible = (): UseFilterManagerResult['isLayerVisible'] => {\n const { isLayerVisible } = useContext(FilterContext)\n return isLayerVisible\n}\n\nexport const useAddVisibleGroupType = (): UseFilterManagerResult['addVisibleGroupType'] => {\n const { addVisibleGroupType } = useContext(FilterContext)\n return addVisibleGroupType\n}\n\nexport const useToggleVisibleGroupType = (): UseFilterManagerResult['toggleVisibleGroupType'] => {\n const { toggleVisibleGroupType } = useContext(FilterContext)\n return toggleVisibleGroupType\n}\n\nexport const useIsGroupTypeVisible = (): UseFilterManagerResult['isGroupTypeVisible'] => {\n const { isGroupTypeVisible } = useContext(FilterContext)\n return isGroupTypeVisible\n}\n\nexport const useVisibleGroupType = (): UseFilterManagerResult['visibleGroupTypes'] => {\n const { visibleGroupTypes } = useContext(FilterContext)\n return visibleGroupTypes\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/require-await */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-misused-promises */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { Item, LayerProps } from '#src/types'\n\nimport { useAddLayer } from './useLayers'\n\ntype ActionType =\n | { type: 'ADD'; item: Item }\n | { type: 'UPDATE'; item: Item }\n | { type: 'REMOVE'; item: Item }\n | { type: 'RESET'; layer: LayerProps }\n\ntype UseItemManagerResult = ReturnType<typeof useItemsManager>\n\nconst ItemContext = createContext<UseItemManagerResult>({\n items: [],\n addItem: () => {},\n updateItem: () => {},\n removeItem: () => {},\n resetItems: () => {},\n setItemsApi: () => {},\n setItemsData: () => {},\n allItemsLoaded: false,\n})\n\nfunction useItemsManager(initialItems: Item[]): {\n items: Item[]\n addItem: (item: Item) => void\n updateItem: (item: Item) => void\n removeItem: (item: Item) => void\n resetItems: (layer: LayerProps) => void\n setItemsApi: (layer: LayerProps) => void\n setItemsData: (layer: LayerProps) => void\n allItemsLoaded: boolean\n} {\n const addLayer = useAddLayer()\n\n const [allItemsLoaded, setallItemsLoaded] = useState<boolean>(false)\n\n const [items, dispatch] = useReducer((state: Item[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find((item) => item.id === action.item.id)\n if (!exist) {\n return [...state, action.item]\n } else return state\n case 'UPDATE':\n return state.map((item) => {\n if (item.id === action.item.id) {\n return action.item\n }\n return item\n })\n case 'REMOVE':\n return state.filter((item) => item !== action.item)\n case 'RESET':\n return state.filter((item) => item.layer?.name !== action.layer.name)\n default:\n throw new Error()\n }\n }, initialItems)\n\n const setItemsApi = useCallback(async (layer: LayerProps) => {\n addLayer(layer)\n const result = await toast.promise(layer.api!.getItems(), {\n pending: `loading ${layer.name} ...`,\n success: `${layer.name} loaded`,\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n if (result) {\n result.map((item) => {\n dispatch({ type: 'ADD', item: { ...item, layer } })\n return null\n })\n setallItemsLoaded(true)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const setItemsData = useCallback((layer: LayerProps) => {\n addLayer(layer)\n layer.data?.map((item) => {\n dispatch({ type: 'ADD', item: { ...item, layer } })\n return null\n })\n setallItemsLoaded(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const addItem = useCallback(async (item: Item) => {\n dispatch({\n type: 'ADD',\n item,\n })\n }, [])\n\n const updateItem = useCallback(async (item: Item) => {\n dispatch({\n type: 'UPDATE',\n item,\n })\n }, [])\n\n const removeItem = useCallback((item: Item) => {\n dispatch({\n type: 'REMOVE',\n item,\n })\n }, [])\n\n const resetItems = useCallback((layer: LayerProps) => {\n dispatch({\n type: 'RESET',\n layer,\n })\n }, [])\n\n return {\n items,\n updateItem,\n addItem,\n removeItem,\n resetItems,\n setItemsApi,\n setItemsData,\n allItemsLoaded,\n }\n}\n\nexport const ItemsProvider: React.FunctionComponent<{\n initialItems: Item[]\n children?: React.ReactNode\n}> = ({ initialItems, children }) => (\n <ItemContext.Provider value={useItemsManager(initialItems)}>{children}</ItemContext.Provider>\n)\n\nexport const useItems = (): Item[] => {\n const { items } = useContext(ItemContext)\n return items\n}\n\nexport const useAddItem = (): UseItemManagerResult['addItem'] => {\n const { addItem } = useContext(ItemContext)\n return addItem\n}\n\nexport const useUpdateItem = (): UseItemManagerResult['updateItem'] => {\n const { updateItem } = useContext(ItemContext)\n return updateItem\n}\n\nexport const useRemoveItem = (): UseItemManagerResult['removeItem'] => {\n const { removeItem } = useContext(ItemContext)\n return removeItem\n}\n\nexport const useResetItems = (): UseItemManagerResult['resetItems'] => {\n const { resetItems } = useContext(ItemContext)\n return resetItems\n}\n\nexport const useSetItemsApi = (): UseItemManagerResult['setItemsApi'] => {\n const { setItemsApi } = useContext(ItemContext)\n return setItemsApi\n}\n\nexport const useSetItemsData = (): UseItemManagerResult['setItemsData'] => {\n const { setItemsData } = useContext(ItemContext)\n return setItemsData\n}\n\nexport const useAllItemsLoaded = (): UseItemManagerResult['allItemsLoaded'] => {\n const { allItemsLoaded } = useContext(ItemContext)\n return allItemsLoaded\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { Marker, Popup } from 'leaflet'\nimport { useCallback, useReducer, createContext, useContext } from 'react'\n\nimport { Item } from '#src/types'\n\ninterface LeafletRef {\n item: Item\n marker: Marker\n popup: Popup\n}\n\ntype ActionType =\n | { type: 'ADD_MARKER'; item: Item; marker: Marker }\n | { type: 'ADD_POPUP'; item: Item; popup: Popup }\n\ntype UseLeafletRefsManagerResult = ReturnType<typeof useLeafletRefsManager>\n\nconst LeafletRefsContext = createContext<UseLeafletRefsManagerResult>({\n leafletRefs: {},\n addMarker: () => {},\n addPopup: () => {},\n})\n\nfunction useLeafletRefsManager(initialLeafletRefs: {}): {\n leafletRefs: Record<string, LeafletRef>\n addMarker: (item: Item, marker: Marker) => void\n addPopup: (item: Item, popup: Popup) => void\n} {\n const [leafletRefs, dispatch] = useReducer(\n (state: Record<string, LeafletRef>, action: ActionType) => {\n switch (action.type) {\n case 'ADD_MARKER':\n return {\n ...state,\n [action.item.id]: {\n ...state[action.item.id],\n marker: action.marker,\n item: action.item,\n },\n }\n case 'ADD_POPUP':\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], popup: action.popup, item: action.item },\n }\n default:\n throw new Error()\n }\n },\n initialLeafletRefs,\n )\n\n const addMarker = useCallback((item: Item, marker: Marker) => {\n dispatch({\n type: 'ADD_MARKER',\n item,\n marker,\n })\n }, [])\n\n const addPopup = useCallback((item: Item, popup: Popup) => {\n dispatch({\n type: 'ADD_POPUP',\n item,\n popup,\n })\n }, [])\n\n return { leafletRefs, addMarker, addPopup }\n}\n\nexport const LeafletRefsProvider: React.FunctionComponent<{\n initialLeafletRefs: {}\n children?: React.ReactNode\n}> = ({ initialLeafletRefs, children }) => (\n <LeafletRefsContext.Provider value={useLeafletRefsManager(initialLeafletRefs)}>\n {children}\n </LeafletRefsContext.Provider>\n)\n\nexport const useLeafletRefs = (): Record<string, LeafletRef> => {\n const { leafletRefs } = useContext(LeafletRefsContext)\n return leafletRefs\n}\n\nexport const useAddMarker = (): UseLeafletRefsManagerResult['addMarker'] => {\n const { addMarker } = useContext(LeafletRefsContext)\n return addMarker\n}\n\nexport const useAddPopup = (): UseLeafletRefsManagerResult['addPopup'] => {\n const { addPopup } = useContext(LeafletRefsContext)\n return addPopup\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext, useState, useContext, useEffect } from 'react'\n\nimport { UserApi, UserItem } from '#src/types'\n\ninterface AuthProviderProps {\n userApi: UserApi\n children?: React.ReactNode\n}\n\ninterface AuthCredentials {\n email: string\n password: string\n otp?: string | undefined\n}\n\ninterface AuthContextProps {\n isAuthenticated: boolean\n user: UserItem | null\n login: (credentials: AuthCredentials) => Promise<UserItem | undefined>\n register: (credentials: AuthCredentials, userName: string) => Promise<UserItem | undefined>\n loading: boolean\n logout: () => Promise<any>\n updateUser: (user: UserItem) => any\n token: string | null\n requestPasswordReset: (email: string, reset_url: string) => Promise<any>\n passwordReset: (token: string, new_password: string) => Promise<any>\n}\n\nconst AuthContext = createContext<AuthContextProps>({\n isAuthenticated: false,\n user: null,\n login: () => Promise.reject(Error('Unimplemented')),\n register: () => Promise.reject(Error('Unimplemented')),\n loading: false,\n logout: () => Promise.reject(Error('Unimplemented')),\n updateUser: () => Promise.reject(Error('Unimplemented')),\n token: '',\n requestPasswordReset: () => Promise.reject(Error('Unimplemented')),\n passwordReset: () => Promise.reject(Error('Unimplemented')),\n})\n\nexport const AuthProvider = ({ userApi, children }: AuthProviderProps) => {\n const [user, setUser] = useState<UserItem | null>(null)\n const [token, setToken] = useState<string | null>(null)\n const [loading, setLoading] = useState<boolean>(false)\n const isAuthenticated = !!user\n\n useEffect(() => {\n setLoading(true)\n loadUser()\n setLoading(false)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n async function loadUser(): Promise<UserItem | undefined> {\n try {\n const token = await userApi.getToken()\n setToken(token)\n if (token) {\n const me = await userApi.getUser()\n setUser(me)\n setLoading(false)\n return me\n } else return undefined\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n setLoading(false)\n return undefined\n }\n }\n\n const login = async (credentials: AuthCredentials): Promise<UserItem | undefined> => {\n setLoading(true)\n try {\n const res = await userApi.login(credentials.email, credentials.password)\n setToken(res.access_token)\n return await loadUser()\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const register = async (\n credentials: AuthCredentials,\n userName,\n ): Promise<UserItem | undefined> => {\n setLoading(true)\n try {\n /* const res = */ await userApi.register(credentials.email, credentials.password, userName)\n return await login(credentials)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const logout = async () => {\n try {\n await userApi.logout()\n setUser(null)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const updateUser = async (user: UserItem) => {\n setLoading(true)\n const { id, ...userRest } = user\n\n try {\n const res = await userApi.updateUser(userRest)\n setUser(res as any)\n loadUser()\n setLoading(false)\n return res as any\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const requestPasswordReset = async (email: string, resetUrl?: string): Promise<any> => {\n setLoading(true)\n try {\n await userApi.requestPasswordReset(email, resetUrl)\n return setLoading(false)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n const passwordReset = async (token: string, newPassword: string): Promise<any> => {\n setLoading(true)\n try {\n await userApi.passwordReset(token, newPassword)\n return setLoading(false)\n } catch (error: any) {\n setLoading(false)\n throw error\n }\n }\n\n return (\n <AuthContext.Provider\n value={{\n isAuthenticated,\n user,\n login,\n register,\n loading,\n logout,\n updateUser,\n token,\n requestPasswordReset,\n passwordReset,\n }}\n >\n {children}\n </AuthContext.Provider>\n )\n}\nexport const useAuth = () => useContext(AuthContext)\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\n\nimport { useAuth } from '#components/Auth/useAuth'\nimport { Item, ItemsApi, LayerProps, Permission, PermissionAction } from '#src/types'\n\ntype ActionType = { type: 'ADD'; permission: Permission } | { type: 'REMOVE'; id: string }\n\ntype UsePermissionManagerResult = ReturnType<typeof usePermissionsManager>\n\nconst PermissionContext = createContext<UsePermissionManagerResult>({\n permissions: [],\n setPermissionApi: () => {},\n setPermissionData: () => {},\n setAdminRole: () => {},\n hasUserPermission: () => true,\n})\n\nfunction usePermissionsManager(initialPermissions: Permission[]): {\n permissions: Permission[]\n setPermissionApi: (api: ItemsApi<any>) => void\n setPermissionData: (data: Permission[]) => void\n setAdminRole: (adminRole: string) => void\n hasUserPermission: (\n collectionName: string,\n action: PermissionAction,\n item?: Item,\n layer?: LayerProps,\n ) => boolean\n} {\n const [permissions, dispatch] = useReducer((state: Permission[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find((permission) => permission.id === action.permission.id)\n if (!exist) {\n return [...state, action.permission]\n } else return state\n\n case 'REMOVE':\n return state.filter(({ id }) => id !== action.id)\n default:\n throw new Error()\n }\n }, initialPermissions)\n\n const [adminRole, setAdminRole] = useState<string | null>(null)\n const { user } = useAuth()\n\n const setPermissionApi = useCallback(async (api: ItemsApi<Permission>) => {\n const result = await api.getItems()\n if (result) {\n result.map((permission) => {\n dispatch({ type: 'ADD', permission })\n return null\n })\n }\n }, [])\n\n const setPermissionData = useCallback((data: Permission[]) => {\n data.map((permission) => {\n dispatch({ type: 'ADD', permission })\n return null\n })\n }, [])\n\n const hasUserPermission = useCallback(\n (collectionName: string, action: PermissionAction, item?: Item, layer?: LayerProps) => {\n const evaluateCondition = (condition: any) => {\n if (condition.user_created?._eq === '$CURRENT_USER') {\n return item?.user_created?.id === user?.id\n }\n if (condition.public_edit?._eq === true) {\n return item?.public_edit === true\n }\n return false\n }\n\n const evaluatePermissions = (permissionConditions: any) => {\n if (!permissionConditions || !permissionConditions._and) {\n return true\n }\n\n return permissionConditions._and.every((andCondition: any) =>\n andCondition._or\n ? andCondition._or.some((orCondition: any) => evaluateCondition(orCondition))\n : evaluateCondition(andCondition),\n )\n }\n if (collectionName === 'items' && action === 'create' && layer?.public_edit_items) return true\n // Bedingung für leere Berechtigungen nur, wenn NICHT item und create\n if (permissions.length === 0) return true\n else if (user && user.role.id === adminRole) return true\n else {\n return permissions.some(\n (p) =>\n p.action === action &&\n p.collection === collectionName &&\n ((p.policy?.name === user?.role.name &&\n (!item || evaluatePermissions(p.permissions))) ||\n (p.policy?.name === '$t:public_label' &&\n (layer?.public_edit_items || item?.layer?.public_edit_items) &&\n (!item || evaluatePermissions(p.permissions)))),\n )\n }\n },\n [permissions, user, adminRole],\n )\n\n return { permissions, setPermissionApi, setPermissionData, setAdminRole, hasUserPermission }\n}\n\nexport const PermissionsProvider: React.FunctionComponent<{\n initialPermissions: Permission[]\n children?: React.ReactNode\n}> = ({ initialPermissions, children }) => (\n <PermissionContext.Provider value={usePermissionsManager(initialPermissions)}>\n {children}\n </PermissionContext.Provider>\n)\n\nexport const usePermissions = (): Permission[] => {\n const { permissions } = useContext(PermissionContext)\n return permissions\n}\n\nexport const useSetPermissionApi = (): UsePermissionManagerResult['setPermissionApi'] => {\n const { setPermissionApi } = useContext(PermissionContext)\n return setPermissionApi\n}\n\nexport const useSetPermissionData = (): UsePermissionManagerResult['setPermissionData'] => {\n const { setPermissionData } = useContext(PermissionContext)\n return setPermissionData\n}\n\nexport const useHasUserPermission = (): UsePermissionManagerResult['hasUserPermission'] => {\n const { hasUserPermission } = useContext(PermissionContext)\n return hasUserPermission\n}\n\nexport const useSetAdminRole = (): UsePermissionManagerResult['setAdminRole'] => {\n const { setAdminRole } = useContext(PermissionContext)\n return setAdminRole\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { LatLng } from 'leaflet'\n\nexport interface Tag {\n color: string\n id: string\n name: string\n offer_or_need?: boolean\n}\n\nexport interface UtopiaMapProps {\n height?: string\n width?: string\n center?: [number, number]\n zoom?: number\n tags?: Tag[]\n children?: React.ReactNode\n geo?: any\n showFilterControl?: boolean\n showLayerControl?: boolean\n showGratitudeControl?: boolean\n infoText?: string\n}\n\nexport interface ItemType {\n name: string\n [key: string]: any\n}\n\nexport interface ItemsApi<T> {\n getItems(): Promise<any>\n getItem?(id: string): Promise<any>\n createItem?(item: T): Promise<any>\n updateItem?(item: T): Promise<any>\n deleteItem?(id: string): Promise<any>\n collectionName?: string\n}\n\nexport interface LayerProps {\n id?: string\n // eslint-disable-next-line no-use-before-define\n data?: Item[]\n children?: React.ReactNode\n name: string\n menuIcon: any\n menuColor: string\n menuText: string\n markerIcon: string\n markerShape: string\n markerDefaultColor: string\n markerDefaultColor2?: string\n api?: ItemsApi<any>\n itemType: ItemType\n itemNameField?: string\n itemSubnameField?: string\n itemTextField?: string\n itemAvatarField?: string\n itemColorField?: string\n itemOwnerField?: string\n itemTagsField?: string\n itemLatitudeField?: any\n itemLongitudeField?: any\n itemOffersField?: string\n itemNeedsField?: string\n onlyOnePerOwner?: boolean\n customEditLink?: string\n customEditParameter?: string\n public_edit_items?: boolean\n listed?: boolean\n item_presets?: Record<string, unknown>\n // eslint-disable-next-line no-use-before-define\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n // eslint-disable-next-line no-use-before-define\n itemFormPopup?: ItemFormPopupProps | null\n clusterRef?: any\n}\n\nexport class Geometry {\n type: string\n coordinates: number[]\n constructor(lng: number, lat: number) {\n this.coordinates = [lng, lat]\n this.type = 'Point'\n }\n}\n\nexport interface Relation {\n related_items_id: string\n [key: string]: any\n}\n\nexport class Item {\n id: string\n name: string\n text: string\n position?: Geometry\n date_created?: string\n date_updated?: string | null\n start?: string\n end?: string\n api?: ItemsApi<any>\n tags?: string[]\n layer?: LayerProps\n relations?: Relation[]\n parent?: string\n subname?: string\n public_edit?: boolean\n slug?: string;\n [key: string]: any\n constructor(\n id: string,\n name: string,\n text: string,\n position: Geometry,\n layer?: LayerProps,\n api?: ItemsApi<any>,\n ) {\n this.id = id\n this.name = name\n this.text = text\n this.position = position\n this.layer = layer\n this.api = api\n }\n}\n\nexport interface AssetsApi {\n upload(file: Blob, title: string): any\n url: string\n}\n\nexport interface Profile {\n id?: string\n avatar?: string\n color?: string\n name: string\n text: string\n geoposition?: Geometry\n}\n\nexport interface UserItem {\n id?: string\n role?: any\n email?: string\n password?: string\n profile?: Profile\n [key: string]: any\n}\n\nexport interface UserApi {\n register(email: string, password: string, userName: string): Promise<void>\n login(email: string, password: string): Promise<any>\n logout(): Promise<void>\n getUser(): Promise<UserItem>\n getToken(): Promise<any>\n updateUser(user: UserItem): Promise<void>\n requestPasswordReset(email: string, reset_url?: string)\n passwordReset(token: string, new_password: string)\n}\n\nexport interface PermissionCondition {\n user_created?: {\n _eq: string // Erwartet den speziellen Wert \"$CURRENT_USER\" oder eine spezifische UUID\n }\n public_edit?: {\n _eq: boolean // Erwartet den speziellen Wert \"$CURRENT_USER\" oder eine spezifische UUID\n }\n}\n\nexport type PermissionAction = 'create' | 'read' | 'update' | 'delete'\n\nexport interface Permission {\n id?: string\n policy: any\n collection: string\n action: PermissionAction\n permissions?: {\n // Optional, für spezifische Bedingungen wie `user_created`\n _and: PermissionCondition[]\n }\n}\n\nexport interface ItemFormPopupProps {\n position: LatLng\n layer: LayerProps\n item?: Item\n children?: React.ReactNode\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\nexport interface FormState {\n color: string\n id: string\n group_type: string\n status: string\n name: string\n subname: string\n text: string\n contact: string\n telephone: string\n next_appointment: string\n image: string\n marker_icon: string\n offers: Tag[]\n needs: Tag[]\n relations: Item[]\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/await-thenable */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { LatLng } from 'leaflet'\nimport { createContext, useContext, useEffect, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { Geometry, Item, LayerProps, ItemFormPopupProps } from '#src/types'\n\nimport { useUpdateItem } from './useItems'\nimport { useHasUserPermission } from './usePermissions'\n\ninterface PolygonClickedProps {\n position: LatLng\n setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\ntype UseSelectPositionManagerResult = ReturnType<typeof useSelectPositionManager>\n\nconst SelectPositionContext = createContext<UseSelectPositionManagerResult>({\n selectPosition: null,\n setSelectPosition: () => {},\n setMarkerClicked: () => {},\n setMapClicked: () => {},\n})\n\nfunction useSelectPositionManager(): {\n selectPosition: Item | LayerProps | null\n setSelectPosition: React.Dispatch<React.SetStateAction<Item | LayerProps | null>>\n setMarkerClicked: React.Dispatch<React.SetStateAction<Item>>\n setMapClicked: React.Dispatch<React.SetStateAction<PolygonClickedProps | undefined>>\n} {\n const [selectPosition, setSelectPosition] = useState<LayerProps | null | Item>(null)\n const [markerClicked, setMarkerClicked] = useState<Item | null>()\n const [mapClicked, setMapClicked] = useState<PolygonClickedProps>()\n const updateItem = useUpdateItem()\n const hasUserPermission = useHasUserPermission()\n\n useEffect(() => {\n if (\n selectPosition &&\n markerClicked &&\n 'text' in selectPosition &&\n markerClicked.id !== selectPosition.id\n ) {\n itemUpdateParent({ ...selectPosition, parent: markerClicked.id })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [markerClicked])\n\n useEffect(() => {\n if (selectPosition != null) {\n if ('menuIcon' in selectPosition) {\n mapClicked &&\n mapClicked.setItemFormPopup({\n layer: selectPosition as LayerProps,\n position: mapClicked.position,\n })\n setSelectPosition(null)\n }\n if ('text' in selectPosition) {\n const position =\n mapClicked?.position.lng && new Geometry(mapClicked.position.lng, mapClicked.position.lat)\n position && itemUpdatePosition({ ...selectPosition, position })\n setSelectPosition(null)\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mapClicked])\n\n const itemUpdateParent = async (updatedItem: Item) => {\n if (\n markerClicked?.layer?.api?.collectionName &&\n hasUserPermission(markerClicked.layer.api.collectionName, 'update', markerClicked)\n ) {\n let success = false\n try {\n await updatedItem.layer?.api?.updateItem!({\n id: updatedItem.id,\n parent: updatedItem.parent,\n position: null,\n })\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n await updateItem({ ...updatedItem, parent: updatedItem.parent, position: undefined })\n await linkItem(updatedItem.id)\n toast.success('Item position updated')\n setSelectPosition(null)\n setMarkerClicked(null)\n }\n } else {\n setSelectPosition(null)\n toast.error(\"you don't have permission to add items to \" + markerClicked?.name)\n }\n }\n\n const itemUpdatePosition = async (updatedItem: Item) => {\n let success = false\n try {\n await updatedItem.layer?.api?.updateItem!({\n id: updatedItem.id,\n position: updatedItem.position,\n })\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem(updatedItem)\n toast.success('Item position updated')\n }\n }\n\n const linkItem = async (id: string) => {\n if (markerClicked) {\n const newRelations = markerClicked.relations || []\n\n if (!newRelations.some((r) => r.related_items_id === id)) {\n newRelations.push({ items_id: markerClicked.id, related_items_id: id })\n const updatedItem = { id: markerClicked.id, relations: newRelations }\n\n let success = false\n try {\n await markerClicked.layer?.api?.updateItem!(updatedItem)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...markerClicked, relations: newRelations })\n toast.success('Item linked')\n }\n }\n }\n }\n return { selectPosition, setSelectPosition, setMarkerClicked, setMapClicked }\n}\n\nexport const SelectPositionProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <SelectPositionContext.Provider value={useSelectPositionManager()}>\n {children}\n </SelectPositionContext.Provider>\n)\n\nexport const useSelectPosition = (): Item | LayerProps | null => {\n const { selectPosition } = useContext(SelectPositionContext)\n return selectPosition\n}\n\nexport const useSetSelectPosition = (): UseSelectPositionManagerResult['setSelectPosition'] => {\n const { setSelectPosition } = useContext(SelectPositionContext)\n return setSelectPosition\n}\n\nexport const useSetMarkerClicked = (): UseSelectPositionManagerResult['setMarkerClicked'] => {\n const { setMarkerClicked } = useContext(SelectPositionContext)\n return setMarkerClicked\n}\n\nexport const useSetMapClicked = (): UseSelectPositionManagerResult['setMapClicked'] => {\n const { setMapClicked } = useContext(SelectPositionContext)\n return setMapClicked\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nexport function getValue(obj, path) {\n if (!obj || typeof path !== 'string') return undefined\n\n const pathArray = path.split('.') // Use a different variable for the split path\n for (let i = 0, len = pathArray.length; i < len; i++) {\n if (!obj) return undefined // Check if obj is falsy at each step\n // eslint-disable-next-line security/detect-object-injection\n obj = obj[pathArray[i]] // Dive one level deeper\n }\n return obj // Return the final value\n}\n","export const hashTagRegex = /(#+[a-zA-Z0-9À-ÖØ-öø-ʸ_-]{1,})/g\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useCallback, useReducer, createContext, useContext, useState } from 'react'\n\nimport { Item, ItemsApi, Tag } from '#src/types'\nimport { getValue } from '#utils/GetValue'\nimport { hashTagRegex } from '#utils/HashTagRegex'\n\ntype ActionType = { type: 'ADD'; tag: Tag } | { type: 'REMOVE'; id: string }\n\ntype UseTagManagerResult = ReturnType<typeof useTagsManager>\n\nconst TagContext = createContext<UseTagManagerResult>({\n tags: [],\n addTag: () => {},\n setTagApi: () => {},\n setTagData: () => {},\n getItemTags: () => [],\n allTagsLoaded: false,\n})\n\nfunction useTagsManager(initialTags: Tag[]): {\n tags: Tag[]\n addTag: (tag: Tag) => void\n setTagApi: (api: ItemsApi<Tag>) => void\n setTagData: (data: Tag[]) => void\n getItemTags: (item: Item) => Tag[]\n allTagsLoaded: boolean\n} {\n const [allTagsLoaded, setallTagsLoaded] = useState<boolean>(false)\n const [tagCount, setTagCount] = useState<number>(0)\n\n const [tags, dispatch] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case 'ADD':\n // eslint-disable-next-line no-case-declarations\n const exist = state.find(\n (tag) => tag.name.toLocaleLowerCase() === action.tag.name.toLocaleLowerCase(),\n )\n if (!exist) {\n const newState = [...state, { ...action.tag }]\n if (tagCount === newState.length) setallTagsLoaded(true)\n return newState\n } else return state\n default:\n throw new Error()\n }\n }, initialTags)\n\n const [api, setApi] = useState<ItemsApi<Tag>>({} as ItemsApi<Tag>)\n\n const setTagApi = useCallback(async (api: ItemsApi<Tag>) => {\n setApi(api)\n const result = await api.getItems()\n setTagCount(result.length)\n if (tagCount === 0) setallTagsLoaded(true)\n if (result) {\n result.map((tag) => {\n // tag.name = tag.name.toLocaleLowerCase();\n dispatch({ type: 'ADD', tag })\n return null\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const setTagData = useCallback((data: Tag[]) => {\n data.map((tag) => {\n // tag.name = tag.name.toLocaleLowerCase();\n dispatch({ type: 'ADD', tag })\n return null\n })\n }, [])\n\n const addTag = (tag: Tag) => {\n dispatch({\n type: 'ADD',\n tag,\n })\n if (!tags.some((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())) {\n api.createItem && api.createItem(tag)\n }\n }\n\n const getItemTags = useCallback(\n (item: Item) => {\n const text =\n item.layer?.itemTextField && item ? getValue(item, item.layer.itemTextField) : undefined\n const itemTagStrings = text?.match(hashTagRegex)\n const itemTags: Tag[] = []\n itemTagStrings?.map((tag) => {\n if (tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n itemTags.push(\n tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())!,\n )\n }\n return null\n })\n item.layer?.itemOffersField &&\n getValue(item, item.layer.itemOffersField)?.map((o) => {\n const offer = tags.find((t) => t.id === o.tags_id)\n offer && itemTags.push(offer)\n return null\n })\n item.layer?.itemNeedsField &&\n getValue(item, item.layer.itemNeedsField)?.map((n) => {\n const need = tags.find((t) => t.id === n.tags_id)\n need && itemTags.push(need)\n return null\n })\n\n return itemTags\n },\n [tags],\n )\n\n return { tags, addTag, setTagApi, setTagData, getItemTags, allTagsLoaded }\n}\n\nexport const TagsProvider: React.FunctionComponent<{\n initialTags: Tag[]\n children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <TagContext.Provider value={useTagsManager(initialTags)}>{children}</TagContext.Provider>\n)\n\nexport const useTags = (): Tag[] => {\n const { tags } = useContext(TagContext)\n return tags\n}\n\nexport const useAddTag = (): UseTagManagerResult['addTag'] => {\n const { addTag } = useContext(TagContext)\n return addTag\n}\n\nexport const useSetTagApi = (): UseTagManagerResult['setTagApi'] => {\n const { setTagApi } = useContext(TagContext)\n return setTagApi\n}\n\nexport const useSetTagData = (): UseTagManagerResult['setTagData'] => {\n const { setTagData } = useContext(TagContext)\n return setTagData\n}\n\nexport const useGetItemTags = (): UseTagManagerResult['getItemTags'] => {\n const { getItemTags } = useContext(TagContext)\n return getItemTags\n}\n\nexport const useAllTagsLoaded = (): UseTagManagerResult['allTagsLoaded'] => {\n const { allTagsLoaded } = useContext(TagContext)\n return allTagsLoaded\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport { useCallback, useState, createContext, useContext } from 'react'\n\nimport { AssetsApi } from '#src/types'\n\ninterface AppState {\n assetsApi: AssetsApi\n userType: string\n}\n\ntype UseAppManagerResult = ReturnType<typeof useAppManager>\n\nconst initialAppState: AppState = {\n assetsApi: {} as AssetsApi,\n userType: '',\n}\n\nconst AppContext = createContext<UseAppManagerResult>({\n state: initialAppState,\n setAppState: () => {},\n})\n\nfunction useAppManager(): {\n state: AppState\n setAppState: (newState: Partial<AppState>) => void\n} {\n const [state, setState] = useState<AppState>(initialAppState)\n\n const setAppState = useCallback((newState: Partial<AppState>) => {\n setState((prevState) => ({\n ...prevState,\n ...newState,\n }))\n }, [])\n\n return { state, setAppState }\n}\n\nexport const AppStateProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => <AppContext.Provider value={useAppManager()}>{children}</AppContext.Provider>\n\nexport const useAppState = (): AppState => {\n const { state } = useContext(AppContext)\n return state\n}\n\nexport const useSetAppState = (): UseAppManagerResult['setAppState'] => {\n const { setAppState } = useContext(AppContext)\n return setAppState\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query'\nimport { useContext, createContext } from 'react'\nimport { BrowserRouter as Router, useLocation } from 'react-router-dom'\nimport { ToastContainer } from 'react-toastify'\n\nimport { QuestsProvider } from '#components/Gaming/hooks/useQuests'\nimport { ClusterRefProvider } from '#components/Map/hooks/useClusterRef'\nimport { FilterProvider } from '#components/Map/hooks/useFilter'\nimport { ItemsProvider } from '#components/Map/hooks/useItems'\nimport { LayersProvider } from '#components/Map/hooks/useLayers'\nimport { LeafletRefsProvider } from '#components/Map/hooks/useLeafletRefs'\nimport { PermissionsProvider } from '#components/Map/hooks/usePermissions'\nimport { SelectPositionProvider } from '#components/Map/hooks/useSelectPosition'\nimport { TagsProvider } from '#components/Map/hooks/useTags'\n\nimport { AppStateProvider } from './hooks/useAppState'\n\n// Helper context to determine if the ContextWrapper is already present.\nconst ContextCheckContext = createContext(false)\n\n// eslint-disable-next-line react/prop-types\nexport const ContextWrapper = ({ children }) => {\n const isWrapped = useContext(ContextCheckContext)\n\n // Check if we are already inside a Router\n let location\n try {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n location = useLocation()\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (e) {\n location = null\n }\n\n // Case 1: Only the Router is missing, but ContextWrapper is already provided\n if (!location && isWrapped) {\n return <Router>{children}</Router>\n }\n\n // Case 2: Neither Router nor ContextWrapper is present\n if (!location && !isWrapped) {\n return (\n <Router>\n <ContextCheckContext.Provider value={true}>\n <Wrappers>{children}</Wrappers>\n </ContextCheckContext.Provider>\n </Router>\n )\n }\n\n // Case 3: Only ContextWrapper is missing\n if (location && !isWrapped) {\n return (\n <ContextCheckContext.Provider value={true}>\n <Wrappers>{children}</Wrappers>\n </ContextCheckContext.Provider>\n )\n }\n\n // Case 4: Both Router and ContextWrapper are already present\n return children\n}\n\n// eslint-disable-next-line react/prop-types\nexport const Wrappers = ({ children }) => {\n const queryClient = new QueryClient()\n\n return (\n <PermissionsProvider initialPermissions={[]}>\n <TagsProvider initialTags={[]}>\n <LayersProvider initialLayers={[]}>\n <FilterProvider initialTags={[]}>\n <ItemsProvider initialItems={[]}>\n <SelectPositionProvider>\n <LeafletRefsProvider initialLeafletRefs={{}}>\n <QueryClientProvider client={queryClient}>\n <AppStateProvider>\n <ClusterRefProvider>\n <QuestsProvider initialOpen={true}>\n <ToastContainer\n position='top-right'\n autoClose={2000}\n hideProgressBar\n newestOnTop={false}\n closeOnClick\n rtl={false}\n pauseOnFocusLoss\n draggable\n pauseOnHover\n theme='light'\n />\n {children}\n </QuestsProvider>\n </ClusterRefProvider>\n </AppStateProvider>\n </QueryClientProvider>\n </LeafletRefsProvider>\n </SelectPositionProvider>\n </ItemsProvider>\n </FilterProvider>\n </LayersProvider>\n </TagsProvider>\n </PermissionsProvider>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useLayers } from '#components/Map/hooks/useLayers'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\n\nexport default function AddButton({\n triggerAction,\n}: {\n triggerAction: React.Dispatch<React.SetStateAction<any>>\n}) {\n const layers = useLayers()\n const hasUserPermission = useHasUserPermission()\n\n const canAddItems = () => {\n let canAdd = false\n layers.map((layer) => {\n if (\n layer.api?.createItem &&\n hasUserPermission(layer.api.collectionName!, 'create', undefined, layer) &&\n layer.listed\n )\n canAdd = true\n return null\n })\n return canAdd\n }\n\n return (\n <>\n {canAddItems() ? (\n <div className='tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-500 tw-absolute tw-right-4 tw-bottom-4'>\n <label tabIndex={0} className='tw-z-500 tw-btn tw-btn-circle tw-shadow tw-bg-base-100'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='3'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </label>\n <ul tabIndex={0} className='tw-dropdown-content tw-pr-1 tw-list-none'>\n {layers.map(\n (layer) =>\n layer.api?.createItem &&\n hasUserPermission(layer.api.collectionName!, 'create', undefined, layer) &&\n layer.listed && (\n <li key={layer.name}>\n <a>\n <div className='tw-tooltip tw-tooltip-left' data-tip={layer.menuText}>\n <button\n tabIndex={0}\n className='tw-z-500 tw-border-0 tw-pl-2 tw-p-0 tw-mb-3 tw-w-10 tw-h-10 tw-cursor-pointer tw-rounded-full tw-mouse tw-drop-shadow-md tw-transition tw-ease-in tw-duration-200 focus:tw-outline-none'\n style={{ backgroundColor: layer.menuColor || '#777' }}\n onClick={() => {\n triggerAction(layer)\n }}\n >\n <img\n src={layer.menuIcon}\n className='tw-h-6 tw-w-6 tw-text-white'\n style={{ filter: 'invert(100%) brightness(200%)' }}\n />\n </button>\n </div>\n </a>\n </li>\n ),\n )}\n </ul>\n </div>\n ) : (\n ''\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { DomEvent } from 'leaflet'\nimport { createRef, useEffect } from 'react'\n\nexport const Control = ({\n position,\n children,\n zIndex,\n absolute,\n}: {\n position: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight'\n children: React.ReactNode\n zIndex: string\n absolute: boolean\n}) => {\n const controlContainerRef = createRef<HTMLDivElement>()\n\n useEffect(() => {\n if (controlContainerRef.current !== null) {\n DomEvent.disableClickPropagation(controlContainerRef.current)\n DomEvent.disableScrollPropagation(controlContainerRef.current)\n }\n }, [controlContainerRef])\n\n return (\n <div\n ref={controlContainerRef}\n style={{ zIndex }}\n className={`${absolute && 'tw-absolute'} tw-z-[999] tw-flex-col ${position === 'topLeft' && 'tw-top-4 tw-left-4'} ${position === 'bottomLeft' && 'tw-bottom-4 tw-left-4'} ${position === 'topRight' && 'tw-bottom-4 tw-right-4'} ${position === 'bottomRight' && 'tw-bottom-4 tw-right-4'}`}\n >\n {children}\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\n\nimport {\n useAddVisibleGroupType,\n useIsGroupTypeVisible,\n useToggleVisibleGroupType,\n useVisibleGroupType,\n} from '#components/Map/hooks/useFilter'\n\nexport function FilterControl() {\n const [open, setOpen] = useState(false)\n\n const groupTypes = [\n { text: 'Regional Gruppe', value: 'wuerdekompass' },\n { text: 'Themen Gruppe', value: 'themenkompass' },\n { text: 'liebevoll.jetzt', value: 'liebevoll.jetzt' },\n ]\n\n useEffect(() => {\n groupTypes.map((layer) => addVisibleGroupType(layer.value))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const isGroupTypeVisible = useIsGroupTypeVisible()\n const toggleVisibleGroupType = useToggleVisibleGroupType()\n const addVisibleGroupType = useAddVisibleGroupType()\n const visibleGroupTypes = useVisibleGroupType()\n\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {open ? (\n <div className='tw-card-body tw-pr-4 tw-min-w-[8rem] tw-p-2 tw-w-fit tw-transition-all tw-duration-300'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setOpen(false)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <ul className='tw-flex-row'>\n {groupTypes.map((groupType) => (\n <li key={groupType.value}>\n <label\n htmlFor={groupType.value}\n className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'\n >\n <input\n id={groupType.value}\n onChange={() => toggleVisibleGroupType(groupType.value)}\n type='checkbox'\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isGroupTypeVisible(groupType.value)}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>\n {groupType.text}\n </span>\n </label>\n </li>\n ))}\n </ul>\n </div>\n ) : (\n <div className='tw-indicator'>\n {visibleGroupTypes.length < groupTypes.length && (\n <span className='tw-indicator-item tw-badge tw-badge-success tw-h-4 tw-p-2 tw-translate-x-1/3 -tw-translate-y-1/3 tw-border-0'></span>\n )}\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n setOpen(true)\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={2.3}\n stroke='currentColor'\n className='size-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z'\n />\n </svg>\n </div>\n </div>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { DomEvent } from 'leaflet'\nimport { createRef, useEffect } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nexport function MapOverlayPage({\n children,\n className,\n backdrop,\n card = true,\n}: {\n children: React.ReactNode\n className?: string\n backdrop?: boolean\n card?: boolean\n}) {\n const closeScreen = () => {\n navigate(`/${window.location.search ? window.location.search : ''}`)\n }\n\n const navigate = useNavigate()\n\n const overlayRef = createRef<HTMLDivElement>()\n const backdropRef = createRef<HTMLDivElement>()\n\n useEffect(() => {\n if (overlayRef.current !== null) {\n DomEvent.disableClickPropagation(overlayRef.current)\n DomEvent.disableScrollPropagation(overlayRef.current)\n }\n if (backdropRef.current !== null && backdrop) {\n DomEvent.disableClickPropagation(backdropRef.current)\n DomEvent.disableScrollPropagation(backdropRef.current)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [overlayRef, backdropRef])\n\n return (\n <div className={`tw-absolute tw-h-full tw-w-full tw-m-auto ${backdrop && 'tw-z-[2000]'}`}>\n <div\n ref={backdropRef}\n className={`${backdrop && 'tw-backdrop-brightness-75'} tw-h-full tw-w-full tw-grid tw-place-items-center tw-m-auto`}\n >\n <div\n ref={overlayRef}\n className={`${card && 'tw-card tw-card-body'} tw-shadow-xl tw-bg-base-100 tw-p-6 ${className && className} ${!backdrop && 'tw-z-[2000]'} tw-absolute tw-top-0 tw-bottom-0 tw-right-0 tw-left-0 tw-m-auto`}\n >\n {children}\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2'\n onClick={() => closeScreen()}\n >\n ✕\n </button>\n </div>\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-floating-promises */\nimport { useEffect, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\nexport function LoginPage() {\n const [email, setEmail] = useState<string>('')\n const [password, setPassword] = useState<string>('')\n\n const { login, loading } = useAuth()\n\n const navigate = useNavigate()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onLogin = async () => {\n await toast.promise(login({ email, password }), {\n success: {\n render({ data }) {\n navigate('/')\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: '✌️',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n autoClose: 10000,\n },\n pending: 'logging in ...',\n })\n }\n\n useEffect(() => {\n const keyDownHandler = (event) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n onLogin()\n }\n }\n document.addEventListener('keydown', keyDownHandler)\n return () => {\n document.removeEventListener('keydown', keyDownHandler)\n }\n }, [onLogin])\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Login</h2>\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-text-right tw-text-primary'>\n <Link to='/reset-password'>\n <span className='tw-text-sm tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200'>\n Forgot Password?\n </span>\n </Link>\n </div>\n <div className='tw-card-actions'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onLogin()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Login'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-misused-promises */\nimport { useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\nexport function SignupPage() {\n const [email, setEmail] = useState<string>('')\n const [userName, setUserName] = useState<string>('')\n\n const [password, setPassword] = useState<string>('')\n\n const { register, loading } = useAuth()\n\n const navigate = useNavigate()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const onRegister = async () => {\n await toast.promise(register({ email, password }, userName), {\n success: {\n render({ data }) {\n navigate('/')\n return `Hi ${data?.first_name}`\n },\n // other options\n icon: '✌️',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n autoClose: 10000,\n },\n pending: 'creating new user ...',\n })\n }\n\n useEffect(() => {\n const keyDownHandler = (event) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n onRegister()\n }\n }\n document.addEventListener('keydown', keyDownHandler)\n return () => {\n document.removeEventListener('keydown', keyDownHandler)\n }\n }, [onRegister])\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Sign Up</h2>\n <input\n type='text'\n placeholder='Name'\n value={userName}\n onChange={(e) => setUserName(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onRegister()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Sign Up'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\n// eslint-disable-next-line react/prop-types\nexport function RequestPasswordPage({ resetUrl }) {\n const [email, setEmail] = useState<string>('')\n\n const { requestPasswordReset, loading } = useAuth()\n\n const navigate = useNavigate()\n\n const onReset = async () => {\n await toast.promise(requestPasswordReset(email, resetUrl), {\n success: {\n render() {\n navigate('/')\n return 'Check your mailbox'\n },\n // other options\n icon: '📬',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n pending: 'sending email ...',\n })\n }\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Reset Password</h2>\n <input\n type='email'\n placeholder='E-Mail'\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onReset()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Send'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { MapOverlayPage } from '#components/Templates/MapOverlayPage'\n\nimport { useAuth } from './useAuth'\n\nexport function SetNewPasswordPage() {\n const [password, setPassword] = useState<string>('')\n\n const { passwordReset, loading } = useAuth()\n\n const navigate = useNavigate()\n\n const onReset = async () => {\n const token = window.location.search.split('token=')[1]\n // eslint-disable-next-line no-console\n console.log(token)\n\n await toast.promise(passwordReset(token, password), {\n success: {\n render() {\n navigate('/')\n return 'New password set'\n },\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n pending: 'setting password ...',\n })\n }\n\n return (\n <MapOverlayPage backdrop className='tw-max-w-xs tw-h-fit'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Set new Password</h2>\n <input\n type='password'\n placeholder='Password'\n onChange={(e) => setPassword(e.target.value)}\n className='tw-input tw-input-bordered tw-w-full tw-max-w-xs'\n />\n <div className='tw-card-actions tw-mt-4'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary'\n : 'tw-btn tw-btn-primary tw-btn-block'\n }\n onClick={() => onReset()}\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Set'}\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","import { useNavigate } from 'react-router-dom'\n\nimport { useAuth } from '#components/Auth'\n\nexport const GratitudeControl = () => {\n const navigate = useNavigate()\n const { isAuthenticated } = useAuth()\n\n if (isAuthenticated) {\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n navigate('/select-user')\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={2.5}\n stroke='currentColor'\n className='size-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z'\n />\n </svg>\n </div>\n }\n </div>\n )\n } else return <></>\n}\n","import { useState } from 'react'\n\nimport { useIsLayerVisible, useToggleVisibleLayer } from '#components/Map/hooks/useFilter'\nimport { useLayers } from '#components/Map/hooks/useLayers'\n\nexport function LayerControl() {\n const [open, setOpen] = useState(false)\n\n const layers = useLayers()\n\n const isLayerVisible = useIsLayerVisible()\n const toggleVisibleLayer = useToggleVisibleLayer()\n\n return (\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit'>\n {open ? (\n <div className='tw-card-body tw-pr-4 tw-min-w-[8rem] tw-p-2 tw-transition-all tw-w-fit tw-duration-300'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setOpen(false)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <ul className='tw-flex-row'>\n {layers.map(\n (layer) =>\n layer.listed && (\n <li key={layer.name}>\n <label\n htmlFor={layer.name}\n className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'\n >\n <input\n id={layer.name}\n onChange={() => toggleVisibleLayer(layer)}\n type='checkbox'\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isLayerVisible(layer)}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>\n {layer.name}\n </span>\n </label>\n </li>\n ),\n )}\n </ul>\n </div>\n ) : (\n <div\n className='tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer'\n onClick={() => {\n setOpen(true)\n }}\n >\n <svg version='1.1' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'>\n <path\n id='svg_1'\n fill='currentColor'\n d='m2.75565,11.90727l-1.03852,0.28372c-0.77718,0.38859 -0.77718,1.0138 0,1.4023l7.0156,3.5078c0.77718,0.38859 2.0275,0.38859 2.8047,0l7.0156,-3.5078c0.77718,-0.38859 0.77718,-1.0138 0,-1.4023l-0.63311,-0.48643l-4.67718,2.23624c-1.5452,0.77262 -3.31877,1.58343 -4.86407,0.81081l-5.62302,-2.84434z'\n />\n <path\n id='svg_2'\n strokeWidth='2'\n stroke='currentColor'\n fill='none'\n d='m11.247,4.30851l6.2349,3.0877c0.69083,0.34211 0.69083,0.89295 0,1.2351l-6.2349,3.0877c-0.69083,0.34211 -1.8031,0.34212 -2.494,0l-6.2349,-3.0877c-0.69083,-0.34211 -0.69083,-0.89295 0,-1.2351l6.2349,-3.0877c0.69083,-0.34211 1.8031,-0.34211 2.494,0z'\n />\n </svg>\n </div>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useCallback, useEffect, useRef } from 'react'\n\nexport const useTimeout = (callback, delay) => {\n const callbackRef = useRef(callback)\n const timeoutRef = useRef<any>()\n\n useEffect(() => {\n callbackRef.current = callback\n }, [callback])\n\n const set = useCallback(() => {\n timeoutRef.current = setTimeout(() => callbackRef.current(), delay)\n }, [delay])\n\n const clear = useCallback(() => {\n timeoutRef.current && clearTimeout(timeoutRef.current)\n }, [])\n\n useEffect(() => {\n set()\n return clear\n }, [delay, set, clear])\n\n const reset = useCallback(() => {\n clear()\n set()\n }, [clear, set])\n\n return { reset, clear }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useEffect } from 'react'\n\nimport { useTimeout } from './useTimeout'\n\nexport const useDebounce = (callback, delay, deps) => {\n const { reset, clear } = useTimeout(callback, delay)\n\n useEffect(reset, [...deps, reset])\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(clear, [])\n}\n","export function decodeTag(string: string) {\n const formatedTag = string.replace(/_/g, '\\u00A0')\n return formatedTag.charAt(0).toUpperCase() + formatedTag.slice(1)\n}\n\nexport function encodeTag(string: string) {\n return string.replace(/\\s+/g, '_')\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { divIcon, Point } from 'leaflet'\n\nconst createSvg = (shape: string, markerColor: string, borderColor: string) => {\n const svgMap = {\n circle:\n '<svg width=\"32\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.5 2.746c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.439-17.863.056-.08a15.422 15.422 0 002.343-6.112c.123-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307\" fill=\"' +\n markerColor +\n '\" /><path d=\"M17.488 2.748c-8.284 0-15 6.853-15 15.307 0 .963.098 1.902.265 2.816a15.413 15.413 0 002.262 5.684l.134.193 12.295 17.785 12.44-17.863.055-.08a15.422 15.422 0 002.343-6.112c.124-.791.206-1.597.206-2.423 0-8.454-6.716-15.307-15-15.307m0 1.071c7.68 0 13.929 6.386 13.929 14.236 0 .685-.064 1.423-.193 2.258-.325 2.075-1.059 3.99-2.164 5.667l-.055.078-11.557 16.595L6.032 26.14l-.12-.174a14.256 14.256 0 01-2.105-5.29 14.698 14.698 0 01-.247-2.62c0-7.851 6.249-14.237 13.928-14.237\" fill=\"' +\n borderColor +\n '\" opacity=\"1\" /></svg>',\n square:\n '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M28.205 3.217H6.777c-2.367 0-4.286 1.87-4.286 4.179v19.847c0 2.308 1.919 4.179 4.286 4.179h5.357l5.337 13.58 5.377-13.58h5.357c2.366 0 4.285-1.87 4.285-4.179V7.396c0-2.308-1.919-4.179-4.285-4.179\" fill=\"' +\n markerColor +\n '\" /><g opacity=\"1\" transform=\"matrix(1.0714 0 0 -1.0714 -233.22 146.783)\"><path d=\"M244 134h-20c-2.209 0-4-1.746-4-3.9v-18.525c0-2.154 1.791-3.9 4-3.9h5L233.982 95 239 107.675h5c2.209 0 4 1.746 4 3.9V130.1c0 2.154-1.791 3.9-4 3.9m0-1c1.654 0 3-1.301 3-2.9v-18.525c0-1.599-1.346-2.9-3-2.9h-5.68l-.25-.632-4.084-10.318-4.055 10.316-.249.634H224c-1.654 0-3 1.301-3 2.9V130.1c0 1.599 1.346 2.9 3 2.9h20\" fill=\"' +\n borderColor +\n '\" /></g></svg>',\n star:\n '<svg width=\"34\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M32.92 16.93l-3.525-3.525V8.419a1.983 1.983 0 00-1.983-1.982h-4.985L18.9 2.91a1.984 1.984 0 00-2.803 0l-3.524 3.526H7.588a1.983 1.983 0 00-1.982 1.982v4.986L2.081 16.93a1.982 1.982 0 000 2.803l3.525 3.526v4.984c0 1.096.888 1.983 1.982 1.983h4.986L17.457 45l4.97-14.773h4.985a1.983 1.983 0 001.983-1.983V23.26l3.525-3.526a1.982 1.982 0 000-2.803\" fill=\"' +\n markerColor +\n '\" /><g opacity=\".15\" transform=\"matrix(1.0667 0 0 -1.0667 -347.3 97.26)\"><path d=\"M342 89c-.476 0-.951-.181-1.314-.544l-3.305-3.305h-4.673a1.858 1.858 0 01-1.859-1.858v-4.674l-3.305-3.305a1.857 1.857 0 010-2.627l3.305-3.305v-4.674a1.86 1.86 0 011.859-1.859h4.673L341.959 49l4.659 13.849h4.674a1.86 1.86 0 011.859 1.859v4.674l3.305 3.305a1.858 1.858 0 010 2.627l-3.305 3.305v4.674a1.859 1.859 0 01-1.859 1.858h-4.674l-3.304 3.305A1.851 1.851 0 01342 89m0-1a.853.853 0 00.607-.251l3.304-3.305.293-.293h5.088a.86.86 0 00.859-.858v-5.088l3.598-3.598A.852.852 0 00356 74a.85.85 0 00-.251-.606l-3.598-3.598v-5.088a.86.86 0 00-.859-.859h-5.393l-.229-.681-3.702-11.006-3.637 11.001-.227.686h-5.396a.86.86 0 00-.859.859v5.088l-3.598 3.598c-.162.162-.251.377-.251.606s.089.445.251.607l3.598 3.598v5.088a.86.86 0 00.859.858h5.087l3.598 3.598A.853.853 0 00342 88\" fill=\"#231f20\" /></g></svg>',\n penta:\n '<svg width=\"33\" height=\"44\" viewBox=\"0 0 35 45\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.872 17.35L9.679 2.993h15.615L33.1 17.35 17.486 44.992z\" fill=\"' +\n markerColor +\n '\" /><g opacity=\".15\" transform=\"matrix(1.0769 0 0 -1.0769 -272.731 48.23)\"><path d=\"M276.75 42h-14.5L255 28.668 269.5 3 284 28.668zm-.595-1l6.701-12.323L269.5 5.033l-13.356 23.644L262.845 41z\" fill=\"#231f20\" /></g></svg>',\n }\n // eslint-disable-next-line security/detect-object-injection\n return svgMap[shape]\n}\n\nconst addIcon = (icon: string) => {\n switch (icon) {\n case 'point':\n return '<svg fill=\"#fff\" class=\"circle-icon\" width=\"13\"xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d=\"M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z\"/></svg>'\n case 'calendar':\n return '<svg fill=\"#fff\" class=\"calendar-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d=\"M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM64 304C64 312.8 71.16 320 80 320H112C120.8 320 128 312.8 128 304V272C128 263.2 120.8 256 112 256H80C71.16 256 64 263.2 64 272V304zM192 304C192 312.8 199.2 320 208 320H240C248.8 320 256 312.8 256 304V272C256 263.2 248.8 256 240 256H208C199.2 256 192 263.2 192 272V304zM336 256C327.2 256 320 263.2 320 272V304C320 312.8 327.2 320 336 320H368C376.8 320 384 312.8 384 304V272C384 263.2 376.8 256 368 256H336zM64 432C64 440.8 71.16 448 80 448H112C120.8 448 128 440.8 128 432V400C128 391.2 120.8 384 112 384H80C71.16 384 64 391.2 64 400V432zM208 384C199.2 384 192 391.2 192 400V432C192 440.8 199.2 448 208 448H240C248.8 448 256 440.8 256 432V400C256 391.2 248.8 384 240 384H208zM320 432C320 440.8 327.2 448 336 448H368C376.8 448 384 440.8 384 432V400C384 391.2 376.8 384 368 384H336C327.2 384 320 391.2 320 400V432z\"/></svg>'\n case 'user':\n return '<svg fill=\"#fff\" class=\"user-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"1.5em\" viewBox=\"0 0 448 512\"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d=\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\"/></svg>'\n case 'fire':\n return '<svg fill=\"#fff\" class=\"fire-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 19.534 26.387\"><path d=\"M7.15 26.05C2.894 24.876.006 21.028.006 16.53c0-4.036 2.718-8.378 4.38-6.999.289.24.383.993.383 3.074 0 3.3.46 4.508 1.997 5.237 2.512 1.192 5.206-1.18 4.506-3.969-.097-.386-.99-1.562-1.986-2.614C7.04 8.887 6.583 8.026 6.583 6.176c0-2.333 2.02-6.182 3.244-6.182.59 0 1.292.98 1.292 1.805 0 1.227.951 2.596 3.727 5.362 3.655 3.642 4.493 5.216 4.671 8.776.143 2.847-.365 4.593-1.93 6.644-2.332 3.054-6.69 4.503-10.437 3.47z\"/></svg>'\n case 'tree':\n return '<svg fill=\"#fff\" class=\"tree-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"2em\" xml:space=\"preserve\" viewBox=\"0 0 24 24\"><path d=\"M11 21v-4.3c-.5.2-1 .3-1.5.3C7 17 5 15 5 12.5c0-1.3.5-2.4 1.4-3.2-.3-.6-.4-1.2-.4-1.8C6 5 8 3 10.5 3c1.6 0 2.9.8 3.8 2h.2c3 0 5.5 2.5 5.5 5.5S17.5 16 14.5 16c-.5 0-1-.1-1.5-.2V21h-2z\"/><path fill=\"none\" d=\"M0 0h24v24H0z\"/></svg>'\n case 'music':\n return '<svg fill=\"#fff\" class=\"music-icon\" xmlns=\"http://www.w3.org/2000/svg\" height=\"1.4em\" viewBox=\"0 0 512 512\"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d=\"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v72V368c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V147L192 223.8V432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6V200 128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"/></svg>'\n case 'drum':\n return '<svg class=\"drum-icon\" stroke=\"#fff\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 32 32\" height=\"1.8em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 27.1875 5.09375 L 16.125 10.34375 C 15.804688 10.128906 15.414063 10 15 10 C 13.894531 10 13 10.894531 13 12 C 13 13.105469 13.894531 14 15 14 C 16.050781 14 16.921875 13.1875 17 12.15625 L 23.0625 9.28125 C 24.878906 10.046875 26 11.046875 26 12 C 26 13.886719 21.722656 16 16 16 C 10.277344 16 6 13.886719 6 12 C 6 10.113281 10.277344 8 16 8 C 16.171875 8 16.328125 7.996094 16.5 8 L 20.03125 6.34375 C 18.777344 6.132813 17.433594 6 16 6 C 9.160156 6 4 8.578125 4 12 L 4 22 C 4 22.988281 4.445313 23.894531 5.125 24.625 C 5.804688 25.355469 6.730469 25.945313 7.8125 26.4375 C 9.976563 27.421875 12.839844 28 16 28 C 19.160156 28 22.023438 27.421875 24.1875 26.4375 C 25.269531 25.945313 26.195313 25.355469 26.875 24.625 C 27.554688 23.894531 28 22.988281 28 22 L 28 12 C 28 10.523438 27.023438 9.210938 25.375 8.1875 L 28.03125 6.90625 Z M 6 15.40625 C 7.015625 16.171875 8.378906 16.800781 10 17.25 L 10 25.15625 C 9.5 25 9.042969 24.816406 8.625 24.625 C 7.71875 24.210938 7.027344 23.714844 6.59375 23.25 C 6.160156 22.785156 6 22.394531 6 22 Z M 26 15.40625 L 26 22 C 26 22.394531 25.839844 22.785156 25.40625 23.25 C 24.972656 23.714844 24.28125 24.210938 23.375 24.625 C 22.957031 24.816406 22.5 25 22 25.15625 L 22 17.25 C 23.621094 16.800781 24.984375 16.171875 26 15.40625 Z M 12 17.6875 C 13.242188 17.894531 14.582031 18 16 18 C 17.417969 18 18.757813 17.894531 20 17.6875 L 20 25.625 C 18.769531 25.855469 17.421875 26 16 26 C 14.578125 26 13.230469 25.855469 12 25.625 Z\"></path></svg>'\n case 'quest':\n return '<svg class=\"quest-icon\" viewBox=\"0 0 4.69 5.987\" fill=\"#fff\" height=\"1.3em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.395 0 0 .898v2.096C0 4.79 2.395 5.987 2.395 5.987S4.79 4.79 4.79 2.994V.898zm.026 1.262c.518 0 1.07.404 1.07.937 0 .707-.764.718-.764.98v.035c0 .08-.065.146-.146.146H2.14a.146.146 0 0 1-.146-.146v-.06c0-.377.285-.528.501-.649.186-.104.3-.174.3-.312 0-.182-.232-.303-.42-.303-.239 0-.352.11-.505.302a.147.147 0 0 1-.203.025l-.263-.2a.147.147 0 0 1-.032-.2c.248-.355.563-.555 1.05-.555zM2.36 3.54a.423.423 0 1 1 0 .846.423.423 0 0 1 0-.846z\"/></svg>'\n case 'compass':\n return '<svg class=\"compass-icon\" fill=\"#fff\" height=\"1.8em\" viewBox=\"0 0 67.731 67.731\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m135.772 101.812-7.157-.73c-1.669-10.98-11.344-20.654-22.323-22.323l-.73-7.144c-.536-2.136-3.571-2.136-4.107 0l-.73 7.157c-10.98 1.669-20.654 11.344-22.323 22.323l-7.144.73c-2.136.536-2.136 3.571 0 4.107l7.157.73c1.669 10.98 11.344 20.654 22.323 22.323l.73 7.157c.536 2.136 3.571 2.136 4.107 0l.73-7.157c10.98-1.669 20.655-11.344 22.323-22.323l7.157-.73c2.136-.536 2.136-3.571 0-4.107zm-11.687-1.323-15.126-2.074-2.064-15.126c7.718 1.857 15.332 9.471 17.19 17.19zm-23.963-17.198-2.064 15.124-15.126 2.064c1.857-7.719 9.471-15.333 17.19-17.19zm-17.198 23.964 15.134 2.06 2.064 15.127c-7.719-1.858-15.333-9.472-17.19-17.19zm23.963 17.198 2.064-15.127 15.126-2.063c-1.86 7.712-9.47 15.32-17.182 17.179z\" style=\"stroke-width:.264583\" transform=\"translate(-69.656 -70.013)\"/></svg>'\n case 'liebevoll.jetzt':\n return '<svg class=\"liebevoll-jetzt-icon\" fill=\"#fff\" height=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" viewBox=\"0 0 42 42\"><path fill=\"#e52220\" d=\"M32.554 33.551c0-.2.2-.5 0-.7-.2-.2-.1 0-.3-.1-.5-.2-1.2-.1-1.7.2-.7.3-1.7 1.5-1.3 2.4.2.3.5.6.8.8.5.3.8-.1 1.2-.4.4-.3.7-.5.9-1 .1-.1.8-1.2.4-1.2z\"/> <path fill=\"#fff\" d=\"M14.426 41.57c-1.512-.808-2.234-2.322-2.403-5.038-.104-1.671.136-3.65.844-6.962.497-2.327.545-2.56.81-3.95.236-1.234 3.381-10.767 4.237-12.842.688-1.667 3.022-6.084 3.379-6.394.158-.137.708-.948 1.22-1.802C24.243 1.704 25.935 0 27.065 0c1.134 0 2.303 1.066 2.763 2.521.274.864.133 2.528-.34 4.032-.551 1.754-2.928 6.42-3.994 7.84a37.025 37.025 0 0 0-1.753 2.622c-1.173 1.957-2.233 3.525-4.002 5.92-.831 1.126-1.628 2.306-1.77 2.621-.422.932-1.792 6.558-1.836 7.536-.023.496-.095 1.73-.16 2.742-.175 2.714.265 3.687 1.54 3.407.737-.162 1.569-.967 3.197-3.092 2.302-3.005 5.204-7.528 6.524-10.17.622-1.243 1.228-2.06 1.528-2.06.394 0 .46 1.003.131 1.975-.413 1.219-4.57 8.126-6.186 10.277-1.727 2.3-4.191 4.785-5.233 5.277-1.194.564-2.15.602-3.048.123zm6.76-23.631c2.714-4.414 5.248-9.115 5.42-10.052.027-.148.172-.553.322-.9.397-.915.872-2.532.997-3.386.077-.532.04-.833-.132-1.065-.232-.315-.259-.305-.918.33-1.692 1.632-4.116 7.08-6.488 14.581-.484 1.532-.88 2.855-.881 2.94-.002.255.192-.026 1.68-2.449z\"/></svg>'\n case 'group':\n return '<svg class=\"group-icon\" stroke=\"#fff\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 20 20\" aria-hidden=\"true\" height=\"1.6em\" width=\"1.6em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM6 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM1.49 15.326a.78.78 0 0 1-.358-.442 3 3 0 0 1 4.308-3.516 6.484 6.484 0 0 0-1.905 3.959c-.023.222-.014.442.025.654a4.97 4.97 0 0 1-2.07-.655ZM16.44 15.98a4.97 4.97 0 0 0 2.07-.654.78.78 0 0 0 .357-.442 3 3 0 0 0-4.308-3.517 6.484 6.484 0 0 1 1.907 3.96 2.32 2.32 0 0 1-.026.654ZM18 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM5.304 16.19a.844.844 0 0 1-.277-.71 5 5 0 0 1 9.947 0 .843.843 0 0 1-.277.71A6.975 6.975 0 0 1 10 18a6.974 6.974 0 0 1-4.696-1.81Z\"></path></svg>'\n case 'puzzle':\n return '<svg class=\"group-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"#fff\" width=\"1.6em\" height=\"1.6em\"><path d=\"M11.25 5.337c0-.355-.186-.676-.401-.959a1.647 1.647 0 0 1-.349-1.003c0-1.036 1.007-1.875 2.25-1.875S15 2.34 15 3.375c0 .369-.128.713-.349 1.003-.215.283-.401.604-.401.959 0 .332.278.598.61.578 1.91-.114 3.79-.342 5.632-.676a.75.75 0 0 1 .878.645 49.17 49.17 0 0 1 .376 5.452.657.657 0 0 1-.66.664c-.354 0-.675-.186-.958-.401a1.647 1.647 0 0 0-1.003-.349c-1.035 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401.31 0 .557.262.534.571a48.774 48.774 0 0 1-.595 4.845.75.75 0 0 1-.61.61c-1.82.317-3.673.533-5.555.642a.58.58 0 0 1-.611-.581c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.035-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959a.641.641 0 0 1-.658.643 49.118 49.118 0 0 1-4.708-.36.75.75 0 0 1-.645-.878c.293-1.614.504-3.257.629-4.924A.53.53 0 0 0 5.337 15c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.036 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.369 0 .713.128 1.003.349.283.215.604.401.959.401a.656.656 0 0 0 .659-.663 47.703 47.703 0 0 0-.31-4.82.75.75 0 0 1 .83-.832c1.343.155 2.703.254 4.077.294a.64.64 0 0 0 .657-.642Z\" /></svg>'\n case 'staff-snake':\n return '<svg class=\"staff-snake-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 384 512\" height=\"1.4em\" width=\"1.4em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M222.6 43.2l-.1 4.8H288c53 0 96 43 96 96s-43 96-96 96H248V160h40c8.8 0 16-7.2 16-16s-7.2-16-16-16H248 220l-4.5 144H256c53 0 96 43 96 96s-43 96-96 96H240V384h16c8.8 0 16-7.2 16-16s-7.2-16-16-16H213l-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31H136c-22.1 0-40-17.9-40-40s17.9-40 40-40h36l-1-32H152c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7V256c0 8.8 7.2 16 16 16h16.5L164 128H136 122.6c-9 18.9-28.3 32-50.6 32H56c-30.9 0-56-25.1-56-56S25.1 48 56 48h8 8 89.5l-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"></path></svg>'\n case 'flower':\n return '<svg class=\"flower-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 256 256\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M210.35,129.36c-.81-.47-1.7-.92-2.62-1.36.92-.44,1.81-.89,2.62-1.36a40,40,0,1,0-40-69.28c-.81.47-1.65,1-2.48,1.59.08-1,.13-2,.13-3a40,40,0,0,0-80,0c0,.94,0,1.94.13,3-.83-.57-1.67-1.12-2.48-1.59a40,40,0,1,0-40,69.28c.81.47,1.7.92,2.62,1.36-.92.44-1.81.89-2.62,1.36a40,40,0,1,0,40,69.28c.81-.47,1.65-1,2.48-1.59-.08,1-.13,2-.13,2.95a40,40,0,0,0,80,0c0-.94-.05-1.94-.13-2.95.83.57,1.67,1.12,2.48,1.59A39.79,39.79,0,0,0,190.29,204a40.43,40.43,0,0,0,10.42-1.38,40,40,0,0,0,9.64-73.28ZM104,128a24,24,0,1,1,24,24A24,24,0,0,1,104,128Zm74.35-56.79a24,24,0,1,1,24,41.57c-6.27,3.63-18.61,6.13-35.16,7.19A40,40,0,0,0,154.53,98.1C163.73,84.28,172.08,74.84,178.35,71.21ZM128,32a24,24,0,0,1,24,24c0,7.24-4,19.19-11.36,34.06a39.81,39.81,0,0,0-25.28,0C108,75.19,104,63.24,104,56A24,24,0,0,1,128,32ZM44.86,80a24,24,0,0,1,32.79-8.79c6.27,3.63,14.62,13.07,23.82,26.89A40,40,0,0,0,88.81,120c-16.55-1.06-28.89-3.56-35.16-7.18A24,24,0,0,1,44.86,80ZM77.65,184.79a24,24,0,1,1-24-41.57c6.27-3.63,18.61-6.13,35.16-7.19a40,40,0,0,0,12.66,21.87C92.27,171.72,83.92,181.16,77.65,184.79ZM128,224a24,24,0,0,1-24-24c0-7.24,4-19.19,11.36-34.06a39.81,39.81,0,0,0,25.28,0C148,180.81,152,192.76,152,200A24,24,0,0,1,128,224Zm83.14-48a24,24,0,0,1-32.79,8.79c-6.27-3.63-14.62-13.07-23.82-26.89A40,40,0,0,0,167.19,136c16.55,1.06,28.89,3.56,35.16,7.18A24,24,0,0,1,211.14,176Z\"></path></svg>'\n case 'network':\n return '<svg class=\"network-icon\" stroke=\"currentColor\" fill=\"#fff\" stroke-width=\"0\" viewBox=\"0 0 256 256\" height=\"1.5em\" width=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M212,200a36,36,0,1,1-69.85-12.25l-53-34.05a36,36,0,1,1,0-51.4l53-34a36.09,36.09,0,1,1,8.67,13.45l-53,34.05a36,36,0,0,1,0,24.5l53,34.05A36,36,0,0,1,212,200Z\"></path></svg>'\n default:\n return ''\n }\n}\n\nconst MarkerIconFactory = (shape: string, color1: string, color2: string, icon: string) => {\n return divIcon({\n html: `${createSvg(shape, color1, color2)}${addIcon(icon)}`,\n iconAnchor: [17, 40],\n popupAnchor: [0, -40],\n iconSize: new Point(40, 46),\n className: 'leaflet-data-marker',\n shadowAnchor: [0, 0],\n })\n}\n\nexport default MarkerIconFactory\n","/*!\nCopyright (c) 2016 Dominik Moritz\n\nThis file is part of the leaflet locate control. It is licensed under the MIT license.\nYou can find the project at: https://github.com/domoritz/leaflet-locatecontrol\n*/\n(function (factory, window) {\n // see https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md#module-loaders\n // for details on how to structure a leaflet plugin.\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === \"function\" && define.amd) {\n define([\"leaflet\"], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === \"object\") {\n if (typeof window !== \"undefined\" && window.L) {\n module.exports = factory(L);\n } else {\n module.exports = factory(require(\"leaflet\"));\n }\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== \"undefined\" && window.L) {\n window.L.Control.Locate = factory(L);\n }\n})(function (L) {\n const LDomUtilApplyClassesMethod = (method, element, classNames) => {\n classNames = classNames.split(\" \");\n classNames.forEach(function (className) {\n L.DomUtil[method].call(this, element, className);\n });\n };\n\n const addClasses = (el, names) => LDomUtilApplyClassesMethod(\"addClass\", el, names);\n const removeClasses = (el, names) => LDomUtilApplyClassesMethod(\"removeClass\", el, names);\n\n /**\n * Compatible with L.Circle but a true marker instead of a path\n */\n const LocationMarker = L.Marker.extend({\n initialize(latlng, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this.createIcon();\n },\n\n /**\n * Create a styled circle location marker\n */\n createIcon() {\n const opt = this.options;\n\n let style = \"\";\n\n if (opt.color !== undefined) {\n style += `stroke:${opt.color};`;\n }\n if (opt.weight !== undefined) {\n style += `stroke-width:${opt.weight};`;\n }\n if (opt.fillColor !== undefined) {\n style += `fill:${opt.fillColor};`;\n }\n if (opt.fillOpacity !== undefined) {\n style += `fill-opacity:${opt.fillOpacity};`;\n }\n if (opt.opacity !== undefined) {\n style += `opacity:${opt.opacity};`;\n }\n\n const icon = this._getIconSVG(opt, style);\n\n this._locationIcon = L.divIcon({\n className: icon.className,\n html: icon.svg,\n iconSize: [icon.w, icon.h]\n });\n\n this.setIcon(this._locationIcon);\n },\n\n /**\n * Return the raw svg for the shape\n *\n * Split so can be easily overridden\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.weight;\n const s = r + w;\n const s2 = s * 2;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${s2}\" height=\"${s2}\" version=\"1.1\" viewBox=\"-${s} -${s} ${s2} ${s2}\">` +\n '<circle r=\"' +\n r +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-location\",\n svg,\n w: s2,\n h: s2\n };\n },\n\n setStyle(style) {\n L.Util.setOptions(this, style);\n this.createIcon();\n }\n });\n\n const CompassMarker = LocationMarker.extend({\n initialize(latlng, heading, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this._heading = heading;\n this.createIcon();\n },\n\n setHeading(heading) {\n this._heading = heading;\n },\n\n /**\n * Create a styled arrow compass marker\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.width + options.weight;\n const h = (r + options.depth + options.weight) * 2;\n const path = `M0,0 l${options.width / 2},${options.depth} l-${w},0 z`;\n const svgstyle = `transform: rotate(${this._heading}deg)`;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${w}\" height=\"${h}\" version=\"1.1\" viewBox=\"-${w / 2} 0 ${w} ${h}\" style=\"${svgstyle}\">` +\n '<path d=\"' +\n path +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-heading\",\n svg,\n w,\n h\n };\n }\n });\n\n const LocateControl = L.Control.extend({\n options: {\n /** Position of the control */\n position: \"topleft\",\n /** The layer that the user's location should be drawn on. By default creates a new layer. */\n layer: undefined,\n /**\n * Automatically sets the map view (zoom and pan) to the user's location as it updates.\n * While the map is following the user's location, the control is in the `following` state,\n * which changes the style of the control and the circle marker.\n *\n * Possible values:\n * - false: never updates the map view when location changes.\n * - 'once': set the view when the location is first determined\n * - 'always': always updates the map view when location changes.\n * The map view follows the user's location.\n * - 'untilPan': like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n * - 'untilPanOrZoom': (default) like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n */\n setView: \"untilPanOrZoom\",\n /** Keep the current map zoom level when setting the view and only pan. */\n keepCurrentZoomLevel: false,\n /** After activating the plugin by clicking on the icon, zoom to the selected zoom level, even when keepCurrentZoomLevel is true. Set to 'false' to disable this feature. */\n initialZoomLevel: false,\n /**\n * This callback can be used to override the viewport tracking\n * This function should return a LatLngBounds object.\n *\n * For example to extend the viewport to ensure that a particular LatLng is visible:\n *\n * getLocationBounds: function(locationEvent) {\n * return locationEvent.bounds.extend([-33.873085, 151.219273]);\n * },\n */\n getLocationBounds(locationEvent) {\n return locationEvent.bounds;\n },\n /** Smooth pan and zoom to the location of the marker. Only works in Leaflet 1.0+. */\n flyTo: false,\n /**\n * The user location can be inside and outside the current view when the user clicks on the\n * control that is already active. Both cases can be configures separately.\n * Possible values are:\n * - 'setView': zoom and pan to the current location\n * - 'stop': stop locating and remove the location marker\n */\n clickBehavior: {\n /** What should happen if the user clicks on the control while the location is within the current view. */\n inView: \"stop\",\n /** What should happen if the user clicks on the control while the location is outside the current view. */\n outOfView: \"setView\",\n /**\n * What should happen if the user clicks on the control while the location is within the current view\n * and we could be following but are not. Defaults to a special value which inherits from 'inView';\n */\n inViewNotFollowing: \"inView\"\n },\n /**\n * If set, save the map bounds just before centering to the user's\n * location. When control is disabled, set the view back to the\n * bounds that were saved.\n */\n returnToPrevBounds: false,\n /**\n * Keep a cache of the location after the user deactivates the control. If set to false, the user has to wait\n * until the locate API returns a new location before they see where they are again.\n */\n cacheLocation: true,\n /** If set, a circle that shows the location accuracy is drawn. */\n drawCircle: true,\n /** If set, the marker at the users' location is drawn. */\n drawMarker: true,\n /** If set and supported then show the compass heading */\n showCompass: true,\n /** The class to be used to create the marker. For example L.CircleMarker or L.Marker */\n markerClass: LocationMarker,\n /** The class us be used to create the compass bearing arrow */\n compassClass: CompassMarker,\n /** Accuracy circle style properties. NOTE these styles should match the css animations styles */\n circleStyle: {\n className: \"leaflet-control-locate-circle\",\n color: \"#136AEC\",\n fillColor: \"#136AEC\",\n fillOpacity: 0.15,\n weight: 0\n },\n /** Inner marker style properties. Only works if your marker class supports `setStyle`. */\n markerStyle: {\n className: \"leaflet-control-locate-marker\",\n color: \"#fff\",\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 3,\n opacity: 1,\n radius: 9\n },\n /** Compass */\n compassStyle: {\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 0,\n color: \"#fff\",\n opacity: 1,\n radius: 9, // How far is the arrow is from the center of of the marker\n width: 9, // Width of the arrow\n depth: 6 // Length of the arrow\n },\n /**\n * Changes to accuracy circle and inner marker while following.\n * It is only necessary to provide the properties that should change.\n */\n followCircleStyle: {},\n followMarkerStyle: {\n // color: '#FFA500',\n // fillColor: '#FFB000'\n },\n followCompassStyle: {},\n /** The CSS class for the icon. For example fa-location-arrow or fa-map-marker */\n icon: \"leaflet-control-locate-location-arrow\",\n iconLoading: \"leaflet-control-locate-spinner\",\n /** The element to be created for icons. For example span or i */\n iconElementTag: \"span\",\n /** The element to be created for the text. For example small or span */\n textElementTag: \"small\",\n /** Padding around the accuracy circle. */\n circlePadding: [0, 0],\n /** Use metric units. */\n metric: true,\n /**\n * This callback can be used in case you would like to override button creation behavior.\n * This is useful for DOM manipulation frameworks such as angular etc.\n * This function should return an object with HtmlElement for the button (link property) and the icon (icon property).\n */\n createButtonCallback(container, options) {\n const link = L.DomUtil.create(\"a\", \"leaflet-bar-part leaflet-bar-part-single\", container);\n link.title = options.strings.title;\n link.href = \"#\";\n link.setAttribute(\"role\", \"button\");\n const icon = L.DomUtil.create(options.iconElementTag, options.icon, link);\n\n if (options.strings.text !== undefined) {\n const text = L.DomUtil.create(options.textElementTag, \"leaflet-locate-text\", link);\n text.textContent = options.strings.text;\n link.classList.add(\"leaflet-locate-text-active\");\n link.parentNode.style.display = \"flex\";\n if (options.icon.length > 0) {\n icon.classList.add(\"leaflet-locate-icon\");\n }\n }\n\n return { link, icon };\n },\n /** This event is called in case of any location error that is not a time out error. */\n onLocationError(err, control) {\n alert(err.message);\n },\n /**\n * This event is called when the user's location is outside the bounds set on the map.\n * The event is called repeatedly when the location changes.\n */\n onLocationOutsideMapBounds(control) {\n control.stop();\n alert(control.options.strings.outsideMapBoundsMsg);\n },\n /** Display a pop-up when the user click on the inner marker. */\n showPopup: true,\n strings: {\n title: \"Show me where I am\",\n metersUnit: \"meters\",\n feetUnit: \"feet\",\n popup: \"You are within {distance} {unit} from this point\",\n outsideMapBoundsMsg: \"You seem located outside the boundaries of the map\"\n },\n /** The default options passed to leaflets locate method. */\n locateOptions: {\n maxZoom: Infinity,\n watch: true, // if you overwrite this, visualization cannot be updated\n setView: false // have to set this to false because we have to\n // do setView manually\n }\n },\n\n initialize(options) {\n // set default options if nothing is set (merge one step deep)\n for (const i in options) {\n if (typeof this.options[i] === \"object\") {\n L.extend(this.options[i], options[i]);\n } else {\n this.options[i] = options[i];\n }\n }\n\n // extend the follow marker style and circle from the normal style\n this.options.followMarkerStyle = L.extend({}, this.options.markerStyle, this.options.followMarkerStyle);\n this.options.followCircleStyle = L.extend({}, this.options.circleStyle, this.options.followCircleStyle);\n this.options.followCompassStyle = L.extend({}, this.options.compassStyle, this.options.followCompassStyle);\n },\n\n /**\n * Add control to map. Returns the container for the control.\n */\n onAdd(map) {\n const container = L.DomUtil.create(\"div\", \"leaflet-control-locate leaflet-bar leaflet-control\");\n this._container = container;\n this._map = map;\n this._layer = this.options.layer || new L.LayerGroup();\n this._layer.addTo(map);\n this._event = undefined;\n this._compassHeading = null;\n this._prevBounds = null;\n\n const linkAndIcon = this.options.createButtonCallback(container, this.options);\n this._link = linkAndIcon.link;\n this._icon = linkAndIcon.icon;\n\n L.DomEvent.on(\n this._link,\n \"click\",\n function (ev) {\n L.DomEvent.stopPropagation(ev);\n L.DomEvent.preventDefault(ev);\n this._onClick();\n },\n this\n ).on(this._link, \"dblclick\", L.DomEvent.stopPropagation);\n\n this._resetVariables();\n\n this._map.on(\"unload\", this._unload, this);\n\n return container;\n },\n\n /**\n * This method is called when the user clicks on the control.\n */\n _onClick() {\n this._justClicked = true;\n const wasFollowing = this._isFollowing();\n this._userPanned = false;\n this._userZoomed = false;\n\n if (this._active && !this._event) {\n // click while requesting\n this.stop();\n } else if (this._active) {\n const behaviors = this.options.clickBehavior;\n let behavior = behaviors.outOfView;\n if (this._map.getBounds().contains(this._event.latlng)) {\n behavior = wasFollowing ? behaviors.inView : behaviors.inViewNotFollowing;\n }\n\n // Allow inheriting from another behavior\n if (behaviors[behavior]) {\n behavior = behaviors[behavior];\n }\n\n switch (behavior) {\n case \"setView\":\n this.setView();\n break;\n case \"stop\":\n this.stop();\n if (this.options.returnToPrevBounds) {\n const f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n f.bind(this._map)(this._prevBounds);\n }\n break;\n }\n } else {\n if (this.options.returnToPrevBounds) {\n this._prevBounds = this._map.getBounds();\n }\n this.start();\n }\n\n this._updateContainerStyle();\n },\n\n /**\n * Starts the plugin:\n * - activates the engine\n * - draws the marker (if coordinates available)\n */\n start() {\n this._activate();\n\n if (this._event) {\n this._drawMarker(this._map);\n\n // if we already have a location but the user clicked on the control\n if (this.options.setView) {\n this.setView();\n }\n }\n this._updateContainerStyle();\n },\n\n /**\n * Stops the plugin:\n * - deactivates the engine\n * - reinitializes the button\n * - removes the marker\n */\n stop() {\n this._deactivate();\n\n this._cleanClasses();\n this._resetVariables();\n\n this._removeMarker();\n },\n\n /**\n * Keep the control active but stop following the location\n */\n stopFollowing() {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n },\n\n /**\n * This method launches the location engine.\n * It is called before the marker is updated,\n * event if it does not mean that the event will be ready.\n *\n * Override it if you want to add more functionalities.\n * It should set the this._active to true and do nothing if\n * this._active is true.\n */\n _activate() {\n if (this._active || !this._map) {\n return;\n }\n\n this._map.locate(this.options.locateOptions);\n this._map.fire(\"locateactivate\", this);\n this._active = true;\n\n // bind event listeners\n this._map.on(\"locationfound\", this._onLocationFound, this);\n this._map.on(\"locationerror\", this._onLocationError, this);\n this._map.on(\"dragstart\", this._onDrag, this);\n this._map.on(\"zoomstart\", this._onZoom, this);\n this._map.on(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n const oriAbs = \"ondeviceorientationabsolute\" in window;\n if (oriAbs || \"ondeviceorientation\" in window) {\n const _this = this;\n const deviceorientation = function () {\n L.DomEvent.on(window, oriAbs ? \"deviceorientationabsolute\" : \"deviceorientation\", _this._onDeviceOrientation, _this);\n };\n if (DeviceOrientationEvent && typeof DeviceOrientationEvent.requestPermission === \"function\") {\n DeviceOrientationEvent.requestPermission().then(function (permissionState) {\n if (permissionState === \"granted\") {\n deviceorientation();\n }\n });\n } else {\n deviceorientation();\n }\n }\n }\n },\n\n /**\n * Called to stop the location engine.\n *\n * Override it to shutdown any functionalities you added on start.\n */\n _deactivate() {\n if (!this._active || !this._map) {\n return;\n }\n\n this._map.stopLocate();\n this._map.fire(\"locatedeactivate\", this);\n this._active = false;\n\n if (!this.options.cacheLocation) {\n this._event = undefined;\n }\n\n // unbind event listeners\n this._map.off(\"locationfound\", this._onLocationFound, this);\n this._map.off(\"locationerror\", this._onLocationError, this);\n this._map.off(\"dragstart\", this._onDrag, this);\n this._map.off(\"zoomstart\", this._onZoom, this);\n this._map.off(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n this._compassHeading = null;\n if (\"ondeviceorientationabsolute\" in window) {\n L.DomEvent.off(window, \"deviceorientationabsolute\", this._onDeviceOrientation, this);\n } else if (\"ondeviceorientation\" in window) {\n L.DomEvent.off(window, \"deviceorientation\", this._onDeviceOrientation, this);\n }\n }\n },\n\n /**\n * Zoom (unless we should keep the zoom level) and an to the current view.\n */\n setView() {\n this._drawMarker();\n if (this._isOutsideMapBounds()) {\n this._event = undefined; // clear the current location so we can get back into the bounds\n this.options.onLocationOutsideMapBounds(this);\n } else {\n if (this._justClicked && this.options.initialZoomLevel !== false) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.setView;\n f.bind(this._map)([this._event.latitude, this._event.longitude], this.options.initialZoomLevel);\n } else if (this.options.keepCurrentZoomLevel) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.panTo;\n f.bind(this._map)([this._event.latitude, this._event.longitude]);\n } else {\n var f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n // Ignore zoom events while setting the viewport as these would stop following\n this._ignoreEvent = true;\n f.bind(this._map)(this.options.getLocationBounds(this._event), {\n padding: this.options.circlePadding,\n maxZoom: this.options.initialZoomLevel || this.options.locateOptions.maxZoom\n });\n L.Util.requestAnimFrame(function () {\n // Wait until after the next animFrame because the flyTo can be async\n this._ignoreEvent = false;\n }, this);\n }\n }\n },\n\n /**\n *\n */\n _drawCompass() {\n if (!this._event) {\n return;\n }\n\n const latlng = this._event.latlng;\n\n if (this.options.showCompass && latlng && this._compassHeading !== null) {\n const cStyle = this._isFollowing() ? this.options.followCompassStyle : this.options.compassStyle;\n if (!this._compass) {\n this._compass = new this.options.compassClass(latlng, this._compassHeading, cStyle).addTo(this._layer);\n } else {\n this._compass.setLatLng(latlng);\n this._compass.setHeading(this._compassHeading);\n // If the compassClass can be updated with setStyle, update it.\n if (this._compass.setStyle) {\n this._compass.setStyle(cStyle);\n }\n }\n //\n }\n if (this._compass && (!this.options.showCompass || this._compassHeading === null)) {\n this._compass.removeFrom(this._layer);\n this._compass = null;\n }\n },\n\n /**\n * Draw the marker and accuracy circle on the map.\n *\n * Uses the event retrieved from onLocationFound from the map.\n */\n _drawMarker() {\n if (this._event.accuracy === undefined) {\n this._event.accuracy = 0;\n }\n\n const radius = this._event.accuracy;\n const latlng = this._event.latlng;\n\n // circle with the radius of the location's accuracy\n if (this.options.drawCircle) {\n const style = this._isFollowing() ? this.options.followCircleStyle : this.options.circleStyle;\n\n if (!this._circle) {\n this._circle = L.circle(latlng, radius, style).addTo(this._layer);\n } else {\n this._circle.setLatLng(latlng).setRadius(radius).setStyle(style);\n }\n }\n\n let distance;\n let unit;\n if (this.options.metric) {\n distance = radius.toFixed(0);\n unit = this.options.strings.metersUnit;\n } else {\n distance = (radius * 3.2808399).toFixed(0);\n unit = this.options.strings.feetUnit;\n }\n\n // small inner marker\n if (this.options.drawMarker) {\n const mStyle = this._isFollowing() ? this.options.followMarkerStyle : this.options.markerStyle;\n if (!this._marker) {\n this._marker = new this.options.markerClass(latlng, mStyle).addTo(this._layer);\n } else {\n this._marker.setLatLng(latlng);\n // If the markerClass can be updated with setStyle, update it.\n if (this._marker.setStyle) {\n this._marker.setStyle(mStyle);\n }\n }\n }\n\n this._drawCompass();\n\n const t = this.options.strings.popup;\n function getPopupText() {\n if (typeof t === \"string\") {\n return L.Util.template(t, { distance, unit });\n } else if (typeof t === \"function\") {\n return t({ distance, unit });\n } else {\n return t;\n }\n }\n if (this.options.showPopup && t && this._marker) {\n this._marker.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n if (this.options.showPopup && t && this._compass) {\n this._compass.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n },\n\n /**\n * Remove the marker from map.\n */\n _removeMarker() {\n this._layer.clearLayers();\n this._marker = undefined;\n this._circle = undefined;\n },\n\n /**\n * Unload the plugin and all event listeners.\n * Kind of the opposite of onAdd.\n */\n _unload() {\n this.stop();\n this._map.off(\"unload\", this._unload, this);\n },\n\n /**\n * Sets the compass heading\n */\n _setCompassHeading(angle) {\n if (!isNaN(parseFloat(angle)) && isFinite(angle)) {\n angle = Math.round(angle);\n\n this._compassHeading = angle;\n L.Util.requestAnimFrame(this._drawCompass, this);\n } else {\n this._compassHeading = null;\n }\n },\n\n /**\n * If the compass fails calibration just fail safely and remove the compass\n */\n _onCompassNeedsCalibration() {\n this._setCompassHeading();\n },\n\n /**\n * Process and normalise compass events\n */\n _onDeviceOrientation(e) {\n if (!this._active) {\n return;\n }\n\n if (e.webkitCompassHeading) {\n // iOS\n this._setCompassHeading(e.webkitCompassHeading);\n } else if (e.absolute && e.alpha) {\n // Android\n this._setCompassHeading(360 - e.alpha);\n }\n },\n\n /**\n * Calls deactivate and dispatches an error.\n */\n _onLocationError(err) {\n // ignore time out error if the location is watched\n if (err.code == 3 && this.options.locateOptions.watch) {\n return;\n }\n\n this.stop();\n this.options.onLocationError(err, this);\n },\n\n /**\n * Stores the received event and updates the marker.\n */\n _onLocationFound(e) {\n // no need to do anything if the location has not changed\n if (this._event && this._event.latlng.lat === e.latlng.lat && this._event.latlng.lng === e.latlng.lng && this._event.accuracy === e.accuracy) {\n return;\n }\n\n if (!this._active) {\n // we may have a stray event\n return;\n }\n\n this._event = e;\n\n this._drawMarker();\n this._updateContainerStyle();\n\n switch (this.options.setView) {\n case \"once\":\n if (this._justClicked) {\n this.setView();\n }\n break;\n case \"untilPan\":\n if (!this._userPanned) {\n this.setView();\n }\n break;\n case \"untilPanOrZoom\":\n if (!this._userPanned && !this._userZoomed) {\n this.setView();\n }\n break;\n case \"always\":\n this.setView();\n break;\n case false:\n // don't set the view\n break;\n }\n\n this._justClicked = false;\n },\n\n /**\n * When the user drags. Need a separate event so we can bind and unbind event listeners.\n */\n _onDrag() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * When the user zooms. Need a separate event so we can bind and unbind event listeners.\n */\n _onZoom() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userZoomed = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * After a zoom ends update the compass and handle sideways zooms\n */\n _onZoomEnd() {\n if (this._event) {\n this._drawCompass();\n }\n\n if (this._event && !this._ignoreEvent) {\n // If we have zoomed in and out and ended up sideways treat it as a pan\n if (this._marker && !this._map.getBounds().pad(-0.3).contains(this._marker.getLatLng())) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n }\n },\n\n /**\n * Compute whether the map is following the user location with pan and zoom.\n */\n _isFollowing() {\n if (!this._active) {\n return false;\n }\n\n if (this.options.setView === \"always\") {\n return true;\n } else if (this.options.setView === \"untilPan\") {\n return !this._userPanned;\n } else if (this.options.setView === \"untilPanOrZoom\") {\n return !this._userPanned && !this._userZoomed;\n }\n },\n\n /**\n * Check if location is in map bounds\n */\n _isOutsideMapBounds() {\n if (this._event === undefined) {\n return false;\n }\n return this._map.options.maxBounds && !this._map.options.maxBounds.contains(this._event.latlng);\n },\n\n /**\n * Toggles button class between following and active.\n */\n _updateContainerStyle() {\n if (!this._container) {\n return;\n }\n\n if (this._active && !this._event) {\n // active but don't have a location yet\n this._setClasses(\"requesting\");\n } else if (this._isFollowing()) {\n this._setClasses(\"following\");\n } else if (this._active) {\n this._setClasses(\"active\");\n } else {\n this._cleanClasses();\n }\n },\n\n /**\n * Sets the CSS classes for the state.\n */\n _setClasses(state) {\n if (state == \"requesting\") {\n removeClasses(this._container, \"active following\");\n addClasses(this._container, \"requesting\");\n\n removeClasses(this._icon, this.options.icon);\n addClasses(this._icon, this.options.iconLoading);\n } else if (state == \"active\") {\n removeClasses(this._container, \"requesting following\");\n addClasses(this._container, \"active\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n } else if (state == \"following\") {\n removeClasses(this._container, \"requesting\");\n addClasses(this._container, \"active following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n }\n },\n\n /**\n * Removes all classes from button.\n */\n _cleanClasses() {\n L.DomUtil.removeClass(this._container, \"requesting\");\n L.DomUtil.removeClass(this._container, \"active\");\n L.DomUtil.removeClass(this._container, \"following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n },\n\n /**\n * Reinitializes state variables.\n */\n _resetVariables() {\n // whether locate is active or not\n this._active = false;\n\n // true if the control was clicked for the first time\n // we need this so we can pan and zoom once we have the location\n this._justClicked = false;\n\n // true if the user has panned the map after clicking the control\n this._userPanned = false;\n\n // true if the user has zoomed the map after clicking the control\n this._userZoomed = false;\n }\n });\n\n L.control.locate = (options) => new L.Control.Locate(options);\n\n return LocateControl;\n}, window);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/prefer-ts-expect-error */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { control } from 'leaflet'\nimport { useEffect, useRef, useState } from 'react'\nimport { useMap, useMapEvents } from 'react-leaflet'\n// eslint-disable-next-line import/no-unassigned-import\nimport 'leaflet.locatecontrol'\n// eslint-disable-next-line import/no-unassigned-import\nimport 'leaflet.locatecontrol/dist/L.Control.Locate.css'\n\n// Converts leaflet.locatecontrol to a React Component\nexport const LocateControl = () => {\n const map = useMap()\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const [lc, setLc] = useState<any>(null)\n const [active, setActive] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n\n useEffect(() => {\n if (!init.current) {\n // @ts-ignore\n setLc(control.locate().addTo(map))\n init.current = true\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useMapEvents({\n locationfound: () => {\n setLoading(false)\n setActive(true)\n },\n })\n\n return (\n <>\n <div className='tw-card tw-h-12 tw-w-12 tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300 tw-ml-2'>\n <div\n className='tw-card-body tw-card tw-p-2 tw-h-10 tw-w-10 '\n onClick={() => {\n if (active) {\n lc.stop()\n setActive(false)\n } else {\n lc.start()\n setLoading(true)\n }\n }}\n >\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-md tw-mt-1'></span>\n ) : (\n <svg\n fill={`${active ? '#fc8702' : 'currentColor'}`}\n viewBox='0 0 32 32'\n version='1.1'\n xmlns='http://www.w3.org/2000/svg'\n className='tw-mt-1 tw-p-[1px]'\n >\n <path d='M30 14.75h-2.824c-0.608-5.219-4.707-9.318-9.874-9.921l-0.053-0.005v-2.824c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.824c-5.219 0.608-9.318 4.707-9.921 9.874l-0.005 0.053h-2.824c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.824c0.608 5.219 4.707 9.318 9.874 9.921l0.053 0.005v2.824c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.824c5.219-0.608 9.318-4.707 9.921-9.874l0.005-0.053h2.824c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0zM17.25 24.624v-2.624c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.624c-3.821-0.57-6.803-3.553-7.368-7.326l-0.006-0.048h2.624c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0h-2.624c0.57-3.821 3.553-6.804 7.326-7.368l0.048-0.006v2.624c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.624c3.821 0.57 6.803 3.553 7.368 7.326l0.006 0.048h-2.624c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.624c-0.571 3.821-3.553 6.803-7.326 7.368l-0.048 0.006z'></path>\n </svg>\n )}\n </div>\n </div>\n </>\n )\n}\n","// Converts leaflet.locatecontrol to a React Component\nexport const SidebarControl = () => {\n return (\n <>\n <div className='tw-card tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300 tw-mr-2 tw-h-12 tw-w-12 '>\n <div className='tw-card-body tw-card tw-p-0'>\n <button\n className='tw-btn tw-btn-square tw-btn-ghost tw-rounded-2xl'\n data-te-sidenav-toggle-ref\n data-te-target='#sidenav'\n aria-controls='#sidenav'\n aria-haspopup='true'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n className='tw-inline-block tw-w-5 tw-h-5 tw-stroke-current'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='2'\n d='M4 6h16M4 12h16M4 18h16'\n ></path>\n </svg>\n </button>\n </div>\n </div>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/require-await */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport axios from 'axios'\nimport { LatLng, LatLngBounds, marker } from 'leaflet'\nimport { useEffect, useRef, useState } from 'react'\nimport { useMap, useMapEvents } from 'react-leaflet'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { useDebounce } from '#components/Map/hooks/useDebounce'\nimport { useAddFilterTag } from '#components/Map/hooks/useFilter'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { useLeafletRefs } from '#components/Map/hooks/useLeafletRefs'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport useWindowDimensions from '#components/Map/hooks/useWindowDimension'\nimport { Item } from '#src/types'\nimport { decodeTag } from '#utils/FormatTags'\nimport { getValue } from '#utils/GetValue'\nimport MarkerIconFactory from '#utils/MarkerIconFactory'\n\nimport { LocateControl } from './LocateControl'\nimport { SidebarControl } from './SidebarControl'\n\nexport const SearchControl = () => {\n const windowDimensions = useWindowDimensions()\n const [popupOpen, setPopupOpen] = useState(false)\n\n const [value, setValue] = useState('')\n const [geoResults, setGeoResults] = useState<any[]>([])\n const [tagsResults, setTagsResults] = useState<any[]>([])\n const [itemsResults, setItemsResults] = useState<Item[]>([])\n const [hideSuggestions, setHideSuggestions] = useState(true)\n\n const map = useMap()\n const tags = useTags()\n const items = useItems()\n const leafletRefs = useLeafletRefs()\n const addFilterTag = useAddFilterTag()\n\n useMapEvents({\n popupopen: () => {\n setPopupOpen(true)\n },\n popupclose: () => {\n setPopupOpen(false)\n },\n })\n\n const navigate = useNavigate()\n\n useDebounce(\n () => {\n const searchGeo = async () => {\n try {\n const { data } = await axios.get(`https://photon.komoot.io/api/?q=${value}&limit=5`)\n setGeoResults(data.features)\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error)\n }\n }\n searchGeo()\n setItemsResults(\n items.filter((item) => {\n if (item.layer?.itemNameField) item.name = getValue(item, item.layer.itemNameField)\n if (item.layer?.itemTextField) item.text = getValue(item, item.layer.itemTextField)\n return (\n value.length > 2 &&\n ((item.layer?.listed && item.name.toLowerCase().includes(value.toLowerCase())) ||\n item.text.toLowerCase().includes(value.toLowerCase()))\n )\n }),\n )\n let phrase = value\n if (value.startsWith('#')) phrase = value.substring(1)\n setTagsResults(tags.filter((tag) => tag.name.toLowerCase().includes(phrase.toLowerCase())))\n },\n 500,\n [value],\n )\n\n const hide = async () => {\n setTimeout(() => {\n setHideSuggestions(true)\n }, 200)\n }\n\n const searchInput = useRef<HTMLInputElement>(null)\n const [embedded, setEmbedded] = useState<boolean>(true)\n\n const location = useLocation()\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setEmbedded(false)\n }, [location])\n\n return (\n <>\n {!(windowDimensions.height < 500 && popupOpen && hideSuggestions) && (\n <div className='tw-w-[calc(100vw-2rem)] tw-max-w-[22rem] '>\n <div className='tw-flex tw-flex-row'>\n {embedded && <SidebarControl />}\n <div className='tw-relative'>\n <input\n type='text'\n placeholder='search ...'\n autoComplete='off'\n value={value}\n className='tw-input tw-input-bordered tw-grow tw-shadow-xl tw-rounded-lg tw-pr-12'\n ref={searchInput}\n onChange={(e) => setValue(e.target.value)}\n onFocus={() => {\n setHideSuggestions(false)\n if (windowDimensions.width < 500) map.closePopup()\n }}\n onBlur={() => hide()}\n />\n {value.length > 0 && (\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-absolute tw-right-2 tw-top-2'\n onClick={() => setValue('')}\n >\n ✕\n </button>\n )}\n </div>\n <LocateControl />\n </div>\n {hideSuggestions ||\n (Array.from(geoResults).length === 0 &&\n itemsResults.length === 0 &&\n tagsResults.length === 0 &&\n !isGeoCoordinate(value)) ||\n value.length === 0 ? (\n ''\n ) : (\n <div className='tw-card tw-card-body tw-bg-base-100 tw-p-4 tw-mt-2 tw-shadow-xl tw-overflow-y-auto tw-max-h-[calc(100dvh-152px)] tw-absolute tw-z-3000'>\n {tagsResults.length > 0 && (\n <div className='tw-flex tw-flex-wrap'>\n {tagsResults.slice(0, 3).map((tag) => (\n <div\n key={tag.name}\n className='tw-rounded-2xl tw-text-white tw-p-1 tw-px-4 tw-shadow-md tw-card tw-mr-2 tw-mb-2 tw-cursor-pointer'\n style={{ backgroundColor: tag.color }}\n onClick={() => {\n addFilterTag(tag)\n }}\n >\n <b>#{decodeTag(tag.name)}</b>\n </div>\n ))}\n </div>\n )}\n\n {itemsResults.length > 0 && tagsResults.length > 0 && (\n <hr className='tw-opacity-50'></hr>\n )}\n {itemsResults.slice(0, 5).map((item) => (\n <div\n key={item.id}\n className='tw-cursor-pointer hover:tw-font-bold'\n onClick={() => {\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === item)?.[1]\n .marker\n if (marker) {\n navigate(`/${item.id}?${new URLSearchParams(window.location.search)}`)\n } else {\n navigate(\n 'item/' + item.id + '?' + new URLSearchParams(window.location.search),\n )\n }\n }}\n >\n <div className='tw-flex tw-flex-row'>\n <img\n src={item.layer?.menuIcon}\n className='tw-text-current tw-w-5 tw-mr-2 tw-mt-0'\n />\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {item.name}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {item.text}\n </div>\n </div>\n </div>\n </div>\n ))}\n {Array.from(geoResults).length > 0 &&\n (itemsResults.length > 0 || tagsResults.length > 0) && (\n <hr className='tw-opacity-50'></hr>\n )}\n {Array.from(geoResults).map((geo) => (\n <div\n className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer'\n key={Math.random()}\n onClick={() => {\n searchInput.current?.blur()\n marker(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), {\n icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),\n })\n .addTo(map)\n .bindPopup(\n `<h3 class=\"tw-text-base tw-font-bold\">${geo?.properties.name ? geo?.properties.name : value}<h3>${capitalizeFirstLetter(geo?.properties?.osm_value)}`,\n )\n .openPopup()\n .addEventListener('popupclose', (e) => {\n // eslint-disable-next-line no-console\n console.log(e.target.remove())\n })\n if (geo.properties.extent)\n map.fitBounds(\n new LatLngBounds(\n new LatLng(geo.properties.extent[1], geo.properties.extent[0]),\n new LatLng(geo.properties.extent[3], geo.properties.extent[2]),\n ),\n )\n else\n map.setView(\n new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]),\n 15,\n { duration: 1 },\n )\n hide()\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='1.5'\n stroke='currentColor'\n className='tw-text-current tw-mr-2 tw-mt-0 tw-w-4'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z'\n />\n </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {geo?.properties.name ? geo?.properties.name : value}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {geo?.properties?.city && `${capitalizeFirstLetter(geo?.properties?.city)}, `}{' '}\n {geo?.properties?.osm_value &&\n geo?.properties?.osm_value !== 'yes' &&\n geo?.properties?.osm_value !== 'primary' &&\n geo?.properties?.osm_value !== 'path' &&\n geo?.properties?.osm_value !== 'secondary' &&\n geo?.properties?.osm_value !== 'residential' &&\n geo?.properties?.osm_value !== 'unclassified' &&\n `${capitalizeFirstLetter(geo?.properties?.osm_value)}, `}{' '}\n {geo.properties.state && `${geo.properties.state}, `}{' '}\n {geo.properties.country && geo.properties.country}\n </div>\n </div>\n </div>\n ))}\n {isGeoCoordinate(value) && (\n <div\n className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer'\n onClick={() => {\n marker(\n new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]),\n {\n icon: MarkerIconFactory('circle', '#777', 'RGBA(35, 31, 32, 0.2)', 'point'),\n },\n )\n .addTo(map)\n .bindPopup(\n `<h3 class=\"tw-text-base tw-font-bold\">${extractCoordinates(value)![0]}, ${extractCoordinates(value)![1]}</h3>`,\n )\n .openPopup()\n .addEventListener('popupclose', (e) => {\n // eslint-disable-next-line no-console\n console.log(e.target.remove())\n })\n map.setView(\n new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]),\n 15,\n { duration: 1 },\n )\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={1.5}\n stroke='currentColor'\n className='tw-text-current tw-mr-2 tw-mt-0 tw-w-4'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M3 3v1.5M3 21v-6m0 0 2.77-.693a9 9 0 0 1 6.208.682l.108.054a9 9 0 0 0 6.086.71l3.114-.732a48.524 48.524 0 0 1-.005-10.499l-3.11.732a9 9 0 0 1-6.085-.711l-.108-.054a9 9 0 0 0-6.208-.682L3 4.5M3 15V4.5'\n />\n </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {value}\n </div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>\n {'Coordiante'}\n </div>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </>\n )\n}\n\nfunction isGeoCoordinate(input) {\n const geokoordinatenRegex =\n // eslint-disable-next-line security/detect-unsafe-regex\n /^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?),\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)$/\n return geokoordinatenRegex.test(input)\n}\n\nfunction extractCoordinates(input): number[] | null {\n const result = input.split(',')\n if (result) {\n const latitude = parseFloat(result[0])\n const longitude = parseFloat(result[1])\n if (!isNaN(latitude) && !isNaN(longitude)) {\n return [latitude, longitude]\n }\n }\n return null // Invalid input or error\n}\n\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1)\n}\n","import { useFilterTags, useRemoveFilterTag } from '#components/Map/hooks/useFilter'\nimport { decodeTag } from '#utils/FormatTags'\n\nexport const TagsControl = () => {\n const filterTags = useFilterTags()\n const removeFilterTag = useRemoveFilterTag()\n\n return (\n <div className='tw-flex tw-flex-wrap tw-mt-4 tw-w-[calc(100vw-2rem)] tw-max-w-xs'>\n {filterTags.map((tag) => (\n <div\n key={tag.id}\n className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mr-2 tw-mb-2'\n style={{ backgroundColor: tag.color }}\n >\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600'\n onClick={() => removeFilterTag(tag.name)}\n >\n ✕\n </label>\n </div>\n <b>#{decodeTag(tag.name)}</b>\n </div>\n ))}\n </div>\n )\n}\n","export const urlRegex =\n // eslint-disable-next-line no-useless-escape, security/detect-unsafe-regex\n /(^| )(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,10})?(\\/.*)?$/gm\nexport const mailRegex = /(?<![[(])([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6})(?![\\])])/gi\n\nexport function fixUrls(message: string): string {\n message = message.replace(urlRegex, function (url) {\n let hyperlink = url.replace(' ', '')\n\n if (!hyperlink.match('^https?://')) {\n hyperlink = 'https://' + hyperlink\n }\n return hyperlink\n })\n\n return message\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { memo } from 'react'\nimport Markdown from 'react-markdown'\nimport remarkBreaks from 'remark-breaks'\n\nimport { useAddFilterTag } from '#components/Map/hooks/useFilter'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { Item } from '#src/types'\nimport { decodeTag } from '#utils/FormatTags'\nimport { getValue } from '#utils/GetValue'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { fixUrls, mailRegex } from '#utils/ReplaceURLs'\n\nexport const TextView = ({\n item,\n truncate = false,\n itemTextField,\n rawText,\n}: {\n item?: Item\n truncate?: boolean\n itemTextField?: string\n rawText?: string\n}) => {\n const tags = useTags()\n const addFilterTag = useAddFilterTag()\n\n let text = ''\n let replacedText = ''\n\n if (rawText) {\n text = replacedText = rawText\n } else if (itemTextField && item) {\n text = getValue(item, itemTextField)\n } else {\n text = item?.layer?.itemTextField && item ? getValue(item, item.layer.itemTextField) : ''\n }\n\n if (item && text && truncate) text = truncateText(removeMarkdownKeepLinksAndParagraphs(text), 100)\n\n if (item && text) replacedText = fixUrls(text)\n\n if (replacedText) {\n replacedText = replacedText.replace(/(?<!\\]?\\()https?:\\/\\/[^\\s)]+(?!\\))/g, (url) => {\n let shortUrl = url\n\n if (url.match('^https://')) {\n shortUrl = url.split('https://')[1]\n }\n\n if (url.match('^http://')) {\n shortUrl = url.split('http://')[1]\n }\n\n return `[${shortUrl}](${url})`\n })\n }\n\n if (replacedText) {\n replacedText = replacedText.replace(mailRegex, (url) => {\n return `[${url}](mailto:${url})`\n })\n }\n\n if (replacedText) {\n replacedText = replacedText.replace(hashTagRegex, (match) => {\n return `[${match}](${match})`\n })\n }\n\n // eslint-disable-next-line react/prop-types\n const CustomH1 = ({ children }) => <h1 className='tw-text-xl tw-font-bold'>{children}</h1>\n // eslint-disable-next-line react/prop-types\n const CustomH2 = ({ children }) => <h2 className='tw-text-lg tw-font-bold'>{children}</h2>\n // eslint-disable-next-line react/prop-types\n const CustomH3 = ({ children }) => <h3 className='tw-text-base tw-font-bold'>{children}</h3>\n // eslint-disable-next-line react/prop-types\n const CustomH4 = ({ children }) => <h4 className='tw-text-base tw-font-bold'>{children}</h4>\n // eslint-disable-next-line react/prop-types\n const CustomH5 = ({ children }) => <h5 className='tw-text-sm tw-font-bold'>{children}</h5>\n // eslint-disable-next-line react/prop-types\n const CustomH6 = ({ children }) => <h6 className='tw-text-sm tw-font-bold'>{children}</h6>\n // eslint-disable-next-line react/prop-types\n const CustomParagraph = ({ children }) => <p className='!tw-my-2'>{children}</p>\n // eslint-disable-next-line react/prop-types\n const CustomUnorderdList = ({ children }) => (\n <ul className='tw-list-disc tw-list-inside'>{children}</ul>\n )\n // eslint-disable-next-line react/prop-types\n const CustomOrderdList = ({ children }) => (\n <ol className='tw-list-decimal tw-list-inside'>{children}</ol>\n )\n // eslint-disable-next-line react/prop-types\n const CustomHorizontalRow = ({ children }) => <hr className='tw-border-current'>{children}</hr>\n // eslint-disable-next-line react/prop-types\n const CustomImage = ({ alt, src, title }) => (\n <img className='tw-max-w-full tw-rounded tw-shadow' src={src} alt={alt} title={title} />\n )\n // eslint-disable-next-line react/prop-types\n const CustomExternalLink = ({ href, children }) => (\n <a className='tw-font-bold tw-underline' href={href} target='_blank' rel='noreferrer'>\n {' '}\n {children}\n </a>\n )\n /* eslint-disable react/prop-types */\n const CustomHashTagLink = ({ children, tag, item }) => {\n return (\n <a\n style={{ color: tag ? tag.color : '#faa', fontWeight: 'bold', cursor: 'pointer' }}\n key={tag ? tag.name + item.id : item.id}\n onClick={(e) => {\n e.stopPropagation()\n addFilterTag(tag)\n }}\n >\n {decodeTag(children)}\n </a>\n )\n }\n /* eslint-enable react/prop-types */\n\n // eslint-disable-next-line react/display-name\n const MemoizedVideoEmbed = memo(({ url }: { url: string }) => (\n <iframe\n className='tw-w-full'\n src={url}\n allow='fullscreen; picture-in-picture'\n allowFullScreen\n />\n ))\n\n return (\n <Markdown\n className={'tw-text-map tw-leading-map tw-text-sm'}\n remarkPlugins={[remarkBreaks]}\n components={{\n p: CustomParagraph,\n a: ({ href, children }) => {\n // eslint-disable-next-line react/prop-types\n const isYouTubeVideo = href?.startsWith('https://www.youtube.com/watch?v=')\n // eslint-disable-next-line react/prop-types\n const isRumbleVideo = href?.startsWith('https://rumble.com/embed/')\n\n if (isYouTubeVideo) {\n // eslint-disable-next-line react/prop-types\n const videoId = href?.split('v=')[1].split('&')[0]\n const youtubeEmbedUrl = `https://www.youtube-nocookie.com/embed/${videoId}`\n\n return <MemoizedVideoEmbed url={youtubeEmbedUrl}></MemoizedVideoEmbed>\n }\n if (isRumbleVideo) {\n return <MemoizedVideoEmbed url={href!}></MemoizedVideoEmbed>\n }\n // eslint-disable-next-line react/prop-types\n if (href?.startsWith('#')) {\n const tag = tags.find(\n (t) => t.name.toLowerCase() === decodeURI(href).slice(1).toLowerCase(),\n )\n return (\n <CustomHashTagLink tag={tag} item={item}>\n {children}\n </CustomHashTagLink>\n )\n } else {\n return <CustomExternalLink href={href}>{children}</CustomExternalLink>\n }\n },\n ul: CustomUnorderdList,\n ol: CustomOrderdList,\n img: CustomImage,\n hr: CustomHorizontalRow,\n h1: CustomH1,\n h2: CustomH2,\n h3: CustomH3,\n h4: CustomH4,\n h5: CustomH5,\n h6: CustomH6,\n }}\n >\n {replacedText}\n </Markdown>\n )\n}\n\nfunction removeMarkdownKeepLinksAndParagraphs(text) {\n // Remove Markdown syntax using regular expressions but keep links and paragraphs\n return text\n .replace(/!\\[.*?\\]\\(.*?\\)/g, '') // Remove images\n .replace(/(`{1,3})(.*?)\\1/g, '$2') // Remove inline code\n .replace(/(\\*{1,2}|_{1,2})(.*?)\\1/g, '$2') // Remove bold and italic\n .replace(/(#+)\\s+(.*)/g, '$2') // Remove headers\n .replace(/>\\s+(.*)/g, '$1') // Remove blockquotes\n .replace(/^\\s*\\n/gm, '\\n') // Preserve empty lines\n .replace(/(\\r\\n|\\n|\\r)/gm, '\\n') // Preserve line breaks\n}\n\nfunction truncateText(text, limit) {\n if (text.length <= limit) {\n return text\n }\n\n let truncated = ''\n let length = 0\n\n // Split the text by paragraphs\n const paragraphs = text.split('\\n')\n\n for (const paragraph of paragraphs) {\n if (length + paragraph.length > limit) {\n truncated += paragraph.slice(0, limit - length) + '...'\n break\n } else {\n truncated += paragraph + '\\n'\n length += paragraph.length\n }\n }\n\n return truncated.trim()\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\nexport const SelectPosition = ({ setSelectNewItemPosition }: { setSelectNewItemPosition }) => {\n return (\n <div className='tw-animate-pulseGrow tw-button tw-z-1000 tw-absolute tw-right-5 tw-top-4 tw-drop-shadow-md'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => {\n setSelectNewItemPosition(null)\n }}\n >\n <p className='tw-text-center '>✕</p>\n </label>\n <div className='tw-alert tw-bg-base-100 tw-text-base-content'>\n <div>\n <span className='tw-text-lg'>Select position on the map!</span>\n </div>\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { LatLng } from 'leaflet'\nimport {\n Children,\n cloneElement,\n createRef,\n isValidElement,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport { TileLayer, MapContainer, useMapEvents, GeoJSON } from 'react-leaflet'\n// eslint-disable-next-line import/no-unassigned-import\nimport 'leaflet/dist/leaflet.css'\nimport MarkerClusterGroup from 'react-leaflet-cluster'\nimport { Outlet } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { ItemFormPopupProps, UtopiaMapProps } from '#src/types'\n\n// eslint-disable-next-line import/no-unassigned-import\nimport './UtopiaMap.css'\n\nimport { useClusterRef, useSetClusterRef } from './hooks/useClusterRef'\nimport { useAddVisibleLayer } from './hooks/useFilter'\nimport { useLayers } from './hooks/useLayers'\nimport {\n useSelectPosition,\n useSetMapClicked,\n useSetSelectPosition,\n} from './hooks/useSelectPosition'\nimport AddButton from './Subcomponents/AddButton'\nimport { Control } from './Subcomponents/Controls/Control'\nimport { FilterControl } from './Subcomponents/Controls/FilterControl'\nimport { GratitudeControl } from './Subcomponents/Controls/GratitudeControl'\nimport { LayerControl } from './Subcomponents/Controls/LayerControl'\nimport { SearchControl } from './Subcomponents/Controls/SearchControl'\nimport { TagsControl } from './Subcomponents/Controls/TagsControl'\nimport { TextView } from './Subcomponents/ItemPopupComponents/TextView'\nimport { SelectPosition } from './Subcomponents/SelectPosition'\n\nimport type { Feature, Geometry as GeoJSONGeometry } from 'geojson'\n\nconst mapDivRef = createRef()\n\nexport function UtopiaMapInner({\n height = '500px',\n width = '100%',\n center = [50.6, 9.5],\n zoom = 10,\n children,\n geo,\n showFilterControl = false,\n showGratitudeControl = false,\n showLayerControl = true,\n infoText,\n}: UtopiaMapProps) {\n // Hooks that rely on contexts, called after ContextWrapper is provided\n const selectNewItemPosition = useSelectPosition()\n const setSelectNewItemPosition = useSetSelectPosition()\n const setClusterRef = useSetClusterRef()\n const clusterRef = useClusterRef()\n const setMapClicked = useSetMapClicked()\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null)\n\n const layers = useLayers()\n const addVisibleLayer = useAddVisibleLayer()\n\n useEffect(() => {\n layers.forEach((layer) => addVisibleLayer(layer))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [layers])\n\n const init = useRef(false)\n useEffect(() => {\n if (!init.current) {\n infoText &&\n setTimeout(() => {\n toast(<TextView rawText={infoText} />, { autoClose: false })\n }, 4000)\n init.current = true\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n function MapEventListener() {\n useMapEvents({\n click: (e) => {\n resetMetaTags()\n // eslint-disable-next-line no-console\n console.log(e.latlng.lat + ',' + e.latlng.lng)\n if (selectNewItemPosition) {\n setMapClicked({ position: e.latlng, setItemFormPopup })\n }\n },\n moveend: () => {},\n })\n return null\n }\n\n const resetMetaTags = () => {\n const params = new URLSearchParams(window.location.search)\n if (!window.location.pathname.includes('/item/')) {\n window.history.pushState({}, '', '/' + `${params.toString() !== '' ? `?${params}` : ''}`)\n }\n document.title = document.title.split('-')[0]\n document.querySelector('meta[property=\"og:title\"]')?.setAttribute('content', document.title)\n document\n .querySelector('meta[property=\"og:description\"]')\n ?.setAttribute(\n 'content',\n `${document.querySelector('meta[name=\"description\"]')?.getAttribute('content')}`,\n )\n }\n\n const onEachFeature = (feature: Feature<GeoJSONGeometry, any>, layer: L.Layer) => {\n if (feature.properties) {\n layer.bindPopup(feature.properties.name)\n }\n }\n\n return (\n <div\n className={`tw-h-full ${selectNewItemPosition != null ? 'crosshair-cursor-enabled' : undefined}`}\n >\n <MapContainer\n ref={mapDivRef}\n style={{ height, width }}\n center={new LatLng(center[0], center[1])}\n zoom={zoom}\n zoomControl={false}\n maxZoom={19}\n >\n <Outlet />\n <Control position='topLeft' zIndex='1000' absolute>\n <SearchControl />\n <TagsControl />\n </Control>\n <Control position='bottomLeft' zIndex='999' absolute>\n {showFilterControl && <FilterControl />}\n {showLayerControl && <LayerControl />}\n {showGratitudeControl && <GratitudeControl />}\n </Control>\n <TileLayer\n maxZoom={19}\n attribution='&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\n url='https://tile.osmand.net/hd/{z}/{x}/{y}.png'\n />\n <MarkerClusterGroup\n ref={(r) => setClusterRef(r)}\n showCoverageOnHover\n chunkedLoading\n maxClusterRadius={50}\n removeOutsideVisibleBounds={false}\n >\n {Children.toArray(children).map((child) =>\n isValidElement<{\n setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps>>\n itemFormPopup: ItemFormPopupProps | null\n clusterRef: React.MutableRefObject<undefined>\n }>(child)\n ? cloneElement(child, { setItemFormPopup, itemFormPopup, clusterRef })\n : child,\n )}\n </MarkerClusterGroup>\n {geo && (\n <GeoJSON\n data={geo}\n onEachFeature={onEachFeature}\n eventHandlers={{\n click: (e) => {\n if (selectNewItemPosition) {\n e.layer.closePopup()\n setMapClicked({ position: e.latlng, setItemFormPopup })\n }\n },\n }}\n />\n )}\n <MapEventListener />\n </MapContainer>\n <AddButton triggerAction={setSelectNewItemPosition} />\n {selectNewItemPosition != null && (\n <SelectPosition setSelectNewItemPosition={setSelectNewItemPosition} />\n )}\n </div>\n )\n}\n","import { ContextWrapper } from '#components/AppShell/ContextWrapper'\nimport { UtopiaMapProps } from '#src/types'\n\nimport { UtopiaMapInner } from './UtopiaMapInner'\n// eslint-disable-next-line import/no-unassigned-import\nimport 'react-toastify/dist/ReactToastify.css'\n\nfunction UtopiaMap(props: UtopiaMapProps) {\n return (\n <ContextWrapper>\n <UtopiaMapInner {...props} />\n </ContextWrapper>\n )\n}\n\nexport { UtopiaMap }\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nconst goldenRatioConjugate = 0.618033988749895\n\nexport const randomColor = () => {\n return hsvToHex((Math.random() + goldenRatioConjugate) % 1, 0.8, 0.7)\n}\n\nfunction hsvToHex(h: number, s: number, v: number) {\n let r, g, b\n const i = Math.floor(h * 6)\n const f = h * 6 - i\n const p = v * (1 - s)\n const q = v * (1 - f * s)\n const t = v * (1 - (1 - f) * s)\n\n switch (i % 6) {\n case 0:\n r = v\n g = t\n b = p\n break\n case 1:\n r = q\n g = v\n b = p\n break\n case 2:\n r = p\n g = v\n b = t\n break\n case 3:\n r = p\n g = q\n b = v\n break\n case 4:\n r = t\n g = p\n b = v\n break\n case 5:\n r = v\n g = p\n b = q\n break\n }\n\n return rgbToHex(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255))\n}\n\nconst rgbToHex = (r, g, b) =>\n '#' +\n [r, g, b]\n .map((x) => {\n const hex = x.toString(16)\n return hex.length === 1 ? `0${hex}` : hex\n })\n .join('')\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/consistent-indexed-object-style */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport { useEffect, useRef, useState } from 'react'\nimport Tribute from 'tributejs'\n\nimport { useTags } from '#components/Map/hooks/useTags'\n\ntype TextAreaProps = {\n labelTitle?: string\n labelStyle?: string\n containerStyle?: string\n dataField?: string\n inputStyle?: string\n defaultValue: string\n placeholder?: string\n updateFormValue?: (value: string) => void\n}\n\ninterface KeyValue {\n [key: string]: string\n}\n\nexport function TextAreaInput({\n labelTitle,\n dataField,\n labelStyle,\n containerStyle,\n inputStyle,\n defaultValue,\n placeholder,\n updateFormValue,\n}: TextAreaProps) {\n const ref = useRef<HTMLTextAreaElement>(null)\n const [inputValue, setInputValue] = useState<string>(defaultValue)\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const tags = useTags()\n\n const values: KeyValue[] = []\n\n tags.forEach((tag) => {\n values.push({ key: tag.name, value: tag.name, color: tag.color })\n })\n\n const tribute = new Tribute({\n containerClass: 'tw-z-3000 tw-bg-base-100 tw-p-2 tw-rounded-lg tw-shadow',\n selectClass: 'tw-font-bold',\n trigger: '#',\n values,\n menuShowMinLength: 3,\n noMatchTemplate: () => {\n return ''\n },\n menuItemTemplate: function (item) {\n return `<span style=\"color: ${item.original.color}; padding: 5px; border-radius: 3px;\">#${item.string}</span>`\n },\n })\n\n useEffect(() => {\n if (!init.current) {\n if (ref.current) {\n tribute.attach(ref.current)\n }\n init.current = true\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref])\n\n useEffect(() => {\n setInputValue(defaultValue)\n }, [defaultValue])\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const newValue = e.target.value\n setInputValue(newValue)\n if (updateFormValue) {\n updateFormValue(newValue)\n }\n }\n\n return (\n <div className={`tw-form-control tw-w-full ${containerStyle || ''}`}>\n {labelTitle ? (\n <label className='tw-label'>\n <span className={`tw-label-text tw-text-base-content ${labelStyle}`}>{labelTitle}</span>\n </label>\n ) : null}\n <textarea\n required\n ref={ref}\n value={inputValue}\n name={dataField}\n className={`tw-textarea tw-textarea-bordered tw-w-full tw-leading-5 ${inputStyle || ''}`}\n placeholder={placeholder || ''}\n onChange={handleChange}\n ></textarea>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\nimport { useEffect, useState } from 'react'\n\ntype InputTextProps = {\n labelTitle?: string\n labelStyle?: string\n type?: string\n dataField?: string\n containerStyle?: string\n inputStyle?: string\n defaultValue?: string\n placeholder?: string\n autocomplete?: string\n updateFormValue?: (value: string) => void\n}\n\nexport function TextInput({\n labelTitle,\n labelStyle,\n type,\n dataField,\n containerStyle,\n inputStyle,\n defaultValue,\n placeholder,\n autocomplete,\n updateFormValue,\n}: InputTextProps) {\n const [inputValue, setInputValue] = useState<string>(defaultValue || '')\n\n useEffect(() => {\n setInputValue(defaultValue || '')\n }, [defaultValue])\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value\n setInputValue(newValue)\n if (updateFormValue) {\n updateFormValue(newValue)\n }\n }\n\n return (\n <div className={`tw-form-control ${containerStyle}`}>\n {labelTitle ? (\n <label className='tw-label'>\n <span className={`tw-label-text tw-text-base-content ${labelStyle}`}>{labelTitle}</span>\n </label>\n ) : null}\n <input\n required\n type={type || 'text'}\n name={dataField}\n value={inputValue}\n placeholder={placeholder || ''}\n autoComplete={autocomplete}\n onChange={handleChange}\n className={`tw-input tw-input-bordered tw-w-full ${inputStyle || ''}`}\n />\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { Children, cloneElement, isValidElement, useEffect, useRef, useState } from 'react'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth/useAuth'\nimport { TextAreaInput } from '#components/Input/TextAreaInput'\nimport { TextInput } from '#components/Input/TextInput'\nimport { useResetFilterTags } from '#components/Map/hooks/useFilter'\nimport { useAddItem, useItems, useRemoveItem, useUpdateItem } from '#components/Map/hooks/useItems'\nimport { useAddTag, useTags } from '#components/Map/hooks/useTags'\nimport { Geometry, Item, ItemFormPopupProps } from '#src/types'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { randomColor } from '#utils/RandomColor'\n\nexport function ItemFormPopup(props: ItemFormPopupProps) {\n const [spinner, setSpinner] = useState(false)\n\n const [popupTitle, setPopupTitle] = useState<string>('')\n\n const formRef = useRef<HTMLFormElement>(null)\n\n const map = useMap()\n\n const addItem = useAddItem()\n const updateItem = useUpdateItem()\n const items = useItems()\n\n const removeItem = useRemoveItem()\n\n const tags = useTags()\n const addTag = useAddTag()\n\n const resetFilterTags = useResetFilterTags()\n\n const { user } = useAuth()\n\n const handleSubmit = async (evt: any) => {\n const formItem: Item = {} as Item\n Array.from(evt.target).forEach((input: HTMLInputElement) => {\n if (input.name) {\n formItem[input.name] = input.value\n }\n })\n formItem.position = new Geometry(props.position.lng, props.position.lat)\n evt.preventDefault()\n setSpinner(true)\n\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\n })\n\n if (props.item) {\n let success = false\n try {\n await props.layer.api?.updateItem!({ ...formItem, id: props.item.id })\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n // eslint-disable-next-line no-console\n console.log(props.item)\n\n updateItem({ ...props.item, ...formItem })\n toast.success('Item updated')\n }\n setSpinner(false)\n map.closePopup()\n } else {\n const item = items.find(\n (i) =>\n i.user_created?.id === user?.id && i.layer?.itemType.name === props.layer.itemType.name,\n )\n\n const uuid = crypto.randomUUID()\n let success = false\n try {\n props.layer.onlyOnePerOwner &&\n item &&\n (await props.layer.api?.updateItem!({ ...formItem, id: item.id }))\n ;(!props.layer.onlyOnePerOwner || !item) &&\n (await props.layer.api?.createItem!({\n ...formItem,\n id: uuid,\n name: formItem.name ? formItem.name : user?.first_name,\n }))\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n if (props.layer.onlyOnePerOwner && item) updateItem({ ...item, ...formItem })\n if (!props.layer.onlyOnePerOwner || !item) {\n addItem({\n ...formItem,\n name: formItem.name ? formItem.name : user?.first_name,\n user_created: user,\n type: props.layer.itemType,\n id: uuid,\n layer: props.layer,\n public_edit: !user,\n })\n }\n toast.success('New item created')\n resetFilterTags()\n }\n setSpinner(false)\n map.closePopup()\n }\n props.setItemFormPopup!(null)\n }\n\n const resetPopup = () => {\n if (formRef.current) {\n formRef.current.reset()\n }\n }\n\n useEffect(() => {\n resetPopup()\n }, [props.position])\n\n return (\n <LeafletPopup\n minWidth={275}\n maxWidth={275}\n autoPanPadding={[20, 80]}\n eventHandlers={{\n remove: () => {\n setTimeout(function () {\n resetPopup()\n }, 100)\n },\n }}\n position={props.position}\n >\n <form ref={formRef} onReset={resetPopup} autoComplete='off' onSubmit={(e) => handleSubmit(e)}>\n {props.item ? (\n <div className='tw-h-3'></div>\n ) : (\n <div className='tw-flex tw-justify-center'>\n <b className='tw-text-xl tw-text-center tw-font-bold'>{props.layer.menuText}</b>\n </div>\n )}\n\n {props.children ? (\n Children.toArray(props.children).map((child) =>\n isValidElement<{\n item: Item\n test: string\n setPopupTitle: React.Dispatch<React.SetStateAction<string>>\n }>(child)\n ? cloneElement(child, {\n item: props.item,\n key: props.position.toString(),\n setPopupTitle,\n })\n : '',\n )\n ) : (\n <>\n <TextInput\n type='text'\n placeholder='Name'\n dataField='name'\n defaultValue={props.item ? props.item.name : ''}\n inputStyle=''\n />\n <TextAreaInput\n key={props.position.toString()}\n placeholder='Text'\n dataField='text'\n defaultValue={props.item ? props.item.text : ''}\n inputStyle='tw-h-40 tw-mt-5'\n />\n </>\n )}\n\n <div className='tw-flex tw-justify-center'>\n <button\n className={\n spinner\n ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'\n : 'tw-btn tw-mt-5 tw-place-self-center'\n }\n type='submit'\n >\n {spinner ? <span className='tw-loading tw-loading-spinner'></span> : 'Save'}\n </button>\n </div>\n </form>\n </LeafletPopup>\n )\n}\n","// in miliseconds\nconst units = [\n { label: 'year', seconds: 31536000 },\n { label: 'month', seconds: 2592000 },\n { label: 'week', seconds: 604800 },\n { label: 'day', seconds: 86400 },\n { label: 'hour', seconds: 3600 },\n { label: 'minute', seconds: 60 },\n { label: 'second', seconds: 1 },\n]\n\nexport const timeAgo = (date: string | number | Date) => {\n const time = Math.floor((new Date().valueOf() - new Date(date).valueOf()) / 1000)\n const { interval, unit } = calculateTimeDifference(time)\n const suffix = interval === 1 ? '' : 's'\n return `${interval} ${unit}${suffix} ago`\n}\n\nconst calculateTimeDifference = (time: number) => {\n for (const { label, seconds } of units) {\n const interval = Math.floor(time / seconds)\n if (interval >= 1) {\n return {\n interval,\n unit: label,\n }\n }\n }\n return {\n interval: 0,\n unit: '',\n }\n}\n","import { MouseEvent, useEffect, useRef } from 'react'\n\nconst isClickInsideRectangle = (e: MouseEvent, element: HTMLElement) => {\n const r = element.getBoundingClientRect()\n\n return e.clientX > r.left && e.clientX < r.right && e.clientY > r.top && e.clientY < r.bottom\n}\n\ninterface Props {\n title: string\n isOpened: boolean\n onClose: () => void\n children: React.ReactNode\n showCloseButton?: boolean\n closeOnClickOutside?: boolean\n className?: string\n}\n\nconst DialogModal = ({\n title,\n isOpened,\n onClose,\n children,\n showCloseButton = true,\n closeOnClickOutside = true,\n className,\n}: Props) => {\n const ref = useRef<HTMLDialogElement>(null)\n\n useEffect(() => {\n if (isOpened) {\n ref.current?.showModal()\n ref.current?.classList.remove('tw-hidden')\n document.body.classList.add('modal-open') // prevent bg scroll\n } else {\n ref.current?.close()\n ref.current?.classList.add('tw-hidden')\n document.body.classList.remove('modal-open')\n }\n }, [isOpened])\n\n if (isOpened) {\n return (\n <dialog\n className={`${className ?? ''} tw-card tw-shadow-xl tw-absolute tw-right-0 tw-top-0 tw-bottom-0 tw-left-0 tw-m-auto tw-transition-opacity tw-duration-300 tw-p-4 tw-max-w-xl tw-bg-base-100`}\n ref={ref}\n // eslint-disable-next-line react/no-unknown-property\n onCancel={onClose}\n onClick={(e) =>\n ref.current && !isClickInsideRectangle(e, ref.current) && closeOnClickOutside && onClose()\n }\n >\n <div className='tw-card-body tw-p-2'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>{title}</h2>\n\n {children}\n {showCloseButton && (\n <button\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2'\n onClick={onClose}\n >\n ✕\n </button>\n )}\n </div>\n </dialog>\n )\n } else return <></>\n}\n\nexport default DialogModal\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/require-await */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport DialogModal from '#components/Templates/DialogModal'\nimport { Item, ItemsApi } from '#src/types'\nimport { getValue } from '#utils/GetValue'\n\nexport function HeaderView({\n item,\n api,\n editCallback,\n deleteCallback,\n setPositionCallback,\n itemNameField,\n itemSubnameField,\n itemAvatarField,\n loading,\n hideMenu = false,\n big = false,\n truncateSubname = true,\n hideSubname = false,\n showAddress = false,\n}: {\n item: Item\n api?: ItemsApi<any>\n editCallback?: any\n deleteCallback?: any\n setPositionCallback?: any\n itemNameField?: string\n itemAvatarField?: string\n itemSubnameField?: string\n loading?: boolean\n hideMenu?: boolean\n big?: boolean\n hideSubname?: boolean\n truncateSubname?: boolean\n showAddress?: boolean\n}) {\n const [modalOpen, setModalOpen] = useState<boolean>(false)\n\n const hasUserPermission = useHasUserPermission()\n const navigate = useNavigate()\n const appState = useAppState()\n\n const avatar =\n itemAvatarField && getValue(item, itemAvatarField)\n ? appState.assetsApi.url +\n getValue(item, itemAvatarField) +\n `${big ? '?width=160&heigth=160' : '?width=80&heigth=80'}`\n : item.layer?.itemAvatarField &&\n item &&\n getValue(item, item.layer?.itemAvatarField) &&\n appState.assetsApi.url +\n getValue(item, item.layer?.itemAvatarField) +\n `${big ? '?width=160&heigth=160' : '?width=80&heigth=80'}`\n const title = itemNameField\n ? getValue(item, itemNameField)\n : item.layer?.itemNameField && item && getValue(item, item.layer.itemNameField)\n const subtitle = itemSubnameField\n ? getValue(item, itemSubnameField)\n : item.layer?.itemSubnameField && item && getValue(item, item.layer.itemSubnameField)\n\n const [address] = useState<string>('')\n\n const params = new URLSearchParams(window.location.search)\n\n const openDeleteModal = async (event: React.MouseEvent<HTMLElement>) => {\n setModalOpen(true)\n event.stopPropagation()\n }\n\n return (\n <>\n <div className='tw-flex tw-flex-row'>\n <div className={'tw-grow tw-max-w-[calc(100%-60px)] }'}>\n <div className='flex items-center'>\n {avatar && (\n <div className='tw-avatar'>\n <div\n className={`${big ? 'tw-w-20' : 'tw-w-10'} tw-inline tw-items-center tw-justify-center overflow-hidden`}\n >\n <img\n className={'tw-w-full tw-h-full tw-object-cover tw-rounded-full'}\n src={avatar}\n alt={item.name + ' logo'}\n />\n </div>\n </div>\n )}\n <div className={`${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`}>\n <div\n className={`${big ? 'xl:tw-text-3xl tw-text-2xl' : 'tw-text-xl'} tw-font-semibold tw-truncate`}\n >\n {title}\n </div>\n {showAddress && address && !hideSubname && (\n <div className={`tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`}>\n {address}\n </div>\n )}\n {subtitle && !hideSubname && (\n <div className={`tw-text-xs tw-text-gray-500 ${truncateSubname && 'tw-truncate'}`}>\n {subtitle}\n </div>\n )}\n </div>\n </div>\n </div>\n <div onClick={(e) => e.stopPropagation()} className={`${big ? 'tw-mt-5' : 'tw-mt-1'}`}>\n {(api?.deleteItem || item.layer?.api?.updateItem) &&\n (hasUserPermission(api?.collectionName!, 'delete', item) ||\n hasUserPermission(api?.collectionName!, 'update', item)) &&\n !hideMenu && (\n <div className='tw-dropdown tw-dropdown-bottom'>\n <label\n tabIndex={0}\n className='tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path d='M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z' />\n </svg>\n </label>\n <ul\n tabIndex={0}\n className='tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000'\n >\n {api?.updateItem &&\n hasUserPermission(api.collectionName!, 'update', item) &&\n editCallback && (\n <li>\n <a\n className='!tw-text-base-content tw-cursor-pointer'\n onClick={(e) =>\n item.layer?.customEditLink\n ? navigate(\n `${item.layer.customEditLink}${item.layer.customEditParameter ? `/${getValue(item, item.layer.customEditParameter)}${params && '?' + params}` : ''} `,\n )\n : editCallback(e)\n }\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path d='M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z' />\n </svg>\n </a>\n </li>\n )}\n {api?.updateItem &&\n hasUserPermission(api.collectionName!, 'update', item) &&\n setPositionCallback && (\n <li>\n <a\n className='!tw-text-base-content tw-cursor-pointer'\n onClick={setPositionCallback}\n >\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n className='tw-w-5 tw-h-5'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M256 0c17.7 0 32 14.3 32 32V42.4c93.7 13.9 167.7 88 181.6 181.6H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H469.6c-13.9 93.7-88 167.7-181.6 181.6V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V469.6C130.3 455.7 56.3 381.7 42.4 288H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H42.4C56.3 130.3 130.3 56.3 224 42.4V32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6V384c0-17.7 14.3-32 32-32s32 14.3 32 32v20.6c58.3-12.5 104.1-58.4 116.6-116.6H384c-17.7 0-32-14.3-32-32s14.3-32 32-32h20.6C392.1 165.7 346.3 119.9 288 107.4V128c0 17.7-14.3 32-32 32s-32-14.3-32-32V107.4C165.7 119.9 119.9 165.7 107.4 224H128c17.7 0 32 14.3 32 32s-14.3 32-32 32H107.4zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'></path>\n </svg>\n </a>\n </li>\n )}\n {api?.deleteItem &&\n hasUserPermission(api.collectionName!, 'delete', item) &&\n deleteCallback && (\n <li>\n <a className='tw-cursor-pointer !tw-text-error' onClick={openDeleteModal}>\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-sm'></span>\n ) : (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path\n fillRule='evenodd'\n d='M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z'\n clipRule='evenodd'\n />\n </svg>\n )}\n </a>\n </li>\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n <DialogModal\n isOpened={modalOpen}\n title='Are you sure?'\n showCloseButton={false}\n onClose={() => setModalOpen(false)}\n >\n <div onClick={(e) => e.stopPropagation()}>\n <span>\n Do you want to delete <b>{item.name}</b>?\n </span>\n <div className='tw-grid'>\n <div className='tw-flex tw-justify-between'>\n <label\n className='tw-btn tw-mt-4 tw-btn-error'\n onClick={(e) => {\n deleteCallback(e)\n setModalOpen(false)\n }}\n >\n Yes\n </label>\n <label className='tw-btn tw-mt-4' onClick={() => setModalOpen(false)}>\n No\n </label>\n </div>\n </div>\n </div>\n </DialogModal>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { LatLng } from 'leaflet'\nimport { Children, cloneElement, forwardRef, isValidElement, useState } from 'react'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useRemoveItem, useUpdateItem } from '#components/Map/hooks/useItems'\nimport { useSetSelectPosition } from '#components/Map/hooks/useSelectPosition'\nimport { Item, ItemFormPopupProps } from '#src/types'\nimport { timeAgo } from '#utils/TimeAgo'\n\nimport { HeaderView } from './ItemPopupComponents/HeaderView'\nimport { TextView } from './ItemPopupComponents/TextView'\n\nexport interface ItemViewPopupProps {\n item: Item\n children?: React.ReactNode\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\n// eslint-disable-next-line react/display-name\nexport const ItemViewPopup = forwardRef((props: ItemViewPopupProps, ref: any) => {\n const map = useMap()\n const [loading, setLoading] = useState<boolean>(false)\n const removeItem = useRemoveItem()\n const updadateItem = useUpdateItem()\n const navigate = useNavigate()\n const setSelectPosition = useSetSelectPosition()\n\n const [infoExpanded, setInfoExpanded] = useState<boolean>(false)\n\n const handleEdit = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation()\n map.closePopup()\n props.setItemFormPopup &&\n props.setItemFormPopup({\n position: new LatLng(\n props.item.position?.coordinates[1]!,\n props.item.position?.coordinates[0]!,\n ),\n layer: props.item.layer!,\n item: props.item,\n setItemFormPopup: props.setItemFormPopup,\n })\n }\n\n const handleDelete = async (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation()\n setLoading(true)\n let success = false\n try {\n !props.item.layer?.onlyOnePerOwner &&\n (await props.item.layer?.api?.deleteItem!(props.item.id))\n props.item.layer?.onlyOnePerOwner &&\n (await props.item.layer.api?.updateItem!({ id: props.item.id, position: null }))\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n !props.item.layer?.onlyOnePerOwner && removeItem(props.item)\n props.item.layer?.onlyOnePerOwner && updadateItem({ ...props.item, position: undefined })\n toast.success('Item deleted')\n }\n setLoading(false)\n map.closePopup()\n const params = new URLSearchParams(window.location.search)\n window.history.pushState({}, '', '/' + `${params ? `?${params}` : ''}`)\n navigate('/')\n }\n\n return (\n <LeafletPopup ref={ref} maxHeight={377} minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}>\n <div className='tw-bg-base-100 tw-text-base-content'>\n <HeaderView\n api={props.item.layer?.api}\n item={props.item}\n editCallback={handleEdit}\n deleteCallback={handleDelete}\n setPositionCallback={() => {\n map.closePopup()\n setSelectPosition(props.item)\n navigate('/')\n }}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n {props.children ? (\n Children.toArray(props.children).map((child) =>\n isValidElement<{ item: Item; test: string }>(child)\n ? cloneElement(child, { item: props.item })\n : '',\n )\n ) : (\n <TextView item={props.item} />\n )}\n </div>\n <div className='tw-flex -tw-mb-1 tw-flex-row tw-mr-2 tw-mt-1'>\n {infoExpanded ? (\n <p\n className={'tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500'}\n >{`${props.item.date_updated && props.item.date_updated !== props.item.date_created ? 'updated' : 'posted'} ${props.item && props.item.user_created && props.item.user_created.first_name ? `by ${props.item.user_created.first_name}` : ''} ${props.item.date_updated ? timeAgo(props.item.date_updated) : timeAgo(props.item.date_created!)}`}</p>\n ) : (\n <p\n className='!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500'\n onClick={() => setInfoExpanded(true)}\n >\n ⓘ\n </p>\n )}\n <div className='tw-grow'></div>\n {\n //* * <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\" className=\"tw-place-self-end tw-w-4 tw-h-4 tw-mb-1 tw-cursor-pointer\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15\" /></svg> */\n }\n </div>\n </div>\n </LeafletPopup>\n )\n})\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { Popup } from 'leaflet'\nimport { Children, isValidElement, useEffect, useState } from 'react'\nimport { Marker, Tooltip, useMap, useMapEvents } from 'react-leaflet'\nimport { useLocation } from 'react-router-dom'\n\nimport { Item, LayerProps, Tag } from '#src/types'\nimport { encodeTag } from '#utils/FormatTags'\nimport { getValue } from '#utils/GetValue'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport MarkerIconFactory from '#utils/MarkerIconFactory'\nimport { randomColor } from '#utils/RandomColor'\n\nimport {\n useFilterTags,\n useIsGroupTypeVisible,\n useIsLayerVisible,\n useVisibleGroupType,\n} from './hooks/useFilter'\nimport { useAllItemsLoaded, useItems, useSetItemsApi, useSetItemsData } from './hooks/useItems'\nimport { useAddMarker, useAddPopup, useLeafletRefs } from './hooks/useLeafletRefs'\nimport { useSelectPosition, useSetMarkerClicked } from './hooks/useSelectPosition'\nimport { useAddTag, useAllTagsLoaded, useGetItemTags, useTags } from './hooks/useTags'\nimport { ItemFormPopup } from './Subcomponents/ItemFormPopup'\nimport { ItemViewPopup } from './Subcomponents/ItemViewPopup'\n\nexport const Layer = ({\n data,\n children,\n name = 'places',\n menuIcon = 'MapPinIcon',\n menuText = 'add new place',\n menuColor = '#2E7D32',\n markerIcon = 'circle-solid',\n markerShape = 'circle',\n markerDefaultColor = '#777',\n markerDefaultColor2 = 'RGBA(35, 31, 32, 0.2)',\n api,\n itemType,\n itemNameField = 'name',\n itemSubnameField,\n itemTextField = 'text',\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemLatitudeField = 'position.coordinates.1',\n itemLongitudeField = 'position.coordinates.0',\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner = false,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed = true,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n}: LayerProps) => {\n const filterTags = useFilterTags()\n\n const items = useItems()\n const setItemsApi = useSetItemsApi()\n const setItemsData = useSetItemsData()\n const getItemTags = useGetItemTags()\n const addMarker = useAddMarker()\n const addPopup = useAddPopup()\n const leafletRefs = useLeafletRefs()\n\n const location = useLocation()\n\n const allTagsLoaded = useAllTagsLoaded()\n const allItemsLoaded = useAllItemsLoaded()\n\n const setMarkerClicked = useSetMarkerClicked()\n const selectPosition = useSelectPosition()\n\n const tags = useTags()\n const addTag = useAddTag()\n const [newTagsToAdd, setNewTagsToAdd] = useState<Tag[]>([])\n const [tagsReady, setTagsReady] = useState<boolean>(false)\n\n const map = useMap()\n\n const isLayerVisible = useIsLayerVisible()\n\n const isGroupTypeVisible = useIsGroupTypeVisible()\n\n const visibleGroupTypes = useVisibleGroupType()\n\n useEffect(() => {\n data &&\n setItemsData({\n data,\n children,\n name,\n menuIcon,\n menuText,\n menuColor,\n markerIcon,\n markerShape,\n markerDefaultColor,\n markerDefaultColor2,\n api,\n itemType,\n itemNameField,\n itemSubnameField,\n itemTextField,\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n })\n api &&\n setItemsApi({\n data,\n children,\n name,\n menuIcon,\n menuText,\n menuColor,\n markerIcon,\n markerShape,\n markerDefaultColor,\n markerDefaultColor2,\n api,\n itemType,\n itemNameField,\n itemSubnameField,\n itemTextField,\n itemAvatarField,\n itemColorField,\n itemOwnerField,\n itemTagsField,\n itemOffersField,\n itemNeedsField,\n onlyOnePerOwner,\n customEditLink,\n customEditParameter,\n // eslint-disable-next-line camelcase\n public_edit_items,\n listed,\n setItemFormPopup,\n itemFormPopup,\n clusterRef,\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, api])\n\n useMapEvents({\n popupopen: (e) => {\n const item = Object.entries(leafletRefs).find((r) => r[1].popup === e.popup)?.[1].item\n if (item?.layer?.name === name && window.location.pathname.split('/')[1] !== item.id) {\n const params = new URLSearchParams(window.location.search)\n if (!location.pathname.includes('/item/')) {\n window.history.pushState(\n {},\n '',\n `/${item.id}` + `${params.toString() !== '' ? `?${params}` : ''}`,\n )\n }\n let title = ''\n if (item.name) title = item.name\n else if (item.layer.itemNameField) title = getValue(item, item.layer.itemNameField)\n document.title = `${document.title.split('-')[0]} - ${title}`\n }\n },\n })\n\n const openPopup = () => {\n if (\n window.location.pathname.split('/').length <= 1 ||\n window.location.pathname.split('/')[1] === ''\n ) {\n map.closePopup()\n } else {\n if (window.location.pathname.split('/')[1]) {\n const id = window.location.pathname.split('/')[1]\n // eslint-disable-next-line security/detect-object-injection\n const ref = leafletRefs[id]\n if (ref?.marker && ref.item.layer?.name === name) {\n ref.marker &&\n clusterRef.hasLayer(ref.marker) &&\n clusterRef?.zoomToShowLayer(ref.marker, () => {\n ref.marker.openPopup()\n })\n let title = ''\n if (ref.item.name) title = ref.item.name\n else if (ref.item.layer.itemNameField)\n title = getValue(ref.item.name, ref.item.layer.itemNameField)\n document.title = `${document.title.split('-')[0]} - ${title}`\n document\n .querySelector('meta[property=\"og:title\"]')\n ?.setAttribute('content', ref.item.name)\n document\n .querySelector('meta[property=\"og:description\"]')\n ?.setAttribute('content', ref.item.text)\n }\n }\n }\n }\n\n useEffect(() => {\n openPopup()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [leafletRefs, location])\n\n useEffect(() => {\n if (tagsReady) {\n const processedTags = {}\n newTagsToAdd.map((newtag) => {\n if (!processedTags[newtag.name]) {\n processedTags[newtag.name] = true\n addTag(newtag)\n }\n return null\n })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [tagsReady])\n\n return (\n <>\n {items &&\n items\n .filter((item) => item.layer?.name === name)\n .filter((item) =>\n filterTags.length === 0\n ? item\n : filterTags.some((tag) =>\n getItemTags(item).some(\n (filterTag) =>\n filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase(),\n ),\n ),\n )\n .filter((item) => item.layer && isLayerVisible(item.layer))\n .filter(\n (item) =>\n (item.group_type && isGroupTypeVisible(item.group_type)) ||\n visibleGroupTypes.length === 0,\n )\n .map((item: Item) => {\n if (getValue(item, itemLongitudeField) && getValue(item, itemLatitudeField)) {\n // eslint-disable-next-line security/detect-object-injection\n if (getValue(item, itemTextField)) item[itemTextField] = getValue(item, itemTextField)\n // eslint-disable-next-line security/detect-object-injection\n else item[itemTextField] = ''\n\n if (item.tags) {\n // eslint-disable-next-line security/detect-object-injection\n item[itemTextField] = item[itemTextField] + '\\n\\n'\n item.tags.map((tag) => {\n // eslint-disable-next-line security/detect-object-injection\n if (!item[itemTextField].includes(`#${encodeTag(tag)}`)) {\n // eslint-disable-next-line security/detect-object-injection\n return (item[itemTextField] = item[itemTextField] + `#${encodeTag(tag)} `)\n }\n // eslint-disable-next-line security/detect-object-injection\n return item[itemTextField]\n })\n }\n\n if (allTagsLoaded && allItemsLoaded) {\n // eslint-disable-next-line security/detect-object-injection\n item[itemTextField].match(hashTagRegex)?.map((tag) => {\n if (\n !tags.find(\n (t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase(),\n ) &&\n !newTagsToAdd.find(\n (t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase(),\n )\n ) {\n const newTag = {\n id: crypto.randomUUID(),\n name: tag.slice(1),\n color: randomColor(),\n }\n setNewTagsToAdd((current) => [...current, newTag])\n }\n return null\n })\n !tagsReady && setTagsReady(true)\n }\n\n const itemTags = getItemTags(item)\n\n const latitude =\n itemLatitudeField && item ? getValue(item, itemLatitudeField) : undefined\n const longitude =\n itemLongitudeField && item ? getValue(item, itemLongitudeField) : undefined\n\n let color1 = markerDefaultColor\n let color2 = markerDefaultColor2\n if (itemColorField && getValue(item, itemColorField) != null)\n color1 = getValue(item, itemColorField)\n else if (itemTags && itemTags[0]) {\n color1 = itemTags[0].color\n }\n if (itemTags && itemTags[0] && itemColorField) color2 = itemTags[0].color\n else if (itemTags && itemTags[1]) {\n color2 = itemTags[1].color\n }\n return (\n <Marker\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].marker === r)) {\n r && addMarker(item, r)\n }\n }}\n eventHandlers={{\n click: () => {\n selectPosition && setMarkerClicked(item)\n },\n }}\n icon={MarkerIconFactory(\n markerShape,\n color1,\n color2,\n item.markerIcon ? item.markerIcon : markerIcon,\n )}\n key={item.id}\n position={[latitude, longitude]}\n >\n {children &&\n Children.toArray(children).some(\n (child) => isValidElement(child) && child.props.__TYPE === 'ItemView',\n ) ? (\n Children.toArray(children).map((child) =>\n isValidElement(child) && child.props.__TYPE === 'ItemView' ? (\n <ItemViewPopup\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup === r)) {\n r && addPopup(item, r as Popup)\n }\n }}\n key={item.id + item.name}\n item={item}\n setItemFormPopup={setItemFormPopup}\n >\n {child}\n </ItemViewPopup>\n ) : (\n ''\n ),\n )\n ) : (\n <>\n <ItemViewPopup\n key={item.id + item.name}\n ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup === r)) {\n r && addPopup(item, r as Popup)\n }\n }}\n item={item}\n setItemFormPopup={setItemFormPopup}\n />\n </>\n )}\n <Tooltip offset={[0, -38]} direction='top'>\n {item.name ? item.name : getValue(item, itemNameField)}\n </Tooltip>\n </Marker>\n )\n } else return null\n })}\n {\n // {children}}\n }\n {itemFormPopup &&\n itemFormPopup.layer.name === name &&\n (children &&\n Children.toArray(children).some(\n (child) => isValidElement(child) && child.props.__TYPE === 'ItemForm',\n ) ? (\n Children.toArray(children).map((child) =>\n isValidElement(child) && child.props.__TYPE === 'ItemForm' ? (\n <ItemFormPopup\n key={setItemFormPopup?.name}\n position={itemFormPopup.position}\n layer={itemFormPopup.layer}\n setItemFormPopup={setItemFormPopup}\n item={itemFormPopup.item}\n >\n {child}\n </ItemFormPopup>\n ) : (\n ''\n ),\n )\n ) : (\n <>\n <ItemFormPopup\n position={itemFormPopup.position}\n layer={itemFormPopup.layer}\n setItemFormPopup={setItemFormPopup}\n item={itemFormPopup.item}\n />\n </>\n ))}\n </>\n )\n}\n","import { useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { ItemsApi, Tag } from '#src/types'\n\nimport { useAddFilterTag, useFilterTags, useResetFilterTags } from './hooks/useFilter'\nimport { useSetTagData, useSetTagApi, useTags } from './hooks/useTags'\n\nexport function Tags({ data, api }: { data?: Tag[]; api?: ItemsApi<Tag> }) {\n const setTagData = useSetTagData()\n const setTagApi = useSetTagApi()\n\n useEffect(() => {\n data && setTagData(data)\n api && setTagApi(api)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [api, data])\n\n const location = useLocation()\n const addFilterTag = useAddFilterTag()\n const resetFilterTags = useResetFilterTags()\n const tags = useTags()\n const filterTags = useFilterTags()\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTags = params.get('tags')\n const decodedTags = urlTags ? decodeURIComponent(urlTags) : ''\n const decodedTagsArray = decodedTags.split(';')\n if (\n decodedTagsArray.some(\n (ut) => !filterTags.find((ft) => ut.toLocaleLowerCase() === ft.name.toLocaleLowerCase()),\n ) ||\n filterTags.some(\n (ft) =>\n !decodedTagsArray.find((ut) => ut.toLocaleLowerCase() === ft.name.toLocaleLowerCase()),\n )\n ) {\n resetFilterTags()\n decodedTagsArray.map((urlTag) => {\n const tag = tags.find((t) => t.name.toLocaleLowerCase() === urlTag.toLocaleLowerCase())\n tag && addFilterTag(tag)\n return null\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location, tags])\n\n return <></>\n}\n","import { useEffect } from 'react'\n\nimport { useAuth } from '#components/Auth'\nimport { ItemsApi, Permission } from '#src/types'\n\nimport { useSetPermissionData, useSetPermissionApi, useSetAdminRole } from './hooks/usePermissions'\n\nexport function Permissions({\n data,\n api,\n adminRole,\n}: {\n data?: Permission[]\n api?: ItemsApi<Permission>\n adminRole?: string\n}) {\n const setPermissionData = useSetPermissionData()\n const setPermissionApi = useSetPermissionApi()\n const setAdminRole = useSetAdminRole()\n const { user } = useAuth()\n\n useEffect(() => {\n adminRole && setAdminRole(adminRole)\n data && setPermissionData(data)\n api && setPermissionApi(api)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [api, data, adminRole, user])\n\n return <></>\n}\n","import { node, string } from 'prop-types'\nimport { Children, cloneElement, isValidElement, useEffect } from 'react'\n\nimport { Item } from '#src/types'\n\nexport const ItemForm = ({\n children,\n item,\n title,\n setPopupTitle,\n}: {\n children?: React.ReactNode\n item?: Item\n title?: string\n setPopupTitle?: React.Dispatch<React.SetStateAction<string>>\n}) => {\n useEffect(() => {\n setPopupTitle && title && setPopupTitle(title)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [title])\n\n return (\n <div>\n {children\n ? Children.toArray(children).map((child) =>\n isValidElement<{ item: Item; test: string }>(child)\n ? cloneElement(child, { item, test: 'test' })\n : '',\n )\n : ''}\n </div>\n )\n}\n\nItemForm.propTypes = {\n children: node,\n __TYPE: string,\n}\n\nItemForm.defaultProps = {\n __TYPE: 'ItemForm',\n}\n","import { node, string } from 'prop-types'\nimport { Children, cloneElement, isValidElement } from 'react'\n\nimport { Item } from '#src/types'\n\nexport const ItemView = ({ children, item }: { children?: React.ReactNode; item?: Item }) => {\n return (\n <div>\n {children\n ? Children.toArray(children).map((child) =>\n isValidElement<{ item: Item }>(child) ? cloneElement(child, { item }) : '',\n )\n : ''}\n </div>\n )\n}\n\nItemView.propTypes = {\n children: node,\n __TYPE: string,\n}\n\nItemView.defaultProps = {\n __TYPE: 'ItemView',\n}\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport InformationCircleIcon from '@heroicons/react/24/outline/InformationCircleIcon'\nimport { useState } from 'react'\n\ntype SelectBoxProps = {\n labelTitle?: string\n labelStyle?: string\n type?: string\n containerStyle?: string\n defaultValue: string\n placeholder?: string\n\n updateFormValue: (value: string) => void\n\n options: { name: string; value: string }[]\n labelDescription?: string\n}\n\nexport function SelectBox(props: SelectBoxProps) {\n const {\n labelTitle,\n labelDescription,\n defaultValue,\n containerStyle,\n placeholder,\n labelStyle,\n options,\n updateFormValue,\n } = props\n\n const [value, setValue] = useState(defaultValue || '')\n\n const updateValue = (newValue: string) => {\n updateFormValue(newValue)\n setValue(newValue)\n }\n\n return (\n <div className={`tw-inline-block ${containerStyle}`}>\n {labelTitle ? (\n <label className={`tw-label ${labelStyle}`}>\n <div className='tw-label-text'>\n {labelTitle}\n {labelDescription && (\n <div className='tw-tooltip tw-tooltip-right' data-tip={labelDescription}>\n <InformationCircleIcon className='tw-w-4 tw-h-4' />\n </div>\n )}\n </div>\n </label>\n ) : (\n ''\n )}\n <select\n className='tw-select tw-select-bordered tw-w-full'\n value={value}\n onChange={(e) => updateValue(e.target.value)}\n >\n <option disabled value='PLACEHOLDER'>\n {placeholder}\n </option>\n {options.map((o, k) => {\n return (\n <option value={o.value || o.name} key={k}>\n {o.name}\n </option>\n )\n })}\n </select>\n </div>\n )\n}\n","import { TextAreaInput } from '#components/Input'\nimport { Item } from '#src/types'\n\nexport const PopupTextAreaInput = ({\n dataField,\n placeholder,\n style,\n item,\n}: {\n dataField: string\n placeholder: string\n style?: string\n item?: Item\n}) => {\n return (\n <TextAreaInput\n defaultValue={item?.text ? item.text : ''}\n dataField={dataField}\n placeholder={placeholder}\n inputStyle={style}\n ></TextAreaInput>\n )\n}\n","/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport { TextInput } from '#components/Input'\nimport { Item } from '#src/types'\n\ninterface StartEndInputProps {\n item?: Item\n showLabels?: boolean\n updateStartValue?: (value: string) => void\n updateEndValue?: (value: string) => void\n}\n\nexport const PopupStartEndInput = ({\n item,\n showLabels = true,\n updateStartValue,\n updateEndValue,\n}: StartEndInputProps) => {\n return (\n <div className='tw-grid tw-grid-cols-2 tw-gap-2'>\n <TextInput\n type='date'\n placeholder='start'\n dataField='start'\n inputStyle='tw-text-sm tw-px-2'\n labelTitle={showLabels ? 'start' : ''}\n defaultValue={item && item.start ? item.start.substring(0, 10) : ''}\n autocomplete='one-time-code'\n updateFormValue={updateStartValue}\n ></TextInput>\n <TextInput\n type='date'\n placeholder='end'\n dataField='end'\n inputStyle='tw-text-sm tw-px-2'\n labelTitle={showLabels ? 'end' : ''}\n defaultValue={item && item.end ? item.end.substring(0, 10) : ''}\n autocomplete='one-time-code'\n updateFormValue={updateEndValue}\n ></TextInput>\n </div>\n )\n}\n","import { TextInput } from '#components/Input'\nimport { Item } from '#src/types'\n\nexport const PopupTextInput = ({\n dataField,\n placeholder,\n style,\n item,\n}: {\n dataField: string\n placeholder: string\n style?: string\n item?: Item\n}) => {\n return (\n <TextInput\n defaultValue={item?.name ? item.name : ''}\n dataField={dataField}\n placeholder={placeholder}\n inputStyle={style}\n type='text'\n containerStyle={'tw-mt-4'}\n ></TextInput>\n )\n}\n","import { Item } from '#src/types'\n\nexport const PopupCheckboxInput = ({\n dataField,\n label,\n item,\n}: {\n dataField: string\n label: string\n item?: Item\n}) => {\n return (\n <label htmlFor={item?.id} className='tw-label tw-justify-normal tw-pt-1 tw-pb-1'>\n <input\n id={item?.id}\n type='checkbox'\n name={dataField}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={item?.public_edit}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>{label}</span>\n </label>\n )\n}\n","/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport { Item } from '#src/types'\n\nexport const StartEndView = ({ item }: { item?: Item }) => {\n return (\n <div className='tw-flex tw-flex-row tw-mb-4 tw-mt-1'>\n <div className='tw-basis-2/5 tw-flex tw-flex-row'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-4 tw-w-4 tw-mr-2'\n fill='none'\n viewBox='0 0 24 24'\n stroke='currentColor'\n strokeWidth={2}\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z'\n />\n </svg>\n <time\n className='tw-align-middle'\n dateTime={item && item.start ? item.start.substring(0, 10) : ''}\n >\n {item && item.start ? new Date(item.start).toLocaleDateString() : ''}\n </time>\n </div>\n <div className='tw-basis-1/5 tw-place-content-center'>\n <span>-</span>\n </div>\n <div className='tw-basis-2/5 tw-flex tw-flex-row'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-4 tw-w-4 tw-mr-2'\n fill='none'\n viewBox='0 0 24 24'\n stroke='currentColor'\n strokeWidth={2}\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z'\n />\n </svg>\n <time\n className='tw-align-middle'\n dateTime={item && item.end ? item.end.substring(0, 10) : ''}\n >\n {item && item.end ? new Date(item.end).toLocaleDateString() : ''}\n </time>\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { Link } from 'react-router-dom'\n\nimport { useGetItemTags } from '#components/Map/hooks/useTags'\nimport { Item } from '#src/types'\nimport { getValue } from '#utils/GetValue'\n\nexport const PopupButton = ({\n url,\n parameterField,\n text,\n colorField,\n item,\n}: {\n url: string\n parameterField?: string\n text: string\n colorField?: string\n item?: Item\n}) => {\n const params = new URLSearchParams(window.location.search)\n const getItemTags = useGetItemTags()\n\n return (\n <Link to={`${url}/${parameterField ? getValue(item, parameterField) : ''}?${params}`}>\n <button\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : item && getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor}`,\n }}\n className='tw-btn tw-text-white tw-btn-sm tw-float-right tw-mt-1'\n >\n {text}\n </button>\n </Link>\n )\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\nimport QuestionMarkIcon from '@heroicons/react/24/outline/QuestionMarkCircleIcon'\nimport { useEffect, useRef, useState } from 'react'\nimport { Link, useLocation } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { Item } from '#src/types'\n\nexport default function NavBar({ appName, userType }: { appName: string; userType: string }) {\n const { isAuthenticated, user, logout } = useAuth()\n\n const [userProfile, setUserProfile] = useState<Item>({} as Item)\n const items = useItems()\n\n useEffect(() => {\n const profile =\n user &&\n items.find((i) => i.user_created?.id === user.id && i.layer?.itemType.name === userType)\n profile\n ? setUserProfile(profile)\n : setUserProfile({ id: crypto.randomUUID(), name: user?.first_name, text: '' })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [user, items])\n\n useEffect(() => {}, [userProfile])\n\n const nameRef = useRef<any>(null)\n const [nameWidth, setNameWidth] = useState<number>(0)\n const location = useLocation()\n const [showNav, setShowNav] = useState<boolean>(false)\n\n useEffect(() => {\n showNav && nameRef && setNameWidth(nameRef.current.scrollWidth)\n }, [nameRef, appName, showNav])\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setShowNav(true)\n }, [location])\n\n const onLogout = () => {\n toast.promise(logout(), {\n success: {\n render() {\n return 'Bye bye'\n },\n // other options\n icon: '👋',\n },\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n pending: 'logging out ..',\n })\n }\n\n if (showNav) {\n return (\n <>\n <div className='tw-navbar tw-bg-base-100 tw-z-[10000] tw-shadow-xl tw-relative'>\n <button\n className='tw-btn tw-btn-square tw-btn-ghost'\n data-te-sidenav-toggle-ref\n data-te-target='#sidenav'\n aria-controls='#sidenav'\n aria-haspopup='true'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n className='tw-inline-block tw-w-5 tw-h-5 tw-stroke-current'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth='2'\n d='M4 6h16M4 12h16M4 18h16'\n ></path>\n </svg>\n </button>\n <div className='tw-flex-1 tw-mr-2'>\n <div\n className={'tw-flex-1 tw-truncate tw-grid tw-grid-flow-col'}\n style={{ maxWidth: nameWidth + 60 }}\n >\n <Link\n className='tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate'\n to={'/'}\n >\n <h1 ref={nameRef} className='tw-truncate'>\n {appName}\n </h1>\n </Link>\n <button\n className='tw-btn tw-px-2 tw-btn-ghost'\n onClick={() => window.my_modal_3.showModal()}\n >\n <QuestionMarkIcon className='tw-h-5 tw-w-5' />\n </button>\n </div>\n </div>\n\n {isAuthenticated ? (\n <div className='tw-flex-none'>\n <Link\n to={`${userProfile.id && '/item/' + userProfile.id}`}\n className='tw-flex tw-items-center'\n >\n {userProfile?.image && (\n <div className='tw-avatar'>\n <div className='tw-w-10 tw-rounded-full'>\n <img src={'https://api.utopia-lab.org/assets/' + userProfile.image} />\n </div>\n </div>\n )}\n <div className='tw-ml-2 tw-mr-2'>{userProfile.name || user?.first_name}</div>\n </Link>\n <div className='tw-dropdown tw-dropdown-end'>\n <label tabIndex={0} className='tw-btn tw-btn-ghost tw-btn-square'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path d='M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z' />\n </svg>\n </label>\n <ul\n tabIndex={0}\n className='tw-menu tw-menu-compact tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]'\n >\n <li>\n <Link to={`${userProfile.id && '/edit-item/' + userProfile.id}`}>Profile</Link>\n </li>\n <li>\n <Link to={'/user-settings'}>Settings</Link>\n </li>\n <li>\n <a\n onClick={() => {\n onLogout()\n }}\n >\n Logout\n </a>\n </li>\n </ul>\n </div>\n </div>\n ) : (\n <div>\n <div className='tw-hidden md:tw-flex'>\n <Link to={'/login'}>\n <div className='tw-btn tw-btn-ghost tw-mr-2'>Login</div>\n </Link>\n\n <Link to={'/signup'}>\n <div className='tw-btn tw-btn-ghost tw-mr-2'>Sign Up</div>\n </Link>\n </div>\n <div className='tw-dropdown tw-dropdown-end'>\n <label tabIndex={1} className='tw-btn tw-btn-ghost md:tw-hidden'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path d='M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z' />\n </svg>\n </label>\n <ul\n tabIndex={1}\n className='tw-menu tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]'\n >\n <li>\n <Link to={'/login'}>Login</Link>\n </li>\n <li>\n <Link to={'/signup'}>Sign Up</Link>\n </li>\n </ul>\n </div>\n </div>\n )}\n </div>\n </>\n )\n } else return <></>\n}\n","import { useEffect } from 'react'\n\nimport { AssetsApi } from '#src/types'\n\nimport { useSetAppState } from './hooks/useAppState'\n\nexport const SetAppState = ({\n assetsApi,\n userType,\n}: {\n assetsApi: AssetsApi\n userType: string\n}) => {\n const setAppState = useSetAppState()\n\n useEffect(() => {\n setAppState({ assetsApi })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [assetsApi])\n\n useEffect(() => {\n setAppState({ userType })\n }, [setAppState, userType])\n\n return <></>\n}\n","import { AssetsApi } from '#src/types'\n\nimport { ContextWrapper } from './ContextWrapper'\nimport NavBar from './NavBar'\nimport { SetAppState } from './SetAppState'\n\nexport function AppShell({\n appName,\n children,\n assetsApi,\n userType,\n}: {\n appName: string\n children: React.ReactNode\n assetsApi: AssetsApi\n userType: string\n}) {\n return (\n <ContextWrapper>\n <div className='tw-flex tw-flex-col tw-h-full'>\n <SetAppState assetsApi={assetsApi} userType={userType} />\n <NavBar userType={userType} appName={appName}></NavBar>\n <div id='app-content' className='tw-flex-grow'>\n {children}\n </div>\n </div>\n </ContextWrapper>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport ChevronDownIcon from '@heroicons/react/24/outline/ChevronDownIcon'\nimport { useEffect, useState } from 'react'\nimport { Link, useLocation } from 'react-router-dom'\n\nfunction SidebarSubmenu({\n submenu,\n name,\n icon,\n}: {\n path: string\n icon: JSX.Element\n name: string\n submenu?: any | undefined\n}) {\n const location = useLocation()\n const [isExpanded, setIsExpanded] = useState(false)\n\n /** Open Submenu list if path found in routes, this is for directly loading submenu routes first time */\n useEffect(() => {\n if (\n submenu.filter((m) => {\n return m.path === location.pathname\n })[0]\n )\n setIsExpanded(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <div className='flex-col'>\n {/** Route header */}\n <div className='w-full' onClick={() => setIsExpanded(!isExpanded)}>\n {icon}{' '}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\"\n data-te-sidenav-slim='false'\n >\n {name}{' '}\n </span>\n <ChevronDownIcon\n className={\n 'w-5 h-5 mt-1 float-right delay-400 duration-500 transition-all ' +\n (isExpanded ? 'rotate-180' : '')\n }\n />\n </div>\n\n {/** Submenu list */}\n <div className={' w-full data-[te-collapse-show]:!hidden ' + (isExpanded ? '' : 'hidden')}>\n <ul className={'menu menu-compact'}>\n {submenu.map((m, k) => {\n return (\n <li key={k}>\n <Link to={m.path} className=''>\n {m.icon}\n <span className='' data-te-sidenav-slim='false'>\n {m.name}\n </span>\n {location.pathname === m.path ? (\n <span\n className='absolute mt-1 mb-1 inset-y-0 left-0 w-1 rounded-tr-md rounded-br-md bg-primary '\n aria-hidden='true'\n ></span>\n ) : null}\n </Link>\n </li>\n )\n })}\n </ul>\n </div>\n </div>\n )\n}\n\nexport default SidebarSubmenu\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport ChevronRightIcon from '@heroicons/react/24/outline/ChevronRightIcon'\nimport { useRef, useState, useEffect } from 'react'\nimport { NavLink, useLocation } from 'react-router-dom'\nimport { Sidenav, initTE } from 'tw-elements'\n\nimport SidebarSubmenu from './SidebarSubmenu'\n\ntype route = {\n path: string\n icon: JSX.Element\n name: string\n submenu?: route\n blank?: boolean\n}\n\nexport function SideBar({ routes, bottomRoutes }: { routes: route[]; bottomRoutes?: route[] }) {\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const location = useLocation()\n\n const [instance, setInstance] = useState<any>(null)\n const [slim, setSlim] = useState<boolean>(false)\n\n const toggleSlim = () => {\n setSlim(!slim)\n instance.toggleSlim()\n }\n\n useEffect(() => {\n if (!init.current) {\n initTE({ Sidenav })\n const instance = Sidenav.getInstance(document.getElementById('sidenav'))\n setInstance(instance)\n instance.toggleSlim()\n init.current = true\n }\n }, [])\n\n const [embedded, setEmbedded] = useState<boolean>(true)\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const embedded = params.get('embedded')\n embedded !== 'true' && setEmbedded(false)\n }, [location])\n\n const params = new URLSearchParams(window.location.search)\n\n return (\n <nav\n id='sidenav'\n className={`group tw-fixed tw-left-0 ${embedded ? 'tw-mt-0 tw-h-[100dvh]' : 'tw-mt-16 tw-h-[calc(100dvh-64px)]'} tw-top-0 tw-z-[10035] tw--translate-x-full tw-overflow-hidden tw-shadow-xl data-[te-sidenav-slim='true']:tw-hidden data-[te-sidenav-slim-collapsed='true']:tw-w-[56px] data-[te-sidenav-slim='true']:tw-w-[56px] data-[te-sidenav-hidden='false']:tw-translate-x-0 dark:tw-bg-zinc-800 [&[data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='false']]:tw-hidden [&[data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='true']]:[display:unset]`}\n data-te-sidenav-init\n data-te-sidenav-hidden='true'\n data-te-sidenav-mode='side'\n data-te-sidenav-slim='true'\n data-te-sidenav-content='#app-content'\n data-te-sidenav-slim-collapsed='true'\n data-te-sidenav-slim-width='56'\n data-te-sidenav-width='180'\n >\n <div\n className={`tw-flex tw-flex-col ${embedded ? 'tw-h-full' : 'tw-h-[calc(100dvh-64px)]'}`}\n >\n <ul\n className='tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0'\n data-te-sidenav-menu-ref\n >\n {routes.map((route, k) => {\n return (\n <li className='' key={k}>\n {route.submenu ? (\n <SidebarSubmenu {...route} />\n ) : (\n <NavLink\n end\n target={route.blank ? '_blank' : '_self'}\n to={`${route.path}${params && '?' + params}`}\n className={({ isActive }) =>\n `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`\n }\n onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle()\n }}\n >\n {route.icon}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\"\n data-te-sidenav-slim='false'\n >\n {route.name}\n </span>\n {(location.pathname.includes(route.path) && route.path.length > 1) ||\n location.pathname === route.path ? (\n <span\n className='tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary '\n aria-hidden='true'\n ></span>\n ) : null}\n </NavLink>\n )}\n </li>\n )\n })}\n </ul>\n\n <div\n id='slim-toggler'\n className='tw-w-full tw-bg-base-100 tw-flex-1 tw-grid tw-place-items-end'\n aria-haspopup='true'\n >\n <div className='tw-w-full'>\n <ul\n className='tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0 tw-mb-0'\n data-te-sidenav-menu-ref\n >\n {bottomRoutes?.map((route, k) => {\n return (\n <li className='' key={k}>\n {route.submenu ? (\n <SidebarSubmenu {...route} />\n ) : (\n <NavLink\n end\n target={route.blank ? '_blank' : '_self'}\n to={route.path}\n className={({ isActive }) =>\n `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`\n }\n onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle()\n }}\n >\n {route.icon}\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\"\n data-te-sidenav-slim='false'\n >\n {route.name}\n </span>\n {(location.pathname.includes(route.path) && route.path.length > 1) ||\n location.pathname === route.path ? (\n <span\n className='tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary '\n aria-hidden='true'\n ></span>\n ) : null}\n </NavLink>\n )}\n </li>\n )\n })}\n </ul>\n\n <ChevronRightIcon\n className={\n 'tw-w-5 tw-h-5 tw-mb-4 tw-mr-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all ' +\n (!slim ? 'tw-rotate-180' : '')\n }\n onClick={() => toggleSlim()}\n />\n </div>\n </div>\n </div>\n </nav>\n )\n}\n","/* eslint-disable @typescript-eslint/consistent-type-definitions */\ntype ContentProps = {\n children?: React.ReactNode\n}\n\nexport function Content({ children }: ContentProps) {\n return (\n <div className='tw-flex tw-flex-col tw-w-full tw-h-full tw-bg-base-200 tw-relative'>\n {children}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useEffect, useState } from 'react'\n\nimport { useItems } from '#components/Map/hooks/useItems'\n\nexport const Sitemap = ({ url }: { url: string }) => {\n const [sitemap, setSitemap] = useState('')\n\n const items = useItems()\n\n useEffect(() => {\n if (items.length) {\n const generateSitemap = () => {\n let sitemapXML = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n'\n sitemapXML += '<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\\n'\n\n items.forEach((item) => {\n sitemapXML += ' <url>\\n'\n sitemapXML += ` <loc>${url}/${item.slug}</loc>\\n`\n sitemapXML += ' </url>\\n'\n })\n\n sitemapXML += '</urlset>'\n return sitemapXML\n }\n\n setSitemap(generateSitemap())\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <div>\n <h1>Sitemap</h1>\n <textarea value={sitemap} readOnly rows={items.length + 4} cols={80} />\n </div>\n )\n}\n","function Subtitle({ styleClass, children }: { styleClass: string; children: React.ReactNode }) {\n return <div className={`tw-text-xl tw-font-semibold ${styleClass}`}>{children}</div>\n}\n\nexport default Subtitle\n","/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Subtitle from '#components/Typography/Subtitle'\n\ninterface TitleCardProps {\n title?: string\n hideTitle?: boolean\n children?: React.ReactNode\n topMargin?: string\n className?: string\n TopSideButtons?: any\n}\n\nexport function TitleCard({\n title,\n hideTitle,\n children,\n topMargin,\n TopSideButtons,\n className,\n}: TitleCardProps) {\n return (\n <div\n className={\n 'tw-card tw-w-full tw-p-6 tw-bg-base-100 tw-shadow-xl tw-h-fit tw-mb-4 ' +\n (className || '') +\n ' ' +\n (topMargin || 'tw-mt-6')\n }\n >\n {!hideTitle && (\n <>\n <Subtitle styleClass={TopSideButtons ? 'tw-inline-block' : ''}>\n {title}\n\n {/* Top side button, show only if present */}\n {TopSideButtons && (\n <div className='tw-inline-block tw-float-right'>{TopSideButtons}</div>\n )}\n </Subtitle>\n <div className='tw-divider tw-mt-2'></div>\n </>\n )}\n\n {/** Card Body */}\n <div className='tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100'>{children}</div>\n </div>\n )\n}\n","import { Link } from 'react-router-dom'\n\nimport { TitleCard } from './TitleCard'\n\nexport function CardPage({\n title,\n hideTitle,\n children,\n parents,\n}: {\n title: string\n hideTitle?: boolean\n children?: React.ReactNode\n parents?: { name: string; path: string }[]\n}) {\n return (\n <main className='tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-2 tw-px-6 tw-min-w-80 tw-flex tw-justify-center'>\n <div className='tw-w-full xl:tw-max-w-6xl '>\n <div className='tw-text-sm tw-breadcrumbs'>\n <ul>\n <li>\n <Link to={'/'}>Home</Link>\n </li>\n {parents?.map((b, i) => (\n <li key={i}>\n <Link to={b.path}>{b.name}</Link>\n </li>\n ))}\n <li>{title}</li>\n </ul>\n </div>\n <TitleCard hideTitle={hideTitle} title={title} topMargin='tw-my-2' className=' tw-mb-4'>\n {children}\n </TitleCard>\n </div>\n </main>\n )\n}\n","export const LUNAR_MONTH = 29.530588853\n\nexport const getJulianDate = (date: Date = new Date()): number => {\n const time: number = date.getTime()\n const tzoffset: number = date.getTimezoneOffset()\n return time / 86400000 - tzoffset / 1440 + 2440587.5\n}\n\nexport const normalize = (value: number): number => {\n value = value - Math.floor(value)\n if (value < 0) value += 1\n return value\n}\n\nexport const getLunarAgePercent = (date: Date = new Date()): number => {\n return normalize((getJulianDate(date) - 2451550.1) / LUNAR_MONTH)\n}\n\nexport const getLunarAge = (date: Date = new Date()): number => {\n const percent: number = getLunarAgePercent(date)\n return percent * LUNAR_MONTH\n}\n\nexport const getNextNewMoon = (): Date => {\n return new Date(getLastNewMoon().getTime() + LUNAR_MONTH * 86400000)\n}\n\nexport const getLastNewMoon = (date: Date = new Date()): Date => {\n const lunarAge: number = getLunarAge(date)\n return new Date(date.getTime() - lunarAge * 86400000)\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useEffect, useRef } from 'react'\n\nexport const CircleLayout = ({\n items,\n radius,\n fontSize,\n}: {\n items: any\n radius: number\n fontSize: any\n}) => {\n const containerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const container = containerRef.current\n const itemCount = items.length\n\n if (container) {\n for (let i = 0; i < itemCount; i++) {\n const startAngle = Math.PI / 2\n const angle = startAngle + (i / itemCount) * (2 * Math.PI)\n const x = radius * Math.cos(angle)\n const y = radius * Math.sin(angle)\n // eslint-disable-next-line security/detect-object-injection\n const child = container.children[i] as HTMLElement\n child.style.transform = `translate(${x}px, ${y}px)`\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <div\n className='tw-absolute tw-mx-auto tw-flex tw-justify-center tw-items-center tw-h-full tw-w-full'\n ref={containerRef}\n >\n {items.map((item: any) => (\n <div key={item} className='tw-absolute' style={{ fontSize }}>\n {item}\n </div>\n ))}\n </div>\n )\n}\n","import { ChevronLeftIcon, ChevronRightIcon } from '@heroicons/react/24/outline'\nimport { add, format, parse, startOfToday, sub } from 'date-fns'\nimport { useState } from 'react'\n\nimport { LUNAR_MONTH, getLastNewMoon, getNextNewMoon } from '#utils/Moon'\n\nimport { CircleLayout } from './CircleLayout'\nimport { MapOverlayPage } from './MapOverlayPage'\n\nexport const MoonCalendar = () => {\n const today = startOfToday()\n\n const [currMonth, setCurrMonth] = useState(() => format(today, 'MMM-yyyy'))\n const firstDayOfMonth = parse(currMonth, 'MMM-yyyy', new Date())\n\n const getPrevMonth = (event: React.MouseEvent<SVGSVGElement>) => {\n event.preventDefault()\n const firstDayOfPrevMonth = add(firstDayOfMonth, { months: -1 })\n setCurrMonth(format(firstDayOfPrevMonth, 'MMM-yyyy'))\n }\n\n const getNextMonth = (event: React.MouseEvent<SVGSVGElement>) => {\n event.preventDefault()\n const firstDayOfNextMonth = add(firstDayOfMonth, { months: 1 })\n setCurrMonth(format(firstDayOfNextMonth, 'MMM-yyyy'))\n }\n\n return (\n <MapOverlayPage backdrop className='tw-h-96 tw-w-80'>\n <p className='tw-self-center tw-text-lg tw-font-bold'>Moon Cycle</p>\n <div className='tw-relative tw-h-full'>\n <CircleLayout\n items={['🌑', '🌒', '🌓', '🌔', '🌕', '🌖', '🌗', '🌘']}\n radius={80}\n fontSize={'3em'}\n />\n <CircleLayout\n items={[\n format(getLastNewMoon(), 'dd.MM hh:mm'),\n format(\n sub(getNextNewMoon(), { seconds: ((LUNAR_MONTH * 86400) / 4) * 3 }),\n 'dd.MM hh:mm',\n ),\n format(sub(getNextNewMoon(), { seconds: (LUNAR_MONTH * 86400) / 2 }), 'dd.MM hh:mm'),\n format(sub(getNextNewMoon(), { seconds: (LUNAR_MONTH * 86400) / 4 }), 'dd.MM hh:mm'),\n ]}\n radius={120}\n fontSize={'0.8em'}\n />\n </div>\n <div className='tw-flex tw-flex-row'>\n <ChevronLeftIcon className='tw-w-6 tw-h-6 tw-cursor-pointer' onClick={getPrevMonth} />\n <p className='tw-text-center tw-p-1 tw-h-full tw-grow'>\n from {format(getLastNewMoon(), 'dd.MM')} - to {format(getNextNewMoon(), 'dd.MM')}\n </p>\n\n <ChevronRightIcon className='tw-w-6 tw-h-6 tw-cursor-pointer' onClick={getNextMonth} />\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport { useState } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useItems } from '#components/Map/hooks/useItems'\n\nimport { MapOverlayPage } from './MapOverlayPage'\n\nexport const SelectUser = () => {\n const appState = useAppState()\n const items = useItems()\n const users = items.filter((i) => i.layer?.itemType.name === appState.userType)\n\n const [selectedUsers, setSelectedUsers] = useState<string[]>([])\n\n return (\n <MapOverlayPage backdrop className='tw-h-3/4 tw-w-80'>\n <div className='tw-text-center tw-text-xl tw-font-bold tw-mb-4'>Gratitude to ...</div>\n\n {/* Team Member list in table format loaded constant */}\n <div className='tw-overflow-x-auto tw-w-full fade'>\n <table className='tw-table tw-w-full'>\n <tbody>\n {users.map((u, k) => {\n return (\n <tr key={k}>\n <td>\n <input\n type='checkbox'\n onChange={() => setSelectedUsers((prev) => [...prev, u.id])}\n className='tw-checkbox tw-checkbox-sm'\n />\n </td>\n <td>\n <div className='tw-flex tw-items-center tw-space-x-3'>\n {u.image ? (\n <div className='tw-avatar'>\n <div className='tw-mask tw-mask-circle tw-w-8 tw-h-8'>\n <img\n src={appState.assetsApi.url + u.image + '?width=40&heigth=40'}\n alt='Avatar'\n />\n </div>\n </div>\n ) : (\n <div className='tw-mask tw-mask-circle tw-text-xl md:tw-text-2xl tw-bg-slate-200 tw-rounded-full tw-w-8 tw-h-8'></div>\n )}\n <div>\n <div className='tw-font-bold'>{u.name}</div>\n </div>\n </div>\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n <div className='tw-w-full tw-grid tw-mt-4'>\n <Link\n className='tw-place-self-center '\n to={'/attestation-form' + '?to=' + selectedUsers.map((u) => u, ',')}\n >\n <button className='tw-btn tw-px-8'>Next</button>\n </Link>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport { LayerProps } from '#src/types'\n\nexport function PlusButton({\n layer,\n triggerAction,\n color,\n collection = 'items',\n}: {\n layer?: LayerProps\n triggerAction: any\n color: string\n collection?: string\n}) {\n const hasUserPermission = useHasUserPermission()\n return (\n <>\n {hasUserPermission(collection, 'create', undefined, layer) && (\n <div className='tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-3000 tw-absolute tw-right-4 tw-bottom-4'>\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow'\n onClick={() => {\n triggerAction()\n }}\n style={{ backgroundColor: color, color: '#fff' }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='2'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </button>\n </div>\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport { useState } from 'react'\n\nimport { Item } from '#src/types'\nimport { timeAgo } from '#utils/TimeAgo'\n\nexport const DateUserInfo = ({ item }: { item: Item }) => {\n const [infoExpanded, setInfoExpanded] = useState<boolean>(false)\n return (\n <div\n className='tw-flex -tw-mb-1 tw-flex-row tw-mr-2 -tw-mt-2'\n onClick={(e) => e.stopPropagation()}\n >\n {infoExpanded ? (\n <p\n className={'tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500'}\n onClick={() => setInfoExpanded(false)}\n >{`${item.date_updated && item.date_updated !== item.date_created ? 'updated' : 'posted'} ${item && item.user_created && item.user_created.first_name ? `by ${item.user_created.first_name}` : ''} ${item.date_updated ? timeAgo(item.date_updated) : timeAgo(item.date_created!)}`}</p>\n ) : (\n <p\n className='!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500'\n onClick={() => setInfoExpanded(true)}\n >\n ⓘ\n </p>\n )}\n <div className='tw-grow '></div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useNavigate } from 'react-router-dom'\n\nimport { StartEndView, TextView } from '#components/Map'\nimport useWindowDimensions from '#components/Map/hooks/useWindowDimension'\nimport { HeaderView } from '#components/Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport { Item } from '#src/types'\nimport { getValue } from '#utils/GetValue'\n\nimport { DateUserInfo } from './DateUserInfo'\n\nexport const ItemCard = ({\n i,\n loading,\n url,\n parameterField,\n deleteCallback,\n}: {\n i: Item\n loading: boolean\n url: string\n parameterField: string\n deleteCallback: any\n}) => {\n const navigate = useNavigate()\n const windowDimensions = useWindowDimensions()\n\n return (\n <div\n className='tw-cursor-pointer tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-p-4 tw-mb-4 tw-h-fit'\n onClick={() => {\n const params = new URLSearchParams(window.location.search)\n if (windowDimensions.width < 786 && i.position)\n navigate('/' + getValue(i, parameterField) + `${params ? `?${params}` : ''}`)\n else navigate(url + getValue(i, parameterField) + `${params ? `?${params}` : ''}`)\n }}\n >\n <HeaderView\n loading={loading}\n item={i}\n api={i.layer?.api}\n itemAvatarField={i.layer?.itemAvatarField}\n itemNameField={i.layer?.itemNameField}\n itemSubnameField={i.layer?.itemSubnameField}\n editCallback={() => navigate('/edit-item/' + i.id)}\n deleteCallback={() => deleteCallback(i)}\n ></HeaderView>\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n {i.layer?.itemType.show_start_end && <StartEndView item={i}></StartEndView>}\n {i.layer?.itemType.show_text && (\n <TextView truncate item={i} itemTextField={i.layer.itemTextField} />\n )}\n </div>\n <DateUserInfo item={i}></DateUserInfo>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth/useAuth'\nimport { TextInput, TextAreaInput } from '#components/Input'\nimport { PopupStartEndInput } from '#components/Map'\nimport { useFilterTags } from '#components/Map/hooks/useFilter'\nimport { useAddItem, useItems, useRemoveItem } from '#components/Map/hooks/useItems'\nimport { useLayers } from '#components/Map/hooks/useLayers'\nimport { useAddTag, useGetItemTags, useTags } from '#components/Map/hooks/useTags'\nimport { Control } from '#components/Map/Subcomponents/Controls/Control'\nimport { SearchControl } from '#components/Map/Subcomponents/Controls/SearchControl'\nimport { TagsControl } from '#components/Map/Subcomponents/Controls/TagsControl'\nimport { PlusButton } from '#components/Profile/Subcomponents/PlusButton'\nimport { Item } from '#src/types'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { randomColor } from '#utils/RandomColor'\n\nimport { ItemCard } from './ItemCard'\nimport { MapOverlayPage } from './MapOverlayPage'\n\nexport const OverlayItemsIndexPage = ({\n url,\n layerName,\n parameterField,\n plusButton = true,\n}: {\n layerName: string\n url: string\n parameterField: string\n plusButton?: boolean\n}) => {\n const [loading, setLoading] = useState<boolean>(false)\n const [addItemPopupType, setAddItemPopupType] = useState<string>('')\n\n const tabRef = useRef<HTMLFormElement>(null)\n\n function scroll() {\n tabRef.current?.scrollIntoView()\n }\n\n useEffect(() => {\n scroll()\n }, [addItemPopupType])\n\n useEffect(() => {\n setAddItemPopupType('')\n }, [layerName])\n\n const tags = useTags()\n const addTag = useAddTag()\n const { user } = useAuth()\n const items = useItems()\n const addItem = useAddItem()\n const removeItem = useRemoveItem()\n const layers = useLayers()\n\n const filterTags = useFilterTags()\n const getItemTags = useGetItemTags()\n\n const layer = layers.find((l) => l.name === layerName)\n\n const submitNewItem = async (evt: any) => {\n evt.preventDefault()\n const formItem: Item = {} as Item\n Array.from(evt.target).forEach((input: HTMLInputElement) => {\n if (input.name) {\n formItem[input.name] = input.value\n }\n })\n setLoading(true)\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\n })\n const uuid = crypto.randomUUID()\n let success = false\n try {\n await layer?.api?.createItem!({ ...formItem, id: uuid })\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n toast.success('New item created')\n }\n addItem({ ...formItem, user_created: user, id: uuid, layer, public_edit: !user })\n setLoading(false)\n setAddItemPopupType('')\n }\n\n const deleteItem = async (item) => {\n setLoading(true)\n let success = false\n try {\n await layer?.api?.deleteItem!(item.id)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n toast.success('Item deleted')\n }\n removeItem(item)\n setLoading(false)\n }\n\n return (\n <>\n <MapOverlayPage className='tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4'>\n <div className='tw-flex tw-flex-col tw-h-full'>\n <div className='tw-flex-none'>\n <Control position='topLeft' zIndex='1000' absolute={false}>\n <SearchControl />\n <TagsControl />\n </Control>\n </div>\n <div className='tw-overflow-scroll fade tw-flex-1'>\n <div className='tw-columns-1 md:tw-columns-2 lg:tw-columns-3 2xl:tw-columns-4 tw-gap-6 tw-pt-4'>\n {items\n .filter((i) => i.layer?.name === layerName)\n .filter((item) =>\n filterTags.length === 0\n ? item\n : filterTags.some((tag) =>\n getItemTags(item).some(\n (filterTag) =>\n filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase(),\n ),\n ),\n )\n .sort((a, b) => {\n // Convert date_created to milliseconds, handle undefined by converting to lowest possible date (0 milliseconds)\n const dateA = a.date_updated\n ? new Date(a.date_updated).getTime()\n : a.date_created\n ? new Date(a.date_created).getTime()\n : 0\n const dateB = b.date_updated\n ? new Date(b.date_updated).getTime()\n : b.date_created\n ? new Date(b.date_created).getTime()\n : 0\n return dateB - dateA // Subtracts milliseconds which are numbers\n })\n .map((i, k) => (\n <div key={k} className='tw-break-inside-avoid tw-mb-6'>\n <ItemCard\n i={i}\n loading={loading}\n url={url}\n parameterField={parameterField}\n deleteCallback={() => deleteItem(i)}\n />\n </div>\n ))}\n {addItemPopupType === 'place' && (\n <form ref={tabRef} autoComplete='off' onSubmit={(e) => submitNewItem(e)}>\n <div className='tw-cursor-pointer tw-break-inside-avoid tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-p-6 tw-mb-10'>\n <label\n className='tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600'\n onClick={() => setAddItemPopupType('')}\n >\n <p className='tw-text-center'>✕</p>\n </label>\n <TextInput\n type='text'\n placeholder='Name'\n dataField='name'\n defaultValue={''}\n inputStyle=''\n />\n {layer?.itemType.show_start_end_input && <PopupStartEndInput />}\n <TextAreaInput\n placeholder='Text'\n dataField='text'\n defaultValue={''}\n inputStyle='tw-h-40 tw-mt-5'\n />\n <div className='tw-flex tw-justify-center'>\n <button\n className={\n loading\n ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center'\n : 'tw-btn tw-mt-5 tw-place-self-center'\n }\n type='submit'\n >\n {loading ? <span className='tw-loading tw-loading-spinner'></span> : 'Save'}\n </button>\n </div>\n </div>\n </form>\n )}\n </div>\n </div>\n </div>\n </MapOverlayPage>\n\n {plusButton && (\n <PlusButton\n layer={layer}\n triggerAction={() => {\n setAddItemPopupType('place')\n scroll()\n }}\n color={'#777'}\n collection='items'\n />\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useState } from 'react'\n\nexport const EmojiPicker = ({\n // eslint-disable-next-line react/prop-types\n selectedEmoji,\n // eslint-disable-next-line react/prop-types\n selectedColor,\n // eslint-disable-next-line react/prop-types\n selectedShape,\n // eslint-disable-next-line react/prop-types\n setSelectedEmoji,\n // eslint-disable-next-line react/prop-types\n setSelectedColor,\n // eslint-disable-next-line react/prop-types\n setSelectedShape,\n}) => {\n const [isOpen, setIsOpen] = useState(false)\n\n const emojis = [\n '❤️',\n '🙏',\n '👍',\n '🌻',\n '✨',\n '☀️',\n '🔥',\n '🪵',\n '💧',\n '🎶',\n '🎨',\n '🍄',\n '📝',\n '✉️',\n '🧩',\n '💡',\n '🎓',\n '💬',\n '🛠',\n '💻',\n '🕹',\n '🖨',\n '🚐',\n '🛒',\n '⚽️',\n '🧵',\n '👀',\n '🌱',\n '🏕',\n '💪',\n '🎁',\n '🏹',\n '🥕',\n '🥇',\n '🥈',\n '🥉',\n ]\n const shapes = ['squircle', 'circle', 'hexagon-2']\n\n const colors = [\n '#FF99C8',\n '#fff0d6',\n '#FCF6BD',\n '#D0F4DE',\n '#A9DEF9',\n '#E4C1F9',\n '#de324c',\n '#f4895f',\n '#f8e16f',\n '#95cf92',\n '#369acc',\n '#9656a2',\n ]\n\n const toggleDropdown = () => {\n setIsOpen(!isOpen)\n }\n\n const selectEmoji = (emoji) => {\n setSelectedEmoji(emoji)\n setIsOpen(false)\n }\n\n const selectShape = (shape) => {\n setSelectedShape(shape)\n setIsOpen(false)\n }\n\n const selectColor = (color) => {\n setSelectedColor(color)\n setIsOpen(false)\n }\n\n return (\n <>\n <div\n onClick={toggleDropdown}\n className={`tw-cursor-pointer ${selectedEmoji === 'select badge' ? 'tw-text-sm !tw-p-9 tw-text-center ' : 'tw-text-6xl'} tw-mask tw-mask-${selectedShape} tw-p-6 tw-bg-[${selectedColor}]`}\n >\n {selectedEmoji}\n </div>\n\n {isOpen && (\n <div className='tw-absolute tw-z-3000 tw-top-0 tw-left-1/2 tw-transform tw--translate-x-1/2 tw-mt-12 tw-bg-base-100 tw-rounded-2xl tw-shadow-lg tw-p-2 tw-w-full'>\n <div className='tw-grid tw-grid-cols-6 tw-gap-2 tw-pb-2'>\n {emojis.map((emoji) => (\n <button\n key={emoji}\n onClick={() => selectEmoji(emoji)}\n className={`tw-cursor-pointer tw-text-2xl tw-p-2 hover:tw-bg-base-200 tw-rounded-md ${emoji === selectedEmoji && 'tw-bg-base-300'}`}\n >\n {emoji}\n </button>\n ))}\n </div>\n <hr />\n <div className='tw-grid tw-grid-cols-3 tw-gap-2 tw-py-2'>\n {shapes.map((shape) => (\n <div\n key={shape}\n className={`tw-cursor-pointer hover:tw-bg-base-200 tw-rounded-md tw-p-2 ${shape === selectedShape && 'tw-bg-base-300'}`}\n onClick={() => selectShape(shape)}\n >\n <div className={`tw-h-12 tw-mask tw-mask-${shape} tw-bg-neutral-content`}></div>\n </div>\n ))}\n </div>\n <hr />\n <div className='tw-grid tw-grid-cols-6 tw-gap-2 tw-py-2 tw-px-6'>\n {colors.map((color) => (\n <div\n key={color}\n className={`tw-cursor-pointer hover:tw-bg-base-200 tw-rounded-md tw-p-2 tw-flex tw-justify-center tw-items-center ${color === selectedColor && 'tw-bg-base-300'}`}\n onClick={() => selectColor(color)}\n >\n <div className={`tw-h-8 tw-w-8 tw-rounded-full tw-bg-[${color}]`}></div>\n </div>\n ))}\n </div>\n </div>\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/require-await */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useRef, useState, useEffect } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { Item, ItemsApi } from '#src/types'\n\nimport { EmojiPicker } from './EmojiPicker'\nimport { MapOverlayPage } from './MapOverlayPage'\n\nexport const AttestationForm = ({ api }: { api?: ItemsApi<any> }) => {\n const items = useItems()\n const appState = useAppState()\n const [users, setUsers] = useState<Item[]>()\n const navigate = useNavigate()\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const toUserIds = params.get('to')\n setUsers(items.filter((i) => toUserIds?.includes(i.id)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, location])\n\n const [inputValue, setInputValue] = useState('')\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.style.width = 'auto'\n inputRef.current.style.width = `${inputRef.current.scrollWidth + 20}px`\n }\n }, [inputValue])\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value)\n }\n\n const sendAttestation = async () => {\n const to: any[] = []\n users?.map((u) => to.push({ directus_users_id: u.user_created.id }))\n\n api?.createItem &&\n toast\n .promise(\n api.createItem({\n text: inputValue,\n emoji: selectedEmoji,\n color: selectedColor,\n shape: selectedShape,\n to,\n }),\n {\n pending: 'creating attestation ...',\n success: 'Attestation created',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n },\n )\n .then(() =>\n navigate(\n '/item/' +\n items.find(\n (i) =>\n i.user_created.id === to[0].directus_users_id &&\n i.layer?.itemType.name === 'player',\n )?.id +\n '?tab=2',\n ),\n )\n }\n\n const [selectedEmoji, setSelectedEmoji] = useState('select badge')\n const [selectedShape, setSelectedShape] = useState('circle')\n const [selectedColor, setSelectedColor] = useState('#fff0d6')\n\n return (\n <MapOverlayPage backdrop className='tw-h-fit tw-min-h-56 tw-w-96'>\n <div className='tw-text-center tw-text-xl tw-font-bold'>Gratitude</div>\n <div className='tw-text-center tw-text-base tw-text-gray-400'>to</div>\n <div className='tw-flex tw-flex-row tw-justify-center tw-items-center tw-flex-wrap'>\n {users &&\n users.map(\n (u, k) => (\n <div key={k} className='tw-flex tw-items-center tw-space-x-3 tw-mx-2 tw-my-1'>\n {u.image ? (\n <div className='tw-avatar'>\n <div className='tw-mask tw-mask-circle tw-w-8 tw-h-8'>\n <img\n src={appState.assetsApi.url + u.image + '?width=40&heigth=40'}\n alt='Avatar'\n />\n </div>\n </div>\n ) : (\n <div className='tw-mask tw-mask-circle tw-text-xl md:tw-text-2xl tw-bg-slate-200 tw-rounded-full tw-w-8 tw-h-8'></div>\n )}\n <div>\n <div className='tw-font-bold'>{u.name}</div>\n </div>\n </div>\n ),\n ', ',\n )}\n </div>\n\n <div className='tw-w-full'>\n <div className='tw-flex tw-justify-center tw-items-center'>\n <div className=' tw-flex tw-justify-center tw-items-center tw-w-28 tw-h-28 tw-m-4'>\n <EmojiPicker\n selectedEmoji={selectedEmoji}\n selectedColor={selectedColor}\n selectedShape={selectedShape}\n setSelectedEmoji={setSelectedEmoji}\n setSelectedColor={setSelectedColor}\n setSelectedShape={setSelectedShape}\n />\n </div>\n </div>\n <div className='tw-flex tw-justify-center tw-items-center'>\n <input\n ref={inputRef}\n value={inputValue}\n onChange={handleChange}\n type='text'\n placeholder='... and say some words'\n className='tw-input tw-min-w-0 tw-w-fit tw-resize-none tw-overflow-hidden tw-text-center '\n />\n </div>\n </div>\n <div className='tw-w-full tw-grid tw-mt-4'>\n <button onClick={sendAttestation} className='tw-btn tw-place-self-center tw-px-8'>\n Next\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n\nimport { Tag } from '#src/types'\nimport { decodeTag } from '#utils/FormatTags'\n\nexport const TagView = ({\n tag,\n heighlight,\n onClick,\n count,\n}: {\n tag: Tag\n heighlight?: boolean\n onClick?: (/* e */) => void\n count?: number\n}) => {\n return (\n // Use your imagination to render suggestions.\n\n <div\n key={tag.name}\n onClick={onClick}\n className={`tw-flex tw-items-center tw-flex-row tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mt-3 tw-mr-4 tw-cursor-pointer tw-w-fit ${heighlight && 'tw-border-4 tw-border-base-200 tw-shadow-lg'}`}\n style={{ backgroundColor: tag.color ? tag.color : '#666' }}\n >\n <b>{decodeTag(tag.name)}</b>\n {count && <span className='tw-ml-2'>({count})</span>}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { Tag } from '#src/types'\nimport { getValue } from '#utils/GetValue'\n\nimport { MapOverlayPage } from './MapOverlayPage'\nimport { TagView } from './TagView'\n\nfunction groupAndCount(arr) {\n const grouped = arr.reduce((acc, obj) => {\n const found = acc.find((item) => JSON.stringify(item.object) === JSON.stringify(obj))\n\n if (found) {\n found.count += 1\n } else {\n acc.push({ object: obj, count: 1 })\n }\n\n return acc\n }, [])\n\n return grouped.sort((a, b) => b.count - a.count)\n}\n\nexport const MarketView = () => {\n const [offers, setOffers] = useState<Tag[]>([])\n const [needs, setNeeds] = useState<Tag[]>([])\n const navigate = useNavigate()\n\n const items = useItems()\n const tags = useTags()\n\n useEffect(() => {\n setOffers([])\n setNeeds([])\n items.map((i) => {\n i.layer?.itemOffersField &&\n getValue(i, i.layer.itemOffersField)?.map((o) => {\n const tag = tags.find((t) => t.id === o.tags_id)\n tag && setOffers((current) => [...current, tag])\n return null\n })\n i.layer?.itemNeedsField &&\n getValue(i, i.layer.itemNeedsField)?.map((n) => {\n const tag = tags.find((t) => t.id === n.tags_id)\n tag && setNeeds((current) => [...current, tag])\n return null\n })\n return null\n })\n // eslint-disable-next-line no-console\n console.log(offers)\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n return (\n <MapOverlayPage className='tw-rounded-none tw-overflow-y-auto tw-bg-base-200 !tw-p-4'>\n <div className='tw-grid tw-grid-cols-1 md:tw-grid-cols-2'>\n <div>\n <p className='tw-text-lg tw-font-bold'>Offers</p>\n <div className='tw-flex tw-flex-wrap'>\n {groupAndCount(offers).map((o) => (\n <TagView\n onClick={() => navigate(`/?tags=${o.object.name}`)}\n key={o.object.id}\n tag={o.object}\n count={o.count}\n ></TagView>\n ))}\n </div>\n </div>\n <div>\n <p className='tw-text-lg tw-font-bold'>Needs</p>\n <div className='tw-flex tw-flex-wrap'>\n {groupAndCount(needs).map((o) => (\n <TagView\n onClick={() => navigate(`/?tags=${o.object.name}`)}\n key={o.object.id}\n tag={o.object}\n count={o.count}\n ></TagView>\n ))}\n </div>\n </div>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '#components/Auth'\nimport { TextInput } from '#components/Input'\nimport { MapOverlayPage } from '#components/Templates'\nimport { UserItem } from '#src/types'\n\nexport function UserSettings() {\n const { user, updateUser, loading /* token */ } = useAuth()\n\n const [id, setId] = useState<string>('')\n const [email, setEmail] = useState<string>('')\n const [password, setPassword] = useState<string>('')\n\n const [passwordChanged, setPasswordChanged] = useState<boolean>(false)\n\n const navigate = useNavigate()\n\n useEffect(() => {\n setId(user?.id ? user.id : '')\n setEmail(user?.email ? user.email : '')\n setPassword(user?.password ? user.password : '')\n }, [user])\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem\n\n changedUser = { id, email, ...(passwordChanged && { password }) }\n\n toast\n .promise(updateUser(changedUser), {\n pending: 'updating Profile ...',\n success: 'Profile updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .then(() => navigate('/'))\n .catch((e) => {\n throw e\n })\n }\n\n return (\n <MapOverlayPage\n backdrop\n className='tw-mx-4 tw-mt-4 tw-max-h-[calc(100dvh-96px)] tw-h-fit md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-max-w-xl !tw-left-auto tw-top-0 tw-bottom-0'\n >\n <div className={'tw-text-xl tw-font-semibold'}>Settings</div>\n <div className='tw-divider tw-mt-2'></div>\n <div className='tw-grid tw-grid-cols-1 tw-gap-6'>\n <TextInput\n type='email'\n placeholder='new E-Mail'\n defaultValue={user?.email ? user.email : ''}\n updateFormValue={(v) => setEmail(v)}\n />\n <TextInput\n type='password'\n placeholder='new Password'\n defaultValue={user?.password ? user.password : ''}\n updateFormValue={(v) => {\n setPassword(v)\n setPasswordChanged(true)\n }}\n />\n {/* <ToogleInput updateType=\"syncData\" labelTitle=\"Sync Data\" defaultValue={true} updateFormValue={updateFormValue}/> */}\n </div>\n\n <div className='tw-mt-8'>\n <button\n className={\n loading\n ? ' tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right'\n : 'tw-btn tw-btn-primary tw-float-right'\n }\n onClick={() => onUpdateUser()}\n >\n Update\n </button>\n </div>\n </MapOverlayPage>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { toast } from 'react-toastify'\n\nimport { Item } from '#src/types'\nimport { encodeTag } from '#utils/FormatTags'\nimport { hashTagRegex } from '#utils/HashTagRegex'\nimport { randomColor } from '#utils/RandomColor'\n\n// eslint-disable-next-line promise/avoid-new\nconst sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms))\n\nexport const submitNewItem = async (\n evt: any,\n type: string,\n item,\n user,\n setLoading,\n tags,\n addTag,\n addItem,\n linkItem,\n resetFilterTags,\n layers,\n addItemPopupType,\n setAddItemPopupType,\n) => {\n evt.preventDefault()\n const formItem: Item = {} as Item\n Array.from(evt.target).forEach((input: HTMLInputElement) => {\n if (input.name) {\n formItem[input.name] = input.value\n }\n })\n setLoading(true)\n formItem.text &&\n formItem.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() })\n }\n return null\n })\n const uuid = crypto.randomUUID()\n\n const layer = layers.find(\n (l) => l.name.toLocaleLowerCase().replace('s', '') === addItemPopupType.toLocaleLowerCase(),\n )\n\n let success = false\n try {\n await layer?.api?.createItem!({ ...formItem, id: uuid, type, parent: item.id })\n await linkItem(uuid)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n addItem({ ...formItem, id: uuid, type, layer, user_created: user, parent: item.id })\n toast.success('New item created')\n resetFilterTags()\n }\n setLoading(false)\n setAddItemPopupType('')\n}\n\nexport const linkItem = async (id: string, item, updateItem) => {\n const newRelations = item.relations || []\n newRelations?.push({ items_id: item.id, related_items_id: id })\n const updatedItem = { id: item.id, relations: newRelations }\n\n let success = false\n try {\n await item?.layer?.api?.updateItem!(updatedItem)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...item, relations: newRelations })\n toast.success('Item linked')\n }\n}\n\nexport const unlinkItem = async (id: string, item, updateItem) => {\n const newRelations = item.relations?.filter((r) => r.related_items_id !== id)\n const updatedItem = { id: item.id, relations: newRelations }\n\n let success = false\n try {\n await item?.layer?.api?.updateItem!(updatedItem)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n updateItem({ ...item, relations: newRelations })\n toast.success('Item unlinked')\n }\n}\n\nexport const handleDelete = async (\n event: React.MouseEvent<HTMLElement>,\n item,\n setLoading,\n removeItem,\n map,\n navigate,\n) => {\n event.stopPropagation()\n setLoading(true)\n let success = false\n try {\n await item.layer?.api?.deleteItem!(item.id)\n success = true\n // eslint-disable-next-line no-catch-all/no-catch-all\n } catch (error) {\n toast.error(error.toString())\n }\n if (success) {\n removeItem(item)\n toast.success('Item deleted')\n }\n setLoading(false)\n map.closePopup()\n const params = new URLSearchParams(window.location.search)\n window.history.pushState({}, '', '/' + `${params ? `?${params}` : ''}`)\n navigate('/')\n}\n\nexport const onUpdateItem = async (\n state,\n item,\n tags,\n addTag,\n setLoading,\n navigate,\n updateItem,\n addItem,\n user,\n params,\n) => {\n let changedItem = {} as Item\n\n const offerUpdates: any[] = []\n // check for new offers\n await state.offers?.map((o) => {\n const existingOffer = item?.offers?.find((t) => t.tags_id === o.id)\n existingOffer && offerUpdates.push(existingOffer.id)\n if (!existingOffer && !tags.some((t) => t.id === o.id)) addTag({ ...o, offer_or_need: true })\n !existingOffer && offerUpdates.push({ items_id: item?.id, tags_id: o.id })\n return null\n })\n\n const needsUpdates: any[] = []\n\n await state.needs?.map((n) => {\n const existingNeed = item?.needs?.find((t) => t.tags_id === n.id)\n existingNeed && needsUpdates.push(existingNeed.id)\n !existingNeed && needsUpdates.push({ items_id: item?.id, tags_id: n.id })\n !existingNeed && !tags.some((t) => t.id === n.id) && addTag({ ...n, offer_or_need: true })\n return null\n })\n\n // update profile item in current state\n changedItem = {\n id: state.id,\n name: state.name,\n subname: state.subname,\n text: state.text,\n ...(state.color && { color: state.color }),\n position: item.position,\n ...(state.group_type && { group_type: state.group_type }),\n ...(state.status && { status: state.status }),\n contact: state.contact,\n telephone: state.telephone,\n ...(state.end && { end: state.end }),\n ...(state.start && { start: state.start }),\n ...(state.marker_icon && { markerIcon: state.marker_icon }),\n next_appointment: state.next_appointment,\n ...(state.image.length > 10 && { image: state.image }),\n ...(state.offers.length > 0 && { offers: offerUpdates }),\n ...(state.needs.length > 0 && { needs: needsUpdates }),\n }\n\n const offersState: any[] = []\n const needsState: any[] = []\n\n state.offers.map((o) => {\n offersState.push({ items_id: item?.id, tags_id: o.id })\n return null\n })\n\n state.needs.map((n) => {\n needsState.push({ items_id: item?.id, tags_id: n.id })\n return null\n })\n\n changedItem = { ...changedItem, offers: offersState, needs: needsState }\n\n setLoading(true)\n\n await state.text\n .toLocaleLowerCase()\n .match(hashTagRegex)\n ?.map((tag) => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({\n id: crypto.randomUUID(),\n name: encodeTag(tag.slice(1).toLocaleLowerCase()),\n color: randomColor(),\n })\n }\n return null\n })\n\n // take care that addTag request comes before item request\n await sleep(200)\n\n if (!item.new) {\n item?.layer?.api?.updateItem &&\n toast\n .promise(item?.layer?.api?.updateItem(changedItem), {\n pending: 'updating Item ...',\n success: 'Item updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .catch(setLoading(false))\n .then(() => item && updateItem({ ...item, ...changedItem }))\n .then(() => {\n setLoading(false)\n navigate(`/item/${item.id}${params && '?' + params}`)\n return null\n })\n } else {\n item.new = false\n item.layer?.api?.createItem &&\n toast\n .promise(item.layer?.api?.createItem(changedItem), {\n pending: 'updating Item ...',\n success: 'Item updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .catch(setLoading(false))\n .then(\n () =>\n item &&\n addItem({\n ...item,\n ...changedItem,\n layer: item.layer,\n user_created: user,\n type: item.layer?.itemType,\n }),\n )\n .then(() => {\n setLoading(false)\n navigate(`/${params && '?' + params}`)\n return null\n })\n }\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\nimport { useEffect, useState } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { Item } from '#src/types'\n\nexport const ContactInfoView = ({ item, heading }: { item: Item; heading: string }) => {\n const appState = useAppState()\n const [profileOwner, setProfileOwner] = useState<Item>()\n const items = useItems()\n\n useEffect(() => {\n // eslint-disable-next-line no-console\n console.log(\n 'user:',\n items.find(\n (i) =>\n i.user_created?.id === item.user_created?.id &&\n i.layer?.itemType.name === appState.userType,\n ),\n )\n\n setProfileOwner(\n items.find(\n (i) =>\n i.user_created?.id === item.user_created?.id &&\n i.layer?.itemType.name === appState.userType,\n ),\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, items])\n\n return (\n <div className='tw-bg-base-200 tw-mb-6 tw-mt-6 tw-p-6'>\n <h2 className='tw-text-lg tw-font-semibold'>{heading}</h2>\n <div className='tw-mt-4 tw-flex tw-items-center'>\n {profileOwner?.image && (\n <ConditionalLink url={'/item/' + profileOwner?.id}>\n <div className='tw-mr-5 tw-flex tw-items-center tw-justify-center'>\n <div className='tw-avatar'>\n <div className='tw-w-20 tw-h-20 tw-bg-gray-200 rounded-full tw-flex tw-items-center tw-justify-center overflow-hidden'>\n <img\n src={appState.assetsApi.url + profileOwner?.image}\n alt={profileOwner?.name}\n className='tw-w-full tw-h-full tw-object-cover'\n />\n </div>\n </div>\n </div>\n </ConditionalLink>\n )}\n <div className='tw-text-sm tw-flex-grow'>\n <p className='tw-font-semibold'>{profileOwner?.name}</p>\n {item.contact && (\n <p>\n <a\n href={`mailto:${item.contact}`}\n className='tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='tw-w-4 tw-h-4 tw-mr-1'\n >\n <path d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'></path>\n <polyline points='22,6 12,13 2,6'></polyline>\n </svg>\n {item.contact}\n </a>\n </p>\n )}\n {item.telephone && (\n <p>\n <a\n href={`tel:${item.telephone}`}\n className='tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center tw-whitespace-nowrap'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='tw-w-4 tw-h-4 tw-mr-1'\n >\n <path d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z' />\n </svg>\n {item.telephone}\n </a>\n </p>\n )}\n </div>\n </div>\n </div>\n )\n}\n\n// eslint-disable-next-line react/prop-types\nconst ConditionalLink = ({ url, children }) => {\n const params = new URLSearchParams(window.location.search)\n\n if (url) {\n return <Link to={url + '?' + params}>{children}</Link>\n }\n return children\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\nimport { cloneElement } from 'react'\n\nconst platformConfigs = {\n facebook: {\n shareUrl: 'https://www.facebook.com/sharer/sharer.php?u={url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M18 2h-3a5 5 0 00-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z' />\n </svg>\n ),\n bgColor: '#3b5998',\n },\n twitter: {\n shareUrl: 'https://twitter.com/intent/tweet?text={title}:%20{url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M23 3a10.9 10.9 0 01-3.14 1.53 4.48 4.48 0 00-7.86 3v1A10.66 10.66 0 013 4s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5a4.5 4.5 0 00-.08-.83A7.72 7.72 0 0023 3z' />\n </svg>\n ),\n bgColor: '#55acee',\n },\n linkedin: {\n shareUrl: 'http://www.linkedin.com/shareArticle?mini=true&url={url}&title={title}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6zM2 9h4v12H2z' />\n <circle cx='4' cy='4' r='2' />\n </svg>\n ),\n bgColor: '#4875b4',\n },\n xing: {\n shareUrl: 'https://www.xing-share.com/app/user?op=share;sc_p=xing-share;url={url}',\n icon: (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'>\n <path d='M18.188 0c-.517 0-.741.325-.927.66 0 0-7.455 13.224-7.702 13.657.015.024 4.919 9.023 4.919 9.023.17.308.436.66.967.66h3.454c.211 0 .375-.078.463-.22.089-.151.089-.346-.009-.536l-4.879-8.916c-.004-.006-.004-.016 0-.022L22.139.756c.095-.191.097-.387.006-.535C22.056.078 21.894 0 21.686 0h-3.498zM3.648 4.74c-.211 0-.385.074-.473.216-.09.149-.078.339.02.531l2.34 4.05c.004.01.004.016 0 .021L1.86 16.051c-.099.188-.093.381 0 .529.085.142.239.234.45.234h3.461c.518 0 .766-.348.945-.667l3.734-6.609-2.378-4.155c-.172-.315-.434-.659-.962-.659H3.648v.016z' />\n </svg>\n ),\n bgColor: '#026466',\n },\n whatsapp: {\n shareUrl: 'https://api.whatsapp.com/send?text={title}%20{url}',\n icon: (\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z'></path>\n </svg>\n ),\n bgColor: '#25D366',\n },\n telegram: {\n shareUrl: 'https://t.me/share/url?url={url}&text={title}',\n icon: (\n <svg\n stroke='white'\n fill='white'\n strokeWidth='0'\n viewBox='0 0 448 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z'></path>\n </svg>\n ),\n bgColor: '#0088cc',\n },\n}\n\nconst SocialShareButton = ({\n platform,\n url,\n title,\n}: {\n platform: string\n url: string\n title: string\n}) => {\n // eslint-disable-next-line security/detect-object-injection\n const config = platformConfigs[platform]\n\n if (!config) {\n return null\n }\n\n const { shareUrl, icon, bgColor } = config\n const finalShareUrl = shareUrl\n .replace('{url}', encodeURIComponent(url))\n .replace('{title}', encodeURIComponent(title))\n\n return (\n <a\n href={finalShareUrl}\n target='_blank'\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white'\n style={{\n color: 'white',\n backgroundColor: bgColor,\n }}\n title={`share link on ${platform}`}\n >\n {cloneElement(icon, { className: 'tw-w-4 tw-h-4 tw-fill-current' })}\n </a>\n )\n}\n\nexport default SocialShareButton\n","import { toast } from 'react-toastify'\n\nimport SocialShareButton from './SocialShareButton'\n\nconst SocialShareBar = ({\n url,\n title,\n platforms = ['facebook', 'twitter', 'linkedin', 'xing', 'email'],\n}: {\n url: string\n title: string\n platforms?: string[]\n}) => {\n const copyLink = () => {\n navigator.clipboard\n .writeText(url)\n .then(() => {\n toast.success('link copied to clipboard')\n return null\n })\n // eslint-disable-next-line promise/prefer-await-to-callbacks\n .catch((error: never) => {\n toast.error('Fehler beim Kopieren des Links: ', error)\n })\n }\n return (\n <div className='tw-flex tw-place-content-end tw-justify-end tw-space-x-2 tw-grow tw-min-w-fit tw-pl-2'>\n {platforms.map((platform) => (\n <SocialShareButton key={platform} platform={platform} url={url} title={title} />\n ))}\n {platforms.includes('email') && (\n <a\n href={`mailto:?subject=${title}&body=${url}`}\n target='_blank'\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white hover:tw-cursor-pointer'\n style={{\n color: 'white',\n backgroundColor: '#444',\n }}\n onClick={() => copyLink()}\n title='share link via email'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n fill='white'\n className='tw-h-4 tw-w-4'\n >\n <path d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z' />\n </svg>\n </a>\n )}\n {platforms.includes('clipboard') && (\n <div\n rel='noopener noreferrer'\n className='tw-w-8 tw-h-8 tw-mt-2 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-white hover:tw-cursor-pointer'\n style={{\n color: 'white',\n backgroundColor: '#888',\n }}\n onClick={() => copyLink()}\n title='copy Link'\n >\n <svg\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 256 256'\n height='1.5em'\n width='1.5em'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M180,64H40A12,12,0,0,0,28,76V216a12,12,0,0,0,12,12H180a12,12,0,0,0,12-12V76A12,12,0,0,0,180,64ZM168,204H52V88H168ZM228,40V180a12,12,0,0,1-24,0V52H76a12,12,0,0,1,0-24H216A12,12,0,0,1,228,40Z'></path>\n </svg>\n </div>\n )}\n </div>\n )\n}\n\nexport default SocialShareBar\n","import { Item } from '#src/types'\n\nimport SocialShareBar from './SocialShareBar'\n\nexport const GroupSubHeaderView = ({\n item,\n shareBaseUrl,\n platforms,\n}: {\n item: Item\n shareBaseUrl: string\n platforms?: string[]\n}) => (\n <div className='tw-px-6'>\n <div className='tw-float-left tw-mt-2 tw-mb-4 tw-flex tw-items-center'>\n {item.status && (\n <div className='tw-mt-1.5'>\n <span className='tw-text-sm tw-text-current tw-bg-base-300 tw-rounded tw-py-0.5 tw-px-2 tw-inline-flex tw-items-center tw-mr-2'>\n {item.status}\n </span>\n </div>\n )}\n {item.group_type && (\n <div className='tw-mt-1.5'>\n <span className='tw-text-sm tw-text-current tw-bg-base-300 tw-rounded tw-py-1 tw-px-2'>\n {item.group_type}\n </span>\n </div>\n )}\n </div>\n <div>\n <SocialShareBar\n url={\n shareBaseUrl && item.slug\n ? shareBaseUrl + item.slug\n : window.location.protocol + '//' + window.location.host + '/item/' + item.id\n }\n title={item.name}\n platforms={platforms}\n />\n </div>\n </div>\n)\n","import { StartEndView } from '#components/Map'\nimport { Item } from '#src/types'\n\nexport const ProfileStartEndView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-mt-2 tw-px-6 tw-max-w-xs'>\n <StartEndView item={item}></StartEndView>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { TextView } from '#components/Map'\nimport { Item } from '#src/types'\nimport { getValue } from '#utils/GetValue'\n\nexport const ProfileTextView = ({\n item,\n dataField,\n heading,\n hideWhenEmpty,\n}: {\n item: Item\n dataField: string\n heading: string\n hideWhenEmpty: boolean\n}) => {\n return (\n <div className='tw-my-10 tw-mt-2 tw-px-6'>\n {!(getValue(item, dataField) === '' && hideWhenEmpty) && (\n <h2 className='tw-text-lg tw-font-semibold'>{heading}</h2>\n )}\n <div className='tw-mt-2 tw-text-sm'>\n <TextView rawText={dataField ? getValue(item, dataField) : getValue(item, 'text')} />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n\nimport { ContactInfoView } from '#components/Profile/Subcomponents/ContactInfoView'\nimport { GroupSubHeaderView } from '#components/Profile/Subcomponents/GroupSubHeaderView'\nimport { ProfileStartEndView } from '#components/Profile/Subcomponents/ProfileStartEndView'\nimport { ProfileTextView } from '#components/Profile/Subcomponents/ProfileTextView'\nimport { Item } from '#src/types'\n\nconst componentMap = {\n groupSubheaders: GroupSubHeaderView,\n texts: ProfileTextView,\n contactInfos: ContactInfoView,\n startEnd: ProfileStartEndView,\n // weitere Komponenten hier\n}\n\nexport const FlexView = ({ item }: { item: Item }) => {\n // eslint-disable-next-line no-console\n console.log(item)\n return (\n <div className='tw-h-full tw-overflow-y-auto fade'>\n {item.layer?.itemType.profileTemplate.map((templateItem) => {\n const TemplateComponent = componentMap[templateItem.collection]\n return TemplateComponent ? (\n <TemplateComponent key={templateItem.id} item={item} {...templateItem.item} />\n ) : (\n <div key={templateItem.id}>Component not found</div>\n )\n })}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport { TextView } from '#components/Map'\nimport { ContactInfoView } from '#components/Profile/Subcomponents/ContactInfoView'\nimport { GroupSubHeaderView } from '#components/Profile/Subcomponents/GroupSubHeaderView'\nimport { Item } from '#src/types'\n\nexport const OnepagerView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-h-full tw-overflow-y-auto fade'>\n <GroupSubHeaderView\n item={item}\n shareBaseUrl={`https://www.wuerdekompass.org/aktivitaeten/gruppensuche/#/gruppe/${item.slug}`}\n />\n {item.user_created.first_name && <ContactInfoView heading='Du hast Fragen?' item={item} />}\n {/* Description Section */}\n <div className='tw-my-10 tw-mt-2 tw-px-6 tw-text-sm '>\n <TextView rawText={item.text || 'Keine Beschreibung vorhanden'} />\n </div>\n {/* Next Appointment Section */}\n {item.next_appointment && (\n <div className='tw-my-10 tw-px-6'>\n <h2 className='tw-text-lg tw-font-semibold'>Nächste Termine</h2>\n <div className='tw-mt-2 tw-text-sm'>\n <TextView rawText={item.next_appointment} />\n </div>\n </div>\n )}\n ;{/* Relations Section */}\n {/* {d.relations && ( */}\n {/* <div className=\"tw-my-10 tw-px-6\"> */}\n {/* <h2 className=\"tw-text-lg tw-font-semibold tw-mb-4\">Projekte</h2> */}\n {/* {d.relations.map((project, index) => ( */}\n {/* <RelationCard */}\n {/* key={index} */}\n {/* title={project.title} */}\n {/* description={project.description} */}\n {/* imageSrc={project.imageSrc} */}\n {/* /> */}\n {/* ))} */}\n {/* </div> */}\n {/* )} */}\n </div>\n )\n}\n","import { TextView } from '#components/Map'\nimport { Item } from '#src/types'\n\nexport const SimpleView = ({ item }: { item: Item }) => {\n return (\n <div className='tw-mt-8 tw-h-full tw-overflow-y-auto fade tw-px-6'>\n <TextView item={item} />\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useState } from 'react'\n\nimport { TextInput } from '#components/Input'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport { useGetItemTags } from '#components/Map/hooks/useTags'\nimport { HeaderView } from '#components/Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport DialogModal from '#components/Templates/DialogModal'\nimport { Item } from '#src/types'\nimport { getValue } from '#utils/GetValue'\n\nexport function ActionButton({\n item,\n triggerAddButton,\n triggerItemSelected,\n existingRelations,\n itemType,\n colorField,\n collection = 'items',\n customStyle,\n}: {\n triggerAddButton?: any\n triggerItemSelected?: any\n existingRelations: Item[]\n itemType?: string\n colorField?: string\n collection?: string\n customStyle?: string\n item: Item\n}) {\n const hasUserPermission = useHasUserPermission()\n const [modalOpen, setModalOpen] = useState<boolean>(false)\n const [search, setSearch] = useState<string>('')\n const getItemTags = useGetItemTags()\n\n const items = useItems()\n\n const filterdItems = items\n .filter((i) => !itemType || i.layer?.itemType.name === itemType)\n .filter((i) => !existingRelations.some((s) => s.id === i.id))\n .filter((i) => i.id !== item.id)\n\n return (\n <>\n {hasUserPermission(collection, 'update', item) && (\n <>\n <div className={`tw-absolute tw-right-4 tw-bottom-4 tw-flex tw-flex-col ${customStyle}`}>\n {triggerItemSelected && (\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow'\n onClick={() => {\n setModalOpen(true)\n }}\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n <svg\n className='tw-h-5 tw-w-5'\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z'></path>\n </svg>\n </button>\n )}\n {triggerAddButton && (\n <button\n tabIndex={0}\n className='tw-z-500 tw-btn tw-btn-circle tw-shadow tw-mt-2'\n onClick={() => {\n triggerAddButton()\n }}\n style={{\n backgroundColor: `${colorField && getValue(item, colorField) ? getValue(item, colorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='4'\n stroke='currentColor'\n className='tw-w-5 tw-h-5'\n >\n <path strokeLinecap='round' strokeLinejoin='round' d='M12 4.5v15m7.5-7.5h-15' />\n </svg>\n </button>\n )}\n </div>\n <DialogModal\n title={'Select'}\n isOpened={modalOpen}\n onClose={() => setModalOpen(false)}\n className='tw-w-xl sm:tw-w-2xl tw-min-h-80 tw-bg-base-200'\n >\n <TextInput\n defaultValue=''\n placeholder='🔍 Search'\n containerStyle='lg:col-span-2 tw-m-4 '\n updateFormValue={(val) => {\n setSearch(val)\n }}\n ></TextInput>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2'>\n {filterdItems\n .filter((item) => {\n return search === ''\n ? item\n : item.name.toLowerCase().includes(search.toLowerCase())\n })\n .map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-bg-base-100 tw-text-base-content tw-mx-4 tw-p-4 tw-mb-4 tw-h-fit'\n onClick={() => {\n triggerItemSelected(i.id)\n setModalOpen(false)\n }}\n >\n <HeaderView item={i} hideMenu></HeaderView>\n </div>\n ))}\n </div>\n </DialogModal>\n </>\n )}\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useEffect } from 'react'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { Item } from '#src/types'\nimport { getValue } from '#utils/GetValue'\n\nexport function LinkedItemsHeaderView({\n item,\n unlinkCallback,\n itemNameField,\n itemAvatarField,\n loading,\n unlinkPermission,\n itemSubnameField,\n}: {\n item: Item\n unlinkCallback?: any\n itemNameField?: string\n itemAvatarField?: string\n itemSubnameField?: string\n loading?: boolean\n unlinkPermission: boolean\n}) {\n const appState = useAppState()\n\n const avatar =\n itemAvatarField && getValue(item, itemAvatarField)\n ? appState.assetsApi.url + getValue(item, itemAvatarField)\n : item.layer?.itemAvatarField &&\n item &&\n getValue(item, item.layer?.itemAvatarField) &&\n appState.assetsApi.url + getValue(item, item.layer?.itemAvatarField)\n const title = itemNameField\n ? getValue(item, itemNameField)\n : item.layer?.itemNameField && item && getValue(item, item.layer.itemNameField)\n const subtitle = itemSubnameField\n ? getValue(item, itemSubnameField)\n : item.layer?.itemSubnameField && item && getValue(item, item.layer.itemSubnameField)\n\n useEffect(() => {}, [item])\n\n return (\n <>\n <div className='tw-flex tw-flex-row'>\n <div className={'tw-grow tw-max-w-[calc(100%-60px)] }'}>\n <div className='flex items-center'>\n {avatar && (\n <img\n className={'tw-w-10 tw-inline tw-rounded-full'}\n src={avatar}\n alt={item.name + ' logo'}\n />\n )}\n <div className={`${avatar ? 'tw-ml-2' : ''} tw-overflow-hidden`}>\n <div className={'tw-text-xl tw-font-semibold tw-truncate'}>{title}</div>\n {subtitle && (\n <div className='tw-text-xs tw-truncate tw-text-gray-500 '>{subtitle}</div>\n )}\n </div>\n </div>\n </div>\n <div className='tw-col-span-1' onClick={(e) => e.stopPropagation()}>\n {unlinkPermission && (\n <div className='tw-dropdown tw-dropdown-bottom'>\n <label\n tabIndex={0}\n className=' tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6'\n >\n <svg\n xmlns='http://www.w3.org/2000/svg'\n className='tw-h-5 tw-w-5'\n viewBox='0 0 20 20'\n fill='currentColor'\n >\n <path d='M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z' />\n </svg>\n </label>\n <ul\n tabIndex={0}\n className='tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000'\n >\n {true && (\n <li>\n <a\n className='tw-cursor-pointer !tw-text-error'\n onClick={() => unlinkCallback(item.id)}\n >\n {loading ? (\n <span className='tw-loading tw-loading-spinner tw-loading-sm'></span>\n ) : (\n <svg\n className='tw-h-5 tw-w-5'\n stroke='currentColor'\n fill='currentColor'\n strokeWidth='0'\n viewBox='0 0 512 512'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path d='M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z'></path>\n </svg>\n )}\n </a>\n </li>\n )}\n </ul>\n </div>\n )}\n </div>\n </div>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { StartEndView, TextView } from '#components/Map'\nimport { useAddFilterTag } from '#components/Map/hooks/useFilter'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { ActionButton } from '#components/Profile/Subcomponents/ActionsButton'\nimport { LinkedItemsHeaderView } from '#components/Profile/Subcomponents/LinkedItemsHeaderView'\nimport { TagView } from '#components/Templates/TagView'\nimport { Item, Tag } from '#src/types'\nimport { timeAgo } from '#utils/TimeAgo'\n\nexport const TabsView = ({\n attestations,\n item,\n offers,\n needs,\n relations,\n updatePermission,\n loading,\n linkItem,\n unlinkItem,\n}: {\n attestations: any[]\n item: Item\n offers: Tag[]\n needs: Tag[]\n relations: Item[]\n updatePermission: boolean\n loading: boolean\n linkItem: (id: string) => Promise<void>\n unlinkItem: (id: string) => Promise<void>\n}) => {\n const addFilterTag = useAddFilterTag()\n const [activeTab, setActiveTab] = useState<number>()\n const navigate = useNavigate()\n\n const [addItemPopupType] = useState<string>('')\n\n const items = useItems()\n const appState = useAppState()\n const getUserProfile = (id: string) => {\n return items.find(\n (i) => i.user_created.id === id && i.layer?.itemType.name === appState.userType,\n )\n }\n\n useEffect(() => {\n scroll()\n }, [addItemPopupType])\n\n function scroll() {\n tabRef.current?.scrollIntoView()\n }\n\n const tabRef = useRef<HTMLFormElement>(null)\n\n const updateActiveTab = useCallback(\n (id: number) => {\n setActiveTab(id)\n\n const params = new URLSearchParams(window.location.search)\n params.set('tab', `${id}`)\n const newUrl = location.pathname + '?' + params.toString()\n window.history.pushState({}, '', newUrl)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [location.pathname],\n )\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTab = params.get('tab')\n setActiveTab(urlTab ? Number(urlTab) : 1)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search])\n\n return (\n <div role='tablist' className='tw-tabs tw-tabs-lifted tw-mt-2 tw-mb-2 tw-px-6'>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label={`${item.layer?.itemType.icon_as_labels && activeTab !== 1 ? '📝' : '📝\\u00A0Info'}`}\n checked={activeTab === 1 && true}\n onChange={() => updateActiveTab(1)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-4 tw-mb-4 tw-overflow-x-hidden'\n >\n {item.layer?.itemType.show_start_end && (\n <div className='tw-max-w-xs'>\n <StartEndView item={item}></StartEndView>\n </div>\n )}\n <TextView item={item} />\n <div className='tw-h-4'></div>\n <TextView item={item} itemTextField='contact' />\n </div>\n {item.layer?.itemType.questlog && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label={`${item.layer.itemType.icon_as_labels && activeTab !== 2 ? '❤️' : '❤️\\u00A0Credibility'}`}\n checked={activeTab === 2 && true}\n onChange={() => updateActiveTab(2)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-4 tw-mb-4 tw-overflow-x-hidden'\n >\n <table className='sm:tw-table-sm md:tw-table-md'>\n <tbody>\n {attestations\n .filter((a) => a.to.some((t) => t.directus_users_id === item.user_created.id))\n .sort(\n (a, b) =>\n new Date(b.date_created).getTime() - new Date(a.date_created).getTime(),\n )\n .map((a, i) => (\n <tr key={i}>\n <td>\n <div\n className={`tw-cursor-pointer tw-text-3xl tw-mask tw-mask-${a.shape} tw-p-3 tw-mr-2 tw-shadow-xl tw-bg-[${a.color}]`}\n >\n {a.emoji}\n </div>\n </td>\n <td>\n <div className='tw-mr-2'>\n <i>{a.text}</i>\n </div>\n </td>\n <td>\n <Link to={'/item/' + getUserProfile(a.user_created.id)?.id}>\n <div className='flex items-center gap-3'>\n <div className='tw-avatar'>\n <div className='tw-mask tw-rounded-full h-8 w-8 tw-mr-2'>\n <img\n src={\n appState.assetsApi.url +\n getUserProfile(a.user_created.id)?.image\n }\n alt='Avatar Tailwind CSS Component'\n />\n </div>\n </div>\n <div>\n <div className='font-bold'>\n {getUserProfile(a.user_created.id)?.name}\n </div>\n <div className='tw-text-xs opacity-50 tw-text-zinc-500'>\n {timeAgo(a.date_created)}\n </div>\n </div>\n </div>\n </Link>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </>\n )}\n {item.layer?.itemType.offers_and_needs && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={`tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 ${!(item.layer.itemType.icon_as_labels && activeTab !== 3) && 'tw-min-w-[10.4em]'} [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]`}\n aria-label={`${item.layer.itemType.icon_as_labels && activeTab !== 3 ? '♻️' : '♻️\\u00A0Offers & Needs'}`}\n checked={activeTab === 3 && true}\n onChange={() => updateActiveTab(3)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-4 tw-pb-1'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1'>\n {offers.length > 0 ? (\n <div className='tw-col-span-1'>\n <h3 className='-tw-mb-2'>Offers</h3>\n <div className='tw-flex tw-flex-wrap tw-mb-4'>\n {offers.map((o) => (\n <TagView\n key={o.id}\n tag={o}\n onClick={() => {\n addFilterTag(o)\n }}\n />\n ))}\n </div>\n </div>\n ) : (\n ''\n )}\n {needs.length > 0 ? (\n <div className='tw-col-span-1'>\n <h3 className='-tw-mb-2 tw-col-span-1'>Needs</h3>\n <div className='tw-flex tw-flex-wrap tw-mb-4'>\n {needs.map((n) => (\n <TagView key={n.id} tag={n} onClick={() => addFilterTag(n)} />\n ))}\n </div>\n </div>\n ) : (\n ''\n )}\n </div>\n </div>\n </div>\n </>\n )}\n\n {item.layer?.itemType.relations && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className='tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n aria-label={`${item.layer.itemType.icon_as_labels && activeTab !== 7 ? '🔗' : '🔗\\u00A0Relations'}`}\n checked={activeTab === 7 && true}\n onChange={() => updateActiveTab(7)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-280px)] tw-overflow-y-auto tw-pt-4 tw-pb-1 -tw-mr-4 -tw-mb-4 tw-overflow-x-hidden'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2 md:tw-grid-cols-1 lg:tw-grid-cols-1 xl:tw-grid-cols-1 2xl:tw-grid-cols-2 tw-pb-4'>\n {relations &&\n relations.map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-bg-base-200 tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-text-base-content tw-p-6 tw-mr-4 tw-mb-4'\n onClick={() => navigate('/item/' + i.id)}\n >\n <LinkedItemsHeaderView\n unlinkPermission={updatePermission}\n item={i}\n unlinkCallback={unlinkItem}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n <TextView truncate item={i} />\n </div>\n </div>\n ))}\n {updatePermission && (\n <ActionButton\n collection='items'\n item={item}\n existingRelations={relations}\n triggerItemSelected={linkItem}\n colorField={item.layer.itemColorField}\n ></ActionButton>\n )}\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/await-thenable */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { LatLng } from 'leaflet'\nimport { useEffect, useState } from 'react'\nimport { useMap } from 'react-leaflet'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useClusterRef } from '#components/Map/hooks/useClusterRef'\nimport { useItems, useRemoveItem, useUpdateItem } from '#components/Map/hooks/useItems'\nimport { useLeafletRefs } from '#components/Map/hooks/useLeafletRefs'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport { useSelectPosition, useSetSelectPosition } from '#components/Map/hooks/useSelectPosition'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { HeaderView } from '#components/Map/Subcomponents/ItemPopupComponents/HeaderView'\nimport { MapOverlayPage } from '#components/Templates'\nimport { Item, ItemsApi, Tag } from '#src/types'\nimport { getValue } from '#utils/GetValue'\n\nimport { handleDelete, linkItem, unlinkItem } from './itemFunctions'\nimport { FlexView } from './Templates/FlexView'\nimport { OnepagerView } from './Templates/OnepagerView'\nimport { SimpleView } from './Templates/SimpleView'\nimport { TabsView } from './Templates/TabsView'\n\nexport function ProfileView({ attestationApi }: { attestationApi?: ItemsApi<any> }) {\n const [item, setItem] = useState<Item>()\n const [updatePermission, setUpdatePermission] = useState<boolean>(false)\n const [relations, setRelations] = useState<Item[]>([])\n const [offers, setOffers] = useState<Tag[]>([])\n const [needs, setNeeds] = useState<Tag[]>([])\n const [loading, setLoading] = useState<boolean>(false)\n const [template, setTemplate] = useState<string>('')\n\n const location = useLocation()\n const items = useItems()\n const updateItem = useUpdateItem()\n const map = useMap()\n const selectPosition = useSelectPosition()\n const removeItem = useRemoveItem()\n const tags = useTags()\n const navigate = useNavigate()\n const hasUserPermission = useHasUserPermission()\n const setSelectPosition = useSetSelectPosition()\n const clusterRef = useClusterRef()\n const leafletRefs = useLeafletRefs()\n const appState = useAppState()\n\n const [attestations, setAttestations] = useState<any[]>([])\n\n useEffect(() => {\n if (attestationApi) {\n attestationApi\n .getItems()\n .then((value) => {\n // eslint-disable-next-line no-console\n console.log(value)\n\n setAttestations(value)\n return null\n })\n // eslint-disable-next-line promise/prefer-await-to-callbacks\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error('Error fetching items:', error)\n })\n }\n }, [attestationApi])\n\n useEffect(() => {\n const itemId = location.pathname.split('/')[2]\n const item = items.find((i) => i.id === itemId)\n item && setItem(item)\n }, [items, location])\n\n useEffect(() => {\n setOffers([])\n setNeeds([])\n setRelations([])\n\n item?.layer?.itemOffersField &&\n getValue(item, item.layer.itemOffersField)?.map((o) => {\n const tag = tags.find((t) => t.id === o.tags_id)\n tag && setOffers((current) => [...current, tag])\n return null\n })\n item?.layer?.itemNeedsField &&\n getValue(item, item.layer.itemNeedsField)?.map((n) => {\n const tag = tags.find((t) => t.id === n.tags_id)\n tag && setNeeds((current) => [...current, tag])\n return null\n })\n item?.relations?.map((r) => {\n const item = items.find((i) => i.id === r.related_items_id)\n item && setRelations((current) => [...current, item])\n return null\n })\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, items])\n\n useEffect(() => {\n const setMap = async (marker, x) => {\n await map.setView(\n new LatLng(item?.position?.coordinates[1]!, item?.position?.coordinates[0]! + x / 4),\n undefined,\n )\n setTimeout(() => {\n marker.openPopup()\n }, 500)\n }\n if (item) {\n if (item.position) {\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === item)?.[1].marker\n marker &&\n clusterRef.hasLayer(marker) &&\n clusterRef?.zoomToShowLayer(marker, () => {\n const bounds = map.getBounds()\n const x = bounds.getEast() - bounds.getWest()\n setMap(marker, x)\n })\n } else {\n const parent = getFirstAncestor(item)\n const marker = Object.entries(leafletRefs).find((r) => r[1].item === parent)?.[1].marker\n marker &&\n clusterRef.hasLayer(marker) &&\n clusterRef?.zoomToShowLayer(marker, () => {\n const bounds = map.getBounds()\n const x = bounds.getEast() - bounds.getWest()\n setMap(marker, x)\n })\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item])\n\n const getFirstAncestor = (item: Item): Item | undefined => {\n const parent = items.find((i) => i.id === item.parent)\n if (parent?.parent) {\n return getFirstAncestor(parent)\n } else {\n return parent\n }\n }\n\n useEffect(() => {\n item && hasUserPermission('items', 'update', item) && setUpdatePermission(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item])\n\n useEffect(() => {\n selectPosition && map.closePopup()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectPosition])\n\n useEffect(() => {\n setTemplate(item?.layer?.itemType.template || appState.userType)\n }, [appState.userType, item])\n\n return (\n <>\n {item && (\n <MapOverlayPage\n key={item.id}\n className={`!tw-p-0 tw-mx-4 tw-mt-4 tw-mb-4 md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-min-w-80 tw-max-w-3xl !tw-left-0 sm:!tw-left-auto tw-top-0 tw-bottom-0 tw-transition-opacity tw-duration-500 ${!selectPosition ? 'tw-opacity-100 tw-pointer-events-auto' : 'tw-opacity-0 tw-pointer-events-none'}`}\n >\n <>\n <div className={'tw-px-6 tw-pt-6'}>\n <HeaderView\n api={item.layer?.api}\n item={item}\n deleteCallback={(e) => handleDelete(e, item, setLoading, removeItem, map, navigate)}\n editCallback={() => navigate('/edit-item/' + item.id)}\n setPositionCallback={() => {\n map.closePopup()\n setSelectPosition(item)\n navigate('/')\n }}\n big\n truncateSubname={false}\n />\n </div>\n\n {template === 'onepager' && <OnepagerView item={item} />}\n\n {template === 'simple' && <SimpleView item={item} />}\n\n {template === 'flex' && <FlexView item={item} />}\n\n {template === 'tabs' && (\n <TabsView\n attestations={attestations}\n item={item}\n loading={loading}\n offers={offers}\n needs={needs}\n relations={relations}\n updatePermission={updatePermission}\n linkItem={(id) => linkItem(id, item, updateItem)}\n unlinkItem={(id) => unlinkItem(id, item, updateItem)}\n />\n )}\n </>\n </MapOverlayPage>\n )}\n </>\n )\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable @typescript-eslint/no-floating-promises */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\nimport { useState, useCallback, useRef } from 'react'\nimport { ReactCrop, centerCrop, makeAspectCrop } from 'react-image-crop'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\n// eslint-disable-next-line import/no-unassigned-import\nimport 'react-image-crop/dist/ReactCrop.css'\nimport DialogModal from '#components/Templates/DialogModal'\n\nimport type { Crop } from 'react-image-crop'\n\ninterface AvatarWidgetProps {\n avatar: string\n setAvatar: React.Dispatch<React.SetStateAction<any>>\n}\n\nexport const AvatarWidget: React.FC<AvatarWidgetProps> = ({ avatar, setAvatar }) => {\n const [crop, setCrop] = useState<Crop>()\n const [image, setImage] = useState<string>('')\n const [cropModalOpen, setCropModalOpen] = useState<boolean>(false)\n const [cropping, setCropping] = useState<boolean>(false)\n\n const appState = useAppState()\n\n const imgRef = useRef<HTMLImageElement>(null)\n\n const onImageChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n const file = event.target.files && event.target.files[0]\n if (file) {\n const validFormats = ['image/jpeg', 'image/png']\n const maxSizeMB = 10\n const maxSizeBytes = maxSizeMB * 1024 * 1024\n\n if (!validFormats.includes(file.type)) {\n alert('Unsupported file format. Please upload a JPEG or PNG image.')\n return\n }\n\n if (file.size > maxSizeBytes) {\n alert(`File size exceeds ${maxSizeMB}MB. Please upload a smaller image.`)\n return\n }\n\n setImage(URL.createObjectURL(file))\n setCropModalOpen(true)\n } else {\n alert('No file selected or an error occurred while selecting the file.')\n }\n }, [])\n\n const onImageLoad = useCallback((e: React.SyntheticEvent<HTMLImageElement>) => {\n const { width, height } = e.currentTarget\n setCrop(centerAspectCrop(width, height, 1))\n }, [])\n\n const centerAspectCrop = (mediaWidth: number, mediaHeight: number, aspect: number) => {\n return centerCrop(\n makeAspectCrop(\n {\n unit: 'px',\n width: mediaWidth / 2,\n },\n aspect,\n mediaWidth,\n mediaHeight,\n ),\n mediaWidth,\n mediaHeight,\n )\n }\n\n async function resizeImage(\n image: HTMLImageElement,\n maxWidth: number,\n maxHeight: number,\n ): Promise<HTMLImageElement> {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n\n let width = image.width\n let height = image.height\n\n if (width > maxWidth) {\n height *= maxWidth / width\n width = maxWidth\n }\n if (height > maxHeight) {\n width *= maxHeight / height\n height = maxHeight\n }\n\n canvas.width = width\n canvas.height = height\n\n if (ctx) {\n ctx.drawImage(image, 0, 0, width, height)\n }\n\n const resizedImage = new Image()\n resizedImage.src = canvas.toDataURL()\n\n await resizedImage.decode()\n return resizedImage\n }\n\n const renderCrop = useCallback(async () => {\n const image = imgRef.current\n if (crop && image) {\n const resizedImage = await resizeImage(image, 1024, 1024) // Bildgröße vor dem Zuschneiden reduzieren\n const scaleX = resizedImage.naturalWidth / resizedImage.width\n const scaleY = resizedImage.naturalHeight / resizedImage.height\n\n const canvas = new OffscreenCanvas(crop.width * scaleX, crop.height * scaleY)\n const ctx = canvas.getContext('2d')\n const pixelRatio = window.devicePixelRatio\n canvas.width = crop.width * pixelRatio * scaleX\n canvas.height = crop.height * pixelRatio * scaleY\n\n if (ctx) {\n ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0)\n ctx.drawImage(\n resizedImage,\n crop.x * scaleX,\n crop.y * scaleY,\n crop.width * scaleX,\n crop.height * scaleY,\n 0,\n 0,\n crop.width * scaleX,\n crop.height * scaleY,\n )\n }\n\n const blob = await canvas.convertToBlob()\n await resizeBlob(blob)\n setCropping(false)\n setImage('')\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [crop])\n\n const resizeBlob = useCallback(\n async (blob: Blob) => {\n const img = new Image()\n img.src = URL.createObjectURL(blob)\n await img.decode()\n\n const canvas = new OffscreenCanvas(400, 400)\n const ctx = canvas.getContext('2d')\n ctx?.drawImage(img, 0, 0, 400, 400)\n\n const resizedBlob = await canvas.convertToBlob()\n const asset = await appState.assetsApi.upload(resizedBlob, 'avatar')\n setAvatar(asset.id)\n },\n [appState.assetsApi, setAvatar],\n )\n\n return (\n <>\n {!cropping ? (\n <label className='custom-file-upload'>\n <input\n type='file'\n accept='image/*'\n className='tw-file-input tw-w-full tw-max-w-xs'\n onChange={onImageChange}\n />\n <div className='button tw-btn tw-btn-lg tw-btn-circle tw-animate-none'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth='1.5'\n stroke='currentColor'\n className='tw-w-6 tw-h-6'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5'\n />\n </svg>\n </div>\n {avatar ? (\n <div className='tw-h-20 tw-w-20'>\n <img\n src={appState.assetsApi.url + avatar}\n className='tw-h-20 tw-w-20 tw-rounded-full'\n />\n </div>\n ) : (\n <div className='tw-h-20 tw-w-20'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n version='1.0'\n viewBox='0 0 150 150'\n className='tw-w-20 tw-h-20 tw-rounded-full'\n style={{ backgroundColor: '#eee' }}\n >\n <path\n fill='#ccc'\n d='M 104.68731,56.689353 C 102.19435,80.640493 93.104981,97.26875 74.372196,97.26875 55.639402,97.26875 46.988823,82.308034 44.057005,57.289941 41.623314,34.938838 55.639402,15.800152 74.372196,15.800152 c 18.732785,0 32.451944,18.493971 30.315114,40.889201 z'\n />\n <path\n fill='#ccc'\n d='M 92.5675 89.6048 C 90.79484 93.47893 89.39893 102.4504 94.86478 106.9039 C 103.9375 114.2963 106.7064 116.4723 118.3117 118.9462 C 144.0432 124.4314 141.6492 138.1543 146.5244 149.2206 L 4.268444 149.1023 C 8.472223 138.6518 6.505799 124.7812 32.40051 118.387 C 41.80992 116.0635 45.66513 113.8823 53.58659 107.0158 C 58.52744 102.7329 57.52583 93.99267 56.43084 89.26926 C 52.49275 88.83011 94.1739 88.14054 92.5675 89.6048 z'\n />\n </svg>\n </div>\n )}\n </label>\n ) : (\n <div className='tw-w-20 tw-flex tw-items-center tw-justify-center'>\n <span className='tw-loading tw-loading-spinner'></span>\n </div>\n )}\n <DialogModal\n title=''\n isOpened={cropModalOpen}\n onClose={() => {\n setCropModalOpen(false)\n setImage('')\n }}\n closeOnClickOutside={false}\n >\n <ReactCrop crop={crop} onChange={(c) => setCrop(c)} aspect={1}>\n <img src={image} ref={imgRef} onLoad={onImageLoad} />\n </ReactCrop>\n <button\n className={'tw-btn tw-btn-primary'}\n onClick={() => {\n setCropping(true)\n setCropModalOpen(false)\n renderCrop()\n }}\n >\n Select\n </button>\n </DialogModal>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect } from 'react'\n\n// Improved version of https://usehooks.com/useOnClickOutside/\nconst useClickOutside = (ref, handler) => {\n useEffect(() => {\n let startedInside = false\n let startedWhenMounted = false\n\n const listener = (event) => {\n // Do nothing if `mousedown` or `touchstart` started inside ref element\n if (startedInside || !startedWhenMounted) return\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) return\n\n handler(event)\n }\n\n const validateEventStart = (event) => {\n startedWhenMounted = ref.current\n startedInside = ref.current && ref.current.contains(event.target)\n }\n\n document.addEventListener('mousedown', validateEventStart)\n document.addEventListener('touchstart', validateEventStart)\n document.addEventListener('click', listener)\n\n return () => {\n document.removeEventListener('mousedown', validateEventStart)\n document.removeEventListener('touchstart', validateEventStart)\n document.removeEventListener('click', listener)\n }\n }, [ref, handler])\n}\n\nexport default useClickOutside\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { HexColorPicker } from 'react-colorful'\n\n// eslint-disable-next-line import/no-unassigned-import\nimport './ColorPicker.css'\nimport useClickOutside from '#components/Profile/hooks/useClickOutside'\n\n// eslint-disable-next-line react/prop-types\nexport const ColorPicker = ({ color, onChange, className }) => {\n const popover = useRef<HTMLDivElement>(null)\n const [isOpen, toggle] = useState(false)\n\n const close = useCallback(() => toggle(false), [])\n useClickOutside(popover, close)\n\n const colorPickerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n // Füge dem Color-Picker explizit Event-Listener hinzu\n const colorPickerElement = colorPickerRef.current\n if (colorPickerElement) {\n const enablePropagation = (event) => {\n // Verhindere, dass Leaflet die Propagation stoppt\n event.stopPropagation = () => {}\n }\n\n // Event-Listener für den Color-Picker\n ;['click', 'dblclick', 'mousedown', 'touchstart'].forEach((eventType) => {\n colorPickerElement.addEventListener(eventType, enablePropagation, true)\n })\n }\n }, [])\n\n return (\n <div ref={colorPickerRef} className={`picker ${className}`}>\n <div className='swatch' style={{ backgroundColor: color }} onClick={() => toggle(true)} />\n\n {isOpen && (\n <div className='popover tw-z-[10000]' ref={popover}>\n <HexColorPicker color={color} onChange={onChange} onClick={() => toggle(false)} />\n </div>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable react/prop-types */\nimport { TextInput } from '#components/Input'\n\nimport { AvatarWidget } from './AvatarWidget'\nimport { ColorPicker } from './ColorPicker'\n\nexport const FormHeader = ({ item, state, setState }) => {\n return (\n <div className='tw-flex'>\n <AvatarWidget\n avatar={state.image}\n setAvatar={(i) =>\n setState((prevState) => ({\n ...prevState,\n image: i,\n }))\n }\n />\n <ColorPicker\n color={state.color}\n onChange={(c) =>\n setState((prevState) => ({\n ...prevState,\n color: c,\n }))\n }\n className={'-tw-left-6 tw-top-14 -tw-mr-6'}\n />\n <div className='tw-grow tw-mr-4'>\n <TextInput\n placeholder='Name'\n defaultValue={item?.name ? item.name : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n name: v,\n }))\n }\n containerStyle='tw-grow tw-input-md'\n />\n <TextInput\n placeholder='Subtitle'\n defaultValue={item?.subname ? item.subname : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n subname: v,\n }))\n }\n containerStyle='tw-grow tw-input-sm tw-px-4 tw-mt-1'\n />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { TextInput } from '#components/Input'\nimport { FormState } from '#src/types'\n\nexport const ContactInfoForm = ({\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n}) => {\n return (\n <div className='tw-mt-4 tw-space-y-4'>\n <div>\n <label\n htmlFor='email'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Email-Adresse (Kontakt):\n </label>\n <TextInput\n placeholder='Email'\n type='email'\n defaultValue={state.contact}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n contact: v,\n }))\n }\n />\n </div>\n\n <div>\n <label\n htmlFor='telephone'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Telefonnummer (Kontakt):\n </label>\n <TextInput\n placeholder='Telefonnummer'\n defaultValue={state.telephone}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n telephone: v,\n }))\n }\n />\n </div>\n </div>\n )\n}\n","interface ComboBoxProps {\n id?: string\n options: string[]\n value: string\n onValueChange: (newValue: string) => void\n}\n\nconst ComboBoxInput = ({ id, options, value, onValueChange }: ComboBoxProps) => {\n const handleChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const value = e.target.value\n onValueChange(value)\n }\n\n return (\n <select\n id={id}\n className='tw-form-select tw-block tw-w-full tw-py-2 tw-px-4 tw-border tw-border-gray-300 rounded-md tw-shadow-sm tw-text-sm focus:tw-outline-none focus:tw-ring-indigo-500 focus:tw-border-indigo-500 sm:tw-text-sm'\n onChange={handleChange}\n >\n {options.map((o) => (\n <option value={o} key={o} selected={o === value}>\n {o}\n </option>\n ))}\n </select>\n )\n}\n\nexport default ComboBoxInput\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { useEffect } from 'react'\n\nimport ComboBoxInput from '#components/Input/ComboBoxInput'\nimport { Item, FormState } from '#src/types'\n\ninterface groupType {\n groupTypes_id: {\n name: string\n color: string\n image: string\n markerIcon: string\n }\n}\n\nexport const GroupSubheaderForm = ({\n state,\n setState,\n groupStates,\n groupTypes,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n groupStates?: string[]\n groupTypes?: groupType[]\n}) => {\n useEffect(() => {\n if (groupTypes && groupStates) {\n const groupType = groupTypes.find((gt) => gt.groupTypes_id.name === state.group_type)\n // eslint-disable-next-line no-console\n console.log(state.group_type)\n setState((prevState) => ({\n ...prevState,\n color: groupType?.groupTypes_id.color || groupTypes[0].groupTypes_id.color,\n marker_icon: groupType?.groupTypes_id.markerIcon || groupTypes[0].groupTypes_id.markerIcon,\n image: groupType?.groupTypes_id.image || groupTypes[0].groupTypes_id.image,\n status: state.status || groupStates[0],\n group_type: state.group_type || groupTypes[0].groupTypes_id.name,\n }))\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.group_type, groupTypes])\n\n return (\n <div className='tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6'>\n <div>\n <label\n htmlFor='status'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenstatus:\n </label>\n <ComboBoxInput\n id='status'\n options={groupStates || []}\n value={state.status}\n onValueChange={(v) =>\n setState((prevState) => ({\n ...prevState,\n status: v,\n }))\n }\n />\n </div>\n <div>\n <label\n htmlFor='groupType'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenart:\n </label>\n <ComboBoxInput\n id='groupType'\n options={groupTypes?.map((gt) => gt.groupTypes_id.name) || []}\n value={state.group_type}\n onValueChange={(v) =>\n setState((prevState) => ({\n ...prevState,\n group_type: v,\n }))\n }\n />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { PopupStartEndInput } from '#components/Map'\nimport { Item } from '#src/types'\n\nexport const ProfileStartEndForm = ({\n item,\n setState,\n}: {\n item: Item\n setState: React.Dispatch<React.SetStateAction<any>>\n}) => {\n return (\n <PopupStartEndInput\n item={item}\n showLabels={false}\n updateEndValue={(e) =>\n setState((prevState) => ({\n ...prevState,\n end: e,\n }))\n }\n updateStartValue={(s) =>\n setState((prevState) => ({\n ...prevState,\n start: s,\n }))\n }\n ></PopupStartEndInput>\n )\n}\n","/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useState } from 'react'\n\nimport { TextAreaInput } from '#components/Input'\nimport { FormState } from '#src/types'\nimport { getValue } from '#utils/GetValue'\n\nexport const ProfileTextForm = ({\n state,\n setState,\n dataField,\n heading,\n size,\n hideInputLabel,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n dataField?: string\n heading: string\n size: string\n hideInputLabel: boolean\n}) => {\n const [field, setField] = useState<string>(dataField || 'text')\n\n useEffect(() => {\n if (!dataField) {\n setField('text')\n }\n }, [dataField])\n\n return (\n <div className='tw-h-full tw-flex tw-flex-col tw-mt-4'>\n <label\n htmlFor='nextAppointment'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n {heading || 'Text'}:\n </label>\n <TextAreaInput\n placeholder={'...'}\n defaultValue={getValue(state, field)}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n [field]: v,\n }))\n }\n labelStyle={hideInputLabel ? 'tw-hidden' : ''}\n containerStyle={size === 'full' ? 'tw-grow tw-h-full' : ''}\n inputStyle={size === 'full' ? 'tw-h-full' : 'tw-h-24'}\n />\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n\nimport { ContactInfoForm } from '#components/Profile/Subcomponents/ContactInfoForm'\nimport { GroupSubheaderForm } from '#components/Profile/Subcomponents/GroupSubheaderForm'\nimport { ProfileStartEndForm } from '#components/Profile/Subcomponents/ProfileStartEndForm'\nimport { ProfileTextForm } from '#components/Profile/Subcomponents/ProfileTextForm'\nimport { Item, FormState } from '#src/types'\n\nconst componentMap = {\n groupSubheaders: GroupSubheaderForm,\n texts: ProfileTextForm,\n contactInfos: ContactInfoForm,\n startEnd: ProfileStartEndForm,\n // weitere Komponenten hier\n}\n\nexport const FlexForm = ({\n item,\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n}) => {\n return (\n <div className='tw-mt-6 tw-flex tw-flex-col tw-h-full'>\n {item.layer?.itemType.profileTemplate.map((templateItem) => {\n const TemplateComponent = componentMap[templateItem.collection]\n return TemplateComponent ? (\n <TemplateComponent\n key={templateItem.id}\n state={state}\n setState={setState}\n item={item}\n {...templateItem.item}\n />\n ) : (\n <div key={templateItem.id}>Component not found</div>\n )\n })}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport { TextAreaInput } from '#components/Input'\nimport { ContactInfoForm } from '#components/Profile/Subcomponents/ContactInfoForm'\nimport { GroupSubheaderForm } from '#components/Profile/Subcomponents/GroupSubheaderForm'\nimport { FormState, Item } from '#src/types'\n\nexport const OnepagerForm = ({\n item,\n state,\n setState,\n}: {\n state: FormState\n setState: React.Dispatch<React.SetStateAction<any>>\n item: Item\n}) => {\n return (\n <div className='tw-space-y-6 tw-mt-6'>\n <GroupSubheaderForm state={state} setState={setState} item={item}></GroupSubheaderForm>\n <ContactInfoForm state={state} setState={setState}></ContactInfoForm>\n\n <div>\n <label\n htmlFor='description'\n className='tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1'\n >\n Gruppenbeschreibung:\n </label>\n <TextAreaInput\n placeholder='Beschreibung'\n defaultValue={state.text || ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n inputStyle='tw-h-48'\n />\n </div>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { TextAreaInput } from '#components/Input'\n\n// eslint-disable-next-line react/prop-types\nexport const SimpleForm = ({ state, setState }) => {\n return (\n <TextAreaInput\n placeholder='About me ...'\n // eslint-disable-next-line react/prop-types\n defaultValue={state?.text || ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n containerStyle='tw-mt-8 tw-h-full'\n inputStyle='tw-h-full'\n />\n )\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { useEffect, useRef, useState } from 'react'\n\nimport { TagView } from '#components/Templates/TagView'\n\nexport const Autocomplete = ({\n inputProps,\n suggestions,\n onSelected,\n pushFilteredSuggestions,\n setFocus,\n}: {\n inputProps: any\n suggestions: any[]\n onSelected: (suggestion) => void\n pushFilteredSuggestions?: any[]\n setFocus?: boolean\n}) => {\n const [filteredSuggestions, setFilteredSuggestions] = useState<any[]>([])\n const [heighlightedSuggestion, setHeighlightedSuggestion] = useState<number>(0)\n\n useEffect(() => {\n pushFilteredSuggestions && setFilteredSuggestions(pushFilteredSuggestions)\n }, [pushFilteredSuggestions])\n\n useEffect(() => {\n setFocus && inputRef.current?.focus()\n }, [setFocus])\n\n const inputRef = useRef<HTMLInputElement>()\n\n const getSuggestionValue = (suggestion) => suggestion.name\n\n const getSuggestions = (value) => {\n const inputValue = value.trim().toLowerCase()\n const inputLength = inputValue.length\n\n return inputLength === 0\n ? []\n : suggestions.filter((tag) => tag.name.toLowerCase().slice(0, inputLength) === inputValue)\n }\n\n const handleChange = (e) => {\n setFilteredSuggestions(getSuggestions(e.target.value))\n\n // Call the parent's onChange handler, if it exists\n if (inputProps.onChange) {\n inputProps.onChange(e)\n }\n }\n\n function handleSuggestionClick(suggestion) {\n onSelected(suggestion)\n }\n\n const handleKeyDown = (event) => {\n switch (event.key) {\n case 'ArrowDown':\n heighlightedSuggestion < filteredSuggestions.length - 1 &&\n setHeighlightedSuggestion((current) => current + 1)\n break\n case 'ArrowUp':\n heighlightedSuggestion > 0 && setHeighlightedSuggestion((current) => current - 1)\n break\n case 'Enter':\n if (filteredSuggestions.length > 0) {\n // eslint-disable-next-line security/detect-object-injection\n onSelected(filteredSuggestions[heighlightedSuggestion])\n setHeighlightedSuggestion(0)\n }\n filteredSuggestions.length === 0 && inputProps.onKeyDown(event)\n break\n default:\n inputProps.onKeyDown(event)\n break\n }\n }\n\n return (\n <div>\n <input\n ref={inputRef}\n {...inputProps}\n type='text'\n onChange={(e) => handleChange(e)}\n tabIndex='-1'\n onKeyDown={handleKeyDown}\n />\n <ul\n className={`tw-absolute tw-z-[4000] ${filteredSuggestions.length > 0 && 'tw-bg-base-100 tw-rounded-xl tw-p-2'}`}\n >\n {filteredSuggestions.map((suggestion, index) => (\n <li key={index} onClick={() => handleSuggestionClick(suggestion)}>\n <TagView heighlight={index === heighlightedSuggestion} tag={suggestion}></TagView>\n </li>\n ))}\n </ul>\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect, useState } from 'react'\n\nimport { Autocomplete } from '#components/Input/Autocomplete'\nimport { useTags } from '#components/Map/hooks/useTags'\nimport { Tag } from '#src/types'\nimport { decodeTag, encodeTag } from '#utils/FormatTags'\nimport { randomColor } from '#utils/RandomColor'\n\n// eslint-disable-next-line react/prop-types\nexport const TagsWidget = ({ placeholder, containerStyle, defaultTags, onUpdate }) => {\n const [input, setInput] = useState('')\n const [isKeyReleased, setIsKeyReleased] = useState(false)\n const tags = useTags()\n const [pushFilteredSuggestions, setPushFilteredSuggestions] = useState<any[]>([])\n\n const [focusInput, setFocusInput] = useState<boolean>(false)\n const [currentTags, setCurrentTags] = useState<Tag[]>(defaultTags)\n\n useEffect(() => {\n setCurrentTags(defaultTags)\n }, [defaultTags])\n\n const onChange = (e) => {\n const { value } = e.target\n setInput(value)\n }\n\n const onKeyDown = (e) => {\n const { key } = e\n const trimmedInput = input.trim()\n\n if (\n (key === 'Enter' || key === ',') &&\n trimmedInput.length &&\n // eslint-disable-next-line react/prop-types\n !defaultTags.some((tag) => tag.name.toLocaleLowerCase() === trimmedInput.toLocaleLowerCase())\n ) {\n e.preventDefault()\n const newTag = tags.find((t) => t.name === trimmedInput.toLocaleLowerCase())\n newTag && onUpdate([...currentTags, newTag])\n !newTag &&\n onUpdate([\n ...currentTags,\n { id: crypto.randomUUID(), name: encodeTag(trimmedInput), color: randomColor() },\n ])\n setInput('')\n setPushFilteredSuggestions([])\n }\n\n // eslint-disable-next-line react/prop-types\n if (key === 'Backspace' && !input.length && defaultTags.length && isKeyReleased) {\n const defaultTagsCopy = [...defaultTags]\n const poppedTag = defaultTagsCopy.pop()\n e.preventDefault()\n onUpdate(defaultTagsCopy)\n poppedTag && setInput(poppedTag.name)\n }\n\n setIsKeyReleased(false)\n }\n\n const onKeyUp = () => {\n setIsKeyReleased(true)\n }\n\n const deleteTag = (tag) => {\n onUpdate(currentTags.filter((t) => t !== tag))\n }\n\n const onSelected = (tag) => {\n // eslint-disable-next-line react/prop-types\n if (!defaultTags.some((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())) {\n const newTag = tags.find((t) => t.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())\n newTag && onUpdate([...currentTags, newTag])\n !newTag &&\n onUpdate([\n ...currentTags,\n { id: crypto.randomUUID(), name: tag.name.toLocaleLowerCase(), color: randomColor() },\n ])\n setInput('')\n setPushFilteredSuggestions([])\n }\n }\n\n const inputProps = {\n value: input,\n placeholder,\n onKeyDown,\n onKeyUp,\n onChange,\n className: 'tw-bg-transparent tw-w-fit tw-mt-5 tw-h-fit',\n }\n\n /* eslint-disable react/prop-types */\n return (\n <div\n onClick={() => {\n setFocusInput(true)\n setTimeout(() => {\n setFocusInput(false)\n }, 200)\n }}\n className={`tw-input tw-input-bordered tw-cursor-text ${containerStyle}`}\n >\n <div className='tw-flex tw-flex-wrap tw-h-fit'>\n {defaultTags.map((tag) => (\n <div\n key={tag.name}\n className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mt-3 tw-mr-4'\n style={{ backgroundColor: tag.color ? tag.color : '#666' }}\n >\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600'\n onClick={() => deleteTag(tag)}\n >\n ✕\n </label>\n </div>\n <b>{decodeTag(tag.name)}</b>\n </div>\n ))}\n <Autocomplete\n suggestions={tags}\n pushFilteredSuggestions={pushFilteredSuggestions}\n setFocus={focusInput}\n inputProps={inputProps}\n onSelected={(tag) => onSelected(tag)}\n />\n </div>\n </div>\n )\n /* eslint-enable react/prop-types */\n}\n","/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/prefer-optional-chain */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable react/prop-types */\nimport { useCallback, useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { TextAreaInput } from '#components/Input'\nimport { PopupStartEndInput, TextView } from '#components/Map'\nimport { useUpdateItem } from '#components/Map/hooks/useItems'\nimport { ActionButton } from '#components/Profile/Subcomponents/ActionsButton'\nimport { LinkedItemsHeaderView } from '#components/Profile/Subcomponents/LinkedItemsHeaderView'\nimport { TagsWidget } from '#components/Profile/Subcomponents/TagsWidget'\n\nexport const TabsForm = ({\n item,\n state,\n setState,\n updatePermission,\n linkItem,\n unlinkItem,\n loading,\n setUrlParams,\n}) => {\n const [activeTab, setActiveTab] = useState<number>(1)\n const navigate = useNavigate()\n const updateItem = useUpdateItem()\n\n const updateActiveTab = useCallback(\n (id: number) => {\n setActiveTab(id)\n\n const params = new URLSearchParams(window.location.search)\n\n params.set('tab', `${id}`)\n const newUrl = location.pathname + '?' + params.toString()\n window.history.pushState({}, '', newUrl)\n setUrlParams(params)\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [location.pathname],\n )\n\n useEffect(() => {\n const params = new URLSearchParams(location.search)\n const urlTab = params.get('tab')\n setActiveTab(urlTab ? Number(urlTab) : 1)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search])\n\n return (\n <div role='tablist' className='tw-tabs tw-tabs-lifted tw-mt-3'>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={'tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'}\n aria-label='Info'\n checked={activeTab === 1 && true}\n onChange={() => updateActiveTab(1)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56 tw-border-none'\n >\n <div\n className={`tw-flex tw-flex-col tw-h-full ${item.layer.itemType.show_start_end_input && 'tw-pt-4'}`}\n >\n {item.layer.itemType.show_start_end_input && (\n <PopupStartEndInput\n item={item}\n showLabels={false}\n updateEndValue={(e) =>\n setState((prevState) => ({\n ...prevState,\n end: e,\n }))\n }\n updateStartValue={(s) =>\n setState((prevState) => ({\n ...prevState,\n start: s,\n }))\n }\n ></PopupStartEndInput>\n )}\n\n <TextAreaInput\n placeholder='about ...'\n defaultValue={item?.text ? item.text : ''}\n updateFormValue={(v) =>\n setState((prevState) => ({\n ...prevState,\n text: v,\n }))\n }\n containerStyle='tw-grow'\n inputStyle={`tw-h-full ${!item.layer.itemType.show_start_end_input && 'tw-border-t-0 tw-rounded-tl-none'}`}\n />\n <div>\n <TextAreaInput\n placeholder='contact info ...'\n defaultValue={state.contact || ''}\n updateFormValue={(c) =>\n setState((prevState) => ({\n ...prevState,\n contact: c,\n }))\n }\n inputStyle='tw-h-24'\n containerStyle='tw-pt-4'\n />\n </div>\n </div>\n </div>\n {item.layer?.itemType.offers_and_needs && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className={\n 'tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n }\n aria-label='Offers & Needs'\n checked={activeTab === 3 && true}\n onChange={() => updateActiveTab(3)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56 tw-border-none'\n >\n <div className='tw-h-full'>\n <div className='tw-w-full tw-h-[calc(50%-0.75em)] tw-mb-4'>\n <TagsWidget\n defaultTags={state.offers}\n onUpdate={(v) =>\n setState((prevState) => ({\n ...prevState,\n offers: v,\n }))\n }\n placeholder='enter your offers'\n containerStyle='tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto'\n />\n </div>\n <div className='tw-w-full tw-h-[calc(50%-1.5em)]'>\n <TagsWidget\n defaultTags={state.needs}\n onUpdate={(v) =>\n setState((prevState) => ({\n ...prevState,\n needs: v,\n }))\n }\n placeholder='enter your needs'\n containerStyle='tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto'\n />\n </div>\n </div>\n </div>\n </>\n )}\n {item.layer?.itemType.relations && (\n <>\n <input\n type='radio'\n name='my_tabs_2'\n role='tab'\n className='tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]'\n aria-label='Relations'\n checked={activeTab === 7 && true}\n onChange={() => updateActiveTab(7)}\n />\n <div\n role='tabpanel'\n className='tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-332px)] tw-overflow-y-auto tw-pt-4 tw-pb-1 -tw-mx-4 tw-overflow-x-hidden fade'\n >\n <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2 md:tw-grid-cols-1 lg:tw-grid-cols-1 xl:tw-grid-cols-1 2xl:tw-grid-cols-2 tw-mb-4'>\n {state.relations &&\n state.relations.map((i) => (\n <div\n key={i.id}\n className='tw-cursor-pointer tw-card tw-bg-base-200 tw-border-[1px] tw-border-base-300 tw-card-body tw-shadow-xl tw-text-base-content tw-mx-4 tw-p-6 tw-mb-4'\n onClick={() => navigate('/item/' + i.id)}\n >\n <LinkedItemsHeaderView\n unlinkPermission={updatePermission}\n item={i}\n unlinkCallback={(id) => unlinkItem(id, item, updateItem)}\n loading={loading}\n />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n <TextView truncate item={i} />\n </div>\n </div>\n ))}\n {updatePermission && (\n <ActionButton\n customStyle='!tw-bottom-24'\n collection='items'\n item={item}\n existingRelations={state.relations}\n triggerItemSelected={(id) => linkItem(id, item, updateItem)}\n colorField={item.layer.itemColorField}\n ></ActionButton>\n )}\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n )\n}\n","/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { useEffect, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { useAppState } from '#components/AppShell/hooks/useAppState'\nimport { useAuth } from '#components/Auth'\nimport { useItems, useUpdateItem, useAddItem } from '#components/Map/hooks/useItems'\nimport { useLayers } from '#components/Map/hooks/useLayers'\nimport { useHasUserPermission } from '#components/Map/hooks/usePermissions'\nimport { useAddTag, useGetItemTags, useTags } from '#components/Map/hooks/useTags'\nimport { MapOverlayPage } from '#components/Templates'\nimport { Item, Tag } from '#src/types'\nimport { getValue } from '#utils/GetValue'\n\nimport { linkItem, onUpdateItem, unlinkItem } from './itemFunctions'\nimport { FormHeader } from './Subcomponents/FormHeader'\nimport { FlexForm } from './Templates/FlexForm'\nimport { OnepagerForm } from './Templates/OnepagerForm'\nimport { SimpleForm } from './Templates/SimpleForm'\nimport { TabsForm } from './Templates/TabsForm'\n\nexport function ProfileForm() {\n const [state, setState] = useState({\n color: '',\n id: '',\n group_type: 'wuerdekompass',\n status: 'active',\n name: '',\n subname: '',\n text: '',\n contact: '',\n telephone: '',\n next_appointment: '',\n image: '',\n marker_icon: '',\n offers: [] as Tag[],\n needs: [] as Tag[],\n relations: [] as Item[],\n start: '',\n end: '',\n })\n\n const [updatePermission, setUpdatePermission] = useState<boolean>(false)\n const [loading, setLoading] = useState<boolean>(false)\n const [item, setItem] = useState<Item>({} as Item)\n const { user } = useAuth()\n const updateItem = useUpdateItem()\n const addItem = useAddItem()\n const layers = useLayers()\n const location = useLocation()\n const tags = useTags()\n const addTag = useAddTag()\n const navigate = useNavigate()\n const hasUserPermission = useHasUserPermission()\n const getItemTags = useGetItemTags()\n const items = useItems()\n const appState = useAppState()\n\n const [urlParams, setUrlParams] = useState(new URLSearchParams(location.search))\n\n useEffect(() => {\n item && hasUserPermission('items', 'update', item) && setUpdatePermission(true)\n }, [hasUserPermission, item])\n\n useEffect(() => {\n const itemId = location.pathname.split('/')[2]\n\n const item = items.find((i) => i.id === itemId)\n item && setItem(item)\n\n if (!item) {\n const layer = layers.find((l) => l.itemType.name === appState.userType)\n setItem({\n id: crypto.randomUUID(),\n name: user ? user.first_name : '',\n text: '',\n layer,\n new: true,\n })\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items])\n\n useEffect(() => {\n const newColor =\n item.layer?.itemColorField && getValue(item, item.layer.itemColorField)\n ? getValue(item, item.layer.itemColorField)\n : getItemTags(item) && getItemTags(item)[0]?.color\n ? getItemTags(item)[0].color\n : item.layer?.markerDefaultColor\n\n const offers = (item.offers ?? []).reduce((acc: Tag[], o) => {\n const offer = tags.find((t) => t.id === o.tags_id)\n if (offer) acc.push(offer)\n return acc\n }, [])\n\n const needs = (item.needs ?? []).reduce((acc: Tag[], o) => {\n const need = tags.find((t) => t.id === o.tags_id)\n if (need) acc.push(need)\n return acc\n }, [])\n\n const relations = (item.relations ?? []).reduce((acc: Item[], r) => {\n const relatedItem = items.find((i) => i.id === r.related_items_id)\n if (relatedItem) acc.push(relatedItem)\n return acc\n }, [])\n\n setState({\n color: newColor,\n id: item?.id ?? '',\n group_type: item?.group_type ?? '',\n status: item?.status ?? '',\n name: item?.name ?? '',\n subname: item?.subname ?? '',\n text: item?.text ?? '',\n contact: item?.contact ?? '',\n telephone: item?.telephone ?? '',\n next_appointment: item?.next_appointment ?? '',\n image: item?.image ?? '',\n marker_icon: item?.marker_icon ?? '',\n offers,\n needs,\n relations,\n start: item.start ?? '',\n end: item.end ?? '',\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [item, tags, items])\n\n const [template, setTemplate] = useState<string>('')\n\n useEffect(() => {\n setTemplate(item.layer?.itemType.template || appState.userType)\n }, [appState.userType, item])\n\n return (\n <>\n <MapOverlayPage\n backdrop\n className='tw-mx-4 tw-mt-4 tw-mb-4 tw-overflow-x-hidden tw-w-[calc(100%-32px)] md:tw-w-[calc(50%-32px)] tw-max-w-3xl !tw-left-auto tw-top-0 tw-bottom-0'\n >\n <div className='tw-flex tw-flex-col tw-h-full'>\n <FormHeader item={item} state={state} setState={setState} />\n\n {template === 'onepager' && (\n <OnepagerForm item={item} state={state} setState={setState}></OnepagerForm>\n )}\n\n {template === 'simple' && <SimpleForm state={state} setState={setState}></SimpleForm>}\n\n {template === 'flex' && (\n <FlexForm item={item} state={state} setState={setState}></FlexForm>\n )}\n\n {template === 'tabs' && (\n <TabsForm\n loading={loading}\n item={item}\n state={state}\n setState={setState}\n updatePermission={updatePermission}\n linkItem={(id) => linkItem(id, item, updateItem)}\n unlinkItem={(id) => unlinkItem(id, item, updateItem)}\n setUrlParams={setUrlParams}\n ></TabsForm>\n )}\n\n <div className='tw-mt-4'>\n <button\n className={loading ? ' tw-loading tw-btn tw-float-right' : 'tw-btn tw-float-right'}\n onClick={() =>\n onUpdateItem(\n state,\n item,\n tags,\n addTag,\n setLoading,\n navigate,\n updateItem,\n addItem,\n user,\n urlParams,\n )\n }\n style={{\n backgroundColor: `${item.layer?.itemColorField && getValue(item, item.layer?.itemColorField) ? getValue(item, item.layer?.itemColorField) : getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor}`,\n color: '#fff',\n }}\n >\n Update\n </button>\n </div>\n </div>\n </MapOverlayPage>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { useEffect } from 'react'\n\nexport function Modal({\n children,\n showOnStartup,\n}: {\n children: React.ReactNode\n showOnStartup?: boolean\n}) {\n useEffect(() => {\n if (showOnStartup) {\n window.my_modal_3.showModal()\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return (\n <>\n {/* You can open the modal using ID.showModal() method */}\n <dialog id='my_modal_3' className='tw-modal tw-transition-all tw-duration-300'>\n <form method='dialog' className='tw-modal-box tw-transition-none'>\n <button className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2 focus:tw-outline-none'>\n ✕\n </button>\n {children}\n </form>\n <form method='dialog' className='tw-modal-backdrop'>\n <button>close</button>\n </form>\n </dialog>\n </>\n )\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { useEffect, useState } from 'react'\n\nimport { useAuth } from '#components/Auth'\nimport { useItems } from '#components/Map/hooks/useItems'\nimport { Item } from '#src/types'\n\nimport { useQuestsOpen, useSetQuestOpen } from './hooks/useQuests'\n\nexport function Quests() {\n const questsOpen = useQuestsOpen()\n const setQuestsOpen = useSetQuestOpen()\n const { isAuthenticated, user } = useAuth()\n\n useEffect(() => {\n setQuestsOpen(false)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const [profile, setProfie] = useState<Item>()\n\n const items = useItems()\n\n useEffect(() => {\n setProfie(\n items.find(\n (i) =>\n i.user_created?.id === user?.id &&\n i.layer?.itemType.name === 'user' &&\n i.user_created?.id != null,\n ),\n )\n }, [items, user])\n\n return (\n <>\n {questsOpen ? (\n <div className='tw-card tw-w-48 tw-bg-base-100 tw-shadow-xl tw-absolute tw-bottom-4 tw-left-4 tw-z-[2000]'>\n <div className='tw-card-body tw-p-4 tw-pt-0'>\n <div className='tw-card-actions tw-justify-end'>\n <label\n className='tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-1 tw-top-1'\n onClick={() => setQuestsOpen(false)}\n >\n ✕\n </label>\n </div>\n <h2 className='tw-card-title tw-m-auto '>\n Level 1\n <svg\n xmlns='http://www.w3.org/2000/svg'\n fill='none'\n viewBox='0 0 24 24'\n strokeWidth={1.5}\n stroke='#aaa'\n className='tw-w-5 tw-h-5 tw-cursor-pointer'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n d='M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z'\n />\n </svg>\n </h2>\n <ul className='tw-flex-row'>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={isAuthenticated || false}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Sign Up</span>\n </label>\n </li>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={!!profile?.text}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Fill Profile</span>\n </label>\n </li>\n <li>\n <label className='tw-label tw-justify-normal tw-pt-1 tw-pb-0'>\n <input\n type='checkbox'\n readOnly={true}\n className='tw-checkbox tw-checkbox-xs tw-checkbox-success'\n checked={!!profile?.image}\n />\n <span className='tw-text-sm tw-label-text tw-mx-2'>Upload Avatar</span>\n </label>\n </li>\n </ul>\n {/** <button className='tw-btn tw-btn-xs tw-btn-neutral tw-w-fit tw-self-center tw-mt-1'>Next &gt;</button> */}{' '}\n </div>\n </div>\n ) : (\n ''\n )}\n </>\n )\n}\n"],"names":["_jsx","Router","_jsxs","_Fragment","LeafletPopup","ChevronRightIcon","componentMap"],"mappings":"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"}