@silexlabs/silex-dashboard 1.5.0-canary.1 → 1.5.0-canary.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/DASHBOARD-ARCHITECTURE.md +1410 -0
  2. package/_site/css/connectors-e4ae24975f4df2e2bea5121337282d8f2201bb86dc8c041c9ef43c0c2d7a32a7.css +1 -0
  3. package/_site/css/fork-00fcb49f686e5d4a6d23a3c77ebc1563a99581e1fb3f270c6204538ab3d02f94.css +1 -0
  4. package/_site/css/fork-506e7c805e636be6225c35a11f5804b72cf41d7a6355aa64a5d7ddb7d66ea314.css +1 -0
  5. package/_site/css/fork-923d814802e46c2d0db0f71c5c488c616ca0016f340d8dae66b263ba7f1143bc.css +1 -0
  6. package/_site/css/index-2a63e02ab10ac924e626195148618b0b283ee7d663656afe25a806b4769f64ad.css +1 -0
  7. package/_site/css/index-38d10542f641eb789c11b589b95d0e6363e71978479fa5cddbec3da65774560c.css +1 -0
  8. package/_site/en/connectors/index.html +51 -26
  9. package/_site/en/fork/index.html +371 -0
  10. package/_site/en/index.html +30 -28
  11. package/_site/fr/connectors/index.html +52 -27
  12. package/_site/fr/fork/index.html +372 -0
  13. package/_site/fr/index.html +31 -29
  14. package/collections/fork/en.md +17 -0
  15. package/collections/fork/fr.md +17 -0
  16. package/package.json +2 -2
  17. package/silex/websites/default/meta.json +4 -0
  18. package/silex/websites/default/website.json +6 -0
  19. package/templates/connectors-en.html +66 -41
  20. package/templates/connectors-fr.html +66 -41
  21. package/templates/css/connectors-e4ae24975f4df2e2bea5121337282d8f2201bb86dc8c041c9ef43c0c2d7a32a7.css +1 -0
  22. package/templates/css/fork-00fcb49f686e5d4a6d23a3c77ebc1563a99581e1fb3f270c6204538ab3d02f94.css +1 -0
  23. package/templates/css/fork-506e7c805e636be6225c35a11f5804b72cf41d7a6355aa64a5d7ddb7d66ea314.css +1 -0
  24. package/templates/css/fork-923d814802e46c2d0db0f71c5c488c616ca0016f340d8dae66b263ba7f1143bc.css +1 -0
  25. package/templates/css/index-2a63e02ab10ac924e626195148618b0b283ee7d663656afe25a806b4769f64ad.css +1 -0
  26. package/templates/css/index-38d10542f641eb789c11b589b95d0e6363e71978479fa5cddbec3da65774560c.css +1 -0
  27. package/templates/fork-en.11tydata.mjs +117 -0
  28. package/templates/fork-en.html +412 -0
  29. package/templates/fork-fr.11tydata.mjs +117 -0
  30. package/templates/fork-fr.html +412 -0
  31. package/templates/{websites-en.11tydata.mjs → index-en.11tydata.mjs} +32 -32
  32. package/templates/{websites-en.html → index-en.html} +94 -92
  33. package/templates/{websites-fr.11tydata.mjs → index-fr.11tydata.mjs} +32 -32
  34. package/templates/{websites-fr.html → index-fr.html} +94 -92
  35. package/tina/config.ts +76 -0
  36. package/tina/tina-lock.json +1 -1
  37. package/_site/connectors/index.html +0 -278
  38. package/_site/css/connectors-1350f25629f7addac6970f5297f8aef050ba1c207b28c8a0e4a7b113246d69dc.css +0 -1
  39. package/_site/css/connectors-152b01dfacf0586ce2f3fb0ddbbf5a5bbcd181a48b4b20b275f837786b2889cd.css +0 -1
  40. package/_site/css/connectors-306649a254eff69e10db2fa5368e173e88e24449db25d65b7117ebfd5dbbcd31.css +0 -1
  41. package/_site/css/connectors-66fe82f10a7a257f59212e18bb384b019ffb12192fa3f748951da7d4428733b4.css +0 -1
  42. package/_site/css/connectors-748797d88cc32c0787052966e54e4f794629b8460d24f2aadac83c13899574fb.css +0 -1
  43. package/_site/css/connectors-87cf0f4b873d104a845dcafd5d80d4f8d482f8cea15f2412cd9655071dcb9ea8.css +0 -1
  44. package/_site/css/connectors-885e03b1611113e2363f7a86fba9aee867130a14836b3cc9c4714265708c1704.css +0 -1
  45. package/_site/css/connectors-9d0c9569a2ce8afaa4a30a0534b3d0597c761c7e0e5280dcbc966dc2b709e98e.css +0 -1
  46. package/_site/css/connectors-a8ae93c40b7c738a4514e47046a029afdcf74bb28a7724287e1350afac4fa60f.css +0 -1
  47. package/_site/css/connectors-c1d5f4c520a9a86d99b7201d30a8fe25a5779b7b2373b73262868f446fe3f855.css +0 -1
  48. package/_site/css/connectors-febcafaf261c0f23ca11fc13809f259c74dbdd50b6a47506ba295fdb99d1b4a4.css +0 -1
  49. package/_site/css/websites-19b822a8683767833f7656ff2df318ba13bed49f33d9bfc946ff619cf986b449.css +0 -1
  50. package/_site/css/websites-4b9b2b0a0a907b33eca109d50c2a3eee97f1955c742cef487110d21a0bbf8f50.css +0 -1
  51. package/_site/css/websites-7843a323acc9c4921d373250c5f647854910ea0913530659823fbe29844ee6b5.css +0 -1
  52. package/_site/css/websites-931c1ae713658c5aca51e25f5c43a79611c9a762dc38b989cc99ad4dbd4eda8e.css +0 -1
  53. package/_site/css/websites-c678e6ed7f508aa4b0e9218070d7235ed56f0eaea49350b30b849f4ef176cfb0.css +0 -1
  54. package/_site/css/websites-e6d63d0512032a2909a7f648cecfad311842ecba7bd03f94afc8639998e606f0.css +0 -1
  55. package/_site/websites/index.html +0 -360
  56. package/templates/connectors.html +0 -278
  57. package/templates/css/connectors-1350f25629f7addac6970f5297f8aef050ba1c207b28c8a0e4a7b113246d69dc.css +0 -1
  58. package/templates/css/connectors-152b01dfacf0586ce2f3fb0ddbbf5a5bbcd181a48b4b20b275f837786b2889cd.css +0 -1
  59. package/templates/css/connectors-306649a254eff69e10db2fa5368e173e88e24449db25d65b7117ebfd5dbbcd31.css +0 -1
  60. package/templates/css/connectors-66fe82f10a7a257f59212e18bb384b019ffb12192fa3f748951da7d4428733b4.css +0 -1
  61. package/templates/css/connectors-748797d88cc32c0787052966e54e4f794629b8460d24f2aadac83c13899574fb.css +0 -1
  62. package/templates/css/connectors-87cf0f4b873d104a845dcafd5d80d4f8d482f8cea15f2412cd9655071dcb9ea8.css +0 -1
  63. package/templates/css/connectors-885e03b1611113e2363f7a86fba9aee867130a14836b3cc9c4714265708c1704.css +0 -1
  64. package/templates/css/connectors-9d0c9569a2ce8afaa4a30a0534b3d0597c761c7e0e5280dcbc966dc2b709e98e.css +0 -1
  65. package/templates/css/connectors-a8ae93c40b7c738a4514e47046a029afdcf74bb28a7724287e1350afac4fa60f.css +0 -1
  66. package/templates/css/connectors-c1d5f4c520a9a86d99b7201d30a8fe25a5779b7b2373b73262868f446fe3f855.css +0 -1
  67. package/templates/css/connectors-febcafaf261c0f23ca11fc13809f259c74dbdd50b6a47506ba295fdb99d1b4a4.css +0 -1
  68. package/templates/css/websites-19b822a8683767833f7656ff2df318ba13bed49f33d9bfc946ff619cf986b449.css +0 -1
  69. package/templates/css/websites-4b9b2b0a0a907b33eca109d50c2a3eee97f1955c742cef487110d21a0bbf8f50.css +0 -1
  70. package/templates/css/websites-7843a323acc9c4921d373250c5f647854910ea0913530659823fbe29844ee6b5.css +0 -1
  71. package/templates/css/websites-931c1ae713658c5aca51e25f5c43a79611c9a762dc38b989cc99ad4dbd4eda8e.css +0 -1
  72. package/templates/css/websites-c678e6ed7f508aa4b0e9218070d7235ed56f0eaea49350b30b849f4ef176cfb0.css +0 -1
  73. package/templates/css/websites-e6d63d0512032a2909a7f648cecfad311842ecba7bd03f94afc8639998e606f0.css +0 -1
  74. package/templates/websites.html +0 -360
@@ -0,0 +1,412 @@
1
+ ---
2
+ permalink: "/{{lang}}/fork/"
3
+ lang: "en"
4
+ collection: "Fork"
5
+
6
+ ---
7
+ <!DOCTYPE html>
8
+ <html lang="">
9
+ <head>
10
+ <meta charset="UTF-8">
11
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
12
+ <meta name="generator" content="Silex v3.6.0-canary.2">
13
+ <link rel="stylesheet" href="/css/fork-00fcb49f686e5d4a6d23a3c77ebc1563a99581e1fb3f270c6204538ab3d02f94.css" />
14
+ <!-- font google -->
15
+ <link rel="preconnect" href="https://fonts.gstatic.com" />
16
+ <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;700&display=swap" rel="stylesheet">
17
+ {% render "alternate.liquid" languages: languages lang: lang page: page %}
18
+ <style>
19
+ .before-js > * {
20
+ visibility: hidden;
21
+ opacity: 0;
22
+ transition: opacity .5s ease;
23
+ }
24
+ .before-js[data-gjs-type] > *, /* This is only inside the editor, .before-js needs to be on the body */
25
+ .after-js > * {
26
+ visibility: visible;
27
+ opacity: 1;
28
+ }
29
+ .before-js:before {
30
+ content: 'Loading';
31
+ position: absolute;
32
+ top: 49%;
33
+ left: 49%;
34
+ }
35
+ .before-js[data-gjs-type]:before, /* This is only inside the editor, .before-js needs to be on the body */
36
+ .after-js:before {
37
+ content: none;
38
+ }
39
+ /*BTNS*/
40
+ .button, .pointer {
41
+ cursor: pointer!important}
42
+ .button{
43
+ min-width:110px;
44
+ }
45
+ details {
46
+ max-height: 2em;
47
+ display: block;
48
+ overflow: hidden;
49
+ transition: max-height .75s ease;
50
+ }
51
+ details[open] {
52
+ max-height: 40em;
53
+ }
54
+
55
+ /*BTNS*/
56
+ a {
57
+ text-decoration: none;
58
+ color:#8873FE;
59
+ }
60
+ a:hover {
61
+ text-decoration: underline;
62
+ }
63
+ .uppercase {
64
+ text-transform: uppercase;
65
+ }
66
+ .underline:hover{
67
+ text-decoration: underline;
68
+ text-decoration-thickness: from-font;
69
+ text-underline-position: under;
70
+ }
71
+ /*footer position*/
72
+ .main-min-height {
73
+ min-height: calc(100vh - 560px);
74
+ }
75
+ /*footer position*/
76
+ /*label*/
77
+ ::placeholder {
78
+ color: #8873FE;
79
+ }
80
+ input:focus {
81
+ border: 2px solid #9977FE;
82
+ background-color:#ffffff;
83
+ }
84
+ :focus {
85
+ outline: none;
86
+ }
87
+ /*label*/
88
+ .skeleton-anim:after {
89
+ width: 100%;
90
+ height: 100%;
91
+ position: absolute;
92
+ top: 0;
93
+ left: 0;
94
+ content: "";
95
+ background:
96
+ linear-gradient(0.25turn, transparent, rgba(255,255,255,.75), transparent),
97
+ linear-gradient(transparent, transparent),
98
+ radial-gradient(38px circle at 19px 19px, transparent 50%, transparent 51%),
99
+ linear-gradient(transparent, transparent);
100
+ background-repeat: no-repeat;
101
+ background-size: 315px 250px, 315px 180px, 100px 100px, 225px 30px;
102
+ background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
103
+ animation: loading 1.5s infinite;
104
+ }
105
+ @keyframes loading {
106
+ to {
107
+ background-position: 200% 0, 0 0, 0 190px, 50px 195px;
108
+ }
109
+ }
110
+ /*FX ANIMATIONS*/
111
+ /*scale-round-inside_pour-BTN*/
112
+ .fx-scale-round {
113
+ position:relative;
114
+ z-index: 10;
115
+ overflow: hidden;
116
+ }
117
+ .fx-scale-round::after {
118
+ content: "";
119
+ background: #ffffff;
120
+ position: absolute;
121
+ z-index: -1;
122
+ border-radius: 50%;
123
+ left: -50%;
124
+ right: -50%;
125
+ top: -100%;
126
+ bottom: -100%;
127
+ transform: scale(0, 0);
128
+ transform-origin: center bottom;
129
+ transition: all 0.3s ease-out;
130
+ }
131
+ .fx-scale-round:hover {
132
+ transform-origin: center bottom;
133
+ transform: scale(1.1);
134
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
135
+ }
136
+ .fx-scale-round:hover::after {
137
+ transform: scale(1, 1);
138
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
139
+ }
140
+ /*scale-round-inside_pour-BTN*/
141
+ /*scale*/
142
+ .fx-scale:hover {
143
+ transform-origin: center bottom;
144
+ transform: scale(1.1);
145
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
146
+ }
147
+ /*flash*/
148
+ .fx-flash:hover {
149
+ animation: flash-in .25s ;
150
+ }
151
+ /*flash-in animation*/
152
+ @keyframes flash-in{
153
+ 0% {
154
+ opacity:.25;
155
+ }
156
+ 100% {
157
+ opacity:1;
158
+ }
159
+ }
160
+ /*flash-in animation*/
161
+ /*FX ANIMATIONS*/
162
+ </style>
163
+ <script src="/js/vue.global.prod.js"></script>
164
+ <script src="/js/main.js"></script>
165
+ <script type="module">
166
+ const params = new URLSearchParams(window.location.search)
167
+ const CONNECTORS_PATH = '/connectors/'
168
+ const GITLAB_REPO = params.get('gitlabUrl')
169
+ const REDIRECT_PATH = `/fork/?gitlabUrl=${ GITLAB_REPO }`
170
+
171
+ window.addEventListener('load', () => {
172
+ const { createApp } = Vue
173
+ const { api, types } = silex
174
+ const { ConnectorType } = types
175
+ const { setServerUrl, getUser, logout } = api
176
+
177
+ const App = {
178
+ data() {
179
+ return {
180
+ loading: true,
181
+ loggedIn: false,
182
+ user: null,
183
+
184
+ message: '',
185
+ error: '',
186
+ }
187
+ },
188
+
189
+ async mounted() {
190
+ await this.init()
191
+ await this.initForkFromUrl()
192
+ },
193
+
194
+ methods: {
195
+ async init() {
196
+ try {
197
+ setServerUrl(window.location.origin)
198
+
199
+ const user = await getUser({ type: ConnectorType.STORAGE })
200
+ if (!user) {
201
+ this.openLogin()
202
+ return
203
+ }
204
+
205
+ user.picture = decodeURIComponent(user.picture).replace(/'/g, "\\'")
206
+ this.user = user
207
+ this.loggedIn = true
208
+ this.loading = false
209
+ } catch (error) {
210
+ this.loading = false
211
+ if (error.code === 401 || error.httpStatusCode === 401) {
212
+ this.openLogin()
213
+ } else {
214
+ this.updateStatus(error.message)
215
+ }
216
+ }
217
+ },
218
+
219
+ async initForkFromUrl() {
220
+ if (!GITLAB_REPO || !this.loggedIn) return
221
+
222
+ await this.forkWebsite(GITLAB_REPO)
223
+ },
224
+
225
+ async forkWebsite(gitlabUrl) {
226
+ try {
227
+ this.showLoading()
228
+ this.updateStatus('Cloning repository...')
229
+
230
+ const response = await fetch('/api/website/fork', {
231
+ method: 'POST',
232
+ headers: { 'Content-Type': 'application/json' },
233
+ body: JSON.stringify({ gitlabUrl }),
234
+ })
235
+
236
+ if (response.status === 401) {
237
+ this.openLogin()
238
+ return
239
+ }
240
+ if (!response.ok) {
241
+ let message = ''
242
+ try {
243
+ const body = await response.text()
244
+ message = JSON.parse(body).message
245
+ } catch (e) {}
246
+
247
+ console.error('ERROR:', {response, message})
248
+ throw new Error(
249
+ message
250
+ ? `${message}\n\n(Error ${response.status})`
251
+ : `API ${response.status} ${response.statusText}`
252
+ )
253
+ }
254
+ const data = await response.json()
255
+ const websiteId = data.websiteId || data.id
256
+
257
+ this.updateStatus('Project ready')
258
+ this.showSuccess()
259
+
260
+ setTimeout(() => {
261
+ this.openEditor(websiteId)
262
+ }, 1500)
263
+ } catch (error) {
264
+ this.updateStatus(error.message || 'Fork failed')
265
+ }
266
+ },
267
+
268
+ updateStatus(message) {
269
+ this.message = message.replace(/\n/g, '<br>')
270
+ //const el = document.querySelector('.fork-status-title')
271
+ //if (el) el.textContent = message
272
+ //console.log('updateStatus', {message, el})
273
+ },
274
+
275
+ showLoading() {
276
+ document.querySelector('.fork-loading')?.style.setProperty('display', 'block')
277
+ document.querySelector('.fork-success')?.style.setProperty('display', 'none')
278
+ document.querySelector('.fork-error')?.style.setProperty('display', 'none')
279
+ },
280
+
281
+ showSuccess() {
282
+ document.querySelector('.fork-loading')?.style.setProperty('display', 'none')
283
+ document.querySelector('.fork-success')?.style.setProperty('display', 'block')
284
+ },
285
+
286
+ showError(message) {
287
+ throw new Error('Useless method, pls remove')
288
+ this.error = message
289
+ document.querySelector('.fork-loading')?.style.setProperty('display', 'none')
290
+ document.querySelector('.fork-error')?.style.setProperty('display', 'block')
291
+
292
+ const msg = document.querySelector('.error-message')
293
+ if (msg) msg.textContent = message
294
+
295
+ const backBtn = document.querySelector('.error-back-btn')
296
+ if (backBtn) {
297
+ backBtn.onclick = () => this.openLogin()
298
+ }
299
+ console.log({message, msg, backBtn})
300
+ },
301
+
302
+ openEditor(id) {
303
+ const params = new URLSearchParams(window.location.search)
304
+ const lang = params.get('lang') || 'en'
305
+ window.location.href =
306
+ `/?id=${id}&lang=${lang}&connectorId=${this.user.storage.connectorId}&forked=${GITLAB_REPO}`
307
+ },
308
+
309
+ openLogin() {
310
+ const path = `/{{lang}}${CONNECTORS_PATH}?redirect=/{{lang}}${REDIRECT_PATH}`
311
+ if (window.location.pathname !== path) {
312
+ window.location.href = path
313
+ }
314
+ },
315
+
316
+ async logout() {
317
+ await logout({
318
+ type: ConnectorType.STORAGE,
319
+ connectorId: this.user.storage.connectorId,
320
+ })
321
+ window.location.reload()
322
+ },
323
+ },
324
+ }
325
+
326
+ document
327
+ .querySelectorAll('[v-text], [v-html]')
328
+ .forEach(el => (el.innerText = ''))
329
+
330
+ const app = createApp(App)
331
+ app.mount('.app')
332
+
333
+ setTimeout(() => {
334
+ document.querySelector('.before-js')?.classList.add('after-js')
335
+ }, 100)
336
+ })
337
+ </script>
338
+
339
+ <title>{% liquid
340
+ assign var_ik0i-2_393 = tina.homeConnection.edges | where: "", | first
341
+ assign var_ik0i-2_394 = var_ik0i-2_393.node.title
342
+ echo var_ik0i-2_394
343
+ %}</title>
344
+ <link rel="icon" href="/assets/favicon-32x32.png" />
345
+ <meta name="og:title" property="og:title" content="Silex Dashboard"/>
346
+ <link href="https://fonts.googleapis.com" rel="preconnect" ><link href="https://fonts.googleapis.com/css2" rel="preconnect" crossorigin ><link href="https://fonts.googleapis.com/css2?family=Ubuntu&display=swap" rel="stylesheet" ></head>
347
+ {% liquid
348
+ assign var_ik0i-2_390 = tina.settingsConnection.edges | where: "node.lang", page.lang | first
349
+ assign state_ik0i-958_ik0i-e8l061o7k5 = var_ik0i-2_390
350
+ %}
351
+ {% liquid
352
+ assign var_ik0i-2_391 = tina.forkConnection.edges | where: "node.lang", page.lang | first
353
+ assign var_ik0i-2_392 = var_ik0i-2_391.node
354
+ assign state_ik0i-958_ik0i-24xejc2n0xy = var_ik0i-2_392
355
+ %}<body id="ik0i-2" class="body loading app before-js"><HEADER id="igrg-2" class="menu-bar"><A href="/" id="igvu43-2"><img id="iel80b-2-2-2" src="/assets/picto-silex@3x.png" class="nav__logo"/></A><NAV id="i9jq-2" class="nav">{% liquid
356
+ assign var_iels-2_373 = tina.settingsConnection.edges | where: "node.lang", page.lang | first
357
+ assign var_iels-2_374 = var_iels-2_373.node.nav
358
+ %}
359
+ {% for state_iels-228___data in var_iels-2_374 %}
360
+ <a href="{% liquid
361
+ assign var_iels-2_375 = state_iels-228___data.url
362
+ echo var_iels-2_375
363
+ %}" id="iels-2" class="nav__item uppercase fx-flash nav_item--active" target="{% liquid
364
+ assign var_iels-2_376 = state_iels-228___data.target
365
+ echo var_iels-2_376
366
+ %}">{% liquid
367
+ assign var_iels-2_372 = state_iels-228___data.label
368
+ echo var_iels-2_372
369
+ %}</a>{% endfor %}</NAV>{% liquid
370
+ assign var_i2red7-2_379 = tina.languagesConnection.edges
371
+ %}
372
+ {% for state_i2red7-8291___data in var_i2red7-2_379 %}
373
+ <div id="i2red7-2" class="lang"><a href="{% liquid
374
+ assign var_iciz-2_378 = state_i2red7-8291___data.node.permalink
375
+ echo var_iciz-2_378
376
+ %}" id="iciz-2" class="lang__item nav__item uppercase">{% liquid
377
+ assign var_iciz-2_377 = state_i2red7-8291___data.node.label
378
+ echo var_iciz-2_377
379
+ %}</a></div>{% endfor %}<div id="i24ew-2" class="user__wrapper pointer" v-if="user" v-on:click="showMenu = !showMenu"><div id="i5xsbd-2" class="user-icon__wrapper" v-if="user" v-show="!showMenu || user.storage.disableLogout"><div id="i5wlbq-2" class="user-icon__image" v-if="user" v-show="!showMenu || user.storage.disableLogout" :style="{ backgroundImage: `url('${user?.picture}')`, backgroundRepeat: 'no-repeat', backgroundSize: 'contain', }"></div></div><div id="ic9eoa-2" class="" v-show="showMenu && !user.storage.disableLogout" v-on:click="logout"><div id="igv1rf-2" class="nav__item">Logout</div></div></div></HEADER><HEADER id="iy8ax3-2" class="bg-silex-purpel"><div id="iisz8f-2" class="section-top text-centered text-white"><h1 id="ic31o-2" class="title-40" v-if="!empty">{% liquid
380
+ assign var_ic31o-2_380 = state_ik0i-958_ik0i-24xejc2n0xy.hero_title
381
+ echo var_ic31o-2_380
382
+ %}</h1><p id="iyex8-2" class="subtitle-16" v-if="!empty">{% liquid
383
+ assign var_iyex8-2_381 = state_ik0i-958_ik0i-24xejc2n0xy.hero_subtitle
384
+ echo var_iyex8-2_381
385
+ %}</p></div></HEADER><MAIN id="iz63r-2" class="padding-normal main-min-height website-max-width margin-80-centered"><div id="i7ej6j-2" class="flex-between box-message text-white" v-if="error"><h3 id="iv0eyi-2" class="box-message-text" v-html="error">Insert your text here</h3><div id="i4656n-2" class="pointer button-bar__item--link text-white" v-on:click="error = null">{% liquid
386
+ assign var_i4656n-2_382 = state_ik0i-958_ik0i-24xejc2n0xy.message_dismiss
387
+ echo var_i4656n-2_382
388
+ %}</div></div><div id="ilteie-2" class="flex-between box-message text-white" v-if="message"><h3 id="i2d31v-2" class="box-message-text" v-html="message">Insert your text here</h3><div id="i2urco-2" class="rounded pointer button-bar__item--link text-white" v-on:click="message = null">{% liquid
389
+ assign var_i2urco-2_383 = state_ik0i-958_ik0i-24xejc2n0xy.message_dismiss
390
+ echo var_i2urco-2_383
391
+ %}</div></div></MAIN><FOOTER id="ilzpl-2" class="footer">{% liquid
392
+ assign var_isucae-2_389 = state_ik0i-958_ik0i-e8l061o7k5.node.footer_links
393
+ %}
394
+ {% for state_isucae-3308___data in var_isucae-2_389 %}
395
+ <div id="isucae-2" style="min-height:100px;" class="footer__column"><h3 href="" id="ipa5zg-2" class="footer__item">{% liquid
396
+ assign var_ipa5zg-2_384 = state_isucae-3308___data.title
397
+ echo var_ipa5zg-2_384
398
+ %}</h3>{% liquid
399
+ assign var_i0cyhf_386 = state_isucae-3308___data.columns
400
+ %}
401
+ {% for state_i2u9h4-2642___data in var_i0cyhf_386 %}
402
+ <a href="{% liquid
403
+ assign var_i0cyhf_387 = state_i2u9h4-2642___data.url
404
+ echo var_i0cyhf_387
405
+ %}" id="i0cyhf" class="footer__item" target="{% liquid
406
+ assign var_i0cyhf_388 = state_i2u9h4-2642___data.target
407
+ echo var_i0cyhf_388
408
+ %}">{% liquid
409
+ assign var_i0cyhf_385 = state_i2u9h4-2642___data.label
410
+ echo var_i0cyhf_385
411
+ %}</a>{% endfor %}</div>{% endfor %}</FOOTER></body>
412
+ </html>
@@ -0,0 +1,117 @@
1
+
2
+
3
+ export default async function (configData) {
4
+ const data = {
5
+ ...configData,
6
+ lang: 'fr',
7
+ }
8
+ const result = {}
9
+ try {
10
+ const response = await fetch(`http://localhost:4001/graphql`, {
11
+
12
+ headers: {
13
+ 'Content-Type': `application/json`,
14
+ },
15
+ method: 'POST',
16
+ body: JSON.stringify({
17
+ query: `query {
18
+ __typename
19
+ homeConnection {
20
+ __typename
21
+ edges {
22
+ __typename
23
+ node {
24
+ __typename
25
+ title
26
+
27
+ }
28
+
29
+ }
30
+
31
+ }
32
+ settingsConnection {
33
+ __typename
34
+ edges {
35
+ __typename
36
+ node {
37
+ __typename
38
+ nav {
39
+ __typename
40
+ label
41
+ url
42
+ target
43
+
44
+ }
45
+ footer_links {
46
+ __typename
47
+ title
48
+ columns {
49
+ __typename
50
+ label
51
+ url
52
+ target
53
+
54
+ }
55
+
56
+ }
57
+ lang
58
+
59
+ }
60
+
61
+ }
62
+
63
+ }
64
+ forkConnection {
65
+ __typename
66
+ edges {
67
+ __typename
68
+ node {
69
+ __typename
70
+ hero_title
71
+ hero_subtitle
72
+ lang
73
+
74
+ }
75
+
76
+ }
77
+
78
+ }
79
+ languagesConnection {
80
+ __typename
81
+ edges {
82
+ __typename
83
+ node {
84
+ __typename
85
+ label
86
+ permalink
87
+
88
+ }
89
+
90
+ }
91
+
92
+ }
93
+
94
+ }`,
95
+ })
96
+ })
97
+
98
+ if (!response.ok) {
99
+ throw new Error(`Error fetching graphql data: HTTP status code ${response.status}, HTTP status text: ${response.statusText}`)
100
+ }
101
+
102
+ const json = await response.json()
103
+
104
+ if (json.errors) {
105
+ throw new Error(`GraphQL error: \
106
+ > ${json.errors.map(e => e.message).join('\
107
+ > ')}`)
108
+ }
109
+
110
+ result['tina'] = json.data
111
+ } catch (e) {
112
+ console.error('11ty plugin for Silex: error fetching graphql data', e, 'tina', 'http://localhost:4001/graphql')
113
+ throw e
114
+ }
115
+ return result
116
+ }
117
+