utopia-ui 3.0.0-alpha.98 → 3.0.0

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 (176) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +29 -26
  3. package/dist/Components/AppShell/AppShell.d.ts +3 -2
  4. package/dist/Components/AppShell/ContextWrapper.d.ts +6 -0
  5. package/dist/Components/AppShell/NavBar.d.ts +2 -2
  6. package/dist/Components/AppShell/SideBar.d.ts +0 -1
  7. package/dist/Components/AppShell/SidebarSubmenu.d.ts +0 -1
  8. package/dist/Components/AppShell/Sitemap.d.ts +3 -0
  9. package/dist/Components/AppShell/index.d.ts +1 -0
  10. package/dist/Components/Input/ComboBoxInput.d.ts +11 -0
  11. package/dist/Components/Map/Layer.d.ts +1 -1
  12. package/dist/Components/Map/Subcomponents/Controls/Control.d.ts +2 -1
  13. package/dist/Components/Map/Subcomponents/Controls/FilterControl.d.ts +1 -2
  14. package/dist/Components/Map/Subcomponents/Controls/GratitudeControl.d.ts +1 -0
  15. package/dist/Components/Map/Subcomponents/Controls/SearchControl.d.ts +1 -3
  16. package/dist/Components/Map/Subcomponents/Controls/SidebarControl.d.ts +1 -0
  17. package/dist/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.d.ts +14 -5
  18. package/dist/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.d.ts +6 -0
  19. package/dist/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.d.ts +8 -3
  20. package/dist/Components/Map/Subcomponents/ItemPopupComponents/TextView.d.ts +2 -1
  21. package/dist/Components/Map/Subcomponents/SelectPosition.d.ts +3 -0
  22. package/dist/Components/Map/UtopiaMap.d.ts +2 -10
  23. package/dist/Components/Map/UtopiaMapInner.d.ts +4 -0
  24. package/dist/Components/Map/hooks/useClusterRef.d.ts +12 -0
  25. package/dist/Components/Map/hooks/useFilter.d.ts +8 -0
  26. package/dist/Components/Map/hooks/usePermissions.d.ts +2 -2
  27. package/dist/Components/Map/hooks/useSelectPosition.d.ts +23 -0
  28. package/dist/Components/Map/index.d.ts +1 -0
  29. package/dist/Components/Map/setItemLocation.d.ts +1 -0
  30. package/dist/Components/Profile/ProfileForm.d.ts +3 -0
  31. package/dist/Components/Profile/ProfileView.d.ts +5 -0
  32. package/dist/Components/Profile/Subcomponents/ActionsButton.d.ts +11 -0
  33. package/dist/Components/Profile/Subcomponents/AvatarWidget.d.ts +8 -0
  34. package/dist/Components/Profile/Subcomponents/ContactInfo.d.ts +8 -0
  35. package/dist/Components/Profile/Subcomponents/FormHeader.d.ts +5 -0
  36. package/dist/Components/Profile/Subcomponents/LinkedItemsHeaderView.d.ts +10 -0
  37. package/dist/Components/Profile/Subcomponents/PlusButton.d.ts +7 -0
  38. package/dist/Components/Profile/Subcomponents/ProfileSubHeader.d.ts +7 -0
  39. package/dist/Components/Profile/Subcomponents/RelationCard.d.ts +6 -0
  40. package/dist/Components/Profile/Subcomponents/SocialShareBar.d.ts +6 -0
  41. package/dist/Components/Profile/Subcomponents/SocialShareButton.d.ts +6 -0
  42. package/dist/Components/Profile/Templates/OnepagerForm.d.ts +22 -0
  43. package/dist/Components/Profile/Templates/OnepagerView.d.ts +5 -0
  44. package/dist/Components/Profile/Templates/SimpleForm.d.ts +4 -0
  45. package/dist/Components/Profile/Templates/SimpleView.d.ts +4 -0
  46. package/dist/Components/Profile/Templates/TabsForm.d.ts +10 -0
  47. package/dist/Components/Profile/Templates/TabsView.d.ts +14 -0
  48. package/dist/Components/Profile/UserSettings.d.ts +0 -2
  49. package/dist/Components/Profile/index.d.ts +3 -7
  50. package/dist/Components/Profile/itemFunctions.d.ts +5 -0
  51. package/dist/Components/Templates/AttestationForm.d.ts +4 -0
  52. package/dist/Components/Templates/DateUserInfo.d.ts +4 -0
  53. package/dist/Components/Templates/DialogModal.d.ts +3 -1
  54. package/dist/Components/Templates/EmojiPicker.d.ts +8 -0
  55. package/dist/Components/Templates/ItemCard.d.ts +8 -0
  56. package/dist/Components/Templates/OverlayItemsIndexPage.d.ts +6 -0
  57. package/dist/Components/Templates/SelectUser.d.ts +3 -0
  58. package/dist/Components/Templates/index.d.ts +3 -3
  59. package/dist/Utils/ReverseGeocoder.d.ts +1 -0
  60. package/dist/index.d.ts +4 -4
  61. package/dist/index.js +3119 -2257
  62. package/dist/index.js.map +1 -1
  63. package/dist/types.d.ts +23 -1
  64. package/package.json +2 -2
  65. package/LICENSE.md +0 -5
  66. package/dist/Components/Auth/LoginPage copy.d.ts +0 -2
  67. package/dist/Components/Auth/ResetPasswordPage.d.ts +0 -2
  68. package/dist/Components/Auth/Signuppage.d.ts +0 -2
  69. package/dist/Components/Map/Subcomponents/Control.d.ts +0 -5
  70. package/dist/Components/Map/Subcomponents/FilterControl.d.ts +0 -2
  71. package/dist/Components/Map/Subcomponents/LayerControl.d.ts +0 -2
  72. package/dist/Components/Map/Subcomponents/QuestControl.d.ts +0 -2
  73. package/dist/Components/Profile/AvatarWidget.d.ts +0 -5
  74. package/dist/Components/Profile/Editor.d.ts +0 -4
  75. package/dist/Components/Profile/OverlayItemProfile.d.ts +0 -1
  76. package/dist/Components/Profile/OverlayItemProfileSettings.d.ts +0 -1
  77. package/dist/Components/Profile/OverlayProfile.d.ts +0 -1
  78. package/dist/Components/Profile/OverlayProfileSettings.d.ts +0 -1
  79. package/dist/Components/Profile/OverlayUserSettings.d.ts +0 -1
  80. package/dist/Components/Profile/PlusButton.d.ts +0 -5
  81. package/dist/Components/Profile/ProfileSettings.d.ts +0 -3
  82. package/dist/Components/Profile/Settings.d.ts +0 -4
  83. package/dist/Components/Profile/Tags.d.ts +0 -2
  84. package/dist/Components/Templates/ItemViewPage.d.ts +0 -14
  85. package/dist/Components/Templates/ItemsIndexPage.d.ts +0 -18
  86. package/dist/Components/Templates/MapOverlayScreen.d.ts +0 -4
  87. package/dist/Utils/DynamicHeroIcon.d.ts +0 -7
  88. package/dist/workspace/utopia-ui/src/Components/AppShell/AppShell.d.ts +0 -8
  89. package/dist/workspace/utopia-ui/src/Components/AppShell/Content.d.ts +0 -6
  90. package/dist/workspace/utopia-ui/src/Components/AppShell/NavBar.d.ts +0 -4
  91. package/dist/workspace/utopia-ui/src/Components/AppShell/SetAssetsApi.d.ts +0 -4
  92. package/dist/workspace/utopia-ui/src/Components/AppShell/SideBar.d.ts +0 -12
  93. package/dist/workspace/utopia-ui/src/Components/AppShell/SidebarSubmenu.d.ts +0 -7
  94. package/dist/workspace/utopia-ui/src/Components/AppShell/hooks/useAssets.d.ts +0 -13
  95. package/dist/workspace/utopia-ui/src/Components/AppShell/index.d.ts +0 -3
  96. package/dist/workspace/utopia-ui/src/Components/Auth/LoginPage.d.ts +0 -1
  97. package/dist/workspace/utopia-ui/src/Components/Auth/RequestPasswordPage.d.ts +0 -3
  98. package/dist/workspace/utopia-ui/src/Components/Auth/SetNewPasswordPage.d.ts +0 -1
  99. package/dist/workspace/utopia-ui/src/Components/Auth/SignupPage.d.ts +0 -1
  100. package/dist/workspace/utopia-ui/src/Components/Auth/index.d.ts +0 -5
  101. package/dist/workspace/utopia-ui/src/Components/Auth/useAuth.d.ts +0 -26
  102. package/dist/workspace/utopia-ui/src/Components/Gaming/Modal.d.ts +0 -5
  103. package/dist/workspace/utopia-ui/src/Components/Gaming/Quests.d.ts +0 -1
  104. package/dist/workspace/utopia-ui/src/Components/Gaming/hooks/useQuests.d.ts +0 -13
  105. package/dist/workspace/utopia-ui/src/Components/Gaming/index.d.ts +0 -2
  106. package/dist/workspace/utopia-ui/src/Components/Input/Autocomplete.d.ts +0 -7
  107. package/dist/workspace/utopia-ui/src/Components/Input/SelectBox.d.ts +0 -16
  108. package/dist/workspace/utopia-ui/src/Components/Input/TextAreaInput.d.ts +0 -12
  109. package/dist/workspace/utopia-ui/src/Components/Input/TextInput.d.ts +0 -14
  110. package/dist/workspace/utopia-ui/src/Components/Input/index.d.ts +0 -3
  111. package/dist/workspace/utopia-ui/src/Components/Map/ItemForm.d.ts +0 -18
  112. package/dist/workspace/utopia-ui/src/Components/Map/ItemView.d.ts +0 -16
  113. package/dist/workspace/utopia-ui/src/Components/Map/Layer.d.ts +0 -2
  114. package/dist/workspace/utopia-ui/src/Components/Map/Permissions.d.ts +0 -6
  115. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/AddButton.d.ts +0 -4
  116. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/Controls/Control.d.ts +0 -6
  117. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/Controls/LayerControl.d.ts +0 -1
  118. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/Controls/LocateControl.d.ts +0 -3
  119. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/Controls/QuestControl.d.ts +0 -1
  120. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/Controls/SearchControl.d.ts +0 -3
  121. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/Controls/TagsControl.d.ts +0 -1
  122. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/ItemFormPopup.d.ts +0 -11
  123. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.d.ts +0 -7
  124. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.d.ts +0 -8
  125. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.d.ts +0 -4
  126. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.d.ts +0 -7
  127. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.d.ts +0 -7
  128. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.d.ts +0 -4
  129. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/ItemPopupComponents/TextView.d.ts +0 -6
  130. package/dist/workspace/utopia-ui/src/Components/Map/Subcomponents/ItemViewPopup.d.ts +0 -9
  131. package/dist/workspace/utopia-ui/src/Components/Map/Tags.d.ts +0 -5
  132. package/dist/workspace/utopia-ui/src/Components/Map/UtopiaMap.d.ts +0 -11
  133. package/dist/workspace/utopia-ui/src/Components/Map/hooks/useDebounce.d.ts +0 -1
  134. package/dist/workspace/utopia-ui/src/Components/Map/hooks/useFilter.d.ts +0 -32
  135. package/dist/workspace/utopia-ui/src/Components/Map/hooks/useItems.d.ts +0 -26
  136. package/dist/workspace/utopia-ui/src/Components/Map/hooks/useLayers.d.ts +0 -14
  137. package/dist/workspace/utopia-ui/src/Components/Map/hooks/useLeafletRefs.d.ts +0 -22
  138. package/dist/workspace/utopia-ui/src/Components/Map/hooks/usePermissions.d.ts +0 -20
  139. package/dist/workspace/utopia-ui/src/Components/Map/hooks/useTags.d.ts +0 -22
  140. package/dist/workspace/utopia-ui/src/Components/Map/hooks/useTimeout.d.ts +0 -4
  141. package/dist/workspace/utopia-ui/src/Components/Map/hooks/useWindowDimension.d.ts +0 -4
  142. package/dist/workspace/utopia-ui/src/Components/Map/index.d.ts +0 -12
  143. package/dist/workspace/utopia-ui/src/Components/Profile/ColorPicker.d.ts +0 -6
  144. package/dist/workspace/utopia-ui/src/Components/Profile/Editor.d.ts +0 -4
  145. package/dist/workspace/utopia-ui/src/Components/Profile/OverlayProfile.d.ts +0 -1
  146. package/dist/workspace/utopia-ui/src/Components/Profile/OverlayProfileSettings.d.ts +0 -1
  147. package/dist/workspace/utopia-ui/src/Components/Profile/OverlayUserSettings.d.ts +0 -1
  148. package/dist/workspace/utopia-ui/src/Components/Profile/ProfileSettings.d.ts +0 -3
  149. package/dist/workspace/utopia-ui/src/Components/Profile/TagsWidget.d.ts +0 -6
  150. package/dist/workspace/utopia-ui/src/Components/Profile/UserSettings.d.ts +0 -3
  151. package/dist/workspace/utopia-ui/src/Components/Profile/index.d.ts +0 -5
  152. package/dist/workspace/utopia-ui/src/Components/Profile/useClickOutside.d.ts +0 -2
  153. package/dist/workspace/utopia-ui/src/Components/Templates/CardPage.d.ts +0 -10
  154. package/dist/workspace/utopia-ui/src/Components/Templates/CircleLayout.d.ts +0 -5
  155. package/dist/workspace/utopia-ui/src/Components/Templates/DialogModal.d.ts +0 -10
  156. package/dist/workspace/utopia-ui/src/Components/Templates/ItemsIndexPage.d.ts +0 -15
  157. package/dist/workspace/utopia-ui/src/Components/Templates/MapOverlayPage.d.ts +0 -7
  158. package/dist/workspace/utopia-ui/src/Components/Templates/MoonCalendar.d.ts +0 -1
  159. package/dist/workspace/utopia-ui/src/Components/Templates/TagView.d.ts +0 -6
  160. package/dist/workspace/utopia-ui/src/Components/Templates/TitleCard.d.ts +0 -11
  161. package/dist/workspace/utopia-ui/src/Components/Templates/index.d.ts +0 -6
  162. package/dist/workspace/utopia-ui/src/Components/Typography/ErrorText.d.ts +0 -5
  163. package/dist/workspace/utopia-ui/src/Components/Typography/Subtitle.d.ts +0 -6
  164. package/dist/workspace/utopia-ui/src/Utils/FormatTags.d.ts +0 -2
  165. package/dist/workspace/utopia-ui/src/Utils/GetValue.d.ts +0 -1
  166. package/dist/workspace/utopia-ui/src/Utils/HashTagRegex.d.ts +0 -1
  167. package/dist/workspace/utopia-ui/src/Utils/MarkerIconFactory.d.ts +0 -3
  168. package/dist/workspace/utopia-ui/src/Utils/Moon.d.ts +0 -7
  169. package/dist/workspace/utopia-ui/src/Utils/RandomColor.d.ts +0 -1
  170. package/dist/workspace/utopia-ui/src/Utils/ReplaceURLs.d.ts +0 -3
  171. package/dist/workspace/utopia-ui/src/Utils/TimeAgo.d.ts +0 -1
  172. package/dist/workspace/utopia-ui/src/index.d.ts +0 -13
  173. package/dist/workspace/utopia-ui/src/types.d.ts +0 -108
  174. /package/dist/Components/Profile/{ColorPicker.d.ts → Subcomponents/ColorPicker.d.ts} +0 -0
  175. /package/dist/Components/Profile/{TagsWidget.d.ts → Subcomponents/TagsWidget.d.ts} +0 -0
  176. /package/dist/Components/Profile/{useClickOutside.d.ts → hooks/useClickOutside.d.ts} +0 -0
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/Map/hooks/useLayers.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/Utils/GetValue.ts","../src/Components/AppShell/hooks/useAssets.tsx","../src/Components/Profile/PlusButton.tsx","../src/Utils/HashTagRegex.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Components/Input/TextAreaInput.tsx","../src/Components/Input/TextInput.tsx","../src/Components/Input/SelectBox.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Components/Map/hooks/useFilter.tsx","../src/Utils/RandomColor.ts","../src/Components/Templates/ItemsIndexPage.tsx","../src/Components/Templates/ItemViewPage.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/Components/Map/Subcomponents/AddButton.tsx","../src/Components/Map/hooks/useWindowDimension.tsx","../src/Components/Map/hooks/useTimeout.tsx","../src/Components/Map/hooks/useDebounce.tsx","../src/Components/Map/hooks/useLeafletRefs.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/SearchControl.tsx","../src/Components/Map/Subcomponents/Controls/LayerControl.tsx","../src/Components/Gaming/hooks/useQuests.tsx","../src/Components/Map/Subcomponents/Controls/QuestControl.tsx","../src/Components/Map/Subcomponents/Controls/Control.tsx","../src/Components/Map/Subcomponents/Controls/TagsControl.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Components/Templates/DialogModal.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Utils/ReplaceURLs.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx","../src/Utils/TimeAgo.ts","../src/Components/Map/Subcomponents/ItemViewPopup.tsx","../src/types.ts","../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/StartEndView.tsx","../src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx","../src/Components/AppShell/NavBar.tsx","../src/Components/AppShell/SetAssetsApi.tsx","../src/Components/AppShell/AppShell.tsx","../src/Components/AppShell/SidebarSubmenu.tsx","../src/Components/AppShell/SideBar.tsx","../src/Components/AppShell/Content.tsx","../src/Components/Profile/UserSettings.tsx","../src/Components/Profile/useClickOutside.tsx","../src/Components/Profile/ColorPicker.tsx","../src/Components/Profile/ProfileSettings.tsx","../src/Components/Templates/TagView.tsx","../src/Components/Profile/OverlayProfile.tsx","../src/Components/Input/Autocomplete.tsx","../src/Components/Profile/TagsWidget.tsx","../src/Components/Profile/AvatarWidget.tsx","../src/Components/Profile/OverlayProfileSettings.tsx","../src/Components/Profile/OverlayUserSettings.tsx","../src/Components/Profile/OverlayItemProfile.tsx","../src/Components/Profile/OverlayItemProfileSettings.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, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { LayerProps } from \"../../../types\";\n\ntype ActionType =\n | { 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 const exist = state.find((layer) =>\n layer.name === action.layer.name ? true : false\n );\n if (!exist) return [\n ...state,\n action.layer,\n ];\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[], children?: React.ReactNode\n}> = ({ initialLayers, children }) => (\n <LayerContext.Provider value={useLayerManager(initialLayers)}>\n {children}\n </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 { createContext, useState, useContext, useEffect } from \"react\";\nimport * as React from \"react\";\nimport { UserApi, UserItem } from \"../../types\";\n\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\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(),\n register: () => Promise.reject(),\n loading: false,\n logout: () => Promise.reject(),\n updateUser: () => Promise.reject(),\n token: \"\",\n requestPasswordReset: () => Promise.reject(),\n passwordReset: () => Promise.reject()\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 }, []);\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 }\n else return undefined;\n\n } catch (error) {\n setLoading(false)\n return undefined;\n }\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 (credentials: AuthCredentials, userName): 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\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, reset_url?: string): Promise<any> => {\n setLoading(true);\n try {\n await userApi.requestPasswordReset(email, reset_url);\n return setLoading(false);\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n\n const passwordReset = async (token: string, new_password:string): Promise<any> => {\n setLoading(true);\n try {\n await userApi.passwordReset(token, new_password);\n return setLoading(false);\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n\n\n return (\n <AuthContext.Provider\n value={{ isAuthenticated, user, login, register, loading, logout, updateUser, token, requestPasswordReset, passwordReset }}\n >\n {children}\n </AuthContext.Provider>\n );\n};\nexport const useAuth = () => useContext(AuthContext);","import * as React from \"react\"\n\n function Subtitle({styleClass, children}:{styleClass:string, children: React.ReactNode}){\n return(\n <div className={`tw-text-xl tw-font-semibold ${styleClass}`}>{children}</div>\n )\n}\n\nexport default Subtitle","import Subtitle from \"../Typography/Subtitle\"\nimport * as React from \"react\"\n\ninterface TitleCardProps {\n\n title?: string,\n hideTitle?: boolean,\n children?: React.ReactNode,\n topMargin?: string,\n className?: string,\n TopSideButtons?: any\n}\n\nexport function TitleCard({ title,hideTitle, children, topMargin, TopSideButtons, className }: TitleCardProps) {\n return (\n <div className={\"tw-card tw-w-full tw-p-6 tw-bg-base-100 tw-shadow-xl tw-h-fit tw-mb-4 \" + (className || \"\") + \" \" + (topMargin || \"tw-mt-6\")}>\n\n {!hideTitle &&\n <>\n\n < Subtitle styleClass={TopSideButtons ? \"tw-inline-block\" : \"\"}>\n {title}\n\n {/* Top side button, show only if present */}\n {\n TopSideButtons && <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\n {/** Card Body */}\n <div className='tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100'>\n {children}\n </div>\n </div >\n\n )\n}\n","import { Link } from \"react-router-dom\"\nimport * as React from \"react\"\nimport {TitleCard} from \"./TitleCard\"\n\n\nexport function CardPage({title, hideTitle, children, parents} : { \n title: string,\n hideTitle?: boolean,\n children?: React.ReactNode,\n parents?: Array<{name: string, path: string}>\n}) {\n\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><Link to={'/'} >Home</Link></li>\n {parents?.map((b,i) => <li key={i}><Link to={b.path} >{b.name}</Link></li>)}\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","\nimport * as L from 'leaflet';\nimport * as React from 'react'\nimport { useNavigate } from 'react-router-dom';\n\nexport function MapOverlayPage({ children, className, backdrop, card = true }: { children: React.ReactNode, className?: string, backdrop?: boolean, card?:boolean }) {\n\n\n const closeScreen = () => {\n navigate(`/`);\n }\n\n const navigate = useNavigate();\n\n const overlayRef = React.createRef<HTMLDivElement>()\n const backdropRef = React.createRef<HTMLDivElement>()\n\n\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 }, [overlayRef, backdropRef])\n\n\n return (\n <div className={`tw-absolute tw-h-full tw-w-full tw-m-auto ${backdrop && \"tw-z-[2000]\"}`}>\n <div ref={backdropRef} className={`${backdrop && \"tw-backdrop-brightness-75\"} tw-h-full tw-w-full tw-grid tw-place-items-center tw-m-auto`} >\n <div ref={overlayRef} 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 {children}\n <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\" onClick={() => closeScreen()}>✕</button>\n </div>\n </div>\n </div>\n )\n}\n\n","import { useEffect, useRef } from 'react';\n\nexport const CircleLayout = ({ items,radius, fontSize } : {items: any, radius: number, fontSize: any}) => {\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 }, [items]);\n\n return (\n <div className=\"tw-absolute tw-mx-auto tw-flex tw-justify-center tw-items-center tw-h-full tw-w-full\" ref={containerRef}>\n {items.map((item: any) => (\n <div key={item} className=\"tw-absolute\" style={{fontSize: fontSize}}>\n {item}\n </div>\n ))}\n </div>\n );\n};\n\n","export const LUNAR_MONTH: number = 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}","import * as React from 'react'\nimport { useState } from 'react'\nimport {\n add,\n format,\n parse,\n startOfToday,\n sub,\n} 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\n\nexport const MoonCalendar = () => {\n const today = startOfToday();\n\n\n const [currMonth, setCurrMonth] = useState(() => format(today, \"MMM-yyyy\"));\n let firstDayOfMonth = parse(currMonth, \"MMM-yyyy\", new Date());\n\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 items={[\"🌑\", \"🌒\", \"🌓\", \"🌔\", \"🌕\", \"🌖\", \"🌗\", \"🌘\"]} radius={80} fontSize={\"3em\"} />\n <CircleLayout items={ [\n format(getLastNewMoon(), \"dd.MM hh:mm\"),\n format(sub(getNextNewMoon(), {seconds: LUNAR_MONTH*86400/4*3}), \"dd.MM hh:mm\"),\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 ]} radius={120} fontSize={\"0.8em\"}/>\n </div>\n <div className='tw-flex tw-flex-row'>\n <ChevronLeftIcon\n className=\"tw-w-6 tw-h-6 tw-cursor-pointer\"\n onClick={getPrevMonth}\n />\n <p className='tw-text-center tw-p-1 tw-h-full tw-grow'>from {format(getLastNewMoon(), \"dd.MM\")} - to {format(getNextNewMoon(), \"dd.MM\")}</p>\n\n <ChevronRightIcon\n className=\"tw-w-6 tw-h-6 tw-cursor-pointer\"\n onClick={getNextMonth}\n />\n </div>\n\n\n </MapOverlayPage>\n );\n}","export function getValue(obj, path) {\n if (!obj || typeof path !== 'string') return undefined;\n\n var pathArray = path.split('.'); // Use a different variable for the split path\n for (var 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}","import { useCallback, useState } from 'react';\n\n\nimport { createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { AssetsApi } from '../../../types';\n\n\n\ntype UseAssetManagerResult = ReturnType<typeof useAssetsManager>;\n\nconst AssetContext = createContext<UseAssetManagerResult>({\n api: {} as AssetsApi,\n setAssetsApi: () => { }\n});\n\nfunction useAssetsManager(): {\n api: AssetsApi;\n setAssetsApi: (api: AssetsApi) => void;\n} {\n const [api, setApi] = useState<AssetsApi>({} as AssetsApi);\n\n const setAssetsApi = useCallback((api: AssetsApi) => {\n setApi(api);\n }, []);\n\n return { api, setAssetsApi };\n}\n\nexport const AssetsProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <AssetContext.Provider value={useAssetsManager()}>\n {children}\n </AssetContext.Provider>\n);\n\nexport const useAssetApi = (): AssetsApi => {\n const { api } = useContext(AssetContext);\n return api;\n};\n\n\nexport const useSetAssetApi = (): UseAssetManagerResult[\"setAssetsApi\"] => {\n const { setAssetsApi } = useContext(AssetContext);\n return setAssetsApi;\n}\n","import { useHasUserPermission, usePermissions } from \"../Map/hooks/usePermissions\";\nimport { useAuth } from \"../Auth\";\n\nexport function PlusButton({ triggerAction, color, collection=\"items\" }: { triggerAction: any, color: string, collection?:string }) {\n const hasUserPermission = useHasUserPermission(); \n return (\n <>{hasUserPermission(collection, \"create\") &&\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 <button tabIndex={0} className=\"tw-z-500 tw-btn tw-btn-circle tw-shadow\" onClick={() => { triggerAction() }} style={{ backgroundColor: color, color: \"#fff\"}}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" className=\"tw-w-5 tw-h-5\">\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}\n","export const hashTagRegex = /(#+[a-zA-Z0-9À-ÖØ-öø-ʸ_-]{1,})/g;","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 =\n | { type: \"ADD\"; tag: Tag }\n | { 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\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 const exist = state.find((tag) =>\n tag.name.toLocaleLowerCase() === action.tag.name.toLocaleLowerCase() ? true : false\n );\n if (!exist) {\n const newState = [\n ...state,\n { ...action.tag}\n ];\n if(tagCount == newState.length) setallTagsLoaded(true);\n return newState;\n } \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\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 })\n }\n\n \n }, [])\n\n const setTagData = useCallback((data: Tag[]) => {\n data.map(tag => {\n //tag.name = tag.name.toLocaleLowerCase();\n dispatch({ type: \"ADD\", tag })\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\n\n const getItemTags = useCallback((item: Item) => {\n const text = 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(tags.find(t => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())!)\n }\n }) \n item.layer?.itemOffersField && getValue(item, item.layer.itemOffersField).map(o => {\n const offer = tags.find(t=> t.id === o.tags_id)\n offer && itemTags.push(offer)\n });\n item.layer?.itemNeedsField && getValue(item, item.layer.itemNeedsField).map(n => {\n const need = tags.find(t=>t.id === n.tags_id);\n need && itemTags.push(need);\n });\n\n return itemTags\n }, [tags]);\n\n\n return { tags, addTag, setTagApi, setTagData, getItemTags, allTagsLoaded };\n}\n\nexport const TagsProvider: React.FunctionComponent<{\n initialTags: Tag[], children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <TagContext.Provider value={useTagsManager(initialTags)}>\n {children}\n </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\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}","import * as React from \"react\"\nimport { useEffect, useRef } from \"react\";\nimport Tribute from \"tributejs\";\nimport { useTags } from \"../Map/hooks/useTags\";\n\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\n\nexport function TextAreaInput({ labelTitle, dataField, labelStyle, containerStyle, inputStyle, defaultValue, placeholder, updateFormValue }: TextAreaProps) {\n\n const ref = useRef<HTMLTextAreaElement>(null);\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n const tags = useTags();\n\n let values: KeyValue[] = [];\n\n tags.map(tag => {\n values.push({ key: tag.name, value: tag.name, color: tag.color })\n })\n\n var 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: values,\n menuShowMinLength: 3,\n noMatchTemplate: () => {\n return \"\"\n },\n menuItemTemplate: function (item) {\n return `<span style=\"color: ${item.original.color}; padding: 5px; boarder-radius: 3px;\">#${item.string}</span>`;\n }\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 }, [ref])\n\n return (\n <div className={`tw-form-control tw-w-full ${containerStyle ? containerStyle : \"\"}`}>\n {labelTitle ? <label className=\"tw-label\">\n <span className={\"tw-label-text tw-text-base-content \" + labelStyle}>{labelTitle}</span>\n </label> : \"\"}\n <textarea required ref={ref} defaultValue={defaultValue} name={dataField} className={`tw-textarea tw-textarea-bordered tw-w-full tw-leading-5 ${inputStyle ? inputStyle : \"\"}`} placeholder={placeholder || \"\"} onChange={(e) => updateFormValue && updateFormValue(e.target.value)}></textarea>\n </div>\n )\n}\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\n\nexport function TextInput({labelTitle, labelStyle, type, dataField, containerStyle, inputStyle, defaultValue, placeholder, autocomplete, updateFormValue} : InputTextProps){\n\n return(\n <div className={`tw-form-control tw-w-full ${containerStyle}`}>\n {labelTitle ? <label className=\"tw-label\">\n <span className={\"tw-label-text tw-text-base-content \" + labelStyle}>{labelTitle}</span>\n </label> \n : \" \"} \n <input required type={type || \"text\"} name={dataField} defaultValue={defaultValue} placeholder={placeholder || \"\"} autoComplete={autocomplete} onChange={(e) => updateFormValue&& updateFormValue(e.target.value)}className={`tw-input tw-input-bordered tw-w-full ${inputStyle ? inputStyle : \"\"}`} />\n </div>\n )\n}\n\n\n","\nimport { 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 updateFormValue: (value: string ) => void;\n\n options: {name: string, value: string}[];\n labelDescription?: string\n}\n\nexport function SelectBox(props : SelectBoxProps){\n \n const {labelTitle, labelDescription, defaultValue, containerStyle, placeholder, labelStyle, options, updateFormValue} = props\n\n const [value, setValue] = useState(defaultValue || \"\")\n\n\n const updateValue = (newValue: string) =>{\n updateFormValue(newValue)\n setValue(newValue)\n }\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\">{labelTitle}\n {labelDescription && <div className=\"tw-tooltip tw-tooltip-right\" data-tip={labelDescription}><InformationCircleIcon className='tw-w-4 tw-h-4'/></div>}\n </div>\n </label>\n : \"\"}\n <select className=\"tw-select tw-select-bordered tw-w-full\" value={value} onChange={(e) => updateValue(e.target.value)}>\n <option disabled value=\"PLACEHOLDER\">{placeholder}</option>\n {\n options.map((o, k) => {\n return <option value={o.value || o.name} key={k}>{o.name}</option>\n })\n }\n </select>\n </div>\n )\n}","import { useCallback, useReducer, createContext, useContext, useEffect, useState } from \"react\";\nimport * as React from \"react\";\nimport { Item, ItemsApi, LayerProps, Tag } from \"../../../types\";\nimport { toast } from \"react-toastify\";\nimport { useAddLayer } from \"./useLayers\";\n\n\ntype ActionType =\n | { type: \"ADD\"; item: Item }\n | { type: \"UPDATE\"; item: Item }\n | { type: \"REMOVE\"; item: Item }\n | { type: \"RESET\"; layer: LayerProps }\n ;\n\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} {\n\n const addLayer = useAddLayer();\n\n const [itemsCount, setItemsCount] = useState<number>(0);\n const [allItemsLoaded, setallItemsLoaded] = useState<boolean>(false);\n\n\n\n const [items, dispatch] = useReducer((state: Item[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\":\n const exist = state.find((item) =>\n item.id === action.item.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.item,\n ];\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\n const setItemsApi = useCallback(async (layer: LayerProps) => {\n addLayer(layer);\n const result = await toast.promise(\n layer.api!.getItems(),\n {\n pending: `loading ${layer.name} ...`,\n success: `${layer.name} loaded`,\n error: {\n render( {data} ) { \n return `${data}`\n },\n },\n }\n );\n if (result) { \n result.map(item => { \n dispatch({ type: \"ADD\", item: { ...item, layer: layer } }); \n })\n setallItemsLoaded(true);\n }\n }, [])\n\n const setItemsData = useCallback((layer: LayerProps) => {\n layer.data?.map(item => {\n dispatch({ type: \"ADD\", item: { ...item, layer: layer } });\n })\n }, []);\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\n\n return { items, updateItem, addItem, removeItem, resetItems, setItemsApi, setItemsData, allItemsLoaded };\n}\n\nexport const ItemsProvider: React.FunctionComponent<{\n initialItems: Item[], children?: React.ReactNode\n}> = ({ initialItems, children }) => (\n <ItemContext.Provider value={useItemsManager(initialItems)}>\n {children}\n </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}","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { LayerProps, Tag } from \"../../../types\";\nimport { useLayers } from \"./useLayers\";\nimport { useLocation } from \"react-router-dom\";\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 ;\n\ntype UseFilterManagerResult = ReturnType<typeof useFilterManager>;\n\nconst FilterContext = createContext<UseFilterManagerResult>({\n filterTags: [],\n searchPhrase: \"\",\n visibleLayers: [],\n addFilterTag: () => { },\n removeFilterTag: () => { },\n resetFilterTags: () => { },\n setSearchPhrase: () => { },\n addVisibleLayer: () => { },\n toggleVisibleLayer: () => { },\n resetVisibleLayers: () => { },\n isLayerVisible: () => true\n});\n\nfunction useFilterManager(initialTags: Tag[]): {\n filterTags: Tag[];\n searchPhrase: string;\n visibleLayers: LayerProps[];\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} {\n const [filterTags, dispatchTags] = useReducer((state: Tag[], action: ActionType) => {\n switch (action.type) {\n case \"ADD_TAG\":\n const exist = state.find((tag) =>\n tag.id === action.tag.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.tag,\n ];\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\n const [visibleLayers, dispatchLayers] = useReducer((state: LayerProps[], action: ActionType) => {\n switch (action.type) {\n case \"ADD_LAYER\":\n const exist1 = state.find((layer) =>\n layer.name === action.layer.name ? true : false\n );\n if (!exist1) return [\n ...state,\n action.layer,\n ];\n else return state;\n case \"TOGGLE_LAYER\":\n const exist2 = state.some((layer) =>\n 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 [searchPhrase, searchPhraseSet] = React.useState<string>(\"\");\n\n const addFilterTag = (tag: Tag) => {\n\n let params = new URLSearchParams(window.location.search);\n let urlTags = params.get(\"tags\");\n if(!urlTags?.includes(tag.name))\n params.set(\"tags\", `${urlTags ? urlTags : \"\"}${urlTags? ',' : ''}${tag.name}`)\n window.history.pushState('','', \"?\" +params.toString());\n\n dispatchTags({\n type: \"ADD_TAG\",\n tag,\n });\n\n };\n\n const removeFilterTag = useCallback((name: string) => {\n\n let params = new URLSearchParams(window.location.search);\n let urlTags = params.get(\"tags\");\n let newUrlTags = \"\";\n let 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 if(newUrlTags !== \"\") {\n params.set(\"tags\", `${newUrlTags}`)\n window.history.pushState('','', \"?\" +params.toString());\n }\n else {\n\n window.history.pushState('','', window.location.pathname);\n }\n\n dispatchTags({\n type: \"REMOVE_TAG\",\n name,\n });\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\n const toggleVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: \"TOGGLE_LAYER\",\n layer,\n });\n\n };\n\n\n const resetVisibleLayers = useCallback(() => {\n dispatchLayers({\n type: \"RESET_LAYERS\",\n });\n }, []);\n\n const isLayerVisible = useCallback((layer: LayerProps) => {\n return visibleLayers.some(l => l.name === layer.name)\n }, [visibleLayers]);\n\n const setSearchPhrase = useCallback((phrase: string) => {\n searchPhraseSet(phrase)\n }, []);\n\n return { filterTags, addFilterTag, removeFilterTag, resetFilterTags, setSearchPhrase, searchPhrase, visibleLayers, toggleVisibleLayer, resetVisibleLayers, isLayerVisible, addVisibleLayer };\n}\n\nexport const FilterProvider: React.FunctionComponent<{\n initialTags: Tag[], children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <FilterContext.Provider value={useFilterManager(initialTags)}>\n {children}\n </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\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};","export const randomColor = () => {\n return hsvToHex((Math.random() + golden_ratio_conjugate) % 1, 0.8, 0.7)\n}\n\nconst golden_ratio_conjugate = 0.618033988749895;\n\nfunction hsvToHex(h, s, v) {\n var r, g, b;\n var i = (Math.floor(h * 6));\n var f = h * 6 - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0: r = v, g = t, b = p; break;\n case 1: r = q, g = v, b = p; break;\n case 2: r = p, g = v, b = t; break;\n case 3: r = p, g = q, b = v; break;\n case 4: r = t, g = p, b = v; break;\n case 5: r = v, g = p, b = q; break;\n }\n\n return rgbToHex(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255))\n}\n\n\nconst rgbToHex = (r, g, b) => '#' + [r, g, b].map(x => {\n const hex = x.toString(16)\n return hex.length === 1 ? '0' + hex : hex\n}).join('')","import { ReactNode, useEffect, useRef, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom';\nimport { Item, ItemsApi } from '../../types';\nimport { getValue } from '../../Utils/GetValue';\nimport { TextView } from '../Map';\nimport { useAssetApi } from '../AppShell/hooks/useAssets';\nimport { PlusButton } from '../Profile/PlusButton';\nimport { TextInput, TextAreaInput } from '../Input';\nimport { useAddTag, useTags } from '../Map/hooks/useTags';\nimport { useAddItem } from '../Map/hooks/useItems';\nimport { useResetFilterTags } from '../Map/hooks/useFilter';\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 { PermissionsProvider } from '../Map/hooks/usePermissions';\n\n\ntype breadcrumb = {\n name: string,\n path: string\n}\n\n\nexport const ItemsIndexPage = ({ api, url, parameterField, breadcrumbs, itemNameField, itemTextField, itemImageField, itemSymbolField, children }: { api: ItemsApi<any>, url: string, parameterField: string, breadcrumbs: Array<breadcrumb>, itemNameField: string, itemTextField: string, itemImageField: string, itemSymbolField: string, children?: ReactNode }) => {\n\n console.log(itemSymbolField);\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 const [items, setItems] = useState<any[]>([]);\n\n const loadProjects = async () => {\n const items = await api?.getItems();\n setItems(items as any);\n }\n\n const assetsApi = useAssetApi();\n const navigate = useNavigate();\n\n const tags = useTags();\n const addTag = useAddTag();\n const addItem = useAddItem();\n const resetFilterTags = useResetFilterTags();\n const { user } = useAuth();\n\n\n useEffect(() => {\n loadProjects();\n }, [api])\n\n const layers = useLayers();\n\n const submitNewItem = async (evt: any, type: string) => {\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 && formItem.text.toLocaleLowerCase().match(hashTagRegex)?.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 });\n const uuid = crypto.randomUUID();\n let success = false;\n try {\n await api?.createItem!({ ...formItem, id: uuid, type: type });\n success = true;\n } catch (error) {\n toast.error(error.toString());\n }\n if (success) {\n addItem({ ...formItem, id: uuid, type: type, layer: layers.find(l => l.name == addItemPopupType), user_created: user });\n toast.success(\"New item created\");\n resetFilterTags();\n }\n setLoading(false);\n setAddItemPopupType(\"\");\n setItems(current => [...current,{ ...formItem, id: uuid, type: type, layer: layers.find(l => l.name == addItemPopupType), user_created: user } ])\n}\n\n\n return (\n\n <main className=\"tw-flex-1 tw-overflow-y-auto tw-pt-2 tw-px-6 tw-bg-base-200 tw-min-w-80 tw-flex tw-justify-center\" >\n <div className=' tw-w-full xl:tw-max-w-6xl'>\n {breadcrumbs &&\n <div className=\"tw-text-sm tw-breadcrumbs\">\n <ul>\n {breadcrumbs.map((b, i) => <li key={i}><Link to={b.path} >{b.name}</Link></li>)}\n </ul>\n </div>}\n {/**\n <div className=\"grid md:grid-cols-2 lg:grid-cols-3 gap-4 mb-4 mt-2 \">\n <TextInput defaultValue='' placeholder='🔍 Search' containerStyle='lg:col-span-2' updateFormValue={(val) => { setSearch(val) }}></TextInput>\n <SelectBox updateFormValue={() => { }} placeholder=\"Type\" containerStyle=' hidden md:grid' defaultValue='PLACEHOLDER' options={[{ name: \"local\", value: \"local\" }, { name: \"project\", value: \"project\" }]} />\n </div>\n <div className=\"divider\" ></div>\n\n */}\n\n\n\n <div className=\"tw-grid tw-grid-cols-1 md:tw-grid-cols-2 lg:tw-grid-cols-3 tw-gap-6 tw-pt-8\">\n {\n items?.map((i, k) => {\n return (\n\n\n <div key={k} 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' onClick={() => navigate(url + getValue(i,parameterField))}>\n\n <div className='tw-grid tw-grid-cols-6 tw-pb-2'>\n <div className='tw-col-span-5'>\n <div className=\"tw-flex tw-flex-row\">{\n getValue(i, itemImageField) ?\n <div className=\"tw-w-10 tw-min-w-[2.5em] tw-rounded-full\">\n <img className=\"tw-rounded-full\" src={`${assetsApi.url}${getValue(i, itemImageField)}?width=80&height=80`} />\n </div>\n :\n \"\"\n }\n <b className={`tw-text-xl tw-font-bold ${getValue(i, itemImageField) ? \"tw-ml-2 tw-mt-1\" : \"\"}`}>{getValue(i, itemNameField)}</b>\n\n </div>\n </div>\n <div className='tw-col-span-1'>\n\n </div>\n </div>\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n <TextView truncate item={i} itemTextField={itemTextField} />\n </div>\n </div>\n\n )\n\n })\n }\n {addItemPopupType == \"project\" ?\n\n <form ref={tabRef} autoComplete='off' onSubmit={e => submitNewItem(e, addItemPopupType)} >\n\n <div 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-6 tw-mb-10'>\n <label 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\" onClick={() => {\n setAddItemPopupType(\"\")\n }}>\n <p className='tw-text-center '>✕</p></label>\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={\"\"} inputStyle='' />\n <TextAreaInput placeholder=\"Text\" dataField=\"text\" defaultValue={\"\"} inputStyle='tw-h-40 tw-mt-5' />\n <div className='tw-flex tw-justify-center'>\n <button className={loading ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center'} type='submit'>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Save'}</button>\n </div>\n </div>\n </form> : <></>\n }\n </div>\n </div>\n <PlusButton triggerAction={() => {setAddItemPopupType(\"project\"); scroll();}} color={'#777'} collection='items'/>\n {children}\n </main>\n\n\n )\n}\n","import { useState, useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { CardPage } from \"./CardPage\";\nimport { ItemsApi } from \"../../types\";\nimport { getValue } from \"../../Utils/GetValue\";\n\n\ntype breadcrumb = {\n name: string,\n path: string\n}\n\n\nexport const ItemViewPage = ({ api, parents, itemNameField, itemTextField, itemImageField, itemSymbolField }: { api: ItemsApi<any>, parents: Array<breadcrumb>, itemNameField: string, itemTextField: string, itemImageField: string, itemSymbolField: string }) => {\n\n const [item, setItem] = useState<any>();\n\n let location = useLocation();\n \n\n const loadProject = async () => {\n if (api?.getItem) {\n const project: unknown = await api?.getItem(location.pathname.split(\"/\")[2]);\n setItem(project as any);\n }\n }\n\n\n\n useEffect(() => {\n loadProject();\n }, [api])\n\n return (\n <CardPage title={getValue(item, itemNameField) || \"\"} parents={parents}>\n {item &&\n <>\n {getValue(item, itemImageField) ?\n <div className=' tw-h-36 flex items-center justify-center '>\n <img className='tw-h-24' src={`https://api.utopia-lab.org/assets/${getValue(item, itemImageField)}`}></img>\n </div> :\n <div className=\"tw-h-36 !bg-transparent tw-flex tw-items-center tw-justify-center tw-text-7xl\">\n {getValue(item, itemSymbolField)}\n </div>\n }\n <p className='text-sm mb-2'>{getValue(item, itemTextField)}</p>\n </>\n\n }\n\n </CardPage>\n )\n}\n","import { useRef, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom'\nimport ErrorText from '../Typography/ErrorText'\nimport { TextInput } from '../Input/TextInput'\nimport * as React from 'react'\nimport { toast } from 'react-toastify'\nimport { useAuth } from './useAuth'\nimport { MapOverlayPage} from '../Templates'\n\nexport function LoginPage() {\n\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 const onLogin = async () => {\n await toast.promise(\n login({ email: email, password: password }),\n {\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 },\n pending: 'logging in ...'\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'>Login</h2>\n <input type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className='tw-text-right tw-text-primary'><Link to=\"/reset-password\"><span className=\"tw-text-sm tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Forgot Password?</span></Link>\n </div>\n <div className=\"tw-card-actions\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onLogin()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Login'}</button>\n </div>\n </MapOverlayPage>\n )\n}\n\n","import { useRef, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom'\nimport ErrorText from '../Typography/ErrorText'\nimport { TextInput } from '../Input/TextInput'\nimport * as React from 'react'\nimport { toast } from 'react-toastify'\nimport { useAuth } from './useAuth'\nimport { MapOverlayPage } from '../Templates'\n\nexport function SignupPage() {\n\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 const onRegister = async () => {\n await toast.promise(\n register({ email: email, password: password }, userName),\n {\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 },\n pending: 'creating new user ...'\n });\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'>Sign Up</h2>\n <input type=\"text\" placeholder=\"Name\" value={userName} onChange={e => setUserName(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions tw-mt-4\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onRegister()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Sign Up'}</button>\n </div>\n </MapOverlayPage>\n )\n}\n\n","import { useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport * as React from 'react'\nimport { toast } from 'react-toastify'\nimport { useAuth } from './useAuth'\nimport { MapOverlayPage} from '../Templates'\n\nexport function RequestPasswordPage({reset_url}) {\n\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(\n requestPasswordReset( email, reset_url),\n {\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 type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions tw-mt-4\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onReset()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Send'}</button>\n </div>\n </MapOverlayPage>\n )\n}\n\n","import { useRef, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom'\nimport ErrorText from '../Typography/ErrorText'\nimport { TextInput } from '../Input/TextInput'\nimport * as React from 'react'\nimport { toast } from 'react-toastify'\nimport { useAuth } from './useAuth'\nimport { MapOverlayPage} from '../Templates'\n\nexport function SetNewPasswordPage() {\n\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(\n passwordReset(token, password),\n {\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 type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions tw-mt-4\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onReset()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Set'}</button>\n </div>\n </MapOverlayPage>\n )\n}\n\n","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { Item, ItemsApi, Permission, PermissionAction } from \"../../../types\";\nimport { useAuth } from \"../../Auth\";\n\ntype ActionType =\n | { type: \"ADD\"; permission: Permission }\n | { 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: (collectionName: string, action: PermissionAction, item?: Item) => boolean;\n} {\n const [permissions, dispatch] = useReducer((state: Permission[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\":\n const exist = state.find((permission) =>\n permission.id === action.permission.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.permission,\n ];\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\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 })\n }\n }, [])\n\n const setPermissionData = useCallback((data: Permission[]) => {\n data.map(permission => {\n dispatch({ type: \"ADD\", permission })\n })\n }, []);\n\n const hasUserPermission = useCallback(\n (collectionName: string, action: PermissionAction, item?: Item) => { \n if (permissions.length === 0) return true;\n else if (user && user.role === adminRole) return true;\n else {\n return permissions.some(p =>\n p.action === action &&\n p.collection === collectionName &&\n p.role === user?.role &&\n (\n // Wenn 'item' nicht gesetzt ist, ignorieren wir die Überprüfung von 'user_created'\n !item || !p.permissions || !p.permissions._and ||\n p.permissions._and.some(condition => \n condition.user_created &&\n condition.user_created._eq === \"$CURRENT_USER\" &&\n item.user_created.id === user?.id\n )\n )\n );\n }\n },\n [permissions, user]\n );\n \n\n\n\n return { permissions, setPermissionApi, setPermissionData, setAdminRole, hasUserPermission };\n}\n\nexport const PermissionsProvider: React.FunctionComponent<{\n initialPermissions: Permission[], 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\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}","import * as React from 'react'\nimport { useLayers } from '../hooks/useLayers'\nimport { useHasUserPermission } from '../hooks/usePermissions';\n\n\nexport default function AddButton({ triggerAction }: { 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 (layer.api?.createItem && hasUserPermission(layer.api.collectionName!, \"create\")) canAdd = true;\n })\n return canAdd;\n }\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 xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" className=\"tw-w-5 tw-h-5\">\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((layer) => (\n layer.api?.createItem && hasUserPermission(layer.api.collectionName!, \"create\") && (\n <li key={layer.name} >\n <a>\n <div className=\"tw-tooltip tw-tooltip-left\" data-tip={layer.menuText}>\n <button 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 }}\n onClick={() => { triggerAction(layer) }}>\n <layer.menuIcon className=\"tw-h-6 tw-w-6 tw-text-white\" ></layer.menuIcon>\n </button>\n </div>\n </a>\n </li>\n )\n\n ))}\n </ul>\n </div> : \"\"\n }\n </>\n\n )\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","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}","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 useEffect(clear, []);\n}","import { useCallback, useReducer, createContext, useContext, useEffect } 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 ;\n\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\n\n\n const [leafletRefs, dispatch] = useReducer((state: Record<string,LeafletRef>, action: ActionType) => {\n switch (action.type) {\n case \"ADD_MARKER\":\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], marker: action.marker, item: action.item }}\n case \"ADD_POPUP\":\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], popup: action.popup, item: action.item }}\n default:\n throw new Error();\n }\n }, initialLeafletRefs);\n\n\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\n\n return { leafletRefs, addMarker, addPopup };\n}\n\nexport const LeafletRefsProvider: React.FunctionComponent<{\n initialLeafletRefs: {}, 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\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 React from 'react'\nimport * 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\n const map = useMap();\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n\n const [lc, setLc] = useState<any>(null);\n const [active, setActive] = useState<boolean>(false);\n const [loading, setLoading] = useState<boolean>(false);\n\n\n useEffect(() => {\n if (!init.current) {\n //@ts-ignore\n setLc(L.control.locate().addTo(map));\n init.current = true;\n }\n }, [])\n\n useMapEvents({\n locationfound: () => {\n setLoading(false);\n setActive(true);\n },\n })\n\n return (<>\n <div className=\"tw-card tw-w-14 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\">\n\n <div className=\"tw-card-body tw-card tw-p-2 tw-h-10 tw-w-10 \" onClick={() => {\n if (active) {\n lc.stop();\n setActive(false);\n }\n else {\n lc.start();\n setLoading(true);\n }\n\n }}>{loading ? <span className=\"tw-loading tw-loading-spinner tw-loading-md tw-mt-1\"></span> : \n <svg fill={`${active? \"#fc8702\" : \"currentColor\"}`} viewBox=\"0 0 32 32\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" className='tw-mt-1 tw-p-[1px]'>\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\n","import * as L from 'leaflet';\n\nconst createSvg = (shape: string, markerColor: string, borderColor: string) => {\n const svgMap = {\n circle: '<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=\"' + markerColor + '\" /><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=\"' + borderColor + '\" opacity=\"1\" /></svg>',\n square: '<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=\"' + markerColor + '\" /><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=\"' + borderColor + '\" /></g></svg>',\n star: '<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=\"' + markerColor + '\" /><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: '<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=\"' + markerColor + '\" /><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 \"circle-solid\":\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 break;\n case \"calendar-days-solid\":\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 break;\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 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 let formatedTag = string.replace(/_/g, \"\\u00A0\"); \n return formatedTag = formatedTag.charAt(0).toUpperCase() + formatedTag.slice(1);\n}\n\nexport function encodeTag(string : string) { \n return string.replace(/\\s+/g, \"_\"); \n}","import * as React from 'react'\nimport { useAddFilterTag, useFilterTags, useResetFilterTags, useSetSearchPhrase } from '../../hooks/useFilter'\nimport useWindowDimensions from '../../hooks/useWindowDimension';\nimport axios from 'axios';\nimport { 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';\n\n\n\nexport const SearchControl = ({ clusterRef }) => {\n\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<any>>([]);\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 const resetFilterTags = useResetFilterTags();\n const filterTags = useFilterTags();\n\n useMapEvents({\n popupopen: () => { \n setPopupOpen(true);\n },\n popupclose: () => {\n setPopupOpen(false);\n }\n })\n\n useDebounce(() => {\n const searchGeo = async () => {\n try {\n const { data } = await axios.get(\n `https://photon.komoot.io/api/?q=${value}&limit=5`\n );\n setGeoResults(data.features);\n } catch (error) {\n console.log(error);\n }\n };\n searchGeo();\n setItemsResults(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 item.name?.toLowerCase().includes(value.toLowerCase()) || item.text?.toLowerCase().includes(value.toLowerCase())\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, [value]);\n\n const hide = async () => {\n setTimeout(() => {\n setHideSuggestions(true);\n }, 200);\n }\n\n const searchInput = useRef<HTMLInputElement>(null);\n\n return (<>\n {!(windowDimensions.height < 500 && popupOpen && hideSuggestions) &&\n <div className='tw-w-[calc(100vw-2rem)] tw-max-w-[22rem] '>\n <div className='flex tw-flex-row'>\n <input type=\"text\" placeholder=\"search ...\" autoComplete=\"off\" value={value} className=\"tw-input tw-input-bordered tw-w-full tw-shadow-xl tw-rounded-lg tw-mr-2\"\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 <LocateControl />\n </div>\n {value.length > 0 && <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-absolute tw-right-16 tw-top-2\" onClick={() => setValue(\"\")}>✕</button>}\n {hideSuggestions || Array.from(geoResults).length == 0 && itemsResults.length == 0 && tagsResults.length == 0 && !isGeoCoordinate(value)|| value.length == 0? \"\" :\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)]'>\n {tagsResults.length > 0 &&\n <div className='tw-flex tw-flex-wrap tw-max-h-16 tw-overflow-hidden tw-min-h-[32px]'>\n {tagsResults.map(tag => (\n <div key={tag.name} 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' style={{ backgroundColor: tag.color }} onClick={() => {\n addFilterTag(tag)\n let params = new URLSearchParams(window.location.search);\n window.history.pushState({}, \"\", \"/\" + `${params? `?${params}` : \"\"}`);\n }}>\n <b>#{decodeTag(tag.name)}</b>\n </div>\n ))}\n </div>\n }\n\n {itemsResults.length > 0 && tagsResults.length > 0 && <hr className='tw-opacity-50'></hr>}\n {itemsResults.slice(0, 5).map(item => (\n <div key={item.id} className='tw-cursor-pointer hover:tw-font-bold' onClick={() => {\n const marker = Object.entries(leafletRefs).find(r => r[1].item == item)?.[1].marker;\n\n if (filterTags.length > 0) {\n marker !== null && window.history.pushState({}, \"\", `/${item.layer.name}/${item.id}`)\n resetFilterTags();\n hide();\n }\n else {\n marker !== null && clusterRef?.current?.zoomToShowLayer(marker, () => {\n marker?.openPopup();\n hide();\n });\n }\n }\n }><div className='tw-flex tw-flex-row'>\n <item.layer.menuIcon className=\"tw-text-current tw-w-5 tw-mr-2 tw-mt-0\" />\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{item.name}</div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{item.text}</div>\n </div>\n </div>\n </div>\n ))}\n {Array.from(geoResults).length > 0 && (itemsResults.length > 0 || tagsResults.length > 0) && <hr className='tw-opacity-50'></hr>}\n {Array.from(geoResults).map((geo) => (\n <div className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer' key={Math.random()} onClick={() => {\n searchInput.current?.blur();\n L.marker(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]),{icon: MarkerIconFactory(\"circle\", \"#777\", \"RGBA(35, 31, 32, 0.2)\", \"circle-solid\")}).addTo(map).bindPopup(`<h3 class=\"tw-text-base tw-font-bold\">${geo?.properties.name ? geo?.properties.name : value}<h3>${capitalizeFirstLetter(geo?.properties?.osm_value)}`).openPopup().addEventListener(\"popupclose\", (e) => {console.log(e.target.remove())});\n if (geo.properties.extent) map.fitBounds(new LatLngBounds(new LatLng(geo.properties.extent[1], geo.properties.extent[0]), new LatLng(geo.properties.extent[3], geo.properties.extent[2])));\n else map.setView(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), 15, { duration: 1 });\n hide();\n }}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"1.5\" stroke=\"currentColor\" className=\"tw-text-current tw-mr-2 tw-mt-0 tw-w-4\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{geo?.properties.name ? geo?.properties.name : value}</div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{geo?.properties?.city && `${capitalizeFirstLetter(geo?.properties?.city)}, `} {geo?.properties?.osm_value && geo?.properties?.osm_value !== \"yes\" && geo?.properties?.osm_value !== \"primary\" && geo?.properties?.osm_value !== \"path\" && geo?.properties?.osm_value !== \"secondary\" && geo?.properties?.osm_value !== \"residential\" && geo?.properties?.osm_value !== \"unclassified\" && `${capitalizeFirstLetter(geo?.properties?.osm_value)}, `} {geo.properties.state && `${geo.properties.state}, `} {geo.properties.country && geo.properties.country}</div>\n </div>\n </div>\n\n ))}\n {isGeoCoordinate(value) &&\n <div className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer' onClick={() => {\n L.marker(new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]),{icon: MarkerIconFactory(\"circle\", \"#777\", \"RGBA(35, 31, 32, 0.2)\", \"circle-solid\")}).addTo(map).bindPopup(`<h3 class=\"tw-text-base tw-font-bold\">${extractCoordinates(value)![0]}, ${extractCoordinates(value)![1]}</h3>`).openPopup().addEventListener(\"popupclose\", (e) => {console.log(e.target.remove())});\n map.setView(new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]), 15, { duration: 1 })\n }}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\" className=\"tw-text-current tw-mr-2 tw-mt-0 tw-w-4\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{value}</div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{\"Coordiante\"}</div>\n </div>\n </div>\n }\n </div>}\n </div>\n }\n </>\n\n )\n}\n\nfunction isGeoCoordinate(input) { \n const geokoordinatenRegex = /^[-+]?([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}","import * as React from 'react'\nimport * as L from 'leaflet'\nimport { useLayers } from '../../hooks/useLayers';\nimport { useAddVisibleLayer, useIsLayerVisible, useToggleVisibleLayer } from '../../hooks/useFilter';\nimport { useEffect } from 'react';\n\nexport function LayerControl() {\n\n const [open, setOpen] = React.useState(false);\n\n const layers = useLayers();\n\n useEffect(() => {\n layers.map(layer =>\n addVisibleLayer(layer)\n )\n }, [layers])\n\n const isLayerVisible = useIsLayerVisible();\n const toggleVisibleLayer = useToggleVisibleLayer();\n const addVisibleLayer = useAddVisibleLayer();\n\n return (\n <div className=\"tw-card tw-bg-base-100 tw-shadow-xl \">\n {\n open ?\n <div className=\"tw-card-body tw-p-2 tw-w-36 tw-transition-all tw-duration-300\">\n <label 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\" onClick={() => {\n setOpen(false)\n }}>\n <p className='tw-text-center '>✕</p></label>\n <ul className='tw-flex-row'>\n {\n layers.map(layer =>\n <li key={layer.name}><label htmlFor={layer.name} className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-1\"><input id={layer.name} onChange={() => toggleVisibleLayer(layer)} type=\"checkbox\" className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={isLayerVisible(layer)} /><span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>{layer.name}</span></label></li>\n )\n }\n </ul>\n </div>\n :\n <div 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\" onClick={() => {\n setOpen(true)\n }}>\n <svg version=\"1.1\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\">\n <path id=\"svg_1\" fill=\"currentColor\" 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 <path id=\"svg_2\" strokeWidth=\"2\" stroke=\"currentColor\" fill=\"none\" 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 </svg>\n </div>\n\n }\n\n </div>\n )\n}\n","import { useCallback, useState } from 'react';\n\n\nimport { createContext, useContext } from \"react\";\nimport * as React from \"react\";\n\n\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, children?: React.ReactNode\n}> = ({ initialOpen, children }) => (\n <QuestContext.Provider value={useQuestsManager(initialOpen)}>\n {children}\n </QuestContext.Provider>\n);\n\nexport const useQuestsOpen = (): boolean => {\n const { open } = useContext(QuestContext);\n return open;\n};\n\n\nexport const useSetQuestOpen = (): UseQuestManagerResult[\"setQuestsOpen\"] => {\n const { setQuestsOpen } = useContext(QuestContext);\n return setQuestsOpen;\n}\n","import * as React from 'react'\nimport { useQuestsOpen, useSetQuestOpen } from '../../../Gaming/hooks/useQuests';\n\n\nexport function QuestControl() {\n\n const questsOpen = useQuestsOpen();\n const setQuestsOpen = useSetQuestOpen();\n\n return (\n <>\n {questsOpen ? \"\" :\n <div className=\"tw-card tw-bg-base-100 tw-shadow-xl tw-my-2 tw-w-10\" onClick={e => e.stopPropagation()}>\n \n <div className=\"tw-card-body hover:tw-bg-slate-300 tw-rounded-2xl tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer\" onClick={() => setQuestsOpen(true)}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" stroke=\"currentColor\" viewBox=\"0 0 448 512\"><path d=\"M192 0c17.7 0 32 14.3 32 32V144H160V32c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H64V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H128c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z\"/></svg>\n </div>\n\n </div>\n }\n </>\n )\n}\n","import * as L from 'leaflet'\nimport * as React from 'react'\n\n\n\nexport const Control = ({ position, children, zIndex }: { position: \"topLeft\" | \"topRight\" | \"bottomLeft\" | \"bottomRight\", children: React.ReactNode, zIndex: string }) => {\n\n\n const controlContainerRef = React.createRef<HTMLDivElement>()\n\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 ref={controlContainerRef} style={{zIndex: zIndex}} className={`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 * as React from 'react'\nimport { useFilterTags, useRemoveFilterTag } from '../../hooks/useFilter';\nimport { decodeTag } from '../../../../Utils/FormatTags';\n\nexport const TagsControl = () => {\n\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 {\n filterTags.map(tag =>\n <div key={tag.id} className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mr-2 tw-mb-2' style={{ backgroundColor: tag.color }}>\n <div className=\"tw-card-actions tw-justify-end\">\n <label className=\"tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600\" onClick={() => (removeFilterTag(tag.name!))}>✕</label>\n </div><b>#{decodeTag(tag.name)}</b>\n </div>\n )\n }\n</div>)\n}\n\n\n","import { TileLayer, MapContainer, useMapEvents } from \"react-leaflet\";\nimport \"leaflet/dist/leaflet.css\";\nimport * as React from \"react\";\nimport { LayerProps, UtopiaMapProps } from \"../../types\"\nimport \"./UtopiaMap.css\"\nimport { LatLng } from \"leaflet\";\nimport MarkerClusterGroup from 'react-leaflet-cluster'\nimport AddButton from \"./Subcomponents/AddButton\";\nimport { useEffect, useState } from \"react\";\nimport { ItemFormPopupProps } from \"./Subcomponents/ItemFormPopup\";\nimport { ItemsProvider } from \"./hooks/useItems\";\nimport { LayersProvider } from \"./hooks/useLayers\";\nimport { FilterProvider } from \"./hooks/useFilter\";\nimport { SearchControl } from \"./Subcomponents/Controls/SearchControl\";\nimport { LeafletRefsProvider } from \"./hooks/useLeafletRefs\";\nimport { LayerControl } from \"./Subcomponents/Controls/LayerControl\";\nimport { QuestControl } from \"./Subcomponents/Controls/QuestControl\";\nimport { Control } from \"./Subcomponents/Controls/Control\";\nimport { Outlet, useLocation } from \"react-router-dom\";\nimport { TagsControl } from \"./Subcomponents/Controls/TagsControl\";\n\n\nexport interface MapEventListenerProps {\n selectNewItemPosition: LayerProps | null,\n setSelectNewItemPosition: React.Dispatch<any>,\n setItemFormPopup: React.Dispatch<React.SetStateAction<any>>\n}\n\n\n// for refreshing map on resize (needs to be implemented)\nconst mapDivRef = React.createRef();\n\nfunction UtopiaMap({\n height = \"500px\",\n width = \"100%\",\n center = [50.6, 9.5],\n zoom = 10,\n children }\n : UtopiaMapProps) {\n\n function MapEventListener(props: MapEventListenerProps) {\n useMapEvents({\n click: (e) => {\n let params = new URLSearchParams(window.location.search);\n window.history.pushState({}, \"\", `/`+ `${params.toString() !== \"\" ? `?${params}` : \"\"}`)\n document.title = document.title.split(\"-\")[0];\n document.querySelector('meta[property=\"og:title\"]')?.setAttribute(\"content\", document.title);\n document.querySelector('meta[property=\"og:description\"]')?.setAttribute(\"content\", `${document.querySelector('meta[name=\"description\"]')?.getAttribute(\"content\")}`);\n\n console.log(e.latlng.lat + ',' + e.latlng.lng);\n if (props.selectNewItemPosition != null) {\n props.setItemFormPopup({ layer: props.selectNewItemPosition, position: e.latlng })\n props.setSelectNewItemPosition(null)\n }\n },\n moveend: (e) => {\n console.log(e);\n }\n \n \n })\n return null\n }\n\n const [selectNewItemPosition, setSelectNewItemPosition] = useState<LayerProps | null>(null);\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null);\n\n const clusterRef = React.useRef();\n\n const location = useLocation();\n\n useEffect(() => {\n let params = new URLSearchParams(location.search);\n let urlPosition = params.get(\"position\");\n\n\n }, [location]);\n\n\n return (\n <>\n \n <LayersProvider initialLayers={[]}>\n <FilterProvider initialTags={[]}>\n <ItemsProvider initialItems={[]}>\n <LeafletRefsProvider initialLeafletRefs={{}}>\n <div className={(selectNewItemPosition != null ? \"crosshair-cursor-enabled\" : undefined)}>\n <MapContainer ref={mapDivRef} style={{ height: height, width: width }} center={new LatLng(center[0], center[1])} zoom={zoom} zoomControl={false} maxZoom={19}>\n <Outlet></Outlet>\n <Control position='topLeft' zIndex=\"1000\">\n <SearchControl clusterRef={clusterRef} />\n <TagsControl />\n </Control>\n <Control position='bottomLeft' zIndex=\"999\">\n <QuestControl></QuestControl>\n <LayerControl></LayerControl>\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 <MarkerClusterGroup ref={clusterRef} showCoverageOnHover chunkedLoading maxClusterRadius={50} removeOutsideVisibleBounds={false}>\n {\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps>>, itemFormPopup: ItemFormPopupProps | null, clusterRef: React.MutableRefObject<undefined> }>(child) ?\n React.cloneElement(child, { setItemFormPopup: setItemFormPopup, itemFormPopup: itemFormPopup, clusterRef: clusterRef }) : child\n )\n }\n </MarkerClusterGroup>\n <MapEventListener setSelectNewItemPosition={setSelectNewItemPosition} selectNewItemPosition={selectNewItemPosition} setItemFormPopup={setItemFormPopup} />\n </MapContainer>\n <AddButton triggerAction={setSelectNewItemPosition}></AddButton>\n {selectNewItemPosition != null &&\n <div className=\"tw-button tw-z-1000 tw-absolute tw-right-5 tw-top-4 tw-drop-shadow-md\">\n <div className=\"tw-alert tw-bg-base-100 tw-text-base-content\">\n <div>\n <span>Select {selectNewItemPosition.name} position!</span>\n </div>\n </div>\n </div>\n }\n </div>\n </LeafletRefsProvider>\n </ItemsProvider>\n </FilterProvider>\n </LayersProvider>\n </>\n );\n}\n\nexport { UtopiaMap };","import * as React from \"react\";\nimport { MouseEvent, useEffect, useRef } from \"react\";\n\n\nconst isClickInsideRectangle = (e: MouseEvent, element: HTMLElement) => {\n const r = element.getBoundingClientRect();\n\n return (\n e.clientX > r.left &&\n e.clientX < r.right &&\n e.clientY > r.top &&\n e.clientY < r.bottom\n );\n};\n\ntype Props = {\n title: string;\n isOpened: boolean;\n onClose: () => void;\n children: React.ReactNode;\n showCloseButton?: boolean\n};\n\nconst DialogModal = ({\n title,\n isOpened,\n onClose,\n children,\n showCloseButton = true\n}: Props) => {\n \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\n return (\n <dialog 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 \n ref={ref}\n onCancel={onClose}\n onClick={(e) =>\n ref.current && !isClickInsideRectangle(e, ref.current) && onClose()\n }\n >\n <div className=\"tw-card-body tw-p-2\">\n\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>{title}</h2>\n\n {children}\n {showCloseButton && <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\" onClick={onClose}>✕</button>}\n\n </div>\n </dialog>\n );\n};\n\nexport default DialogModal;\n","import * as React from \"react\"\nimport { useRemoveItem } from \"../../hooks/useItems\";\nimport { useMap } from \"react-leaflet\";\nimport { ItemFormPopupProps } from \"../ItemFormPopup\";\nimport { LatLng } from \"leaflet\";\nimport { Item } from \"../../../../types\";\nimport { toast } from \"react-toastify\";\nimport { useHasUserPermission } from \"../../hooks/usePermissions\";\nimport { useAuth } from \"../../../Auth\";\nimport { getValue } from \"../../../../Utils/GetValue\";\nimport { useAssetApi } from '../../../AppShell/hooks/useAssets'\nimport DialogModal from \"../../../Templates/DialogModal\";\nimport { useNavigate } from \"react-router-dom\";\n\n\n\n\nexport function HeaderView({ item, setItemFormPopup, hideMenu=false }: {\n item: Item,\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>,\n hideMenu?: boolean\n}) {\n\n\n const [modalOpen, setModalOpen] = React.useState<boolean>(false);\n\n const [loading, setLoading] = React.useState<boolean>(false);\n const removeItem = useRemoveItem();\n\n const map = useMap();\n const hasUserPermission = useHasUserPermission();\n\n const { user } = useAuth();\n\n const assetsApi = useAssetApi();\n const navigate = useNavigate();\n\n const avatar = item.layer?.itemAvatarField && item && getValue(item, item.layer?.itemAvatarField)? assetsApi.url + getValue(item, item.layer?.itemAvatarField ) : undefined;\n const title = item.layer?.itemNameField && item ? getValue(item, item.layer?.itemNameField) : undefined;\n const owner = item.layer?.itemOwnerField && item ? getValue(item, item.layer?.itemOwnerField) : undefined;\n\n\n\n const removeItemFromMap = async (event: React.MouseEvent<HTMLElement>) => {\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 let params = new URLSearchParams(window.location.search);\n window.history.pushState({}, \"\", \"/\" + `${params? `?${params}` : \"\"}`);\n setModalOpen(false);\n navigate(\"/\");\n\n\n }\n\n const openDeleteModal = async (event: React.MouseEvent<HTMLElement>) => {\n setModalOpen(true);\n event.stopPropagation();\n }\n\n const openEditPopup = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n map.closePopup();\n if (setItemFormPopup && item.position)\n setItemFormPopup({ position: new LatLng(item.position.coordinates[1], item.position.coordinates[0]), layer: item.layer!, item: item, setItemFormPopup: setItemFormPopup })\n }\n\n\n return (\n <>\n <div className='tw-grid tw-grid-cols-6 tw-pb-2'>\n <div className='tw-col-span-5'>\n <div className=\"tw-flex tw-flex-row\">{\n avatar ?\n <div className=\"tw-w-10 tw-min-w-[2.5em] tw-rounded-full\">\n <img className=\"tw-rounded-full\" src={`${avatar}?width=80&height=80`} />\n </div>\n :\n \"\"\n }\n <b className={`tw-text-xl tw-font-bold ${avatar ? \"tw-ml-2 tw-mt-1\" : \"\"}`}>{title ? title : item.name}</b>\n\n </div>\n </div>\n <div className='tw-col-span-1' onClick={(e)=>e.stopPropagation()}>\n {(item.layer?.api?.deleteItem || item.layer?.api?.updateItem)\n && (hasUserPermission(item.layer.api?.collectionName!, \"delete\", item) || hasUserPermission(item.layer.api?.collectionName!, \"update\", item))\n && !hideMenu &&\n <div className=\"tw-dropdown tw-dropdown-bottom\">\n <label tabIndex={0} className=\"tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\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 tabIndex={0} className=\"tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000\">\n {((item.layer.api.updateItem && hasUserPermission(item.layer.api?.collectionName!, \"update\", item)) || item.layer.customEditLink) && <li>\n <a className=\"!tw-text-base-content tw-cursor-pointer\" onClick={(e) => {\n item.layer?.customEditLink && navigate(item.layer.customEditLink);\n !item.layer?.customEditLink && openEditPopup(e);\n }}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\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 {item.layer.api.deleteItem && hasUserPermission(item.layer.api?.collectionName!, \"delete\", item) && <li>\n <a className='tw-cursor-pointer !tw-text-error' onClick={openDeleteModal}>\n {loading ? <span className=\"tw-loading tw-loading-spinner tw-loading-sm\"></span>\n :\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fillRule=\"evenodd\" 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\" clipRule=\"evenodd\" />\n </svg>}\n </a>\n </li>}\n </ul>\n </div>}\n </div>\n </div>\n <DialogModal isOpened={modalOpen} title=\"Are you sure?\" showCloseButton={false} onClose={ () => (setModalOpen(false)) }>\n <span>Do you want to delete <b>{item.name}</b>?</span>\n <div className=\"tw-grid\">\n <div className=\"tw-flex tw-justify-between\">\n <label className=\"tw-btn tw-mt-4 tw-btn-error\" onClick={removeItemFromMap}>Yes</label>\n <label className=\"tw-btn tw-mt-4\" onClick={() => setModalOpen(false)}>No</label>\n </div>\n </div>\n </DialogModal>\n </>\n )\n}\n","export const urlRegex = /(^| )(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\n\nexport function fixUrls(message: string): string {\n \n message = message.replace(urlRegex, function (url) {\n let hyperlink = url.replace(' ', '');\n if (!hyperlink.match('^https?:\\/\\/')) {\n hyperlink = 'https://' + hyperlink;\n } \n return hyperlink\n });\n \n \n return message;\n }","import * as React from 'react'\nimport { 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';\n\nexport const TextView = ({ item, truncate = false, itemTextField}: { item?: Item, truncate?: boolean,itemTextField?: string }) => {\n const tags = useTags();\n const addFilterTag = useAddFilterTag(); \n\n let text = \"\";\n\n if(itemTextField && item) text = getValue(item, itemTextField);\n else text = item?.layer?.itemTextField && item ? getValue(item, item.layer?.itemTextField) : \"\"\n\n if(item && text && truncate) text = truncateString(text, 100, true);\n\n let replacedText;\n\n item && text ? replacedText = fixUrls(text) : \"\";\n\n replacedText ? replacedText = replacedText.replace(/(?<!\\]?\\()https?:\\/\\/[^\\s\\)]+(?!\\))/g, (url) => {\n let shortUrl = url;\n if (url.match('^https:\\/\\/')) {\n shortUrl = url.split('https://')[1];\n }\n if (url.match('^http:\\/\\/')) {\n shortUrl = url.split('http://')[1];\n }\n return `[${shortUrl}](${url})`\n }) : \"\" ;\n\n replacedText ? replacedText = replacedText.replace(mailRegex, (url) => {\n return `[${url}](mailto:${url})`\n }) : \"\";\n\n replacedText ? replacedText = replacedText.replace(hashTagRegex, (match) => {\n return `[${match}](${match})`\n }) : \"\";\n\n\n\n const CustomH1 = ({ children }) => (\n <h1 className=\"tw-text-xl tw-font-bold\">{children}</h1>\n );\n const CustomH2 = ({ children }) => (\n <h2 className=\"tw-text-lg tw-font-bold\">{children}</h2>\n );\n const CustomH3 = ({ children }) => (\n <h3 className=\"tw-text-base tw-font-bold\">{children}</h3>\n );\n const CustomH4 = ({ children }) => (\n <h4 className=\"tw-text-base tw-font-bold\">{children}</h4>\n );\n const CustomH5 = ({ children }) => (\n <h5 className=\"tw-text-sm tw-font-bold\">{children}</h5>\n );\n const CustomH6 = ({ children }) => (\n <h6 className=\"tw-text-sm tw-font-bold\">{children}</h6>\n );\n const CustomParagraph = ({ children }) => (\n <p className=\"!tw-my-2\">{children}</p>\n );\n const CustomUnorderdList = ({ children }) => (\n <ul className=\"tw-list-disc tw-list-inside\">{children}</ul>\n );\n const CustomOrderdList = ({ children }) => (\n <ol className=\"tw-list-decimal tw-list-inside\">{children}</ol>\n );\n const CustomHorizontalRow = ({ children }) => (\n <hr className=\"tw-border-current\">{children}</hr>\n );\n const CustomImage = ({ alt, src, title }) => (\n <img\n className=\"max-w-full rounded-lg shadow-md\"\n src={src}\n alt={alt}\n title={title}\n />\n );\n const CustomExternalLink = ({ href, children }) => (\n <a className='tw-font-bold'\n href={href}\n target=\"_blank\"\n > {children}</a>\n );\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 // map.fitBounds(items)\n // map.closePopup();\n }}>{decodeTag(children)}</a>\n )};\n\n\n return (\n //@ts-ignore\n <Markdown className={`tw-text-map tw-leading-map `} remarkPlugins={[remarkBreaks]} components={{\n p: CustomParagraph,\n a: ({ href, children }) => {\n // Prüft, ob der Link ein YouTube-Video ist\n const isYouTubeVideo = href?.startsWith('https://www.youtube.com/watch?v=');\n\n if (isYouTubeVideo) {\n const videoId = href?.split('v=')[1].split('&')[0]; // Extrahiert die Video-ID aus der URL\n const youtubeEmbedUrl = `https://www.youtube-nocookie.com/embed/${videoId}`;\n\n return (\n\n <iframe className='tw-w-full'\n src={youtubeEmbedUrl}\n allowFullScreen\n />\n\n );\n }\n if (href?.startsWith(\"#\")) { \n const tag = tags.find(t => t.name.toLowerCase() == decodeURI(href).slice(1).toLowerCase())\n return <CustomHashTagLink tag={tag} item={item}>{children}</CustomHashTagLink>;\n } else {\n return (\n <CustomExternalLink href={href}>{children}</CustomExternalLink>\n );\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 {replacedText}\n </Markdown>\n )\n\n\n\n}\n\nfunction truncateString( str, n, useWordBoundary ){\n if (str.length <= n) { return str; }\n const subString = str.slice(0, n-1); // the original check\n return (useWordBoundary \n ? subString.slice(0, subString.lastIndexOf(\" \")) \n : subString) + \"&hellip;\";\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\n \nexport const timeAgo = (date: string | number | Date) => {\n const time = Math.floor(\n (new Date().valueOf() - new Date(date).valueOf()) / 1000\n );\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 (let { label, seconds } of units) {\n const interval = Math.floor(time / seconds);\n if (interval >= 1) {\n return {\n interval: interval,\n unit: label\n };\n }\n }\n return {\n interval: 0,\n unit: ''\n };\n};\n","import * as React from 'react'\nimport { Popup as LeafletPopup } 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'\n\n\nexport interface ItemViewPopupProps {\n item: Item,\n children?: React.ReactNode;\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\n\nexport const ItemViewPopup = React.forwardRef((props: ItemViewPopupProps, ref: any) => {\n\n const [infoExpanded, setInfoExpanded] = useState<Boolean>(false);\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 item={props.item} setItemFormPopup={props.setItemFormPopup} />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n {props.children ?\n\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\n <TextView item={props.item} />\n\n }\n\n </div>\n <div className='tw-flex -tw-mb-1 tw-flex-row tw-mr-2 tw-mt-1'>\n\n\n {\n infoExpanded ?\n <p className={`tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500 tw-cursor-pointer`} onClick={() => setInfoExpanded(false)}>{`posted ${props.item && props.item.user_created && props.item.user_created.first_name ? `by ${props.item.user_created.first_name}` : \"\"} ${timeAgo(props.item.date_created!)}`}</p>\n :\n <p className=\"!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500\" onClick={() => setInfoExpanded(true)}>ⓘ</p>\n }\n <div className='tw-grow'></div>\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\n","import { LatLng, LatLngTuple, latLng } from \"leaflet\";\nimport { ItemFormPopupProps } from \"./Components/Map/Subcomponents/ItemFormPopup\";\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}\n\nexport interface LayerProps {\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 api?: ItemsApi<any>,\n itemNameField?: 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 setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>,\n itemFormPopup?: ItemFormPopupProps | null,\n clusterRef?: React.MutableRefObject<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 [key: string]: any;\n constructor(id:string,name:string,text:string,position:Geometry, layer?: LayerProps, api?: ItemsApi<any>){\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 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 Tag {\n color: string;\n id: string;\n name: string;\n offer_or_need?: boolean\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 AssetsApi {\n upload(file: Blob, title: string): any,\n url: string\n}\n\nexport interface UserApi {\n register(email: string, password: string, userName: string): Promise<void>,\n\tlogin(email: string, password: string): Promise<any>,\n\tlogout(): Promise<void>,\n getUser(): Promise<UserItem>,\n getToken(): Promise<any>,\n\tupdateUser(user: UserItem): Promise<void>,\n requestPasswordReset(email:string, reset_url?:string),\n passwordReset(token:string,new_password:string)\n}\n\nexport type UserItem = {\n id?: string;\n role?: string;\n email?: string;\n password?: string;\n profile?: Profile;\n [key: string]: any;\n\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 PermissionCondition = {\n user_created?: {\n _eq: string; // Erwartet den speziellen Wert \"$CURRENT_USER\" oder eine spezifische UUID\n };\n // Hier können weitere Bedingungen nach Bedarf hinzugefügt werden\n};\n\nexport type Permission = {\n id?: string;\n role: string;\n collection: string;\n action: PermissionAction;\n permissions?: { // Optional, für spezifische Bedingungen wie `user_created`\n _and: PermissionCondition[];\n };\n};\n\n\nexport type PermissionAction = \"create\"|\"read\"|\"update\"|\"delete\";\n\nexport type Relation = {\n related_items_id: string;\n [key: string]: any;\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, ItemsApi } 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\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 const removeItem = useRemoveItem();\n\n\n const tags = useTags(); \n const addTag = useAddTag();\n\n const resetFilterTags = useResetFilterTags();\n\n const { user } = useAuth();\n\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 && formItem.text.toLocaleLowerCase().match(hashTagRegex)?.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 });\n\n\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 updateItem({...props.item, ...formItem});\n toast.success(\"Item updated\");\n } \n setSpinner(false);\n map.closePopup();\n }\n else {\n const uuid = crypto.randomUUID();\n let success = false;\n try {\n await props.layer.api?.createItem!({...formItem, id: uuid });\n success = true;\n } catch (error) {\n toast.error(error.toString());\n }\n if(success) {\n console.log(props.layer);\n \n if(props.layer.onlyOnePerOwner){\n const item = items.find(item => item.layer == props.layer && item.user_created?.id == user?.id); \n item && removeItem(item);\n }\n addItem({...formItem, id: uuid, layer: props.layer, user_created: user});\n toast.success(\"New item created\");\n resetFilterTags();\n } \n setSpinner(false);\n map.closePopup();\n }\n props.setItemFormPopup!(null);\n }\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 minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}\n eventHandlers={{\n remove: () => {\n setTimeout(function () {\n resetPopup()\n }, 100);\n }\n }}\n position={props.position}>\n <form ref={formRef} onReset={resetPopup} autoComplete='off' onSubmit={e => handleSubmit(e)}>\n {props.item ? <div className='tw-h-3'></div>\n :\n <div className='tw-flex tw-justify-center'><b className=\"tw-text-xl tw-font-bold\">{ popupTitle? popupTitle : `New ${props.layer.name}`}</b></div>\n }\n\n {props.children ?\n\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement<{ item: Item, test: string, setPopupTitle: React.Dispatch<React.SetStateAction<string>> }>(child) ?\n React.cloneElement(child, { item: props.item, key: props.position.toString(), setPopupTitle: setPopupTitle }) : \"\"\n )\n\n :\n <>\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={props.item ? props.item.name : \"\"} inputStyle='' />\n <TextAreaInput key={props.position.toString()} placeholder=\"Text\" dataField=\"text\" defaultValue={props.item ? props.item.text : \"\"} inputStyle='tw-h-40 tw-mt-5' />\n </>\n }\n\n <div className='tw-flex tw-justify-center'>\n <button className={spinner ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center'} type='submit'>{spinner ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Save'}</button>\n </div>\n </form>\n </LeafletPopup>\n )\n}\n\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 { useFilterTags, useIsLayerVisible } 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'\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 api,\n itemNameField = 'name',\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 setItemFormPopup,\n itemFormPopup,\n clusterRef\n}: LayerProps) => {\n\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 let location = useLocation();\n\n const allTagsLoaded = useAllTagsLoaded();\n const allItemsLoaded = useAllItemsLoaded();\n\n const tags = useTags();\n const addTag = useAddTag();\n const [newTagsToAdd, setNewTagsToAdd] = useState<Tag[]>([]);\n const [tagsReady, setTagsReady] = useState<boolean>(false);\n\n\n const map = useMap();\n\n const isLayerVisible = useIsLayerVisible();\n\n\n useEffect(() => {\n data && setItemsData({ data, children, name, menuIcon, menuText, menuColor, markerIcon, markerShape, markerDefaultColor, api, itemNameField, itemTextField, itemAvatarField, itemColorField, itemOwnerField, itemTagsField, itemOffersField, itemNeedsField, onlyOnePerOwner, customEditLink, setItemFormPopup, itemFormPopup, clusterRef });\n api && setItemsApi({ data, children, name, menuIcon, menuText, menuColor, markerIcon, markerShape, markerDefaultColor, api, itemNameField, itemTextField, itemAvatarField, itemColorField, itemOwnerField, itemTagsField, itemOffersField, itemNeedsField, onlyOnePerOwner, customEditLink, setItemFormPopup, itemFormPopup, clusterRef });\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(\"/\")[2] != item.id) {\n let params = new URLSearchParams(window.location.search); \n window.history.pushState({}, \"\", `/${name}/${item.id}`+ `${params.toString() !== \"\" ? `?${params}` : \"\"}`)\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 (window.location.pathname.split(\"/\").length <= 2 || window.location.pathname.split(\"/\")[2] === \"\") {\n map.closePopup();\n }\n else {\n if (window.location.pathname.split(\"/\")[1] == name) {\n\n if (window.location.pathname.split(\"/\")[2]) {\n const id = window.location.pathname.split(\"/\")[2]\n const marker = leafletRefs[id]?.marker;\n if (marker && marker != null) {\n marker !== null && clusterRef?.current?.zoomToShowLayer(marker, () => {\n marker.openPopup();\n });\n const item = leafletRefs[id]?.item;\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 document.querySelector('meta[property=\"og:title\"]')?.setAttribute(\"content\", item.name);\n document.querySelector('meta[property=\"og:description\"]')?.setAttribute(\"content\", item.text);\n }\n }\n }\n }\n\n }\n\n useEffect(() => {\n openPopup();\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 })\n }\n }, [tagsReady])\n\n return (\n <>\n {items &&\n items.\n filter(item => item.layer?.name === name)?.\n filter(item =>\n filterTags.length == 0 ? item : filterTags.every(tag => getItemTags(item).some(filterTag => filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())))?.\n filter(item => item.layer && isLayerVisible(item.layer)).\n map((item: Item) => {\n if (getValue(item, itemLongitudeField) && getValue(item, itemLatitudeField)) {\n\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 return item[itemTextField]\n\n });\n }\n\n\n if (allTagsLoaded && allItemsLoaded) { \n item[itemTextField].match(hashTagRegex)?.map(tag => {\n if ((!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) && !newTagsToAdd.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n const newTag = { id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() };\n setNewTagsToAdd(current => [...current, newTag]);\n }\n });\n !tagsReady && setTagsReady(true);\n }\n\n\n const itemTtags = getItemTags(item);\n\n const latitude = itemLatitudeField && item ? getValue(item, itemLatitudeField) : undefined;\n const longitude = itemLongitudeField && item ? getValue(item, itemLongitudeField) : undefined;\n\n let color1 = markerDefaultColor;\n let color2 = \"RGBA(35, 31, 32, 0.2)\";\n if (itemColorField) color1 = getValue(item, itemColorField);\n\n else if (itemTtags && itemTtags[0]) {\n color1 = itemTtags[0].color;\n }\n if (itemTtags && itemTtags[0] && itemColorField) color2 = itemTtags[0].color;\n else if (itemTtags && itemTtags[1]) {\n color2 = itemTtags[1].color;\n }\n return (\n <Marker ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].marker == r))\n r && addMarker(item, r);\n }} icon={MarkerIconFactory(markerShape, color1, color2, markerIcon)} key={item.id} position={[latitude, longitude]}>\n {\n (children && React.Children.toArray(children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemView\") ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemView\" ?\n <ItemViewPopup ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup == r))\n r && addPopup(item, r as Popup);\n }} key={item.id + item.name}\n item={item}\n setItemFormPopup={setItemFormPopup}>\n {child}\n </ItemViewPopup>\n : \"\"\n )\n :\n <>\n <ItemViewPopup key={item.id + item.name} ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup == r))\n r && addPopup(item, r as Popup);\n }}\n item={item}\n setItemFormPopup={setItemFormPopup} />\n </>)\n }\n <Tooltip offset={[0, -38]} direction='top'>{item.name ? item.name : getValue(item, itemNameField)}</Tooltip>\n </Marker>\n );\n }\n else return null;\n })\n }\n {//{children}}\n }\n {itemFormPopup && itemFormPopup.layer!.name == name &&\n (children && React.Children.toArray(children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemForm\") ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemForm\" ?\n <ItemFormPopup key={setItemFormPopup?.name} position={itemFormPopup!.position} layer={itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={itemFormPopup!.item} >{child}</ItemFormPopup>\n : \"\"\n )\n :\n <>\n <ItemFormPopup position={itemFormPopup!.position} layer={itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={itemFormPopup!.item} />\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 } from './hooks/useFilter';\n\nexport function Tags({data, api} : {data?: Tag[], api?: ItemsApi<Tag>}) {\nconst setTagData = useSetTagData();\nconst setTagApi = useSetTagApi();\n\nuseEffect(() => {\n data && setTagData(data); \n api && setTagApi(api); \n}, [api, data])\n\n\nconst location = useLocation();\nconst addFilterTag = useAddFilterTag();\nconst tags = useTags();\n\n\nuseEffect(() => {\n let params = new URLSearchParams(location.search);\n let urlTags = params.get(\"tags\");\n urlTags?.split(\",\").map(urlTag => {\n const tag = tags.find(t => t.name.toLocaleLowerCase() === urlTag.toLocaleLowerCase()) \n tag && addFilterTag(tag)\n });\n\n}, [location, tags]);\n\n\n return (\n <></>\n )\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({data, api, adminRole} : {data?: Permission[], api?: ItemsApi<Permission>, adminRole?: string}) {\nconst setPermissionData = useSetPermissionData();\nconst setPermissionApi = useSetPermissionApi();\nconst setAdminRole = useSetAdminRole();\nconst {user} = useAuth();\n\nuseEffect(() => { \n adminRole && setAdminRole(adminRole);\n data && setPermissionData(data); \n api && setPermissionApi(api); \n}, [api, data, adminRole, user])\n\n return (\n <></>\n )\n}\n","import * as React from 'react'\nimport { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\nimport { useEffect } from 'react'\n\n\nexport const ItemForm = ({ children, item, title, setPopupTitle }: { children?: React.ReactNode, item?: Item, title?: string, setPopupTitle?: React.Dispatch<React.SetStateAction<string>> }) => {\n useEffect(() => {\n setPopupTitle&& title && setPopupTitle(title);\n\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: item, test: \"test\" }) : \"\"\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\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) ?\n React.cloneElement(child, { item: item }) : \"\"\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 = ({ dataField, placeholder, style, item }:\n {\n dataField: string,\n placeholder: string,\n style?: string,\n item?: Item\n }) => {\n\n return (\n <TextAreaInput defaultValue={item?.text ? item.text : \"\"} dataField={dataField} placeholder={placeholder} inputStyle={style}></TextAreaInput>\n )\n}\n","import * as React from 'react'\nimport { TextInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\nexport const PopupStartEndInput = ({item}:{item?:Item}) => {\n return (\n <div className='tw-grid tw-grid-cols-2 tw-gap-2 tw-mb-5'>\n <TextInput type='date' placeholder='start' dataField='start' inputStyle='tw-text-sm tw-px-2' labelTitle='start' defaultValue={item && item.start? item.start.substring(0, 10) : \"\"} autocomplete='one-time-code'></TextInput>\n <TextInput type='date' placeholder='end' dataField='end' inputStyle='tw-text-sm tw-px-2' labelTitle='end' defaultValue={item && item.end ? item.end.substring(0, 10) : \"\"} autocomplete='one-time-code'></TextInput>\n </div>\n )\n}\n","import * as React from 'react'\nimport { TextInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\nexport const PopupTextInput = ({ dataField, placeholder, style, item }:\n {\n dataField: string,\n placeholder: string,\n style?: string,\n item?: Item\n }) => {\n\n return (\n <TextInput defaultValue={item?.name ? item.name : \"\"} dataField={dataField} placeholder={placeholder} inputStyle={style} type='text'></TextInput>\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 xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-4 tw-w-4 tw-mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n <time className='tw-align-middle' dateTime={item && item.start? item.start.substring(0, 10) : \"\"}>{item && item.start? new Date(item.start).toLocaleDateString(): \"\"}</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 xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-4 tw-w-4 tw-mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n <time className='tw-align-middle' dateTime={item && item.end? item.end.substring(0, 10) : \"\"}>{item && item.end ? new Date(item.end).toLocaleDateString() : \"\"}</time>\n </div>\n </div>\n )\n}\n\n","import * as React from 'react'\nimport { Link } from 'react-router-dom'\nimport { getValue } from '../../../../Utils/GetValue'\nimport { Item } from '../../../../types'\n\nexport const PopupButton = ({url, parameterField, text, colorField, item} : {url: string, parameterField?: string, text: string, colorField?: string, item? : Item}) => {\n return (\n <Link to={`${url}/${parameterField? getValue(item,parameterField):``}`}><button style={{backgroundColor: `${colorField && getValue(item,colorField)? getValue(item,colorField) : item?.layer?.markerDefaultColor}`}} className=\"tw-btn tw-text-white tw-btn-sm tw-float-right tw-mt-1\">{text}</button></Link>\n \n )\n}\n","import { useAuth } from \"../Auth\"\nimport { Link } from \"react-router-dom\";\nimport { toast } from \"react-toastify\";\nimport QuestionMarkIcon from '@heroicons/react/24/outline/QuestionMarkCircleIcon'\nimport * as React from \"react\";\n\n\nexport default function NavBar({ appName, nameWidth = 200}: { appName: string, nameWidth?: number }) {\n\n\n const { isAuthenticated, user, logout, token } = useAuth();\n\n const onLogout = () => {\n toast.promise(\n logout(),\n {\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 return (\n <>\n <div className=\"tw-navbar tw-bg-base-100 tw-z-[10000] tw-shadow-xl tw-relative\">\n <button 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 <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" className=\"tw-inline-block tw-w-5 tw-h-5 tw-stroke-current\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M4 6h16M4 12h16M4 18h16\"></path></svg>\n </button>\n <div className=\"tw-flex-1 tw-mr-2\">\n <div className={`tw-flex-1 tw-truncate tw-grid tw-grid-flow-col`} style={{maxWidth: nameWidth}}>\n <Link className=\"tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate\" to={\"/\"}><h1 className=\"tw-truncate\">{appName}</h1></Link>\n <button className=\"tw-btn tw-px-2 tw-btn-ghost\" onClick={() => window.my_modal_3.showModal()}><QuestionMarkIcon className=\"tw-h-5 tw-w-5\" /></button>\n </div>\n </div>\n\n\n\n {isAuthenticated ?\n <div className=\"tw-flex-none\">\n {user?.avatar ? <div className=\"tw-avatar\">\n <div className=\"tw-w-10 tw-rounded-full\">\n <img src={\"https://api.utopia-lab.org/assets/\" + user?.avatar + \"?access_token=\" + token} />\n </div>\n </div> : <></>}\n <div className='tw-ml-2 tw-mr-2'>{user?.first_name}</div>\n <div className=\"tw-dropdown tw-dropdown-end\">\n <label tabIndex={0} className=\"tw-btn tw-btn-ghost tw-btn-square\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\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 tabIndex={0} 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 <li><Link to={\"/profile-settings\"}>Profile</Link></li>\n <li><Link to={\"/user-settings\"}>Settings</Link></li>\n <li><a onClick={() => { onLogout() }}>Logout</a></li>\n </ul>\n </div>\n </div>\n :\n <div>\n\n <div className=\"tw-hidden md:tw-flex\">\n <Link to={\"/login\"}><div className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Login\n </div></Link>\n\n <Link to={\"/signup\"}><div className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Sign Up\n </div></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 xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\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\n\n </label>\n <ul tabIndex={1} 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 <li><Link to={\"/login\"}>Login</Link></li>\n <li><Link to={\"/signup\"}>Sign Up</Link></li>\n </ul>\n </div>\n\n </div>\n }\n </div>\n\n </>\n )\n}\n","import * as React from 'react'\nimport { useSetAssetApi } from './hooks/useAssets'\nimport { AssetsApi } from '../../types';\nimport { useEffect } from 'react';\n\nexport const SetAssetsApi = ({assetsApi}:{assetsApi: AssetsApi}) => {\n const setAssetsApi = useSetAssetApi();\n\n useEffect(() => {\n setAssetsApi(assetsApi)\n }, [assetsApi])\n \n\n return (\n <></>\n )\n}\n","import * as React from 'react'\nimport NavBar from './NavBar'\nimport { BrowserRouter } from 'react-router-dom'\nimport { ToastContainer } from 'react-toastify'\nimport { QuestsProvider } from '../Gaming/hooks/useQuests'\nimport { AssetsProvider } from './hooks/useAssets'\nimport { SetAssetsApi } from './SetAssetsApi'\nimport { AssetsApi } from '../../types'\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query'\nimport { PermissionsProvider } from '../Map/hooks/usePermissions'\nimport { TagsProvider } from '../Map/hooks/useTags'\n\nexport function AppShell({ appName, nameWidth, children, assetsApi }: { appName: string, nameWidth?: number, children: React.ReactNode, assetsApi: AssetsApi }) {\n\n // Create a client\n const queryClient = new QueryClient()\n\n\n return (\n <PermissionsProvider initialPermissions={[]}>\n <TagsProvider initialTags={[]}>\n <QueryClientProvider client={queryClient}>\n <BrowserRouter>\n <AssetsProvider>\n <SetAssetsApi assetsApi={assetsApi}></SetAssetsApi>\n <QuestsProvider initialOpen={true}>\n <ToastContainer 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 <NavBar appName={appName} nameWidth={nameWidth}></NavBar>\n <div id=\"app-content\" className=\"tw-flex tw-!pl-[77px]\">\n {children}\n </div>\n </QuestsProvider>\n </AssetsProvider>\n </BrowserRouter>\n </QueryClientProvider>\n </TagsProvider>\n </PermissionsProvider>\n\n )\n}\n","import ChevronDownIcon from '@heroicons/react/24/outline/ChevronDownIcon'\nimport * as React from 'react'\nimport {useEffect, useState} from 'react'\nimport { Link, useLocation } from 'react-router-dom'\n\n\nfunction SidebarSubmenu({submenu, name, icon} : { path: string;\n icon: JSX.Element;\n name: string;\n submenu?: any | undefined}){\n const location = useLocation()\n const [isExpanded, setIsExpanded] = useState(false)\n\n\n /** Open Submenu list if path found in routes, this is for directly loading submenu routes first time */\n useEffect(() => {\n if(submenu.filter(m => {return m.path === location.pathname})[0])setIsExpanded(true)\n }, [])\n\n return (\n <div className='flex-col'>\n\n {/** Route header */}\n <div className='w-full' onClick={() => setIsExpanded(!isExpanded)}>\n {icon} <span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\" data-te-sidenav-slim=\"false\">{name} </span>\n <ChevronDownIcon className={'w-5 h-5 mt-1 float-right delay-400 duration-500 transition-all ' + (isExpanded ? 'rotate-180' : '')}/>\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 {\n submenu.map((m, k) => {\n return(\n <li key={k} >\n <Link to={m.path} className='' >\n {m.icon}<span className=\"\" data-te-sidenav-slim=\"false\">{m.name}</span>\n {\n location.pathname == m.path ? (<span 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\"></span>) : null\n }\n </Link>\n </li>\n )\n })\n }\n </ul>\n </div>\n </div>\n )\n}\n\nexport default SidebarSubmenu","import { useRef, useState } from 'react'\nimport { useEffect } from 'react'\nimport { NavLink, useLocation } from 'react-router-dom';\nimport {\n Sidenav,\n initTE,\n} 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 icon: JSX.Element;\n name: string;\n submenu?: route;\n blank?: boolean\n}\n\n\nexport function SideBar({ routes, bottomRoutes }: { routes: route[], bottomRoutes?: route[] }) {\n\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\n\n const toggleSlim = () => {\n setSlim(!slim);\n instance.toggleSlim();\n }\n\n\n\n useEffect(() => {\n if (!init.current) {\n initTE({ Sidenav });\n const instance = Sidenav.getInstance(\n document.getElementById(\"sidenav\")\n );\n setInstance(instance);\n instance.toggleSlim();\n init.current = true;\n }\n }, [])\n\n return (\n <nav\n id=\"sidenav\"\n className=\"group tw-fixed tw-left-0 tw-mt-16 tw-top-0 tw-z-[10035] tw-h-[calc(100dvh-64px)] 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=\"160\">\n <div className='tw-flex tw-flex-col tw-h-[calc(100dvh-64px)]'>\n <ul className=\"tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0\" data-te-sidenav-menu-ref>\n {\n routes.map((route, k) => {\n return (\n <li className=\"\" key={k}>\n {\n route.submenu ?\n <SidebarSubmenu {...route} /> :\n (<NavLink \n end\n target={route.blank ? \"_blank\" : \"_self\"}\n to={route.path}\n className={({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`} onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle();\n }}>\n {route.icon}<span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\" data-te-sidenav-slim=\"false\">{route.name}</span>\n {\n location.pathname.includes(route.path) && route.path.length > 1 || location.pathname === route.path ? (<span 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\"></span>) : null\n }\n </NavLink>)\n }\n\n </li>\n )\n })\n }\n </ul>\n\n <div id=\"slim-toggler\" className='tw-w-full tw-bg-base-100 tw-flex-1 tw-grid tw-place-items-end' aria-haspopup=\"true\" >\n <div className='tw-w-full'>\n\n <ul className=\"tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0 tw-mb-0\" data-te-sidenav-menu-ref>\n {\n bottomRoutes?.map((route, k) => {\n return (\n <li className=\"\" key={k}>\n {\n route.submenu ?\n <SidebarSubmenu {...route} /> :\n (<NavLink\n end\n target={route.blank ? \"_blank\" : \"_self\"}\n to={route.path}\n className={({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`} onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle();\n }}>\n {route.icon}<span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\" data-te-sidenav-slim=\"false\">{route.name}</span>\n {\n location.pathname.includes(route.path) && route.path.length > 1 || location.pathname === route.path ? (<span 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\"></span>) : null\n }\n </NavLink>)\n }\n\n </li>\n )\n })\n }\n </ul>\n\n <ChevronRightIcon className={\"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 \" + (!slim ? \"tw-rotate-180\" : '')} 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-bg-base-200 tw-relative'>\n {children}\n </div>\n\n )\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { TitleCard } from '../Templates/TitleCard'\nimport { TextInput } from '../Input/TextInput'\nimport { TextAreaInput } from '../Input/TextAreaInput'\nimport { toast } from 'react-toastify';\nimport { useNavigate } from 'react-router-dom'\nimport { useAuth } from '../Auth';\nimport * as React from 'react'\nimport ReactCrop, { Crop, centerCrop, makeAspectCrop } from 'react-image-crop'\nimport 'react-image-crop/dist/ReactCrop.css'\nimport 'react-toastify/dist/ReactToastify.css';\nimport { UserItem } from '../../types';\nimport DialogModal from '../Templates/DialogModal';\nimport { useAssetApi } from '../AppShell/hooks/useAssets';\nimport { ColorPicker } from './ColorPicker';\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\n\n const [passwordChanged, setPasswordChanged] = useState<boolean>(false);\n\n\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\n\n\n\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem;\n\n changedUser = { id: id, email: email, ...passwordChanged && { password: password }};\n\n\n toast.promise(\n\n updateUser(changedUser),\n {\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\n return (\n <>\n <main className=\"tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-8 tw-px-6 tw-bg-base-200 tw-min-w-80 tw-flex tw-justify-center\" >\n <div className='tw-w-full xl:tw-max-w-6xl'>\n <TitleCard title=\"Settings\" topMargin=\"tw-mt-2\" className='tw-mb-6'>\n\n\n <div className=\"tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6\">\n <TextInput type='email' placeholder=\"E-Mail\" defaultValue={user?.email ? user.email : \"\"} updateFormValue={(v) => setEmail(v)} />\n <TextInput type='password' placeholder=\"new Password\" defaultValue={user?.password ? user.password : \"\"} updateFormValue={(v) => {\n setPassword(v);\n setPasswordChanged(true);\n }} />\n {/* <ToogleInput updateType=\"syncData\" labelTitle=\"Sync Data\" defaultValue={true} updateFormValue={updateFormValue}/> */}\n </div>\n\n <div className=\"tw-mt-8\"><button className={loading ? \" tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right\" : \"tw-btn tw-btn-primary tw-float-right\"} onClick={() => onUpdateUser()}>Update</button></div>\n\n </TitleCard>\n </div>\n </main>\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 \"./useClickOutside\";\n\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\n return (\n <div ref={colorPickerRef} className={`picker ${className}`}>\n <div\n className=\"swatch\"\n style={{ backgroundColor: color }}\n onClick={() => toggle(true)}\n />\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\n","import { useEffect, useRef, useState } from 'react'\nimport { TitleCard } from '../Templates/TitleCard'\nimport { TextInput } from '../Input/TextInput'\nimport { TextAreaInput } from '../Input/TextAreaInput'\nimport { toast } from 'react-toastify';\nimport { useNavigate } from 'react-router-dom'\nimport { useAuth } from '../Auth';\nimport * as React from 'react'\nimport ReactCrop, { Crop, centerCrop, makeAspectCrop } from 'react-image-crop'\nimport 'react-image-crop/dist/ReactCrop.css'\nimport 'react-toastify/dist/ReactToastify.css';\nimport { UserItem } from '../../types';\nimport DialogModal from '../Templates/DialogModal';\nimport { useAssetApi } from '../AppShell/hooks/useAssets';\nimport { ColorPicker } from './ColorPicker';\n\nexport function ProfileSettings() {\n const { user, updateUser, loading, token } = useAuth();\n\n const [id, setId] = useState<string>(\"\");\n const [name, setName] = useState<string>(\"\");\n const [text, setText] = useState<string>(\"\");\n const [avatar, setAvatar] = useState<string>(\"\");\n const [color, setColor] = useState<string>(\"\");\n\n\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 assetsApi = useAssetApi();\n const navigate = useNavigate();\n\n useEffect(() => {\n setId(user?.id ? user.id : \"\");\n setName(user?.first_name ? user.first_name : \"\");\n setText(user?.description ? user.description : \"\");\n setAvatar(user?.avatar ? user?.avatar : \"\"),\n setColor(user?.color? user.color : \"#aabbcc\")\n }, [user])\n\n const imgRef = useRef<HTMLImageElement>(null)\n\n const onImageChange = (event) => {\n if (event.target.files && event.target.files[0]) {\n setImage(URL.createObjectURL(event.target.files[0]));\n }\n setCropModalOpen(true);\n }\n\n function onImageLoad(e: React.SyntheticEvent<HTMLImageElement>) {\n const { width, height } = e.currentTarget\n\n setCrop(centerAspectCrop(width, height, 1))\n }\n\n\n // This is to demonstate how to make and center a % aspect crop\n // which is a bit trickier so we use some helper functions.\n function centerAspectCrop(\n mediaWidth: number,\n mediaHeight: number,\n aspect: number,\n ) {\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 renderCrop() {\n // get the image element\n const image = imgRef.current;\n if (crop && image) {\n\n const scaleX = image.naturalWidth / image.width\n const scaleY = image.naturalHeight / image.height\n\n // create a canvas element to draw the cropped image\n const canvas = new OffscreenCanvas(\n crop.width * scaleX,\n crop.height * scaleY,\n )\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\n ctx.drawImage(\n image,\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 const blob = await canvas.convertToBlob();\n await resizeBlob(blob);\n setCropping(false);\n setImage(\"\");\n }\n }\n\n async function resizeBlob(blob) {\n var img = new Image();\n img.src = URL.createObjectURL(blob);\n await img.decode();\n const canvas = new OffscreenCanvas(\n 400,\n 400\n )\n var ctx = canvas.getContext(\"2d\");\n ctx?.drawImage(img, 0, 0, 400, 400);\n const resizedBlob = await canvas.convertToBlob()\n const asset = await assetsApi.upload(resizedBlob, \"test\");\n setAvatar(asset.id)\n }\n\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem;\n\n changedUser = { id: id, first_name: name, description: text, color: color, ...avatar.length > 10 && { avatar: avatar } };\n\n\n toast.promise(\n\n updateUser(changedUser),\n {\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\n return (\n <div className='tw-backdrop-contrast-50 tw-h-full tw-w-full'>\n <main className=\"tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-8 tw-px-6 tw-min-w-80 tw-flex tw-justify-center\" >\n <div className='tw-w-full xl:tw-max-w-6xl'>\n <TitleCard title=\"Profile\" topMargin=\"tw-mt-2\" className='tw-mb-6'>\n <div className=\"tw-flex\">\n {!cropping ?\n <label className=\"custom-file-upload\">\n <input type=\"file\" accept=\"image/*\" className=\"tw-file-input tw-w-full tw-max-w-xs\" onChange={onImageChange} />\n <div className='button tw-btn tw-btn-lg tw-btn-circle tw-animate-none'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"1.5\" stroke=\"currentColor\" className=\"tw-w-6 tw-h-6\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n </div>\n {avatar ?\n <div className='tw-h-20 tw-w-20'>\n <img src={assetsApi.url + avatar + \"?access_token=\" + token} className=' tw-rounded-full' />\n </div>\n :\n <div className='tw-h-20 tw-w-20'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.0\" viewBox=\"0 0 150 150\" className='tw-w-20 tw-h-20 tw-rounded-full' style={{ backgroundColor: \"#eee\" }}>\n <path fill=\"#ccc\" 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 <path fill=\"#ccc\" 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 </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 }\n <ColorPicker color={color} onChange={setColor} className={\"-tw-left-6 tw-top-14 -tw-mr-6\"} />\n <TextInput placeholder=\"Name\" defaultValue={user?.first_name ? user.first_name : \"\"} updateFormValue={(v) => setName(v)} containerStyle='tw-grow tw-ml-6 tw-my-auto ' />\n </div>\n\n <div className=\"tw-grid tw-grid-cols-1 tw-md:grid-cols-1 tw-gap-6 tw-pt-6 tw-pb-6\">\n <TextAreaInput placeholder=\"About me, Contact, #Tags, ...\" defaultValue={user?.description ? user.description : \"\"} updateFormValue={(v) => setText(v)} inputStyle='tw-h-64' />\n </div>\n\n <div className=\"tw-mt-8\"><button className={loading ? \" tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right\" : \"tw-btn tw-btn-primary tw-float-right\"} onClick={() => onUpdateUser()}>Update</button></div>\n\n </TitleCard>\n </div>\n </main>\n <DialogModal\n title=\"\"\n isOpened={cropModalOpen}\n onClose={() => {\n setCropModalOpen(false);\n setImage(\"\");\n }}>\n <ReactCrop crop={crop} onChange={(c) => setCrop(c)} aspect={1} >\n <img src={image} ref={imgRef} onLoad={onImageLoad} />\n </ReactCrop>\n <button className={`tw-btn tw-btn-primary`} onClick={() => {\n setCropping(true);\n setCropModalOpen(false);\n renderCrop();\n }}>Select</button>\n </DialogModal>\n </div>\n )\n}\n","import * as React from 'react'\nimport { decodeTag } from '../../Utils/FormatTags'\nimport { Tag } from '../../types'\n\nexport const TagView = ({tag, heighlight, onClick} : {tag: Tag, heighlight?: boolean, onClick?: (e)=> void}) => {\n return (\n // Use your imagination to render suggestions.\n\n <div key={tag.name} onClick={onClick} className={`tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-h-[2.75em] tw-mt-3 tw-mr-4 tw-cursor-pointer tw-w-fit ${heighlight && 'tw-border-primary tw-shadow-te-primary'}`} style={{ backgroundColor: tag.color ? tag.color : \"#666\" }}>\n <div className=\"tw-card-actions tw-justify-end\">\n </div><b>{decodeTag(tag.name)}</b>\n </div>\n\n )\n}\n","import * as React from 'react'\nimport { MapOverlayPage } from '../Templates'\nimport { useItems } from '../Map/hooks/useItems'\nimport { useLocation, useNavigate } from 'react-router-dom'\nimport { useEffect, useState } from 'react';\nimport { Item, Tag, UserItem } from '../../types';\nimport { getValue } from '../../Utils/GetValue';\nimport { useMap } from 'react-leaflet';\nimport { LatLng } from 'leaflet';\nimport { TextView } from '../Map';\nimport useWindowDimensions from '../Map/hooks/useWindowDimension';\nimport { TagView } from '../Templates/TagView';\nimport { useTags } from '../Map/hooks/useTags';\nimport { useAuth } from '../Auth';\nimport { useAddFilterTag } from '../Map/hooks/useFilter';\n\nexport function OverlayProfile() {\n\n const location = useLocation();\n const items = useItems();\n const [item, setItem] = useState<Item>({} as Item)\n const map = useMap();\n const windowDimension = useWindowDimensions();\n\n const tags = useTags();\n const { user } = useAuth();\n\n const navigate = useNavigate();\n\n const [owner, setOwner] = useState<UserItem>();\n const [offers, setOffers] = useState<Array<Tag>>([]);\n const [needs, setNeeds] = useState<Array<Tag>>([]);\n\n const [activeTab, setActiveTab] = useState<number>(1);\n\n\n const addFilterTag = useAddFilterTag();\n\n\n\n useEffect(() => {\n const itemId = location.pathname.split(\"/\")[2];\n const item = items.find(i => i.id === itemId);\n item && setItem(item);\n\n const bounds = map.getBounds();\n const x = bounds.getEast() - bounds.getWest()\n if (windowDimension.width > 768)\n if (item?.position?.coordinates[0])\n map.setView(new LatLng(item?.position.coordinates[1]!, item?.position.coordinates[0]! + x / 4))\n }, [location, items, activeTab])\n\n\n useEffect(() => {\n setOffers([]);\n setNeeds([]);\n setOwner(undefined);\n item?.layer?.itemOwnerField && setOwner(getValue(item, item.layer?.itemOwnerField));\n item.layer?.itemOffersField && 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 })\n item.layer?.itemNeedsField && 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 })\n }, [item])\n\n\n\n\n return (\n <MapOverlayPage className='tw-mx-4 tw-mt-4 tw-max-h-[calc(100dvh-96px)] tw-h-[calc(100dvh-96px)] md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-max-w-3xl !tw-left-auto tw-top-0 tw-bottom-0'>\n {item &&\n <>\n <div className='tw-flex tw-flex-row'>\n <div className=\"tw-grow\">\n <p className=\"tw-text-3xl tw-font-semibold\">{item.layer?.itemAvatarField && getValue(item, item.layer.itemAvatarField) && <img className='tw-h-20 tw-rounded-full tw-inline' src={`https://api.utopia-lab.org/assets/${getValue(item, item.layer.itemAvatarField)}?width=160&heigth=160`}></img>} {item.layer?.itemNameField && getValue(item, item.layer.itemNameField)}</p>\n </div>\n {owner?.id === user?.id && owner?.id ?\n <a className='tw-self-center tw-btn tw-btn-sm tw-mr-4 tw-cursor-pointer' onClick={() => navigate(\"/profile-settings\")}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\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 }\n </div>\n\n\n\n\n <div className='tw-h-full'>\n\n <div role=\"tablist\" className=\"tw-tabs tw-tabs-lifted tw-mt-2 tw-mb-2\">\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className={`tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]`} aria-label=\"Vision\" checked={activeTab == 1 && true} onChange={() => setActiveTab(1)} />\n <div role=\"tabpanel\" className=\"tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-1\">\n <TextView item={item} />\n </div>\n\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label=\"Offers & Needs\" checked={activeTab == 2 && true} onChange={() => setActiveTab(2)} />\n <div role=\"tabpanel\" 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 <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1'>\n {\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 {\n offers.map(o => <TagView key={o?.id} tag={o} onClick={() => addFilterTag(o)} />)\n }\n </div>\n </div> : \"\"\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 {\n needs.map(n => <TagView key={n?.id} tag={n} onClick={() => addFilterTag(n)} />)\n }\n </div>\n </div> : \"\"\n }\n </div>\n </div>\n </div>\n\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label=\"Contact\" checked={activeTab == 3 && true} onChange={() => setActiveTab(3)} />\n <div role=\"tabpanel\" className=\"tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-1\">\n <TextView item={item} itemTextField='user_created.contact' />\n </div>\n </div>\n\n\n\n\n </div>\n </>\n }\n </MapOverlayPage >\n )\n}\n\n\n","import * as React from 'react'\nimport { useEffect } from 'react';\nimport { decodeTag } from '../../Utils/FormatTags';\nimport { TagView } from '../Templates/TagView';\n\nexport const Autocomplete = ({ inputProps, suggestions, onSelected, pushFilteredSuggestions, setFocus }: { inputProps: any, suggestions: Array<any>, onSelected: (suggestion) => void, pushFilteredSuggestions?: Array<any>, setFocus?: boolean }) => {\n\n const [filteredSuggestions, setFilteredSuggestions] = React.useState<Array<any>>([]);\n const [heighlightedSuggestion, setHeighlightedSuggestion] = React.useState<number>(0);\n\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\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 ? [] : suggestions.filter(tag =>\n tag.name.toLowerCase().slice(0, inputLength) === inputValue\n );\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\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 && 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 ref={inputRef} {...inputProps} type=\"text\" onChange={(e) => handleChange(e)} onKeyDown={handleKeyDown}/>\n <ul className={`tw-absolute tw-z-[4000] ${filteredSuggestions.length>0 && 'tw-bg-base-100 tw-rounded-xl tw-p-2'}`}>\n {filteredSuggestions.map((suggestion, index) => (\n <li key={index} onClick={() => handleSuggestionClick(suggestion)}><TagView heighlight={index == heighlightedSuggestion} tag={suggestion}></TagView></li>\n ))}\n </ul>\n </div>\n )\n}\n","import * as React from 'react'\nimport { 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\nexport const TagsWidget = ({placeholder, containerStyle, defaultTags, onUpdate}) => {\n\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\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 ((key === 'Enter' || key === ',' ) && trimmedInput.length && !defaultTags.some(tag => tag.name.toLocaleLowerCase() === trimmedInput.toLocaleLowerCase())) {\n e.preventDefault();\n const newTag = tags.find(t => t.name === trimmedInput.toLocaleLowerCase())\n newTag && onUpdate(prevState => [...prevState, newTag]);\n !newTag && onUpdate(prevState => [...prevState, { id: crypto.randomUUID(), name: encodeTag(trimmedInput), color: randomColor() }]);\n setInput('');\n setPushFilteredSuggestions([]);\n }\n\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(prevState => prevState.filter((t) => t !== tag))\n }\n\n\n const onSelected = (tag) => {\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(prevState => [...prevState, newTag]);\n !newTag && onUpdate(prevState => [...prevState, { id: crypto.randomUUID(), name: tag.name.toLocaleLowerCase(), color: randomColor() }]);\n setInput('');\n setPushFilteredSuggestions([]);\n }\n }\n\n const inputProps = {\n value: input,\n placeholder: placeholder,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onChange: onChange,\n className: 'tw-bg-transparent tw-w-fit tw-mt-5 tw-h-fit'\n }\n\n return (\n <div onClick={()=> {\n setFocusInput(true);\n setTimeout(()=> {\n setFocusInput(false)\n }, 200)\n }} className={`tw-input tw-input-bordered tw-cursor-text ${containerStyle}`}>\n <div className='tw-flex tw-flex-wrap tw-h-fit'>\n {defaultTags.map((tag) => (\n <div key={tag.name} className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-h-[2.75em] tw-mt-3 tw-mr-4' style={{ backgroundColor: tag.color ? tag.color : \"#666\" }}>\n <div className=\"tw-card-actions tw-justify-end\">\n <label className=\"tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600\" onClick={() => (deleteTag(tag))}>✕</label>\n </div><b>{decodeTag(tag.name)}</b>\n </div>\n\n ))}\n <Autocomplete suggestions={tags} pushFilteredSuggestions={pushFilteredSuggestions} setFocus={focusInput} inputProps={inputProps} onSelected={(tag) => onSelected(tag)}/>\n </div>\n </div>\n )\n}","import * as React from \"react\";\nimport { useState } from \"react\";\nimport ReactCrop, { Crop, centerCrop, makeAspectCrop } from 'react-image-crop';\nimport { useAssetApi } from '../AppShell/hooks/useAssets';\nimport DialogModal from \"../Templates/DialogModal\";\n\n\nexport const AvatarWidget = ({avatar, setAvatar}:{avatar:string, setAvatar : React.Dispatch<React.SetStateAction<string>>}) => {\n\n\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 assetsApi = useAssetApi();\n\n\n\n const imgRef = React.useRef<HTMLImageElement>(null)\n\n const onImageChange = (event) => {\n if (event.target.files && event.target.files[0]) {\n setImage(URL.createObjectURL(event.target.files[0]));\n }\n setCropModalOpen(true);\n }\n\n function onImageLoad(e: React.SyntheticEvent<HTMLImageElement>) {\n const { width, height } = e.currentTarget\n\n setCrop(centerAspectCrop(width, height, 1))\n }\n\n\n // This is to demonstate how to make and center a % aspect crop\n // which is a bit trickier so we use some helper functions.\n function centerAspectCrop(\n mediaWidth: number,\n mediaHeight: number,\n aspect: number,\n ) {\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 renderCrop() {\n // get the image element\n const image = imgRef.current;\n if (crop && image) {\n\n const scaleX = image.naturalWidth / image.width\n const scaleY = image.naturalHeight / image.height\n\n // create a canvas element to draw the cropped image\n const canvas = new OffscreenCanvas(\n crop.width * scaleX,\n crop.height * scaleY,\n )\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\n ctx.drawImage(\n image,\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 const blob = await canvas.convertToBlob();\n await resizeBlob(blob);\n setCropping(false);\n setImage(\"\");\n }\n }\n\n async function resizeBlob(blob) {\n var img = new Image();\n img.src = URL.createObjectURL(blob);\n await img.decode();\n const canvas = new OffscreenCanvas(\n 400,\n 400\n )\n var ctx = canvas.getContext(\"2d\");\n ctx?.drawImage(img, 0, 0, 400, 400);\n const resizedBlob = await canvas.convertToBlob()\n const asset = await assetsApi.upload(resizedBlob, \"test\");\n setAvatar(asset.id)\n }\n\n\n return (\n <>\n {!cropping ?\n <label className=\"custom-file-upload\">\n <input type=\"file\" accept=\"image/*\" className=\"tw-file-input tw-w-full tw-max-w-xs\" onChange={onImageChange} />\n <div className='button tw-btn tw-btn-lg tw-btn-circle tw-animate-none'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"1.5\" stroke=\"currentColor\" className=\"tw-w-6 tw-h-6\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n </div>\n {avatar ?\n <div className='tw-h-20 tw-w-20'>\n <img src={assetsApi.url + avatar} className='tw-h-20 tw-w-20 tw-rounded-full' />\n </div>\n :\n <div className='tw-h-20 tw-w-20'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.0\" viewBox=\"0 0 150 150\" className='tw-w-20 tw-h-20 tw-rounded-full' style={{ backgroundColor: \"#eee\" }}>\n <path fill=\"#ccc\" 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 <path fill=\"#ccc\" 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 </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 }\n <DialogModal\n title=\"\"\n isOpened={cropModalOpen}\n onClose={() => {\n setCropModalOpen(false);\n setImage(\"\");\n }}>\n <ReactCrop crop={crop} onChange={(c) => setCrop(c)} aspect={1} >\n <img src={image} ref={imgRef} onLoad={onImageLoad} />\n </ReactCrop>\n <button className={`tw-btn tw-btn-primary`} onClick={() => {\n setCropping(true);\n setCropModalOpen(false);\n renderCrop();\n }}>Select</button>\n </DialogModal>\n </>\n )\n}\n","import * as React from 'react'\nimport { useItems, useUpdateItem } from '../Map/hooks/useItems'\nimport { useState } from 'react';\nimport { getValue } from '../../Utils/GetValue';\nimport { toast } from 'react-toastify';\nimport { useAuth } from '../Auth';\nimport { TextInput, TextAreaInput } from '../Input';\nimport { ColorPicker } from './ColorPicker';\nimport { hashTagRegex } from '../../Utils/HashTagRegex';\nimport { useAddTag, useTags } from '../Map/hooks/useTags';\nimport { randomColor } from '../../Utils/RandomColor';\nimport { useNavigate } from 'react-router-dom';\nimport { Tag, UserItem } from '../../types';\nimport { MapOverlayPage } from '../Templates';\nimport { TagsWidget } from './TagsWidget';\nimport { decodeTag, encodeTag } from '../../Utils/FormatTags';\nimport { AvatarWidget } from './AvatarWidget';\n\n\nexport function OverlayProfileSettings() {\n\n const { user, updateUser, loading } = useAuth();\n\n const [id, setId] = useState<string>(\"\");\n const [name, setName] = useState<string>(\"\");\n const [text, setText] = useState<string>(\"\");\n const [avatar, setAvatar] = useState<string>(\"\");\n const [color, setColor] = useState<string>(\"\");\n const [offers, setOffers] = useState<Array<Tag>>([]);\n const [needs, setNeeds] = useState<Array<Tag>>([]);\n const [contact, setContact] = useState<string>(\"\");\n\n const [activeTab, setActiveTab] = useState<number>(1);\n\n\n\n const items = useItems();\n const updateItem = useUpdateItem();\n\n const tags = useTags();\n const addTag = useAddTag();\n const navigate = useNavigate();\n\n React.useEffect(() => {\n setId(user?.id ? user.id : \"\");\n setName(user?.first_name ? user.first_name : \"\");\n setText(user?.description ? user.description : \"\");\n setAvatar(user?.avatar ? user?.avatar : \"\");\n setColor(user?.color ? user.color : \"#aabbcc\");\n setOffers([]);\n setNeeds([]);\n user?.offers.map(o=> {\n const offer = tags.find(t => t.id === o.tags_id);\n offer && setOffers(current => [...current,offer])\n })\n user?.needs.map(o=> {\n const need = tags.find(t => t.id === o.tags_id);\n need && setNeeds(current => [...current,need])\n })\n setContact(user?.contact ? user.contact : \"\");\n }, [user])\n\n\n const onUpdateUser = async () => {\n let changedUser = {} as UserItem;\n\n let offer_updates : Array<any> = [];\n //check for new offers\n offers.map(o => {\n const existingOffer = user?.offers.find(t => t.tags_id === o.id)\n existingOffer && offer_updates.push(existingOffer.id)\n if(!existingOffer && !tags.some(t => t.id === o.id)) addTag({...o,offer_or_need: true})\n !existingOffer && offer_updates.push({directus_user_id: user?.id, tags_id: o.id})\n });\n\n let needs_updates : Array<any> = [];\n\n needs.map(n => {\n const existingNeed = user?.needs.find(t => t.tags_id === n.id)\n existingNeed && needs_updates.push(existingNeed.id)\n !existingNeed && needs_updates.push({directus_user_id: user?.id, tags_id: n.id})\n !existingNeed && !tags.some(t => t.id === n.id) && addTag({...n,offer_or_need: true})\n });\n\n\n changedUser = { id: id, first_name: name, description: text, contact: contact, color: color, ...avatar.length > 10 && { avatar: avatar }, ... offers.length > 0 && {offers: offer_updates}, ... needs.length > 0 && {needs: needs_updates} };\n // update profile item in current state\n const item = items.find(i => i.layer?.itemOwnerField && getValue(i, i.layer?.itemOwnerField).id === id);\n\n let offer_state : Array<any> = [];\n let needs_state : Array<any> = [];\n\n await offers.map(o => {\n offer_state.push({directus_user_id: user?.id, tags_id: o.id})\n });\n\n await needs.map(n => {\n needs_state.push({directus_user_id: user?.id, tags_id: n.id})\n });\n\n\n if (item && item.layer && item.layer.itemOwnerField) item[item.layer.itemOwnerField] = {... changedUser, offers: offer_state, needs: needs_state};\n // add new hashtags from profile text\n text.toLocaleLowerCase().match(hashTagRegex)?.map(tag => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: encodeTag(tag.slice(1).toLocaleLowerCase()), color: randomColor()})\n }\n });\n\n\n toast.promise(\n updateUser(changedUser),\n {\n pending: 'updating Profile ...',\n success: 'Profile updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .then(() => item && updateItem(item))\n .then(() => navigate(\"/\"));\n }\n\n\n return (\n <>\n <MapOverlayPage backdrop className='tw-mx-4 tw-mt-4 tw-mb-12 tw-overflow-x-hidden tw-max-h-[calc(100dvh-96px)] !tw-h-[calc(100dvh-96px)] 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 <div className='tw-flex tw-flex-col tw-h-full'>\n <div className=\"tw-flex\">\n <AvatarWidget avatar={avatar} setAvatar={setAvatar}/>\n <ColorPicker color={color} onChange={setColor} className={\"-tw-left-6 tw-top-14 -tw-mr-6\"} />\n <TextInput placeholder=\"Name\" defaultValue={user?.first_name ? user.first_name : \"\"} updateFormValue={(v) => setName(v)} containerStyle='tw-grow tw-ml-6 tw-my-auto ' />\n </div>\n\n\n <div role=\"tablist\" className=\"tw-tabs tw-tabs-lifted tw-mt-4\">\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className={`tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]`} aria-label=\"Vision\" checked={activeTab == 1 && true} onChange={() => setActiveTab(1)} />\n <div role=\"tabpanel\" 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\">\n <TextAreaInput placeholder=\"My Vision...\" defaultValue={user?.description ? user.description : \"\"} updateFormValue={(v) => setText(v)} containerStyle='tw-h-full' inputStyle='tw-h-full tw-border-t-0 tw-rounded-tl-none' />\n </div>\n\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label=\"Offers & Needs\" checked={activeTab == 2 && true} onChange={() => setActiveTab(2)} />\n <div role=\"tabpanel\" className=\"tw-tab-content tw-bg-base-100 tw-rounded-box tw-pt-4 tw-h-[calc(100dvh-332px)] tw-min-h-56\">\n <div className='tw-h-full'>\n <div className='tw-w-full tw-h-[calc(50%-0.75em)] tw-mb-4'>\n <TagsWidget defaultTags={offers} onUpdate={(v)=>setOffers(v)} placeholder=\"enter your offers\" 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 </div>\n <div className='tw-w-full tw-h-[calc(50%-0.75em)] '>\n <TagsWidget defaultTags={needs} onUpdate={(v)=>setNeeds(v)} placeholder=\"enter your needs\" 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 </div>\n </div>\n </div>\n\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label=\"Contact\" checked={activeTab == 3 && true} onChange={() => setActiveTab(3)} />\n <div role=\"tabpanel\" 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\">\n <TextAreaInput placeholder=\"Contact ...\" defaultValue={user?.contact ? user.contact : \"\"} updateFormValue={(v) => setContact(v)} containerStyle='tw-h-full' inputStyle='tw-h-full tw-border-t-0 ' />\n </div>\n </div>\n\n <div className=\"tw-mt-4 tw-mb-4\"><button className={loading ? \" tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right\" : \"tw-btn tw-btn-primary tw-float-right\"} onClick={() => onUpdateUser()}>Update</button></div>\n\n </div>\n\n </MapOverlayPage>\n </>\n )\n}\n\n\n","import * as React from 'react'\nimport { CardPage, MapOverlayPage } from '../Templates'\nimport { useItems } from '../Map/hooks/useItems'\nimport { useLocation, useNavigate } from 'react-router-dom'\nimport { useState } from 'react';\nimport { Item, UserItem } from '../../types';\nimport { getValue } from '../../Utils/GetValue';\nimport { useMap } from 'react-leaflet';\nimport { LatLng } from 'leaflet';\nimport { TextView } from '../Map';\nimport useWindowDimensions from '../Map/hooks/useWindowDimension';\nimport { toast } from 'react-toastify';\nimport { useAuth } from '../Auth';\nimport { TextInput } from '../Input';\n\nexport function OverlayUserSettings() {\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\n\n const [passwordChanged, setPasswordChanged] = useState<boolean>(false);\n\n\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\n\n\n\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem;\n\n changedUser = { id: id, email: email, ...passwordChanged && { password: password } };\n\n\n toast.promise(\n\n updateUser(changedUser),\n {\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\n return (\n <MapOverlayPage backdrop 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 <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 type='email' placeholder=\"new E-Mail\" defaultValue={user?.email ? user.email : \"\"} updateFormValue={(v) => setEmail(v)} />\n <TextInput type='password' placeholder=\"new Password\" defaultValue={user?.password ? user.password : \"\"} updateFormValue={(v) => {\n setPassword(v);\n setPasswordChanged(true);\n }} />\n {/* <ToogleInput updateType=\"syncData\" labelTitle=\"Sync Data\" defaultValue={true} updateFormValue={updateFormValue}/> */}\n </div>\n\n <div className=\"tw-mt-8\"><button className={loading ? \" tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right\" : \"tw-btn tw-btn-primary tw-float-right\"} onClick={() => onUpdateUser()}>Update</button></div>\n\n </MapOverlayPage>\n )\n}\n\n\n","import * as React from 'react'\nimport { MapOverlayPage, TitleCard } from '../Templates'\nimport { useAddItem, useItems, useRemoveItem, useUpdateItem } from '../Map/hooks/useItems'\nimport { useLocation, useNavigate } from 'react-router-dom'\nimport { useEffect, useRef, useState } from 'react';\nimport { Item, Tag, UserItem } from '../../types';\nimport { getValue } from '../../Utils/GetValue';\nimport { useMap } from 'react-leaflet';\nimport { LatLng } from 'leaflet';\nimport { PopupStartEndInput, StartEndView, TextView } from '../Map';\nimport useWindowDimensions from '../Map/hooks/useWindowDimension';\nimport { useAddTag, useTags } from '../Map/hooks/useTags';\nimport { useResetFilterTags } from '../Map/hooks/useFilter';\nimport { HeaderView } from '../Map/Subcomponents/ItemPopupComponents/HeaderView';\nimport { useHasUserPermission } from '../Map/hooks/usePermissions';\nimport {PlusButton} from './PlusButton';\nimport { TextAreaInput, TextInput } from '../Input';\nimport { hashTagRegex } from '../../Utils/HashTagRegex';\nimport { randomColor } from '../../Utils/RandomColor';\nimport { toast } from 'react-toastify';\nimport { useAuth } from '../Auth';\n\nexport function OverlayItemProfile() {\n\n const location = useLocation();\n const items = useItems();\n const updateItem = useUpdateItem();\n const [item, setItem] = useState<Item>({} as Item)\n const map = useMap();\n const windowDimension = useWindowDimensions();\n\n const [addButton, setAddButton] = useState<boolean>(false);\n\n\n const tags = useTags();\n\n const navigate = useNavigate();\n\n const [relations, setRelations] = useState<Array<Item>>([]);\n\n const [activeTab, setActiveTab] = useState<number>(1);\n\n const [addItemPopupType, setAddItemPopupType] = useState<string>(\"\");\n\n const [loading, setLoading] = useState<boolean>(false);\n\n const addTag = useAddTag();\n const resetFilterTags = useResetFilterTags();\n\n const addItem = useAddItem();\n const { user } = useAuth();\n\n const hasUserPermission = useHasUserPermission();\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\n useEffect(() => {\n\n const itemId = location.pathname.split(\"/\")[2];\n const item = items.find(i => i.id === itemId);\n item && setItem(item);\n hasUserPermission(\"items\", \"update\", item) && setAddButton(true);\n const bounds = map.getBounds();\n const x = bounds.getEast() - bounds.getWest()\n if (windowDimension.width > 768)\n if (item?.position && item?.position.coordinates[0])\n map.setView(new LatLng(item?.position.coordinates[1]!, item?.position.coordinates[0]! + x / 4))\n }, [location, items, activeTab])\n\n useEffect(() => {\n setActiveTab(1);\n }, [location])\n\n useEffect(() => { \n \n setRelations([]);\n item.relations?.map(r => {\n const item = items.find(i => i.id == r.related_items_id)\n item && setRelations(current => [...current, item])\n })\n\n }, [item, items])\n\n const submitNewItem = async (evt: any, type: string) => {\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 && formItem.text.toLocaleLowerCase().match(hashTagRegex)?.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 });\n const uuid = crypto.randomUUID();\n let success = false;\n try {\n await item?.layer?.api?.createItem!({ ...formItem, id: uuid, type: type });\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: type, layer: item?.layer, user_created: user });\n toast.success(\"New item created\");\n resetFilterTags();\n }\n setLoading(false);\n setAddItemPopupType(\"\");\n }\n\n const linkItem = async (id: string) => {\n let new_relations = item.relations|| [] ;\n new_relations?.push({ items_id: item.id, related_items_id: id })\n\n const updatedItem = { id: item.id, relations: new_relations }\n\n await item?.layer?.api?.updateItem!(updatedItem)\n\n updateItem({ ...item, relations: new_relations })\n }\n\n return (\n <MapOverlayPage className='tw-mx-4 tw-mt-4 tw-max-h-[calc(100dvh-96px)] tw-h-[calc(100dvh-96px)] md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-min-w-80 tw-max-w-3xl !tw-left-auto tw-top-0 tw-bottom-0'>\n {item &&\n <>\n <div className='tw-flex tw-flex-row'>\n <div className=\"tw-grow\">\n <p className=\"tw-text-3xl tw-font-semibold\">{item.layer?.itemAvatarField && getValue(item, item.layer.itemAvatarField) && <img className='tw-w-20 tw-h-20 tw-rounded-full tw-inline' src={`https://api.utopia-lab.org/assets/${getValue(item, item.layer.itemAvatarField)}?width=160&heigth=160`}></img>} {item.layer?.itemNameField && getValue(item, item.layer.itemNameField)}</p>\n </div>\n {(item.layer?.api?.updateItem && hasUserPermission(item.layer.api?.collectionName!, \"update\", item)) ?\n <a className='tw-self-center tw-btn tw-btn-sm tw-mr-4 tw-cursor-pointer' onClick={() => navigate(\"/edit-item/\" + item.id)}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\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 }\n </div>\n\n\n\n\n <div className='tw-h-full'>\n\n <div role=\"tablist\" className=\"tw-tabs tw-tabs-lifted tw-mt-2 tw-mb-2\">\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className={`tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]`} aria-label=\"Info\" checked={activeTab == 1 && true} onChange={() => setActiveTab(1)} />\n <div role=\"tabpanel\" className=\"tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-1\">\n <TextView item={item} />\n </div>\n\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label=\"Projects\" checked={activeTab == 2 && true} onChange={() => setActiveTab(2)} />\n <div role=\"tabpanel\" className=\"tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto tw-pt-4 tw-pb-1 -tw-mx-4\" >\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-2'>\n {relations && relations.map(i => {\n if (i.type == 'project') return (\n\n <div key={i.id} 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' onClick={() => navigate('/item/' + i.id)}>\n <HeaderView item={i} />\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 )\n else return null\n })}\n {addItemPopupType == \"project\" ?\n <form ref={tabRef} autoComplete='off' onSubmit={e => submitNewItem(e, addItemPopupType)} >\n\n <div 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-6 tw-mb-4'>\n <label 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\" onClick={() => {\n setAddItemPopupType(\"\")\n }}>\n <p className='tw-text-center '>✕</p></label>\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={\"\"} inputStyle='' />\n <TextAreaInput placeholder=\"Text\" dataField=\"text\" defaultValue={\"\"} inputStyle='tw-h-40 tw-mt-5' />\n <div className='tw-flex tw-justify-center'>\n <button className={loading ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center'} type='submit'>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Save'}</button>\n </div>\n </div>\n </form> : <></>\n }\n { addButton && <PlusButton triggerAction={() => { setAddItemPopupType(\"project\"); scroll() }} color={item.color}></PlusButton>}\n\n </div>\n </div>\n </div>\n\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label=\"Events\" checked={activeTab == 3 && true} onChange={() => setActiveTab(3)} />\n <div role=\"tabpanel\" className=\"tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto tw-pt-4 tw-pb-1\">\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-2'>\n {relations && relations.map(i => {\n if (i.type == 'event') return (\n\n <div key={i.id} 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-6 tw-mb-4' onClick={() => navigate('/item/' + i.id)}>\n <HeaderView item={i} hideMenu />\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n <StartEndView item={i}></StartEndView>\n <TextView truncate item={i} />\n </div>\n </div>\n\n )\n else return null\n })}\n {addItemPopupType == \"event\" ?\n <form autoComplete='off' onSubmit={e => submitNewItem(e, addItemPopupType)} >\n\n <div 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'>\n <label 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\" onClick={() => {\n setAddItemPopupType(\"\")\n }}>\n <p className='tw-text-center '>✕</p></label>\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={\"\"} inputStyle='' />\n <PopupStartEndInput></PopupStartEndInput>\n <TextAreaInput placeholder=\"Text\" dataField=\"text\" defaultValue={\"\"} inputStyle='tw-h-40 tw-mt-5' />\n <div className='tw-flex tw-justify-center'>\n <button className={loading ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center'} type='submit'>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Save'}</button>\n </div>\n </div>\n </form> : <></>\n }\n <PlusButton triggerAction={() => { setAddItemPopupType(\"event\"); scroll() }} color={item.color}></PlusButton>\n\n </div>\n </div>\n </div>\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label=\"Friends\" checked={activeTab == 4 && true} onChange={() => setActiveTab(4)} />\n <div role=\"tabpanel\" className=\"tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-1\">\n </div>\n </div>\n\n\n\n\n </div>\n </>\n }\n </MapOverlayPage >\n )\n}\n\n\n","import * as React from 'react'\nimport { useItems, useUpdateItem } from '../Map/hooks/useItems'\nimport { useEffect, useState } from 'react';\nimport { getValue } from '../../Utils/GetValue';\nimport { toast } from 'react-toastify';\nimport { useAuth } from '../Auth';\nimport { TextInput, TextAreaInput } from '../Input';\nimport { ColorPicker } from './ColorPicker';\nimport DialogModal from '../Templates/DialogModal';\nimport { hashTagRegex } from '../../Utils/HashTagRegex';\nimport { useAddTag, useTags } from '../Map/hooks/useTags';\nimport { randomColor } from '../../Utils/RandomColor';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { Geometry, Item, Tag, UserItem } from '../../types';\nimport { MapOverlayPage } from '../Templates';\nimport { TagsWidget } from './TagsWidget';\nimport { decodeTag, encodeTag } from '../../Utils/FormatTags';\nimport { AvatarWidget } from './AvatarWidget';\n\n\nexport function OverlayItemProfileSettings() {\n\n const [id, setId] = useState<string>(\"\");\n const [name, setName] = useState<string>(\"\");\n const [text, setText] = useState<string>(\"\");\n const [image, setImage] = useState<string>(\"\");\n const [color, setColor] = useState<string>(\"\");\n\n\n const [activeTab, setActiveTab] = useState<number>(1);\n const [loading, setLoading] = useState<boolean>(false);\n\n\n\n\n const updateItem = useUpdateItem();\n\n const location = useLocation();\n const items = useItems();\n const [item, setItem] = useState<Item>({} as Item)\n\n const tags = useTags();\n const addTag = useAddTag();\n const navigate = useNavigate();\n\n\n\n useEffect(() => {\n const itemId = location.pathname.split(\"/\")[2];\n const item = items.find(i => i.id === itemId);\n item && setItem(item);\n\n }, [location, items, activeTab])\n\n React.useEffect(() => {\n if (item.layer?.itemColorField) setColor(getValue(item, item.layer?.itemColorField));\n else setColor(item.layer?.markerDefaultColor || \"#000\")\n\n setId(item?.id ? item.id : \"\");\n setName(item?.name ? item.name : \"\");\n setText(item?.text ? item.text : \"\");\n setImage(item?.image ? item?.image : \"\");\n }, [item])\n\n\n const onUpdateItem = async () => {\n let changedItem = {} as Item;\n \n\n\n changedItem = { id: id, name: name, text: text, color: color, position: item.position, ...image.length > 10 && { image: image }};\n // update profile item in current state\n //const item = items.find(i => i.layer?.itemOwnerField && getValue(i, i.layer?.itemOwnerField).id === id);\n\n\n // if (item && item.layer && item.layer.itemOwnerField) item[item.layer.itemOwnerField] = {... changedUser, offers: offer_state, needs: needs_state};\n // add new hashtags from profile text\n text.toLocaleLowerCase().match(hashTagRegex)?.map(tag => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: encodeTag(tag.slice(1).toLocaleLowerCase()), color: randomColor()})\n }\n });\n\n setLoading(true);\n\n item?.layer?.api?.updateItem && toast.promise(\n item?.layer?.api?.updateItem(changedItem),\n {\n pending: 'updating Item ...',\n success: 'Item updated',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .then(() => item && updateItem({...item, ...changedItem}))\n .then(() => {\n setLoading(false);\n navigate(\"/item/\"+item.id)});\n }\n\n\n return (\n <>\n <MapOverlayPage backdrop className='tw-mx-4 tw-mt-4 tw-mb-12 tw-overflow-x-hidden tw-max-h-[calc(100dvh-96px)] !tw-h-[calc(100dvh-96px)] 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 <div className='tw-flex tw-flex-col tw-h-full'>\n <div className=\"tw-flex\">\n <AvatarWidget avatar={image} setAvatar={setImage}/>\n <ColorPicker color={color} onChange={setColor} className={\"-tw-left-6 tw-top-14 -tw-mr-6\"} />\n <TextInput placeholder=\"Name\" defaultValue={item?.name ? item.name : \"\"} updateFormValue={(v) => setName(v)} containerStyle='tw-grow tw-ml-6 tw-my-auto ' />\n </div>\n\n\n <div role=\"tablist\" className=\"tw-tabs tw-tabs-lifted tw-mt-4\">\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className={`tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]`} aria-label=\"Vision\" checked={activeTab == 1 && true} onChange={() => setActiveTab(1)} />\n <div role=\"tabpanel\" 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\">\n <TextAreaInput placeholder=\"My Vision...\" defaultValue={item?.text ? item.text : \"\"} updateFormValue={(v) => {console.log(v);setText(v)}} containerStyle='tw-h-full' inputStyle='tw-h-full tw-border-t-0 tw-rounded-tl-none' />\n </div>\n\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label=\"Projects\" checked={activeTab == 2 && true} onChange={() => setActiveTab(2)} />\n <div role=\"tabpanel\" className=\"tw-tab-content tw-bg-base-100 tw-rounded-box tw-pt-4 tw-h-[calc(100dvh-332px)] tw-min-h-56\">\n </div>\n\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label=\"Events\" checked={activeTab == 3 && true} onChange={() => setActiveTab(3)} />\n <div role=\"tabpanel\" 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\">\n </div>\n\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label=\"Friends\" checked={activeTab == 4 && true} onChange={() => setActiveTab(4)} />\n <div role=\"tabpanel\" 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\">\n </div>\n </div>\n\n <div className=\"tw-mt-4 tw-mb-4\"><button className={loading ? \" tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right\" : \"tw-btn tw-btn-primary tw-float-right\"} onClick={() => onUpdateItem()}>Update</button></div>\n\n </div>\n\n </MapOverlayPage>\n </>\n )\n}\n\n\n","import * as React from \"react\"\nimport { useEffect } from \"react\"\n\nexport function Modal({children, showOnStartup}:{children : React.ReactNode, showOnStartup?: boolean}) {\n\n useEffect(() => {\n if(showOnStartup)\n window.my_modal_3.showModal()\n }, [])\n\n\n return (\n <>\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\">✕</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\n","import * as React from 'react'\nimport { useQuestsOpen, useSetQuestOpen } from './hooks/useQuests';\nimport { useAuth } from '../Auth';\nimport { useEffect } from 'react';\n\nexport function Quests() {\n\n const questsOpen = useQuestsOpen();\n const setQuestsOpen = useSetQuestOpen();\n const { isAuthenticated, user } = useAuth();\n\n useEffect(() => {\n setQuestsOpen(false);\n }, [])\n \n\n return (\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 className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-1 tw-top-1\" onClick={() => setQuestsOpen(false)}>✕</label>\n </div>\n <h2 className=\"tw-card-title tw-m-auto \">\n Level 1\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"#aaa\" className=\"tw-w-5 tw-h-5 tw-cursor-pointer\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n\n </h2>\n <ul className='tw-flex-row'>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={isAuthenticated ? isAuthenticated : false} /><span className='tw-text-sm tw-label-text tw-mx-2'>Sign Up</span></label></li>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={user?.description ? true : false} /><span className='tw-text-sm tw-label-text tw-mx-2'>Fill Profile</span></label></li>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={user?.avatar ? true : false} /><span className='tw-text-sm tw-label-text tw-mx-2'>Upload Avatar</span></label></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}\n"],"names":["_jsx","_jsxs","_Fragment","L","LeafletPopup","ChevronRightIcon"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../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/useAssets.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/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","../node_modules/style-inject/dist/style-inject.es.js","../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/Components/Map/UtopiaMapInner.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/ReplaceURLs.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/TextView.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/SetAssetsApi.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/Templates/TagView.tsx","../src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx","../src/Components/Profile/Subcomponents/ActionsButton.tsx","../src/Components/Profile/Templates/TabsView.tsx","../src/Components/Profile/Subcomponents/ContactInfo.tsx","../src/Components/Profile/Subcomponents/SocialShareButton.tsx","../src/Components/Profile/Subcomponents/SocialShareBar.tsx","../src/Components/Profile/Subcomponents/ProfileSubHeader.tsx","../src/Components/Profile/Templates/OnepagerView.tsx","../src/Components/Profile/Templates/SimpleView.tsx","../src/Components/Profile/itemFunctions.ts","../src/Components/Profile/ProfileView.tsx","../src/Components/Input/ComboBoxInput.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/ProfileForm.tsx","../src/Components/Gaming/Modal.tsx","../src/Components/Gaming/Quests.tsx"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport { createContext, useContext } from \"react\";\nimport * as React from \"react\";\n\n\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, children?: React.ReactNode\n}> = ({ initialOpen, children }) => (\n <QuestContext.Provider value={useQuestsManager(initialOpen)}>\n {children}\n </QuestContext.Provider>\n);\n\nexport const useQuestsOpen = (): boolean => {\n const { open } = useContext(QuestContext);\n return open;\n};\n\n\nexport const useSetQuestOpen = (): UseQuestManagerResult[\"setQuestsOpen\"] => {\n const { setQuestsOpen } = useContext(QuestContext);\n return setQuestsOpen;\n}\n","import { 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>>({} as React.MutableRefObject<undefined>);\n\n return { clusterRef, setClusterRef };\n\n}\n\n\n\n\nexport const ClusterRefProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <ClusterRefContext.Provider value={useClusterRefManager()}>\n {children}\n </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\n","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { LayerProps } from \"../../../types\";\n\ntype ActionType =\n | { 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 const exist = state.find((layer) =>\n layer.name === action.layer.name ? true : false\n );\n if (!exist) return [\n ...state,\n action.layer,\n ];\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[], children?: React.ReactNode\n}> = ({ initialLayers, children }) => (\n <LayerContext.Provider value={useLayerManager(initialLayers)}>\n {children}\n </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","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { LayerProps, Tag } from \"../../../types\";\nimport { useLayers } from \"./useLayers\";\nimport { useLocation, 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 ;\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\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 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) =>\n tag.id === action.tag.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.tag,\n ];\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) =>\n layer.name === action.layer.name ? true : false\n );\n if (!exist1) return [\n ...state,\n action.layer,\n ];\n else return state;\n case \"TOGGLE_LAYER\":\n const exist2 = state.some((layer) =>\n 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((state: string[], action: ActionType) => {\n switch (action.type) {\n case \"ADD_GROUP_TYPE\":\n const exist1 = state.find((groupType) =>\n groupType === action.groupType ? true : false\n );\n if (!exist1) return [\n ...state,\n action.groupType,\n ];\n else return state;\n case \"TOGGLE_GROUP_TYPE\":\n const exist2 = state.some((groupType) =>\n 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 const [searchPhrase, searchPhraseSet] = React.useState<string>(\"\");\n\n const addFilterTag = useCallback((tag: Tag) => {\n let params = new URLSearchParams(location.search);\n let urlTags = params.get(\"tags\")\n let decodedTags = urlTags ? decodeURIComponent(urlTags) : \"\";\n \n if(!decodedTags?.includes(tag.name))\n params.set(\"tags\", `${urlTags ? urlTags : \"\"}${urlTags? ';' : ''}${tag.name}`)\n if(windowDimensions.width < 786 && location.pathname.split(\"/\").length > 2) navigate(\"/\" + `${params ? `?${params}` : \"\"}`); \n else navigate(location.pathname + `${params ? `?${params}` : \"\"}`); \n \n\n \n\n dispatchTags({\n type: \"ADD_TAG\",\n tag,\n });\n\n }, []);\n\n const removeFilterTag = useCallback((name: string) => {\n\n let params = new URLSearchParams(window.location.search);\n let urlTags = params.get(\"tags\");\n let newUrlTags = \"\";\n let 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 if(newUrlTags !== \"\") {\n params.set(\"tags\", `${newUrlTags}`)\n navigate(location.pathname + `${params ? `?${params}` : \"\"}`); \n }\n else {\n params.delete(\"tags\");\n navigate(location.pathname + `${params ? `?${params}` : \"\"}`); \n }\n\n dispatchTags({\n type: \"REMOVE_TAG\",\n name,\n });\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\n const toggleVisibleLayer = (layer: LayerProps) => {\n dispatchLayers({\n type: \"TOGGLE_LAYER\",\n layer,\n });\n\n };\n\n\n const resetVisibleLayers = useCallback(() => {\n dispatchLayers({\n type: \"RESET_LAYERS\",\n });\n }, []);\n\n const isLayerVisible = useCallback((layer: LayerProps) => {\n return visibleLayers.some(l => l.name === layer.name)\n }, [visibleLayers]);\n\n const addVisibleGroupType = (groupType: string) => {\n dispatchGroupTypes({\n type: \"ADD_GROUP_TYPE\",\n groupType,\n });\n\n };\n\n const toggleVisibleGroupType = (groupType: string) => {\n dispatchGroupTypes({\n type: \"TOGGLE_GROUP_TYPE\",\n groupType,\n });\n\n };\n\n const isGroupTypeVisible = useCallback((groupType: string) => {\n return visibleGroupTypes.some(gt => gt === groupType)\n }, [visibleGroupTypes]);\n\n const setSearchPhrase = useCallback((phrase: string) => {\n searchPhraseSet(phrase)\n }, []);\n\n return { filterTags, addFilterTag, removeFilterTag, resetFilterTags, setSearchPhrase, searchPhrase, visibleLayers, toggleVisibleLayer, resetVisibleLayers, isLayerVisible, addVisibleLayer, visibleGroupTypes, addVisibleGroupType, toggleVisibleGroupType, isGroupTypeVisible };\n}\n\nexport const FilterProvider: React.FunctionComponent<{\n initialTags: Tag[], children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <FilterContext.Provider value={useFilterManager(initialTags)}>\n {children}\n </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\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\n\nexport const useToggleVisibleGroupType = (): UseFilterManagerResult[\"toggleVisibleGroupType\"] => {\n const { toggleVisibleGroupType } = useContext(FilterContext);\n return toggleVisibleGroupType;\n};\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};","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\n\ntype ActionType =\n | { type: \"ADD\"; item: Item }\n | { type: \"UPDATE\"; item: Item }\n | { type: \"REMOVE\"; item: Item }\n | { type: \"RESET\"; layer: LayerProps }\n ;\n\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} {\n\n const addLayer = useAddLayer();\n\n const [allItemsLoaded, setallItemsLoaded] = useState<boolean>(false);\n\n\n\n const [items, dispatch] = useReducer((state: Item[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\":\n const exist = state.find((item) =>\n item.id === action.item.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.item,\n ];\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\n const setItemsApi = useCallback(async (layer: LayerProps) => {\n addLayer(layer);\n const result = await toast.promise(\n layer.api!.getItems(),\n {\n pending: `loading ${layer.name} ...`,\n success: `${layer.name} loaded`,\n error: {\n render( {data} ) { \n return `${data}`\n },\n },\n }\n );\n if (result) { \n result.map(item => { \n dispatch({ type: \"ADD\", item: { ...item, layer: layer } }); \n })\n setallItemsLoaded(true);\n }\n }, [])\n\n const setItemsData = useCallback((layer: LayerProps) => {\n addLayer(layer);\n layer.data?.map(item => {\n dispatch({ type: \"ADD\", item: { ...item, layer: layer } });\n })\n setallItemsLoaded(true);\n }, []);\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\n\n return { items, updateItem, addItem, removeItem, resetItems, setItemsApi, setItemsData, allItemsLoaded };\n}\n\nexport const ItemsProvider: React.FunctionComponent<{\n initialItems: Item[], children?: React.ReactNode\n}> = ({ initialItems, children }) => (\n <ItemContext.Provider value={useItemsManager(initialItems)}>\n {children}\n </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}","import { useCallback, useReducer, createContext, useContext, useEffect } 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 ;\n\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\n\n\n const [leafletRefs, dispatch] = useReducer((state: Record<string,LeafletRef>, action: ActionType) => {\n switch (action.type) {\n case \"ADD_MARKER\":\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], marker: action.marker, item: action.item }}\n case \"ADD_POPUP\":\n return {\n ...state,\n [action.item.id]: { ...state[action.item.id], popup: action.popup, item: action.item }}\n default:\n throw new Error();\n }\n }, initialLeafletRefs);\n\n\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\n\n return { leafletRefs, addMarker, addPopup };\n}\n\nexport const LeafletRefsProvider: React.FunctionComponent<{\n initialLeafletRefs: {}, 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\n","import { createContext, useState, useContext, useEffect } from \"react\";\nimport * as React from \"react\";\nimport { UserApi, UserItem } from \"../../types\";\n\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\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(),\n register: () => Promise.reject(),\n loading: false,\n logout: () => Promise.reject(),\n updateUser: () => Promise.reject(),\n token: \"\",\n requestPasswordReset: () => Promise.reject(),\n passwordReset: () => Promise.reject()\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 }, []);\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 }\n else return undefined;\n\n } catch (error) {\n setLoading(false)\n return undefined;\n }\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 (credentials: AuthCredentials, userName): 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\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, reset_url?: string): Promise<any> => {\n setLoading(true);\n try {\n await userApi.requestPasswordReset(email, reset_url);\n return setLoading(false);\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n\n const passwordReset = async (token: string, new_password:string): Promise<any> => {\n setLoading(true);\n try {\n await userApi.passwordReset(token, new_password);\n return setLoading(false);\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n\n\n return (\n <AuthContext.Provider\n value={{ isAuthenticated, user, login, register, loading, logout, updateUser, token, requestPasswordReset, passwordReset }}\n >\n {children}\n </AuthContext.Provider>\n );\n};\nexport const useAuth = () => useContext(AuthContext);","import * as React from \"react\"\n\n function Subtitle({styleClass, children}:{styleClass:string, children: React.ReactNode}){\n return(\n <div className={`tw-text-xl tw-font-semibold ${styleClass}`}>{children}</div>\n )\n}\n\nexport default Subtitle","import Subtitle from \"../Typography/Subtitle\"\nimport * as React from \"react\"\n\ninterface TitleCardProps {\n\n title?: string,\n hideTitle?: boolean,\n children?: React.ReactNode,\n topMargin?: string,\n className?: string,\n TopSideButtons?: any\n}\n\nexport function TitleCard({ title,hideTitle, children, topMargin, TopSideButtons, className }: TitleCardProps) {\n return (\n <div className={\"tw-card tw-w-full tw-p-6 tw-bg-base-100 tw-shadow-xl tw-h-fit tw-mb-4 \" + (className || \"\") + \" \" + (topMargin || \"tw-mt-6\")}>\n\n {!hideTitle &&\n <>\n\n < Subtitle styleClass={TopSideButtons ? \"tw-inline-block\" : \"\"}>\n {title}\n\n {/* Top side button, show only if present */}\n {\n TopSideButtons && <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\n {/** Card Body */}\n <div className='tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100'>\n {children}\n </div>\n </div >\n\n )\n}\n","import { Link } from \"react-router-dom\"\nimport * as React from \"react\"\nimport {TitleCard} from \"./TitleCard\"\n\n\nexport function CardPage({title, hideTitle, children, parents} : { \n title: string,\n hideTitle?: boolean,\n children?: React.ReactNode,\n parents?: Array<{name: string, path: string}>\n}) {\n\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><Link to={'/'} >Home</Link></li>\n {parents?.map((b,i) => <li key={i}><Link to={b.path} >{b.name}</Link></li>)}\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","\nimport * as L from 'leaflet';\nimport * as React from 'react'\nimport { useNavigate } from 'react-router-dom';\n\nexport function MapOverlayPage({ children, className, backdrop, card = true }: { children: React.ReactNode, className?: string, backdrop?: boolean, card?:boolean }) {\n\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\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 }, [overlayRef, backdropRef])\n\n\n return (\n <div className={`tw-absolute tw-h-full tw-w-full tw-m-auto ${backdrop && \"tw-z-[2000]\"}`}>\n <div ref={backdropRef} className={`${backdrop && \"tw-backdrop-brightness-75\"} tw-h-full tw-w-full tw-grid tw-place-items-center tw-m-auto`} >\n <div ref={overlayRef} 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 {children}\n <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\" onClick={() => closeScreen()}>✕</button>\n </div>\n </div>\n </div>\n )\n}","import { useEffect, useRef } from 'react';\n\nexport const CircleLayout = ({ items,radius, fontSize } : {items: any, radius: number, fontSize: any}) => {\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 }, [items]);\n\n return (\n <div className=\"tw-absolute tw-mx-auto tw-flex tw-justify-center tw-items-center tw-h-full tw-w-full\" ref={containerRef}>\n {items.map((item: any) => (\n <div key={item} className=\"tw-absolute\" style={{fontSize: fontSize}}>\n {item}\n </div>\n ))}\n </div>\n );\n};\n\n","export const LUNAR_MONTH: number = 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}","import * as React from 'react'\nimport { useState } from 'react'\nimport {\n add,\n format,\n parse,\n startOfToday,\n sub,\n} 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\n\nexport const MoonCalendar = () => {\n const today = startOfToday();\n\n\n const [currMonth, setCurrMonth] = useState(() => format(today, \"MMM-yyyy\"));\n let firstDayOfMonth = parse(currMonth, \"MMM-yyyy\", new Date());\n\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 items={[\"🌑\", \"🌒\", \"🌓\", \"🌔\", \"🌕\", \"🌖\", \"🌗\", \"🌘\"]} radius={80} fontSize={\"3em\"} />\n <CircleLayout items={ [\n format(getLastNewMoon(), \"dd.MM hh:mm\"),\n format(sub(getNextNewMoon(), {seconds: LUNAR_MONTH*86400/4*3}), \"dd.MM hh:mm\"),\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 ]} radius={120} fontSize={\"0.8em\"}/>\n </div>\n <div className='tw-flex tw-flex-row'>\n <ChevronLeftIcon\n className=\"tw-w-6 tw-h-6 tw-cursor-pointer\"\n onClick={getPrevMonth}\n />\n <p className='tw-text-center tw-p-1 tw-h-full tw-grow'>from {format(getLastNewMoon(), \"dd.MM\")} - to {format(getNextNewMoon(), \"dd.MM\")}</p>\n\n <ChevronRightIcon\n className=\"tw-w-6 tw-h-6 tw-cursor-pointer\"\n onClick={getNextMonth}\n />\n </div>\n\n\n </MapOverlayPage>\n );\n}","import { useCallback, useState } from 'react';\n\n\nimport { createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { AssetsApi } from '../../../types';\n\n\n\ntype UseAssetManagerResult = ReturnType<typeof useAssetsManager>;\n\nconst AssetContext = createContext<UseAssetManagerResult>({\n api: {} as AssetsApi,\n setAssetsApi: () => { }\n});\n\nfunction useAssetsManager(): {\n api: AssetsApi;\n setAssetsApi: (api: AssetsApi) => void;\n} {\n const [api, setApi] = useState<AssetsApi>({} as AssetsApi);\n\n const setAssetsApi = useCallback((api: AssetsApi) => {\n setApi(api);\n }, []);\n\n return { api, setAssetsApi };\n}\n\nexport const AssetsProvider: React.FunctionComponent<{\n children?: React.ReactNode\n}> = ({ children }) => (\n <AssetContext.Provider value={useAssetsManager()}>\n {children}\n </AssetContext.Provider>\n);\n\nexport const useAssetApi = (): AssetsApi => {\n const { api } = useContext(AssetContext);\n return api;\n};\n\n\nexport const useSetAssetApi = (): UseAssetManagerResult[\"setAssetsApi\"] => {\n const { setAssetsApi } = useContext(AssetContext);\n return setAssetsApi;\n}\n","import { useState } from 'react'\nimport { MapOverlayPage } from './MapOverlayPage'\nimport { useItems } from '../Map/hooks/useItems'\nimport { useAssetApi } from '../AppShell/hooks/useAssets'\nimport { Link } from 'react-router-dom'\n\nexport const SelectUser = ({ userType }: { userType: string }) => {\n\n const items = useItems();\n const users = items.filter(i => i.layer?.itemType.name == userType)\n const assetsApi = useAssetApi();\n\n const [selectedUsers, setSelectedUsers] = useState<Array<string>>([]);\n\n return (\n <MapOverlayPage backdrop className='tw-h-3/4 tw-w-80'>\n\n <div className='tw-text-center tw-text-xl tw-font-bold tw-mb-4'>Gratitude to ...</div>\n\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 {\n users.map((u, k) => {\n return (\n <tr key={k}>\n <td>\n <input type=\"checkbox\" onChange={() => setSelectedUsers(prev => [...prev, u.id])} className=\"tw-checkbox tw-checkbox-sm\" />\n </td>\n <td>\n <div className=\"tw-flex tw-items-center tw-space-x-3\">\n {u.image ? <div className=\"tw-avatar\">\n <div className=\"tw-mask tw-mask-circle tw-w-8 tw-h-8\">\n <img src={assetsApi.url + u.image+ \"?width=40&heigth=40\"} alt=\"Avatar\" />\n </div>\n </div> :\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 <div>\n <div className=\"tw-font-bold\">{u.name}</div>\n </div>\n </div>\n </td>\n </tr>\n )\n })\n }\n </tbody>\n </table>\n </div>\n <div className='tw-w-full tw-grid tw-mt-4'><Link className=\"tw-place-self-center \" to={\"/attestation-form\"+\"?to=\"+selectedUsers.map(u=> u,\",\")}><button className=\"tw-btn tw-px-8\">Next</button></Link></div>\n </MapOverlayPage>\n )\n}","import { LayerProps } from \"../../../types\";\nimport { useHasUserPermission } from \"../../Map/hooks/usePermissions\";\n\nexport function PlusButton({ layer, triggerAction, color, collection=\"items\" }: { layer?: LayerProps ,triggerAction: any, color: string, collection?:string }) {\n const hasUserPermission = useHasUserPermission(); \n return (\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 tabIndex={0} className=\"tw-z-500 tw-btn tw-btn-circle tw-shadow\" onClick={() => { triggerAction() }} style={{ backgroundColor: color, color: \"#fff\"}}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"2\" stroke=\"currentColor\" className=\"tw-w-5 tw-h-5\">\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}\n","export const hashTagRegex = /(#+[a-zA-Z0-9À-ÖØ-öø-ʸ_-]{1,})/g;","export function getValue(obj, path) {\n if (!obj || typeof path !== 'string') return undefined;\n\n var pathArray = path.split('.'); // Use a different variable for the split path\n for (var 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}","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 =\n | { type: \"ADD\"; tag: Tag }\n | { 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\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 const exist = state.find((tag) =>\n tag.name.toLocaleLowerCase() === action.tag.name.toLocaleLowerCase() ? true : false\n );\n if (!exist) {\n const newState = [\n ...state,\n { ...action.tag}\n ];\n if(tagCount == newState.length) setallTagsLoaded(true);\n return newState;\n } \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\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 })\n }\n\n \n }, [])\n\n const setTagData = useCallback((data: Tag[]) => {\n data.map(tag => {\n //tag.name = tag.name.toLocaleLowerCase();\n dispatch({ type: \"ADD\", tag })\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\n\n const getItemTags = useCallback((item: Item) => {\n const text = 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(tags.find(t => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())!)\n }\n }) \n item.layer?.itemOffersField && getValue(item, item.layer.itemOffersField)?.map(o => {\n const offer = tags.find(t=> t.id === o.tags_id)\n offer && itemTags.push(offer)\n });\n item.layer?.itemNeedsField && getValue(item, item.layer.itemNeedsField)?.map(n => {\n const need = tags.find(t=>t.id === n.tags_id);\n need && itemTags.push(need);\n });\n\n return itemTags\n }, [tags]);\n\n\n return { tags, addTag, setTagApi, setTagData, getItemTags, allTagsLoaded };\n}\n\nexport const TagsProvider: React.FunctionComponent<{\n initialTags: Tag[], children?: React.ReactNode\n}> = ({ initialTags, children }) => (\n <TagContext.Provider value={useTagsManager(initialTags)}>\n {children}\n </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\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}","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({ labelTitle, dataField, labelStyle, containerStyle, inputStyle, defaultValue, placeholder, updateFormValue }: 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 let values: KeyValue[] = [];\n\n tags.forEach(tag => {\n values.push({ key: tag.name, value: tag.name, color: tag.color });\n });\n\n var 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: 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 }, [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 ? 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\n\nexport function TextInput({ labelTitle, labelStyle, type, dataField, containerStyle, inputStyle, defaultValue, placeholder, autocomplete, updateFormValue }: 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}","\nimport { 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 updateFormValue: (value: string ) => void;\n\n options: {name: string, value: string}[];\n labelDescription?: string\n}\n\nexport function SelectBox(props : SelectBoxProps){\n \n const {labelTitle, labelDescription, defaultValue, containerStyle, placeholder, labelStyle, options, updateFormValue} = props\n\n const [value, setValue] = useState(defaultValue || \"\")\n\n\n const updateValue = (newValue: string) =>{\n updateFormValue(newValue)\n setValue(newValue)\n }\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\">{labelTitle}\n {labelDescription && <div className=\"tw-tooltip tw-tooltip-right\" data-tip={labelDescription}><InformationCircleIcon className='tw-w-4 tw-h-4'/></div>}\n </div>\n </label>\n : \"\"}\n <select className=\"tw-select tw-select-bordered tw-w-full\" value={value} onChange={(e) => updateValue(e.target.value)}>\n <option disabled value=\"PLACEHOLDER\">{placeholder}</option>\n {\n options.map((o, k) => {\n return <option value={o.value || o.name} key={k}>{o.name}</option>\n })\n }\n </select>\n </div>\n )\n}","export const randomColor = () => {\n return hsvToHex((Math.random() + golden_ratio_conjugate) % 1, 0.8, 0.7)\n}\n\nconst golden_ratio_conjugate = 0.618033988749895;\n\nfunction hsvToHex(h, s, v) {\n var r, g, b;\n var i = (Math.floor(h * 6));\n var f = h * 6 - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0: r = v, g = t, b = p; break;\n case 1: r = q, g = v, b = p; break;\n case 2: r = p, g = v, b = t; break;\n case 3: r = p, g = q, b = v; break;\n case 4: r = t, g = p, b = v; break;\n case 5: r = v, g = p, b = q; break;\n }\n\n return rgbToHex(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255))\n}\n\n\nconst rgbToHex = (r, g, b) => '#' + [r, g, b].map(x => {\n const hex = x.toString(16)\n return hex.length === 1 ? '0' + hex : hex\n}).join('')","// 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\n \nexport const timeAgo = (date: string | number | Date) => {\n const time = Math.floor(\n (new Date().valueOf() - new Date(date).valueOf()) / 1000\n );\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 (let { label, seconds } of units) {\n const interval = Math.floor(time / seconds);\n if (interval >= 1) {\n return {\n interval: 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 className='tw-flex -tw-mb-1 tw-flex-row tw-mr-2 -tw-mt-2' onClick={(e) => e.stopPropagation()}>\n\n {\n infoExpanded ?\n <p className={`tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500`} onClick={() => setInfoExpanded(false)} >{`${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 className=\"!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500\" onClick={() => setInfoExpanded(true)}>ⓘ</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\n\nconst isClickInsideRectangle = (e: MouseEvent, element: HTMLElement) => {\n const r = element.getBoundingClientRect();\n\n return (\n e.clientX > r.left &&\n e.clientX < r.right &&\n e.clientY > r.top &&\n e.clientY < r.bottom\n );\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 \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\n if(isOpened) return (\n <dialog className={`${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 \n ref={ref}\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\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>{title}</h2>\n\n {children}\n {showCloseButton && <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\" onClick={onClose}>✕</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 { useAssetApi } from '../../../AppShell/hooks/useAssets'\nimport DialogModal from \"../../../Templates/DialogModal\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useMap } from \"react-leaflet\";\nimport { useEffect } from \"react\";\n\n\n\n\nexport function HeaderView({ item, api, editCallback, deleteCallback, setPositionCallback, itemNameField, itemSubnameField, itemAvatarField, loading, hideMenu = false, big = false, truncateSubname = true, hideSubname = false, showAddress = false }: {\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\n\n const [modalOpen, setModalOpen] = React.useState<boolean>(false);\n\n const hasUserPermission = useHasUserPermission();\n const navigate = useNavigate();\n const assetsApi = useAssetApi();\n\n const avatar = itemAvatarField && getValue(item, itemAvatarField) ? assetsApi.url + getValue(item, itemAvatarField) + `${big ? \"?width=160&heigth=160\" : \"?width=80&heigth=80\"}` : item.layer?.itemAvatarField && item && getValue(item, item.layer?.itemAvatarField) && assetsApi.url + getValue(item, item.layer?.itemAvatarField) + `${big ? \"?width=160&heigth=160\" : \"?width=80&heigth=80\"}`;\n const title = itemNameField ? getValue(item, itemNameField) : item.layer?.itemNameField && item && getValue(item, item.layer?.itemNameField);\n const subtitle = itemSubnameField ? getValue(item, itemSubnameField) : item.layer?.itemSubnameField && item && getValue(item, item.layer?.itemSubnameField);\n\n const [address, setAdress] = React.useState<string>(\"\");\n\n let params = new URLSearchParams(window.location.search);\n\n\n const openDeleteModal = async (event: React.MouseEvent<HTMLElement>) => {\n setModalOpen(true);\n event.stopPropagation();\n }\n\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 className={`${big ? \"tw-w-20\" : \"tw-w-10\"} tw-inline tw-items-center tw-justify-center overflow-hidden`}>\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 className={`${big ? \"xl:tw-text-3xl tw-text-2xl\" : \"tw-text-xl\"} tw-font-semibold tw-truncate`}>\n {title}\n </div>\n {showAddress && address && !hideSubname && <div className={`tw-text-xs tw-text-gray-500 ${truncateSubname && \"tw-truncate\"}`}>\n {address}\n </div>}\n {subtitle && !hideSubname && <div className={`tw-text-xs tw-text-gray-500 ${truncateSubname && \"tw-truncate\"}`}>\n {subtitle}\n </div>}\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) || hasUserPermission(api?.collectionName!, \"update\", item))\n && !hideMenu &&\n <div className=\"tw-dropdown tw-dropdown-bottom\">\n <label tabIndex={0} className=\"tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\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 tabIndex={0} className=\"tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000\">\n {((api?.updateItem && hasUserPermission(api.collectionName!, \"update\", item))) && editCallback && <li>\n <a className=\"!tw-text-base-content tw-cursor-pointer\" onClick={(e) => item.layer?.customEditLink ? navigate(`${item.layer.customEditLink}${item.layer.customEditParameter ? `/${getValue(item, item.layer.customEditParameter)}${params && \"?\"+params}` : \"\"} `) : editCallback(e)}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\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 {((api?.updateItem && hasUserPermission(api.collectionName!, \"update\", item))) && setPositionCallback && <li>\n <a className=\"!tw-text-base-content tw-cursor-pointer\" onClick={setPositionCallback}>\n <svg stroke=\"currentColor\" fill=\"currentColor\" strokeWidth=\"0\" viewBox=\"0 0 512 512\" className=\"tw-w-5 tw-h-5\" xmlns=\"http://www.w3.org/2000/svg\">\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 {api?.deleteItem && hasUserPermission(api.collectionName!, \"delete\", item) && deleteCallback && <li>\n <a className='tw-cursor-pointer !tw-text-error' onClick={openDeleteModal}>\n {loading ? <span className=\"tw-loading tw-loading-spinner tw-loading-sm\"></span>\n :\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fillRule=\"evenodd\" 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\" clipRule=\"evenodd\" />\n </svg>}\n </a>\n </li>}\n </ul>\n </div>}\n </div>\n\n </div>\n <DialogModal isOpened={modalOpen} title=\"Are you sure?\" showCloseButton={false} onClose={() => (setModalOpen(false))} >\n <div onClick={(e) => e.stopPropagation()} >\n <span>Do you want to delete <b>{item.name}</b>?</span>\n <div className=\"tw-grid\">\n <div className=\"tw-flex tw-justify-between\" >\n <label className=\"tw-btn tw-mt-4 tw-btn-error\" onClick={(e) => { deleteCallback(e); setModalOpen(false); }}>Yes</label>\n <label className=\"tw-btn tw-mt-4\" onClick={() => setModalOpen(false)}>No</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 = ({ i, loading, url, parameterField, deleteCallback }: { i: Item, loading: boolean, url: string, parameterField: string, deleteCallback: any }) => {\n const navigate = useNavigate();\n const windowDimensions = useWindowDimensions();\n\n return (\n <div 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' onClick={() => {\n let params = new URLSearchParams(window.location.search);\n if (windowDimensions.width < 786 && i.position) navigate(\"/\" + getValue(i, parameterField) + `${params ? `?${params}` : \"\"}`)\n else navigate(url + getValue(i, parameterField) + `${params ? `?${params}` : \"\"}`)\n }}>\n <HeaderView loading={loading} item={i} api={i.layer?.api} itemAvatarField={i.layer?.itemAvatarField} itemNameField={i.layer?.itemNameField} itemSubnameField={i.layer?.itemSubnameField} editCallback={() => navigate(\"/edit-item/\" + i.id)} deleteCallback={() => deleteCallback(i)}></HeaderView>\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n {i.layer?.itemType.show_start_end &&\n <StartEndView item={i}></StartEndView>\n }\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\n\n\nexport const Control = ({ position, children, zIndex, absolute }: { position: \"topLeft\" | \"topRight\" | \"bottomLeft\" | \"bottomRight\", children: React.ReactNode, zIndex: string, absolute: boolean }) => {\n\n\n const controlContainerRef = React.createRef<HTMLDivElement>()\n\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 ref={controlContainerRef} style={{zIndex: zIndex}} 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}","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 useEffect(clear, []);\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 React from 'react'\nimport * 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\n const map = useMap();\n\n // prevent react18 from calling useEffect twice\n const init = useRef(false)\n\n\n const [lc, setLc] = useState<any>(null);\n const [active, setActive] = useState<boolean>(false);\n const [loading, setLoading] = useState<boolean>(false);\n\n\n useEffect(() => {\n if (!init.current) {\n //@ts-ignore\n setLc(L.control.locate().addTo(map));\n init.current = true;\n }\n }, [])\n\n useMapEvents({\n locationfound: () => {\n setLoading(false);\n setActive(true);\n },\n })\n\n return (<>\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\n <div className=\"tw-card-body tw-card tw-p-2 tw-h-10 tw-w-10 \" onClick={() => {\n if (active) {\n lc.stop();\n setActive(false);\n }\n else {\n lc.start();\n setLoading(true);\n }\n\n }}>{loading ? <span className=\"tw-loading tw-loading-spinner tw-loading-md tw-mt-1\"></span> : \n <svg fill={`${active? \"#fc8702\" : \"currentColor\"}`} viewBox=\"0 0 32 32\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" className='tw-mt-1 tw-p-[1px]'>\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\n","import * as L from 'leaflet';\n\nconst createSvg = (shape: string, markerColor: string, borderColor: string) => {\n const svgMap = {\n circle: '<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=\"' + markerColor + '\" /><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=\"' + borderColor + '\" opacity=\"1\" /></svg>',\n square: '<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=\"' + markerColor + '\" /><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=\"' + borderColor + '\" /></g></svg>',\n star: '<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=\"' + markerColor + '\" /><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: '<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=\"' + markerColor + '\" /><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 break;\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 break;\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 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 let formatedTag = string.replace(/_/g, \"\\u00A0\"); \n return formatedTag = formatedTag.charAt(0).toUpperCase() + formatedTag.slice(1);\n}\n\nexport function encodeTag(string : string) { \n return string.replace(/\\s+/g, \"_\"); \n}","\n\n// Converts leaflet.locatecontrol to a React Component\nexport const SidebarControl = () => {\n\n\n\n return (<>\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\n <div className=\"tw-card-body tw-card tw-p-0\">\n <button 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 <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" className=\"tw-inline-block tw-w-5 tw-h-5 tw-stroke-current\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M4 6h16M4 12h16M4 18h16\"></path></svg>\n </button>\n\n </div>\n </div></>)\n\n}\n\n\n","import * as React from 'react'\nimport { useAddFilterTag, useFilterTags, useResetFilterTags } 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 { useClusterRef } from '../../hooks/useClusterRef';\nimport { Item } from '../../../../types';\nimport { SidebarControl } from './SidebarControl';\n\n\n\nexport const SearchControl = () => {\n\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\n useMapEvents({\n popupopen: () => {\n setPopupOpen(true);\n },\n popupclose: () => {\n setPopupOpen(false);\n }\n })\n\n const navigate = useNavigate();\n\n useDebounce(() => {\n const searchGeo = async () => {\n try {\n const { data } = await axios.get(\n `https://photon.komoot.io/api/?q=${value}&limit=5`\n );\n setGeoResults(data.features);\n } catch (error) {\n console.log(error);\n }\n };\n searchGeo();\n setItemsResults(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 value.length > 2 && ((item.layer?.listed && item.name?.toLowerCase().includes(value.toLowerCase()) || item.text?.toLowerCase().includes(value.toLowerCase())))\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, [value]);\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\n\n const location = useLocation();\n useEffect(() => {\n let params = new URLSearchParams(location.search);\n let embedded = params.get(\"embedded\");\n embedded != \"true\" && setEmbedded(false)\n }, [location]);\n\n\n return (<>\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 type=\"text\" placeholder=\"search ...\" autoComplete=\"off\" value={value} 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 {value.length > 0 && <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-absolute tw-right-2 tw-top-2\" onClick={() => setValue(\"\")}>✕</button>}\n </div>\n <LocateControl />\n </div>\n {hideSuggestions || Array.from(geoResults).length == 0 && itemsResults.length == 0 && tagsResults.length == 0 && !isGeoCoordinate(value) || value.length == 0 ? \"\" :\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 key={tag.name} 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' style={{ backgroundColor: tag.color }} onClick={() => {\n addFilterTag(tag)\n }}>\n <b>#{decodeTag(tag.name)}</b>\n </div>\n ))}\n </div>\n }\n\n {itemsResults.length > 0 && tagsResults.length > 0 && <hr className='tw-opacity-50'></hr>}\n {itemsResults.slice(0, 5).map(item => (\n <div key={item.id} className='tw-cursor-pointer hover:tw-font-bold' onClick={() => {\n const marker = Object.entries(leafletRefs).find(r => r[1].item == item)?.[1].marker;\n if (marker) {\n navigate(`/${item.id}?${new URLSearchParams(window.location.search)}`)\n }\n else {\n navigate(\"item/\" + item.id + \"?\" + new URLSearchParams(window.location.search))\n }\n\n }\n }><div className='tw-flex tw-flex-row'>\n <img src={item.layer?.menuIcon} className=\"tw-text-current tw-w-5 tw-mr-2 tw-mt-0\" />\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{item.name}</div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{item.text}</div>\n </div>\n </div>\n </div>\n ))}\n {Array.from(geoResults).length > 0 && (itemsResults.length > 0 || tagsResults.length > 0) && <hr className='tw-opacity-50'></hr>}\n {Array.from(geoResults).map((geo) => (\n <div className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer' key={Math.random()} onClick={() => {\n searchInput.current?.blur();\n L.marker(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), { icon: MarkerIconFactory(\"circle\", \"#777\", \"RGBA(35, 31, 32, 0.2)\", \"point\") }).addTo(map).bindPopup(`<h3 class=\"tw-text-base tw-font-bold\">${geo?.properties.name ? geo?.properties.name : value}<h3>${capitalizeFirstLetter(geo?.properties?.osm_value)}`).openPopup().addEventListener(\"popupclose\", (e) => { console.log(e.target.remove()) });\n if (geo.properties.extent) map.fitBounds(new LatLngBounds(new LatLng(geo.properties.extent[1], geo.properties.extent[0]), new LatLng(geo.properties.extent[3], geo.properties.extent[2])));\n else map.setView(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), 15, { duration: 1 });\n hide();\n }}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"1.5\" stroke=\"currentColor\" className=\"tw-text-current tw-mr-2 tw-mt-0 tw-w-4\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{geo?.properties.name ? geo?.properties.name : value}</div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{geo?.properties?.city && `${capitalizeFirstLetter(geo?.properties?.city)}, `} {geo?.properties?.osm_value && geo?.properties?.osm_value !== \"yes\" && geo?.properties?.osm_value !== \"primary\" && geo?.properties?.osm_value !== \"path\" && geo?.properties?.osm_value !== \"secondary\" && geo?.properties?.osm_value !== \"residential\" && geo?.properties?.osm_value !== \"unclassified\" && `${capitalizeFirstLetter(geo?.properties?.osm_value)}, `} {geo.properties.state && `${geo.properties.state}, `} {geo.properties.country && geo.properties.country}</div>\n </div>\n </div>\n\n ))}\n {isGeoCoordinate(value) &&\n <div className='tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer' onClick={() => {\n L.marker(new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]), { icon: MarkerIconFactory(\"circle\", \"#777\", \"RGBA(35, 31, 32, 0.2)\", \"point\") }).addTo(map).bindPopup(`<h3 class=\"tw-text-base tw-font-bold\">${extractCoordinates(value)![0]}, ${extractCoordinates(value)![1]}</h3>`).openPopup().addEventListener(\"popupclose\", (e) => { console.log(e.target.remove()) });\n map.setView(new LatLng(extractCoordinates(value)![0], extractCoordinates(value)![1]), 15, { duration: 1 })\n }}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"currentColor\" className=\"tw-text-current tw-mr-2 tw-mt-0 tw-w-4\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n\n <div>\n <div className='tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{value}</div>\n <div className='tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]'>{\"Coordiante\"}</div>\n </div>\n </div>\n }\n </div>}\n </div>\n }\n </>\n\n )\n}\n\nfunction isGeoCoordinate(input) {\n const geokoordinatenRegex = /^[-+]?([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}","import * as React from 'react'\nimport { useFilterTags, useRemoveFilterTag } from '../../hooks/useFilter';\nimport { decodeTag } from '../../../../Utils/FormatTags';\n\nexport const TagsControl = () => {\n\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 {\n filterTags.map(tag =>\n <div key={tag.id} className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mr-2 tw-mb-2' style={{ backgroundColor: tag.color }}>\n <div className=\"tw-card-actions tw-justify-end\">\n <label className=\"tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600\" onClick={() => (removeFilterTag(tag.name!))}>✕</label>\n </div><b>#{decodeTag(tag.name)}</b>\n </div>\n )\n }\n</div>)\n}\n\n\n","import { ReactNode, useEffect, useRef, useState } from 'react'\nimport { Link, useNavigate } from 'react-router-dom';\nimport { Item, ItemsApi, LayerProps } from '../../types';\nimport { getValue } from '../../Utils/GetValue';\nimport { PopupStartEndInput, StartEndView, TextView } 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 { HeaderView } from '../Map/Subcomponents/ItemPopupComponents/HeaderView';\nimport { MapOverlayPage } from './MapOverlayPage';\nimport { useAddItem, useItems, useRemoveItem } from '../Map/hooks/useItems';\nimport { DateUserInfo } from './DateUserInfo';\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\n\nexport const OverlayItemsIndexPage = ({ url, layerName, parameterField, plusButton = true }: { layerName: string, url: string, parameterField: string, plusButton?: boolean }) => {\n\n\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\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 && formItem.text.toLocaleLowerCase().match(hashTagRegex)?.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 });\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: layer, public_edit: !user ? true : false });\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\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 {\n items?.filter(i => i.layer?.name === layerName).\n filter(item =>\n filterTags.length == 0 ? item : filterTags.some(tag => getItemTags(item).some(filterTag => filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())))?.\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 ? new Date(a.date_updated).getTime() : a.date_created ? new Date(a.date_created).getTime() : 0;\n const dateB = b.date_updated ? new Date(b.date_updated).getTime() : b.date_created ? new Date(b.date_created).getTime() : 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 i={i} loading={loading} url={url} parameterField={parameterField} deleteCallback={() => deleteItem(i)} />\n </div>\n ))\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 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\" onClick={() => setAddItemPopupType(\"\")}>\n <p className='tw-text-center'>✕</p>\n </label>\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={\"\"} inputStyle='' />\n {layer?.itemType.show_start_end_input && <PopupStartEndInput />}\n <TextAreaInput placeholder=\"Text\" dataField=\"text\" defaultValue={\"\"} inputStyle='tw-h-40 tw-mt-5' />\n <div className='tw-flex tw-justify-center'>\n <button className={loading ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center'} type='submit'>\n {loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Save'}\n </button>\n </div>\n </div>\n </form>\n )}\n </div>\n\n </div>\n </div>\n </MapOverlayPage>\n\n {plusButton && <PlusButton layer={layer} triggerAction={() => { setAddItemPopupType(\"place\"); scroll(); }} color={'#777'} collection='items' />}\n </>\n )\n}\n","import { useState } from 'react';\n\nexport const EmojiPicker = ({selectedEmoji, selectedColor, selectedShape, setSelectedEmoji, setSelectedColor, setSelectedShape}) => {\n\n\n\n const [isOpen, setIsOpen] = useState(false);\n\n const emojis = [\n '❤️', '🙏', '👍', '🌻',, '✨', '☀️',\n '🔥', '🪵', '💧', '🎶', '🎨','🍄', \n '📝', '✉️', '🧩','💡', '🎓', '💬', \n '🛠', '💻', '🕹', '🖨', '🚐', '🛒',\n '⚽️', '🧵', '👀', '🌱',\n '🏕', '💪', '🎁', '🏹', \n '🥕', '🥇', '🥈', '🥉'];\n const shapes = [\"squircle\", \"circle\", \"hexagon-2\"];\n\n const colors = [\"#FF99C8\", \"#fff0d6\", \"#FCF6BD\", \"#D0F4DE\", \"#A9DEF9\", \"#E4C1F9\", \"#de324c\", \"#f4895f\", \"#f8e16f\", \"#95cf92\", \"#369acc\", \"#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\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 <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 <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};\n\n","\nimport { MapOverlayPage } from './MapOverlayPage'\nimport { useItems } from '../Map/hooks/useItems'\nimport { useAssetApi } from '../AppShell/hooks/useAssets'\nimport { EmojiPicker } from './EmojiPicker';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { useRef, useState } from 'react';\nimport { Item, ItemsApi } from '../../types';\nimport { useEffect } from 'react';\nimport { toast } from 'react-toastify';\n\nexport const AttestationForm = ({api}:{api?:ItemsApi<any>}) => {\n\n const items = useItems();\n const assetsApi = useAssetApi();\n const [users, setUsers] = useState<Array<Item>>();\n const navigate = useNavigate();\n\n useEffect(() => {\n let params = new URLSearchParams(location.search);\n let to_user_ids = params.get(\"to\");\n setUsers(items.filter(i => to_user_ids?.includes(i.id)))\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\n api?.createItem && toast.promise(\n api.createItem({\n text: inputValue,\n emoji: selectedEmoji,\n color: selectedColor,\n shape: selectedShape,\n to: to\n }), {\n pending: 'creating attestation ...',\n success: 'Attestation created',\n error: {\n render({ data }) {\n return `${data}`\n },\n },\n })\n .then( () => navigate(\"/item/\" + items.find(i => i.user_created.id===to[0].directus_users_id && i.layer?.itemType.name===\"player\")?.id+\"?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\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 && users.map((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 ? <div className=\"tw-avatar\">\n <div className=\"tw-mask tw-mask-circle tw-w-8 tw-h-8\">\n <img src={assetsApi.url + u.image + \"?width=40&heigth=40\"} alt=\"Avatar\" />\n </div>\n </div> :\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 <div>\n <div className=\"tw-font-bold\">{u.name}</div>\n </div>\n </div>\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 selectedEmoji={selectedEmoji} selectedColor={selectedColor} selectedShape={selectedShape} setSelectedEmoji={setSelectedEmoji} setSelectedColor={setSelectedColor} setSelectedShape={setSelectedShape} />\n </div>\n </div>\n <div className='tw-flex tw-justify-center tw-items-center'>\n <input 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 </div>\n </div>\n <div className='tw-w-full tw-grid tw-mt-4'><button onClick={sendAttestation} className=\"tw-btn tw-place-self-center tw-px-8\">Next</button></div>\n </MapOverlayPage>\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\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 const onLogin = async () => {\n await toast.promise(\n login({ email: email, password: password }),\n {\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 type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className='tw-text-right tw-text-primary'><Link to=\"/reset-password\"><span className=\"tw-text-sm tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Forgot Password?</span></Link>\n </div>\n <div className=\"tw-card-actions\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onLogin()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Login'}</button>\n </div>\n </MapOverlayPage>\n )\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\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 const onRegister = async () => {\n await toast.promise(\n register({ email: email, password: password }, userName),\n {\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\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 type=\"text\" placeholder=\"Name\" value={userName} onChange={e => setUserName(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <input type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions tw-mt-4\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onRegister()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Sign Up'}</button>\n </div>\n </MapOverlayPage>\n )\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\nexport function RequestPasswordPage({reset_url}) {\n\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(\n requestPasswordReset( email, reset_url),\n {\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 type=\"email\" placeholder=\"E-Mail\" value={email} onChange={e => setEmail(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions tw-mt-4\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onReset()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Send'}</button>\n </div>\n </MapOverlayPage>\n )\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\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(\n passwordReset(token, password),\n {\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 type=\"password\" placeholder=\"Password\" onChange={e => setPassword(e.target.value)} className=\"tw-input tw-input-bordered tw-w-full tw-max-w-xs\" />\n <div className=\"tw-card-actions tw-mt-4\">\n <button className={loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block'} onClick={() => onReset()}>{loading ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Set'}</button>\n </div>\n </MapOverlayPage>\n )\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 =\n | { type: \"ADD\"; permission: Permission }\n | { 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: (collectionName: string, action: PermissionAction, item?: Item, layer?: LayerProps) => boolean;\n} {\n const [permissions, dispatch] = useReducer((state: Permission[], action: ActionType) => {\n switch (action.type) {\n case \"ADD\":\n const exist = state.find((permission) =>\n permission.id === action.permission.id ? true : false\n );\n if (!exist) return [\n ...state,\n action.permission,\n ];\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\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 })\n }\n }, [])\n\n const setPermissionData = useCallback((data: Permission[]) => {\n data.map(permission => {\n dispatch({ type: \"ADD\", permission })\n })\n }, []);\n\n const hasUserPermission = useCallback(\n (\n collectionName: string, \n action: PermissionAction, \n item?: Item, \n layer?: LayerProps\n ) => {\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 \n if (permissions.length === 0) return true;\n else if (user && user.role === adminRole) return true;\n else {\n return permissions.some(p =>\n p.action === action &&\n p.collection === collectionName &&\n (\n (p.role === user?.role &&\n (\n !item || evaluatePermissions(p.permissions)\n )) ||\n (p.role == null &&\n (\n (layer?.public_edit_items || item?.layer?.public_edit_items) &&\n (!item || evaluatePermissions(p.permissions))\n ))\n )\n );\n }\n },\n [permissions, user]\n );\n \n\n\n\n return { permissions, setPermissionApi, setPermissionData, setAdminRole, hasUserPermission };\n}\n\nexport const PermissionsProvider: React.FunctionComponent<{\n initialPermissions: Permission[], 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\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}","import { ItemFormPopupProps } from \"./Components/Map/Subcomponents/ItemFormPopup\";\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}\n\nexport interface LayerProps {\n id?: string,\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 interface ItemType {\n name: string;\n [key: string]: any;\n\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 [key: string]: any;\n constructor(id:string,name:string,text:string,position:Geometry, layer?: LayerProps, api?: ItemsApi<any>){\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 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 Tag {\n color: string;\n id: string;\n name: string;\n offer_or_need?: boolean\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 AssetsApi {\n upload(file: Blob, title: string): any,\n url: string\n}\n\nexport interface UserApi {\n register(email: string, password: string, userName: string): Promise<void>,\n\tlogin(email: string, password: string): Promise<any>,\n\tlogout(): Promise<void>,\n getUser(): Promise<UserItem>,\n getToken(): Promise<any>,\n\tupdateUser(user: UserItem): Promise<void>,\n requestPasswordReset(email:string, reset_url?:string),\n passwordReset(token:string,new_password:string)\n}\n\nexport type UserItem = {\n id?: string;\n role?: string;\n email?: string;\n password?: string;\n profile?: Profile;\n [key: string]: any;\n\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 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 Permission = {\n id?: string;\n role: string;\n collection: string;\n action: PermissionAction;\n permissions?: { // Optional, für spezifische Bedingungen wie `user_created`\n _and: PermissionCondition[];\n };\n};\n\n\nexport type PermissionAction = \"create\"|\"read\"|\"update\"|\"delete\";\n\nexport type Relation = {\n related_items_id: string;\n [key: string]: any;\n}","import { 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\";\nimport { useNavigate } from \"react-router-dom\";\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\n\n useEffect(() => {\n if (selectPosition && markerClicked && 'text' in selectPosition && markerClicked.id !==selectPosition.id) {\n itemUpdateParent({ ...selectPosition, parent: markerClicked.id })\n }\n }, [markerClicked])\n\n useEffect(() => {\n if (selectPosition != null) {\n if ('menuIcon' in selectPosition) {\n mapClicked && mapClicked.setItemFormPopup({ layer: selectPosition as LayerProps, position: mapClicked?.position })\n setSelectPosition(null)\n }\n if ('text' in selectPosition) {\n const position = mapClicked?.position.lng && new Geometry(mapClicked?.position.lng, mapClicked?.position.lat);\n position && itemUpdatePosition({ ...selectPosition as Item, position: position })\n setSelectPosition(null);\n }\n }\n \n }, [mapClicked])\n \n\n const itemUpdateParent = async (updatedItem: Item) => {\n if (markerClicked?.layer?.api?.collectionName && hasUserPermission(markerClicked?.layer?.api?.collectionName, \"update\", markerClicked)) {\n let success = false;\n try {\n await updatedItem?.layer?.api?.updateItem!({ id: updatedItem.id, parent: updatedItem.parent, position: null })\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 }\n else {\n setSelectPosition(null);\n toast.error(\"you don't have permission to add items to \" + markerClicked?.name);\n }\n\n }\n\n const itemUpdatePosition = async (updatedItem: Item) => {\n let success = false;\n try {\n await updatedItem?.layer?.api?.updateItem!({ id: updatedItem.id, position: updatedItem.position })\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 let new_relations = markerClicked.relations || [];\n \n if (!new_relations.some(r => r.related_items_id == id)) {\n new_relations?.push({ items_id: markerClicked.id, related_items_id: id })\n const updatedItem = { id: markerClicked.id, relations: new_relations }\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: new_relations })\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}","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 { AssetsProvider } from './hooks/useAssets'\nimport { useContext, createContext } from 'react';\nimport { BrowserRouter as Router, useLocation } from 'react-router-dom';\n\n\n// Helper context to determine if the ContextWrapper is already present.\nconst ContextCheckContext = createContext(false);\n\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 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 (\n <Router>\n {children}\n </Router>\n );\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>\n {children}\n </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\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 <AssetsProvider>\n <ClusterRefProvider>\n <QuestsProvider initialOpen={true}>\n {children}\n </QuestsProvider>\n </ClusterRefProvider>\n </AssetsProvider>\n </QueryClientProvider>\n </LeafletRefsProvider>\n </SelectPositionProvider>\n </ItemsProvider>\n </FilterProvider>\n </LayersProvider>\n </TagsProvider>\n </PermissionsProvider>\n );\n};","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 * as React from 'react'\nimport { useLayers } from '../hooks/useLayers'\nimport { useHasUserPermission } from '../hooks/usePermissions';\n\n\nexport default function AddButton({ triggerAction }: { 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 (layer.api?.createItem && hasUserPermission(layer.api.collectionName!, \"create\", undefined, layer) && layer.listed) canAdd = true;\n })\n return canAdd;\n }\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 xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"3\" stroke=\"currentColor\" className=\"tw-w-5 tw-h-5\">\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((layer) => (\n layer.api?.createItem && hasUserPermission(layer.api.collectionName!, \"create\", undefined, layer) && layer.listed &&(\n <li key={layer.name} >\n <a>\n <div className=\"tw-tooltip tw-tooltip-left\" data-tip={layer.menuText}>\n <button 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={() => { triggerAction(layer) }}>\n <img src={layer.menuIcon} className=\"tw-h-6 tw-w-6 tw-text-white\" style={{ filter: 'invert(100%) brightness(200%)' }} />\n </button>\n </div>\n </a>\n </li>\n )\n\n ))}\n </ul>\n </div> : \"\"\n }\n </>\n\n )\n}\n","import * as React from 'react'\nimport { useAddVisibleGroupType, useIsGroupTypeVisible, useToggleVisibleGroupType, useVisibleGroupType } from '../../hooks/useFilter';\nimport { useEffect } from 'react';\n\nexport function FilterControl() {\n\n const [open, setOpen] = React.useState(false);\n\n const groupTypes = [{ text: \"Regional Gruppe\", value: \"wuerdekompass\" }, { text: \"Themen Gruppe\", value: \"themenkompass\" }, { text: \"liebevoll.jetzt\", value: \"liebevoll.jetzt\" }]\n\n\n useEffect(() => {\n groupTypes.map(layer =>\n addVisibleGroupType(layer.value)\n )\n }, [])\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 {\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 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\" onClick={() => {\n setOpen(false)\n }}>\n <p className='tw-text-center '>✕</p></label>\n <ul className='tw-flex-row'>\n {\n groupTypes.map(groupType =>\n <li key={groupType.value}><label htmlFor={groupType.value} className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-1\"><input id={groupType.value} onChange={() => toggleVisibleGroupType(groupType.value)} type=\"checkbox\" className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={isGroupTypeVisible(groupType.value)} /><span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>{groupType.text}</span></label></li>\n )\n }\n </ul>\n </div>\n :\n <div className=\"tw-indicator\">\n {visibleGroupTypes.length < groupTypes.length && <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 <div 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\" onClick={() => {\n setOpen(true)\n }}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={2.3} stroke=\"currentColor\" className=\"size-6\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n </div>\n </div>\n\n }\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\n const [open, setOpen] = React.useState(false);\n\n const layers = useLayers();\n\n\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 {\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 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\" onClick={() => {\n setOpen(false)\n }}>\n <p className='tw-text-center '>✕</p></label>\n <ul className='tw-flex-row'>\n {\n layers.map(layer =>\n (layer.listed && <li key={layer.name}><label htmlFor={layer.name} className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-1\"><input id={layer.name} onChange={() => toggleVisibleLayer(layer)} type=\"checkbox\" className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={isLayerVisible(layer)} /><span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>{layer.name}</span></label></li>)\n )\n }\n </ul>\n </div>\n :\n <div 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\" onClick={() => {\n setOpen(true)\n }}>\n <svg version=\"1.1\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\">\n <path id=\"svg_1\" fill=\"currentColor\" 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 <path id=\"svg_2\" strokeWidth=\"2\" stroke=\"currentColor\" fill=\"none\" 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 </svg>\n\n\n </div>\n\n }\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) return (\n <div className=\"tw-card tw-bg-base-100 tw-shadow-xl tw-mt-2 tw-w-fit\">\n {\n\n\n <div 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\" onClick={() => {\n navigate(\"/select-user\")\n }}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={2.5} stroke=\"currentColor\" className=\"size-6\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n\n\n\n </div>\n\n }\n\n </div>\n )\n else return (<></>);\n}\n","\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 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\" onClick={() => {\n setSelectNewItemPosition(null)\n }}>\n <p className='tw-text-center '>✕</p></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","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, 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 { useSelectPosition, useSetMapClicked, useSetSelectPosition } 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\";\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}: UtopiaMapProps) {\n\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 }, [layers]);\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: setItemFormPopup });\n }\n },\n moveend: () => { }\n });\n return null;\n }\n\n const resetMetaTags = () => {\n let 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.querySelector('meta[property=\"og:description\"]')?.setAttribute(\"content\", `${document.querySelector('meta[name=\"description\"]')?.getAttribute(\"content\")}`);\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 className={`tw-h-full ${selectNewItemPosition != null ? \"crosshair-cursor-enabled\" : undefined}`}>\n <MapContainer ref={mapDivRef} style={{ height: height, width: width }} center={new LatLng(center[0], center[1])} zoom={zoom} zoomControl={false} maxZoom={19}>\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 ref={(r) => setClusterRef(r)} showCoverageOnHover chunkedLoading maxClusterRadius={50} removeOutsideVisibleBounds={false}>\n {\n React.Children.toArray(children).map((child) =>\n React.isValidElement<{ setItemFormPopup: React.Dispatch<React.SetStateAction<ItemFormPopupProps>>, itemFormPopup: ItemFormPopupProps | null, clusterRef: React.MutableRefObject<undefined> }>(child)\n ? React.cloneElement(child, { setItemFormPopup: setItemFormPopup, itemFormPopup: itemFormPopup, clusterRef: clusterRef })\n : child\n )\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: setItemFormPopup });\n }\n },\n }}\n />\n )}\n <MapEventListener />\n </MapContainer>\n <AddButton triggerAction={setSelectNewItemPosition} />\n {selectNewItemPosition != null && <SelectPosition setSelectNewItemPosition={setSelectNewItemPosition} />}\n </div>\n );\n}\n","import { UtopiaMapProps } from \"../../types\";\nimport { ContextWrapper } from \"../AppShell/ContextWrapper\";\nimport { UtopiaMapInner } from \"./UtopiaMapInner\";\n\nfunction UtopiaMap(props: UtopiaMapProps) {\n return (\n <ContextWrapper>\n <UtopiaMapInner {...props} />\n </ContextWrapper>\n );\n}\n\nexport { UtopiaMap };\n","export const urlRegex = /(^| )(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\n\nexport function fixUrls(message: string): string {\n \n message = message.replace(urlRegex, function (url) {\n let hyperlink = url.replace(' ', '');\n if (!hyperlink.match('^https?:\\/\\/')) {\n hyperlink = 'https://' + hyperlink;\n } \n return hyperlink\n });\n \n \n return message;\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 = ({ item, truncate = false, itemTextField, rawText }: { item?: Item, truncate?: boolean, itemTextField?: string, rawText?: string }) => {\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 if (item && text && truncate) text = truncateText(removeMarkdownKeepLinksAndParagraphs(text), 100);\n\n\n item && text ? replacedText = fixUrls(text) : \"\";\n\n replacedText ? replacedText = replacedText.replace(/(?<!\\]?\\()https?:\\/\\/[^\\s\\)]+(?!\\))/g, (url) => {\n let shortUrl = url;\n if (url.match('^https:\\/\\/')) {\n shortUrl = url.split('https://')[1];\n }\n if (url.match('^http:\\/\\/')) {\n shortUrl = url.split('http://')[1];\n }\n return `[${shortUrl}](${url})`;\n }) : \"\";\n\n replacedText ? replacedText = replacedText.replace(mailRegex, (url) => {\n return `[${url}](mailto:${url})`;\n }) : \"\";\n\n replacedText ? replacedText = replacedText.replace(hashTagRegex, (match) => {\n return `[${match}](${match})`;\n }) : \"\";\n\n const CustomH1 = ({ children }) => (\n <h1 className=\"tw-text-xl tw-font-bold\">{children}</h1>\n );\n const CustomH2 = ({ children }) => (\n <h2 className=\"tw-text-lg tw-font-bold\">{children}</h2>\n );\n const CustomH3 = ({ children }) => (\n <h3 className=\"tw-text-base tw-font-bold\">{children}</h3>\n );\n const CustomH4 = ({ children }) => (\n <h4 className=\"tw-text-base tw-font-bold\">{children}</h4>\n );\n const CustomH5 = ({ children }) => (\n <h5 className=\"tw-text-sm tw-font-bold\">{children}</h5>\n );\n const CustomH6 = ({ children }) => (\n <h6 className=\"tw-text-sm tw-font-bold\">{children}</h6>\n );\n const CustomParagraph = ({ children }) => (\n <p className=\"!tw-my-2\">{children}</p>\n );\n const CustomUnorderdList = ({ children }) => (\n <ul className=\"tw-list-disc tw-list-inside\">{children}</ul>\n );\n const CustomOrderdList = ({ children }) => (\n <ol className=\"tw-list-decimal tw-list-inside\">{children}</ol>\n );\n const CustomHorizontalRow = ({ children }) => (\n <hr className=\"tw-border-current\">{children}</hr>\n );\n const CustomImage = ({ alt, src, title }) => (\n <img\n className=\"tw-max-w-full tw-rounded tw-shadow\"\n src={src}\n alt={alt}\n title={title}\n />\n );\n const CustomExternalLink = ({ href, children }) => (\n <a className='tw-font-bold'\n href={href}\n target='_blank'\n > {children}</a>\n );\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 }}>{decodeTag(children)}</a>\n )\n };\n\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 className={`tw-text-map tw-leading-map tw-text-sm`} remarkPlugins={[remarkBreaks]} components={{\n p: CustomParagraph,\n a: ({ href, children }) => {\n const isYouTubeVideo = href?.startsWith('https://www.youtube.com/watch?v=');\n const isRumbleVideo = href?.startsWith('https://rumble.com/embed/');\n\n\n if (isYouTubeVideo) {\n const videoId = href?.split('v=')[1].split('&')[0];\n const youtubeEmbedUrl = `https://www.youtube-nocookie.com/embed/${videoId}`;\n\n return (\n <MemoizedVideoEmbed url={youtubeEmbedUrl}></MemoizedVideoEmbed>\n );\n }\n if (isRumbleVideo) {\n return (\n <MemoizedVideoEmbed url={href!}></MemoizedVideoEmbed>\n );\n }\n if (href?.startsWith(\"#\")) {\n const tag = tags.find(t => t.name.toLowerCase() === decodeURI(href).slice(1).toLowerCase());\n return <CustomHashTagLink tag={tag} item={item}>{children}</CustomHashTagLink>;\n } else {\n return (\n <CustomExternalLink href={href}>{children}</CustomExternalLink>\n );\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 {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 (let 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 * 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 { useEffect, 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\n\nexport interface ItemViewPopupProps {\n item: Item,\n children?: React.ReactNode;\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\n\n\n\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\n const [infoExpanded, setInfoExpanded] = useState<Boolean>(false);\n\n const handleEdit = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n map.closePopup();\n props.setItemFormPopup && props.setItemFormPopup({ position: new LatLng(props.item.position?.coordinates[1]!, props.item.position?.coordinates[0]!), layer: props.item.layer!, item: props.item, setItemFormPopup: props.setItemFormPopup })\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 && await props.item.layer?.api?.deleteItem!(props.item.id);\n props.item.layer?.onlyOnePerOwner && 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 let params = new URLSearchParams(window.location.search);\n window.history.pushState({}, \"\", \"/\" + `${params ? `?${params}` : \"\"}`);\n navigate(\"/\");\n }\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 api={props.item.layer?.api} item={props.item} editCallback={handleEdit} deleteCallback={handleDelete} setPositionCallback={()=>{map.closePopup();setSelectPosition(props.item); navigate(\"/\")}} loading={loading}/>\n <div className='tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade'>\n {props.children ?\n\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\n <TextView item={props.item} />\n\n }\n\n </div>\n <div className='tw-flex -tw-mb-1 tw-flex-row tw-mr-2 tw-mt-1'>\n\n\n {\n infoExpanded ?\n <p className={`tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500`} >{`${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 className=\"!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500\" onClick={() => setInfoExpanded(true)}>ⓘ</p>\n }\n <div className='tw-grow'></div>\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\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, ItemsApi } 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\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 const removeItem = useRemoveItem();\n\n\n const tags = useTags(); \n const addTag = useAddTag();\n\n const resetFilterTags = useResetFilterTags();\n\n const { user } = useAuth();\n\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 && formItem.text.toLocaleLowerCase().match(hashTagRegex)?.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 });\n\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 }\n else {\n const item = items.find(i => i.user_created?.id === user?.id && i.layer?.itemType.name === props.layer.itemType.name);\n \n const uuid = crypto.randomUUID();\n let success = false;\n try {\n props.layer.onlyOnePerOwner && item && await props.layer.api?.updateItem!({...formItem, id: item?.id });\n (!props.layer.onlyOnePerOwner || !item) && await props.layer.api?.createItem!({...formItem, id: uuid, name: formItem.name ? formItem.name : user?.first_name });\n success = true;\n } catch (error) {\n toast.error(error.toString());\n }\n if(success) { \n props.layer.onlyOnePerOwner && item && updateItem({...item, ...formItem});\n (!props.layer.onlyOnePerOwner || !item) && addItem({...formItem, name: formItem.name ? formItem.name : user?.first_name , user_created: user, type: props.layer.itemType, id: uuid, layer: props.layer, public_edit: !user ? true : false});\n toast.success(\"New item created\");\n resetFilterTags();\n } \n setSpinner(false);\n map.closePopup();\n }\n props.setItemFormPopup!(null);\n }\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 minWidth={275} maxWidth={275} autoPanPadding={[20, 80]}\n eventHandlers={{\n remove: () => {\n setTimeout(function () {\n resetPopup()\n }, 100);\n }\n }}\n position={props.position}>\n <form ref={formRef} onReset={resetPopup} autoComplete='off' onSubmit={e => handleSubmit(e)}>\n {props.item ? <div className='tw-h-3'></div>\n :\n <div className='tw-flex tw-justify-center'><b className=\"tw-text-xl tw-text-center tw-font-bold\">{ props.layer.menuText}</b></div>\n }\n\n {props.children ?\n\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement<{ item: Item, test: string, setPopupTitle: React.Dispatch<React.SetStateAction<string>> }>(child) ?\n React.cloneElement(child, { item: props.item, key: props.position.toString(), setPopupTitle: setPopupTitle }) : \"\"\n )\n\n :\n <>\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={props.item ? props.item.name : \"\"} inputStyle='' />\n <TextAreaInput key={props.position.toString()} placeholder=\"Text\" dataField=\"text\" defaultValue={props.item ? props.item.text : \"\"} inputStyle='tw-h-40 tw-mt-5' />\n </>\n }\n\n <div className='tw-flex tw-justify-center'>\n <button className={spinner ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center'} type='submit'>{spinner ? <span className=\"tw-loading tw-loading-spinner\"></span> : 'Save'}</button>\n </div>\n </form>\n </LeafletPopup>\n )\n}\n\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 { useFilterTags, useIsGroupTypeVisible, useIsLayerVisible, useVisibleGroupType } 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 public_edit_items,\n listed = true,\n setItemFormPopup,\n itemFormPopup,\n clusterRef\n}: LayerProps) => {\n\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\n const map = useMap();\n\n const isLayerVisible = useIsLayerVisible();\n\n const isGroupTypeVisible = useIsGroupTypeVisible();\n\n const visibleGroupTypes = useVisibleGroupType();\n\n\n\n useEffect(() => {\n data && setItemsData({ data, children, name, menuIcon, menuText, menuColor, markerIcon, markerShape, markerDefaultColor, markerDefaultColor2, api, itemType, itemNameField, itemSubnameField, itemTextField, itemAvatarField, itemColorField, itemOwnerField, itemTagsField, itemOffersField, itemNeedsField, onlyOnePerOwner, customEditLink, customEditParameter, public_edit_items, listed, setItemFormPopup, itemFormPopup, clusterRef });\n api && setItemsApi({ data, children, name, menuIcon, menuText, menuColor, markerIcon, markerShape, markerDefaultColor, markerDefaultColor2, api, itemType, itemNameField, itemSubnameField, itemTextField, itemAvatarField, itemColorField, itemOwnerField, itemTagsField, itemOffersField, itemNeedsField, onlyOnePerOwner, customEditLink, customEditParameter, public_edit_items, listed, setItemFormPopup, itemFormPopup, clusterRef });\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 let params = new URLSearchParams(window.location.search);\n if (!location.pathname.includes(\"/item/\")) {\n window.history.pushState({}, \"\", `/${item.id}` + `${params.toString() !== \"\" ? `?${params}` : \"\"}`)\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 (window.location.pathname.split(\"/\").length <= 1 || window.location.pathname.split(\"/\")[1] === \"\") {\n map.closePopup();\n }\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 && clusterRef.hasLayer(ref.marker) && 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) title = getValue(ref.item.name, ref.item.layer.itemNameField);\n document.title = `${document.title.split(\"-\")[0]} - ${title}`;\n document.querySelector('meta[property=\"og:title\"]')?.setAttribute(\"content\", ref.item.name);\n document.querySelector('meta[property=\"og:description\"]')?.setAttribute(\"content\", ref.item.text);\n }\n }\n }\n }\n\n useEffect(() => {\n openPopup();\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 })\n }\n }, [tagsReady])\n\n return (\n <>\n {items &&\n items.\n filter(item => item.layer?.name === name)?.\n filter(item =>\n filterTags.length == 0 ? item : filterTags.some(tag => getItemTags(item).some(filterTag => filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase())))?.\n filter(item => item.layer && isLayerVisible(item.layer)).\n filter(item => item.group_type && isGroupTypeVisible(item.group_type) || visibleGroupTypes.length == 0).\n map((item: Item) => {\n if (getValue(item, itemLongitudeField) && getValue(item, itemLatitudeField)) {\n\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 return item[itemTextField]\n\n });\n }\n\n\n if (allTagsLoaded && allItemsLoaded) {\n item[itemTextField].match(hashTagRegex)?.map(tag => {\n if ((!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) && !newTagsToAdd.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n const newTag = { id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() };\n setNewTagsToAdd(current => [...current, newTag]);\n }\n });\n !tagsReady && setTagsReady(true);\n }\n\n\n const itemTags = getItemTags(item);\n\n const latitude = itemLatitudeField && item ? getValue(item, itemLatitudeField) : undefined;\n const longitude = itemLongitudeField && item ? getValue(item, itemLongitudeField) : undefined;\n\n let color1 = markerDefaultColor;\n let color2 = markerDefaultColor2;\n if (itemColorField && getValue(item, itemColorField) != null) 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 ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].marker == r))\n r && addMarker(item, r);\n }}\n eventHandlers={{\n click: () => {\n selectPosition && setMarkerClicked(item)\n },\n }}\n icon={MarkerIconFactory(markerShape, color1, color2, item.markerIcon ? item.markerIcon : markerIcon)} key={item.id} position={[latitude, longitude]}>\n {\n (children && React.Children.toArray(children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemView\") ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemView\" ?\n <ItemViewPopup ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup == r))\n r && addPopup(item, r as Popup);\n }} key={item.id + item.name}\n item={item}\n setItemFormPopup={setItemFormPopup}>\n {child}\n </ItemViewPopup>\n : \"\"\n )\n :\n <>\n <ItemViewPopup key={item.id + item.name} ref={(r) => {\n if (!(item.id in leafletRefs && leafletRefs[item.id].popup == r))\n r && addPopup(item, r as Popup);\n }}\n item={item}\n setItemFormPopup={setItemFormPopup} />\n </>)\n }\n <Tooltip offset={[0, -38]} direction='top'>{item.name ? item.name : getValue(item, itemNameField)}</Tooltip>\n </Marker>\n );\n }\n else return null;\n })\n }\n {//{children}}\n }\n {itemFormPopup && itemFormPopup.layer!.name == name &&\n (children && React.Children.toArray(children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemForm\") ?\n React.Children.toArray(children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemForm\" ?\n <ItemFormPopup key={setItemFormPopup?.name} position={itemFormPopup!.position} layer={itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={itemFormPopup!.item} >{child}</ItemFormPopup>\n : \"\"\n )\n :\n <>\n <ItemFormPopup position={itemFormPopup!.position} layer={itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={itemFormPopup!.item} />\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>}) {\nconst setTagData = useSetTagData();\nconst setTagApi = useSetTagApi();\n\nuseEffect(() => {\n data && setTagData(data); \n api && setTagApi(api); \n}, [api, data])\n\n\nconst location = useLocation();\nconst addFilterTag = useAddFilterTag();\nconst resetFilterTags = useResetFilterTags();\nconst tags = useTags();\nconst filterTags = useFilterTags()\n\n\nuseEffect(() => {\n let params = new URLSearchParams(location.search);\n let urlTags = params.get(\"tags\")\n let decodedTags = urlTags ? decodeURIComponent(urlTags) : \"\";\n let decodedTagsArray = decodedTags.split(\";\");\n if(decodedTagsArray?.some(ut => !filterTags.find(ft => ut.toLocaleLowerCase() === ft.name.toLocaleLowerCase()))||filterTags?.some(ft => !decodedTagsArray?.find(ut => ut.toLocaleLowerCase() === ft.name.toLocaleLowerCase())))\n {resetFilterTags()\n decodedTagsArray?.map(urlTag => {\n const tag = tags.find(t => t.name.toLocaleLowerCase() === urlTag.toLocaleLowerCase()) \n tag && addFilterTag(tag)\n });}\n\n}, [location, tags]);\n\n\n return (\n <></>\n )\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({data, api, adminRole} : {data?: Permission[], api?: ItemsApi<Permission>, adminRole?: string}) {\nconst setPermissionData = useSetPermissionData();\nconst setPermissionApi = useSetPermissionApi();\nconst setAdminRole = useSetAdminRole();\nconst {user} = useAuth();\n\nuseEffect(() => { \n adminRole && setAdminRole(adminRole);\n data && setPermissionData(data); \n api && setPermissionApi(api); \n}, [api, data, adminRole, user])\n\n return (\n <></>\n )\n}\n","import * as React from 'react'\nimport { Item } from '../../types'\nimport * as PropTypes from 'prop-types'\nimport { useEffect } from 'react'\n\n\nexport const ItemForm = ({ children, item, title, setPopupTitle }: { children?: React.ReactNode, item?: Item, title?: string, setPopupTitle?: React.Dispatch<React.SetStateAction<string>> }) => {\n useEffect(() => {\n setPopupTitle&& title && setPopupTitle(title);\n\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: item, test: \"test\" }) : \"\"\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\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) ?\n React.cloneElement(child, { item: item }) : \"\"\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 = ({ dataField, placeholder, style, item }:\n {\n dataField: string,\n placeholder: string,\n style?: string,\n item?: Item\n }) => {\n\n return (\n <TextAreaInput defaultValue={item?.text ? item.text : \"\"} dataField={dataField} placeholder={placeholder} inputStyle={style}></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 = ({item, showLabels = true, updateStartValue, updateEndValue}:StartEndInputProps) => {\n return (\n <div className='tw-grid tw-grid-cols-2 tw-gap-2 tw-mb-5'>\n <TextInput type='date' placeholder='start' dataField='start' inputStyle='tw-text-sm tw-px-2' labelTitle={showLabels ? \"start\" :\"\"} defaultValue={item && item.start? item.start.substring(0, 10) : \"\"} autocomplete='one-time-code' updateFormValue={updateStartValue}></TextInput>\n <TextInput type='date' placeholder='end' dataField='end' inputStyle='tw-text-sm tw-px-2' labelTitle={showLabels ? \"end\" :\"\"} defaultValue={item && item.end ? item.end.substring(0, 10) : \"\"} autocomplete='one-time-code' updateFormValue={updateEndValue}></TextInput>\n </div>\n )\n}\n","import * as React from 'react'\nimport { TextInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\nexport const PopupTextInput = ({ dataField, placeholder, style, item }:\n {\n dataField: string,\n placeholder: string,\n style?: string,\n item?: Item\n }) => {\n\n return (\n <TextInput defaultValue={item?.name ? item.name : \"\"} dataField={dataField} placeholder={placeholder} inputStyle={style} type='text' containerStyle={'tw-mt-4 tw-mb-4'}></TextInput>\n )\n}\n","import * as React from 'react'\nimport { TextInput } from '../../../Input'\nimport { Item } from '../../../../types'\n\nexport const PopupCheckboxInput = ({ dataField, label, item }:\n {\n dataField: string,\n label: string,\n item?: Item\n }) => {\n\n return (\n <label htmlFor={item?.id} className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-1\"><input id={item?.id} type=\"checkbox\" name={dataField} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={item?.public_edit} /><span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>{label}</span></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 xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-4 tw-w-4 tw-mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n <time className='tw-align-middle' dateTime={item && item.start? item.start.substring(0, 10) : \"\"}>{item && item.start? new Date(item.start).toLocaleDateString(): \"\"}</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 xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-4 tw-w-4 tw-mr-2\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n <time className='tw-align-middle' dateTime={item && item.end? item.end.substring(0, 10) : \"\"}>{item && item.end ? new Date(item.end).toLocaleDateString() : \"\"}</time>\n </div>\n </div>\n )\n}\n\n","import { Link } from 'react-router-dom'\nimport { getValue } from '../../../../Utils/GetValue'\nimport { Item } from '../../../../types'\nimport { useGetItemTags } from '../../hooks/useTags';\n\n\nexport const PopupButton = ({url, parameterField, text, colorField, item} : {url: string, parameterField?: string, text: string, colorField?: string, item? : Item}) => {\n\n let params = new URLSearchParams(window.location.search);\n const getItemTags = useGetItemTags();\n\n \n\n \n return (\n <Link to={`${url}/${parameterField? getValue(item,parameterField):``}?${params}`}><button style={{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)}`}} className=\"tw-btn tw-text-white tw-btn-sm tw-float-right tw-mt-1\">{text}</button></Link>\n \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\n\nexport default function NavBar({ appName, userType}: { appName: string, userType: string }) {\n\n\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 = user && items.find(i => (i.user_created?.id === user.id) && i.layer?.itemType.name === userType); \n profile ? setUserProfile(profile) : setUserProfile({id: crypto.randomUUID(), name: user?.first_name, text: \"\"});\n }, [user, items])\n\n useEffect(() => {\n \n }, [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\n\n useEffect(() => {\n showNav && nameRef && setNameWidth(nameRef.current.scrollWidth) \n }, [nameRef, appName, showNav])\n \n\n\n\n useEffect(() => {\n let params = new URLSearchParams(location.search);\n let embedded = params.get(\"embedded\");\n embedded!=\"true\" && setShowNav(true)\n }, [location]);\n \n\n const onLogout = () => {\n toast.promise(\n logout(),\n {\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) return (\n <>\n <div className=\"tw-navbar tw-bg-base-100 tw-z-[10000] tw-shadow-xl tw-relative\">\n <button 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 <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" className=\"tw-inline-block tw-w-5 tw-h-5 tw-stroke-current\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M4 6h16M4 12h16M4 18h16\"></path></svg>\n </button>\n <div className=\"tw-flex-1 tw-mr-2\">\n <div className={`tw-flex-1 tw-truncate tw-grid tw-grid-flow-col`} style={{maxWidth: nameWidth+60}}>\n <Link className=\"tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate\" to={\"/\"}><h1 ref={nameRef} className=\"tw-truncate\">{appName}</h1></Link>\n <button className=\"tw-btn tw-px-2 tw-btn-ghost\" onClick={() => window.my_modal_3.showModal()}><QuestionMarkIcon className=\"tw-h-5 tw-w-5\" /></button>\n </div>\n </div>\n\n\n\n {isAuthenticated ?\n <div className=\"tw-flex-none\">\n <Link to={`${userProfile.id && \"/item/\"+userProfile.id}`} className=\"tw-flex tw-items-center\">\n { userProfile?.image && <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 <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 xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\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 tabIndex={0} 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 <li><Link to={`${userProfile.id && \"/edit-item/\"+userProfile.id}`}>Profile</Link></li>\n <li><Link to={\"/user-settings\"}>Settings</Link></li>\n <li><a onClick={() => { onLogout() }}>Logout</a></li>\n </ul>\n </div>\n </div>\n :\n <div>\n\n <div className=\"tw-hidden md:tw-flex\">\n <Link to={\"/login\"}><div className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Login\n </div></Link>\n\n <Link to={\"/signup\"}><div className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Sign Up\n </div></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 xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\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\n\n </label>\n <ul tabIndex={1} 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 <li><Link to={\"/login\"}>Login</Link></li>\n <li><Link to={\"/signup\"}>Sign Up</Link></li>\n </ul>\n </div>\n\n </div>\n }\n </div>\n\n </>\n )\n else return (<></>)\n}\n","import { useSetAssetApi } from './hooks/useAssets'\nimport { AssetsApi } from '../../types';\nimport { useEffect } from 'react';\n\nexport const SetAssetsApi = ({assetsApi}:{assetsApi: AssetsApi}) => {\n const setAssetsApi = useSetAssetApi();\n\n useEffect(() => {\n setAssetsApi(assetsApi)\n }, [assetsApi])\n \n\n return (\n <></>\n )\n}\n","import * as React from 'react'\nimport NavBar from './NavBar'\nimport { SetAssetsApi } from './SetAssetsApi'\nimport { AssetsApi } from '../../types'\nimport 'react-toastify/dist/ReactToastify.css';\nimport { ContextWrapper } from './ContextWrapper';\n\n\nexport function AppShell({ appName, children, assetsApi, userType }: { appName: string, children: React.ReactNode, assetsApi: AssetsApi, userType: string }) {\n return (\n <ContextWrapper>\n <div className='tw-flex tw-flex-col tw-h-full'>\n <SetAssetsApi assetsApi={assetsApi} />\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\n\nfunction SidebarSubmenu({submenu, name, icon} : { path: string;\n icon: JSX.Element;\n name: string;\n submenu?: any | undefined}){\n const location = useLocation()\n const [isExpanded, setIsExpanded] = useState(false)\n\n\n /** Open Submenu list if path found in routes, this is for directly loading submenu routes first time */\n useEffect(() => {\n if(submenu.filter(m => {return m.path === location.pathname})[0])setIsExpanded(true)\n }, [])\n\n return (\n <div className='flex-col'>\n\n {/** Route header */}\n <div className='w-full' onClick={() => setIsExpanded(!isExpanded)}>\n {icon} <span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\" data-te-sidenav-slim=\"false\">{name} </span>\n <ChevronDownIcon className={'w-5 h-5 mt-1 float-right delay-400 duration-500 transition-all ' + (isExpanded ? 'rotate-180' : '')}/>\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 {\n submenu.map((m, k) => {\n return(\n <li key={k} >\n <Link to={m.path} className='' >\n {m.icon}<span className=\"\" data-te-sidenav-slim=\"false\">{m.name}</span>\n {\n location.pathname == m.path ? (<span 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\"></span>) : null\n }\n </Link>\n </li>\n )\n })\n }\n </ul>\n </div>\n </div>\n )\n}\n\nexport default SidebarSubmenu","import { useRef, useState } from 'react'\nimport { useEffect } from 'react'\nimport { NavLink, useLocation } from 'react-router-dom';\nimport {\n Sidenav,\n initTE,\n} 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 icon: JSX.Element;\n name: string;\n submenu?: route;\n blank?: boolean\n}\n\n\nexport function SideBar({ routes, bottomRoutes }: { routes: route[], bottomRoutes?: route[] }) {\n\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\n\n const toggleSlim = () => {\n setSlim(!slim);\n instance.toggleSlim();\n }\n\n\n\n useEffect(() => {\n if (!init.current) {\n initTE({ Sidenav });\n const instance = Sidenav.getInstance(\n document.getElementById(\"sidenav\")\n );\n setInstance(instance);\n instance.toggleSlim();\n init.current = true;\n }\n }, [])\n\n const [embedded, setEmbedded] = useState<boolean>(true)\n\n\n useEffect(() => {\n let params = new URLSearchParams(location.search);\n let embedded = params.get(\"embedded\");\n embedded != \"true\" && setEmbedded(false)\n }, [location]);\n\n let 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 <div className={`tw-flex tw-flex-col ${embedded ? \"tw-h-full\" :\"tw-h-[calc(100dvh-64px)]\"}`}>\n <ul className=\"tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0\" data-te-sidenav-menu-ref>\n {\n routes.map((route, k) => {\n return (\n <li className=\"\" key={k}>\n {\n route.submenu ?\n <SidebarSubmenu {...route} /> :\n (<NavLink \n end\n target={route.blank ? \"_blank\" : \"_self\"}\n to={`${route.path}${params && '?'+params}`}\n className={({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`} onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle();\n }}>\n {route.icon}<span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\" data-te-sidenav-slim=\"false\">{route.name}</span>\n {\n location.pathname.includes(route.path) && route.path.length > 1 || location.pathname === route.path ? (<span 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\"></span>) : null\n }\n </NavLink>)\n }\n\n </li>\n )\n })\n }\n </ul>\n\n <div id=\"slim-toggler\" className='tw-w-full tw-bg-base-100 tw-flex-1 tw-grid tw-place-items-end' aria-haspopup=\"true\" >\n <div className='tw-w-full'>\n\n <ul className=\"tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0 tw-mb-0\" data-te-sidenav-menu-ref>\n {\n bottomRoutes?.map((route, k) => {\n return (\n <li className=\"\" key={k}>\n {\n route.submenu ?\n <SidebarSubmenu {...route} /> :\n (<NavLink\n end\n target={route.blank ? \"_blank\" : \"_self\"}\n to={route.path}\n className={({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`} onClick={() => {\n if (screen.width < 640 && !slim) instance.toggle();\n }}>\n {route.icon}<span className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden\" data-te-sidenav-slim=\"false\">{route.name}</span>\n {\n location.pathname.includes(route.path) && route.path.length > 1 || location.pathname === route.path ? (<span 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\"></span>) : null\n }\n </NavLink>)\n }\n\n </li>\n )\n })\n }\n </ul>\n\n <ChevronRightIcon className={\"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 \" + (!slim ? \"tw-rotate-180\" : '')} 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}\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 }, [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\n","import * as React from 'react'\nimport { CardPage, MapOverlayPage } from '../Templates'\nimport { useItems } from '../Map/hooks/useItems'\nimport { useLocation, useNavigate } from 'react-router-dom'\nimport { useState } from 'react';\nimport { Item, UserItem } from '../../types';\nimport { getValue } from '../../Utils/GetValue';\nimport { useMap } from 'react-leaflet';\nimport { LatLng } from 'leaflet';\nimport { TextView } from '../Map';\nimport useWindowDimensions from '../Map/hooks/useWindowDimension';\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\n\n const [passwordChanged, setPasswordChanged] = useState<boolean>(false);\n\n\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\n\n\n\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem;\n\n changedUser = { id: id, email: email, ...passwordChanged && { password: password } };\n\n\n toast.promise(\n\n updateUser(changedUser),\n {\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\n return (\n <MapOverlayPage backdrop 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 <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 type='email' placeholder=\"new E-Mail\" defaultValue={user?.email ? user.email : \"\"} updateFormValue={(v) => setEmail(v)} />\n <TextInput type='password' placeholder=\"new Password\" defaultValue={user?.password ? user.password : \"\"} updateFormValue={(v) => {\n setPassword(v);\n setPasswordChanged(true);\n }} />\n {/* <ToogleInput updateType=\"syncData\" labelTitle=\"Sync Data\" defaultValue={true} updateFormValue={updateFormValue}/> */}\n </div>\n\n <div className=\"tw-mt-8\"><button className={loading ? \" tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right\" : \"tw-btn tw-btn-primary tw-float-right\"} onClick={() => onUpdateUser()}>Update</button></div>\n\n </MapOverlayPage>\n )\n}\n\n\n","import * as React from 'react'\nimport { decodeTag } from '../../Utils/FormatTags'\nimport { Tag } from '../../types'\n\nexport const TagView = ({tag, heighlight, onClick} : {tag: Tag, heighlight?: boolean, onClick?: (e)=> void}) => {\n return (\n // Use your imagination to render suggestions.\n\n <div key={tag.name} onClick={onClick} className={`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'}`} style={{ backgroundColor: tag.color ? tag.color : \"#666\" }}>\n <div className=\"tw-card-actions tw-justify-end\">\n </div><b>{decodeTag(tag.name)}</b>\n </div>\n\n )\n}\n","import { useEffect } from \"react\";\nimport { getValue } from \"../../../Utils/GetValue\";\nimport { Item } from \"../../../types\";\nimport { useAssetApi } from \"../../AppShell/hooks/useAssets\";\n\n\n\n\nexport function LinkedItemsHeaderView({ item, unlinkCallback, itemNameField, itemAvatarField, loading, unlinkPermission, itemSubnameField }: {\n item: Item,\n unlinkCallback?: any,\n itemNameField?: string,\n itemAvatarField?: string,\n itemSubnameField?: string,\n loading?: boolean,\n unlinkPermission: boolean\n}) {\n\n const assetsApi = useAssetApi();\n\n\n const avatar = itemAvatarField && getValue(item, itemAvatarField) ? assetsApi.url + getValue(item, itemAvatarField) : item.layer?.itemAvatarField && item && getValue(item, item.layer?.itemAvatarField) && assetsApi.url + getValue(item, item.layer?.itemAvatarField);\n const title = itemNameField ? getValue(item, itemNameField) : item.layer?.itemNameField && item && getValue(item, item.layer?.itemNameField);\n const subtitle = itemSubnameField ? getValue(item, itemSubnameField) : item.layer?.itemSubnameField && item && getValue(item, item.layer?.itemSubnameField);\n\n\n\n useEffect(() => {\n\n }, [item])\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 <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`}>\n {title}\n </div>\n {subtitle && <div className=\"tw-text-xs tw-truncate tw-text-gray-500 \">\n {subtitle}\n </div>}\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 tabIndex={0} className=\" tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"tw-h-5 tw-w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\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 tabIndex={0} className=\"tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000\">\n {true && <li>\n <a className='tw-cursor-pointer !tw-text-error' onClick={() => unlinkCallback(item.id)}>\n {loading ? <span className=\"tw-loading tw-loading-spinner tw-loading-sm\"></span>\n :\n <svg className=\"tw-h-5 tw-w-5\" stroke=\"currentColor\" fill=\"currentColor\" strokeWidth=\"0\" viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\"><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></svg>}\n </a>\n </li>}\n </ul>\n </div>}\n </div>\n </div>\n </>\n )\n}\n","import { useState } from \"react\";\nimport { useHasUserPermission, usePermissions } 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({ item, triggerAddButton, triggerItemSelected, existingRelations, itemType, colorField, collection = \"items\", customStyle }: {\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\n const items = useItems();\n\n const filterdItems = items.filter(i => !itemType || i.layer?.itemType.name == itemType).filter(i => !existingRelations.some(s => s.id == i.id)).filter(i => i.id != item.id)\n\n\n\n return (\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 && <button tabIndex={0} className=\"tw-z-500 tw-btn tw-btn-circle tw-shadow\" onClick={() => { setModalOpen(true) }} style={{ backgroundColor: `${colorField && getValue(item,colorField)? getValue(item,colorField) : (getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor)}`, color: \"#fff\" }}>\n <svg className=\"tw-h-5 tw-w-5\" stroke=\"currentColor\" fill=\"currentColor\" strokeWidth=\"0\" viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\"><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></svg>\n\n </button>}\n {triggerAddButton && <button tabIndex={0} className=\"tw-z-500 tw-btn tw-btn-circle tw-shadow tw-mt-2\" onClick={() => { triggerAddButton() }} style={{ backgroundColor: `${colorField && getValue(item,colorField)? getValue(item,colorField) : (getItemTags(item) && getItemTags(item)[0] && getItemTags(item)[0].color ? getItemTags(item)[0].color : item?.layer?.markerDefaultColor)}`, color: \"#fff\" }}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"4\" stroke=\"currentColor\" className=\"tw-w-5 tw-h-5\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M12 4.5v15m7.5-7.5h-15\" />\n </svg>\n </button>}\n </div>\n <DialogModal title={\"Select\"} isOpened={modalOpen} onClose={() => (setModalOpen(false))} className=\"tw-w-xl sm:tw-w-2xl tw-min-h-80 tw-bg-base-200\">\n <TextInput defaultValue='' placeholder='🔍 Search' containerStyle='lg:col-span-2 tw-m-4 ' updateFormValue={(val) => { setSearch(val) }}></TextInput> \n <div className='tw-grid tw-grid-cols-1 sm:tw-grid-cols-2'>\n {filterdItems.filter(item => {\n return search === ''\n ? item :\n item.name.toLowerCase().includes(search.toLowerCase());\n }).map(i => <div key={i.id} 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' onClick={() => { triggerItemSelected(i.id); setModalOpen(false) }}>\n <HeaderView item={i} hideMenu></HeaderView>\n </div>)}\n </div>\n </DialogModal>\n </>\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 'utopia-ui/dist/types'\nimport { Link, useNavigate } from 'react-router-dom'\nimport { useItems } from '../../Map/hooks/useItems'\nimport { useAssetApi } from '../../AppShell/hooks/useAssets'\nimport { timeAgo } from '../../../Utils/TimeAgo'\nimport { useAuth } from '../../Auth'\n\nexport const TabsView = ({ attestations, userType, item, offers, needs, relations, updatePermission, loading, linkItem, unlinkItem, setUrlParams }: { attestations: Array<any>, userType: string, item: Item, offers: Array<Tag>, needs: Array<Tag>, relations: Array<Item>, updatePermission: boolean, loading: boolean, linkItem: (id: string) => Promise<void>, unlinkItem: (id: string) => Promise<void>, setUrlParams: any }) => {\n\n const addFilterTag = useAddFilterTag();\n const [activeTab, setActiveTab] = useState<number>();\n const navigate = useNavigate();\n\n const [addItemPopupType, setAddItemPopupType] = useState<string>(\"\");\n\n const items = useItems();\n const assetsApi = useAssetApi();\n const getUserProfile = (id: string) => {\n return items.find(i => i.user_created.id === id && i.layer?.itemType.name === userType)\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((id: number) => {\n setActiveTab(id);\n\n let params = new URLSearchParams(window.location.search);\n params.set(\"tab\", `${id}`);\n const newUrl = location.pathname + \"?\" + params.toString();\n window.history.pushState({}, '', newUrl);\n setUrlParams(params);\n }, [location.pathname]);\n\n\n useEffect(() => {\n let params = new URLSearchParams(location.search);\n let urlTab = params.get(\"tab\");\n setActiveTab(urlTab ? Number(urlTab) : 1);\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 type=\"radio\" name=\"my_tabs_2\" 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 != 1 ? \"📝\" : \"📝\\u00A0Info\"}`} checked={activeTab == 1 && true}\n onChange={() => updateActiveTab(1)} />\n <div 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 {item.layer?.itemType.show_start_end &&\n <div className='tw-max-w-xs'><StartEndView item={item}></StartEndView></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 type=\"radio\" name=\"my_tabs_2\" 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 != 2 ? \"❤️\" : \"❤️\\u00A0Reputation\"}`} checked={activeTab == 2 && true}\n onChange={() => updateActiveTab(2)} />\n\n <div 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 <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((a, b) => new Date(b.date_created).getTime() - new Date(a.date_created).getTime())\n .map((a, i) => (\n <tr key={i}>\n <td>\n <div 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 {a.emoji}\n </div>\n </td>\n <td>\n <div className='tw-mr-2'><i>{a.text}</i></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={assetsApi.url + getUserProfile(a.user_created.id)?.image}\n alt=\"Avatar Tailwind CSS Component\"\n />\n </div>\n </div>\n <div>\n <div className=\"font-bold\">{getUserProfile(a.user_created.id)?.name}</div>\n <div className=\"tw-text-xs opacity-50 tw-text-zinc-500\">{timeAgo(a.date_created)}</div>\n </div>\n </div>\n </Link>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n\n </div>\n </>\n }\n {item.layer?.itemType.offers_and_needs &&\n\n <>\n\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" 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))]`} aria-label={`${item.layer?.itemType.icon_as_labels && activeTab != 3 ? \"♻️\" : \"♻️\\u00A0Offers & Needs\"}`} checked={activeTab == 3 && true} onChange={() => updateActiveTab(3)} />\n <div role=\"tabpanel\" 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 <div className='tw-h-full'>\n <div className='tw-grid tw-grid-cols-1'>\n {\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 {\n offers.map(o => <TagView key={o?.id} tag={o} onClick={() => {\n addFilterTag(o)\n }} />)\n }\n </div>\n </div> : \"\"\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 {\n needs.map(n => <TagView key={n?.id} tag={n} onClick={() => addFilterTag(n)} />)\n }\n </div>\n </div> : \"\"\n }\n </div>\n </div>\n </div>\n </>\n\n\n }\n\n {item.layer?.itemType.relations &&\n <>\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab tw-font-bold !tw-ps-2 !tw-pe-2 [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label={`${item.layer?.itemType.icon_as_labels && activeTab != 7 ? \"🔗\" : \"🔗\\u00A0Relations\"}`} checked={activeTab == 7 && true} onChange={() => updateActiveTab(7)} />\n <div role=\"tabpanel\" 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 <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 && relations.map(i =>\n\n\n <div key={i.id} 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' onClick={() => navigate('/item/' + i.id)}>\n <LinkedItemsHeaderView unlinkPermission={updatePermission} item={i} unlinkCallback={unlinkItem} loading={loading} />\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 && <ActionButton collection=\"items\" item={item} existingRelations={relations} triggerItemSelected={linkItem} colorField={item.layer.itemColorField}></ActionButton>}\n\n </div>\n </div>\n </div>\n </>\n }\n </div>\n )\n}\n","import { Link } from \"react-router-dom\";\nimport { useAssetApi } from \"../../AppShell/hooks/useAssets\";\n\nconst ContactInfo = ({ email, telephone, name, avatar, link }: { email: string, telephone: string, name: string, avatar: string, link?: string }) => {\n const assetsApi = useAssetApi();\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\">Du hast Fragen?</h2>\n <div className=\"tw-mt-4 tw-flex tw-items-center\">\n {avatar && (\n <ConditionalLink url={link}>\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 src={assetsApi.url + avatar} alt={name}\n className=\"tw-w-full tw-h-full tw-object-cover\" />\n </div>\n </div>\n </div>\n </ConditionalLink>\n )}\n <div className=\"tw-text-sm tw-flex-grow\">\n <p className=\"tw-font-semibold\">{name}</p>\n {email && (\n <p>\n <a href={`mailto:${email}`}\n className=\"tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"\n className=\"tw-w-4 tw-h-4 tw-mr-1\">\n <path\n 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 {email}\n </a>\n </p>\n )}\n {telephone && (\n <p>\n <a href={`tel:${telephone}`}\n className=\"tw-mt-2 tw-text-green-500 tw-inline-flex tw-items-center tw-whitespace-nowrap\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"\n className=\"tw-w-4 tw-h-4 tw-mr-1\">\n <path\n 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 {telephone}\n </a>\n </p>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nexport default ContactInfo;\n\nconst ConditionalLink = ({ url, children }) => {\n let params = new URLSearchParams(window.location.search);\n\n if (url) {\n return (\n <Link to={url+\"?\"+params}>\n {children}\n </Link>\n );\n }\n return children;\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 email: {\n shareUrl: 'mailto:?subject={title}&body={url}',\n icon: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"white\">\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 ),\n bgColor: '#444444'\n }\n};\n\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 >\n {React.cloneElement(icon, { className: 'tw-w-4 tw-h-4 tw-fill-current' })}\n </a>\n );\n};\n\nexport default SocialShareButton;","import SocialShareButton from './SocialShareButton';\n\nconst SocialShareBar = ({url, title, platforms = ['facebook', 'twitter', 'linkedin', 'xing', 'email']}) => {\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\n key={platform}\n platform={platform}\n url={url}\n title={title}\n />\n ))}\n </div>\n );\n};\n\nexport default SocialShareBar;","import SocialShareBar from './SocialShareBar';\n\n\nconst flags = {\n de: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 5 3\" className=\"tw-w-5 tw-h-3\">\n <rect width=\"5\" height=\"3\" fill=\"#FFCE00\" />\n <rect width=\"5\" height=\"2\" fill=\"#DD0000\" />\n <rect width=\"5\" height=\"1\" fill=\"#000000\" />\n </svg>\n ),\n at: (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 5 3\" className=\"tw-w-5 tw-h-3\">\n <rect width=\"5\" height=\"3\" fill=\"#ED2939\" />\n <rect width=\"5\" height=\"2\" fill=\"#FFFFFF\" />\n <rect width=\"5\" height=\"1\" fill=\"#ED2939\" />\n </svg>\n )\n};\n\nconst statusMapping = {\n 'in_planning': 'in Planung',\n 'paused': 'pausiert',\n 'active': 'aktiv'\n};\n\nconst SubHeader = ({ type, status, url, title }) => (\n <div>\n <div className='tw-float-left tw-mt-2 tw-mb-4 tw-flex tw-items-center'>\n\n {status && <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\"><span className={`tw-w-2 tw-h-2 ${ status==\"in_planning\" && \"tw-bg-blue-700\"} ${ status==\"paused\" && \"tw-bg-orange-400\"} ${ status==\"active\" && \"tw-bg-green-500\"} tw-rounded-full tw-mr-1.5`}></span>{statusMapping[status]}</span>\n </div>}\n {type && <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\">{type}</span>\n </div>}\n </div>\n <div>\n <SocialShareBar url={url} title={title} />\n </div>\n </div>\n);\n\nexport default SubHeader;","import { Item } from \"utopia-ui/dist/types\"\nimport { TextView } from \"../../Map\"\nimport ContactInfo from \"../Subcomponents/ContactInfo\"\nimport ProfileSubHeader from \"../Subcomponents/ProfileSubHeader\"\nimport { useEffect, useState } from \"react\"\nimport { useItems } from \"../../Map/hooks/useItems\"\n\nexport const OnepagerView = ({item, userType}:{item: Item, userType: string}) => {\n\n const [profile_owner, setProfileOwner] = useState<Item>();\n const items = useItems();\n\n\n\n useEffect(() => {\n setProfileOwner(items.find(i => (i.user_created?.id === item.user_created?.id) && i.layer?.itemType.name === userType));\n }, [item, items])\n\n const typeMapping = {\n 'wuerdekompass': 'Regional-Gruppe',\n 'themenkompass': 'Themenkompass-Gruppe',\n 'liebevoll.jetzt': 'liebevoll.jetzt',\n};\n\nlet groupType = item.group_type ? item.group_type : 'default';\nlet groupTypeText = typeMapping[groupType];\n\n return (\n <div className='tw-h-full tw-overflow-y-auto fade'>\n <div className=\"tw-px-6\">\n <ProfileSubHeader\n type={groupTypeText}\n status={item.status}\n url={`https://www.wuerdekompass.org/aktivitaeten/gruppensuche/#/gruppe/${item.slug}`}\n title={item.name}\n />\n </div>\n {item.user_created.first_name && (\n <ContactInfo link={`/item/${profile_owner?.id}`} name={profile_owner?.name ? profile_owner.name : item.user_created.first_name} avatar={profile_owner?.image ? profile_owner.image : item.user_created.avatar} email={item.contact} telephone={item.telephone} />\n )}\n\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\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\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 { Item, Tag } 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 (evt: any, type: string, item, user, setLoading, tags, addTag, addItem, linkItem, resetFilterTags, layers, addItemPopupType, setAddItemPopupType) => {\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 && formItem.text.toLocaleLowerCase().match(hashTagRegex)?.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 });\n const uuid = crypto.randomUUID();\n\n const layer = layers.find(l => l.name.toLocaleLowerCase().replace(\"s\", \"\") == addItemPopupType.toLocaleLowerCase())\n\n let success = false;\n try {\n await layer?.api?.createItem!({ ...formItem, id: uuid, type: 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: type, layer: 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 let new_relations = item.relations || [];\n new_relations?.push({ items_id: item.id, related_items_id: id })\n const updatedItem = { id: item.id, relations: new_relations }\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: new_relations })\n toast.success(\"Item linked\");\n }\n}\n\nexport const unlinkItem = async (id: string, item, updateItem) => {\n let new_relations = item.relations?.filter(r => r.related_items_id !== id)\n const updatedItem = { id: item.id, relations: new_relations }\n\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: new_relations })\n toast.success(\"Item unlinked\");\n }\n\n}\n\nexport const handleDelete = async (event: React.MouseEvent<HTMLElement>, item, setLoading, removeItem, map, navigate) => {\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 let params = new URLSearchParams(window.location.search);\n window.history.pushState({}, \"\", \"/\" + `${params ? `?${params}` : \"\"}`);\n navigate(\"/\");\n}\n\n\nexport const onUpdateItem = async (state, item, tags, addTag, setLoading, navigate, updateItem, addItem, user, params) => {\n let changedItem = {} as Item;\n\n let offer_updates: 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 && offer_updates.push(existingOffer.id)\n if (!existingOffer && !tags.some(t => t.id === o.id)) addTag({ ...o, offer_or_need: true })\n !existingOffer && offer_updates.push({ items_id: item?.id, tags_id: o.id })\n });\n\n let needs_updates: Array<any> = [];\n\n await state.needs?.map(n => {\n const existingNeed = item?.needs?.find(t => t.tags_id === n.id)\n existingNeed && needs_updates.push(existingNeed.id)\n !existingNeed && needs_updates.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 }); \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.groupType && {group_type: state.groupType},\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.markerIcon && { markerIcon: state.markerIcon },\n next_appointment: state.nextAppointment,\n ...state.image.length > 10 && { image: state.image },\n ...state.offers.length > 0 && { offers: offer_updates },\n ...state.needs.length > 0 && { needs: needs_updates }\n };\n\n let offers_state: Array<any> = [];\n let needs_state: Array<any> = [];\n\n state.offers.map(o => {\n offers_state.push({ items_id: item?.id, tags_id: o.id })\n });\n\n state.needs.map(n => {\n needs_state.push({ items_id: item?.id, tags_id: n.id })\n });\n\n changedItem = { ...changedItem, offers: offers_state, needs: needs_state };\n\n setLoading(true);\n\n await state.text.toLocaleLowerCase().match(hashTagRegex)?.map(tag => {\n if (!tags.find((t) => t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({ id: crypto.randomUUID(), name: encodeTag(tag.slice(1).toLocaleLowerCase()), color: randomColor() })\n }\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 && toast.promise(\n item?.layer?.api?.updateItem(changedItem),\n {\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\n }\n else {\n item.new = false;\n item.layer?.api?.createItem && toast.promise(\n item.layer?.api?.createItem(changedItem),\n {\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 && addItem({ ...item, ...changedItem, layer: item.layer, user_created: user, type: item.layer?.itemType }))\n .then(() => {\n setLoading(false);\n navigate(`/${params && \"?\" + params}`)\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';\n\nexport function ProfileView({ userType, attestationApi }: { userType: string , attestationApi?: ItemsApi<any>}) {\n\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\n const [attestations, setAttestations] = useState<Array<any>>([]);\n \n useEffect(() => {\n if (attestationApi) {\n attestationApi.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\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 && 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 })\n item?.layer?.itemNeedsField && 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 })\n item?.relations?.map(r => {\n const item = items.find(i => i.id == r.related_items_id)\n item && setRelations(current => [...current, item])\n })\n\n }, [item, items])\n\n\n useEffect(() => {\n const setMap = async (marker, x) => {\n await map.setView(new LatLng(item?.position?.coordinates[1]!, item?.position?.coordinates[0]! + x / 4), undefined);\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 && clusterRef.hasLayer(marker) && clusterRef?.zoomToShowLayer(marker, () => {\n const bounds = map.getBounds();\n const x = bounds.getEast() - bounds.getWest();\n setMap(marker, x);\n }\n );\n }\n else {\n const parent = getFirstAncestor(item);\n const marker = Object.entries(leafletRefs).find(r => r[1].item == parent)?.[1].marker;\n marker && clusterRef.hasLayer(marker) && clusterRef?.zoomToShowLayer(marker, () => {\n const bounds = map.getBounds();\n const x = bounds.getEast() - bounds.getWest();\n setMap(marker, x);\n }\n );\n }\n }\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 }, [item])\n\n\n useEffect(() => {\n selectPosition && map.closePopup();\n }, [selectPosition])\n\n useEffect(() => {\n setTemplate(item?.layer?.itemType.template || userType);\n }, [userType, item])\n\n const [urlParams, setUrlParams] = useState(new URLSearchParams(location.search));\n\n\n return (\n <>\n {item && \n <MapOverlayPage key={item.id} 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 <div className={`tw-px-6 tw-pt-6`}>\n <HeaderView api={item.layer?.api} item={item} deleteCallback={(e) => handleDelete(e, item, setLoading, removeItem, map, navigate)} editCallback={() => navigate(\"/edit-item/\" + item.id)} setPositionCallback={() => { map.closePopup(); setSelectPosition(item); navigate(\"/\") }} big truncateSubname={false} />\n </div>\n\n {template == \"onepager\" &&\n <OnepagerView item={item} userType={userType}/>\n }\n\n {template == \"simple\" &&\n <SimpleView item={item}/>\n }\n\n {template == \"tabs\" &&\n <TabsView userType={userType} attestations={attestations} setUrlParams={setUrlParams} item={item} loading={loading} offers={offers} needs={needs} relations={relations} updatePermission={updatePermission} linkItem={(id) => linkItem(id, item, updateItem)} unlinkItem={(id) => unlinkItem(id, item, updateItem)}/>\n }\n </>\n\n </MapOverlayPage >\n }\n </>\n )\n}","import { useState } from \"react\"\nimport * as React from \"react\"\n\ninterface ComboBoxProps {\n id?: string;\n options: { value: string, label: string }[];\n value: string;\n onValueChange: (newValue: string) => void;\n}\n\nconst ComboBoxInput = ({ id, options, value, onValueChange }: ComboBoxProps) => {\n\n const [selectedValue, setSelectedValue] = useState(value);\n\n const handleChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const value = e.target.value;\n setSelectedValue(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.value} key={o.value} selected={o.value == value}>{o.label}</option>\n )}\n </select>\n );\n}\n\nexport default ComboBoxInput;","import { useEffect } from \"react\";\nimport { Item, Tag } from \"../../../types\"\nimport { TextAreaInput, TextInput } from \"../../Input\"\nimport ComboBoxInput from \"../../Input/ComboBoxInput\"\n\nexport const OnepagerForm = ({ item, state, setState }: {\n state: {\n color: string;\n id: string;\n groupType: string;\n status: string;\n name: string;\n subname: string;\n text: string;\n contact: string;\n telephone: string;\n nextAppointment: string;\n image: string;\n markerIcon: string;\n offers: Tag[];\n needs: Tag[];\n relations: Item[];\n },\n setState: React.Dispatch<React.SetStateAction<any>>,\n item: Item\n}) => {\n\n useEffect(() => {\n switch (state.groupType) {\n case \"wuerdekompass\":\n setState(prevState => ({\n ...prevState,\n color: item?.layer?.menuColor || \"#1A5FB4\",\n markerIcon: \"group\",\n image: \"59e6a346-d1ee-4767-9e42-fc720fb535c9\"\n }));\n break;\n case \"themenkompass\":\n setState(prevState => ({\n ...prevState,\n color: \"#26A269\",\n markerIcon: \"group\",\n image: \"59e6a346-d1ee-4767-9e42-fc720fb535c9\"\n }));\n break;\n case \"liebevoll.jetzt\":\n setState(prevState => ({\n ...prevState,\n color: \"#E8B620\",\n markerIcon: \"liebevoll.jetzt\",\n image: \"e735b96c-507b-471c-8317-386ece0ca51d\"\n }));\n\n break;\n default:\n break;\n }\n }, [state.groupType])\n\n\n const typeMapping = [\n { value: 'wuerdekompass', label: 'Regional-Gruppe' },\n { value: 'themenkompass', label: 'Themen-Gruppe' },\n { value: 'liebevoll.jetzt', label: 'liebevoll.jetzt' }\n ];\n const statusMapping = [\n { value: 'active', label: 'aktiv' },\n { value: 'in_planning', label: 'in Planung' },\n { value: 'paused', label: 'pausiert' }\n ];\n\n return (\n <div className=\"tw-space-y-6 tw-mt-6\">\n <div className=\"tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6\">\n <div>\n <label htmlFor=\"groupType\" className=\"tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1\">\n Gruppenart:\n </label>\n <ComboBoxInput\n id=\"groupType\"\n options={typeMapping}\n value={state.groupType}\n onValueChange={(v) => setState(prevState => ({\n ...prevState,\n groupType: v\n }))}\n />\n </div>\n <div>\n <label htmlFor=\"status\" className=\"tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1\">\n Gruppenstatus:\n </label>\n <ComboBoxInput\n id=\"status\"\n options={statusMapping}\n value={state.status}\n onValueChange={(v) => setState(prevState => ({\n ...prevState,\n status: v\n }))}\n />\n </div>\n </div>\n\n <div>\n <label htmlFor=\"email\" className=\"tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1\">\n Email-Adresse (Kontakt):\n </label>\n <TextInput\n placeholder=\"Email\"\n defaultValue={state.contact}\n updateFormValue={(v) => setState(prevState => ({\n ...prevState,\n contact: v\n }))}\n />\n </div>\n\n <div>\n <label htmlFor=\"telephone\" className=\"tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1\">\n Telefonnummer (Kontakt):\n </label>\n <TextInput\n placeholder=\"Telefonnummer\"\n defaultValue={state.telephone}\n updateFormValue={(v) => setState(prevState => ({\n ...prevState,\n telephone: v\n }))}\n />\n </div>\n\n <div>\n <label htmlFor=\"nextAppointment\" className=\"tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1\">\n Nächste Termine:\n </label>\n <TextAreaInput\n placeholder=\"Nächste Termine\"\n defaultValue={state.nextAppointment}\n updateFormValue={(v) => setState(prevState => ({\n ...prevState,\n nextAppointment: v\n }))}\n inputStyle=\"tw-h-24\"\n />\n </div>\n\n <div>\n <label htmlFor=\"description\" className=\"tw-block tw-text-sm tw-font-medium tw-text-gray-500 tw-mb-1\">\n Gruppenbeschreibung:\n </label>\n <TextAreaInput\n placeholder=\"Beschreibung\"\n defaultValue={state.text || \"\"}\n updateFormValue={(v) => setState(prevState => ({\n ...prevState,\n text: v\n }))}\n inputStyle=\"tw-h-48\"\n />\n </div>\n </div>\n )\n}\n","import { TextAreaInput } from \"../../Input\";\n\nexport const SimpleForm = ({ state, setState }) => {\n return (\n <TextAreaInput\n placeholder=\"About me ...\"\n defaultValue={state?.text || \"\"}\n updateFormValue={(v) => setState(prevState => ({\n ...prevState,\n text: v\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 = ({ inputProps, suggestions, onSelected, pushFilteredSuggestions, setFocus }: { inputProps: any, suggestions: Array<any>, onSelected: (suggestion) => void, pushFilteredSuggestions?: Array<any>, setFocus?: boolean }) => {\n\n const [filteredSuggestions, setFilteredSuggestions] = React.useState<Array<any>>([]);\n const [heighlightedSuggestion, setHeighlightedSuggestion] = React.useState<number>(0);\n\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\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 ? [] : suggestions.filter(tag =>\n tag.name.toLowerCase().slice(0, inputLength) === inputValue\n );\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\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 && 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 ref={inputRef} {...inputProps} type=\"text\" onChange={(e) => handleChange(e)} tabIndex=\"-1\" onKeyDown={handleKeyDown}/>\n <ul className={`tw-absolute tw-z-[4000] ${filteredSuggestions.length>0 && 'tw-bg-base-100 tw-rounded-xl tw-p-2'}`}>\n {filteredSuggestions.map((suggestion, index) => (\n <li key={index} onClick={() => handleSuggestionClick(suggestion)}><TagView heighlight={index == heighlightedSuggestion} tag={suggestion}></TagView></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\nexport const TagsWidget = ({placeholder, containerStyle, defaultTags, onUpdate}) => {\n\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\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 ((key === 'Enter' || key === ',' ) && trimmedInput.length && !defaultTags.some(tag => tag.name.toLocaleLowerCase() === trimmedInput.toLocaleLowerCase())) {\n e.preventDefault();\n const newTag = tags.find(t => t.name === trimmedInput.toLocaleLowerCase())\n newTag && onUpdate([...currentTags, newTag]);\n !newTag && onUpdate([...currentTags, { id: crypto.randomUUID(), name: encodeTag(trimmedInput), color: randomColor() }]);\n setInput('');\n setPushFilteredSuggestions([]);\n }\n\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\n const onSelected = (tag) => {\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 && onUpdate([...currentTags, { id: crypto.randomUUID(), name: tag.name.toLocaleLowerCase(), color: randomColor() }]);\n setInput('');\n setPushFilteredSuggestions([]);\n }\n }\n\n const inputProps = {\n value: input,\n placeholder: placeholder,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onChange: onChange,\n className: 'tw-bg-transparent tw-w-fit tw-mt-5 tw-h-fit'\n }\n\n return (\n <div onClick={()=> {\n setFocusInput(true);\n setTimeout(()=> {\n setFocusInput(false)\n }, 200)\n }} className={`tw-input tw-input-bordered tw-cursor-text ${containerStyle}`}>\n <div className='tw-flex tw-flex-wrap tw-h-fit'>\n {defaultTags.map((tag) => (\n <div key={tag.name} className='tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mt-3 tw-mr-4' style={{ backgroundColor: tag.color ? tag.color : \"#666\" }}>\n <div className=\"tw-card-actions tw-justify-end\">\n <label className=\"tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600\" onClick={() => (deleteTag(tag))}>✕</label>\n </div><b>{decodeTag(tag.name)}</b>\n </div>\n\n ))}\n <Autocomplete suggestions={tags} pushFilteredSuggestions={pushFilteredSuggestions} setFocus={focusInput} inputProps={inputProps} onSelected={(tag) => onSelected(tag)}/>\n </div>\n </div>\n )\n}","import { 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 = ({ item, state, setState, updatePermission, linkItem, unlinkItem, loading, setUrlParams }) => {\n\n const [activeTab, setActiveTab] = useState<number>(1);\n const navigate = useNavigate();\n const updateItem = useUpdateItem();\n\n const updateActiveTab = useCallback((id: number) => {\n setActiveTab(id);\n\n let 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 }, [location.pathname]);\n\n useEffect(() => {\n let params = new URLSearchParams(location.search);\n let urlTab = params.get(\"tab\");\n setActiveTab(urlTab ? Number(urlTab) : 1);\n }, [location.search]);\n\n return (\n <div role=\"tablist\" className=\"tw-tabs tw-tabs-lifted tw-mt-3\">\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className={`tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]`} aria-label=\"Info\" checked={activeTab == 1 && true} onChange={() => updateActiveTab(1)} />\n <div role=\"tabpanel\" 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 <div className={`tw-flex tw-flex-col tw-h-full ${item.layer.itemType.show_start_end_input && \"tw-pt-4\"}`}>\n {item.layer.itemType.show_start_end_input &&\n <PopupStartEndInput\n item={item}\n showLabels={false}\n updateEndValue={(e) => setState(prevState => ({\n ...prevState,\n end: e\n }))}\n updateStartValue={(s) => setState(prevState => ({\n ...prevState,\n start: s\n }))}></PopupStartEndInput>\n }\n\n <TextAreaInput placeholder=\"about ...\"\n defaultValue={item?.text ? item.text : \"\"}\n updateFormValue={(v) => setState(prevState => ({\n ...prevState,\n text: v\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 <div>\n <TextAreaInput\n placeholder=\"contact info ...\"\n defaultValue={state.contact || \"\"}\n updateFormValue={(c) => setState(prevState => ({\n ...prevState,\n contact: c\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 type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className={`tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]`} aria-label=\"Offers & Needs\" checked={activeTab == 3 && true} onChange={() => updateActiveTab(3)} />\n <div role=\"tabpanel\" 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 <div className='tw-h-full'>\n <div className='tw-w-full tw-h-[calc(50%-0.75em)] tw-mb-4'>\n <TagsWidget defaultTags={state.offers} onUpdate={(v) => setState(prevState => ({\n ...prevState,\n offers: v\n }))} placeholder=\"enter your offers\" 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 </div>\n <div className='tw-w-full tw-h-[calc(50%-1.5em)]'>\n <TagsWidget defaultTags={state.needs} onUpdate={(v) => setState(prevState => ({\n ...prevState,\n needs: v\n }))} placeholder=\"enter your needs\" 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 </div>\n </div>\n </div>\n </>\n }\n {item.layer?.itemType.relations &&\n <>\n <input type=\"radio\" name=\"my_tabs_2\" role=\"tab\" className=\"tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]\" aria-label=\"Relations\" checked={activeTab == 7 && true} onChange={() => updateActiveTab(7)} />\n <div role=\"tabpanel\" 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 <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 && state.relations.map(i =>\n\n\n <div key={i.id} 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' onClick={() => navigate('/item/' + i.id)}>\n <LinkedItemsHeaderView unlinkPermission={updatePermission} item={i} unlinkCallback={(id) => unlinkItem(id, item, updateItem)} loading={loading} />\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 && <ActionButton customStyle=\"!tw-bottom-24\" collection=\"items\" item={item} existingRelations={state.relations} triggerItemSelected={(id) => linkItem(id, item, updateItem)} colorField={item.layer.itemColorField}></ActionButton>}\n\n </div>\n </div>\n </div>\n </>\n }\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 { useAssetApi } from '../../AppShell/hooks/useAssets';\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 assetsApi = useAssetApi();\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(image: HTMLImageElement, maxWidth: number, maxHeight: number): 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(\n crop.width * scaleX,\n crop.height * scaleY\n );\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 }, [crop]);\n\n const resizeBlob = useCallback(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 assetsApi.upload(resizedBlob, \"avatar\");\n setAvatar(asset.id);\n }, [assetsApi, setAvatar]);\n\n return (\n <>\n {!cropping ?\n <label className=\"custom-file-upload\">\n <input type=\"file\" accept=\"image/*\" className=\"tw-file-input tw-w-full tw-max-w-xs\" onChange={onImageChange} />\n <div className='button tw-btn tw-btn-lg tw-btn-circle tw-animate-none'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth=\"1.5\" stroke=\"currentColor\" className=\"tw-w-6 tw-h-6\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n </div>\n {avatar ?\n <div className='tw-h-20 tw-w-20'>\n <img src={assetsApi.url + avatar} className='tw-h-20 tw-w-20 tw-rounded-full' />\n </div>\n :\n <div className='tw-h-20 tw-w-20'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.0\" viewBox=\"0 0 150 150\" className='tw-w-20 tw-h-20 tw-rounded-full' style={{ backgroundColor: \"#eee\" }}>\n <path fill=\"#ccc\" 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 <path fill=\"#ccc\" 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 </svg>\n </div>\n }\n </label>\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 <ReactCrop crop={crop} onChange={(c) => setCrop(c)} aspect={1} >\n <img src={image} ref={imgRef} onLoad={onImageLoad} />\n </ReactCrop>\n <button className={`tw-btn tw-btn-primary`} onClick={() => {\n setCropping(true);\n setCropModalOpen(false);\n renderCrop();\n }}>Select</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\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\n return (\n <div ref={colorPickerRef} className={`picker ${className}`}>\n <div\n className=\"swatch\"\n style={{ backgroundColor: color }}\n onClick={() => toggle(true)}\n />\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\n","import { 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 avatar={state.image} setAvatar={(i) => setState(prevState => ({\n ...prevState,\n image: i\n }))} />\n <ColorPicker color={state.color} onChange={(c) => setState(prevState => ({\n ...prevState,\n color: c\n }))} className={\"-tw-left-6 tw-top-14 -tw-mr-6\"} />\n <div className='tw-grow tw-mr-4'>\n <TextInput placeholder=\"Name\" defaultValue={item?.name ? item.name : \"\"} updateFormValue={(v) => setState(prevState => ({\n ...prevState,\n name: v\n }))} containerStyle='tw-grow tw-input-md' />\n <TextInput placeholder=\"Subtitle\" defaultValue={item?.subname ? item.subname : \"\"} updateFormValue={(v) => setState(prevState => ({\n ...prevState,\n subname: v\n }))} containerStyle='tw-grow tw-input-sm tw-px-4 tw-mt-1' />\n </div>\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';\n\nexport function ProfileForm({ userType }: { userType: string }) {\n\n const [state, setState] = useState({\n color: \"\",\n id: \"\",\n groupType: \"wuerdekompass\",\n status: \"active\",\n name: \"\",\n subname: \"\",\n text: \"\",\n contact: \"\",\n telephone: \"\",\n nextAppointment: \"\",\n image: \"\",\n markerIcon: \"\",\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\n const [urlParams, setUrlParams] = useState(new URLSearchParams(location.search));\n\n\n useEffect(() => {\n item && hasUserPermission(\"items\", \"update\", item) && setUpdatePermission(true);\n }, [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 const layer = layers.find(l => l.itemType.name == userType)\n\n !item && setItem({ id: crypto.randomUUID(), name: user ? user.first_name : \"\", text: \"\", layer: layer, new: true })\n\n }, [items]) \n\n useEffect(() => {\n const newColor = 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 groupType: item?.group_type ?? \"wuerdekompass\",\n status: item?.status ?? \"active\",\n name: item?.name ?? \"\",\n subname: item?.subname ?? \"\",\n text: item?.text ?? \"\",\n contact: item?.contact ?? \"\",\n telephone: item?.telephone ?? \"\",\n nextAppointment: item?.next_appointment ?? \"\",\n image: item?.image ?? \"\",\n markerIcon: item?.marker_icon ?? \"\",\n offers: offers,\n needs: needs,\n relations: relations,\n start: item?.start ?? \"\",\n end: item?.end ?? \"\"\n });\n }, [item, tags, items]);\n\n const [template, setTemplate] = useState<string>(\"\")\n\n useEffect(() => {\n setTemplate(item.layer?.itemType.template || userType);\n }, [userType, item])\n\n return (\n <>\n <MapOverlayPage backdrop 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\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\" &&\n <SimpleForm state={state} setState={setState}></SimpleForm>\n }\n\n {template == \"tabs\" &&\n <TabsForm loading={loading} item={item} state={state} setState={setState} updatePermission={updatePermission} linkItem={(id) => linkItem(id, item, updateItem)} unlinkItem={(id) => unlinkItem(id, item, updateItem)} setUrlParams={setUrlParams}></TabsForm>\n }\n\n <div className=\"tw-mt-4 tw-mb-4\">\n <button className={loading ? \" tw-loading tw-btn tw-float-right\" : \"tw-btn tw-float-right\"} onClick={() => onUpdateItem(state, item, tags, addTag, setLoading, navigate, updateItem, addItem, user, urlParams)} style={true ? { 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)}`, color: \"#fff\" } : { color: \"#fff\" }}>Update</button>\n </div>\n\n </div>\n\n </MapOverlayPage>\n </>\n )\n}","import * as React from \"react\"\nimport { useEffect } from \"react\"\n\nexport function Modal({children, showOnStartup}:{children : React.ReactNode, showOnStartup?: boolean}) {\n\n useEffect(() => {\n if(showOnStartup)\n window.my_modal_3.showModal()\n }, [])\n\n\n return (\n <>\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\">✕</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\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\n const questsOpen = useQuestsOpen();\n const setQuestsOpen = useSetQuestOpen();\n const { isAuthenticated, user } = useAuth();\n\n useEffect(() => {\n setQuestsOpen(false);\n }, [])\n\n const [profile, setProfie] = useState<Item>()\n \n const items = useItems();\n\n useEffect(() => {\n setProfie(items.find(i => i.user_created?.id === user?.id && i.layer?.itemType.name == \"user\" && i.user_created?.id != null))\n }, [items, user])\n \n\n return (\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 className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-1 tw-top-1\" onClick={() => setQuestsOpen(false)}>✕</label>\n </div>\n <h2 className=\"tw-card-title tw-m-auto \">\n Level 1\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" strokeWidth={1.5} stroke=\"#aaa\" className=\"tw-w-5 tw-h-5 tw-cursor-pointer\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" 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 </svg>\n\n </h2>\n <ul className='tw-flex-row'>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={isAuthenticated ? isAuthenticated : false} /><span className='tw-text-sm tw-label-text tw-mx-2'>Sign Up</span></label></li>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={profile?.text ? true : false} /><span className='tw-text-sm tw-label-text tw-mx-2'>Fill Profile</span></label></li>\n <li><label className=\"tw-label tw-justify-normal tw-pt-1 tw-pb-0\"><input type=\"checkbox\" readOnly={true} className=\"tw-checkbox tw-checkbox-xs tw-checkbox-success\" checked={profile?.image ? true : false} /><span className='tw-text-sm tw-label-text tw-mx-2'>Upload Avatar</span></label></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}\n"],"names":["_jsx","_jsxs","_Fragment","L","Router","LeafletPopup","ChevronRightIcon","ProfileSubHeader"],"mappings":"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"}