[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme-html:EDM115\u002Fbetter-maps:master":3},"\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fpublic\u002Fimages\u002Flogo.webp\" alt=\"Better Maps\" width=\"300\" height=\"300\">\n\u003Ch1 id=\"better-maps\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"better-maps\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#better-maps\">better-maps\u003C\u002Fa>\u003C\u002Fh1>\n\u003Cp>A quick way to add pin-points to a map, with details, filters and more.\u003Cbr>\nMade for my gf\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"what-is-it\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"what-is-it\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#what-is-it\">What is it ?\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Basically we needed a way to add custom points on a map. Google Maps works great but the customization is limited, and the UI isn’t the best.\u003Cbr>\nWith this app, all you need is to add a point, with a custom name, description and icon\u002Fcolor.\u003Cbr>\nSearch for an existing place or enter an address.\u003Cbr>\nToggle the visibility of each point\u002Fgroup of points.\u003Cbr>\nToggle the visibility of certain lines of public transportation.\u003Cbr>\nEvery user can access their own map, and a map can be used collaboratively by multiple users.\u003C\u002Fp>\n\u003Ch2 id=\"user-documentation\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"user-documentation\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#user-documentation\">User documentation\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Hi 👋\u003Cbr>\nIf you’re here, it’s probably because you’ve been sent a link to a hosted version of this app, but don’t know how to use it.\u003Cbr>\nThe starting point is the login screen :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fhomepage.png\" alt=\"Login screen\" loading=\"lazy\">\u003Cbr>\nSimply enter your username and password.\u003C\u002Fp>\n\u003Cdiv class=\"markdown-alert markdown-alert-note\">\n\u003Cp class=\"markdown-alert-title\">Note\u003C\u002Fp>\n\u003Cp>If you saved your credentials in your browser (especially Chrome), they might not appear as filled, while they are.\u003Cbr>\nYou can make sure of this by clicking somewhere on the screen.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cp>You will then land in the main screen (the map) :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Flanding.png\" alt=\"Map screen\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>To add a new point, go in the search bar and type the name of the place you want to add :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fsearch.png\" alt=\"Search bar\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>You can either search for a specific place, or just enter an address.\u003C\u002Fp>\n\u003Cdiv class=\"markdown-alert markdown-alert-tip\">\n\u003Cp class=\"markdown-alert-title\">Tip\u003C\u002Fp>\n\u003Cp>The results are losely filtered by the visible area of the map, so if you don’t find what you’re looking for, try to move the map a bit.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cp>Once done, you’ll have access to the fields to fill in :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fadd_pin.png\" alt=\"Add pin\" loading=\"lazy\">\u003Cbr>\nHere, you can edit the name, displayed address, description (if you want), the icon type (defined by the instance admin) and if the pin is favorite or not (will have an outline around its icon).\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fpin_on_map.png\" alt=\"Pin added\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>When you click on a pin, a popup window will appear with the pin’s details, and it will be highlighted in the pins list as well :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Ftooltip.png\" alt=\"Pin details\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>Here’s the difference between a normal pin and a favorite pin :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fmultiple_pins.png\" alt=\"Favorite pin\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>Every pin can be edited :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fedit_pin.png\" alt=\"Edit pin\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>And deleted, with a confirmation dialog :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fdelete_confirm.png\" alt=\"Delete pin\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>Transit lines can be toggled on to display the public transportation lines in the map :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Ftransit_lines.png\" alt=\"Transit lines\" loading=\"lazy\">\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Ftransit_popup.png\" alt=\"Transit popup\" loading=\"lazy\">\u003C\u002Fp>\n\u003Cdiv class=\"markdown-alert markdown-alert-note\">\n\u003Cp class=\"markdown-alert-title\">Note\u003C\u002Fp>\n\u003Cp>Actual transit lines like in the screenshot will only appear on big enough cities.\u003Cbr>\nThis mode will also prioritize the display of bus stops, metro stations and more at higher zoom levels. Don’t hesitate to zoom in to see more details.\u003Cbr>\nDisabling the transit lines will display again more details like shops, restaurants, monuments, …\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cp>To hide a pin from the map without deleting it, you can click on its icon in the pins list :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fhide_pin.png\" alt=\"Hide pin\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>Finally, this app is responsive, meaning you can use it on your phone or tablet as well :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fmobile_view.png\" alt=\"Mobile view\" loading=\"lazy\">\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fmobile_map.png\" alt=\"Mobile map\" loading=\"lazy\">\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fmobile_drawer.png\" alt=\"Mobile drawer\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>On a side note : this app is also available in French (use the language switch in the top right corner) :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Flang_switch.png\" alt=\"Lang switch\" loading=\"lazy\">\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Flang_fr.png\" alt=\"French mode\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>And a light mode is also available, if you prefer it :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Flight_mode.png\" alt=\"Light mode\" loading=\"lazy\">\u003C\u002Fp>\n\u003Cdetails>\u003Csummary>\u003Ch2>Developer documentation\u003C\u002Fh2>\u003C\u002Fsummary>\n\u003Ch2 id=\"get-started\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"get-started\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#get-started\">Get started\u003C\u002Fa>\u003C\u002Fh2>\n\n          \u003Cdiv class='code-block'>\n            \u003Cdiv class='code-block-header'>\n              \u003Cspan class='code-block-lang'>pwsh\u003C\u002Fspan>\n              \u003Cbutton class='copy-code-button' type='button'>\n                Copy\n              \u003C\u002Fbutton>\n            \u003C\u002Fdiv>\n            \u003Cpre>\u003Ccode class='hljs pwsh'>git clone https:\u002F\u002Fgithub.com\u002FEDM115\u002Fbetter\u003Cspan class=\"hljs-literal\">-maps\u003C\u002Fspan>.git\n\u003Cspan class=\"hljs-built_in\">cd\u003C\u002Fspan> better\u003Cspan class=\"hljs-literal\">-maps\u003C\u002Fspan>\n\u003C\u002Fcode>\u003C\u002Fpre>\n          \u003C\u002Fdiv>\n        \u003Cp>Create a \u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-title\">.env\u003C\u002Fspan>\u003C\u002Fcode> file in the root directory and add the following variables :\u003C\u002Fp>\n\n          \u003Cdiv class='code-block'>\n            \u003Cdiv class='code-block-header'>\n              \u003Cspan class='code-block-lang'>env\u003C\u002Fspan>\n              \u003Cbutton class='copy-code-button' type='button'>\n                Copy\n              \u003C\u002Fbutton>\n            \u003C\u002Fdiv>\n            \u003Cpre>\u003Ccode class='hljs env'>JWT_SECRET=4451b7b6411db0854895824f2fce24721989ac47da45c862cb1baf15383dbc6ef07c1f700304693dde08207bcf75e7e50ad9b146e8bdc4ebf16ade6e6cb9f173\nSEED_USERS=&#x27;[{\u003Cspan class=\"hljs-string\">&quot;username&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;admin&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;password&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;admin&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;role&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;admin&quot;\u003C\u002Fspan>}, {\u003Cspan class=\"hljs-string\">&quot;username&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;test&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;password&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;test&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;role&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;user&quot;\u003C\u002Fspan>}]&#x27;\nSEED_ICONS=&#x27;[{\u003Cspan class=\"hljs-string\">&quot;name&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;Home&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;color&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;#50FA7B&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;icon&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;mdi-home-outline&quot;\u003C\u002Fspan>}, {\u003Cspan class=\"hljs-string\">&quot;name&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;Groceries&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;color&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;#8BE9FD&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;icon&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;mdi-cart-outline&quot;\u003C\u002Fspan>}, {\u003Cspan class=\"hljs-string\">&quot;name&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;Schools&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;color&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;#FF79C6&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;icon&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;mdi-book-open-variant-outline&quot;\u003C\u002Fspan>}, {\u003Cspan class=\"hljs-string\">&quot;name&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;Work&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;color&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;#BD93F9&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;icon&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;mdi-bag-personal-outline&quot;\u003C\u002Fspan>}, {\u003Cspan class=\"hljs-string\">&quot;name&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;Food&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;color&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;#F1FA8C&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&quot;icon&quot;\u003C\u002Fspan>: \u003Cspan class=\"hljs-string\">&quot;mdi-food-outline&quot;\u003C\u002Fspan>}]&#x27;\nSEED=true\nGOOGLE_MAPS_API_KEY=Abc-Def123\nVITE_GOOGLE_MAPS_API_KEY=Abc-Def123\nSTARTING_POINT=48.8566,2.3522,3\nCOUNTRY=fr\nDEFAULT_UI_LANG=en\n\u003C\u002Fcode>\u003C\u002Fpre>\n          \u003C\u002Fdiv>\n        \u003Cul>\n\u003Cli>\u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-attribute\">JWT_SECRET\u003C\u002Fspan>\u003C\u002Fcode> : generate with \u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-keyword\">node\u003C\u002Fspan> \u003Cspan class=\"hljs-title\">-e\u003C\u002Fspan> \u003Cspan class=\"hljs-string\">&quot;import(&#x27;crypto&#x27;).then(crypto =&gt; console.log(crypto.randomBytes(64).toString(&#x27;hex&#x27;)))&quot;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-attribute\">SEED_USERS\u003C\u002Fspan>\u003C\u002Fcode> : if any value should contain a quote, write instead \u003Ccode class=\"hljs\">\\&#x27;\u003C\u002Fcode> (or \u003Ccode class=\"hljs\">\\\u003Cspan class=\"hljs-string\">&quot;\u003C\u002Fspan>\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-attribute\">SEED_ICONS\u003C\u002Fspan>\u003C\u002Fcode> : the color should be a hex color code starting with \u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-meta\">#\u003C\u002Fspan>\u003C\u002Fcode>, the icon should be a Material Design Icon name (\u003Ccode class=\"hljs\">mdi-\u003C\u002Fcode> + the name of the icon found at \u003Ca href=\"https:\u002F\u002Fpictogrammers.com\u002Flibrary\u002Fmdi\u002F\" target=\"_blank\" rel=\"noopener noreferrer\">Material Design Icons\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>\u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-attribute\">STARTING_POINT\u003C\u002Fspan>\u003C\u002Fcode> : the starting point of the map, in the format \u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-built_in\">lat,\u003C\u002Fspan>lng,zoom\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-attribute\">COUNTRY\u003C\u002Fspan>\u003C\u002Fcode> : the base country to “limit” the search results, lowercase country code only\u003C\u002Fli>\n\u003Cli>\u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-attribute\">DEFAULT_UI_LANG\u003C\u002Fspan>\u003C\u002Fcode> : the default language of the UI, either \u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-attribute\">en\u003C\u002Fspan>\u003C\u002Fcode> or \u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-attribute\">fr\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\n          \u003Cdiv class='code-block'>\n            \u003Cdiv class='code-block-header'>\n              \u003Cspan class='code-block-lang'>pwsh\u003C\u002Fspan>\n              \u003Cbutton class='copy-code-button' type='button'>\n                Copy\n              \u003C\u002Fbutton>\n            \u003C\u002Fdiv>\n            \u003Cpre>\u003Ccode class='hljs pwsh'>pnpm seed\n\u003C\u002Fcode>\u003C\u002Fpre>\n          \u003C\u002Fdiv>\n        \u003Cp>Put \u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-attribute\">SEED\u003C\u002Fspan>\u003C\u002Fcode> to \u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-literal\">false\u003C\u002Fspan>\u003C\u002Fcode> once the DB is seeded.\u003C\u002Fp>\n\n          \u003Cdiv class='code-block'>\n            \u003Cdiv class='code-block-header'>\n              \u003Cspan class='code-block-lang'>pwsh\u003C\u002Fspan>\n              \u003Cbutton class='copy-code-button' type='button'>\n                Copy\n              \u003C\u002Fbutton>\n            \u003C\u002Fdiv>\n            \u003Cpre>\u003Ccode class='hljs pwsh'>pnpm i\npnpm dev\n\u003C\u002Fcode>\u003C\u002Fpre>\n          \u003C\u002Fdiv>\n        \u003Ch2 id=\"build-and-run\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"build-and-run\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#build-and-run\">Build and run\u003C\u002Fa>\u003C\u002Fh2>\n\n          \u003Cdiv class='code-block'>\n            \u003Cdiv class='code-block-header'>\n              \u003Cspan class='code-block-lang'>pwsh\u003C\u002Fspan>\n              \u003Cbutton class='copy-code-button' type='button'>\n                Copy\n              \u003C\u002Fbutton>\n            \u003C\u002Fdiv>\n            \u003Cpre>\u003Ccode class='hljs pwsh'>docker build \u003Cspan class=\"hljs-literal\">--network\u003C\u002Fspan>=host \u003Cspan class=\"hljs-literal\">-t\u003C\u002Fspan> edm115\u002Fbetter\u003Cspan class=\"hljs-literal\">-maps\u003C\u002Fspan> .\ndocker run \u003Cspan class=\"hljs-literal\">-d\u003C\u002Fspan> \u003Cspan class=\"hljs-literal\">-p\u003C\u002Fspan> \u003Cspan class=\"hljs-number\">27400\u003C\u002Fspan>:\u003Cspan class=\"hljs-number\">27400\u003C\u002Fspan> \u003Cspan class=\"hljs-literal\">--env-file\u003C\u002Fspan> .env \u003Cspan class=\"hljs-literal\">-v\u003C\u002Fspan> better_maps_db:\u002Fapp\u002Fdb \u003Cspan class=\"hljs-literal\">--name\u003C\u002Fspan> better\u003Cspan class=\"hljs-literal\">-maps\u003C\u002Fspan> edm115\u002Fbetter\u003Cspan class=\"hljs-literal\">-maps\u003C\u002Fspan>\n\u003C\u002Fcode>\u003C\u002Fpre>\n          \u003C\u002Fdiv>\n        \u003Ch2 id=\"in-app-settings\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"in-app-settings\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#in-app-settings\">In-app settings\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Every admin can access the settings page by clicking on the account shield icon in the navigation bar :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fadmin_settings.png\" alt=\"Admin settings\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>You can dump the database, as CSV, JSON, SQL or the raw SQLite file.\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>You will be able to edit existing users :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fuser_management.png\" alt=\"Edit user\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>Add new users :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fadd_user.png\" alt=\"Add user\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>Edit existing maps and add new ones :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fadd_map.png\" alt=\"Add map\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>As well as edit the icons available for the users to choose from when adding a pin :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Ficons_management.png\" alt=\"Edit icons\" loading=\"lazy\">\u003Cbr>\n\u003Cbr>\n\u003C\u002Fp>\n\u003Cp>And add new ones, with on-the-fly icon preview and validation :\u003Cbr>\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FEDM115\u002Fbetter-maps\u002Fmaster\u002Fdocs\u002Fadd_icon.png\" alt=\"Add icon\" loading=\"lazy\">\u003C\u002Fp>\n\u003Ch2 id=\"quick-notes\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"quick-notes\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#quick-notes\">Quick notes\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>The pins background will always be in dark mode, due to how bright the icons are in general, to make them readable both in light and dark mode (ex map).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"db-scheme\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"db-scheme\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#db-scheme\">DB Scheme\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ch3 id=\"user\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"user\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#user\">User\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth style=\"text-align:left\">Column\u003C\u002Fth>\n\u003Cth style=\"text-align:left\">Type\u003C\u002Fth>\n\u003Cth style=\"text-align:left\">Extra\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">id\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">int\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Primary Key, Autoincrement\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">username\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null, Unique\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">password\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">role\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null, “admin” or “user” (default)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">map_id\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">int\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Foreign Key, Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch3 id=\"map\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"map\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#map\">Map\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth style=\"text-align:left\">Column\u003C\u002Fth>\n\u003Cth style=\"text-align:left\">Type\u003C\u002Fth>\n\u003Cth style=\"text-align:left\">Extra\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">id\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">int\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Primary Key, Autoincrement\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">name\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null, “Default Map” (default)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">user_id\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">int\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Foreign Key, Not Null, can be multiple\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">start_lat\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">float\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">start_lng\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">float\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">start_zoom\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">int\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">country\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null, lowercase country code\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">show_transit\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">bool\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null, default false\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch3 id=\"point\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"point\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#point\">Point\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth style=\"text-align:left\">Column\u003C\u002Fth>\n\u003Cth style=\"text-align:left\">Type\u003C\u002Fth>\n\u003Cth style=\"text-align:left\">Extra\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">id\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">int\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Primary Key, Autoincrement\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">name\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">description\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null, default “”\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">address\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">lat\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">float\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">lng\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">float\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">color\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null, default “”\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">icon\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">int\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Foreign Key, Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">map_id\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">int\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Foreign Key, Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">visible\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">bool\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null, default true\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">favorite\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">bool\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null, default false\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch3 id=\"icon\" tabindex=\"-1\">\u003Cspan\n                class=\"header-copy-icon\"\n                role=\"button\"\n                data-slug=\"icon\"\n              >\n                \u003Csvg>\u003Cpath fill=\"currentColor\" d=\"M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.98 2.98 0 0 0 0-4.24a2.98 2.98 0 0 0-4.24 0l-3.53 3.53a2.98 2.98 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.98 2.98 0 0 0 0 4.24a2.98 2.98 0 0 0 4.24 0l3.53-3.53a2.98 2.98 0 0 0 0-4.24a.973.973 0 0 1 0-1.42\"\u002F>\u003C\u002Fsvg>\n              \u003C\u002Fspan>\u003Ca class=\"header-anchor\" href=\"#icon\">Icon\u003C\u002Fa>\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth style=\"text-align:left\">Column\u003C\u002Fth>\n\u003Cth style=\"text-align:left\">Type\u003C\u002Fth>\n\u003Cth style=\"text-align:left\">Extra\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">id\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">int\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Primary Key, Autoincrement\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">name\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">color\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd style=\"text-align:left\">icon\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">string\u003C\u002Ftd>\n\u003Ctd style=\"text-align:left\">Not Null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdetails>\n",1779532540846]