@silexlabs/silex-dashboard 1.0.40 → 1.0.44

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 (83) hide show
  1. package/.gitmodules +2 -2
  2. package/11ty/eleventy.config.mjs +62 -0
  3. package/README.md +8 -2
  4. package/collections/connectors/en.md +70 -0
  5. package/collections/connectors/fr.md +72 -0
  6. package/collections/home/en.md +57 -0
  7. package/{pages/fr/index.md → collections/home/fr.md} +20 -21
  8. package/collections/languages/en.json +5 -0
  9. package/collections/languages/fr.json +5 -0
  10. package/collections/settings/en.json +127 -0
  11. package/collections/settings/fr.json +131 -0
  12. package/package.json +17 -8
  13. package/silex/client-config.js +24 -0
  14. package/{.silex.js → silex/server-config.js} +8 -16
  15. package/templates/connectors-en.11tydata.mjs +56 -0
  16. package/templates/connectors-en.html +440 -0
  17. package/templates/connectors-fr.11tydata.mjs +56 -0
  18. package/templates/connectors-fr.html +440 -0
  19. package/templates/css/connectors-61bd21c2345101e48cc530cacf3afc0156ce7e089fcef3a34f853a537f0c55f2.css +1 -0
  20. package/templates/css/websites-4b9b2b0a0a907b33eca109d50c2a3eee97f1955c742cef487110d21a0bbf8f50.css +1 -0
  21. package/templates/websites-en.11tydata.mjs +108 -0
  22. package/templates/websites-en.html +478 -0
  23. package/templates/websites-fr.11tydata.mjs +108 -0
  24. package/templates/websites-fr.html +478 -0
  25. package/tina/config.ts +258 -0
  26. package/tina/tina-lock.json +1 -0
  27. package/.eleventy.js +0 -11
  28. package/.silex-client.js +0 -22
  29. package/_data/languages.json +0 -7
  30. package/_includes/api-connectors.js.html +0 -96
  31. package/_includes/api-websites.js.html +0 -189
  32. package/_includes/connectors.html +0 -253
  33. package/_includes/websites.html +0 -548
  34. package/_silex/old/assets/alex-hoyau.jpg +0 -0
  35. package/_silex/old/assets/alex-small.jpg +0 -0
  36. package/_silex/old/assets/empty-projects.gif +0 -0
  37. package/_silex/old/assets/gitlab.svg +0 -13
  38. package/_silex/old/assets/picto-silex.png +0 -0
  39. package/_silex/old/assets/silex-icon-2018@200px.png +0 -0
  40. package/_silex/old/meta.json +0 -1
  41. package/_silex/old/website.json +0 -1
  42. package/_site/assets/alex-small.jpg +0 -0
  43. package/_site/assets/bg-purpel-silex.webp +0 -0
  44. package/_site/assets/bg-silex-purpel.webp +0 -0
  45. package/_site/assets/empty-projects-sos.gif +0 -0
  46. package/_site/assets/gitlab.svg +0 -13
  47. package/_site/assets/logo-silex.svg +0 -1
  48. package/_site/assets/picto-silex@3x.png +0 -0
  49. package/_site/assets/silex-dashboard.png +0 -0
  50. package/_site/assets/silex-icon-2018@200px.png +0 -0
  51. package/_site/css/connectors.css +0 -1
  52. package/_site/css/websites.css +0 -1
  53. package/_site/en/connectors/index.html +0 -376
  54. package/_site/en/index.html +0 -795
  55. package/_site/fr/connectors/index.html +0 -376
  56. package/_site/fr/index.html +0 -795
  57. package/assets/alex-small.jpg +0 -0
  58. package/assets/bg-purpel-silex.webp +0 -0
  59. package/assets/bg-silex-purpel.webp +0 -0
  60. package/assets/empty-projects-sos.gif +0 -0
  61. package/assets/favicon-32x32.png +0 -0
  62. package/assets/gitlab.svg +0 -13
  63. package/assets/logo-silex.svg +0 -1
  64. package/assets/picto-silex@3x.png +0 -0
  65. package/assets/silex-dashboard.png +0 -0
  66. package/assets/silex-icon-2018@200px.png +0 -0
  67. package/pages/connectors.css.liquid +0 -4
  68. package/pages/en/connectors.md +0 -4
  69. package/pages/en/en.json +0 -72
  70. package/pages/en/index.md +0 -28
  71. package/pages/fr/connectors.md +0 -5
  72. package/pages/fr/fr.json +0 -72
  73. package/pages/pages.11tydata.js +0 -5
  74. package/pages/websites.css.liquid +0 -4
  75. /package/{_data → 11ty/_data}/api-translations.json +0 -0
  76. /package/{_data → 11ty/_data}/site.js +0 -0
  77. /package/{_includes → 11ty/_includes}/alternate.liquid +0 -0
  78. /package/{_silex/old → templates}/assets/bg-purpel-silex.webp +0 -0
  79. /package/{_silex/old → templates}/assets/bg-silex-purpel.webp +0 -0
  80. /package/{_silex/old → templates}/assets/empty-projects-sos.gif +0 -0
  81. /package/{_site → templates}/assets/favicon-32x32.png +0 -0
  82. /package/{_silex/old → templates}/assets/logo-silex.svg +0 -0
  83. /package/{_silex/old → templates}/assets/picto-silex@3x.png +0 -0
@@ -0,0 +1,440 @@
1
+ ---
2
+ permalink: "/{{ lang }}/connectors/"
3
+ lang: "fr"
4
+ collection: "Connectors"
5
+
6
+ ---
7
+ <!DOCTYPE html>
8
+ <html lang="">
9
+ <head>
10
+ <meta charset="UTF-8">
11
+ <link rel="stylesheet" href="/css/connectors-61bd21c2345101e48cc530cacf3afc0156ce7e089fcef3a34f853a537f0c55f2.css" />
12
+ <!-- font google -->
13
+ <link rel="preconnect" href="https://fonts.gstatic.com" />
14
+ <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;700&display=swap" rel="stylesheet">
15
+ {% render "alternate.liquid" languages: languages lang: lang page: page %}
16
+ <style>
17
+ .before-js > * {
18
+ visibility: hidden;
19
+ opacity: 0;
20
+ transition: opacity .5s ease;
21
+ }
22
+ .before-js[data-gjs-type] > *, /* This is only inside the editor, .before-js needs to be on the body */
23
+ .after-js > * {
24
+ visibility: visible;
25
+ opacity: 1;
26
+ }
27
+ .before-js:before {
28
+ content: 'Loading';
29
+ position: absolute;
30
+ top: 49%;
31
+ left: 49%;
32
+ }
33
+ .before-js[data-gjs-type]:before, /* This is only inside the editor, .before-js needs to be on the body */
34
+ .after-js:before {
35
+ content: none;
36
+ }
37
+ /*BTNS*/
38
+ .button, .pointer {
39
+ cursor: pointer!important}
40
+ .button{
41
+ min-width:110px;
42
+ }
43
+ /*BTNS*/
44
+ a {
45
+ text-decoration: none;
46
+ color:#8873FE;
47
+ }
48
+ a:hover {
49
+ text-decoration: underline;
50
+ }
51
+ .uppercase {
52
+ text-transform: uppercase;
53
+ }
54
+ .underline:hover{
55
+ text-decoration: underline;
56
+ text-decoration-thickness: from-font;
57
+ text-underline-position: under;
58
+ }
59
+ /*footer position*/
60
+ .main-min-height {
61
+ min-height: calc(100vh - 560px);
62
+ }
63
+ /*footer position*/
64
+ /*label*/
65
+ ::placeholder {
66
+ color: #8873FE;
67
+ }
68
+ input:focus {
69
+ border: 2px solid #9977FE;
70
+ background-color:#ffffff;
71
+ }
72
+ :focus {
73
+ outline: none;
74
+ }
75
+ /*label*/
76
+ .skeleton-anim:after {
77
+ width: 100%;
78
+ height: 100%;
79
+ position: absolute;
80
+ top: 0;
81
+ left: 0;
82
+ content: "";
83
+ background:
84
+ linear-gradient(0.25turn, transparent, rgba(255,255,255,.75), transparent),
85
+ linear-gradient(transparent, transparent),
86
+ radial-gradient(38px circle at 19px 19px, transparent 50%, transparent 51%),
87
+ linear-gradient(transparent, transparent);
88
+ background-repeat: no-repeat;
89
+ background-size: 315px 250px, 315px 180px, 100px 100px, 225px 30px;
90
+ background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
91
+ animation: loading 1.5s infinite;
92
+ }
93
+ @keyframes loading {
94
+ to {
95
+ background-position: 200% 0, 0 0, 0 190px, 50px 195px;
96
+ }
97
+ }
98
+ /*FX ANIMATIONS*/
99
+ /*scale-round-inside_pour-BTN*/
100
+ .fx-scale-round {
101
+ position:relative;
102
+ z-index: 10;
103
+ overflow: hidden;
104
+ }
105
+ .fx-scale-round::after {
106
+ content: "";
107
+ background: #ffffff;
108
+ position: absolute;
109
+ z-index: -1;
110
+ border-radius: 50%;
111
+ left: -50%;
112
+ right: -50%;
113
+ top: -100%;
114
+ bottom: -100%;
115
+ transform: scale(0, 0);
116
+ transform-origin: center bottom;
117
+ transition: all 0.3s ease-out;
118
+ }
119
+ .fx-scale-round:hover {
120
+ transform-origin: center bottom;
121
+ transform: scale(1.1);
122
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
123
+ }
124
+ .fx-scale-round:hover::after {
125
+ transform: scale(1, 1);
126
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
127
+ }
128
+ /*scale-round-inside_pour-BTN*/
129
+ /*scale*/
130
+ .fx-scale:hover {
131
+ transform-origin: center bottom;
132
+ transform: scale(1.1);
133
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
134
+ }
135
+ /*flash*/
136
+ .fx-flash:hover {
137
+ animation: flash-in .25s ;
138
+ }
139
+ /*flash-in animation*/
140
+ @keyframes flash-in{
141
+ 0% {
142
+ opacity:.25;
143
+ }
144
+ 100% {
145
+ opacity:1;
146
+ }
147
+ }
148
+ /*flash-in animation*/
149
+ /*FX ANIMATIONS*/
150
+ </style>
151
+ <script src="/js/vue.global.prod.js"></script>
152
+ <script src="/js/main.js"></script>
153
+ <script type="module">
154
+ console.log('xxxxxx')
155
+ const CONNECTORS_PATH = '/connectors/'
156
+ window.addEventListener('load', function() {
157
+ console.log('xxxxxx')
158
+ const { createApp } = Vue;
159
+ const { api, constants, types } = silex;
160
+ const {
161
+ ConnectorType,
162
+ } = types
163
+ const {
164
+ setServerUrl,
165
+ getUser,
166
+ logout,
167
+ websiteDelete,
168
+ websiteDuplicate,
169
+ websiteList,
170
+ websiteCreate,
171
+ websiteMetaWrite,
172
+ } = api
173
+ function toSafeId(name) {
174
+ return name.replace(/[/\\?%*:|"<>]/g, '_')
175
+ }
176
+
177
+ const App = {
178
+ data() {
179
+ return {
180
+ websites: [],
181
+ newWebsiteName: '',
182
+ showCreationForm: false,
183
+ error: null,
184
+ message: null,
185
+ loggedIn: false,
186
+ loading: true,
187
+ storage: null,
188
+ user: null,
189
+ showMenu: false,
190
+ empty: false,
191
+ }
192
+ },
193
+ mounted() {
194
+ this.init()
195
+ },
196
+
197
+ methods: {
198
+ async init() {
199
+ try {
200
+ // Init Silex server path
201
+ // Go up one level because of the language prefix
202
+ setServerUrl(window.location.origin)
203
+ // Start
204
+ const user = await getUser({type: ConnectorType.STORAGE})
205
+ // Escape single quotes in the picture URL and decode the picture URL
206
+ user.picture = decodeURIComponent(user.picture).replace(/'/g, "\\'")
207
+ if(user) {
208
+ this.user = user
209
+ this.loggedIn = true
210
+ this.websites = await websiteList({connectorId: this.user.storage.connectorId})
211
+ this.empty = this.websites.length === 0
212
+ this.loading = false
213
+ } else {
214
+ this.openLogin()
215
+ }
216
+ } catch (error) {
217
+ console.error(error)
218
+ this.loading = false
219
+ if(error.code === 401 || error.httpStatusCode === 401) {
220
+ this.loggedIn = false
221
+ this.openLogin()
222
+ } else {
223
+ this.error = `{{ api-translations[lang]["Failed to start dashboard"] }} - ${error.message}`
224
+ this.message = ''
225
+ }
226
+ }
227
+ },
228
+
229
+ openLogin(id, lang) {
230
+ //throw new Error('debug')
231
+ const path = `/{{lang}}${CONNECTORS_PATH}`
232
+ console.log(window.location.pathname, window.location.path, path)
233
+ if(window.location.pathname === path) return
234
+ window.open(path, '_self')
235
+ },
236
+
237
+ openEditor(id, lang) {
238
+ window.open(`/?id=${id}&lang=${lang}&connectorId=${this.user.storage.connectorId}`, '_self')
239
+ },
240
+
241
+ async logout() {
242
+ await logout({
243
+ type: ConnectorType.STORAGE,
244
+ connectorId: this.user.storage.connectorId,
245
+ })
246
+ window.location.reload()
247
+ },
248
+
249
+ async createWebsite() {
250
+ try {
251
+ if (!this.newWebsiteName) throw new Error('{{ api-translations[lang]["You need to provide a website name"] }}')
252
+ this.loading = true
253
+ const websiteId = toSafeId(this.newWebsiteName)
254
+ const result = await websiteCreate({
255
+ websiteId,
256
+ data: {
257
+ name: this.newWebsiteName,
258
+ imageUrl: null,
259
+ },
260
+ connectorId: this.user.storage.connectorId
261
+ })
262
+ this.message = '{{ api-translations[lang]["Website created successfully"] }}'
263
+ this.error = ''
264
+ this.newWebsiteName = ''
265
+ this.showCreationForm = false;
266
+ this.websites = await websiteList({connectorId: this.user.storage.connectorId})
267
+ this.empty = this.websites.length === 0
268
+ this.loading = false
269
+ return result
270
+ } catch (error) {
271
+ this.loading = false
272
+ console.error(error)
273
+ this.error = `{{ api-translations[lang]["Failed to create website"] }} - ${error.message}`
274
+ this.message = ''
275
+ }
276
+ },
277
+
278
+ async deleteWebsite(websiteId) {
279
+ const ok = confirm('{{ api-translations[lang]["Deleting a website? Are your sure? Really?"] }}')
280
+ if (!ok) return
281
+ this.loading = true
282
+ try {
283
+ const result = await websiteDelete({websiteId, connectorId: this.user.storage.connectorId})
284
+ this.message = '{{ api-translations[lang]["Website deleted successfully"] }}'
285
+ this.error = ''
286
+ this.websites = await websiteList({connectorId: this.user.storage.connectorId})
287
+ this.empty = this.websites.length === 0
288
+ this.loading = false
289
+ return result
290
+ } catch (error) {
291
+ this.loading = false
292
+ this.error = `{{ api-translations[lang]["Failed to delete website"] }} - ${error.message}`
293
+ this.message = ''
294
+ }
295
+ },
296
+
297
+ async duplicateWebsite(websiteId) {
298
+ this.loading = true
299
+ try {
300
+ await websiteDuplicate({websiteId, connectorId: this.user.storage.connectorId, data: { name }})
301
+ this.error = ''
302
+ this.websites = await websiteList({connectorId: this.user.storage.connectorId})
303
+ this.message = '{{ api-translations[lang]["Website duplicated successfully"] }}'
304
+ this.empty = this.websites.length === 0
305
+ this.loading = false
306
+ } catch (error) {
307
+ this.loading = false
308
+ this.error = `{{ api-translations[lang]["Failed to duplicate website"] }} - ${error.message}`
309
+ this.message = ''
310
+ }
311
+ },
312
+
313
+ async renameWebsite(websiteId) {
314
+ const website = this.websites.find(w => w.websiteId === websiteId)
315
+ const name = prompt('{{ api-translations[lang]["New name for this website"] }}', website.name)
316
+ if (!name) return
317
+ this.loading = true
318
+ try {
319
+ const result = await websiteMetaWrite({websiteId, connectorId: this.user.storage.connectorId, data: { name }})
320
+ this.message = '{{ api-translations[lang]["Website renamed successfully"] }}'
321
+ this.error = ''
322
+ this.websites = await websiteList({connectorId: this.user.storage.connectorId})
323
+ this.empty = this.websites.length === 0
324
+ this.loading = false
325
+ return result
326
+ } catch (error) {
327
+ this.loading = false
328
+ this.error = `{{ api-translations[lang]["Failed to rename website"] }} - ${error.message}`
329
+ this.message = ''
330
+ }
331
+ },
332
+ },
333
+ };
334
+ // Prepare elements for vue
335
+ document.querySelectorAll('[v-text], [v-html]')
336
+ .forEach(el => el.innerText = '')
337
+
338
+ // Create the app
339
+ const app = createApp(App);
340
+
341
+ // Suppress "v-text will override element children" warning
342
+ app.config.compilerOptions.directiveTransforms = {
343
+ text: false,
344
+ }
345
+
346
+ // Mount the app
347
+ app.mount('.app');
348
+
349
+
350
+ // Remove loading
351
+ setTimeout(() => {
352
+ document.querySelector('.before-js').classList.add('after-js')
353
+ }, 100)
354
+ })
355
+ </script>
356
+
357
+ <title>Silex Dashboard</title>
358
+ <link rel="icon" href="/assets/favicon-32x32.png" />
359
+ <meta name="og:title" property="og:title" content="Silex Dashboard"/>
360
+ <link href="https://www.googleapis.com" rel="preconnect" ><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin ><link href="https://www.googleapis.com/css?family=Ubuntu&display=swap" rel="stylesheet" ></head>
361
+ <body id="i2hcfw" class="body app before-js"><A id="ixzhcr" href="/" class="button button-bar__item--secondary">{{ api-translations[lang]["Back to home"] }}</A><div id="imawg3" class="bg-silex-purpel">{% liquid
362
+ assign var_imgx81_241 = tina.connectorsConnection.edges | where: "node.lang", page.lang | first
363
+ assign var_imgx81_242 = var_imgx81_241.node
364
+ assign state_imgx81-1985_imgx81-7uhkrqd2giq = var_imgx81_242
365
+ %}<div id="imgx81" class=""><div id="iikf0s" class="box box_login"><div id="ie0dxn" class="text-centered"><img id="ior0hl" src="/assets/logo-silex.svg"/><p id="it2175" class="subtitle-16">{% liquid
366
+ assign var_it2175_195 = state_imgx81-1985_imgx81-7uhkrqd2giq.subtitle
367
+ echo var_it2175_195
368
+ %}</p><div id="ilq8ui" class="text-centered">{% liquid
369
+ assign var_ilq8ui_196 = state_imgx81-1985_imgx81-7uhkrqd2giq.help
370
+ echo var_ilq8ui_196
371
+ %}</div></div><h3 id="iqc1xf" class="margin-top">{% liquid
372
+ assign var_iqc1xf_197 = state_imgx81-1985_imgx81-7uhkrqd2giq.recommended
373
+ echo var_iqc1xf_197
374
+ %}</h3><div id="in62y2">{% liquid
375
+ assign var_isqe61_218 = state_imgx81-1985_imgx81-7uhkrqd2giq.connectors
376
+ %}
377
+ {% for state_isqe61-589___data in var_isqe61_218 %}
378
+ {% liquid
379
+ assign var_isqe61_216 = forloop.index0
380
+ assign var_isqe61_217 = "0"
381
+ %}
382
+ {% if var_isqe61_216 <= var_isqe61_217 %}
383
+ <div id="isqe61" class="">{% liquid
384
+ assign var_i0vhjr_211 = state_isqe61-589___data.background_color
385
+ assign state_i0vhjr-6879_i0vhjr-uop2xr4ta4 = var_i0vhjr_211
386
+ %}
387
+ {% liquid
388
+ assign var_i0vhjr_212 = state_isqe61-589___data.color
389
+ assign state_i0vhjr-6879_i0vhjr-q0yr34th38p = var_i0vhjr_212
390
+ %}<a id="i0vhjr" href="{% liquid
391
+ assign var_i0vhjr_213 = state_isqe61-589___data.auth_url
392
+ echo var_i0vhjr_213
393
+ %}" class="connector__card" data-style="{% liquid
394
+ assign var_i0vhjr_214 = "background: " | append: state_i0vhjr-6879_i0vhjr-uop2xr4ta4 | append: "; color: " | append: state_i0vhjr-6879_i0vhjr-q0yr34th38p | append: ";"
395
+ echo var_i0vhjr_214
396
+ %}" title="{% liquid
397
+ assign var_i0vhjr_215 = state_isqe61-589___data.description | strip_html
398
+ echo var_i0vhjr_215
399
+ %}"><div id="io3lid" class="button-bar__item__icon">{% liquid
400
+ assign var_io3lid_209 = state_isqe61-589___data.icon
401
+ echo var_io3lid_209
402
+ %}</div><div id="i87asw" class="connector__description">{% liquid
403
+ assign var_i87asw_210 = state_isqe61-589___data.text
404
+ echo var_i87asw_210
405
+ %}</div></a></div>{% endif %}{% endfor %}</div><h3 id="i8w75b" class="margin-30">{% liquid
406
+ assign var_i8w75b_219 = state_imgx81-1985_imgx81-7uhkrqd2giq.advanced_users
407
+ echo var_i8w75b_219
408
+ %}</h3><div id="igp4xl">{% liquid
409
+ assign var_id9k25_240 = state_imgx81-1985_imgx81-7uhkrqd2giq.connectors
410
+ %}
411
+ {% for state_isqe61-589___data in var_id9k25_240 %}
412
+ {% liquid
413
+ assign var_id9k25_238 = forloop.index0
414
+ assign var_id9k25_239 = "0"
415
+ %}
416
+ {% if var_id9k25_238 > var_id9k25_239 %}
417
+ <div id="id9k25" href="" class="">{% liquid
418
+ assign var_irgt6z_233 = state_isqe61-589___data.background_color
419
+ assign state_i0vhjr-6879_i0vhjr-uop2xr4ta4 = var_irgt6z_233
420
+ %}
421
+ {% liquid
422
+ assign var_irgt6z_234 = state_isqe61-589___data.color
423
+ assign state_i0vhjr-6879_i0vhjr-q0yr34th38p = var_irgt6z_234
424
+ %}<a href="{% liquid
425
+ assign var_irgt6z_235 = state_isqe61-589___data.auth_url
426
+ echo var_irgt6z_235
427
+ %}" id="irgt6z" class="connector__card" data-style="{% liquid
428
+ assign var_irgt6z_236 = "background: " | append: state_i0vhjr-6879_i0vhjr-uop2xr4ta4 | append: "; color: " | append: state_i0vhjr-6879_i0vhjr-q0yr34th38p | append: ";"
429
+ echo var_irgt6z_236
430
+ %}" title="{% liquid
431
+ assign var_irgt6z_237 = state_isqe61-589___data.description | strip_html
432
+ echo var_irgt6z_237
433
+ %}"><div class="button-bar__item__icon">{% liquid
434
+ assign var_iwt3h3_231 = state_isqe61-589___data.icon
435
+ echo var_iwt3h3_231
436
+ %}</div><div class="connector__description">{% liquid
437
+ assign var_incxlr_232 = state_isqe61-589___data.text
438
+ echo var_incxlr_232
439
+ %}</div></a></div>{% endif %}{% endfor %}</div><div id="i3cney" class="button-bar"><a id="iacshy" class="button big-button connector__card" v-if="!loading" :key="index" :style="{ backgroundColor: connector.background, color: connector.color }" v-for="(connector, index) in connectors" v-on-click="openLogin(connector)"><div id="iiwn36"><div class="button-bar__item__icon" :style="`background: url('${connector.icon}'); background-repeat: no-repeat; background-size: contain;`"></div><div id="if4gvb" class="" v-text="connector.displayName">Name<br/></div></div><div id="isndui">This connector is about blablabla<br/></div></a></div></div><div id="i9msnk" class="text-white top-space-20" v-if="error" v-text="message" :test="message">Insert your text here</div><div id="i6akll" class="button button--tertiary text-centered" v-if="error" v-on:click="logout()">{{ api-translations[lang]["Logout"] }}</div></div></div></body>
440
+ </html>
@@ -0,0 +1 @@
1
+ * { box-sizing: border-box; } body {margin: 0;}.body{font-family:"Ubuntu", sans-serif;background-color:#f0f0f0;color:#2b1b63;}.subtitle-16{font-size:1rem;margin:0px 0px 20px 0px;}.subtitle-16.color--light{color:#636363;font-weight:700;}.button{font-size:0.8rem;padding:10px 20px 10px 20px;display:inline-block;border:2px solid #8873fe;transition:all 0.18s ease-out;font-weight:700;line-height:1.2rem;}.button.button--primary{background-color:#8873fe;color:white;}.button-bar{margin:20px 0px 20px 0px;display:flex;padding:30px 30px 30px 30px;align-items:center;justify-content:space-between;border-radius:4px 4px 4px 4px;background-color:#ffffff;}.button-bar.button-bar--full-width{justify-content:space-between;align-items:center;}.button-bar_item.button-bar__item--secondary{font-size:0.8rem;}.button.button--secondary{font-weight:400;color:#8873fe;border:2px solid #8873fe;}.box{border-radius:4px 4px 4px 4px;background-color:#ffffff;}.box.flex-between{align-items:center;}.button--tertiary{background-color:transparent;font-weight:400;}.button:hover{color:#8873fe;border:2px solid #8873fe;}.button.button--secondary:hover{background-color:white;border:2px solid rgba(136,115,254,0.5);}#imgx81{min-height:100vh;display:flex;justify-content:center;align-items:center;flex-direction:column;}#in62y2{justify-content:center;}.big-button{border-radius:5px 5px 5px 5px;font-size:15px;margin:10px 10px 10px 10px;padding:15px 30px 15px 30px;font-weight:700;background-color:#ffffff;}#i9msnk{padding:10px;display:inline;}#i6akll{padding:10px;display:inline;}#ixzhcr{padding:10px;position:absolute;display:none;}.bg-silex-purpel{background-repeat:repeat-y;background-position:center top;background-attachment:scroll;background-size:contain;background-image:url(/assets/../assets/bg-purpel-silex.webp);}.text-centered{text-align:center;}.text-white{color:#ffffff;}.box.box_transp{background-color:rgba(255,255,255,0.5);}.top-space-20{margin:20px 0 0 0;}.button.button--tertiary{border:2px solid transparent;background-color:rgba(221,221,221,0.5);}.box_login{max-width:450px;width:100%;padding:30px 30px 30px 30px;}.button-bar__item--link.text-white{color:#ffffff;}.button.big-button{border:2px solid transparent;}.button.button--tertiary:hover{border:2px solid #8873fe;color:#8873fe;background-color:white;}.button-bar__item__icon{float:left;height:40px;margin:5px 5px 5px 5px;width:40px;}.button-bar__item--secondary{font-size:0.8rem;}.connector__card{align-items:center;margin:5px auto 5px auto;border:1px solid;border-radius:5px 5px 5px 5px;max-width:100%;display:flex;color:black;}#i3cney{width:100%;display:none;justify-content:center;}.connector__description{padding:5px 15px 5px 15px;}#ie0dxn{min-height:100px;}#ior0hl{color:black;}#igp4xl{justify-content:center;display:inline-block;}#isqe61{display:inline-block;}.margin-top{margin:80px 0px 30px 0px;}.margin-30{margin:30px 0px 30px 0px;}.connector__card:link{text-decoration:none;color:black;border:1px solid;}.connector__card:hover{background-color:#8873fe;color:white;}
@@ -0,0 +1 @@
1
+ * { box-sizing: border-box; } body {margin: 0;}.nav__item{margin:0px 10px 0px 10px;font-size:0.8rem;padding:24px 0px 24px 0px;color:#4a4a4a;}.body{font-family:"Ubuntu", sans-serif;background-color:#f0f0f0;color:#2b1b63;}.menu-bar{display:flex;align-items:center;justify-content:space-between;background-color:#ffffff;height:94px;padding:0px 100px 0px 100px;width:100%;}.padding-normal{padding:0px 24px 0px 24px;}#i9jq{display:flex;}.nav{width:100%;margin:0px 20px 0px 20px;}.subtitle-16{font-size:1rem;margin:0px 0px 20px 0px;}.subtitle-16.color--light{color:#636363;font-weight:700;}.button{font-size:0.8rem;padding:10px 20px 10px 20px;display:inline-block;border:2px solid #8873fe;transition:all 0.18s ease-out;font-weight:700;line-height:1.2rem;}.button.button--primary{background-color:#8873fe;color:white;}.button-bar{margin:20px 0px 20px 0px;display:flex;padding:30px 30px 30px 30px;align-items:center;justify-content:space-between;border-radius:4px 4px 4px 4px;background-color:#ffffff;}#ibsgw{position:relative;top:3px;}.button-bar.button-bar--full-width{justify-content:space-between;align-items:center;}.button-bar_item.button-bar__item--secondary{font-size:0.8rem;}.button.button--secondary{font-weight:400;color:#8873fe;border:2px solid #8873fe;}.rounded{border-radius:4px 4px 4px 4px;}.footer{display:flex;margin:50px 0px 0px 0px;background-color:#ffffff;justify-content:space-evenly;padding:30px 30px 60px 30px;}.skeleton-text.skeleton{background-color:#dddddd;color:transparent;opacity:0.31;border-radius:5px 5px 5px 5px;}.skeleton.skeleton-button{color:transparent;opacity:0.31;background-color:#dddddd;border-radius:5px 5px 5px 5px;width:140px;}.skeleton-anim{position:relative;}.nav__item.active{color:black;}.margin-20{margin:20px 0px 20px 0px;}#i0ro3{display:none;}.loading__item.loaded-true{display:none;}.flex-no-shrink{flex-shrink:0;}.form{padding:10px 0px 10px 0px;border-radius:5px 5px 5px 5px;}#i1nmbc{flex-shrink:0;}.input{padding:10px 10px 10px 10px;background-color:transparent;border:2px solid #8873fe;margin:10px 0px 10px 0px;border-radius:4px 4px 4px 4px;}.full-width{width:100%;}.v-space{margin:10px 0px 10px 0px;}.box{border-radius:4px 4px 4px 4px;background-color:#ffffff;}.box__header{margin:0px 0px 0px 0px;padding:10px 0px 10px 0px;font-weight:700;font-size:1.625rem;color:rgba(43,27,99,0.5);}.box.flex-between{align-items:center;}.flex-between{display:flex;align-items:center;justify-content:space-between;}.button--tertiary{background-color:transparent;font-weight:400;}.icon-font{font-size:1.5rem;line-height:1px;margin:0px 2px 0px 2px;}.lang__item{margin:0px 5px 0px 5px;}.top-space-40{margin:40px 0 0 0;}.nav__logo{height:50px;}.user-icon__image{width:100%;height:100%;}.user__wrapper{border:1px solid white;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0 0 0 20px;}.right-space-20{margin:0px 20px 0px 0px;}#iksw4d{padding:10px;}.button:hover{color:#8873fe;border:2px solid #8873fe;}.button.button--secondary:hover{background-color:white;border:2px solid rgba(136,115,254,0.5);}.user-icon__wrapper{border:1px solid #f0f0f0;background-color:#f0f0f0;border-radius:50% 50% 50% 50%;width:40px;height:40px;overflow:hidden hidden;}.title-40{margin:0 0 10px 0;font-size:2.5rem;font-weight:700;}.bg-silex-purpel{background-repeat:repeat-y;background-position:center top;background-attachment:scroll;background-size:contain;background-image:url(/assets/../assets/bg-purpel-silex.webp);}.section-top{max-width:1200px;padding:40px 30px 40px 30px;height:226px;display:flex;flex-direction:column;justify-content:center;margin:0px auto 0px auto;}.text-centered{text-align:center;}.box-message{background-color:rgba(43,27,99,0.3);border-radius:4px 4px 4px 4px;padding:20px 30px 20px 30px;margin:10px 0px 10px 0px;}.text-white{color:#ffffff;}.bold{font-weight:800;}.button-bar__item--link{background-color:transparent;border:0px solid black;font-size:0.8rem;color:#8873fe;}.padding-30{padding:30px 30px 30px 30px;}.right-space-40{margin:0 40px 0 0;}.title-26{font-size:1.625rem;margin:10px 0px 10px 0px;}.empty-image{min-height:500px;background-image:url(/assets/../assets/empty-projects-sos.gif);background-repeat:no-repeat;background-position:center center;background-attachment:scroll;background-size:contain;}.padding-50-30{padding:50px 30px 50px 30px;}.box.box_transp{background-color:rgba(255,255,255,0.5);}.button.button--tertiary{border:2px solid transparent;background-color:rgba(221,221,221,0.5);}.button-bar__item--link.text-white{color:#ffffff;}.button.big-button{border:2px solid transparent;}.color-2B1B63-80{color:rgba(43,27,99,0.8);}.button.button--tertiary:hover{border:2px solid #8873fe;color:#8873fe;background-color:white;}.box-message-text{margin:0px 0 0 0;font-weight:300;}.website-max-width{max-width:1200px;}.margin-80{margin:80px auto 80px auto;}.button-bar__item--secondary{font-size:0.8rem;}.skeleton{line-height:1.1rem;}#isucae{min-height:100px;}.footer__column{display:flex;flex-direction:column;flex-grow:1;text-align:center;}.footer__item{padding:10px 10px 10px 10px;}#igsxoc{position:relative;top:3px;}.box--centered{display:flex;flex-direction:column;align-items:center;}.button-bar__title:hover{color:#8873fe;}.button-bar__item--icon{margin:0px 0 0 0;padding:5px 5px 5px 5px;}.nav__item:hover{text-decoration:none;color:#8873fe;}.nav_item--active:first-child{color:#8873fe;}
@@ -0,0 +1,108 @@
1
+
2
+
3
+ export default async function (configData) {
4
+ const data = {
5
+ ...configData,
6
+ lang: 'en',
7
+ }
8
+ const result = {}
9
+ try {
10
+ result['tina'] = (await (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
+ settingsConnection {
20
+ __typename
21
+ edges {
22
+ __typename
23
+ node {
24
+ __typename
25
+ nav {
26
+ __typename
27
+ label
28
+ url
29
+ target
30
+
31
+ }
32
+ footer_links {
33
+ __typename
34
+ title
35
+ columns {
36
+ __typename
37
+ label
38
+ url
39
+ target
40
+
41
+ }
42
+
43
+ }
44
+ lang
45
+
46
+ }
47
+
48
+ }
49
+
50
+ }
51
+ homeConnection {
52
+ __typename
53
+ edges {
54
+ __typename
55
+ node {
56
+ __typename
57
+ title2
58
+ subtitle
59
+ title2_empty
60
+ subtitle_empty
61
+ add_title
62
+ add_name_label
63
+ add_name_placeholder
64
+ add_ok
65
+ add_cancel
66
+ list_edit_icon
67
+ list_edit
68
+ list_rename_icon
69
+ list_rename
70
+ list_duplicate
71
+ list_duplicate_icon
72
+ list_delete
73
+ text_empty1
74
+ text_empty2
75
+ add_button
76
+ message_dismiss
77
+ lang
78
+
79
+ }
80
+
81
+ }
82
+
83
+ }
84
+ languagesConnection {
85
+ __typename
86
+ edges {
87
+ __typename
88
+ node {
89
+ __typename
90
+ label
91
+ permalink
92
+
93
+ }
94
+
95
+ }
96
+
97
+ }
98
+
99
+ }`,
100
+ })
101
+ })).json()).data
102
+ } catch (e) {
103
+ console.error('11ty plugin for Silex: error fetching graphql data', e, 'tina', 'http://localhost:4001/graphql')
104
+ throw e
105
+ }
106
+ return result
107
+ }
108
+