From 8490602d2dc9409231bfa7375940a6579b555736 Mon Sep 17 00:00:00 2001
From: ed <ed@brz9.dev>
Date: Tue, 17 May 2022 13:13:47 +0200
Subject: [PATCH] cards added xwith time

---
 proj/map/.index.html.swp                    | Bin 12288 -> 12288 bytes
 proj/map/asset/css/style.css                | 104 ++++++-
 proj/map/asset/js/.main.js.swp              | Bin 20480 -> 28672 bytes
 proj/map/asset/js/main.js                   | 306 ++++++++++++++++++--
 proj/map/asset/json/endpoint/.index.php.swp | Bin 12288 -> 0 bytes
 proj/map/index.html                         |   7 +-
 6 files changed, 375 insertions(+), 42 deletions(-)
 delete mode 100644 proj/map/asset/json/endpoint/.index.php.swp

diff --git a/proj/map/.index.html.swp b/proj/map/.index.html.swp
index 1d8c4d660b282ea434aaec2585ff8900d60d1254..c63f0c4aa1a9e05254345a62bdd5043cbf0ef0d6 100644
GIT binary patch
delta 249
zcmZojXh@JtG6?hZRj|-AVgLdG28Nb%O-bugQy5+5F)*a2OkAk8(d7(3quFLbfzSNB
znOqDEvD^@aW|IXK>f<_i7#Q+^*cOOwfY=m>O@P=Kh_!)O3y770SP6&~fmi{EC4g8Q
zh{b?d6o_8}P22&*+kv<bh|_>L4v1s9H#4#na7|9oHkfRnBR2W9b|Di3!{lfkXWgRI
z;*xwNI~#q+<mCLKl+^q@I|c;>o0QBlh2)&X;$mB+;?x3=JW#}La)XW>dqHARc4l7s
J<~2GY%mB%rHR}KX

delta 195
zcmZojXh@JtG6?hZRj|-AVgLdG1_q{mO-Zt8DU2@j7#LDhCN5Ol=yHai(Qvb%z-NBm
zBU}s&OSmBl4JQjK)Q2_lFfcR#aU~E}0C71G=L2yb5T^ri8W5)faS9N}0I>lO{|B1z
z4~VY<@me5W3dA5&7X$GGAnxbh%*ay3H91b(VDfft;mI-DJ10x%IPs+<=@q3Gmn4=J
OCFYeBZ(gGl!VCZiax8rS

diff --git a/proj/map/asset/css/style.css b/proj/map/asset/css/style.css
index a5c0135..e790cc6 100644
--- a/proj/map/asset/css/style.css
+++ b/proj/map/asset/css/style.css
@@ -4,7 +4,8 @@
 @import url("./font.css");
 
 header {
-
+  height: 100px;
+  width: 100vw;
 }
 
 body {
@@ -13,15 +14,28 @@ body {
 }
 
 section#logo {
-  position: fixed;
+  position: relative;
   left: 5px;
   top: 5px;
 }
 
 section#lang {
-  position: fixed;
-  right: 5px;
-  top: 5px;
+  position: relative;
+  text-align: right;
+  margin-top: -12px;
+}
+
+section#lang span.marker {
+  position: absolute;
+  height: 5px;
+  left: 0;
+  width: 0;
+  bottom: -8px;
+  transition: 0.5s;
+}
+
+section#lang span {
+  margin-right: 10px;
 }
 
 section#map-container {
@@ -40,6 +54,7 @@ main {
   top: 340px;
   bottom: 0px;
   width: 100vw;
+  overflow-x: hidden;
 }
 
 div#list {
@@ -49,20 +64,13 @@ div#list {
   padding-left: 10px;
   padding-top: 10px
   scrollbar-width: none;
+  overflow-x: hidden;
 }
 
 div#list::-webkit-scrollbar {
   display: none;
 }
 
-.marker {
-  position: absolute;
-  height: 5px;
-  left: 0;
-  width: 0;
-  bottom: -10px;
-  transition: 0.5s;
-}
 
 .listchild {
   height: 0%;
@@ -156,3 +164,73 @@ section.lastlistitem aside span.info {
   background-color: var(--b9h-color-fg);
   color: var(--b9h-color-bg);
 }
+
+div.sep {
+  background-color: var(--b9h-color-fg);
+  height:5px;
+  width: 100vw;
+  margin-left: -8px;
+  overflow-x: hidden;
+  
+  content: "jsdflkj" 
+}
+
+section.card {
+  position: fixed;
+  top: 110vh;
+  left: 0px;
+  right: 0px;
+  bottom: 0px;
+  background-color: var(--b9h-color-bg);
+  z-index: 1000;
+  transition: top 0.5s;
+}
+
+section.card nav {
+  margin-top: 60px;
+  display: flex;
+  flex-direction: row;
+  justify-content: space-around;
+}
+
+section.card nav span {
+  font-size: 30px;
+}
+
+section.card span.byl-icon-cross {
+  position: absolute;
+  right: 20px;
+  top: 20px;
+  font-size: 1.3rem;
+}
+
+section.tabroll {
+  margin-top: 20px;
+  height: 100vh;
+  display: flex;
+  flex-direction: row;
+}
+
+section.tabroll {
+  transform: translateX(-0vw);
+  transition: transform 0.5s;
+}
+
+section.tabroll section.singletab {
+  width: 100vw;
+  height: 100%;
+}
+
+nav.cardnav {
+  position: relative;
+}
+
+nav.cardnav span.marker {
+  position: absolute;
+  height: 5px;
+  left: 0px;
+  width: 0px;
+  background-color: var(--b9h-color-accent);
+  bottom: -20px;
+  transition: 0.5s;
+}
diff --git a/proj/map/asset/js/.main.js.swp b/proj/map/asset/js/.main.js.swp
index 9e230b54432a4e693b38bf04b423b4a8f42beea1..c282201c35ecd5a9170477a158cb2b56dd9b3a77 100644
GIT binary patch
literal 28672
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

delta 2150
zcmdVaUu;uV9Ki8YTK)-JJ7Iz_;H2PKm(ei@11B4ZQy9otFcBv~ylrpS&aM}FFB5^$
zF$kjQ!#o<12V(RA|7840g`rWR{E<I_xDc{HKqDcB7mY^4f`I7vbOWbPzIv0-?XTyY
z-gA0?=loi~ceTFj8Xubabj@NpD>zMX`GnYaq%Bk&jkv0J31LRs_ZRN3KJ4|nMVfAp
z9>e8PdA<p*v?}wB8tU$C63a8~KFizw<=i)<C#ROi=m2g!Fs<_B*tF>tq8>9LaVuAd
zn>dU%JOLlPaN$Od5T9W+La0YR2IInTAx>d0UO^p3;k#i%e2Y(U2p?i6ULVHlw-IbW
zBTUreNz6bgictU$uHMIkZ~>>$iG$dSci><ag7D$SP$4ei9M0e*j^h}PV$)FGUMoQh
z9N37U1|<lf2>BR<+e3u-0o^!-FR&Z!Scm19jd939&tM@g;xKk$BUYdWLFA^n{XB@(
zp%p(46yjN&Af<bt(2V&ggd68bZ71GD7&R!v82mwUyYN2V!)sUzo%G50*CmzD%vGzN
z$yf5R2h_@W`g5d?Gb`s!a;w^^Tbb)CesxVU)})N2W6KJ;UP!J;Xj;Emhb<+USEFv1
z8F(Z+Ko62Ko=n7(W`*=8O(SL6j=x1@+q1V&!V14YpP7vKOZvB)F{3$drRcJoEX#@Y
z>+PLgs<Vyb)kh7Z)v<<pb@1_V>i9!TeR2EIuoG`KSxwYP*rvL&V4~_Oe5zo!y~;?+
zaKf<dN`E{Vwft4_*`>O%N~mB-fts*rcxGHl)IC}@PYK17k&0N#j8^)cSlkZk(62U^
zZpzul>-CWueRh_sys6jHNiw_u6Z^6~h|g;zbT8JT8oBsQCl=Sxg%6<6hA`$J4?6kh
z@eMk$6K#m17BwitgUBB!ykaCl9`v%VdonK1YPaf{K2rTMy+|!8pQ-MY->)v0r_}9o
zZ=(@)%#>^}orTr&WY|a~{DHog9t;~!I96n)QnIp2hOMM+CCp&LYS2x=CeyZ!1~YJP
zv=cLvMG?a>^yut6iiBjP)GfVZ)Sc+q#X7}NQ$IHnT9ZlyL}{sR%8u_{L{Z;X=|7?0
z2w7_!=~&qn_N~?*$Sj&!?P~hxTzB`G{<)K#okbWg8gWOm)q;(-mApHH%>Jot`@J#!
z*Vg+e!+t3l?whhGkZGN@WpK_UDq<aU&MB^QN2NRXwgsCJ#xl&nc>J#GBR)qfs*#Hv
z{7HT6!68_99?LKS1JO;LJb@0pj9TR5GG*@)I&o0f%iRP!upL{m4l#tW3=1(GQ&5C4
z7=SC(!%OJKNgTi@=)l`Zp&TX1MGxifBD!!IU*o8*mq!S`LK+*f9x1Fw2=h^l$tc7K
zcyN=`aTVwB7PesnqNu~e7=v4!n9DeW1K5EU=(<^1#;pKD@DoSoEcReK^fCIFlc0~s
zR_bIEmU=SXk9PcB$)^67N+$G9&2C#+p`Ke(tgMD1uK#^~D|Wj%gi6kls&2`?zW`ju
B!>#}T

diff --git a/proj/map/asset/js/main.js b/proj/map/asset/js/main.js
index 25ef3bc..5d30359 100644
--- a/proj/map/asset/js/main.js
+++ b/proj/map/asset/js/main.js
@@ -2,12 +2,120 @@
 //const dburl = "https://ed.brz9.dev/proj/map/asset/json/db.json"
 const dburl = "https://ed.brz9.dev/proj/map/asset/json/endpoint/"
 
+Vue.component('Time', {
+  template : `
+  <div>
+<p>
+  <span class="b9h-lang-fr">{{ this.days.mon.fr }}</span>
+  <span class="b9h-lang-en">{{ this.days.mon.en }}</span>
+  <span class="b9h-lang-it">{{ this.days.mon.it }}</span>
+  <span>{{ this.obj.mon }}</span>
+</p>
+
+<p>
+  <span class="b9h-lang-fr">{{ this.days.tue.fr }}</span>
+  <span class="b9h-lang-en">{{ this.days.tue.en }}</span>
+  <span class="b9h-lang-it">{{ this.days.tue.it }}</span>
+  <span>{{ this.obj.tue }}</span>
+</p>
+
+<p>
+  <span class="b9h-lang-fr">{{ this.days.wed.fr }}</span>
+  <span class="b9h-lang-en">{{ this.days.wed.en }}</span>
+  <span class="b9h-lang-it">{{ this.days.wed.it }}</span>
+  <span>{{ this.obj.wed }}</span>
+</p>
+
+<p>
+  <span class="b9h-lang-fr">{{ this.days.thu.fr }}</span>
+  <span class="b9h-lang-en">{{ this.days.thu.en }}</span>
+  <span class="b9h-lang-it">{{ this.days.thu.it }}</span>
+  <span>{{ this.obj.thu }}</span>
+</p>
+
+<p>
+  <span class="b9h-lang-fr">{{ this.days.fri.fr }}</span>
+  <span class="b9h-lang-en">{{ this.days.fri.en }}</span>
+  <span class="b9h-lang-it">{{ this.days.fri.it }}</span>
+  <span>{{ this.obj.fri }}</span>
+</p>
+
+<p>
+  <span class="b9h-lang-fr">{{ this.days.sat.fr }}</span>
+  <span class="b9h-lang-en">{{ this.days.sat.en }}</span>
+  <span class="b9h-lang-it">{{ this.days.sat.it }}</span>
+  <span>{{ this.obj.sat }}</span>
+</p>
+
+<p>
+  <span class="b9h-lang-fr">{{ this.days.sun.fr }}</span>
+  <span class="b9h-lang-en">{{ this.days.sun.en }}</span>
+  <span class="b9h-lang-it">{{ this.days.sun.it }}</span>
+  <span>{{ this.obj.sun }}</span>
+</p>
+
+  </div>
+  `,
+  props : {
+    obj : Object
+  },
+  data () {
+    return {
+      message : "hello from time",
+      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 : {
+    getTime () {
+      tabtype
+    }
+
+  }
+});
+
+
 Vue.component('Accordeon', {
   template : `
   <section v-bind:id="this.list.id">
   <nav v-if="this.list.type === 'list'">
 
-    <a v-bind:href="this.href">
+    <a>
       <span
       v-on:click="toggleActive()"
       class="listname"
@@ -34,7 +142,52 @@ Vue.component('Accordeon', {
         <p class="b9h-lang-en">{{ this.list.txtEN }}</p>
         <p class="b9h-lang-it">{{ this.list.txtIT }}</p>
 
-        <span class="info">i</span>
+        <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>
+
+        <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">
+            <p>{{ i.tabtype }}</p>
+            <Time v-if="i.tabtype === 'time'" v-bind:obj="i"></Time>
+          </section>
+
+
+
+        </section>
+        </div>
+        </section>
+
+        <span
+          v-if="'card' in this.list"
+          v-on:click="showCard()"
+          class="info">i</span>
 
       </aside>
     </section>
@@ -45,26 +198,110 @@ Vue.component('Accordeon', {
   },
   data () {
     return {
-      isActive : false
+      isActive : false,
+      displayCard : "block",
+      cardTop : "110vh",
+      tabrollxoff : 0,
+      tabind : 0,
+      markerL : 0,
+      markerW : 0,
     }
   },
   computed: {
     href: function () {
       return "#" + this.list.id;
-    }
+    },
+    cardid: function () {
+      return "card" + this.list.id;
+    },
+    tabcount: function () {
+      if ('card' in this.list){
+        console.log(this.list + " has a card")
+        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)";
+    },
+    markerLL : function () {
+      if ('card' in this.list){
+try {
+        return this.$refs.tabnavi[this.tabind].getBoundingClientRect().left + "px"
+}catch(err) {}
+      } else {
+        return 0;
+      }
+    },
+    markerWW : function () {
+      if ('card' in this.list){
+        try {
+          target = document.querySelector("#" + this.cardid +"0");
+          marker.style.left = target.offsetLeft + "px";
+          return target.offsetWidth + "px";
+          //return this.$refs.tabnavi[this.tabind].getBoundingClientRect().width + "px"
+        }catch(err) {
+          console.log(err.message)
+        }
+      } else {
+        return 0;
+      }
+    },
   },
   methods : {
+    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"
+      console.log(this.markerL)
+    },
+    getTabLogo(obj) {
+      switch(obj.tabtype) {
+        case "menu":
+          return "byl-icon-restaurant"
+          // code block
+          break;
+        case "time":
+          return "byl-icon-clock"
+          // code block
+          break;
+        default:
+          // code block
+      }
+    },
+    showCard() {
+      this.displayCard = "block";
+      this.setTab(0)
+      console.log("showing card")
+      this.cardTop = "0vh"
+      this.setTab(0)
+      this.setTab(0)
+      this.setTab(0)
+    },
+    hideCard() {
+      this.cardTop = "110vh"
+    },
     donothing () {
 
     },
     toggleActive () {
       this.isActive = !this.isActive
-      document.getElementById(this.list.id).scrollIntoView(
-        {
-          behavior: "smooth",
-          block: "end",
-          inline: "nearest"}
-      );
+      document.getElementById(this.list.id).scrollIntoView();
     }
   }
 })
@@ -85,9 +322,22 @@ let vm = new Vue({
   data: {
     currentLang: 'fr',
     fdata: {},
-    db : {},
-    db2 : {
-      restaurants : {
+    db : {
+      parking : {
+        id : "parking",
+        type : "list",
+        nameFR : "Parking",
+        nameEN : "Car park",
+        nameIT : "Parcheggio",
+        sub : {
+          lamy : {
+            id: "lamy",
+            type: "item",
+            name: "Parking Lamy"
+          }
+        }
+      },
+      resto : {
         id : "resto",
         type : "list",
         nameFR : "Restaurant",
@@ -112,6 +362,7 @@ let vm = new Vue({
                 card : {
                   tabs : {
                     menu : {
+                      tabtype : "menu",
                       priceRange : "18-32€",
                       dishes : {
                         divola : {
@@ -123,9 +374,14 @@ let vm = new Vue({
                       }
                     },
                     time : {
-                      monAM : "11h30-14h00",
-                      monPM : "18h30-22h00",
-
+                      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 : "",
                     }
                   }
                 }
@@ -185,11 +441,6 @@ let vm = new Vue({
         langElms[i].style.display = 'revert';
       }
     },
-    async getJDB(){
-      const res = await fetch(dburl);
-      const data = await res.json();
-      this.db = data;
-    },
     setlang: function (lang) {
       target = document.querySelector("#"+"tab-"+lang);
       marker = document.querySelector("#lang-marker");
@@ -199,13 +450,6 @@ let vm = new Vue({
     },
   },
   created: function(){
-    console.log("about to call getJDB")
-//    this.getJDB();
-    fetch(dburl)
-      .then(res => res.json())
-      .then(data => this.db = data)
-      .catch(err => console.log(err.message))
-    console.log("after getJDB call")
     this.setlang('fr');
   },
   mounted: function() {
@@ -213,9 +457,15 @@ let vm = new Vue({
     this.setlang('fr');
     console.log("mounted");
     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');
   }
 
 })
diff --git a/proj/map/asset/json/endpoint/.index.php.swp b/proj/map/asset/json/endpoint/.index.php.swp
deleted file mode 100644
index c7e9419398ebea389310440b2ed9875c2f157140..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 12288
zcmeI2%ZnUE9LH;8;%ZD(^kBS|EwWLZ>DgHm*Ih9zW&^9NE}Mr35vlI3%+%U1yK5)w
zhDjj*f#OAc1yLm6MFjDIMzV;KiyrjiF<?-Sq5*>kztxY)PIvF@s+fmV!)JQB>({^f
z)wimD{TrsO#-W*6I$m!QY_}5f>zNbQFT)E%d*2|0JL=^6o5QV;ZNT;zcT78QxOs$I
zW?Oo0&5mP}J9R5seyHy7ju}S5g6Xl)WO2-;xey1w$$cjbgfC6uJAA1gw!`%!(iU0)
ztw33U?PRPu+EC~3HtwRg-*&KUqR(grv;tZIt$<cQE1(t73TOqi0{>eDWH>~QV|1Ic
z5k8&mhYI`bQ17$?S^=$qRzNGD70?Q31+)TM0j+>mKr5gXxCRwa|J&E`<Nw3!5Ip|>
z&wu}4yoHcIz&GF>@HTiIyb4|d%fJFNU?&&`=WizDJMbxZ4IBs0fJv|eYyv-SCu9Y@
z1-ifluWTb^3kYu_<RBOacY>d`67nTD34E|0)WM%O5^@fl1s{Ny0S6C)-GG8^;NlI0
z{0zPVZ-Op(3|tr{<XLd`dO~)Ad%zuFEBJj2A>V_Kz>DB{@Hp57c7O|;(GK1RC&4lB
z6xa<mgWsUzdGG`H7JLoPfG@yl@HzMld;&fOiSF0ny3rwDNd@*iLdeLZil9p<w)FGT
ze)YHh@5Q6?F{OsjJZ{hlYV2ojjPJhWkzmvjbdE(HGm<`4zxig!7sB)kA-QMVPx6L*
zZwSYLzj(F3l39OuDuAN}N8Jj~Nw7(*K0Ux)FZeg%VWi4Ku^U9@r@l);8S$c34mFW*
z=0GCiA>QJWK|sIgII)_3BDZ3Gq2r`|-+bD>a;mj*O8Ma>v!42{h-J|Slvh(3@mK~O
zgwoe;BxeePDyW<<u6!<w$5=3ONoIqck<3*irBjXwMJ#OLx2P*RyvCgtr-zwGJKPnr
zPG>pZ@$y?dq84k>FnEqrmsvq1V#*L}n@eHSj)<5`oq)#N69LYkaS?64YJ?TeyN3mj
z>s6D!Br|QN{T7sIU-p=a%P3VUo6vm`^H<(w81Chksv<1mwUSlRmNJYd%t0^Z!PM;C
z$AU+!z7V$h7FD`X*3BXnVWbOLE!P2gL^byUP>HG3`9De|<z-!!8`aplC^0HG!wdYm
z*+j_E@%C7w)@-&Ljq=h=FILu5nf0i$9(_Prmt|4rh7@T|E~doPSK*dTPpZ$VQDv8q
zbYJy(Y3}C4@-n0Iye0gKyq{l-?2;H15=q{i?$?Y_H5Yr_D>{KYs7EI?7|^5P;GXBP
znvQDG&}$e8o6j?(p={P_W6g6X-dk%D@F-kd%by{cwMJ)#&7vd=m*dD%CzkXT%beu}
zr-DN2L{L{<=0r?aUE)Mc8_t_)fiW;;!X3&DNvEqS5tRuxT5J6m#Z10R3wKCz`({tu
z%%sX9d-Nq1f4_`@Fi907P-FCY$I}8;2lorNU%50(!ptg_dDKb)p21SA^0j&#^QbS_
zqOvF&WW%U7=uJ<d7*i#%dUPd2=y^;I(_XUZ4JWH7j}mUT13E%Tn=^+;JB=yZM$uGz
zH1K5<xV0(Q4UW{Fj0AG;1ijC=cQUseQ6?yoYATos%EHhUHj@Ic)2nytM_@@F-lJZn
F{|na|a#sKV

diff --git a/proj/map/index.html b/proj/map/index.html
index 5405caa..94e0eef 100644
--- a/proj/map/index.html
+++ b/proj/map/index.html
@@ -28,7 +28,9 @@
 <main>
 <div id="list">
 
-  <Accordeon v-bind:list="db.db.restaurants"></Accordeon>
+  <Accordeon v-bind:list="db.parking"></Accordeon>
+  <div class="sep"></div>
+  <Accordeon v-bind:list="db.resto"></Accordeon>
 
 </div>
 
@@ -40,6 +42,9 @@
 
 
 </body>
+
+
+
 <script src="asset/js/vue.min.js"></script>
 <script src="asset/leaflet/leaflet.js"></script>