utopia-ui 3.0.0-alpha.14 → 3.0.0-alpha.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1416,7 +1416,7 @@ var Layer = function (props) {
1416
1416
  },
1417
1417
  });
1418
1418
  var openPopup = function () {
1419
- var _a, _b, _c;
1419
+ var _a, _b, _c, _d, _e, _f;
1420
1420
  console.log(window.location);
1421
1421
  if (window.location.pathname.split("/").length <= 2) {
1422
1422
  console.log("close");
@@ -1431,6 +1431,10 @@ var Layer = function (props) {
1431
1431
  marker_1 !== null && ((_c = (_b = props.clusterRef) === null || _b === void 0 ? void 0 : _b.current) === null || _c === void 0 ? void 0 : _c.zoomToShowLayer(marker_1, function () {
1432
1432
  marker_1.openPopup();
1433
1433
  }));
1434
+ var item = (_d = leafletRefs[id]) === null || _d === void 0 ? void 0 : _d.item;
1435
+ document.title = document.title.split("-")[0] + " - " + item.name;
1436
+ (_e = document.querySelector('meta[property="og:title"]')) === null || _e === void 0 ? void 0 : _e.setAttribute("content", item.name);
1437
+ (_f = document.querySelector('meta[property="og:description"]')) === null || _f === void 0 ? void 0 : _f.setAttribute("content", item.text);
1434
1438
  }
1435
1439
  }
1436
1440
  }
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/Utils/DynamicHeroIcon.tsx","../src/Components/Map/hooks/useLayers.tsx","../src/Components/Auth/useAuth.tsx","../src/Components/Typography/ErrorText.tsx","../src/Components/Input/TextInput.tsx","../src/Components/Auth/LoginPage.tsx","../src/Components/Auth/SignupPage.tsx","../src/Components/Map/hooks/usePermissions.tsx","../src/Components/Map/Subcomponents/AddButton.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Utils/HashTagRegex.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Components/Map/hooks/useFilter.tsx","../src/Components/Map/hooks/useWindowDimension.tsx","../src/Components/Map/Subcomponents/FilterControl.tsx","../src/Components/Map/hooks/useLeafletRefs.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/MarkerIconFactory.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Utils/ReplaceURLs.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx","../src/Components/Map/Subcomponents/ItemViewPopup.tsx","../src/types.ts","../src/Components/Input/TextAreaInput.tsx","../src/Utils/RandomColor.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/StartEndView.tsx","../src/Components/AppShell/DialogModal.tsx","../src/Components/AppShell/NavBar.tsx","../src/Components/AppShell/AppShell.tsx","../src/Components/AppShell/SidebarSubmenu.tsx","../src/Components/AppShell/SideBar.tsx","../src/Components/AppShell/Content.tsx","../src/Components/Typography/Subtitle.tsx","../src/Components/Templates/TitleCard.tsx","../src/Components/Profile/Settings.tsx","../src/Components/Gaming/Modal.tsx","../src/Components/Gaming/Quests.tsx","../src/Components/Templates/CardPage.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","// DynamicHeroIcon.tsx\n// Simple Dynamic HeroIcons Component for React (typescript / tsx)\n// by: Mike Summerfeldt (IT-MikeS - https://github.com/IT-MikeS)\n\nimport { FC } from 'react'\nimport * as HIcons from '@heroicons/react/20/solid'\nimport * as React from 'react'\n\nconst DynamicHeroIcon: FC<{icon: string}> = (props) => {\n const {...icons} = HIcons\n \n const TheIcon: JSX.Element = icons[props.icon]\n\n if(!TheIcon) {\n console.log(`Icon ${props.icon} doesn't exist`);\n } \n\n return (\n <>\n {/* @ts-ignore */}\n <TheIcon className=\"tw-h-6 tw-w-6 tw-text-white\" aria-hidden=\"true\" /> \n </>\n )\n}\n\nexport default DynamicHeroIcon","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}\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});\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 setLoading(false);\n return res as any;\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n\n return (\n <AuthContext.Provider\n value={{ isAuthenticated, user, login, register, loading, logout, updateUser, token }}\n >\n {children}\n </AuthContext.Provider>\n );\n};\nexport const useAuth = () => useContext(AuthContext);","import * as React from \"react\"\n\nfunction ErrorText({styleClass, children}){\n return(\n <p className={`tw-text-center tw-text-error ${styleClass}`}>{children}</p>\n )\n}\n\nexport default ErrorText","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 updateFormValue?: (value: string ) => void;\n}\n\n\nexport function TextInput({labelTitle, labelStyle, type, dataField, containerStyle, inputStyle, defaultValue, placeholder, 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 || \"\"} 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","import {useState} from 'react'\nimport {Link} from 'react-router-dom'\nimport ErrorText from '../Typography/ErrorText'\nimport {TextInput} from '../Input/TextInput'\nimport * as React from 'react'\n\nexport function LoginPage(){\n\n const INITIAL_LOGIN_OBJ = {\n password : \"\",\n emailId : \"\"\n }\n\n const [loading, setLoading] = useState(false)\n const [errorMessage, setErrorMessage] = useState(\"\")\n const [loginObj, setLoginObj] = useState(INITIAL_LOGIN_OBJ)\n\n const submitForm = (e) =>{\n e.preventDefault()\n setErrorMessage(\"\")\n\n if(loginObj.emailId.trim() === \"\")return setErrorMessage(\"Email Id is required! (use any value)\")\n if(loginObj.password.trim() === \"\")return setErrorMessage(\"Password is required! (use any value)\")\n else{\n setLoading(true)\n // Call API to check user credentials and save token in localstorage\n localStorage.setItem(\"token\", \"DumyTokenHere\")\n setLoading(false)\n window.location.href = '/app/welcome'\n }\n }\n\n const updateFormValue = (val: string) => {\n console.log(val)\n }\n\n return(\n <div className=\"tw-flex-1 tw-bg-base-200 tw-flex tw-items-center\">\n <div className=\"tw-card tw-mx-auto tw-w-full tw-max-w-md tw-shadow-xl\">\n <div className=\"tw-grid md:tw-grid-cols-1 tw-grid-cols-1 tw-bg-base-100 tw-rounded-xl\">\n <div className='tw-py-10 tw-px-10'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Login</h2>\n <form onSubmit={(e) => submitForm(e)}>\n\n <div className=\"tw-mb-4\">\n\n <TextInput type=\"email\" defaultValue={loginObj.emailId} containerStyle=\"tw-mt-4\" labelTitle=\"E-Mail\" updateFormValue={(v) => updateFormValue(v)}/>\n\n <TextInput defaultValue={loginObj.password} type=\"password\" containerStyle=\"tw-mt-4\" labelTitle=\"Password\" updateFormValue={(v) => updateFormValue(v)}/>\n\n </div>\n\n <div className='tw-text-right tw-text-primary'><Link to=\"/forgot-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\n <ErrorText styleClass=\"mt-8\">{errorMessage}</ErrorText>\n <button type=\"submit\" className={\"tw-btn tw-mt-2 tw-w-full tw-btn-primary\" + (loading ? \" tw-loading\" : \"\")}>Login</button>\n\n <div className='tw-text-center tw-mt-4'>Don't have an account yet? <Link to=\"/signup\"><span className=\" tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Sign Up</span></Link></div>\n </form>\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import { useState } from 'react'\nimport { Link } from 'react-router-dom'\nimport ErrorText from '../Typography/ErrorText'\nimport {TextInput} from '../Input/TextInput'\nimport * as React from 'react'\n\nexport function SignupPage() {\n\n const INITIAL_REGISTER_OBJ = {\n name : \"\",\n password : \"\",\n emailId : \"\"\n }\n\n const [loading, setLoading] = useState(false)\n const [errorMessage, setErrorMessage] = useState(\"\")\n const [registerObj, setRegisterObj] = useState(INITIAL_REGISTER_OBJ)\n\n const submitForm = (e) =>{\n e.preventDefault()\n setErrorMessage(\"\")\n\n if(registerObj.name.trim() === \"\")return setErrorMessage(\"Name is required! (use any value)\")\n if(registerObj.emailId.trim() === \"\")return setErrorMessage(\"Email Id is required! (use any value)\")\n if(registerObj.password.trim() === \"\")return setErrorMessage(\"Password is required! (use any value)\")\n else{\n setLoading(true)\n // Call API to check user credentials and save token in localstorage\n localStorage.setItem(\"token\", \"DumyTokenHere\")\n setLoading(false)\n window.location.href = '/app/welcome'\n }\n }\n\n const updateFormValue = (val: string) => {\n console.log(val)\n }\n\n return (\n <div className=\"tw-flex-1 tw-bg-base-200 tw-flex tw-items-center\">\n <div className=\"tw-card tw-mx-auto tw-w-full tw-max-w-md tw-shadow-xl\">\n <div className=\"tw-grid md:tw-grid-cols-1 tw-grid-cols-1 tw-bg-base-100 tw-rounded-xl\">\n <div className='tw-py-10 tw-px-10'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Sign Up</h2>\n <form onSubmit={(e) => submitForm(e)}>\n\n <div className=\"mb-4\">\n <TextInput defaultValue={registerObj.name} containerStyle=\"tw-mt-4\" labelTitle=\"Name\" updateFormValue={updateFormValue} />\n <TextInput defaultValue={registerObj.emailId} containerStyle=\"tw-mt-4\" labelTitle=\"E-Mail\" updateFormValue={updateFormValue} />\n <TextInput defaultValue={registerObj.password} type=\"password\" containerStyle=\"tw-mt-4\" labelTitle=\"Password\" updateFormValue={updateFormValue} />\n </div>\n\n <ErrorText styleClass=\"tw-mt-8\">{errorMessage}</ErrorText>\n <button type=\"submit\" className={\"tw-btn tw-mt-2 tw-w-full tw-btn-primary\" + (loading ? \" tw-loading\" : \"\")}>Register</button>\n\n <div className='tw-text-center tw-mt-4'>Already have an account? <Link to=\"/login\"><span className=\" tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Login</span></Link></div>\n </form>\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { 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) => 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((collectionName: string, action: PermissionAction) => { \n if (permissions.length == 0) return true;\n else if (user && user.role == adminRole) return true;\n else return permissions.some(p => p.action === action && p.collection === collectionName && p.role == user?.role)\n }, [permissions, user]);\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 DynamicHeroIcon from '../../../Utils/DynamicHeroIcon'\nimport { useLayers } from '../hooks/useLayers'\nimport { useHasUserPermission } from '../hooks/usePermissions';\n\n\nexport default function AddButton({ setSelectNewItemPosition }: { setSelectNewItemPosition: React.Dispatch<React.SetStateAction<any>> }) {\n\n const layers = useLayers();\n const hasUserPermission = useHasUserPermission();\n\n\n return (\n <div className=\"tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-500 tw-absolute tw-right-5 tw-bottom-5\" >\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={() => { setSelectNewItemPosition(layer) }}>\n <DynamicHeroIcon icon={layer.menuIcon} />\n </button>\n </div>\n </a>\n </li>\n )\n\n ))}\n </ul>\n\n </div>\n )\n}\n","import { useCallback, useReducer, createContext, useContext, useEffect } 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});\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} {\n\n const addLayer = useAddLayer();\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 layer.api?.createItem && 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 }\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 };\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}; ","export const hashTagRegex = /(#+[a-zA-Z0-9A-Za-zÀ-ÖØ-öø-ʸ(_)]{1,})/g;","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { Item, ItemsApi, Tag } from \"../../../types\";\nimport { hashTagRegex } from \"../../../Utils/HashTagRegex\";\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 removeTag: () => { },\n setTagApi: () => { },\n setTagData: () => { },\n getItemTags: () => []\n});\n\nfunction useTagsManager(initialTags: Tag[]): {\n tags: Tag[];\n addTag: (tag: Tag) => void;\n removeTag: (id: string) => void;\n setTagApi: (api: ItemsApi<Tag>) => void;\n setTagData: (data: Tag[]) => void;\n getItemTags: (item: Item) => Tag[];\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.id.toLocaleLowerCase() === action.tag.id.toLocaleLowerCase() ? true : false\n );\n if (!exist) return [\n ...state,\n {...action.tag, id: action.tag.id.toLocaleLowerCase()}\n ];\n else return state;\n\n case \"REMOVE\":\n return state.filter(({ id }) => id !== action.id.toLocaleLowerCase());\n default:\n throw new Error();\n }\n }, initialTags);\n\n const [api, setApi] = React.useState<ItemsApi<Tag>>({} as ItemsApi<Tag>)\n\n const setTagApi = useCallback(async (api: ItemsApi<Tag>) => {\n setApi(api);\n const result = await api.getItems();\n if (result) {\n result.map(tag => {\n tag.id = tag.id.toLocaleLowerCase();\n dispatch({ type: \"ADD\", tag })\n })\n }\n }, [])\n\n const setTagData = useCallback((data: Tag[]) => {\n data.map(tag => {\n tag.id = tag.id.toLocaleLowerCase();\n dispatch({ type: \"ADD\", tag })\n })\n }, []);\n\n const addTag = (tag: Tag) => {\n dispatch({\n type: \"ADD\",\n tag,\n });\n\n if (!tags.some((t) => t.id.toLocaleLowerCase() === tag.id.toLocaleLowerCase())) {\n api?.createItem && api.createItem(tag);\n }\n };\n\n const removeTag = useCallback((id: string) => {\n dispatch({\n type: \"REMOVE\",\n id,\n });\n api?.deleteItem && api.deleteItem(id);\n }, []);\n\n const getItemTags = useCallback((item: Item) => { \n const itemTagStrings = item.text.toLocaleLowerCase().match(hashTagRegex);\n const itemTags: Tag[] = [];\n itemTagStrings?.map(tag => {\n if (tags.find(t => t.id === tag.slice(1))) {\n itemTags.push(tags.find(t => t.id === tag.slice(1))!)\n }\n })\n return itemTags \n }, [tags]);\n\n\n return { tags, addTag, removeTag, setTagApi, setTagData, getItemTags };\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 useRemoveTag = (): UseTagManagerResult[\"removeTag\"] => {\n const { removeTag } = useContext(TagContext);\n return removeTag;\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}","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport {Tag} from \"../../../types\";\n\ntype ActionType =\n | { type: \"ADD_TAG\"; tag: Tag }\n | { type: \"REMOVE_TAG\"; id: string }\n | { type: \"RESET_TAGS\"};\n\ntype UseFilterManagerResult = ReturnType<typeof useFilterManager>;\n\nconst FilterContext = createContext<UseFilterManagerResult>({\n filterTags: [],\n searchPhrase: \"\",\n addFilterTag: () => { },\n removeFilterTag: () => { },\n resetFilterTags: () => { },\n setSearchPhrase: () => { },\n});\n\nfunction useFilterManager(initialTags: Tag[]): {\n filterTags: Tag[];\n searchPhrase: string;\n addFilterTag: (tag: Tag) => void;\n removeFilterTag: (id: string) => void;\n resetFilterTags: () => void;\n setSearchPhrase: (phrase: string) => void;\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(({ id }) => id !== action.id);\n case \"RESET_TAGS\": \n return initialTags;\n default:\n throw new Error();\n }\n }, initialTags);\n\n const [searchPhrase, searchPhraseSet] = React.useState<string>(\"\");\n\n const addFilterTag = (tag: Tag) => {\n dispatchTags({\n type: \"ADD_TAG\",\n tag,\n });\n\n };\n\n const removeFilterTag = useCallback((id: string) => {\n dispatchTags({\n type: \"REMOVE_TAG\",\n id,\n });\n }, []);\n\n const resetFilterTags = useCallback(() => {\n dispatchTags({\n type: \"RESET_TAGS\",\n });\n }, []);\n\n const setSearchPhrase = useCallback((phrase:string) => {\n searchPhraseSet(phrase)\n }, []);\n\n return { filterTags, addFilterTag, removeFilterTag, resetFilterTags, setSearchPhrase, searchPhrase };\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};","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 * as React from 'react'\nimport { useFilterTags, useRemoveFilterTag, useSetSearchPhrase } from '../hooks/useFilter'\nimport useWindowDimensions from '../hooks/useWindowDimension';\n\n\n\n\n\n\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport const FilterControl = () => {\n\n const windowDimensions = useWindowDimensions();\n /** \n const [popupOpen, setPopupOpen] = useState<boolean>(false);\n \n useMapEvents({\n popupopen: (e) => {\n console.log(e);\n \n setPopupOpen(true);\n },\n popupclose: () => {\n setPopupOpen(false);\n }\n })\n */\n const filterTags = useFilterTags();\n const removeFilterTag = useRemoveFilterTag();\n const setSearchPhrase = useSetSearchPhrase();\n return (<>\n {!(\n //popupOpen &&\n windowDimensions.height < 500) &&\n <div className='tw-flex tw-flex-col tw-absolute tw-top-4 tw-left-4 tw-z-[699] tw-w-[calc(100vw-2rem)] tw-max-w-sm'>\n <input type=\"text\" placeholder=\"search ...\" className=\"tw-input tw-input-bordered tw-w-full tw-shadow-xl tw-rounded-2xl\" onChange={(e) => setSearchPhrase(e.target.value)} />\n <div className='tw-flex tw-flex-wrap tw-mt-4'>\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.id))}>✕</label>\n </div><b>#{capitalizeFirstLetter(tag.id)}</b>\n </div>\n )\n }\n\n\n </div>\n </div>\n }\n </>\n\n )\n}\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 { 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 { useState } from \"react\";\nimport { ItemFormPopupProps } from \"./Subcomponents/ItemFormPopup\";\nimport { ItemsProvider } from \"./hooks/useItems\";\nimport { TagsProvider } from \"./hooks/useTags\";\nimport { LayersProvider } from \"./hooks/useLayers\";\nimport { FilterProvider } from \"./hooks/useFilter\";\nimport { FilterControl } from \"./Subcomponents/FilterControl\";\nimport { PermissionsProvider } from \"./hooks/usePermissions\";\nimport { LeafletRefsProvider } from \"./hooks/useLeafletRefs\";\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 = new LatLng(50.6, 9.5),\n zoom = 10,\n children }\n : UtopiaMapProps) {\n\n let meta = document.getElementsByTagName('meta')\n const [metaTags, setMetaTags] = useState<HTMLCollectionOf<HTMLMetaElement>>(meta);\n\n function MapEventListener(props: MapEventListenerProps) {\n useMapEvents({\n click: (e) => {\n window.history.pushState({}, \"\", \"/\");\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 meta = metaTags;\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 resize: () => {\n console.log(\"resize\");\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\n return (\n <LayersProvider initialLayers={[]}>\n <TagsProvider initialTags={[]}>\n <PermissionsProvider initialPermissions={[]}>\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={center} zoom={zoom} zoomControl={false}>\n <FilterControl></FilterControl>\n <TileLayer\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 setSelectNewItemPosition={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 </PermissionsProvider>\n </TagsProvider>\n </LayersProvider>\n );\n}\n\nexport { UtopiaMap };","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 default:\n return \"\";\n } \n}\n\nconst MarkerIconFactory = (shape:string, color1:string, color2:string, icon:string) =>\n{\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","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\";\n\n\n\nexport function HeaderView({ item, setItemFormPopup }: {\n item: Item,\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}) {\n\n const [loading, setLoading] = React.useState<boolean>(false);\n const removeItem = useRemoveItem();\n\n const map = useMap();\n const hasUserPermission = useHasUserPermission();\n\n\n const removeItemFromMap = async (event: React.MouseEvent<HTMLElement>) => {\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\n event.stopPropagation();\n }\n\n const openEditPopup = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n map.closePopup();\n if (setItemFormPopup)\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 <div className='tw-grid tw-grid-cols-6 tw-pb-2'>\n <div className='tw-col-span-5'>\n <b className=\"tw-text-xl tw-font-bold\">{item.name}</b>\n </div>\n <div className='tw-col-span-1'>\n {item.layer?.api &&\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\">\n {item.layer.api.updateItem && hasUserPermission(item.layer.api?.collectionName!,\"update\") && <li>\n <a className=\"!tw-text-base-content\" onClick={openEditPopup}>\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\") && <li>\n <a className=' !tw-text-error' onClick={removeItemFromMap}>\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 )\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 { useAddTag, useTags } from '../../hooks/useTags';\nimport reactStringReplace from 'react-string-replace';\nimport { useAddFilterTag } from '../../hooks/useFilter';\nimport { hashTagRegex } from '../../../../Utils/HashTagRegex';\nimport { fixUrls, mailRegex } from '../../../../Utils/ReplaceURLs';\nimport { useMap } from 'react-leaflet';\nimport { randomColor } from '../../../../Utils/RandomColor';\nimport { useEffect, useRef } from 'react';\n\nexport const TextView = ({ item }: { item?: Item }) => {\n const tags = useTags();\n const addTag = useAddTag();\n const addFilterTag = useAddFilterTag();\n\n let replacedText;\n\n\n\n\n if (item && item.text) replacedText = fixUrls(item.text);\n\n replacedText = reactStringReplace(replacedText, /(https?:\\/\\/\\S+)/g, (url, i) => {\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 (\n <a key={i.toString+item!.id+url} href={url} target=\"_blank\" rel=\"noopener noreferrer\">{shortUrl}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, mailRegex, (url, i) => {\n return (\n <a key={i.toString+item!.id+url} href={`mailto:${url}`} target=\"_blank\" rel=\"noopener noreferrer\">{url}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, hashTagRegex, (match, i) => {\n\n const tag = tags.find(t => t.id.toLowerCase() == match.slice(1).toLowerCase())\n return (\n <a style={{ color: tag ? tag.color : '#aaa' , fontWeight: 'bold', cursor: 'pointer' }} key={tag ? tag.id+item!.id+i : i} onClick={() => {\n addFilterTag(tag!);\n // map.fitBounds(items)\n // map.closePopup();\n }}>{match}</a>\n )\n })\n\n return (\n <p style={{ whiteSpace: \"pre-wrap\" }} className=\"!tw-m-0 !tw-mb-2\">\n {replacedText}\n </p>\n )\n\n\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'\n\n\nexport interface ItemViewPopupProps {\n item: Item,\n children?: React.ReactNode;\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\nexport const ItemViewPopup = React.forwardRef((props: ItemViewPopupProps, ref: any) => {\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-max-h-72'>\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 </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?: LatLng,\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: string,\n menuColor: string,\n menuText: string,\n markerIcon: string,\n markerShape: string,\n markerDefaultColor: string,\n api?: ItemsApi<any>,\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?: Tag[];\n layer?: LayerProps;\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}\n\nexport interface ItemsApi<T> {\n getItems(): Promise<any>, \n createItem?(item : T): Promise<any>,\n updateItem?(item : T): Promise<any>,\n deleteItem?(id : number | string): Promise<any>,\n collectionName?: 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}\n\nexport type UserItem = {\n id?: string;\n avatar?: string;\n role?: string;\n first_name: string;\n description: string;\n email: string;\n password?: string;\n}\n\nexport type Permission = {\n id?: string;\n role: string;\n collection: string;\n action: PermissionAction\n}\n\n\nexport type PermissionAction = \"create\"|\"read\"|\"update\"|\"delete\";\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.id, value: tag.id, color: tag.color })\n })\n\n var tribute = new Tribute({\n containerClass: 'tw-z-500 tw-bg-white tw-p-2 tw-rounded-lg tw-shadow',\n selectClass: 'tw-font-bold',\n trigger: \"#\",\n values: values,\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","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 * as React from 'react'\nimport { LatLng } from 'leaflet'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { useEffect, useRef, useState } from 'react'\nimport { useAddItem, 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'\n\nexport interface ItemFormPopupProps {\n position: LatLng,\n layer: LayerProps,\n item?: Item,\n children?: React.ReactNode,\n setItemFormPopup: React.Dispatch<React.SetStateAction<any>>\n}\n\nexport function ItemFormPopup(props: ItemFormPopupProps) {\n\n const [spinner, setSpinner] = useState(false);\n\n const formRef = useRef<HTMLFormElement>(null);\n\n const map = useMap();\n\n const addItem = useAddItem();\n const updateItem = useUpdateItem();\n\n const tags = useTags(); \n const addTag = useAddTag();\n\n const resetFilterTags = useResetFilterTags();\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.toLocaleLowerCase().match(hashTagRegex)?.map(tag=> {\n if (!tags.find((t) => t.id.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({id: tag.slice(1).toLocaleLowerCase(), 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\n let success = false;\n try {\n await props.layer.api?.createItem!({...formItem, id: crypto.randomUUID()});\n success = true;\n } catch (error) {\n toast.error(error.toString());\n }\n if(success) {\n addItem({...formItem, id: crypto.randomUUID(), layer: props.layer});\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} 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\">New {props.layer.name}</b></div>\n }\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={props.item ? props.item.name : \"\"} inputStyle='' />\n\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, key: props.position.toString() }) : \"\"\n )\n\n :\n <>\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 } from '../../types'\nimport MarkerIconFactory from '../../Utils/MarkerIconFactory'\nimport { ItemViewPopup } from './Subcomponents/ItemViewPopup'\nimport { useItems, useSetItemsApi, useSetItemsData } from './hooks/useItems'\nimport { useEffect, useState } from 'react'\nimport { ItemFormPopupProps, ItemFormPopup } from './Subcomponents/ItemFormPopup'\nimport { useFilterTags, useSearchPhrase } from './hooks/useFilter'\nimport { useGetItemTags } from './hooks/useTags'\nimport { useAddMarker, useAddPopup, useLeafletRefs } from './hooks/useLeafletRefs'\nimport { Popup } from 'leaflet'\nimport { useLocation } from 'react-router-dom';\n\nexport const Layer = (props: LayerProps) => {\n\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null);\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 searchPhrase = useSearchPhrase();\n\n const map = useMap();\n\n\n useEffect(() => {\n\n props.data && setItemsData(props);\n props.api && setItemsApi(props);\n }, [props.data, props.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 == props.name && window.location.pathname.split(\"/\")[2] != item.id) {\n window.history.pushState({}, \"\", `/${props.name}/${item.id}`)\n document.title = document.title.split(\"-\")[0] + \" - \" + item.name;\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 const openPopup = () => {\n console.log(window.location);\n\n\n if (window.location.pathname.split(\"/\").length <= 2) {\n console.log(\"close\");\n\n map.closePopup();\n }\n else {\n if (window.location.pathname.split(\"/\")[1] == props.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 && props.clusterRef?.current?.zoomToShowLayer(marker, () => {\n marker.openPopup();\n });\n }\n }\n }\n }\n\n }\n\n useEffect(() => {\n openPopup();\n }, [leafletRefs, location])\n\n\n return (\n <>\n {items &&\n items.\n filter(item => item.layer?.name === props.name)?.\n filter(item =>\n filterTags.length == 0 ? item : filterTags.every(tag => getItemTags(item).some(filterTag => filterTag.id === tag.id)))?.\n filter(item => {\n return searchPhrase === ''\n ? item :\n item.name.toLowerCase().includes(searchPhrase.toLowerCase()) || item.text.toLowerCase().includes(searchPhrase.toLowerCase())\n }).\n map((item: Item) => {\n const tags = getItemTags(item);\n\n let color1 = \"#666\";\n let color2 = \"RGBA(35, 31, 32, 0.2)\";\n if (tags && tags[0]) {\n color1 = tags[0].color;\n }\n if (tags && tags[1]) {\n color2 = tags[1].color;\n }\n return (\n <Marker ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addMarker(item, r);\n }} icon={MarkerIconFactory(props.markerShape, color1, color2, props.markerIcon)} key={item.id} position={[item.position.coordinates[1], item.position.coordinates[0]]}>\n {\n (props.children && React.Children.toArray(props.children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemView\") ?\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemView\" ?\n <ItemViewPopup ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addPopup(item, r as Popup);\n }} key={item.id + item.name} item={item} setItemFormPopup={props.setItemFormPopup} >{child}</ItemViewPopup>\n : \"\"\n )\n :\n <>\n <ItemViewPopup key={item.id + item.name} ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addPopup(item, r as Popup);\n }} item={item} setItemFormPopup={props.setItemFormPopup} />\n </>)\n }\n <Tooltip offset={[0, -38]} direction='top'>{item.name}</Tooltip>\n </Marker>\n );\n })\n }\n {//{props.children}}\n }\n {props.itemFormPopup && props.itemFormPopup.layer!.name == props.name &&\n (props.children && React.Children.toArray(props.children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemForm\") ?\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemForm\" ?\n <ItemFormPopup key={props.setItemFormPopup?.name} position={props.itemFormPopup!.position} layer={props.itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={props.itemFormPopup!.item} >{child}</ItemFormPopup>\n : \"\"\n )\n :\n <>\n <ItemFormPopup position={props.itemFormPopup!.position} layer={props.itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={props.itemFormPopup!.item} />\n </>)\n }\n </>\n )\n}\n","import * as React from 'react'\nimport { useEffect } from 'react';\nimport { ItemsApi, Tag } from '../../types';\nimport { useAddTag, useSetTagData, useSetTagApi } from './hooks/useTags'\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 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'\n\n\nexport const ItemForm = ({ 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, 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, test: string }>(child) ?\n React.cloneElement(child, { item: item, test: \"test\" }) : \"\"\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) : \"\"}></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) : \"\"}></TextInput>\n </div>\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\">\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 { 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};\n\nconst DialogModal = ({\n title,\n isOpened,\n onClose,\n children,\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'\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 <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 { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { 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\";\nimport DialogModal from \"./DialogModal\";\n\n\nexport default function NavBar({ appName}: { appName: string }) {\n\n\n const [signupOpen, setSignupOpen] = useState(false);\n const [loginOpen, setLoginOpen] = useState(false);\n\n\n const [email, setEmail] = useState<string>(\"\");\n const [userName, setUserName] = useState<string>(\"\");\n const [password, setPassword] = useState<string>(\"\");\n\n\n const { isAuthenticated, user, login, register, loading, logout, token } = 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 setSignupOpen(false);\n }\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 setLoginOpen(false);\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 return (\n <>\n <div className=\"tw-navbar tw-bg-base-100 tw-z-1000\">\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 tw-max-w-52\">\n <Link className=\"tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate\" to={\"/\"}><p className=\"tw-truncate\">{appName}</p></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\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={\"/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 <div onClick={() => setLoginOpen(true)} className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Login\n </div>\n\n <div onClick={() => setSignupOpen(true)} className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Sign Up\n </div>\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><a onClick={() => {setLoginOpen(true)}}>Login</a></li>\n <li><a onClick={() => setSignupOpen(true)}>Sign Up</a></li>\n </ul>\n </div>\n\n </div>\n }\n </div>\n <DialogModal\n title=\"Login\"\n isOpened={loginOpen}\n onClose={() => setLoginOpen(false)}>\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\">\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 </DialogModal>\n <DialogModal\n title=\"Sign Up\"\n isOpened={signupOpen}\n onClose={() => setSignupOpen(false)}>\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\">\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 </DialogModal>\n </>\n )\n}\n","import * as React from 'react'\nimport NavBar from './NavBar'\nimport { BrowserRouter } from 'react-router-dom'\nimport { ToastContainer } from 'react-toastify'\n\nexport function AppShell({ appName, children }) {\n return (\n <BrowserRouter>\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}></NavBar>\n <div id=\"app-content\" className=\"tw-flex tw-!pl-[77px]\">\n {children}\n </div>\n </BrowserRouter>\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}\n\n\nexport function SideBar({routes} : {routes : 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-[1035] tw-h-full tw--translate-x-full tw-overflow-hidden tw-shadow-[0_4px_12px_0_rgba(0,0,0,0.07),_0_2px_4px_rgba(0,0,0,0.05)] 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-full' style={{height: \"calc(100vh - 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 to={route.path}\n className={({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`} onClick={ () => {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\n {/* \n <li className=\"relative\">\n <a\n className=\"flex h-12 cursor-pointer items-center truncate rounded-[5px] px-6 py-4 text-[0.875rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref>\n <span\n className=\"mr-4 [&>svg]:h-4 [&>svg]:w-4 [&>svg]:text-gray-400 dark:[&>svg]:text-gray-300\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className=\"h-4 w-4\">\n <path\n fillRule=\"evenodd\"\n d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm-2.625 6c-.54 0-.828.419-.936.634a1.96 1.96 0 00-.189.866c0 .298.059.605.189.866.108.215.395.634.936.634.54 0 .828-.419.936-.634.13-.26.189-.568.189-.866 0-.298-.059-.605-.189-.866-.108-.215-.395-.634-.936-.634zm4.314.634c.108-.215.395-.634.936-.634.54 0 .828.419.936.634.13.26.189.568.189.866 0 .298-.059.605-.189.866-.108.215-.395.634-.936.634-.54 0-.828-.419-.936-.634a1.96 1.96 0 01-.189-.866c0-.298.059-.605.189-.866zm2.023 6.828a.75.75 0 10-1.06-1.06 3.75 3.75 0 01-5.304 0 .75.75 0 00-1.06 1.06 5.25 5.25 0 007.424 0z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\"\n data-te-sidenav-slim=\"false\"\n >Category 1</span>\n <span\n className=\"absolute right-0 ml-auto mr-[0.5rem] transition-transform duration-300 ease-linear motion-reduce:transition-none [&>svg]:text-gray-600 dark:[&>svg]:text-gray-300\"\n data-te-sidenav-rotate-icon-ref>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n className=\"h-5 w-5\">\n <path\n fillRule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n </a>\n <ul\n className=\"!visible relative m-0 hidden list-none p-0 data-[te-collapse-show]:block \"\n data-te-sidenav-collapse-ref>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 2</a>\n </li>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 3</a>\n </li>\n </ul>\n </li>\n <li className=\"relative\">\n <a\n className=\"flex h-12 cursor-pointer items-center truncate rounded-[5px] px-6 py-4 text-[0.875rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref>\n <span\n className=\"mr-4 [&>svg]:h-4 [&>svg]:w-4 [&>svg]:text-gray-400 dark:[&>svg]:text-gray-300\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className=\"h-4 w-4\">\n <path\n fillRule=\"evenodd\"\n d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm-2.625 6c-.54 0-.828.419-.936.634a1.96 1.96 0 00-.189.866c0 .298.059.605.189.866.108.215.395.634.936.634.54 0 .828-.419.936-.634.13-.26.189-.568.189-.866 0-.298-.059-.605-.189-.866-.108-.215-.395-.634-.936-.634zm4.314.634c.108-.215.395-.634.936-.634.54 0 .828.419.936.634.13.26.189.568.189.866 0 .298-.059.605-.189.866-.108.215-.395.634-.936.634-.54 0-.828-.419-.936-.634a1.96 1.96 0 01-.189-.866c0-.298.059-.605.189-.866zm2.023 6.828a.75.75 0 10-1.06-1.06 3.75 3.75 0 01-5.304 0 .75.75 0 00-1.06 1.06 5.25 5.25 0 007.424 0z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\"\n data-te-sidenav-slim=\"false\"\n >Category 2</span\n >\n <span\n className=\"absolute right-0 ml-auto mr-[0.5rem] transition-transform duration-300 ease-linear motion-reduce:transition-none [&>svg]:text-gray-600 dark:[&>svg]:text-gray-300\"\n data-te-sidenav-rotate-icon-ref>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n className=\"h-5 w-5\">\n <path\n fillRule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n </a>\n <ul\n className=\"show !visible relative m-0 hidden list-none p-0 data-[te-collapse-show]:block \"\n data-te-sidenav-collapse-ref>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 4</a\n >\n </li>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 5</a\n >\n </li>\n </ul>\n </li>\n */}\n </ul>\n <div id=\"slim-toggler\" className='tw-w-full tw-pr-4 tw-flex-1 tw-grid tw-place-items-end' aria-haspopup=\"true\" >\n \n <ChevronRightIcon className={\"tw-w-5 tw-h-5 tw-mb-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all \" + (!slim ? \"tw-rotate-180\" : '')} onClick={ () => toggleSlim()}/>\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-relative'>\n {children}\n </div>\n\n )\n}\n","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 children : React.ReactNode,\n topMargin: string,\n TopSideButtons?: any\n}\n \n export function TitleCard({title, children, topMargin, TopSideButtons} : TitleCardProps){\n return(\n <div className={\"tw-card tw-w-full tw-p-6 tw-mb-16 tw-bg-base-100 tw-shadow-xl tw-h-fit \" + (topMargin || \"tw-mt-6\")}>\n\n {/* Title for Card */}\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 \n <div className=\"tw-divider tw-mt-2\"></div>\n \n {/** Card Body */}\n <div className='tw-h-full tw-w-full tw-pb-6 tw-bg-base-100'>\n {children}\n </div>\n </div>\n \n )\n }\n","import { useEffect, 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'\n\nimport 'react-toastify/dist/ReactToastify.css';\nimport { UserItem } from '../../types';\n\nexport function Settings() {\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 [email, setEmail] = useState<string>(\"\");\n const [password, setPassword] = useState<string>(\"\");\n\n const [passwordChanged, setPasswordChanged] = useState<boolean>(false);\n\n\n\n\n useEffect(() => {\n setId(user?.id ? user.id : \"\");\n setName(user?.first_name ? user.first_name : \"\");\n setText(user?.description ? user.description : \"\");\n setEmail(user?.email ? user.email : \"\");\n setPassword(user?.password ? user.password : \"\");\n }, [user])\n\n const navigate = useNavigate();\n\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem;\n \n if(passwordChanged) {\n changedUser = { id: id, first_name: name, description: text, email: email, password: password };\n }\n else {\n changedUser = { id: id, first_name: name, description: text, email: email };\n }\n toast.promise(\n\n updateUser(changedUser),\n {\n pending: 'updating Profile ...',\n success: 'Profile updated',\n error: 'Error'\n })\n .then(() => navigate(\"/\"));\n }\n\n\n return (\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=\"Profile Settings\" topMargin=\"tw-mt-2\">\n\n\n <div className=\"tw-grid tw-grid-cols-1 tw-md:grid-cols-2 tw-gap-6\">\n <TextInput placeholder=\"Name\" defaultValue={user?.first_name ? user.first_name : \"\"} updateFormValue={(v) => setName(v)} />\n </div>\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 <div className=\"tw-divider\" ></div>\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","import { useState } from \"react\"\nimport * as React from \"react\"\n\ntype ChapterProps = {\n clickAction?: () => void\n}\n\n\nexport function Welcome1({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\">Herzlich Willkommen, schön dass du da bist! </h3>\n <p className=\"tw-py-4\">\n Wir erschaffen zusammen eine Welt, in der wir frei und menschlich zusammen leben dürfen.\n Dafür bauen wir ein Netzwerk in dem wir uns im echten Leben begegnen und helfen\n ... ganz ohne Geld 😉\n <br /><br />\n <b>Hast du Lust mitzumachen?</b></p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>Bin dabei</label>\n </div>\n </>\n )\n}\n\nexport function Welcome2({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\">Veränderung passiert im echten Leben</h3>\n <p className=\"tw-py-4\">\n Mal ganz ehrlich: 99% unser Zeit am Bildschirm ist sinnlose Zeit- und Energie-Verschwendung.\n <br /><br />\n Darum tauchen wir wieder in das echte Leben ein und nutzen digitale Medien nur dort, wo sie uns wirklich helfen in echt zusammen zu kommen</p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>Alles klar</label>\n </div>\n </>\n )\n}\n\nexport function Welcome3({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\"> Gemeinsam erschaffen wir Strukturen </h3>\n <ul className='tw-flex-row tw-pl-4 tw-mt-4'>\n <li>🥕 Essen & Trinken</li>\n <li>🏡 Wohn- & Lebensraum</li>\n <li>💬 Kommunikation</li>\n <li>💡 Energie</li>\n <li>🚐 Mobilität</li>\n </ul>\n <div className=\"tw-modal-action\">\n <button className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>Ich mach mit</button>\n </div>\n </>\n )\n}\n\n\nexport function Modal() {\n\n const [chapter, setChapter] = useState<number>(1);\n\n const close = () => {\n window.my_modal_3.close();\n }\n\n const ActiveChapter = () => {\n switch (chapter) {\n case 1:\n return <Welcome1 clickAction={() => { setChapter(2) }} />\n case 2:\n return <Welcome2 clickAction={() => { setChapter(3) }} />\n case 3:\n return <Welcome3 clickAction={() => {\n setChapter(1);\n close();\n }} />\n default: return <></>\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\">\n <form method=\"dialog\" className=\"tw-modal-box\">\n <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\">✕</button>\n <ActiveChapter />\n </form>\n <form method=\"dialog\" className=\"tw-modal-backdrop\">\n <button>close</button>\n </form>\n </dialog>\n </>\n )\n}\n\n\n","import * as React from 'react'\n\nexport function Quests() {\n\n const [open, setOpen] = React.useState(true);\n\n if (open) return (\n <>\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-1000\">\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-2 tw-top-2\" onClick={()=>setOpen(false)}>✕</label>\n </div>\n <h2 className=\"tw-card-title tw-m-auto \">Level 1</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 /><span className='tw-text-sm tw-label-text tw-mx-2'>Registrieren</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 /><span className='tw-text-sm tw-label-text tw-mx-2'>Avatar hochladen</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\" disabled /><span className='tw-text-sm tw-label-text tw-mx-2'>Profil ausfüllen</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\" disabled /><span className='tw-text-sm tw-label-text tw-mx-2'>Gruppe beitreten</span></label></li>\n </ul>\n </div>\n </div>\n </>\n )\n\n else return (\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,children} : { \n title: string,\n children?: React.ReactNode,\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-bg-base-200 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 <li>{title}</li>\n </ul>\n </div>\n <TitleCard title={title} topMargin=\"mt-2\">\n {children}\n </TitleCard>\n </div>\n </main>\n )\n}\n"],"names":["LeafletPopup"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACjC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AAC1B;AACA,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;AAQA,IAAM,eAAe,GAAuB,UAAC,KAAK,EAAA;AAChD,IAAA,IAAU,KAAK,GAAI,MAAA,CAAA,MAAM,EAAnB,EAAU,CAAS,CAAA;IAEzB,IAAM,OAAO,GAAgB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAE9C,IAAG,CAAC,OAAO,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,OAAA,CAAA,MAAA,CAAQ,KAAK,CAAC,IAAI,EAAgB,gBAAA,CAAA,CAAC,CAAC;AACjD,KAAA;AAED,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;QAEE,KAAC,CAAA,aAAA,CAAA,OAAO,EAAC,EAAA,SAAS,EAAC,6BAA6B,iBAAa,MAAM,EAAA,CAAG,CACrE,EACJ;AACH,CAAC;;ACdD,IAAM,YAAY,GAAG,aAAa,CAAuB;AACvD,IAAA,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,eAAS;AACpB,CAAA,CAAC,CAAC;AAEH,SAAS,eAAe,CAAC,aAA2B,EAAA;AAI5C,IAAA,IAAA,KAAqB,UAAU,CAAC,UAAC,KAAmB,EAAE,MAAkB,EAAA;QAC5E,QAAQ,MAAM,CAAC,IAAI;AACjB,YAAA,KAAK,WAAW;AACd,gBAAA,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAC,KAAK,EAAA;AAC7B,oBAAA,OAAA,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAA;AAA/C,iBAA+C,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,KAAK;AAAE,oBAAA,OAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EACP,KAAK,EAAA,IAAA,CAAA,EAAA;AACR,wBAAA,MAAM,CAAC,KAAK;AACZ,qBAAA,EAAA,KAAA,CAAA,CAAA;;AACG,oBAAA,OAAO,KAAK,CAAC;AACpB,YAAA;gBACE,MAAM,IAAI,KAAK,EAAE,CAAC;AACrB,SAAA;KACF,EAAE,aAAa,CAAC,EAdV,MAAM,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAcN,CAAC;AAElB,IAAA,IAAM,QAAQ,GAAG,WAAW,CAAC,UAAC,KAAiB,EAAA;AAC7C,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,KAAK,EAAA,KAAA;AACN,SAAA,CAAC,CAAC;KACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,OAAO,EAAE,MAAM,EAAA,MAAA,EAAE,QAAQ,EAAA,QAAA,EAAE,CAAC;AAC9B,CAAC;AAEM,IAAM,cAAc,GAEtB,UAAC,EAA2B,EAAA;QAAzB,aAAa,GAAA,EAAA,CAAA,aAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;AAAO,IAAA,QACpC,KAAA,CAAA,aAAA,CAAC,YAAY,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,eAAe,CAAC,aAAa,CAAC,EACzD,EAAA,QAAQ,CACa,EACzB;AAJqC,CAIrC,CAAC;AAEK,IAAM,SAAS,GAAG,YAAA;AACf,IAAA,IAAA,MAAM,GAAK,UAAU,CAAC,YAAY,CAAC,OAA7B,CAA8B;AAC5C,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEK,IAAM,WAAW,GAAG,YAAA;AACjB,IAAA,IAAA,QAAQ,GAAK,UAAU,CAAC,YAAY,CAAC,SAA7B,CAA8B;AAC9C,IAAA,OAAO,QAAQ,CAAC;AAClB,CAAC;;AC/BD,IAAM,WAAW,GAAG,aAAa,CAAmB;AAClD,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,cAAM,OAAA,OAAO,CAAC,MAAM,EAAE,GAAA;IAC7B,QAAQ,EAAE,cAAM,OAAA,OAAO,CAAC,MAAM,EAAE,GAAA;AAChC,IAAA,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,cAAM,OAAA,OAAO,CAAC,MAAM,EAAE,GAAA;IAC9B,UAAU,EAAE,cAAM,OAAA,OAAO,CAAC,MAAM,EAAE,GAAA;AAClC,IAAA,KAAK,EAAE,EAAE;AACV,CAAA,CAAC,CAAC;AAEI,IAAM,YAAY,GAAG,UAAC,EAAwC,EAAA;QAAtC,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;IACxC,IAAA,EAAA,GAAkB,QAAQ,CAAkB,IAAI,CAAC,EAAhD,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,GAAA,EAAA,CAAA,CAAA,CAAmC,CAAC;IAClD,IAAA,EAAA,GAAoB,QAAQ,CAAgB,IAAI,CAAC,EAAhD,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAiC,CAAC;IAClD,IAAA,EAAA,GAAwB,QAAQ,CAAU,KAAK,CAAC,EAA/C,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAA4B,CAAC;AACvD,IAAA,IAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;AAE/B,IAAA,SAAS,CAAC,YAAA;QACR,UAAU,CAAC,IAAI,CAAC,CAAC;AACjB,QAAA,QAAQ,EAAE,CAAC;QACX,UAAU,CAAC,KAAK,CAAC,CAAA;KAClB,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,SAAe,QAAQ,GAAA;;;;;;;AAEH,wBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,QAAQ,EAAE,CAAA,CAAA;;AAAhC,wBAAA,OAAA,GAAQ,EAAwB,CAAA,IAAA,EAAA,CAAA;wBACtC,QAAQ,CAAC,OAAK,CAAC,CAAC;AACb,wBAAA,IAAA,CAAA,OAAK,EAAL,OAAK,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AACK,wBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,OAAO,EAAE,CAAA,CAAA;;AAA5B,wBAAA,EAAE,GAAG,EAAuB,CAAA,IAAA,EAAA,CAAA;wBAClC,OAAO,CAAC,EAAc,CAAC,CAAC;wBACxB,UAAU,CAAC,KAAK,CAAC,CAAC;AAClB,wBAAA,OAAA,CAAA,CAAA,aAAO,EAAc,CAAC,CAAA;AAEnB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAC,CAAA;;;;wBAGxB,UAAU,CAAC,KAAK,CAAC,CAAA;AACjB,wBAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAC,CAAA;;;;;AAEpB,KAAA;IAGD,IAAM,KAAK,GAAG,UAAO,WAA4B,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;oBAC/C,UAAU,CAAC,IAAI,CAAC,CAAC;;;;AAEH,oBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA,CAAA;;AAAlE,oBAAA,GAAG,GAAG,EAA4D,CAAA,IAAA,EAAA,CAAA;AACxE,oBAAA,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBACnB,OAAM,CAAA,CAAA,YAAA,QAAQ,EAAE,CAAA,CAAA;wBAAxB,OAAO,CAAA,CAAA,cAAC,EAAgB,CAAA,IAAA,EAAA,EAAE,CAAA;;;oBAE1B,UAAU,CAAC,KAAK,CAAC,CAAC;AAClB,oBAAA,MAAM,OAAK,CAAC;;;;;SAEf,CAAA;AAED,IAAA,IAAM,QAAQ,GAAG,UAAO,WAA4B,EAAE,QAAQ,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;oBAC5D,UAAU,CAAC,IAAI,CAAC,CAAC;;;;AAEH,oBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA,CAAA;;AAA/E,oBAAM,EAAyE,CAAA,IAAA,EAAA,CAAA;AAC7E,oBAAA,OAAA,CAAA,CAAA,YAAM,KAAK,CAAC,WAAW,CAAC,CAAA,CAAA;wBAAhC,OAAO,CAAA,CAAA,cAAC,EAAwB,CAAA,IAAA,EAAA,EAAE,CAAA;;;oBAElC,UAAU,CAAC,KAAK,CAAC,CAAC;AAClB,oBAAA,MAAM,OAAK,CAAC;;;;;SAEf,CAAA;AAGD,IAAA,IAAM,MAAM,GAAG,YAAA,EAAA,OAAA,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;;AAEX,oBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,MAAM,EAAE,CAAA,CAAA;;AAAtB,oBAAA,EAAA,CAAA,IAAA,EAAsB,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,CAAC;;;;oBAEd,UAAU,CAAC,KAAK,CAAC,CAAC;AAClB,oBAAA,MAAM,OAAK,CAAC;;;;;SAEf,CAAA;IAED,IAAM,UAAU,GAAG,UAAO,IAAc,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;oBACtC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACW,IAAI,CAAA,EAAtB,EAAK,QAAQ,UAAK,IAAI,EAA1B,CAAmB,IAAA,CAAA,CAAF,CAAU;;;;AAGnB,oBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA,CAAA;;AAAxC,oBAAA,GAAG,GAAG,EAAkC,CAAA,IAAA,EAAA,CAAA;oBAC9C,OAAO,CAAC,GAAU,CAAC,CAAC;oBACpB,UAAU,CAAC,KAAK,CAAC,CAAC;AAClB,oBAAA,OAAA,CAAA,CAAA,aAAO,GAAU,CAAC,CAAA;;;oBAElB,UAAU,CAAC,KAAK,CAAC,CAAC;AAClB,oBAAA,MAAM,OAAK,CAAC;;;;;SAEf,CAAA;AAGD,IAAA,QACE,KAAC,CAAA,aAAA,CAAA,WAAW,CAAC,QAAQ,IACnB,KAAK,EAAE,EAAE,eAAe,iBAAA,EAAE,IAAI,EAAA,IAAA,EAAE,KAAK,EAAA,KAAA,EAAE,QAAQ,EAAA,QAAA,EAAE,OAAO,EAAA,OAAA,EAAE,MAAM,QAAA,EAAE,UAAU,EAAA,UAAA,EAAE,KAAK,EAAA,KAAA,EAAE,IAEpF,QAAQ,CACY,EACvB;AACJ,EAAE;AACK,IAAM,OAAO,GAAG,YAAM,EAAA,OAAA,UAAU,CAAC,WAAW,CAAC,CAAvB;;AC/H7B,SAAS,SAAS,CAAC,EAAsB,EAAA;QAArB,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;IACpC,QACI,KAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAE,gCAAA,CAAA,MAAA,CAAiC,UAAU,CAAE,EAAG,EAAA,QAAQ,CAAK,EAC9E;AACL;;ACUM,SAAU,SAAS,CAAC,EAAkI,EAAA;QAAjI,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,cAAc,oBAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,YAAY,GAAA,EAAA,CAAA,YAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,eAAe,GAAA,EAAA,CAAA,eAAA,CAAA;AAEtI,IAAA,QACI,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,4BAAA,CAAA,MAAA,CAA6B,cAAc,CAAE,EAAA;AACxD,QAAA,UAAU,GAAG,KAAO,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,SAAS,EAAC,UAAU,EAAA;YACrC,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,qCAAqC,GAAG,UAAU,EAAG,EAAA,UAAU,CAAQ,CACnF;AACR,cAAE,GAAG;QACN,KAAO,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,QAAQ,EAAC,IAAA,EAAA,IAAI,EAAE,IAAI,IAAI,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAC,CAAC,EAAK,EAAA,OAAA,eAAe,IAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,EAAA,EAAC,SAAS,EAAE,wCAAyC,CAAA,MAAA,CAAA,UAAU,GAAG,UAAU,GAAG,EAAE,CAAE,EAAA,CAAI,CAC1Q,EACT;AACL;;SCrBgB,SAAS,GAAA;AAErB,IAAA,IAAM,iBAAiB,GAAG;AACtB,QAAA,QAAQ,EAAG,EAAE;AACb,QAAA,OAAO,EAAG,EAAE;KACf,CAAA;IAEK,IAAA,EAAA,GAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAA;IACvC,IAAA,EAAA,GAAkC,QAAQ,CAAC,EAAE,CAAC,EAA7C,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,eAAe,GAAA,EAAA,CAAA,CAAA,CAAgB,CAAA;IAC9C,IAAA,EAAA,GAA0B,QAAQ,CAAC,iBAAiB,CAAC,CAApD,CAAA,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAa,EAAA,CAAA,CAAA,EAA+B;IAE3D,IAAM,UAAU,GAAG,UAAC,CAAC,EAAA;QACjB,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,eAAe,CAAC,EAAE,CAAC,CAAA;AAEnB,QAAA,IAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;AAAC,YAAA,OAAO,eAAe,CAAC,uCAAuC,CAAC,CAAA;AACjG,QAAA,IAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;AAAC,YAAA,OAAO,eAAe,CAAC,uCAAuC,CAAC,CAAA;AAC9F,aAAA;YACA,UAAU,CAAC,IAAI,CAAC,CAAA;;AAEhB,YAAA,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;YAC9C,UAAU,CAAC,KAAK,CAAC,CAAA;AACjB,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,cAAc,CAAA;AACxC,SAAA;AACL,KAAC,CAAA;IAED,IAAM,eAAe,GAAG,UAAC,GAAW,EAAA;AAChC,QAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAClB,KAAC,CAAA;AAEH,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kDAAkD,EAAA;QAC7D,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,wDAAwD,EAAA;YACnE,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,yEAAyE,EAAA;gBACxF,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,mBAAmB,EAAA;oBAC9B,KAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,qDAAqD,EAAW,EAAA,OAAA,CAAA;oBAC9E,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,QAAQ,EAAE,UAAC,CAAC,EAAA,EAAK,OAAA,UAAU,CAAC,CAAC,CAAC,CAAA,EAAA,EAAA;wBAEhC,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,SAAS,EAAA;AAEpB,4BAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,eAAe,EAAE,UAAC,CAAC,EAAA,EAAK,OAAA,eAAe,CAAC,CAAC,CAAC,CAAA,EAAA,EAAG,CAAA;AAElJ,4BAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAC,UAAU,EAAE,cAAc,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,eAAe,EAAE,UAAC,CAAC,EAAA,EAAK,OAAA,eAAe,CAAC,CAAC,CAAC,CAAlB,EAAkB,GAAG,CAEvJ;wBAEN,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,+BAA+B,EAAA;AAAC,4BAAA,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAC,kBAAkB,EAAA;AAAC,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,6HAA6H,EAAA,EAAA,kBAAA,CAAwB,CAAO,CACjP;AAEN,wBAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAC,EAAA,UAAU,EAAC,MAAM,EAAA,EAAE,YAAY,CAAa;AACvD,wBAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,yCAAyC,IAAI,OAAO,GAAG,aAAa,GAAG,EAAE,CAAC,EAAgB,EAAA,OAAA,CAAA;wBAE3H,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,wBAAwB,EAAA;;AAA4B,4BAAA,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAC,SAAS,EAAA;AAAC,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mHAAmH,EAAA,EAAA,SAAA,CAAe,CAAO,CAAM,CAClP,CACL,CACJ,CACA,CACJ,EACT;AACL;;SC3DgB,UAAU,GAAA;AAEtB,IAAA,IAAM,oBAAoB,GAAG;AACzB,QAAA,IAAI,EAAG,EAAE;AACT,QAAA,QAAQ,EAAG,EAAE;AACb,QAAA,OAAO,EAAG,EAAE;KACf,CAAA;IAEK,IAAA,EAAA,GAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAA;IACvC,IAAA,EAAA,GAAkC,QAAQ,CAAC,EAAE,CAAC,EAA7C,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,eAAe,GAAA,EAAA,CAAA,CAAA,CAAgB,CAAA;IAC9C,IAAA,EAAA,GAAgC,QAAQ,CAAC,oBAAoB,CAAC,CAA7D,CAAA,WAAW,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,EAAA,CAAA,CAAA,EAAkC;IAEpE,IAAM,UAAU,GAAG,UAAC,CAAC,EAAA;QACjB,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,eAAe,CAAC,EAAE,CAAC,CAAA;AAEnB,QAAA,IAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;AAAC,YAAA,OAAO,eAAe,CAAC,mCAAmC,CAAC,CAAA;AAC7F,QAAA,IAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;AAAC,YAAA,OAAO,eAAe,CAAC,uCAAuC,CAAC,CAAA;AACpG,QAAA,IAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;AAAC,YAAA,OAAO,eAAe,CAAC,uCAAuC,CAAC,CAAA;AACjG,aAAA;YACA,UAAU,CAAC,IAAI,CAAC,CAAA;;AAEhB,YAAA,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;YAC9C,UAAU,CAAC,KAAK,CAAC,CAAA;AACjB,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,cAAc,CAAA;AACxC,SAAA;AACL,KAAC,CAAA;IAED,IAAM,eAAe,GAAG,UAAC,GAAW,EAAA;AAChC,QAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACpB,KAAC,CAAA;AAED,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kDAAkD,EAAA;QAC7D,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,wDAAwD,EAAA;YACnE,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,yEAAyE,EAAA;gBACpF,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,mBAAmB,EAAA;oBAC9B,KAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,qDAAqD,EAAa,EAAA,SAAA,CAAA;oBAChF,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,QAAQ,EAAE,UAAC,CAAC,EAAA,EAAK,OAAA,UAAU,CAAC,CAAC,CAAC,CAAA,EAAA,EAAA;wBAEhC,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,MAAM,EAAA;AACjB,4BAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAC,EAAA,YAAY,EAAE,WAAW,CAAC,IAAI,EAAE,cAAc,EAAC,SAAS,EAAC,UAAU,EAAC,MAAM,EAAC,eAAe,EAAE,eAAe,EAAI,CAAA;AAC1H,4BAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAC,EAAA,YAAY,EAAE,WAAW,CAAC,OAAO,EAAE,cAAc,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,eAAe,EAAE,eAAe,EAAI,CAAA;4BAC/H,KAAC,CAAA,aAAA,CAAA,SAAS,EAAC,EAAA,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAC,UAAU,EAAE,cAAc,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,EAAC,eAAe,EAAE,eAAe,EAAA,CAAI,CACjJ;AAEN,wBAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAC,EAAA,UAAU,EAAC,SAAS,EAAA,EAAE,YAAY,CAAa;AAC1D,wBAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,yCAAyC,IAAI,OAAO,GAAG,aAAa,GAAG,EAAE,CAAC,EAAmB,EAAA,UAAA,CAAA;wBAE9H,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,wBAAwB,EAAA;;AAA0B,4BAAA,KAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAC,QAAQ,EAAA;AAAC,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mHAAmH,EAAA,EAAA,OAAA,CAAa,CAAO,CAAM,CAC7O,CACL,CACJ,CACJ,CACJ,EACT;AACL;;ACnDA,IAAM,iBAAiB,GAAG,aAAa,CAA6B;AAClE,IAAA,WAAW,EAAE,EAAE;IACf,gBAAgB,EAAE,eAAS;IAC3B,iBAAiB,EAAE,eAAS;IAC5B,YAAY,EAAE,eAAS;AACvB,IAAA,iBAAiB,EAAE,YAAA,EAAM,OAAA,IAAI,GAAA;AAC9B,CAAA,CAAC,CAAC;AAEH,SAAS,qBAAqB,CAAC,kBAAgC,EAAA;IAA/D,IAsDC,KAAA,GAAA,IAAA,CAAA;AA/CO,IAAA,IAAA,KAA0B,UAAU,CAAC,UAAC,KAAmB,EAAE,MAAkB,EAAA;QACjF,QAAQ,MAAM,CAAC,IAAI;AACjB,YAAA,KAAK,KAAK;AACR,gBAAA,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAC,UAAU,EAAA;AAClC,oBAAA,OAAA,UAAU,CAAC,EAAE,KAAK,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,GAAG,KAAK,CAAA;AAArD,iBAAqD,CACtD,CAAC;AACF,gBAAA,IAAI,CAAC,KAAK;AAAE,oBAAA,OAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EACP,KAAK,EAAA,IAAA,CAAA,EAAA;AACR,wBAAA,MAAM,CAAC,UAAU;AACjB,qBAAA,EAAA,KAAA,CAAA,CAAA;;AACG,oBAAA,OAAO,KAAK,CAAC;AAEpB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,UAAC,EAAM,EAAA;AAAJ,oBAAA,IAAA,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;AAAO,oBAAA,OAAA,EAAE,KAAK,MAAM,CAAC,EAAE,CAAA;AAAhB,iBAAgB,CAAC,CAAC;AACpD,YAAA;gBACE,MAAM,IAAI,KAAK,EAAE,CAAC;AACrB,SAAA;KACF,EAAE,kBAAkB,CAAC,EAjBf,WAAW,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAiBN,CAAC;AAEjB,IAAA,IAAA,EAA4B,GAAA,KAAK,CAAC,QAAQ,CAAgB,IAAI,CAAC,EAA9D,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,QAAuC,CAAC;AAC9D,IAAA,IAAA,IAAI,GAAK,OAAO,EAAE,KAAd,CAAe;AAG3B,IAAA,IAAM,gBAAgB,GAAG,WAAW,CAAC,UAAO,GAAyB,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;AACpD,gBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,GAAG,CAAC,QAAQ,EAAE,CAAA,CAAA;;AAA7B,oBAAA,MAAM,GAAG,EAAoB,CAAA,IAAA,EAAA,CAAA;AACnC,oBAAA,IAAI,MAAM,EAAE;AACV,wBAAA,MAAM,CAAC,GAAG,CAAC,UAAA,UAAU,EAAA;4BACnB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAA,UAAA,EAAE,CAAC,CAAA;AACvC,yBAAC,CAAC,CAAA;AACH,qBAAA;;;;SACF,EAAE,EAAE,CAAC,CAAA;AAEN,IAAA,IAAM,iBAAiB,GAAG,WAAW,CAAC,UAAC,IAAkB,EAAA;AACvD,QAAA,IAAI,CAAC,GAAG,CAAC,UAAA,UAAU,EAAA;YACjB,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAA,UAAA,EAAE,CAAC,CAAA;AACvC,SAAC,CAAC,CAAA;KACH,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,IAAM,iBAAiB,GAAG,WAAW,CAAC,UAAC,cAAsB,EAAE,MAAwB,EAAA;AACrF,QAAA,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC;AACpC,aAAA,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS;AAAE,YAAA,OAAO,IAAI,CAAC;;AAChD,YAAA,OAAO,WAAW,CAAC,IAAI,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,UAAU,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAI,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,IAAI,CAAA,CAA9E,EAA8E,CAAC,CAAA;AACnH,KAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;AAIxB,IAAA,OAAO,EAAE,WAAW,EAAA,WAAA,EAAE,gBAAgB,kBAAA,EAAE,iBAAiB,EAAA,iBAAA,EAAE,YAAY,EAAA,YAAA,EAAE,iBAAiB,EAAA,iBAAA,EAAE,CAAC;AAC/F,CAAC;AAEM,IAAM,mBAAmB,GAE3B,UAAC,EAAgC,EAAA;QAA9B,kBAAkB,GAAA,EAAA,CAAA,kBAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;AAAO,IAAA,QACzC,KAAA,CAAA,aAAA,CAAC,iBAAiB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,EACzE,EAAA,QAAQ,CACkB,EAC9B;AAJ0C,CAI1C,CAAC;AAQK,IAAM,mBAAmB,GAAG,YAAA;AACzB,IAAA,IAAA,gBAAgB,GAAK,UAAU,CAAC,iBAAiB,CAAC,iBAAlC,CAAmC;AAC3D,IAAA,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAA;AAEM,IAAM,oBAAoB,GAAG,YAAA;AAC1B,IAAA,IAAA,iBAAiB,GAAK,UAAU,CAAC,iBAAiB,CAAC,kBAAlC,CAAmC;AAC5D,IAAA,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAA;AAEM,IAAM,oBAAoB,GAAG,YAAA;AAC1B,IAAA,IAAA,iBAAiB,GAAK,UAAU,CAAC,iBAAiB,CAAC,kBAAlC,CAAmC;AAC5D,IAAA,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAA;AAEM,IAAM,eAAe,GAAG,YAAA;AACrB,IAAA,IAAA,YAAY,GAAK,UAAU,CAAC,iBAAiB,CAAC,aAAlC,CAAmC;AACvD,IAAA,OAAO,YAAY,CAAC;AACtB,CAAC;;ACrGuB,SAAA,SAAS,CAAC,EAAqG,EAAA;AAAnG,IAAA,IAAA,wBAAwB,GAAA,EAAA,CAAA,wBAAA,CAAA;AAExD,IAAA,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAC3B,IAAA,IAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;AAGjD,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2GAA2G,EAAA;AACtH,QAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,wDAAwD,EAAA;YAClF,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,WAAW,EAAC,GAAG,EAAC,MAAM,EAAC,cAAc,EAAC,SAAS,EAAC,eAAe,EAAA;AACnI,gBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,CAAC,EAAC,wBAAwB,EAAA,CAAG,CAC9E,CACF;AACR,QAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,0CAA0C,EAAA,EAChE,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,EAAA;;YAAK,QACnB,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,KAAI,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,cAAe,EAAC,QAAQ,CAAC,KAC1E,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,GAAG,EAAE,KAAK,CAAC,IAAI,EAAA;AACf,gBAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;AACI,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,EAAW,UAAA,EAAA,KAAK,CAAC,QAAQ,EAAA;wBAChE,KAAQ,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,QAAQ,EAAE,CAAC,EACf,SAAS,EAAC,0LAA0L,EACpM,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,SAAS,EAAE,EAC3C,OAAO,EAAE,YAAA,EAAQ,wBAAwB,CAAC,KAAK,CAAC,CAAA,EAAE,EAAA;AAClD,4BAAA,KAAA,CAAA,aAAA,CAAC,eAAe,EAAA,EAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAI,CAAA,CACpC,CACP,CACN,CACH,CACR,EAEJ;SAAA,CAAC,CACD,CAEH,EACT;AACL;;ACxBA,IAAM,WAAW,GAAG,aAAa,CAAuB;AACtD,IAAA,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,eAAS;IAClB,UAAU,EAAE,eAAS;IACrB,UAAU,EAAE,eAAS;IACrB,UAAU,EAAE,eAAS;IACrB,WAAW,EAAE,eAAS;IACtB,YAAY,EAAE,eAAS;AACxB,CAAA,CAAC,CAAC;AAEH,SAAS,eAAe,CAAC,YAAoB,EAAA;IAA7C,IAmGC,KAAA,GAAA,IAAA,CAAA;AAzFC,IAAA,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;AAEzB,IAAA,IAAA,KAAoB,UAAU,CAAC,UAAC,KAAa,EAAE,MAAkB,EAAA;QACrE,QAAQ,MAAM,CAAC,IAAI;AACjB,YAAA,KAAK,KAAK;AACR,gBAAA,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAC,IAAI,EAAA;AAC5B,oBAAA,OAAA,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,KAAK,CAAA;AAAzC,iBAAyC,CAC1C,CAAC;AACF,gBAAA,IAAI,CAAC,KAAK;AAAE,oBAAA,OAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EACP,KAAK,EAAA,IAAA,CAAA,EAAA;AACR,wBAAA,MAAM,CAAC,IAAI;AACX,qBAAA,EAAA,KAAA,CAAA,CAAA;;AACG,oBAAA,OAAO,KAAK,CAAC;AACpB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA;oBACpB,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE;wBAC9B,OAAO,MAAM,CAAC,IAAI,CAAA;AACnB,qBAAA;AACD,oBAAA,OAAO,IAAI,CAAA;AACb,iBAAC,CAAC,CAAC;AACL,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,UAAA,IAAI,EAAI,EAAA,OAAA,IAAI,KAAK,MAAM,CAAC,IAAI,CAApB,EAAoB,CAAC,CAAC;AACpD,YAAA,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC,MAAM,CAAC,UAAA,IAAI,EAAI,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,MAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA,EAAA,CAAC,CAAC;AACtE,YAAA;gBACE,MAAM,IAAI,KAAK,EAAE,CAAC;AACrB,SAAA;KACF,EAAE,YAAY,CAAC,EAzBT,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAyBN,CAAC;AAGjB,IAAA,IAAM,WAAW,GAAG,WAAW,CAAC,UAAO,KAAiB,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;;oBACtD,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,KAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC1B,OAAM,CAAA,CAAA,YAAA,KAAK,CAAC,OAAO,CAChC,KAAK,CAAC,GAAI,CAAC,QAAQ,EAAE,EACrB;AACE,4BAAA,OAAO,EAAE,UAAA,CAAA,MAAA,CAAW,KAAK,CAAC,IAAI,EAAM,MAAA,CAAA;AACpC,4BAAA,OAAO,EAAE,EAAA,CAAA,MAAA,CAAG,KAAK,CAAC,IAAI,EAAS,SAAA,CAAA;AAC/B,4BAAA,KAAK,EAAE;AACL,gCAAA,MAAM,YAAE,EAAM,EAAA;AAAL,oCAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;oCACX,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAE,CAAA;iCACjB;AACF,6BAAA;AACF,yBAAA,CACF,CAAA,CAAA;;AAXK,oBAAA,MAAM,GAAG,EAWd,CAAA,IAAA,EAAA,CAAA;AACD,oBAAA,IAAI,MAAM,EAAE;AACV,wBAAA,MAAM,CAAC,GAAG,CAAC,UAAA,IAAI,EAAA;AACb,4BAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAO,IAAI,CAAA,EAAA,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA,EAAE,CAAC,CAAC;AAC7D,yBAAC,CAAC,CAAA;AACH,qBAAA;;;;SACF,EAAE,EAAE,CAAC,CAAA;AAEN,IAAA,IAAM,YAAY,GAAG,WAAW,CAAC,UAAC,KAAiB,EAAA;;AACjD,QAAA,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,0CAAE,GAAG,CAAC,UAAA,IAAI,EAAA;AAClB,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAO,IAAI,CAAA,EAAA,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA,EAAE,CAAC,CAAC;AAC7D,SAAC,CAAC,CAAA;KACH,EAAE,EAAE,CAAC,CAAC;AAGP,IAAA,IAAM,OAAO,GAAG,WAAW,CAAC,UAAO,IAAU,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;AAC3C,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,IAAI,EAAA,IAAA;AACL,aAAA,CAAC,CAAC;;;SACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,IAAM,UAAU,GAAG,WAAW,CAAC,UAAO,IAAU,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;AAC9C,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAA,IAAA;AACL,aAAA,CAAC,CAAC;;;SACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,IAAM,UAAU,GAAG,WAAW,CAAC,UAAC,IAAU,EAAA;AACxC,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,IAAI,EAAA,IAAA;AACL,SAAA,CAAC,CAAC;KACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,IAAM,UAAU,GAAG,WAAW,CAAC,UAAC,KAAiB,EAAA;AAC/C,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAA,KAAA;AACN,SAAA,CAAC,CAAC;KACJ,EAAE,EAAE,CAAC,CAAC;IAIP,OAAO,EAAE,KAAK,EAAA,KAAA,EAAE,UAAU,EAAA,UAAA,EAAE,OAAO,EAAA,OAAA,EAAE,UAAU,YAAA,EAAE,UAAU,YAAA,EAAE,WAAW,aAAA,EAAE,YAAY,EAAA,YAAA,EAAE,CAAC;AAC3F,CAAC;AAEM,IAAM,aAAa,GAErB,UAAC,EAA0B,EAAA;QAAxB,YAAY,GAAA,EAAA,CAAA,YAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;AAAO,IAAA,QACnC,KAAA,CAAA,aAAA,CAAC,WAAW,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,EACvD,EAAA,QAAQ,CACY,EACxB;AAJoC,CAIpC,CAAC;AAEK,IAAM,QAAQ,GAAG,YAAA;AACd,IAAA,IAAA,KAAK,GAAK,UAAU,CAAC,WAAW,CAAC,MAA5B,CAA6B;AAC1C,IAAA,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEK,IAAM,UAAU,GAAG,YAAA;AAChB,IAAA,IAAA,OAAO,GAAK,UAAU,CAAC,WAAW,CAAC,QAA5B,CAA6B;AAC5C,IAAA,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,IAAM,aAAa,GAAG,YAAA;AACnB,IAAA,IAAA,UAAU,GAAK,UAAU,CAAC,WAAW,CAAC,WAA5B,CAA6B;AAC/C,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEK,IAAM,aAAa,GAAG,YAAA;AACnB,IAAA,IAAA,UAAU,GAAK,UAAU,CAAC,WAAW,CAAC,WAA5B,CAA6B;AAC/C,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAOK,IAAM,cAAc,GAAG,YAAA;AACpB,IAAA,IAAA,WAAW,GAAK,UAAU,CAAC,WAAW,CAAC,YAA5B,CAA6B;AAChD,IAAA,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEK,IAAM,eAAe,GAAG,YAAA;AACrB,IAAA,IAAA,YAAY,GAAK,UAAU,CAAC,WAAW,CAAC,aAA5B,CAA6B;AACjD,IAAA,OAAO,YAAY,CAAC;AACtB,CAAC;;ACzKM,IAAM,YAAY,GAAG,wCAAwC;;ACWpE,IAAM,UAAU,GAAG,aAAa,CAAsB;AACpD,IAAA,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,eAAS;IACjB,SAAS,EAAE,eAAS;IACpB,SAAS,EAAE,eAAS;IACpB,UAAU,EAAE,eAAS;AACrB,IAAA,WAAW,EAAE,YAAA,EAAM,OAAA,EAAE,GAAA;AACtB,CAAA,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,WAAkB,EAAA;IAA1C,IA+EC,KAAA,GAAA,IAAA,CAAA;AAvEO,IAAA,IAAA,KAAmB,UAAU,CAAC,UAAC,KAAY,EAAE,MAAkB,EAAA;QACnE,QAAQ,MAAM,CAAC,IAAI;AACjB,YAAA,KAAK,KAAK;AACR,gBAAA,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAC,GAAG,EAAA;oBAC3B,OAAA,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,IAAI,GAAG,KAAK,CAAA;AAA/E,iBAA+E,CAChF,CAAC;AACF,gBAAA,IAAI,CAAC,KAAK;AAAE,oBAAA,OAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EACP,KAAK,EAAA,IAAA,CAAA,EAAA;AACJ,wBAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,MAAM,CAAC,GAAG,CAAE,EAAA,EAAA,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAA,CAAA;AACrD,qBAAA,EAAA,KAAA,CAAA,CAAA;;AACG,oBAAA,OAAO,KAAK,CAAC;AAEpB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,UAAC,EAAM,EAAA;AAAJ,oBAAA,IAAA,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;AAAO,oBAAA,OAAA,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAA;AAApC,iBAAoC,CAAC,CAAC;AACxE,YAAA;gBACE,MAAM,IAAI,KAAK,EAAE,CAAC;AACrB,SAAA;KACF,EAAE,WAAW,CAAC,EAjBR,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAiBN,CAAC;AAEV,IAAA,IAAA,EAAgB,GAAA,KAAK,CAAC,QAAQ,CAAgB,EAAmB,CAAC,EAAjE,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,MAAM,QAAsD,CAAA;AAExE,IAAA,IAAM,SAAS,GAAG,WAAW,CAAC,UAAO,GAAkB,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;oBACrD,MAAM,CAAC,GAAG,CAAC,CAAC;AACG,oBAAA,OAAA,CAAA,CAAA,YAAM,GAAG,CAAC,QAAQ,EAAE,CAAA,CAAA;;AAA7B,oBAAA,MAAM,GAAG,EAAoB,CAAA,IAAA,EAAA,CAAA;AACnC,oBAAA,IAAI,MAAM,EAAE;AACV,wBAAA,MAAM,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA;4BACZ,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;4BACpC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAA,GAAA,EAAE,CAAC,CAAA;AAChC,yBAAC,CAAC,CAAA;AACH,qBAAA;;;;SACF,EAAE,EAAE,CAAC,CAAA;AAEN,IAAA,IAAM,UAAU,GAAG,WAAW,CAAC,UAAC,IAAW,EAAA;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA;YACV,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;YACpC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAA,GAAA,EAAE,CAAC,CAAA;AAChC,SAAC,CAAC,CAAA;KACH,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,MAAM,GAAG,UAAC,GAAQ,EAAA;AACtB,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,GAAG,EAAA,GAAA;AACJ,SAAA,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAA,EAAA,CAAC,EAAE;AAC9E,YAAA,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,UAAU,KAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACxC,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,IAAM,SAAS,GAAG,WAAW,CAAC,UAAC,EAAU,EAAA;AACvC,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,EAAE,EAAA,EAAA;AACH,SAAA,CAAC,CAAC;AACH,QAAA,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,UAAU,KAAI,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;KACvC,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,IAAM,WAAW,GAAG,WAAW,CAAC,UAAC,IAAU,EAAA;AACvC,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACzE,IAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,cAAc,KAAA,IAAA,IAAd,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,GAAG,CAAC,UAAA,GAAG,EAAA;YACrB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,EAAA,CAAC,EAAE;gBACzC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAArB,EAAqB,CAAE,CAAC,CAAA;AACtD,aAAA;AACH,SAAC,CAAC,CAAA;AACF,QAAA,OAAO,QAAQ,CAAA;AACnB,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AAGX,IAAA,OAAO,EAAE,IAAI,EAAA,IAAA,EAAE,MAAM,EAAA,MAAA,EAAE,SAAS,EAAA,SAAA,EAAE,SAAS,EAAA,SAAA,EAAE,UAAU,EAAA,UAAA,EAAE,WAAW,EAAA,WAAA,EAAE,CAAC;AACzE,CAAC;AAEM,IAAM,YAAY,GAEpB,UAAC,EAAyB,EAAA;QAAvB,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;AAAO,IAAA,QAClC,KAAA,CAAA,aAAA,CAAC,UAAU,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,EACpD,EAAA,QAAQ,CACW,EACvB;AAJmC,CAInC,CAAC;AAEK,IAAM,OAAO,GAAG,YAAA;AACb,IAAA,IAAA,IAAI,GAAK,UAAU,CAAC,UAAU,CAAC,KAA3B,CAA4B;AACxC,IAAA,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEK,IAAM,SAAS,GAAG,YAAA;AACf,IAAA,IAAA,MAAM,GAAK,UAAU,CAAC,UAAU,CAAC,OAA3B,CAA4B;AAC1C,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAOK,IAAM,YAAY,GAAG,YAAA;AAClB,IAAA,IAAA,SAAS,GAAK,UAAU,CAAC,UAAU,CAAC,UAA3B,CAA4B;AAC7C,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA;AAEM,IAAM,aAAa,GAAG,YAAA;AACnB,IAAA,IAAA,UAAU,GAAK,UAAU,CAAC,UAAU,CAAC,WAA3B,CAA4B;AAC9C,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC,CAAA;AAGM,IAAM,cAAc,GAAG,YAAA;AACpB,IAAA,IAAA,WAAW,GAAK,UAAU,CAAC,UAAU,CAAC,YAA3B,CAA4B;AAC/C,IAAA,OAAO,WAAW,CAAC;AACrB,CAAC;;AC/HD,IAAM,aAAa,GAAG,aAAa,CAAyB;AAC1D,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,eAAS;IACvB,eAAe,EAAE,eAAS;IAC1B,eAAe,EAAE,eAAS;IAC1B,eAAe,EAAE,eAAS;AAC3B,CAAA,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,WAAkB,EAAA;AAQpC,IAAA,IAAA,KAA6B,UAAU,CAAC,UAAC,KAAY,EAAE,MAAkB,EAAA;QAC7E,QAAQ,MAAM,CAAC,IAAI;AACjB,YAAA,KAAK,SAAS;AACZ,gBAAA,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAC,GAAG,EAAA;AAC3B,oBAAA,OAAA,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,KAAK,CAAA;AAAvC,iBAAuC,CACxC,CAAC;AACF,gBAAA,IAAI,CAAC,KAAK;AAAE,oBAAA,OAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EACP,KAAK,EAAA,IAAA,CAAA,EAAA;AACR,wBAAA,MAAM,CAAC,GAAG;AACV,qBAAA,EAAA,KAAA,CAAA,CAAA;;AACG,oBAAA,OAAO,KAAK,CAAC;AACpB,YAAA,KAAK,YAAY;AACf,gBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,UAAC,EAAM,EAAA;AAAJ,oBAAA,IAAA,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;AAAO,oBAAA,OAAA,EAAE,KAAK,MAAM,CAAC,EAAE,CAAA;AAAhB,iBAAgB,CAAC,CAAC;AACpD,YAAA,KAAK,YAAY;AACf,gBAAA,OAAO,WAAW,CAAC;AACrB,YAAA;gBACE,MAAM,IAAI,KAAK,EAAE,CAAC;AACrB,SAAA;KACF,EAAE,WAAW,CAAC,EAlBR,UAAU,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,GAAA,EAAA,CAAA,CAAA,CAkBhB,CAAC;AAEV,IAAA,IAAA,EAAkC,GAAA,KAAK,CAAC,QAAQ,CAAS,EAAE,CAAC,EAA3D,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,eAAe,QAA8B,CAAC;IAEnE,IAAM,YAAY,GAAG,UAAC,GAAQ,EAAA;AAC5B,QAAA,YAAY,CAAC;AACX,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,GAAG,EAAA,GAAA;AACJ,SAAA,CAAC,CAAC;AAEL,KAAC,CAAC;AAEF,IAAA,IAAM,eAAe,GAAG,WAAW,CAAC,UAAC,EAAU,EAAA;AAC7C,QAAA,YAAY,CAAC;AACX,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,EAAE,EAAA,EAAA;AACH,SAAA,CAAC,CAAC;KACJ,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,eAAe,GAAG,WAAW,CAAC,YAAA;AAClC,QAAA,YAAY,CAAC;AACX,YAAA,IAAI,EAAE,YAAY;AACnB,SAAA,CAAC,CAAC;KACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,IAAM,eAAe,GAAG,WAAW,CAAC,UAAC,MAAa,EAAA;QAChD,eAAe,CAAC,MAAM,CAAC,CAAA;KACxB,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,OAAO,EAAE,UAAU,EAAA,UAAA,EAAE,YAAY,EAAA,YAAA,EAAE,eAAe,EAAA,eAAA,EAAE,eAAe,EAAA,eAAA,EAAE,eAAe,EAAA,eAAA,EAAE,YAAY,EAAA,YAAA,EAAE,CAAC;AACvG,CAAC;AAEM,IAAM,cAAc,GAEtB,UAAC,EAAyB,EAAA;QAAvB,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;AAAO,IAAA,QAClC,KAAA,CAAA,aAAA,CAAC,aAAa,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC,EACzD,EAAA,QAAQ,CACc,EAC1B;AAJmC,CAInC,CAAC;AAEK,IAAM,aAAa,GAAG,YAAA;AACnB,IAAA,IAAA,UAAU,GAAK,UAAU,CAAC,aAAa,CAAC,WAA9B,CAA+B;AACjD,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEK,IAAM,eAAe,GAAG,YAAA;AACrB,IAAA,IAAA,YAAY,GAAK,UAAU,CAAC,aAAa,CAAC,aAA9B,CAA+B;AACnD,IAAA,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEK,IAAM,kBAAkB,GAAG,YAAA;AACxB,IAAA,IAAA,eAAe,GAAK,UAAU,CAAC,aAAa,CAAC,gBAA9B,CAA+B;AACtD,IAAA,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEK,IAAM,kBAAkB,GAAG,YAAA;AACxB,IAAA,IAAA,eAAe,GAAK,UAAU,CAAC,aAAa,CAAC,gBAA9B,CAA+B;AACtD,IAAA,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEK,IAAM,eAAe,GAAG,YAAA;AACrB,IAAA,IAAA,YAAY,GAAK,UAAU,CAAC,aAAa,CAAC,aAA9B,CAA+B;AACnD,IAAA,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEK,IAAM,kBAAkB,GAAG,YAAA;AACxB,IAAA,IAAA,eAAe,GAAK,UAAU,CAAC,aAAa,CAAC,gBAA9B,CAA+B;AACtD,IAAA,OAAO,eAAe,CAAC;AACzB,CAAC;;AChHD,SAAS,mBAAmB,GAAA;IAClB,IAAY,KAAK,GAA0B,MAAM,CAAA,UAAhC,EAAe,MAAM,GAAK,MAAM,CAAA,WAAX,CAAY;IAC1D,OAAO;AACL,QAAA,KAAK,EAAA,KAAA;AACL,QAAA,MAAM,EAAA,MAAA;KACP,CAAC;AACJ,CAAC;AAEa,SAAU,mBAAmB,GAAA;AACnC,IAAA,IAAA,EAA0C,GAAA,QAAQ,CAAC,mBAAmB,EAAE,CAAC,EAAxE,gBAAgB,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,mBAAmB,GAAA,EAAA,CAAA,CAAA,CAAmC,CAAC;AAEhF,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,SAAS,YAAY,GAAA;AACnB,YAAA,mBAAmB,CAAC,mBAAmB,EAAE,CAAC,CAAC;SAC5C;AAED,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAChD,QAAA,OAAO,YAAM,EAAA,OAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAlD,EAAkD,CAAC;KACjE,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,OAAO,gBAAgB,CAAC;AAC1B;;ACdA,SAAS,qBAAqB,CAAC,MAAM,EAAA;AACjC,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAEM,IAAM,aAAa,GAAG,YAAA;AAEzB,IAAA,IAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;AAC/C;;;;;;;;;;;;;AAaE;AACF,IAAA,IAAM,UAAU,GAAG,aAAa,EAAE,CAAC;AACnC,IAAA,IAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAC7C,IAAA,IAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,QAAQ,0CACH;;AAEG,IAAA,gBAAgB,CAAC,MAAM,GAAG,GAAG,CAAC;QAC9B,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,mGAAmG,EAAA;AAC9G,YAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,YAAY,EAAC,SAAS,EAAC,kEAAkE,EAAC,QAAQ,EAAE,UAAC,CAAC,EAAK,EAAA,OAAA,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAA/B,EAA+B,EAAI,CAAA;YAC7K,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,8BAA8B,EAAA,EAErC,UAAU,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA;AACd,gBAAA,OAAA,6BAAK,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAC,kFAAkF,EAAC,KAAK,EAAE,EAAE,eAAe,EAAE,GAAG,CAAC,KAAK,EAAE,EAAA;oBAChJ,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,gCAAgC,EAAA;AAC3C,wBAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAC,+FAA+F,EAAC,OAAO,EAAE,cAAM,QAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAxB,EAAyB,aAAW,CAClK;AAAA,oBAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;;AAAK,wBAAA,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAK,CAC3C,CAAA;AAJN,aAIM,CACT,CAIH,CACJ,CAEX,EAEF;AACL,CAAC;;ACtCD,IAAM,kBAAkB,GAAG,aAAa,CAA8B;AACpE,IAAA,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,eAAS;IACpB,QAAQ,EAAE,eAAS;AACpB,CAAA,CAAC,CAAC;AAEH,SAAS,qBAAqB,CAAC,kBAAsB,EAAA;AAQ7C,IAAA,IAAA,KAA0B,UAAU,CAAC,UAAC,KAAgC,EAAE,MAAkB,EAAA;;QAC9F,QAAQ,MAAM,CAAC,IAAI;AACjB,YAAA,KAAK,YAAY;AACf,gBAAA,OAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACK,KAAK,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,CACT,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA,GAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAQ,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,EAAA,EAAA,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAI,CAAA,EAAA,EAAA,EAAA,CAAA;AAC5F,YAAA,KAAK,WAAW;AACd,gBAAA,OAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACK,KAAK,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,CACT,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA,GAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAQ,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,EAAA,EAAA,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAI,CAAA,EAAA,EAAA,EAAA,CAAA;AAC1F,YAAA;gBACE,MAAM,IAAI,KAAK,EAAE,CAAC;AACrB,SAAA;KACF,EAAE,kBAAkB,CAAC,EAbf,WAAW,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAaN,CAAC;AAKvB,IAAA,IAAM,SAAS,GAAG,WAAW,CAAC,UAAC,IAAU,EAAE,MAAc,EAAA;AACvD,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAA,IAAA;AACJ,YAAA,MAAM,EAAA,MAAA;AACP,SAAA,CAAC,CAAC;KACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,IAAM,QAAQ,GAAG,WAAW,CAAC,UAAC,IAAU,EAAE,KAAY,EAAA;AACpD,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAA,IAAA;AACJ,YAAA,KAAK,EAAA,KAAA;AACN,SAAA,CAAC,CAAC;KACJ,EAAE,EAAE,CAAC,CAAC;IAIP,OAAO,EAAE,WAAW,EAAA,WAAA,EAAE,SAAS,WAAA,EAAE,QAAQ,EAAA,QAAA,EAAE,CAAC;AAC9C,CAAC;AAEM,IAAM,mBAAmB,GAE3B,UAAC,EAAgC,EAAA;QAA9B,kBAAkB,GAAA,EAAA,CAAA,kBAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;AAAO,IAAA,QACzC,KAAA,CAAA,aAAA,CAAC,kBAAkB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,EAC1E,EAAA,QAAQ,CACmB,EAC/B;AAJ0C,CAI1C,CAAC;AAEK,IAAM,cAAc,GAAG,YAAA;AACpB,IAAA,IAAA,WAAW,GAAK,UAAU,CAAC,kBAAkB,CAAC,YAAnC,CAAoC;AACvD,IAAA,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEK,IAAM,YAAY,GAAG,YAAA;AAClB,IAAA,IAAA,SAAS,GAAK,UAAU,CAAC,kBAAkB,CAAC,UAAnC,CAAoC;AACrD,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEK,IAAM,WAAW,GAAG,YAAA;AACjB,IAAA,IAAA,QAAQ,GAAK,UAAU,CAAC,kBAAkB,CAAC,SAAnC,CAAoC;AACpD,IAAA,OAAO,QAAQ,CAAC;AAClB,CAAC;;ACnED;AACA,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;AAEpC,SAAS,SAAS,CAAC,EAMC,EAAA;AALhB,IAAA,IAAA,EAAA,GAAA,EAAA,CAAA,MAAgB,EAAhB,MAAM,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,OAAO,KAAA,EAChB,EAAA,GAAA,EAAA,CAAA,KAAc,EAAd,KAAK,mBAAG,MAAM,GAAA,EAAA,EACd,EAAA,GAAA,EAAA,CAAA,MAA8B,EAA9B,MAAM,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAA,EAAA,EAC9B,EAAS,GAAA,EAAA,CAAA,IAAA,EAAT,IAAI,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,EAAE,GAAA,EAAA,EACT,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;IAGR,IAAI,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC1C,IAAA,EAAA,GAA0B,QAAQ,CAAoC,IAAI,CAAC,CAA1E,CAAA,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAa,EAAA,CAAA,CAAA,EAAsD;IAElF,SAAS,gBAAgB,CAAC,KAA4B,EAAA;AAClD,QAAA,YAAY,CAAC;YACT,KAAK,EAAE,UAAC,CAAC,EAAA;;gBACL,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACtC,gBAAA,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,gBAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,aAAa,CAAC,2BAA2B,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC7F,CAAA,EAAA,GAAA,QAAQ,CAAC,aAAa,CAAC,iCAAiC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,SAAS,EAAE,EAAG,CAAA,MAAA,CAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,SAAS,CAAC,CAAE,CAAC,CAAC;gBAErK,IAAI,GAAG,QAAQ,CAAC;AAChB,gBAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/C,gBAAA,IAAI,KAAK,CAAC,qBAAqB,IAAI,IAAI,EAAE;AACrC,oBAAA,KAAK,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,qBAAqB,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;AAClF,oBAAA,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;AACvC,iBAAA;aACJ;AACD,YAAA,MAAM,EAAE,YAAA;AACJ,gBAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aACzB;AAEJ,SAAA,CAAC,CAAA;AACF,QAAA,OAAO,IAAI,CAAA;KACd;IAEK,IAAA,EAAA,GAAoD,QAAQ,CAAoB,IAAI,CAAC,EAApF,qBAAqB,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,wBAAwB,GAAA,EAAA,CAAA,CAAA,CAAqC,CAAC;IACtF,IAAA,EAAA,GAAoC,QAAQ,CAA4B,IAAI,CAAC,EAA5E,aAAa,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,gBAAgB,GAAA,EAAA,CAAA,CAAA,CAA6C,CAAC;AAEpF,IAAA,IAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;AAGlC,IAAA,QACI,KAAC,CAAA,aAAA,CAAA,cAAc,EAAC,EAAA,aAAa,EAAE,EAAE,EAAA;AAC7B,QAAA,KAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EAAC,WAAW,EAAE,EAAE,EAAA;AACzB,YAAA,KAAA,CAAA,aAAA,CAAC,mBAAmB,EAAA,EAAC,kBAAkB,EAAE,EAAE,EAAA;AACvC,gBAAA,KAAA,CAAA,aAAA,CAAC,cAAc,EAAA,EAAC,WAAW,EAAE,EAAE,EAAA;AAC3B,oBAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EAAC,YAAY,EAAE,EAAE,EAAA;AAC3B,wBAAA,KAAA,CAAA,aAAA,CAAC,mBAAmB,EAAA,EAAC,kBAAkB,EAAE,EAAE,EAAA;AACvC,4BAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,GAAG,qBAAqB,IAAI,IAAI,GAAG,0BAA0B,GAAG,SAAS,CAAC,EAAA;AACpF,gCAAA,KAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAA;AACjH,oCAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EAAiB,IAAA,CAAA;oCAC/B,KAAC,CAAA,aAAA,CAAA,SAAS,IACN,WAAW,EAAC,yFAAyF,EACrG,GAAG,EAAC,4CAA4C,EAAG,CAAA;AACvD,oCAAA,KAAA,CAAA,aAAA,CAAC,kBAAkB,EAAA,EAAC,GAAG,EAAE,UAAU,EAAE,mBAAmB,EAAA,IAAA,EAAC,cAAc,EAAA,IAAA,EAAC,gBAAgB,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAEvH,EAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,EAAA;AACvC,wCAAA,OAAA,KAAK,CAAC,cAAc,CAA0K,KAAK,CAAC;4CAChM,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,KAAK,CAAA;AADnI,qCACmI,CACtI,CAEY;AACrB,oCAAA,KAAA,CAAA,aAAA,CAAC,gBAAgB,EAAA,EAAC,wBAAwB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,gBAAgB,GAAI,CAC/I;AACf,gCAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,wBAAwB,EAAE,wBAAwB,EAAc,CAAA;AAC1E,gCAAA,qBAAqB,IAAI,IAAI;oCAC1B,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,uEAAuE,EAAA;wCAClF,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,8CAA8C,EAAA;AACzD,4CAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;AACI,gDAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA;;AAAc,oDAAA,qBAAqB,CAAC,IAAI;iEAAkB,CACxD,CACJ,CACJ,CAER,CACY,CACV,CACH,CACC,CACX,CACF,EACnB;AACN;;AC5GA,IAAM,SAAS,GAAG,UAAC,KAAY,EAAE,WAAkB,EAAE,WAAkB,EAAA;AACnE,IAAA,IAAM,MAAM,GAAG;QACX,MAAM,EAAE,8UAA8U,GAAG,WAAW,GAAG,qfAAqf,GAAG,WAAW,GAAG,wBAAwB;QACr4B,MAAM,EAAE,ySAAyS,GAAG,WAAW,GAAG,wZAAwZ,GAAE,WAAW,GAAE,gBAAgB;AACzvB,QAAA,IAAI,EAAI,8bAA8b,GAAG,WAAW,GAAG,i3BAAi3B;AACx0C,QAAA,KAAK,EAAG,+JAA+J,GAAG,WAAW,GAAG,8NAA8N;KACzZ,CAAC;AACF,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC,CAAA;AAED,IAAM,OAAO,GAAI,UAAC,IAAW,EAAA;AACzB,IAAA,QAAO,IAAI;AACP,QAAA,KAAK,cAAc;AACjB,YAAA,OAAO,iZAAiZ,CAAC;AAE3Z,QAAA,KAAK,qBAAqB;AACxB,YAAA,OAAO,u3CAAu3C,CAAC;AAEj4C,QAAA;AACE,YAAA,OAAO,EAAE,CAAC;AACb,KAAA;AACP,CAAC,CAAA;AAED,IAAM,iBAAiB,GAAI,UAAC,KAAY,EAAE,MAAa,EAAE,MAAa,EAAE,IAAW,EAAA;IAE/E,OAAO,CAAC,CAAC,OAAO,CAAC;AACf,QAAA,IAAI,EAAE,EAAA,CAAA,MAAA,CAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAG,CAAA,MAAA,CAAA,OAAO,CAAC,IAAI,CAAC,CAAE;AAC3D,QAAA,UAAU,EAAE,CAAC,EAAE,EAAC,EAAE,CAAC;AACnB,QAAA,WAAW,EAAE,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;AAC7B,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACrB,KAAA,CAAC,CAAC;AACP,CAAC;;ACxBK,SAAU,UAAU,CAAC,EAG1B,EAAA;IAHD,IA2EC,KAAA,GAAA,IAAA,CAAA;;QA3E4B,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,gBAAgB,GAAA,EAAA,CAAA,gBAAA,CAAA;AAK3C,IAAA,IAAA,EAAwB,GAAA,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,EAArD,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,QAAkC,CAAC;AAC7D,IAAA,IAAM,UAAU,GAAG,aAAa,EAAE,CAAC;AAEnC,IAAA,IAAM,GAAG,GAAG,MAAM,EAAE,CAAC;AACrB,IAAA,IAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;IAGjD,IAAM,iBAAiB,GAAG,UAAO,KAAoC,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;;oBACnE,UAAU,CAAC,IAAI,CAAC,CAAC;oBACb,OAAO,GAAG,KAAK,CAAC;;;;AAEhB,oBAAA,OAAA,CAAA,CAAA,aAAM,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,CAAE,IAAI,CAAC,EAAE,CAAC,EAAA,CAAA;;AAA3C,oBAAA,EAAA,CAAA,IAAA,EAA2C,CAAA;oBAC3C,OAAO,GAAG,IAAI,CAAC;;;;oBAEf,KAAK,CAAC,KAAK,CAAC,OAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;;;AAElC,oBAAA,IAAG,OAAO,EAAE;wBACV,UAAU,CAAC,IAAI,CAAC,CAAC;AACf,wBAAA,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACjC,qBAAA;oBACD,UAAU,CAAC,KAAK,CAAC,CAAC;oBAClB,GAAG,CAAC,UAAU,EAAE,CAAC;oBAEjB,KAAK,CAAC,eAAe,EAAE,CAAC;;;;SACzB,CAAA;IAED,IAAM,aAAa,GAAG,UAAC,KAAoC,EAAA;QACzD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,GAAG,CAAC,UAAU,EAAE,CAAC;AACjB,QAAA,IAAI,gBAAgB;AAClB,YAAA,gBAAgB,CAAC,EAAE,QAAQ,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC,CAAA;AAC9K,KAAC,CAAA;AAGD,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gCAAgC,EAAA;QAC7C,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,eAAe,EAAA;YAC5B,KAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,yBAAyB,EAAA,EAAE,IAAI,CAAC,IAAI,CAAK,CAClD;QACN,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,eAAe,EAC3B,EAAA,CAAA,MAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG;YACd,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,gCAAgC,EAAA;AAC7C,gBAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,4EAA4E,EAAA;AACxG,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,4BAA4B,EAAC,SAAS,EAAC,eAAe,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,EAAA;AACvG,wBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,8FAA8F,EAAA,CAAG,CACrG,CACA;AACR,gBAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,4EAA4E,EAAA;oBACpG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,iBAAiB,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAe,EAAC,QAAQ,CAAC,IAAI,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;AAC3F,wBAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,uBAAuB,EAAC,OAAO,EAAE,aAAa,EAAA;AACzD,4BAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,4BAA4B,EAAC,SAAS,EAAC,eAAe,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,EAAA;AACvG,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,yHAAyH,EAAG,CAAA,CAChI,CACJ,CACD;oBAEJ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,iBAAiB,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAe,EAAC,QAAQ,CAAC,IAAI,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;AAC3F,wBAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,iBAAiB,EAAA,EACtD,OAAO,GAAG,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,6CAA6C,EAAQ,CAAA;;AAE9E,gCAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,4BAA4B,EAAC,SAAS,EAAC,eAAe,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,EAAA;oCACvG,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,QAAQ,EAAC,SAAS,EAAC,CAAC,EAAC,6MAA6M,EAAC,QAAQ,EAAC,SAAS,EAAG,CAAA,CAC1P,CACN,CACD,CACF,CACD,CACJ,CACF,EACP;AACH;;ACtFO,IAAM,QAAQ,GAAG,iIAAiI,CAAA;AAClJ,IAAM,SAAS,GAAG,qDAAqD,CAAC;AAGzE,SAAU,OAAO,CAAC,OAAe,EAAA;IAEnC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,GAAG,EAAA;QAC/C,IAAI,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;AACpC,YAAA,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AACpC,SAAA;AACD,QAAA,OAAO,SAAS,CAAA;AAClB,KAAC,CAAC,CAAC;AAGH,IAAA,OAAO,OAAO,CAAC;AACjB;;ACLK,IAAM,QAAQ,GAAG,UAAC,EAAyB,EAAA;AAAvB,IAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAC7B,IAAA,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;AACvB,IAAe,SAAS,GAAG;AAC3B,IAAA,IAAM,YAAY,GAAG,eAAe,EAAE,CAAC;AAEvC,IAAA,IAAI,YAAY,CAAC;AAKjB,IAAA,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI;AAAE,QAAA,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzD,YAAY,GAAG,kBAAkB,CAAC,YAAY,EAAE,mBAAmB,EAAE,UAAC,GAAG,EAAE,CAAC,EAAA;QAC1E,IAAK,QAAQ,GAAI,GAAG,CAAC;AACrB,QAAA,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YAC5B,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;YAC3B,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,SAAA;AACD,QAAA,QACE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAC,IAAK,CAAC,EAAE,GAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAA,EAAE,QAAQ,CAAK,EACrG;AACH,KAAC,CAAC,CAAC;IAEH,YAAY,GAAG,kBAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,UAAC,GAAG,EAAE,CAAC,EAAA;AAChE,QAAA,QACE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAC,IAAK,CAAC,EAAE,GAAC,GAAG,EAAE,IAAI,EAAE,SAAA,CAAA,MAAA,CAAU,GAAG,CAAE,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,qBAAqB,EAAA,EAAE,GAAG,CAAK,EAC5G;AACH,KAAC,CAAC,CAAC;IAEH,YAAY,GAAG,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,UAAC,KAAK,EAAE,CAAC,EAAA;AAErE,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAlD,EAAkD,CAAC,CAAA;QAC9E,QACE,2BAAG,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,MAAM,EAAG,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,GAAC,IAAK,CAAC,EAAE,GAAC,CAAC,GAAI,CAAC,EAAE,OAAO,EAAE,YAAA;gBACjI,YAAY,CAAC,GAAI,CAAC,CAAC;;;AAGrB,aAAC,EAAG,EAAA,KAAK,CAAK,EACf;AACH,KAAC,CAAC,CAAA;AAEF,IAAA,QACE,KAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAC,kBAAkB,IAC/D,YAAY,CACX,EACL;AAIH;;AChDO,IAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,UAAC,KAAyB,EAAE,GAAQ,EAAA;IAEhF,QACE,KAAC,CAAA,aAAA,CAAAA,KAAY,EAAC,EAAA,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAA;QAC5F,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,qCAAqC,EAAA;AAClD,YAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAI,CAAA;YAC1E,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,gCAAgC,EAAA,EAC5C,KAAK,CAAC,QAAQ;AAEb,gBAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,EAAA;AAC/C,oBAAA,OAAA,KAAK,CAAC,cAAc,CAA+B,KAAK,CAAC;AACvD,wBAAA,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAA;AADtD,iBACsD,CACvD;;AAID,oBAAA,KAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAA,CAAI,CAG5B,CACF,CACO,EAChB;AACH,CAAC,CAAC;;ACcF,IAAA,QAAA,kBAAA,YAAA;IAGE,SAAY,QAAA,CAAA,GAAW,EAAE,GAAW,EAAA;QAClC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;KACrB;IACH,OAAC,QAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;ACpCK,SAAU,aAAa,CAAC,EAA4H,EAAA;QAA1H,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,cAAc,GAAA,EAAA,CAAA,cAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,YAAY,GAAA,EAAA,CAAA,YAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,eAAe,GAAA,EAAA,CAAA,eAAA,CAAA;AAErI,IAAA,IAAM,GAAG,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;;AAG9C,IAAA,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAE1B,IAAA,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,IAAI,MAAM,GAAe,EAAE,CAAC;AAE5B,IAAA,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA;QACR,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;AACjE,KAAC,CAAC,CAAA;AAEF,IAAA,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC;AACtB,QAAA,cAAc,EAAE,qDAAqD;AACrE,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,OAAO,EAAE,GAAG;AACZ,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,eAAe,EAAE,YAAA;AACb,YAAA,OAAO,EAAE,CAAA;SACZ;QACD,gBAAgB,EAAE,UAAU,IAAI,EAAA;YAC5B,OAAO,uBAAA,CAAA,MAAA,CAAuB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAA,0CAAA,CAAA,CAAA,MAAA,CAA0C,IAAI,CAAC,MAAM,EAAA,SAAA,CAAS,CAAC;SACnH;AACJ,KAAA,CAAC,CAAC;AAGH,IAAA,SAAS,CAAC,YAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,GAAG,CAAC,OAAO,EAAE;AACb,gBAAA,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC/B,aAAA;AACD,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACvB,SAAA;AACL,KAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;AAET,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,oCAA6B,cAAc,GAAG,cAAc,GAAG,EAAE,CAAE,EAAA;AAC9E,QAAA,UAAU,GAAG,KAAO,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,SAAS,EAAC,UAAU,EAAA;AACrC,YAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,qCAAqC,GAAG,UAAU,EAAA,EAAG,UAAU,CAAQ,CACpF,GAAG,EAAE;QACb,KAAU,CAAA,aAAA,CAAA,UAAA,EAAA,EAAA,QAAQ,EAAC,IAAA,EAAA,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,0DAAA,CAAA,MAAA,CAA2D,UAAU,GAAG,UAAU,GAAG,EAAE,CAAE,EAAE,WAAW,EAAE,WAAW,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAC,CAAC,EAAK,EAAA,OAAA,eAAe,IAAI,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,EAAA,EAAA,CAAa,CAC9R,EACT;AACL;;ACpEO,IAAM,WAAW,GAAG,YAAA;AACvB,IAAA,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,sBAAsB,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAC3E,CAAC,CAAA;AAED,IAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAEjD,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAA;AACrB,IAAA,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACZ,IAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,IAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9B,QAAQ,CAAC,GAAG,CAAC;AACT,QAAA,KAAK,CAAC;YAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;AACnC,QAAA,KAAK,CAAC;YAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;AACnC,QAAA,KAAK,CAAC;YAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;AACnC,QAAA,KAAK,CAAC;YAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;AACnC,QAAA,KAAK,CAAC;YAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;AACnC,QAAA,KAAK,CAAC;YAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAAC,MAAM;AACtC,KAAA;AAED,IAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;AAClF,CAAC;AAGD,IAAM,QAAQ,GAAG,UAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAA,EAAK,OAAA,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA;IAC/C,IAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAC1B,IAAA,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAC7C,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,EAAA;;ACRL,SAAU,aAAa,CAAC,KAAyB,EAAA;IAAvD,IAuHC,KAAA,GAAA,IAAA,CAAA;IArHS,IAAA,EAAA,GAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAC;AAE9C,IAAA,IAAM,OAAO,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;AAE9C,IAAA,IAAM,GAAG,GAAG,MAAM,EAAE,CAAC;AAErB,IAAA,IAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAC7B,IAAA,IAAM,UAAU,GAAG,aAAa,EAAE,CAAC;AAEnC,IAAA,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;AACvB,IAAA,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAE3B,IAAA,IAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAG7C,IAAM,YAAY,GAAG,UAAO,GAAQ,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;;oBAC1B,QAAQ,GAAS,EAAU,CAAC;oBAClC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,KAAuB,EAAA;wBACnD,IAAI,KAAK,CAAC,IAAI,EAAE;4BACZ,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;AACtC,yBAAA;AACL,qBAAC,CAAC,CAAC;AACH,oBAAA,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC5E,GAAG,CAAC,cAAc,EAAE,CAAC;oBACrB,UAAU,CAAC,IAAI,CAAC,CAAC;AAEjB,oBAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAC,UAAA,GAAG,EAAA;AAC1D,wBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAA,EAAA,CAAC,EAAE;4BACpF,MAAM,CAAC,EAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAC,CAAC,CAAA;AACrE,yBAAA;AACL,qBAAC,CAAC,CAAC;yBAKA,KAAK,CAAC,IAAI,EAAV,OAAU,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;oBACL,OAAO,GAAG,KAAK,CAAC;;;;oBAEhB,OAAM,CAAA,CAAA,aAAA,MAAA,KAAK,CAAC,KAAK,CAAC,GAAG,0CAAE,UAAU,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAM,QAAQ,CAAE,EAAA,EAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAA,CAAA,EAAA,CAAA;;AAApE,oBAAA,EAAA,CAAA,IAAA,EAAoE,CAAC;oBACrE,OAAO,GAAG,IAAI,CAAC;;;;oBAEf,KAAK,CAAC,KAAK,CAAC,OAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;;;AAElC,oBAAA,IAAG,OAAO,EAAE;AACR,wBAAA,UAAU,uBAAK,KAAK,CAAC,IAAI,CAAK,EAAA,QAAQ,EAAE,CAAC;AACzC,wBAAA,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACjC,qBAAA;oBACD,UAAU,CAAC,KAAK,CAAC,CAAC;oBAClB,GAAG,CAAC,UAAU,EAAE,CAAC;;;oBAIb,OAAO,GAAG,KAAK,CAAC;;;;oBAEhB,OAAM,CAAA,CAAA,aAAA,MAAA,KAAK,CAAC,KAAK,CAAC,GAAG,0CAAE,UAAU,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAM,QAAQ,CAAE,EAAA,EAAA,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,EAAA,CAAA,CAAE,EAAA,CAAA;;AAA1E,oBAAA,EAAA,CAAA,IAAA,EAA0E,CAAC;oBAC3E,OAAO,GAAG,IAAI,CAAC;;;;oBAEf,KAAK,CAAC,KAAK,CAAC,OAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;;;AAElC,oBAAA,IAAG,OAAO,EAAE;AACR,wBAAA,OAAO,uBAAK,QAAQ,CAAA,EAAA,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAE,CAAC;AACpE,wBAAA,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAClC,wBAAA,eAAe,EAAE,CAAC;AACrB,qBAAA;oBACD,UAAU,CAAC,KAAK,CAAC,CAAC;oBAClB,GAAG,CAAC,UAAU,EAAE,CAAC;;;AAErB,oBAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;;;;SAChC,CAAA;AAGD,IAAA,IAAM,UAAU,GAAG,YAAA;QACf,IAAI,OAAO,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC3B,SAAA;AACL,KAAC,CAAA;AAED,IAAA,SAAS,CAAC,YAAA;AACN,QAAA,UAAU,EAAE,CAAC;AACjB,KAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEpB,QACI,oBAACA,KAAY,EAAA,EAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAChE,aAAa,EAAE;AACX,YAAA,MAAM,EAAE,YAAA;AACJ,gBAAA,UAAU,CAAC,YAAA;AACP,oBAAA,UAAU,EAAE,CAAA;iBACf,EAAE,GAAG,CAAC,CAAC;aACX;AACJ,SAAA,EACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAA;AACxB,QAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAA,CAAC,IAAI,OAAA,YAAY,CAAC,CAAC,CAAC,GAAA,EAAA;YAClE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,QAAQ,EAAO,CAAA;;oBAExC,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,2BAA2B,EAAA;wBAAC,KAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,yBAAyB,EAAA;;AAAM,4BAAA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAK,CAAM;AAEtH,YAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,YAAY,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,UAAU,EAAC,EAAE,EAAG,CAAA;YAE3H,KAAK,CAAC,QAAQ;AAEX,gBAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,EAAA;AAC7C,oBAAA,OAAA,KAAK,CAAC,cAAc,CAA+B,KAAK,CAAC;wBACrD,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;AADxF,iBACwF,CAC3F;;AAGD,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACI,wBAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EAAC,EAAA,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,YAAY,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,UAAU,EAAC,iBAAiB,GAAG,CACpK;YAGP,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,2BAA2B,EAAA;AACtC,gBAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAE,OAAO,GAAG,qDAAqD,GAAG,qCAAqC,EAAE,IAAI,EAAC,QAAQ,EAAE,EAAA,OAAO,GAAG,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,+BAA+B,EAAQ,CAAA,GAAG,MAAM,CAAU,CAC7N,CACH,CACI,EAClB;AACL;;AC/HO,IAAM,KAAK,GAAG,UAAC,KAAiB,EAAA;;IAE7B,IAAA,EAAA,GAAoC,QAAQ,CAA4B,IAAI,CAAC,CAA5E,CAAa,EAAA,CAAA,CAAA,CAAA,CAAA,KAAE,gBAAgB,GAAA,EAAA,CAAA,CAAA,EAA8C;AAEpF,IAAA,IAAM,UAAU,GAAG,aAAa,EAAE,CAAC;AAEnC,IAAA,IAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;AACzB,IAAA,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;AACrC,IAAA,IAAM,YAAY,GAAG,eAAe,EAAE,CAAC;AACvC,IAAA,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;AACrC,IAAA,IAAM,SAAS,GAAG,YAAY,EAAE,CAAC;AACjC,IAAA,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;AAC/B,IAAA,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;AAErC,IAAA,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;AAE7B,IAAA,IAAM,YAAY,GAAG,eAAe,EAAE,CAAC;AAEvC,IAAA,IAAM,GAAG,GAAG,MAAM,EAAE,CAAC;AAGrB,IAAA,SAAS,CAAC,YAAA;AAEN,QAAA,KAAK,CAAC,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,KAAK,CAAC,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;KACnC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;AAE3B,IAAA,YAAY,CAAC;QACT,SAAS,EAAE,UAAC,CAAC,EAAA;;AACT,YAAA,IAAM,IAAI,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAA,EAAA,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAC,CAAA,CAAE,IAAI,CAAC;AACpF,YAAA,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,KAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE;AACtF,gBAAA,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,WAAI,KAAK,CAAC,IAAI,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,IAAI,CAAC,EAAE,CAAE,CAAC,CAAA;gBAC7D,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;AAClE,gBAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,aAAa,CAAC,2BAA2B,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACxF,gBAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,aAAa,CAAC,iCAAiC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACjG,aAAA;SACJ;AACJ,KAAA,CAAC,CAAA;AAEF,IAAA,IAAM,SAAS,GAAG,YAAA;;AACd,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAG7B,QAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;AACjD,YAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAErB,GAAG,CAAC,UAAU,EAAE,CAAC;AACpB,SAAA;AACI,aAAA;AACD,YAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE;AAEtD,gBAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACxC,oBAAA,IAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;oBACjD,IAAM,QAAM,GAAG,CAAA,EAAA,GAAA,WAAW,CAAC,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAC;AACvC,oBAAA,IAAI,QAAM,IAAI,QAAM,IAAI,IAAI,EAAE;AAC1B,wBAAA,QAAM,KAAK,IAAI,KAAI,CAAA,EAAA,GAAA,MAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,eAAe,CAAC,QAAM,EAAE,YAAA;4BAClE,QAAM,CAAC,SAAS,EAAE,CAAC;yBACtB,CAAC,CAAA,CAAC;AACN,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACJ,SAAA;AAEL,KAAC,CAAA;AAED,IAAA,SAAS,CAAC,YAAA;AACN,QAAA,SAAS,EAAE,CAAC;AAChB,KAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAA;AAG3B,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;QACK,KAAK;AACF,aAAA,CAAA,EAAA,GAAA,MAAA,KAAK;gBACD,MAAM,CAAC,UAAA,IAAI,EAAA,EAAA,IAAA,EAAA,CAAA,CAAI,OAAA,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,MAAK,KAAK,CAAC,IAAI,CAAA,EAAA,CAAC,MAC/C,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAC,UAAA,IAAI,EAAA;AACP,gBAAA,OAAA,UAAU,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAA,SAAS,EAAA,EAAI,OAAA,SAAS,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAA,EAAA,CAAC,CAAA,EAAA,CAAC,CAAA;AAArH,aAAqH,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAC1H,MAAM,CAAC,UAAA,IAAI,EAAA;gBACP,OAAO,YAAY,KAAK,EAAE;sBACpB,IAAI;AACN,oBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAA;AACpI,aAAC,CACD,CAAA,GAAG,CAAC,UAAC,IAAU,EAAA;AACX,gBAAA,IAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;gBAE/B,IAAI,MAAM,GAAG,MAAM,CAAC;gBACpB,IAAI,MAAM,GAAG,uBAAuB,CAAC;AACrC,gBAAA,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;AACjB,oBAAA,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1B,iBAAA;AACD,gBAAA,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;AACjB,oBAAA,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1B,iBAAA;AACD,gBAAA,QACI,KAAC,CAAA,aAAA,CAAA,MAAM,IAAC,GAAG,EAAE,UAAC,CAAC,EAAA;AACX,wBAAA,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,WAAW,CAAC;AACzB,4BAAA,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;qBAC/B,EAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAA;AAE7J,qBAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,GAAA,CAAC;AACrI,wBAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,EAAA;AAC7C,4BAAA,OAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU;AAC5D,gCAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EAAC,GAAG,EAAE,UAAC,CAAC,EAAA;AAClB,wCAAA,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,WAAW,CAAC;AACzB,4CAAA,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAU,CAAC,CAAC;qCACvC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAI,EAAA,KAAK,CAAiB;AAC3G,kCAAE,EAAE,CAAA;AALR,yBAKQ,CACX;;AAED,4BAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACI,gCAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,UAAC,CAAC,EAAA;AAC5C,wCAAA,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,WAAW,CAAC;AACzB,4CAAA,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAU,CAAC,CAAC;AACxC,qCAAC,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAI,CAAA,CAC5D;oBAEX,KAAC,CAAA,aAAA,CAAA,OAAO,IAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAC,KAAK,EAAE,EAAA,IAAI,CAAC,IAAI,CAAW,CAC3D,EACX;AACN,aAAC,CAAC,CAAA;AAIT,QAAA,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,KAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;AACjE,aAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,GAAA,CAAC;AACrI,gBAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,EAAA;;AAC7C,oBAAA,OAAA,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU;AAC5D,wBAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EAAC,EAAA,GAAG,EAAE,CAAA,EAAA,GAAA,KAAK,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,aAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,aAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,aAAc,CAAC,IAAI,EAAA,EAAI,KAAK,CAAiB;0BACzN,EAAE,CAAA;iBAAA,CACX;;AAED,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AACI,wBAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EAAC,QAAQ,EAAE,KAAK,CAAC,aAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,aAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,aAAc,CAAC,IAAI,EAAI,CAAA,CACnK,CAAC,CAEb,EACN;AACL;;AClJM,SAAU,IAAI,CAAC,EAAiD,EAAA;QAAhD,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,GAAG,GAAA,EAAA,CAAA,GAAA,CAAA;AAC/B,IAAA,IAAM,UAAU,GAAG,aAAa,EAAE,CAAC;AACnC,IAAA,IAAM,SAAS,GAAG,YAAY,EAAE,CAAC;AAEjC,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;AACxB,KAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IAEb,QACE,KAAK,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,CAAA,EACN;AACH;;ACXM,SAAU,WAAW,CAAC,EAA8F,EAAA;AAA7F,IAAA,IAAA,IAAI,UAAA,EAAE,GAAG,GAAA,EAAA,CAAA,GAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,CAAA;AACjD,IAAA,IAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;AACjD,IAAA,IAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;AAC/C,IAAA,IAAM,YAAY,GAAG,eAAe,EAAE,CAAC;AAChC,IAAA,IAAA,IAAI,GAAI,OAAO,EAAE,KAAb,CAAc;AAEzB,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;AACrC,QAAA,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAChC,QAAA,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;KAC9B,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IAE9B,QACE,KAAK,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,CAAA,EACN;AACH;;AChBO,IAAM,QAAQ,GAAG,UAAC,EAA+D,EAAA;QAA7D,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AACrC,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EACI,QAAQ;QACJ,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,EAAA;AACvC,YAAA,OAAA,KAAK,CAAC,cAAc,CAA+B,KAAK,CAAC;AACrD,gBAAA,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAA;AADhE,SACgE,CACnE,GAAG,EAAE,CACP,EACV;AACL,EAAC;AAED,QAAQ,CAAC,SAAS,GAAG;IACjB,QAAQ,EAAE,SAAS,CAAC,IAAI;IACxB,MAAM,EAAE,SAAS,CAAC,MAAM;CAC3B,CAAC;AAEF,QAAQ,CAAC,YAAY,GAAG;AACpB,IAAA,MAAM,EAAE,UAAU;CACrB;;ACnBM,IAAM,QAAQ,GAAG,UAAC,EAA+D,EAAA;QAA7D,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AACvC,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EACG,QAAQ;QACP,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,EAAA;AACzC,YAAA,OAAA,KAAK,CAAC,cAAc,CAA+B,KAAK,CAAC;AACvD,gBAAA,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAA;AAD9D,SAC8D,CAC/D,GAAG,EAAE,CACJ,EACP;AACH,EAAC;AAED,QAAQ,CAAC,SAAS,GAAG;IACnB,QAAQ,EAAE,SAAS,CAAC,IAAI;IACxB,MAAM,EAAE,SAAS,CAAC,MAAM;CACzB,CAAC;AAEF,QAAQ,CAAC,YAAY,GAAG;AACtB,IAAA,MAAM,EAAE,UAAU;CACnB;;ACpBM,IAAM,kBAAkB,GAAG,UAAC,EAM9B,EAAA;QANgC,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAQpE,IAAA,QACI,KAAC,CAAA,aAAA,CAAA,aAAa,EAAC,EAAA,YAAY,EAAE,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,IAAI,IAAG,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAA,CAAkB,EAChJ;AACL;;ACXO,IAAM,kBAAkB,GAAG,UAAC,EAAmB,EAAA;AAAlB,IAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AACpC,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yCAAyC,EAAA;QAChD,KAAC,CAAA,aAAA,CAAA,SAAS,IAAC,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAC,UAAU,EAAC,oBAAoB,EAAC,UAAU,EAAC,OAAO,EAAC,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,GAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAc,CAAA;QAChM,KAAC,CAAA,aAAA,CAAA,SAAS,IAAC,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,KAAK,EAAC,SAAS,EAAC,KAAK,EAAC,UAAU,EAAC,oBAAoB,EAAC,UAAU,EAAC,KAAK,EAAC,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAA,CAAc,CACzL,EACP;AACP;;ACRO,IAAM,YAAY,GAAG,UAAC,EAAqB,EAAA;AAApB,IAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAChC,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6BAA6B,EAAA;QAC5C,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,kCAAkC,EAAA;YAC/C,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,4BAA4B,EAAC,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAE,CAAC,EAAA;AAC5I,gBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,CAAC,EAAC,wFAAwF,EAAA,CAAG,CAC5I;YACN,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,iBAAiB,EAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,GAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAA,EAAG,IAAI,IAAI,IAAI,CAAC,KAAK,GAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,GAAE,EAAE,CAAQ,CACxK;QACN,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,sCAAsC,EAAA;AACnD,YAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAAA,GAAA,CAAc,CACV;QACN,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,kCAAkC,EAAA;YAC/C,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,4BAA4B,EAAC,SAAS,EAAC,uBAAuB,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAE,CAAC,EAAA;AAC5I,gBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,CAAC,EAAC,wFAAwF,EAAA,CAAG,CAC5I;YACN,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,iBAAiB,EAAC,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,GAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAG,EAAA,IAAI,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAQ,CAClK,CACF,EACL;AACH;;ACnBA,IAAM,sBAAsB,GAAG,UAAC,CAAa,EAAE,OAAoB,EAAA;AACjE,IAAA,IAAM,CAAC,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAE1C,IAAA,QACE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI;AAClB,QAAA,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK;AACnB,QAAA,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG;AACjB,QAAA,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,EACpB;AACJ,CAAC,CAAC;AASF,IAAM,WAAW,GAAG,UAAC,EAKb,EAAA;QAJN,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;AAGR,IAAA,IAAM,GAAG,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;AAE5C,IAAA,SAAS,CAAC,YAAA;;AACR,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,EAAE,CAAC;YACzB,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC3C,SAAA;AAAM,aAAA;AACL,YAAA,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;YACrB,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC9C,SAAA;AACH,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAGf,IAAA,QACE,KAAQ,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,SAAS,EAAC,4HAA4H,EAE5I,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,UAAC,CAAC,EAAA;AACT,YAAA,OAAA,GAAG,CAAC,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,CAAA;SAAA,EAAA;QAGtE,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,qBAAqB,EAAA;AAEpC,YAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,qDAAqD,EAAA,EAAE,KAAK,CAAM;YAE9E,QAAQ;YACT,KAAQ,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,SAAS,EAAC,6EAA6E,EAAC,OAAO,EAAE,OAAO,EAAY,EAAA,QAAA,CAAA,CAEtH,CACC,EACT;AACJ,CAAC;;ACrDuB,SAAA,MAAM,CAAC,EAA+B,EAAA;IAA9D,IA4KC,KAAA,GAAA,IAAA,CAAA;AA5KgC,IAAA,IAAA,OAAO,GAAA,EAAA,CAAA,OAAA,CAAA;IAGhC,IAAA,EAAA,GAA8B,QAAQ,CAAC,KAAK,CAAC,EAA5C,UAAU,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,aAAa,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAC;IAC9C,IAAA,EAAA,GAA4B,QAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAC;IAG5C,IAAA,EAAA,GAAoB,QAAQ,CAAS,EAAE,CAAC,EAAvC,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAwB,CAAC;IACzC,IAAA,EAAA,GAA0B,QAAQ,CAAS,EAAE,CAAC,EAA7C,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAAwB,CAAC;IAC/C,IAAA,EAAA,GAA0B,QAAQ,CAAS,EAAE,CAAC,EAA7C,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAAwB,CAAC;IAG/C,IAAA,EAAA,GAAqE,OAAO,EAAE,EAA5E,eAAe,qBAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAc,CAAC;AAErF,IAAA,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;AAE/B,IAAA,IAAM,UAAU,GAAG,YAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;AACjB,gBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,KAAK,CAAC,OAAO,CACjB,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,EACxD;AACE,wBAAA,OAAO,EAAE;AACP,4BAAA,MAAM,YAAC,EAAQ,EAAA;AAAN,gCAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;gCACX,QAAQ,CAAC,GAAG,CAAC,CAAC;gCACd,OAAO,KAAA,CAAA,MAAA,CAAM,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAE,CAAA;6BAChC;;AAED,4BAAA,IAAI,EAAE,IAAI;AACX,yBAAA;AACD,wBAAA,KAAK,EAAE;AACL,4BAAA,MAAM,YAAE,EAAM,EAAA;AAAL,gCAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;gCACX,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAE,CAAA;6BACjB;AACF,yBAAA;AACD,wBAAA,OAAO,EAAE,uBAAuB;AACjC,qBAAA,CAAC,CAAA,CAAA;;AAjBJ,oBAAA,EAAA,CAAA,IAAA,EAiBI,CAAC;oBACL,aAAa,CAAC,KAAK,CAAC,CAAC;;;;SACtB,CAAA;AAED,IAAA,IAAM,OAAO,GAAG,YAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;AACd,gBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,KAAK,CAAC,OAAO,CACjB,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAC3C;AACE,wBAAA,OAAO,EAAE;AACP,4BAAA,MAAM,YAAC,EAAQ,EAAA;AAAN,gCAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;gCACX,QAAQ,CAAC,GAAG,CAAC,CAAC;gCACd,OAAO,KAAA,CAAA,MAAA,CAAM,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAE,CAAA;6BAChC;;AAED,4BAAA,IAAI,EAAE,IAAI;AACX,yBAAA;AACD,wBAAA,KAAK,EAAE;AACL,4BAAA,MAAM,YAAE,EAAM,EAAA;AAAL,gCAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;gCACX,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAE,CAAA;6BACjB;AACF,yBAAA;AACD,wBAAA,OAAO,EAAE,gBAAgB;AAC1B,qBAAA,CAAC,CAAA,CAAA;;AAjBJ,oBAAA,EAAA,CAAA,IAAA,EAiBI,CAAC;oBACL,YAAY,CAAC,KAAK,CAAC,CAAC;;;;SACrB,CAAA;AAED,IAAA,IAAM,QAAQ,GAAG,YAAA;AACf,QAAA,KAAK,CAAC,OAAO,CACX,MAAM,EAAE,EACR;AACE,YAAA,OAAO,EAAE;gBACP,MAAM,EAAA,YAAA;AACJ,oBAAA,OAAO,SAAS,CAAA;iBACjB;;AAED,gBAAA,IAAI,EAAE,IAAI;AACX,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,MAAM,YAAE,EAAM,EAAA;AAAL,oBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;oBACX,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAE,CAAA;iBACjB;AACF,aAAA;AACD,YAAA,OAAO,EAAE,gBAAgB;AAC1B,SAAA,CAAC,CAAC;AACP,KAAC,CAAA;AAED,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;QACE,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,oCAAoC,EAAA;YACjD,KAAQ,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,SAAS,EAAC,mCAAmC,EAAA,4BAAA,EAAA,IAAA,EAAA,gBAAA,EAEpC,UAAU,EACX,eAAA,EAAA,UAAU,mBACV,MAAM,EAAA;AACpB,gBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,iDAAiD,EAAA;AAAC,oBAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,EAAC,GAAG,EAAC,CAAC,EAAC,yBAAyB,EAAA,CAAQ,CAAM,CACzO;YACT,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,mBAAmB,EAAA;gBAChC,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,6DAA6D,EAAA;oBAC1E,KAAC,CAAA,aAAA,CAAA,IAAI,IAAC,SAAS,EAAC,6EAA6E,EAAC,EAAE,EAAE,GAAG,EAAA;AAAE,wBAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,aAAa,EAAE,EAAA,OAAO,CAAK,CAAO;AACtJ,oBAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAC,8BAA8B,EAAC,OAAO,EAAE,YAAA,EAAM,OAAA,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,GAAA,EAAA;wBAAE,KAAC,CAAA,aAAA,CAAA,gBAAgB,IAAC,SAAS,EAAC,eAAe,EAAG,CAAA,CAAS,CAElJ,CACF;AAIL,YAAA,eAAe;gBACd,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,cAAc,EAAA;AAC1B,oBAAA,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,MAAM,IAAG,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,WAAW,EAAA;wBACxC,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,yBAAyB,EAAA;4BACtC,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,oCAAoC,IAAG,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,CAAA,GAAG,gBAAgB,GAAG,KAAK,EAAA,CAAI,CACxF,CACF,GAAG,KAAK,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,CAAA;oBACd,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,iBAAiB,EAAE,EAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,UAAU,CAAO;oBACzD,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,6BAA6B,EAAA;AAC1C,wBAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,mCAAmC,EAAA;AAC/D,4BAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,4BAA4B,EAAC,SAAS,EAAC,eAAe,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,EAAA;AACvG,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,8FAA8F,EAAA,CAAG,CACrG,CACA;AACR,wBAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,0HAA0H,EAAA;AACnJ,4BAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;AAAI,gCAAA,KAAA,CAAA,aAAA,CAAC,IAAI,EAAC,EAAA,EAAE,EAAE,WAAW,eAAiB,CAAK;AAC/C,4BAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;AAAI,gCAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,OAAO,EAAE,YAAQ,EAAA,QAAQ,EAAE,CAAA,EAAE,EAAY,EAAA,QAAA,CAAA,CAAK,CAClD,CACD,CACF;;AAEN,oBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA;wBAEE,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,sBAAsB,EAAA;AACnC,4BAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAE,YAAM,EAAA,OAAA,YAAY,CAAC,IAAI,CAAC,CAAA,EAAA,EAAE,SAAS,EAAC,6BAA6B,EAEzE,EAAA,OAAA,CAAA;AAEN,4BAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,OAAO,EAAE,YAAM,EAAA,OAAA,aAAa,CAAC,IAAI,CAAC,CAAA,EAAA,EAAE,SAAS,EAAC,6BAA6B,cAE1E,CACF;wBACN,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,6BAA6B,EAAA;AAC1C,4BAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,kCAAkC,EAAA;AAC9D,gCAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,4BAA4B,EAAC,SAAS,EAAC,eAAe,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,EAAA;AACvG,oCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,8FAA8F,EAAA,CAAG,CACrG,CAGA;AACR,4BAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,0GAA0G,EAAA;AACnI,gCAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;oCAAI,KAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,OAAO,EAAE,YAAA,EAAO,YAAY,CAAC,IAAI,CAAC,CAAA,EAAC,EAAA,EAAA,OAAA,CAAW,CAAK;AAC1D,gCAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;AAAI,oCAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,OAAO,EAAE,YAAM,EAAA,OAAA,aAAa,CAAC,IAAI,CAAC,CAAA,EAAA,EAAa,EAAA,SAAA,CAAA,CAAK,CACxD,CACD,CAEF,CAEJ;AACN,QAAA,KAAA,CAAA,aAAA,CAAC,WAAW,EACV,EAAA,KAAK,EAAC,OAAO,EACb,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,GAAA,EAAA;AAClC,YAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,EAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAA,CAAC,EAAI,EAAA,OAAA,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,EAAA,EAAE,SAAS,EAAC,kDAAkD,EAAG,CAAA;AAC/J,YAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,UAAU,EAAC,WAAW,EAAC,UAAU,EAAC,QAAQ,EAAE,UAAA,CAAC,EAAI,EAAA,OAAA,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAA3B,EAA2B,EAAE,SAAS,EAAC,kDAAkD,EAAG,CAAA;YACzJ,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,iBAAiB,EAAA;AAC9B,gBAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAE,OAAO,GAAG,oDAAoD,GAAG,oCAAoC,EAAE,OAAO,EAAE,YAAA,EAAM,OAAA,OAAO,EAAE,CAAT,EAAS,IAAG,OAAO,GAAG,8BAAM,SAAS,EAAC,+BAA+B,EAAA,CAAQ,GAAG,OAAO,CAAU,CACtO,CACM;AACd,QAAA,KAAA,CAAA,aAAA,CAAC,WAAW,EACV,EAAA,KAAK,EAAC,SAAS,EACf,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,KAAK,CAAC,GAAA,EAAA;AACnC,YAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAA,CAAC,EAAI,EAAA,OAAA,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,EAAA,EAAE,SAAS,EAAC,kDAAkD,EAAG,CAAA;AAClK,YAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,EAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAA,CAAC,EAAI,EAAA,OAAA,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,EAAA,EAAE,SAAS,EAAC,kDAAkD,EAAG,CAAA;AAC/J,YAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,UAAU,EAAC,WAAW,EAAC,UAAU,EAAC,QAAQ,EAAE,UAAA,CAAC,EAAI,EAAA,OAAA,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAA3B,EAA2B,EAAE,SAAS,EAAC,kDAAkD,EAAG,CAAA;YACzJ,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,iBAAiB,EAAA;AAC9B,gBAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAE,OAAO,GAAG,oDAAoD,GAAG,oCAAoC,EAAE,OAAO,EAAE,YAAM,EAAA,OAAA,UAAU,EAAE,CAAA,EAAA,EAAA,EAAG,OAAO,GAAG,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,+BAA+B,EAAA,CAAQ,GAAG,SAAS,CAAU,CAC3O,CACM,CACb,EACJ;AACH;;ACjLM,SAAU,QAAQ,CAAC,EAAqB,EAAA;QAAnB,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;IACxC,QACI,oBAAC,aAAa,EAAA,IAAA;AACV,QAAA,KAAA,CAAA,aAAA,CAAC,cAAc,EAAA,EAAC,QAAQ,EAAC,WAAW,EAChC,SAAS,EAAE,IAAI,EACf,eAAe,EAAA,IAAA,EACf,WAAW,EAAE,KAAK,EAClB,YAAY,EACZ,IAAA,EAAA,GAAG,EAAE,KAAK,EACV,gBAAgB,EAAA,IAAA,EAChB,SAAS,EAAA,IAAA,EACT,YAAY,EAAA,IAAA,EACZ,KAAK,EAAC,OAAO,EAAG,CAAA;AACpB,QAAA,KAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAE,OAAO,EAAW,CAAA;AACnC,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,EAAE,EAAC,aAAa,EAAC,SAAS,EAAC,uBAAuB,EAAA,EAClD,QAAQ,CACP,CACM,EACnB;AACL;;AClBA,SAAS,cAAc,CAAC,EAGO,EAAA;AAHN,IAAA,IAAA,OAAO,aAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAIxC,IAAA,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IACxB,IAAA,EAAA,GAA8B,QAAQ,CAAC,KAAK,CAAC,EAA5C,UAAU,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,aAAa,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAA;;AAInD,IAAA,SAAS,CAAC,YAAA;QACN,IAAG,OAAO,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAK,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAA,EAAC,CAAC,CAAC,CAAC,CAAC;YAAC,aAAa,CAAC,IAAI,CAAC,CAAA;KACvF,EAAE,EAAE,CAAC,CAAA;AAEN,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,UAAU,EAAA;AAGrB,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,YAAA,EAAM,OAAA,aAAa,CAAC,CAAC,UAAU,CAAC,GAAA,EAAA;YAC5D,IAAI;;AAAE,YAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,wFAAwF,EAAA,sBAAA,EAAsB,OAAO,EAAA;gBAAE,IAAI;AAAS,gBAAA,GAAA,CAAA;AAC3J,YAAA,KAAA,CAAA,aAAA,CAAC,eAAe,EAAC,EAAA,SAAS,EAAE,kEAAkE,IAAI,UAAU,GAAG,YAAY,GAAG,EAAE,CAAC,GAAG,CAClI;AAGN,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,0CAA0C,IAAG,UAAU,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAA;YACpF,KAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAE,mBAAmB,EAE9B,EAAA,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA;AACb,gBAAA,QACI,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,GAAG,EAAE,CAAC,EAAA;oBACN,KAAC,CAAA,aAAA,CAAA,IAAI,EAAC,EAAA,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAC,EAAE,EAAA;AACzB,wBAAA,CAAC,CAAC,IAAI;wBAAC,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,EAAE,EAAA,sBAAA,EAAsB,OAAO,EAAE,EAAA,CAAC,CAAC,IAAI,CAAQ;wBAE/D,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,iFAAiF,EAAA,aAAA,EAChH,MAAM,EAAA,CAAQ,IAAI,IAAI,CAE3C,CACN,EACR;AACL,aAAC,CAAC,CAED,CACH,CACJ,EACT;AACL;;AC/BM,SAAU,OAAO,CAAC,EAA6B,EAAA;AAA5B,IAAA,IAAA,MAAM,GAAA,EAAA,CAAA,MAAA,CAAA;;AAG7B,IAAA,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAE1B,IAAA,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAEzB,IAAA,EAAA,GAA0B,QAAQ,CAAM,IAAI,CAAC,EAA5C,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAAuB,CAAC;IAC9C,IAAA,EAAA,GAAkB,QAAQ,CAAU,KAAK,CAAC,EAAzC,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,GAAA,EAAA,CAAA,CAAA,CAA4B,CAAC;AAIjD,IAAA,IAAM,UAAU,GAAG,YAAA;AACjB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QACf,QAAQ,CAAC,UAAU,EAAE,CAAC;AACxB,KAAC,CAAA;AAID,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,MAAM,CAAC,EAAE,OAAO,EAAA,OAAA,EAAE,CAAC,CAAC;AACpB,YAAA,IAAM,UAAQ,GAAG,OAAO,CAAC,WAAW,CAClC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CACnC,CAAC;YACF,WAAW,CAAC,UAAQ,CAAC,CAAC;YACtB,UAAQ,CAAC,UAAU,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,SAAA;KACF,EAAE,EAAE,CAAC,CAAA;IAEN,QACE,6BACE,EAAE,EAAC,SAAS,EACZ,SAAS,EAAC,wiBAAwiB,EAE3hB,sBAAA,EAAA,IAAA,EAAA,wBAAA,EAAA,MAAM,0BACR,MAAM,EAAA,sBAAA,EACN,MAAM,EACH,yBAAA,EAAA,cAAc,oCACP,MAAM,EAAA,4BAAA,EACT,IAAI,EAAA,uBAAA,EACT,KAAK,EAAA;QAC1B,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,+BAA+B,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,oBAAoB,EAAC,EAAA;YACtF,KAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,8DAA8D,EAExE,0BAAA,EAAA,IAAA,EAAA,EAAA,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,CAAC,EAAA;AAClB,gBAAA,QACE,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,EAAE,EAAC,GAAG,EAAE,CAAC,EAEnB,EAAA,KAAK,CAAC,OAAO;AACX,oBAAA,KAAA,CAAA,aAAA,CAAC,cAAc,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAA,CAAI;AAC7B,qBAAC,KAAC,CAAA,aAAA,CAAA,OAAO,EACP,EAAA,GAAG,QACH,EAAE,EAAE,KAAK,CAAC,IAAI,EACd,SAAS,EAAE,UAAC,EAAY,EAAA;AAAV,4BAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;4BAAO,OAAA,EAAA,CAAA,MAAA,CAAG,QAAQ,GAAG,mDAAmD,GAAG,iCAAiC,CAAE,CAAA;yBAAA,EAAE,OAAO,EAAG,YAAA;AAAO,4BAAA,IAAG,MAAM,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI;gCAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;yBACxM,EAAA;AACA,wBAAA,KAAK,CAAC,IAAI;wBAAC,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,2FAA2F,EAAA,sBAAA,EAAsB,OAAO,EAAE,EAAA,KAAK,CAAC,IAAI,CAAQ;wBAEtK,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,IAAG,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,4FAA4F,EAAA,aAAA,EAClM,MAAM,EAAQ,CAAA,IAAI,IAAI,CAE9B,CAAC,CAGZ,EACN;AACH,aAAC,CAAC,CAkHD;YACL,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,EAAE,EAAC,cAAc,EAAC,SAAS,EAAC,yDAAyD,mBAAe,MAAM,EAAA;AAE7G,gBAAA,KAAA,CAAA,aAAA,CAAC,gBAAgB,EAAA,EAAC,SAAS,EAAE,yGAAyG,IAAI,CAAC,IAAI,GAAG,eAAe,GAAG,EAAE,CAAC,EAAE,OAAO,EAAK,YAAA,EAAQ,OAAA,UAAU,EAAE,CAAZ,EAAY,EAAG,CAAA,CACxM,CACA,CACF,EACP;AACH;;AC1MM,SAAU,OAAO,CAAC,EAAyB,EAAA;AAAxB,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;IAC/B,QACE,6BAAK,SAAS,EAAC,2CAA2C,EACvD,EAAA,QAAQ,CACL,EAEP;AACH;;ACXC,SAAS,QAAQ,CAAC,EAAqE,EAAA;QAApE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;IACpC,QACI,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,8BAAA,CAAA,MAAA,CAA+B,UAAU,CAAE,EAAG,EAAA,QAAQ,CAAO,EAChF;AACL;;ACKQ,SAAU,SAAS,CAAC,EAA6D,EAAA;QAA5D,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,EAAE,cAAc,GAAA,EAAA,CAAA,cAAA,CAAA;IACjE,QACI,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,yEAAyE,IAAI,SAAS,IAAI,SAAS,CAAC,EAAA;AAGhH,QAAA,KAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EAAC,UAAU,EAAE,cAAc,GAAG,iBAAiB,GAAG,EAAE,EAAA;YAC1D,KAAK;YAIF,cAAc,IAAI,6BAAK,SAAS,EAAC,gCAAgC,EAAE,EAAA,cAAc,CAAO,CAEnF;QAEX,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,oBAAoB,EAAO,CAAA;QAG1C,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,4CAA4C,EAAA,EACtD,QAAQ,CACP,CACJ,EAET;AACL;;SCtBc,QAAQ,GAAA;AAEhB,IAAA,IAAA,EAAgC,GAAA,OAAO,EAAE,EAAvC,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAc,CAAC;IAE1C,IAAA,EAAA,GAAc,QAAQ,CAAS,EAAE,CAAC,EAAjC,EAAE,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,GAAA,EAAA,CAAA,CAAA,CAAwB,CAAC;IACnC,IAAA,EAAA,GAAkB,QAAQ,CAAS,EAAE,CAAC,EAArC,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,GAAA,EAAA,CAAA,CAAA,CAAwB,CAAC;IACvC,IAAA,EAAA,GAAkB,QAAQ,CAAS,EAAE,CAAC,EAArC,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,GAAA,EAAA,CAAA,CAAA,CAAwB,CAAC;IACvC,IAAA,EAAA,GAAoB,QAAQ,CAAS,EAAE,CAAC,EAAvC,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAwB,CAAC;IACzC,IAAA,EAAA,GAA0B,QAAQ,CAAS,EAAE,CAAC,EAA7C,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAAwB,CAAC;IAE/C,IAAA,EAAA,GAAwC,QAAQ,CAAU,KAAK,CAAC,EAA/D,eAAe,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,kBAAkB,GAAA,EAAA,CAAA,CAAA,CAA4B,CAAC;AAKvE,IAAA,SAAS,CAAC,YAAA;QACR,KAAK,CAAC,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,EAAE,IAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,UAAU,IAAG,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,WAAW,IAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QACnD,QAAQ,CAAC,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,KAAK,IAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACxC,WAAW,CAAC,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,QAAQ,IAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;AACnD,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;AAEV,IAAA,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;AAG/B,IAAA,IAAM,YAAY,GAAG,YAAA;QACnB,IAAI,WAAW,GAAG,EAAc,CAAC;AAEjC,QAAA,IAAG,eAAe,EAAE;YAClB,WAAW,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACjG,SAAA;AACI,aAAA;AACH,YAAA,WAAW,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC7E,SAAA;AACD,QAAA,KAAK,CAAC,OAAO,CAEX,UAAU,CAAC,WAAW,CAAC,EACvB;AACE,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,OAAO;SACf,CAAC;aACD,IAAI,CAAC,YAAM,EAAA,OAAA,QAAQ,CAAC,GAAG,CAAC,CAAA,EAAA,CAAC,CAAC;AAC/B,KAAC,CAAA;AAGD,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,wHAAwH,EAAA;QACtI,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,2BAA2B,EAAA;YACxC,KAAC,CAAA,aAAA,CAAA,SAAS,IAAC,KAAK,EAAC,kBAAkB,EAAC,SAAS,EAAC,SAAS,EAAA;gBAGrD,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,mDAAmD,EAAA;AAChE,oBAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAC,EAAA,WAAW,EAAC,MAAM,EAAC,YAAY,EAAE,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,UAAU,IAAG,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,eAAe,EAAE,UAAC,CAAC,EAAK,EAAA,OAAA,OAAO,CAAC,CAAC,CAAC,CAAV,EAAU,GAAI,CACvH;gBACN,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,mEAAmE,EAAA;oBAChF,KAAC,CAAA,aAAA,CAAA,aAAa,IAAC,WAAW,EAAC,+BAA+B,EAAC,YAAY,EAAE,CAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,WAAW,IAAG,IAAI,CAAC,WAAW,GAAG,EAAE,EAAE,eAAe,EAAE,UAAC,CAAC,IAAK,OAAA,OAAO,CAAC,CAAC,CAAC,GAAA,EAAE,UAAU,EAAC,SAAS,GAAE,CAC1K;gBACN,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,YAAY,EAAQ,CAAA;gBAGnC,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,mDAAmD,EAAA;AAClE,oBAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAC,EAAA,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,KAAK,IAAG,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,eAAe,EAAE,UAAC,CAAC,EAAA,EAAK,OAAA,QAAQ,CAAC,CAAC,CAAC,CAAA,EAAA,EAAI,CAAA;AACjI,oBAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,IAAI,EAAC,UAAU,EAAC,WAAW,EAAC,cAAc,EAAC,YAAY,EAAE,CAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,QAAQ,IAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,EAAE,eAAe,EAAE,UAAC,CAAC,EAAA;4BAC1H,WAAW,CAAC,CAAC,CAAC,CAAC;4BACf,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC3B,yBAAC,GAAI,CAEC;gBAEN,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,SAAS,EAAA;oBAAC,KAAQ,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,SAAS,EAAE,OAAO,GAAG,kEAAkE,GAAG,sCAAsC,EAAE,OAAO,EAAE,YAAM,EAAA,OAAA,YAAY,EAAE,CAAd,EAAc,EAAiB,EAAA,QAAA,CAAA,CAAM,CAE7M,CACR,CACD,EACR;AACH;;ACjFM,SAAU,QAAQ,CAAC,EAA6B,EAAA;AAA3B,IAAA,IAAA,WAAW,GAAA,EAAA,CAAA,WAAA,CAAA;AAClC,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;QACI,KAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,yBAAyB,EAAkD,EAAA,mDAAA,CAAA;QACzF,KAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,SAAS,EAAA;;YAIlB,KAAM,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,CAAA;YAAA,KAAM,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,CAAA;AACZ,YAAA,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA,EAAA,2BAAA,CAAgC,CAAI;QACxC,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,iBAAiB,EAAA;AAC5B,YAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAC,uBAAuB,EAAC,OAAO,EAAE,YAAM,EAAA,OAAA,WAAY,EAAE,GAAA,EAAA,EAAA,WAAA,CAAmB,CACvF,CACP,EACN;AACL,CAAC;AAEK,SAAU,QAAQ,CAAC,EAA6B,EAAA;AAA3B,IAAA,IAAA,WAAW,GAAA,EAAA,CAAA,WAAA,CAAA;AAClC,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;QACI,KAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,yBAAyB,EAA0C,EAAA,2CAAA,CAAA;QACjF,KAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,SAAS,EAAA;;YAElB,KAAM,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,CAAA;YAAA,KAAM,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,CAAA;AACkI,YAAA,4IAAA,CAAA;QAClJ,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,iBAAiB,EAAA;AAC5B,YAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAC,uBAAuB,EAAC,OAAO,EAAE,YAAM,EAAA,OAAA,WAAY,EAAE,GAAA,EAAA,EAAA,YAAA,CAAoB,CACxF,CACP,EACN;AACL,CAAC;AAEK,SAAU,QAAQ,CAAC,EAA6B,EAAA;AAA3B,IAAA,IAAA,WAAW,GAAA,EAAA,CAAA,WAAA,CAAA;AAClC,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;QACI,KAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,yBAAyB,EAA2C,EAAA,uCAAA,CAAA;QAClF,KAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,6BAA6B,EAAA;YACvC,KAA2B,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,EAAA,8BAAA,CAAA;YAC3B,KAA8B,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,EAAA,iCAAA,CAAA;YAC9B,KAAyB,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,EAAA,4BAAA,CAAA;YACzB,KAAmB,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,EAAA,sBAAA,CAAA;AACnB,YAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,EAAA,6BAAA,CAAqB,CACpB;QACL,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,iBAAiB,EAAA;AAC5B,YAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAC,uBAAuB,EAAC,OAAO,EAAE,YAAM,EAAA,OAAA,WAAY,EAAE,GAAA,EAAA,EAAA,cAAA,CAAuB,CAC5F,CACP,EACN;AACL,CAAC;SAGe,KAAK,GAAA;IAEX,IAAA,EAAA,GAAwB,QAAQ,CAAS,CAAC,CAAC,EAA1C,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAAuB,CAAC;AAElD,IAAA,IAAM,KAAK,GAAG,YAAA;AACV,QAAA,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC9B,KAAC,CAAA;AAED,IAAA,IAAM,aAAa,GAAG,YAAA;AAClB,QAAA,QAAQ,OAAO;AACX,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,KAAC,CAAA,aAAA,CAAA,QAAQ,EAAC,EAAA,WAAW,EAAE,YAAQ,EAAA,UAAU,CAAC,CAAC,CAAC,CAAA,EAAE,GAAI,CAAA;AAC7D,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,KAAC,CAAA,aAAA,CAAA,QAAQ,EAAC,EAAA,WAAW,EAAE,YAAQ,EAAA,UAAU,CAAC,CAAC,CAAC,CAAA,EAAE,GAAI,CAAA;AAC7D,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,KAAC,CAAA,aAAA,CAAA,QAAQ,EAAC,EAAA,WAAW,EAAE,YAAA;wBAC1B,UAAU,CAAC,CAAC,CAAC,CAAC;AACd,wBAAA,KAAK,EAAE,CAAC;AACZ,qBAAC,GAAI,CAAA;AACT,YAAA,SAAS,OAAO,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,CAAK,CAAA;AACxB,SAAA;AACL,KAAC,CAAC;AAEF,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;AAGI,QAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,YAAY,EAAC,SAAS,EAAC,UAAU,EAAA;AACxC,YAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAC,cAAc,EAAA;gBAC1C,KAAQ,CAAA,aAAA,CAAA,QAAA,EAAA,EAAA,SAAS,EAAC,6EAA6E,EAAW,EAAA,QAAA,CAAA;gBAC1G,KAAC,CAAA,aAAA,CAAA,aAAa,OAAG,CACd;AACP,YAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,MAAM,EAAC,QAAQ,EAAC,SAAS,EAAC,mBAAmB,EAAA;AAC/C,gBAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,IAAA,EAAA,OAAA,CAAsB,CACnB,CACF,CACV,EACN;AACL;;SC/FgB,MAAM,GAAA;AAEZ,IAAA,IAAA,EAAkB,GAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAArC,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,QAAwB,CAAC;AAE7C,IAAA,IAAI,IAAI;AAAE,QAAA,QACN,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA;YACI,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,yFAAyF,EAAA;gBACpG,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,6BAA6B,EAAA;oBACxC,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,gCAAgC,EAAA;AAC3C,wBAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAC,6EAA6E,EAAC,OAAO,EAAE,YAAA,EAAI,OAAA,OAAO,CAAC,KAAK,CAAC,CAAd,EAAc,aAAW,CACnI;oBACN,KAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,0BAA0B,EAAa,EAAA,SAAA,CAAA;oBACrD,KAAI,CAAA,aAAA,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,aAAa,EAAA;AACvB,wBAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;4BAAI,KAAO,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,SAAS,EAAC,4CAA4C,EAAA;AAAC,gCAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAC,gDAAgD,EAAC,OAAO,EAAG,IAAA,EAAA,CAAA;AAAA,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kCAAkC,EAAA,EAAA,cAAA,CAAoB,CAAQ,CAAK;AACjQ,wBAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;4BAAI,KAAO,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,SAAS,EAAC,4CAA4C,EAAA;AAAC,gCAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAC,gDAAgD,EAAC,OAAO,EAAG,IAAA,EAAA,CAAA;AAAA,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kCAAkC,EAAA,EAAA,kBAAA,CAAwB,CAAQ,CAAK;AACrQ,wBAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;4BAAI,KAAO,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,SAAS,EAAC,4CAA4C,EAAA;AAAC,gCAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAC,gDAAgD,EAAC,QAAQ,EAAG,IAAA,EAAA,CAAA;AAAA,gCAAA,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kCAAkC,EAAA,EAAA,uBAAA,CAAwB,CAAQ,CAAK;AACtQ,wBAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;4BAAI,KAAO,CAAA,aAAA,CAAA,OAAA,EAAA,EAAA,SAAS,EAAC,4CAA4C,EAAA;AAAC,gCAAA,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAO,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAC,gDAAgD,EAAC,QAAQ,EAAG,IAAA,EAAA,CAAA;gCAAA,KAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,kCAAkC,EAAwB,EAAA,kBAAA,CAAA,CAAQ,CAAK,CACrQ,CACH,CACJ,CACP,EACN;;QAEI,QACD,KAAK,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,CAAA,EACR;AACL;;ACvBM,SAAU,QAAQ,CAAC,EAGxB,EAAA;QAHyB,KAAK,GAAA,EAAA,CAAA,KAAA,EAAC,QAAQ,GAAA,EAAA,CAAA,QAAA,CAAA;AAMtC,IAAA,QACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,wHAAwH,EAAA;QACtI,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,2BAA2B,EAAA;YACxC,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,2BAA2B,EAAA;AACxC,gBAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;AACE,oBAAA,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA;AAAI,wBAAA,KAAA,CAAA,aAAA,CAAC,IAAI,EAAC,EAAA,EAAE,EAAE,GAAG,WAAc,CAAK;oBACpC,KAAK,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,EAAA,KAAK,CAAM,CACb,CACD;AACN,YAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,MAAM,IACtC,QAAQ,CACC,CACR,CACD,EACR;AACH;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/Utils/DynamicHeroIcon.tsx","../src/Components/Map/hooks/useLayers.tsx","../src/Components/Auth/useAuth.tsx","../src/Components/Typography/ErrorText.tsx","../src/Components/Input/TextInput.tsx","../src/Components/Auth/LoginPage.tsx","../src/Components/Auth/SignupPage.tsx","../src/Components/Map/hooks/usePermissions.tsx","../src/Components/Map/Subcomponents/AddButton.tsx","../src/Components/Map/hooks/useItems.tsx","../src/Utils/HashTagRegex.tsx","../src/Components/Map/hooks/useTags.tsx","../src/Components/Map/hooks/useFilter.tsx","../src/Components/Map/hooks/useWindowDimension.tsx","../src/Components/Map/Subcomponents/FilterControl.tsx","../src/Components/Map/hooks/useLeafletRefs.tsx","../src/Components/Map/UtopiaMap.tsx","../src/Utils/MarkerIconFactory.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx","../src/Utils/ReplaceURLs.ts","../src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx","../src/Components/Map/Subcomponents/ItemViewPopup.tsx","../src/types.ts","../src/Components/Input/TextAreaInput.tsx","../src/Utils/RandomColor.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/StartEndView.tsx","../src/Components/AppShell/DialogModal.tsx","../src/Components/AppShell/NavBar.tsx","../src/Components/AppShell/AppShell.tsx","../src/Components/AppShell/SidebarSubmenu.tsx","../src/Components/AppShell/SideBar.tsx","../src/Components/AppShell/Content.tsx","../src/Components/Typography/Subtitle.tsx","../src/Components/Templates/TitleCard.tsx","../src/Components/Profile/Settings.tsx","../src/Components/Gaming/Modal.tsx","../src/Components/Gaming/Quests.tsx","../src/Components/Templates/CardPage.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","// DynamicHeroIcon.tsx\n// Simple Dynamic HeroIcons Component for React (typescript / tsx)\n// by: Mike Summerfeldt (IT-MikeS - https://github.com/IT-MikeS)\n\nimport { FC } from 'react'\nimport * as HIcons from '@heroicons/react/20/solid'\nimport * as React from 'react'\n\nconst DynamicHeroIcon: FC<{icon: string}> = (props) => {\n const {...icons} = HIcons\n \n const TheIcon: JSX.Element = icons[props.icon]\n\n if(!TheIcon) {\n console.log(`Icon ${props.icon} doesn't exist`);\n } \n\n return (\n <>\n {/* @ts-ignore */}\n <TheIcon className=\"tw-h-6 tw-w-6 tw-text-white\" aria-hidden=\"true\" /> \n </>\n )\n}\n\nexport default DynamicHeroIcon","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}\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});\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 setLoading(false);\n return res as any;\n } catch (error: any) {\n setLoading(false);\n throw error;\n };\n }\n\n\n return (\n <AuthContext.Provider\n value={{ isAuthenticated, user, login, register, loading, logout, updateUser, token }}\n >\n {children}\n </AuthContext.Provider>\n );\n};\nexport const useAuth = () => useContext(AuthContext);","import * as React from \"react\"\n\nfunction ErrorText({styleClass, children}){\n return(\n <p className={`tw-text-center tw-text-error ${styleClass}`}>{children}</p>\n )\n}\n\nexport default ErrorText","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 updateFormValue?: (value: string ) => void;\n}\n\n\nexport function TextInput({labelTitle, labelStyle, type, dataField, containerStyle, inputStyle, defaultValue, placeholder, 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 || \"\"} 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","import {useState} from 'react'\nimport {Link} from 'react-router-dom'\nimport ErrorText from '../Typography/ErrorText'\nimport {TextInput} from '../Input/TextInput'\nimport * as React from 'react'\n\nexport function LoginPage(){\n\n const INITIAL_LOGIN_OBJ = {\n password : \"\",\n emailId : \"\"\n }\n\n const [loading, setLoading] = useState(false)\n const [errorMessage, setErrorMessage] = useState(\"\")\n const [loginObj, setLoginObj] = useState(INITIAL_LOGIN_OBJ)\n\n const submitForm = (e) =>{\n e.preventDefault()\n setErrorMessage(\"\")\n\n if(loginObj.emailId.trim() === \"\")return setErrorMessage(\"Email Id is required! (use any value)\")\n if(loginObj.password.trim() === \"\")return setErrorMessage(\"Password is required! (use any value)\")\n else{\n setLoading(true)\n // Call API to check user credentials and save token in localstorage\n localStorage.setItem(\"token\", \"DumyTokenHere\")\n setLoading(false)\n window.location.href = '/app/welcome'\n }\n }\n\n const updateFormValue = (val: string) => {\n console.log(val)\n }\n\n return(\n <div className=\"tw-flex-1 tw-bg-base-200 tw-flex tw-items-center\">\n <div className=\"tw-card tw-mx-auto tw-w-full tw-max-w-md tw-shadow-xl\">\n <div className=\"tw-grid md:tw-grid-cols-1 tw-grid-cols-1 tw-bg-base-100 tw-rounded-xl\">\n <div className='tw-py-10 tw-px-10'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Login</h2>\n <form onSubmit={(e) => submitForm(e)}>\n\n <div className=\"tw-mb-4\">\n\n <TextInput type=\"email\" defaultValue={loginObj.emailId} containerStyle=\"tw-mt-4\" labelTitle=\"E-Mail\" updateFormValue={(v) => updateFormValue(v)}/>\n\n <TextInput defaultValue={loginObj.password} type=\"password\" containerStyle=\"tw-mt-4\" labelTitle=\"Password\" updateFormValue={(v) => updateFormValue(v)}/>\n\n </div>\n\n <div className='tw-text-right tw-text-primary'><Link to=\"/forgot-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\n <ErrorText styleClass=\"mt-8\">{errorMessage}</ErrorText>\n <button type=\"submit\" className={\"tw-btn tw-mt-2 tw-w-full tw-btn-primary\" + (loading ? \" tw-loading\" : \"\")}>Login</button>\n\n <div className='tw-text-center tw-mt-4'>Don't have an account yet? <Link to=\"/signup\"><span className=\" tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Sign Up</span></Link></div>\n </form>\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import { useState } from 'react'\nimport { Link } from 'react-router-dom'\nimport ErrorText from '../Typography/ErrorText'\nimport {TextInput} from '../Input/TextInput'\nimport * as React from 'react'\n\nexport function SignupPage() {\n\n const INITIAL_REGISTER_OBJ = {\n name : \"\",\n password : \"\",\n emailId : \"\"\n }\n\n const [loading, setLoading] = useState(false)\n const [errorMessage, setErrorMessage] = useState(\"\")\n const [registerObj, setRegisterObj] = useState(INITIAL_REGISTER_OBJ)\n\n const submitForm = (e) =>{\n e.preventDefault()\n setErrorMessage(\"\")\n\n if(registerObj.name.trim() === \"\")return setErrorMessage(\"Name is required! (use any value)\")\n if(registerObj.emailId.trim() === \"\")return setErrorMessage(\"Email Id is required! (use any value)\")\n if(registerObj.password.trim() === \"\")return setErrorMessage(\"Password is required! (use any value)\")\n else{\n setLoading(true)\n // Call API to check user credentials and save token in localstorage\n localStorage.setItem(\"token\", \"DumyTokenHere\")\n setLoading(false)\n window.location.href = '/app/welcome'\n }\n }\n\n const updateFormValue = (val: string) => {\n console.log(val)\n }\n\n return (\n <div className=\"tw-flex-1 tw-bg-base-200 tw-flex tw-items-center\">\n <div className=\"tw-card tw-mx-auto tw-w-full tw-max-w-md tw-shadow-xl\">\n <div className=\"tw-grid md:tw-grid-cols-1 tw-grid-cols-1 tw-bg-base-100 tw-rounded-xl\">\n <div className='tw-py-10 tw-px-10'>\n <h2 className='tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center'>Sign Up</h2>\n <form onSubmit={(e) => submitForm(e)}>\n\n <div className=\"mb-4\">\n <TextInput defaultValue={registerObj.name} containerStyle=\"tw-mt-4\" labelTitle=\"Name\" updateFormValue={updateFormValue} />\n <TextInput defaultValue={registerObj.emailId} containerStyle=\"tw-mt-4\" labelTitle=\"E-Mail\" updateFormValue={updateFormValue} />\n <TextInput defaultValue={registerObj.password} type=\"password\" containerStyle=\"tw-mt-4\" labelTitle=\"Password\" updateFormValue={updateFormValue} />\n </div>\n\n <ErrorText styleClass=\"tw-mt-8\">{errorMessage}</ErrorText>\n <button type=\"submit\" className={\"tw-btn tw-mt-2 tw-w-full tw-btn-primary\" + (loading ? \" tw-loading\" : \"\")}>Register</button>\n\n <div className='tw-text-center tw-mt-4'>Already have an account? <Link to=\"/login\"><span className=\" tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200\">Login</span></Link></div>\n </form>\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { 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) => 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((collectionName: string, action: PermissionAction) => { \n if (permissions.length == 0) return true;\n else if (user && user.role == adminRole) return true;\n else return permissions.some(p => p.action === action && p.collection === collectionName && p.role == user?.role)\n }, [permissions, user]);\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 DynamicHeroIcon from '../../../Utils/DynamicHeroIcon'\nimport { useLayers } from '../hooks/useLayers'\nimport { useHasUserPermission } from '../hooks/usePermissions';\n\n\nexport default function AddButton({ setSelectNewItemPosition }: { setSelectNewItemPosition: React.Dispatch<React.SetStateAction<any>> }) {\n\n const layers = useLayers();\n const hasUserPermission = useHasUserPermission();\n\n\n return (\n <div className=\"tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-500 tw-absolute tw-right-5 tw-bottom-5\" >\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={() => { setSelectNewItemPosition(layer) }}>\n <DynamicHeroIcon icon={layer.menuIcon} />\n </button>\n </div>\n </a>\n </li>\n )\n\n ))}\n </ul>\n\n </div>\n )\n}\n","import { useCallback, useReducer, createContext, useContext, useEffect } 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});\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} {\n\n const addLayer = useAddLayer();\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 layer.api?.createItem && 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 }\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 };\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}; ","export const hashTagRegex = /(#+[a-zA-Z0-9A-Za-zÀ-ÖØ-öø-ʸ(_)]{1,})/g;","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport { Item, ItemsApi, Tag } from \"../../../types\";\nimport { hashTagRegex } from \"../../../Utils/HashTagRegex\";\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 removeTag: () => { },\n setTagApi: () => { },\n setTagData: () => { },\n getItemTags: () => []\n});\n\nfunction useTagsManager(initialTags: Tag[]): {\n tags: Tag[];\n addTag: (tag: Tag) => void;\n removeTag: (id: string) => void;\n setTagApi: (api: ItemsApi<Tag>) => void;\n setTagData: (data: Tag[]) => void;\n getItemTags: (item: Item) => Tag[];\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.id.toLocaleLowerCase() === action.tag.id.toLocaleLowerCase() ? true : false\n );\n if (!exist) return [\n ...state,\n {...action.tag, id: action.tag.id.toLocaleLowerCase()}\n ];\n else return state;\n\n case \"REMOVE\":\n return state.filter(({ id }) => id !== action.id.toLocaleLowerCase());\n default:\n throw new Error();\n }\n }, initialTags);\n\n const [api, setApi] = React.useState<ItemsApi<Tag>>({} as ItemsApi<Tag>)\n\n const setTagApi = useCallback(async (api: ItemsApi<Tag>) => {\n setApi(api);\n const result = await api.getItems();\n if (result) {\n result.map(tag => {\n tag.id = tag.id.toLocaleLowerCase();\n dispatch({ type: \"ADD\", tag })\n })\n }\n }, [])\n\n const setTagData = useCallback((data: Tag[]) => {\n data.map(tag => {\n tag.id = tag.id.toLocaleLowerCase();\n dispatch({ type: \"ADD\", tag })\n })\n }, []);\n\n const addTag = (tag: Tag) => {\n dispatch({\n type: \"ADD\",\n tag,\n });\n\n if (!tags.some((t) => t.id.toLocaleLowerCase() === tag.id.toLocaleLowerCase())) {\n api?.createItem && api.createItem(tag);\n }\n };\n\n const removeTag = useCallback((id: string) => {\n dispatch({\n type: \"REMOVE\",\n id,\n });\n api?.deleteItem && api.deleteItem(id);\n }, []);\n\n const getItemTags = useCallback((item: Item) => { \n const itemTagStrings = item.text.toLocaleLowerCase().match(hashTagRegex);\n const itemTags: Tag[] = [];\n itemTagStrings?.map(tag => {\n if (tags.find(t => t.id === tag.slice(1))) {\n itemTags.push(tags.find(t => t.id === tag.slice(1))!)\n }\n })\n return itemTags \n }, [tags]);\n\n\n return { tags, addTag, removeTag, setTagApi, setTagData, getItemTags };\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 useRemoveTag = (): UseTagManagerResult[\"removeTag\"] => {\n const { removeTag } = useContext(TagContext);\n return removeTag;\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}","import { useCallback, useReducer, createContext, useContext } from \"react\";\nimport * as React from \"react\";\nimport {Tag} from \"../../../types\";\n\ntype ActionType =\n | { type: \"ADD_TAG\"; tag: Tag }\n | { type: \"REMOVE_TAG\"; id: string }\n | { type: \"RESET_TAGS\"};\n\ntype UseFilterManagerResult = ReturnType<typeof useFilterManager>;\n\nconst FilterContext = createContext<UseFilterManagerResult>({\n filterTags: [],\n searchPhrase: \"\",\n addFilterTag: () => { },\n removeFilterTag: () => { },\n resetFilterTags: () => { },\n setSearchPhrase: () => { },\n});\n\nfunction useFilterManager(initialTags: Tag[]): {\n filterTags: Tag[];\n searchPhrase: string;\n addFilterTag: (tag: Tag) => void;\n removeFilterTag: (id: string) => void;\n resetFilterTags: () => void;\n setSearchPhrase: (phrase: string) => void;\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(({ id }) => id !== action.id);\n case \"RESET_TAGS\": \n return initialTags;\n default:\n throw new Error();\n }\n }, initialTags);\n\n const [searchPhrase, searchPhraseSet] = React.useState<string>(\"\");\n\n const addFilterTag = (tag: Tag) => {\n dispatchTags({\n type: \"ADD_TAG\",\n tag,\n });\n\n };\n\n const removeFilterTag = useCallback((id: string) => {\n dispatchTags({\n type: \"REMOVE_TAG\",\n id,\n });\n }, []);\n\n const resetFilterTags = useCallback(() => {\n dispatchTags({\n type: \"RESET_TAGS\",\n });\n }, []);\n\n const setSearchPhrase = useCallback((phrase:string) => {\n searchPhraseSet(phrase)\n }, []);\n\n return { filterTags, addFilterTag, removeFilterTag, resetFilterTags, setSearchPhrase, searchPhrase };\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};","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 * as React from 'react'\nimport { useFilterTags, useRemoveFilterTag, useSetSearchPhrase } from '../hooks/useFilter'\nimport useWindowDimensions from '../hooks/useWindowDimension';\n\n\n\n\n\n\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport const FilterControl = () => {\n\n const windowDimensions = useWindowDimensions();\n /** \n const [popupOpen, setPopupOpen] = useState<boolean>(false);\n \n useMapEvents({\n popupopen: (e) => {\n console.log(e);\n \n setPopupOpen(true);\n },\n popupclose: () => {\n setPopupOpen(false);\n }\n })\n */\n const filterTags = useFilterTags();\n const removeFilterTag = useRemoveFilterTag();\n const setSearchPhrase = useSetSearchPhrase();\n return (<>\n {!(\n //popupOpen &&\n windowDimensions.height < 500) &&\n <div className='tw-flex tw-flex-col tw-absolute tw-top-4 tw-left-4 tw-z-[699] tw-w-[calc(100vw-2rem)] tw-max-w-sm'>\n <input type=\"text\" placeholder=\"search ...\" className=\"tw-input tw-input-bordered tw-w-full tw-shadow-xl tw-rounded-2xl\" onChange={(e) => setSearchPhrase(e.target.value)} />\n <div className='tw-flex tw-flex-wrap tw-mt-4'>\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.id))}>✕</label>\n </div><b>#{capitalizeFirstLetter(tag.id)}</b>\n </div>\n )\n }\n\n\n </div>\n </div>\n }\n </>\n\n )\n}\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 { 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 { useState } from \"react\";\nimport { ItemFormPopupProps } from \"./Subcomponents/ItemFormPopup\";\nimport { ItemsProvider } from \"./hooks/useItems\";\nimport { TagsProvider } from \"./hooks/useTags\";\nimport { LayersProvider } from \"./hooks/useLayers\";\nimport { FilterProvider } from \"./hooks/useFilter\";\nimport { FilterControl } from \"./Subcomponents/FilterControl\";\nimport { PermissionsProvider } from \"./hooks/usePermissions\";\nimport { LeafletRefsProvider } from \"./hooks/useLeafletRefs\";\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 = new LatLng(50.6, 9.5),\n zoom = 10,\n children }\n : UtopiaMapProps) {\n\n let meta = document.getElementsByTagName('meta')\n const [metaTags, setMetaTags] = useState<HTMLCollectionOf<HTMLMetaElement>>(meta);\n\n function MapEventListener(props: MapEventListenerProps) {\n useMapEvents({\n click: (e) => {\n window.history.pushState({}, \"\", \"/\");\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 meta = metaTags;\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 resize: () => {\n console.log(\"resize\");\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\n return (\n <LayersProvider initialLayers={[]}>\n <TagsProvider initialTags={[]}>\n <PermissionsProvider initialPermissions={[]}>\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={center} zoom={zoom} zoomControl={false}>\n <FilterControl></FilterControl>\n <TileLayer\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 setSelectNewItemPosition={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 </PermissionsProvider>\n </TagsProvider>\n </LayersProvider>\n );\n}\n\nexport { UtopiaMap };","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 default:\n return \"\";\n } \n}\n\nconst MarkerIconFactory = (shape:string, color1:string, color2:string, icon:string) =>\n{\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","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\";\n\n\n\nexport function HeaderView({ item, setItemFormPopup }: {\n item: Item,\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}) {\n\n const [loading, setLoading] = React.useState<boolean>(false);\n const removeItem = useRemoveItem();\n\n const map = useMap();\n const hasUserPermission = useHasUserPermission();\n\n\n const removeItemFromMap = async (event: React.MouseEvent<HTMLElement>) => {\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\n event.stopPropagation();\n }\n\n const openEditPopup = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n map.closePopup();\n if (setItemFormPopup)\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 <div className='tw-grid tw-grid-cols-6 tw-pb-2'>\n <div className='tw-col-span-5'>\n <b className=\"tw-text-xl tw-font-bold\">{item.name}</b>\n </div>\n <div className='tw-col-span-1'>\n {item.layer?.api &&\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\">\n {item.layer.api.updateItem && hasUserPermission(item.layer.api?.collectionName!,\"update\") && <li>\n <a className=\"!tw-text-base-content\" onClick={openEditPopup}>\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\") && <li>\n <a className=' !tw-text-error' onClick={removeItemFromMap}>\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 )\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 { useAddTag, useTags } from '../../hooks/useTags';\nimport reactStringReplace from 'react-string-replace';\nimport { useAddFilterTag } from '../../hooks/useFilter';\nimport { hashTagRegex } from '../../../../Utils/HashTagRegex';\nimport { fixUrls, mailRegex } from '../../../../Utils/ReplaceURLs';\nimport { useMap } from 'react-leaflet';\nimport { randomColor } from '../../../../Utils/RandomColor';\nimport { useEffect, useRef } from 'react';\n\nexport const TextView = ({ item }: { item?: Item }) => {\n const tags = useTags();\n const addTag = useAddTag();\n const addFilterTag = useAddFilterTag();\n\n let replacedText;\n\n\n\n\n if (item && item.text) replacedText = fixUrls(item.text);\n\n replacedText = reactStringReplace(replacedText, /(https?:\\/\\/\\S+)/g, (url, i) => {\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 (\n <a key={i.toString+item!.id+url} href={url} target=\"_blank\" rel=\"noopener noreferrer\">{shortUrl}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, mailRegex, (url, i) => {\n return (\n <a key={i.toString+item!.id+url} href={`mailto:${url}`} target=\"_blank\" rel=\"noopener noreferrer\">{url}</a>\n )\n });\n\n replacedText = reactStringReplace(replacedText, hashTagRegex, (match, i) => {\n\n const tag = tags.find(t => t.id.toLowerCase() == match.slice(1).toLowerCase())\n return (\n <a style={{ color: tag ? tag.color : '#aaa' , fontWeight: 'bold', cursor: 'pointer' }} key={tag ? tag.id+item!.id+i : i} onClick={() => {\n addFilterTag(tag!);\n // map.fitBounds(items)\n // map.closePopup();\n }}>{match}</a>\n )\n })\n\n return (\n <p style={{ whiteSpace: \"pre-wrap\" }} className=\"!tw-m-0 !tw-mb-2\">\n {replacedText}\n </p>\n )\n\n\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'\n\n\nexport interface ItemViewPopupProps {\n item: Item,\n children?: React.ReactNode;\n setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>\n}\n\nexport const ItemViewPopup = React.forwardRef((props: ItemViewPopupProps, ref: any) => {\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-max-h-72'>\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 </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?: LatLng,\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: string,\n menuColor: string,\n menuText: string,\n markerIcon: string,\n markerShape: string,\n markerDefaultColor: string,\n api?: ItemsApi<any>,\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?: Tag[];\n layer?: LayerProps;\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}\n\nexport interface ItemsApi<T> {\n getItems(): Promise<any>, \n createItem?(item : T): Promise<any>,\n updateItem?(item : T): Promise<any>,\n deleteItem?(id : number | string): Promise<any>,\n collectionName?: 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}\n\nexport type UserItem = {\n id?: string;\n avatar?: string;\n role?: string;\n first_name: string;\n description: string;\n email: string;\n password?: string;\n}\n\nexport type Permission = {\n id?: string;\n role: string;\n collection: string;\n action: PermissionAction\n}\n\n\nexport type PermissionAction = \"create\"|\"read\"|\"update\"|\"delete\";\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.id, value: tag.id, color: tag.color })\n })\n\n var tribute = new Tribute({\n containerClass: 'tw-z-500 tw-bg-white tw-p-2 tw-rounded-lg tw-shadow',\n selectClass: 'tw-font-bold',\n trigger: \"#\",\n values: values,\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","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 * as React from 'react'\nimport { LatLng } from 'leaflet'\nimport { Popup as LeafletPopup, useMap } from 'react-leaflet'\nimport { useEffect, useRef, useState } from 'react'\nimport { useAddItem, 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'\n\nexport interface ItemFormPopupProps {\n position: LatLng,\n layer: LayerProps,\n item?: Item,\n children?: React.ReactNode,\n setItemFormPopup: React.Dispatch<React.SetStateAction<any>>\n}\n\nexport function ItemFormPopup(props: ItemFormPopupProps) {\n\n const [spinner, setSpinner] = useState(false);\n\n const formRef = useRef<HTMLFormElement>(null);\n\n const map = useMap();\n\n const addItem = useAddItem();\n const updateItem = useUpdateItem();\n\n const tags = useTags(); \n const addTag = useAddTag();\n\n const resetFilterTags = useResetFilterTags();\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.toLocaleLowerCase().match(hashTagRegex)?.map(tag=> {\n if (!tags.find((t) => t.id.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase())) {\n addTag({id: tag.slice(1).toLocaleLowerCase(), 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\n let success = false;\n try {\n await props.layer.api?.createItem!({...formItem, id: crypto.randomUUID()});\n success = true;\n } catch (error) {\n toast.error(error.toString());\n }\n if(success) {\n addItem({...formItem, id: crypto.randomUUID(), layer: props.layer});\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} 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\">New {props.layer.name}</b></div>\n }\n <TextInput type=\"text\" placeholder=\"Name\" dataField=\"name\" defaultValue={props.item ? props.item.name : \"\"} inputStyle='' />\n\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, key: props.position.toString() }) : \"\"\n )\n\n :\n <>\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 } from '../../types'\nimport MarkerIconFactory from '../../Utils/MarkerIconFactory'\nimport { ItemViewPopup } from './Subcomponents/ItemViewPopup'\nimport { useItems, useSetItemsApi, useSetItemsData } from './hooks/useItems'\nimport { useEffect, useState } from 'react'\nimport { ItemFormPopupProps, ItemFormPopup } from './Subcomponents/ItemFormPopup'\nimport { useFilterTags, useSearchPhrase } from './hooks/useFilter'\nimport { useGetItemTags } from './hooks/useTags'\nimport { useAddMarker, useAddPopup, useLeafletRefs } from './hooks/useLeafletRefs'\nimport { Popup } from 'leaflet'\nimport { useLocation } from 'react-router-dom';\n\nexport const Layer = (props: LayerProps) => {\n\n const [itemFormPopup, setItemFormPopup] = useState<ItemFormPopupProps | null>(null);\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 searchPhrase = useSearchPhrase();\n\n const map = useMap();\n\n\n useEffect(() => {\n\n props.data && setItemsData(props);\n props.api && setItemsApi(props);\n }, [props.data, props.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 == props.name && window.location.pathname.split(\"/\")[2] != item.id) {\n window.history.pushState({}, \"\", `/${props.name}/${item.id}`)\n document.title = document.title.split(\"-\")[0] + \" - \" + item.name;\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 const openPopup = () => {\n console.log(window.location);\n\n\n if (window.location.pathname.split(\"/\").length <= 2) {\n console.log(\"close\");\n\n map.closePopup();\n }\n else {\n if (window.location.pathname.split(\"/\")[1] == props.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 && props.clusterRef?.current?.zoomToShowLayer(marker, () => {\n marker.openPopup();\n });\n const item = leafletRefs[id]?.item;\n document.title = document.title.split(\"-\")[0] + \" - \" + item.name;\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\n return (\n <>\n {items &&\n items.\n filter(item => item.layer?.name === props.name)?.\n filter(item =>\n filterTags.length == 0 ? item : filterTags.every(tag => getItemTags(item).some(filterTag => filterTag.id === tag.id)))?.\n filter(item => {\n return searchPhrase === ''\n ? item :\n item.name.toLowerCase().includes(searchPhrase.toLowerCase()) || item.text.toLowerCase().includes(searchPhrase.toLowerCase())\n }).\n map((item: Item) => {\n const tags = getItemTags(item);\n\n let color1 = \"#666\";\n let color2 = \"RGBA(35, 31, 32, 0.2)\";\n if (tags && tags[0]) {\n color1 = tags[0].color;\n }\n if (tags && tags[1]) {\n color2 = tags[1].color;\n }\n return (\n <Marker ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addMarker(item, r);\n }} icon={MarkerIconFactory(props.markerShape, color1, color2, props.markerIcon)} key={item.id} position={[item.position.coordinates[1], item.position.coordinates[0]]}>\n {\n (props.children && React.Children.toArray(props.children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemView\") ?\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemView\" ?\n <ItemViewPopup ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addPopup(item, r as Popup);\n }} key={item.id + item.name} item={item} setItemFormPopup={props.setItemFormPopup} >{child}</ItemViewPopup>\n : \"\"\n )\n :\n <>\n <ItemViewPopup key={item.id + item.name} ref={(r) => {\n if (!(item.id in leafletRefs))\n r && addPopup(item, r as Popup);\n }} item={item} setItemFormPopup={props.setItemFormPopup} />\n </>)\n }\n <Tooltip offset={[0, -38]} direction='top'>{item.name}</Tooltip>\n </Marker>\n );\n })\n }\n {//{props.children}}\n }\n {props.itemFormPopup && props.itemFormPopup.layer!.name == props.name &&\n (props.children && React.Children.toArray(props.children).some(child => React.isValidElement(child) && child.props.__TYPE === \"ItemForm\") ?\n React.Children.toArray(props.children).map((child) =>\n React.isValidElement(child) && child.props.__TYPE === \"ItemForm\" ?\n <ItemFormPopup key={props.setItemFormPopup?.name} position={props.itemFormPopup!.position} layer={props.itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={props.itemFormPopup!.item} >{child}</ItemFormPopup>\n : \"\"\n )\n :\n <>\n <ItemFormPopup position={props.itemFormPopup!.position} layer={props.itemFormPopup!.layer} setItemFormPopup={setItemFormPopup} item={props.itemFormPopup!.item} />\n </>)\n }\n </>\n )\n}\n","import * as React from 'react'\nimport { useEffect } from 'react';\nimport { ItemsApi, Tag } from '../../types';\nimport { useAddTag, useSetTagData, useSetTagApi } from './hooks/useTags'\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 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'\n\n\nexport const ItemForm = ({ 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, 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, test: string }>(child) ?\n React.cloneElement(child, { item: item, test: \"test\" }) : \"\"\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) : \"\"}></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) : \"\"}></TextInput>\n </div>\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\">\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 { 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};\n\nconst DialogModal = ({\n title,\n isOpened,\n onClose,\n children,\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'\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 <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 { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { 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\";\nimport DialogModal from \"./DialogModal\";\n\n\nexport default function NavBar({ appName}: { appName: string }) {\n\n\n const [signupOpen, setSignupOpen] = useState(false);\n const [loginOpen, setLoginOpen] = useState(false);\n\n\n const [email, setEmail] = useState<string>(\"\");\n const [userName, setUserName] = useState<string>(\"\");\n const [password, setPassword] = useState<string>(\"\");\n\n\n const { isAuthenticated, user, login, register, loading, logout, token } = 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 setSignupOpen(false);\n }\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 setLoginOpen(false);\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 return (\n <>\n <div className=\"tw-navbar tw-bg-base-100 tw-z-1000\">\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 tw-max-w-52\">\n <Link className=\"tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate\" to={\"/\"}><p className=\"tw-truncate\">{appName}</p></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\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={\"/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 <div onClick={() => setLoginOpen(true)} className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Login\n </div>\n\n <div onClick={() => setSignupOpen(true)} className=\"tw-btn tw-btn-ghost tw-mr-2\">\n Sign Up\n </div>\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><a onClick={() => {setLoginOpen(true)}}>Login</a></li>\n <li><a onClick={() => setSignupOpen(true)}>Sign Up</a></li>\n </ul>\n </div>\n\n </div>\n }\n </div>\n <DialogModal\n title=\"Login\"\n isOpened={loginOpen}\n onClose={() => setLoginOpen(false)}>\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\">\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 </DialogModal>\n <DialogModal\n title=\"Sign Up\"\n isOpened={signupOpen}\n onClose={() => setSignupOpen(false)}>\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\">\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 </DialogModal>\n </>\n )\n}\n","import * as React from 'react'\nimport NavBar from './NavBar'\nimport { BrowserRouter } from 'react-router-dom'\nimport { ToastContainer } from 'react-toastify'\n\nexport function AppShell({ appName, children }) {\n return (\n <BrowserRouter>\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}></NavBar>\n <div id=\"app-content\" className=\"tw-flex tw-!pl-[77px]\">\n {children}\n </div>\n </BrowserRouter>\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}\n\n\nexport function SideBar({routes} : {routes : 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-[1035] tw-h-full tw--translate-x-full tw-overflow-hidden tw-shadow-[0_4px_12px_0_rgba(0,0,0,0.07),_0_2px_4px_rgba(0,0,0,0.05)] 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-full' style={{height: \"calc(100vh - 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 to={route.path}\n className={({ isActive }) => `${isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none'}`} onClick={ () => {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\n {/* \n <li className=\"relative\">\n <a\n className=\"flex h-12 cursor-pointer items-center truncate rounded-[5px] px-6 py-4 text-[0.875rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref>\n <span\n className=\"mr-4 [&>svg]:h-4 [&>svg]:w-4 [&>svg]:text-gray-400 dark:[&>svg]:text-gray-300\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className=\"h-4 w-4\">\n <path\n fillRule=\"evenodd\"\n d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm-2.625 6c-.54 0-.828.419-.936.634a1.96 1.96 0 00-.189.866c0 .298.059.605.189.866.108.215.395.634.936.634.54 0 .828-.419.936-.634.13-.26.189-.568.189-.866 0-.298-.059-.605-.189-.866-.108-.215-.395-.634-.936-.634zm4.314.634c.108-.215.395-.634.936-.634.54 0 .828.419.936.634.13.26.189.568.189.866 0 .298-.059.605-.189.866-.108.215-.395.634-.936.634-.54 0-.828-.419-.936-.634a1.96 1.96 0 01-.189-.866c0-.298.059-.605.189-.866zm2.023 6.828a.75.75 0 10-1.06-1.06 3.75 3.75 0 01-5.304 0 .75.75 0 00-1.06 1.06 5.25 5.25 0 007.424 0z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\"\n data-te-sidenav-slim=\"false\"\n >Category 1</span>\n <span\n className=\"absolute right-0 ml-auto mr-[0.5rem] transition-transform duration-300 ease-linear motion-reduce:transition-none [&>svg]:text-gray-600 dark:[&>svg]:text-gray-300\"\n data-te-sidenav-rotate-icon-ref>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n className=\"h-5 w-5\">\n <path\n fillRule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n </a>\n <ul\n className=\"!visible relative m-0 hidden list-none p-0 data-[te-collapse-show]:block \"\n data-te-sidenav-collapse-ref>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 2</a>\n </li>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 3</a>\n </li>\n </ul>\n </li>\n <li className=\"relative\">\n <a\n className=\"flex h-12 cursor-pointer items-center truncate rounded-[5px] px-6 py-4 text-[0.875rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref>\n <span\n className=\"mr-4 [&>svg]:h-4 [&>svg]:w-4 [&>svg]:text-gray-400 dark:[&>svg]:text-gray-300\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className=\"h-4 w-4\">\n <path\n fillRule=\"evenodd\"\n d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zm-2.625 6c-.54 0-.828.419-.936.634a1.96 1.96 0 00-.189.866c0 .298.059.605.189.866.108.215.395.634.936.634.54 0 .828-.419.936-.634.13-.26.189-.568.189-.866 0-.298-.059-.605-.189-.866-.108-.215-.395-.634-.936-.634zm4.314.634c.108-.215.395-.634.936-.634.54 0 .828.419.936.634.13.26.189.568.189.866 0 .298-.059.605-.189.866-.108.215-.395.634-.936.634-.54 0-.828-.419-.936-.634a1.96 1.96 0 01-.189-.866c0-.298.059-.605.189-.866zm2.023 6.828a.75.75 0 10-1.06-1.06 3.75 3.75 0 01-5.304 0 .75.75 0 00-1.06 1.06 5.25 5.25 0 007.424 0z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n <span\n className=\"group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden\"\n data-te-sidenav-slim=\"false\"\n >Category 2</span\n >\n <span\n className=\"absolute right-0 ml-auto mr-[0.5rem] transition-transform duration-300 ease-linear motion-reduce:transition-none [&>svg]:text-gray-600 dark:[&>svg]:text-gray-300\"\n data-te-sidenav-rotate-icon-ref>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n className=\"h-5 w-5\">\n <path\n fillRule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clipRule=\"evenodd\" />\n </svg>\n </span>\n </a>\n <ul\n className=\"show !visible relative m-0 hidden list-none p-0 data-[te-collapse-show]:block \"\n data-te-sidenav-collapse-ref>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 4</a\n >\n </li>\n <li className=\"relative\">\n <a\n className=\"flex h-6 cursor-pointer items-center truncate rounded-[5px] py-4 pl-[3.4rem] pr-6 text-[0.78rem] text-gray-600 outline-none transition duration-300 ease-linear hover:bg-slate-50 hover:text-inherit hover:outline-none focus:bg-slate-50 focus:text-inherit focus:outline-none active:bg-slate-50 active:text-inherit active:outline-none data-[te-sidenav-state-active]:text-inherit data-[te-sidenav-state-focus]:outline-none motion-reduce:transition-none dark:text-gray-300 dark:hover:bg-white/10 dark:focus:bg-white/10 dark:active:bg-white/10\"\n data-te-sidenav-link-ref\n >Link 5</a\n >\n </li>\n </ul>\n </li>\n */}\n </ul>\n <div id=\"slim-toggler\" className='tw-w-full tw-pr-4 tw-flex-1 tw-grid tw-place-items-end' aria-haspopup=\"true\" >\n \n <ChevronRightIcon className={\"tw-w-5 tw-h-5 tw-mb-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all \" + (!slim ? \"tw-rotate-180\" : '')} onClick={ () => toggleSlim()}/>\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-relative'>\n {children}\n </div>\n\n )\n}\n","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 children : React.ReactNode,\n topMargin: string,\n TopSideButtons?: any\n}\n \n export function TitleCard({title, children, topMargin, TopSideButtons} : TitleCardProps){\n return(\n <div className={\"tw-card tw-w-full tw-p-6 tw-mb-16 tw-bg-base-100 tw-shadow-xl tw-h-fit \" + (topMargin || \"tw-mt-6\")}>\n\n {/* Title for Card */}\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 \n <div className=\"tw-divider tw-mt-2\"></div>\n \n {/** Card Body */}\n <div className='tw-h-full tw-w-full tw-pb-6 tw-bg-base-100'>\n {children}\n </div>\n </div>\n \n )\n }\n","import { useEffect, 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'\n\nimport 'react-toastify/dist/ReactToastify.css';\nimport { UserItem } from '../../types';\n\nexport function Settings() {\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 [email, setEmail] = useState<string>(\"\");\n const [password, setPassword] = useState<string>(\"\");\n\n const [passwordChanged, setPasswordChanged] = useState<boolean>(false);\n\n\n\n\n useEffect(() => {\n setId(user?.id ? user.id : \"\");\n setName(user?.first_name ? user.first_name : \"\");\n setText(user?.description ? user.description : \"\");\n setEmail(user?.email ? user.email : \"\");\n setPassword(user?.password ? user.password : \"\");\n }, [user])\n\n const navigate = useNavigate();\n\n\n const onUpdateUser = () => {\n let changedUser = {} as UserItem;\n \n if(passwordChanged) {\n changedUser = { id: id, first_name: name, description: text, email: email, password: password };\n }\n else {\n changedUser = { id: id, first_name: name, description: text, email: email };\n }\n toast.promise(\n\n updateUser(changedUser),\n {\n pending: 'updating Profile ...',\n success: 'Profile updated',\n error: 'Error'\n })\n .then(() => navigate(\"/\"));\n }\n\n\n return (\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=\"Profile Settings\" topMargin=\"tw-mt-2\">\n\n\n <div className=\"tw-grid tw-grid-cols-1 tw-md:grid-cols-2 tw-gap-6\">\n <TextInput placeholder=\"Name\" defaultValue={user?.first_name ? user.first_name : \"\"} updateFormValue={(v) => setName(v)} />\n </div>\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 <div className=\"tw-divider\" ></div>\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","import { useState } from \"react\"\nimport * as React from \"react\"\n\ntype ChapterProps = {\n clickAction?: () => void\n}\n\n\nexport function Welcome1({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\">Herzlich Willkommen, schön dass du da bist! </h3>\n <p className=\"tw-py-4\">\n Wir erschaffen zusammen eine Welt, in der wir frei und menschlich zusammen leben dürfen.\n Dafür bauen wir ein Netzwerk in dem wir uns im echten Leben begegnen und helfen\n ... ganz ohne Geld 😉\n <br /><br />\n <b>Hast du Lust mitzumachen?</b></p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>Bin dabei</label>\n </div>\n </>\n )\n}\n\nexport function Welcome2({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\">Veränderung passiert im echten Leben</h3>\n <p className=\"tw-py-4\">\n Mal ganz ehrlich: 99% unser Zeit am Bildschirm ist sinnlose Zeit- und Energie-Verschwendung.\n <br /><br />\n Darum tauchen wir wieder in das echte Leben ein und nutzen digitale Medien nur dort, wo sie uns wirklich helfen in echt zusammen zu kommen</p>\n <div className=\"tw-modal-action\">\n <label className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>Alles klar</label>\n </div>\n </>\n )\n}\n\nexport function Welcome3({ clickAction }: ChapterProps) {\n return (\n <>\n <h3 className=\"tw-font-bold tw-text-lg\"> Gemeinsam erschaffen wir Strukturen </h3>\n <ul className='tw-flex-row tw-pl-4 tw-mt-4'>\n <li>🥕 Essen & Trinken</li>\n <li>🏡 Wohn- & Lebensraum</li>\n <li>💬 Kommunikation</li>\n <li>💡 Energie</li>\n <li>🚐 Mobilität</li>\n </ul>\n <div className=\"tw-modal-action\">\n <button className=\"tw-btn tw-btn-neutral\" onClick={() => clickAction!()}>Ich mach mit</button>\n </div>\n </>\n )\n}\n\n\nexport function Modal() {\n\n const [chapter, setChapter] = useState<number>(1);\n\n const close = () => {\n window.my_modal_3.close();\n }\n\n const ActiveChapter = () => {\n switch (chapter) {\n case 1:\n return <Welcome1 clickAction={() => { setChapter(2) }} />\n case 2:\n return <Welcome2 clickAction={() => { setChapter(3) }} />\n case 3:\n return <Welcome3 clickAction={() => {\n setChapter(1);\n close();\n }} />\n default: return <></>\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\">\n <form method=\"dialog\" className=\"tw-modal-box\">\n <button className=\"tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2\">✕</button>\n <ActiveChapter />\n </form>\n <form method=\"dialog\" className=\"tw-modal-backdrop\">\n <button>close</button>\n </form>\n </dialog>\n </>\n )\n}\n\n\n","import * as React from 'react'\n\nexport function Quests() {\n\n const [open, setOpen] = React.useState(true);\n\n if (open) return (\n <>\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-1000\">\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-2 tw-top-2\" onClick={()=>setOpen(false)}>✕</label>\n </div>\n <h2 className=\"tw-card-title tw-m-auto \">Level 1</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 /><span className='tw-text-sm tw-label-text tw-mx-2'>Registrieren</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 /><span className='tw-text-sm tw-label-text tw-mx-2'>Avatar hochladen</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\" disabled /><span className='tw-text-sm tw-label-text tw-mx-2'>Profil ausfüllen</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\" disabled /><span className='tw-text-sm tw-label-text tw-mx-2'>Gruppe beitreten</span></label></li>\n </ul>\n </div>\n </div>\n </>\n )\n\n else return (\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,children} : { \n title: string,\n children?: React.ReactNode,\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-bg-base-200 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 <li>{title}</li>\n </ul>\n </div>\n <TitleCard title={title} topMargin=\"mt-2\">\n {children}\n </TitleCard>\n </div>\n </main>\n )\n}\n"],"names":["LeafletPopup"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "utopia-ui",
3
- "version": "3.0.0-alpha.14",
3
+ "version": "3.0.0-alpha.16",
4
4
  "description": "Reuseable React Components to build mapping apps for real life communities and networks",
5
5
  "repository": "https://github.com/utopia-os/utopia-ui",
6
6
  "homepage:": "https://utopia-os.org/",