diff --git a/Server/app/resources/basic/BasicController.jl b/Server/app/resources/basic/BasicController.jl index 308d47f..8b42e34 100644 --- a/Server/app/resources/basic/BasicController.jl +++ b/Server/app/resources/basic/BasicController.jl @@ -10,12 +10,6 @@ dict_layouts = Dict( :landing => generate_layout_html("main",controller,"landing",css=["landing"],libraries=["Leaflet"]), :manifesto => generate_layout_html("main",controller,"manifesto"), :join_us => generate_layout_html("main",controller,"join_us",libraries=["Leaflet"]), - :groups => generate_layout_html("main",controller,"groups",libraries=["Leaflet"]), - :groups_add => generate_layout_html("main",controller,"groups_add",libraries=["Leaflet"]), - :cooperatives => generate_layout_html("main",controller,"cooperatives",libraries=["Leaflet"]), - :communes => generate_layout_html("main",controller,"communes",libraries=["Leaflet"]), - :parties => generate_layout_html("main",controller,"parties",libraries=["Leaflet"]), - :partners => generate_layout_html("main",controller,"partners",libraries=["Leaflet"]), :compass => generate_layout_html("main",controller,"compass"), ) @@ -54,61 +48,6 @@ const join_us_info = Dict( ), ) -const groups_info = Dict( - "en" => Dict( - :title => "LibSoc - Groups", - :description => "" - ), - "ru" => Dict( - :title => "LibSoc - Группы", - :description => "" - ) -) - -const cooperatives_info = Dict( - "en" => Dict( - :title => "LibSoc - Cooperatives", - :description => "" - ), - "ru" => Dict( - :title => "LibSoc - Кооперативы", - :description => "" - ) -) - -const communes_info = Dict( - "en" => Dict( - :title => "LibSoc - Communes", - :description => "" - ), - "ru" => Dict( - :title => "LibSoc - Коммуны", - :description => "" - ) -) - -const partners_info = Dict( - "en" => Dict( - :title => "LibSoc - Partners", - :description => "" - ), - "ru" => Dict( - :title => "LibSoc - Партнеры", - :description => "" - ) -) - -const parties_info = Dict( - "en" => Dict( - :title => "LibSoc - Parties", - :description => "" - ), - "ru" => Dict( - :title => "LibSoc - Партии", - :description => "" - ) -) - const compass_info = Dict( "en" => Dict( :title => "LibSoc - Political Compass", @@ -147,62 +86,6 @@ function manifesto() ) end -function join_us() - locale = get_locale() - html(:basic,:join_us, layout = dict_layouts[:join_us], context = @__MODULE__, - title = join_us_info[locale][:title], - description = join_us_info[locale][:description] - ) -end - -function groups() - locale = get_locale() - html(:basic,:groups, layout = dict_layouts[:groups], context = @__MODULE__, - title = groups_info[locale][:title], - description = groups_info[locale][:description] - ) -end - -function groups_add() - locale = get_locale() - html(:basic,:groups_add, layout = dict_layouts[:groups_add], context = @__MODULE__, - title = groups_info[locale][:title], - description = groups_info[locale][:description] - ) -end - -function cooperatives() - locale = get_locale() - html(:basic,:cooperatives, layout = dict_layouts[:cooperatives], context = @__MODULE__, - title = cooperatives_info[locale][:title], - description = cooperatives_info[locale][:description] - ) -end - -function communes() - locale = get_locale() - html(:basic,:communes, layout = dict_layouts[:communes], context = @__MODULE__, - title = communes_info[locale][:title], - description = communes_info[locale][:description] - ) -end - -function partners() - locale = get_locale() - html(:basic,:partners, layout = dict_layouts[:partners], context = @__MODULE__, - title = partners_info[locale][:title], - description = partners_info[locale][:description] - ) -end - -function parties() - locale = get_locale() - html(:basic,:parties, layout = dict_layouts[:parties], context = @__MODULE__, - title = parties_info[locale][:title], - description = parties_info[locale][:description] - ) -end - function political_compass() locale = get_locale() html(:basic,:compass, layout = dict_layouts[:compass], context = @__MODULE__, @@ -211,9 +94,12 @@ function political_compass() ) end -function groups_add_post() - data = jsonpayload() - insert_into_table("groups_requests",data) +function join_us() + locale = get_locale() + html(:basic,:join_us, layout = dict_layouts[:join_us], context = @__MODULE__, + title = join_us_info[locale][:title], + description = join_us_info[locale][:description] + ) end end diff --git a/Server/app/resources/communes/CommunesController.jl b/Server/app/resources/communes/CommunesController.jl new file mode 100644 index 0000000..613ffc6 --- /dev/null +++ b/Server/app/resources/communes/CommunesController.jl @@ -0,0 +1,59 @@ +module CommunesController + +using Genie, Genie.Renderer, Genie.Renderer.Html, Genie.Requests +using JSON3 +using SearchLight +using Server.DatabaseSupport, Server.TemplateEditor + +controller = "communes" +dict_layouts = Dict( + :communes => generate_layout_html("main",controller,"communes",libraries=["Leaflet"]), + :communes_add => generate_layout_html("main",controller,"communes_add",libraries=["Leaflet"]), +) + +#---Page info----------------------------------------------------- + +const communes_info = Dict( + "en" => Dict( + :title => "LibSoc - Communes", + :description => "" + ), + "ru" => Dict( + :title => "LibSoc - Коммуны", + :description => "" + ) +) + +function get_locale() + data = payload() + if :locale in keys(data) + return data[:locale] + else + return "en" + end +end + +#---Functions--------------------------------------------------------- + +function communes() + locale = get_locale() + html(:communes,:communes, layout = dict_layouts[:communes], context = @__MODULE__, + title = communes_info[locale][:title], + description = communes_info[locale][:description] + ) +end + +function communes_add() + locale = get_locale() + html(:communes,:communes_add, layout = dict_layouts[:communes_add], context = @__MODULE__, + title = communes_info[locale][:title], + description = communes_info[locale][:description] + ) +end + +function communes_add_post() + data = jsonpayload() + insert_into_table("communes_requests",data) +end + +end diff --git a/Server/app/resources/basic/views/communes.jl.html b/Server/app/resources/communes/views/communes.jl.html similarity index 100% rename from Server/app/resources/basic/views/communes.jl.html rename to Server/app/resources/communes/views/communes.jl.html diff --git a/Server/app/resources/communes/views/communes_add.jl.html b/Server/app/resources/communes/views/communes_add.jl.html new file mode 100644 index 0000000..0b597ef --- /dev/null +++ b/Server/app/resources/communes/views/communes_add.jl.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Server/app/resources/cooperatives/CooperativesController.jl b/Server/app/resources/cooperatives/CooperativesController.jl new file mode 100644 index 0000000..8c08482 --- /dev/null +++ b/Server/app/resources/cooperatives/CooperativesController.jl @@ -0,0 +1,60 @@ +module CooperativesController + +using Genie, Genie.Renderer, Genie.Renderer.Html, Genie.Requests +using JSON3 +using SearchLight +using Server.DatabaseSupport, Server.TemplateEditor + +controller = "cooperatives" +dict_layouts = Dict( + :cooperatives => generate_layout_html("main",controller,"cooperatives",libraries=["Leaflet"]), + :cooperatives_add => generate_layout_html("main",controller,"cooperatives_add",libraries=["Leaflet"]), +) + +#---Page info----------------------------------------------------- + +const cooperatives_info = Dict( + "en" => Dict( + :title => "LibSoc - Cooperatives", + :description => "" + ), + "ru" => Dict( + :title => "LibSoc - Кооперативы", + :description => "" + ) +) + +function get_locale() + data = payload() + if :locale in keys(data) + return data[:locale] + else + return "en" + end +end + +#---Functions--------------------------------------------------------- + + +function cooperatives_add() + locale = get_locale() + html(:cooperatives,:cooperatives_add, layout = dict_layouts[:cooperatives_add], context = @__MODULE__, + title = cooperatives_info[locale][:title], + description = cooperatives_info[locale][:description] + ) +end + +function cooperatives() + locale = get_locale() + html(:cooperatives,:cooperatives, layout = dict_layouts[:cooperatives], context = @__MODULE__, + title = cooperatives_info[locale][:title], + description = cooperatives_info[locale][:description] + ) +end + +function cooperatives_add_post() + data = jsonpayload() + insert_into_table("cooperatives_requests",data) +end + +end diff --git a/Server/app/resources/basic/views/cooperatives.jl.html b/Server/app/resources/cooperatives/views/cooperatives.jl.html similarity index 100% rename from Server/app/resources/basic/views/cooperatives.jl.html rename to Server/app/resources/cooperatives/views/cooperatives.jl.html diff --git a/Server/app/resources/cooperatives/views/cooperatives_add.jl.html b/Server/app/resources/cooperatives/views/cooperatives_add.jl.html new file mode 100644 index 0000000..713e1bb --- /dev/null +++ b/Server/app/resources/cooperatives/views/cooperatives_add.jl.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Server/app/resources/groups/GroupsController.jl b/Server/app/resources/groups/GroupsController.jl new file mode 100644 index 0000000..c924959 --- /dev/null +++ b/Server/app/resources/groups/GroupsController.jl @@ -0,0 +1,59 @@ +module GroupsController + +using Genie, Genie.Renderer, Genie.Renderer.Html, Genie.Requests +using JSON3 +using SearchLight +using Server.DatabaseSupport, Server.TemplateEditor + +controller = "groups" +dict_layouts = Dict( + :groups => generate_layout_html("main",controller,"groups",libraries=["Leaflet"]), + :groups_add => generate_layout_html("main",controller,"groups_add",libraries=["Leaflet"]), +) + +#---Page info----------------------------------------------------- + +const groups_info = Dict( + "en" => Dict( + :title => "LibSoc - Groups", + :description => "" + ), + "ru" => Dict( + :title => "LibSoc - Группы", + :description => "" + ) +) + +function get_locale() + data = payload() + if :locale in keys(data) + return data[:locale] + else + return "en" + end +end + +#---Functions--------------------------------------------------------- + +function groups() + locale = get_locale() + html(:groups,:groups, layout = dict_layouts[:groups], context = @__MODULE__, + title = groups_info[locale][:title], + description = groups_info[locale][:description] + ) +end + +function groups_add() + locale = get_locale() + html(:groups,:groups_add, layout = dict_layouts[:groups_add], context = @__MODULE__, + title = groups_info[locale][:title], + description = groups_info[locale][:description] + ) +end + +function groups_add_post() + data = jsonpayload() + insert_into_table("groups_requests",data) +end + +end diff --git a/Server/app/resources/basic/views/groups.jl.html b/Server/app/resources/groups/views/groups.jl.html similarity index 100% rename from Server/app/resources/basic/views/groups.jl.html rename to Server/app/resources/groups/views/groups.jl.html diff --git a/Server/app/resources/basic/views/groups_add.jl.html b/Server/app/resources/groups/views/groups_add.jl.html similarity index 100% rename from Server/app/resources/basic/views/groups_add.jl.html rename to Server/app/resources/groups/views/groups_add.jl.html diff --git a/Server/app/resources/parties/PartiesController.jl b/Server/app/resources/parties/PartiesController.jl new file mode 100644 index 0000000..15a0099 --- /dev/null +++ b/Server/app/resources/parties/PartiesController.jl @@ -0,0 +1,60 @@ +module PartiesController + +using Genie, Genie.Renderer, Genie.Renderer.Html, Genie.Requests +using JSON3 +using SearchLight +using Server.DatabaseSupport, Server.TemplateEditor + +controller = "parties" +dict_layouts = Dict( + :parties_add => generate_layout_html("main",controller,"parties_add",libraries=["Leaflet"]), + :parties => generate_layout_html("main",controller,"parties",libraries=["Leaflet"]), +) + +#---Page info----------------------------------------------------- + +const parties_info = Dict( + "en" => Dict( + :title => "LibSoc - Parties", + :description => "" + ), + "ru" => Dict( + :title => "LibSoc - Партии", + :description => "" + ) +) + +function get_locale() + data = payload() + if :locale in keys(data) + return data[:locale] + else + return "en" + end +end + +#---Functions--------------------------------------------------------- + + +function parties() + locale = get_locale() + html(:parties,:parties, layout = dict_layouts[:parties], context = @__MODULE__, + title = parties_info[locale][:title], + description = parties_info[locale][:description] + ) +end + +function parties_add() + locale = get_locale() + html(:parties,:parties_add, layout = dict_layouts[:parties_add], context = @__MODULE__, + title = parties_info[locale][:title], + description = parties_info[locale][:description] + ) +end + +function parties_add_post() + data = jsonpayload() + insert_into_table("parties_requests",data) +end + +end diff --git a/Server/app/resources/basic/views/parties.jl.html b/Server/app/resources/parties/views/parties.jl.html similarity index 100% rename from Server/app/resources/basic/views/parties.jl.html rename to Server/app/resources/parties/views/parties.jl.html diff --git a/Server/app/resources/parties/views/parties_add.jl.html b/Server/app/resources/parties/views/parties_add.jl.html new file mode 100644 index 0000000..9b859ff --- /dev/null +++ b/Server/app/resources/parties/views/parties_add.jl.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Server/app/resources/partners/PartnersController.jl b/Server/app/resources/partners/PartnersController.jl new file mode 100644 index 0000000..a553c62 --- /dev/null +++ b/Server/app/resources/partners/PartnersController.jl @@ -0,0 +1,59 @@ +module PartnersController + +using Genie, Genie.Renderer, Genie.Renderer.Html, Genie.Requests +using JSON3 +using SearchLight +using Server.DatabaseSupport, Server.TemplateEditor + +controller = "partners" +dict_layouts = Dict( + :partners => generate_layout_html("main",controller,"partners",libraries=["Leaflet"]), + :partners_add => generate_layout_html("main",controller,"partners_add",libraries=["Leaflet"]), +) + +#---Page info----------------------------------------------------- + +const partners_info = Dict( + "en" => Dict( + :title => "LibSoc - Partners", + :description => "" + ), + "ru" => Dict( + :title => "LibSoc - Партнеры", + :description => "" + ) +) + + +function get_locale() + data = payload() + if :locale in keys(data) + return data[:locale] + else + return "en" + end +end + +#---Functions--------------------------------------------------------- + +function partners() + locale = get_locale() + html(:partners,:partners, layout = dict_layouts[:partners], context = @__MODULE__, + title = partners_info[locale][:title], + description = partners_info[locale][:description] + ) +end +function partners_add() + locale = get_locale() + html(:partners,:partners_add, layout = dict_layouts[:partners_add], context = @__MODULE__, + title = partners_info[locale][:title], + description = partners_info[locale][:description] + ) +end + +function partners_add_post() + data = jsonpayload() + insert_into_table("partners_requests",data) +end + +end diff --git a/Server/app/resources/basic/views/partners.jl.html b/Server/app/resources/partners/views/partners.jl.html similarity index 100% rename from Server/app/resources/basic/views/partners.jl.html rename to Server/app/resources/partners/views/partners.jl.html diff --git a/Server/app/resources/partners/views/partners_add.jl.html b/Server/app/resources/partners/views/partners_add.jl.html new file mode 100644 index 0000000..783dec5 --- /dev/null +++ b/Server/app/resources/partners/views/partners_add.jl.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Server/app/svelte/public/js/communes.js b/Server/app/svelte/public/js/communes.js deleted file mode 100644 index 871abde..0000000 --- a/Server/app/svelte/public/js/communes.js +++ /dev/null @@ -1,99 +0,0 @@ - -export let communes = [ - { - location: [["Canada","Montreal"],[45.55541047232767, -73.42859611607271]], - status: "forming", - members: 2, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Denmark"],[55.915625218626275, 9.673445220831253]], - status: "forming", - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Estonia","Kohtla-Jarve"],[59.409521829709504, 27.288415912535914]], - status: "forming", - members: 2, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Latvia"],[56.934159375258055, 25.269099001330265]], - status: "forming", - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Switzerland"],[46.97045202584917, 8.05130091516525]], - status: "forming", - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - } -] - -export let communesByCountry = {} -for (let c of communes) { - let country = c.location[0][0] - if (country in communesByCountry) { - communesByCountry[country].push(c) - } - else { - communesByCountry[country] = [c] - } -} - -export let communesMarkersLayer = L.layerGroup() - -export function translate(content, x) { - let out = content[x] - if (out==undefined) { - return x - } - else { - return out - } -} - -export function addMarkersCommunes(map,content,locale) { - for (let g of communes) { - let coordinates - let text = ""+content["Commune"]+"
" - for (let field in g) { - let fieldText = content[field] + ": " - if (field=="contact") { - text += fieldText + "" + content[g.contact[1]]+ "" - } - else if (field=="location") { - let location = g[field][0] - let locationString - if (locale=="en") { - locationString = location.map(x => x).join(", ") - } - else { - locationString = location.map(x => translate(content, x)).join(", ") - } - - text += fieldText + locationString + "
" - coordinates = g[field][1] - } - else if (field=="status") { - text += fieldText + content[g[field]] + "
" - } - else { - text += fieldText + g[field] + "
" - } - } - var markerIcon = new L.Icon({ - iconUrl: 'https://www.libsoc.org/img/common/markers/marker-red.png', - shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png', - iconSize: [25, 41], - iconAnchor: [12, 41], - popupAnchor: [1, -34], - shadowSize: [41, 41] - }); - let marker = L.marker(coordinates, {icon: markerIcon}) - marker.addTo(communesMarkersLayer).bindPopup(text) - } - communesMarkersLayer.addTo(map) -} \ No newline at end of file diff --git a/Server/app/svelte/public/js/coops.js b/Server/app/svelte/public/js/coops.js deleted file mode 100644 index 8338fcc..0000000 --- a/Server/app/svelte/public/js/coops.js +++ /dev/null @@ -1,79 +0,0 @@ -export let coops = [ - { - logo: "chiron_logo", - name: "Chiron Health", - location: [["Estonia","Kohtla-Järve"],[59.41038769769602, 27.287802936242034]], - market: "wellnessAndHealth", - workers: 2, - status: "inDevelopment", - website: ["https://www.chrn.health/", "chrn.health"], - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"], - description: "descriptionChironHealth" - }, - { - logo: "kuusk_logo", - name: "Kuusk", - location: [["Estonia","Kohtla-Järve"],[59.399947051803004, 27.277159931677055]], - market: "herbalTeas", - workers: 1, - status: "inDevelopment", - website: ["-","-"], - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"], - description: "kuuskDescription" - } -] - -export let coopsByCountry = {} -for (let g of coops) { - let country = g.location[0][0] - if (country in coopsByCountry) { - coopsByCountry[country].push(g) - } - else { - coopsByCountry[country] = [g] - } -} - -export let coopsMarkersLayer = L.layerGroup() - -export function addMarkersCoops(map,content,locale) { - for (let g of coops) { - let coordinates - let text = ""+content["Cooperative"]+"
" - for (let field in g) { - let fieldText - if (field!="logo") { - fieldText = content[field] + ": " - } - if (field=="logo") { - text += "logo" + "
" - } - else if (field=="contact") { - text += fieldText + "" + content[g.contact[1]] + "" + "
" - } - else if (field=="website") { - text += fieldText + "" + g.website[1] + "" + "
" - } - else if (field=="location") { - let location = g[field][0] - let locationString - if (locale=="en") { - locationString = location.map(x => x).join(", ") - } - else { - locationString = location.map(x => content[x]).join(", ") - } - text += fieldText + locationString + "
" - coordinates = g[field][1] - } - else if (field=="market" || field=="status" || field=="description") { - text += fieldText + content[g[field]] + "
" - } - else { - text += fieldText + g[field] + "
" - } - } - L.marker(coordinates).addTo(coopsMarkersLayer).bindPopup(text) - } - coopsMarkersLayer.addTo(map) -} \ No newline at end of file diff --git a/Server/app/svelte/public/js/groups.js b/Server/app/svelte/public/js/groups.js deleted file mode 100644 index 1319310..0000000 --- a/Server/app/svelte/public/js/groups.js +++ /dev/null @@ -1,198 +0,0 @@ -/* -export let groups = [ - { - location: [["Bulgaria","Varna"],[43.21582161671174, 27.89896092161012]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Canada","Halifax"],[44.65166135030067, -63.59289968306866]], - members: 2, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Canada","Toronto"], [43.6960589794647, -79.37396957644577]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Denmark","Copenhagen"],[55.6840661150132, 12.557133959514688]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Denmark","Kolding"], [55.49261908652738, 9.470268969851743]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Estonia","Kohtla-Järve"], [59.40629447076191, 27.280605339416322]], - members: 3, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Estonia","Tallinn"], [59.39180354687856, 24.72304565687877]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Germany","Wiesbaden"], [50.07459620869791, 8.234984059337897]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Greece","Athens"], [37.94877252621736, 23.677622972996158]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Ireland"], [53.280192832733576, -7.688103518964818]], - members: 6, - contact: ["https://discord.gg/4BUau4AZre","DiscordInviteLink"] - }, - { - location: [["Latvia","Riga"], [56.94748425529816, 24.003027136431925]], - members: 2, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["USA","Florida"], [26.945024427155868, -81.22162645059898]], - members: 2, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["USA","Colorado","Louisville"], [39.965026323855334, -105.15948886693151]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["USA","Georgia"], [33.91813982808364, -84.38058579763135]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["USA","Ohio"], [40.18243610076637, -83.07800532738788]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Thailand","Chiang Mai"], [18.788343253574393, 98.99423221087719]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - }, - { - location: [["Switzerland","Cham"], [47.18298143153399, 8.460076421717238]], - members: 1, - contact: ["https://discord.gg/Qk8KUk787z","DiscordInviteLink"] - } -] -*/ - -export let groupsMarkersLayer = L.layerGroup() -let groupsMarkersLayerOut = L.layerGroup() -let groupsMarkersLayerIn = L.layerGroup() - -let contactGeneral =["https://discord.gg/4BUau4AZre","DiscordInviteLink"] - -export function translate(content, x) { - let out = content[x] - if (out==undefined) { - return x - } - else { - return out - } -} - -function addMarkersToLayer(g,layer,content,locale) { - let coordinates - let text = ""+content["Group"]+"
" - for (let field of ["location","members","contact"]) { - - let fieldText = content[field] + ": " - if (field=="contact") { - text += fieldText + "" + g.contact + "" - } - else if (field=="location") { - let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) - let locationString - if (locale=="en") { - locationString = location.map(x => x).join(", ") - } - else { - locationString = location.map(x => translate(content, x)).join(", ") - } - text += fieldText + locationString + "
" - coordinates = [g.latitude,g.longitude] - } - else { - text += fieldText + g[field] + "
" - } - } - var markerIcon = new L.Icon({ - iconUrl: 'https://www.libsoc.org/img/common/markers/marker-green.png', - shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png', - iconSize: [25, 41], - iconAnchor: [12, 41], - popupAnchor: [1, -34], - shadowSize: [41, 41] - }) - //console.log(text) - let marker = L.marker(coordinates, {icon: markerIcon}) - marker.addTo(layer).bindPopup(text) -} - -export function addMarkersGroups(groups,groupsByCountry,map,content,locale) { - for (let g of groups) { - addMarkersToLayer(g,groupsMarkersLayerIn,content,locale) - } - for (let gs of Object.values(groupsByCountry)) { - if (gs.length==1) { - let g = {...gs[0]} - g.country = [g.country] - addMarkersToLayer(g,groupsMarkersLayerOut,content,locale) - } - else { - let locationName = gs[0].country - let locationCoordinates = [0,0] - let members = 0 - let contact = gs[0].contact - for (let g of gs) { - locationCoordinates[0] += g.latitude - locationCoordinates[1] += g.longitude - members += g.members - if (g.contact[0]!=gs[0].contact[0]) { - contact = contactGeneral - } - } - locationCoordinates[0] = locationCoordinates[0]/gs.length - locationCoordinates[1] = locationCoordinates[1]/gs.length - let gNew = { - country: locationName, - latitude: locationCoordinates[0], - longitude: locationCoordinates[1], - members: members, - contact: contact - } - addMarkersToLayer(gNew,groupsMarkersLayerOut,content,locale) - } - } - - groupsMarkersLayerOut.addTo(groupsMarkersLayer) - groupsMarkersLayer.addTo(map) - map.on("zoomend", () => onZoomEnd(map)) -} - -function onZoomEnd(map) { - let zoomLevel = map.getZoom() - if (zoomLevel==3) { - groupsMarkersLayer.removeLayer(groupsMarkersLayerIn) - groupsMarkersLayerOut.addTo(groupsMarkersLayer) - } - else if (zoomLevel==4) { - groupsMarkersLayer.removeLayer(groupsMarkersLayerOut) - groupsMarkersLayerIn.addTo(groupsMarkersLayer) - } -} - - diff --git a/Server/app/svelte/public/js/libraries/mapTools.js b/Server/app/svelte/public/js/libraries/mapTools.js new file mode 100644 index 0000000..1f9cfb4 --- /dev/null +++ b/Server/app/svelte/public/js/libraries/mapTools.js @@ -0,0 +1,90 @@ +let contactGeneral =["https://discord.gg/4BUau4AZre","DiscordInviteLink"] + +export function translate(content, x) { + let out = content[x] + if (out==undefined) { + return x + } + else { + return out + } +} + +function addMarkersToLayer(g,layer,content,locale,addPinContent,markerColor) { + let {text,coordinates} = addPinContent(g,content,locale) + var markerIcon = new L.Icon({ + iconUrl: 'https://www.libsoc.org/img/common/markers/marker-' + markerColor + '.png', + shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] + }) + let marker = L.marker(coordinates, {icon: markerIcon}) + marker.addTo(layer).bindPopup(text) +} + +export function addMarkersEntries(entries,entriesByCountry,map,content,locale,addPinContent,markerColor) { + let entriesMarkersLayer = L.layerGroup() + let entriesMarkersLayerOut = L.layerGroup() + let entriesMarkersLayerIn = L.layerGroup() + for (let g of entries) { + if (g.country!="Online" && g.country!="Worldwide") { + addMarkersToLayer(g,entriesMarkersLayerIn,content,locale,addPinContent,markerColor) + } + } + for (let gs of Object.values(entriesByCountry)) { + if (gs.length==1) { + let g = {...gs[0]} + g.country = [g.country] + if (g.country!="Online" && g.country!="Worldwide") { + addMarkersToLayer(g,entriesMarkersLayerOut,content,locale,addPinContent,markerColor) + } + } + else { + if (gs[0].country!="Online" && gs[0].country!="Worldwide") { + let locationName = gs[0].country + let locationCoordinates = [0,0] + let members = 0 + let contact = gs[0].contact + for (let g of gs) { + locationCoordinates[0] += g.latitude + locationCoordinates[1] += g.longitude + members += g.members + if (g.contact[0]!=gs[0].contact[0]) { + contact = contactGeneral + } + } + locationCoordinates[0] = locationCoordinates[0]/gs.length + locationCoordinates[1] = locationCoordinates[1]/gs.length + let gNew = { + country: locationName, + latitude: locationCoordinates[0], + longitude: locationCoordinates[1], + members: members, + contact: contact + } + addMarkersToLayer(gNew,entriesMarkersLayerOut,content,locale,addPinContent,markerColor) + } + } + } + + entriesMarkersLayerOut.addTo(entriesMarkersLayer) + entriesMarkersLayer.addTo(map) + map.on("zoomend", () => onZoomEnd(map,entriesMarkersLayer,entriesMarkersLayerOut,entriesMarkersLayerIn)) + return entriesMarkersLayer +} + +function onZoomEnd(map,entriesMarkersLayer,entriesMarkersLayerOut,entriesMarkersLayerIn) { + let zoomLevel = map.getZoom() + if (zoomLevel==3) { + entriesMarkersLayer.removeLayer(entriesMarkersLayerIn) + entriesMarkersLayerOut.addTo(entriesMarkersLayer) + } + else if (zoomLevel==4) { + entriesMarkersLayer.removeLayer(entriesMarkersLayerOut) + entriesMarkersLayerIn.addTo(entriesMarkersLayer) + } +} + + diff --git a/Server/app/svelte/public/js/mapFuncs.js b/Server/app/svelte/public/js/mapFuncs.js new file mode 100644 index 0000000..f37d0d7 --- /dev/null +++ b/Server/app/svelte/public/js/mapFuncs.js @@ -0,0 +1,178 @@ +import { translate } from "/js/libraries/mapTools.js" + +export function addGroupPinContent(g,content,locale) { + let coordinates + let text = ""+content["Group"]+"
" + for (let field of ["location","members","contact"]) { + let fieldText = content[field] + ": " + if (field=="contact") { + text += fieldText + "" + g.contact + "" + } + else if (field=="location") { + let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) + let locationString + if (locale=="en") { + locationString = location.map(x => x).join(", ") + } + else { + locationString = location.map(x => translate(content, x)).join(", ") + } + text += fieldText + locationString + "
" + coordinates = [g.latitude,g.longitude] + } + else { + text += fieldText + g[field] + "
" + } + } + return {text,coordinates} +} + +export function addCommunePinContent(g,content,locale) { + let coordinates + let text = ""+content["Commune"]+"
" + for (let field of ["location","status","members","contact"]) { + let fieldText = content[field] + ": " + if (field=="contact") { + text += fieldText + "" + g.contact + "" + } + else if (field=="location") { + let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) + let locationString + if (locale=="en") { + locationString = location.map(x => x).join(", ") + } + else { + locationString = location.map(x => translate(content, x)).join(", ") + } + text += fieldText + locationString + "
" + coordinates = [g.latitude,g.longitude] + } + else if (field=="status") { + text += fieldText + content[g[field]] + "
" + } + else { + text += fieldText + g[field] + "
" + } + } + return {text,coordinates} +} + +export function addCoopPinContent(g,content,locale) { + let coordinates + let text = ""+content["Cooperative"]+"
" + for (let field of ["logo","name","location","workers","status","website","contact","description"]) { + let fieldText + if (field!="logo") { + fieldText = content[field] + ": " + } + if (field=="logo") { + text += "logo" + "
" + } + else if (field=="contact") { + text += fieldText + "" + g.contact + "" + "
" + } + else if (field=="website") { + text += fieldText + "" + g.website + "" + "
" + } + else if (field=="location") { + let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) + let locationString + if (locale=="en") { + locationString = location.map(x => x).join(", ") + } + else { + locationString = location.map(x => translate(content, x)).join(", ") + } + text += fieldText + locationString + "
" + coordinates = [g.latitude,g.longitude] + } + else if (field=="market" || field=="status" || field=="description") { + text += fieldText + g[field] + "
" + } + else { + text += fieldText + g[field] + "
" + } + } + return {text,coordinates} +} + +export function addPartyPinContent(g,content,locale) { + let coordinates + let text = ""+content["Cooperative"]+"
" + for (let field of ["logo","name","location","website","contact","description"]) { + let fieldText + if (field!="logo") { + fieldText = content[field] + ": " + } + if (field=="logo") { + text += "logo" + "
" + } + else if (field=="link") { + text += fieldText + "" + g.link + "" + "
" + } + else if (field=="website") { + text += fieldText + "" + g.website + "" + "
" + } + else if (field=="location") { + let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) + let locationString + if (locale=="en") { + locationString = location.map(x => x).join(", ") + } + else { + locationString = location.map(x => translate(content, x)).join(", ") + } + text += fieldText + locationString + "
" + coordinates = [g.latitude,g.longitude] + } + else if (field=="description") { + text += fieldText + content[g[field]] + "
" + } + else if (field=="contact") { + text += fieldText + "" + g.contact + "" + "
" + } + else { + text += fieldText + g[field] + "
" + } + } + return {text,coordinates} +} + +export function addPartnersPinContent(g,content,locale) { + let coordinates + let text = ""+content["Partner"]+"
" + for (let field of ["logo","name","location","website","contact","description"]) { + let fieldText + if (field!="logo") { + fieldText = content[field] + ": " + } + if (field=="logo") { + text += "logo" + "
" + } + else if (field=="contact") { + text += fieldText + "" + g.contact + "" + "
" + } + else if (field=="website") { + text += fieldText + "" + g.website + "" + "
" + } + else if (field=="location") { + let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) + let locationString + if (locale=="en") { + locationString = location.map(x => x).join(", ") + } + else { + locationString = location.map(x => translate(content, x)).join(", ") + } + text += fieldText + locationString + "
" + coordinates = [g.latitude,g.longitude] + } + else if (field=="description") { + text += fieldText + g[field] + "
" + } + else { + text += fieldText + g[field] + "
" + } + } + return {text,coordinates} +} \ No newline at end of file diff --git a/Server/app/svelte/public/js/parties.js b/Server/app/svelte/public/js/parties.js deleted file mode 100644 index 5921eb9..0000000 --- a/Server/app/svelte/public/js/parties.js +++ /dev/null @@ -1,74 +0,0 @@ -export let parties = [ - { - logo: "roots", - name: "Roots", - location: ["Ireland",[52.98479517270413, -7.649233227534782]], - //members: 6, - link: "https://discord.gg/pSTMacJZsK", - description: "descriptionRoots" - } -] - -export let partiesByCountry = {} -for (let g of parties) { - let country = g.location[0] - if (country in partiesByCountry) { - partiesByCountry[country].push(g) - } - else { - partiesByCountry[country] = [g] - } -} - -export let partiesMarkersLayer = L.layerGroup() - -export function addMarkersParties(map,content,locale) { - for (let g of parties) { - let coordinates - let text = ""+content["Party"]+"
" - for (let field in g) { - let fieldText - if (field!="logo") { - fieldText = content[field] + ": " - } - if (field=="logo") { - text += "logo" + "
" - } - else if (field=="link") { - text += fieldText + "" + g.link + "" + "
" - } - else if (field=="website") { - text += fieldText + "" + g.website + "" + "
" - } - else if (field=="location") { - let location = g[field][0] - let locationString - if (locale=="en") { - locationString = location - } - else { - locationString = content[location] - } - text += fieldText + locationString + "
" - coordinates = g[field][1] - } - else if (field=="description") { - text += fieldText + content[g[field]] + "
" - } - else { - text += fieldText + g[field] + "
" - } - } - var markerIcon = new L.Icon({ - iconUrl: 'https://www.libsoc.org/img/common/markers/marker-gold.png', - shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png', - iconSize: [25, 41], - iconAnchor: [12, 41], - popupAnchor: [1, -34], - shadowSize: [41, 41] - }); - let marker = L.marker(coordinates, {icon: markerIcon}) - marker.addTo(partiesMarkersLayer).bindPopup(text) - } - partiesMarkersLayer.addTo(map) -} \ No newline at end of file diff --git a/Server/app/svelte/public/js/partners.js b/Server/app/svelte/public/js/partners.js deleted file mode 100644 index 05fd226..0000000 --- a/Server/app/svelte/public/js/partners.js +++ /dev/null @@ -1,21 +0,0 @@ -export let partners = [ - { - name: "Gaia's Fall", - type: "typeGaiasFall", - location: [["Online"],[0,0]], - link: "https://discord.libsoc.org/invite/", - description: "descriptionGaiasFall", - logo: "gaias_fall" - } -] - -export let partnersByCountry = {} -for (let g of partners) { - let country = g.location[0][0] - if (country in partnersByCountry) { - partnersByCountry[country].push(g) - } - else { - partnersByCountry[country] = [g] - } -} \ No newline at end of file diff --git a/Server/app/svelte/public/locales/en/communes-component.json b/Server/app/svelte/public/locales/en/communes-component.json index e9c522f..99f0d64 100644 --- a/Server/app/svelte/public/locales/en/communes-component.json +++ b/Server/app/svelte/public/locales/en/communes-component.json @@ -10,5 +10,6 @@ "forming": "forming", "WhatsAppInviteLink": "WhatsApp invite link", "DiscordInviteLink": "Discord invite link", - "Commune": "Commune" + "Commune": "Commune", + "map-prompt": "Want to appear on our map? Contact us!" } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/en/cooperatives-component.json b/Server/app/svelte/public/locales/en/cooperatives-component.json index b246fd4..06ce0d2 100644 --- a/Server/app/svelte/public/locales/en/cooperatives-component.json +++ b/Server/app/svelte/public/locales/en/cooperatives-component.json @@ -18,6 +18,7 @@ "descriptionChironHealth": "Chiron Health is a health platform providing courses and services on the topics of nutrition, exercise, sleep and mental wellbeing.", "herbalTeas": "herbal teas", "kuuskDescription": "Kuusk is an online store that sells herbal teas from exclusively local wild plants, as well as an online gathering course.", - "Cooperative": "Cooperative" + "Cooperative": "Cooperative", + "map-prompt": "Want to appear on our map? Contact us!" } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/en/countries.json b/Server/app/svelte/public/locales/en/countries.json index 8919b1b..0e0dcd2 100644 --- a/Server/app/svelte/public/locales/en/countries.json +++ b/Server/app/svelte/public/locales/en/countries.json @@ -1,3 +1,3 @@ { - "map-prompt": "Want to appear on our map? Contact us!" + } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/en/groups-component.json b/Server/app/svelte/public/locales/en/groups-component.json index 18e5fb4..9a4eaf7 100644 --- a/Server/app/svelte/public/locales/en/groups-component.json +++ b/Server/app/svelte/public/locales/en/groups-component.json @@ -8,5 +8,6 @@ "contact": "Contact", "DiscordInviteLink": "Discord invite link", "WhatsAppInviteLink": "WhatsApp invite link", - "Group": "Group" + "Group": "Group", + "map-prompt": "Want to appear on our map? Contact us!" } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/en/parties-component.json b/Server/app/svelte/public/locales/en/parties-component.json index 317e43c..4fa7607 100644 --- a/Server/app/svelte/public/locales/en/parties-component.json +++ b/Server/app/svelte/public/locales/en/parties-component.json @@ -5,8 +5,10 @@ "name": "Name", "location": "Location", "members": "Members", - "link": "Link", + "website": "Website", + "contact": "Contact", "description": "Description", "descriptionRoots": "We are a left libertarian organization based in Ireland. We have a focus on rebuilding the country's infrastructure, sense of governance, housing, agricultural industries and youth affairs.", - "Party": "Party" + "Party": "Party", + "map-prompt": "Want to appear on our map? Contact us!" } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/en/partners-component.json b/Server/app/svelte/public/locales/en/partners-component.json index f677ace..37421c6 100644 --- a/Server/app/svelte/public/locales/en/partners-component.json +++ b/Server/app/svelte/public/locales/en/partners-component.json @@ -5,10 +5,11 @@ "subheading2": "Online", "name": "Name", "location": "Location", - "type": "Type", - "link": "Link", + "website": "Website", + "contact": "Contact", "description": "Description", "typeGaiasFall": "a place for discussions", - "descriptionGaiasFall": "Gaia's Fall is a server that promotes Solarpunk ideals, environmentalism, anarchism, and anti-capitalism. We encourage civil debates, discussions of theories and possibilities, and the creation of communities focused on shaping a better world." + "descriptionGaiasFall": "Gaia's Fall is a server that promotes Solarpunk ideals, environmentalism, anarchism, and anti-capitalism. We encourage civil debates, discussions of theories and possibilities, and the creation of communities focused on shaping a better world.", + "map-prompt": "Want to appear on our map? Contact us!" } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/ru/communes-component.json b/Server/app/svelte/public/locales/ru/communes-component.json index d8e3064..b8bf573 100644 --- a/Server/app/svelte/public/locales/ru/communes-component.json +++ b/Server/app/svelte/public/locales/ru/communes-component.json @@ -9,5 +9,6 @@ "forming": "формируется", "WhatsAppInviteLink": "WhatsApp ссылка", "DiscordInviteLink": "Discord ссылка", - "Commune": "Коммуна" + "Commune": "Коммуна", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/ru/cooperatives-component.json b/Server/app/svelte/public/locales/ru/cooperatives-component.json index c04de71..c824886 100644 --- a/Server/app/svelte/public/locales/ru/cooperatives-component.json +++ b/Server/app/svelte/public/locales/ru/cooperatives-component.json @@ -18,5 +18,6 @@ "descriptionChironHealth": "Chiron Health — это платформа о здоровье, предлагающая курсы и услуги по вопросам питания, физических упражнений, сна и психического благополучия", "herbalTeas": "травяные чаи", "kuuskDescription": "Kuusk — интернет-магазин, в котором продаются травяные чаи исключительно из местных дикорастущих растений, а также онлайн-курс по собирательству.", - "Cooperative": "Кооператив" + "Cooperative": "Кооператив", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/ru/countries.json b/Server/app/svelte/public/locales/ru/countries.json index 56dd33d..0e0dcd2 100644 --- a/Server/app/svelte/public/locales/ru/countries.json +++ b/Server/app/svelte/public/locales/ru/countries.json @@ -1,30 +1,3 @@ { - "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!", - "Online": "Онлайн", - "Denmark": "Дания", - "Estonia": "Эстония", - "Greece": "Греция", - "Latvia": "Латвия", - "Canada": "Канада", - "Ireland": "Ирландия", - "Germany": "Германия", - "USA": "CША", - "Bulgaria": "Болгария", - "Thailand": "Тайланд", - "Colorado": "Колорадо", - "Georgia": "Джорджия", - "Ohio": "Огайо", - "Copenhagen": "Копенгаген", - "Kolding": "Колдинг", - "Kohtla-Järve": "Кохтла-Ярве", - "Athens": "Афины", - "Riga": "Рига", - "Halifax": "Галифакс", - "Montreal": "Монреаль", - "Wiesbaden": "Висбаден", - "Florida": "Флорида", - "Tallinn": "Таллинн", - "Varna": "Варна", - "Louisville": "Луисвилл", - "Toronto": "Торонто" + } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/ru/groups-component.json b/Server/app/svelte/public/locales/ru/groups-component.json index 4d0d9ff..b81838a 100644 --- a/Server/app/svelte/public/locales/ru/groups-component.json +++ b/Server/app/svelte/public/locales/ru/groups-component.json @@ -7,5 +7,6 @@ "contact": "Контакт", "DiscordInviteLink": "Discord ссылка", "WhatsAppInviteLink": "WhatsApp ссылка", - "Group": "Группа" + "Group": "Группа", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/ru/join-us-component.json b/Server/app/svelte/public/locales/ru/join-us-component.json index 8ec1522..5b4df5d 100644 --- a/Server/app/svelte/public/locales/ru/join-us-component.json +++ b/Server/app/svelte/public/locales/ru/join-us-component.json @@ -30,5 +30,6 @@ "market": "Рынок", "workers": "Работники", "description": "Описание", - "website": "Вебсайт" + "website": "Вебсайт", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/ru/landing-component.json b/Server/app/svelte/public/locales/ru/landing-component.json index e134c65..5eb789b 100644 --- a/Server/app/svelte/public/locales/ru/landing-component.json +++ b/Server/app/svelte/public/locales/ru/landing-component.json @@ -11,5 +11,6 @@ "findUs": "Найди нас", "whatNow": "Что теперь?", "joinUs": "Присоединяйся", - "talkWithUs": "Напиши нам" + "talkWithUs": "Напиши нам", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/ru/parties-component.json b/Server/app/svelte/public/locales/ru/parties-component.json index 9a3d3fd..768b953 100644 --- a/Server/app/svelte/public/locales/ru/parties-component.json +++ b/Server/app/svelte/public/locales/ru/parties-component.json @@ -5,9 +5,11 @@ "name": "Имя", "location": "Локация", "members": "Участники", - "link": "Ссылка", + "website": "Вебсайт", + "contact": "Контакт", "description": "Описание", "ireland": "Ирландия", "descriptionRoots": "Мы — левая либертарная организация, базирующаяся в Ирландии. Мы уделяем особое внимание восстановлению инфраструктуры страны, самоуправлению, жилищному строительству, сельскохозяйственной промышленности и делам молодежи.", - "Party": "Партия" + "Party": "Партия", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/app/svelte/public/locales/ru/partners-component.json b/Server/app/svelte/public/locales/ru/partners-component.json index 3ebd453..4d5a616 100644 --- a/Server/app/svelte/public/locales/ru/partners-component.json +++ b/Server/app/svelte/public/locales/ru/partners-component.json @@ -6,8 +6,10 @@ "name": "Название", "location": "Локация", "type": "Тип", - "link": "Ссылка", + "website": "Вебсайт", + "contact": "Контакт", "description": "Описание", "typeGaiasFall": "место для общения", - "descriptionGaiasFall": "Gaia's Fall — это сервер, который продвигает идеалы соларпанка, защиту окружающей среды, анархизм и антикапитализм. Мы поощряем гражданские дебаты, обсуждение теорий и возможностей, а также создание сообществ, сосредоточенных на формировании лучшего мира." + "descriptionGaiasFall": "Gaia's Fall — это сервер, который продвигает идеалы соларпанка, защиту окружающей среды, анархизм и антикапитализм. Мы поощряем гражданские дебаты, обсуждение теорий и возможностей, а также создание сообществ, сосредоточенных на формировании лучшего мира.", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/app/svelte/rollup.config.js b/Server/app/svelte/rollup.config.js index bade40b..d9f00c2 100644 --- a/Server/app/svelte/rollup.config.js +++ b/Server/app/svelte/rollup.config.js @@ -10,7 +10,6 @@ import watch from "rollup-plugin-watch"; const production = !process.env.ROLLUP_WATCH; - function serve() { let server; diff --git a/Server/app/svelte/src/communes-add-component.svelte b/Server/app/svelte/src/communes-add-component.svelte new file mode 100644 index 0000000..3f23fa7 --- /dev/null +++ b/Server/app/svelte/src/communes-add-component.svelte @@ -0,0 +1,415 @@ + + + + +{#key $loaded} + {#if $loaded==3} +
+ +
+

Add a Commune

+ communes +

If there are no communes near you who you can join and you want to start your own then do the following:

+
    +
  1. Click on the map to show us where you are located;
  2. +
  3. Add a way to contact you or leave blank for a pin to point to our discord;
  4. +
  5. Press "Submit" to add yourself to our map;
  6. +
  7. Verify yourself by having a chat with us at our Discord server to show on the map;
  8. +
+
+ +
+ resizeInput(addressInput)} id="address-input" type="text" readonly> +
+
+
+
+ +
+ resizeInput(contactInput)} id="contact-input" type="text"> +
+
+
+
+ +
+ +
+
+
+ +

+ mapCallback(createMap,$content,locale)}> +
+
+ {/if} +{/key} + + \ No newline at end of file diff --git a/Server/app/svelte/src/communes-component.svelte b/Server/app/svelte/src/communes-component.svelte index e710735..ea18f32 100644 --- a/Server/app/svelte/src/communes-component.svelte +++ b/Server/app/svelte/src/communes-component.svelte @@ -3,31 +3,56 @@ {#key $loaded} - {#if $loaded==2} + {#if $loaded==3} +

{$content.communes}

- commune + commune

{$content.p1}

{$content.subheading1}

- mapCallbackCommunes(createMap,$content,locale)}> + mapCallback(createMap,$content,locale)}>

{$content["map-prompt"]}

- {#each Object.entries(communesByCountry) as [name,communes]} + {#each Object.entries(entriesByCountry) as [name,entries]}

{getCountry(name)}

- {#each communes as commune} + {#each entries as entry} +
-

{$content.location}: {getAddress(commune)}

-

{$content.status}: {$content[commune.status]}

-

{$content.members}: {commune.members}

-

{$content.contact}: {$content[commune.contact[1]]}

+

{$content.location}: {getAddress(entry)}

+

{$content.status}: {$content[entry.status]}

+

{$content.members}: {entry.members}

+

{$content.contact}: {entry.contact}

{/each}
@@ -75,7 +102,7 @@ margin-bottom: 2rem; } - #commune-img { + #communes-img { position: absolute; width: 11.5rem; left: 50%; diff --git a/Server/app/svelte/src/components/map-component.svelte b/Server/app/svelte/src/components/map-component.svelte index aecc12b..f6b6d4d 100644 --- a/Server/app/svelte/src/components/map-component.svelte +++ b/Server/app/svelte/src/components/map-component.svelte @@ -50,6 +50,8 @@ width: var(--width,100%); margin-top: var(--margin-top,0); margin-bottom: var(--margin-bottom,0); + position: relative; + z-index: 0; } \ No newline at end of file diff --git a/Server/app/svelte/src/components/select-component.svelte b/Server/app/svelte/src/components/select-component.svelte index 0951e93..5f4a42a 100644 --- a/Server/app/svelte/src/components/select-component.svelte +++ b/Server/app/svelte/src/components/select-component.svelte @@ -194,6 +194,7 @@ .select span { position: relative; padding-top: 0.5rem; + padding-left: 0.3rem; white-space: nowrap; } diff --git a/Server/app/svelte/src/cooperatives-add-component.svelte b/Server/app/svelte/src/cooperatives-add-component.svelte new file mode 100644 index 0000000..1465083 --- /dev/null +++ b/Server/app/svelte/src/cooperatives-add-component.svelte @@ -0,0 +1,413 @@ + + + + +{#key $loaded} + {#if $loaded==3} +
+ +
+

Add a Group

+ groups +

If there are no groups in your town with whom you can organize then do the following:

+
    +
  1. Click on the map to show us where you are located;
  2. +
  3. Add a way to contact you or leave blank for a pin to point to our discord;
  4. +
  5. Press "Submit" to add yourself to our map;
  6. +
  7. Verify yourself by having a chat with us at our Discord server to show on the map;
  8. +
+
+ +
+ resizeInput(addressInput)} id="address-input" type="text" readonly> +
+
+
+
+ +
+ resizeInput(contactInput)} id="contact-input" type="text"> +
+
+
+ +

+ mapCallback(createMap,$content,locale)}> +
+
+ {/if} +{/key} + + \ No newline at end of file diff --git a/Server/app/svelte/src/cooperatives-component.svelte b/Server/app/svelte/src/cooperatives-component.svelte index 1e255d5..6ba90df 100644 --- a/Server/app/svelte/src/cooperatives-component.svelte +++ b/Server/app/svelte/src/cooperatives-component.svelte @@ -4,8 +4,9 @@ // Import statements import { onMount } from 'svelte' import { writable } from 'svelte/store'; - import { coopsByCountry, addMarkersCoops } from '/js/coops.js' - import { loadLocaleContent } from "/js/libraries/serverTools.js" + import { loadLocaleContent, getData} from "/js/libraries/serverTools.js" + import { addMarkersEntries, translate } from "/js/libraries/mapTools.js" + import { addCoopPinContent } from "/js/mapFuncs.js" // Import components import "/js/components/map-component.js" @@ -13,21 +14,45 @@ // Main code let loaded = writable(0) let content = writable({}) + let entries + let entriesByCountry - let locale = loadLocaleContent(content,"countries",loaded) - loadLocaleContent(content,"cooperatives-component",loaded) + let locale = loadLocaleContent(content,"cooperatives-component",loaded) + loadLocaleContent(content,"countries",loaded) - function mapCallbackCoops(createMap,content) { + let callback = (response) => { + entries = JSON.parse(response) + entriesByCountry = {} + for (let g of entries) { + let country = g.country + if (g.contact==null) { + g.contact = "https://discord.gg/Qk8KUk787z" + } + if (country in entriesByCountry) { + entriesByCountry[country].push(g) + } + else { + entriesByCountry[country] = [g] + } + } + loaded.update((val) => { + return val + 1 + }) + } + getData("/assets/cooperatives.json",callback) + + function mapCallback(createMap,content,locale) { let map = createMap([22, 0],2) - addMarkersCoops(map,content,locale) + addMarkersEntries(entries,entriesByCountry,map,content,locale,addCoopPinContent,"blue") } - function getCountry(name) { - return locale=="en" ? name : $content[name] + function getCountry(x) { + return locale=="en" ? x : translate($content,x) } - function getAddress(group) { - return group.location[0].map(x => locale=="en" ? x : $content[x]).join(", ") + function getAddress(g) { + let location = [g.country,g.state,g.town].filter(x => x!=null) + return location.map(x => locale=="en" ? x : translate($content,x)).join(", ") } onMount(() => { @@ -36,37 +61,38 @@ {#key $loaded} - {#if $loaded==2} + {#if $loaded==3}

{$content.cooperatives}

coops

{$content.p1}

{$content.subheading1}

- mapCallbackCoops(createMap,$content,locale)}> + mapCallback(createMap,$content,locale)}>

{$content["map-prompt"]}

- {#each Object.entries(coopsByCountry) as [name,coops]} + {#each Object.entries(entriesByCountry) as [name,entries]}

{getCountry(name)}

- {#each coops as coop} + {#each entries as entry} + {console.log(entry)}
-

{$content.name}: {coop.name}

-

{$content.location}: {getAddress(coop)}

-

{$content.market}: {$content[coop.market]}

-

{$content.workers}: {coop.workers}

-

{$content.status}: {$content[coop.status]}

-

{$content.website}: {coop.website[1]}

-

{$content.contact}: {$content[coop.contact[1]]}

+

{$content.name}: {entry.name}

+

{$content.location}: {getAddress(entry)}

+

{$content.market}: {entry.market}

+

{$content.workers}: {entry.workers}

+

{$content.status}: {entry.status}

+

{$content.website}: {entry.website}

+

{$content.contact}: {entry.contact}

- - + +
-

{$content.description}: {$content[coop.description]}

+

{$content.description}: {entry.description}

{/each}
diff --git a/Server/app/svelte/src/groups-add-component.svelte b/Server/app/svelte/src/groups-add-component.svelte index bd53d3f..9a6c2fc 100644 --- a/Server/app/svelte/src/groups-add-component.svelte +++ b/Server/app/svelte/src/groups-add-component.svelte @@ -4,8 +4,8 @@ // Import statements import { onMount } from 'svelte' import { writable } from 'svelte/store'; - import { addMarkersGroups, translate } from '/js/groups.js' import { loadLocaleContent, getData, sendData } from "/js/libraries/serverTools.js" + import { addMarkersEntries, translate } from "/js/libraries/mapTools.js" // Import components import "/js/components/map-component.js" @@ -13,22 +13,22 @@ // Main code let loaded = writable(0) let content = writable({}) - let groups - let groupsByCountry + let entries + let entriesByCountry let callback = (response) => { - groups = JSON.parse(response) - groupsByCountry = {} - for (let g of groups) { + entries = JSON.parse(response) + entriesByCountry = {} + for (let g of entries) { let country = g.country if (g.contact==null) { g.contact = "https://discord.gg/Qk8KUk787z" } - if (country in groupsByCountry) { - groupsByCountry[country].push(g) + if (country in entriesByCountry) { + entriesByCountry[country].push(g) } else { - groupsByCountry[country] = [g] + entriesByCountry[country] = [g] } } loaded.update((val) => { @@ -126,9 +126,37 @@ getData(url,callback) } - function mapCallbackGroups(createMap,content,locale) { + function addGroupPinContent(g,content,locale) { + let coordinates + let text = ""+content["Group"]+"
" + for (let field of ["location","members","contact"]) { + let fieldText = content[field] + ": " + if (field=="contact") { + text += fieldText + "" + g.contact + "" + } + else if (field=="location") { + let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) + let locationString + if (locale=="en") { + locationString = location.map(x => x).join(", ") + } + else { + locationString = location.map(x => translate(content, x)).join(", ") + } + text += fieldText + locationString + "
" + coordinates = [g.latitude,g.longitude] + } + else { + text += fieldText + g[field] + "
" + } + } + return {text,coordinates} + } + + + function mapCallback(createMap,content,locale) { let map = createMap([22, 0],2) - addMarkersGroups(groups,groupsByCountry,map,content,locale) + addMarkersEntries(entries,entriesByCountry,map,content,locale,addGroupPinContent,"green") userPin.addTo(map) map.on('click', function(event) { @@ -220,7 +248,7 @@

- mapCallbackGroups(createMap,$content,locale)}> + mapCallback(createMap,$content,locale)}>
{/if} diff --git a/Server/app/svelte/src/groups-component.svelte b/Server/app/svelte/src/groups-component.svelte index c12847c..3f4b017 100644 --- a/Server/app/svelte/src/groups-component.svelte +++ b/Server/app/svelte/src/groups-component.svelte @@ -4,8 +4,9 @@ // Import statements import { onMount } from 'svelte' import { writable } from 'svelte/store'; - import { addMarkersGroups, translate } from '/js/groups.js' - import { loadLocaleContent, getData, sendData } from "/js/libraries/serverTools.js" + import { loadLocaleContent, getData} from "/js/libraries/serverTools.js" + import { addMarkersEntries, translate } from "/js/libraries/mapTools.js" + import { addGroupPinContent } from "/js/mapFuncs.js" // Import components import "/js/components/map-component.js" @@ -13,25 +14,25 @@ // Main code let loaded = writable(0) let content = writable({}) - let groups - let groupsByCountry + let entries + let entriesByCountry let locale = loadLocaleContent(content,"groups-component",loaded) loadLocaleContent(content,"countries",loaded) let callback = (response) => { - groups = JSON.parse(response) - groupsByCountry = {} - for (let g of groups) { + entries = JSON.parse(response) + entriesByCountry = {} + for (let g of entries) { let country = g.country if (g.contact==null) { g.contact = "https://discord.gg/Qk8KUk787z" } - if (country in groupsByCountry) { - groupsByCountry[country].push(g) + if (country in entriesByCountry) { + entriesByCountry[country].push(g) } else { - groupsByCountry[country] = [g] + entriesByCountry[country] = [g] } } loaded.update((val) => { @@ -40,9 +41,9 @@ } getData("/assets/groups.json",callback) - function mapCallbackGroups(createMap,content,locale) { + function mapCallback(createMap,content,locale) { let map = createMap([22, 0],2) - addMarkersGroups(groups,groupsByCountry,map,content,locale) + addMarkersEntries(entries,entriesByCountry,map,content,locale,addGroupPinContent,"green") } function getCountry(x) { @@ -68,16 +69,16 @@ groups

{$content.p1}

{$content.subheading1}

- mapCallbackGroups(createMap,$content,locale)}> + mapCallback(createMap,$content,locale)}>

{$content["map-prompt"]}

- {#each Object.entries(groupsByCountry) as [name,groups]} + {#each Object.entries(entriesByCountry) as [name,entries]}

{getCountry(name)}

- {#each groups as group} + {#each entries as entry}
-

{$content.location}: {getAddress(group)}

-

{$content.members}: {group.members}

-

{$content.contact}: {group.contact}

+

{$content.location}: {getAddress(entry)}

+

{$content.members}: {entry.members}

+

{$content.contact}: {entry.contact}

{/each}
diff --git a/Server/app/svelte/src/join-us-component.svelte b/Server/app/svelte/src/join-us-component.svelte index 72975c2..def67e8 100644 --- a/Server/app/svelte/src/join-us-component.svelte +++ b/Server/app/svelte/src/join-us-component.svelte @@ -4,11 +4,9 @@ // Import statements import { onMount } from 'svelte' import { writable } from 'svelte/store'; - import { addMarkersGroups, groupsMarkersLayer } from '/js/groups.js' - import { addMarkersCoops, coopsMarkersLayer } from '/js/coops.js' - import { addMarkersCommunes, communesMarkersLayer } from '/js/communes.js' - import { addMarkersParties, partiesMarkersLayer } from '/js/parties.js' import { loadLocaleContent, getData } from "/js/libraries/serverTools.js" + import { addMarkersEntries, translate } from "/js/libraries/mapTools.js" + import { addGroupPinContent, addCommunePinContent, addCoopPinContent, addPartyPinContent } from "/js/mapFuncs.js" // Import components import "/js/components/map-component.js" @@ -16,8 +14,8 @@ // Main code let loaded = writable(0) let content = writable({}) - let groups - let groupsByCountry + let entries = {} + let entriesByCountry ={} loadLocaleContent(content,"groups-component",loaded) loadLocaleContent(content,"communes-component",loaded) @@ -27,40 +25,42 @@ let locale = loadLocaleContent(content,"join-us-component",loaded) - let callback = (response) => { - groups = JSON.parse(response) - groupsByCountry = {} - for (let g of groups) { + let callback = (response,name) => { + entries[name] = JSON.parse(response) + entriesByCountry[name] = {} + for (let g of entries[name]) { let country = g.country if (g.contact==null) { g.contact = "https://discord.gg/Qk8KUk787z" } - if (country in groupsByCountry) { - groupsByCountry[country].push(g) + if (country in entriesByCountry[name]) { + entriesByCountry[name][country].push(g) } else { - groupsByCountry[country] = [g] + entriesByCountry[name][country] = [g] } } loaded.update((val) => { return val + 1 }) } - getData("/assets/groups.json",callback) + getData("/assets/groups.json",(response) => callback(response,"groups")) + getData("/assets/communes.json",(response) => callback(response,"communes")) + getData("/assets/cooperatives.json",(response) => callback(response,"cooperatives")) + getData("/assets/parties.json",(response) => callback(response,"parties")) function mapCallback(createMap,content,locale) { let map = createMap([22, 0],2) - addMarkersGroups(groups,groupsByCountry,map,content,locale) - addMarkersCommunes(map,content,locale) - addMarkersCoops(map,content,locale) - addMarkersParties(map,content,locale) + let groupsMarkersLayer = addMarkersEntries(entries["groups"],entriesByCountry["groups"],map,content,locale,addGroupPinContent,"green") + let communesMarkersLayer = addMarkersEntries(entries["communes"],entriesByCountry["communes"],map,content,locale,addCommunePinContent,"red") + let coopsMarkersLayer = addMarkersEntries(entries["cooperatives"],entriesByCountry["cooperatives"],map,content,locale,addCoopPinContent,"blue") + let partiesMarkersLayer = addMarkersEntries(entries["parties"],entriesByCountry["parties"],map,content,locale,addPartyPinContent,"gold") - let overlayMaps = { - "Groups": groupsMarkersLayer, - "Communes": communesMarkersLayer, - "Coops": coopsMarkersLayer, - "Parties": partiesMarkersLayer, - } + let overlayMaps = {} + overlayMaps[content.groups] = groupsMarkersLayer + overlayMaps[content.communes] = communesMarkersLayer + overlayMaps[content.cooperatives] = coopsMarkersLayer + overlayMaps[content.parties] = partiesMarkersLayer L.control.layers(null, overlayMaps).addTo(map) } @@ -70,7 +70,7 @@ {#key $loaded} - {#if $loaded==7} + {#if $loaded==10}

{$content.heading}

@@ -101,7 +101,7 @@

{$content.nearYou}

{$content.noneNear} {$content.WhatsAppGroup} {$content.or} {$content.DiscordServer}{$content.helpStart}

- mapCallback(createMap,$content,locale)}> + mapCallback(createMap,$content,locale)} colors={["#23AC20","#CA2437","#217BC9","#FFD326"]}>
{/if} diff --git a/Server/app/svelte/src/landing-component.svelte b/Server/app/svelte/src/landing-component.svelte index 4f0b855..d224f93 100644 --- a/Server/app/svelte/src/landing-component.svelte +++ b/Server/app/svelte/src/landing-component.svelte @@ -4,11 +4,9 @@ // Import statements import { onMount } from 'svelte' import { writable } from 'svelte/store'; - import { addMarkersGroups, groupsMarkersLayer, translate } from '/js/groups.js' - import { addMarkersCoops, coopsMarkersLayer } from '/js/coops.js' - import { addMarkersCommunes, communesMarkersLayer } from '/js/communes.js' - import { addMarkersParties, partiesMarkersLayer } from '/js/parties.js' import { loadLocaleContent, getData } from "/js/libraries/serverTools.js" + import { addMarkersEntries, translate } from "/js/libraries/mapTools.js" + import { addGroupPinContent, addCommunePinContent, addCoopPinContent, addPartyPinContent } from "/js/mapFuncs.js" // Import components import "/js/components/map-component.js" @@ -18,8 +16,8 @@ let gridWidth let loaded = writable(0) let content = writable({}) - let groups - let groupsByCountry + let entries = {} + let entriesByCountry ={} function changeWidth(locale) { if (locale=="ru") { @@ -30,26 +28,29 @@ } } - let callback = (response) => { - groups = JSON.parse(response) - groupsByCountry = {} - for (let g of groups) { + let callback = (response,name) => { + entries[name] = JSON.parse(response) + entriesByCountry[name] = {} + for (let g of entries[name]) { let country = g.country if (g.contact==null) { g.contact = "https://discord.gg/Qk8KUk787z" } - if (country in groupsByCountry) { - groupsByCountry[country].push(g) + if (country in entriesByCountry[name]) { + entriesByCountry[name][country].push(g) } else { - groupsByCountry[country] = [g] + entriesByCountry[name][country] = [g] } } loaded.update((val) => { return val + 1 }) } - getData("/assets/groups.json",callback) + getData("/assets/groups.json",(response) => callback(response,"groups")) + getData("/assets/communes.json",(response) => callback(response,"communes")) + getData("/assets/cooperatives.json",(response) => callback(response,"cooperatives")) + getData("/assets/parties.json",(response) => callback(response,"parties")) loadLocaleContent(content,"groups-component",loaded) loadLocaleContent(content,"communes-component",loaded) @@ -61,10 +62,10 @@ function mapCallback(createMap,content,locale) { let map = createMap([22, 0],2) - addMarkersGroups(groups,groupsByCountry,map,content,locale) - addMarkersCommunes(map,content,locale) - addMarkersCoops(map,content,locale) - addMarkersParties(map,content,locale) + let groupsMarkersLayer = addMarkersEntries(entries["groups"],entriesByCountry["groups"],map,content,locale,addGroupPinContent,"green") + let communesMarkersLayer = addMarkersEntries(entries["communes"],entriesByCountry["communes"],map,content,locale,addCommunePinContent,"red") + let coopsMarkersLayer = addMarkersEntries(entries["cooperatives"],entriesByCountry["cooperatives"],map,content,locale,addCoopPinContent,"blue") + let partiesMarkersLayer = addMarkersEntries(entries["parties"],entriesByCountry["parties"],map,content,locale,addPartyPinContent,"gold") let overlayMaps = {} overlayMaps[content.groups] = groupsMarkersLayer @@ -81,7 +82,7 @@ {#key $loaded} - {#if $loaded==7} + {#if $loaded==10}
@@ -97,9 +98,9 @@

{$content.groupsText}

-

{$content.communesTitle}

- communes -

{$content.communesText}

+

{$content.partiesTitle}

+ coops +

{$content.partiesText}

{$content.cooperativesTitle}

@@ -107,9 +108,9 @@

{$content.cooperativesText}

-

{$content.partiesTitle}

- coops -

{$content.partiesText}

+

{$content.communesTitle}

+ communes +

{$content.communesText}

+
+

Add a Party

+ parties +

If there are no parties in your country which you can join then do the following:

+
    +
  1. Click on the map to show us where you are located;
  2. +
  3. Add a way to contact you or leave blank for a pin to point to our discord;
  4. +
  5. Press "Submit" to add yourself to our map;
  6. +
  7. Verify yourself by having a chat with us at our Discord server to show on the map;
  8. +
+
+ +
+ resizeInput(addressInput)} id="address-input" type="text" readonly> +
+
+
+
+ +
+ resizeInput(contactInput)} id="contact-input" type="text"> +
+
+
+ +

+ mapCallback(createMap,$content,locale)}> +
+ + {/if} +{/key} + + \ No newline at end of file diff --git a/Server/app/svelte/src/parties-component.svelte b/Server/app/svelte/src/parties-component.svelte index d091526..205b93b 100644 --- a/Server/app/svelte/src/parties-component.svelte +++ b/Server/app/svelte/src/parties-component.svelte @@ -4,8 +4,9 @@ // Import statements import { onMount } from 'svelte' import { writable } from 'svelte/store'; - import { partiesByCountry, addMarkersParties } from '/js/parties.js' - import { loadLocaleContent } from "/js/libraries/serverTools.js" + import { loadLocaleContent, getData} from "/js/libraries/serverTools.js" + import { addMarkersEntries, translate } from "/js/libraries/mapTools.js" + import { addPartyPinContent } from "/js/mapFuncs.js" // Import components import "/js/components/map-component.js" @@ -13,21 +14,45 @@ // Main code let loaded = writable(0) let content = writable({}) + let entries + let entriesByCountry - loadLocaleContent(content,"countries",loaded) let locale = loadLocaleContent(content,"parties-component",loaded) + loadLocaleContent(content,"countries",loaded) - function mapCallbackParties(createMap,content,locale) { + let callback = (response) => { + entries = JSON.parse(response) + entriesByCountry = {} + for (let g of entries) { + let country = g.country + if (g.contact==null) { + g.contact = "https://discord.gg/Qk8KUk787z" + } + if (country in entriesByCountry) { + entriesByCountry[country].push(g) + } + else { + entriesByCountry[country] = [g] + } + } + loaded.update((val) => { + return val + 1 + }) + } + getData("/assets/parties.json",callback) + + function mapCallback(createMap,content,locale) { let map = createMap([22, 0],2) - addMarkersParties(map,content,locale) + addMarkersEntries(entries,entriesByCountry,map,content,locale,addPartyPinContent,"gold") } - function getCountry(name) { - return locale=="en" ? name : $content[name] + function getCountry(x) { + return locale=="en" ? x : translate($content,x) } - function getAddress(group) { - return locale=="en" ? group.location : $content[group.location] + function getAddress(g) { + let location = [g.country,g.state,g.town].filter(x => x!=null) + return location.map(x => locale=="en" ? x : translate($content,x)).join(", ") } onMount(() => { @@ -36,7 +61,7 @@ {#key $loaded} - {#if $loaded==2} + {#if $loaded==3}
@@ -44,26 +69,27 @@ party

{$content.p1}

{$content.subheading1}

- mapCallbackParties(createMap,$content,locale)}> + mapCallback(createMap,$content,locale)}>

{$content["map-prompt"]}

- {#each Object.entries(partiesByCountry) as [name,parties]} + {#each Object.entries(entriesByCountry) as [name,entries]}

{getCountry(name)}

- {#each parties as party} + {#each entries as entry}
- - + +
-

{$content.name}: {party.name}

-

{$content.location}: {getAddress(party)}

-

{$content.link}: {party.link}

+

{$content.name}: {entry.name}

+

{$content.location}: {getAddress(entry)}

+

{$content.website}: {entry.website}

+

{$content.contact}: {entry.contact}

-

{$content.description}: {$content[party.description]}

+

{$content.description}: {$content[entry.description]}

{/each}
@@ -134,7 +160,7 @@ .party-logo { position: relative; right: 0; - max-height: 5.5rem; + max-height: 6.5rem; max-width: 100%; border-radius: 1rem; } diff --git a/Server/app/svelte/src/partners-add-component.svelte b/Server/app/svelte/src/partners-add-component.svelte new file mode 100644 index 0000000..2088024 --- /dev/null +++ b/Server/app/svelte/src/partners-add-component.svelte @@ -0,0 +1,195 @@ + + + + +{#key $loaded} + {#if $loaded==3} +
+ +
+

{$content.groups}

+ groups +

{$content.p1}

+

{$content.subheading1}

+ mapCallback(createMap,$content,locale)}> +

{$content["map-prompt"]}

+ {#each Object.entries(entriesByCountry) as [name,entries]} +

{getCountry(name)}

+
+ {#each entries as entry} +
+

{$content.location}: {getAddress(entry)}

+

{$content.members}: {entry.members}

+

{$content.contact}: {entry.contact}

+
+ {/each} +
+ {/each} +
+
+ {/if} +{/key} + + \ No newline at end of file diff --git a/Server/app/svelte/src/partners-component.svelte b/Server/app/svelte/src/partners-component.svelte index 01483a9..bbabb86 100644 --- a/Server/app/svelte/src/partners-component.svelte +++ b/Server/app/svelte/src/partners-component.svelte @@ -4,25 +4,55 @@ // Import statements import { onMount } from 'svelte' import { writable } from 'svelte/store'; - import { loadLocaleContent } from "/js/libraries/serverTools.js" - import { partnersByCountry } from '/js/partners.js' - + import { loadLocaleContent, getData} from "/js/libraries/serverTools.js" + import { addMarkersEntries, translate } from "/js/libraries/mapTools.js" + import { addPartnersPinContent } from "/js/mapFuncs.js" + // Import components import "/js/components/map-component.js" // Main code let loaded = writable(0) let content = writable({}) + let entries + let entriesByCountry - loadLocaleContent(content,"countries",loaded) let locale = loadLocaleContent(content,"partners-component",loaded) + loadLocaleContent(content,"countries",loaded) - function getCountry(name) { - return locale=="en" ? name : $content[name] + let callback = (response) => { + entries = JSON.parse(response) + entriesByCountry = {} + for (let g of entries) { + let country = g.country + if (g.contact==null) { + g.contact = "https://discord.gg/Qk8KUk787z" + } + if (country in entriesByCountry) { + entriesByCountry[country].push(g) + } + else { + entriesByCountry[country] = [g] + } + } + loaded.update((val) => { + return val + 1 + }) + } + getData("/assets/partners.json",callback) + + function mapCallback(createMap,content,locale) { + let map = createMap([22, 0],2) + addMarkersEntries(entries,entriesByCountry,map,content,locale,addPartnersPinContent,"blue") } - function getAddress(group) { - return group.location[0].map(x => locale=="en" ? x : $content[x]).join(", ") + function getCountry(x) { + return locale=="en" ? x : translate($content,x) + } + + function getAddress(g) { + let location = [g.country,g.state,g.town].filter(x => x!=null) + return location.map(x => locale=="en" ? x : translate($content,x)).join(", ") } onMount(() => { @@ -31,7 +61,7 @@ {#key $loaded} - {#if $loaded==2} + {#if $loaded==3}
@@ -39,25 +69,27 @@ hands

{$content.p1}

{$content.subheading1}

- {#each Object.entries(partnersByCountry) as [name,partners]} + mapCallback(createMap,$content,locale)}> +

{$content["map-prompt"]}

+ {#each Object.entries(entriesByCountry) as [name,entries]}

{getCountry(name)}

- {#each partners as partner} + {#each entries as entry}
- - + +
-

{$content.name}: {partner.name}

-

{$content.type}: {$content[partner.type]}

-

{$content.location}: {getAddress(partner)}

-

{$content.link}: {partner.link}

+

{$content.name}: {entry.name}

+

{$content.location}: {getAddress(entry)}

+

{$content.website}: {entry.website}

+

{$content.contact}: {entry.contact}

-

{$content.description}: {$content[partner.description]}

+

{$content.description}: {entry.description}

{/each}
@@ -133,7 +165,7 @@ #map { --height: 30rem; --width: 100%; - --margin-bottom: 3rem; + --margin-bottom: 0.5rem; } #text-container { @@ -148,7 +180,7 @@ } h3 { - margin-bottom: 2rem; + margin-bottom: 1rem; } #container { diff --git a/Server/lib_ext/compile_database.jl b/Server/lib_ext/compile_database.jl index 5e85e61..fd0951b 100644 --- a/Server/lib_ext/compile_database.jl +++ b/Server/lib_ext/compile_database.jl @@ -18,14 +18,14 @@ function table_to_json(name,df) end end -function compile_groups() - df = select_from_table(["groups" => ["*"]]) - table_to_json("groups",df) +function compile(name) + df = select_from_table([name => ["*"]]) + table_to_json(name,df) end -function move_requests() - df_requests = select_from_table(["groups_requests" => ["*"]], where_data=["verified" => true, "added" => false]) - df = select_from_table(["groups" => ["*"]]) +function move_requests(name) + df_requests = select_from_table(["$(name)_requests" => ["*"]], where_data=["verified" => true, "added" => false]) + df = select_from_table([name => ["*"]]) latitudes = df.latitude longitudes = df.longitude for df_row in eachrow(df_requests) @@ -35,11 +35,11 @@ function move_requests() row_found = df[ind_id_given,Not(:id)] dict = Dict(zip(names(row_found),values(row_found))) dict["members"] += 1 - update_table("groups",dict, where_data=["id" => id]) + update_table(name,dict, where_data=["id" => id]) else id = df_row.id dict_update = Dict("added" => true) - update_table("groups_requests",dict_update, where_data=["id" => id]) + update_table("$(name)_requests",dict_update, where_data=["id" => id]) df_row_to_add = df_row[Not(:id_given)] df_row_to_add = df_row_to_add[Not(:verified)] @@ -47,11 +47,20 @@ function move_requests() df_row_to_add = df_row_to_add[Not(:id)] dict = Dict(zip(names(df_row_to_add),values(df_row_to_add))) dict["members"] = 1 - insert_into_table("groups",dict) + insert_into_table(name,dict) end end end -move_requests() -compile_groups() +move_requests("groups") +compile("groups") + +move_requests("communes") +compile("communes") + +compile("cooperatives") + +compile("parties") + +compile("partners") \ No newline at end of file diff --git a/Server/public/assets/communes.json b/Server/public/assets/communes.json new file mode 100644 index 0000000..4487f2b --- /dev/null +++ b/Server/public/assets/communes.json @@ -0,0 +1 @@ +[{"town":"Saalfeld/Saale","contact":null,"latitude":50.61764000625769,"status":"forming","longitude":11.25,"id":1,"members":1,"country":"Germany","state":"Thuringia"}] \ No newline at end of file diff --git a/Server/public/assets/cooperatives.json b/Server/public/assets/cooperatives.json new file mode 100644 index 0000000..2b4c380 --- /dev/null +++ b/Server/public/assets/cooperatives.json @@ -0,0 +1 @@ +[{"market":"wellness and health","state":null,"town":"Kohtla-Järve","name":"Chiron Health","status":"in development","id":1,"description":"Chiron Health is a health platform providing courses and services on the topics of nutrition, exercise, sleep and mental wellbeing.","country":"Estonia","workers":2,"contact":"https://discord.gg/Qk8KUk787z","latitude":59.41038769769602,"longitude":27.287802936242034,"logo":"1690553207","website":"https://www.chrn.health"}] \ No newline at end of file diff --git a/Server/public/assets/parties.json b/Server/public/assets/parties.json new file mode 100644 index 0000000..2e9c284 --- /dev/null +++ b/Server/public/assets/parties.json @@ -0,0 +1 @@ +[{"latitude":52.98479517270413,"name":"Roots","longitude":-7.649233227534782,"id":1,"logo":"1690554940","website":" ","members":null,"description":"descriptionRoots","country":"Ireland","contact":"https://discord.gg/pSTMacJZsK"}] \ No newline at end of file diff --git a/Server/public/assets/partners.json b/Server/public/assets/partners.json new file mode 100644 index 0000000..50f52c9 --- /dev/null +++ b/Server/public/assets/partners.json @@ -0,0 +1 @@ +[{"state":null,"town":null,"name":"Gaia's Fall","id":1,"description":"Gaia's Fall is a server that promotes Solarpunk ideals, environmentalism, anarchism, and anti-capitalism. We encourage civil debates, discussions of theories and possibilities, and the creation of communities focused on shaping a better world.","country":"Online","contact":"https://discord.gg/xAPZmyr8B6","latitude":null,"longitude":null,"logo":"1690554942","website":" "}] \ No newline at end of file diff --git a/Server/public/img/common/commune.svg b/Server/public/img/common/communes.svg similarity index 100% rename from Server/public/img/common/commune.svg rename to Server/public/img/common/communes.svg diff --git a/Server/public/img/coops/chiron_logo.png b/Server/public/img/coops/1690553207.png similarity index 100% rename from Server/public/img/coops/chiron_logo.png rename to Server/public/img/coops/1690553207.png diff --git a/Server/public/img/coops/chiron_logo.webp b/Server/public/img/coops/1690553207.webp similarity index 100% rename from Server/public/img/coops/chiron_logo.webp rename to Server/public/img/coops/1690553207.webp diff --git a/Server/public/img/coops/kuusk_logo.png b/Server/public/img/coops/1690553208.png similarity index 100% rename from Server/public/img/coops/kuusk_logo.png rename to Server/public/img/coops/1690553208.png diff --git a/Server/public/img/coops/kuusk_logo.webp b/Server/public/img/coops/1690553208.webp similarity index 100% rename from Server/public/img/coops/kuusk_logo.webp rename to Server/public/img/coops/1690553208.webp diff --git a/Server/public/img/parties/roots.png b/Server/public/img/parties/1690554940.png similarity index 100% rename from Server/public/img/parties/roots.png rename to Server/public/img/parties/1690554940.png diff --git a/Server/public/img/parties/roots.webp b/Server/public/img/parties/1690554940.webp similarity index 100% rename from Server/public/img/parties/roots.webp rename to Server/public/img/parties/1690554940.webp diff --git a/Server/public/img/partners/gaias_fall.jpg b/Server/public/img/partners/1690554942.jpg similarity index 100% rename from Server/public/img/partners/gaias_fall.jpg rename to Server/public/img/partners/1690554942.jpg diff --git a/Server/public/img/partners/gaias_fall.webp b/Server/public/img/partners/1690554942.webp similarity index 100% rename from Server/public/img/partners/gaias_fall.webp rename to Server/public/img/partners/1690554942.webp diff --git a/Server/public/js/components/communes-add-component.js b/Server/public/js/components/communes-add-component.js new file mode 100644 index 0000000..a11d2bd --- /dev/null +++ b/Server/public/js/components/communes-add-component.js @@ -0,0 +1 @@ +import{S as t,i as e,a as n,b as o,s as i,e as r,n as a,d as s,c as l,o as m,f as c,g as u,h as p,j as d,k as f,l as g,m as h,p as b,r as w}from"./index-8c09578c.js";import{w as y}from"./index-77787e10.js";import{getData as v,loadLocaleContent as x,sendData as k}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as j,translate as S}from"../../../../../../../../../js/libraries/mapTools.js";import"../../../../../../../../../js/components/map-component.js";import"../../../../../../../../../js/components/select-component.js";function z(t){let e,n,i,r,a,l,m,c,y,v,x,k,j,L,S,z,C,T,N,O,H,M,A,$,E,J,U,q,D,I,R,G,K,P,Q,V,Y,_,B,F,W,X,Z;return{c(){e=u("div"),n=u("div"),i=u("h1"),i.textContent="Add a Commune",r=p(),a=u("img"),m=p(),c=u("p"),c.textContent="If there are no communes near you who you can join and you want to start your own then do the following:",y=p(),v=u("ol"),v.innerHTML="
  • Click on the map to show us where you are located;
  • \n
  • Add a way to contact you or leave blank for a pin to point to our discord;
  • \n
  • Press "Submit" to add yourself to our map;
  • \n
  • Verify yourself by having a chat with us at our Discord server to show on the map;
  • ",x=p(),k=u("div"),j=u("label"),j.textContent="Location:",L=p(),S=u("div"),z=u("input"),C=p(),T=u("div"),N=p(),O=u("div"),H=u("label"),H.textContent="Contact:",M=p(),A=u("div"),$=u("input"),E=p(),J=u("div"),U=p(),q=u("div"),D=u("label"),D.textContent="Status:",I=p(),R=u("div"),G=u("select-component"),K=p(),P=u("div"),Q=p(),V=u("button"),V.textContent="Submit",Y=p(),_=u("p"),B=p(),F=u("map-component"),d(a,"id","communes-img"),f(a.src,l="/img/common/communes.svg")||d(a,"src","/img/common/communes.svg"),d(a,"alt","communes"),d(c,"class","description"),d(j,"for","address-input"),d(z,"id","address-input"),d(z,"type","text"),z.readOnly=!0,d(T,"class","ghost-input"),d(S,"class","input-wrapper"),d(k,"id","address-input-wrapper"),d(k,"class","input-label-wrapper"),d(H,"for","contact-input"),d($,"id","contact-input"),d($,"type","text"),d(J,"class","ghost-input"),d(A,"class","input-wrapper"),d(O,"class","input-label-wrapper"),d(D,"for","contact-input"),g(G,"id","status-input"),g(G,"options",["forming","growing","not growing"]),d(P,"class","ghost-input"),d(R,"class","input-wrapper"),d(q,"id","status-input-wrapper"),d(q,"class","input-label-wrapper"),d(V,"id","submit-button"),d(_,"id","confirmation-msg"),g(F,"id","map"),g(F,"callback",W=t[17]),d(n,"id","text-container"),d(e,"id","container")},m(s,l){o(s,e,l),h(e,n),h(n,i),h(n,r),h(n,a),h(n,m),h(n,c),h(n,y),h(n,v),h(n,x),h(n,k),h(k,j),h(k,L),h(k,S),h(S,z),t[11](z),h(S,C),h(S,T),h(n,N),h(n,O),h(O,H),h(O,M),h(O,A),h(A,$),t[13]($),h(A,E),h(A,J),h(n,U),h(n,q),h(q,D),h(q,I),h(q,R),h(R,G),t[15](G),h(R,K),h(R,P),h(n,Q),h(n,V),h(n,Y),h(n,_),t[16](_),h(n,B),h(n,F),X||(Z=[b(z,"input",t[12]),b($,"input",t[14]),b(V,"click",t[10])],X=!0)},p(t,e){32&e&&W!==(W=t[17])&&g(F,"callback",W)},d(n){n&&s(e),t[11](null),t[13](null),t[15](null),t[16](null),X=!1,w(Z)}}}function C(t){let e,n=3==t[4]&&z(t);return{c(){n&&n.c(),e=r()},m(t,i){n&&n.m(t,i),o(t,e,i)},p(t,o){3==t[4]?n?n.p(t,o):(n=z(t),n.c(),n.m(e.parentNode,e)):n&&(n.d(1),n=null)},d(t){n&&n.d(t),t&&s(e)}}}function T(t){let e,n=t[4],l=C(t);return{c(){l.c(),e=r(),this.c=a},m(t,n){l.m(t,n),o(t,e,n)},p(t,[o]){16&o&&i(n,n=t[4])?(l.d(1),l=C(t),l.c(),l.m(e.parentNode,e)):l.p(t,o)},i:a,o:a,d(t){t&&s(e),l.d(t)}}}function N(t){t.nextElementSibling.innerHTML=t.value}function O(t,e,n){let o,i,r=y(0);l(t,r,(t=>n(4,o=t)));let a,s,u=y({});l(t,u,(t=>n(5,i=t)));let p,d,f,g,h;v("/assets/communes.json",(t=>{a=JSON.parse(t),s={};for(let t of a){let e=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),e in s?s[e].push(t):s[e]=[t]}r.update((t=>t+1))}));let b=0,w=0,z=function(t,e){let n=new L.Icon({iconUrl:"/img/common/markers/marker-black.png",shadowUrl:"https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]});return L.marker([t,e],{icon:n})}(0,0);z.setOpacity(0);let C=x(u,"communes-component",r);function T(t,e,n){let o,i=""+e.Group+"
    ";for(let r of["location","members","contact"]){let a=e[r]+": ";if("contact"==r)i+=a+""+t.contact+"";else if("location"==r){let r,s=[t.country,t.state,t.town].filter((t=>null!=t&&null!=t));r="en"==n?s.map((t=>t)).join(", "):s.map((t=>S(e,t))).join(", "),i+=a+r+"
    ",o=[t.latitude,t.longitude]}else i+=a+t[r]+"
    "}return{text:i,coordinates:o}}function O(t,e,o){let i=t([22,0],2);j(a,s,i,e,o,T,"green"),z.addTo(i),i.on("click",(function(t){let e=t.latlng.lat,o=t.latlng.lng;b=e,w=o,function(t,e,n){let o=L.latLng(e,n);t.setLatLng(o)}(z,e,o),z.setOpacity(1),v(`https://nominatim.openstreetmap.org/reverse?lat=${e}&lon=${o}&format=jsonv2`,(t=>{let e=(t=JSON.parse(t)).address,o=e.city||e.town||e.village||e.hamlet,i=e.state,r=e.country;null!=i?r+=", "+i:i="",null!=o?r+=", "+o:o="",n(1,d.value=r,d),N(d)})),function(t,e){v(`https://nominatim.openstreetmap.org/reverse?lat=${t}&lon=${e}&format=jsonv2&accept-language=en`,(t=>{let e=(t=JSON.parse(t)).address,n=e.city||e.town||e.village||e.hamlet,o=e.state,i=e.country;null!=o||(o=""),null!=n||(n=""),h=[i,o,n]}))}(e,o)}))}function H(t){!1!==t?(n(0,p.innerHTML="You have been added to our database! Now go to our Discord to verify yourself.",p),n(0,p.style.color="green",p)):(n(0,p.innerHTML="Something went wrong.",p),n(0,p.style.color="red",p))}x(u,"countries",r),m((()=>{}));return[p,d,f,g,o,i,r,u,C,O,function(){if(null!=h){let t={country:h[0],state:h[1],town:h[2],latitude:b,longitude:w,contact:f.value,status:g.value};""==t.state&&(t.state=null),""==t.town&&(t.town=null),""==t.contact&&(t.contact=null),k("/"+C+"/communes-add-post/",t,H)}},function(t){c[t?"unshift":"push"]((()=>{d=t,n(1,d)}))},()=>N(d),function(t){c[t?"unshift":"push"]((()=>{f=t,n(2,f)}))},()=>N(f),function(t){c[t?"unshift":"push"]((()=>{g=t,n(3,g)}))},function(t){c[t?"unshift":"push"]((()=>{p=t,n(0,p)}))},t=>O(t,i,C)]}class H extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},O,T,i,{},null),t&&t.target&&o(t.target,this,t.anchor)}}customElements.define("communes-add-component",H);export{H as default}; diff --git a/Server/public/js/components/communes-component.js b/Server/public/js/components/communes-component.js index 4751c4f..3196831 100644 --- a/Server/public/js/components/communes-component.js +++ b/Server/public/js/components/communes-component.js @@ -1 +1 @@ -import{S as t,i as n,a as o,b as e,s as m,e as r,n as a,d as c,c as i,o as s,f as l,t as p,g as u,h as g,j as d,k as h,l as f,m as b,p as j}from"./index-4348483d.js";import{w as x}from"./index-71440b21.js";import{addMarkersCommunes as v,communesByCountry as w}from"../../../../../../../../../js/communes.js";import{loadLocaleContent as y}from"../../../../../../../../../js/libraries/serverTools.js";import"../../../../../../../../../js/components/map-component.js";function k(t,n,o){const e=t.slice();return e[9]=n[o][0],e[10]=n[o][1],e}function z(t,n,o){const e=t.slice();return e[13]=n[o],e}function D(t){let n,o,m,r,a,i,s,x,v,y,z,D,E,O,R,T,A,C,H,L,M=t[0].communes+"",S=t[0].p1+"",_=t[0].subheading1+"",q=t[0]["map-prompt"]+"",B=Object.entries(w),F=[];for(let n=0;no(1,m=t)));let a=x({});i(t,a,(t=>o(0,e=t))),y(a,"countries",r);let c=y(a,"communes-component",r);function l(t,n,o){let e=t([22,0],2);v(e,n,o)}s((()=>{}));return[e,m,r,a,c,l,function(t){return"en"==c?t:e[t]},function(t){return t.location[0].map((t=>"en"==c?t:e[t])).join(", ")},t=>l(t,e,c)]}class A extends t{constructor(t){super(),this.shadowRoot.innerHTML="",n(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},T,R,m,{},null),t&&t.target&&e(t.target,this,t.anchor)}}customElements.define("communes-component",A);export{A as default}; +import{S as t,i as n,a as o,b as e,s as r,e as m,n as s,d as a,c,o as i,g as l,t as p,h as u,j as d,k as g,l as f,m as h,q as b,u as j}from"./index-8c09578c.js";import{w as x}from"./index-77787e10.js";import{loadLocaleContent as y,getData as v}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as w,translate as k}from"../../../../../../../../../js/libraries/mapTools.js";import{addCommunePinContent as z}from"../../../../../../../../../js/mapFuncs.js";import"../../../../../../../../../js/components/map-component.js";function N(t,n,o){const e=t.slice();return e[12]=n[o][0],e[3]=n[o][1],e}function O(t,n,o){const e=t.slice();return e[15]=n[o],e}function T(t){let n,o,r,m,s,c,i,x,y,v,w,k,z,O,T,D,R,S,q,A,C=t[1].communes+"",F=t[1].p1+"",H=t[1].subheading1+"",J=t[1]["map-prompt"]+"",K=Object.entries(t[0]),L=[];for(let n=0;no(2,r=t)));let s,a,l=x({});c(t,l,(t=>o(1,e=t)));let p=y(l,"communes-component",m);y(l,"countries",m);function u(t,n,o){let e=t([22,0],2);w(s,a,e,n,o,z,"red")}v("/assets/communes.json",(t=>{o(3,s=JSON.parse(t)),o(0,a={});for(let t of s){let n=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),n in a?a[n].push(t):o(0,a[n]=[t],a)}m.update((t=>t+1))})),i((()=>{}));return[a,e,r,s,m,l,p,u,function(t){return"en"==p?t:k(e,t)},function(t){return[t.country,t.state,t.town].filter((t=>null!=t)).map((t=>"en"==p?t:k(e,t))).join(", ")},t=>u(t,e,p)]}class A extends t{constructor(t){super(),this.shadowRoot.innerHTML="",n(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},q,S,r,{},null),t&&t.target&&e(t.target,this,t.anchor)}}customElements.define("communes-component",A);export{A as default}; diff --git a/Server/public/js/components/compass-component.js b/Server/public/js/components/compass-component.js index 1e38a3d..29f4b42 100644 --- a/Server/public/js/components/compass-component.js +++ b/Server/public/js/components/compass-component.js @@ -1 +1 @@ -import{S as t,i as n,a as e,b as i,s as o,e as r,n as s,d as a,c as l,o as m,f as c,t as u,g as p,h as d,j as g,l as h,m as f,q as b,p as v,r as q}from"./index-4348483d.js";import{w as x}from"./index-71440b21.js";import{loadLocaleContent as _}from"../../../../../../../../../js/libraries/serverTools.js";import{shuffleArray as z}from"../../../../../../../../../js/libraries/miscTools.js";function w(t,n,e){const i=t.slice();return i[19]=n[e],i[21]=e,i}function y(t){let n,e,r,s,l,m,b,v,q=t[5].heading+"",x=t[0],_=S(t);return{c(){n=c("div"),e=c("div"),r=c("h1"),s=u(q),l=p(),m=c("img"),v=p(),_.c(),d(m,"id","compass-img"),g(m.src,b="/img/common/compass.svg")||d(m,"src","/img/common/compass.svg"),d(m,"alt","compass"),d(e,"id","text-container"),d(n,"id","container")},m(t,o){i(t,n,o),h(n,e),h(e,r),h(r,s),h(e,l),h(e,m),h(e,v),_.m(e,null)},p(t,n){32&n&&q!==(q=t[5].heading+"")&&f(s,q),1&n&&o(x,x=t[0])?(_.d(1),_=S(t),_.c(),_.m(e,null)):_.p(t,n)},d(t){t&&a(n),_.d(t)}}}function k(t){let n,e,o,r,s,l,m,g,v,q,x,_,z,w,y,k,j,C,S,B,M,N,T,D;return{c(){n=c("p"),n.textContent="You are compatible with ...",e=p(),o=c("ul"),r=c("li"),s=u("capitalism by "),l=c("span"),m=u(t[2]),g=u("%"),v=p(),q=c("li"),x=u("vanguardism by "),_=c("span"),z=u(t[3]),w=u("%"),y=p(),k=c("li"),j=u("libertarian socialism by "),C=c("span"),S=u(t[4]),B=u("%"),M=p(),N=c("button"),N.textContent="back",d(o,"class","results-list"),d(N,"class","quiz-buttons")},m(a,c){i(a,n,c),i(a,e,c),i(a,o,c),h(o,r),h(r,s),h(r,l),h(l,m),h(r,g),h(o,v),h(o,q),h(q,x),h(q,_),h(_,z),h(q,w),h(o,y),h(o,k),h(k,j),h(k,C),h(C,S),h(k,B),i(a,M,c),i(a,N,c),T||(D=b(N,"click",t[16]),T=!0)},p(t,n){4&n&&f(m,t[2]),8&n&&f(z,t[3]),16&n&&f(S,t[4])},d(t){t&&a(n),t&&a(e),t&&a(o),t&&a(M),t&&a(N),T=!1,D()}}}function j(t){let n,e,o,r,s,l,m,g,x,_=t[5].qs[t[0]].q+"",z=t[5].qs[t[0]].as,y=[];for(let n=0;ne(6,o=t)));let s=x({});l(t,s,(t=>e(5,i=t))),_(s,"countries",r),_(s,"compass-component",r,(function(t){for(let n of t.qs)z(n.as)}));let a=0,c=[],u="",p="",d="";function g(t){null!=c[t]&&at.includes("C"))).filter(Boolean).length/c.length).toString()),e(3,p=Math.round(100*c.map((t=>t.includes("V"))).filter(Boolean).length/c.length).toString()),e(4,d=Math.round(100*c.map((t=>t.includes("LS"))).filter(Boolean).length/c.length).toString())),e(0,a+=1))}function h(t){0!=a&&e(0,a-=1)}m((()=>{}));return[a,c,u,p,d,i,o,r,s,g,h,function(){c[a]=this.__value,e(1,c)},[[]],t=>e(1,c[a]=t[1],c),()=>h(),()=>g(a),()=>h()]}class T extends t{constructor(t){super(),this.shadowRoot.innerHTML="",n(this,{target:this.shadowRoot,props:e(this.attributes),customElement:!0},N,M,o,{},null),t&&t.target&&i(t.target,this,t.anchor)}}customElements.define("compass-component",T);export{T as default}; +import{S as t,i as n,a as e,b as i,s as o,e as r,n as s,d as a,c as l,o as m,g as c,t as u,h as p,j as d,k as g,m as h,q as f,p as b,u as v,r as q}from"./index-8c09578c.js";import{w as x}from"./index-77787e10.js";import{loadLocaleContent as _}from"../../../../../../../../../js/libraries/serverTools.js";import{shuffleArray as z}from"../../../../../../../../../js/libraries/miscTools.js";function w(t,n,e){const i=t.slice();return i[19]=n[e],i[21]=e,i}function y(t){let n,e,r,s,l,m,b,v,q=t[5].heading+"",x=t[0],_=S(t);return{c(){n=c("div"),e=c("div"),r=c("h1"),s=u(q),l=p(),m=c("img"),v=p(),_.c(),d(m,"id","compass-img"),g(m.src,b="/img/common/compass.svg")||d(m,"src","/img/common/compass.svg"),d(m,"alt","compass"),d(e,"id","text-container"),d(n,"id","container")},m(t,o){i(t,n,o),h(n,e),h(e,r),h(r,s),h(e,l),h(e,m),h(e,v),_.m(e,null)},p(t,n){32&n&&q!==(q=t[5].heading+"")&&f(s,q),1&n&&o(x,x=t[0])?(_.d(1),_=S(t),_.c(),_.m(e,null)):_.p(t,n)},d(t){t&&a(n),_.d(t)}}}function k(t){let n,e,o,r,s,l,m,g,v,q,x,_,z,w,y,k,j,C,S,B,M,N,T,D;return{c(){n=c("p"),n.textContent="You are compatible with ...",e=p(),o=c("ul"),r=c("li"),s=u("capitalism by "),l=c("span"),m=u(t[2]),g=u("%"),v=p(),q=c("li"),x=u("vanguardism by "),_=c("span"),z=u(t[3]),w=u("%"),y=p(),k=c("li"),j=u("libertarian socialism by "),C=c("span"),S=u(t[4]),B=u("%"),M=p(),N=c("button"),N.textContent="back",d(o,"class","results-list"),d(N,"class","quiz-buttons")},m(a,c){i(a,n,c),i(a,e,c),i(a,o,c),h(o,r),h(r,s),h(r,l),h(l,m),h(r,g),h(o,v),h(o,q),h(q,x),h(q,_),h(_,z),h(q,w),h(o,y),h(o,k),h(k,j),h(k,C),h(C,S),h(k,B),i(a,M,c),i(a,N,c),T||(D=b(N,"click",t[16]),T=!0)},p(t,n){4&n&&f(m,t[2]),8&n&&f(z,t[3]),16&n&&f(S,t[4])},d(t){t&&a(n),t&&a(e),t&&a(o),t&&a(M),t&&a(N),T=!1,D()}}}function j(t){let n,e,o,r,s,l,m,g,x,_=t[5].qs[t[0]].q+"",z=t[5].qs[t[0]].as,y=[];for(let n=0;ne(6,o=t)));let s=x({});l(t,s,(t=>e(5,i=t))),_(s,"countries",r),_(s,"compass-component",r,(function(t){for(let n of t.qs)z(n.as)}));let a=0,c=[],u="",p="",d="";function g(t){null!=c[t]&&at.includes("C"))).filter(Boolean).length/c.length).toString()),e(3,p=Math.round(100*c.map((t=>t.includes("V"))).filter(Boolean).length/c.length).toString()),e(4,d=Math.round(100*c.map((t=>t.includes("LS"))).filter(Boolean).length/c.length).toString())),e(0,a+=1))}function h(t){0!=a&&e(0,a-=1)}m((()=>{}));return[a,c,u,p,d,i,o,r,s,g,h,function(){c[a]=this.__value,e(1,c)},[[]],t=>e(1,c[a]=t[1],c),()=>h(),()=>g(a),()=>h()]}class T extends t{constructor(t){super(),this.shadowRoot.innerHTML="",n(this,{target:this.shadowRoot,props:e(this.attributes),customElement:!0},N,M,o,{},null),t&&t.target&&i(t.target,this,t.anchor)}}customElements.define("compass-component",T);export{T as default}; diff --git a/Server/public/js/components/cookies-dialog.js b/Server/public/js/components/cookies-dialog.js index 79c9c70..f05779f 100644 --- a/Server/public/js/components/cookies-dialog.js +++ b/Server/public/js/components/cookies-dialog.js @@ -1 +1 @@ -import{S as e,i as s,a as t,b as o,s as i,f as a,n as r,h as n,d as c,o as d}from"./index-4348483d.js";function p(e){let s;return{c(){s=a("div"),s.innerHTML="

    We use cookies to improve your experience, personalise your content and analyse site usage. By clicking “OK”, you agree to the use of cookies.

    ",this.c=r,n(s,"id","wrapper")},m(e,t){o(e,s,t)},p:r,i:r,o:r,d(e){e&&c(s)}}}function u(e){return d((()=>{})),[]}class h extends e{constructor(e){super(),this.shadowRoot.innerHTML="",s(this,{target:this.shadowRoot,props:t(this.attributes),customElement:!0},u,p,i,{},null),e&&e.target&&o(e.target,this,e.anchor)}}customElements.define("cookies-dialog",h);export{h as default}; +import{S as e,i as s,a as t,b as o,s as i,g as a,n as r,j as n,d as c,o as d}from"./index-8c09578c.js";function p(e){let s;return{c(){s=a("div"),s.innerHTML="

    We use cookies to improve your experience, personalise your content and analyse site usage. By clicking “OK”, you agree to the use of cookies.

    ",this.c=r,n(s,"id","wrapper")},m(e,t){o(e,s,t)},p:r,i:r,o:r,d(e){e&&c(s)}}}function u(e){return d((()=>{})),[]}class h extends e{constructor(e){super(),this.shadowRoot.innerHTML="",s(this,{target:this.shadowRoot,props:t(this.attributes),customElement:!0},u,p,i,{},null),e&&e.target&&o(e.target,this,e.anchor)}}customElements.define("cookies-dialog",h);export{h as default}; diff --git a/Server/public/js/components/cooperatives-add-component.js b/Server/public/js/components/cooperatives-add-component.js new file mode 100644 index 0000000..3c6fb45 --- /dev/null +++ b/Server/public/js/components/cooperatives-add-component.js @@ -0,0 +1 @@ +import{S as t,i as e,a as n,b as o,s as i,e as r,n as a,d as s,c as l,o as c,f as m,g as p,h as u,j as d,k as g,l as f,m as h,p as b,r as w}from"./index-8c09578c.js";import{w as y}from"./index-77787e10.js";import{getData as v,loadLocaleContent as x,sendData as k}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as j,translate as S}from"../../../../../../../../../js/libraries/mapTools.js";import"../../../../../../../../../js/components/map-component.js";function z(t){let e,n,i,r,a,l,c,m,y,v,x,k,j,L,S,z,T,C,N,O,H,M,A,$,E,J,U,q,D,G,I,R,K,P,Q;return{c(){e=p("div"),n=p("div"),i=p("h1"),i.textContent="Add a Group",r=u(),a=p("img"),c=u(),m=p("p"),m.textContent="If there are no groups in your town with whom you can organize then do the following:",y=u(),v=p("ol"),v.innerHTML="
  • Click on the map to show us where you are located;
  • \n
  • Add a way to contact you or leave blank for a pin to point to our discord;
  • \n
  • Press "Submit" to add yourself to our map;
  • \n
  • Verify yourself by having a chat with us at our Discord server to show on the map;
  • ",x=u(),k=p("div"),j=p("label"),j.textContent="Location:",L=u(),S=p("div"),z=p("input"),T=u(),C=p("div"),N=u(),O=p("div"),H=p("label"),H.textContent="Contact:",M=u(),A=p("div"),$=p("input"),E=u(),J=p("div"),U=u(),q=p("button"),q.textContent="Submit",D=u(),G=p("p"),I=u(),R=p("map-component"),d(a,"id","groups-img"),g(a.src,l="/img/common/groups.svg")||d(a,"src","/img/common/groups.svg"),d(a,"alt","groups"),d(m,"class","description"),d(j,"for","address-input"),d(z,"id","address-input"),d(z,"type","text"),z.readOnly=!0,d(C,"class","ghost-input"),d(S,"class","input-wrapper"),d(k,"id","address-input-wrapper"),d(k,"class","input-label-wrapper"),d(H,"for","contact-input"),d($,"id","contact-input"),d($,"type","text"),d(J,"class","ghost-input"),d(A,"class","input-wrapper"),d(O,"class","input-label-wrapper"),d(q,"id","submit-button"),d(G,"id","confirmation-msg"),f(R,"id","map"),f(R,"callback",K=t[15]),d(n,"id","text-container"),d(e,"id","container")},m(s,l){o(s,e,l),h(e,n),h(n,i),h(n,r),h(n,a),h(n,c),h(n,m),h(n,y),h(n,v),h(n,x),h(n,k),h(k,j),h(k,L),h(k,S),h(S,z),t[10](z),h(S,T),h(S,C),h(n,N),h(n,O),h(O,H),h(O,M),h(O,A),h(A,$),t[12]($),h(A,E),h(A,J),h(n,U),h(n,q),h(n,D),h(n,G),t[14](G),h(n,I),h(n,R),P||(Q=[b(z,"input",t[11]),b($,"input",t[13]),b(q,"click",t[9])],P=!0)},p(t,e){16&e&&K!==(K=t[15])&&f(R,"callback",K)},d(n){n&&s(e),t[10](null),t[12](null),t[14](null),P=!1,w(Q)}}}function T(t){let e,n=3==t[3]&&z(t);return{c(){n&&n.c(),e=r()},m(t,i){n&&n.m(t,i),o(t,e,i)},p(t,o){3==t[3]?n?n.p(t,o):(n=z(t),n.c(),n.m(e.parentNode,e)):n&&(n.d(1),n=null)},d(t){n&&n.d(t),t&&s(e)}}}function C(t){let e,n=t[3],l=T(t);return{c(){l.c(),e=r(),this.c=a},m(t,n){l.m(t,n),o(t,e,n)},p(t,[o]){8&o&&i(n,n=t[3])?(l.d(1),l=T(t),l.c(),l.m(e.parentNode,e)):l.p(t,o)},i:a,o:a,d(t){t&&s(e),l.d(t)}}}function N(t){t.nextElementSibling.innerHTML=t.value}function O(t,e,n){let o,i,r=y(0);l(t,r,(t=>n(3,o=t)));let a,s,p=y({});l(t,p,(t=>n(4,i=t)));let u,d,g,f;v("/assets/groups.json",(t=>{a=JSON.parse(t),s={};for(let t of a){let e=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),e in s?s[e].push(t):s[e]=[t]}r.update((t=>t+1))}));let h=0,b=0,w=function(t,e){let n=new L.Icon({iconUrl:"/img/common/markers/marker-black.png",shadowUrl:"https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]});return L.marker([t,e],{icon:n})}(0,0);w.setOpacity(0);let z=x(p,"groups-component",r);function T(t,e,n){let o,i=""+e.Group+"
    ";for(let r of["location","members","contact"]){let a=e[r]+": ";if("contact"==r)i+=a+""+t.contact+"";else if("location"==r){let r,s=[t.country,t.state,t.town].filter((t=>null!=t&&null!=t));r="en"==n?s.map((t=>t)).join(", "):s.map((t=>S(e,t))).join(", "),i+=a+r+"
    ",o=[t.latitude,t.longitude]}else i+=a+t[r]+"
    "}return{text:i,coordinates:o}}function C(t,e,o){let i=t([22,0],2);j(a,s,i,e,o,T,"green"),w.addTo(i),i.on("click",(function(t){let e=t.latlng.lat,o=t.latlng.lng;h=e,b=o,function(t,e,n){let o=L.latLng(e,n);t.setLatLng(o)}(w,e,o),w.setOpacity(1),v(`https://nominatim.openstreetmap.org/reverse?lat=${e}&lon=${o}&format=jsonv2`,(t=>{let e=(t=JSON.parse(t)).address,o=e.city||e.town||e.village||e.hamlet,i=e.state,r=e.country;null!=i?r+=", "+i:i="",null!=o?r+=", "+o:o="",n(1,d.value=r,d),N(d)})),function(t,e){v(`https://nominatim.openstreetmap.org/reverse?lat=${t}&lon=${e}&format=jsonv2&accept-language=en`,(t=>{let e=(t=JSON.parse(t)).address,n=e.city||e.town||e.village||e.hamlet,o=e.state,i=e.country;null!=o||(o=""),null!=n||(n=""),f=[i,o,n]}))}(e,o)}))}function O(t){!1!==t?(n(0,u.innerHTML="You have been added to our database! Now go to our Discord to verify yourself.",u),n(0,u.style.color="green",u)):(n(0,u.innerHTML="Something went wrong.",u),n(0,u.style.color="red",u))}x(p,"countries",r),c((()=>{}));return[u,d,g,o,i,r,p,z,C,function(){if(null!=f){let t={country:f[0],state:f[1],town:f[2],latitude:h,longitude:b,contact:g.value};""==t.state&&(t.state=null),""==t.town&&(t.town=null),""==t.contact&&(t.contact=null),k("/"+z+"/groups-add-post/",t,O)}},function(t){m[t?"unshift":"push"]((()=>{d=t,n(1,d)}))},()=>N(d),function(t){m[t?"unshift":"push"]((()=>{g=t,n(2,g)}))},()=>N(g),function(t){m[t?"unshift":"push"]((()=>{u=t,n(0,u)}))},t=>C(t,i,z)]}class H extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},O,C,i,{},null),t&&t.target&&o(t.target,this,t.anchor)}}customElements.define("cooperatives-add-component",H);export{H as default}; diff --git a/Server/public/js/components/cooperatives-component.js b/Server/public/js/components/cooperatives-component.js index 772910c..cdf7a37 100644 --- a/Server/public/js/components/cooperatives-component.js +++ b/Server/public/js/components/cooperatives-component.js @@ -1 +1 @@ -import{S as t,i as e,a as o,b as n,s as r,e as i,n as a,d as s,c,o as m,f as l,t as p,g,h as d,j as f,k as h,l as u,m as b,p as w}from"./index-4348483d.js";import{w as x}from"./index-71440b21.js";import{addMarkersCoops as v,coopsByCountry as j}from"../../../../../../../../../js/coops.js";import{loadLocaleContent as k}from"../../../../../../../../../js/libraries/serverTools.js";import"../../../../../../../../../js/components/map-component.js";function y(t,e,o){const n=t.slice();return n[9]=e[o][0],n[10]=e[o][1],n}function z(t,e,o){const n=t.slice();return n[13]=e[o],n}function D(t){let e,o,r,i,a,c,m,x,v,k,z,D,E,O,R,T,_,A,C,H,L=t[0].cooperatives+"",M=t[0].p1+"",S=t[0].subheading1+"",q=t[0]["map-prompt"]+"",B=Object.entries(j),F=[];for(let e=0;eo(1,r=t)));let a=x({});c(t,a,(t=>o(0,n=t)));let s=k(a,"countries",i);function l(t,e){let o=t([22,0],2);v(o,e,s)}k(a,"cooperatives-component",i),m((()=>{}));return[n,r,i,a,s,l,function(t){return"en"==s?t:n[t]},function(t){return t.location[0].map((t=>"en"==s?t:n[t])).join(", ")},t=>l(t,n)]}class _ extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},T,R,r,{},null),t&&t.target&&n(t.target,this,t.anchor)}}customElements.define("cooperatives-component",_);export{_ as default}; +import{S as t,i as e,a as o,b as n,s as r,e as i,n as s,d as a,c,o as m,g as l,t as p,h as g,j as d,k as u,l as f,m as h,q as b,u as w}from"./index-8c09578c.js";import{w as x}from"./index-77787e10.js";import{loadLocaleContent as v,getData as j}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as k,translate as y}from"../../../../../../../../../js/libraries/mapTools.js";import{addCoopPinContent as z}from"../../../../../../../../../js/mapFuncs.js";import"../../../../../../../../../js/components/map-component.js";function N(t,e,o){const n=t.slice();return n[12]=e[o][0],n[3]=e[o][1],n}function O(t,e,o){const n=t.slice();return n[15]=e[o],n}function T(t){let e,o,r,i,s,c,m,x,v,j,k,y,z,O,T,D,R,S,_,q,A=t[1].cooperatives+"",C=t[1].p1+"",F=t[1].subheading1+"",H=t[1]["map-prompt"]+"",J=Object.entries(t[0]),K=[];for(let e=0;eo(2,r=t)));let s,a,l=x({});c(t,l,(t=>o(1,n=t)));let p=v(l,"cooperatives-component",i);v(l,"countries",i);function g(t,e,o){let n=t([22,0],2);k(s,a,n,e,o,z,"blue")}j("/assets/cooperatives.json",(t=>{o(3,s=JSON.parse(t)),o(0,a={});for(let t of s){let e=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),e in a?a[e].push(t):o(0,a[e]=[t],a)}i.update((t=>t+1))})),m((()=>{}));return[a,n,r,s,i,l,p,g,function(t){return"en"==p?t:y(n,t)},function(t){return[t.country,t.state,t.town].filter((t=>null!=t)).map((t=>"en"==p?t:y(n,t))).join(", ")},t=>g(t,n,p)]}class q extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},_,S,r,{},null),t&&t.target&&n(t.target,this,t.anchor)}}customElements.define("cooperatives-component",q);export{q as default}; diff --git a/Server/public/js/components/footer-component.js b/Server/public/js/components/footer-component.js index 008f55c..9784739 100644 --- a/Server/public/js/components/footer-component.js +++ b/Server/public/js/components/footer-component.js @@ -1 +1 @@ -import{S as t,i as e,a as o,b as r,s as a,e as i,n,d as s,c as m,f as c,t as f,g as d,h as l,v as g,l as h,q as p,m as u}from"./index-4348483d.js";import{w as b}from"./index-71440b21.js";import{loadLocaleContent as w}from"../../../../../../../../../js/libraries/serverTools.js";function v(t){let e,o,a,i,n,m,b,w,v,k,y,x,L,j,z,U,_,C,T,B,H,M,R=t[1].contactUs+"",A=t[1].inviteLink+"",D=t[1].inviteLink+"";return{c(){e=c("footer"),o=c("div"),a=c("div"),i=c("div"),n=c("h2"),m=f(R),b=d(),w=c("p"),v=f("Discord: "),k=c("a"),y=f(A),x=d(),L=c("p"),j=f("WhatsApp: "),z=c("a"),U=f(D),_=d(),C=c("button"),C.innerHTML='',T=d(),B=c("p"),B.innerHTML='Licensed under a Creative Commons CC BY 4.0 license',l(k,"href","https://discord.gg/Qk8KUk787z"),l(k,"target","_blank"),l(k,"rel","noreferrer"),g(k,"margin-left","1.8rem"),l(z,"href","https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh"),l(z,"target","_blank"),l(z,"rel","noreferrer"),g(z,"margin-left","0.5rem"),l(i,"id","contact-us-container"),l(a,"id","footer-grid-content-container"),l(a,"class","logged"),l(C,"id","footer-up"),l(C,"aria-label","go up"),l(B,"id","footer-copyright"),l(o,"id","footer-content-container")},m(s,c){r(s,e,c),h(e,o),h(o,a),h(a,i),h(i,n),h(n,m),h(i,b),h(i,w),h(w,v),h(w,k),h(k,y),h(i,x),h(i,L),h(L,j),h(L,z),h(z,U),h(o,_),h(o,C),h(o,T),h(o,B),H||(M=p(C,"click",t[4]),H=!0)},p(t,e){2&e&&R!==(R=t[1].contactUs+"")&&u(m,R),2&e&&A!==(A=t[1].inviteLink+"")&&u(y,A),2&e&&D!==(D=t[1].inviteLink+"")&&u(U,D)},d(t){t&&s(e),H=!1,M()}}}function k(t){let e,o=2==t[0]&&v(t);return{c(){o&&o.c(),e=i()},m(t,a){o&&o.m(t,a),r(t,e,a)},p(t,r){2==t[0]?o?o.p(t,r):(o=v(t),o.c(),o.m(e.parentNode,e)):o&&(o.d(1),o=null)},d(t){o&&o.d(t),t&&s(e)}}}function y(t){let e,o=t[0],m=k(t);return{c(){m.c(),e=i(),this.c=n},m(t,o){m.m(t,o),r(t,e,o)},p(t,[r]){1&r&&a(o,o=t[0])?(m.d(1),m=k(t),m.c(),m.m(e.parentNode,e)):m.p(t,r)},i:n,o:n,d(t){t&&s(e),m.d(t)}}}function x(t,e,o){let r,a,i=b(0);m(t,i,(t=>o(0,r=t)));let n=b({});m(t,n,(t=>o(1,a=t))),w(n,"countries",i),w(n,"footer-component",i);return[r,a,i,n,()=>{location.href="#"}]}class L extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},x,y,a,{},null),t&&t.target&&r(t.target,this,t.anchor)}}customElements.define("footer-component",L);export{L as default}; +import{S as t,i as e,a as o,b as r,s as a,e as i,n,d as s,c as m,g as c,t as f,h as d,j as l,w as g,m as p,p as h,q as u}from"./index-8c09578c.js";import{w}from"./index-77787e10.js";import{loadLocaleContent as b}from"../../../../../../../../../js/libraries/serverTools.js";function v(t){let e,o,a,i,n,m,w,b,v,k,y,x,L,j,z,U,_,C,T,B,H,M,R=t[1].contactUs+"",A=t[1].inviteLink+"",D=t[1].inviteLink+"";return{c(){e=c("footer"),o=c("div"),a=c("div"),i=c("div"),n=c("h2"),m=f(R),w=d(),b=c("p"),v=f("Discord: "),k=c("a"),y=f(A),x=d(),L=c("p"),j=f("WhatsApp: "),z=c("a"),U=f(D),_=d(),C=c("button"),C.innerHTML='',T=d(),B=c("p"),B.innerHTML='Licensed under a Creative Commons CC BY 4.0 license',l(k,"href","https://discord.gg/Qk8KUk787z"),l(k,"target","_blank"),l(k,"rel","noreferrer"),g(k,"margin-left","1.8rem"),l(z,"href","https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh"),l(z,"target","_blank"),l(z,"rel","noreferrer"),g(z,"margin-left","0.5rem"),l(i,"id","contact-us-container"),l(a,"id","footer-grid-content-container"),l(a,"class","logged"),l(C,"id","footer-up"),l(C,"aria-label","go up"),l(B,"id","footer-copyright"),l(o,"id","footer-content-container")},m(s,c){r(s,e,c),p(e,o),p(o,a),p(a,i),p(i,n),p(n,m),p(i,w),p(i,b),p(b,v),p(b,k),p(k,y),p(i,x),p(i,L),p(L,j),p(L,z),p(z,U),p(o,_),p(o,C),p(o,T),p(o,B),H||(M=h(C,"click",t[4]),H=!0)},p(t,e){2&e&&R!==(R=t[1].contactUs+"")&&u(m,R),2&e&&A!==(A=t[1].inviteLink+"")&&u(y,A),2&e&&D!==(D=t[1].inviteLink+"")&&u(U,D)},d(t){t&&s(e),H=!1,M()}}}function k(t){let e,o=2==t[0]&&v(t);return{c(){o&&o.c(),e=i()},m(t,a){o&&o.m(t,a),r(t,e,a)},p(t,r){2==t[0]?o?o.p(t,r):(o=v(t),o.c(),o.m(e.parentNode,e)):o&&(o.d(1),o=null)},d(t){o&&o.d(t),t&&s(e)}}}function y(t){let e,o=t[0],m=k(t);return{c(){m.c(),e=i(),this.c=n},m(t,o){m.m(t,o),r(t,e,o)},p(t,[r]){1&r&&a(o,o=t[0])?(m.d(1),m=k(t),m.c(),m.m(e.parentNode,e)):m.p(t,r)},i:n,o:n,d(t){t&&s(e),m.d(t)}}}function x(t,e,o){let r,a,i=w(0);m(t,i,(t=>o(0,r=t)));let n=w({});m(t,n,(t=>o(1,a=t))),b(n,"countries",i),b(n,"footer-component",i);return[r,a,i,n,()=>{location.href="#"}]}class L extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},x,y,a,{},null),t&&t.target&&r(t.target,this,t.anchor)}}customElements.define("footer-component",L);export{L as default}; diff --git a/Server/public/js/components/groups-add-component.js b/Server/public/js/components/groups-add-component.js index b1931fa..67a18d0 100644 --- a/Server/public/js/components/groups-add-component.js +++ b/Server/public/js/components/groups-add-component.js @@ -1 +1 @@ -import{S as t,i as n,a as e,b as o,s as i,e as r,n as a,d as s,c as l,o as m,w as c,f as p,g as u,h as d,j as g,k as h,l as f,q as b,r as w}from"./index-4348483d.js";import{w as y}from"./index-71440b21.js";import{addMarkersGroups as v}from"../../../../../../../../../js/groups.js";import{getData as x,loadLocaleContent as k,sendData as j}from"../../../../../../../../../js/libraries/serverTools.js";import"../../../../../../../../../js/components/map-component.js";function S(t){let n,e,i,r,a,l,m,c,y,v,x,k,j,L,S,z,C,T,N,O,H,M,A,$,q,E,J,U,D,I,R,G,K,P,Q;return{c(){n=p("div"),e=p("div"),i=p("h1"),i.textContent="Add a Group",r=u(),a=p("img"),m=u(),c=p("p"),c.textContent="If there are no groups in your town with whom you can organize then do the following:",y=u(),v=p("ol"),v.innerHTML="
  • Click on the map to show us where you are located;
  • \n
  • Add a way to contact you or leave blank for a pin to point to our discord;
  • \n
  • Press "Submit" to add yourself to our map;
  • \n
  • Verify yourself by having a chat with us at our Discord server to show on the map;
  • ",x=u(),k=p("div"),j=p("label"),j.textContent="Location:",L=u(),S=p("div"),z=p("input"),C=u(),T=p("div"),N=u(),O=p("div"),H=p("label"),H.textContent="Contact:",M=u(),A=p("div"),$=p("input"),q=u(),E=p("div"),J=u(),U=p("button"),U.textContent="Submit",D=u(),I=p("p"),R=u(),G=p("map-component"),d(a,"id","groups-img"),g(a.src,l="/img/common/groups.svg")||d(a,"src","/img/common/groups.svg"),d(a,"alt","groups"),d(c,"class","description"),d(j,"for","address-input"),d(z,"id","address-input"),d(z,"type","text"),z.readOnly=!0,d(T,"class","ghost-input"),d(S,"class","input-wrapper"),d(k,"id","address-input-wrapper"),d(k,"class","input-label-wrapper"),d(H,"for","contact-input"),d($,"id","contact-input"),d($,"type","text"),d(E,"class","ghost-input"),d(A,"class","input-wrapper"),d(O,"class","input-label-wrapper"),d(U,"id","submit-button"),d(I,"id","confirmation-msg"),h(G,"id","map"),h(G,"callback",K=t[15]),d(e,"id","text-container"),d(n,"id","container")},m(s,l){o(s,n,l),f(n,e),f(e,i),f(e,r),f(e,a),f(e,m),f(e,c),f(e,y),f(e,v),f(e,x),f(e,k),f(k,j),f(k,L),f(k,S),f(S,z),t[10](z),f(S,C),f(S,T),f(e,N),f(e,O),f(O,H),f(O,M),f(O,A),f(A,$),t[12]($),f(A,q),f(A,E),f(e,J),f(e,U),f(e,D),f(e,I),t[14](I),f(e,R),f(e,G),P||(Q=[b(z,"input",t[11]),b($,"input",t[13]),b(U,"click",t[9])],P=!0)},p(t,n){16&n&&K!==(K=t[15])&&h(G,"callback",K)},d(e){e&&s(n),t[10](null),t[12](null),t[14](null),P=!1,w(Q)}}}function z(t){let n,e=3==t[3]&&S(t);return{c(){e&&e.c(),n=r()},m(t,i){e&&e.m(t,i),o(t,n,i)},p(t,o){3==t[3]?e?e.p(t,o):(e=S(t),e.c(),e.m(n.parentNode,n)):e&&(e.d(1),e=null)},d(t){e&&e.d(t),t&&s(n)}}}function C(t){let n,e=t[3],l=z(t);return{c(){l.c(),n=r(),this.c=a},m(t,e){l.m(t,e),o(t,n,e)},p(t,[o]){8&o&&i(e,e=t[3])?(l.d(1),l=z(t),l.c(),l.m(n.parentNode,n)):l.p(t,o)},i:a,o:a,d(t){t&&s(n),l.d(t)}}}function T(t){t.nextElementSibling.innerHTML=t.value}function N(t,n,e){let o,i,r=y(0);l(t,r,(t=>e(3,o=t)));let a,s,p=y({});l(t,p,(t=>e(4,i=t)));let u,d,g,h;x("/assets/groups.json",(t=>{a=JSON.parse(t),s={};for(let t of a){let n=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),n in s?s[n].push(t):s[n]=[t]}r.update((t=>t+1))}));let f=0,b=0,w=function(t,n){let e=new L.Icon({iconUrl:"/img/common/markers/marker-black.png",shadowUrl:"https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]});return L.marker([t,n],{icon:e})}(0,0);w.setOpacity(0);let S=k(p,"groups-component",r);function z(t,n,o){let i=t([22,0],2);v(a,s,i,n,o),w.addTo(i),i.on("click",(function(t){let n=t.latlng.lat,o=t.latlng.lng;f=n,b=o,function(t,n,e){let o=L.latLng(n,e);t.setLatLng(o)}(w,n,o),w.setOpacity(1),x(`https://nominatim.openstreetmap.org/reverse?lat=${n}&lon=${o}&format=jsonv2`,(t=>{let n=(t=JSON.parse(t)).address,o=n.city||n.town||n.village||n.hamlet,i=n.state,r=n.country;null!=i?r+=", "+i:i="",null!=o?r+=", "+o:o="",e(1,d.value=r,d),T(d)})),function(t,n){x(`https://nominatim.openstreetmap.org/reverse?lat=${t}&lon=${n}&format=jsonv2&accept-language=en`,(t=>{let n=(t=JSON.parse(t)).address,e=n.city||n.town||n.village||n.hamlet,o=n.state,i=n.country;null!=o||(o=""),null!=e||(e=""),h=[i,o,e]}))}(n,o)}))}function C(t){!1!==t?(e(0,u.innerHTML="You have been added to our database! Now go to our Discord to verify yourself.",u),e(0,u.style.color="green",u)):(e(0,u.innerHTML="Something went wrong.",u),e(0,u.style.color="red",u))}k(p,"countries",r),m((()=>{}));return[u,d,g,o,i,r,p,S,z,function(){if(null!=h){let t={country:h[0],state:h[1],town:h[2],latitude:f,longitude:b,contact:g.value};""==t.state&&(t.state=null),""==t.town&&(t.town=null),""==t.contact&&(t.contact=null),j("/"+S+"/groups-add-post/",t,C)}},function(t){c[t?"unshift":"push"]((()=>{d=t,e(1,d)}))},()=>T(d),function(t){c[t?"unshift":"push"]((()=>{g=t,e(2,g)}))},()=>T(g),function(t){c[t?"unshift":"push"]((()=>{u=t,e(0,u)}))},t=>z(t,i,S)]}class O extends t{constructor(t){super(),this.shadowRoot.innerHTML="",n(this,{target:this.shadowRoot,props:e(this.attributes),customElement:!0},N,C,i,{},null),t&&t.target&&o(t.target,this,t.anchor)}}customElements.define("groups-add-component",O);export{O as default}; +import{S as t,i as e,a as n,b as o,s as i,e as r,n as a,d as s,c as l,o as c,f as m,g as p,h as u,j as d,k as g,l as f,m as h,p as b,r as w}from"./index-8c09578c.js";import{w as y}from"./index-77787e10.js";import{getData as v,loadLocaleContent as x,sendData as k}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as j,translate as S}from"../../../../../../../../../js/libraries/mapTools.js";import"../../../../../../../../../js/components/map-component.js";function z(t){let e,n,i,r,a,l,c,m,y,v,x,k,j,L,S,z,T,C,N,O,H,M,A,$,E,J,U,q,D,G,I,R,K,P,Q;return{c(){e=p("div"),n=p("div"),i=p("h1"),i.textContent="Add a Group",r=u(),a=p("img"),c=u(),m=p("p"),m.textContent="If there are no groups in your town with whom you can organize then do the following:",y=u(),v=p("ol"),v.innerHTML="
  • Click on the map to show us where you are located;
  • \n
  • Add a way to contact you or leave blank for a pin to point to our discord;
  • \n
  • Press "Submit" to add yourself to our map;
  • \n
  • Verify yourself by having a chat with us at our Discord server to show on the map;
  • ",x=u(),k=p("div"),j=p("label"),j.textContent="Location:",L=u(),S=p("div"),z=p("input"),T=u(),C=p("div"),N=u(),O=p("div"),H=p("label"),H.textContent="Contact:",M=u(),A=p("div"),$=p("input"),E=u(),J=p("div"),U=u(),q=p("button"),q.textContent="Submit",D=u(),G=p("p"),I=u(),R=p("map-component"),d(a,"id","groups-img"),g(a.src,l="/img/common/groups.svg")||d(a,"src","/img/common/groups.svg"),d(a,"alt","groups"),d(m,"class","description"),d(j,"for","address-input"),d(z,"id","address-input"),d(z,"type","text"),z.readOnly=!0,d(C,"class","ghost-input"),d(S,"class","input-wrapper"),d(k,"id","address-input-wrapper"),d(k,"class","input-label-wrapper"),d(H,"for","contact-input"),d($,"id","contact-input"),d($,"type","text"),d(J,"class","ghost-input"),d(A,"class","input-wrapper"),d(O,"class","input-label-wrapper"),d(q,"id","submit-button"),d(G,"id","confirmation-msg"),f(R,"id","map"),f(R,"callback",K=t[15]),d(n,"id","text-container"),d(e,"id","container")},m(s,l){o(s,e,l),h(e,n),h(n,i),h(n,r),h(n,a),h(n,c),h(n,m),h(n,y),h(n,v),h(n,x),h(n,k),h(k,j),h(k,L),h(k,S),h(S,z),t[10](z),h(S,T),h(S,C),h(n,N),h(n,O),h(O,H),h(O,M),h(O,A),h(A,$),t[12]($),h(A,E),h(A,J),h(n,U),h(n,q),h(n,D),h(n,G),t[14](G),h(n,I),h(n,R),P||(Q=[b(z,"input",t[11]),b($,"input",t[13]),b(q,"click",t[9])],P=!0)},p(t,e){16&e&&K!==(K=t[15])&&f(R,"callback",K)},d(n){n&&s(e),t[10](null),t[12](null),t[14](null),P=!1,w(Q)}}}function T(t){let e,n=3==t[3]&&z(t);return{c(){n&&n.c(),e=r()},m(t,i){n&&n.m(t,i),o(t,e,i)},p(t,o){3==t[3]?n?n.p(t,o):(n=z(t),n.c(),n.m(e.parentNode,e)):n&&(n.d(1),n=null)},d(t){n&&n.d(t),t&&s(e)}}}function C(t){let e,n=t[3],l=T(t);return{c(){l.c(),e=r(),this.c=a},m(t,n){l.m(t,n),o(t,e,n)},p(t,[o]){8&o&&i(n,n=t[3])?(l.d(1),l=T(t),l.c(),l.m(e.parentNode,e)):l.p(t,o)},i:a,o:a,d(t){t&&s(e),l.d(t)}}}function N(t){t.nextElementSibling.innerHTML=t.value}function O(t,e,n){let o,i,r=y(0);l(t,r,(t=>n(3,o=t)));let a,s,p=y({});l(t,p,(t=>n(4,i=t)));let u,d,g,f;v("/assets/groups.json",(t=>{a=JSON.parse(t),s={};for(let t of a){let e=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),e in s?s[e].push(t):s[e]=[t]}r.update((t=>t+1))}));let h=0,b=0,w=function(t,e){let n=new L.Icon({iconUrl:"/img/common/markers/marker-black.png",shadowUrl:"https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]});return L.marker([t,e],{icon:n})}(0,0);w.setOpacity(0);let z=x(p,"groups-component",r);function T(t,e,n){let o,i=""+e.Group+"
    ";for(let r of["location","members","contact"]){let a=e[r]+": ";if("contact"==r)i+=a+""+t.contact+"";else if("location"==r){let r,s=[t.country,t.state,t.town].filter((t=>null!=t&&null!=t));r="en"==n?s.map((t=>t)).join(", "):s.map((t=>S(e,t))).join(", "),i+=a+r+"
    ",o=[t.latitude,t.longitude]}else i+=a+t[r]+"
    "}return{text:i,coordinates:o}}function C(t,e,o){let i=t([22,0],2);j(a,s,i,e,o,T,"green"),w.addTo(i),i.on("click",(function(t){let e=t.latlng.lat,o=t.latlng.lng;h=e,b=o,function(t,e,n){let o=L.latLng(e,n);t.setLatLng(o)}(w,e,o),w.setOpacity(1),v(`https://nominatim.openstreetmap.org/reverse?lat=${e}&lon=${o}&format=jsonv2`,(t=>{let e=(t=JSON.parse(t)).address,o=e.city||e.town||e.village||e.hamlet,i=e.state,r=e.country;null!=i?r+=", "+i:i="",null!=o?r+=", "+o:o="",n(1,d.value=r,d),N(d)})),function(t,e){v(`https://nominatim.openstreetmap.org/reverse?lat=${t}&lon=${e}&format=jsonv2&accept-language=en`,(t=>{let e=(t=JSON.parse(t)).address,n=e.city||e.town||e.village||e.hamlet,o=e.state,i=e.country;null!=o||(o=""),null!=n||(n=""),f=[i,o,n]}))}(e,o)}))}function O(t){!1!==t?(n(0,u.innerHTML="You have been added to our database! Now go to our Discord to verify yourself.",u),n(0,u.style.color="green",u)):(n(0,u.innerHTML="Something went wrong.",u),n(0,u.style.color="red",u))}x(p,"countries",r),c((()=>{}));return[u,d,g,o,i,r,p,z,C,function(){if(null!=f){let t={country:f[0],state:f[1],town:f[2],latitude:h,longitude:b,contact:g.value};""==t.state&&(t.state=null),""==t.town&&(t.town=null),""==t.contact&&(t.contact=null),k("/"+z+"/groups-add-post/",t,O)}},function(t){m[t?"unshift":"push"]((()=>{d=t,n(1,d)}))},()=>N(d),function(t){m[t?"unshift":"push"]((()=>{g=t,n(2,g)}))},()=>N(g),function(t){m[t?"unshift":"push"]((()=>{u=t,n(0,u)}))},t=>C(t,i,z)]}class H extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},O,C,i,{},null),t&&t.target&&o(t.target,this,t.anchor)}}customElements.define("groups-add-component",H);export{H as default}; diff --git a/Server/public/js/components/groups-component.js b/Server/public/js/components/groups-component.js index dc4b9cd..17ab175 100644 --- a/Server/public/js/components/groups-component.js +++ b/Server/public/js/components/groups-component.js @@ -1 +1 @@ -import{S as t,i as o,a as n,b as e,s as r,e as s,n as a,d as i,c as m,o as c,f as l,t as p,g as u,h as g,j as d,k as f,l as h,m as b,p as j}from"./index-4348483d.js";import{w as x}from"./index-71440b21.js";import{addMarkersGroups as y,translate as v}from"../../../../../../../../../js/groups.js";import{loadLocaleContent as w,getData as k}from"../../../../../../../../../js/libraries/serverTools.js";import"../../../../../../../../../js/components/map-component.js";function z(t,o,n){const e=t.slice();return e[12]=o[n][0],e[3]=o[n][1],e}function N(t,o,n){const e=t.slice();return e[15]=o[n],e}function O(t){let o,n,r,s,a,m,c,x,y,v,w,k,N,O,D,R,S,T,A,C,H=t[1].groups+"",J=t[1].p1+"",K=t[1].subheading1+"",L=t[1]["map-prompt"]+"",M=Object.entries(t[0]),Q=[];for(let o=0;on(2,r=t)));let a,i,l=x({});m(t,l,(t=>n(1,e=t)));let p=w(l,"groups-component",s);w(l,"countries",s);function u(t,o,n){let e=t([22,0],2);y(a,i,e,o,n)}k("/assets/groups.json",(t=>{n(3,a=JSON.parse(t)),n(0,i={});for(let t of a){let o=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),o in i?i[o].push(t):n(0,i[o]=[t],i)}s.update((t=>t+1))})),c((()=>{}));return[i,e,r,a,s,l,p,u,function(t){return"en"==p?t:v(e,t)},function(t){return[t.country,t.state,t.town].filter((t=>null!=t)).map((t=>"en"==p?t:v(e,t))).join(", ")},t=>u(t,e,p)]}class A extends t{constructor(t){super(),this.shadowRoot.innerHTML="",o(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},T,S,r,{},null),t&&t.target&&e(t.target,this,t.anchor)}}customElements.define("groups-component",A);export{A as default}; +import{S as t,i as o,a as n,b as e,s as r,e as s,n as a,d as i,c as m,o as c,g as l,t as p,h as u,j as g,k as d,l as f,m as h,q as b,u as j}from"./index-8c09578c.js";import{w as x}from"./index-77787e10.js";import{loadLocaleContent as y,getData as v}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as w,translate as k}from"../../../../../../../../../js/libraries/mapTools.js";import{addGroupPinContent as z}from"../../../../../../../../../js/mapFuncs.js";import"../../../../../../../../../js/components/map-component.js";function N(t,o,n){const e=t.slice();return e[12]=o[n][0],e[3]=o[n][1],e}function O(t,o,n){const e=t.slice();return e[15]=o[n],e}function T(t){let o,n,r,s,a,m,c,x,y,v,w,k,z,O,T,D,R,S,q,A,C=t[1].groups+"",F=t[1].p1+"",H=t[1].subheading1+"",J=t[1]["map-prompt"]+"",K=Object.entries(t[0]),L=[];for(let o=0;on(2,r=t)));let a,i,l=x({});m(t,l,(t=>n(1,e=t)));let p=y(l,"groups-component",s);y(l,"countries",s);function u(t,o,n){let e=t([22,0],2);w(a,i,e,o,n,z,"green")}v("/assets/groups.json",(t=>{n(3,a=JSON.parse(t)),n(0,i={});for(let t of a){let o=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),o in i?i[o].push(t):n(0,i[o]=[t],i)}s.update((t=>t+1))})),c((()=>{}));return[i,e,r,a,s,l,p,u,function(t){return"en"==p?t:k(e,t)},function(t){return[t.country,t.state,t.town].filter((t=>null!=t)).map((t=>"en"==p?t:k(e,t))).join(", ")},t=>u(t,e,p)]}class A extends t{constructor(t){super(),this.shadowRoot.innerHTML="",o(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},q,S,r,{},null),t&&t.target&&e(t.target,this,t.anchor)}}customElements.define("groups-component",A);export{A as default}; diff --git a/Server/public/js/components/index-54dd49e1.js b/Server/public/js/components/index-54dd49e1.js new file mode 100644 index 0000000..70a80e3 --- /dev/null +++ b/Server/public/js/components/index-54dd49e1.js @@ -0,0 +1,513 @@ + +(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); +function noop() { } +function add_location(element, file, line, column, char) { + element.__svelte_meta = { + loc: { file, line, column, char } + }; +} +function run(fn) { + return fn(); +} +function blank_object() { + return Object.create(null); +} +function run_all(fns) { + fns.forEach(run); +} +function is_function(thing) { + return typeof thing === 'function'; +} +function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); +} +let src_url_equal_anchor; +function src_url_equal(element_src, url) { + if (!src_url_equal_anchor) { + src_url_equal_anchor = document.createElement('a'); + } + src_url_equal_anchor.href = url; + return element_src === src_url_equal_anchor.href; +} +function is_empty(obj) { + return Object.keys(obj).length === 0; +} +function validate_store(store, name) { + if (store != null && typeof store.subscribe !== 'function') { + throw new Error(`'${name}' is not a store with a 'subscribe' method`); + } +} +function subscribe(store, ...callbacks) { + if (store == null) { + return noop; + } + const unsub = store.subscribe(...callbacks); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; +} +function component_subscribe(component, store, callback) { + component.$$.on_destroy.push(subscribe(store, callback)); +} +function append(target, node) { + target.appendChild(node); +} +function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); +} +function detach(node) { + node.parentNode.removeChild(node); +} +function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) + iterations[i].d(detaching); + } +} +function element(name) { + return document.createElement(name); +} +function svg_element(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); +} +function text(data) { + return document.createTextNode(data); +} +function space() { + return text(' '); +} +function empty() { + return text(''); +} +function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); +} +function attr(node, attribute, value) { + if (value == null) + node.removeAttribute(attribute); + else if (node.getAttribute(attribute) !== value) + node.setAttribute(attribute, value); +} +function set_custom_element_data(node, prop, value) { + if (prop in node) { + node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; + } + else { + attr(node, prop, value); + } +} +function children(element) { + return Array.from(element.childNodes); +} +function set_style(node, key, value, important) { + if (value === null) { + node.style.removeProperty(key); + } + else { + node.style.setProperty(key, value, important ? 'important' : ''); + } +} +function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, bubbles, cancelable, detail); + return e; +} +class HtmlTag { + constructor(is_svg = false) { + this.is_svg = false; + this.is_svg = is_svg; + this.e = this.n = null; + } + c(html) { + this.h(html); + } + m(html, target, anchor = null) { + if (!this.e) { + if (this.is_svg) + this.e = svg_element(target.nodeName); + else + this.e = element(target.nodeName); + this.t = target; + this.c(html); + } + this.i(anchor); + } + h(html) { + this.e.innerHTML = html; + this.n = Array.from(this.e.childNodes); + } + i(anchor) { + for (let i = 0; i < this.n.length; i += 1) { + insert(this.t, this.n[i], anchor); + } + } + p(html) { + this.d(); + this.h(html); + this.i(this.a); + } + d() { + this.n.forEach(detach); + } +} +function attribute_to_object(attributes) { + const result = {}; + for (const attribute of attributes) { + result[attribute.name] = attribute.value; + } + return result; +} + +let current_component; +function set_current_component(component) { + current_component = component; +} +function get_current_component() { + if (!current_component) + throw new Error('Function called outside component initialization'); + return current_component; +} +/** + * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. + * It must be called during the component's initialisation (but doesn't need to live *inside* the component; + * it can be called from an external module). + * + * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). + * + * https://svelte.dev/docs#run-time-svelte-onmount + */ +function onMount(fn) { + get_current_component().$$.on_mount.push(fn); +} +/** + * Associates an arbitrary `context` object with the current component and the specified `key` + * and returns that object. The context is then available to children of the component + * (including slotted content) with `getContext`. + * + * Like lifecycle functions, this must be called during component initialisation. + * + * https://svelte.dev/docs#run-time-svelte-setcontext + */ +function setContext(key, context) { + get_current_component().$$.context.set(key, context); + return context; +} +/** + * Retrieves the context that belongs to the closest parent component with the specified `key`. + * Must be called during component initialisation. + * + * https://svelte.dev/docs#run-time-svelte-getcontext + */ +function getContext(key) { + return get_current_component().$$.context.get(key); +} + +const dirty_components = []; +const binding_callbacks = []; +const render_callbacks = []; +const flush_callbacks = []; +const resolved_promise = Promise.resolve(); +let update_scheduled = false; +function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } +} +function add_render_callback(fn) { + render_callbacks.push(fn); +} +// flush() calls callbacks in this order: +// 1. All beforeUpdate callbacks, in order: parents before children +// 2. All bind:this callbacks, in reverse order: children before parents. +// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT +// for afterUpdates called during the initial onMount, which are called in +// reverse order: children before parents. +// Since callbacks might update component values, which could trigger another +// call to flush(), the following steps guard against this: +// 1. During beforeUpdate, any updated components will be added to the +// dirty_components array and will cause a reentrant call to flush(). Because +// the flush index is kept outside the function, the reentrant call will pick +// up where the earlier call left off and go through all dirty components. The +// current_component value is saved and restored so that the reentrant call will +// not interfere with the "parent" flush() call. +// 2. bind:this callbacks cannot trigger new flush() calls. +// 3. During afterUpdate, any updated components will NOT have their afterUpdate +// callback called a second time; the seen_callbacks set, outside the flush() +// function, guarantees this behavior. +const seen_callbacks = new Set(); +let flushidx = 0; // Do *not* move this inside the flush() function +function flush() { + const saved_component = current_component; + do { + // first, call beforeUpdate functions + // and update components + while (flushidx < dirty_components.length) { + const component = dirty_components[flushidx]; + flushidx++; + set_current_component(component); + update(component.$$); + } + set_current_component(null); + dirty_components.length = 0; + flushidx = 0; + while (binding_callbacks.length) + binding_callbacks.pop()(); + // then, once components are updated, call + // afterUpdate functions. This may cause + // subsequent updates... + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + // ...so guard against infinite loops + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + seen_callbacks.clear(); + set_current_component(saved_component); +} +function update($$) { + if ($$.fragment !== null) { + $$.update(); + run_all($$.before_update); + const dirty = $$.dirty; + $$.dirty = [-1]; + $$.fragment && $$.fragment.p($$.ctx, dirty); + $$.after_update.forEach(add_render_callback); + } +} +const outroing = new Set(); +function transition_in(block, local) { + if (block && block.i) { + outroing.delete(block); + block.i(local); + } +} + +const globals = (typeof window !== 'undefined' + ? window + : typeof globalThis !== 'undefined' + ? globalThis + : global); +function mount_component(component, target, anchor, customElement) { + const { fragment, after_update } = component.$$; + fragment && fragment.m(target, anchor); + if (!customElement) { + // onMount happens before the initial afterUpdate + add_render_callback(() => { + const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); + // if the component was destroyed immediately + // it will update the `$$.on_destroy` reference to `null`. + // the destructured on_destroy may still reference to the old array + if (component.$$.on_destroy) { + component.$$.on_destroy.push(...new_on_destroy); + } + else { + // Edge case - component was destroyed immediately, + // most likely as a result of a binding initialising + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + } + after_update.forEach(add_render_callback); +} +function destroy_component(component, detaching) { + const $$ = component.$$; + if ($$.fragment !== null) { + run_all($$.on_destroy); + $$.fragment && $$.fragment.d(detaching); + // TODO null out other refs, including component.$$ (but need to + // preserve final state?) + $$.on_destroy = $$.fragment = null; + $$.ctx = []; + } +} +function make_dirty(component, i) { + if (component.$$.dirty[0] === -1) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty.fill(0); + } + component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); +} +function init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: [], + // state + props, + update: noop, + not_equal, + bound: blank_object(), + // lifecycle + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), + // everything else + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles && append_styles($$.root); + let ready = false; + $$.ctx = instance + ? instance(component, options.props || {}, (i, ret, ...rest) => { + const value = rest.length ? rest[0] : ret; + if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { + if (!$$.skip_bound && $$.bound[i]) + $$.bound[i](value); + if (ready) + make_dirty(component, i); + } + return ret; + }) + : []; + $$.update(); + ready = true; + run_all($$.before_update); + // `false` as a special case of no DOM component + $$.fragment = create_fragment ? create_fragment($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + const nodes = children(options.target); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } + else { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.c(); + } + if (options.intro) + transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor, options.customElement); + flush(); + } + set_current_component(parent_component); +} +let SvelteElement; +if (typeof HTMLElement === 'function') { + SvelteElement = class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ mode: 'open' }); + } + connectedCallback() { + const { on_mount } = this.$$; + this.$$.on_disconnect = on_mount.map(run).filter(is_function); + // @ts-ignore todo: improve typings + for (const key in this.$$.slotted) { + // @ts-ignore todo: improve typings + this.appendChild(this.$$.slotted[key]); + } + } + attributeChangedCallback(attr, _oldValue, newValue) { + this[attr] = newValue; + } + disconnectedCallback() { + run_all(this.$$.on_disconnect); + } + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + $on(type, callback) { + // TODO should this delegate to addEventListener? + if (!is_function(callback)) { + return noop; + } + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) + callbacks.splice(index, 1); + }; + } + $set($$props) { + if (this.$$set && !is_empty($$props)) { + this.$$.skip_bound = true; + this.$$set($$props); + this.$$.skip_bound = false; + } + } + }; +} + +function dispatch_dev(type, detail) { + document.dispatchEvent(custom_event(type, Object.assign({ version: '3.52.0' }, detail), { bubbles: true })); +} +function append_dev(target, node) { + dispatch_dev('SvelteDOMInsert', { target, node }); + append(target, node); +} +function insert_dev(target, node, anchor) { + dispatch_dev('SvelteDOMInsert', { target, node, anchor }); + insert(target, node, anchor); +} +function detach_dev(node) { + dispatch_dev('SvelteDOMRemove', { node }); + detach(node); +} +function listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) { + const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : []; + if (has_prevent_default) + modifiers.push('preventDefault'); + if (has_stop_propagation) + modifiers.push('stopPropagation'); + dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers }); + const dispose = listen(node, event, handler, options); + return () => { + dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers }); + dispose(); + }; +} +function attr_dev(node, attribute, value) { + attr(node, attribute, value); + if (value == null) + dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute }); + else + dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value }); +} +function prop_dev(node, property, value) { + node[property] = value; + dispatch_dev('SvelteDOMSetProperty', { node, property, value }); +} +function set_data_dev(text, data) { + data = '' + data; + if (text.wholeText === data) + return; + dispatch_dev('SvelteDOMSetData', { node: text, data }); + text.data = data; +} +function validate_each_argument(arg) { + if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { + let msg = '{#each} only iterates over array-like objects.'; + if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { + msg += ' You can use a spread to convert this iterable into an array.'; + } + throw new Error(msg); + } +} +function validate_slots(name, slot, keys) { + for (const slot_key of Object.keys(slot)) { + if (!~keys.indexOf(slot_key)) { + console.warn(`<${name}> received an unexpected slot "${slot_key}".`); + } + } +} + +export { destroy_each as A, prop_dev as B, flush as C, set_style as D, getContext as E, setContext as F, svg_element as G, is_function as H, HtmlTag as I, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, empty as f, detach_dev as g, binding_callbacks as h, init as i, element as j, space as k, add_location as l, attr_dev as m, noop as n, onMount as o, src_url_equal as p, set_custom_element_data as q, append_dev as r, safe_not_equal as s, listen_dev as t, run_all as u, validate_slots as v, globals as w, validate_each_argument as x, text as y, set_data_dev as z }; diff --git a/Server/public/js/components/index-6955b43d.js b/Server/public/js/components/index-6955b43d.js new file mode 100644 index 0000000..a13d879 --- /dev/null +++ b/Server/public/js/components/index-6955b43d.js @@ -0,0 +1,53 @@ + +(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); +import { n as noop, s as safe_not_equal } from './index-54dd49e1.js'; + +const subscriber_queue = []; +/** + * Create a `Writable` store that allows both updating and reading by subscription. + * @param {*=}value initial value + * @param {StartStopNotifier=}start start and stop notifications for subscriptions + */ +function writable(value, start = noop) { + let stop; + const subscribers = new Set(); + function set(new_value) { + if (safe_not_equal(value, new_value)) { + value = new_value; + if (stop) { // store is ready + const run_queue = !subscriber_queue.length; + for (const subscriber of subscribers) { + subscriber[1](); + subscriber_queue.push(subscriber, value); + } + if (run_queue) { + for (let i = 0; i < subscriber_queue.length; i += 2) { + subscriber_queue[i][0](subscriber_queue[i + 1]); + } + subscriber_queue.length = 0; + } + } + } + } + function update(fn) { + set(fn(value)); + } + function subscribe(run, invalidate = noop) { + const subscriber = [run, invalidate]; + subscribers.add(subscriber); + if (subscribers.size === 1) { + stop = start(set) || noop; + } + run(value); + return () => { + subscribers.delete(subscriber); + if (subscribers.size === 0) { + stop(); + stop = null; + } + }; + } + return { set, update, subscribe }; +} + +export { writable as w }; diff --git a/Server/public/js/components/index-77787e10.js b/Server/public/js/components/index-77787e10.js new file mode 100644 index 0000000..b14d61f --- /dev/null +++ b/Server/public/js/components/index-77787e10.js @@ -0,0 +1 @@ +import{n,s as t}from"./index-8c09578c.js";const e=[];function s(s,o=n){let c;const i=new Set;function f(n){if(t(s,n)&&(s=n,c)){const n=!e.length;for(const n of i)n[1](),e.push(n,s);if(n){for(let n=0;n{i.delete(r),0===i.size&&(c(),c=null)}}}}export{s as w}; diff --git a/Server/public/js/components/index-8c09578c.js b/Server/public/js/components/index-8c09578c.js new file mode 100644 index 0000000..de4894e --- /dev/null +++ b/Server/public/js/components/index-8c09578c.js @@ -0,0 +1 @@ +function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function a(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function u(n,e,o){n.$$.on_destroy.push(function(n,...e){if(null==n)return t;const o=n.subscribe(...e);return o.unsubscribe?()=>o.unsubscribe():o}(e,o))}function f(t,n){t.appendChild(n)}function l(t,n,e){t.insertBefore(n,e||null)}function h(t){t.parentNode.removeChild(t)}function d(t,n){for(let e=0;et.removeEventListener(n,e,o)}function y(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function _(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:y(t,n,e)}function x(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function v(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class E{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=$(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&D(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!u&&u(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(h)}else m.fragment&&m.fragment.c();i.intro&&((b=r.$$.fragment)&&b.i&&(F.delete(b),b.i(y))),function(t,e,r,i){const{fragment:c,after_update:a}=t.$$;c&&c.m(e,r),i||O((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),a.forEach(O)}(r,i.target,i.anchor,i.customElement),z()}var b,y;k(p)}let I;"function"==typeof HTMLElement&&(I=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{E as H,I as S,w as a,l as b,u as c,h as d,g as e,S as f,$ as g,m as h,G as i,y as j,a as k,_ as l,f as m,t as n,N as o,b as p,x as q,o as r,r as s,p as t,d as u,z as v,v as w,A as x,s as y}; diff --git a/Server/public/js/components/index-ac368ab0.js b/Server/public/js/components/index-ac368ab0.js new file mode 100644 index 0000000..551af6e --- /dev/null +++ b/Server/public/js/components/index-ac368ab0.js @@ -0,0 +1,53 @@ + +(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); +import { n as noop, s as safe_not_equal } from './index-d77c7bdd.js'; + +const subscriber_queue = []; +/** + * Create a `Writable` store that allows both updating and reading by subscription. + * @param {*=}value initial value + * @param {StartStopNotifier=}start start and stop notifications for subscriptions + */ +function writable(value, start = noop) { + let stop; + const subscribers = new Set(); + function set(new_value) { + if (safe_not_equal(value, new_value)) { + value = new_value; + if (stop) { // store is ready + const run_queue = !subscriber_queue.length; + for (const subscriber of subscribers) { + subscriber[1](); + subscriber_queue.push(subscriber, value); + } + if (run_queue) { + for (let i = 0; i < subscriber_queue.length; i += 2) { + subscriber_queue[i][0](subscriber_queue[i + 1]); + } + subscriber_queue.length = 0; + } + } + } + } + function update(fn) { + set(fn(value)); + } + function subscribe(run, invalidate = noop) { + const subscriber = [run, invalidate]; + subscribers.add(subscriber); + if (subscribers.size === 1) { + stop = start(set) || noop; + } + run(value); + return () => { + subscribers.delete(subscriber); + if (subscribers.size === 0) { + stop(); + stop = null; + } + }; + } + return { set, update, subscribe }; +} + +export { writable as w }; diff --git a/Server/public/js/components/index-d77c7bdd.js b/Server/public/js/components/index-d77c7bdd.js new file mode 100644 index 0000000..756ce7c --- /dev/null +++ b/Server/public/js/components/index-d77c7bdd.js @@ -0,0 +1,521 @@ + +(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); +function noop() { } +function add_location(element, file, line, column, char) { + element.__svelte_meta = { + loc: { file, line, column, char } + }; +} +function run(fn) { + return fn(); +} +function blank_object() { + return Object.create(null); +} +function run_all(fns) { + fns.forEach(run); +} +function is_function(thing) { + return typeof thing === 'function'; +} +function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); +} +let src_url_equal_anchor; +function src_url_equal(element_src, url) { + if (!src_url_equal_anchor) { + src_url_equal_anchor = document.createElement('a'); + } + src_url_equal_anchor.href = url; + return element_src === src_url_equal_anchor.href; +} +function is_empty(obj) { + return Object.keys(obj).length === 0; +} +function validate_store(store, name) { + if (store != null && typeof store.subscribe !== 'function') { + throw new Error(`'${name}' is not a store with a 'subscribe' method`); + } +} +function subscribe(store, ...callbacks) { + if (store == null) { + return noop; + } + const unsub = store.subscribe(...callbacks); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; +} +function component_subscribe(component, store, callback) { + component.$$.on_destroy.push(subscribe(store, callback)); +} +function append(target, node) { + target.appendChild(node); +} +function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); +} +function detach(node) { + node.parentNode.removeChild(node); +} +function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) + iterations[i].d(detaching); + } +} +function element(name) { + return document.createElement(name); +} +function svg_element(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); +} +function text(data) { + return document.createTextNode(data); +} +function space() { + return text(' '); +} +function empty() { + return text(''); +} +function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); +} +function attr(node, attribute, value) { + if (value == null) + node.removeAttribute(attribute); + else if (node.getAttribute(attribute) !== value) + node.setAttribute(attribute, value); +} +function set_custom_element_data(node, prop, value) { + if (prop in node) { + node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; + } + else { + attr(node, prop, value); + } +} +function children(element) { + return Array.from(element.childNodes); +} +function set_style(node, key, value, important) { + if (value === null) { + node.style.removeProperty(key); + } + else { + node.style.setProperty(key, value, important ? 'important' : ''); + } +} +function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, bubbles, cancelable, detail); + return e; +} +class HtmlTag { + constructor(is_svg = false) { + this.is_svg = false; + this.is_svg = is_svg; + this.e = this.n = null; + } + c(html) { + this.h(html); + } + m(html, target, anchor = null) { + if (!this.e) { + if (this.is_svg) + this.e = svg_element(target.nodeName); + else + this.e = element(target.nodeName); + this.t = target; + this.c(html); + } + this.i(anchor); + } + h(html) { + this.e.innerHTML = html; + this.n = Array.from(this.e.childNodes); + } + i(anchor) { + for (let i = 0; i < this.n.length; i += 1) { + insert(this.t, this.n[i], anchor); + } + } + p(html) { + this.d(); + this.h(html); + this.i(this.a); + } + d() { + this.n.forEach(detach); + } +} +function attribute_to_object(attributes) { + const result = {}; + for (const attribute of attributes) { + result[attribute.name] = attribute.value; + } + return result; +} + +let current_component; +function set_current_component(component) { + current_component = component; +} +function get_current_component() { + if (!current_component) + throw new Error('Function called outside component initialization'); + return current_component; +} +/** + * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. + * It must be called during the component's initialisation (but doesn't need to live *inside* the component; + * it can be called from an external module). + * + * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). + * + * https://svelte.dev/docs#run-time-svelte-onmount + */ +function onMount(fn) { + get_current_component().$$.on_mount.push(fn); +} +/** + * Associates an arbitrary `context` object with the current component and the specified `key` + * and returns that object. The context is then available to children of the component + * (including slotted content) with `getContext`. + * + * Like lifecycle functions, this must be called during component initialisation. + * + * https://svelte.dev/docs#run-time-svelte-setcontext + */ +function setContext(key, context) { + get_current_component().$$.context.set(key, context); + return context; +} +/** + * Retrieves the context that belongs to the closest parent component with the specified `key`. + * Must be called during component initialisation. + * + * https://svelte.dev/docs#run-time-svelte-getcontext + */ +function getContext(key) { + return get_current_component().$$.context.get(key); +} + +const dirty_components = []; +const binding_callbacks = []; +const render_callbacks = []; +const flush_callbacks = []; +const resolved_promise = Promise.resolve(); +let update_scheduled = false; +function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } +} +function add_render_callback(fn) { + render_callbacks.push(fn); +} +// flush() calls callbacks in this order: +// 1. All beforeUpdate callbacks, in order: parents before children +// 2. All bind:this callbacks, in reverse order: children before parents. +// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT +// for afterUpdates called during the initial onMount, which are called in +// reverse order: children before parents. +// Since callbacks might update component values, which could trigger another +// call to flush(), the following steps guard against this: +// 1. During beforeUpdate, any updated components will be added to the +// dirty_components array and will cause a reentrant call to flush(). Because +// the flush index is kept outside the function, the reentrant call will pick +// up where the earlier call left off and go through all dirty components. The +// current_component value is saved and restored so that the reentrant call will +// not interfere with the "parent" flush() call. +// 2. bind:this callbacks cannot trigger new flush() calls. +// 3. During afterUpdate, any updated components will NOT have their afterUpdate +// callback called a second time; the seen_callbacks set, outside the flush() +// function, guarantees this behavior. +const seen_callbacks = new Set(); +let flushidx = 0; // Do *not* move this inside the flush() function +function flush() { + const saved_component = current_component; + do { + // first, call beforeUpdate functions + // and update components + while (flushidx < dirty_components.length) { + const component = dirty_components[flushidx]; + flushidx++; + set_current_component(component); + update(component.$$); + } + set_current_component(null); + dirty_components.length = 0; + flushidx = 0; + while (binding_callbacks.length) + binding_callbacks.pop()(); + // then, once components are updated, call + // afterUpdate functions. This may cause + // subsequent updates... + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + // ...so guard against infinite loops + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + seen_callbacks.clear(); + set_current_component(saved_component); +} +function update($$) { + if ($$.fragment !== null) { + $$.update(); + run_all($$.before_update); + const dirty = $$.dirty; + $$.dirty = [-1]; + $$.fragment && $$.fragment.p($$.ctx, dirty); + $$.after_update.forEach(add_render_callback); + } +} +const outroing = new Set(); +function transition_in(block, local) { + if (block && block.i) { + outroing.delete(block); + block.i(local); + } +} + +const globals = (typeof window !== 'undefined' + ? window + : typeof globalThis !== 'undefined' + ? globalThis + : global); +function mount_component(component, target, anchor, customElement) { + const { fragment, after_update } = component.$$; + fragment && fragment.m(target, anchor); + if (!customElement) { + // onMount happens before the initial afterUpdate + add_render_callback(() => { + const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); + // if the component was destroyed immediately + // it will update the `$$.on_destroy` reference to `null`. + // the destructured on_destroy may still reference to the old array + if (component.$$.on_destroy) { + component.$$.on_destroy.push(...new_on_destroy); + } + else { + // Edge case - component was destroyed immediately, + // most likely as a result of a binding initialising + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + } + after_update.forEach(add_render_callback); +} +function destroy_component(component, detaching) { + const $$ = component.$$; + if ($$.fragment !== null) { + run_all($$.on_destroy); + $$.fragment && $$.fragment.d(detaching); + // TODO null out other refs, including component.$$ (but need to + // preserve final state?) + $$.on_destroy = $$.fragment = null; + $$.ctx = []; + } +} +function make_dirty(component, i) { + if (component.$$.dirty[0] === -1) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty.fill(0); + } + component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); +} +function init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: [], + // state + props, + update: noop, + not_equal, + bound: blank_object(), + // lifecycle + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), + // everything else + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles && append_styles($$.root); + let ready = false; + $$.ctx = instance + ? instance(component, options.props || {}, (i, ret, ...rest) => { + const value = rest.length ? rest[0] : ret; + if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { + if (!$$.skip_bound && $$.bound[i]) + $$.bound[i](value); + if (ready) + make_dirty(component, i); + } + return ret; + }) + : []; + $$.update(); + ready = true; + run_all($$.before_update); + // `false` as a special case of no DOM component + $$.fragment = create_fragment ? create_fragment($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + const nodes = children(options.target); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } + else { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + $$.fragment && $$.fragment.c(); + } + if (options.intro) + transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor, options.customElement); + flush(); + } + set_current_component(parent_component); +} +let SvelteElement; +if (typeof HTMLElement === 'function') { + SvelteElement = class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ mode: 'open' }); + } + connectedCallback() { + const { on_mount } = this.$$; + this.$$.on_disconnect = on_mount.map(run).filter(is_function); + // @ts-ignore todo: improve typings + for (const key in this.$$.slotted) { + // @ts-ignore todo: improve typings + this.appendChild(this.$$.slotted[key]); + } + } + attributeChangedCallback(attr, _oldValue, newValue) { + this[attr] = newValue; + } + disconnectedCallback() { + run_all(this.$$.on_disconnect); + } + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + $on(type, callback) { + // TODO should this delegate to addEventListener? + if (!is_function(callback)) { + return noop; + } + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) + callbacks.splice(index, 1); + }; + } + $set($$props) { + if (this.$$set && !is_empty($$props)) { + this.$$.skip_bound = true; + this.$$set($$props); + this.$$.skip_bound = false; + } + } + }; +} + +function dispatch_dev(type, detail) { + document.dispatchEvent(custom_event(type, Object.assign({ version: '3.52.0' }, detail), { bubbles: true })); +} +function append_dev(target, node) { + dispatch_dev('SvelteDOMInsert', { target, node }); + append(target, node); +} +function insert_dev(target, node, anchor) { + dispatch_dev('SvelteDOMInsert', { target, node, anchor }); + insert(target, node, anchor); +} +function detach_dev(node) { + dispatch_dev('SvelteDOMRemove', { node }); + detach(node); +} +function listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) { + const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : []; + if (has_prevent_default) + modifiers.push('preventDefault'); + if (has_stop_propagation) + modifiers.push('stopPropagation'); + dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers }); + const dispose = listen(node, event, handler, options); + return () => { + dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers }); + dispose(); + }; +} +function attr_dev(node, attribute, value) { + attr(node, attribute, value); + if (value == null) + dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute }); + else + dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value }); +} +function prop_dev(node, property, value) { + node[property] = value; + dispatch_dev('SvelteDOMSetProperty', { node, property, value }); +} +function set_data_dev(text, data) { + data = '' + data; + if (text.wholeText === data) + return; + dispatch_dev('SvelteDOMSetData', { node: text, data }); + text.data = data; +} +function validate_each_argument(arg) { + if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { + let msg = '{#each} only iterates over array-like objects.'; + if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { + msg += ' You can use a spread to convert this iterable into an array.'; + } + throw new Error(msg); + } +} +function validate_slots(name, slot, keys) { + for (const slot_key of Object.keys(slot)) { + if (!~keys.indexOf(slot_key)) { + console.warn(`<${name}> received an unexpected slot "${slot_key}".`); + } + } +} +function loop_guard(timeout) { + const start = Date.now(); + return () => { + if (Date.now() - start > timeout) { + throw new Error('Infinite loop detected'); + } + }; +} + +export { set_data_dev as A, destroy_each as B, prop_dev as C, flush as D, set_style as E, getContext as F, setContext as G, svg_element as H, is_function as I, HtmlTag as J, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, empty as f, detach_dev as g, binding_callbacks as h, init as i, element as j, space as k, add_location as l, attr_dev as m, noop as n, onMount as o, src_url_equal as p, set_custom_element_data as q, append_dev as r, safe_not_equal as s, listen_dev as t, run_all as u, validate_slots as v, loop_guard as w, globals as x, validate_each_argument as y, text as z }; diff --git a/Server/public/js/components/join-us-component.js b/Server/public/js/components/join-us-component.js index 51c41ce..2743737 100644 --- a/Server/public/js/components/join-us-component.js +++ b/Server/public/js/components/join-us-component.js @@ -1 +1 @@ -import{S as o,i as t,a as i,b as e,s as r,e as n,n as a,d as s,c as m,o as l,f as c,t as p,g as u,j as g,h as d,k as h,l as f,m as b}from"./index-4348483d.js";import{w as v}from"./index-71440b21.js";import{addMarkersGroups as j,groupsMarkersLayer as k}from"../../../../../../../../../js/groups.js";import{addMarkersCoops as w,coopsMarkersLayer as y}from"../../../../../../../../../js/coops.js";import{addMarkersCommunes as x,communesMarkersLayer as P}from"../../../../../../../../../js/communes.js";import{addMarkersParties as N,partiesMarkersLayer as S}from"../../../../../../../../../js/parties.js";import{loadLocaleContent as T,getData as z}from"../../../../../../../../../js/libraries/serverTools.js";import"../../../../../../../../../js/components/map-component.js";function O(o){let t,i,r,n,a,m,l,v,j,k,w,y,x,P,N,S,T,z,O,U,A,D,H,L,C,G,K,M,E,J,Q,R,W,Y,_,B,q,F,I,V,X,Z,$,oo,to,io,eo,ro,no,ao,so,mo,lo,co,po,uo,go,ho,fo,bo,vo,jo,ko,wo,yo,xo,Po,No,So,To,zo,Oo,Uo,Ao,Do,Ho,Lo,Co,Go,Ko,Mo,Eo,Jo,Qo=o[1].heading+"",Ro=o[1].condition1+"",Wo=o[1].condition2+"",Yo=o[1].condition3+"",_o=o[1].conditionsOutcome+"",Bo=o[1].subheading1+"",qo=o[1].valueProposition1+"",Fo=o[1].valueProposition2+"",Io=o[1].valueProposition3+"",Vo=o[1].valueProposition4+"",Xo=o[1].valueProposition5+"",Zo=o[1].subheading2+"",$o=o[1].findOur+"",ot=o[1].group+"",tt=o[1].commune+"",it=o[1].cooperative+"",et=o[1].or+"",rt=o[1].party+"",nt=o[1].nearYou+"",at=o[1].noneNear+"",st=o[1].WhatsAppGroup+"",mt=o[1].or+"",lt=o[1].DiscordServer+"",ct=o[1].helpStart+"";return{c(){t=c("div"),i=c("div"),r=c("h1"),n=p(Qo),a=u(),m=c("img"),v=u(),j=c("ol"),k=c("li"),w=p(Ro),y=u(),x=c("li"),P=p(Wo),N=u(),S=c("li"),T=p(Yo),z=u(),O=c("p"),U=u(),A=c("h2"),D=p(Bo),H=u(),L=c("ol"),C=c("li"),G=p(qo),K=u(),M=c("li"),E=p(Fo),J=u(),Q=c("li"),R=p(Io),W=u(),Y=c("li"),_=p(Vo),B=u(),q=c("p"),F=p(Xo),I=u(),V=c("h2"),X=p(Zo),Z=u(),$=c("div"),oo=c("p"),to=p($o),io=u(),eo=c("ol"),ro=c("li"),no=c("a"),ao=p(ot),so=p(","),mo=u(),lo=c("li"),co=c("a"),po=p(tt),uo=u(),go=c("li"),ho=c("a"),fo=p(it),bo=u(),vo=p(et),jo=u(),ko=c("li"),wo=c("a"),yo=p(rt),xo=u(),Po=c("p"),No=p(nt),So=u(),To=c("p"),zo=p(at),Oo=u(),Uo=c("a"),Ao=p(st),Do=u(),Ho=p(mt),Lo=u(),Co=c("a"),Go=p(lt),Ko=p(ct),Mo=u(),Eo=c("map-component"),g(m.src,l="/img/common/join-group.svg")||d(m,"src","/img/common/join-group.svg"),d(m,"id","join-group"),d(m,"alt","join group"),d(j,"id","condition-list"),d(L,"id","value-proposition-list"),d(no,"href","/"+o[4]+"/groups"),d(co,"href","/"+o[4]+"/communes"),d(ho,"href","/"+o[4]+"/cooperatives"),d(wo,"href","/"+o[4]+"/parties"),d(eo,"id","entities-list"),d($,"id","call-to-action-list"),d(Uo,"href","https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh"),d(Uo,"target","_blank"),d(Uo,"rel","noreferrer"),d(Co,"href","https://discord.gg/Qk8KUk787z"),d(Co,"target","_blank"),d(Co,"rel","noreferrer"),h(Eo,"id","map"),h(Eo,"callback",Jo=o[6]),d(i,"id","text-container"),d(t,"id","container")},m(o,s){e(o,t,s),f(t,i),f(i,r),f(r,n),f(i,a),f(i,m),f(i,v),f(i,j),f(j,k),f(k,w),f(j,y),f(j,x),f(x,P),f(j,N),f(j,S),f(S,T),f(j,z),f(j,O),O.innerHTML=_o,f(i,U),f(i,A),f(A,D),f(i,H),f(i,L),f(L,C),f(C,G),f(L,K),f(L,M),f(M,E),f(L,J),f(L,Q),f(Q,R),f(L,W),f(L,Y),f(Y,_),f(L,B),f(L,q),f(q,F),f(i,I),f(i,V),f(V,X),f(i,Z),f(i,$),f($,oo),f(oo,to),f($,io),f($,eo),f(eo,ro),f(ro,no),f(no,ao),f(ro,so),f(eo,mo),f(eo,lo),f(lo,co),f(co,po),f(eo,uo),f(eo,go),f(go,ho),f(ho,fo),f(go,bo),f(go,vo),f(eo,jo),f(eo,ko),f(ko,wo),f(wo,yo),f($,xo),f($,Po),f(Po,No),f(i,So),f(i,To),f(To,zo),f(To,Oo),f(To,Uo),f(Uo,Ao),f(To,Do),f(To,Ho),f(To,Lo),f(To,Co),f(Co,Go),f(To,Ko),f(i,Mo),f(i,Eo)},p(o,t){2&t&&Qo!==(Qo=o[1].heading+"")&&b(n,Qo),2&t&&Ro!==(Ro=o[1].condition1+"")&&b(w,Ro),2&t&&Wo!==(Wo=o[1].condition2+"")&&b(P,Wo),2&t&&Yo!==(Yo=o[1].condition3+"")&&b(T,Yo),2&t&&_o!==(_o=o[1].conditionsOutcome+"")&&(O.innerHTML=_o),2&t&&Bo!==(Bo=o[1].subheading1+"")&&b(D,Bo),2&t&&qo!==(qo=o[1].valueProposition1+"")&&b(G,qo),2&t&&Fo!==(Fo=o[1].valueProposition2+"")&&b(E,Fo),2&t&&Io!==(Io=o[1].valueProposition3+"")&&b(R,Io),2&t&&Vo!==(Vo=o[1].valueProposition4+"")&&b(_,Vo),2&t&&Xo!==(Xo=o[1].valueProposition5+"")&&b(F,Xo),2&t&&Zo!==(Zo=o[1].subheading2+"")&&b(X,Zo),2&t&&$o!==($o=o[1].findOur+"")&&b(to,$o),2&t&&ot!==(ot=o[1].group+"")&&b(ao,ot),2&t&&tt!==(tt=o[1].commune+"")&&b(po,tt),2&t&&it!==(it=o[1].cooperative+"")&&b(fo,it),2&t&&et!==(et=o[1].or+"")&&b(vo,et),2&t&&rt!==(rt=o[1].party+"")&&b(yo,rt),2&t&&nt!==(nt=o[1].nearYou+"")&&b(No,nt),2&t&&at!==(at=o[1].noneNear+"")&&b(zo,at),2&t&&st!==(st=o[1].WhatsAppGroup+"")&&b(Ao,st),2&t&&mt!==(mt=o[1].or+"")&&b(Ho,mt),2&t&<!==(lt=o[1].DiscordServer+"")&&b(Go,lt),2&t&&ct!==(ct=o[1].helpStart+"")&&b(Ko,ct),2&t&&Jo!==(Jo=o[6])&&h(Eo,"callback",Jo)},d(o){o&&s(t)}}}function U(o){let t,i=7==o[0]&&O(o);return{c(){i&&i.c(),t=n()},m(o,r){i&&i.m(o,r),e(o,t,r)},p(o,e){7==o[0]?i?i.p(o,e):(i=O(o),i.c(),i.m(t.parentNode,t)):i&&(i.d(1),i=null)},d(o){i&&i.d(o),o&&s(t)}}}function A(o){let t,i=o[0],m=U(o);return{c(){m.c(),t=n(),this.c=a},m(o,i){m.m(o,i),e(o,t,i)},p(o,[e]){1&e&&r(i,i=o[0])?(m.d(1),m=U(o),m.c(),m.m(t.parentNode,t)):m.p(o,e)},i:a,o:a,d(o){o&&s(t),m.d(o)}}}function D(o,t,i){let e,r,n=v(0);m(o,n,(o=>i(0,e=o)));let a,s,c=v({});m(o,c,(o=>i(1,r=o))),T(c,"groups-component",n),T(c,"communes-component",n),T(c,"cooperatives-component",n),T(c,"parties-component",n),T(c,"countries",n);let p=T(c,"join-us-component",n);function u(o,t,i){let e=o([22,0],2);j(a,s,e,t,i),x(e,t,i),w(e,t,i),N(e,t,i);let r={Groups:k,Communes:P,Coops:y,Parties:S};L.control.layers(null,r).addTo(e)}z("/assets/groups.json",(o=>{a=JSON.parse(o),s={};for(let o of a){let t=o.country;null==o.contact&&(o.contact="https://discord.gg/Qk8KUk787z"),t in s?s[t].push(o):s[t]=[o]}n.update((o=>o+1))})),l((()=>{}));return[e,r,n,c,p,u,o=>u(o,r,p)]}class H extends o{constructor(o){super(),this.shadowRoot.innerHTML="",t(this,{target:this.shadowRoot,props:i(this.attributes),customElement:!0},D,A,r,{},null),o&&o.target&&e(o.target,this,o.anchor)}}customElements.define("join-us-component",H);export{H as default}; +import{S as o,i as t,a as i,b as e,s as r,e as n,n as s,d as a,c as m,o as l,g as c,t as p,h as u,k as g,j as d,l as h,m as f,q as b}from"./index-8c09578c.js";import{w as v}from"./index-77787e10.js";import{loadLocaleContent as k,getData as j}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as w}from"../../../../../../../../../js/libraries/mapTools.js";import{addGroupPinContent as y,addCommunePinContent as x,addCoopPinContent as P,addPartyPinContent as T}from"../../../../../../../../../js/mapFuncs.js";import"../../../../../../../../../js/components/map-component.js";function A(o){let t,i,r,n,s,m,l,v,k,j,w,y,x,P,T,A,N,S,z,D,O,U,C,H,L,F,K,M,B,E,G,J,Q,R,W,Y,_,q,I,V,X,Z,$,oo,to,io,eo,ro,no,so,ao,mo,lo,co,po,uo,go,ho,fo,bo,vo,ko,jo,wo,yo,xo,Po,To,Ao,No,So,zo,Do,Oo,Uo,Co,Ho,Lo,Fo,Ko,Mo,Bo,Eo,Go=o[1].heading+"",Jo=o[1].condition1+"",Qo=o[1].condition2+"",Ro=o[1].condition3+"",Wo=o[1].conditionsOutcome+"",Yo=o[1].subheading1+"",_o=o[1].valueProposition1+"",qo=o[1].valueProposition2+"",Io=o[1].valueProposition3+"",Vo=o[1].valueProposition4+"",Xo=o[1].valueProposition5+"",Zo=o[1].subheading2+"",$o=o[1].findOur+"",ot=o[1].group+"",tt=o[1].commune+"",it=o[1].cooperative+"",et=o[1].or+"",rt=o[1].party+"",nt=o[1].nearYou+"",st=o[1].noneNear+"",at=o[1].WhatsAppGroup+"",mt=o[1].or+"",lt=o[1].DiscordServer+"",ct=o[1].helpStart+"";return{c(){t=c("div"),i=c("div"),r=c("h1"),n=p(Go),s=u(),m=c("img"),v=u(),k=c("ol"),j=c("li"),w=p(Jo),y=u(),x=c("li"),P=p(Qo),T=u(),A=c("li"),N=p(Ro),S=u(),z=c("p"),D=u(),O=c("h2"),U=p(Yo),C=u(),H=c("ol"),L=c("li"),F=p(_o),K=u(),M=c("li"),B=p(qo),E=u(),G=c("li"),J=p(Io),Q=u(),R=c("li"),W=p(Vo),Y=u(),_=c("p"),q=p(Xo),I=u(),V=c("h2"),X=p(Zo),Z=u(),$=c("div"),oo=c("p"),to=p($o),io=u(),eo=c("ol"),ro=c("li"),no=c("a"),so=p(ot),ao=p(","),mo=u(),lo=c("li"),co=c("a"),po=p(tt),uo=u(),go=c("li"),ho=c("a"),fo=p(it),bo=u(),vo=p(et),ko=u(),jo=c("li"),wo=c("a"),yo=p(rt),xo=u(),Po=c("p"),To=p(nt),Ao=u(),No=c("p"),So=p(st),zo=u(),Do=c("a"),Oo=p(at),Uo=u(),Co=p(mt),Ho=u(),Lo=c("a"),Fo=p(lt),Ko=p(ct),Mo=u(),Bo=c("map-component"),g(m.src,l="/img/common/join-group.svg")||d(m,"src","/img/common/join-group.svg"),d(m,"id","join-group"),d(m,"alt","join group"),d(k,"id","condition-list"),d(H,"id","value-proposition-list"),d(no,"href","/"+o[4]+"/groups"),d(co,"href","/"+o[4]+"/communes"),d(ho,"href","/"+o[4]+"/cooperatives"),d(wo,"href","/"+o[4]+"/parties"),d(eo,"id","entities-list"),d($,"id","call-to-action-list"),d(Do,"href","https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh"),d(Do,"target","_blank"),d(Do,"rel","noreferrer"),d(Lo,"href","https://discord.gg/Qk8KUk787z"),d(Lo,"target","_blank"),d(Lo,"rel","noreferrer"),h(Bo,"id","map"),h(Bo,"callback",Eo=o[6]),h(Bo,"colors",["#23AC20","#CA2437","#217BC9","#FFD326"]),d(i,"id","text-container"),d(t,"id","container")},m(o,a){e(o,t,a),f(t,i),f(i,r),f(r,n),f(i,s),f(i,m),f(i,v),f(i,k),f(k,j),f(j,w),f(k,y),f(k,x),f(x,P),f(k,T),f(k,A),f(A,N),f(k,S),f(k,z),z.innerHTML=Wo,f(i,D),f(i,O),f(O,U),f(i,C),f(i,H),f(H,L),f(L,F),f(H,K),f(H,M),f(M,B),f(H,E),f(H,G),f(G,J),f(H,Q),f(H,R),f(R,W),f(H,Y),f(H,_),f(_,q),f(i,I),f(i,V),f(V,X),f(i,Z),f(i,$),f($,oo),f(oo,to),f($,io),f($,eo),f(eo,ro),f(ro,no),f(no,so),f(ro,ao),f(eo,mo),f(eo,lo),f(lo,co),f(co,po),f(eo,uo),f(eo,go),f(go,ho),f(ho,fo),f(go,bo),f(go,vo),f(eo,ko),f(eo,jo),f(jo,wo),f(wo,yo),f($,xo),f($,Po),f(Po,To),f(i,Ao),f(i,No),f(No,So),f(No,zo),f(No,Do),f(Do,Oo),f(No,Uo),f(No,Co),f(No,Ho),f(No,Lo),f(Lo,Fo),f(No,Ko),f(i,Mo),f(i,Bo)},p(o,t){2&t&&Go!==(Go=o[1].heading+"")&&b(n,Go),2&t&&Jo!==(Jo=o[1].condition1+"")&&b(w,Jo),2&t&&Qo!==(Qo=o[1].condition2+"")&&b(P,Qo),2&t&&Ro!==(Ro=o[1].condition3+"")&&b(N,Ro),2&t&&Wo!==(Wo=o[1].conditionsOutcome+"")&&(z.innerHTML=Wo),2&t&&Yo!==(Yo=o[1].subheading1+"")&&b(U,Yo),2&t&&_o!==(_o=o[1].valueProposition1+"")&&b(F,_o),2&t&&qo!==(qo=o[1].valueProposition2+"")&&b(B,qo),2&t&&Io!==(Io=o[1].valueProposition3+"")&&b(J,Io),2&t&&Vo!==(Vo=o[1].valueProposition4+"")&&b(W,Vo),2&t&&Xo!==(Xo=o[1].valueProposition5+"")&&b(q,Xo),2&t&&Zo!==(Zo=o[1].subheading2+"")&&b(X,Zo),2&t&&$o!==($o=o[1].findOur+"")&&b(to,$o),2&t&&ot!==(ot=o[1].group+"")&&b(so,ot),2&t&&tt!==(tt=o[1].commune+"")&&b(po,tt),2&t&&it!==(it=o[1].cooperative+"")&&b(fo,it),2&t&&et!==(et=o[1].or+"")&&b(vo,et),2&t&&rt!==(rt=o[1].party+"")&&b(yo,rt),2&t&&nt!==(nt=o[1].nearYou+"")&&b(To,nt),2&t&&st!==(st=o[1].noneNear+"")&&b(So,st),2&t&&at!==(at=o[1].WhatsAppGroup+"")&&b(Oo,at),2&t&&mt!==(mt=o[1].or+"")&&b(Co,mt),2&t&<!==(lt=o[1].DiscordServer+"")&&b(Fo,lt),2&t&&ct!==(ct=o[1].helpStart+"")&&b(Ko,ct),2&t&&Eo!==(Eo=o[6])&&h(Bo,"callback",Eo)},d(o){o&&a(t)}}}function N(o){let t,i=10==o[0]&&A(o);return{c(){i&&i.c(),t=n()},m(o,r){i&&i.m(o,r),e(o,t,r)},p(o,e){10==o[0]?i?i.p(o,e):(i=A(o),i.c(),i.m(t.parentNode,t)):i&&(i.d(1),i=null)},d(o){i&&i.d(o),o&&a(t)}}}function S(o){let t,i=o[0],m=N(o);return{c(){m.c(),t=n(),this.c=s},m(o,i){m.m(o,i),e(o,t,i)},p(o,[e]){1&e&&r(i,i=o[0])?(m.d(1),m=N(o),m.c(),m.m(t.parentNode,t)):m.p(o,e)},i:s,o:s,d(o){o&&a(t),m.d(o)}}}function z(o,t,i){let e,r,n=v(0);m(o,n,(o=>i(0,e=o)));let s=v({});m(o,s,(o=>i(1,r=o)));let a={},c={};k(s,"groups-component",n),k(s,"communes-component",n),k(s,"cooperatives-component",n),k(s,"parties-component",n),k(s,"countries",n);let p=k(s,"join-us-component",n),u=(o,t)=>{a[t]=JSON.parse(o),c[t]={};for(let o of a[t]){let i=o.country;null==o.contact&&(o.contact="https://discord.gg/Qk8KUk787z"),i in c[t]?c[t][i].push(o):c[t][i]=[o]}n.update((o=>o+1))};function g(o,t,i){let e=o([22,0],2),r=w(a.groups,c.groups,e,t,i,y,"green"),n=w(a.communes,c.communes,e,t,i,x,"red"),s=w(a.cooperatives,c.cooperatives,e,t,i,P,"blue"),m=w(a.parties,c.parties,e,t,i,T,"gold"),l={};l[t.groups]=r,l[t.communes]=n,l[t.cooperatives]=s,l[t.parties]=m,L.control.layers(null,l).addTo(e)}j("/assets/groups.json",(o=>u(o,"groups"))),j("/assets/communes.json",(o=>u(o,"communes"))),j("/assets/cooperatives.json",(o=>u(o,"cooperatives"))),j("/assets/parties.json",(o=>u(o,"parties"))),l((()=>{}));return[e,r,n,s,p,g,o=>g(o,r,p)]}class D extends o{constructor(o){super(),this.shadowRoot.innerHTML="",t(this,{target:this.shadowRoot,props:i(this.attributes),customElement:!0},z,S,r,{},null),o&&o.target&&e(o.target,this,o.anchor)}}customElements.define("join-us-component",D);export{D as default}; diff --git a/Server/public/js/components/landing-component.js b/Server/public/js/components/landing-component.js index 01fc18b..5ea6676 100644 --- a/Server/public/js/components/landing-component.js +++ b/Server/public/js/components/landing-component.js @@ -1 +1 @@ -import{S as t,i as o,a as i,b as e,s as r,e as n,n as s,d as m,c as a,o as c,w as p,f as g,g as d,t as l,h as u,j as h,v as f,k as v,l as w,m as x}from"./index-4348483d.js";import{w as b}from"./index-71440b21.js";import{addMarkersGroups as j,groupsMarkersLayer as T}from"../../../../../../../../../js/groups.js";import{addMarkersCoops as k,coopsMarkersLayer as y}from"../../../../../../../../../js/coops.js";import{addMarkersCommunes as U,communesMarkersLayer as z}from"../../../../../../../../../js/communes.js";import{addMarkersParties as N,partiesMarkersLayer as C}from"../../../../../../../../../js/parties.js";import{getData as A,loadLocaleContent as E}from"../../../../../../../../../js/libraries/serverTools.js";import"../../../../../../../../../js/components/map-component.js";function F(t){let o,i,r,n,s,a,c,p,b,j,T,k,y,U,z,N,C,L,A,E,F,H,K,M,Q,R,S,W,B,D,J,O,_,q,G,I,P,V,X,Y,Z,$,tt,ot,it,et,rt,nt,st,mt,at,ct,pt,gt,dt,lt,ut,ht,ft,vt,wt,xt,bt,jt,Tt,kt,yt,Ut=t[3].top+"",zt=t[3].groupsTitle+"",Nt=t[3].groupsText+"",Ct=t[3].communesTitle+"",Lt=t[3].communesText+"",At=t[3].cooperativesTitle+"",Et=t[3].cooperativesText+"",Ft=t[3].partiesTitle+"",Ht=t[3].partiesText+"",Kt=t[3].findUs+"",Mt=t[3].whatNow+"",Qt=t[3].joinUs+"",Rt=t[3].talkWithUs+"";return{c(){o=g("div"),i=g("picture"),i.innerHTML=' \n \n crowd',r=d(),n=g("div"),s=g("p"),a=l(Ut),c=d(),p=g("div"),b=g("div"),j=g("a"),T=g("h2"),k=l(zt),y=d(),U=g("img"),N=d(),C=g("p"),L=l(Nt),A=d(),E=g("div"),F=g("a"),H=g("h2"),K=l(Ct),M=d(),Q=g("img"),S=d(),W=g("p"),B=l(Lt),D=d(),J=g("div"),O=g("a"),_=g("h2"),q=l(At),G=d(),I=g("img"),V=d(),X=g("p"),Y=l(Et),Z=d(),$=g("div"),tt=g("a"),ot=g("h2"),it=l(Ft),et=d(),rt=g("img"),st=d(),mt=g("p"),at=l(Ht),ct=d(),pt=g("h1"),gt=l(Kt),dt=d(),lt=g("map-component"),ht=d(),ft=g("h1"),vt=l(Mt),wt=d(),xt=g("div"),bt=g("a"),jt=l(Qt),Tt=d(),kt=g("a"),yt=l(Rt),u(j,"href","/"+t[6]+"/groups"),u(U,"id","groups-img"),h(U.src,z="/img/common/groups.svg")||u(U,"src","/img/common/groups.svg"),u(U,"alt","groups"),u(F,"href","/"+t[6]+"/communes"),u(Q,"id","communes-img"),h(Q.src,R="/img/common/commune.svg")||u(Q,"src","/img/common/commune.svg"),u(Q,"alt","communes"),u(O,"href","/"+t[6]+"/coops"),u(I,"id","coops-img"),h(I.src,P="/img/common/coops.svg")||u(I,"src","/img/common/coops.svg"),u(I,"alt","coops"),u(tt,"href","/"+t[6]+"/parties"),u(rt,"id","parties-img"),h(rt.src,nt="/img/common/parties.svg")||u(rt,"src","/img/common/parties.svg"),u(rt,"alt","coops"),u(p,"id","container-grid"),f(p,"--grid-width",t[1]),u(pt,"id","find-us"),v(lt,"id","map"),v(lt,"callback",ut=t[9]),v(lt,"colors",["#23AC20","#CA2437","#217BC9","#FFD326"]),u(bt,"class","link-button"),u(bt,"href","/"+t[6]+"/join-us"),u(kt,"class","link-button"),u(kt,"href","https://discord.gg/Qk8KUk787z"),u(kt,"target","_blank"),u(kt,"rel","noreferrer"),u(xt,"id","action-container"),u(n,"id","text-container"),u(o,"id","container")},m(m,g){e(m,o,g),w(o,i),w(o,r),w(o,n),w(n,s),w(s,a),w(n,c),w(n,p),w(p,b),w(b,j),w(j,T),w(T,k),w(b,y),w(b,U),w(b,N),w(b,C),w(C,L),w(p,A),w(p,E),w(E,F),w(F,H),w(H,K),w(E,M),w(E,Q),w(E,S),w(E,W),w(W,B),w(p,D),w(p,J),w(J,O),w(O,_),w(_,q),w(J,G),w(J,I),w(J,V),w(J,X),w(X,Y),w(p,Z),w(p,$),w($,tt),w(tt,ot),w(ot,it),w($,et),w($,rt),w($,st),w($,mt),w(mt,at),t[8](p),w(n,ct),w(n,pt),w(pt,gt),w(n,dt),w(n,lt),w(n,ht),w(n,ft),w(ft,vt),w(n,wt),w(n,xt),w(xt,bt),w(bt,jt),w(xt,Tt),w(xt,kt),w(kt,yt)},p(t,o){8&o&&Ut!==(Ut=t[3].top+"")&&x(a,Ut),8&o&&zt!==(zt=t[3].groupsTitle+"")&&x(k,zt),8&o&&Nt!==(Nt=t[3].groupsText+"")&&x(L,Nt),8&o&&Ct!==(Ct=t[3].communesTitle+"")&&x(K,Ct),8&o&&Lt!==(Lt=t[3].communesText+"")&&x(B,Lt),8&o&&At!==(At=t[3].cooperativesTitle+"")&&x(q,At),8&o&&Et!==(Et=t[3].cooperativesText+"")&&x(Y,Et),8&o&&Ft!==(Ft=t[3].partiesTitle+"")&&x(it,Ft),8&o&&Ht!==(Ht=t[3].partiesText+"")&&x(at,Ht),2&o&&f(p,"--grid-width",t[1]),8&o&&Kt!==(Kt=t[3].findUs+"")&&x(gt,Kt),8&o&&ut!==(ut=t[9])&&v(lt,"callback",ut),8&o&&Mt!==(Mt=t[3].whatNow+"")&&x(vt,Mt),8&o&&Qt!==(Qt=t[3].joinUs+"")&&x(jt,Qt),8&o&&Rt!==(Rt=t[3].talkWithUs+"")&&x(yt,Rt)},d(i){i&&m(o),t[8](null)}}}function H(t){let o,i=7==t[2]&&F(t);return{c(){i&&i.c(),o=n()},m(t,r){i&&i.m(t,r),e(t,o,r)},p(t,e){7==t[2]?i?i.p(t,e):(i=F(t),i.c(),i.m(o.parentNode,o)):i&&(i.d(1),i=null)},d(t){i&&i.d(t),t&&m(o)}}}function K(t){let o,i=t[2],a=H(t);return{c(){a.c(),o=n(),this.c=s},m(t,i){a.m(t,i),e(t,o,i)},p(t,[e]){4&e&&r(i,i=t[2])?(a.d(1),a=H(t),a.c(),a.m(o.parentNode,o)):a.p(t,e)},i:s,o:s,d(t){t&&m(o),a.d(t)}}}function M(t,o,i){let e,r,n,s,m=b(0);a(t,m,(t=>i(2,e=t)));let g,d,l=b({});function u(t){i(1,s="1fr 1fr")}a(t,l,(t=>i(3,r=t)));A("/assets/groups.json",(t=>{g=JSON.parse(t),d={};for(let t of g){let o=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),o in d?d[o].push(t):d[o]=[t]}m.update((t=>t+1))})),E(l,"groups-component",m),E(l,"communes-component",m),E(l,"cooperatives-component",m),E(l,"parties-component",m),E(l,"countries",m);let h=E(l,"landing-component",m,u);function f(t,o,i){let e=t([22,0],2);j(g,d,e,o,i),U(e,o,i),k(e,o,i),N(e,o,i);let r={};r[o.groups]=T,r[o.communes]=z,r[o.cooperatives]=y,r[o.parties]=C,L.control.layers(null,r).addTo(e)}u(),c((()=>{}));return[n,s,e,r,m,l,h,f,function(t){p[t?"unshift":"push"]((()=>{n=t,i(0,n)}))},t=>f(t,r,h)]}class Q extends t{constructor(t){super(),this.shadowRoot.innerHTML="",o(this,{target:this.shadowRoot,props:i(this.attributes),customElement:!0},M,K,r,{},null),t&&t.target&&e(t.target,this,t.anchor)}}customElements.define("landing-component",Q);export{Q as default}; +import{S as t,i as e,a as o,b as i,s as r,e as s,n,d as a,c as m,o as c,f as p,g,h as d,t as l,j as u,k as h,w as f,l as v,m as w,q as x}from"./index-8c09578c.js";import{w as b}from"./index-77787e10.js";import{getData as T,loadLocaleContent as j}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as k}from"../../../../../../../../../js/libraries/mapTools.js";import{addGroupPinContent as y,addCommunePinContent as U,addCoopPinContent as z,addPartyPinContent as N}from"../../../../../../../../../js/mapFuncs.js";import"../../../../../../../../../js/components/map-component.js";function C(t){let e,o,r,s,n,m,c,p,b,T,j,k,y,U,z,N,C,F,L,A,E,H,K,M,Q,R,S,W,q,B,D,J,O,_,G,I,P,V,X,Y,Z,$,tt,et,ot,it,rt,st,nt,at,mt,ct,pt,gt,dt,lt,ut,ht,ft,vt,wt,xt,bt,Tt,jt,kt,yt,Ut=t[3].top+"",zt=t[3].groupsTitle+"",Nt=t[3].groupsText+"",Ct=t[3].partiesTitle+"",Ft=t[3].partiesText+"",Lt=t[3].cooperativesTitle+"",At=t[3].cooperativesText+"",Et=t[3].communesTitle+"",Ht=t[3].communesText+"",Kt=t[3].findUs+"",Mt=t[3].whatNow+"",Qt=t[3].joinUs+"",Rt=t[3].talkWithUs+"";return{c(){e=g("div"),o=g("picture"),o.innerHTML=' \n \n crowd',r=d(),s=g("div"),n=g("p"),m=l(Ut),c=d(),p=g("div"),b=g("div"),T=g("a"),j=g("h2"),k=l(zt),y=d(),U=g("img"),N=d(),C=g("p"),F=l(Nt),L=d(),A=g("div"),E=g("a"),H=g("h2"),K=l(Ct),M=d(),Q=g("img"),S=d(),W=g("p"),q=l(Ft),B=d(),D=g("div"),J=g("a"),O=g("h2"),_=l(Lt),G=d(),I=g("img"),V=d(),X=g("p"),Y=l(At),Z=d(),$=g("div"),tt=g("a"),et=g("h2"),ot=l(Et),it=d(),rt=g("img"),nt=d(),at=g("p"),mt=l(Ht),ct=d(),pt=g("h1"),gt=l(Kt),dt=d(),lt=g("map-component"),ht=d(),ft=g("h1"),vt=l(Mt),wt=d(),xt=g("div"),bt=g("a"),Tt=l(Qt),jt=d(),kt=g("a"),yt=l(Rt),u(T,"href","/"+t[6]+"/groups"),u(U,"id","groups-img"),h(U.src,z="/img/common/groups.svg")||u(U,"src","/img/common/groups.svg"),u(U,"alt","groups"),u(E,"href","/"+t[6]+"/parties"),u(Q,"id","parties-img"),h(Q.src,R="/img/common/parties.svg")||u(Q,"src","/img/common/parties.svg"),u(Q,"alt","coops"),u(J,"href","/"+t[6]+"/coops"),u(I,"id","coops-img"),h(I.src,P="/img/common/coops.svg")||u(I,"src","/img/common/coops.svg"),u(I,"alt","coops"),u(tt,"href","/"+t[6]+"/communes"),u(rt,"id","communes-img"),h(rt.src,st="/img/common/communes.svg")||u(rt,"src","/img/common/communes.svg"),u(rt,"alt","communes"),u(p,"id","container-grid"),f(p,"--grid-width",t[1]),u(pt,"id","find-us"),v(lt,"id","map"),v(lt,"callback",ut=t[9]),v(lt,"colors",["#23AC20","#CA2437","#217BC9","#FFD326"]),u(bt,"class","link-button"),u(bt,"href","/"+t[6]+"/join-us"),u(kt,"class","link-button"),u(kt,"href","https://discord.gg/Qk8KUk787z"),u(kt,"target","_blank"),u(kt,"rel","noreferrer"),u(xt,"id","action-container"),u(s,"id","text-container"),u(e,"id","container")},m(a,g){i(a,e,g),w(e,o),w(e,r),w(e,s),w(s,n),w(n,m),w(s,c),w(s,p),w(p,b),w(b,T),w(T,j),w(j,k),w(b,y),w(b,U),w(b,N),w(b,C),w(C,F),w(p,L),w(p,A),w(A,E),w(E,H),w(H,K),w(A,M),w(A,Q),w(A,S),w(A,W),w(W,q),w(p,B),w(p,D),w(D,J),w(J,O),w(O,_),w(D,G),w(D,I),w(D,V),w(D,X),w(X,Y),w(p,Z),w(p,$),w($,tt),w(tt,et),w(et,ot),w($,it),w($,rt),w($,nt),w($,at),w(at,mt),t[8](p),w(s,ct),w(s,pt),w(pt,gt),w(s,dt),w(s,lt),w(s,ht),w(s,ft),w(ft,vt),w(s,wt),w(s,xt),w(xt,bt),w(bt,Tt),w(xt,jt),w(xt,kt),w(kt,yt)},p(t,e){8&e&&Ut!==(Ut=t[3].top+"")&&x(m,Ut),8&e&&zt!==(zt=t[3].groupsTitle+"")&&x(k,zt),8&e&&Nt!==(Nt=t[3].groupsText+"")&&x(F,Nt),8&e&&Ct!==(Ct=t[3].partiesTitle+"")&&x(K,Ct),8&e&&Ft!==(Ft=t[3].partiesText+"")&&x(q,Ft),8&e&&Lt!==(Lt=t[3].cooperativesTitle+"")&&x(_,Lt),8&e&&At!==(At=t[3].cooperativesText+"")&&x(Y,At),8&e&&Et!==(Et=t[3].communesTitle+"")&&x(ot,Et),8&e&&Ht!==(Ht=t[3].communesText+"")&&x(mt,Ht),2&e&&f(p,"--grid-width",t[1]),8&e&&Kt!==(Kt=t[3].findUs+"")&&x(gt,Kt),8&e&&ut!==(ut=t[9])&&v(lt,"callback",ut),8&e&&Mt!==(Mt=t[3].whatNow+"")&&x(vt,Mt),8&e&&Qt!==(Qt=t[3].joinUs+"")&&x(Tt,Qt),8&e&&Rt!==(Rt=t[3].talkWithUs+"")&&x(yt,Rt)},d(o){o&&a(e),t[8](null)}}}function F(t){let e,o=10==t[2]&&C(t);return{c(){o&&o.c(),e=s()},m(t,r){o&&o.m(t,r),i(t,e,r)},p(t,i){10==t[2]?o?o.p(t,i):(o=C(t),o.c(),o.m(e.parentNode,e)):o&&(o.d(1),o=null)},d(t){o&&o.d(t),t&&a(e)}}}function A(t){let e,o=t[2],m=F(t);return{c(){m.c(),e=s(),this.c=n},m(t,o){m.m(t,o),i(t,e,o)},p(t,[i]){4&i&&r(o,o=t[2])?(m.d(1),m=F(t),m.c(),m.m(e.parentNode,e)):m.p(t,i)},i:n,o:n,d(t){t&&a(e),m.d(t)}}}function E(t,e,o){let i,r,s,n,a=b(0);m(t,a,(t=>o(2,i=t)));let g=b({});m(t,g,(t=>o(3,r=t)));let d={},l={};function u(t){o(1,n="1fr 1fr")}let h=(t,e)=>{d[e]=JSON.parse(t),l[e]={};for(let t of d[e]){let o=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),o in l[e]?l[e][o].push(t):l[e][o]=[t]}a.update((t=>t+1))};T("/assets/groups.json",(t=>h(t,"groups"))),T("/assets/communes.json",(t=>h(t,"communes"))),T("/assets/cooperatives.json",(t=>h(t,"cooperatives"))),T("/assets/parties.json",(t=>h(t,"parties"))),j(g,"groups-component",a),j(g,"communes-component",a),j(g,"cooperatives-component",a),j(g,"parties-component",a),j(g,"countries",a);let f=j(g,"landing-component",a,u);function v(t,e,o){let i=t([22,0],2),r=k(d.groups,l.groups,i,e,o,y,"green"),s=k(d.communes,l.communes,i,e,o,U,"red"),n=k(d.cooperatives,l.cooperatives,i,e,o,z,"blue"),a=k(d.parties,l.parties,i,e,o,N,"gold"),m={};m[e.groups]=r,m[e.communes]=s,m[e.cooperatives]=n,m[e.parties]=a,L.control.layers(null,m).addTo(i)}u(),c((()=>{}));return[s,n,i,r,a,g,f,v,function(t){p[t?"unshift":"push"]((()=>{s=t,o(0,s)}))},t=>v(t,r,f)]}class H extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},E,A,r,{},null),t&&t.target&&i(t.target,this,t.anchor)}}customElements.define("landing-component",H);export{H as default}; diff --git a/Server/public/js/components/legend-component.js b/Server/public/js/components/legend-component.js index 6a643c7..9646ee3 100644 --- a/Server/public/js/components/legend-component.js +++ b/Server/public/js/components/legend-component.js @@ -1 +1 @@ -import{S as t,i as e,a as s,b as o,u as n,s as r,f as i,n as a,h as l,d as c,p,o as u,g as h,t as d,v as m,l as f,q as g,m as y,w as $}from"./index-4348483d.js";import{pullLegendData as b}from"../../../../../../../../../js/predict/charts.js";function w(t,e,s){const o=t.slice();return o[10]=e[s],o[11]=e,o[12]=s,o}function x(t){let e,s,n,r,a,p,u,$,b=t[10].name+"",w=t[12];const x=()=>t[6](e,w),k=()=>t[6](null,w);function v(){return t[7](t[12])}return{c(){e=i("button"),s=i("div"),n=h(),r=i("span"),a=d(b),p=h(),l(s,"class","marker"),m(s,"background-color",t[10].color)},m(t,i){o(t,e,i),f(e,s),f(e,n),f(e,r),f(r,a),f(e,p),x(),u||($=g(e,"click",v),u=!0)},p(e,o){t=e,1&o&&m(s,"background-color",t[10].color),1&o&&b!==(b=t[10].name+"")&&y(a,b),w!==t[12]&&(k(),w=t[12],x())},d(t){t&&c(e),k(),u=!1,$()}}}function k(t){let e,s=t[0],n=[];for(let e=0;et._id)),c=a[t];for(let t=0;t{c()}));return t.$$set=t=>{"option"in t&&s(4,n=t.option),"chart"in t&&s(5,r=t.chart),"data"in t&&s(3,i=t.data)},[a,l,p,i,n,r,function(t,e){$[t?"unshift":"push"]((()=>{l[e]=t,s(1,l)}))},t=>p(t)]}class j extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:s(this.attributes),customElement:!0},v,k,r,{option:4,chart:5,data:3},null),t&&(t.target&&o(t.target,this,t.anchor),t.props&&(this.$set(t.props),n()))}static get observedAttributes(){return["option","chart","data"]}get option(){return this.$$.ctx[4]}set option(t){this.$$set({option:t}),n()}get chart(){return this.$$.ctx[5]}set chart(t){this.$$set({chart:t}),n()}get data(){return this.$$.ctx[3]}set data(t){this.$$set({data:t}),n()}}customElements.define("legend-component",j);export{j as default}; +import{S as t,i as e,a as s,b as o,v as n,s as r,g as i,n as a,j as l,d as c,u as p,o as u,h,t as d,w as m,m as f,p as g,q as y,f as $}from"./index-8c09578c.js";import{pullLegendData as b}from"../../../../../../../../../js/predict/charts.js";function w(t,e,s){const o=t.slice();return o[10]=e[s],o[11]=e,o[12]=s,o}function x(t){let e,s,n,r,a,p,u,$,b=t[10].name+"",w=t[12];const x=()=>t[6](e,w),k=()=>t[6](null,w);function j(){return t[7](t[12])}return{c(){e=i("button"),s=i("div"),n=h(),r=i("span"),a=d(b),p=h(),l(s,"class","marker"),m(s,"background-color",t[10].color)},m(t,i){o(t,e,i),f(e,s),f(e,n),f(e,r),f(r,a),f(e,p),x(),u||($=g(e,"click",j),u=!0)},p(e,o){t=e,1&o&&m(s,"background-color",t[10].color),1&o&&b!==(b=t[10].name+"")&&y(a,b),w!==t[12]&&(k(),w=t[12],x())},d(t){t&&c(e),k(),u=!1,$()}}}function k(t){let e,s=t[0],n=[];for(let e=0;et._id)),c=a[t];for(let t=0;t{c()}));return t.$$set=t=>{"option"in t&&s(4,n=t.option),"chart"in t&&s(5,r=t.chart),"data"in t&&s(3,i=t.data)},[a,l,p,i,n,r,function(t,e){$[t?"unshift":"push"]((()=>{l[e]=t,s(1,l)}))},t=>p(t)]}class v extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:s(this.attributes),customElement:!0},j,k,r,{option:4,chart:5,data:3},null),t&&(t.target&&o(t.target,this,t.anchor),t.props&&(this.$set(t.props),n()))}static get observedAttributes(){return["option","chart","data"]}get option(){return this.$$.ctx[4]}set option(t){this.$$set({option:t}),n()}get chart(){return this.$$.ctx[5]}set chart(t){this.$$set({chart:t}),n()}get data(){return this.$$.ctx[3]}set data(t){this.$$set({data:t}),n()}}customElements.define("legend-component",v);export{v as default}; diff --git a/Server/public/js/components/loadscreen-component.js b/Server/public/js/components/loadscreen-component.js index 4feb1ba..614bede 100644 --- a/Server/public/js/components/loadscreen-component.js +++ b/Server/public/js/components/loadscreen-component.js @@ -1 +1 @@ -import{S as t,i as s,a as e,b as n,s as o,f as a,n as i,h as d,v as r,d as u,o as c,w as l}from"./index-4348483d.js";function h(t){let s;return{c(){s=a("div"),this.c=i,d(s,"id","loadscreen"),r(s,"width","100%"),r(s,"height","100%"),r(s,"background","white"),r(s,"position","absolute"),r(s,"z-index","100000")},m(e,o){n(e,s,o),t[1](s)},p:i,i:i,o:i,d(e){e&&u(s),t[1](null)}}}function p(t,s,e){let n;return c((()=>{window.addEventListener("load",(function(){e(0,n.parentNode.host.style.display="none",n)}))})),[n,function(t){l[t?"unshift":"push"]((()=>{n=t,e(0,n)}))}]}class f extends t{constructor(t){super(),s(this,{target:this.shadowRoot,props:e(this.attributes),customElement:!0},p,h,o,{},null),t&&t.target&&n(t.target,this,t.anchor)}}customElements.define("loadscreen-component",f);export{f as default}; +import{S as t,i as s,a as e,b as n,s as o,g as a,n as i,j as r,w as d,d as c,o as u,f as l}from"./index-8c09578c.js";function h(t){let s;return{c(){s=a("div"),this.c=i,r(s,"id","loadscreen"),d(s,"width","100%"),d(s,"height","100%"),d(s,"background","white"),d(s,"position","absolute"),d(s,"z-index","100000")},m(e,o){n(e,s,o),t[1](s)},p:i,i:i,o:i,d(e){e&&c(s),t[1](null)}}}function p(t,s,e){let n;return u((()=>{window.addEventListener("load",(function(){e(0,n.parentNode.host.style.display="none",n)}))})),[n,function(t){l[t?"unshift":"push"]((()=>{n=t,e(0,n)}))}]}class f extends t{constructor(t){super(),s(this,{target:this.shadowRoot,props:e(this.attributes),customElement:!0},p,h,o,{},null),t&&t.target&&n(t.target,this,t.anchor)}}customElements.define("loadscreen-component",f);export{f as default}; diff --git a/Server/public/js/components/manifesto-component.js b/Server/public/js/components/manifesto-component.js index e0230b8..2bdf1eb 100644 --- a/Server/public/js/components/manifesto-component.js +++ b/Server/public/js/components/manifesto-component.js @@ -1 +1 @@ -import{S as t,i as e,a as n,b as i,s as l,e as o,n as r,d as s,c,o as a,w as d,f as m,h as u,l as f,t as h,g as p,j as g,v as w,q as b,m as x,p as y,y as v,H as k}from"./index-4348483d.js";import{w as H}from"./index-71440b21.js";import{loadLocaleContent as j,getData as I}from"../../../../../../../../../js/libraries/serverTools.js";import{px2rem as L}from"../../../../../../../../../js/libraries/miscTools.js";function T(t,e,n){const i=t.slice();return i[33]=e[n],i[34]=e,i[35]=n,i}function Y(t,e,n){const i=t.slice();return i[36]=e[n],i}function C(t,e,n){const i=t.slice();return i[36]=e[n],i}function M(t,e,n){const i=t.slice();return i[41]=e[n],i[42]=e,i[43]=n,i}function z(t,e,n){const i=t.slice();return i[44]=e[n],i[45]=e,i[46]=n,i}function A(t){let e,n,o=t[0],r=K(t);return{c(){e=m("div"),n=m("div"),r.c(),u(n,"id","text-container"),u(e,"id","container")},m(l,o){i(l,e,o),f(e,n),r.m(n,null),t[28](e)},p(t,e){1&e[0]&&l(o,o=t[0])?(r.d(1),r=K(t),r.c(),r.m(n,null)):r.p(t,e)},d(n){n&&s(e),r.d(n),t[28](null)}}}function V(t){let e,n,l,o,r,c,a=t[41].name+"",d=t[41];const g=()=>t[21](n,d),w=()=>t[21](null,d);function x(){return t[22](t[41])}return{c(){e=m("div"),n=m("button"),l=h(a),o=p(),u(n,"class","level0 heading-button"),u(e,"class","heading-button-wrapper")},m(t,s){i(t,e,s),f(e,n),f(n,l),g(),f(e,o),r||(c=b(n,"click",x),r=!0)},p(e,n){d!==(t=e)[41]&&(w(),d=t[41],g())},d(t){t&&s(e),w(),r=!1,c()}}}function O(t){let e,n=t[41],l=[];for(let e=0;et[19](n,d),w=()=>t[19](null,d);function x(){return t[20](t[44])}return{c(){e=m("div"),n=m("button"),l=h(a),o=p(),u(n,"class","level1 heading-button"),u(e,"class","heading-button-wrapper")},m(t,s){i(t,e,s),f(e,n),f(n,l),g(),f(e,o),r||(c=b(n,"click",x),r=!0)},p(e,n){d!==(t=e)[44]&&(w(),d=t[44],g())},d(t){t&&s(e),w(),r=!1,c()}}}function S(t){let e;let n=function(t,e){return Array.isArray(t[41])?O:V}(t),l=n(t);return{c(){l.c(),e=o()},m(t,n){l.m(t,n),i(t,e,n)},p(t,e){l.p(t,e)},d(t){l.d(t),t&&s(e)}}}function E(t){let e;let n=function(t,e){return t[33],"ul"==Object.keys(t[33])[0]?D:(t[33],"ol"==Object.keys(t[33])[0]?W:(t[33],"h3"==t[33].type?q:(t[33],"h2"==t[33].type?_:"#"==t[33][0]?B:N)))}(t),l=n(t);return{c(){l.c(),e=o()},m(t,n){l.m(t,n),i(t,e,n)},p(t,e){l.p(t,e)},d(t){l.d(t),t&&s(e)}}}function N(t){let e,n,l,o=t[33]+"";return{c(){e=m("p"),n=new k(!1),l=p(),n.a=l,u(e,"class","margin-end")},m(t,r){i(t,e,r),n.m(o,e),f(e,l)},p:r,d(t){t&&s(e)}}}function B(t){let e,n=t[33].slice(2,t[33].length)+"";return{c(){e=m("h1")},m(t,l){i(t,e,l),e.innerHTML=n},p:r,d(t){t&&s(e)}}}function _(t){let e,n,l,o,r,c=t[33].line+"",a=t[33];const d=()=>t[26](n,a),h=()=>t[26](null,a);return{c(){e=m("button"),n=m("h2"),l=p(),u(n,"id",t[33].id),w(e,"display","block"),w(e,"width","100%")},m(s,a){i(s,e,a),f(e,n),n.innerHTML=c,d(),f(e,l),o||(r=b(e,"click",(function(){v(t[6].scrollIntoView({block:"start"},!0))&&t[6].scrollIntoView({block:"start"},!0).apply(this,arguments)})),o=!0)},p(e,n){a!==(t=e)[33]&&(h(),a=t[33],d())},d(t){t&&s(e),h(),o=!1,r()}}}function q(t){let e,n,l,o,r,c=t[33].line+"",a=t[33];const d=()=>t[25](n,a),h=()=>t[25](null,a);return{c(){e=m("button"),n=m("h3"),l=p(),u(n,"id",t[33].id),w(e,"display","block"),w(e,"width","100%")},m(s,a){i(s,e,a),f(e,n),n.innerHTML=c,d(),f(e,l),o||(r=b(e,"click",(function(){v(t[6].scrollIntoView({block:"start"},!0))&&t[6].scrollIntoView({block:"start"},!0).apply(this,arguments)})),o=!0)},p(e,n){a!==(t=e)[33]&&(h(),a=t[33],d())},d(t){t&&s(e),h(),o=!1,r()}}}function W(t){let e,n,l=t[33].ol,o=[];for(let e=0;en(9,i=t)));let k=H({});c(t,k,(t=>n(10,l=t))),j(k,"countries",v);let T=j(k,"manifesto-component",v);const Y=["ul","ol"];function C(t){w[t].scrollIntoView({block:"start"},!0)}I("/locales/"+T+"/manifesto.txt",(function(t){let e,i=t.split(/\r?\n/),l=0;for(let t=0;tn.includes("<"+t+">"))).findIndex((t=>t));if(-1!=o){let e=Y[o],l={};l[e]=[];let r="";for(;;){if(t+=1,n=i[t],n.includes(r)){p.push(l);break}l[e].push(n)}}else if("###"==n.slice(0,3)){let t=n.slice(4,n.length),i=t.toLowerCase().trim().replaceAll(" ","-");e.push({id:i,name:t,index:l}),l+=1,p.push({type:"h3",id:i,line:t,index:l})}else if("##"==n.slice(0,2)){let t=n.slice(3,n.length),i=t.toLowerCase().trim().replaceAll(" ","-");b.push({id:t.toLowerCase().trim().replaceAll(" ","-"),name:t,index:l}),l+=1,e=[],b.push(e),p.push({type:"h2",id:i,line:t,index:l})}else p.push(n)}n(0,o+=1)})),addEventListener("scroll",(t=>{if(window.innerWidth>1080){let t=L(window.scrollY),e=L(f.getBoundingClientRect().bottom+window.scrollY),i=L(u.getBoundingClientRect().bottom+window.scrollY);if(t>x&&t<5||t=e-1.5)y-=i-(e-1.5);else if(y>-5&&(y=-5),t<5&&0!=t){let t=L(u.offsetHeight-window.innerHeight);y=-Math.min(L(window.scrollY),5+t+2.5)}else if(twindow.innerHeight){let e=L(u.offsetHeight)-L(window.innerHeight);y>-(e+8)?y+=x-t:y=-(e+8)}n(6,u.style.marginTop=y+"rem",u),x=L(window.scrollY)}else n(6,u.style.marginTop="0rem",u)})),a((()=>{let t=localStorage.getItem("manifesto-hide-content");null!=t&&null!=t&&"true"==t&&U(s,m)}));return[o,r,s,m,g,w,u,f,h,i,l,p,b,v,k,C,function(t){d[t?"unshift":"push"]((()=>{s=t,n(2,s)}))},function(t){d[t?"unshift":"push"]((()=>{r=t,n(1,r)}))},()=>U(s,m),function(t,e){d[t?"unshift":"push"]((()=>{g[e.index]=t,n(4,g)}))},t=>C(t.id),function(t,e){d[t?"unshift":"push"]((()=>{g[e.index]=t,n(4,g)}))},t=>C(t.id),function(t){d[t?"unshift":"push"]((()=>{m=t,n(3,m)}))},function(t){d[t?"unshift":"push"]((()=>{u=t,n(6,u)}))},function(t,e){d[t?"unshift":"push"]((()=>{w[e.id]=t,n(5,w)}))},function(t,e){d[t?"unshift":"push"]((()=>{w[e.id]=t,n(5,w)}))},function(t){d[t?"unshift":"push"]((()=>{h=t,n(8,h)}))},function(t){d[t?"unshift":"push"]((()=>{f=t,n(7,f)}))}]}class Z extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},X,Q,l,{},null,[-1,-1]),t&&t.target&&i(t.target,this,t.anchor)}}customElements.define("manifesto-component",Z);export{Z as default}; +import{S as t,i as e,a as n,b as i,s as l,e as o,n as r,d as s,c,o as a,f as d,g as m,j as u,m as f,t as h,h as p,k as g,w,p as b,q as x,u as y,y as v,H as k}from"./index-8c09578c.js";import{w as H}from"./index-77787e10.js";import{loadLocaleContent as j,getData as I}from"../../../../../../../../../js/libraries/serverTools.js";import{px2rem as L}from"../../../../../../../../../js/libraries/miscTools.js";function T(t,e,n){const i=t.slice();return i[33]=e[n],i[34]=e,i[35]=n,i}function Y(t,e,n){const i=t.slice();return i[36]=e[n],i}function C(t,e,n){const i=t.slice();return i[36]=e[n],i}function M(t,e,n){const i=t.slice();return i[41]=e[n],i[42]=e,i[43]=n,i}function z(t,e,n){const i=t.slice();return i[44]=e[n],i[45]=e,i[46]=n,i}function A(t){let e,n,o=t[0],r=K(t);return{c(){e=m("div"),n=m("div"),r.c(),u(n,"id","text-container"),u(e,"id","container")},m(l,o){i(l,e,o),f(e,n),r.m(n,null),t[28](e)},p(t,e){1&e[0]&&l(o,o=t[0])?(r.d(1),r=K(t),r.c(),r.m(n,null)):r.p(t,e)},d(n){n&&s(e),r.d(n),t[28](null)}}}function V(t){let e,n,l,o,r,c,a=t[41].name+"",d=t[41];const g=()=>t[21](n,d),w=()=>t[21](null,d);function x(){return t[22](t[41])}return{c(){e=m("div"),n=m("button"),l=h(a),o=p(),u(n,"class","level0 heading-button"),u(e,"class","heading-button-wrapper")},m(t,s){i(t,e,s),f(e,n),f(n,l),g(),f(e,o),r||(c=b(n,"click",x),r=!0)},p(e,n){d!==(t=e)[41]&&(w(),d=t[41],g())},d(t){t&&s(e),w(),r=!1,c()}}}function O(t){let e,n=t[41],l=[];for(let e=0;et[19](n,d),w=()=>t[19](null,d);function x(){return t[20](t[44])}return{c(){e=m("div"),n=m("button"),l=h(a),o=p(),u(n,"class","level1 heading-button"),u(e,"class","heading-button-wrapper")},m(t,s){i(t,e,s),f(e,n),f(n,l),g(),f(e,o),r||(c=b(n,"click",x),r=!0)},p(e,n){d!==(t=e)[44]&&(w(),d=t[44],g())},d(t){t&&s(e),w(),r=!1,c()}}}function S(t){let e;let n=function(t,e){return Array.isArray(t[41])?O:V}(t),l=n(t);return{c(){l.c(),e=o()},m(t,n){l.m(t,n),i(t,e,n)},p(t,e){l.p(t,e)},d(t){l.d(t),t&&s(e)}}}function E(t){let e;let n=function(t,e){return t[33],"ul"==Object.keys(t[33])[0]?D:(t[33],"ol"==Object.keys(t[33])[0]?W:(t[33],"h3"==t[33].type?q:(t[33],"h2"==t[33].type?_:"#"==t[33][0]?B:N)))}(t),l=n(t);return{c(){l.c(),e=o()},m(t,n){l.m(t,n),i(t,e,n)},p(t,e){l.p(t,e)},d(t){l.d(t),t&&s(e)}}}function N(t){let e,n,l,o=t[33]+"";return{c(){e=m("p"),n=new k(!1),l=p(),n.a=l,u(e,"class","margin-end")},m(t,r){i(t,e,r),n.m(o,e),f(e,l)},p:r,d(t){t&&s(e)}}}function B(t){let e,n=t[33].slice(2,t[33].length)+"";return{c(){e=m("h1")},m(t,l){i(t,e,l),e.innerHTML=n},p:r,d(t){t&&s(e)}}}function _(t){let e,n,l,o,r,c=t[33].line+"",a=t[33];const d=()=>t[26](n,a),h=()=>t[26](null,a);return{c(){e=m("button"),n=m("h2"),l=p(),u(n,"id",t[33].id),w(e,"display","block"),w(e,"width","100%")},m(s,a){i(s,e,a),f(e,n),n.innerHTML=c,d(),f(e,l),o||(r=b(e,"click",(function(){v(t[6].scrollIntoView({block:"start"},!0))&&t[6].scrollIntoView({block:"start"},!0).apply(this,arguments)})),o=!0)},p(e,n){a!==(t=e)[33]&&(h(),a=t[33],d())},d(t){t&&s(e),h(),o=!1,r()}}}function q(t){let e,n,l,o,r,c=t[33].line+"",a=t[33];const d=()=>t[25](n,a),h=()=>t[25](null,a);return{c(){e=m("button"),n=m("h3"),l=p(),u(n,"id",t[33].id),w(e,"display","block"),w(e,"width","100%")},m(s,a){i(s,e,a),f(e,n),n.innerHTML=c,d(),f(e,l),o||(r=b(e,"click",(function(){v(t[6].scrollIntoView({block:"start"},!0))&&t[6].scrollIntoView({block:"start"},!0).apply(this,arguments)})),o=!0)},p(e,n){a!==(t=e)[33]&&(h(),a=t[33],d())},d(t){t&&s(e),h(),o=!1,r()}}}function W(t){let e,n,l=t[33].ol,o=[];for(let e=0;en(9,i=t)));let k=H({});c(t,k,(t=>n(10,l=t))),j(k,"countries",v);let T=j(k,"manifesto-component",v);const Y=["ul","ol"];function C(t){w[t].scrollIntoView({block:"start"},!0)}I("/locales/"+T+"/manifesto.txt",(function(t){let e,i=t.split(/\r?\n/),l=0;for(let t=0;tn.includes("<"+t+">"))).findIndex((t=>t));if(-1!=o){let e=Y[o],l={};l[e]=[];let r="";for(;;){if(t+=1,n=i[t],n.includes(r)){p.push(l);break}l[e].push(n)}}else if("###"==n.slice(0,3)){let t=n.slice(4,n.length),i=t.toLowerCase().trim().replaceAll(" ","-");e.push({id:i,name:t,index:l}),l+=1,p.push({type:"h3",id:i,line:t,index:l})}else if("##"==n.slice(0,2)){let t=n.slice(3,n.length),i=t.toLowerCase().trim().replaceAll(" ","-");b.push({id:t.toLowerCase().trim().replaceAll(" ","-"),name:t,index:l}),l+=1,e=[],b.push(e),p.push({type:"h2",id:i,line:t,index:l})}else p.push(n)}n(0,o+=1)})),addEventListener("scroll",(t=>{if(window.innerWidth>1080){let t=L(window.scrollY),e=L(f.getBoundingClientRect().bottom+window.scrollY),i=L(u.getBoundingClientRect().bottom+window.scrollY);if(t>x&&t<5||t=e-1.5)y-=i-(e-1.5);else if(y>-5&&(y=-5),t<5&&0!=t){let t=L(u.offsetHeight-window.innerHeight);y=-Math.min(L(window.scrollY),5+t+2.5)}else if(twindow.innerHeight){let e=L(u.offsetHeight)-L(window.innerHeight);y>-(e+8)?y+=x-t:y=-(e+8)}n(6,u.style.marginTop=y+"rem",u),x=L(window.scrollY)}else n(6,u.style.marginTop="0rem",u)})),a((()=>{let t=localStorage.getItem("manifesto-hide-content");null!=t&&null!=t&&"true"==t&&U(s,m)}));return[o,r,s,m,g,w,u,f,h,i,l,p,b,v,k,C,function(t){d[t?"unshift":"push"]((()=>{s=t,n(2,s)}))},function(t){d[t?"unshift":"push"]((()=>{r=t,n(1,r)}))},()=>U(s,m),function(t,e){d[t?"unshift":"push"]((()=>{g[e.index]=t,n(4,g)}))},t=>C(t.id),function(t,e){d[t?"unshift":"push"]((()=>{g[e.index]=t,n(4,g)}))},t=>C(t.id),function(t){d[t?"unshift":"push"]((()=>{m=t,n(3,m)}))},function(t){d[t?"unshift":"push"]((()=>{u=t,n(6,u)}))},function(t,e){d[t?"unshift":"push"]((()=>{w[e.id]=t,n(5,w)}))},function(t,e){d[t?"unshift":"push"]((()=>{w[e.id]=t,n(5,w)}))},function(t){d[t?"unshift":"push"]((()=>{h=t,n(8,h)}))},function(t){d[t?"unshift":"push"]((()=>{f=t,n(7,f)}))}]}class Z extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},X,Q,l,{},null,[-1,-1]),t&&t.target&&i(t.target,this,t.anchor)}}customElements.define("manifesto-component",Z);export{Z as default}; diff --git a/Server/public/js/components/map-component.js b/Server/public/js/components/map-component.js index ec2f98e..456ada1 100644 --- a/Server/public/js/components/map-component.js +++ b/Server/public/js/components/map-component.js @@ -1 +1 @@ -import{S as t,i as e,a as o,b as s,u as a,s as r,f as l,n,h as i,d as c,o as m,w as h}from"./index-4348483d.js";function p(t){let e;return{c(){e=l("div"),this.c=n,i(e,"id","map")},m(o,a){s(o,e,a),t[3](e)},p:n,i:n,o:n,d(o){o&&c(e),t[3](null)}}}function u(t,e,o){let s,{callback:a=null}=e,{colors:r=null}=e;function l(t,e){let o=L.map(s,{center:t,zoom:e});return L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© OpenStreetMap contributors',minNativeZoom:2,minZoom:2,maxNativeZoom:14,maxZoom:14}).addTo(o),o}return m((()=>{if(a(l),null!=r){let t=s.getElementsByClassName("leaflet-control-layers-overlays")[0].children;for(let e=0;e{"callback"in t&&o(1,a=t.callback),"colors"in t&&o(2,r=t.colors)},[s,a,r,function(t){h[t?"unshift":"push"]((()=>{s=t,o(0,s)}))}]}class d extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},u,p,r,{callback:1,colors:2},null),t&&(t.target&&s(t.target,this,t.anchor),t.props&&(this.$set(t.props),a()))}static get observedAttributes(){return["callback","colors"]}get callback(){return this.$$.ctx[1]}set callback(t){this.$$set({callback:t}),a()}get colors(){return this.$$.ctx[2]}set colors(t){this.$$set({colors:t}),a()}}customElements.define("map-component",d);export{d as default}; +import{S as t,i as e,a as o,b as s,v as a,s as r,g as l,n as i,j as n,d as c,o as m,f as p}from"./index-8c09578c.js";function h(t){let e;return{c(){e=l("div"),this.c=i,n(e,"id","map")},m(o,a){s(o,e,a),t[3](e)},p:i,i:i,o:i,d(o){o&&c(e),t[3](null)}}}function u(t,e,o){let s,{callback:a=null}=e,{colors:r=null}=e;function l(t,e){let o=L.map(s,{center:t,zoom:e});return L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© OpenStreetMap contributors',minNativeZoom:2,minZoom:2,maxNativeZoom:14,maxZoom:14}).addTo(o),o}return m((()=>{if(a(l),null!=r){let t=s.getElementsByClassName("leaflet-control-layers-overlays")[0].children;for(let e=0;e{"callback"in t&&o(1,a=t.callback),"colors"in t&&o(2,r=t.colors)},[s,a,r,function(t){p[t?"unshift":"push"]((()=>{s=t,o(0,s)}))}]}class d extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},u,h,r,{callback:1,colors:2},null),t&&(t.target&&s(t.target,this,t.anchor),t.props&&(this.$set(t.props),a()))}static get observedAttributes(){return["callback","colors"]}get callback(){return this.$$.ctx[1]}set callback(t){this.$$set({callback:t}),a()}get colors(){return this.$$.ctx[2]}set colors(t){this.$$set({colors:t}),a()}}customElements.define("map-component",d);export{d as default}; diff --git a/Server/public/js/components/navbar-component.js b/Server/public/js/components/navbar-component.js index 1064ab1..0ee69b1 100644 --- a/Server/public/js/components/navbar-component.js +++ b/Server/public/js/components/navbar-component.js @@ -1 +1 @@ -import{S as e,i as t,a as n,b as o,s as i,e as r,n as a,d as l,c as s,o as d,t as c,g as m,f as h,h as p,j as g,l as u,q as f,m as b,p as w,r as v,w as y}from"./index-4348483d.js";import{w as k}from"./index-71440b21.js";import{loadLocaleContent as x,locales as j}from"../../../../../../../../../js/libraries/serverTools.js";function H(e,t,n){const o=e.slice();return o[17]=t[n][0],o[18]=t[n][1],o}function z(e){let t,n,i,r,a,s,d,y,k,x,z,L,W,M,O,E,N,S,R,U,q,I,X,A,B,C,D,F,G,J,K,P,Q,V,Y,Z,$,_,ee,te,ne,oe,ie,re,ae,le,se,de,ce,me=e[11]()+"",he=e[4].orgName+"",pe=e[4].manifesto+"",ge=e[4].joinUs+"",ue=e[4].groups+"",fe=e[4].communes+"",be=e[4].cooperatives+"",we=e[4].parties+"",ve=e[4].partners+"",ye=Object.entries(j),ke=[];for(let t=0;t',d=m(),y=h("a"),k=h("img"),z=m(),L=h("span"),W=m(),M=h("nav"),O=h("ul"),E=h("li"),N=h("a"),S=c(pe),R=m(),U=h("li"),q=h("a"),I=c(ge),X=m(),A=h("li"),B=h("a"),C=c(ue),D=m(),F=h("li"),G=h("a"),J=c(fe),K=m(),P=h("li"),Q=h("a"),V=c(be),Y=m(),Z=h("li"),$=h("a"),_=c(we),ee=m(),te=h("li"),ne=h("a"),oe=c(ve),ie=m(),re=h("li"),ae=h("button"),ae.innerHTML=' \n \n globe',le=m(),se=h("div");for(let e=0;en(4,o=e)));let h=x(m,"navbar-component",c);function p(e){localStorage.setItem("locale",e);let t=location.href.split("/"),n=Object.keys(j);t=t.filter((e=>!n.includes(e)));let o=t.slice(0,t.length-1).join("/")+"/"+e+"/"+t[t.length-1];location.href=o}d((()=>{}));return[i,r,a,l,o,c,m,h,function(){i.checked?n(1,r.style.background="white",r):setTimeout((()=>{n(1,r.style.position="relative",r),n(1,r.style.background="",r),n(1,r.style.boxShadow="",r)}),510)},function(){"block"==a.style.display?n(2,a.style.display="none",a):n(2,a.style.display="block",a)},p,function(){if("ru"==h){let e=()=>{null==l?setTimeout(e,100):(window.innerWidth<1700&&window.innerWidth>1400||window.innerWidth<400)&&"100%"!=l.style.lineHeight?(n(3,l.style.lineHeight="120%",l),n(3,l.style.top="1rem",l),n(3,l.style.width="16rem",l)):(window.innerWidth>1700||window.innerWidth>400&&window.innerWidth<1400)&&"400%"!=l.style.lineHeight&&(n(3,l.style.lineHeight="400%",l),n(3,l.style.top="0rem",l),n(3,l.style.width="auto",l))};e(),addEventListener("resize",e)}},function(e){y[e?"unshift":"push"]((()=>{i=e,n(0,i)}))},function(e){y[e?"unshift":"push"]((()=>{l=e,n(3,l)}))},e=>p(e),function(e){y[e?"unshift":"push"]((()=>{a=e,n(2,a)}))},function(e){y[e?"unshift":"push"]((()=>{r=e,n(1,r)}))}]}class M extends e{constructor(e){super(),this.shadowRoot.innerHTML="",t(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},W,L,i,{},null),e&&e.target&&o(e.target,this,e.anchor)}}customElements.define("navbar-component",M);export{M as default}; +import{S as e,i as t,a as n,b as o,s as i,e as r,n as a,d as l,c as s,o as d,t as c,h as m,g as h,j as p,k as u,m as g,p as f,q as b,u as w,r as v,f as y}from"./index-8c09578c.js";import{w as k}from"./index-77787e10.js";import{loadLocaleContent as x,locales as j}from"../../../../../../../../../js/libraries/serverTools.js";function H(e,t,n){const o=e.slice();return o[17]=t[n][0],o[18]=t[n][1],o}function z(e){let t,n,i,r,a,s,d,y,k,x,z,L,W,M,O,E,N,S,R,U,q,I,X,A,B,C,D,F,G,J,K,P,Q,V,Y,Z,$,_,ee,te,ne,oe,ie,re,ae,le,se,de,ce,me=e[11]()+"",he=e[4].orgName+"",pe=e[4].manifesto+"",ue=e[4].joinUs+"",ge=e[4].groups+"",fe=e[4].communes+"",be=e[4].cooperatives+"",we=e[4].parties+"",ve=e[4].partners+"",ye=Object.entries(j),ke=[];for(let t=0;t',d=m(),y=h("a"),k=h("img"),z=m(),L=h("span"),W=m(),M=h("nav"),O=h("ul"),E=h("li"),N=h("a"),S=c(pe),R=m(),U=h("li"),q=h("a"),I=c(ue),X=m(),A=h("li"),B=h("a"),C=c(ge),D=m(),F=h("li"),G=h("a"),J=c(fe),K=m(),P=h("li"),Q=h("a"),V=c(be),Y=m(),Z=h("li"),$=h("a"),_=c(we),ee=m(),te=h("li"),ne=h("a"),oe=c(ve),ie=m(),re=h("li"),ae=h("button"),ae.innerHTML=' \n \n globe',le=m(),se=h("div");for(let e=0;en(4,o=e)));let h=x(m,"navbar-component",c);function p(e){localStorage.setItem("locale",e);let t=location.href.split("/"),n=Object.keys(j);t=t.filter((e=>!n.includes(e)));let o=t.slice(0,t.length-1).join("/")+"/"+e+"/"+t[t.length-1];location.href=o}d((()=>{}));return[i,r,a,l,o,c,m,h,function(){i.checked?n(1,r.style.background="white",r):setTimeout((()=>{n(1,r.style.position="relative",r),n(1,r.style.background="",r),n(1,r.style.boxShadow="",r)}),510)},function(){"block"==a.style.display?n(2,a.style.display="none",a):n(2,a.style.display="block",a)},p,function(){if("ru"==h){let e=()=>{null==l?setTimeout(e,100):(window.innerWidth<1700&&window.innerWidth>1400||window.innerWidth<400)&&"100%"!=l.style.lineHeight?(n(3,l.style.lineHeight="120%",l),n(3,l.style.top="1rem",l),n(3,l.style.width="16rem",l)):(window.innerWidth>1700||window.innerWidth>400&&window.innerWidth<1400)&&"400%"!=l.style.lineHeight&&(n(3,l.style.lineHeight="400%",l),n(3,l.style.top="0rem",l),n(3,l.style.width="auto",l))};e(),addEventListener("resize",e)}},function(e){y[e?"unshift":"push"]((()=>{i=e,n(0,i)}))},function(e){y[e?"unshift":"push"]((()=>{l=e,n(3,l)}))},e=>p(e),function(e){y[e?"unshift":"push"]((()=>{a=e,n(2,a)}))},function(e){y[e?"unshift":"push"]((()=>{r=e,n(1,r)}))}]}class M extends e{constructor(e){super(),this.shadowRoot.innerHTML="",t(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},W,L,i,{},null),e&&e.target&&o(e.target,this,e.anchor)}}customElements.define("navbar-component",M);export{M as default}; diff --git a/Server/public/js/components/pane-aligner.js b/Server/public/js/components/pane-aligner.js index 784b939..3374096 100644 --- a/Server/public/js/components/pane-aligner.js +++ b/Server/public/js/components/pane-aligner.js @@ -1 +1 @@ -import{S as i,i as e,a,b as t,s as n,f as r,g as s,n as d,h as o,l,d as m,x as p,o as h,w as g}from"./index-4348483d.js";import{debounce as c}from"../../../../../../../../../js/libraries/miscTools.js";function f(i){let e,a,n,p,h,g,c,f,u,b;return{c(){e=r("div"),a=r("div"),n=r("div"),p=r("div"),p.innerHTML='',h=s(),g=r("div"),g.innerHTML='',c=s(),f=r("div"),f.innerHTML='',u=s(),b=r("div"),b.innerHTML='',this.c=d,o(p,"id","sidebar-left"),o(p,"class","pane"),o(g,"id","sidebar-left2"),o(g,"class","pane"),o(n,"id","sidebars-left"),o(n,"class","sidebar"),o(f,"id","sidebar-right"),o(f,"class","pane sidebar"),o(b,"id","main-pane"),o(b,"class","pane"),o(a,"class","pane-container"),o(e,"id","root"),o(e,"class","pane-centering")},m(r,s){t(r,e,s),l(e,a),l(a,n),l(n,p),i[5](p),l(n,h),l(n,g),i[6](g),l(a,c),l(a,f),i[7](f),l(a,u),l(a,b),i[8](b),i[9](e)},p:d,i:d,o:d,d(a){a&&m(e),i[5](null),i[6](null),i[7](null),i[8](null),i[9](null)}}}function u(i,e,a){let t,n,r,s,d,o=null!=p("alignerParent")?p("alignerParent").switchView:void 0,l=!1,m=!1,f=!1;function u(){if(null!=t.parentNode){let i=t.parentNode.host.childNodes;if(0==i.length)setTimeout(u,50);else{let e=!1,n=t.parentNode.innerHTML;for(let a of i)"sidebar-left"!=a.slot||l?"sidebar-left2"!=a.slot||m?"sidebar-right"!=a.slot||f||(n=n.replace("#sidebar-right{display:none;","#sidebar-right{"),f=!0,e=!0):(n=n.replace("#sidebar-left2{display:none}",""),m=!0,e=!0):(n=n.replace("#sidebar-left{display:none}",""),l=!0,e=!0);null!=o&&(n=n.replace("1880px",o),e=!0),e&&a(0,t.parentNode.innerHTML=n,t)}}}return window.addEventListener("resize",c(u,100)),h((()=>{u()})),[t,n,r,s,d,function(i){g[i?"unshift":"push"]((()=>{r=i,a(2,r)}))},function(i){g[i?"unshift":"push"]((()=>{s=i,a(3,s)}))},function(i){g[i?"unshift":"push"]((()=>{d=i,a(4,d)}))},function(i){g[i?"unshift":"push"]((()=>{n=i,a(1,n)}))},function(i){g[i?"unshift":"push"]((()=>{t=i,a(0,t)}))}]}class b extends i{constructor(i){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:a(this.attributes),customElement:!0},u,f,n,{},null),i&&i.target&&t(i.target,this,i.anchor)}}customElements.define("pane-aligner",b);export{b as default}; +import{S as i,i as e,a,b as t,s as n,g as r,h as s,n as d,j as o,m as l,d as m,x as p,o as h,f as g}from"./index-8c09578c.js";import{debounce as c}from"../../../../../../../../../js/libraries/miscTools.js";function f(i){let e,a,n,p,h,g,c,f,u,b;return{c(){e=r("div"),a=r("div"),n=r("div"),p=r("div"),p.innerHTML='',h=s(),g=r("div"),g.innerHTML='',c=s(),f=r("div"),f.innerHTML='',u=s(),b=r("div"),b.innerHTML='',this.c=d,o(p,"id","sidebar-left"),o(p,"class","pane"),o(g,"id","sidebar-left2"),o(g,"class","pane"),o(n,"id","sidebars-left"),o(n,"class","sidebar"),o(f,"id","sidebar-right"),o(f,"class","pane sidebar"),o(b,"id","main-pane"),o(b,"class","pane"),o(a,"class","pane-container"),o(e,"id","root"),o(e,"class","pane-centering")},m(r,s){t(r,e,s),l(e,a),l(a,n),l(n,p),i[5](p),l(n,h),l(n,g),i[6](g),l(a,c),l(a,f),i[7](f),l(a,u),l(a,b),i[8](b),i[9](e)},p:d,i:d,o:d,d(a){a&&m(e),i[5](null),i[6](null),i[7](null),i[8](null),i[9](null)}}}function u(i,e,a){let t,n,r,s,d,o=null!=p("alignerParent")?p("alignerParent").switchView:void 0,l=!1,m=!1,f=!1;function u(){if(null!=t.parentNode){let i=t.parentNode.host.childNodes;if(0==i.length)setTimeout(u,50);else{let e=!1,n=t.parentNode.innerHTML;for(let a of i)"sidebar-left"!=a.slot||l?"sidebar-left2"!=a.slot||m?"sidebar-right"!=a.slot||f||(n=n.replace("#sidebar-right{display:none;","#sidebar-right{"),f=!0,e=!0):(n=n.replace("#sidebar-left2{display:none}",""),m=!0,e=!0):(n=n.replace("#sidebar-left{display:none}",""),l=!0,e=!0);null!=o&&(n=n.replace("1880px",o),e=!0),e&&a(0,t.parentNode.innerHTML=n,t)}}}return window.addEventListener("resize",c(u,100)),h((()=>{u()})),[t,n,r,s,d,function(i){g[i?"unshift":"push"]((()=>{r=i,a(2,r)}))},function(i){g[i?"unshift":"push"]((()=>{s=i,a(3,s)}))},function(i){g[i?"unshift":"push"]((()=>{d=i,a(4,d)}))},function(i){g[i?"unshift":"push"]((()=>{n=i,a(1,n)}))},function(i){g[i?"unshift":"push"]((()=>{t=i,a(0,t)}))}]}class b extends i{constructor(i){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:a(this.attributes),customElement:!0},u,f,n,{},null),i&&i.target&&t(i.target,this,i.anchor)}}customElements.define("pane-aligner",b);export{b as default}; diff --git a/Server/public/js/components/parties-add-component.js b/Server/public/js/components/parties-add-component.js new file mode 100644 index 0000000..5872196 --- /dev/null +++ b/Server/public/js/components/parties-add-component.js @@ -0,0 +1 @@ +import{S as t,i as e,a as n,b as i,s as o,e as a,n as r,d as s,c as l,o as c,f as m,g as p,h as u,j as d,k as f,l as g,m as h,p as b,r as w}from"./index-8c09578c.js";import{w as y}from"./index-77787e10.js";import{getData as v,loadLocaleContent as x,sendData as k}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as j,translate as S}from"../../../../../../../../../js/libraries/mapTools.js";import"../../../../../../../../../js/components/map-component.js";function z(t){let e,n,o,a,r,l,c,m,y,v,x,k,j,L,S,z,T,C,N,O,H,M,A,$,E,J,U,q,D,I,P,R,G,K,Q;return{c(){e=p("div"),n=p("div"),o=p("h1"),o.textContent="Add a Party",a=u(),r=p("img"),c=u(),m=p("p"),m.textContent="If there are no parties in your country which you can join then do the following:",y=u(),v=p("ol"),v.innerHTML="
  • Click on the map to show us where you are located;
  • \n
  • Add a way to contact you or leave blank for a pin to point to our discord;
  • \n
  • Press "Submit" to add yourself to our map;
  • \n
  • Verify yourself by having a chat with us at our Discord server to show on the map;
  • ",x=u(),k=p("div"),j=p("label"),j.textContent="Location:",L=u(),S=p("div"),z=p("input"),T=u(),C=p("div"),N=u(),O=p("div"),H=p("label"),H.textContent="Contact:",M=u(),A=p("div"),$=p("input"),E=u(),J=p("div"),U=u(),q=p("button"),q.textContent="Submit",D=u(),I=p("p"),P=u(),R=p("map-component"),d(r,"id","parties-img"),f(r.src,l="/img/common/parties.svg")||d(r,"src","/img/common/parties.svg"),d(r,"alt","parties"),d(m,"class","description"),d(j,"for","address-input"),d(z,"id","address-input"),d(z,"type","text"),z.readOnly=!0,d(C,"class","ghost-input"),d(S,"class","input-wrapper"),d(k,"id","address-input-wrapper"),d(k,"class","input-label-wrapper"),d(H,"for","contact-input"),d($,"id","contact-input"),d($,"type","text"),d(J,"class","ghost-input"),d(A,"class","input-wrapper"),d(O,"class","input-label-wrapper"),d(q,"id","submit-button"),d(I,"id","confirmation-msg"),g(R,"id","map"),g(R,"callback",G=t[15]),d(n,"id","text-container"),d(e,"id","container")},m(s,l){i(s,e,l),h(e,n),h(n,o),h(n,a),h(n,r),h(n,c),h(n,m),h(n,y),h(n,v),h(n,x),h(n,k),h(k,j),h(k,L),h(k,S),h(S,z),t[10](z),h(S,T),h(S,C),h(n,N),h(n,O),h(O,H),h(O,M),h(O,A),h(A,$),t[12]($),h(A,E),h(A,J),h(n,U),h(n,q),h(n,D),h(n,I),t[14](I),h(n,P),h(n,R),K||(Q=[b(z,"input",t[11]),b($,"input",t[13]),b(q,"click",t[9])],K=!0)},p(t,e){16&e&&G!==(G=t[15])&&g(R,"callback",G)},d(n){n&&s(e),t[10](null),t[12](null),t[14](null),K=!1,w(Q)}}}function T(t){let e,n=3==t[3]&&z(t);return{c(){n&&n.c(),e=a()},m(t,o){n&&n.m(t,o),i(t,e,o)},p(t,i){3==t[3]?n?n.p(t,i):(n=z(t),n.c(),n.m(e.parentNode,e)):n&&(n.d(1),n=null)},d(t){n&&n.d(t),t&&s(e)}}}function C(t){let e,n=t[3],l=T(t);return{c(){l.c(),e=a(),this.c=r},m(t,n){l.m(t,n),i(t,e,n)},p(t,[i]){8&i&&o(n,n=t[3])?(l.d(1),l=T(t),l.c(),l.m(e.parentNode,e)):l.p(t,i)},i:r,o:r,d(t){t&&s(e),l.d(t)}}}function N(t){t.nextElementSibling.innerHTML=t.value}function O(t,e,n){let i,o,a=y(0);l(t,a,(t=>n(3,i=t)));let r,s,p=y({});l(t,p,(t=>n(4,o=t)));let u,d,f,g;v("/assets/parties.json",(t=>{r=JSON.parse(t),s={};for(let t of r){let e=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),e in s?s[e].push(t):s[e]=[t]}a.update((t=>t+1))}));let h=0,b=0,w=function(t,e){let n=new L.Icon({iconUrl:"/img/common/markers/marker-black.png",shadowUrl:"https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]});return L.marker([t,e],{icon:n})}(0,0);w.setOpacity(0);let z=x(p,"parties-component",a);function T(t,e,n){let i,o=""+e.Group+"
    ";for(let a of["location","members","contact"]){let r=e[a]+": ";if("contact"==a)o+=r+""+t.contact+"";else if("location"==a){let a,s=[t.country,t.state,t.town].filter((t=>null!=t&&null!=t));a="en"==n?s.map((t=>t)).join(", "):s.map((t=>S(e,t))).join(", "),o+=r+a+"
    ",i=[t.latitude,t.longitude]}else o+=r+t[a]+"
    "}return{text:o,coordinates:i}}function C(t,e,i){let o=t([22,0],2);j(r,s,o,e,i,T,"green"),w.addTo(o),o.on("click",(function(t){let e=t.latlng.lat,i=t.latlng.lng;h=e,b=i,function(t,e,n){let i=L.latLng(e,n);t.setLatLng(i)}(w,e,i),w.setOpacity(1),v(`https://nominatim.openstreetmap.org/reverse?lat=${e}&lon=${i}&format=jsonv2`,(t=>{let e=(t=JSON.parse(t)).address,i=e.city||e.town||e.village||e.hamlet,o=e.state,a=e.country;null!=o?a+=", "+o:o="",null!=i?a+=", "+i:i="",n(1,d.value=a,d),N(d)})),function(t,e){v(`https://nominatim.openstreetmap.org/reverse?lat=${t}&lon=${e}&format=jsonv2&accept-language=en`,(t=>{let e=(t=JSON.parse(t)).address,n=e.city||e.town||e.village||e.hamlet,i=e.state,o=e.country;null!=i||(i=""),null!=n||(n=""),g=[o,i,n]}))}(e,i)}))}function O(t){!1!==t?(n(0,u.innerHTML="You have been added to our database! Now go to our Discord to verify yourself.",u),n(0,u.style.color="green",u)):(n(0,u.innerHTML="Something went wrong.",u),n(0,u.style.color="red",u))}x(p,"countries",a),c((()=>{}));return[u,d,f,i,o,a,p,z,C,function(){if(null!=g){let t={country:g[0],state:g[1],town:g[2],latitude:h,longitude:b,contact:f.value};""==t.state&&(t.state=null),""==t.town&&(t.town=null),""==t.contact&&(t.contact=null),k("/"+z+"/parties-add-post/",t,O)}},function(t){m[t?"unshift":"push"]((()=>{d=t,n(1,d)}))},()=>N(d),function(t){m[t?"unshift":"push"]((()=>{f=t,n(2,f)}))},()=>N(f),function(t){m[t?"unshift":"push"]((()=>{u=t,n(0,u)}))},t=>C(t,o,z)]}class H extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},O,C,o,{},null),t&&t.target&&i(t.target,this,t.anchor)}}customElements.define("parties-add-component",H);export{H as default}; diff --git a/Server/public/js/components/parties-component.js b/Server/public/js/components/parties-component.js index b0e9dd2..a9a59d1 100644 --- a/Server/public/js/components/parties-component.js +++ b/Server/public/js/components/parties-component.js @@ -1 +1 @@ -import{S as t,i as e,a as n,b as o,s as i,e as r,n as a,d as m,c as s,o as l,f as c,t as p,g,h as d,j as h,k as f,l as u,m as b,p as x}from"./index-4348483d.js";import{w as y}from"./index-71440b21.js";import{addMarkersParties as w,partiesByCountry as j}from"../../../../../../../../../js/parties.js";import{loadLocaleContent as v}from"../../../../../../../../../js/libraries/serverTools.js";import"../../../../../../../../../js/components/map-component.js";function k(t,e,n){const o=t.slice();return o[9]=e[n][0],o[10]=e[n][1],o}function z(t,e,n){const o=t.slice();return o[13]=e[n],o}function D(t){let e,n,i,r,a,s,l,y,w,v,z,D,E,O,R,T,A,C,H,L,M=t[0].parties+"",S=t[0].p1+"",_=t[0].subheading1+"",q=t[0]["map-prompt"]+"",B=Object.entries(j),F=[];for(let e=0;en(1,i=t)));let a=y({});s(t,a,(t=>n(0,o=t))),v(a,"countries",r);let m=v(a,"parties-component",r);function c(t,e,n){let o=t([22,0],2);w(o,e,n)}l((()=>{}));return[o,i,r,a,m,c,function(t){return"en"==m?t:o[t]},function(t){return"en"==m?t.location:o[t.location]},t=>c(t,o,m)]}class A extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},T,R,i,{},null),t&&t.target&&o(t.target,this,t.anchor)}}customElements.define("parties-component",A);export{A as default}; +import{S as t,i as e,a as n,b as o,s as r,e as i,n as a,d as s,c as m,o as c,g as l,t as p,h as g,j as d,k as h,l as f,m as u,q as b,u as w}from"./index-8c09578c.js";import{w as x}from"./index-77787e10.js";import{loadLocaleContent as j,getData as y}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as v,translate as k}from"../../../../../../../../../js/libraries/mapTools.js";import{addPartyPinContent as z}from"../../../../../../../../../js/mapFuncs.js";import"../../../../../../../../../js/components/map-component.js";function N(t,e,n){const o=t.slice();return o[12]=e[n][0],o[3]=e[n][1],o}function O(t,e,n){const o=t.slice();return o[15]=e[n],o}function T(t){let e,n,r,i,a,m,c,x,j,y,v,k,z,O,T,D,R,S,_,q,A=t[1].parties+"",C=t[1].p1+"",F=t[1].subheading1+"",H=t[1]["map-prompt"]+"",J=Object.entries(t[0]),K=[];for(let e=0;en(2,r=t)));let a,s,l=x({});m(t,l,(t=>n(1,o=t)));let p=j(l,"parties-component",i);j(l,"countries",i);function g(t,e,n){let o=t([22,0],2);v(a,s,o,e,n,z,"gold")}y("/assets/parties.json",(t=>{n(3,a=JSON.parse(t)),n(0,s={});for(let t of a){let e=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),e in s?s[e].push(t):n(0,s[e]=[t],s)}i.update((t=>t+1))})),c((()=>{}));return[s,o,r,a,i,l,p,g,function(t){return"en"==p?t:k(o,t)},function(t){return[t.country,t.state,t.town].filter((t=>null!=t)).map((t=>"en"==p?t:k(o,t))).join(", ")},t=>g(t,o,p)]}class q extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},_,S,r,{},null),t&&t.target&&o(t.target,this,t.anchor)}}customElements.define("parties-component",q);export{q as default}; diff --git a/Server/public/js/components/partners-add-component.js b/Server/public/js/components/partners-add-component.js new file mode 100644 index 0000000..cd126de --- /dev/null +++ b/Server/public/js/components/partners-add-component.js @@ -0,0 +1 @@ +import{S as t,i as o,a as n,b as e,s as r,e as a,n as i,d as c,c as s,o as m,g as l,t as p,h as u,j as g,k as d,l as f,m as h,q as b,u as j}from"./index-8c09578c.js";import{w as x}from"./index-77787e10.js";import{loadLocaleContent as y,getData as w}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as k,translate as v}from"../../../../../../../../../js/libraries/mapTools.js";import"../../../../../../../../../js/components/map-component.js";function z(t,o,n){const e=t.slice();return e[13]=o[n][0],e[3]=o[n][1],e}function N(t,o,n){const e=t.slice();return e[16]=o[n],e}function O(t){let o,n,r,a,i,s,m,x,y,w,k,v,N,O,T,E,R,S,_,q,A=t[1].groups+"",C=t[1].p1+"",G=t[1].subheading1+"",H=t[1]["map-prompt"]+"",J=Object.entries(t[0]),K=[];for(let o=0;on(2,r=t)));let i,c,l=x({});s(t,l,(t=>n(1,e=t)));let p=y(l,"groups-component",a);y(l,"countries",a);function u(t,o,n){let e,r=""+o.Group+"
    ";for(let a of["location","members","contact"]){let i=o[a]+": ";if("contact"==a)r+=i+""+t.contact+"";else if("location"==a){let a,c=[t.country,t.state,t.town].filter((t=>null!=t&&null!=t));a="en"==n?c.map((t=>t)).join(", "):c.map((t=>v(o,t))).join(", "),r+=i+a+"
    ",e=[t.latitude,t.longitude]}else r+=i+t[a]+"
    "}return{text:r,coordinates:e}}function g(t,o,n){let e=t([22,0],2);k(i,c,e,o,n,u,"green")}w("/assets/groups.json",(t=>{n(3,i=JSON.parse(t)),n(0,c={});for(let t of i){let o=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),o in c?c[o].push(t):n(0,c[o]=[t],c)}a.update((t=>t+1))})),m((()=>{}));return[c,e,r,i,a,l,p,g,function(t){return"en"==p?t:v(e,t)},function(t){return[t.country,t.state,t.town].filter((t=>null!=t)).map((t=>"en"==p?t:v(e,t))).join(", ")},t=>g(t,e,p)]}class _ extends t{constructor(t){super(),this.shadowRoot.innerHTML="",o(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},S,R,r,{},null),t&&t.target&&e(t.target,this,t.anchor)}}customElements.define("partners-component",_);export{_ as default}; diff --git a/Server/public/js/components/partners-component.js b/Server/public/js/components/partners-component.js index 32063c5..98b85fc 100644 --- a/Server/public/js/components/partners-component.js +++ b/Server/public/js/components/partners-component.js @@ -1 +1 @@ -import{S as t,i as n,a as e,b as o,s as r,e as i,n as a,d as m,c as s,o as l,f as c,t as g,g as p,h as d,j as h,l as f,m as u,p as b}from"./index-4348483d.js";import{w as x}from"./index-71440b21.js";import{loadLocaleContent as y}from"../../../../../../../../../js/libraries/serverTools.js";import{partnersByCountry as j}from"../../../../../../../../../js/partners.js";import"../../../../../../../../../js/components/map-component.js";function w(t,n,e){const o=t.slice();return o[7]=n[e][0],o[8]=n[e][1],o}function v(t,n,e){const o=t.slice();return o[11]=n[e],o}function k(t){let n,e,r,i,a,s,l,x,y,v,k,z,E,N,O=t[0].heading+"",R=t[0].p1+"",T=t[0].subheading1+"",A=Object.entries(j),C=[];for(let n=0;ne(1,r=t)));let a=x({});s(t,a,(t=>e(0,o=t))),y(a,"countries",i);let m=y(a,"partners-component",i);return l((()=>{})),[o,r,i,a,function(t){return"en"==m?t:o[t]},function(t){return t.location[0].map((t=>"en"==m?t:o[t])).join(", ")}]}class R extends t{constructor(t){super(),this.shadowRoot.innerHTML="",n(this,{target:this.shadowRoot,props:e(this.attributes),customElement:!0},O,N,r,{},null),t&&t.target&&o(t.target,this,t.anchor)}}customElements.define("partners-component",R);export{R as default}; +import{S as t,i as e,a as n,b as o,s as r,e as i,n as a,d as s,c as m,o as c,g as l,t as p,h as g,j as d,k as h,l as f,m as u,q as b,u as w}from"./index-8c09578c.js";import{w as x}from"./index-77787e10.js";import{loadLocaleContent as j,getData as v}from"../../../../../../../../../js/libraries/serverTools.js";import{addMarkersEntries as y,translate as k}from"../../../../../../../../../js/libraries/mapTools.js";import{addPartnersPinContent as z}from"../../../../../../../../../js/mapFuncs.js";import"../../../../../../../../../js/components/map-component.js";function N(t,e,n){const o=t.slice();return o[12]=e[n][0],o[3]=e[n][1],o}function O(t,e,n){const o=t.slice();return o[15]=e[n],o}function T(t){let e,n,r,i,a,m,c,x,j,v,y,k,z,O,T,D,R,S,_,q,A=t[1].heading+"",C=t[1].p1+"",F=t[1].subheading1+"",H=t[1]["map-prompt"]+"",J=Object.entries(t[0]),K=[];for(let e=0;en(2,r=t)));let a,s,l=x({});m(t,l,(t=>n(1,o=t)));let p=j(l,"partners-component",i);j(l,"countries",i);function g(t,e,n){let o=t([22,0],2);y(a,s,o,e,n,z,"blue")}v("/assets/partners.json",(t=>{n(3,a=JSON.parse(t)),n(0,s={});for(let t of a){let e=t.country;null==t.contact&&(t.contact="https://discord.gg/Qk8KUk787z"),e in s?s[e].push(t):n(0,s[e]=[t],s)}i.update((t=>t+1))})),c((()=>{}));return[s,o,r,a,i,l,p,g,function(t){return"en"==p?t:k(o,t)},function(t){return[t.country,t.state,t.town].filter((t=>null!=t)).map((t=>"en"==p?t:k(o,t))).join(", ")},t=>g(t,o,p)]}class q extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},_,S,r,{},null),t&&t.target&&o(t.target,this,t.anchor)}}customElements.define("partners-component",q);export{q as default}; diff --git a/Server/public/js/components/select-component.js b/Server/public/js/components/select-component.js index df38f5d..88eb532 100644 --- a/Server/public/js/components/select-component.js +++ b/Server/public/js/components/select-component.js @@ -1 +1 @@ -import{S as t,i as e,a as r,b as i,u as o,s as n,f as l,n as s,h as a,d,o as u,t as c,g as h,j as p,v as f,l as m,q as v,m as b,p as g,w}from"./index-4348483d.js";import{px2rem as y,getTextWidth as x,getCanvasFont as $}from"../../../../../../../../../js/libraries/miscTools.js";function k(t,e,r){const i=t.slice();return i[26]=e[r],i[27]=e,i[28]=r,i}function z(t){let e,r,o,n,s,a,u=t[26]+"",p=t[28];const f=()=>t[14](e,p),g=()=>t[14](null,p);function w(){return t[15](t[28])}return{c(){e=l("button"),r=l("span"),o=c(u),n=h(),e.value=t[28]},m(t,l){i(t,e,l),m(e,r),m(r,o),m(e,n),f(),s||(a=v(e,"click",w),s=!0)},p(e,r){t=e,4&r&&u!==(u=t[26]+"")&&b(o,u),p!==t[28]&&(g(),p=t[28],f())},d(t){t&&d(e),g(),s=!1,a()}}}function L(t){let e,r,o,n,s,u,w,y,x,$,L,j=(null!=t[0]?t[0]:"")+"",M=t[2],T=[];for(let e=0;ee==t));r(6,n.innerHTML=t,n),r(5,p[i].style.display="none",p),r(11,c=i)}r(8,f+=1)}}function b(t,e){null!=t&&null!=e&&e[t]!=d&&(r(0,d=e[t]),r(8,f+=1))}function g(){"none"==o.style.display?r(4,o.style.display="initial",o):r(4,o.style.display="none",o)}function k(t,e){r(11,c=t),r(0,d=a[t]),null!=e&&null!=e&&e(t)}function z(){r(4,o.style.display="none",o)}function L(t,e){let r;if(null!=t&&null!=e){let i=getComputedStyle(t).getPropertyValue("--width");if(isNaN(i)||""==i){if(null==m)return m=new ResizeObserver((()=>L(t,e))),void m.observe(l);i=getComputedStyle(l).getPropertyValue("width"),r=y(parseFloat(i.slice(0,i.length-2)))}else r=parseFloat(i.slice(0,i.length-2));let o=[];for(let t=0;tr){let t=1.1*n+"rem";e.style.width=t;for(let r=0;r{n=t,r(6,n)}))}function M(t){w[t?"unshift":"push"]((()=>{l=t,r(7,l)}))}function T(t,e){w[t?"unshift":"push"]((()=>{p[e]=t,r(5,p)}))}u((()=>{h.addEventListener("focusout",z)}));const E=t=>k(t,s);function H(t){w[t?"unshift":"push"]((()=>{o=t,r(4,o)}))}function R(t){w[t?"unshift":"push"]((()=>{i=t,r(3,i)}))}return t.$$set=t=>{"callback"in t&&r(1,s=t.callback),"options"in t&&r(2,a=t.options),"value"in t&&r(0,d=t.value),"valueindex"in t&&r(11,c=t.valueindex)},t.$$.update=()=>{5&t.$$.dirty&&v(d,a),2052&t.$$.dirty&&b(c,a),24&t.$$.dirty&&L(i,o)},[d,s,a,i,o,p,n,l,f,g,k,c,j,M,T,E,H,R]}class T extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:r(this.attributes),customElement:!0},M,j,n,{callback:1,options:2,value:0,valueindex:11},null),t&&(t.target&&i(t.target,this,t.anchor),t.props&&(this.$set(t.props),o()))}static get observedAttributes(){return["callback","options","value","valueindex"]}get callback(){return this.$$.ctx[1]}set callback(t){this.$$set({callback:t}),o()}get options(){return this.$$.ctx[2]}set options(t){this.$$set({options:t}),o()}get value(){return this.$$.ctx[0]}set value(t){this.$$set({value:t}),o()}get valueindex(){return this.$$.ctx[11]}set valueindex(t){this.$$set({valueindex:t}),o()}}customElements.define("select-component",T);export{T as default}; +import{S as t,i as e,a as r,b as i,v as o,s as n,g as l,n as s,j as a,d,o as u,t as c,h,k as p,w as f,m,p as v,q as b,u as g,f as w}from"./index-8c09578c.js";import{px2rem as y,getTextWidth as x,getCanvasFont as $}from"../../../../../../../../../js/libraries/miscTools.js";function k(t,e,r){const i=t.slice();return i[26]=e[r],i[27]=e,i[28]=r,i}function z(t){let e,r,o,n,s,a,u=t[26]+"",p=t[28];const f=()=>t[14](e,p),g=()=>t[14](null,p);function w(){return t[15](t[28])}return{c(){e=l("button"),r=l("span"),o=c(u),n=h(),e.value=t[28]},m(t,l){i(t,e,l),m(e,r),m(r,o),m(e,n),f(),s||(a=v(e,"click",w),s=!0)},p(e,r){t=e,4&r&&u!==(u=t[26]+"")&&b(o,u),p!==t[28]&&(g(),p=t[28],f())},d(t){t&&d(e),g(),s=!1,a()}}}function L(t){let e,r,o,n,s,u,w,y,x,$,L,j=(null!=t[0]?t[0]:"")+"",M=t[2],T=[];for(let e=0;ee==t));r(6,n.innerHTML=t,n),r(5,p[i].style.display="none",p),r(11,c=i)}r(8,f+=1)}}function b(t,e){null!=t&&null!=e&&e[t]!=d&&(r(0,d=e[t]),r(8,f+=1))}function g(){"none"==o.style.display?r(4,o.style.display="initial",o):r(4,o.style.display="none",o)}function k(t,e){r(11,c=t),r(0,d=a[t]),null!=e&&null!=e&&e(t)}function z(){r(4,o.style.display="none",o)}function L(t,e){let r;if(null!=t&&null!=e){let i=getComputedStyle(t).getPropertyValue("--width");if(isNaN(i)||""==i){if(null==m)return m=new ResizeObserver((()=>L(t,e))),void m.observe(l);i=getComputedStyle(l).getPropertyValue("width"),r=y(parseFloat(i.slice(0,i.length-2)))}else r=parseFloat(i.slice(0,i.length-2));let o=[];for(let t=0;tr){let t=1.1*n+"rem";e.style.width=t;for(let r=0;r{n=t,r(6,n)}))}function M(t){w[t?"unshift":"push"]((()=>{l=t,r(7,l)}))}function T(t,e){w[t?"unshift":"push"]((()=>{p[e]=t,r(5,p)}))}u((()=>{h.addEventListener("focusout",z)}));const E=t=>k(t,s);function H(t){w[t?"unshift":"push"]((()=>{o=t,r(4,o)}))}function R(t){w[t?"unshift":"push"]((()=>{i=t,r(3,i)}))}return t.$$set=t=>{"callback"in t&&r(1,s=t.callback),"options"in t&&r(2,a=t.options),"value"in t&&r(0,d=t.value),"valueindex"in t&&r(11,c=t.valueindex)},t.$$.update=()=>{5&t.$$.dirty&&v(d,a),2052&t.$$.dirty&&b(c,a),24&t.$$.dirty&&L(i,o)},[d,s,a,i,o,p,n,l,f,g,k,c,j,M,T,E,H,R]}class T extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:r(this.attributes),customElement:!0},M,j,n,{callback:1,options:2,value:0,valueindex:11},null),t&&(t.target&&i(t.target,this,t.anchor),t.props&&(this.$set(t.props),o()))}static get observedAttributes(){return["callback","options","value","valueindex"]}get callback(){return this.$$.ctx[1]}set callback(t){this.$$set({callback:t}),o()}get options(){return this.$$.ctx[2]}set options(t){this.$$set({options:t}),o()}get value(){return this.$$.ctx[0]}set value(t){this.$$set({value:t}),o()}get valueindex(){return this.$$.ctx[11]}set valueindex(t){this.$$set({valueindex:t}),o()}}customElements.define("select-component",T);export{T as default}; diff --git a/Server/public/js/components/switch-component.js b/Server/public/js/components/switch-component.js index bd960dc..8029be9 100644 --- a/Server/public/js/components/switch-component.js +++ b/Server/public/js/components/switch-component.js @@ -1 +1 @@ -import{S as t,i as e,a as s,b as c,u as i,s as a,f as r,g as o,n as h,h as n,l,q as d,d as u,r as p,o as b}from"./index-4348483d.js";import"../../../../../../../../../js/libraries/miscTools.js";function k(t){let e,s,i,a,b,k;return{c(){e=r("label"),s=r("input"),i=o(),a=r("span"),this.c=h,n(s,"type","checkbox"),n(a,"class","switch-span"),n(e,"class","switch")},m(r,o){c(r,e,o),l(e,s),s.checked=t[0],l(e,i),l(e,a),b||(k=[d(s,"change",t[4]),d(s,"click",t[1])],b=!0)},p(t,[e]){1&e&&(s.checked=t[0])},i:h,o:h,d(t){t&&u(e),b=!1,p(k)}}}function g(t,e,s){let{callback:c=null}=e,{checked:i=!1}=e;const a=()=>{setTimeout((()=>{null!=c?(s(0,i=!i),c()):a()}),100)};return b((()=>{})),t.$$set=t=>{"callback"in t&&s(2,c=t.callback),"checked"in t&&s(0,i=t.checked)},[i,function(){null!=c&&(s(0,i=!i),c())},c,a,function(){i=this.checked,s(0,i)}]}class m extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:s(this.attributes),customElement:!0},g,k,a,{callback:2,checked:0,toggle:3},null),t&&(t.target&&c(t.target,this,t.anchor),t.props&&(this.$set(t.props),i()))}static get observedAttributes(){return["callback","checked","toggle"]}get callback(){return this.$$.ctx[2]}set callback(t){this.$$set({callback:t}),i()}get checked(){return this.$$.ctx[0]}set checked(t){this.$$set({checked:t}),i()}get toggle(){return this.$$.ctx[3]}}customElements.define("switch-component",m);export{m as default}; +import{S as t,i as e,a as s,b as c,v as i,s as a,g as r,h as o,n as h,j as n,m as l,p as d,d as p,r as u,o as b}from"./index-8c09578c.js";import"../../../../../../../../../js/libraries/miscTools.js";function k(t){let e,s,i,a,b,k;return{c(){e=r("label"),s=r("input"),i=o(),a=r("span"),this.c=h,n(s,"type","checkbox"),n(a,"class","switch-span"),n(e,"class","switch")},m(r,o){c(r,e,o),l(e,s),s.checked=t[0],l(e,i),l(e,a),b||(k=[d(s,"change",t[4]),d(s,"click",t[1])],b=!0)},p(t,[e]){1&e&&(s.checked=t[0])},i:h,o:h,d(t){t&&p(e),b=!1,u(k)}}}function g(t,e,s){let{callback:c=null}=e,{checked:i=!1}=e;const a=()=>{setTimeout((()=>{null!=c?(s(0,i=!i),c()):a()}),100)};return b((()=>{})),t.$$set=t=>{"callback"in t&&s(2,c=t.callback),"checked"in t&&s(0,i=t.checked)},[i,function(){null!=c&&(s(0,i=!i),c())},c,a,function(){i=this.checked,s(0,i)}]}class m extends t{constructor(t){super(),this.shadowRoot.innerHTML="",e(this,{target:this.shadowRoot,props:s(this.attributes),customElement:!0},g,k,a,{callback:2,checked:0,toggle:3},null),t&&(t.target&&c(t.target,this,t.anchor),t.props&&(this.$set(t.props),i()))}static get observedAttributes(){return["callback","checked","toggle"]}get callback(){return this.$$.ctx[2]}set callback(t){this.$$set({callback:t}),i()}get checked(){return this.$$.ctx[0]}set checked(t){this.$$set({checked:t}),i()}get toggle(){return this.$$.ctx[3]}}customElements.define("switch-component",m);export{m as default}; diff --git a/Server/public/js/libraries/mapTools.js b/Server/public/js/libraries/mapTools.js new file mode 100644 index 0000000..1f9cfb4 --- /dev/null +++ b/Server/public/js/libraries/mapTools.js @@ -0,0 +1,90 @@ +let contactGeneral =["https://discord.gg/4BUau4AZre","DiscordInviteLink"] + +export function translate(content, x) { + let out = content[x] + if (out==undefined) { + return x + } + else { + return out + } +} + +function addMarkersToLayer(g,layer,content,locale,addPinContent,markerColor) { + let {text,coordinates} = addPinContent(g,content,locale) + var markerIcon = new L.Icon({ + iconUrl: 'https://www.libsoc.org/img/common/markers/marker-' + markerColor + '.png', + shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] + }) + let marker = L.marker(coordinates, {icon: markerIcon}) + marker.addTo(layer).bindPopup(text) +} + +export function addMarkersEntries(entries,entriesByCountry,map,content,locale,addPinContent,markerColor) { + let entriesMarkersLayer = L.layerGroup() + let entriesMarkersLayerOut = L.layerGroup() + let entriesMarkersLayerIn = L.layerGroup() + for (let g of entries) { + if (g.country!="Online" && g.country!="Worldwide") { + addMarkersToLayer(g,entriesMarkersLayerIn,content,locale,addPinContent,markerColor) + } + } + for (let gs of Object.values(entriesByCountry)) { + if (gs.length==1) { + let g = {...gs[0]} + g.country = [g.country] + if (g.country!="Online" && g.country!="Worldwide") { + addMarkersToLayer(g,entriesMarkersLayerOut,content,locale,addPinContent,markerColor) + } + } + else { + if (gs[0].country!="Online" && gs[0].country!="Worldwide") { + let locationName = gs[0].country + let locationCoordinates = [0,0] + let members = 0 + let contact = gs[0].contact + for (let g of gs) { + locationCoordinates[0] += g.latitude + locationCoordinates[1] += g.longitude + members += g.members + if (g.contact[0]!=gs[0].contact[0]) { + contact = contactGeneral + } + } + locationCoordinates[0] = locationCoordinates[0]/gs.length + locationCoordinates[1] = locationCoordinates[1]/gs.length + let gNew = { + country: locationName, + latitude: locationCoordinates[0], + longitude: locationCoordinates[1], + members: members, + contact: contact + } + addMarkersToLayer(gNew,entriesMarkersLayerOut,content,locale,addPinContent,markerColor) + } + } + } + + entriesMarkersLayerOut.addTo(entriesMarkersLayer) + entriesMarkersLayer.addTo(map) + map.on("zoomend", () => onZoomEnd(map,entriesMarkersLayer,entriesMarkersLayerOut,entriesMarkersLayerIn)) + return entriesMarkersLayer +} + +function onZoomEnd(map,entriesMarkersLayer,entriesMarkersLayerOut,entriesMarkersLayerIn) { + let zoomLevel = map.getZoom() + if (zoomLevel==3) { + entriesMarkersLayer.removeLayer(entriesMarkersLayerIn) + entriesMarkersLayerOut.addTo(entriesMarkersLayer) + } + else if (zoomLevel==4) { + entriesMarkersLayer.removeLayer(entriesMarkersLayerOut) + entriesMarkersLayerIn.addTo(entriesMarkersLayer) + } +} + + diff --git a/Server/public/js/mapFuncs.js b/Server/public/js/mapFuncs.js new file mode 100644 index 0000000..f37d0d7 --- /dev/null +++ b/Server/public/js/mapFuncs.js @@ -0,0 +1,178 @@ +import { translate } from "/js/libraries/mapTools.js" + +export function addGroupPinContent(g,content,locale) { + let coordinates + let text = ""+content["Group"]+"
    " + for (let field of ["location","members","contact"]) { + let fieldText = content[field] + ": " + if (field=="contact") { + text += fieldText + "" + g.contact + "" + } + else if (field=="location") { + let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) + let locationString + if (locale=="en") { + locationString = location.map(x => x).join(", ") + } + else { + locationString = location.map(x => translate(content, x)).join(", ") + } + text += fieldText + locationString + "
    " + coordinates = [g.latitude,g.longitude] + } + else { + text += fieldText + g[field] + "
    " + } + } + return {text,coordinates} +} + +export function addCommunePinContent(g,content,locale) { + let coordinates + let text = ""+content["Commune"]+"
    " + for (let field of ["location","status","members","contact"]) { + let fieldText = content[field] + ": " + if (field=="contact") { + text += fieldText + "" + g.contact + "" + } + else if (field=="location") { + let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) + let locationString + if (locale=="en") { + locationString = location.map(x => x).join(", ") + } + else { + locationString = location.map(x => translate(content, x)).join(", ") + } + text += fieldText + locationString + "
    " + coordinates = [g.latitude,g.longitude] + } + else if (field=="status") { + text += fieldText + content[g[field]] + "
    " + } + else { + text += fieldText + g[field] + "
    " + } + } + return {text,coordinates} +} + +export function addCoopPinContent(g,content,locale) { + let coordinates + let text = ""+content["Cooperative"]+"
    " + for (let field of ["logo","name","location","workers","status","website","contact","description"]) { + let fieldText + if (field!="logo") { + fieldText = content[field] + ": " + } + if (field=="logo") { + text += "logo" + "
    " + } + else if (field=="contact") { + text += fieldText + "" + g.contact + "" + "
    " + } + else if (field=="website") { + text += fieldText + "" + g.website + "" + "
    " + } + else if (field=="location") { + let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) + let locationString + if (locale=="en") { + locationString = location.map(x => x).join(", ") + } + else { + locationString = location.map(x => translate(content, x)).join(", ") + } + text += fieldText + locationString + "
    " + coordinates = [g.latitude,g.longitude] + } + else if (field=="market" || field=="status" || field=="description") { + text += fieldText + g[field] + "
    " + } + else { + text += fieldText + g[field] + "
    " + } + } + return {text,coordinates} +} + +export function addPartyPinContent(g,content,locale) { + let coordinates + let text = ""+content["Cooperative"]+"
    " + for (let field of ["logo","name","location","website","contact","description"]) { + let fieldText + if (field!="logo") { + fieldText = content[field] + ": " + } + if (field=="logo") { + text += "logo" + "
    " + } + else if (field=="link") { + text += fieldText + "" + g.link + "" + "
    " + } + else if (field=="website") { + text += fieldText + "" + g.website + "" + "
    " + } + else if (field=="location") { + let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) + let locationString + if (locale=="en") { + locationString = location.map(x => x).join(", ") + } + else { + locationString = location.map(x => translate(content, x)).join(", ") + } + text += fieldText + locationString + "
    " + coordinates = [g.latitude,g.longitude] + } + else if (field=="description") { + text += fieldText + content[g[field]] + "
    " + } + else if (field=="contact") { + text += fieldText + "" + g.contact + "" + "
    " + } + else { + text += fieldText + g[field] + "
    " + } + } + return {text,coordinates} +} + +export function addPartnersPinContent(g,content,locale) { + let coordinates + let text = ""+content["Partner"]+"
    " + for (let field of ["logo","name","location","website","contact","description"]) { + let fieldText + if (field!="logo") { + fieldText = content[field] + ": " + } + if (field=="logo") { + text += "logo" + "
    " + } + else if (field=="contact") { + text += fieldText + "" + g.contact + "" + "
    " + } + else if (field=="website") { + text += fieldText + "" + g.website + "" + "
    " + } + else if (field=="location") { + let location = [g.country,g.state,g.town].filter(x => x!=null && x!=undefined) + let locationString + if (locale=="en") { + locationString = location.map(x => x).join(", ") + } + else { + locationString = location.map(x => translate(content, x)).join(", ") + } + text += fieldText + locationString + "
    " + coordinates = [g.latitude,g.longitude] + } + else if (field=="description") { + text += fieldText + g[field] + "
    " + } + else { + text += fieldText + g[field] + "
    " + } + } + return {text,coordinates} +} \ No newline at end of file diff --git a/Server/public/locales/en/communes-component.json b/Server/public/locales/en/communes-component.json index e9c522f..99f0d64 100644 --- a/Server/public/locales/en/communes-component.json +++ b/Server/public/locales/en/communes-component.json @@ -10,5 +10,6 @@ "forming": "forming", "WhatsAppInviteLink": "WhatsApp invite link", "DiscordInviteLink": "Discord invite link", - "Commune": "Commune" + "Commune": "Commune", + "map-prompt": "Want to appear on our map? Contact us!" } \ No newline at end of file diff --git a/Server/public/locales/en/cooperatives-component.json b/Server/public/locales/en/cooperatives-component.json index b246fd4..06ce0d2 100644 --- a/Server/public/locales/en/cooperatives-component.json +++ b/Server/public/locales/en/cooperatives-component.json @@ -18,6 +18,7 @@ "descriptionChironHealth": "Chiron Health is a health platform providing courses and services on the topics of nutrition, exercise, sleep and mental wellbeing.", "herbalTeas": "herbal teas", "kuuskDescription": "Kuusk is an online store that sells herbal teas from exclusively local wild plants, as well as an online gathering course.", - "Cooperative": "Cooperative" + "Cooperative": "Cooperative", + "map-prompt": "Want to appear on our map? Contact us!" } \ No newline at end of file diff --git a/Server/public/locales/en/countries.json b/Server/public/locales/en/countries.json index 8919b1b..0e0dcd2 100644 --- a/Server/public/locales/en/countries.json +++ b/Server/public/locales/en/countries.json @@ -1,3 +1,3 @@ { - "map-prompt": "Want to appear on our map? Contact us!" + } \ No newline at end of file diff --git a/Server/public/locales/en/groups-component.json b/Server/public/locales/en/groups-component.json index 18e5fb4..9a4eaf7 100644 --- a/Server/public/locales/en/groups-component.json +++ b/Server/public/locales/en/groups-component.json @@ -8,5 +8,6 @@ "contact": "Contact", "DiscordInviteLink": "Discord invite link", "WhatsAppInviteLink": "WhatsApp invite link", - "Group": "Group" + "Group": "Group", + "map-prompt": "Want to appear on our map? Contact us!" } \ No newline at end of file diff --git a/Server/public/locales/en/parties-component.json b/Server/public/locales/en/parties-component.json index 317e43c..4fa7607 100644 --- a/Server/public/locales/en/parties-component.json +++ b/Server/public/locales/en/parties-component.json @@ -5,8 +5,10 @@ "name": "Name", "location": "Location", "members": "Members", - "link": "Link", + "website": "Website", + "contact": "Contact", "description": "Description", "descriptionRoots": "We are a left libertarian organization based in Ireland. We have a focus on rebuilding the country's infrastructure, sense of governance, housing, agricultural industries and youth affairs.", - "Party": "Party" + "Party": "Party", + "map-prompt": "Want to appear on our map? Contact us!" } \ No newline at end of file diff --git a/Server/public/locales/en/partners-component.json b/Server/public/locales/en/partners-component.json index f677ace..37421c6 100644 --- a/Server/public/locales/en/partners-component.json +++ b/Server/public/locales/en/partners-component.json @@ -5,10 +5,11 @@ "subheading2": "Online", "name": "Name", "location": "Location", - "type": "Type", - "link": "Link", + "website": "Website", + "contact": "Contact", "description": "Description", "typeGaiasFall": "a place for discussions", - "descriptionGaiasFall": "Gaia's Fall is a server that promotes Solarpunk ideals, environmentalism, anarchism, and anti-capitalism. We encourage civil debates, discussions of theories and possibilities, and the creation of communities focused on shaping a better world." + "descriptionGaiasFall": "Gaia's Fall is a server that promotes Solarpunk ideals, environmentalism, anarchism, and anti-capitalism. We encourage civil debates, discussions of theories and possibilities, and the creation of communities focused on shaping a better world.", + "map-prompt": "Want to appear on our map? Contact us!" } \ No newline at end of file diff --git a/Server/public/locales/ru/communes-component.json b/Server/public/locales/ru/communes-component.json index d8e3064..b8bf573 100644 --- a/Server/public/locales/ru/communes-component.json +++ b/Server/public/locales/ru/communes-component.json @@ -9,5 +9,6 @@ "forming": "формируется", "WhatsAppInviteLink": "WhatsApp ссылка", "DiscordInviteLink": "Discord ссылка", - "Commune": "Коммуна" + "Commune": "Коммуна", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/public/locales/ru/cooperatives-component.json b/Server/public/locales/ru/cooperatives-component.json index c04de71..c824886 100644 --- a/Server/public/locales/ru/cooperatives-component.json +++ b/Server/public/locales/ru/cooperatives-component.json @@ -18,5 +18,6 @@ "descriptionChironHealth": "Chiron Health — это платформа о здоровье, предлагающая курсы и услуги по вопросам питания, физических упражнений, сна и психического благополучия", "herbalTeas": "травяные чаи", "kuuskDescription": "Kuusk — интернет-магазин, в котором продаются травяные чаи исключительно из местных дикорастущих растений, а также онлайн-курс по собирательству.", - "Cooperative": "Кооператив" + "Cooperative": "Кооператив", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/public/locales/ru/countries.json b/Server/public/locales/ru/countries.json index 56dd33d..0e0dcd2 100644 --- a/Server/public/locales/ru/countries.json +++ b/Server/public/locales/ru/countries.json @@ -1,30 +1,3 @@ { - "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!", - "Online": "Онлайн", - "Denmark": "Дания", - "Estonia": "Эстония", - "Greece": "Греция", - "Latvia": "Латвия", - "Canada": "Канада", - "Ireland": "Ирландия", - "Germany": "Германия", - "USA": "CША", - "Bulgaria": "Болгария", - "Thailand": "Тайланд", - "Colorado": "Колорадо", - "Georgia": "Джорджия", - "Ohio": "Огайо", - "Copenhagen": "Копенгаген", - "Kolding": "Колдинг", - "Kohtla-Järve": "Кохтла-Ярве", - "Athens": "Афины", - "Riga": "Рига", - "Halifax": "Галифакс", - "Montreal": "Монреаль", - "Wiesbaden": "Висбаден", - "Florida": "Флорида", - "Tallinn": "Таллинн", - "Varna": "Варна", - "Louisville": "Луисвилл", - "Toronto": "Торонто" + } \ No newline at end of file diff --git a/Server/public/locales/ru/groups-component.json b/Server/public/locales/ru/groups-component.json index 4d0d9ff..b81838a 100644 --- a/Server/public/locales/ru/groups-component.json +++ b/Server/public/locales/ru/groups-component.json @@ -7,5 +7,6 @@ "contact": "Контакт", "DiscordInviteLink": "Discord ссылка", "WhatsAppInviteLink": "WhatsApp ссылка", - "Group": "Группа" + "Group": "Группа", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/public/locales/ru/join-us-component.json b/Server/public/locales/ru/join-us-component.json index 8ec1522..5b4df5d 100644 --- a/Server/public/locales/ru/join-us-component.json +++ b/Server/public/locales/ru/join-us-component.json @@ -30,5 +30,6 @@ "market": "Рынок", "workers": "Работники", "description": "Описание", - "website": "Вебсайт" + "website": "Вебсайт", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/public/locales/ru/landing-component.json b/Server/public/locales/ru/landing-component.json index e134c65..5eb789b 100644 --- a/Server/public/locales/ru/landing-component.json +++ b/Server/public/locales/ru/landing-component.json @@ -11,5 +11,6 @@ "findUs": "Найди нас", "whatNow": "Что теперь?", "joinUs": "Присоединяйся", - "talkWithUs": "Напиши нам" + "talkWithUs": "Напиши нам", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/public/locales/ru/parties-component.json b/Server/public/locales/ru/parties-component.json index 9a3d3fd..768b953 100644 --- a/Server/public/locales/ru/parties-component.json +++ b/Server/public/locales/ru/parties-component.json @@ -5,9 +5,11 @@ "name": "Имя", "location": "Локация", "members": "Участники", - "link": "Ссылка", + "website": "Вебсайт", + "contact": "Контакт", "description": "Описание", "ireland": "Ирландия", "descriptionRoots": "Мы — левая либертарная организация, базирующаяся в Ирландии. Мы уделяем особое внимание восстановлению инфраструктуры страны, самоуправлению, жилищному строительству, сельскохозяйственной промышленности и делам молодежи.", - "Party": "Партия" + "Party": "Партия", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/public/locales/ru/partners-component.json b/Server/public/locales/ru/partners-component.json index 3ebd453..4d5a616 100644 --- a/Server/public/locales/ru/partners-component.json +++ b/Server/public/locales/ru/partners-component.json @@ -6,8 +6,10 @@ "name": "Название", "location": "Локация", "type": "Тип", - "link": "Ссылка", + "website": "Вебсайт", + "contact": "Контакт", "description": "Описание", "typeGaiasFall": "место для общения", - "descriptionGaiasFall": "Gaia's Fall — это сервер, который продвигает идеалы соларпанка, защиту окружающей среды, анархизм и антикапитализм. Мы поощряем гражданские дебаты, обсуждение теорий и возможностей, а также создание сообществ, сосредоточенных на формировании лучшего мира." + "descriptionGaiasFall": "Gaia's Fall — это сервер, который продвигает идеалы соларпанка, защиту окружающей среды, анархизм и антикапитализм. Мы поощряем гражданские дебаты, обсуждение теорий и возможностей, а также создание сообществ, сосредоточенных на формировании лучшего мира.", + "map-prompt": "Хочешь оказаться на нашей карте? Напиши нам!" } \ No newline at end of file diff --git a/Server/routes.jl b/Server/routes.jl index 94b5019..7c3157c 100644 --- a/Server/routes.jl +++ b/Server/routes.jl @@ -5,24 +5,50 @@ using Server.BasicController #---Basic----------------------------------------------------------- +route("/:locale/*", BasicController.landing, named = :landing) + route("/:locale/manifesto/*", BasicController.manifesto, named = :manifest) route("/:locale/join-us/*", BasicController.join_us, named = :join_us) -route("/:locale/groups/*", BasicController.groups, named = :groups) - -route("/:locale/groups-add/*", BasicController.groups_add, named = :groups_add) - -route("/:locale/groups-add-post/*", BasicController.groups_add_post, method = POST, named = :groups_add_post) - -route("/:locale/cooperatives/*", BasicController.cooperatives, named = :cooperatives) - -route("/:locale/communes/*", BasicController.communes, named = :communes) - -route("/:locale/parties/*", BasicController.parties, named = :parties) - -route("/:locale/partners/*", BasicController.partners, named = :partners) - route("/:locale/political-compass/*", BasicController.political_compass, named = :political_compass) -route("/:locale/*", BasicController.landing, named = :landing) +#---Groups---------------------------------------------------------- + +route("/:locale/groups/*", GroupsController.groups, named = :groups) + +route("/:locale/groups-add/*", GroupsController.groups_add, named = :groups_add) + +route("/:locale/groups-add-post/*", GroupsController.groups_add_post, method = POST, named = :groups_add_post) + +#---Coops---------------------------------------------------------- + +route("/:locale/cooperatives/*", CooperativesController.cooperatives, named = :cooperatives) + +route("/:locale/cooperatives-add/*", CooperativesController.cooperatives_add, named = :cooperatives_add) + +route("/:locale/cooperatives-add-post/*", CooperativesController.cooperatives_add_post, method = POST, named = :cooperatives_add_post) + +#---Communes---------------------------------------------------------- + +route("/:locale/communes/*", CommunesController.communes, named = :communes) + +route("/:locale/communes-add/*", CommunesController.communes_add, named = :communes_add) + +route("/:locale/communes-add-post/*", CommunesController.communes_add_post, method = POST, named = :communes_add_post) + +#---Parties---------------------------------------------------------- + +route("/:locale/parties/*", PartiesController.parties, named = :parties) + +route("/:locale/parties-add/*", PartiesController.parties_add, named = :parties_add) + +route("/:locale/parties-add-post/*", PartiesController.parties_add_post, method = POST, named = :parties_add_post) + +#---Partners--------------------------------------------------------- + +route("/:locale/partners/*", PartnersController.partners, named = :partners) + +route("/:locale/partners-add/*", PartnersController.partners_add, named = :partners_add) + +route("/:locale/partners-add-post/*", PartnersController.partners_add_post, method = POST, named = :partners_add_post) \ No newline at end of file