This commit is contained in:
a-ill 2023-07-12 21:25:28 +03:00
parent 47c4eab6f7
commit 1a116602bc
35 changed files with 407 additions and 20 deletions

View File

@ -13,6 +13,7 @@ dict_layouts = Dict(
:groups => generate_layout_html("main",controller,"groups",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"),
)
@ -96,6 +97,17 @@ const partners_info = Dict(
)
)
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",
@ -174,6 +186,14 @@ function partners()
)
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__,

View File

@ -0,0 +1 @@
<parties-component></parties-component>

View File

@ -0,0 +1,52 @@
export let parties = [
{
logo: "roots",
name: "Roots",
location: ["ireland",[52.98479517270413, -7.649233227534782]],
members: 6,
link: "https://discord.gg/pSTMacJZsK",
description: "descriptionRoots"
}
]
export function addMarkersParties(map,content) {
for (let g of parties) {
let coordinates
let text = ""
for (let field in g) {
let fieldText
if (field!="logo") {
fieldText = content[field] + ": "
}
if (field=="logo") {
text += "<picture><source srcset=" + "/img/parties/" + g.logo + ".webp><source srcset='/img/parties/" + g.logo + ".png'><img alt='logo' style='position: relative; max-height: 5rem; max-width: 100%; margin: auto;'></picture>" + "<br>"
}
else if (field=="link") {
text += fieldText + "<a href='" + g.link + "' target='_blank' rel=noreferrer>" + g.link + "</a>" + "<br>"
}
else if (field=="website") {
text += fieldText + "<a href='" + g.website + "' target='_blank' rel=noreferrer>" + g.website + "</a>" + "<br>"
}
else if (field=="location") {
text += fieldText + content[g[field][0]] + "<br>"
coordinates = g[field][1]
}
else if (field=="description") {
text += fieldText + content[g[field]] + "<br>"
}
else {
text += fieldText + g[field] + "<br>"
}
}
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(map).bindPopup(text)
}
}

View File

@ -14,6 +14,7 @@
"findOur": "Find our",
"group": "group",
"commune": "commune",
"party": "party",
"or": "or",
"cooperative": "cooperative",
"nearYou": "near you and join to help make a world we both envision a reality.",

View File

@ -5,5 +5,7 @@
"communesTitle": "COMMUNES",
"communesText": "We establish communes based on libertarian socialist principles, where commune members have ownership over land, houses, and the means of production as well as make decisions using direct democracy. We are gradually expanding our socialist world, one commune at a time.",
"cooperativesTitle": "COOPERATIVES",
"cooperativesText": "We form worker cooperatives to finance the operations of our groups and communes. Recognizing that economic power influences political power, we consider the establishment of cooperatives to be one of the initial steps towards achieving socialism."
"cooperativesText": "We form worker cooperatives to finance the operations of our groups and communes. Recognizing that economic power influences political power, we consider the establishment of cooperatives to be one of the initial steps towards achieving socialism.",
"partiesTitle": "PARTIES",
"partiesText": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals."
}

View File

@ -5,5 +5,6 @@
"groups": "Groups",
"communes": "Communes",
"cooperatives": "Cooperatives",
"parties": "Parties",
"partners": "Partners"
}

View File

@ -0,0 +1,12 @@
{
"heading": "Parties",
"p1": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals.",
"subheading1": "Our Parties",
"name": "Name",
"location": "Location",
"members": "Members",
"link": "Link",
"description": "Description",
"ireland": "Ireland",
"descriptionRoots": "We are a left libertarian organization based in Ireland. We have a focus on rebuilding the countries infrastructure, sense of governance, housing, agricultural industries and youth affairs."
}

View File

@ -13,7 +13,8 @@
"subheading2": "Найди нас",
"findOur": "Найди нашу",
"group": "группу",
"community": "коммуну",
"commune": "коммуну",
"party": "партию",
"or": "или",
"cooperative": "кооператив",
"nearYou": "около тебя и присоединяйся для того, чтобы сделать тот мир, о котором мы все мечтаем, реальностью.",

View File

@ -2,8 +2,10 @@
"top": "Эта организация представляет собой децентрализованную федерацию, основанную на принципе свободной ассоциации. Она состоит из многих групп людей, объединенные одной целью: свержение авторитарных эксплуататорских систем, представленных различными формами капитализма, и замена их либертарными социалистическими системами с целью создания более справедливого и демократического мира.",
"groupsTitle": "ГРУППЫ",
"groupsText": "Мы организуем группы в целях образования, защиты наших интересов и взаимопомощи. Наша цель — продемонстрировать людям, как нынешние политико-экономические системы пагубно влияют на наше благополучие, представить им альтернативные варианты и заниматься взаимопомощью, чтобы сделать жизнь при капитализме легче.",
"communitiesTitle": "КОММУНЫ",
"communitiesText": "Мы создаем коммуны на основе либертарных социалистических принципов, где члены коммун владеют своей землей, домами и средствами производства, а также принимают решения, используя прямую демократию. Мы постепенно, по одной коммуне, расширяем наш социалистический мир.",
"communesTitle": "КОММУНЫ",
"communesText": "Мы создаем коммуны на основе либертарных социалистических принципов, где члены коммун владеют своей землей, домами и средствами производства, а также принимают решения, используя прямую демократию. Мы постепенно, по одной коммуне, расширяем наш социалистический мир.",
"cooperativesTitle": "КООПЕРАТИВЫ",
"cooperativesText": "Мы формируем рабочие кооперативы для финансирования операций наших групп и коммун. Признавая, что экономическая власть влияет на политическую власть, мы считаем создание кооперативов одним из первых шагов на пути к социализму."
"cooperativesText": "Мы формируем рабочие кооперативы для финансирования операций наших групп и коммун, а также формирования основы новой социалистической экономики. Признавая, что экономическая власть влияет на политическую власть, мы считаем создание кооперативов одним из первых шагов на пути к социализму.",
"partiesTitle": "ПАРТИИ",
"partiesText": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарианского социализма с помощью институтов, действующих против наших целей."
}

View File

@ -5,5 +5,6 @@
"groups": "Группы",
"communes": "Коммуны",
"cooperatives": "Кооперативы",
"parties": "Партии",
"partners": "Партнеры"
}

View File

@ -0,0 +1,12 @@
{
"heading": "Партии",
"p1": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарианского социализма с помощью институтов, действующих против наших целей.",
"subheading1": "Наши партии",
"name": "Имя",
"location": "Локация",
"members": "Участники",
"link": "Ссылка",
"description": "Описание",
"ireland": "Ирландия",
"descriptionRoots": "Мы — левая либертарная организация, базирующаяся в Ирландии. Мы уделяем особое внимание восстановлению инфраструктуры страны, самоуправлению, жилищному строительству, сельскохозяйственной промышленности и делам молодежи."
}

View File

@ -10,6 +10,7 @@ import watch from "rollup-plugin-watch";
const production = !process.env.ROLLUP_WATCH;
function serve() {
let server;

View File

@ -7,6 +7,7 @@
import { addMarkersGroups } from '/js/groups.js'
import { addMarkersCoops } from '/js/coops.js'
import { addMarkersCommunities } from '/js/communities.js'
import { addMarkersParties } from '/js/parties.js'
import { loadLocaleContent } from "/js/libraries/serverTools.js"
// Import components
@ -19,10 +20,12 @@
let contentGroups = writable({})
let contentCommunities = writable({})
let contentCoops = writable({})
let contentParties = writable({})
loadLocaleContent(contentGroups,"groups-component")
loadLocaleContent(contentCommunities,"communities-component")
loadLocaleContent(contentCoops,"cooperatives-component")
loadLocaleContent(contentParties,"parties-component")
let locale = loadLocaleContent(content,"join-us-component",loaded)
@ -31,6 +34,7 @@
addMarkersGroups(map,$contentGroups)
addMarkersCommunities(map,$contentCommunities)
addMarkersCoops(map,$contentCoops)
addMarkersParties(map,$contentParties)
}
onMount(() => {
@ -63,8 +67,9 @@
<p>{$content.findOur}</p>
<ol id="entities-list">
<li><a href={"/" + locale + "/groups"}>{$content.group}</a>,</li>
<li><a href={"/" + locale + "/communes"}>{$content.commune}</a> {$content.or}</li>
<li><a href={"/" + locale + "/cooperatives"}>{$content.cooperative}</a></li>
<li><a href={"/" + locale + "/communes"}>{$content.commune}</a></li>
<li><a href={"/" + locale + "/cooperatives"}>{$content.cooperative}</a> {$content.or}</li>
<li><a href={"/" + locale + "/parties"}>{$content.party}</a></li>
</ol>
<p>{$content.nearYou}</p>
</div>
@ -103,6 +108,9 @@
#entities-list li:nth-of-type(3):before {
background-image: url(https://www.libsoc.org/img/common/markers/marker-blue.png);
}
#entities-list li:nth-of-type(4):before {
background-image: url(https://www.libsoc.org/img/common/markers/marker-gold.png);
}
#entities-list li::marker {
display: inline-block;

View File

@ -17,10 +17,10 @@
function changeWidth(locale) {
if (locale=="ru") {
gridWidth = "1.2fr 1.05fr 1fr"
gridWidth = "1fr 1fr"
}
else {
gridWidth = "1.2fr 1.1fr 1fr"
gridWidth = "1fr 1fr"
}
}
@ -59,6 +59,11 @@
<img id="coops-img" src="/img/common/coops.svg" alt="coops">
<p>{$content.cooperativesText}</p>
</div>
<div>
<h2>{$content.partiesTitle}</h2>
<img id="parties-img" src="/img/common/parties.svg" alt="coops">
<p>{$content.partiesText}</p>
</div>
</div>
</div>
</div>
@ -72,7 +77,7 @@
text-align: center;
}
#groups-img, #communes-img, #coops-img {
#groups-img, #communes-img, #coops-img, #parties-img {
position: absolute;
left: 50%;
transform: translate(-50%);
@ -81,6 +86,11 @@
height: 8rem;
}
#coops-img {
margin-top: 0.5rem;
height: 7.5rem;
}
#text-container {
max-width: calc(100vw - 4rem);
margin: auto;
@ -93,7 +103,7 @@
#container {
margin: auto;
max-width: 1000px;
max-width: 800px;
margin-top: 2rem;
margin-bottom: 5rem;
}
@ -109,6 +119,7 @@
#container-grid {
display: grid;
grid-template-columns: var(--grid-width);
grid-template-rows: var(--grid-width);
grid-gap: 4rem;
margin-top: 2rem;
}

View File

@ -76,6 +76,7 @@
<li><a href={"/"+locale+"/groups"}>{$content.groups}</a></li>
<li><a href={"/"+locale+"/communes"}>{$content.communes}</a></li>
<li><a href={"/"+locale+"/cooperatives"}>{$content.cooperatives}</a></li>
<li><a href={"/"+locale+"/parties"}>{$content.parties}</a></li>
<li><a href={"/"+locale+"/partners"}>{$content.partners}</a></li>
<li id="locales">
<button on:click={showLocales}>

View File

@ -0,0 +1,172 @@
<svelte:options tag="parties-component" />
<script>
// Import statements
import { onMount } from 'svelte'
import { writable } from 'svelte/store';
import { parties, addMarkersParties } from '/js/parties.js'
import { loadLocaleContent } from "/js/libraries/serverTools.js"
// Import components
import "/js/components/map-component.js"
// Main code
let loaded
let content = writable({})
let locale = loadLocaleContent(content,"parties-component",loaded)
function mapCallbackParties(createMap,content) {
let map = createMap([22, 0],2)
addMarkersParties(map,content)
}
onMount(() => {
})
</script>
{#key loaded}
{#if Object.keys($content).length!=0}
<div id="container">
<!--<img src="img/crowd.png" id="crowd" alt="crowd">-->
<div id="text-container">
<h1>{$content.heading}</h1>
<img id="party-img" src="/img/common/parties.svg" alt="party">
<p>{$content.p1}</p>
<h3>{$content.subheading1}</h3>
<map-component id="map" callback={(createMap) => mapCallbackParties(createMap,$content)}></map-component>
{#each parties as party}
<div class="location-info">
<div class="img-general-info">
<picture>
<source srcset={"/img/parties/"+party.logo+".webp"}>
<source srcset={"/img/parties/"+party.logo+".jpg"}>
<img class="party-logo" alt="logo">
</picture>
<div>
<p><b>{$content.name}: </b>{party.name}</p>
<p><b>{$content.location}: </b>{$content[party.location[0]]}</p>
<p><b>{$content.members}: </b>{party.members}</p>
<p><b>{$content.link}: </b><a href={party.link} target=;_blank; rel=noreferrer>{party.link}</a></p>
</div>
</div>
<p><b>{$content.description}: </b>{$content[party.description]}</p>
</div>
{/each}
</div>
</div>
{/if}
{/key}
<style>
@import '/css/common.css';
#party-img {
position: absolute;
width: 11.5rem;
left: 50%;
transform: translate(-50%);
z-index: 0;
opacity: 0.2;
}
#text-container>:nth-child(3) {
margin-top: 8rem;
}
h4 {
margin-bottom: 2rem;
}
.location-info {
position: relative;
margin-bottom: 2rem;
}
.location-info p {
margin-bottom: 0;
}
.img-general-info {
display: flex;
align-content: center;
width: 100%;
gap: 1.5rem;
align-items: center;
margin-bottom: 1rem;
}
.img-general-info>:nth-child(2) {
flex:none;
}
.party-logo {
position: relative;
right: 0;
max-height: 7rem;
max-width: 100%;
border-radius: 1rem;
}
a {
color: #DD1C1A;
}
#map {
--height: 30rem;
--width: 100%;
--margin-bottom: 3rem;
}
#text-container {
max-width: calc(100vw - 4rem);
margin: auto;
}
h1 {
margin-bottom: 1rem;
font-size: 2.2rem;
text-align: center;
}
h3 {
margin-bottom: 1rem;
}
#container {
margin: auto;
max-width: 800px;
margin-top: 1rem;
margin-bottom: 4rem;
}
#container>div>p {
margin-bottom: 1rem;
}
#container p {
text-align: justify;
}
@media only screen and (max-width: 500px) {
.img-general-info {
display: flex;
flex-direction: column;
align-content: left;
width: 100%;
gap: 1rem;
align-items: left;
margin-bottom: 0rem;
}
.img-general-info>:nth-child(1) {
width: max-content;
}
.img-general-info>:nth-child(2) {
width: 100%;
}
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,3 @@
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M21.9445 14.4719L21.9661 14.5336L21.9892 14.6345L21.9981 14.7331V21.25C21.9981 21.6297 21.7159 21.9435 21.3499 21.9932L21.2481 22H2.75C2.3703 22 2.05651 21.7178 2.00685 21.3518L2 21.25V14.7506L2.00184 14.6977L2.01271 14.6122C2.02285 14.5584 2.03841 14.5072 2.05894 14.4587L4.81824 8.44003C4.92517 8.2068 5.14245 8.04682 5.39153 8.01047L5.5 8.0026L8.03982 8.00183L7.25089 9.37206L7.18282 9.50183L5.981 9.502L3.918 13.9998H20.07L18.0428 9.65383L18.9052 8.15653C18.9718 8.20739 19.0301 8.26957 19.0771 8.3411L19.1297 8.43553L21.9445 14.4719ZM13.3652 2.05565L13.4566 2.10062L18.6447 5.10375C18.9729 5.29371 19.1033 5.69521 18.9636 6.03728L18.9187 6.1289L16.112 11.001L17.25 11.0016C17.6642 11.0016 18 11.3374 18 11.7516C18 12.1313 17.7178 12.4451 17.3518 12.4948L17.25 12.5016L15.248 12.501L15.2471 12.504H11.1691L11.166 12.501L6.75 12.5016C6.33579 12.5016 6 12.1658 6 11.7516C6 11.3719 6.28215 11.0581 6.64823 11.0085L6.75 11.0016L8.573 11.001L8.39145 10.8963C8.06327 10.7063 7.93285 10.3048 8.0726 9.96272L8.11747 9.8711L12.4341 2.37536C12.6235 2.04633 13.024 1.91557 13.3652 2.05565ZM13.3559 3.77529L9.78781 9.97119L11.566 11.001H14.383L17.248 6.02818L13.3559 3.77529Z" fill="#5B6970"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{S as i,i as t,a as o,b as e,s as r,e as s,n,d as m,c as a,o as c,f as g,g as d,t as p,h as l,j as u,v as h,l as v,m as f,w as x}from"./index-4348483d.js";import{loadLocaleContent as w}from"../../../../../../../../../js/libraries/serverTools.js";import{w as T}from"./index-71440b21.js";function b(i){let t,o,r,s,n,a,c,x,w,T,b,y,j,k,z,E,H,L,M,O,R,N,S,q,A,B,C,D,F,G,I,J,K,P,Q,U,V,W=i[2].top+"",X=i[2].groupsTitle+"",Y=i[2].groupsText+"",Z=i[2].communesTitle+"",$=i[2].communesText+"",_=i[2].cooperativesTitle+"",ii=i[2].cooperativesText+"";return{c(){t=g("div"),o=g("picture"),o.innerHTML='<source srcset="/img/crowd.webp"/> \n <source srcset="/img/crowd.png"/> \n <img id="crowd" alt="crowd"/>',r=d(),s=g("div"),n=g("p"),a=p(W),c=d(),x=g("div"),w=g("div"),T=g("h2"),b=p(X),y=d(),j=g("img"),z=d(),E=g("p"),H=p(Y),L=d(),M=g("div"),O=g("h2"),R=p(Z),N=d(),S=g("img"),A=d(),B=g("p"),C=p($),D=d(),F=g("div"),G=g("h2"),I=p(_),J=d(),K=g("img"),Q=d(),U=g("p"),V=p(ii),l(j,"id","groups-img"),u(j.src,k="/img/common/groups.svg")||l(j,"src","/img/common/groups.svg"),l(j,"alt","groups"),l(S,"id","communes-img"),u(S.src,q="/img/common/commune.svg")||l(S,"src","/img/common/commune.svg"),l(S,"alt","communes"),l(K,"id","coops-img"),u(K.src,P="/img/common/coops.svg")||l(K,"src","/img/common/coops.svg"),l(K,"alt","coops"),l(x,"id","container-grid"),h(x,"--grid-width",i[1]),l(s,"id","text-container"),l(t,"id","container")},m(m,g){e(m,t,g),v(t,o),v(t,r),v(t,s),v(s,n),v(n,a),v(s,c),v(s,x),v(x,w),v(w,T),v(T,b),v(w,y),v(w,j),v(w,z),v(w,E),v(E,H),v(x,L),v(x,M),v(M,O),v(O,R),v(M,N),v(M,S),v(M,A),v(M,B),v(B,C),v(x,D),v(x,F),v(F,G),v(G,I),v(F,J),v(F,K),v(F,Q),v(F,U),v(U,V),i[5](x)},p(i,t){4&t&&W!==(W=i[2].top+"")&&f(a,W),4&t&&X!==(X=i[2].groupsTitle+"")&&f(b,X),4&t&&Y!==(Y=i[2].groupsText+"")&&f(H,Y),4&t&&Z!==(Z=i[2].communesTitle+"")&&f(R,Z),4&t&&$!==($=i[2].communesText+"")&&f(C,$),4&t&&_!==(_=i[2].cooperativesTitle+"")&&f(I,_),4&t&&ii!==(ii=i[2].cooperativesText+"")&&f(V,ii),2&t&&h(x,"--grid-width",i[1])},d(o){o&&m(t),i[5](null)}}}function y(i){let t,o=0!=Object.keys(i[2]).length,r=o&&b(i);return{c(){r&&r.c(),t=s(),this.c=n},m(i,o){r&&r.m(i,o),e(i,t,o)},p(i,[e]){4&e&&(o=0!=Object.keys(i[2]).length),o?r?r.p(i,e):(r=b(i),r.c(),r.m(t.parentNode,t)):r&&(r.d(1),r=null)},i:n,o:n,d(i){r&&r.d(i),i&&m(t)}}}function j(i,t,o){let e,r,s,n,m=T({});function g(i){o(1,s="ru"==i?"1.2fr 1.05fr 1fr":"1.2fr 1.1fr 1fr")}return a(i,m,(i=>o(2,e=i))),g(w(m,"landing-component",n,g)),c((()=>{})),[r,s,e,n,m,function(i){x[i?"unshift":"push"]((()=>{r=i,o(0,r)}))}]}class k extends i{constructor(i){super(),this.shadowRoot.innerHTML="<style>@import '/css/common.css';#container-grid>div>h2{text-align:center}#groups-img,#communes-img,#coops-img{position:absolute;left:50%;transform:translate(-50%);z-index:0;opacity:0.2;height:8rem}#text-container{max-width:calc(100vw - 4rem);margin:auto}#crowd{width:100%;margin-bottom:2rem}#container{margin:auto;max-width:1000px;margin-top:2rem;margin-bottom:5rem}#container>div>p{margin-bottom:1rem}#container p{text-align:justify}#container-grid{display:grid;grid-template-columns:var(--grid-width);grid-gap:4rem;margin-top:2rem}#container-grid>div{position:relative}#container-grid>div>p{position:relative;margin-top:5rem;z-index:2}@media only screen and (max-width: 1060px){#container-grid{display:grid;grid-template-columns:1fr;grid-gap:2rem}}</style>",t(this,{target:this.shadowRoot,props:o(this.attributes),customElement:!0},j,y,r,{},null),i&&i.target&&e(i.target,this,i.anchor)}}customElements.define("landing-component",k);export{k as default};
import{S as i,i as t,a as e,b as o,s as r,e as s,n as m,d as n,c as a,o as c,f as g,g as p,t as d,h as l,j as u,v as h,l as v,m as x,w}from"./index-4348483d.js";import{loadLocaleContent as T}from"../../../../../../../../../js/libraries/serverTools.js";import{w as f}from"./index-71440b21.js";function b(i){let t,e,r,s,m,a,c,w,T,f,b,y,j,k,z,E,H,L,M,O,R,N,S,q,A,B,C,D,F,G,I,J,K,P,Q,U,V,W,X,Y,Z,$,_,ii,ti,ei,oi,ri=i[2].top+"",si=i[2].groupsTitle+"",mi=i[2].groupsText+"",ni=i[2].communesTitle+"",ai=i[2].communesText+"",ci=i[2].cooperativesTitle+"",gi=i[2].cooperativesText+"",pi=i[2].partiesTitle+"",di=i[2].partiesText+"";return{c(){t=g("div"),e=g("picture"),e.innerHTML='<source srcset="/img/crowd.webp"/> \n <source srcset="/img/crowd.png"/> \n <img id="crowd" alt="crowd"/>',r=p(),s=g("div"),m=g("p"),a=d(ri),c=p(),w=g("div"),T=g("div"),f=g("h2"),b=d(si),y=p(),j=g("img"),z=p(),E=g("p"),H=d(mi),L=p(),M=g("div"),O=g("h2"),R=d(ni),N=p(),S=g("img"),A=p(),B=g("p"),C=d(ai),D=p(),F=g("div"),G=g("h2"),I=d(ci),J=p(),K=g("img"),Q=p(),U=g("p"),V=d(gi),W=p(),X=g("div"),Y=g("h2"),Z=d(pi),$=p(),_=g("img"),ti=p(),ei=g("p"),oi=d(di),l(j,"id","groups-img"),u(j.src,k="/img/common/groups.svg")||l(j,"src","/img/common/groups.svg"),l(j,"alt","groups"),l(S,"id","communes-img"),u(S.src,q="/img/common/commune.svg")||l(S,"src","/img/common/commune.svg"),l(S,"alt","communes"),l(K,"id","coops-img"),u(K.src,P="/img/common/coops.svg")||l(K,"src","/img/common/coops.svg"),l(K,"alt","coops"),l(_,"id","parties-img"),u(_.src,ii="/img/common/parties.svg")||l(_,"src","/img/common/parties.svg"),l(_,"alt","coops"),l(w,"id","container-grid"),h(w,"--grid-width",i[1]),l(s,"id","text-container"),l(t,"id","container")},m(n,g){o(n,t,g),v(t,e),v(t,r),v(t,s),v(s,m),v(m,a),v(s,c),v(s,w),v(w,T),v(T,f),v(f,b),v(T,y),v(T,j),v(T,z),v(T,E),v(E,H),v(w,L),v(w,M),v(M,O),v(O,R),v(M,N),v(M,S),v(M,A),v(M,B),v(B,C),v(w,D),v(w,F),v(F,G),v(G,I),v(F,J),v(F,K),v(F,Q),v(F,U),v(U,V),v(w,W),v(w,X),v(X,Y),v(Y,Z),v(X,$),v(X,_),v(X,ti),v(X,ei),v(ei,oi),i[5](w)},p(i,t){4&t&&ri!==(ri=i[2].top+"")&&x(a,ri),4&t&&si!==(si=i[2].groupsTitle+"")&&x(b,si),4&t&&mi!==(mi=i[2].groupsText+"")&&x(H,mi),4&t&&ni!==(ni=i[2].communesTitle+"")&&x(R,ni),4&t&&ai!==(ai=i[2].communesText+"")&&x(C,ai),4&t&&ci!==(ci=i[2].cooperativesTitle+"")&&x(I,ci),4&t&&gi!==(gi=i[2].cooperativesText+"")&&x(V,gi),4&t&&pi!==(pi=i[2].partiesTitle+"")&&x(Z,pi),4&t&&di!==(di=i[2].partiesText+"")&&x(oi,di),2&t&&h(w,"--grid-width",i[1])},d(e){e&&n(t),i[5](null)}}}function y(i){let t,e=0!=Object.keys(i[2]).length,r=e&&b(i);return{c(){r&&r.c(),t=s(),this.c=m},m(i,e){r&&r.m(i,e),o(i,t,e)},p(i,[o]){4&o&&(e=0!=Object.keys(i[2]).length),e?r?r.p(i,o):(r=b(i),r.c(),r.m(t.parentNode,t)):r&&(r.d(1),r=null)},i:m,o:m,d(i){r&&r.d(i),i&&n(t)}}}function j(i,t,e){let o,r,s,m,n=f({});function g(i){e(1,s="1fr 1fr")}a(i,n,(i=>e(2,o=i)));T(n,"landing-component",m,g);return g(),c((()=>{})),[r,s,o,m,n,function(i){w[i?"unshift":"push"]((()=>{r=i,e(0,r)}))}]}class k extends i{constructor(i){super(),this.shadowRoot.innerHTML="<style>@import '/css/common.css';#container-grid>div>h2{text-align:center}#groups-img,#communes-img,#coops-img,#parties-img{position:absolute;left:50%;transform:translate(-50%);z-index:0;opacity:0.2;height:8rem}#coops-img{margin-top:0.5rem;height:7.5rem}#text-container{max-width:calc(100vw - 4rem);margin:auto}#crowd{width:100%;margin-bottom:2rem}#container{margin:auto;max-width:800px;margin-top:2rem;margin-bottom:5rem}#container>div>p{margin-bottom:1rem}#container p{text-align:justify}#container-grid{display:grid;grid-template-columns:var(--grid-width);grid-template-rows:var(--grid-width);grid-gap:4rem;margin-top:2rem}#container-grid>div{position:relative}#container-grid>div>p{position:relative;margin-top:5rem;z-index:2}@media only screen and (max-width: 1060px){#container-grid{display:grid;grid-template-columns:1fr;grid-gap:2rem}}</style>",t(this,{target:this.shadowRoot,props:e(this.attributes),customElement:!0},j,y,r,{},null),i&&i.target&&o(i.target,this,i.anchor)}}customElements.define("landing-component",k);export{k as default};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{S as t,i as e,a as i,b as n,s as o,e as r,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,k as f,l as u,m as b,p as x}from"./index-4348483d.js";import{w}from"./index-71440b21.js";import{parties as y,addMarkersParties 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,i){const n=t.slice();return n[6]=e[i],n}function z(t){let e,i,o,r,a,s,l,w,j,v,z,E,O,R,T,A,C,H=t[0].heading+"",L=t[0].p1+"",M=t[0].subheading1+"",N=y,S=[];for(let e=0;e<N.length;e+=1)S[e]=D(k(t,N,e));return{c(){e=c("div"),i=c("div"),o=c("h1"),r=g(H),a=p(),s=c("img"),w=p(),j=c("p"),v=g(L),z=p(),E=c("h3"),O=g(M),R=p(),T=c("map-component"),C=p();for(let t=0;t<S.length;t+=1)S[t].c();d(s,"id","party-img"),h(s.src,l="/img/common/parties.svg")||d(s,"src","/img/common/parties.svg"),d(s,"alt","party"),f(T,"id","map"),f(T,"callback",A=t[4]),d(i,"id","text-container"),d(e,"id","container")},m(t,m){n(t,e,m),u(e,i),u(i,o),u(o,r),u(i,a),u(i,s),u(i,w),u(i,j),u(j,v),u(i,z),u(i,E),u(E,O),u(i,R),u(i,T),u(i,C);for(let t=0;t<S.length;t+=1)S[t].m(i,null)},p(t,e){if(1&e&&H!==(H=t[0].heading+"")&&b(r,H),1&e&&L!==(L=t[0].p1+"")&&b(v,L),1&e&&M!==(M=t[0].subheading1+"")&&b(O,M),1&e&&A!==(A=t[4])&&f(T,"callback",A),1&e){let n;for(N=y,n=0;n<N.length;n+=1){const o=k(t,N,n);S[n]?S[n].p(o,e):(S[n]=D(o),S[n].c(),S[n].m(i,null))}for(;n<S.length;n+=1)S[n].d(1);S.length=N.length}},d(t){t&&m(e),x(S,t)}}}function D(t){let e,i,o,r,a,s,l,h,f,x,w,y,j,v,k,z,D,E,O,R,T,A,C,H,L,M,N,S,_,q,B,F,G,I,J,K,P,Q,U,V,W,X=t[0].name+"",Y=t[6].name+"",Z=t[0].location+"",$=t[0][t[6].location[0]]+"",tt=t[0].members+"",et=t[6].members+"",it=t[0].link+"",nt=t[6].link+"",ot=t[0].description+"",rt=t[0][t[6].description]+"";return{c(){e=c("div"),i=c("div"),o=c("picture"),r=c("source"),a=p(),s=c("source"),l=p(),h=c("img"),f=p(),x=c("div"),w=c("p"),y=c("b"),j=g(X),v=g(": "),k=g(Y),z=p(),D=c("p"),E=c("b"),O=g(Z),R=g(": "),T=g($),A=p(),C=c("p"),H=c("b"),L=g(tt),M=g(": "),N=g(et),S=p(),_=c("p"),q=c("b"),B=g(it),F=g(": "),G=c("a"),I=g(nt),J=p(),K=c("p"),P=c("b"),Q=g(ot),U=g(": "),V=g(rt),W=p(),d(r,"srcset","/img/parties/"+t[6].logo+".webp"),d(s,"srcset","/img/parties/"+t[6].logo+".jpg"),d(h,"class","party-logo"),d(h,"alt","logo"),d(G,"href",t[6].link),d(G,"target",";_blank;"),d(G,"rel","noreferrer"),d(i,"class","img-general-info"),d(e,"class","location-info")},m(t,m){n(t,e,m),u(e,i),u(i,o),u(o,r),u(o,a),u(o,s),u(o,l),u(o,h),u(i,f),u(i,x),u(x,w),u(w,y),u(y,j),u(y,v),u(w,k),u(x,z),u(x,D),u(D,E),u(E,O),u(E,R),u(D,T),u(x,A),u(x,C),u(C,H),u(H,L),u(H,M),u(C,N),u(x,S),u(x,_),u(_,q),u(q,B),u(q,F),u(_,G),u(G,I),u(e,J),u(e,K),u(K,P),u(P,Q),u(P,U),u(K,V),u(e,W)},p(t,e){1&e&&X!==(X=t[0].name+"")&&b(j,X),1&e&&Z!==(Z=t[0].location+"")&&b(O,Z),1&e&&$!==($=t[0][t[6].location[0]]+"")&&b(T,$),1&e&&tt!==(tt=t[0].members+"")&&b(L,tt),1&e&&it!==(it=t[0].link+"")&&b(B,it),1&e&&ot!==(ot=t[0].description+"")&&b(Q,ot),1&e&&rt!==(rt=t[0][t[6].description]+"")&&b(V,rt)},d(t){t&&m(e)}}}function E(t){let e,i=0!=Object.keys(t[0]).length,o=i&&z(t);return{c(){o&&o.c(),e=r(),this.c=a},m(t,i){o&&o.m(t,i),n(t,e,i)},p(t,[n]){1&n&&(i=0!=Object.keys(t[0]).length),i?o?o.p(t,n):(o=z(t),o.c(),o.m(e.parentNode,e)):o&&(o.d(1),o=null)},i:a,o:a,d(t){o&&o.d(t),t&&m(e)}}}function O(t,e,i){let n,o,r=w({});function a(t,e){let i=t([22,0],2);j(i,e)}s(t,r,(t=>i(0,n=t))),v(r,"parties-component",o),l((()=>{}));return[n,o,r,a,t=>a(t,n)]}class R extends t{constructor(t){super(),this.shadowRoot.innerHTML="<style>@import '/css/common.css';#party-img{position:absolute;width:11.5rem;left:50%;transform:translate(-50%);z-index:0;opacity:0.2}#text-container>:nth-child(3){margin-top:8rem}.location-info{position:relative;margin-bottom:2rem}.location-info p{margin-bottom:0}.img-general-info{display:flex;align-content:center;width:100%;gap:1.5rem;align-items:center;margin-bottom:1rem}.img-general-info>:nth-child(2){flex:none}.party-logo{position:relative;right:0;max-height:7rem;max-width:100%;border-radius:1rem}a{color:#DD1C1A}#map{--height:30rem;--width:100%;--margin-bottom:3rem}#text-container{max-width:calc(100vw - 4rem);margin:auto}h1{margin-bottom:1rem;font-size:2.2rem;text-align:center}h3{margin-bottom:1rem}#container{margin:auto;max-width:800px;margin-top:1rem;margin-bottom:4rem}#container>div>p{margin-bottom:1rem}#container p{text-align:justify}@media only screen and (max-width: 500px){.img-general-info{display:flex;flex-direction:column;align-content:left;width:100%;gap:1rem;align-items:left;margin-bottom:0rem}.img-general-info>:nth-child(1){width:max-content}.img-general-info>:nth-child(2){width:100%}}</style>",e(this,{target:this.shadowRoot,props:i(this.attributes),customElement:!0},O,E,o,{},null),t&&t.target&&n(t.target,this,t.anchor)}}customElements.define("parties-component",R);export{R as default};

View File

@ -0,0 +1,52 @@
export let parties = [
{
logo: "roots",
name: "Roots",
location: ["ireland",[52.98479517270413, -7.649233227534782]],
members: 6,
link: "https://discord.gg/pSTMacJZsK",
description: "descriptionRoots"
}
]
export function addMarkersParties(map,content) {
for (let g of parties) {
let coordinates
let text = ""
for (let field in g) {
let fieldText
if (field!="logo") {
fieldText = content[field] + ": "
}
if (field=="logo") {
text += "<picture><source srcset=" + "/img/parties/" + g.logo + ".webp><source srcset='/img/parties/" + g.logo + ".png'><img alt='logo' style='position: relative; max-height: 5rem; max-width: 100%; margin: auto;'></picture>" + "<br>"
}
else if (field=="link") {
text += fieldText + "<a href='" + g.link + "' target='_blank' rel=noreferrer>" + g.link + "</a>" + "<br>"
}
else if (field=="website") {
text += fieldText + "<a href='" + g.website + "' target='_blank' rel=noreferrer>" + g.website + "</a>" + "<br>"
}
else if (field=="location") {
text += fieldText + content[g[field][0]] + "<br>"
coordinates = g[field][1]
}
else if (field=="description") {
text += fieldText + content[g[field]] + "<br>"
}
else {
text += fieldText + g[field] + "<br>"
}
}
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(map).bindPopup(text)
}
}

View File

@ -14,6 +14,7 @@
"findOur": "Find our",
"group": "group",
"commune": "commune",
"party": "party",
"or": "or",
"cooperative": "cooperative",
"nearYou": "near you and join to help make a world we both envision a reality.",

View File

@ -5,5 +5,7 @@
"communesTitle": "COMMUNES",
"communesText": "We establish communes based on libertarian socialist principles, where commune members have ownership over land, houses, and the means of production as well as make decisions using direct democracy. We are gradually expanding our socialist world, one commune at a time.",
"cooperativesTitle": "COOPERATIVES",
"cooperativesText": "We form worker cooperatives to finance the operations of our groups and communes. Recognizing that economic power influences political power, we consider the establishment of cooperatives to be one of the initial steps towards achieving socialism."
"cooperativesText": "We form worker cooperatives to finance the operations of our groups and communes. Recognizing that economic power influences political power, we consider the establishment of cooperatives to be one of the initial steps towards achieving socialism.",
"partiesTitle": "PARTIES",
"partiesText": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals."
}

View File

@ -5,5 +5,6 @@
"groups": "Groups",
"communes": "Communes",
"cooperatives": "Cooperatives",
"parties": "Parties",
"partners": "Partners"
}

View File

@ -0,0 +1,12 @@
{
"heading": "Parties",
"p1": "We create political parties in order to push for reforms allowing us to easier further our goals, to move the Overton window as well as to gain popularity. However, we recognize that we cannot achieve libertarian socialism through institutions which act contrary to our goals.",
"subheading1": "Our Parties",
"name": "Name",
"location": "Location",
"members": "Members",
"link": "Link",
"description": "Description",
"ireland": "Ireland",
"descriptionRoots": "We are a left libertarian organization based in Ireland. We have a focus on rebuilding the countries infrastructure, sense of governance, housing, agricultural industries and youth affairs."
}

View File

@ -13,7 +13,8 @@
"subheading2": "Найди нас",
"findOur": "Найди нашу",
"group": "группу",
"community": "коммуну",
"commune": "коммуну",
"party": "партию",
"or": "или",
"cooperative": "кооператив",
"nearYou": "около тебя и присоединяйся для того, чтобы сделать тот мир, о котором мы все мечтаем, реальностью.",

View File

@ -2,8 +2,10 @@
"top": "Эта организация представляет собой децентрализованную федерацию, основанную на принципе свободной ассоциации. Она состоит из многих групп людей, объединенные одной целью: свержение авторитарных эксплуататорских систем, представленных различными формами капитализма, и замена их либертарными социалистическими системами с целью создания более справедливого и демократического мира.",
"groupsTitle": "ГРУППЫ",
"groupsText": "Мы организуем группы в целях образования, защиты наших интересов и взаимопомощи. Наша цель — продемонстрировать людям, как нынешние политико-экономические системы пагубно влияют на наше благополучие, представить им альтернативные варианты и заниматься взаимопомощью, чтобы сделать жизнь при капитализме легче.",
"communitiesTitle": "КОММУНЫ",
"communitiesText": "Мы создаем коммуны на основе либертарных социалистических принципов, где члены коммун владеют своей землей, домами и средствами производства, а также принимают решения, используя прямую демократию. Мы постепенно, по одной коммуне, расширяем наш социалистический мир.",
"communesTitle": "КОММУНЫ",
"communesText": "Мы создаем коммуны на основе либертарных социалистических принципов, где члены коммун владеют своей землей, домами и средствами производства, а также принимают решения, используя прямую демократию. Мы постепенно, по одной коммуне, расширяем наш социалистический мир.",
"cooperativesTitle": "КООПЕРАТИВЫ",
"cooperativesText": "Мы формируем рабочие кооперативы для финансирования операций наших групп и коммун. Признавая, что экономическая власть влияет на политическую власть, мы считаем создание кооперативов одним из первых шагов на пути к социализму."
"cooperativesText": "Мы формируем рабочие кооперативы для финансирования операций наших групп и коммун, а также формирования основы новой социалистической экономики. Признавая, что экономическая власть влияет на политическую власть, мы считаем создание кооперативов одним из первых шагов на пути к социализму.",
"partiesTitle": "ПАРТИИ",
"partiesText": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарианского социализма с помощью институтов, действующих против наших целей."
}

View File

@ -5,5 +5,6 @@
"groups": "Группы",
"communes": "Коммуны",
"cooperatives": "Кооперативы",
"parties": "Партии",
"partners": "Партнеры"
}

View File

@ -0,0 +1,12 @@
{
"heading": "Партии",
"p1": "Мы создаем политические партии, чтобы продвигать реформы, которые позволят легче достичь наших целей, сдвигать окно Овертона и увеличивать нашу популярность. Однако мы признаем, что мы не можем достичь либертарианского социализма с помощью институтов, действующих против наших целей.",
"subheading1": "Наши партии",
"name": "Имя",
"location": "Локация",
"members": "Участники",
"link": "Ссылка",
"description": "Описание",
"ireland": "Ирландия",
"descriptionRoots": "Мы — левая либертарная организация, базирующаяся в Ирландии. Мы уделяем особое внимание восстановлению инфраструктуры страны, самоуправлению, жилищному строительству, сельскохозяйственной промышленности и делам молодежи."
}

View File

@ -14,7 +14,8 @@ route("/:locale/groups/*", BasicController.groups, named = :groups)
route("/:locale/cooperatives/*", BasicController.cooperatives, named = :cooperatives)
route("/:locale/communes/*", BasicController.communes, named = :communes)
route("/:locale/communities/*", BasicController.communes, named = :communities) # deprecate
route("/:locale/parties/*", BasicController.parties, named = :parties)
route("/:locale/partners/*", BasicController.partners, named = :partners)