okokdsfsdf
This commit is contained in:
parent
e2e0357afd
commit
09d0e24092
Binary file not shown.
|
@ -0,0 +1,22 @@
|
||||||
|
:root {
|
||||||
|
--b9h-color-bg: #1c2729;
|
||||||
|
--b9h-color-bg-alpha: rgba(28,39,41,0.8);
|
||||||
|
--b9h-color-fg: #b3bfb6;
|
||||||
|
--b9h-color-accent: #ff5821;
|
||||||
|
--b9h-color-green: #1cd95f;
|
||||||
|
--b9h-color-red: #f72520;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
background-color: var(--b9h-color-bg);
|
||||||
|
color: var(--b9h-color-fg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.marker {
|
||||||
|
background-color: var(--b9h-color-accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
|
@ -0,0 +1,78 @@
|
||||||
|
body {
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
#edit-tab-nav {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-around;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#edit-tab-nav-marker {
|
||||||
|
position: absolute;
|
||||||
|
height: 5px;
|
||||||
|
left: 0px;
|
||||||
|
width: 0px;
|
||||||
|
background-color: var(--b9h-color-accent);
|
||||||
|
bottom: -20px;
|
||||||
|
transition: 0.5s;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#edit-tab-roll {
|
||||||
|
width: 200vw;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
transform: translateX(-0vw);
|
||||||
|
transition: transform 0.5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-single-tab {
|
||||||
|
width: 100vw;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-single-tab li {
|
||||||
|
margin-left: 30px;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-single-tab h4 {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-tab-nav-link {
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
height: auto;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=text]{
|
||||||
|
display: block;
|
||||||
|
font-size: 1em;
|
||||||
|
font-family: Inter;
|
||||||
|
font-weight: 400;
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
padding-left: 5px;
|
||||||
|
border: 0px solid #ccc;
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
border-radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ing-input-lang {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ing-form-save {
|
||||||
|
display: block;
|
||||||
|
margin-top: 30px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: LemonMilk;
|
||||||
|
src: url("../fonts/LemonMilk/LEMONMILK-Bold.otf");
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: LemonMilk;
|
||||||
|
src: url("../fonts/LemonMilk/LEMONMILK-Light.otf");
|
||||||
|
font-weight: 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Inter;
|
||||||
|
src: url("../fonts/inter/Inter-Light.woff");
|
||||||
|
font-weight: 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Inter;
|
||||||
|
src: url("../fonts/inter/Inter-Regular.woff");
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Inter;
|
||||||
|
src: url("../fonts/inter/Inter-LightItalic.woff");
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Inter;
|
||||||
|
src: url("../fonts/inter/Inter-Italic.woff");
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: Inter;
|
||||||
|
src: url("../fonts/inter/Inter-SemiBold.woff");
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
font-family: Inter;
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
@import url("https://file.brz9.dev/web/css/normalize.css");
|
||||||
|
@import url("./color.css");
|
||||||
|
@import url("./map.css");
|
||||||
|
@import url("./font.css");
|
||||||
|
|
||||||
|
body {
|
||||||
|
height: 100vh;
|
||||||
|
height: --webkit-fill-available;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#map-container {
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
#map {
|
||||||
|
height: 500px;
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,53 @@
|
||||||
|
{
|
||||||
|
"resto":
|
||||||
|
{
|
||||||
|
"fr": "Restaurants",
|
||||||
|
"en": "Restaurants",
|
||||||
|
"it": "Ristoranti",
|
||||||
|
"list" : [
|
||||||
|
"gastro" : {
|
||||||
|
"fr": "Gastronomique",
|
||||||
|
"en": "Gastronomic",
|
||||||
|
"it": "Gastronomico",
|
||||||
|
"list": [
|
||||||
|
"g1" : {
|
||||||
|
"name": "San Telmo",
|
||||||
|
"xy": [232.32,3232.32],
|
||||||
|
"fr" : "Sur la Rue Hoche, bonne pizza, blablablablabla",
|
||||||
|
"en" : "smfdlkmlsk fmlskd fmlk msdlkf mlskdf m",
|
||||||
|
"it" : "msdfmlskdfmlksmdlfkmsdlfkmslkdf",
|
||||||
|
"addresse": ["23", "Rue Hoche", "06400", "Cannes"],
|
||||||
|
"menu_fr" : [
|
||||||
|
["Pizza Diavola", ["sauce tomate","mozza","chorizo"], "pizza"]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"db" :
|
||||||
|
{"cat": [{"resto" :
|
||||||
|
["italien":
|
||||||
|
["San telmo", "Salsa"]
|
||||||
|
]},
|
||||||
|
{"bar" :
|
||||||
|
["vin"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
"db" : {
|
||||||
|
"cat" : {
|
||||||
|
"resto" : {
|
||||||
|
"italien" : {
|
||||||
|
"SanTelmo" : {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"végé" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
var jdb = {
|
||||||
|
data: {
|
||||||
|
currentLang: 'fr',
|
||||||
|
currentRestoTagList: [],
|
||||||
|
db : {
|
||||||
|
parking : {
|
||||||
|
id : "parking",
|
||||||
|
isActive: false,
|
||||||
|
type : "list",
|
||||||
|
nameFR : "Parking",
|
||||||
|
nameEN : "Car park",
|
||||||
|
nameIT : "Parcheggio",
|
||||||
|
sub : {
|
||||||
|
ParkingLamy,
|
||||||
|
ParkingStephanie,
|
||||||
|
ParkingPantiero,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resto : {
|
||||||
|
id : "resto",
|
||||||
|
isActive: false,
|
||||||
|
type : "list",
|
||||||
|
nameFR : "Restaurant",
|
||||||
|
nameEN : "Restaurant",
|
||||||
|
nameIT : "Ristoranti",
|
||||||
|
sub : {
|
||||||
|
SanTelmo,
|
||||||
|
Salsamenteria,
|
||||||
|
Novaa,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,124 @@
|
||||||
|
let Dishes = {
|
||||||
|
santelmo : {
|
||||||
|
gnocchigor : {
|
||||||
|
name : "blank",
|
||||||
|
ing : [
|
||||||
|
ingredients.gnochgor
|
||||||
|
]
|
||||||
|
},
|
||||||
|
diavolo : {
|
||||||
|
name : "Pizza Diavolo",
|
||||||
|
ing : [
|
||||||
|
ingredients.tomate,
|
||||||
|
ingredients.mozzarella,
|
||||||
|
ingredients.saucissecalabraisepiquante
|
||||||
|
]
|
||||||
|
},
|
||||||
|
d10s : {
|
||||||
|
name : "Pizza D10S",
|
||||||
|
vege : true,
|
||||||
|
ing : [
|
||||||
|
ingredients.tomate,
|
||||||
|
ingredients.mozzarella,
|
||||||
|
ingredients.provoletta,
|
||||||
|
ingredients.salsiccia,
|
||||||
|
ingredients.chimichurri
|
||||||
|
]
|
||||||
|
},
|
||||||
|
navigli : {
|
||||||
|
name : "Pizza Navigli",
|
||||||
|
ing : [
|
||||||
|
ingredients.tomate,
|
||||||
|
ingredients.mozzarella,
|
||||||
|
ingredients.gorgonzola,
|
||||||
|
ingredients.parma
|
||||||
|
]
|
||||||
|
},
|
||||||
|
brachet : {
|
||||||
|
name : "Pizza Brachet (bianca - blanche - white)",
|
||||||
|
ing : [
|
||||||
|
ingredients.mozzarella,
|
||||||
|
ingredients.caprino,
|
||||||
|
ingredients.noix,
|
||||||
|
ingredients.honey
|
||||||
|
]
|
||||||
|
},
|
||||||
|
superibricchi : {
|
||||||
|
name : "Pizza Sù Per I Bricchi",
|
||||||
|
ing : [
|
||||||
|
ingredients.tomate,
|
||||||
|
ingredients.mozzarella,
|
||||||
|
ingredients.caprino,
|
||||||
|
ingredients.bresaola,
|
||||||
|
ingredients.roquette
|
||||||
|
]
|
||||||
|
},
|
||||||
|
superibricchi : {
|
||||||
|
name : "Pizza Sù Per I Bricchi",
|
||||||
|
ing : [
|
||||||
|
ingredients.tomate,
|
||||||
|
ingredients.mozzarella,
|
||||||
|
ingredients.thon,
|
||||||
|
ingredients.cipollaTropea
|
||||||
|
]
|
||||||
|
},
|
||||||
|
reine : {
|
||||||
|
name : "Pizza Cotto e Funghi / Reine",
|
||||||
|
ing : [
|
||||||
|
ingredients.tomate,
|
||||||
|
ingredients.mozzarella,
|
||||||
|
ingredients.jambonblanc,
|
||||||
|
ingredients.champignons
|
||||||
|
]
|
||||||
|
},
|
||||||
|
margherita : {
|
||||||
|
name : "Pizza Margherita",
|
||||||
|
ing : [
|
||||||
|
ingredients.tomate,
|
||||||
|
ingredients.mozzarella
|
||||||
|
]
|
||||||
|
},
|
||||||
|
buffemel : {
|
||||||
|
name : "Pizza Bufala e Melanzane",
|
||||||
|
ing : [
|
||||||
|
ingredients.tomate,
|
||||||
|
ingredients.mozzarellaBufala,
|
||||||
|
ingredients.aubergines
|
||||||
|
]
|
||||||
|
},
|
||||||
|
romana : {
|
||||||
|
name : "Pizza Romana",
|
||||||
|
ing : [
|
||||||
|
ingredients.tomate,
|
||||||
|
ingredients.mozzarella,
|
||||||
|
ingredients.anchois,
|
||||||
|
ingredients.capres,
|
||||||
|
ingredients.huileextravierge
|
||||||
|
]
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
pizza : {
|
||||||
|
name : "Pizza",
|
||||||
|
ing : [
|
||||||
|
ingredients. ,
|
||||||
|
ingredients. ,
|
||||||
|
ingredients. ,
|
||||||
|
ingredients. ,
|
||||||
|
ingredients. ,
|
||||||
|
]
|
||||||
|
},
|
||||||
|
pizza : {
|
||||||
|
name : "Pizza",
|
||||||
|
ing : [
|
||||||
|
ingredients. ,
|
||||||
|
ingredients. ,
|
||||||
|
ingredients. ,
|
||||||
|
ingredients. ,
|
||||||
|
ingredients. ,
|
||||||
|
]
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,101 @@
|
||||||
|
Vue.component('NewIng',{
|
||||||
|
template : `
|
||||||
|
<div class="ingredient__form">
|
||||||
|
<input v-model="text">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
props : {
|
||||||
|
obj : Object
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
name : "name",
|
||||||
|
fr : "fr",
|
||||||
|
en : "en",
|
||||||
|
it : "it",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods : {
|
||||||
|
hello(){
|
||||||
|
return "hello"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
let vm = new Vue({
|
||||||
|
el: '#root',
|
||||||
|
data : {
|
||||||
|
message: "Hello Vue",
|
||||||
|
editTabMarkerL: "0px",
|
||||||
|
editTabMarkerW: "0px",
|
||||||
|
editTabRollXOff: 0,
|
||||||
|
newIng: {
|
||||||
|
name: "",
|
||||||
|
fr: "",
|
||||||
|
en: "",
|
||||||
|
it: "",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
obj2php: function(obj) {
|
||||||
|
data = JSON.stringify(obj)
|
||||||
|
r = new XMLHttpRequest
|
||||||
|
r.open("POST", "asset/php/handler.php", true)
|
||||||
|
r.setRequestHeader(
|
||||||
|
"Content-type",
|
||||||
|
"application/json")
|
||||||
|
r.send(data)
|
||||||
|
},
|
||||||
|
saveIng: function() {
|
||||||
|
if (this.newIng.name !== "") {
|
||||||
|
ingredients[this.newIng.name] = {
|
||||||
|
fr: this.newIng.fr,
|
||||||
|
en: this.newIng.en,
|
||||||
|
it: this.newIng.it,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.obj2php(ingredients)
|
||||||
|
},
|
||||||
|
setEditTab: function(ind) {
|
||||||
|
let xoff = 0
|
||||||
|
switch(ind){
|
||||||
|
case 'ind':
|
||||||
|
xoff = 0;
|
||||||
|
break;
|
||||||
|
case 'dish':
|
||||||
|
xoff = 1;
|
||||||
|
break;
|
||||||
|
case 'resto':
|
||||||
|
xoff = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
this.editTabRollXOff = xoff
|
||||||
|
m = document.getElementById("edit-tab-nav-" + ind)
|
||||||
|
this.editTabMarkerL = m.offsetLeft + "px"
|
||||||
|
this.editTabMarkerW = m.offsetWidth + "px"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
editTabRollTransX: function () {
|
||||||
|
return "translateX(-" + this.editTabRollXOff + "00vw)";
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created: function(){
|
||||||
|
console.log("created start")
|
||||||
|
console.log("created end")
|
||||||
|
},
|
||||||
|
mounted: function() {
|
||||||
|
console.log("mounted start")
|
||||||
|
this.setEditTab('ing')
|
||||||
|
console.log("mounted end")
|
||||||
|
},
|
||||||
|
updated: function() {
|
||||||
|
console.log("updated start")
|
||||||
|
console.log("updated end")
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,164 @@
|
||||||
|
let ingredientsold = {
|
||||||
|
tomate : {
|
||||||
|
fr: "tomate",
|
||||||
|
en: "tomato",
|
||||||
|
it: "pomodoro",
|
||||||
|
},
|
||||||
|
mozzarella : {
|
||||||
|
fr: "mozzarella",
|
||||||
|
en: "mozzarella",
|
||||||
|
it: "mozzarella",
|
||||||
|
},
|
||||||
|
mozzarellaBufala: {
|
||||||
|
fr: "mozzarella de bufflonne",
|
||||||
|
en: "buffalo's mozzarella",
|
||||||
|
it: "mozzarella di bufala",
|
||||||
|
},
|
||||||
|
saucissecalabraisepiquante : {
|
||||||
|
fr: "saucisse calabraise piquante",
|
||||||
|
en: "spicy sausage",
|
||||||
|
it: "sopressata calabrese piccante",
|
||||||
|
},
|
||||||
|
jambonblanc : {
|
||||||
|
fr: "jambon blanc",
|
||||||
|
en: "white ham",
|
||||||
|
it: "prosciutto cotto",
|
||||||
|
},
|
||||||
|
champignons : {
|
||||||
|
fr: "champignons",
|
||||||
|
en: "mushrooms",
|
||||||
|
it: "funghi",
|
||||||
|
},
|
||||||
|
provoletta : {
|
||||||
|
fr : "provoletta",
|
||||||
|
en : "provoletta",
|
||||||
|
it : "provoletta",
|
||||||
|
},
|
||||||
|
salsiccia :{
|
||||||
|
fr : "chaire à saucisse",
|
||||||
|
en : "sausage",
|
||||||
|
it : "salsiccia",
|
||||||
|
},
|
||||||
|
chimichurri : {
|
||||||
|
fr : "chimichurri",
|
||||||
|
en : "chimichurri",
|
||||||
|
it : "chimichurri",
|
||||||
|
},
|
||||||
|
gorgonzola : {
|
||||||
|
fr : "gorgonzola",
|
||||||
|
en : "gorgonzola",
|
||||||
|
it : "gorgonzola",
|
||||||
|
},
|
||||||
|
parma : {
|
||||||
|
fr : "parma",
|
||||||
|
en : "jambon de Parme",
|
||||||
|
it : "Parma ham",
|
||||||
|
},
|
||||||
|
noix : {
|
||||||
|
fr : "noix",
|
||||||
|
en : "nuts",
|
||||||
|
it : "noci",
|
||||||
|
},
|
||||||
|
caprino : {
|
||||||
|
fr : "fromage de chèvre",
|
||||||
|
en : "goat cheese",
|
||||||
|
it : "caprino",
|
||||||
|
},
|
||||||
|
honey : {
|
||||||
|
fr : "miel",
|
||||||
|
en : "honey",
|
||||||
|
it : "miele",
|
||||||
|
},
|
||||||
|
bresaola : {
|
||||||
|
fr : "bresaola",
|
||||||
|
en : "bresaola",
|
||||||
|
it : "bresaola",
|
||||||
|
},
|
||||||
|
roquette : {
|
||||||
|
fr : "roquette",
|
||||||
|
en : "aragula salad",
|
||||||
|
it : "rucola",
|
||||||
|
},
|
||||||
|
crudaioladipomodoro : {
|
||||||
|
fr : "tomates fraîches concassées",
|
||||||
|
en : "fresh tomatoes",
|
||||||
|
it : "crudaiola di pomodoro",
|
||||||
|
},
|
||||||
|
burrata : {
|
||||||
|
fr : "burrata",
|
||||||
|
en : "burrata",
|
||||||
|
it : "burrata",
|
||||||
|
},
|
||||||
|
basilic : {
|
||||||
|
fr : "basilic",
|
||||||
|
en : "basil",
|
||||||
|
it : "basilico",
|
||||||
|
},
|
||||||
|
thon : {
|
||||||
|
fr : "thon",
|
||||||
|
en : "tuna",
|
||||||
|
it : "tono",
|
||||||
|
},
|
||||||
|
cipollaTropea : {
|
||||||
|
fr : "oignons rouges de Tropea",
|
||||||
|
en : "red onions from Tropea",
|
||||||
|
it : "cipolla rossa di Tropea",
|
||||||
|
},
|
||||||
|
aubergines : {
|
||||||
|
fr : "aubergines",
|
||||||
|
en : "eggplants",
|
||||||
|
it : "melanzane",
|
||||||
|
},
|
||||||
|
anchois : {
|
||||||
|
fr : "anchois",
|
||||||
|
en : "anchovies",
|
||||||
|
it : "acciughe",
|
||||||
|
},
|
||||||
|
capres : {
|
||||||
|
fr : "câpres",
|
||||||
|
en : "capers",
|
||||||
|
it : "capperi",
|
||||||
|
},
|
||||||
|
huileextravierge : {
|
||||||
|
fr : "huile extra vierge",
|
||||||
|
en : "extra olive oil",
|
||||||
|
it : "olio extra vergine",
|
||||||
|
},
|
||||||
|
gnochgor : {
|
||||||
|
fr : "Gnochi au Gorgonzolla",
|
||||||
|
en : "gdlkfgdfg",
|
||||||
|
it : "ksflskdfjl",
|
||||||
|
},
|
||||||
|
name : {
|
||||||
|
fr : "",
|
||||||
|
en : "",
|
||||||
|
it : "",
|
||||||
|
},
|
||||||
|
name : {
|
||||||
|
fr : "",
|
||||||
|
en : "",
|
||||||
|
it : "",
|
||||||
|
},
|
||||||
|
name : {
|
||||||
|
fr : "",
|
||||||
|
en : "",
|
||||||
|
it : "",
|
||||||
|
},
|
||||||
|
name : {
|
||||||
|
fr : "",
|
||||||
|
en : "",
|
||||||
|
it : "",
|
||||||
|
},
|
||||||
|
name : {
|
||||||
|
fr : "",
|
||||||
|
en : "",
|
||||||
|
it : "",
|
||||||
|
},
|
||||||
|
name : {
|
||||||
|
fr : "",
|
||||||
|
en : "",
|
||||||
|
it : "",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,692 @@
|
||||||
|
Vue.component('Prototab',{
|
||||||
|
template : `
|
||||||
|
<div class="tabprixcontent">
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
props : {
|
||||||
|
obj : Object
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
siteoff : {
|
||||||
|
fr : "Site officiel",
|
||||||
|
en : "Official website",
|
||||||
|
it : "Sito ufficiale",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods : {
|
||||||
|
capitalize(s){
|
||||||
|
return s.charAt(0).toUpperCase() + s.slice(1)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Vue.component('Prix',{
|
||||||
|
template : `
|
||||||
|
<div class="tabprixcontent">
|
||||||
|
<section class="prixtexttop" v-if="this.obj.hasOwnProperty('txt')">
|
||||||
|
<p class="b9h-lang-fr">{{ this.obj.txt.fr }}</p>
|
||||||
|
<p class="b9h-lang-en">{{ this.obj.txt.en }}</p>
|
||||||
|
<p class="b9h-lang-it">{{ this.obj.txt.it }}</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="pricelist">
|
||||||
|
<p v-for="l in this.obj.list">
|
||||||
|
<span class="pricename">
|
||||||
|
<span class="b9h-lang-fr">{{ l.nameFR }}</span>
|
||||||
|
<span class="b9h-lang-en">{{ l.nameEN }}</span>
|
||||||
|
<span class="b9h-lang-it">{{ l.nameIT }}</span>
|
||||||
|
</span>
|
||||||
|
<span class="price">
|
||||||
|
<span class="b9h-lang-fr">{{ checkPrice(l.price,free.fr) }}</span>
|
||||||
|
<span class="b9h-lang-en">{{ checkPrice(l.price,free.en) }}</span>
|
||||||
|
<span class="b9h-lang-it">{{ checkPrice(l.price,free.it) }}</span>
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section class="prixindicatif">
|
||||||
|
<p class="b9h-lang-fr">{{ indicatif.fr }}</p>
|
||||||
|
<p class="b9h-lang-en">{{ indicatif.en }}</p>
|
||||||
|
<p class="b9h-lang-it">{{ indicatif.it }}</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
props : {
|
||||||
|
obj : Object
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
indicatif : {
|
||||||
|
fr : "Prix fournis à titre indicatif.",
|
||||||
|
en : "Prices provided as an indication.",
|
||||||
|
it : "Prezzi puramente indicativi.",
|
||||||
|
},
|
||||||
|
free : {
|
||||||
|
fr : "Gratuit",
|
||||||
|
en : "Free",
|
||||||
|
it : "Gratuito",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods : {
|
||||||
|
checkPrice(p,f){
|
||||||
|
if (p == "") {
|
||||||
|
return f
|
||||||
|
} else {
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Vue.component('Info',{
|
||||||
|
template : `
|
||||||
|
<div class="tabinfocontent">
|
||||||
|
|
||||||
|
<section class="infoline" v-if="this.obj.hasOwnProperty('site')">
|
||||||
|
<a v-bind:href="this.obj.site" target="_blank">
|
||||||
|
<span class="byl-icon-link infotags"></span>
|
||||||
|
<span class="b9h-lang-fr">{{ siteoff.fr }}</span>
|
||||||
|
<span class="b9h-lang-en">{{ siteoff.en }}</span>
|
||||||
|
<span class="b9h-lang-it">{{ siteoff.it }}</span>
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="infoline" v-if="this.obj.hasOwnProperty('tel')">
|
||||||
|
<a v-bind:href="this.telhref">
|
||||||
|
<span class="byl-icon-call infotags"></span>
|
||||||
|
<span>{{ this.obj.tel }}</span>
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="infoline" v-if="this.obj.hasOwnProperty('email')">
|
||||||
|
<a v-bind:href="this.mailhref">
|
||||||
|
<span class="byl-icon-mail_outline infotags"></span>
|
||||||
|
<span>{{ this.obj.email }}</span>
|
||||||
|
</a>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="infoline" v-if="this.obj.hasOwnProperty('address')">
|
||||||
|
<span class="byl-icon-location_on infotags"></span>
|
||||||
|
<span>{{ this.obj.address }}</span>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="infoline" v-if="this.obj.hasOwnProperty('handi')">
|
||||||
|
<span class="byl-icon-accessible infotags"></span>
|
||||||
|
<span class="b9h-lang-fr">{{ handi.fr }}</span>
|
||||||
|
<span class="b9h-lang-en">{{ handi.en }}</span>
|
||||||
|
<span class="b9h-lang-it">{{ handi.it }}</span>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="infoline" v-if="this.obj.hasOwnProperty('hautmax')">
|
||||||
|
<span class="byl-icon-publish infotags"></span>
|
||||||
|
<span class="b9h-lang-fr">
|
||||||
|
{{ hautmax.fr }} {{ this.obj.hautmax}}
|
||||||
|
</span>
|
||||||
|
<span class="b9h-lang-en">
|
||||||
|
{{ hautmax.en }} {{ this.obj.hautmax}}
|
||||||
|
</span>
|
||||||
|
<span class="b9h-lang-it">
|
||||||
|
{{ hautmax.it }} {{ this.obj.hautmax}}
|
||||||
|
</span>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
props : {
|
||||||
|
obj : Object
|
||||||
|
},
|
||||||
|
computed : {
|
||||||
|
telhref: function () {
|
||||||
|
if (this.obj.hasOwnProperty('tel')) {
|
||||||
|
return "tel:" + this.obj.tel
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mailhref: function () {
|
||||||
|
if (this.obj.hasOwnProperty('email')) {
|
||||||
|
return "mailto:" + this.obj.email
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
siteoff : {
|
||||||
|
fr : "Site officiel",
|
||||||
|
en : "Official website",
|
||||||
|
it : "Sito ufficiale",
|
||||||
|
},
|
||||||
|
handi : {
|
||||||
|
fr : "Accessible en fauteuil roulant",
|
||||||
|
en : "Wheelchair accessible",
|
||||||
|
it : "Accessibile con sedia a rotelle",
|
||||||
|
},
|
||||||
|
hautmax: {
|
||||||
|
fr : "Hauteur maximum: ",
|
||||||
|
en : "Maximum height: ",
|
||||||
|
it : "Altezza massima: ",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods : {
|
||||||
|
capitalize(s){
|
||||||
|
return s.charAt(0).toUpperCase() + s.slice(1)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
//byl-icon-wifi
|
||||||
|
//byl-icon-location_on
|
||||||
|
//byl-icon-accessible
|
||||||
|
})
|
||||||
|
|
||||||
|
Vue.component('Menu',{
|
||||||
|
template: `
|
||||||
|
<section class="restomenu">
|
||||||
|
<section v-if="this.obj.priceRange" class="top">
|
||||||
|
<p class="b9h-lang-fr range">{{ fourchette.fr }}</p>
|
||||||
|
<p class="b9h-lang-en range">{{ fourchette.en }}</p>
|
||||||
|
<p class="b9h-lang-it range">{{ fourchette.it }}</p>
|
||||||
|
<p class="price"> {{ this.obj.priceRange }}</p>
|
||||||
|
<p class="b9h-lang-fr drinks">{{ horsboissons.fr }}</p>
|
||||||
|
<p class="b9h-lang-en drinks">{{ horsboissons.en }}</p>
|
||||||
|
<p class="b9h-lang-it drinks">{{ horsboissons.it }}</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section v-for="s in this.obj.sections">
|
||||||
|
<h2 class="b9h-lang-fr"> {{ s.nameFR }}</h2>
|
||||||
|
<h2 class="b9h-lang-en"> {{ s.nameEN }}</h2>
|
||||||
|
<h2 class="b9h-lang-it"> {{ s.nameIT }}</h2>
|
||||||
|
|
||||||
|
<div class="dish" v-for="d in s.list">
|
||||||
|
<h3 v-if="d.name !== 'blank'">
|
||||||
|
{{ d.name }}
|
||||||
|
<span
|
||||||
|
v-if="d.hasOwnProperty('vege')"
|
||||||
|
class="byl-icon-leaf vege">
|
||||||
|
</span>
|
||||||
|
</h3>
|
||||||
|
<ul v-if="d.name !== 'blank'">
|
||||||
|
<p class="b9h-lang-fr"> {{ l2s(ings2ls(d.ing,"fr"), "fr") }}</p>
|
||||||
|
<p class="b9h-lang-en"> {{ l2s(ings2ls(d.ing,"en"), "en") }}</p>
|
||||||
|
<p class="b9h-lang-it"> {{ l2s(ings2ls(d.ing,"it"), "it") }}</p>
|
||||||
|
</ul>
|
||||||
|
<ul v-else>
|
||||||
|
<h3 class="b9h-lang-fr">
|
||||||
|
{{ l2s(ings2ls(d.ing,"fr"), "fr") }}
|
||||||
|
<span
|
||||||
|
v-if="d.hasOwnProperty('vege')"
|
||||||
|
class="byl-icon-leaf vege">
|
||||||
|
</span>
|
||||||
|
</h3>
|
||||||
|
<h3 class="b9h-lang-en">
|
||||||
|
{{ l2s(ings2ls(d.ing,"en"), "en") }}
|
||||||
|
<span
|
||||||
|
v-if="d.hasOwnProperty('vege')"
|
||||||
|
class="byl-icon-leaf vege">
|
||||||
|
</span>
|
||||||
|
</h3>
|
||||||
|
<h3 class="b9h-lang-it">
|
||||||
|
{{ l2s(ings2ls(d.ing,"it"), "it") }}
|
||||||
|
<span
|
||||||
|
v-if="d.hasOwnProperty('vege')"
|
||||||
|
class="byl-icon-leaf vege">
|
||||||
|
</span>
|
||||||
|
</h3>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="menuindicatif">
|
||||||
|
<p class="b9h-lang-fr"> {{ indicatif.fr }}</p>
|
||||||
|
<p class="b9h-lang-en"> {{ indicatif.en }}</p>
|
||||||
|
<p class="b9h-lang-it"> {{ indicatif.it }}</p>
|
||||||
|
</section>
|
||||||
|
</br>
|
||||||
|
</br>
|
||||||
|
</br>
|
||||||
|
</section>
|
||||||
|
`,
|
||||||
|
props : {
|
||||||
|
obj : Object
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
message : "hello from menu",
|
||||||
|
et : {
|
||||||
|
fr : " et ",
|
||||||
|
en : " and ",
|
||||||
|
it : " e ",
|
||||||
|
},
|
||||||
|
fourchette : {
|
||||||
|
fr : "Fourchette de prix par personne :",
|
||||||
|
en : "Price range per person:",
|
||||||
|
it : "Fascia di prezzo per persona :",
|
||||||
|
},
|
||||||
|
horsboissons : {
|
||||||
|
fr : "(hors boissons)",
|
||||||
|
en : "(excluding drinks)",
|
||||||
|
it : "(bevande escluse)",
|
||||||
|
},
|
||||||
|
indicatif : {
|
||||||
|
fr : "Menu fournis à titre indicatif, soumis aux disponibilités",
|
||||||
|
en : "Menu provided as an indication, subject to availability",
|
||||||
|
it : "Menu fornito a titolo informativo, soggetto a disponibilità",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods : {
|
||||||
|
capitalize(s){
|
||||||
|
return s.charAt(0).toUpperCase() + s.slice(1)
|
||||||
|
},
|
||||||
|
l2s(l, lang) {
|
||||||
|
let r = ""
|
||||||
|
let llength = l.length - 1
|
||||||
|
for (i in l){
|
||||||
|
if (parseInt(i) === 0){
|
||||||
|
r = this.capitalize(l[i])
|
||||||
|
} else if (parseInt(i) < parseInt(llength)) {
|
||||||
|
r = r + ", " + l[i]
|
||||||
|
} else {
|
||||||
|
r = r + this.et[lang] + l[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return r
|
||||||
|
},
|
||||||
|
ings2ls(ings, lang){
|
||||||
|
let l = []
|
||||||
|
for (i in ings) {
|
||||||
|
l.push(ings[i][lang])
|
||||||
|
}
|
||||||
|
return l
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Vue.component('Time', {
|
||||||
|
template : `
|
||||||
|
<div class="timetable">
|
||||||
|
<p v-for="(d, i) in this.obj.list">
|
||||||
|
<span class="b9h-lang-fr">{{ days[i].fr }}</span>
|
||||||
|
<span class="b9h-lang-en">{{ days[i].en }}</span>
|
||||||
|
<span class="b9h-lang-it">{{ days[i].it }}</span>
|
||||||
|
<span v-if="d != ''" class="hour">{{ d }}</span>
|
||||||
|
<span v-if="d ==''" class="hour b9h-lang-fr">
|
||||||
|
{{ closed.fr }}
|
||||||
|
</span>
|
||||||
|
<span v-if="d ==''" class="hour b9h-lang-en">
|
||||||
|
{{ closed.en }}
|
||||||
|
</span>
|
||||||
|
<span v-if="d ==''" class="hour b9h-lang-it">
|
||||||
|
{{ closed.it }}
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
props : {
|
||||||
|
obj : Object
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
message : "hello from time",
|
||||||
|
closed : {
|
||||||
|
fr : "Fermé",
|
||||||
|
en : "Closed",
|
||||||
|
it : "Chiuso",
|
||||||
|
},
|
||||||
|
days : {
|
||||||
|
mon : {
|
||||||
|
fr : "Lundi",
|
||||||
|
en : "Monday",
|
||||||
|
it : "Lunedì"
|
||||||
|
},
|
||||||
|
tue : {
|
||||||
|
fr : "Mardi",
|
||||||
|
en : "Tuesday",
|
||||||
|
it : "Martedì"
|
||||||
|
},
|
||||||
|
wed : {
|
||||||
|
fr : "Mercredi",
|
||||||
|
en : "Wednesday",
|
||||||
|
it : "Mercoledì"
|
||||||
|
},
|
||||||
|
thu : {
|
||||||
|
fr : "Jeudi",
|
||||||
|
en : "Thursday",
|
||||||
|
it : "Giovedì"
|
||||||
|
},
|
||||||
|
fri : {
|
||||||
|
fr : "Vendredi",
|
||||||
|
en : "Friday",
|
||||||
|
it : "Venerdì"
|
||||||
|
},
|
||||||
|
sat : {
|
||||||
|
fr : "Samedi",
|
||||||
|
en : "Saturday",
|
||||||
|
it : "Sabato"
|
||||||
|
},
|
||||||
|
sun : {
|
||||||
|
fr : "Dimanche",
|
||||||
|
en : "Sunday",
|
||||||
|
it : "Domenica"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods : {
|
||||||
|
checkTime (d) {
|
||||||
|
if (d != "" ){
|
||||||
|
return d
|
||||||
|
} else {
|
||||||
|
return this.closed
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
Vue.component('Accordeon', {
|
||||||
|
template : `
|
||||||
|
<section v-bind:id="this.list.id">
|
||||||
|
<nav v-if="this.list.type === 'list'">
|
||||||
|
|
||||||
|
<a>
|
||||||
|
<span
|
||||||
|
v-on:click="toggleActive()"
|
||||||
|
class="listname"
|
||||||
|
:class="{ active: this.list.isActive }">
|
||||||
|
|
||||||
|
<h3 class="b9h-lang-fr">{{ this.list.nameFR }}</h3>
|
||||||
|
<h3 class="b9h-lang-en">{{ this.list.nameEN }}</h3>
|
||||||
|
<h3 class="b9h-lang-it">{{ this.list.nameIT }}</h3>
|
||||||
|
<span class="byl-icon-plus listicon"></span>
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<section class="listchild" :class="{ active: this.list.isActive }">
|
||||||
|
<nav class="restotagcloud" v-if="this.list.id == 'resto'">
|
||||||
|
<span
|
||||||
|
v-for="t in this.tl"
|
||||||
|
class="resto-tag"
|
||||||
|
v-bind:class="{ active: t.isActive }"
|
||||||
|
v-on:click="toggleTag(t)">
|
||||||
|
<h3 class="b9h-lang-fr">{{ t.fr }}</h3>
|
||||||
|
<h3 class="b9h-lang-en">{{ t.en }}</h3>
|
||||||
|
<h3 class="b9h-lang-it">{{ t.it }}</h3>
|
||||||
|
</span>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<Accordeon v-for="i in this.list.sub" v-bind:list="i"></Accordeon>
|
||||||
|
</section>
|
||||||
|
</nav>
|
||||||
|
<section
|
||||||
|
v-if="this.list.type === 'item'"
|
||||||
|
class="lastlistitem"
|
||||||
|
v-show="this.list.isActive"
|
||||||
|
>
|
||||||
|
<aside v-on:click="setMap()">
|
||||||
|
<img v-bind:src="this.list.img"></img>
|
||||||
|
</aside>
|
||||||
|
<aside class="txt">
|
||||||
|
<h3 v-on:click="setMap()">{{ this.list.name }}</h3>
|
||||||
|
<p class="b9h-lang-fr" v-on:click="setMap()">{{ this.list.txtFR }}</p>
|
||||||
|
<p class="b9h-lang-en" v-on:click="setMap()">{{ this.list.txtEN }}</p>
|
||||||
|
<p class="b9h-lang-it" v-on:click="setMap()">{{ this.list.txtIT }}</p>
|
||||||
|
|
||||||
|
<section
|
||||||
|
v-if="'card' in this.list"
|
||||||
|
class="card"
|
||||||
|
v-bind:id="this.cardid"
|
||||||
|
v-bind:style="{ top: this.cardTop }">
|
||||||
|
<span v-on:click="hideCard()"class="byl-icon-cross"></span>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3 class="cardtitle">{{ this.list.name }}</h3>
|
||||||
|
|
||||||
|
<nav class="cardnav">
|
||||||
|
<span class="marker"
|
||||||
|
v-bind:style="{
|
||||||
|
left : this.markerL,
|
||||||
|
width : this.markerW
|
||||||
|
}"
|
||||||
|
></span>
|
||||||
|
<span
|
||||||
|
v-for="i in this.list.card.tabs"
|
||||||
|
v-on:click="setTab(getIndex(i))"
|
||||||
|
v-bind:id="getMarkerId(i)"
|
||||||
|
v-bind:class="getTabLogo(i)"
|
||||||
|
ref="tabnavi"
|
||||||
|
>
|
||||||
|
</span>
|
||||||
|
</nav>
|
||||||
|
<section class="tabroll"
|
||||||
|
v-bind:style="{
|
||||||
|
width : this.tabrollw,
|
||||||
|
transform : this.tabrollTransX
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<section class="singletab"
|
||||||
|
v-for="i in this.list.card.tabs">
|
||||||
|
<Time v-if="i.tabtype === 'time'" v-bind:obj="i"></Time>
|
||||||
|
<Menu v-if="i.tabtype === 'menu'" v-bind:obj="i"></Menu>
|
||||||
|
<Info v-if="i.tabtype === 'info'" v-bind:obj="i"></Info>
|
||||||
|
<Prix v-if="i.tabtype === 'prix'" v-bind:obj="i"></Prix>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<span
|
||||||
|
v-if="'card' in this.list"
|
||||||
|
v-on:click="showCard()"
|
||||||
|
class="byl-icon-info info"></span>
|
||||||
|
|
||||||
|
</aside>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
`,
|
||||||
|
props : {
|
||||||
|
list : Object,
|
||||||
|
taglist : Object
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
tl : this.taglist,
|
||||||
|
isActive : false,
|
||||||
|
displayCard : "block",
|
||||||
|
cardTop : "110vh",
|
||||||
|
tabrollxoff : 0,
|
||||||
|
tabind : 0,
|
||||||
|
markerL : 0,
|
||||||
|
markerW : 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
xy: function () {
|
||||||
|
if ('xy' in this.list) {
|
||||||
|
return this.list.xy
|
||||||
|
} else {
|
||||||
|
return [0,0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dirxy: function () {
|
||||||
|
if ('dirxy' in this.list) {
|
||||||
|
return this.list.dirxy
|
||||||
|
} else {
|
||||||
|
return [0,0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dirzl: function () {
|
||||||
|
if ('dirzl' in this.list) {
|
||||||
|
return this.list.dirzl
|
||||||
|
} else {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
href: function () {
|
||||||
|
return "#" + this.list.id;
|
||||||
|
},
|
||||||
|
cardid: function () {
|
||||||
|
return "card" + this.list.id;
|
||||||
|
},
|
||||||
|
tabcount: function () {
|
||||||
|
if ('card' in this.list){
|
||||||
|
var arr = Object.entries(this.list.card.tabs);
|
||||||
|
return arr.length
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tabrollw: function () {
|
||||||
|
return this.tabcount + "00vw";
|
||||||
|
},
|
||||||
|
tabrollTransX: function () {
|
||||||
|
return "translateX(-" + this.tabrollxoff + "00vw)";
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods : {
|
||||||
|
toggleTag(t){
|
||||||
|
t.isActive = !t.isActive
|
||||||
|
this.checkTagFunc()
|
||||||
|
},
|
||||||
|
checkTagFunc() {
|
||||||
|
Object.keys(resto).forEach(r => {
|
||||||
|
|
||||||
|
tagCount = 0
|
||||||
|
|
||||||
|
Object.keys(restoTagList).forEach(rtli => {
|
||||||
|
if (restoTagList[rtli].isActive) {
|
||||||
|
for (t in resto[r].tags) {
|
||||||
|
if (resto[r].tags[t] === restoTagList[rtli]) {
|
||||||
|
tagCount++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (tagCount >= 1) {
|
||||||
|
resto[r].isActive = true
|
||||||
|
} else {
|
||||||
|
resto[r].isActive = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
getMarkerId(i) {
|
||||||
|
return this.cardid + this.getIndex(i).toString()
|
||||||
|
},
|
||||||
|
getIndex(obj) {
|
||||||
|
var arr = Object.entries(this.list.card.tabs);
|
||||||
|
let ind = arr.findIndex(e => e[0] === obj.tabtype);
|
||||||
|
return ind
|
||||||
|
},
|
||||||
|
setTab(ind) {
|
||||||
|
this.tabrollxoff = ind;
|
||||||
|
this.tabind = ind
|
||||||
|
t = document.getElementById(this.cardid + ind);
|
||||||
|
this.markerL = t.offsetLeft + "px"
|
||||||
|
this.markerW = t.offsetWidth + "px"
|
||||||
|
},
|
||||||
|
getTabLogo(obj) {
|
||||||
|
switch(obj.tabtype) {
|
||||||
|
case "menu":
|
||||||
|
return "byl-icon-restaurant"
|
||||||
|
break;
|
||||||
|
case "time":
|
||||||
|
return "byl-icon-clock"
|
||||||
|
break;
|
||||||
|
case "info":
|
||||||
|
return "byl-icon-info"
|
||||||
|
break;
|
||||||
|
case "prix":
|
||||||
|
return "byl-icon-euro_symbol"
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
showCard() {
|
||||||
|
this.displayCard = "block";
|
||||||
|
this.setTab(0)
|
||||||
|
this.cardTop = "0vh"
|
||||||
|
this.setTab(0)
|
||||||
|
this.setTab(0)
|
||||||
|
this.setMap()
|
||||||
|
this.setTab(0)
|
||||||
|
},
|
||||||
|
hideCard() {
|
||||||
|
this.cardTop = "110vh"
|
||||||
|
},
|
||||||
|
donothing () {
|
||||||
|
|
||||||
|
},
|
||||||
|
toggleActive () {
|
||||||
|
this.list.isActive = !this.list.isActive
|
||||||
|
document.getElementById(this.list.id).scrollIntoView(true);
|
||||||
|
},
|
||||||
|
setMap () {
|
||||||
|
map.setView(this.dirxy, this.dirzl)
|
||||||
|
this.list.marker.openPopup()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
let vm = new Vue({
|
||||||
|
el: '#root',
|
||||||
|
data : jdb.data,
|
||||||
|
methods: {
|
||||||
|
hidelang: function(lang) {
|
||||||
|
langClass = "b9h-lang-" + lang;
|
||||||
|
langElms = document.getElementsByClassName(langClass);
|
||||||
|
for (i = 0; i < langElms.length; i++) {
|
||||||
|
langElms[i].style.display = 'none';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
hidelangs: function() {
|
||||||
|
this.hidelang('fr');
|
||||||
|
this.hidelang('en');
|
||||||
|
this.hidelang('it');
|
||||||
|
},
|
||||||
|
showlang: function(lang) {
|
||||||
|
this.hidelangs();
|
||||||
|
langClass = "b9h-lang-" + lang;
|
||||||
|
langElms = document.getElementsByClassName(langClass);
|
||||||
|
for (i = 0; i < langElms.length; i++) {
|
||||||
|
langElms[i].style.display = 'revert';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setlang: function (lang) {
|
||||||
|
target = document.querySelector("#"+"tab-"+lang);
|
||||||
|
marker = document.querySelector("#lang-marker");
|
||||||
|
marker.style.left = target.offsetLeft + "px";
|
||||||
|
marker.style.width = target.offsetWidth + "px";
|
||||||
|
this.showlang(lang);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created: function(){
|
||||||
|
this.setlang('fr');
|
||||||
|
},
|
||||||
|
mounted: function() {
|
||||||
|
this.setlang('fr');
|
||||||
|
this.setlang('fr');
|
||||||
|
this.setlang('fr');
|
||||||
|
this.setlang('fr');
|
||||||
|
this.setlang('fr');
|
||||||
|
},
|
||||||
|
updated: function() {
|
||||||
|
this.setlang('fr');
|
||||||
|
this.setlang('fr');
|
||||||
|
this.setlang('fr');
|
||||||
|
this.setlang('fr');
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
|
@ -0,0 +1,157 @@
|
||||||
|
//var hotelxy=[-19.8,47.5]
|
||||||
|
|
||||||
|
var maxZoomLevel = 20
|
||||||
|
var mapSW = [6.9175, 43.4738]
|
||||||
|
var mapNE = [7.0893, 43.5983]
|
||||||
|
var southWest = new L.LatLng(mapSW[0], mapSW[1], true);
|
||||||
|
L.latLng
|
||||||
|
var northEast = new L.LatLng(mapNE[0], mapNE[1], true);
|
||||||
|
//var bounds = new L.LatLngBounds(southWest, northEast);
|
||||||
|
//var bounds = new L.LatLngBounds(L.latLng(mapSW),L.latLng(mapNE));
|
||||||
|
var bounds = new L.latLngBounds(
|
||||||
|
L.latLng([6.94, 43.4738]),
|
||||||
|
L.latLng([7.06, 43.5983]));
|
||||||
|
|
||||||
|
/*
|
||||||
|
var map = L.map('map', {
|
||||||
|
attributionControl: false,
|
||||||
|
zoomControl: false,
|
||||||
|
}).setView(hotelxy,1);
|
||||||
|
|
||||||
|
L.tileLayer('asset/tiles/{z}/{x}/{y}.png', {
|
||||||
|
minZoom: 1,
|
||||||
|
maxZoom: maxZoomLevel,
|
||||||
|
continuousWorld: false,
|
||||||
|
noWrap: true,
|
||||||
|
crs: L.CRS.Simple,
|
||||||
|
}).addTo(map);
|
||||||
|
*/
|
||||||
|
|
||||||
|
var map = L.map('map', {
|
||||||
|
center: [7.02, 43.54],
|
||||||
|
//maxZoom: maxZoomLevel,
|
||||||
|
attributionControl: false,
|
||||||
|
zoomControl: false,
|
||||||
|
zoom: 14,
|
||||||
|
//continuousWorld: false,
|
||||||
|
//noWrap: true,
|
||||||
|
//crs: L.CRS.Simple,
|
||||||
|
});
|
||||||
|
|
||||||
|
map.setMaxBounds(bounds);
|
||||||
|
|
||||||
|
var svgLayerBounds = [mapSW, mapNE];
|
||||||
|
|
||||||
|
var svgBgUrl = 'asset/svg/Grand-Cannes/bg.svg'
|
||||||
|
var svgRdUrl = 'asset/svg/Grand-Cannes/roads.svg'
|
||||||
|
var svgBrUrl = 'asset/svg/Grand-Cannes/road-label-big.svg'
|
||||||
|
|
||||||
|
L.imageOverlay(svgBgUrl, svgLayerBounds).addTo(map);
|
||||||
|
L.imageOverlay(svgRdUrl, svgLayerBounds).addTo(map);
|
||||||
|
L.imageOverlay(svgBrUrl, svgLayerBounds).addTo(map);
|
||||||
|
|
||||||
|
L.control.zoom({
|
||||||
|
position: 'bottomright'
|
||||||
|
}).addTo(map);
|
||||||
|
|
||||||
|
var layzl1 = L.layerGroup()
|
||||||
|
var layzl2 = L.layerGroup()
|
||||||
|
var layzl3 = L.layerGroup()
|
||||||
|
var layzl4 = L.layerGroup()
|
||||||
|
var layzl5 = L.layerGroup()
|
||||||
|
var layzl6 = L.layerGroup()
|
||||||
|
let layzls = [null,null,layzl2,layzl3,layzl4,layzl5,layzl6]
|
||||||
|
|
||||||
|
function removeLs(list) {
|
||||||
|
for (i in list){
|
||||||
|
map.removeLayer(list[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function addLs(list) {
|
||||||
|
for (i in list) {
|
||||||
|
list[i].addTo(map)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function iToZL(i) {
|
||||||
|
return lay
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
min/max = 163
|
||||||
|
map.setView([-163,-163],2)
|
||||||
|
*/
|
||||||
|
|
||||||
|
map.on('zoomend', function() {
|
||||||
|
let z = map.getZoom();
|
||||||
|
switch(z) {
|
||||||
|
case 1:
|
||||||
|
addLs([layzl1])
|
||||||
|
removeLs([
|
||||||
|
layzl2,
|
||||||
|
layzl3,
|
||||||
|
layzl4,
|
||||||
|
layzl5,
|
||||||
|
layzl6
|
||||||
|
])
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
addLs([
|
||||||
|
layzl1,
|
||||||
|
layzl2
|
||||||
|
])
|
||||||
|
removeLs([
|
||||||
|
layzl3,
|
||||||
|
layzl4,
|
||||||
|
layzl5,
|
||||||
|
layzl6
|
||||||
|
])
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
addLs([
|
||||||
|
layzl1,
|
||||||
|
layzl2,
|
||||||
|
layzl3
|
||||||
|
])
|
||||||
|
removeLs([
|
||||||
|
layzl4,
|
||||||
|
layzl5,
|
||||||
|
layzl6
|
||||||
|
])
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
addLs([
|
||||||
|
layzl1,
|
||||||
|
layzl2,
|
||||||
|
layzl3,
|
||||||
|
layzl4
|
||||||
|
])
|
||||||
|
removeLs([
|
||||||
|
layzl5,
|
||||||
|
layzl6
|
||||||
|
])
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
addLs([
|
||||||
|
layzl1,
|
||||||
|
layzl2,
|
||||||
|
layzl3,
|
||||||
|
layzl4,
|
||||||
|
layzl5
|
||||||
|
])
|
||||||
|
removeLs([
|
||||||
|
layzl6
|
||||||
|
])
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
addLs([
|
||||||
|
layzl1,
|
||||||
|
layzl2,
|
||||||
|
layzl3,
|
||||||
|
layzl4,
|
||||||
|
layzl5,
|
||||||
|
layzl6
|
||||||
|
])
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
|
@ -0,0 +1,236 @@
|
||||||
|
let ParkingLamy = {
|
||||||
|
id: "lamy",
|
||||||
|
isActive: true,
|
||||||
|
xy: [-18.27,56.91],
|
||||||
|
dirxy: [-21.66,52.47],
|
||||||
|
dirzl: 5,
|
||||||
|
minz: 2,
|
||||||
|
img: "https://ed.brz9.dev/proj/map/asset/img/lamy.jpg",
|
||||||
|
type: "item",
|
||||||
|
name: "Parking Lamy",
|
||||||
|
txtFR: "Parking public souterrain, situé à 3 minutes à pied de l'hôtel. Hauteur maximum: 1,9m.",
|
||||||
|
txtEN: "Underground public parking, located 3 minutes walk from the hotel. Maximum height: 1,9m.",
|
||||||
|
txtIT: "Parcheggio pubblico sotterraneo, situato a 3 minuti a piedi dall'hotel. Altezza massima: 1,9m.",
|
||||||
|
card: {
|
||||||
|
tabs: {
|
||||||
|
info: {
|
||||||
|
tabtype: "info",
|
||||||
|
site: "https://www.cannes.com/fr/mairie/annuaire-pratique/equipements-municipaux/p10-parking-lamy.html",
|
||||||
|
handi: "yes",
|
||||||
|
hautmax: "1,9 m",
|
||||||
|
wifi: "yes",
|
||||||
|
address: "121 rue d'Antibes - 06400 Cannes",
|
||||||
|
tel: "+33 4 89 82 23 23",
|
||||||
|
email: "cannesparking@ville-cannes.fr",
|
||||||
|
},
|
||||||
|
prix : {
|
||||||
|
tabtype: "prix",
|
||||||
|
txt : {
|
||||||
|
fr: "Pour les forfaits, demander à l'accueil du parking à l'arrivée. Sonner à l'interphone si besoin.",
|
||||||
|
en: "For packages, ask at the parking lot reception upon arrival. Ring the intercom if necessary.",
|
||||||
|
it: "Per i pacchetti, chiedere alla reception del parcheggio all'arrivo. Se necessario, suonare il citofono.",
|
||||||
|
},
|
||||||
|
list : {
|
||||||
|
/* h1 : {
|
||||||
|
nameFR: "1h",
|
||||||
|
nameEN: "1h",
|
||||||
|
nameIT: "1h",
|
||||||
|
price: "",
|
||||||
|
},*/
|
||||||
|
h24 : {
|
||||||
|
nameFR: "24h",
|
||||||
|
nameEN: "24h",
|
||||||
|
nameIT: "24h",
|
||||||
|
price: "16,40 €",
|
||||||
|
},
|
||||||
|
j4 : {
|
||||||
|
nameFR: "Forfait 4 jours",
|
||||||
|
nameEN: "4-day package",
|
||||||
|
nameIT: "Pacchetto 4 giorni",
|
||||||
|
price: "54,50 €",
|
||||||
|
},
|
||||||
|
j5 : {
|
||||||
|
nameFR: "Forfait 5 jours",
|
||||||
|
nameEN: "5-day package",
|
||||||
|
nameIT: "Pacchetto 5 giorni",
|
||||||
|
price: "60,60 €",
|
||||||
|
},
|
||||||
|
j6 : {
|
||||||
|
nameFR: "Forfait 6 jours",
|
||||||
|
nameEN: "6-day package",
|
||||||
|
nameIT: "Pacchetto 6 giorni",
|
||||||
|
price: "66,70 €",
|
||||||
|
},
|
||||||
|
j7 : {
|
||||||
|
nameFR: "Forfait 7 jours",
|
||||||
|
nameEN: "7-day package",
|
||||||
|
nameIT: "Pacchetto 7 giorni",
|
||||||
|
price: "72,70 €",
|
||||||
|
},
|
||||||
|
j8 : {
|
||||||
|
nameFR: "Forfait 8 jours",
|
||||||
|
nameEN: "8-day package",
|
||||||
|
nameIT: "Pacchetto 8 giorni",
|
||||||
|
price: "78,80 €",
|
||||||
|
},
|
||||||
|
j10 : {
|
||||||
|
nameFR: "Forfait 10 jours",
|
||||||
|
nameEN: "10-day package",
|
||||||
|
nameIT: "Pacchetto 10 giorni",
|
||||||
|
price: "84,80 €",
|
||||||
|
},
|
||||||
|
j15 : {
|
||||||
|
nameFR: "Forfait 15 jours",
|
||||||
|
nameEN: "15-day package",
|
||||||
|
nameIT: "Pacchetto 15 giorni",
|
||||||
|
price: "103 €",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let ParkingStephanie = {
|
||||||
|
id: "parkingstephanie",
|
||||||
|
isActive: true,
|
||||||
|
xy: [-27.06,48.20],
|
||||||
|
dirxy: [-22.99,48.76],
|
||||||
|
dirzl: 5,
|
||||||
|
minz: 4,
|
||||||
|
img: "https://ed.brz9.dev/proj/map/asset/img/parking-palais-stephanie.jpg",
|
||||||
|
type: "item",
|
||||||
|
name: "Parking Palais Stéphanie",
|
||||||
|
txtFR: "Parking public souterrain, situé à 1 minute à pied de l'hôtel. Hauteur maximum: 1,9m.",
|
||||||
|
txtEN: "Underground public parking, located 1 minute walk from the hotel. Maximum height: 1,9m.",
|
||||||
|
txtIT: "Parcheggio pubblico sotterraneo, situato a 1 minuto a piedi dall'hotel. Altezza massima: 1,9m.",
|
||||||
|
card: {
|
||||||
|
tabs: {
|
||||||
|
info: {
|
||||||
|
tabtype: "info",
|
||||||
|
site: "https://www.interparking.fr/fr-FR/find-parking/PalaisStephanie/",
|
||||||
|
handi: "yes",
|
||||||
|
hautmax: "1,9 m",
|
||||||
|
address: "Rdpt Duboys d'Angers - 06400 Cannes",
|
||||||
|
tel: "+33 9 70 140 111",
|
||||||
|
email: "contact-france@interparking.com",
|
||||||
|
},
|
||||||
|
prix : {
|
||||||
|
tabtype: "prix",
|
||||||
|
txt : {
|
||||||
|
fr: "Pour les forfaits, demander à l'accueil du parking à l'arrivée. Sonner à l'interphone si besoin.",
|
||||||
|
en: "For packages, ask at the parking lot reception upon arrival. Ring the intercom if necessary.",
|
||||||
|
it: "Per i pacchetti, chiedere alla reception del parcheggio all'arrivo. Se necessario, suonare il citofono.",
|
||||||
|
},
|
||||||
|
list : {
|
||||||
|
/* h1 : {
|
||||||
|
nameFR: "1h",
|
||||||
|
nameEN: "1h",
|
||||||
|
nameIT: "1h",
|
||||||
|
price: "",
|
||||||
|
},*/
|
||||||
|
h24 : {
|
||||||
|
nameFR: "24h",
|
||||||
|
nameEN: "24h",
|
||||||
|
nameIT: "24h",
|
||||||
|
price: "28 €",
|
||||||
|
},
|
||||||
|
j4 : {
|
||||||
|
nameFR: "Forfait 4 jours",
|
||||||
|
nameEN: "4-day package",
|
||||||
|
nameIT: "Pacchetto 4 giorni",
|
||||||
|
price: "110 €",
|
||||||
|
},
|
||||||
|
j7 : {
|
||||||
|
nameFR: "Forfait 7 jours",
|
||||||
|
nameEN: "7-day package",
|
||||||
|
nameIT: "Pacchetto 7 giorni",
|
||||||
|
price: "185 €",
|
||||||
|
},
|
||||||
|
j10 : {
|
||||||
|
nameFR: "Forfait 10 jours",
|
||||||
|
nameEN: "10-day package",
|
||||||
|
nameIT: "Pacchetto 10 giorni",
|
||||||
|
price: "220 €",
|
||||||
|
},
|
||||||
|
j15 : {
|
||||||
|
nameFR: "Forfait 15 jours",
|
||||||
|
nameEN: "15-day package",
|
||||||
|
nameIT: "Pacchetto 15 giorni",
|
||||||
|
price: "250 €",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let ParkingPantiero = {
|
||||||
|
id: "parkingpantiero",
|
||||||
|
isActive: true,
|
||||||
|
xy: [-27.68,-13.36],
|
||||||
|
dirxy: [-24.52,2.72],
|
||||||
|
dirzl: 3,
|
||||||
|
minz: 3,
|
||||||
|
img: "https://ed.brz9.dev/proj/map/asset/img/parking-pantiero.jpg",
|
||||||
|
type: "item",
|
||||||
|
name: "Parking Pantiero",
|
||||||
|
txtFR: "Parking public souterrain, situé à 15 minutes à pied de l'hôtel. Hauteur maximum: 2,4m.",
|
||||||
|
txtEN: "Underground public parking, located 15 minutes walk from the hotel. Maximum height: 2,4m.",
|
||||||
|
txtIT: "Parcheggio pubblico sotterraneo, situato a 15 minuti a piedi dall'hotel. Altezza massima: 2,4m.",
|
||||||
|
card: {
|
||||||
|
tabs: {
|
||||||
|
info: {
|
||||||
|
tabtype: "info",
|
||||||
|
site: "https://www.cannes.com/fr/mairie/annuaire-pratique/equipements-municipaux/p4-parking-pantiero.html",
|
||||||
|
handi: "yes",
|
||||||
|
hautmax: "2,4 m",
|
||||||
|
wifi: "yes",
|
||||||
|
address: "Promenade de La Pantiero - 06400 Cannes",
|
||||||
|
tel: "+33 4 89 82 23 23",
|
||||||
|
email: "cannesparking@ville-cannes.fr",
|
||||||
|
},
|
||||||
|
prix : {
|
||||||
|
tabtype: "prix",
|
||||||
|
txt : {
|
||||||
|
fr: "Pour les forfaits, demander à l'accueil du parking à l'arrivée. Sonner à l'interphone si besoin.",
|
||||||
|
en: "For packages, ask at the parking lot reception upon arrival. Ring the intercom if necessary.",
|
||||||
|
it: "Per i pacchetti, chiedere alla reception del parcheggio all'arrivo. Se necessario, suonare il citofono.",
|
||||||
|
},
|
||||||
|
list : {
|
||||||
|
h24 : {
|
||||||
|
nameFR: "24h",
|
||||||
|
nameEN: "24h",
|
||||||
|
nameIT: "24h",
|
||||||
|
price: "22,40 €",
|
||||||
|
},
|
||||||
|
j4 : {
|
||||||
|
nameFR: "Forfait 4 jours",
|
||||||
|
nameEN: "4-day package",
|
||||||
|
nameIT: "Pacchetto 4 giorni",
|
||||||
|
price: "66,70 €",
|
||||||
|
},
|
||||||
|
j7 : {
|
||||||
|
nameFR: "Forfait 7 jours",
|
||||||
|
nameEN: "7-day package",
|
||||||
|
nameIT: "Pacchetto 7 giorni",
|
||||||
|
price: "89,70 €",
|
||||||
|
},
|
||||||
|
j10 : {
|
||||||
|
nameFR: "Forfait 10 jours",
|
||||||
|
nameEN: "10-day package",
|
||||||
|
nameIT: "Pacchetto 10 giorni",
|
||||||
|
price: "105,40 €",
|
||||||
|
},
|
||||||
|
j15 : {
|
||||||
|
nameFR: "Forfait 15 jours",
|
||||||
|
nameEN: "15-day package",
|
||||||
|
nameIT: "Pacchetto 15 giorni",
|
||||||
|
price: "136,90 €",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,149 @@
|
||||||
|
let restoTagList = {
|
||||||
|
pizza : {
|
||||||
|
isActive: false,
|
||||||
|
fr: "Pizza",
|
||||||
|
en: "Pizza",
|
||||||
|
it: "Pizza",
|
||||||
|
},
|
||||||
|
vege : {
|
||||||
|
isActive: false,
|
||||||
|
fr: "Végétarien",
|
||||||
|
en: "Vegie",
|
||||||
|
it: "Vigi",
|
||||||
|
},
|
||||||
|
ital : {
|
||||||
|
isActive: false,
|
||||||
|
fr: "Italien",
|
||||||
|
en: "Italian",
|
||||||
|
it: "Italiano",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let SanTelmo = {
|
||||||
|
isActive: false,
|
||||||
|
id: "santelmo",
|
||||||
|
type : "item",
|
||||||
|
cat: "resto",
|
||||||
|
name: "San Telmo",
|
||||||
|
tags : [
|
||||||
|
restoTagList.pizza,
|
||||||
|
restoTagList.ital
|
||||||
|
],
|
||||||
|
xy: [-11.42,27.20],
|
||||||
|
dirxy: [-12.98,35.95],
|
||||||
|
dirzl: 4,
|
||||||
|
minz: 3,
|
||||||
|
img: "https://ed.brz9.dev/proj/map/asset/img/santelmo.jpg",
|
||||||
|
txtFR: "Français Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.",
|
||||||
|
txtEN: "English Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.",
|
||||||
|
txtIT: "Italiano Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.",
|
||||||
|
card : {
|
||||||
|
tabs : {
|
||||||
|
menu : {
|
||||||
|
tabtype : "menu",
|
||||||
|
priceRange : "17-25€",
|
||||||
|
dishes : {
|
||||||
|
},
|
||||||
|
sections : {
|
||||||
|
pizza : {
|
||||||
|
nameFR : "Pizza",
|
||||||
|
nameEN : "Pizza",
|
||||||
|
nameIT : "Pizza",
|
||||||
|
list : [
|
||||||
|
Dishes.santelmo.diavolo,
|
||||||
|
Dishes.santelmo.d10s,
|
||||||
|
],
|
||||||
|
},
|
||||||
|
pates : {
|
||||||
|
nameFR: "Pâtes",
|
||||||
|
nameEN: "Pasta",
|
||||||
|
nameIT: "Pasta",
|
||||||
|
list : [
|
||||||
|
Dishes.santelmo.gnocchigor,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
time : {
|
||||||
|
tabtype : "time",
|
||||||
|
list : {
|
||||||
|
mon : "11h30-14h00 18h30-22h00",
|
||||||
|
tue : "11h30-14h00 18h30-22h00",
|
||||||
|
wed : "11h30-14h00 18h30-22h00",
|
||||||
|
thu : "11h30-14h00 18h30-22h00",
|
||||||
|
fri : "11h30-14h00 18h30-22h00",
|
||||||
|
sat : "11h30-14h00 18h30-22h00",
|
||||||
|
sun : "",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
info : {
|
||||||
|
tabtype: "info",
|
||||||
|
tel: "05 04 32 23 23",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let Novaa = {
|
||||||
|
isActive: false,
|
||||||
|
id: "novasocialfood",
|
||||||
|
type : "item",
|
||||||
|
name: "Noväa social food",
|
||||||
|
tags : [
|
||||||
|
restoTagList.vege
|
||||||
|
],
|
||||||
|
xy: [-14.60,17.97],
|
||||||
|
dirxy: [-18.48,35.68],
|
||||||
|
dirzl: 3,
|
||||||
|
minz: 3,
|
||||||
|
img: "https://ed.brz9.dev/proj/map/asset/img/novaa.jpg",
|
||||||
|
txtFR: "Français Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.",
|
||||||
|
txtEN: "English Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.",
|
||||||
|
txtIT: "Italiano Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.",
|
||||||
|
card : {
|
||||||
|
tabs : {
|
||||||
|
menu : {
|
||||||
|
tabtype : "menu",
|
||||||
|
priceRange : "18-32€",
|
||||||
|
dishes : {
|
||||||
|
divola : {
|
||||||
|
name : "Pizza Divola",
|
||||||
|
},
|
||||||
|
regina : {
|
||||||
|
name : "Pizza Regina",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
time : {
|
||||||
|
tabtype : "time",
|
||||||
|
mon : "11h30-14h00 18h30-22h00",
|
||||||
|
tue : "11h30-14h00 18h30-22h00",
|
||||||
|
wed : "11h30-14h00 18h30-22h00",
|
||||||
|
thu : "11h30-14h00 18h30-22h00",
|
||||||
|
fri : "11h30-14h00 18h30-22h00",
|
||||||
|
sat : "11h30-14h00 18h30-22h00",
|
||||||
|
sun : "",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let Salsamenteria = {
|
||||||
|
id: "salsamenteria",
|
||||||
|
isActive: false,
|
||||||
|
xy: [-21.96, -21.64],
|
||||||
|
dirxy: [-19.97,-7.73],
|
||||||
|
dirzl: 3,
|
||||||
|
minz: 3,
|
||||||
|
tags : [
|
||||||
|
restoTagList.ital
|
||||||
|
],
|
||||||
|
type : "item",
|
||||||
|
name: "Salsamenteria di Parma",
|
||||||
|
img: "https://ed.brz9.dev/proj/map/asset/img/salsamentiera.jpg",
|
||||||
|
txtFR: "Français Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.",
|
||||||
|
txtEN: "English Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.",
|
||||||
|
txtIT: "Italiano Adipisicing live-edge fam velit. Messenger bag poke laboris aesthetic viral do semiotics authentic est selfies.",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue