- Ajout système complet de gestion des secteurs avec contours géographiques - Import des contours départementaux depuis GeoJSON - API REST pour la gestion des secteurs (/api/sectors) - Service de géolocalisation pour déterminer les secteurs - Migration base de données avec tables x_departements_contours et sectors_adresses - Interface Flutter pour visualisation et gestion des secteurs - Ajout thème sombre dans l'application - Corrections diverses et optimisations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
66 lines
98 KiB
JavaScript
Executable File
66 lines
98 KiB
JavaScript
Executable File
var Ps=Object.defineProperty;var js=(e,s,t)=>s in e?Ps(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t;var rt=(e,s,t)=>js(e,typeof s!="symbol"?s+"":s,t);(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))i(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&i(a)}).observe(document,{childList:!0,subtree:!0});function t(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerPolicy&&(n.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?n.credentials="include":o.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function i(o){if(o.ep)return;o.ep=!0;const n=t(o);fetch(o.href,n)}})();const Tt=!1;var gt=Array.isArray,Ns=Array.prototype.indexOf,Us=Array.from,Ds=Object.defineProperty,Ve=Object.getOwnPropertyDescriptor,Wt=Object.getOwnPropertyDescriptors,Vs=Object.prototype,Is=Array.prototype,bt=Object.getPrototypeOf,zt=Object.isExtensible;function Rs(e){return e()}function Qe(e){for(var s=0;s<e.length;s++)e[s]()}const K=2,Kt=4,tt=8,xt=16,le=32,Le=64,wt=128,O=256,Je=512,Y=1024,re=2048,_e=4096,Ee=8192,_t=16384,Yt=32768,yt=65536,Gt=1<<17,Fs=1<<18,Zt=1<<19,ct=1<<20,Ie=Symbol("$state"),Qt=new class extends Error{constructor(){super(...arguments);rt(this,"name","StaleReactionError");rt(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function Jt(e){return e===this.v}function Os(e,s){return e!=e?s==s:e!==s||e!==null&&typeof e=="object"||typeof e=="function"}function Xt(e){return!Os(e,this.v)}function Bs(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function $s(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Hs(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Ws(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ks(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Ys(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Zs(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}let We=!1,Qs=!1;function Js(){We=!0}const Xs=1,ei=2,I=Symbol(),ti="http://www.w3.org/1999/xhtml";function es(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}let S=null;function Pt(e){S=e}function J(e,s=!1,t){var i=S={p:S,c:null,d:!1,e:null,m:!1,s:e,x:null,l:null};We&&!s&&(S.l={s:null,u:null,r1:[],r2:Ct(!1)}),us(()=>{i.d=!0})}function X(e){const s=S;if(s!==null){const a=s.e;if(a!==null){var t=y,i=x;s.e=null;try{for(var o=0;o<a.length;o++){var n=a[o];fe(n.effect),ie(n.reaction),cs(n.fn)}}finally{fe(t),ie(i)}}S=s.p,s.m=!0}return{}}function Ke(){return!We||S!==null&&S.l===null}function Ue(e){if(typeof e!="object"||e===null||Ie in e)return e;const s=bt(e);if(s!==Vs&&s!==Is)return e;var t=new Map,i=gt(e),o=pe(0),n=x,a=u=>{var r=x;ie(n);var d=u();return ie(r),d};return i&&t.set("length",pe(e.length)),new Proxy(e,{defineProperty(u,r,d){(!("value"in d)||d.configurable===!1||d.enumerable===!1||d.writable===!1)&&Ks();var f=t.get(r);return f===void 0?f=a(()=>{var p=pe(d.value);return t.set(r,p),p}):q(f,d.value,!0),!0},deleteProperty(u,r){var d=t.get(r);if(d===void 0){if(r in u){const v=a(()=>pe(I));t.set(r,v),lt(o)}}else{if(i&&typeof r=="string"){var f=t.get("length"),p=Number(r);Number.isInteger(p)&&p<f.v&&q(f,p)}q(d,I),lt(o)}return!0},get(u,r,d){var h;if(r===Ie)return e;var f=t.get(r),p=r in u;if(f===void 0&&(!p||(h=Ve(u,r))!=null&&h.writable)&&(f=a(()=>{var b=Ue(p?u[r]:I),w=pe(b);return w}),t.set(r,f)),f!==void 0){var v=l(f);return v===I?void 0:v}return Reflect.get(u,r,d)},getOwnPropertyDescriptor(u,r){var d=Reflect.getOwnPropertyDescriptor(u,r);if(d&&"value"in d){var f=t.get(r);f&&(d.value=l(f))}else if(d===void 0){var p=t.get(r),v=p==null?void 0:p.v;if(p!==void 0&&v!==I)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return d},has(u,r){var v;if(r===Ie)return!0;var d=t.get(r),f=d!==void 0&&d.v!==I||Reflect.has(u,r);if(d!==void 0||y!==null&&(!f||(v=Ve(u,r))!=null&&v.writable)){d===void 0&&(d=a(()=>{var h=f?Ue(u[r]):I,b=pe(h);return b}),t.set(r,d));var p=l(d);if(p===I)return!1}return f},set(u,r,d,f){var A;var p=t.get(r),v=r in u;if(i&&r==="length")for(var h=d;h<p.v;h+=1){var b=t.get(h+"");b!==void 0?q(b,I):h in u&&(b=a(()=>pe(I)),t.set(h+"",b))}if(p===void 0)(!v||(A=Ve(u,r))!=null&&A.writable)&&(p=a(()=>pe(void 0)),q(p,Ue(d)),t.set(r,p));else{v=p.v!==I;var w=a(()=>Ue(d));q(p,w)}var k=Reflect.getOwnPropertyDescriptor(u,r);if(k!=null&&k.set&&k.set.call(f,d),!v){if(i&&typeof r=="string"){var g=t.get("length"),_=Number(r);Number.isInteger(_)&&_>=g.v&&q(g,_+1)}lt(o)}return!0},ownKeys(u){l(o);var r=Reflect.ownKeys(u).filter(p=>{var v=t.get(p);return v===void 0||v.v!==I});for(var[d,f]of t)f.v!==I&&!(d in u)&&r.push(d);return r},setPrototypeOf(){Ys()}})}function lt(e,s=1){q(e,e.v+s)}function kt(e){var s=K|re,t=x!==null&&(x.f&K)!==0?x:null;return y===null||t!==null&&(t.f&O)!==0?s|=O:y.f|=Zt,{ctx:S,deps:null,effects:null,equals:Jt,f:s,fn:e,reactions:null,rv:0,v:null,wv:0,parent:t??y,ac:null}}function me(e){const s=kt(e);return s.equals=Xt,s}function ts(e){var s=e.effects;if(s!==null){e.effects=null;for(var t=0;t<s.length;t+=1)we(s[t])}}function si(e){for(var s=e.parent;s!==null;){if((s.f&K)===0)return s;s=s.parent}return null}function ss(e){var s,t=y;fe(si(e));try{ts(e),s=ys(e)}finally{fe(t)}return s}function is(e){var s=ss(e);if(e.equals(s)||(e.v=s,e.wv=ws()),!Te){var t=(ve||(e.f&O)!==0)&&e.deps!==null?_e:Y;oe(e,t)}}const Fe=new Map;function Ct(e,s){var t={f:0,v:e,reactions:null,equals:Jt,rv:0,wv:0};return t}function pe(e,s){const t=Ct(e);return gi(t),t}function B(e,s=!1,t=!0){var o;const i=Ct(e);return s||(i.equals=Xt),We&&t&&S!==null&&S.l!==null&&((o=S.l).s??(o.s=[])).push(i),i}function Ce(e,s){return q(e,Ye(()=>l(e))),s}function q(e,s,t=!1){x!==null&&(!se||(x.f&Gt)!==0)&&Ke()&&(x.f&(K|xt|Gt))!==0&&!(z!=null&&z[1].includes(e)&&z[0]===x)&&Zs();let i=t?Ue(s):s;return ii(e,i)}function ii(e,s){if(!e.equals(s)){var t=e.v;Te?Fe.set(e,s):Fe.set(e,t),e.v=s,(e.f&K)!==0&&((e.f&re)!==0&&ss(e),oe(e,(e.f&O)===0?Y:_e)),e.wv=ws(),os(e,re),Ke()&&y!==null&&(y.f&Y)!==0&&(y.f&(le|Le))===0&&(W===null?bi([e]):W.push(e))}return s}function os(e,s){var t=e.reactions;if(t!==null)for(var i=Ke(),o=t.length,n=0;n<o;n++){var a=t[n],u=a.f;(u&re)===0&&(!i&&a===y||(oe(a,s),(u&(Y|O))!==0&&((u&K)!==0?os(a,_e):St(a))))}}var jt,ns,rs,ls;function oi(){if(jt===void 0){jt=window,ns=/Firefox/.test(navigator.userAgent);var e=Element.prototype,s=Node.prototype,t=Text.prototype;rs=Ve(s,"firstChild").get,ls=Ve(s,"nextSibling").get,zt(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),zt(t)&&(t.__t=void 0)}}function ni(e=""){return document.createTextNode(e)}function Se(e){return rs.call(e)}function qt(e){return ls.call(e)}function c(e,s){return Se(e)}function ri(e,s){{var t=Se(e);return t instanceof Comment&&t.data===""?qt(t):t}}function m(e,s=1,t=!1){let i=e;for(;s--;)i=qt(i);return i}function as(e){y===null&&x===null&&Hs(),x!==null&&(x.f&O)!==0&&y===null&&$s(),Te&&Bs()}function li(e,s){var t=s.last;t===null?s.last=s.first=e:(t.next=e,e.prev=t,s.last=e)}function Me(e,s,t,i=!0){var o=y,n={ctx:S,deps:null,nodes_start:null,nodes_end:null,f:e|re,first:null,fn:s,last:null,next:null,parent:o,b:o&&o.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(t)try{Et(n),n.f|=Yt}catch(r){throw we(n),r}else s!==null&&St(n);var a=t&&n.deps===null&&n.first===null&&n.nodes_start===null&&n.teardown===null&&(n.f&(Zt|wt))===0;if(!a&&i&&(o!==null&&li(n,o),x!==null&&(x.f&K)!==0)){var u=x;(u.effects??(u.effects=[])).push(n)}return n}function us(e){const s=Me(tt,null,!1);return oe(s,Y),s.teardown=e,s}function dt(e){as();var s=y!==null&&(y.f&le)!==0&&S!==null&&!S.m;if(s){var t=S;(t.e??(t.e=[])).push({fn:e,effect:y,reaction:x})}else{var i=cs(e);return i}}function ai(e){return as(),At(e)}function ui(e){const s=Me(Le,e,!0);return(t={})=>new Promise(i=>{t.outro?vt(s,()=>{we(s),i(void 0)}):(we(s),i(void 0))})}function cs(e){return Me(Kt,e,!1)}function At(e){return Me(tt,e,!0)}function ae(e,s=[],t=kt){const i=s.map(t);return ds(()=>e(...i.map(l)))}function ds(e,s=0){var t=Me(tt|xt|s,e,!0);return t}function pt(e,s=!0){return Me(tt|le,e,!0,s)}function ps(e){var s=e.teardown;if(s!==null){const t=Te,i=x;Ut(!0),ie(null);try{s.call(null)}finally{Ut(t),ie(i)}}}function vs(e,s=!1){var o;var t=e.first;for(e.first=e.last=null;t!==null;){(o=t.ac)==null||o.abort(Qt);var i=t.next;(t.f&Le)!==0?t.parent=null:we(t,s),t=i}}function ci(e){for(var s=e.first;s!==null;){var t=s.next;(s.f&le)===0&&we(s),s=t}}function we(e,s=!0){var t=!1;(s||(e.f&Fs)!==0)&&e.nodes_start!==null&&e.nodes_end!==null&&(di(e.nodes_start,e.nodes_end),t=!0),vs(e,s&&!t),et(e,0),oe(e,_t);var i=e.transitions;if(i!==null)for(const n of i)n.stop();ps(e);var o=e.parent;o!==null&&o.first!==null&&fs(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes_start=e.nodes_end=e.ac=null}function di(e,s){for(;e!==null;){var t=e===s?null:qt(e);e.remove(),e=t}}function fs(e){var s=e.parent,t=e.prev,i=e.next;t!==null&&(t.next=i),i!==null&&(i.prev=t),s!==null&&(s.first===e&&(s.first=i),s.last===e&&(s.last=t))}function vt(e,s){var t=[];ms(e,t,!0),pi(t,()=>{we(e),s&&s()})}function pi(e,s){var t=e.length;if(t>0){var i=()=>--t||s();for(var o of e)o.out(i)}else s()}function ms(e,s,t){if((e.f&Ee)===0){if(e.f^=Ee,e.transitions!==null)for(const a of e.transitions)(a.is_global||t)&&s.push(a);for(var i=e.first;i!==null;){var o=i.next,n=(i.f&yt)!==0||(i.f&le)!==0;ms(i,s,n?t:!1),i=o}}}function Nt(e){hs(e,!0)}function hs(e,s){if((e.f&Ee)!==0){e.f^=Ee;for(var t=e.first;t!==null;){var i=t.next,o=(t.f&yt)!==0||(t.f&le)!==0;hs(t,o?s:!1),t=i}if(e.transitions!==null)for(const n of e.transitions)(n.is_global||s)&&n.in()}}let Oe=[],ft=[];function gs(){var e=Oe;Oe=[],Qe(e)}function vi(){var e=ft;ft=[],Qe(e)}function fi(e){Oe.length===0&&queueMicrotask(gs),Oe.push(e)}function mi(){Oe.length>0&&gs(),ft.length>0&&vi()}function hi(e){var s=y;if((s.f&Yt)===0){if((s.f&wt)===0)throw e;s.fn(e)}else bs(e,s)}function bs(e,s){for(;s!==null;){if((s.f&wt)!==0)try{s.b.error(e);return}catch{}s=s.parent}throw e}let Be=!1,$e=null,xe=!1,Te=!1;function Ut(e){Te=e}let Re=[];let x=null,se=!1;function ie(e){x=e}let y=null;function fe(e){y=e}let z=null;function gi(e){x!==null&&x.f&ct&&(z===null?z=[x,[e]]:z[1].push(e))}let D=null,F=0,W=null;function bi(e){W=e}let xs=1,Xe=0,ve=!1;function ws(){return++xs}function st(e){var p;var s=e.f;if((s&re)!==0)return!0;if((s&_e)!==0){var t=e.deps,i=(s&O)!==0;if(t!==null){var o,n,a=(s&Je)!==0,u=i&&y!==null&&!ve,r=t.length;if(a||u){var d=e,f=d.parent;for(o=0;o<r;o++)n=t[o],(a||!((p=n==null?void 0:n.reactions)!=null&&p.includes(d)))&&(n.reactions??(n.reactions=[])).push(d);a&&(d.f^=Je),u&&f!==null&&(f.f&O)===0&&(d.f^=O)}for(o=0;o<r;o++)if(n=t[o],st(n)&&is(n),n.wv>e.wv)return!0}(!i||y!==null&&!ve)&&oe(e,Y)}return!1}function _s(e,s,t=!0){var i=e.reactions;if(i!==null)for(var o=0;o<i.length;o++){var n=i[o];z!=null&&z[1].includes(e)&&z[0]===x||((n.f&K)!==0?_s(n,s,!1):s===n&&(t?oe(n,re):(n.f&Y)!==0&&oe(n,_e),St(n)))}}function ys(e){var h;var s=D,t=F,i=W,o=x,n=ve,a=z,u=S,r=se,d=e.f;D=null,F=0,W=null,ve=(d&O)!==0&&(se||!xe||x===null),x=(d&(le|Le))===0?e:null,z=null,Pt(e.ctx),se=!1,Xe++,e.f|=ct,e.ac!==null&&(e.ac.abort(Qt),e.ac=null);try{var f=(0,e.fn)(),p=e.deps;if(D!==null){var v;if(et(e,F),p!==null&&F>0)for(p.length=F+D.length,v=0;v<D.length;v++)p[F+v]=D[v];else e.deps=p=D;if(!ve||(d&K)!==0&&e.reactions!==null)for(v=F;v<p.length;v++)((h=p[v]).reactions??(h.reactions=[])).push(e)}else p!==null&&F<p.length&&(et(e,F),p.length=F);if(Ke()&&W!==null&&!se&&p!==null&&(e.f&(K|_e|re))===0)for(v=0;v<W.length;v++)_s(W[v],e);return o!==null&&o!==e&&(Xe++,W!==null&&(i===null?i=W:i.push(...W))),f}catch(b){hi(b)}finally{D=s,F=t,W=i,x=o,ve=n,z=a,Pt(u),se=r,e.f^=ct}}function xi(e,s){let t=s.reactions;if(t!==null){var i=Ns.call(t,e);if(i!==-1){var o=t.length-1;o===0?t=s.reactions=null:(t[i]=t[o],t.pop())}}t===null&&(s.f&K)!==0&&(D===null||!D.includes(s))&&(oe(s,_e),(s.f&(O|Je))===0&&(s.f^=Je),ts(s),et(s,0))}function et(e,s){var t=e.deps;if(t!==null)for(var i=s;i<t.length;i++)xi(e,t[i])}function Et(e){var s=e.f;if((s&_t)===0){oe(e,Y);var t=y,i=xe;y=e,xe=!0;try{(s&xt)!==0?ci(e):vs(e),ps(e);var o=ys(e);e.teardown=typeof o=="function"?o:null,e.wv=xs;var n;Tt&&Qs&&(e.f&re)!==0&&e.deps}finally{xe=i,y=t}}}function wi(){try{Ws()}catch(e){if($e!==null)bs(e,$e);else throw e}}function ks(){var e=xe;try{var s=0;for(xe=!0;Re.length>0;){s++>1e3&&wi();var t=Re,i=t.length;Re=[];for(var o=0;o<i;o++){var n=yi(t[o]);_i(n)}Fe.clear()}}finally{Be=!1,xe=e,$e=null}}function _i(e){var s=e.length;if(s!==0)for(var t=0;t<s;t++){var i=e[t];(i.f&(_t|Ee))===0&&st(i)&&(Et(i),i.deps===null&&i.first===null&&i.nodes_start===null&&(i.teardown===null?fs(i):i.fn=null))}}function St(e){Be||(Be=!0,queueMicrotask(ks));for(var s=$e=e;s.parent!==null;){s=s.parent;var t=s.f;if((t&(Le|le))!==0){if((t&Y)===0)return;s.f^=Y}}Re.push(s)}function yi(e){for(var s=[],t=e;t!==null;){var i=t.f,o=(i&(le|Le))!==0,n=o&&(i&Y)!==0;if(!n&&(i&Ee)===0){(i&Kt)!==0?s.push(t):o?t.f^=Y:st(t)&&Et(t);var a=t.first;if(a!==null){t=a;continue}}var u=t.parent;for(t=t.next;t===null&&u!==null;)t=u.next,u=u.parent}return s}function ki(e){for(var s;;){if(mi(),Re.length===0)return Be=!1,$e=null,s;Be=!0,ks()}}async function Ci(){await Promise.resolve(),ki()}function l(e){var s=e.f,t=(s&K)!==0;if(x!==null&&!se){if(!(z!=null&&z[1].includes(e))||z[0]!==x){var i=x.deps;e.rv<Xe&&(e.rv=Xe,D===null&&i!==null&&i[F]===e?F++:D===null?D=[e]:(!ve||!D.includes(e))&&D.push(e))}}else if(t&&e.deps===null&&e.effects===null){var o=e,n=o.parent;n!==null&&(n.f&O)===0&&(o.f^=O)}return t&&(o=e,st(o)&&is(o)),Te&&Fe.has(e)?Fe.get(e):e.v}function Ye(e){var s=se;try{return se=!0,e()}finally{se=s}}const qi=-7169;function oe(e,s){e.f=e.f&qi|s}function Ai(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Ie in e)mt(e);else if(!Array.isArray(e))for(let s in e){const t=e[s];typeof t=="object"&&t&&Ie in t&&mt(t)}}}function mt(e,s=new Set){if(typeof e=="object"&&e!==null&&!(e instanceof EventTarget)&&!s.has(e)){s.add(e),e instanceof Date&&e.getTime();for(let i in e)try{mt(e[i],s)}catch{}const t=bt(e);if(t!==Object.prototype&&t!==Array.prototype&&t!==Map.prototype&&t!==Set.prototype&&t!==Date.prototype){const i=Wt(t);for(let o in i){const n=i[o].get;if(n)try{n.call(e)}catch{}}}}}const Ei=["touchstart","touchmove"];function Si(e){return Ei.includes(e)}let Dt=!1;function Li(){Dt||(Dt=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var s;if(!e.defaultPrevented)for(const t of e.target.elements)(s=t.__on_r)==null||s.call(t)})},{capture:!0}))}function Cs(e){var s=x,t=y;ie(null),fe(null);try{return e()}finally{ie(s),fe(t)}}function qs(e,s,t,i=t){e.addEventListener(s,()=>Cs(t));const o=e.__on_r;o?e.__on_r=()=>{o(),i(!0)}:e.__on_r=()=>i(!0),Li()}const Mi=new Set,Vt=new Set;function Ti(e,s,t,i={}){function o(n){if(i.capture||De.call(s,n),!n.cancelBubble)return Cs(()=>t==null?void 0:t.call(this,n))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?fi(()=>{s.addEventListener(e,o,i)}):s.addEventListener(e,o,i),o}function C(e,s,t,i,o){var n={capture:i,passive:o},a=Ti(e,s,t,n);(s===document.body||s===window||s===document||s instanceof HTMLMediaElement)&&us(()=>{s.removeEventListener(e,a,n)})}function De(e){var _;var s=this,t=s.ownerDocument,i=e.type,o=((_=e.composedPath)==null?void 0:_.call(e))||[],n=o[0]||e.target,a=0,u=e.__root;if(u){var r=o.indexOf(u);if(r!==-1&&(s===document||s===window)){e.__root=s;return}var d=o.indexOf(s);if(d===-1)return;r<=d&&(a=r)}if(n=o[a]||e.target,n!==s){Ds(e,"currentTarget",{configurable:!0,get(){return n||t}});var f=x,p=y;ie(null),fe(null);try{for(var v,h=[];n!==null;){var b=n.assignedSlot||n.parentNode||n.host||null;try{var w=n["__"+i];if(w!=null&&(!n.disabled||e.target===n))if(gt(w)){var[k,...g]=w;k.apply(n,[e,...g])}else w.call(n,e)}catch(A){v?h.push(A):v=A}if(e.cancelBubble||b===s||b===null)break;n=b}if(v){for(let A of h)queueMicrotask(()=>{throw A});throw v}}finally{e.__root=s,delete e.currentTarget,ie(f),fe(p)}}}function As(e){var s=document.createElement("template");return s.innerHTML=e.replaceAll("<!>","<!---->"),s.content}function ht(e,s){var t=y;t.nodes_start===null&&(t.nodes_start=e,t.nodes_end=s)}function R(e,s){var t=(s&Xs)!==0,i=(s&ei)!==0,o,n=!e.startsWith("<!>");return()=>{o===void 0&&(o=As(n?e:"<!>"+e),t||(o=Se(o)));var a=i||ns?document.importNode(o,!0):o.cloneNode(!0);if(t){var u=Se(a),r=a.lastChild;ht(u,r)}else ht(a,a);return a}}function zi(e,s,t="svg"){var i=!e.startsWith("<!>"),o=`<${t}>${i?e:"<!>"+e}</${t}>`,n;return()=>{if(!n){var a=As(o),u=Se(a);n=Se(u)}var r=n.cloneNode(!0);return ht(r,r),r}}function Es(e,s){return zi(e,s,"svg")}function N(e,s){e!==null&&e.before(s)}function it(e,s){var t=s==null?"":typeof s=="object"?s+"":s;t!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=t,e.nodeValue=t+"")}function Gi(e,s){return Pi(e,s)}const qe=new Map;function Pi(e,{target:s,anchor:t,props:i={},events:o,context:n,intro:a=!0}){oi();var u=new Set,r=p=>{for(var v=0;v<p.length;v++){var h=p[v];if(!u.has(h)){u.add(h);var b=Si(h);s.addEventListener(h,De,{passive:b});var w=qe.get(h);w===void 0?(document.addEventListener(h,De,{passive:b}),qe.set(h,1)):qe.set(h,w+1)}}};r(Us(Mi)),Vt.add(r);var d=void 0,f=ui(()=>{var p=t??s.appendChild(ni());return pt(()=>{if(n){J({});var v=S;v.c=n}o&&(i.$$events=o),d=e(p,i)||{},n&&X()}),()=>{var b;for(var v of u){s.removeEventListener(v,De);var h=qe.get(v);--h===0?(document.removeEventListener(v,De),qe.delete(v)):qe.set(v,h)}Vt.delete(r),p!==t&&((b=p.parentNode)==null||b.removeChild(p))}});return ji.set(d,f),d}let ji=new WeakMap;function te(e,s,[t,i]=[0,0]){var o=e,n=null,a=null,u=I,r=t>0?yt:0,d=!1;const f=(v,h=!0)=>{d=!0,p(h,v)},p=(v,h)=>{u!==(u=v)&&(u?(n?Nt(n):h&&(n=pt(()=>h(o))),a&&vt(a,()=>{a=null})):(a?Nt(a):h&&(a=pt(()=>h(o,[t+1,i]))),n&&vt(n,()=>{n=null})))};ds(()=>{d=!1,s(f),d||p(null,null)},r)}const It=[...`
|
||
\r\f \v\uFEFF`];function Ni(e,s,t){var i=e==null?"":""+e;if(s&&(i=i?i+" "+s:s),t){for(var o in t)if(t[o])i=i?i+" "+o:o;else if(i.length)for(var n=o.length,a=0;(a=i.indexOf(o,a))>=0;){var u=a+n;(a===0||It.includes(i[a-1]))&&(u===i.length||It.includes(i[u]))?i=(a===0?"":i.substring(0,a))+i.substring(u+1):a=u}}return i===""?null:i}function L(e,s,t,i,o,n){var a=e.__className;if(a!==t||a===void 0){var u=Ni(t,i,n);u==null?e.removeAttribute("class"):e.className=u,e.__className=t}else if(n&&o!==n)for(var r in n){var d=!!n[r];(o==null||d!==!!o[r])&&e.classList.toggle(r,d)}return n}const Ui=Symbol("is custom element"),Di=Symbol("is html");function Ae(e,s,t,i){var o=Vi(e);o[s]!==(o[s]=t)&&(t==null?e.removeAttribute(s):typeof t!="string"&&Ii(e).includes(s)?e[s]=t:e.setAttribute(s,t))}function Vi(e){return e.__attributes??(e.__attributes={[Ui]:e.nodeName.includes("-"),[Di]:e.namespaceURI===ti})}var Rt=new Map;function Ii(e){var s=Rt.get(e.nodeName);if(s)return s;Rt.set(e.nodeName,s=[]);for(var t,i=e,o=Element.prototype;o!==i;){t=Wt(i);for(var n in t)t[n].set&&s.push(n);i=bt(i)}return s}function Ne(e,s,t=s){var i=Ke();qs(e,"input",o=>{var n=o?e.defaultValue:e.value;if(n=at(e)?ut(n):n,t(n),i&&n!==(n=s())){var a=e.selectionStart,u=e.selectionEnd;e.value=n??"",u!==null&&(e.selectionStart=a,e.selectionEnd=Math.min(u,e.value.length))}}),Ye(s)==null&&e.value&&t(at(e)?ut(e.value):e.value),At(()=>{var o=s();at(e)&&o===ut(e.value)||e.type==="date"&&!o&&!e.value||o!==e.value&&(e.value=o??"")})}function Ri(e,s,t=s){qs(e,"change",i=>{var o=i?e.defaultChecked:e.checked;t(o)}),Ye(s)==null&&t(e.checked),At(()=>{var i=s();e.checked=!!i})}function at(e){var s=e.type;return s==="number"||s==="range"}function ut(e){return e===""?null:+e}function Fi(e){return function(...s){var t=s[0];return t.stopPropagation(),e==null?void 0:e.apply(this,s)}}function j(e){return function(...s){var t=s[0];return t.preventDefault(),e==null?void 0:e.apply(this,s)}}function ne(e=!1){const s=S,t=s.l.u;if(!t)return;let i=()=>Ai(s.s);if(e){let o=0,n={};const a=kt(()=>{let u=!1;const r=s.s;for(const d in r)r[d]!==n[d]&&(n[d]=r[d],u=!0);return u&&o++,o});i=()=>l(a)}t.b.length&&ai(()=>{Ft(s,i),Qe(t.b)}),dt(()=>{const o=Ye(()=>t.m.map(Rs));return()=>{for(const n of o)typeof n=="function"&&n()}}),t.a.length&&dt(()=>{Ft(s,i),Qe(t.a)})}function Ft(e,s){if(e.l.s)for(const t of e.l.s)l(t);s()}function he(e){S===null&&es(),We&&S.l!==null?$i(S).m.push(e):dt(()=>{const s=Ye(e);if(typeof s=="function")return s})}function Oi(e,s,{bubbles:t=!1,cancelable:i=!1}={}){return new CustomEvent(e,{detail:s,bubbles:t,cancelable:i})}function Bi(){const e=S;return e===null&&es(),(s,t,i)=>{var n;const o=(n=e.s.$$events)==null?void 0:n[s];if(o){const a=gt(o)?o.slice():[o],u=Oi(s,t,i);for(const r of a)r.call(e.x,u);return!u.defaultPrevented}return!0}}function $i(e){var s=e.l;return s.u??(s.u={a:[],b:[],m:[]})}const Hi="5";var Ht;typeof window<"u"&&((Ht=window.__svelte??(window.__svelte={})).v??(Ht.v=new Set)).add(Hi);Js();var Wi=Es('<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>'),Ki=Es('<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path>'),Yi=R('<div class="fixed inset-0 bg-black bg-opacity-50 z-30" role="button" tabindex="0" aria-label="Fermer le menu"></div>'),Zi=R(`<header class="text-white bg-transparent backdrop-blur-sm z-50 relative"><div class="container mx-auto px-4 py-4"><div class="flex justify-between items-center"><div class="flex items-center"><div class="mr-3"><a href="/accueil"><img src="/images/Logo-geosector-horizontal.svg" alt="Geosector" class="h-12"/></a></div></div> <button id="burger-button" class="xl:hidden z-50"><svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-[#002C66]" fill="none" viewBox="0 0 24 24" stroke="currentColor"><!></svg></button> <div class="hidden xl:flex items-center gap-6"><nav><ul class="flex space-x-6"><li><a href="/accueil">Accueil</a></li> <li><a href="/fonctionnalites">Fonctionnalités</a></li> <li><a href="/contact">Contact</a></li></ul></nav> <div class="flex gap-3 items-center"><a class="border-2 border-[#4CAF50] text-[#4CAF50] hover:bg-[#4CAF50] hover:text-white font-medium py-1.5 px-3 rounded-full transition-colors">Connexion Utilisateur</a> <a class="border-2 border-red-600 text-red-600 hover:bg-red-600 hover:text-white font-medium py-1.5 px-3 rounded-full transition-colors">Connexion Administrateur</a> <a class="bg-[#E3170A] hover:bg-red-700 text-white font-medium py-2 px-4 rounded-full transition-colors">S'inscrire</a></div></div></div></div> <div id="mobile-menu"><div class="p-6 pt-20"><nav class="mb-8"><ul class="space-y-4"><li><a href="/accueil">Accueil</a></li> <li><a href="/fonctionnalites">Fonctionnalités</a></li> <li><a href="/contact">Contact</a></li></ul></nav> <div class="space-y-4"><a class="block w-full border-2 border-[#4CAF50] text-[#4CAF50] hover:bg-[#4CAF50] hover:text-white font-medium py-2 px-4 rounded-full transition-colors text-center mb-3">Connexion Utilisateur</a> <a class="block w-full border-2 border-red-600 text-red-600 hover:bg-red-600 hover:text-white font-medium py-2 px-4 rounded-full transition-colors text-center mb-3">Connexion Administrateur</a> <a class="block w-full bg-[#E3170A] hover:bg-red-700 text-white font-medium py-2 px-4 rounded-full transition-colors text-center">S'inscrire</a></div></div></div> <!></header>`);function Qi(e,s){J(s,!1);let t=B(window.location.hash.slice(1)||"accueil"),i=B(!1),o=B("");function n(){const E=window.location.hostname;let P="";E==="dev.geosector.fr"||E.includes("localhost")?P="dapp":E==="rec.geosector.fr"?P="rapp":P="app";const de=E.split(".");if(de.length>=2){const Ze=de.slice(Math.max(de.length-2,0)).join(".");return`https://${P}.${Ze}`}return`https://${P}.geosector.fr`}function a(E){q(t,E),window.history.pushState({},"",`/${E}`),window.dispatchEvent(new PopStateEvent("popstate")),r()}function u(E){E.stopPropagation(),q(i,!l(i))}function r(){q(i,!1)}typeof window<"u"&&window.addEventListener("popstate",()=>{q(t,window.location.pathname.slice(1)||"accueil")}),he(()=>{q(o,n());const E=P=>{const de=document.getElementById("mobile-menu"),Ze=document.getElementById("burger-button");l(i)&&de&&Ze&&!de.contains(P.target)&&!Ze.contains(P.target)&&r()};return setTimeout(()=>{document.addEventListener("click",E)},100),()=>{document.removeEventListener("click",E)}}),ne();var d=Zi(),f=c(d),p=c(f),v=c(p),h=c(v),b=c(h),w=m(v,2),k=c(w),g=c(k);{var _=E=>{var P=Wi();N(E,P)},A=E=>{var P=Ki();N(E,P)};te(g,E=>{l(i)?E(_):E(A,!1)})}var M=m(w,2),T=c(M),Z=c(T),U=c(Z),G=c(U),$=m(U,2),ge=c($),ze=m($,2),ye=c(ze),ee=m(T,2),ue=c(ee),ce=m(ue,2),Ge=m(ce,2),H=m(f,2),Pe=c(H),be=c(Pe),je=c(be),Q=c(je),ke=c(Q),V=m(Q,2),Lt=c(V),Ls=m(V,2),Mt=c(Ls),Ms=m(be,2),ot=c(Ms),nt=m(ot,2),Ts=m(nt,2),zs=m(H,2);{var Gs=E=>{var P=Yi();C("click",P,r),C("keydown",P,de=>de.key==="Escape"&&r()),N(E,P)};te(zs,E=>{l(i)&&E(Gs)})}ae(()=>{L(G,1,`text-[#002C66] hover:text-blue-500 transition-colors ${l(t)==="accueil"?"font-bold border-b-2 border-[#002C66]":""}`),L(ge,1,`text-[#002C66] hover:text-blue-500 transition-colors ${l(t)==="fonctionnalites"?"font-bold border-b-2 border-[#002C66]":""}`),L(ye,1,`text-[#002C66] hover:text-blue-500 transition-colors ${l(t)==="contact"?"font-bold border-b-2 border-[#002C66]":""}`),Ae(ue,"href",`${l(o)??""}/?action=login&type=user`),Ae(ce,"href",`${l(o)??""}/?action=login&type=admin`),Ae(Ge,"href",`${l(o)??""}/?action=register`),L(H,1,`xl:hidden fixed top-0 right-0 h-screen w-4/5 max-w-xs bg-white shadow-lg transform transition-transform duration-300 ease-in-out z-40 ${l(i)?"translate-x-0":"translate-x-full"}`),L(ke,1,`block text-lg text-[#002C66] hover:text-blue-500 transition-colors ${l(t)==="accueil"?"font-bold":""}`),L(Lt,1,`block text-lg text-[#002C66] hover:text-blue-500 transition-colors ${l(t)==="fonctionnalites"?"font-bold":""}`),L(Mt,1,`block text-lg text-[#002C66] hover:text-blue-500 transition-colors ${l(t)==="contact"?"font-bold":""}`),Ae(ot,"href",`${l(o)??""}/?action=login&type=user`),Ae(nt,"href",`${l(o)??""}/?action=login&type=admin`),Ae(Ts,"href",`${l(o)??""}/?action=register`)}),C("click",b,j(()=>a("accueil"))),C("click",w,Fi(u)),C("click",G,j(()=>a("accueil"))),C("click",ge,j(()=>a("fonctionnalites"))),C("click",ye,j(()=>a("contact"))),C("click",ue,()=>{sessionStorage.setItem("loginType","user")}),C("click",ce,()=>{sessionStorage.setItem("loginType","admin")}),C("click",ke,j(()=>a("accueil"))),C("click",Lt,j(()=>a("fonctionnalites"))),C("click",Mt,j(()=>a("contact"))),C("click",ot,()=>{sessionStorage.setItem("loginType","user")}),C("click",nt,()=>{sessionStorage.setItem("loginType","admin")}),N(e,d),X()}var Ji=R(`<footer class="bg-gray-800 text-white py-8"><div class="container mx-auto px-4"><div class="grid grid-cols-1 md:grid-cols-3 gap-8"><div><div class="flex items-center mb-4"><img src="/images/icon-geosector.svg" alt="Geosector" class="h-8 mr-3"/> <h3 class="text-xl font-bold">Geosector</h3></div> <p class="text-gray-300 mb-6">Une application puissante et intuitive, pour une gestion efficace de vos distributions.</p> <div class="space-y-3"><p class="text-gray-300 font-semibold">Téléchargez notre application :</p> <div class="flex flex-wrap gap-3"><a href="https://apps.apple.com/store" class="inline-flex items-center bg-black text-white rounded-lg px-4 py-2 hover:bg-gray-700 transition-colors"><svg class="w-5 h-5 mr-2" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.5615 12.5514C17.5615 9.17603 20.3113 7.76353 20.4318 7.69478C18.9985 5.58978 16.7857 5.29103 16.0032 5.26978C14.1546 5.07353 12.3675 6.34603 11.432 6.34603C10.4753 6.34603 9.0315 5.29103 7.4663 5.32103C5.4392 5.35103 3.5495 6.51978 2.5292 8.32603C0.4292 11.9997 2.0047 17.3989 4.0197 20.2014C5.029 21.5785 6.2018 23.1104 7.739 23.0483C9.2232 22.9768 9.769 22.0924 11.5667 22.0924C13.3432 22.0924 13.856 23.0483 15.4107 23.006C17.011 22.9768 18.0313 21.6318 19.01 20.2439C20.171 18.6273 20.6447 17.0429 20.666 16.9489C20.6235 16.9277 17.5933 15.7166 17.5615 12.5514Z"></path><path d="M14.2855 3.77006C15.0787 2.80256 15.6037 1.48381 15.4407 0.144806C14.3157 0.187306 12.876 0.912306 12.0402 1.85856C11.295 2.69631 10.6542 4.06256 10.8385 5.35631C12.1002 5.44381 13.45 4.72381 14.2855 3.77006Z"></path></svg> App Store</a> <a href="https://play.google.com/store" class="inline-flex items-center bg-black text-white rounded-lg px-4 py-2 hover:bg-gray-700 transition-colors"><svg class="w-5 h-5 mr-2" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.5231 8.74664L14.4231 6.41914L2.33563 18.5066C2.52813 18.9391 2.91063 19.2826 3.40563 19.3441L17.5231 8.74664Z"></path><path d="M22.0002 11.3651C22.0002 10.7066 21.6602 10.0988 21.0692 9.76762L18.6927 8.31262L15.3302 10.8338L19.0327 13.5388L21.0402 12.3666C21.6367 12.0363 22.0002 11.7313 22.0002 11.3651Z"></path><path d="M2.00031 4.68721V19.3134C2.00031 19.6454 2.10531 19.9077 2.27406 20.1097L14.8628 7.52096L2.93156 0.572206C2.38406 0.906706 2.00031 1.71046 2.00031 2.59046V4.68721Z"></path><path d="M14.4234 6.41895L14.7697 6.18945L3.81094 0.141445C3.55969 0.0294453 3.28469 -0.0145547 3.01719 0.00294531L14.4234 6.41895Z"></path></svg> Play Store</a></div></div></div> <div><h3 class="text-xl font-bold mb-4">Liens rapides</h3> <ul class="space-y-2"><li class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path></svg> <a href="#accueil" class="text-gray-300 hover:text-white transition-colors">Accueil</a></li> <li class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg> <a href="#fonctionnalites" class="text-gray-300 hover:text-white transition-colors">Fonctionnalités</a></li> <li class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg> <a href="#contact" class="text-gray-300 hover:text-white transition-colors">Contact</a></li> <li class="mt-4 pt-4 border-t border-gray-700"></li> <li class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg> <a href="#mentions-legales" class="text-gray-300 hover:text-white transition-colors">Mentions légales</a></li> <li class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg> <a href="#politique-confidentialite" class="text-gray-300 hover:text-white transition-colors">Politique de confidentialité</a></li> <li class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-2 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path></svg> <a href="#conditions-utilisation" class="text-gray-300 hover:text-white transition-colors">Conditions d'utilisation</a></li></ul></div> <div><h3 class="text-xl font-bold mb-4">Contact</h3> <address class="not-italic text-gray-300"><p>Email: contactgeosector@gmail.com</p> <p>Téléphone: +33 (0)7 69 09 17 06</p></address></div></div> <div class="border-t border-gray-700 mt-8 pt-8 text-gray-400"><div class="flex justify-between items-center"><p> </p> <a href="https://d6soft.fr" class="text-blue-400 hover:text-blue-300 font-medium transition-colors" target="_blank" rel="noopener noreferrer">Conception D6SOFT</a></div></div></div></footer>`);function Xi(e,s){J(s,!1);function t(G){window.location.hash=G,window.scrollTo(0,0)}ne();var i=Ji(),o=c(i),n=c(o),a=m(c(n),2),u=m(c(a),2),r=c(u),d=m(c(r),2),f=m(r,2),p=m(c(f),2),v=m(f,2),h=m(c(v),2),b=m(v,4),w=m(c(b),2),k=m(b,2),g=m(c(k),2),_=m(k,2),A=m(c(_),2),M=m(n,2),T=c(M),Z=c(T),U=c(Z);ae(G=>it(U,`© ${G??""} Geosector. Tous droits réservés.`),[()=>new Date().getFullYear()],me),C("click",d,j(()=>t("accueil"))),C("click",p,j(()=>t("fonctionnalites"))),C("click",h,j(()=>t("contact"))),C("click",w,j(()=>t("mentions-legales"))),C("click",g,j(()=>t("politique-confidentialite"))),C("click",A,j(()=>t("conditions-utilisation"))),N(e,i),X()}var eo=R(`<div class="fixed inset-0 bg-black bg-opacity-50 z-50 flex items-center justify-center p-4"><div class="cookie-modal bg-white rounded-lg shadow-xl p-6 max-w-md w-full"><h2 class="text-2xl font-bold text-gray-800 mb-4">Gestion des cookies</h2> <p class="text-gray-600 mb-6">Nous utilisons des cookies pour suivre de façon anonyme l'activité sur ce site.
|
||
Ces informations nous aident à améliorer votre expérience utilisateur.
|
||
Les données sont collectées une fois tous les 2 jours. Vous pouvez les accepter ou les refuser.</p> <div class="flex flex-col sm:flex-row gap-4 justify-end"><button class="bg-gray-200 hover:bg-gray-300 text-gray-800 font-semibold py-2 px-4 rounded transition-colors">Refuser</button> <button class="bg-blue-600 hover:bg-blue-700 text-white font-semibold py-2 px-4 rounded transition-colors">Accepter</button></div></div></div>`);function to(e,s){J(s,!1);const t=Bi();function i(){const f=new Date;f.setDate(f.getDate()+2),document.cookie=`geosector_cookies_accepted=true; expires=${f.toUTCString()}; path=/; SameSite=Lax`,t("consent",{accepted:!0})}function o(){const f=new Date;f.setDate(f.getDate()+2),document.cookie=`geosector_cookies_refused=true; expires=${f.toUTCString()}; path=/; SameSite=Lax`,t("consent",{accepted:!1})}ne();var n=eo(),a=c(n),u=m(c(a),4),r=c(u),d=m(r,2);C("click",r,o),C("click",d,i),N(e,n),X()}function He(e){const s=document.cookie.split("; ").find(t=>t.startsWith(`${e}=`));return s?s.split("=")[1]:null}function so(){return He("geosector_cookies_accepted")!==null||He("geosector_cookies_refused")!==null}function Ot(){if(He("geosector_cookies_accepted")==="true"){const e=window.location.hash.slice(1)||"accueil";console.log("Suivi anonyme activé - "+new Date().toISOString()),console.log("Page courante: "+e)}}function Bt(){He("geosector_cookies_refused")==="true"&&console.log("Suivi anonyme désactivé - "+new Date().toISOString())}const Ss="geosector_last_tracking";function $t(e){if(He("geosector_cookies_accepted")!=="true"){console.log("Suivi désactivé : cookies non acceptés");return}if(!io()){console.log("Suivi différé : déjà suivi dans les 2 derniers jours");return}localStorage.setItem(Ss,new Date().toISOString()),console.log(`Page consultée: ${e} - ${new Date().toISOString()}`)}function io(){const e=localStorage.getItem(Ss);if(!e)return!0;const s=new Date(e),i=Math.abs(new Date-s);return Math.ceil(i/(1e3*60*60*24))>=2}var oo=R(`<div class="min-h-screen relative"><section class="text-white py-16 relative overflow-hidden"><div class="container mx-auto px-4 relative z-10"><div class="flex flex-col md:flex-row items-center"><div class="md:w-1/2 mb-10 md:mb-0"><h1>Gestion efficace de vos distributions de calendriers</h1> <p>Une application puissante et intuitive pour optimiser vos tournées et améliorer votre productivité.</p> <div><a href="#fonctionnalites" class="bg-red-600 hover:bg-red-700 text-white font-bold py-3 px-6 rounded-lg inline-block transition-colors">Découvrir les fonctionnalités</a></div></div> <div><div class="relative w-full max-w-lg h-[400px] md:h-[500px] rounded-xl overflow-hidden border border-blue-300 shadow-2xl shadow-blue-500/20"><div class="absolute inset-0 flex items-center justify-center bg-white"><div class="text-center p-4"><svg xmlns="http://www.w3.org/2000/svg" class="h-16 w-16 text-blue-200 mx-auto mb-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path></svg> <p class="text-gray-500">Dashboard Geosector</p> <p class="text-gray-400 text-sm mt-2">Interface de gestion</p></div></div></div> <div class="absolute -bottom-4 -right-4 w-[150px] md:w-[200px] h-[300px] md:h-[400px] bg-white rounded-xl overflow-hidden border border-blue-300 shadow-xl"><div class="absolute inset-0 flex items-center justify-center"><div class="text-center p-4"><svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-blue-200 mx-auto mb-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1" d="M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z"></path></svg> <p class="text-gray-500 text-xs">Mobile App</p> <p class="text-gray-400 text-xs mt-1">Interface mobile</p></div></div></div></div></div></div></section> <section class="py-16"><div class="container mx-auto px-4"><div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg"><h2 class="text-3xl font-bold text-center mb-12">Pourquoi choisir Geosector ?</h2> <div class="grid grid-cols-1 md:grid-cols-3 gap-8"><div class="bg-white p-6 rounded-lg shadow-md transition-transform hover:scale-105"><div class="w-16 h-16 bg-blue-100 rounded-full flex items-center justify-center mb-4 mx-auto"><svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"></path></svg></div> <h3 class="text-xl font-semibold text-center mb-2">Optimisation des tournées</h3> <p class="text-gray-600 text-center">Grace au mode Terrain, Geosector aide le membre à traiter les adresses à finaliser proche de lui.</p></div> <div class="bg-white p-6 rounded-lg shadow-md transition-transform hover:scale-105"><div class="w-16 h-16 bg-blue-100 rounded-full flex items-center justify-center mb-4 mx-auto"><svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v6m0 0v6m0-6h6m-6 0H6"></path></svg></div> <h3 class="text-xl font-semibold text-center mb-2">Simplicité d'utilisation</h3> <p class="text-gray-600 text-center">Interface intuitive conçue pour faciliter la gestion quotidienne de vos distributions.</p></div> <div class="bg-white p-6 rounded-lg shadow-md transition-transform hover:scale-105"><div class="w-16 h-16 bg-blue-100 rounded-full flex items-center justify-center mb-4 mx-auto"><svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path></svg></div> <h3 class="text-xl font-semibold text-center mb-2">Sécurité des données</h3> <p class="text-gray-600 text-center">Vos données sont protégées en conformité au RGPD et sauvegardées régulièrement.</p></div></div></div></div></section> <section class="py-16"><div class="container mx-auto px-4"><div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg"><h2 class="text-3xl font-bold text-center mb-12">Ce que nos clients disent</h2> <div class="grid grid-cols-1 md:grid-cols-2 gap-8"><div class="bg-white p-6 rounded-lg border border-gray-200"><div class="flex items-center mb-4"><div class="w-12 h-12 bg-blue-200 rounded-full flex items-center justify-center mr-4"><span class="text-blue-800 font-bold">TP</span></div> <div><h4 class="font-semibold">Trystan PAPIN</h4> <p class="text-gray-600 text-sm">Trésorier de l'amicale des SP du Malesherbois</p></div></div> <p class="text-gray-700 italic">"Bonjour, Je confirme l’utilisation de l’application Geosector pour l’amicale des SP de Malesherbes. Superbe application encore merci à vous !"</p></div> <div class="bg-white p-6 rounded-lg border border-gray-200"><div class="flex items-center mb-4"><div class="w-12 h-12 bg-blue-200 rounded-full flex items-center justify-center mr-4"><span class="text-blue-800 font-bold">ML</span></div> <div><h4 class="font-semibold">Marie Leroy</h4> <p class="text-gray-600 text-sm">Responsable opérations, LogiExpress</p></div></div> <p class="text-gray-700 italic">"L'interface intuitive de Geosector nous a permis de former rapidement nos équipes. La visualisation en temps réel des tournées est un atout majeur pour notre activité quotidienne."</p></div></div></div></div></section></div>`);function no(e,s){J(s,!1);let t=B(!1);he(()=>{q(t,!0)}),ne();var i=oo(),o=c(i),n=c(o),a=c(n),u=c(a),r=c(u);let d;var f=m(r,2);let p;var v=m(f,2);let h;var b=m(u,2);let w;ae((k,g,_,A)=>{d=L(r,1,"text-4xl md:text-5xl font-bold mb-6 transition-all duration-700 text-[#002C66]",null,d,k),p=L(f,1,"text-xl mb-8 transition-all duration-700 delay-300 text-[#002C66]",null,p,g),h=L(v,1,"transition-all duration-700 delay-500",null,h,_),w=L(b,1,"md:w-1/2 transition-all duration-700 delay-700 relative flex justify-center md:justify-end",null,w,A)},[()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)}),()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)}),()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)}),()=>({"translate-x-0":l(t),"opacity-100":l(t),"translate-x-10":!l(t),"opacity-0":!l(t)})],me),N(e,i),X()}var ro=R(`<div class="min-h-screen relative"><section class="text-white py-12 relative"><div class="container mx-auto px-4"><div class="text-center"><h1>Fonctionnalités</h1> <p>Découvrez les outils puissants qui font de Geosector la solution idéale pour la gestion de vos distributions.</p></div></div></section> <section class="py-16"><div class="container mx-auto px-4"><div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg"><h2 class="text-3xl font-bold text-center mb-12">Fonctionnalités principales</h2> <div class="grid grid-cols-1 md:grid-cols-2 gap-12"><div class="flex flex-col md:flex-row items-start"><div class="bg-blue-100 rounded-lg p-4 mb-4 md:mb-0 md:mr-6 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7"></path></svg></div> <div><h3 class="text-xl font-semibold mb-2">Cartographie avancée</h3> <p class="text-gray-600 mb-4">Visualisez vos tournées sur des cartes interactives avec des données en temps réel sur le trafic et les conditions météorologiques.</p> <ul class="space-y-2"><li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Cartes détaillées avec points d'intérêt</span></li> <li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Suivi GPS en temps réel</span></li> <li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Alertes de trafic et d'incidents</span></li></ul></div></div> <div class="flex flex-col md:flex-row items-start"><div class="bg-blue-100 rounded-lg p-4 mb-4 md:mb-0 md:mr-6 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path></svg></div> <div><h3 class="text-xl font-semibold mb-2">Optimisation des itinéraires</h3> <p class="text-gray-600 mb-4">Nos algorithmes avancés calculent les itinéraires les plus efficaces en tenant compte de multiples facteurs.</p> <ul class="space-y-2"><li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Réduction des coûts de carburant jusqu'à 30%</span></li> <li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Prise en compte des contraintes horaires</span></li> <li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Adaptation dynamique aux conditions réelles</span></li></ul></div></div> <div class="flex flex-col md:flex-row items-start"><div class="bg-blue-100 rounded-lg p-4 mb-4 md:mb-0 md:mr-6 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg></div> <div><h3 class="text-xl font-semibold mb-2">Planification intelligente</h3> <p class="text-gray-600 mb-4">Planifiez vos tournées à l'avance et adaptez-les facilement en fonction des imprévus.</p> <ul class="space-y-2"><li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Calendrier interactif avec vue mensuelle/hebdomadaire/quotidienne</span></li> <li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Gestion des priorités et des urgences</span></li> <li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Notifications automatiques pour les changements</span></li></ul></div></div> <div class="flex flex-col md:flex-row items-start"><div class="bg-blue-100 rounded-lg p-4 mb-4 md:mb-0 md:mr-6 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg></div> <div><h3 class="text-xl font-semibold mb-2">Rapports et analyses</h3> <p class="text-gray-600 mb-4">Obtenez des insights précieux sur vos opérations grâce à nos outils d'analyse avancés.</p> <ul class="space-y-2"><li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Tableaux de bord personnalisables</span></li> <li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Exportation des données en plusieurs formats</span></li> <li class="flex items-start"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-green-500 mr-2 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> <span>Indicateurs de performance clés (KPIs)</span></li></ul></div></div></div></div></div></section> <section class="py-16"><div class="container mx-auto px-4"><div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg"><h2 class="text-3xl font-bold text-center mb-12">Application mobile</h2> <div class="flex flex-col md:flex-row items-center"><div class="md:w-1/2 mb-8 md:mb-0 md:pr-8"><h3 class="text-2xl font-semibold mb-4">Emportez Geosector partout avec vous</h3> <p class="text-gray-600 mb-6">Notre application mobile offre toutes les fonctionnalités essentielles pour gérer vos distributions en déplacement.</p> <div class="space-y-4"><div class="flex items-start"><div class="bg-blue-100 rounded-full p-2 mr-4 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z"></path></svg></div> <div><h4 class="font-semibold">Interface adaptée aux mobiles</h4> <p class="text-gray-600">Expérience utilisateur optimisée pour les écrans tactiles et la navigation mobile.</p></div></div> <div class="flex items-start"><div class="bg-blue-100 rounded-full p-2 mr-4 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg></div> <div><h4 class="font-semibold">Mode hors ligne</h4> <p class="text-gray-600">Continuez à travailler même sans connexion internet, avec synchronisation automatique.</p></div></div> <div class="flex items-start"><div class="bg-blue-100 rounded-full p-2 mr-4 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path></svg></div> <div><h4 class="font-semibold">Notifications push</h4> <p class="text-gray-600">Restez informé des changements importants et des mises à jour en temps réel.</p></div></div></div> <div class="mt-8 flex space-x-4"><a href="/" class="inline-block"><img src="https://via.placeholder.com/150x50?text=App+Store" alt="Télécharger sur l'App Store" class="h-12"/></a> <a href="/" class="inline-block"><img src="https://via.placeholder.com/150x50?text=Play+Store" alt="Télécharger sur Google Play" class="h-12"/></a></div></div> <div class="md:w-1/2"><div class="bg-white p-4 rounded-xl shadow-xl max-w-xs mx-auto"><img src="https://via.placeholder.com/300x600?text=App+Screenshot" alt="Capture d'écran de l'application mobile" class="rounded-lg"/></div></div></div></div></div></section> <section class="py-16 text-white"><div class="container mx-auto px-4 text-center"><div class="bg-blue-900 bg-opacity-90 backdrop-blur-sm rounded-lg p-8 shadow-lg"><h2 class="text-3xl font-bold mb-6">Prêt à optimiser vos distributions ?</h2> <p class="text-xl mb-8 max-w-3xl mx-auto">Rejoignez les milliers d'entreprises qui font confiance à Geosector pour améliorer leur efficacité opérationnelle.</p> <a href="#contact" class="bg-red-600 hover:bg-red-700 text-white font-bold py-3 px-8 rounded-lg inline-block transition-colors text-lg">Demander une démo</a></div></div></section></div>`);function lo(e,s){J(s,!1);let t=B(!1);he(()=>{q(t,!0)}),ne();var i=ro(),o=c(i),n=c(o),a=c(n),u=c(a);let r;var d=m(u,2);let f;ae((p,v)=>{r=L(u,1,"text-4xl md:text-5xl font-bold mb-6 transition-all duration-700 text-[#002C66]",null,r,p),f=L(d,1,"text-xl max-w-3xl mx-auto transition-all duration-700 delay-300 text-[#002C66]",null,f,v)},[()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)}),()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)})],me),N(e,i),X()}var ao=R('<div class="bg-green-100 border border-green-400 text-green-700 px-4 py-3 rounded mb-6"><p class="font-semibold">Message envoyé avec succès !</p> <p>Nous vous répondrons dans les plus brefs délais.</p></div>'),uo=R('<form class="space-y-6"><div class="grid grid-cols-1 md:grid-cols-2 gap-6"><div><label for="nom" class="block text-gray-700 font-medium mb-2">Nom complet *</label> <input type="text" id="nom" required class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-colors"/></div> <div><label for="email" class="block text-gray-700 font-medium mb-2">Email *</label> <input type="email" id="email" required class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-colors"/></div></div> <div class="grid grid-cols-1 md:grid-cols-2 gap-6"><div><label for="telephone" class="block text-gray-700 font-medium mb-2">Téléphone</label> <input type="tel" id="telephone" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-colors"/></div> <div><label for="entreprise" class="block text-gray-700 font-medium mb-2">Entreprise</label> <input type="text" id="entreprise" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-colors"/></div></div> <div><label for="message" class="block text-gray-700 font-medium mb-2">Message *</label> <textarea id="message" required rows="5" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition-colors"></textarea></div> <div class="flex items-center"><input type="checkbox" id="newsletter" class="h-5 w-5 text-blue-600 focus:ring-blue-500 border-gray-300 rounded"/> <label for="newsletter" class="ml-2 block text-gray-700">Je souhaite recevoir la newsletter et les actualités de Geosector</label></div> <div><button type="submit" class="bg-blue-600 hover:bg-blue-700 text-white font-bold py-3 px-6 rounded-lg transition-colors">Envoyer le message</button></div></form>'),co=R(`<div class="min-h-screen relative"><section class="text-white py-12 relative"><div class="container mx-auto px-4"><div class="text-center"><h1>Contactez-nous</h1> <p>Notre équipe est à votre disposition pour répondre à toutes vos questions et vous accompagner dans votre projet.</p></div></div></section> <section class="py-16"><div class="container mx-auto px-4"><div class="max-w-5xl mx-auto"><div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg"><div class="grid grid-cols-1 md:grid-cols-2 gap-12"><div><h2 class="text-3xl font-bold mb-8">Nos coordonnées</h2> <div class="space-y-6"><div class="flex items-start"><div class="bg-blue-100 rounded-full p-3 mr-4 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"></path></svg></div> <div><h3 class="font-semibold text-lg mb-1">Téléphone</h3> <p class="text-gray-600">+33 (0)1 23 45 67 89</p></div></div> <div class="flex items-start"><div class="bg-blue-100 rounded-full p-3 mr-4 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg></div> <div><h3 class="font-semibold text-lg mb-1">Email</h3> <p class="text-gray-600">contact@geosector.fr</p></div></div> <div class="flex items-start"><div class="bg-blue-100 rounded-full p-3 mr-4 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" class="h-6 w-6 text-blue-600" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg></div> <div><h3 class="font-semibold text-lg mb-1">Horaires d'ouverture</h3> <p class="text-gray-600">Lundi - Vendredi: 9h00 - 18h00<br/>Samedi - Dimanche: Fermé</p></div></div></div> <div class="mt-10"><h3 class="font-semibold text-lg mb-4">Suivez-nous</h3> <div class="flex space-x-4"><a href="https://facebook.com" aria-label="Suivez-nous sur Facebook" class="bg-blue-100 hover:bg-blue-200 text-blue-600 p-3 rounded-full transition-colors"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"><path d="M22.675 0h-21.35c-.732 0-1.325.593-1.325 1.325v21.351c0 .731.593 1.324 1.325 1.324h11.495v-9.294h-3.128v-3.622h3.128v-2.671c0-3.1 1.893-4.788 4.659-4.788 1.325 0 2.463.099 2.795.143v3.24l-1.918.001c-1.504 0-1.795.715-1.795 1.763v2.313h3.587l-.467 3.622h-3.12v9.293h6.116c.73 0 1.323-.593 1.323-1.325v-21.35c0-.732-.593-1.325-1.325-1.325z"></path></svg></a> <a href="https://twitter.com" aria-label="Suivez-nous sur Twitter" class="bg-blue-100 hover:bg-blue-200 text-blue-600 p-3 rounded-full transition-colors"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"><path d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z"></path></svg></a> <a href="https://linkedin.com" aria-label="Suivez-nous sur LinkedIn" class="bg-blue-100 hover:bg-blue-200 text-blue-600 p-3 rounded-full transition-colors"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="currentColor" viewBox="0 0 24 24"><path d="M4.98 3.5c0 1.381-1.11 2.5-2.48 2.5s-2.48-1.119-2.48-2.5c0-1.38 1.11-2.5 2.48-2.5s2.48 1.12 2.48 2.5zm.02 4.5h-5v16h5v-16zm7.982 0h-4.968v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0v8.399h4.988v-10.131c0-7.88-8.922-7.593-11.018-3.714v-2.155z"></path></svg></a></div></div></div> <div><h2 class="text-3xl font-bold mb-8">Envoyez-nous un message</h2> <!></div></div></div></div></div></section> <section class="py-16"><div class="container mx-auto px-4"><div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg"><h2 class="text-3xl font-bold text-center mb-12">Questions fréquentes</h2> <div class="max-w-3xl mx-auto space-y-6"><div class="bg-white p-6 rounded-lg shadow-md"><h3 class="text-xl font-semibold mb-2">Comment puis-je obtenir une démonstration de Geosector ?</h3> <p class="text-gray-600">Vous pouvez demander une démonstration en remplissant le formulaire de contact ci-dessus ou en nous appelant directement. Un de nos conseillers vous contactera pour organiser une session personnalisée.</p></div> <div class="bg-white p-6 rounded-lg shadow-md"><h3 class="text-xl font-semibold mb-2">Combien de temps dure la période d'essai ?</h3> <p class="text-gray-600">Nous proposons une période d'essai gratuite de 14 jours avec toutes les fonctionnalités disponibles. Aucune carte de crédit n'est requise pour commencer votre essai.</p></div> <div class="bg-white p-6 rounded-lg shadow-md"><h3 class="text-xl font-semibold mb-2">Proposez-vous des formations pour utiliser votre logiciel ?</h3> <p class="text-gray-600">Oui, nous proposons des sessions de formation complètes pour vous aider à tirer le meilleur parti de Geosector. Ces formations peuvent être réalisées en ligne ou dans vos locaux selon vos préférences.</p></div> <div class="bg-white p-6 rounded-lg shadow-md"><h3 class="text-xl font-semibold mb-2">Quels types de support technique proposez-vous ?</h3> <p class="text-gray-600">Nous offrons un support technique par email, téléphone et chat en direct pendant les heures de bureau. Nos clients avec des forfaits premium bénéficient d'un support 24/7.</p></div></div></div></div></section></div>`);function po(e,s){J(s,!1);let t=B(!1),i=B({nom:"",email:"",telephone:"",entreprise:"",message:"",newsletter:!1}),o=B(!1);function n(){q(o,!0),console.log("Formulaire soumis:",l(i))}he(()=>{q(t,!0)}),ne();var a=co(),u=c(a),r=c(u),d=c(r),f=c(d);let p;var v=m(f,2);let h;var b=m(u,2),w=c(b),k=c(w),g=c(k),_=c(g),A=m(c(_),2),M=m(c(A),2);{var T=U=>{var G=ao();N(U,G)},Z=U=>{var G=uo(),$=c(G),ge=c($),ze=m(c(ge),2),ye=m(ge,2),ee=m(c(ye),2),ue=m($,2),ce=c(ue),Ge=m(c(ce),2),H=m(ce,2),Pe=m(c(H),2),be=m(ue,2),je=m(c(be),2),Q=m(be,2),ke=c(Q);Ne(ze,()=>l(i).nom,V=>Ce(i,l(i).nom=V)),Ne(ee,()=>l(i).email,V=>Ce(i,l(i).email=V)),Ne(Ge,()=>l(i).telephone,V=>Ce(i,l(i).telephone=V)),Ne(Pe,()=>l(i).entreprise,V=>Ce(i,l(i).entreprise=V)),Ne(je,()=>l(i).message,V=>Ce(i,l(i).message=V)),Ri(ke,()=>l(i).newsletter,V=>Ce(i,l(i).newsletter=V)),C("submit",G,j(n)),N(U,G)};te(M,U=>{l(o)?U(T):U(Z,!1)})}ae((U,G)=>{p=L(f,1,"text-4xl md:text-5xl font-bold mb-6 transition-all duration-700 text-[#002C66]",null,p,U),h=L(v,1,"text-xl max-w-3xl mx-auto transition-all duration-700 delay-300 text-[#002C66]",null,h,G)},[()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)}),()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)})],me),N(e,a),X()}var vo=R(`<div class="min-h-screen relative"><section class="text-white py-12 relative"><div class="container mx-auto px-4"><div class="text-center"><h1>Politique de confidentialité</h1> <p>Protection de vos données personnelles et respect de votre vie privée</p></div></div></section> <section class="py-12"><div class="container mx-auto px-4"><div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg"><div class="max-w-4xl mx-auto prose prose-blue"><p class="text-sm text-gray-500 mb-6"> </p> <h2>Introduction</h2> <p>Cette politique de confidentialité s'applique à l'application Geosector, disponible sur le Web, iOS et Android,
|
||
ainsi qu'à tous les services associés (collectivement désignés par "Geosector", "nous", "notre" ou "nos").</p> <p>Chez Geosector, nous accordons une grande importance à la protection de vos données personnelles.
|
||
Cette politique décrit quelles informations nous collectons, comment nous les utilisons,
|
||
et quels choix vous avez concernant ces données.</p> <p>Cette politique de confidentialité doit être lue conjointement avec nos <a href="#conditions-utilisation" class="text-blue-600 hover:underline">Conditions d'utilisation</a>, qui régissent votre utilisation de notre application.</p> <h2>Quelles informations collectons-nous ?</h2> <h3>1. Informations que vous nous fournissez</h3> <ul><li><strong>Informations de compte :</strong> Lors de l'inscription, nous collectons votre nom, prénom, adresse e-mail, et mot de passe.</li> <li><strong>Informations de profil :</strong> Vous pouvez nous fournir des informations supplémentaires comme votre fonction, l'organisation à laquelle vous appartenez, et votre photo de profil.</li> <li><strong>Contenu utilisateur :</strong> Les informations que vous créez, téléchargez ou partagez via notre application, notamment les secteurs géographiques, les passages, et les commentaires.</li> <li><strong>Communications :</strong> Lorsque vous nous contactez, nous conservons un historique de ces communications.</li></ul> <h3>2. Informations collectées automatiquement</h3> <ul><li><strong>Données d'utilisation :</strong> Informations sur vos interactions avec notre application, comme les fonctionnalités utilisées, les pages visitées et le temps passé.</li> <li><strong>Informations sur l'appareil :</strong> Type d'appareil, système d'exploitation, version de l'application, langue, fuseau horaire et autres caractéristiques techniques.</li> <li><strong>Données de localisation :</strong> Avec votre consentement, nous collectons des données de géolocalisation précises pour vous permettre d'utiliser les fonctionnalités cartographiques et de secteurs.</li> <li><strong>Cookies et technologies similaires :</strong> Sur notre version web, nous utilisons des cookies et des technologies similaires pour améliorer votre expérience. Pour plus d'informations, consultez notre politique relative aux cookies.</li></ul> <h2>Comment utilisons-nous vos informations ?</h2> <p>Nous utilisons vos informations pour les finalités suivantes :</p> <ul><li>Fournir, maintenir et améliorer notre application et ses fonctionnalités</li> <li>Créer et gérer votre compte</li> <li>Traiter vos transactions et paiements</li> <li>Vous envoyer des informations techniques, des mises à jour, des alertes de sécurité et des messages administratifs</li> <li>Répondre à vos commentaires et questions et vous fournir un support client</li> <li>Communiquer avec vous à propos de produits, services, offres et événements</li> <li>Surveiller et analyser les tendances, l'utilisation et les activités liées à notre application</li> <li>Détecter, prévenir et résoudre les problèmes techniques et de sécurité</li> <li>Se conformer aux obligations légales</li></ul> <h2>Base légale du traitement (pour les utilisateurs de l'EEE et du Royaume-Uni)</h2> <p>Pour les utilisateurs de l'Espace économique européen (EEE) et du Royaume-Uni, nous traitons vos données personnelles sur les bases légales suivantes :</p> <ul><li><strong>Exécution d'un contrat :</strong> Lorsque le traitement est nécessaire pour l'exécution d'un contrat auquel vous êtes partie ou pour prendre des mesures à votre demande avant de conclure un contrat.</li> <li><strong>Intérêts légitimes :</strong> Lorsque le traitement est nécessaire pour nos intérêts légitimes ou ceux d'un tiers, et que ces intérêts ne sont pas supplantés par vos intérêts ou droits fondamentaux.</li> <li><strong>Consentement :</strong> Lorsque vous avez donné votre consentement au traitement de vos données personnelles pour une ou plusieurs finalités spécifiques.</li> <li><strong>Obligation légale :</strong> Lorsque le traitement est nécessaire pour respecter une obligation légale à laquelle nous sommes soumis.</li></ul> <h2>Comment partageons-nous vos informations ?</h2> <p>Nous pouvons partager vos informations personnelles avec les tiers suivants :</p> <ul><li><strong>Prestataires de services :</strong> Nous travaillons avec des prestataires de services tiers qui fournissent des services tels que l'hébergement, l'analyse, le traitement des paiements et le support client.</li> <li><strong>Partenaires professionnels :</strong> Nous pouvons partager des informations avec nos partenaires commerciaux pour offrir certains produits, services ou promotions.</li> <li><strong>Conformité légale :</strong> Nous pouvons divulguer vos informations si nous estimons de bonne foi que cette divulgation est nécessaire pour se conformer à la loi, protéger nos droits ou assurer votre sécurité.</li> <li><strong>Transactions d'entreprise :</strong> En cas de fusion, acquisition, restructuration ou vente d'actifs, vos informations peuvent être transférées dans le cadre de cette transaction.</li></ul> <p>Nous ne vendons pas vos données personnelles à des tiers.</p> <h2>Transferts internationaux de données</h2> <p>Vos informations peuvent être transférées et traitées dans des pays autres que celui où vous résidez.
|
||
Ces pays peuvent avoir des lois sur la protection des données différentes de celles de votre pays.</p> <p>Si nous transférons des données personnelles provenant de l'EEE, du Royaume-Uni ou de la Suisse vers des pays
|
||
n'offrant pas un niveau de protection adéquat selon les autorités compétentes, nous utilisons des
|
||
mécanismes de transfert légalement reconnus, tels que les clauses contractuelles types approuvées par la Commission européenne.</p> <h2>Vos droits et choix</h2> <p>Selon votre lieu de résidence, vous pouvez disposer de certains droits concernant vos données personnelles :</p> <ul><li><strong>Accès et portabilité :</strong> Vous pouvez accéder à vos informations personnelles et en obtenir une copie dans un format structuré, couramment utilisé et lisible par machine.</li> <li><strong>Correction :</strong> Vous pouvez mettre à jour ou corriger vos informations personnelles si elles sont inexactes ou incomplètes.</li> <li><strong>Suppression :</strong> Vous pouvez demander la suppression de vos données personnelles dans certaines circonstances.</li> <li><strong>Restriction et opposition :</strong> Vous pouvez demander la restriction du traitement de vos données personnelles ou vous opposer à leur traitement dans certaines circonstances.</li> <li><strong>Consentement :</strong> Lorsque le traitement est basé sur votre consentement, vous pouvez retirer ce consentement à tout moment.</li> <li><strong>Réclamation :</strong> Vous avez le droit d'introduire une réclamation auprès d'une autorité de protection des données.</li></ul> <p>Pour exercer ces droits, contactez-nous à l'adresse indiquée dans la section "Nous contacter" ci-dessous.
|
||
Notez que ces droits peuvent être soumis à des limitations et exceptions prévues par la loi applicable.</p> <h2>Conservation des données</h2> <p>Nous conservons vos données personnelles aussi longtemps que nécessaire pour atteindre les finalités décrites dans cette politique,
|
||
sauf si une période de conservation plus longue est requise ou permise par la loi.
|
||
Les critères utilisés pour déterminer nos périodes de conservation comprennent :</p> <ul><li>La durée pendant laquelle nous entretenons une relation continue avec vous et vous fournissons l'application</li> <li>Si nous avons une obligation légale à laquelle nous sommes soumis</li> <li>Si la conservation est souhaitable compte tenu de notre position juridique (par exemple, concernant les délais de prescription applicables, les litiges ou les enquêtes réglementaires)</li></ul> <h2>Sécurité des données</h2> <p>Nous mettons en œuvre des mesures de sécurité techniques et organisationnelles appropriées pour protéger vos données personnelles
|
||
contre la perte accidentelle, l'utilisation non autorisée, l'altération et la divulgation.
|
||
Ces mesures comprennent le chiffrement des données, les contrôles d'accès, les pare-feu et les audits de sécurité réguliers.</p> <p>Cependant, aucun système de sécurité n'est impénétrable et nous ne pouvons garantir la sécurité absolue de vos informations.
|
||
Il est important que vous preniez des précautions pour protéger votre mot de passe et votre appareil.</p> <h2>Protection de la vie privée des enfants</h2> <p>Notre application n'est pas destinée aux personnes âgées de moins de 16 ans et nous ne collectons pas sciemment
|
||
des données personnelles auprès d'enfants de moins de 16 ans. Si vous êtes parent ou tuteur et que vous pensez
|
||
que votre enfant nous a fourni des informations personnelles, veuillez nous contacter.</p> <h2>Modifications de cette politique</h2> <p>Nous pouvons modifier cette politique de confidentialité de temps à autre. Si nous apportons des modifications importantes,
|
||
nous vous en informerons par e-mail ou par une notification dans notre application avant que les modifications
|
||
ne prennent effet. Nous vous encourageons à consulter régulièrement cette politique pour rester informé de
|
||
nos pratiques en matière de protection des données.</p> <h2>Nous contacter</h2> <p>Si vous avez des questions concernant cette politique de confidentialité ou nos pratiques en matière de protection des données,
|
||
veuillez nous contacter à l'adresse suivante :</p> <p><strong>Geosector</strong><br/> E-mail : <a href="mailto:privacy@geosector.fr" class="text-blue-600 hover:underline">privacy@geosector.fr</a><br/> Adresse : [Adresse de l'entreprise]<br/> Téléphone : +33 (0)1 23 45 67 89</p> <h2>Informations spécifiques aux plateformes</h2> <h3>Application iOS (Apple App Store)</h3> <p>En utilisant notre application via l'App Store d'Apple, vous reconnaissez qu'Apple n'est pas responsable de nos pratiques
|
||
en matière de protection des données. Veuillez consulter la politique de confidentialité d'Apple pour plus d'informations
|
||
sur la façon dont Apple peut collecter et traiter vos données.</p> <h3>Application Android (Google Play)</h3> <p>En utilisant notre application via Google Play, vous reconnaissez que Google n'est pas responsable de nos pratiques
|
||
en matière de protection des données. Veuillez consulter la politique de confidentialité de Google pour plus d'informations
|
||
sur la façon dont Google peut collecter et traiter vos données.</p> <h3>Permissions des applications mobiles</h3> <p>Notre application peut demander certaines permissions sur votre appareil mobile, notamment :</p> <ul><li><strong>Localisation :</strong> Pour les fonctionnalités basées sur la localisation, comme l'affichage des secteurs et la navigation</li> <li><strong>Stockage :</strong> Pour stocker des données localement sur votre appareil</li> <li><strong>Appareil photo :</strong> Pour scanner des codes QR ou prendre des photos</li> <li><strong>Notifications :</strong> Pour vous envoyer des alertes et des mises à jour importantes</li></ul> <p>Vous pouvez gérer ces permissions à tout moment dans les paramètres de votre appareil, mais notez que
|
||
la désactivation de certaines permissions peut limiter les fonctionnalités de l'application.</p></div></div></div></section></div>`);function fo(e,s){J(s,!1);let t=B(!1);function i(M){window.location.hash=M,window.scrollTo(0,0)}he(()=>{q(t,!0)}),ne();var o=vo(),n=c(o),a=c(n),u=c(a),r=c(u);let d;var f=m(r,2);let p;var v=m(n,2),h=c(v),b=c(h),w=c(b),k=c(w),g=c(k),_=m(k,8),A=m(c(_));ae((M,T,Z)=>{d=L(r,1,"text-4xl md:text-5xl font-bold mb-6 transition-all duration-700 text-[#002C66]",null,d,M),p=L(f,1,"text-xl max-w-3xl mx-auto transition-all duration-700 delay-300 text-[#002C66]",null,p,T),it(g,`Dernière mise à jour : ${Z??""}`)},[()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)}),()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)}),()=>new Date().toLocaleDateString("fr-FR",{year:"numeric",month:"long",day:"numeric"})],me),C("click",A,j(()=>i("conditions-utilisation"))),N(e,o),X()}var mo=R(`<div class="min-h-screen relative"><section class="text-white py-12 relative"><div class="container mx-auto px-4"><div class="text-center"><h1>Conditions d'utilisation</h1> <p>Règles et modalités d'utilisation de l'application Geosector</p></div></div></section> <section class="py-12"><div class="container mx-auto px-4"><div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg"><div class="max-w-4xl mx-auto prose prose-blue"><p class="text-sm text-gray-500 mb-6"> </p> <h2>1. Préambule</h2> <p>Les présentes conditions générales d'utilisation (ci-après dénommées "CGU") régissent l'utilisation de l'application Geosector (ci-après dénommée l'"Application"),
|
||
accessible via le Web à l'adresse app.geosector.fr, ainsi que sur les plateformes iOS (Apple App Store) et Android (Google Play Store).</p> <p>Geosector est une application dédiée à la gestion de secteurs géographiques et de passages, permettant à ses utilisateurs d'optimiser
|
||
leurs distributions et tournées. L'application est exploitée par [Nom de la société], dont le siège social est situé à [Adresse complète],
|
||
immatriculée au Registre du Commerce et des Sociétés de [Ville] sous le numéro [Numéro RCS].</p> <p>En utilisant notre Application, vous acceptez de vous conformer aux présentes CGU. Si vous n'acceptez pas ces conditions,
|
||
veuillez ne pas utiliser l'Application.</p> <h2>2. Définitions</h2> <p>Dans les présentes CGU, les termes suivants ont la signification qui leur est attribuée ci-dessous :</p> <ul><li><strong>"Application"</strong> désigne l'application Geosector, accessible via le Web, iOS et Android.</li> <li><strong>"Compte"</strong> désigne l'espace personnel de l'Utilisateur sur l'Application.</li> <li><strong>"Contenu"</strong> désigne toutes les informations et données (y compris les textes, images, vidéos, etc.) accessibles ou générées via l'Application.</li> <li><strong>"Fonctionnalités"</strong> désigne les services et outils proposés par l'Application.</li> <li><strong>"Utilisateur"</strong> désigne toute personne physique ou morale ayant accès à l'Application.</li> <li><strong>"Données Personnelles"</strong> désigne toute information se rapportant à une personne physique identifiée ou identifiable.</li></ul> <h2>3. Inscription et compte utilisateur</h2> <h3>3.1 Conditions d'inscription</h3> <p>Pour utiliser l'ensemble des Fonctionnalités de l'Application, l'Utilisateur doit créer un Compte en fournissant
|
||
les informations requises. L'Utilisateur s'engage à fournir des informations exactes, complètes et à jour.
|
||
Toute fausse déclaration peut entraîner la suspension ou la suppression du Compte.</p> <h3>3.2 Sécurité du compte</h3> <p>L'Utilisateur est responsable de la confidentialité de ses identifiants de connexion (nom d'utilisateur et mot de passe)
|
||
et s'engage à ne pas les communiquer à des tiers. Toute connexion effectuée en utilisant les identifiants de l'Utilisateur
|
||
sera présumée avoir été effectuée par celui-ci.</p> <h3>3.3 Suspension ou suppression de compte</h3> <p>Geosector se réserve le droit de suspendre ou de supprimer un Compte en cas de :</p> <ul><li>Non-respect des présentes CGU</li> <li>Inactivité prolongée</li> <li>Utilisation frauduleuse ou abusive de l'Application</li> <li>Non-paiement des services payants</li> <li>Demande de l'Utilisateur</li></ul> <h2>4. Utilisation de l'Application</h2> <h3>4.1 Licence d'utilisation</h3> <p>Sous réserve du respect des présentes CGU, Geosector accorde à l'Utilisateur une licence limitée, non exclusive,
|
||
non transférable et révocable pour accéder et utiliser l'Application à des fins professionnelles ou personnelles.</p> <h3>4.2 Restrictions d'utilisation</h3> <p>L'Utilisateur s'engage à ne pas :</p> <ul><li>Utiliser l'Application à des fins illégales ou interdites par les présentes CGU</li> <li>Tenter de perturber le fonctionnement de l'Application ou d'accéder aux données d'autres Utilisateurs</li> <li>Utiliser des robots, spiders, scrapers ou autres moyens automatisés pour accéder à l'Application</li> <li>Contourner les mesures de sécurité de l'Application</li> <li>Reproduire, copier, vendre, revendre ou exploiter toute partie de l'Application sans autorisation écrite préalable</li> <li>Utiliser l'Application d'une manière qui pourrait endommager, désactiver, surcharger ou altérer les serveurs ou les réseaux</li></ul> <h3>4.3 Contenu de l'Utilisateur</h3> <p>En publiant, téléchargeant, ou partageant du Contenu via l'Application, l'Utilisateur accorde à Geosector une licence mondiale,
|
||
non exclusive, transférable, libre de redevances pour utiliser, reproduire, modifier, adapter, publier, traduire et distribuer ce Contenu
|
||
dans le cadre de l'exploitation et de l'amélioration de l'Application.</p> <p>L'Utilisateur garantit qu'il dispose des droits nécessaires sur le Contenu qu'il partage et que ce Contenu n'enfreint pas
|
||
les droits de tiers ni les lois applicables.</p> <h2>5. Services payants et abonnements</h2> <h3>5.1 Offres et tarifs</h3> <p>Certaines Fonctionnalités de l'Application peuvent être soumises à paiement. Les offres et tarifs sont disponibles sur le site web
|
||
de Geosector ou directement dans l'Application. Geosector se réserve le droit de modifier ses offres et tarifs à tout moment,
|
||
moyennant un préavis raisonnable.</p> <h3>5.2 Paiement et facturation</h3> <p>Les paiements sont effectués par carte bancaire ou tout autre moyen proposé dans l'Application. Pour les abonnements,
|
||
le paiement est automatiquement renouvelé à la fin de chaque période, sauf résiliation par l'Utilisateur avant la date de renouvellement.</p> <p>Une facture électronique est mise à disposition de l'Utilisateur pour chaque paiement effectué.</p> <h3>5.3 Politique de remboursement</h3> <p>Conformément à la législation applicable, l'Utilisateur bénéficie d'un droit de rétractation de 14 jours à compter de la souscription
|
||
à un service payant, sauf si l'exécution du service a commencé avec son accord avant la fin de ce délai.</p> <p>Aucun remboursement ne sera accordé après l'expiration du délai de rétractation, sauf en cas de dysfonctionnement majeur de l'Application
|
||
imputable à Geosector.</p> <h2>6. Propriété intellectuelle</h2> <h3>6.1 Droits de Geosector</h3> <p>L'Application, y compris son contenu, sa structure, ses fonctionnalités, son code source, ses interfaces, son design,
|
||
ses logos et ses marques, est la propriété exclusive de Geosector ou de ses concédants de licence.
|
||
Ces éléments sont protégés par les lois relatives à la propriété intellectuelle.</p> <h3>6.2 Droits des Utilisateurs</h3> <p>L'Utilisateur conserve tous les droits de propriété intellectuelle sur le Contenu qu'il crée et partage via l'Application,
|
||
sous réserve de la licence accordée à Geosector conformément à l'article 4.3.</p> <h3>6.3 Signalement d'une violation</h3> <p>Si vous pensez que votre contenu a été utilisé d'une manière qui constitue une violation de vos droits de propriété intellectuelle,
|
||
veuillez nous contacter à l'adresse suivante : [adresse email].</p> <h2>7. Confidentialité et données personnelles</h2> <p>La collecte et le traitement des Données Personnelles des Utilisateurs sont régis par notre Politique de Confidentialité,
|
||
disponible à l'adresse suivante : <a href="#politique-confidentialite" class="text-blue-600 hover:underline">Politique de confidentialité</a>.</p> <h2>8. Limitation de responsabilité</h2> <h3>8.1 Disponibilité de l'Application</h3> <p>Geosector s'efforce de maintenir l'Application accessible 24 heures sur 24 et 7 jours sur 7. Cependant, l'accès peut être
|
||
temporairement suspendu, sans préavis, en raison de maintenance technique, de mise à jour ou pour toute autre raison.</p> <p>Geosector ne peut être tenu responsable de tout dommage résultant de l'indisponibilité temporaire de l'Application.</p> <h3>8.2 Contenus et services tiers</h3> <p>L'Application peut contenir des liens vers des sites web ou services tiers. Geosector n'exerce aucun contrôle sur ces sites et services
|
||
et n'assume aucune responsabilité quant à leur contenu ou leurs pratiques.</p> <h3>8.3 Limitation générale de responsabilité</h3> <p>Dans toute la mesure permise par la loi applicable, Geosector ne pourra être tenu responsable de tout dommage indirect,
|
||
spécial, accessoire, consécutif ou punitif, y compris les pertes de profits, de revenus, de données ou d'opportunités commerciales,
|
||
résultant de l'utilisation ou de l'impossibilité d'utiliser l'Application.</p> <p>La responsabilité totale de Geosector envers l'Utilisateur pour toute réclamation découlant des présentes CGU ne pourra excéder
|
||
le montant payé par l'Utilisateur à Geosector au cours des douze (12) mois précédant le fait générateur de la responsabilité.</p> <h2>9. Modifications des CGU</h2> <p>Geosector se réserve le droit de modifier les présentes CGU à tout moment. Les Utilisateurs seront informés des modifications
|
||
par le biais d'une notification dans l'Application ou par e-mail.</p> <p>Les modifications prendront effet à la date indiquée dans la notification. En continuant à utiliser l'Application après cette date,
|
||
l'Utilisateur accepte les CGU modifiées.</p> <p>Si l'Utilisateur n'accepte pas les modifications, il doit cesser d'utiliser l'Application et, le cas échéant, supprimer son Compte.</p> <h2>10. Résiliation</h2> <h3>10.1 Résiliation par l'Utilisateur</h3> <p>L'Utilisateur peut, à tout moment, cesser d'utiliser l'Application et supprimer son Compte en suivant la procédure prévue à cet effet
|
||
dans les paramètres de l'Application.</p> <h3>10.2 Résiliation par Geosector</h3> <p>Geosector peut, à sa discrétion, suspendre ou résilier l'accès de l'Utilisateur à l'Application en cas de violation des présentes CGU,
|
||
sans préjudice de tout autre droit ou recours.</p> <h3>10.3 Conséquences de la résiliation</h3> <p>En cas de résiliation, l'Utilisateur perd l'accès à son Compte et à toutes les Fonctionnalités de l'Application.
|
||
Les sections des présentes CGU relatives à la propriété intellectuelle, à la limitation de responsabilité et au règlement des litiges
|
||
survivront à la résiliation.</p> <h2>11. Dispositions spécifiques aux applications mobiles</h2> <h3>11.1 Application iOS (Apple App Store)</h3> <p>Si vous téléchargez l'Application via l'App Store d'Apple, vous reconnaissez et acceptez que :</p> <ul><li>Ces CGU sont conclues entre vous et Geosector, et non avec Apple</li> <li>Apple n'a aucune obligation de fournir des services de maintenance ou d'assistance concernant l'Application</li> <li>En cas de non-conformité de l'Application avec une garantie applicable, vous pouvez en informer Apple, qui pourra vous rembourser le prix d'achat</li> <li>Apple n'est pas responsable du traitement des réclamations ou de la responsabilité liée à l'Application</li> <li>En cas de réclamation d'un tiers selon laquelle l'Application enfreint ses droits de propriété intellectuelle, Apple n'est pas responsable de l'enquête, de la défense, du règlement et de la décharge de cette réclamation</li> <li>Vous devez vous conformer aux conditions d'utilisation de l'App Store d'Apple lors de l'utilisation de l'Application</li></ul> <h3>11.2 Application Android (Google Play)</h3> <p>Si vous téléchargez l'Application via Google Play, vous reconnaissez et acceptez que :</p> <ul><li>Ces CGU sont conclues entre vous et Geosector, et non avec Google</li> <li>L'utilisation de l'Application doit respecter les conditions d'utilisation de Google Play</li> <li>Google n'a aucune obligation de fournir des services de maintenance ou d'assistance concernant l'Application</li></ul> <h2>12. Dispositions diverses</h2> <h3>12.1 Droit applicable et juridiction compétente</h3> <p>Les présentes CGU sont régies par le droit français. Tout litige relatif à leur interprétation ou à leur exécution relève,
|
||
à défaut d'accord amiable, de la compétence exclusive des tribunaux français compétents.</p> <h3>12.2 Indépendance des clauses</h3> <p>Si une ou plusieurs dispositions des présentes CGU sont tenues pour non valides ou déclarées comme telles en application d'une loi,
|
||
d'un règlement ou à la suite d'une décision définitive d'une juridiction compétente, les autres stipulations garderont toute leur force
|
||
et leur portée.</p> <h3>12.3 Non-renonciation</h3> <p>Le fait pour Geosector de ne pas se prévaloir d'un manquement de l'Utilisateur à l'une quelconque des obligations visées dans les présentes CGU
|
||
ne saurait être interprété comme une renonciation à s'en prévaloir ultérieurement.</p> <h3>12.4 Communication</h3> <p>Toute notification ou communication dans le cadre des présentes CGU doit être adressée à Geosector par e-mail à l'adresse suivante :
|
||
[adresse email] ou par courrier postal à l'adresse suivante : [adresse postale].</p> <h2>13. Contact</h2> <p>Pour toute question concernant les présentes CGU, veuillez nous contacter à :</p> <p><strong>Geosector</strong><br/> E-mail : <a href="mailto:support@geosector.fr" class="text-blue-600 hover:underline">support@geosector.fr</a><br/> Adresse : [Adresse de l'entreprise]<br/> Téléphone : +33 (0)1 23 45 67 89</p></div></div></div></section></div>`);function ho(e,s){J(s,!1);let t=B(!1);function i(M){window.location.hash=M,window.scrollTo(0,0)}he(()=>{q(t,!0)}),ne();var o=mo(),n=c(o),a=c(n),u=c(a),r=c(u);let d;var f=m(r,2);let p;var v=m(n,2),h=c(v),b=c(h),w=c(b),k=c(w),g=c(k),_=m(k,84),A=m(c(_));ae((M,T,Z)=>{d=L(r,1,"text-4xl md:text-5xl font-bold mb-6 transition-all duration-700 text-[#002C66]",null,d,M),p=L(f,1,"text-xl max-w-3xl mx-auto transition-all duration-700 delay-300 text-[#002C66]",null,p,T),it(g,`Dernière mise à jour : ${Z??""}`)},[()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)}),()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)}),()=>new Date().toLocaleDateString("fr-FR",{year:"numeric",month:"long",day:"numeric"})],me),C("click",A,j(()=>i("politique-confidentialite"))),N(e,o),X()}var go=R(`<div class="min-h-screen relative"><section class="text-white py-12 relative"><div class="container mx-auto px-4"><div class="text-center"><h1>Mentions Légales</h1> <p>Informations juridiques relatives à notre site web et application mobile</p></div></div></section> <section class="py-16"><div class="container mx-auto px-4"><div class="max-w-4xl mx-auto"><div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg mb-10"><h2 class="text-2xl font-bold mb-6 text-[#002C66]">1. Éditeur du site et de l'application</h2> <div class="space-y-4"><p>Le site web et l'application mobile Geosector sont édités par :</p> <p class="font-semibold">Geosector</p> <p>SIRET : [Votre numéro SIRET]</p> <p>Adresse : [Votre adresse]</p> <p>Email : contact@geosector.fr</p> <p>Téléphone : [Votre numéro de téléphone]</p> <p>Directeur de la publication : [Nom du directeur de publication]</p></div></div> <div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg mb-10"><h2 class="text-2xl font-bold mb-6 text-[#002C66]">2. Hébergement</h2> <div class="space-y-4"><p>Le site web et l'application mobile Geosector sont hébergés par :</p> <p class="font-semibold">[Nom de l'hébergeur]</p> <p>Adresse : [Adresse de l'hébergeur]</p> <p>Site web : [Site web de l'hébergeur]</p> <p>Email : [Email de l'hébergeur]</p> <p>Téléphone : [Téléphone de l'hébergeur]</p></div></div> <div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg mb-10"><h2 class="text-2xl font-bold mb-6 text-[#002C66]">3. Propriété intellectuelle</h2> <div class="space-y-4"><p>L'ensemble du contenu du site web et de l'application mobile Geosector, incluant sans limitation les textes, graphiques, images, logos, icônes, photographies, est la propriété exclusive de Geosector et est protégé par les lois françaises et internationales relatives à la propriété intellectuelle.</p> <p>Toute reproduction, représentation, modification, publication, transmission, adaptation, totale ou partielle des éléments du site ou de l'application, quel que soit le moyen ou le procédé utilisé, est interdite sans autorisation écrite préalable de Geosector.</p> <p>Toute utilisation non autorisée des contenus, œuvres ou marques constitue une contrefaçon sanctionnée par le Code de la propriété intellectuelle.</p></div></div> <div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg mb-10"><h2 class="text-2xl font-bold mb-6 text-[#002C66]">4. Liens hypertextes</h2> <div class="space-y-4"><p>Le site web et l'application Geosector peuvent contenir des liens hypertextes vers d'autres sites internet ou applications.</p> <p>Geosector n'a pas la possibilité de vérifier le contenu des sites ainsi visités, et n'assumera en conséquence aucune responsabilité de ce fait.</p> <p>La création de liens hypertextes vers le site web ou l'application Geosector est soumise à l'accord préalable de l'éditeur.</p></div></div> <div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg mb-10"><h2 class="text-2xl font-bold mb-6 text-[#002C66]">5. Limitation de responsabilité</h2> <div class="space-y-4"><p>Geosector s'efforce d'assurer au mieux de ses possibilités l'exactitude et la mise à jour des informations diffusées sur son site web et son application mobile, dont elle se réserve le droit de corriger, à tout moment et sans préavis, le contenu.</p> <p>Toutefois, Geosector ne peut garantir l'exactitude, la précision ou l'exhaustivité des informations mises à disposition sur son site web et son application.</p> <p>En conséquence, Geosector décline toute responsabilité :</p> <ul class="list-disc pl-6 space-y-2"><li>Pour toute imprécision, inexactitude ou omission portant sur des informations disponibles sur le site web ou l'application ;</li> <li>Pour tous dommages résultant d'une intrusion frauduleuse d'un tiers ayant entraîné une modification des informations ou éléments mis à disposition sur le site web ou l'application ;</li> <li>Et plus généralement, pour tous dommages, directs ou indirects, qu'elles qu'en soient les causes, origines, natures ou conséquences, provoqués en raison de l'accès de quiconque au site web ou à l'application ou de l'impossibilité d'y accéder, ainsi que l'utilisation du site web ou de l'application et/ou du crédit accordé à une quelconque information provenant directement ou indirectement de ces derniers.</li></ul></div></div> <div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg mb-10"><h2 class="text-2xl font-bold mb-6 text-[#002C66]">6. Loi applicable et juridiction</h2> <div class="space-y-4"><p>Les présentes mentions légales sont régies par la loi française. En cas de litige, les tribunaux français seront seuls compétents.</p> <p>Pour toute question relative à l'application des présentes mentions légales, vous pouvez nous contacter à l'adresse email : contact@geosector.fr</p></div></div> <div class="bg-white bg-opacity-70 backdrop-blur-sm rounded-lg p-8 shadow-lg"><h2 class="text-2xl font-bold mb-6 text-[#002C66]">7. Modifications</h2> <div class="space-y-4"><p>Geosector se réserve le droit de modifier les présentes mentions légales à tout moment. L'utilisateur est invité à les consulter régulièrement.</p> <p> </p></div></div></div></div></section></div>`);function bo(e,s){J(s,!1);let t=B(!1);he(()=>{q(t,!0)}),ne();var i=go(),o=c(i),n=c(o),a=c(n),u=c(a);let r;var d=m(u,2);let f;var p=m(o,2),v=c(p),h=c(v),b=m(c(h),12),w=m(c(b),2),k=m(c(w),2),g=c(k);ae((_,A,M)=>{r=L(u,1,"text-4xl md:text-5xl font-bold mb-6 transition-all duration-700 text-[#002C66]",null,r,_),f=L(d,1,"text-xl max-w-3xl mx-auto transition-all duration-700 delay-300 text-[#002C66]",null,f,A),it(g,`Dernière mise à jour : ${M??""}`)},[()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)}),()=>({"translate-y-0":l(t),"opacity-100":l(t),"translate-y-10":!l(t),"opacity-0":!l(t)}),()=>new Date().toLocaleDateString("fr-FR",{year:"numeric",month:"long",day:"numeric"})],me),N(e,i),X()}var xo=R(`<div class="container mx-auto px-4 py-16 text-center"><h1 class="text-4xl font-bold mb-4">Page non trouvée</h1> <p class="mb-8">La page que vous recherchez n'existe pas.</p> <a href="/accueil" class="bg-blue-600 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Retour à l'accueil</a></div>`),wo=R('<div class="fixed inset-0 bg-gradient-to-t from-blue-900 to-white z-[-20]"><div class="absolute inset-0 z-[-10]"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"><pattern id="pattern-circles" x="0" y="0" width="50" height="50" patternUnits="userSpaceOnUse" patternContentUnits="userSpaceOnUse"><circle id="pattern-circle" cx="10" cy="10" r="5" fill="#FFF" opacity="0.1"></circle></pattern><rect id="rect" x="0" y="0" width="100%" height="100%" fill="url(#pattern-circles)"></rect></svg></div></div> <main><!> <div class="flex-grow"><!></div> <!></main> <!>',1);function _o(e,s){J(s,!1);let t=B("accueil"),i=B(!1);function o(){const g=window.location.pathname.slice(1)||"accueil";q(t,g),$t(l(t))}function n(g){g.detail.accepted?Ot():Bt(),q(i,!1)}he(async()=>(o(),document.addEventListener("click",g=>{const _=g.target.closest("a");if(!_||!_.href.startsWith(window.location.origin)||_.target||_.hasAttribute("download")||_.getAttribute("rel")==="external")return;g.preventDefault();const M=new URL(_.href).pathname;window.history.pushState({},"",M);const T=M.slice(1)||"accueil";q(t,T),$t(l(t))}),window.addEventListener("popstate",o),await Ci(),so()?(Ot(),Bt()):q(i,!0),()=>{window.removeEventListener("popstate",o)})),ne();var a=wo(),u=m(ri(a),2);let r;var d=c(u);Qi(d,{});var f=m(d,2),p=c(f);{var v=g=>{no(g,{})},h=(g,_)=>{{var A=T=>{lo(T,{})},M=(T,Z)=>{{var U=$=>{po($,{})},G=($,ge)=>{{var ze=ee=>{fo(ee,{})},ye=(ee,ue)=>{{var ce=H=>{ho(H,{})},Ge=(H,Pe)=>{{var be=Q=>{bo(Q,{})},je=Q=>{var ke=xo();N(Q,ke)};te(H,Q=>{l(t)==="mentions-legales"?Q(be):Q(je,!1)},Pe)}};te(ee,H=>{l(t)==="conditions-utilisation"?H(ce):H(Ge,!1)},ue)}};te($,ee=>{l(t)==="politique-confidentialite"?ee(ze):ee(ye,!1)},ge)}};te(T,$=>{l(t)==="contact"?$(U):$(G,!1)},Z)}};te(g,T=>{l(t)==="fonctionnalites"?T(A):T(M,!1)},_)}};te(p,g=>{l(t)==="accueil"?g(v):g(h,!1)})}var b=m(f,2);Xi(b,{});var w=m(u,2);{var k=g=>{to(g,{$$events:{consent:n}})};te(w,g=>{l(i)&&g(k)})}ae(g=>r=L(u,1,"flex flex-col min-h-screen relative",null,r,g),[()=>({"blur-effect":l(i)})],me),N(e,a),X()}Gi(_o,{target:document.getElementById("app")});
|