templates/base.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html lang="fr">
  3.     <head>
  4.     <script>
  5.         (function() {
  6.             const userAgent = window.navigator.userAgent || window.navigator.vendor || window.opera;
  7.             const url = window.location.href;
  8.             // Désactivé: pas de redirection spécifique app/navigateur sur mobile
  9.             // if (userAgent.includes('Mobile') && (userAgent.includes('iPhone') || userAgent.includes('iPad')) && userAgent.includes('LinkedInApp')) {
  10.             //     window.location.href = 'x-safari-' + url;
  11.             //     return;
  12.             // }
  13.             // // Pour Android
  14.             // if (/android/i.test(navigator.userAgent)) {
  15.             //     window.location.href = `googlechrome://${window.location.href.replace(/^https?:\/\//, '')}`;
  16.             //     return;
  17.             // }
  18.             // var userAgent = navigator.userAgent || navigator.vendor || window.opera;
  19.             // // Détection WebView Android (nouvelle méthode)
  20.             // var isAndroidWebView = /; wv\)/.test(userAgent) || 
  21.             //                     /Android.*(WebView|wv)/.test(userAgent);
  22.             
  23.             // // Détection WebView iOS (méthode existante améliorée)
  24.             // var isIOSWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(userAgent);
  25.             
  26.             // if (isAndroidWebView || isIOSWebView) {
  27.             //     var url = window.location.href; 
  28.             //     window.location.href = "googlechrome://" + url.replace(/^https?:\/\//, ""); // Redirige vers Chrome sur Android
  29.                 
  30.             // }
  31.         })();
  32.     </script>
  33.         
  34.         <!-- Google Tag Manager -->
  35.         <script>
  36.             (function (w, d, s, l, i) {
  37. w[l] = w[l] || [];
  38. w[l].push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
  39. var f = d.getElementsByTagName(s)[0],
  40. j = d.createElement(s),
  41. dl = l != 'dataLayer' ? '&l=' + l : '';
  42. j.async = true;
  43. j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
  44. f.parentNode.insertBefore(j, f);
  45. })(window, document, 'script', 'dataLayer', 'GTM-M5WKRR9G');
  46.         </script>
  47.         <!-- End Google Tag Manager -->
  48.         <!-- Google tag (gtag.js) -->
  49.         <script async src="https://www.googletagmanager.com/gtag/js?id=G-GN99KS5KX3"></script>
  50.         <script>
  51.             window.dataLayer = window.dataLayer || [];
  52. function gtag() {
  53. dataLayer.push(arguments);
  54. }
  55. gtag('js', new Date());
  56. gtag('config', 'G-GN99KS5KX3');
  57.         </script>
  58.         {% set isTransparent = (isTransparent|default(false)) %}
  59.         <title>
  60.             {% block title %}
  61.                 WorkDispo: missions
  62.                 {{ 'now'|date('Y') }}
  63.                 sur toute la France | WorkDispo
  64.             {% endblock %}
  65.         </title>
  66.         <link rel="canonical" href="{{ app.request.getSchemeAndHttpHost() ~ app.request.getRequestUri()|split('?')[0]|replace({'/index.php': ''}) }}" />
  67.         {% block meta_date_desc %}
  68.             <script type="application/ld+json">
  69.                 {
  70.                                                                                             "@context" : "https://schema.org",
  71.                                                                                             "@type" : "Organization",
  72.                                                                                             "name" : "WorkDispo",
  73.                                                                                             "url" : "https://www.workdispo.com/",
  74.                                                                                             "logo" : "https://www.workdispo.com/images/logo.webp.svg"
  75.                                                                                         }
  76.             </script>
  77.         {% endblock %}
  78.         {% block meta %}
  79.             <meta name="robots" content="max-snippet:160">
  80.             <meta charset="utf-8">
  81.             <meta name="description" content="WorkDispo est une plateforme sans commission de mise en relation entre freelances et recruteurs de l’informatique. C’est 100% gratuit pour les freelances.">
  82.             <meta name="keywords" content="freelance, dispo, missions, it">
  83.             <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=3">
  84.             <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
  85.             <script type="text/javascript">
  86.                 (window.NREUM || (NREUM =
  87. {})).init = {
  88. ajax: {
  89. deny_list: ["bam.nr-data.net"]
  90. }
  91. };
  92. (window.NREUM || (NREUM =
  93. {})).loader_config = {
  94. licenseKey: "NRJS-8c6c895b97ea60d5ee0",
  95. applicationID: "1333848373"
  96. };
  97. window.NREUM || (NREUM =
  98. {}),
  99. __nr_require = function (t, e, n) {
  100. function r(n) {
  101. if (! e[n]) {
  102. var i = e[n] = {
  103. exports: {}
  104. };
  105. t[n][0].call(i.exports, function (e) {
  106. var i = t[n][1][e];
  107. return r(i || e)
  108. }, i, i.exports)
  109. }
  110. return e[n].exports
  111. }
  112. if ("function" == typeof __nr_require) 
  113. return __nr_require;
  114. for (var i = 0; i < n.length; i++) 
  115. r(n[i]);
  116. return r
  117. }({
  118. 1: [
  119. function (t, e, n) {
  120. function r() {}
  121. function i(t, e, n, r) {
  122. return function () {
  123. return s.recordSupportability("API/" + e + "/called"),
  124. o(t + e, [u.now()].concat(c(arguments)), n ? null : this, r),
  125. n ? void 0 : this
  126. }
  127. }
  128. var o = t("handle"),
  129. a = t(9),
  130. c = t(10),
  131. f = t("ee").get("tracer"),
  132. u = t("loader"),
  133. s = t(4),
  134. d = NREUM;
  135. "undefined" == typeof window.newrelic && (newrelic = d);
  136. var p = [
  137. "setPageViewName",
  138. "setCustomAttribute",
  139. "setErrorHandler",
  140. "finished",
  141. "addToTrace",
  142. "inlineHit",
  143. "addRelease"
  144. ],
  145. l = "api-",
  146. v = l + "ixn-";
  147. a(p, function (t, e) {
  148. d[e] = i(l, e, !0, "api")
  149. }),
  150. d.addPageAction = i(l, "addPageAction", !0),
  151. d.setCurrentRouteName = i(l, "routeName", !0),
  152. e.exports = newrelic,
  153. d.interaction = function () {
  154. return(new r).get()
  155. };
  156. var m = r.prototype = {
  157. createTracer: function (t, e) {
  158. var n = {},
  159. r = this,
  160. i = "function" == typeof e;
  161. return o(v + "tracer", [
  162. u.now(), t, n
  163. ], r),
  164. function () {
  165. if (f.emit((i ? "" : "no-") + "fn-start", [
  166. u.now(), r, i
  167. ], n), i) 
  168. try {
  169. return e.apply(this, arguments)
  170. }
  171.  catch (t) {
  172. throw f.emit("fn-err", [
  173. arguments, this, t
  174. ], n),
  175. t
  176. } finally {
  177. f.emit("fn-end", [u.now()], n)
  178. }
  179. }
  180. }
  181. };
  182. a("actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","), function (t, e) {
  183. m[e] = i(v, e)
  184. }),
  185. newrelic.noticeError = function (t, e) {
  186. "string" == typeof t && (t = new Error(t)),
  187. s.recordSupportability("API/noticeError/called"),
  188. o("err", [
  189. t,
  190. u.now(),
  191. !1,
  192. e
  193. ])
  194. }
  195. }, {}
  196. ],
  197. 2: [
  198. function (t, e, n) {
  199. function r(t) {
  200. if (NREUM.init) {
  201. for (var e = NREUM.init, n = t.split("."), r = 0; r < n.length - 1; r++) 
  202. if (e = e[n[r]], "object" != typeof e) 
  203. return;
  204. return e = e[n[n.length - 1]]
  205. }
  206. }
  207. e.exports = {
  208. getConfiguration: r
  209. }
  210. }, {}
  211. ],
  212. 3: [
  213. function (t, e, n) {
  214. var r = !1;
  215. try {
  216. var i = Object.defineProperty({}, "passive", {
  217. get: function () {
  218. r = !0
  219. }
  220. });
  221. window.addEventListener("testPassive", null, i),
  222. window.removeEventListener("testPassive", null, i)
  223. } catch (o) {}e.exports = function (t) {
  224. return r ? {
  225. passive: !0,
  226. capture: !! t
  227. } : !! t
  228. }
  229. }, {}
  230. ],
  231. 4: [
  232. function (t, e, n) {
  233. function r(t, e) {
  234. var n = [
  235. a, t, {
  236. name: t
  237. },
  238. e
  239. ];
  240. return o("storeMetric", n, null, "api"),
  241. n
  242. }
  243. function i(t, e) {
  244. var n = [
  245. c, t, {
  246. name: t
  247. },
  248. e
  249. ];
  250. return o("storeEventMetrics", n, null, "api"),
  251. n
  252. }
  253. var o = t("handle"),
  254. a = "sm",
  255. c = "cm";
  256. e.exports = {
  257. constants: {
  258. SUPPORTABILITY_METRIC: a,
  259. CUSTOM_METRIC: c
  260. },
  261. recordSupportability: r,
  262. recordCustom: i
  263. }
  264. }, {}
  265. ],
  266. 5: [
  267. function (t, e, n) {
  268. function r() {
  269. return c.exists && performance.now ? Math.round(performance.now()) : (o = Math.max((new Date).getTime(), o)) - a
  270. }
  271. function i() {
  272. return o
  273. }
  274. var o = (new Date).getTime(),
  275. a = o,
  276. c = t(11);
  277. e.exports = r,
  278. e.exports.offset = a,
  279. e.exports.getLastTimestamp = i
  280. }, {}
  281. ],
  282. 6: [
  283. function (t, e, n) {
  284. function r(t, e) {
  285. var n = t.getEntries();
  286. n.forEach(function (t) {
  287. "first-paint" === t.name ? l("timing", [
  288. "fp", Math.floor(t.startTime)
  289. ]) : "first-contentful-paint" === t.name && l("timing", [
  290. "fcp", Math.floor(t.startTime)
  291. ])
  292. })
  293. }
  294. function i(t, e) {
  295. var n = t.getEntries();
  296. if (n.length > 0) {
  297. var r = n[n.length - 1];
  298. if (u && u < r.startTime) 
  299. return;
  300. var i = [r],
  301. o = a({});
  302. o && i.push(o),
  303. l("lcp", i)
  304. }
  305. }
  306. function o(t) {
  307. t.getEntries().forEach(function (t) {
  308. t.hadRecentInput || l("cls", [t])
  309. })
  310. }
  311. function a(t) {
  312. var e = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
  313. if (e) 
  314. return e.type && (t["net-type"] = e.type),
  315. e.effectiveType && (t["net-etype"] = e.effectiveType),
  316. e.rtt && (t["net-rtt"] = e.rtt),
  317. e.downlink && (t["net-dlink"] = e.downlink),
  318. t
  319. }
  320. function c(t) {
  321. if (t instanceof y && !w) {
  322. var e = Math.round(t.timeStamp),
  323. n = {
  324. type: t.type
  325. };
  326. a(n),
  327. e <= v.now() ? n.fid = v.now() - e : e > v.offset && e <= Date.now() ? (e -= v.offset, n.fid = v.now() - e) : e = v.now(),
  328. w = !0,
  329. l("timing", ["fi", e, n])
  330. }
  331. }
  332. function f(t) {
  333. "hidden" === t && (u = v.now(), l("pageHide", [u]))
  334. }
  335. if (!("init" in NREUM && "page_view_timing" in NREUM.init && "enabled" in NREUM.init.page_view_timing && NREUM.init.page_view_timing.enabled === !1)) {
  336. var u,
  337. s,
  338. d,
  339. p,
  340. l = t("handle"),
  341. v = t("loader"),
  342. m = t(8),
  343. g = t(3),
  344. y = NREUM.o.EV;
  345. if ("PerformanceObserver" in window && "function" == typeof window.PerformanceObserver) {
  346. s = new PerformanceObserver(r);
  347. try {
  348. s.observe({entryTypes: ["paint"]})
  349. } catch (h) {}d = new PerformanceObserver(i);
  350. try {
  351. d.observe({entryTypes: ["largest-contentful-paint"]})
  352. } catch (h) {}p = new PerformanceObserver(o);
  353. try {
  354. p.observe({
  355. type: "layout-shift",
  356. buffered: !0
  357. })
  358. } catch (h) {}
  359. }
  360. if ("addEventListener" in document) {
  361. var w = !1,
  362. b = [
  363. "click",
  364. "keydown",
  365. "mousedown",
  366. "pointerdown",
  367. "touchstart"
  368. ];
  369. b.forEach(function (t) {
  370. document.addEventListener(t, c, g(!1))
  371. })
  372. }
  373. m(f)
  374. }
  375. }, {}
  376. ],
  377. 7: [
  378. function (t, e, n) {
  379. function r(t, e) {
  380. if (!i) 
  381. return !1;
  382. if (t !== i) 
  383. return !1;
  384. if (! e) 
  385. return !0;
  386. if (!o) 
  387. return !1;
  388. for (var n = o.split("."), r = e.split("."), a = 0; a < r.length; a++) 
  389. if (r[a] !== n[a]) 
  390. return !1;
  391. return !0
  392. }
  393. var i = null,
  394. o = null,
  395. a = /Version\/(\S+)\s+Safari/;
  396. if (navigator.userAgent) {
  397. var c = navigator.userAgent,
  398. f = c.match(a);
  399. f && c.indexOf("Chrome") === -1 && c.indexOf("Chromium") === -1 && (i = "Safari", o = f[1])
  400. }
  401. e.exports = {
  402. agent: i,
  403. version: o,
  404. match: r
  405. }
  406. }, {}
  407. ],
  408. 8: [
  409. function (t, e, n) {
  410. function r(t) {
  411. function e() {
  412. t(c && document[c] ? document[c] : document[o] ? "hidden" : "visible")
  413. }
  414. "addEventListener" in document && a && document.addEventListener(a, e, i(!1))
  415. }
  416. var i = t(3);
  417. e.exports = r;
  418. var o,
  419. a,
  420. c;
  421. "undefined" != typeof document.hidden ? (o = "hidden", a = "visibilitychange", c = "visibilityState") : "undefined" != typeof document.msHidden ? (o = "msHidden", a = "msvisibilitychange") : "undefined" != typeof document.webkitHidden && (o = "webkitHidden", a = "webkitvisibilitychange", c = "webkitVisibilityState")
  422. }, {}
  423. ],
  424. 9: [
  425. function (t, e, n) {
  426. function r(t, e) {
  427. var n = [],
  428. r = "",
  429. o = 0;
  430. for (r in t) 
  431. i.call(t, r) && (n[o] = e(r, t[r]), o += 1);
  432. return n
  433. }
  434. var i = Object.prototype.hasOwnProperty;
  435. e.exports = r
  436. }, {}
  437. ],
  438. 10: [
  439. function (t, e, n) {
  440. function r(t, e, n) {
  441. e || (e = 0),
  442. "undefined" == typeof n && (n = t ? t.length : 0);
  443. for (var r = -1, i = n - e || 0, o = Array(i < 0 ? 0 : i); ++ r < i;) 
  444. o[r] = t[e + r];
  445. return o
  446. }
  447. e.exports = r
  448. }, {}
  449. ],
  450. 11: [
  451. function (t, e, n) {
  452. e.exports = {
  453. exists: "undefined" != typeof window.performance && window.performance.timing && "undefined" != typeof window.performance.timing.navigationStart
  454. }
  455. }, {}
  456. ],
  457. ee: [
  458. function (t, e, n) {
  459. function r() {}
  460. function i(t) {
  461. function e(t) {
  462. return t && t instanceof r ? t : t ? u(t, f, a) : a()
  463. }
  464. function n(n, r, i, o, a) {
  465. if (a !== !1 && (a =! 0), !l.aborted || o) {
  466. t && a && t(n, r, i);
  467. for (var c = e(i), f = m(n), u = f.length, s = 0; s < u; s++) 
  468. f[s].apply(c, r);
  469. var p = d[w[n]];
  470. return p && p.push([b, n, r, c]),
  471. c
  472. }
  473. }
  474. function o(t, e) {
  475. h[t] = m(t).concat(e)
  476. }
  477. function v(t, e) {
  478. var n = h[t];
  479. if (n) 
  480. for (var r = 0; r < n.length; r++) 
  481. n[r] === e && n.splice(r, 1)
  482. }
  483. function m(t) {
  484. return h[t] || []
  485. }
  486. function g(t) {
  487. return p[t] = p[t] || i(n)
  488. }
  489. function y(t, e) {
  490. l.aborted || s(t, function (t, n) {
  491. e = e || "feature",
  492. w[n] = e,
  493. e in d || (d[e] =[])
  494. })
  495. }
  496. var h = {},
  497. w = {},
  498. b = {
  499. on: o,
  500. addEventListener: o,
  501. removeEventListener: v,
  502. emit: n,
  503. get: g,
  504. listeners: m,
  505. context: e,
  506. buffer: y,
  507. abort: c,
  508. aborted: !1
  509. };
  510. return b
  511. }
  512. function o(t) {
  513. return u(t, f, a)
  514. }
  515. function a() {
  516. return new r
  517. }
  518. function c() {
  519. (d.api || d.feature) && (l.aborted =! 0, d = l.backlog =
  520. {})
  521. }
  522. var f = "nr@context",
  523. u = t("gos"),
  524. s = t(9),
  525. d = {},
  526. p = {},
  527. l = e.exports = i();
  528. e.exports.getOrSetContext = o,
  529. l.backlog = d
  530. }, {}
  531. ],
  532. gos: [
  533. function (t, e, n) {
  534. function r(t, e, n) {
  535. if (i.call(t, e)) 
  536. return t[e];
  537. var r = n();
  538. if (Object.defineProperty && Object.keys) 
  539. try {
  540. return Object.defineProperty(t, e, {
  541. value: r,
  542. writable: !0,
  543. enumerable: !1
  544. }),
  545. r
  546. }
  547.  catch (o) {}
  548. return t[e] = r,
  549. r
  550. }
  551. var i = Object.prototype.hasOwnProperty;
  552. e.exports = r
  553. }, {}
  554. ],
  555. handle: [
  556. function (t, e, n) {
  557. function r(t, e, n, r) {
  558. i.buffer([t], r),
  559. i.emit(t, e, n)
  560. }
  561. var i = t("ee").get("handle");
  562. e.exports = r,
  563. r.ee = i
  564. }, {}
  565. ],
  566. id: [
  567. function (t, e, n) {
  568. function r(t) {
  569. var e = typeof t;
  570. return ! t || "object" !== e && "function" !== e ? -1 : t === window ? 0 : a(t, o, function () {
  571. return i++
  572. })
  573. }
  574. var i = 1,
  575. o = "nr@id",
  576. a = t("gos");
  577. e.exports = r
  578. }, {}
  579. ],
  580. loader: [
  581. function (t, e, n) {
  582. function r() {
  583. if (!M ++) {
  584. var t = T.info = NREUM.info,
  585. e = m.getElementsByTagName("script")[0];
  586. if (setTimeout(u.abort, 3e4), !(t && t.licenseKey && t.applicationID && e)) 
  587. return u.abort();
  588. f(x, function (e, n) {
  589. t[e] || (t[e] = n)
  590. });
  591. var n = a();
  592. c("mark", [
  593. "onload",
  594. n + T.offset
  595. ], null, "api"),
  596. c("timing", ["load", n]);
  597. var r = m.createElement("script");
  598. 0 === t.agent.indexOf("http://") || 0 === t.agent.indexOf("https://") ? r.src = t.agent : r.src = l + "://" + t.agent,
  599. e.parentNode.insertBefore(r, e)
  600. }
  601. }
  602. function i() {
  603. "complete" === m.readyState && o()
  604. }
  605. function o() {
  606. c("mark", [
  607. "domContent",
  608. a() + T.offset
  609. ], null, "api")
  610. }
  611. var a = t(5),
  612. c = t("handle"),
  613. f = t(9),
  614. u = t("ee"),
  615. s = t(7),
  616. d = t(2),
  617. p = t(3),
  618. l = d.getConfiguration("ssl") === !1 ? "http" : "https",
  619. v = window,
  620. m = v.document,
  621. g = "addEventListener",
  622. y = "attachEvent",
  623. h = v.XMLHttpRequest,
  624. w = h && h.prototype,
  625. b = !1;
  626. NREUM.o = {
  627. ST: setTimeout,
  628. SI: v.setImmediate,
  629. CT: clearTimeout,
  630. XHR: h,
  631. REQ: v.Request,
  632. EV: v.Event,
  633. PR: v.Promise,
  634. MO: v.MutationObserver
  635. };
  636. var E = "" + location,
  637. x = {
  638. beacon: "bam.nr-data.net",
  639. errorBeacon: "bam.nr-data.net",
  640. agent: "js-agent.newrelic.com/nr-1216.min.js"
  641. },
  642. O = h && w && w[g] && !/CriOS/.test(navigator.userAgent),
  643. T = e.exports = {
  644. offset: a.getLastTimestamp(),
  645. now: a,
  646. origin: E,
  647. features: {},
  648. xhrWrappable: O,
  649. userAgent: s,
  650. disabled: b
  651. };
  652. if (! b) {
  653. t(1),
  654. t(6),
  655. m[g] ? (m[g]("DOMContentLoaded", o, p(!1)), v[g]("load", r, p(!1))) : (m[y]("onreadystatechange", i), v[y]("onload", r)),
  656. c("mark", [
  657. "firstbyte", a.getLastTimestamp()
  658. ], null, "api");
  659. var M = 0
  660. }
  661. }, {}
  662. ],
  663. "wrap-function": [
  664. function (t, e, n) {
  665. function r(t, e) {
  666. function n(e, n, r, f, u) {
  667. function nrWrapper() {
  668. var o,
  669. a,
  670. s,
  671. p;
  672. try {
  673. a = this,
  674. o = d(arguments),
  675. s = "function" == typeof r ? r(o, a) : r || {}
  676. } catch (l) {
  677. i([
  678. l,
  679. "",
  680. [
  681. o, a, f
  682. ],
  683. s
  684. ], t)
  685. }
  686. c(n + "start", [
  687. o, a, f
  688. ], s, u);
  689. try {
  690. return p = e.apply(a, o)
  691. } catch (v) {
  692. throw c(n + "err", [
  693. o, a, v
  694. ], s, u),
  695. v
  696. } finally {
  697. c(n + "end", [
  698. o, a, p
  699. ], s, u)
  700. }
  701. }
  702. return a(e) ? e : (n || (n = ""), nrWrapper[p] = e, o(e, nrWrapper, t), nrWrapper)
  703. }
  704. function r(t, e, r, i, o) {
  705. r || (r = "");
  706. var c,
  707. f,
  708. u,
  709. s = "-" === r.charAt(0);
  710. for (u = 0; u < e.length; u++) 
  711. f = e[u],
  712. c = t[f],
  713. a(c) || (t[f] = n(c, s ? f + r : r, i, f, o))
  714. }
  715. function c(n, r, o, a) {
  716. if (!v || e) {
  717. var c = v;
  718. v = !0;
  719. try {
  720. t.emit(n, r, o, e, a)
  721. } catch (f) {
  722. i([
  723. f, n, r, o
  724. ], t)
  725. }
  726. v = c
  727. }
  728. }
  729. return t || (t = s),
  730. n.inPlace = r,
  731. n.flag = p,
  732. n
  733. }
  734. function i(t, e) {
  735. e || (e = s);
  736. try {
  737. e.emit("internal-error", t)
  738. } catch (n) {}
  739. }
  740. function o(t, e, n) {
  741. if (Object.defineProperty && Object.keys) 
  742. try {
  743. var r = Object.keys(t);
  744. return r.forEach(function (n) {
  745. Object.defineProperty(e, n, {
  746. get: function () {
  747. return t[n]
  748. },
  749. set: function (e) {
  750. return t[n] = e,
  751. e
  752. }
  753. })
  754. }),
  755. e
  756. }
  757.  catch (o) {
  758. i([o], n)
  759. }
  760. for (var a in t) 
  761. l.call(t, a) && (e[a] = t[a]);
  762. return e
  763. }
  764. function a(t) {
  765. return !(t && t instanceof Function && t.apply && ! t[p])
  766. }
  767. function c(t, e) {
  768. var n = e(t);
  769. return n[p] = t,
  770. o(t, n, s),
  771. n
  772. }
  773. function f(t, e, n) {
  774. var r = t[e];
  775. t[e] = c(r, n)
  776. }
  777. function u() {
  778. for (var t = arguments.length, e = new Array(t), n = 0; n < t; ++ n) 
  779. e[n] = arguments[n];
  780. return e
  781. }
  782. var s = t("ee"),
  783. d = t(10),
  784. p = "nr@original",
  785. l = Object.prototype.hasOwnProperty,
  786. v = !1;
  787. e.exports = r,
  788. e.exports.wrapFunction = c,
  789. e.exports.wrapInPlace = f,
  790. e.exports.argsToArray = u
  791. }, {}
  792. ]
  793. }, {}, ["loader"]);
  794.             </script>
  795.             <meta property="og:image" content="{{ absolute_url(asset('images/logo_freelance_new.png')) }}">
  796.             <meta property="og:image:secure_url" content="{{ absolute_url(asset('images/logo_freelance_new.png')) }}">
  797.             <meta property="og:title" content="Offres d’emploi et missions freelance sur WorkDispo"/>
  798.             <meta property="og:type" content="WorkDispo"/>
  799.             <meta property="og:url" content="{{ app.request.getBaseURL() }}"/>
  800.             <meta name="Content-Language" content="fr">
  801.             <meta name="author" content="www.workdispo.com">
  802.             <meta name="revisit-after" content="revisit-after">
  803.             <meta name="pragma" content="no-cache">
  804.             <meta name="classification" content="WorkDispo: des missions sans commission">
  805.             <meta property="og:site_name" data-js-id="meta-og_site_name" content="WorkDispo">
  806.             <meta http-equiv="Cache-Control" content="max-age=31536000">
  807.         {% endblock %}
  808.         <link rel="apple-touch-icon" sizes="180x180" href="{{ asset('favicon-wd.png') }}">
  809.         <link rel="icon" type="image/png" sizes="32x32" href="{{ asset('favicon_32.png') }}">
  810.         <link rel="icon" type="image/png" sizes="16x16" href="{{ asset('favicon_16.png') }}">
  811.         <link rel="manifest" href="{{ asset('site.webmanifest') }}">
  812.         <link rel='dns-prefetch' href='//www.google.com'/>
  813.         <link rel='dns-prefetch' href='//fonts.googleapis.com'/>
  814.         <link rel="stylesheet" href="{{ absolute_url(asset('css/style.min.css')) }}">
  815.         <link rel="stylesheet" href="{{ absolute_url(asset('css/colors/blue.css')) }}">
  816.         <link rel="canonical" href="{{ app.request.uri }}"/>
  817.         {% block stylesheets %}
  818.             {{ encore_entry_link_tags('app') }}
  819.         {% endblock %}
  820.         <style>
  821.             /*.termsfeed-com---nb .cc-nb-title {*/
  822.             /*    color: red !important;*/
  823.             /*}*/
  824.             .termsfeed-com---nb .cc-cp-foot-byline {
  825.                 display: none !important;
  826.             }
  827.             .termsfeed-com---nb button,
  828.             .cc-cp-foot-save {
  829.                 background-color: #2a41e8 !important;
  830.             }
  831.             .termsfeed-com---nb button.cc-nb-changep {
  832.                 background-color: #eaeaea !important;
  833.             }
  834.             .termsfeed-com---pc-dialog input[type="checkbox"].cc-custom-checkbox {
  835.                 position: relative !important;
  836.             }
  837.             .termsfeed-com---pc-dialog .cc-pc-head-lang-select {
  838.                 display: none !important;
  839.             }
  840.             .termsfeed-com---palette-light.termsfeed-com---nb {
  841.                 background-color: #f2f2f2;
  842.                 color: #111;
  843.                 border-radius: 0.8rem !important;
  844.             }
  845.             .termsfeed-com---nb .cc-nb-main-container {
  846.                 padding: 1rem !important;
  847.             }
  848.             .termsfeed-com---nb .cc-nb-title {
  849.                 font-size: 19px !important;
  850.                 font-weight: 600;
  851.             }
  852.             .termsfeed-com---nb .cc-nb-text {
  853.                 font-size: 12px !important;
  854.                 margin: 0 0 1.25rem;
  855.             }
  856.             .mobileshow {
  857.                 display: none;
  858.             }
  859.             @media screen and(max-width: 500px) {
  860.                 .mobileshow {
  861.                     display: block;
  862.                 }
  863.                 #logo {
  864.                     transform: translateY(10px);
  865.                 }
  866.                 .termsfeed-com---nb-simple {
  867.                     display: none !important;
  868.                 }
  869.             }
  870.         </style>
  871.         {# NAV DISPONIBILITY #}
  872.         <style>
  873.             .nav-disponibility ul li ul {
  874.                 top: inherit !important;
  875.             }
  876.             .nav-disponibility ul ul:after {
  877.                 border-bottom: 5px solid #ffffff !important;
  878.             }
  879.             .nav-disponibility ul ul {
  880.                 background-color: #ffffff !important;
  881.             }
  882.             .nav-disponibility ul ul.dropdown-nav ul.dropdown-nav ul.dropdown-nav li:hover a,
  883.             #navigation ul ul.dropdown-nav ul.dropdown-nav li:hover a,
  884.             #navigation ul ul.dropdown-nav li:hover a {
  885.                 color: #aaa !important;
  886.             }
  887.             body .nav-disponibility ul ul {
  888.                 margin-top: inherit !important;
  889.             }
  890.             #navigation ul li a:after,
  891.             #navigation ul ul li a:after {
  892.                 content: none;
  893.             }
  894.             #navigation ul ul.dropdown-nav li a {
  895.                 color: #000000 !important;
  896.             }
  897.         </style>
  898.         {# COOKIES CONCENT #}
  899.         <style>
  900.             @media screen and(min-width: 600px) {
  901.                 .termsfeed-com---nb-simple {
  902.                     max-width: 25% !important;
  903.                 }
  904.             }
  905.             @media screen and (max-width: 600px) {
  906.                 .termsfeed-com---nb-simple {
  907.                     max-width: 100% !important;
  908.                 }
  909.             }
  910.             @media screen and(max-width: 500px) {
  911.                 .termsfeed-com---palette-light.termsfeed-com---nb {
  912.                     display: none !important;
  913.                 }
  914.                 #header-container {
  915.                     position: sticky !important;
  916.                     top: 0; /* Spécifiez la distance par rapport au haut de la fenêtre */
  917.                     /*z-index: 1000; !* Définissez un index de position pour empiler l'élément au-dessus des autres contenus *!*/
  918.                     max-height: calc(100vh - 50px); /* Ajoutez cette ligne pour spécifier la hauteur maximale de l'élément */
  919.                     /*overflow-y: auto; !* Ajoutez cette ligne pour activer le défilement vertical si le contenu dépasse la hauteur maximale *!*/
  920.                 }
  921.                 /*#header .header-widget {*/
  922.                 /*    border: none !important;*/
  923.                 /*    padding: 0 !important;*/
  924.                 /*}*/
  925.                 #header .mmenu-trigger {
  926.                     margin: 0 -16px 0 15px !important;
  927.                 }
  928.                 #logo img {
  929.                     max-width: 170px !important;
  930.                 }
  931.                 .btn-inscription-mobile {
  932.                     display: block !important;
  933.                 }
  934.                 .simplebar-content {
  935.                     padding-bottom: 0 !important;
  936.                 }
  937.             }
  938.         </style>
  939.     </head>
  940.     <body>
  941.         <!-- Google Tag Manager (noscript) -->
  942.         <noscript>
  943.             <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M5WKRR9G" height="0" width="0" style="display:none;visibility:hidden"></iframe>
  944.         </noscript>
  945.         <!-- End Google Tag Manager (noscript) -->
  946.         <div id="wrapper">
  947.             <div id="browserRedirect" style="display:none;">
  948.                 <a id="redirectLink" href="" target="_blank">Cliquez ici si vous n'êtes pas redirigé automatiquement</a>
  949.             </div>
  950.             {% include 'common/header.html.twig' %}
  951.             {% block body %}{% endblock %}
  952.             {% include 'common/modal/complete_cv_modal.html.twig' %}
  953.             {% include 'common/modal/package_other.html.twig' %}
  954.             {% include 'common/footer.html.twig' %}
  955.         </div>
  956.         <!-- Global site tag (gtag.js) - Google Analytics -->
  957.         <script defer src="https://www.googletagmanager.com/gtag/js?id=G-25WK3Q7QHY"></script>
  958.         <script defer>
  959.             window.dataLayer = window.dataLayer || [];
  960. function gtag() {
  961. dataLayer.push(arguments);
  962. }
  963. gtag('js', new Date());
  964. gtag('config', 'G-25WK3Q7QHY');
  965.         </script>
  966.         <script src="{{ absolute_url(asset('js/jquery-3.6.0.min.js')) }}"></script>
  967.         <script src="{{ absolute_url(asset('js/jquery-migrate-3.3.2.min.js')) }}"></script>
  968.         <script src="{{ absolute_url(asset('js/mmenu.min.js')) }}"></script>
  969.         <script src="{{ absolute_url(asset('js/tippy.all.min.js')) }}"></script>
  970.         <script defer src="{{ absolute_url(asset('js/simplebar.min.js')) }}"></script>
  971.         <script defer src="{{ absolute_url(asset('js/bootstrap-slider.min.js')) }}"></script>
  972.         <script src="{{ absolute_url(asset('js/bootstrap-select.min.js')) }}?v={{ random() }}"></script>
  973.         <script src="{{ absolute_url(asset('js/snackbar.js')) }}"></script>
  974.         <script src="{{ absolute_url(asset('js/clipboard.min.js')) }}"></script>
  975.         <script defer src="{{ absolute_url(asset('js/counterup.min.js')) }}"></script>
  976.         <script defer src="{{ absolute_url(asset('js/magnific-popup.min.js')) }}"></script>
  977.         <script defer src="{{ absolute_url(asset('js/slick.min.js')) }}"></script>
  978.         <script src="{{ absolute_url(asset('js/custom.min.js')) }}"></script>
  979.         <script defer type="text/javascript" src="https://www.termsfeed.com/public/cookie-consent/4.0.0/cookie-consent.js" charset="UTF-8"></script>
  980.         <script defer type="text/javascript" charset="UTF-8">
  981.             document.addEventListener('DOMContentLoaded', function () {
  982. cookieconsent.run({
  983. "notice_banner_type": "simple",
  984. "consent_type": "express",
  985. "palette": "light",
  986. "language": "fr",
  987. "page_load_consent_levels": ["strictly-necessary"],
  988. "notice_banner_reject_button_hide": false,
  989. "preferences_center_close_button_hide": false,
  990. "page_refresh_confirmation_buttons": false
  991. });
  992. });
  993.         </script>
  994.         {% block javascripts %}
  995.             {{ encore_entry_script_tags('app') }}
  996.         {% endblock %}
  997.         <script type="text/javascript">
  998.             _linkedin_partner_id = "7188001";
  999. window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
  1000. window._linkedin_data_partner_ids.push(_linkedin_partner_id);
  1001.         </script>
  1002.         <script type="text/javascript">
  1003.             (function (l) {
  1004. if (! l) {
  1005. window.lintrk = function (a, b) {
  1006. window.lintrk.q.push([a, b])
  1007. };
  1008. window.lintrk.q = []
  1009. }
  1010. var s = document.getElementsByTagName("script")[0];
  1011. var b = document.createElement("script");
  1012. b.type = "text/javascript";
  1013. b.async = true;
  1014. b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
  1015. s.parentNode.insertBefore(b, s);
  1016. })(window.lintrk);
  1017.         </script>
  1018.         <noscript>
  1019.             <img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=7188001&fmt=gif"/>
  1020.         </noscript>
  1021.     </body>
  1022. </html>