1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{7676:(e,t,s)=>{Promise.resolve().then(s.bind(s,1829))},1829:(e,t,s)=>{"use strict";let i;s.r(t),s.d(t,{default:()=>k});var a=s(5155),n=s(2115),l=s(5687),r=s(9990),c=s.n(r),o=s(7081),d=s(4524);let u=(e,t)=>{let s=(0,o.o)(),[i,a]=(0,n.useState)([]),[l,r]=(0,n.useState)(null),c=(0,n.useCallback)(async()=>{try{if(!e)return;let i=e.queryRenderedFeatures({layers:["unclustered-point"]}).filter(e=>!e.properties.cluster).map(e=>e.properties.id).slice(0,50);if(0===i.length){a([]),t([]);return}let n=i.join(","),l=(await (0,d.cf)(n,s)).map(e=>({id:e.id,imgUrl:0!==e.images.length?e.images[0].url:"",title:e.name,location:null!==e.town.name?e.town.name:"",description:null!==e.description?e.description:""}));a(l),t(l)}catch(e){a([]),t([])}},[e]),u=(0,n.useCallback)(()=>{l&&clearTimeout(l),r(setTimeout(async()=>{try{await c()}catch(e){a([]),t([])}},1e3))},[c,l]);return(0,n.useEffect)(()=>{if(e)return e.on("moveend",u),e.on("zoomend",u),()=>{e.off("moveend",u),e.off("zoomend",u)}},[e,u]),i},m=e=>{let{monumentId:t,monumentDatas:s}=e,i=s.image?"has-image":"no-image";return(0,a.jsx)("a",{href:"/monument/".concat(t),target:"_blank",style:{textDecoration:"none",color:"inherit",display:"block"},className:"popup-link",children:(0,a.jsx)("div",{className:"popup-container",children:(0,a.jsxs)("div",{id:"monument-".concat(t),className:"popup ".concat(i),children:[(0,a.jsx)("div",{className:"popup-img-box",children:s.image?(0,a.jsx)("img",{className:"popup-img",src:s.image,alt:"Monument Image"}):(0,a.jsx)("div",{className:"div-no-image"})}),(0,a.jsxs)("div",{className:"popup-text-content",children:[(0,a.jsx)("h2",{className:"popup-title",children:s.title}),(0,a.jsx)("p",{className:"popup-description",children:s.description})]})]})})})};s(8689),s(5925),s(4577);let p="mapbox://styles/gregoryalary/clj4nr7dp000701qxdzuz34dr",g=[p,"mapbox://styles/gregoryalary/clp4j4ak301jy01qyhv6c4pmf","mapbox://styles/gregoryalary/clp71kemo00jc01pc0rskhz06"],h=[{name:"icon-1",url:"/images/icon-1.png"},{name:"icon-2",url:"/images/icon-2.png"},{name:"icon-3",url:"/images/icon-3.png"},{name:"icon-4",url:"/images/icon-4.png"},{name:"icon-1-select",url:"/images/icon-1-select.png"},{name:"icon-2-select",url:"/images/icon-2-select.png"},{name:"icon-3-select",url:"/images/icon-3-select.png"},{name:"icon-4-select",url:"/images/icon-4-select.png"}],x=e=>{let{selectedMapStyle:t,selectedFilters:s,onVisibleMarkersUpdate:r,exportMapInstance:x,onMapError:y}=e,v=(0,o.o)(),[f,j]=(0,n.useState)(null),[N,b]=(0,n.useState)(!1),[S,k]=(0,n.useState)(null),[w,F]=(0,n.useState)(null);u(f,r),(0,n.useEffect)(()=>{f&&L(t)},[t]),(0,n.useEffect)(()=>{f&&M(s)},[s]),(0,n.useEffect)(()=>{c().accessToken="pk.eyJ1IjoiZ3JlZ29yeWFsYXJ5IiwiYSI6ImNqOTQxajJqYTNnOGQyd243ajN4Z3E2NWsifQ.OsYzqjrfkVgyHdTwThHtXg";let e=new(c()).Map({container:"map",style:p,center:[2.2137,46.2276],zoom:5});e.on("click","clusters",t=>{let s=e.queryRenderedFeatures(t.point,{layers:["clusters"]})[0];if(!s||!s.properties)return;let i=s.properties.cluster_id;e.getSource("monuments").getClusterExpansionZoom(i,(t,i)=>{var a;t||(null===(a=s.geometry)||void 0===a?void 0:a.type)!=="Point"||e.flyTo({center:s.geometry.coordinates,zoom:null!=i?i:10})})}),e.on("mouseenter","clusters",()=>{e.getCanvas().style.cursor="pointer"}),e.on("mouseleave","clusters",()=>{e.getCanvas().style.cursor=""}),e.on("mouseenter","unclustered-point",()=>{e.getCanvas().style.cursor="pointer"}),e.on("mouseleave","unclustered-point",()=>{e.getCanvas().style.cursor=""});let t=null;return e.on("click","unclustered-point",async s=>{var i,n;let r=null===(i=s.features)||void 0===i?void 0:i[0];if(!r||(null===(n=r.geometry)||void 0===n?void 0:n.type)!=="Point")return;let o=r.properties,u=o.id,p=r.geometry.coordinates,g=e.getSource("monuments"),h=g._data;h.features.forEach(e=>{e.properties&&(e.properties.selected=e.properties.id===u)}),k(o),g.setData(h);try{let s=await (0,d.EK)(u,v),i=l.renderToString((0,a.jsx)(m,{monumentId:u,monumentDatas:s}));t&&t.remove(),(t=new(c()).Popup({maxWidth:"none",className:"css-popup",closeButton:!0}).setLngLat(p).setHTML(i).addTo(e)).on("close",()=>{let t=e.getSource("monuments"),s=t._data;
1s.features.forEach(e=>{e.properties&&e.properties.id===u&&(e.properties.selected=!1)}),t.setData(s),F(null)})}catch(e){return}}),e.on("load",()=>{x(e)}),e.on("error",()=>{y("An unknown error occured")}),e.addControl(new(c()).NavigationControl),_(e),j(e),()=>{e.remove()}},[]);let _=async e=>{let t=C(),s=E(e);try{await Promise.all([t,s]),T(e,i)}catch(e){y("An error occured when loading resources")}},C=async()=>{i={type:"FeatureCollection",features:(await (0,d.N7)(v)).map(e=>{let[t,s,i,a,n,l]=e;return{type:"Feature",properties:{id:t,category:a,is_public:n,time_periods:l,selected:!1,cluster:!1},geometry:{type:"Point",coordinates:[i,s]}}})}},E=e=>new Promise((t,s)=>{h.forEach(t=>{let{name:i,url:a}=t;e.loadImage(a,(t,n)=>{if(t||!n){s("An error occured when loading image ".concat(a,": ").concat(t));return}e.hasImage(i)||e.addImage(i,n)})}),t()}),T=(e,t)=>{e.addSource("monuments",{type:"geojson",data:t,cluster:!0,clusterMaxZoom:14,clusterRadius:50}),e.addLayer({id:"clusters",type:"circle",source:"monuments",filter:["has","point_count"],paint:{"circle-color":["step",["get","point_count"],"#FFFFFF",10,"#FFFFFF",30,"#FFFFFF"],"circle-radius":["step",["get","point_count"],10,20,15,30,20],"circle-blur":.5,"circle-opacity":.8}}),e.addLayer({id:"cluster-count",type:"symbol",source:"monuments",filter:["has","point_count"],layout:{"text-field":"{point_count_abbreviated}","text-font":["DIN Offc Pro Medium","Arial Unicode MS Bold"],"text-size":12}}),e.addLayer({id:"unclustered-point",type:"symbol",source:"monuments",filter:["!",["has","point_count"]],layout:{"icon-image":["case",["==",["get","selected"],!0],["concat","icon-",["get","category"],"-select"],["concat","icon-",["get","category"]]],"icon-size":.2}}),b(!0)},I=e=>{if(S){let t=!1,s=JSON.parse(S.time_periods.toString());if(0!==s.length||e[10])for(let i of s){if(e[i+=4]){t=!1;break}t=!0}else t=!0;(0===S.is_public&&!e[0]||!e[S.category]||t)&&w&&(w.remove(),F(null),k(null))}},M=e=>{let[t,s,a,n,l,r,c,o,d,u,m]=e;if(N&&f){let e=f.getSource("monuments");I([t,s,a,n,l,r,c,o,d,u,m]);let p={type:"FeatureCollection",features:i.features.filter(e=>(t||0!=e.properties.is_public)&&(s||1!=e.properties.category)&&(a||2!=e.properties.category)&&(n||3!=e.properties.category)&&(l||4!=e.properties.category)&&(r||!e.properties.time_periods.includes(1))&&(c||!e.properties.time_periods.includes(2))&&(o||!e.properties.time_periods.includes(3))&&(d||!e.properties.time_periods.includes(4))&&(u||!e.properties.time_periods.includes(5))&&(m||0!=e.properties.time_periods.length))};null==e||e.setData(p)}},L=e=>{if(e<0||e>2)throw Error("Style number must be between 0 and 2");if(!N)return;let t=(null==f?void 0:f.getSource("monuments"))._data;null==f||f.once("style.load",async()=>{try{await E(f),T(f,t)}catch(e){y("An error occured when changing style")}}),b(!1),null==f||f.setStyle(g[e])};return(0,a.jsx)("div",{id:"map"})};var y=s(522),v=s(2080);s(1937);let f=["standard","satellite","terrain"],j=e=>{let{onMapStyleChange:t,onFilterChange:s}=e,i=(0,o.o)(),[l,r]=(0,n.useState)(Array(11).fill(!0)),[c,d]=(0,n.useState)(0),u=e=>{let t=[...l];t[e]=!t[e],r(t),s(t)},m=e=>{d(e),t(e)};return(0,a.jsxs)("div",{id:"side-menu-container",children:[(0,a.jsxs)("div",{id:"side-menu",className:"side-menu","data-testid":"side-menu",children:[(0,a.jsxs)("div",{className:"category",children:[(0,a.jsx)("div",{className:"title",children:(0,a.jsx)("h1",{className:"text",children:v.p6[i].mapTitle})}),(0,a.jsx)("div",{className:"map-background",children:v.p6[i].mapStyles.map((e,t)=>(0,a.jsxs)("div",{className:"image-container ".concat(c===t?"selected":""),onClick:()=>m(t),children:[(0,a.jsx)("img",{src:"/images/layer-".concat(f[t],".png"),alt:e,className:"img-background"}),(0,a.jsx)("p",{className:"side-menu-text",children:e})]},t))})]}),(0,a.jsxs)("div",{className:"category",children:[(0,a.jsx)("div",{className:"title",children:(0,a.jsx)("h1",{className:"text",children:v.p6[i].privateTitle})}),(0,a.jsx)("div",{className:"filters",children:(0,a.jsxs)("div",{className:"filter",children:[(0,a.jsx)("p",{className:"text side-menu-text",children:v.p6[i].privateFilter}),(0,a.jsxs)("label",{className:"switch",children:[(0,a.jsx)("input",{type:"checkbox",checked:l[0],onChange:()=>u(0),className:"input","aria-label":v.p6[i].privateFilter}),(0,a.jsx)("span",{className:"slider round"})]})]})})]}),(0,a.jsxs)("div",{className:"category",children:[(0,a.jsx)("div",{className:"title",children:(0,a.jsx)("h1",{className:"text",children:v.p6[i].categoriesTitle})}),(0,a.jsx)("div",{className:"filters",children:v.p6[i].categories.map((e,t)=>(0,a.jsxs)("div",{className:"filter",children:[(0,a.jsx)("p",{className:"text side-menu-text",children:e}),(0,a.jsxs)("label",{className:"switch",children:[(0,a.jsx)("input",{type:"checkbox",checked:l[t+1],onChange:()=>u(t+1),className:"input","aria-label":e}),(0,a.jsx)("span",{className:"slider round"})]})]},t))})]}),(0,a.jsxs)("div",{className:"category",children:[(0,a.jsx)("div",{className:"title",children:(0,a.jsx)("h1",{className:"text",children:v.p6[i].typesTitle})}),(0,a.jsx)("div",{className:"filters",children:v.p6[i].types.map((e,t)=>(0,a.jsxs)("div",{className:"filter",children:[(0,a.jsx)("p",{className:"text side-menu-text",children:e}),(0,a.jsxs)("label",{className:"switch",children:[(0,a.jsx)("input",{type:"checkbox",checked:l[t+5],onChange:()=>u(t+5),className:"input","aria-label":e}),(0,a.jsx)("span",{className:"slider round"})]})]},t))})]})]}),(0,a.jsx)("div",{id:"darkened","data-testid":"darkened",onClick:()=>{let e=document.getElementById("burger"),t=document.getElementById("side-menu-container"),s=document.getElementById("side-menu"),i=document.getElementById("darkened");t&&s&&e&&i&&(t.classList.contains("active")?(e.classList.remove("active"),s.classList.remove("active"),i.classList.remove("active"),setTimeout(()=>{t.classList.remove("active")},800)):(e.classList.add("active"),t.classList.add("active"),s.classList.add("active"),i.classList.add("active")))}})]})};var N=s(7650);s(2844);let b=e=>{let t,s,{data:i}=e,l=(0,n.useRef)(!1),r="title-"+i.id.toString(),c="tooltip-"+i.id.toString(),[o,d]=(0,n.use
1State)({top:0,left:0}),[u,m]=(0,n.useState)("hidden"),p=(0,n.useRef)(null),g=(0,n.useRef)(null);""===i.imgUrl?(t=!1,s="no-img"):(t=!0,s="has-img");let h=e=>{document.getElementById(c)&&l.current&&(x(),m(e))},x=()=>{if(g.current&&p.current){let e=g.current.getBoundingClientRect(),t=p.current.getBoundingClientRect();d({top:e.top-t.height-1,left:e.left+(e.width-t.width)/2+t.width/4})}};return(0,n.useEffect)(()=>{let e=document.getElementById(r);e&&(l.current=function(e){return e.scrollWidth>e.clientWidth}(e))}),(0,a.jsxs)("div",{className:"card-container",children:[(0,N.createPortal)((0,a.jsx)("span",{id:c,"data-testid":c,className:"tooltip",ref:p,style:{top:"".concat(o.top,"px"),left:"".concat(o.left,"px"),visibility:"".concat(u)},children:i.title}),document.body),(0,a.jsx)("a",{href:"/monument/".concat(i.id),target:"_blank",className:"card-link",children:(0,a.jsxs)("div",{id:"monument-".concat(i.id),className:"card ".concat(s),children:[(0,a.jsx)("div",{className:"card-img-box",children:t?(0,a.jsx)("img",{className:"card-img",src:i.imgUrl,alt:"Monument Image"}):(0,a.jsx)("div",{className:"card-div-no-img","data-testid":"div-no-img"})}),(0,a.jsxs)("div",{className:"card-text-content",children:[(0,a.jsx)("div",{className:"text-title-container",onMouseEnter:()=>h("visible"),onMouseLeave:()=>h("hidden"),children:(0,a.jsx)("h3",{id:r,className:"text-title",ref:g,"data-testid":"text-title",children:i.title})}),(0,a.jsx)("p",{className:"text-location",children:i.location}),(0,a.jsx)("p",{className:"text-description",children:i.description})]})]})})]})};s(1953);let S=e=>{let{visibleMonuments:t}=e,[s,i]=(0,n.useState)([]);(0,n.useEffect)(()=>{i(t.map(e=>(0,a.jsx)("li",{className:"item","data-testid":"Item "+e.id.toString(),children:(0,a.jsx)(b,{data:e})},e.id)))},[t]);let l=(0,n.useRef)(null),[r,c]=(0,n.useState)(!1),o=()=>{let e=l.current;(null==e?void 0:e.scrollWidth)&&(null==e?void 0:e.clientWidth)&&c((null==e?void 0:e.scrollWidth)>(null==e?void 0:e.clientWidth))};(0,n.useEffect)(()=>{o()},[t]);let d=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=l.current;if(t){let s=t.querySelector("li");if(s){let i=5*(s.clientWidth+parseInt(window.getComputedStyle(s).marginRight,10));e&&(i=-i),t.scrollTo({left:t.scrollLeft+i,behavior:"smooth"})}}};return(0,a.jsxs)("div",{id:"list-container",children:[(0,a.jsx)("div",{className:"side-container",children:(0,a.jsx)("button",{id:"leftBtn","aria-label":"previous",className:"arrow-btn"+(r?"":" no-scroll"),onClick:()=>{d(!0)},children:(0,a.jsx)("span",{className:"arrow left"})})}),(0,a.jsx)("ul",{id:"list",ref:l,children:s}),(0,a.jsx)("div",{className:"side-container",children:(0,a.jsx)("button",{id:"rightBtn","aria-label":"next",className:"arrow-btn"+(r?"":" no-scroll"),onClick:()=>{d()},children:(0,a.jsx)("span",{className:"arrow right"})})})]})};function k(){let[e,t]=(0,n.useState)(Array(11).fill(!0)),[s,i]=(0,n.useState)(0),[l,r]=(0,n.useState)([]),[c,o]=(0,n.useState)(null),[d,u]=(0,n.use
1State)(null);return d?(0,a.jsxs)("p",{children:["Impossible to display map : ",d]}):(0,a.jsxs)("div",{className:"home-page",children:[(0,a.jsx)(y.default,{isMountOnMapPage:!0,mapInstance:c}),(0,a.jsx)(j,{onMapStyleChange:e=>{i(e)},onFilterChange:e=>{t(e)}}),(0,a.jsx)(x,{selectedMapStyle:s,selectedFilters:e,onVisibleMarkersUpdate:e=>{r(e)},exportMapInstance:o,onMapError:u}),(0,a.jsx)(S,{visibleMonuments:l})]})}s(2729)},8689:()=>{},1953:()=>{},4577:()=>{},2844:()=>{},5925:()=>{},1937:()=>{},2729:()=>{},5687:(e,t,s)=>{"use strict";var i,a;i=s(4592),a=s(9506),t.version=i.version,t.renderToString=i.renderToString,t.renderToStaticMarkup=i.renderToStaticMarkup,t.renderToReadableStream=a.renderToReadableStream,a.resume&&(t.resume=a.resume)}},e=>{var t=t=>e(e.s=t);e.O(0,[652,944,876,690,390,240,522,441,517,358],()=>t(7676)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.