nwl-components 0.0.2 → 0.0.6

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.
@@ -35,7 +35,7 @@ var __privateMethod = (obj, member, method) => {
35
35
  return method;
36
36
  };
37
37
  var _transformProjectFiles, transformProjectFiles_fn;
38
- import { openBlock, createElementBlock, mergeProps, reactive, ref, watch, onMounted, onUnmounted, unref, createVNode, withKeys, withDirectives, createElementVNode, Fragment, renderList, normalizeClass, toDisplayString, vShow, renderSlot, isRef, vModelText, withCtx, pushScopeId, popScopeId, createTextVNode, inject, toRefs, createBlock, createCommentVNode, vModelCheckbox } from "vue";
38
+ import { openBlock, createElementBlock, mergeProps, reactive, ref, watch, onMounted, onUnmounted, unref, createVNode, withKeys, withDirectives, createElementVNode, Fragment, renderList, normalizeClass, toDisplayString, vShow, renderSlot, isRef, vModelText, getCurrentInstance, createCommentVNode, createBlock, withCtx, pushScopeId, popScopeId, createTextVNode, inject, toRefs } from "vue";
39
39
  let nanoid = (size = 21) => {
40
40
  let id = "";
41
41
  let bytes = crypto.getRandomValues(new Uint8Array(size));
@@ -61,8 +61,8 @@ var _export_sfc = (sfc, props) => {
61
61
  }
62
62
  return target;
63
63
  };
64
- const _hoisted_1$d = ["value"];
65
- const _sfc_main$j = {
64
+ const _hoisted_1$k = ["value"];
65
+ const _sfc_main$q = {
66
66
  props: {
67
67
  placeholder: String,
68
68
  disabled: Boolean,
@@ -78,20 +78,20 @@ const _sfc_main$j = {
78
78
  return openBlock(), createElementBlock("input", mergeProps({ type: "text" }, props, {
79
79
  value: __props.modelValue,
80
80
  onInput: handleInput
81
- }), null, 16, _hoisted_1$d);
81
+ }), null, 16, _hoisted_1$k);
82
82
  };
83
83
  }
84
84
  };
85
- var TextInput = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-2cc3f9d3"]]);
85
+ var TextInput = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-2cc3f9d3"]]);
86
86
  var Autocomplete_vue_vue_type_style_index_0_scoped_true_lang = "";
87
- const _hoisted_1$c = ["aria-owns", "aria-expanded"];
88
- const _hoisted_2$a = ["id"];
89
- const _hoisted_3$7 = {
87
+ const _hoisted_1$j = ["aria-owns", "aria-expanded"];
88
+ const _hoisted_2$d = ["id"];
89
+ const _hoisted_3$a = {
90
90
  key: 0,
91
91
  class: "loading"
92
92
  };
93
- const _hoisted_4$7 = ["onClick", "id", "aria-selected"];
94
- const _sfc_main$i = {
93
+ const _hoisted_4$9 = ["onClick", "id", "aria-selected"];
94
+ const _sfc_main$p = {
95
95
  props: {
96
96
  items: {
97
97
  type: Array,
@@ -229,7 +229,7 @@ const _sfc_main$i = {
229
229
  class: "autocomplete-results",
230
230
  role: "listbox"
231
231
  }, [
232
- unref(state2).isLoading ? (openBlock(), createElementBlock("li", _hoisted_3$7, "Loading results...")) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(unref(state2).results, (result, i) => {
232
+ unref(state2).isLoading ? (openBlock(), createElementBlock("li", _hoisted_3$a, "Loading results...")) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(unref(state2).results, (result, i) => {
233
233
  return openBlock(), createElementBlock("li", {
234
234
  key: i,
235
235
  onClick: ($event) => setResult(result),
@@ -237,19 +237,19 @@ const _sfc_main$i = {
237
237
  role: "option",
238
238
  id: getId(i),
239
239
  "aria-selected": isSelected(i)
240
- }, toDisplayString(props.extractResultText(result)), 11, _hoisted_4$7);
240
+ }, toDisplayString(props.extractResultText(result)), 11, _hoisted_4$9);
241
241
  }), 128))
242
- ], 8, _hoisted_2$a), [
242
+ ], 8, _hoisted_2$d), [
243
243
  [vShow, unref(state2).isOpen]
244
244
  ])
245
- ], 8, _hoisted_1$c);
245
+ ], 8, _hoisted_1$j);
246
246
  };
247
247
  }
248
248
  };
249
- var Autocomplete = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-ee76199e"]]);
249
+ var Autocomplete = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-ee76199e"]]);
250
250
  var Button_vue_vue_type_style_index_0_scoped_true_lang = "";
251
- const _hoisted_1$b = ["title", "disabled"];
252
- const _sfc_main$h = {
251
+ const _hoisted_1$i = ["title", "disabled"];
252
+ const _sfc_main$o = {
253
253
  props: {
254
254
  className: String,
255
255
  title: String,
@@ -269,13 +269,13 @@ const _sfc_main$h = {
269
269
  class: normalizeClass(classes)
270
270
  }, [
271
271
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
272
- ], 8, _hoisted_1$b);
272
+ ], 8, _hoisted_1$i);
273
273
  };
274
274
  }
275
275
  };
276
- var Button = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-5e5f2114"]]);
276
+ var Button = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-5e5f2114"]]);
277
277
  var Select_vue_vue_type_style_index_0_scoped_true_lang = "";
278
- const _sfc_main$g = {
278
+ const _sfc_main$n = {
279
279
  props: {
280
280
  disabled: Boolean,
281
281
  modelValue: String
@@ -304,9 +304,9 @@ const _sfc_main$g = {
304
304
  };
305
305
  }
306
306
  };
307
- var Select = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-976df3ea"]]);
307
+ var Select = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-976df3ea"]]);
308
308
  var TextArea_vue_vue_type_style_index_0_scoped_true_lang = "";
309
- const _sfc_main$f = {
309
+ const _sfc_main$m = {
310
310
  props: {
311
311
  placeholder: String,
312
312
  disabled: Boolean,
@@ -328,10 +328,10 @@ const _sfc_main$f = {
328
328
  };
329
329
  }
330
330
  };
331
- var TextArea = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-0c2bd53c"]]);
331
+ var TextArea = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-0c2bd53c"]]);
332
332
  var Table_vue_vue_type_style_index_0_scoped_true_lang = "";
333
- const _hoisted_1$a = ["id"];
334
- const _sfc_main$e = {
333
+ const _hoisted_1$h = ["id"];
334
+ const _sfc_main$l = {
335
335
  props: {
336
336
  id: String
337
337
  },
@@ -342,27 +342,111 @@ const _sfc_main$e = {
342
342
  id: props.id
343
343
  }, [
344
344
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
345
- ], 8, _hoisted_1$a);
345
+ ], 8, _hoisted_1$h);
346
+ };
347
+ }
348
+ };
349
+ var Table = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-2b42a47b"]]);
350
+ var Checkbox_vue_vue_type_style_index_0_scoped_true_lang = "";
351
+ const _hoisted_1$g = ["aria-checked"];
352
+ const _sfc_main$k = {
353
+ props: {
354
+ modelValue: Boolean
355
+ },
356
+ emits: ["update:modelValue", "change"],
357
+ setup(__props, { emit }) {
358
+ const props = __props;
359
+ const isChecked = ref(props.modelValue);
360
+ if (typeof props.modelValue === "string") {
361
+ isChecked.value === props.modelValue === "true";
362
+ }
363
+ const toggleCheckbox = (key) => {
364
+ if (key != null && key !== " ") {
365
+ return;
366
+ }
367
+ isChecked.value = !isChecked.value;
368
+ emit("change", isChecked.value);
369
+ emit("update:modelValue", isChecked.value);
370
+ };
371
+ return (_ctx, _cache) => {
372
+ return openBlock(), createElementBlock("span", {
373
+ role: "checkbox",
374
+ "aria-checked": isChecked.value,
375
+ onClick: _cache[0] || (_cache[0] = ($event) => toggleCheckbox()),
376
+ onKeydown: _cache[1] || (_cache[1] = ($event) => toggleCheckbox($event.key)),
377
+ tabindex: "0",
378
+ "aria-label": "label"
379
+ }, null, 40, _hoisted_1$g);
380
+ };
381
+ }
382
+ };
383
+ var Checkbox = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-f63b8f34"]]);
384
+ var Tabs_vue_vue_type_style_index_0_scoped_true_lang = "";
385
+ const _hoisted_1$f = { class: "tabs" };
386
+ const _hoisted_2$c = ["onClick"];
387
+ const _sfc_main$j = {
388
+ setup(__props) {
389
+ const selectedIndex = ref(0);
390
+ const instance = getCurrentInstance();
391
+ const children = instance.vnode.children.default();
392
+ const CurrentTab = {
393
+ render: () => children[selectedIndex.value]
394
+ };
395
+ const selectTab = (i) => {
396
+ selectedIndex.value = i;
397
+ };
398
+ return (_ctx, _cache) => {
399
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
400
+ createElementVNode("ul", null, [
401
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(children), (tab, index) => {
402
+ return openBlock(), createElementBlock("li", {
403
+ key: tab.props.title,
404
+ onClick: ($event) => selectTab(index),
405
+ class: normalizeClass({ "selected": index == selectedIndex.value })
406
+ }, toDisplayString(tab.props.title), 11, _hoisted_2$c);
407
+ }), 128))
408
+ ]),
409
+ createCommentVNode("", true),
410
+ (openBlock(), createBlock(CurrentTab, { key: selectedIndex.value }))
411
+ ]);
412
+ };
413
+ }
414
+ };
415
+ var Tabs = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-7928afe0"]]);
416
+ var Tab_vue_vue_type_style_index_0_scoped_true_lang = "";
417
+ const _hoisted_1$e = { class: "content" };
418
+ const _sfc_main$i = {
419
+ props: {
420
+ title: {
421
+ type: String,
422
+ required: true
423
+ }
424
+ },
425
+ setup(__props) {
426
+ return (_ctx, _cache) => {
427
+ return openBlock(), createElementBlock("div", _hoisted_1$e, [
428
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
429
+ ]);
346
430
  };
347
431
  }
348
432
  };
349
- var Table = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-6416d86a"]]);
433
+ var Tab = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-33e54edc"]]);
350
434
  var ImportFilesDialog_vue_vue_type_style_index_0_scoped_true_lang = "";
351
- const _withScopeId$6 = (n) => (pushScopeId("data-v-21580a08"), n = n(), popScopeId(), n);
352
- const _hoisted_1$9 = { class: "dialog" };
353
- const _hoisted_2$9 = { class: "contents" };
354
- const _hoisted_3$6 = { class: "scrollable" };
355
- const _hoisted_4$6 = /* @__PURE__ */ _withScopeId$6(() => /* @__PURE__ */ createElementVNode("thead", null, [
435
+ const _withScopeId$7 = (n) => (pushScopeId("data-v-21580a08"), n = n(), popScopeId(), n);
436
+ const _hoisted_1$d = { class: "dialog" };
437
+ const _hoisted_2$b = { class: "contents" };
438
+ const _hoisted_3$9 = { class: "scrollable" };
439
+ const _hoisted_4$8 = /* @__PURE__ */ _withScopeId$7(() => /* @__PURE__ */ createElementVNode("thead", null, [
356
440
  /* @__PURE__ */ createElementVNode("tr", null, [
357
441
  /* @__PURE__ */ createElementVNode("th", null, "URL"),
358
442
  /* @__PURE__ */ createElementVNode("th", null, "Name")
359
443
  ])
360
444
  ], -1));
361
- const _hoisted_5$6 = ["onBlur"];
362
- const _hoisted_6$5 = { class: "actions" };
363
- const _hoisted_7$5 = /* @__PURE__ */ createTextVNode(" Import ");
364
- const _hoisted_8$5 = /* @__PURE__ */ createTextVNode(" Cancel ");
365
- const _sfc_main$d = {
445
+ const _hoisted_5$7 = ["onBlur"];
446
+ const _hoisted_6$6 = { class: "actions" };
447
+ const _hoisted_7$6 = /* @__PURE__ */ createTextVNode(" Import ");
448
+ const _hoisted_8$6 = /* @__PURE__ */ createTextVNode(" Cancel ");
449
+ const _sfc_main$h = {
366
450
  props: {
367
451
  files: {
368
452
  type: Array,
@@ -373,11 +457,11 @@ const _sfc_main$d = {
373
457
  const props = __props;
374
458
  const filesToImport = ref(props.files);
375
459
  return (_ctx, _cache) => {
376
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
377
- createElementVNode("div", _hoisted_2$9, [
378
- createElementVNode("div", _hoisted_3$6, [
460
+ return openBlock(), createElementBlock("div", _hoisted_1$d, [
461
+ createElementVNode("div", _hoisted_2$b, [
462
+ createElementVNode("div", _hoisted_3$9, [
379
463
  createElementVNode("table", null, [
380
- _hoisted_4$6,
464
+ _hoisted_4$8,
381
465
  createElementVNode("tbody", null, [
382
466
  (openBlock(true), createElementBlock(Fragment, null, renderList(filesToImport.value, (file) => {
383
467
  return openBlock(), createElementBlock("tr", {
@@ -386,20 +470,20 @@ const _sfc_main$d = {
386
470
  createElementVNode("td", {
387
471
  contentEditable: "true",
388
472
  onBlur: ($event) => file.source = $event.currentTarget.textContent
389
- }, toDisplayString(file.source), 41, _hoisted_5$6),
473
+ }, toDisplayString(file.source), 41, _hoisted_5$7),
390
474
  createElementVNode("td", null, toDisplayString(file.name), 1)
391
475
  ]);
392
476
  }), 128))
393
477
  ])
394
478
  ])
395
479
  ]),
396
- createElementVNode("div", _hoisted_6$5, [
480
+ createElementVNode("div", _hoisted_6$6, [
397
481
  createVNode(Button, {
398
482
  className: "push-button",
399
483
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("import", filesToImport.value))
400
484
  }, {
401
485
  default: withCtx(() => [
402
- _hoisted_7$5
486
+ _hoisted_7$6
403
487
  ]),
404
488
  _: 1
405
489
  }),
@@ -408,7 +492,7 @@ const _sfc_main$d = {
408
492
  onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("cancel"))
409
493
  }, {
410
494
  default: withCtx(() => [
411
- _hoisted_8$5
495
+ _hoisted_8$6
412
496
  ]),
413
497
  _: 1
414
498
  })
@@ -418,7 +502,23 @@ const _sfc_main$d = {
418
502
  };
419
503
  }
420
504
  };
421
- var ImportFilesDialog = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-21580a08"]]);
505
+ var ImportFilesDialog = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-21580a08"]]);
506
+ var TwoCols_vue_vue_type_style_index_0_lang = "";
507
+ const _sfc_main$g = {};
508
+ const _hoisted_1$c = { class: "container" };
509
+ const _hoisted_2$a = { class: "side" };
510
+ const _hoisted_3$8 = { class: "content" };
511
+ function _sfc_render$2(_ctx, _cache) {
512
+ return openBlock(), createElementBlock("div", _hoisted_1$c, [
513
+ createElementVNode("div", _hoisted_2$a, [
514
+ renderSlot(_ctx.$slots, "side")
515
+ ]),
516
+ createElementVNode("div", _hoisted_3$8, [
517
+ renderSlot(_ctx.$slots, "content")
518
+ ])
519
+ ]);
520
+ }
521
+ var TwoCols = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$2]]);
422
522
  function parseHex(hash, startPosition, octets) {
423
523
  return parseInt(hash.substr(startPosition, octets), 16);
424
524
  }
@@ -1806,7 +1906,7 @@ var lodash = { exports: {} };
1806
1906
  }
1807
1907
  var runInContext = function runInContext2(context) {
1808
1908
  context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));
1809
- var Array2 = context.Array, Date = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError;
1909
+ var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError;
1810
1910
  var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype;
1811
1911
  var coreJsData = context["__core-js_shared__"];
1812
1912
  var funcToString = funcProto.toString;
@@ -1829,8 +1929,8 @@ var lodash = { exports: {} };
1829
1929
  } catch (e) {
1830
1930
  }
1831
1931
  }();
1832
- var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date && Date.now !== root.Date.now && Date.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
1833
- var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined$1, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse;
1932
+ var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
1933
+ var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined$1, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse;
1834
1934
  var DataView = getNative(context, "DataView"), Map = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create");
1835
1935
  var metaMap = WeakMap2 && new WeakMap2();
1836
1936
  var realNames = {};
@@ -2289,7 +2389,7 @@ var lodash = { exports: {} };
2289
2389
  if (typeof func != "function") {
2290
2390
  throw new TypeError2(FUNC_ERROR_TEXT);
2291
2391
  }
2292
- return setTimeout(function() {
2392
+ return setTimeout2(function() {
2293
2393
  func.apply(undefined$1, args);
2294
2394
  }, wait);
2295
2395
  }
@@ -4098,7 +4198,7 @@ var lodash = { exports: {} };
4098
4198
  return object[key];
4099
4199
  }
4100
4200
  var setData = shortOut(baseSetData);
4101
- var setTimeout = ctxSetTimeout || function(func, wait) {
4201
+ var setTimeout2 = ctxSetTimeout || function(func, wait) {
4102
4202
  return root.setTimeout(func, wait);
4103
4203
  };
4104
4204
  var setToString = shortOut(baseSetToString);
@@ -4890,7 +4990,7 @@ var lodash = { exports: {} };
4890
4990
  }
4891
4991
  function leadingEdge(time) {
4892
4992
  lastInvokeTime = time;
4893
- timerId = setTimeout(timerExpired, wait);
4993
+ timerId = setTimeout2(timerExpired, wait);
4894
4994
  return leading ? invokeFunc(time) : result2;
4895
4995
  }
4896
4996
  function remainingWait(time) {
@@ -4906,7 +5006,7 @@ var lodash = { exports: {} };
4906
5006
  if (shouldInvoke(time)) {
4907
5007
  return trailingEdge(time);
4908
5008
  }
4909
- timerId = setTimeout(timerExpired, remainingWait(time));
5009
+ timerId = setTimeout2(timerExpired, remainingWait(time));
4910
5010
  }
4911
5011
  function trailingEdge(time) {
4912
5012
  timerId = undefined$1;
@@ -4937,12 +5037,12 @@ var lodash = { exports: {} };
4937
5037
  }
4938
5038
  if (maxing) {
4939
5039
  clearTimeout(timerId);
4940
- timerId = setTimeout(timerExpired, wait);
5040
+ timerId = setTimeout2(timerExpired, wait);
4941
5041
  return invokeFunc(lastCallTime);
4942
5042
  }
4943
5043
  }
4944
5044
  if (timerId === undefined$1) {
4945
- timerId = setTimeout(timerExpired, wait);
5045
+ timerId = setTimeout2(timerExpired, wait);
4946
5046
  }
4947
5047
  return result2;
4948
5048
  }
@@ -6531,16 +6631,32 @@ class ProjectService {
6531
6631
  return __privateMethod(this, _transformProjectFiles, transformProjectFiles_fn).call(this, await (await fetch(`${this.baseURL}/project/json/${id}`)).json());
6532
6632
  }
6533
6633
  async save(data) {
6634
+ const res = await fetch(`${this.baseURL}/project/json/${data.shortname}`, {
6635
+ method: "POST",
6636
+ headers: {
6637
+ Accept: "application/json",
6638
+ "Content-Type": "application/json"
6639
+ },
6640
+ body: JSON.stringify({
6641
+ data
6642
+ })
6643
+ });
6644
+ return await res.json();
6534
6645
  }
6535
6646
  async delete(id) {
6647
+ const res = await fetch(`${this.baseURL}/project/json/${id}`, {
6648
+ method: "DELETE",
6649
+ headers: { "Content-Type": "application/json" }
6650
+ });
6651
+ return await res.json();
6536
6652
  }
6537
6653
  }
6538
6654
  _transformProjectFiles = new WeakSet();
6539
- transformProjectFiles_fn = function(project2) {
6540
- if (lodash.exports.get(project2, "files.list") != null) {
6541
- return __spreadProps(__spreadValues({}, project2), {
6542
- files: __spreadProps(__spreadValues({}, project2.files), {
6543
- list: project2.files.list.map((file) => {
6655
+ transformProjectFiles_fn = function(project) {
6656
+ if (lodash.exports.get(project, "files.list") != null) {
6657
+ return __spreadProps(__spreadValues({}, project), {
6658
+ files: __spreadProps(__spreadValues({}, project.files), {
6659
+ list: project.files.list.map((file) => {
6544
6660
  if (typeof file === "string") {
6545
6661
  const splitAt = file.lastIndexOf("/");
6546
6662
  return {
@@ -6553,7 +6669,7 @@ transformProjectFiles_fn = function(project2) {
6553
6669
  })
6554
6670
  });
6555
6671
  }
6556
- return project2;
6672
+ return project;
6557
6673
  };
6558
6674
  const state = reactive({
6559
6675
  project: null,
@@ -6562,13 +6678,19 @@ const state = reactive({
6562
6678
  function useProject() {
6563
6679
  const { baseURL } = inject("config");
6564
6680
  const service = new ProjectService(baseURL);
6681
+ const setProject = (project) => {
6682
+ state.project = project;
6683
+ };
6565
6684
  const fetchProject = async (id) => {
6566
6685
  state.loading = true;
6567
6686
  state.project = await service.fetch(id);
6568
6687
  state.loading = false;
6569
6688
  };
6570
- const saveProject = async () => {
6571
- await service.save(project);
6689
+ const saveProject = async (project) => {
6690
+ return await service.save(project);
6691
+ };
6692
+ const deleteProject = async (id) => {
6693
+ return await service.delete(id);
6572
6694
  };
6573
6695
  const updateProject = (data) => {
6574
6696
  if (!state.project)
@@ -6636,8 +6758,10 @@ function useProject() {
6636
6758
  state.project.files.list = state.project.files.list.filter((file) => !filesIdx.includes(state.project.files.list.indexOf(file)));
6637
6759
  };
6638
6760
  return __spreadProps(__spreadValues({}, toRefs(state)), {
6761
+ setProject,
6639
6762
  fetchProject,
6640
6763
  saveProject,
6764
+ deleteProject,
6641
6765
  updateProject,
6642
6766
  addCollaborator,
6643
6767
  updateCollaborator,
@@ -6651,89 +6775,104 @@ function useProject() {
6651
6775
  });
6652
6776
  }
6653
6777
  var ProjectInfo_vue_vue_type_style_index_0_scoped_true_lang = "";
6654
- const _withScopeId$5 = (n) => (pushScopeId("data-v-6fc5d70c"), n = n(), popScopeId(), n);
6655
- const _hoisted_1$8 = { class: "image" };
6656
- const _hoisted_2$8 = ["href"];
6657
- const _hoisted_3$5 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createElementVNode("svg", {
6778
+ const _withScopeId$6 = (n) => (pushScopeId("data-v-51e11f34"), n = n(), popScopeId(), n);
6779
+ const _hoisted_1$b = { class: "image" };
6780
+ const _hoisted_2$9 = ["href"];
6781
+ const _hoisted_3$7 = /* @__PURE__ */ _withScopeId$6(() => /* @__PURE__ */ createElementVNode("svg", {
6658
6782
  id: "jdenticon",
6659
6783
  width: "100%",
6660
6784
  height: "100%"
6661
6785
  }, null, -1));
6662
- const _hoisted_4$5 = [
6663
- _hoisted_3$5
6786
+ const _hoisted_4$7 = [
6787
+ _hoisted_3$7
6664
6788
  ];
6665
- const _hoisted_5$5 = { class: "description" };
6666
- const _hoisted_6$4 = ["href"];
6667
- const _hoisted_7$4 = /* @__PURE__ */ createTextVNode(" by ");
6668
- const _hoisted_8$4 = ["href"];
6669
- const _hoisted_9$3 = { id: "numCollaborators" };
6789
+ const _hoisted_5$6 = { class: "description" };
6790
+ const _hoisted_6$5 = ["href"];
6791
+ const _hoisted_7$5 = /* @__PURE__ */ createTextVNode(" by ");
6792
+ const _hoisted_8$5 = ["href"];
6793
+ const _hoisted_9$4 = { id: "numCollaborators" };
6670
6794
  const _hoisted_10$3 = /* @__PURE__ */ createTextVNode(" Collaborators ");
6671
- const _hoisted_11$1 = { id: "numAnnotations" };
6672
- const _hoisted_12$1 = /* @__PURE__ */ createTextVNode(" Annotations ");
6795
+ const _hoisted_11$2 = { id: "numAnnotations" };
6796
+ const _hoisted_12$2 = /* @__PURE__ */ createTextVNode(" Annotations ");
6673
6797
  const _hoisted_13$1 = { id: "numFiles" };
6674
6798
  const _hoisted_14$1 = /* @__PURE__ */ createTextVNode(" Data Files ");
6675
6799
  const _hoisted_15$1 = { class: "actions" };
6676
6800
  const _hoisted_16$1 = /* @__PURE__ */ createTextVNode("Save Changes");
6677
6801
  const _hoisted_17$1 = /* @__PURE__ */ createTextVNode("Delete Project");
6678
6802
  const _hoisted_18$1 = /* @__PURE__ */ createTextVNode("Go to Project");
6679
- const _hoisted_19$1 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createElementVNode("p", { id: "saveFeedback" }, null, -1));
6680
- const _sfc_main$c = {
6803
+ const _hoisted_19$1 = { id: "saveFeedback" };
6804
+ const _sfc_main$f = {
6681
6805
  setup(__props) {
6682
- const { project: project2 } = useProject();
6683
- const handleProjectSave = () => {
6684
- alert(JSON.stringify(project2.value));
6806
+ const { project, saveProject, deleteProject } = useProject();
6807
+ const feedback = ref("");
6808
+ const handleProjectSave = async () => {
6809
+ const res = await saveProject(project.value);
6810
+ if (res.success) {
6811
+ feedback.value = res.message;
6812
+ } else if (res.error) {
6813
+ feedback.value = res.error;
6814
+ }
6685
6815
  };
6686
- const handleProjectDeletion = () => {
6687
- const res = confirm("Are you sure you want to delete project " + project2.shortname + "? This operation cannot be undone.");
6688
- if (res !== true) {
6816
+ const handleProjectDeletion = async () => {
6817
+ const confirmation = confirm("Are you sure you want to delete project " + project.value.shortname + "? This operation cannot be undone.");
6818
+ if (!confirmation) {
6689
6819
  return;
6690
6820
  }
6821
+ const res = await deleteProject(project.value.shortname);
6822
+ if (res.success) {
6823
+ feedback.value = "Successfully deleted";
6824
+ setTimeout(function() {
6825
+ window.location.assign("/");
6826
+ }, 2e3);
6827
+ } else {
6828
+ feedback.value = "Unable to delete project";
6829
+ }
6691
6830
  };
6692
6831
  const goToProject = () => {
6693
- window.location.assign(`/project/${project2.value.shortname}`);
6832
+ window.location.assign(`/project/${project.value.shortname}`);
6694
6833
  };
6695
6834
  onMounted(() => {
6696
- update(document.getElementById("jdenticon"), md5(project2.value.shortname));
6835
+ update(document.getElementById("jdenticon"), md5(project.value.shortname));
6697
6836
  });
6698
6837
  return (_ctx, _cache) => {
6699
- return openBlock(), createElementBlock("aside", null, [
6700
- createElementVNode("div", _hoisted_1$8, [
6838
+ return openBlock(), createElementBlock(Fragment, null, [
6839
+ createElementVNode("div", _hoisted_1$b, [
6701
6840
  createElementVNode("a", {
6702
- href: `/project/${unref(project2).shortname}`
6703
- }, _hoisted_4$5, 8, _hoisted_2$8)
6841
+ href: `/project/${unref(project).shortname}`
6842
+ }, _hoisted_4$7, 8, _hoisted_2$9)
6704
6843
  ]),
6705
- createElementVNode("div", _hoisted_5$5, [
6844
+ createElementVNode("div", _hoisted_5$6, [
6706
6845
  createElementVNode("a", {
6707
- href: `/project/${unref(project2).shortname}`
6846
+ href: `/project/${unref(project).shortname}`
6708
6847
  }, [
6709
- createElementVNode("h1", null, toDisplayString(unref(project2).shortname), 1)
6710
- ], 8, _hoisted_6$4),
6848
+ createElementVNode("h1", null, toDisplayString(unref(project).shortname), 1)
6849
+ ], 8, _hoisted_6$5),
6711
6850
  createVNode(TextInput, {
6712
- modelValue: unref(project2).url,
6713
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => unref(project2).url = $event),
6851
+ modelValue: unref(project).url,
6852
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => unref(project).url = $event),
6714
6853
  placeholder: "Enter a project website"
6715
6854
  }, null, 8, ["modelValue"]),
6716
6855
  createElementVNode("p", null, [
6717
- _hoisted_7$4,
6856
+ _hoisted_7$5,
6718
6857
  createElementVNode("a", {
6719
- href: `/user/${unref(project2).owner}`
6720
- }, toDisplayString(unref(project2).owner), 9, _hoisted_8$4)
6858
+ href: `/user/${unref(project).owner}`
6859
+ }, toDisplayString(unref(project).owner), 9, _hoisted_8$5)
6721
6860
  ]),
6722
6861
  createVNode(TextArea, {
6723
- modelValue: unref(project2).description,
6724
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => unref(project2).description = $event),
6862
+ modelValue: unref(project).description,
6863
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => unref(project).description = $event),
6725
6864
  placeholder: "Enter a project description"
6726
6865
  }, null, 8, ["modelValue"]),
6727
6866
  createElementVNode("p", null, [
6728
- createElementVNode("span", _hoisted_9$3, toDisplayString(unref(project2).collaborators.list.length), 1),
6867
+ createElementVNode("span", _hoisted_9$4, toDisplayString(unref(project).collaborators.list.length), 1),
6729
6868
  _hoisted_10$3
6730
6869
  ]),
6731
6870
  createElementVNode("p", null, [
6732
- createElementVNode("span", _hoisted_11$1, toDisplayString(unref(project2).annotations.list.length), 1),
6733
- _hoisted_12$1
6871
+ createElementVNode("span", _hoisted_11$2, toDisplayString(unref(project).annotations.list.length), 1),
6872
+ _hoisted_12$2
6734
6873
  ]),
6735
6874
  createElementVNode("p", null, [
6736
- createElementVNode("span", _hoisted_13$1, toDisplayString(unref(project2).files.list.length), 1),
6875
+ createElementVNode("span", _hoisted_13$1, toDisplayString(unref(project).files.list.length), 1),
6737
6876
  _hoisted_14$1
6738
6877
  ]),
6739
6878
  createElementVNode("div", _hoisted_15$1, [
@@ -6764,21 +6903,21 @@ const _sfc_main$c = {
6764
6903
  ]),
6765
6904
  _: 1
6766
6905
  }),
6767
- _hoisted_19$1
6906
+ createElementVNode("p", _hoisted_19$1, toDisplayString(feedback.value), 1)
6768
6907
  ])
6769
6908
  ])
6770
- ]);
6909
+ ], 64);
6771
6910
  };
6772
6911
  }
6773
6912
  };
6774
- var ProjectInfo = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-6fc5d70c"]]);
6913
+ var ProjectInfo = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-51e11f34"]]);
6775
6914
  var Access_vue_vue_type_style_index_0_scoped_true_lang = "";
6776
- const _hoisted_1$7 = ["data-level"];
6777
- const _hoisted_2$7 = ["title"];
6778
- const _hoisted_3$4 = ["title"];
6779
- const _hoisted_4$4 = ["title"];
6780
- const _hoisted_5$4 = ["title"];
6781
- const _sfc_main$b = {
6915
+ const _hoisted_1$a = ["data-level"];
6916
+ const _hoisted_2$8 = ["title"];
6917
+ const _hoisted_3$6 = ["title"];
6918
+ const _hoisted_4$6 = ["title"];
6919
+ const _hoisted_5$5 = ["title"];
6920
+ const _sfc_main$e = {
6782
6921
  props: {
6783
6922
  collaborator: Object,
6784
6923
  type: String
@@ -6795,30 +6934,30 @@ const _sfc_main$b = {
6795
6934
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("updateAccess", __props.collaborator, __props.type, 1)),
6796
6935
  class: "view",
6797
6936
  title: `view ${__props.type}`
6798
- }, null, 8, _hoisted_2$7),
6937
+ }, null, 8, _hoisted_2$8),
6799
6938
  createElementVNode("button", {
6800
6939
  small: true,
6801
6940
  onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("updateAccess", __props.collaborator, __props.type, 2)),
6802
6941
  class: "edit",
6803
6942
  title: `edit ${__props.type}`
6804
- }, null, 8, _hoisted_3$4),
6943
+ }, null, 8, _hoisted_3$6),
6805
6944
  createElementVNode("button", {
6806
6945
  small: true,
6807
6946
  onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("updateAccess", __props.collaborator, __props.type, 3)),
6808
6947
  class: "add",
6809
6948
  title: `add ${__props.type}`
6810
- }, null, 8, _hoisted_4$4),
6949
+ }, null, 8, _hoisted_4$6),
6811
6950
  createElementVNode("button", {
6812
6951
  small: true,
6813
6952
  onClick: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("updateAccess", __props.collaborator, __props.type, 4)),
6814
6953
  class: "remove",
6815
6954
  title: `remove ${__props.type}`
6816
- }, null, 8, _hoisted_5$4)
6817
- ], 8, _hoisted_1$7);
6955
+ }, null, 8, _hoisted_5$5)
6956
+ ], 8, _hoisted_1$a);
6818
6957
  };
6819
6958
  }
6820
6959
  };
6821
- var Access = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-1db05093"]]);
6960
+ var Access = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-1db05093"]]);
6822
6961
  const _AccessLevel = class {
6823
6962
  constructor(level) {
6824
6963
  __publicField(this, "numericalLevel", 0);
@@ -6858,10 +6997,10 @@ __publicField(AccessLevel, "EDIT", new _AccessLevel("edit"));
6858
6997
  __publicField(AccessLevel, "ADD", new _AccessLevel("add"));
6859
6998
  __publicField(AccessLevel, "REMOVE", new _AccessLevel("remove"));
6860
6999
  var PureCollaborators_vue_vue_type_style_index_0_scoped_true_lang = "";
6861
- const _withScopeId$4 = (n) => (pushScopeId("data-v-2d19ee37"), n = n(), popScopeId(), n);
6862
- const _hoisted_1$6 = { class: "wrapper" };
6863
- const _hoisted_2$6 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createElementVNode("h2", null, "Access", -1));
6864
- const _hoisted_3$3 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createElementVNode("thead", null, [
7000
+ const _withScopeId$5 = (n) => (pushScopeId("data-v-2d19ee37"), n = n(), popScopeId(), n);
7001
+ const _hoisted_1$9 = { class: "wrapper" };
7002
+ const _hoisted_2$7 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createElementVNode("h2", null, "Access", -1));
7003
+ const _hoisted_3$5 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createElementVNode("thead", null, [
6865
7004
  /* @__PURE__ */ createElementVNode("tr", null, [
6866
7005
  /* @__PURE__ */ createElementVNode("th", null, "User Name"),
6867
7006
  /* @__PURE__ */ createElementVNode("th", null, "Name"),
@@ -6870,12 +7009,12 @@ const _hoisted_3$3 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ create
6870
7009
  /* @__PURE__ */ createElementVNode("th", null, "Files")
6871
7010
  ])
6872
7011
  ], -1));
6873
- const _hoisted_4$3 = ["onClick"];
6874
- const _hoisted_5$3 = { style: { "position": "relative" } };
6875
- const _hoisted_6$3 = { class: "actions" };
6876
- const _hoisted_7$3 = /* @__PURE__ */ createTextVNode(" + ");
6877
- const _hoisted_8$3 = /* @__PURE__ */ createTextVNode(" - ");
6878
- const _sfc_main$a = {
7012
+ const _hoisted_4$5 = ["onClick"];
7013
+ const _hoisted_5$4 = { style: { "position": "relative" } };
7014
+ const _hoisted_6$4 = { class: "actions" };
7015
+ const _hoisted_7$4 = /* @__PURE__ */ createTextVNode(" + ");
7016
+ const _hoisted_8$4 = /* @__PURE__ */ createTextVNode(" - ");
7017
+ const _sfc_main$d = {
6879
7018
  props: {
6880
7019
  collaborators: {
6881
7020
  type: Array,
@@ -6929,11 +7068,11 @@ const _sfc_main$a = {
6929
7068
  });
6930
7069
  };
6931
7070
  return (_ctx, _cache) => {
6932
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
6933
- _hoisted_2$6,
7071
+ return openBlock(), createElementBlock("div", _hoisted_1$9, [
7072
+ _hoisted_2$7,
6934
7073
  createVNode(Table, { id: "access" }, {
6935
7074
  default: withCtx(() => [
6936
- _hoisted_3$3,
7075
+ _hoisted_3$5,
6937
7076
  createElementVNode("tbody", null, [
6938
7077
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.collaborators, (collaborator, idx) => {
6939
7078
  return openBlock(), createElementBlock("tr", {
@@ -6941,7 +7080,7 @@ const _sfc_main$a = {
6941
7080
  class: normalizeClass({ selected: selected.value === idx }),
6942
7081
  onClick: ($event) => handleRowClick($event, idx)
6943
7082
  }, [
6944
- createElementVNode("td", _hoisted_5$3, [
7083
+ createElementVNode("td", _hoisted_5$4, [
6945
7084
  createVNode(Autocomplete, {
6946
7085
  onInput: unref(handleUserSearch),
6947
7086
  onSelect: handleUserSelect,
@@ -6985,20 +7124,20 @@ const _sfc_main$a = {
6985
7124
  onUpdateAccess: handleAccessChange
6986
7125
  }, null, 8, ["collaborator"])
6987
7126
  ])
6988
- ], 10, _hoisted_4$3);
7127
+ ], 10, _hoisted_4$5);
6989
7128
  }), 128))
6990
7129
  ])
6991
7130
  ]),
6992
7131
  _: 1
6993
7132
  }),
6994
- createElementVNode("div", _hoisted_6$3, [
7133
+ createElementVNode("div", _hoisted_6$4, [
6995
7134
  createVNode(Button, {
6996
7135
  small: true,
6997
7136
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("addCollaborator")),
6998
7137
  title: "Add collaborator"
6999
7138
  }, {
7000
7139
  default: withCtx(() => [
7001
- _hoisted_7$3
7140
+ _hoisted_7$4
7002
7141
  ]),
7003
7142
  _: 1
7004
7143
  }),
@@ -7012,7 +7151,7 @@ const _sfc_main$a = {
7012
7151
  disabled: selected.value == null || __props.collaborators[selected.value].userID === "anyone"
7013
7152
  }, {
7014
7153
  default: withCtx(() => [
7015
- _hoisted_8$3
7154
+ _hoisted_8$4
7016
7155
  ]),
7017
7156
  _: 1
7018
7157
  }, 8, ["disabled"])
@@ -7021,12 +7160,13 @@ const _sfc_main$a = {
7021
7160
  };
7022
7161
  }
7023
7162
  };
7024
- var PureCollaborators = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-2d19ee37"]]);
7163
+ var PureCollaborators = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-2d19ee37"]]);
7025
7164
  const usersFound = reactive([]);
7026
7165
  function useUserSearch() {
7166
+ const { userSearchURL } = inject("config");
7027
7167
  const fetchUsers = async (q) => {
7028
7168
  usersFound.splice(0, usersFound.length);
7029
- const users = await (await fetch(`https://brainbox.pasteur.fr/api/userNameQuery?q=${q}`)).json();
7169
+ const users = await (await fetch(`${userSearchURL}${q}`)).json();
7030
7170
  usersFound.push(...users);
7031
7171
  };
7032
7172
  return {
@@ -7034,10 +7174,10 @@ function useUserSearch() {
7034
7174
  fetchUsers
7035
7175
  };
7036
7176
  }
7037
- const _sfc_main$9 = {
7177
+ const _sfc_main$c = {
7038
7178
  setup(__props) {
7039
7179
  const {
7040
- project: project2,
7180
+ project,
7041
7181
  addCollaborator,
7042
7182
  updateCollaborator,
7043
7183
  removeCollaborators
@@ -7047,9 +7187,9 @@ const _sfc_main$9 = {
7047
7187
  fetchUsers
7048
7188
  } = useUserSearch();
7049
7189
  return (_ctx, _cache) => {
7050
- return unref(project2) && unref(project2).collaborators ? (openBlock(), createBlock(PureCollaborators, {
7190
+ return unref(project) && unref(project).collaborators ? (openBlock(), createBlock(PureCollaborators, {
7051
7191
  key: 0,
7052
- collaborators: unref(project2).collaborators.list,
7192
+ collaborators: unref(project).collaborators.list,
7053
7193
  "users-found": unref(usersFound2),
7054
7194
  onAddCollaborator: unref(addCollaborator),
7055
7195
  onRemoveCollaborators: unref(removeCollaborators),
@@ -7060,10 +7200,10 @@ const _sfc_main$9 = {
7060
7200
  }
7061
7201
  };
7062
7202
  var PureAnnotations_vue_vue_type_style_index_0_scoped_true_lang = "";
7063
- const _withScopeId$3 = (n) => (pushScopeId("data-v-629d4746"), n = n(), popScopeId(), n);
7064
- const _hoisted_1$5 = { class: "wrapper" };
7065
- const _hoisted_2$5 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("h2", null, "Annotations", -1));
7066
- const _hoisted_3$2 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("thead", null, [
7203
+ const _withScopeId$4 = (n) => (pushScopeId("data-v-1ebbe320"), n = n(), popScopeId(), n);
7204
+ const _hoisted_1$8 = { class: "wrapper" };
7205
+ const _hoisted_2$6 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createElementVNode("h2", null, "Annotations", -1));
7206
+ const _hoisted_3$4 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createElementVNode("thead", null, [
7067
7207
  /* @__PURE__ */ createElementVNode("tr", null, [
7068
7208
  /* @__PURE__ */ createElementVNode("th", null, "Name"),
7069
7209
  /* @__PURE__ */ createElementVNode("th", null, "Type"),
@@ -7071,14 +7211,13 @@ const _hoisted_3$2 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ create
7071
7211
  /* @__PURE__ */ createElementVNode("th", null, "Display")
7072
7212
  ])
7073
7213
  ], -1));
7074
- const _hoisted_4$2 = ["onClick"];
7075
- const _hoisted_5$2 = ["value", "selected"];
7076
- const _hoisted_6$2 = ["value", "selected"];
7077
- const _hoisted_7$2 = ["onUpdate:modelValue", "onChange"];
7078
- const _hoisted_8$2 = { class: "actions" };
7079
- const _hoisted_9$2 = /* @__PURE__ */ createTextVNode(" + ");
7080
- const _hoisted_10$2 = /* @__PURE__ */ createTextVNode(" - ");
7081
- const _sfc_main$8 = {
7214
+ const _hoisted_4$4 = ["onClick"];
7215
+ const _hoisted_5$3 = ["value", "selected"];
7216
+ const _hoisted_6$3 = ["value", "selected"];
7217
+ const _hoisted_7$3 = { class: "actions" };
7218
+ const _hoisted_8$3 = /* @__PURE__ */ createTextVNode(" + ");
7219
+ const _hoisted_9$3 = /* @__PURE__ */ createTextVNode(" - ");
7220
+ const _sfc_main$b = {
7082
7221
  props: {
7083
7222
  annotations: {
7084
7223
  type: Array,
@@ -7092,13 +7231,12 @@ const _sfc_main$8 = {
7092
7231
  ],
7093
7232
  setup(__props, { emit }) {
7094
7233
  const props = __props;
7095
- const { baseURL } = inject("config");
7096
- const annotationType = ["volume", "text"];
7234
+ const { baseURL, fetchLabelSets, annotationTypes } = inject("config");
7097
7235
  const labelSets = reactive([]);
7098
- const fetchLabelSets = async () => {
7099
- labelSets.push(...await (await fetch(`${baseURL}/api/getLabelsets`)).json());
7236
+ const updateLabelSets = async () => {
7237
+ labelSets.push(...await fetchLabelSets());
7100
7238
  };
7101
- fetchLabelSets();
7239
+ updateLabelSets();
7102
7240
  const selected = ref(null);
7103
7241
  const handleRowClick = (event, idx) => {
7104
7242
  selected.value = idx;
@@ -7129,17 +7267,18 @@ const _sfc_main$8 = {
7129
7267
  emitAnnotationUpdate(idx, { values });
7130
7268
  };
7131
7269
  const handleDisplayChange = (annotation, display) => {
7270
+ console.log("dsfsdfsdf", display);
7132
7271
  const idx = props.annotations.indexOf(annotation);
7133
7272
  if (idx < 0)
7134
7273
  return;
7135
7274
  emitAnnotationUpdate(idx, { display });
7136
7275
  };
7137
7276
  return (_ctx, _cache) => {
7138
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
7139
- _hoisted_2$5,
7277
+ return openBlock(), createElementBlock("div", _hoisted_1$8, [
7278
+ _hoisted_2$6,
7140
7279
  createVNode(Table, { id: "annotations" }, {
7141
7280
  default: withCtx(() => [
7142
- _hoisted_3$2,
7281
+ _hoisted_3$4,
7143
7282
  createElementVNode("tbody", null, [
7144
7283
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.annotations, (annotation, idx) => {
7145
7284
  return openBlock(), createElementBlock("tr", {
@@ -7163,19 +7302,19 @@ const _sfc_main$8 = {
7163
7302
  onChange: ($event) => handleTypeChange(annotation, $event.target.value)
7164
7303
  }, {
7165
7304
  default: withCtx(() => [
7166
- (openBlock(), createElementBlock(Fragment, null, renderList(annotationType, (opt) => {
7167
- return createElementVNode("option", {
7305
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(annotationTypes), (opt) => {
7306
+ return openBlock(), createElementBlock("option", {
7168
7307
  key: `${annotation.name}${opt}`,
7169
7308
  value: opt,
7170
7309
  selected: opt === annotation.type
7171
- }, toDisplayString(opt), 9, _hoisted_5$2);
7172
- }), 64))
7310
+ }, toDisplayString(opt), 9, _hoisted_5$3);
7311
+ }), 128))
7173
7312
  ]),
7174
7313
  _: 2
7175
7314
  }, 1032, ["modelValue", "onUpdate:modelValue", "onChange"])
7176
7315
  ]),
7177
7316
  createElementVNode("td", null, [
7178
- annotation.type === "volume" ? (openBlock(), createBlock(Select, {
7317
+ annotation.type !== "text" ? (openBlock(), createBlock(Select, {
7179
7318
  key: 0,
7180
7319
  modelValue: annotation.values,
7181
7320
  "onUpdate:modelValue": ($event) => annotation.values = $event,
@@ -7187,35 +7326,33 @@ const _sfc_main$8 = {
7187
7326
  value: opt.source,
7188
7327
  key: `${annotation.name}${opt.source}`,
7189
7328
  selected: opt.source === annotation.values
7190
- }, toDisplayString(opt.name), 9, _hoisted_6$2);
7329
+ }, toDisplayString(opt.name), 9, _hoisted_6$3);
7191
7330
  }), 128))
7192
7331
  ]),
7193
7332
  _: 2
7194
7333
  }, 1032, ["modelValue", "onUpdate:modelValue", "onChange"])) : createCommentVNode("", true)
7195
7334
  ]),
7196
7335
  createElementVNode("td", null, [
7197
- withDirectives(createElementVNode("input", {
7198
- type: "checkbox",
7336
+ createVNode(Checkbox, {
7337
+ modelValue: annotation.display,
7199
7338
  "onUpdate:modelValue": ($event) => annotation.display = $event,
7200
- onChange: ($event) => handleDisplayChange(annotation, $event.target.checked)
7201
- }, null, 40, _hoisted_7$2), [
7202
- [vModelCheckbox, annotation.display]
7203
- ])
7339
+ onChange: ($event) => handleDisplayChange(annotation, $event)
7340
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "onChange"])
7204
7341
  ])
7205
- ], 10, _hoisted_4$2);
7342
+ ], 10, _hoisted_4$4);
7206
7343
  }), 128))
7207
7344
  ])
7208
7345
  ]),
7209
7346
  _: 1
7210
7347
  }),
7211
- createElementVNode("div", _hoisted_8$2, [
7348
+ createElementVNode("div", _hoisted_7$3, [
7212
7349
  createVNode(Button, {
7213
7350
  small: true,
7214
7351
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("addAnnotation")),
7215
7352
  title: "Add annotation"
7216
7353
  }, {
7217
7354
  default: withCtx(() => [
7218
- _hoisted_9$2
7355
+ _hoisted_8$3
7219
7356
  ]),
7220
7357
  _: 1
7221
7358
  }),
@@ -7226,7 +7363,7 @@ const _sfc_main$8 = {
7226
7363
  disabled: selected.value == null
7227
7364
  }, {
7228
7365
  default: withCtx(() => [
7229
- _hoisted_10$2
7366
+ _hoisted_9$3
7230
7367
  ]),
7231
7368
  _: 1
7232
7369
  }, 8, ["disabled"])
@@ -7235,19 +7372,25 @@ const _sfc_main$8 = {
7235
7372
  };
7236
7373
  }
7237
7374
  };
7238
- var PureAnnotations = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-629d4746"]]);
7239
- const _sfc_main$7 = {
7375
+ var PureAnnotations = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-1ebbe320"]]);
7376
+ const _sfc_main$a = {
7240
7377
  setup(__props) {
7241
7378
  const {
7242
- project: project2,
7379
+ project,
7243
7380
  addAnnotation,
7244
7381
  updateAnnotation,
7245
7382
  removeAnnotations
7246
7383
  } = useProject();
7384
+ if (project.value && project.value.annotations && project.value.annotations.list) {
7385
+ if (project.value.annotations.list.length === 0) {
7386
+ console.log("foo");
7387
+ addAnnotation();
7388
+ }
7389
+ }
7247
7390
  return (_ctx, _cache) => {
7248
- return unref(project2) && unref(project2).annotations ? (openBlock(), createBlock(PureAnnotations, {
7391
+ return unref(project) && unref(project).annotations ? (openBlock(), createBlock(PureAnnotations, {
7249
7392
  key: 0,
7250
- annotations: unref(project2).annotations.list,
7393
+ annotations: unref(project).annotations.list,
7251
7394
  onAddAnnotation: unref(addAnnotation),
7252
7395
  onRemoveAnnotations: unref(removeAnnotations),
7253
7396
  onUpdateAnnotation: unref(updateAnnotation)
@@ -7258,29 +7401,29 @@ const _sfc_main$7 = {
7258
7401
  var _imports_0$2 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MzguNTMzIDQzOC41MzMiIGhlaWdodD0iNDM4LjUzMyIgdmlld0JveD0iMCAwIDQzOC41MzMgNDM4LjUzMyIgd2lkdGg9IjQzOC41MzMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJtYXRyaXgoLjcxMTE2MTExIDAgMCAuNzExMTYxMTEgODEuMDg2NzE2IDI1LjY3MTMwNykiPjxwYXRoIGQ9Im0xMTQuMDA2MzYgMTgzLjM5MzI5aDQ4LjExNTQ2djkxLjIwODljMCAyLjQxOTQzLjc1NjY2IDQuNDA0MTcgMi4yNTg2IDUuOTU5NjUgMS40OTU3OCAxLjU1MDk1IDMuNDE5MDggMi4zMzA1IDUuNzU1OCAyLjMzMDVoNDguMTI0MjFjMi4zMzg0OSAwIDQuMjYwODktLjc3OTU1IDUuNzY0NTktMi4zMzA1IDEuNTA0NTYtMS41NTYzOCAyLjI1NTk2LTMuNTQwMjIgMi4yNTU5Ni01Ljk1OTY1di05MS4yMDUyN2g0OC4xMjA3MWMzLjY3NDUyIDAgNi4xODE1My0xLjcyODgxIDcuNTE5MzItNS4xODEgMS4zMzc3OS0zLjI4NjExLjc0OTY2LTYuMzA0NTEtMS43NTQ3My05LjA3MTUybC04MC4xOTk0My04Mi45MTE0OTNjLTEuODM5ODctMS41NTI3NTktMy43NTk2NS0yLjMyOTU5Ni01Ljc2NDU3LTIuMzI5NTk2LTIuMDAyMyAwLTMuOTI0Ny43NzY4MzctNS43NjYzMyAyLjMyOTU5NmwtNzkuOTQ4MzggODIuNjUwMTMzYy0xLjY2OTU5IDIuMDcxODUtMi41MDI2MyA0LjE1Mjc4LTIuNTAyNjMgNi4yMTgyOSAwIDIuNDE1ODEuNzUwNTMgNC40MDQxNyAyLjI1ODYxIDUuOTYyMzcgMS41MDAxOCAxLjU1MzY3IDMuNDIyNTcgMi4zMjk1OSA1Ljc2MjgxIDIuMzI5NTl6Ii8+PHBhdGggZD0ibTM2LjIzNTI0NCAzMTkuMjQ3Mzl2ODUuMDUxNDRoMzE2LjEzMjgxNnYtODUuMDUxNDRoLTM2LjkwODkydjQ4LjE0MjUyaC0yNDIuMzE0OTcydi00OC4xNDI1MnoiLz48L2c+PC9zdmc+";
7259
7402
  var _imports_1$1 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MzguNTMzIDQzOC41MzMiIGhlaWdodD0iNDM4LjUzMyIgdmlld0JveD0iMCAwIDQzOC41MzMgNDM4LjUzMyIgd2lkdGg9IjQzOC41MzMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE2Mi4xNjM2MSAxNTYuMDk5OTRoMzQuMjE3ODR2LTY0Ljg2NDIzMWMwLTEuNzIwNi41MzgxMS0zLjEzMjA3IDEuNjA2MjMtNC4yMzgyNyAxLjA2Mzc0LTEuMTAyOTcgMi40MzE1MS0xLjY1NzM2IDQuMDkzMy0xLjY1NzM2aDM0LjIyNDA3YzEuNjYzMDQgMCAzLjAzMDE3LjU1NDM5IDQuMDk5NTUgMS42NTczNiAxLjA2OTk4IDEuMTA2ODQgMS42MDQzNSAyLjUxNzY3IDEuNjA0MzUgNC4yMzgyN3Y2NC44NjE2NTFoMzQuMjIxNThjMi42MTMxNyAwIDQuMzk2MDYgMS4yMjk0NiA1LjM0NzQ0IDMuNjg0NTIuOTUxMzkgMi4zMzY5Ni41MzMxMyA0LjQ4MzUyLTEuMjQ3ODkgNi40NTEzMWwtNTcuMDM0NzIgNTguOTYzNDNjLTEuMzA4NDQgMS4xMDQyNi0yLjY3MzcxIDEuNjU2NzItNC4wOTk1MyAxLjY1NjcyLTEuNDIzOTYgMC0yLjc5MTEtLjU1MjQ2LTQuMTAwNzktMS42NTY3MmwtNTYuODU2MTgtNTguNzc3NTZjLTEuMTg3MzUtMS40NzM0Mi0xLjc3OTc4LTIuOTUzMjktMS43Nzk3OC00LjQyMjIgMC0xLjcxODAzLjUzMzc1LTMuMTMyMDggMS42MDYyNC00LjI0MDIxIDEuMDY2ODctMS4xMDQ5MSAyLjQzNC0xLjY1NjcxIDQuMDk4MjktMS42NTY3MXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJtMTA2Ljg1NTgxIDI1Mi43MDc2NHY2MC40ODUyN2gyMjQuODIxMzd2LTYwLjQ4NTI3aC0yNi4yNDgxOXYzNC4yMzcwOGgtMTcyLjMyNDk5di0zNC4yMzcwOHoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=";
7260
7403
  var PureFiles_vue_vue_type_style_index_0_scoped_true_lang = "";
7261
- const _withScopeId$2 = (n) => (pushScopeId("data-v-3c8f55ac"), n = n(), popScopeId(), n);
7262
- const _hoisted_1$4 = { class: "wrapper" };
7263
- const _hoisted_2$4 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("h2", null, "Files", -1));
7264
- const _hoisted_3$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("thead", null, [
7404
+ const _withScopeId$3 = (n) => (pushScopeId("data-v-3c8f55ac"), n = n(), popScopeId(), n);
7405
+ const _hoisted_1$7 = { class: "wrapper" };
7406
+ const _hoisted_2$5 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("h2", null, "Files", -1));
7407
+ const _hoisted_3$3 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("thead", null, [
7265
7408
  /* @__PURE__ */ createElementVNode("tr", null, [
7266
7409
  /* @__PURE__ */ createElementVNode("th", null, "URL"),
7267
7410
  /* @__PURE__ */ createElementVNode("th", null, "Name")
7268
7411
  ])
7269
7412
  ], -1));
7270
- const _hoisted_4$1 = ["onClick"];
7271
- const _hoisted_5$1 = ["onBlur", "onKeyup"];
7272
- const _hoisted_6$1 = { class: "actions" };
7273
- const _hoisted_7$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7413
+ const _hoisted_4$3 = ["onClick"];
7414
+ const _hoisted_5$2 = ["onBlur", "onKeyup"];
7415
+ const _hoisted_6$2 = { class: "actions" };
7416
+ const _hoisted_7$2 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("img", {
7274
7417
  src: _imports_0$2,
7275
7418
  alt: "Import CSV"
7276
7419
  }, null, -1));
7277
- const _hoisted_8$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7420
+ const _hoisted_8$2 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("img", {
7278
7421
  src: _imports_1$1,
7279
7422
  alt: "Download CSV"
7280
7423
  }, null, -1));
7281
- const _hoisted_9$1 = /* @__PURE__ */ createTextVNode(" + ");
7282
- const _hoisted_10$1 = /* @__PURE__ */ createTextVNode(" - ");
7283
- const _sfc_main$6 = {
7424
+ const _hoisted_9$2 = /* @__PURE__ */ createTextVNode(" + ");
7425
+ const _hoisted_10$2 = /* @__PURE__ */ createTextVNode(" - ");
7426
+ const _sfc_main$9 = {
7284
7427
  props: {
7285
7428
  files: {
7286
7429
  type: Array,
@@ -7316,11 +7459,11 @@ const _sfc_main$6 = {
7316
7459
  emitFileUpdate(idx, { source });
7317
7460
  };
7318
7461
  return (_ctx, _cache) => {
7319
- return openBlock(), createElementBlock("div", _hoisted_1$4, [
7320
- _hoisted_2$4,
7462
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
7463
+ _hoisted_2$5,
7321
7464
  createVNode(Table, { id: "access" }, {
7322
7465
  default: withCtx(() => [
7323
- _hoisted_3$1,
7466
+ _hoisted_3$3,
7324
7467
  createElementVNode("tbody", null, [
7325
7468
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.files, (file, idx) => {
7326
7469
  return openBlock(), createElementBlock("tr", {
@@ -7334,7 +7477,7 @@ const _sfc_main$6 = {
7334
7477
  placeholder: "File URL",
7335
7478
  onBlur: ($event) => handleSourceChange(file, $event.currentTarget.textContent),
7336
7479
  onKeyup: withKeys(($event) => handleSourceChange(file, $event.currentTarget.textContent), ["enter"])
7337
- }, toDisplayString(file.source), 41, _hoisted_5$1)
7480
+ }, toDisplayString(file.source), 41, _hoisted_5$2)
7338
7481
  ]),
7339
7482
  createElementVNode("td", null, [
7340
7483
  createVNode(TextInput, {
@@ -7345,20 +7488,20 @@ const _sfc_main$6 = {
7345
7488
  onKeyup: withKeys(($event) => handleNameChange(file, $event.target.value), ["enter"])
7346
7489
  }, null, 8, ["modelValue", "onUpdate:modelValue", "onBlur", "onKeyup"])
7347
7490
  ])
7348
- ], 10, _hoisted_4$1);
7491
+ ], 10, _hoisted_4$3);
7349
7492
  }), 128))
7350
7493
  ])
7351
7494
  ]),
7352
7495
  _: 1
7353
7496
  }),
7354
- createElementVNode("div", _hoisted_6$1, [
7497
+ createElementVNode("div", _hoisted_6$2, [
7355
7498
  createVNode(Button, {
7356
7499
  small: true,
7357
7500
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("importCsv")),
7358
7501
  title: "Upload CSV"
7359
7502
  }, {
7360
7503
  default: withCtx(() => [
7361
- _hoisted_7$1
7504
+ _hoisted_7$2
7362
7505
  ]),
7363
7506
  _: 1
7364
7507
  }),
@@ -7368,7 +7511,7 @@ const _sfc_main$6 = {
7368
7511
  title: "Download CSV"
7369
7512
  }, {
7370
7513
  default: withCtx(() => [
7371
- _hoisted_8$1
7514
+ _hoisted_8$2
7372
7515
  ]),
7373
7516
  _: 1
7374
7517
  }),
@@ -7378,7 +7521,7 @@ const _sfc_main$6 = {
7378
7521
  title: "Add file"
7379
7522
  }, {
7380
7523
  default: withCtx(() => [
7381
- _hoisted_9$1
7524
+ _hoisted_9$2
7382
7525
  ]),
7383
7526
  _: 1
7384
7527
  }),
@@ -7389,7 +7532,7 @@ const _sfc_main$6 = {
7389
7532
  disabled: selected.value == null
7390
7533
  }, {
7391
7534
  default: withCtx(() => [
7392
- _hoisted_10$1
7535
+ _hoisted_10$2
7393
7536
  ]),
7394
7537
  _: 1
7395
7538
  }, 8, ["disabled"])
@@ -7398,10 +7541,10 @@ const _sfc_main$6 = {
7398
7541
  };
7399
7542
  }
7400
7543
  };
7401
- var PureFiles = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-3c8f55ac"]]);
7402
- const _sfc_main$5 = {
7544
+ var PureFiles = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-3c8f55ac"]]);
7545
+ const _sfc_main$8 = {
7403
7546
  setup(__props) {
7404
- const { project: project2, addFile, updateFile, removeFiles } = useProject();
7547
+ const { project, addFile, updateFile, removeFiles } = useProject();
7405
7548
  const displayImportDialog = ref(false);
7406
7549
  const importedFiles = ref([]);
7407
7550
  const handleCSVImport = () => {
@@ -7428,11 +7571,11 @@ const _sfc_main$5 = {
7428
7571
  input.click();
7429
7572
  };
7430
7573
  const handleCSVDownload = () => {
7431
- const filename = prompt("File name", `${project2.value.shortname}`);
7574
+ const filename = prompt("File name", `${project.value.shortname}`);
7432
7575
  if (filename == null) {
7433
7576
  return;
7434
7577
  }
7435
- const csv = project2.value.files.list.map((o) => `${o.source},${o.name}`).join("\n");
7578
+ const csv = project.value.files.list.map((o) => `${o.source},${o.name}`).join("\n");
7436
7579
  const csvData = "data:text/ascii;charset=utf-8," + encodeURIComponent(csv);
7437
7580
  const a = document.createElement("a");
7438
7581
  a.href = csvData;
@@ -7447,13 +7590,13 @@ const _sfc_main$5 = {
7447
7590
  console.log("Too short to be an url:", file.source);
7448
7591
  return;
7449
7592
  }
7450
- const found = project2.value.files.list.find((f) => f.source === file.source);
7593
+ const found = project.value.files.list.find((f) => f.source === file.source);
7451
7594
  if (found != null) {
7452
7595
  if (found.name === "") {
7453
7596
  found.name = file.name;
7454
7597
  }
7455
7598
  } else {
7456
- project2.value.files.list.push(file);
7599
+ project.value.files.list.push(file);
7457
7600
  }
7458
7601
  });
7459
7602
  displayImportDialog.value = false;
@@ -7466,9 +7609,9 @@ const _sfc_main$5 = {
7466
7609
  onImport: appendFiles,
7467
7610
  onCancel: _cache[0] || (_cache[0] = ($event) => displayImportDialog.value = false)
7468
7611
  }, null, 8, ["files"])) : createCommentVNode("", true),
7469
- unref(project2) && unref(project2).files ? (openBlock(), createBlock(PureFiles, {
7612
+ unref(project) && unref(project).files ? (openBlock(), createBlock(PureFiles, {
7470
7613
  key: 1,
7471
- files: unref(project2).files.list,
7614
+ files: unref(project).files.list,
7472
7615
  onAddFile: unref(addFile),
7473
7616
  onRemoveFiles: unref(removeFiles),
7474
7617
  onUpdateFile: unref(updateFile),
@@ -7480,23 +7623,36 @@ const _sfc_main$5 = {
7480
7623
  }
7481
7624
  };
7482
7625
  var Settings_vue_vue_type_style_index_0_scoped_true_lang = "";
7483
- const _hoisted_1$3 = { class: "settings" };
7484
- const _hoisted_2$3 = { class: "content" };
7485
- const _sfc_main$4 = {
7626
+ const _hoisted_1$6 = { class: "content" };
7627
+ const _sfc_main$7 = {
7486
7628
  setup(__props) {
7487
7629
  return (_ctx, _cache) => {
7488
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
7489
- createVNode(ProjectInfo),
7490
- createElementVNode("div", _hoisted_2$3, [
7491
- createVNode(_sfc_main$9),
7492
- createVNode(_sfc_main$7),
7493
- createVNode(_sfc_main$5)
7494
- ])
7495
- ]);
7630
+ return openBlock(), createBlock(TwoCols, null, {
7631
+ side: withCtx(() => [
7632
+ createVNode(ProjectInfo)
7633
+ ]),
7634
+ content: withCtx(() => [
7635
+ createElementVNode("div", _hoisted_1$6, [
7636
+ createVNode(_sfc_main$c),
7637
+ createVNode(_sfc_main$a),
7638
+ createVNode(_sfc_main$8)
7639
+ ])
7640
+ ]),
7641
+ _: 1
7642
+ });
7496
7643
  };
7497
7644
  }
7498
7645
  };
7499
- var Settings = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-7df5bbe0"]]);
7646
+ var Settings = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-3f5ec6e5"]]);
7647
+ var Wrapper_vue_vue_type_style_index_0_lang = "";
7648
+ const _sfc_main$6 = {};
7649
+ const _hoisted_1$5 = { class: "app" };
7650
+ function _sfc_render$1(_ctx, _cache) {
7651
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
7652
+ renderSlot(_ctx.$slots, "default")
7653
+ ]);
7654
+ }
7655
+ var Wrapper = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$1]]);
7500
7656
  var _imports_0$1 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MDEuOTk0IDQwMS45OTQiIGhlaWdodD0iNDAxLjk5NCIgdmlld0JveD0iMCAwIDQwMS45OTQgNDAxLjk5NCIgd2lkdGg9IjQwMS45OTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iNTAiPjxwYXRoIGQ9Im00MDIuMDMyMjEgMjAxLjg0ODY4aC00MDAuMjkwNjIyOCIvPjxwYXRoIGQ9Im0yMDIuNzAwMzYgMi44NTE2ODA4djQwMC4yOTA2MTkyIi8+PC9nPjwvc3ZnPg==";
7501
7657
  var _imports_1 = "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE1MzYiIHdpZHRoPSIxNTM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im0xMDI0IDc2OGMwLTcwLjY2NjY3LTI1LTEzMS03NS0xODFzLTExMC4zMzMzMy03NS0xODEtNzUtMTMxIDI1LTE4MSA3NS03NSAxMTAuMzMzMzMtNzUgMTgxIDI1IDEzMSA3NSAxODEgMTEwLjMzMzMzIDc1IDE4MSA3NSAxMzEtMjUgMTgxLTc1IDc1LTExMC4zMzMzMyA3NS0xODF6bTUxMi0xMDl2MjIyYzAgOC0yLjY2NjcgMTUuNjY2NjctOCAyM3MtMTIgMTEuNjY2NjctMjAgMTNsLTI5NS4xMzE3LTEwLjc1MDAzYy0xMi42NjY3IDM2LTI3LjcwNjEgNjQuMjkzODYtNDEuMDM5NCA4OC45NjA1MyAyMy4zMzMzIDMzLjMzMzMgMTcxLjE3MTEgMTIwLjEyMjggMjE5LjE3MTEgMTc4Ljc4OTUgNi42NjY3IDggMTAgMTYuMzMzMyAxMCAyNXMtMyAxNi4zMzMzLTkgMjNjLTE4IDI0LjY2NjctNTEgNjAuNjY2Ny05OSAxMDhzLTc5LjMzMzMgNzEtOTQgNzFjLTggMC0xNi42NjY3LTMtMjYtOWwtMTkxLjAyNjM1LTIxOC4xMzE2Yy0yOS4zMzMzIDE1LjMzMzMtNjUuNzg1MSAzMi4wNzg5LTk3LjExODQzIDQyLjA3ODktMTAuNjY2NjcgOTAuNjY2NyAzOC44MTE0NSAyNTguNzE5NCAzMC4xNDQ3OCAyOTIuMDUyNy00LjY2NjY3IDE4LjY2NjctMTYuNjY2NjcgMjgtMzYgMjhoLTIyMmMtOS4zMzMzMyAwLTE3LjUtMi44MzMzLTI0LjUtOC41cy0xMC44MzMzMy0xMi44MzMzLTExLjUtMjEuNWwyMC45NDc0LTI5Mi4wOTIyYy0zMi42NjY2Ny0xMC42NjY2LTg5LjE3OTg0LTQ3LjQ3MzctMTE2LjUxMzE3LTYxLjQ3MzdsLTE2My40MzQyMyAyMzkuNTY1OXMtMTYuMTQ4MzggOS4zMDUzLTI1IDljLTkuMDk4OTItLjMxMzgtMTcuMzM4ODItNC4wMDk5LTI1LTExLTgzLjY4MDkxLTc2LjM1MTItMTM5LTEzMi0xNjUtMTY4LTQuNjY2NjctNi42NjY3LTctMTQuMzMzMy03LTIzIDAtOCAyLjY2NjY3LTE1LjY2NjcgOC0yMyA3MC4xMDAwOC02Ni43MDYyIDE1Mi41NDMyNy0xMjkuODc0MiAyMTkuMjEwNi0xOTYuMTQ0NzgtMTgtMzMuMzMzMzMtMjMuNTA4NzctNTguMTc1NDMtMzIuODQyMS05MC44NDIxbC0zMDUuMzY4NSAyMy45ODY4OGMtOC42NjY2NjctMS4zMzMzMy0xNS42NjY2NjctNS41LTIxLTEyLjUtNS4zMzMzMzMzLTctOC0xNC44MzMzMy04LTIzLjV2LTIyMmMwLTggMi42NjY2NjY3LTE1LjY2NjY3IDgtMjMgNS4zMzMzMzMtNy4zMzMzMyAxMS42NjY2NjctMTEuNjY2NjcgMTktMTNsMzE2LjUyNjQgNDEuMzQyMTVjOS4zMzMzMy0zMC42NjY2NyAyNi40MTIyOC03NS42MDk2MiA0My4wNzg5NS0xMDYuMjc2MzItMjYuNjY2NjctMzguMDAwMDMtMTk2LjkzODY4LTEzOS4wNjU4My0yNDEuNjA1MzUtMTkzLjA2NTgzLTYuNjY2NjctOC0xMC0xNi0xMC0yNCAwLTYuNjY2NyAzLTE0LjMzMzMgOS0yMyAxNy4zMzMzMy0yNCA1MC4xNjY2Ny01OS44MzMzIDk4LjUtMTA3LjVzNzkuODMzMzMtNzEuNSA5NC41LTcxLjVjOC42NjY2NyAwIDE3LjMzMzMzIDMuMzMzMyAyNiAxMGwxODAuODI4OTggMjM5LjU2NTljMjkuMzMzMzMtMTUuMzMzMyA5NC4zMzc3NC00NC4zMTU4IDEyNS42NzEwNy01NC4zMTU4LTcuNjg4Ni04Ni41ODc4LTU3LjE2NjcyLTI2OC45MTY4LTQ4LjUwMDA1LTMwMi4yNTAxIDQuNjY2NjctMTguNjY2NyAxNi42NjY2Ny0yOCAzNi0yOGgyMjJjOS4zMzMzMyAwIDE3LjUgMi44MzMzIDI0LjUgOC41czEwLjgzMzMzIDEyLjgzMzMgMTEuNSAyMS41bC0zNS4yMjM3MyAyOTYuMTcxMWMzMi42NjY2NyAxMC42NjY3IDk5LjM3NzI1IDM5LjMxNTggMTI2LjcxMDUzIDUzLjMxNThsMTY4LjUxMzItMjM1LjQ4NjljNi02IDE0LTkgMjQtOSA4LjY2NjcgMCAxNyAzLjMzMzMgMjUgMTAgODYgNzkuMzMzMyAxNDEgMTM2IDE2NSAxNzAgNC42NjY3IDUuMzMzMyA3IDEyLjY2NjcgNyAyMiAwIDgtMi42NjY3IDE1LjY2NjctOCAyMy01Ni44MTEzIDQ5LjEyNjUtMTQzLjEzNDQgMTI0LjE0OC0yMTcuMTcxMSAxOTAuMDI2MzUgMTcuMzMzMyAzMy4zMzMzIDMxIDc0LjE1NzkgNDEgMTA2LjE1NzlsMjk1LjE3MTEtMzMuMTg0MjVjOC42NjY3IDEuMzMzMzMgMTUuNjY2NyA1LjUgMjEgMTIuNXM4IDE0LjgzMzMzIDggMjMuNXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=";
7502
7658
  var _imports_2 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0NzUuMDg0IDQ3NS4wODQiIGhlaWdodD0iNDc1LjA4NCIgdmlld0JveD0iMCAwIDQ3NS4wODQgNDc1LjA4NCIgd2lkdGg9IjQ3NS4wODQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTQ2NC41MjQgNDEyLjg0Ni05Ny45MjktOTcuOTI1YzIzLjYtMzQuMDY4IDM1LjQwNi03Mi4wNDcgMzUuNDA2LTExMy45MTcgMC0yNy4yMTgtNS4yODQtNTMuMjQ5LTE1Ljg1Mi03OC4wODctMTAuNTYxLTI0Ljg0Mi0yNC44MzgtNDYuMjU0LTQyLjgyNS02NC4yNDFzLTM5LjM5Ni0zMi4yNjQtNjQuMjMzLTQyLjgyNmMtMjQuODQ1LTEwLjU2NS01MC44NzQtMTUuODQ3LTc4LjA5Mi0xNS44NDctMjcuMjE2IDAtNTMuMjQ3IDUuMjgyLTc4LjA4NSAxNS44NDctMjQuODQyIDEwLjU2Mi00Ni4yNTQgMjQuODM5LTY0LjI0MSA0Mi44MjYtMTcuOTg5IDE3Ljk4Ny0zMi4yNjQgMzkuNDAzLTQyLjgyNyA2NC4yNDEtMTAuNTY0IDI0Ljg0MS0xNS44NDYgNTAuODY5LTE1Ljg0NiA3OC4wODcgMCAyNy4yMTYgNS4yODIgNTMuMjM4IDE1Ljg0NiA3OC4wODMgMTAuNTYyIDI0LjgzOCAyNC44MzggNDYuMjQ3IDQyLjgyNyA2NC4yMzQgMTcuOTg3IDE3Ljk5MyAzOS40MDMgMzIuMjY0IDY0LjI0MSA0Mi44MzIgMjQuODQxIDEwLjU2MyA1MC44NjkgMTUuODQ0IDc4LjA4NSAxNS44NDQgNDEuODc5IDAgNzkuODUyLTExLjgwNyAxMTMuOTIyLTM1LjQwNWw5Ny45MjkgOTcuNjQxYzYuODUyIDcuMjMxIDE1LjQwNiAxMC44NDkgMjUuNjkzIDEwLjg0OSA5Ljg5NyAwIDE4LjQ2Ny0zLjYxNyAyNS42OTQtMTAuODQ5IDcuMjMtNy4yMyAxMC44NDgtMTUuNzk2IDEwLjg0OC0yNS42OTMuMDAzLTEwLjA4Mi0zLjUxOC0xOC42NTEtMTAuNTYxLTI1LjY5NHptLTE0OS45OTc2Ni0xMDguMzc2OTNjLTI1LjAyOSAyNS4wMzEtNzIuMjY4MzUgNDcuMjcyMjgtMTA3LjQ3NTA4IDQ2LjYwNzgxLTUzLjMzMDYxLTEuMDA2NTMtNzIuMjgzMzUtMTAuNDIyNzItMTA5LjQ4NDE0LTM4LjU1NTU0LTI2LjA4NjY2Mi0xOS43Mjc4NS00NC41OTE3MzEtNjcuMjI1NDEtNDcuNjExMzMyLTEwNi40NjQ1NC0yLjcwMTc4OC0zNS4xMDkyIDExLjE3OTQ4NC03NS43MzM3NyAzOS41NTkwNjUtMTA1LjQ1OCAzNi43MzI3NDctMzguNDczMTc0IDY4LjI3NzU1Ny00Ni42OTgzMzEgMTEwLjQ5MDY3Ny00OC42MTc4NzYgNDQuMjY5OC0yLjAxMzA2OCA4NC40NTUxNCAxOC41NTg2OTggMTA5LjQ4ODE0IDQzLjU4NTE5NiAyNS4wMzMgMjUuMDI2NSA0My4wMTA2NiA2OC4yNjEyNSA0MS41NzQxNCAxMDMuNDQ0OTQtMi4wMTMwNyA0OS4zMDQ0OC0xMS41MTI0NyA4MC40MjcwMS0zNi41NDE0NyAxMDUuNDU4MDF6IiBmaWxsPSIjZmZmIi8+PC9zdmc+";
@@ -7504,9 +7660,9 @@ var _imports_3 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3
7504
7660
  var _imports_4 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MDEuOTk0IDQwMS45OTQiIGhlaWdodD0iNDAxLjk5NCIgdmlld0JveD0iMCAwIDQwMS45OTQgNDAxLjk5NCIgd2lkdGg9IjQwMS45OTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLS42ODQxMDcgLTIuNjg1NTQ5KSI+PHBhdGggZD0ibTM5Ny43MTUxOSAyMTYuOTk4MzNjLTMuMTYyMTctMy4xNzE4LTcuMjU5NTYtNy4wNDEwOC0xMS41OTkwOS03LjA5MjY2bC01Ni4wODEyNi0uNjY2Nzd2LTUzLjU1NzExbDQwLjM0OTExLTQxLjU0MjgyYzUuMDU1MDQtNy40MTMyNiA4LjE5ODI4LTEwLjg0NTUxIDkuMTQxMjEtMTkuNDMxMjE3LjQ3MzYtNC4zMTIxNjMtLjE3NTQ0LTEyLjgwNzcyNi0zLjM0NTQ4LTE1Ljk4MDQwMS0zLjE2OTE2LTMuMTcwOTIxLTkuNzU0NjktNS42OTkzMjMtMTQuMDk0NTQtNS42OTkzMjMtNC4zMzk4NCAwLTE1LjczMDc3IDIuODg2MzQyLTIyLjkwMDQ5IDEwLjM5MDMyN2wtNDAuNjgyNDkgMzYuMzQ2ODE0LTE4OS42MzY3MyAxLjAwMDE0LTQ2LjMxNDY5Mi00Mi45ODA5MDVjLTMuMTcxODAzLTMuMTcwOTIxLTEzLjU5MzQ0Ni02LjA4OTg4NS0xNy45MzMzMDUtNi4wODk4ODUtNC4zNDI0NzIgMC0xMS4wOTY5NTggMi45MTk4NDctMTQuMjY4NzUgNi4wODk4ODUtMy4xNzE4MDMgMy4xNzE4MDQtNi4xOTU1ODIgNy45MzM3MzctNi40MjMyOCAxMi4yNjU4NS0uMzMzMzcyIDYuMzQyNzU5LS40MTU2OTIgMTEuMDk4NzI1IDMuNzU2MjQ5IDE3LjkzNTkyNWw0NS45ODEzMDcgNDYuOTgxNDZ2NDcuOTM3MDZsLTU1Ljc0Nzg4MyAxLjAwMDE0Yy04LjA1Mjk3OC4xNDQ0Ni0xMi43NjIxMDkzIDYuNTg3OS0xNC45MzI4ODExIDExLjQyNjU5LTIuODM4NDIwMyA1LjE2OTQ1LTEuNDI0MzQzNyAxNS4yNjM4Ni0xLjQyNDM0MzcgMTkuNjAwMTkgMCA0LjMzOTg2IDEuNTg2MzM3MiA2LjQzMzE2IDQuNzU4MTI5MiA5LjU5OTcgMy4xNzA5MjA2IDMuMTcxNzkgNi45MjU4NjQ2IDQuNzYyNTEgMTEuMjY1NzEyNiA0Ljc2MjUxaDU2LjA4MTI2NmMwIDI2LjY5OTQuNTA4Mzk0IDQxLjIzNzQ0IDEwLjE4Nzc2OSA2MC4yNjEybC00NS41NzA5MzIgNDkuODMwOTdjLTkuODM5NTM1IDkuNjc1MjMtNy43OTkxODggMTcuNTU1MjYtNy41NDc1MTcgMjEuOTc1NzcuMjQ5MDQ2IDQuNDE3MDMgNC45NjAzMiAxMy4xMzIzMiA4LjEzMjExMiAxNi4xNDAxMyAzLjE3MTc5MiAyLjY3MDIgNi43NTgzNyA0LjAwODM3IDEwLjc2NDExMyA0LjAwODM3IDQuNjczOTUzIDAgMTUuMzQ2NDA3LTEuNzQ1OTUgMjQuMDIwNjM2LTEyLjI1ODA2bDQwLjE0Nzc5LTQwLjQ5MjQ1LTIuNTc2NjMtLjgyMjc4YzIuMzM2MSAyLjE3Mzg2IDUuOTYzODkgNC44NzkxNiAxMC44OTAzOSA4LjEzMjUxIDQuOTI1NjMgMy4yNTMzNCAyLjg4OTE0IDQuNjIzNDYgOC45NzkzMSA3Ljg4NTU3IDYuMDk0NTQgMy4yNTMzNSAxMC40NjcyNiA2LjM3MjkgMTAuNDY3MjYgNi4zNzI5cy00My4wMjI4Ny0xNjkuNTIxMTMtOS4wNzcwNy0yMDUuMTIyOWwxMzguMTI2OC42NjY3NmMzNy4xOTcxOSAzNi4xNDkyNy01LjgxODkyIDIwMy42Mzg1OC01LjgxODkyIDIwMy42Mzg1OCA3Ljc0MTM0LTQuMDA0MTkgMTQuMTQzOTgtMTAuNDk0OTUgMjAuMzU3MzEtMTUuNDg0MzYgMS42NzQwNS0xLjMzODE2IDEuOTIyNjUtMS4wODg1NCAyLjc1NjU3LTEuOTE5ODRsNDguOTA4NjkgNDYuOTg2NjFjMy4xNTM1IDMuMDI5NiAxMi43NTkyMSAyLjQyMjcyIDE3LjI2NjU0IDIuNDIyNzIgNC41MDgyMSAwIDguMjIyNjEtMS42MjI2NyAxMS4yNzE4NS00Ljc1NjM4IDMuMTIzODctMy4yMTAzOCA1LjcyNzM5LTcuNjExMSA2LjA4NzI4LTExLjkzNTk4LjMzMzM4LTQuMDA2NDcuNzQyMDktMTIuNzk2MDEtMi40MjAxLTE1LjkzMzAxbC01Mi43NDQ5NS01Mi4zMjQ1N2MxMS4xODUwNC0xOS44NjI5NyAxMy40NDE1OC0zNS43MzEzMiAxMy40NDE1OC02NC4yNzA0N2w1Ni40MTQ2Ni0uMzMzMzdjNC4zMzk3Ny0uMDI1NyA4LjA5OTE4LTQuMjU0MjUgMTEuMjY1NzItNy40MjYwNSAzLjE2OTE2LTMuMTY5MTcgNC43NjMzNy02LjkyNTg3IDQuNzYzMzctMTEuMjY1NzEgMC00LjMzODk3LTEuMjU5OTYtMTMuMDk4OTktNC40NDE0LTE2LjI3MTY2eiIvPjxwYXRoIGQ9Im0yNTguNTY0NjIgMjkuMjFjLTE1LjYwNDY5LTE1LjYwNDY4OC0zNC41MDgzMi0yMy40MTAwOTc0LTU2LjcwNzM5LTIzLjQxMDA5NzQtMjIuMjAyNTggMC00MS4xMDA5NSA3LjgwNTQwOTQtNTYuNzA4MjYgMjMuNDEwMDk3NC0xNS42MDQ2OCAxNS42MDY0MzEtMjMuNDA1NyAzNC41MDkxODctMjMuNDA1NyA1Ni43MDczNzdoMTYwLjIyNjE3YzAtMjIuMTk0NjgzLTcuODAwMTUtNDEuMTAwOTQ2LTIzLjQwNDgyLTU2LjcwNzM3N3oiLz48L2c+PHJlY3QgaGVpZ2h0PSIyMjMuNDc2NTMiIHJ5PSIuNTQ5ODMzIiB3aWR0aD0iNDEuNDg5MzE1IiB4PSIxODAuMTI3MjMiIHk9IjE2My41NzM1NSIvPjwvZz48L3N2Zz4=";
7505
7661
  var _imports_5 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MDEuOTk0IDQwMS45OTQiIGhlaWdodD0iNDAxLjk5NCIgdmlld0JveD0iMCAwIDQwMS45OTQgNDAxLjk5NCIgd2lkdGg9IjQwMS45OTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTEyNi4xMDQzOSAzODguNDI2NzNjLTI3LjE4NTM0NS0xMS4xMDQ5Ny00OC45NzEwMDktMjUuOTg2OTMtNzAuMDQ2MDg2LTQ3Ljg0ODk3LTY2LjI1NDI3Ni02OC43MjgzMi03NS4wNTg0NTMtMTcyLjMzOTIyLTIxLjQ1Mzk1MS0yNTIuNDc4MjIyIDEwLjE1MDYzMS0xNS4xNzUyNDQgMzcuOTA3NjY3LTQyLjkzMjI3IDUzLjA4Mjg5My01My4wODI5MDMgMjIuOTEyNDU0LTE1LjMyNTk5NiA0OS4wMjQzOTQtMjYuMjQ3NzYxIDc1LjE2MDA1NC0zMS40MzY5NzY4IDE4Ljg5NDg5LTMuNzUxNTcwMDYgNTcuNTYzODItMy43NTE1NzAwNiA3Ni40NTg3MSAwIDYwLjk5NDgxIDEyLjExMDQ3NDggMTE0LjUwNDk5IDUzLjExMjIyODggMTQyLjczMTggMTA5LjM2NzEwMTggMTYuOTQ5NjYgMzMuNzgwMDMgMjQuMDA5MTEgNzguNTY1NzcgMTguMzg0NTEgMTE2LjYzMjktNi42NDQ4NCA0NC45NzIwOS0yNC45NDQxOSA4MS4yMjk5Ny01Ny40NTk0IDExMy44NDg2Mi0yMS43Nzg1NiAyMS44NDc4NS00NS42NTcxMyAzNy40NDEwMi03MS44NjMzOCA0Ni45MjgyLTEwLjkyNDAxIDMuOTU0NjctMTcuMzk3MjggMi43OTA5MS0xOC43NjExNS0zLjM3MjkzLS40MzgtMS45Nzk1LTEuMDAwMzEtMTkuNTQ0NS0xLjI0OTYtMzkuMDMzMy0uNDI1MzItMzMuMjUzMjgtLjY4MDQyLTM1Ljk0MDAxLTQuMTQ0NzgtNDMuNjUyNTctMi4wMzAzNC00LjUyMDEzLTQuNjc2ODgtOS4wMzYxNy01Ljg4MTIxLTEwLjAzNTY3LTMuNDQxNjMtMi44NTYzLTIuNTgyMDEtNC41ODEzMiAyLjI4Mjk3LTQuNTgxMzIgNy43MDA1MyAwIDI4Ljg5NTQ5LTYuMTE2NzUgNDAuODk2NDYtMTEuODAyNTMgMTMuMzk2MS02LjM0Njc3IDI3LjA5MDYxLTE5LjIyMDYyIDMzLjgwODItMzEuNzgyMjYgNy4xOTcwMi0xMy40NTgxNSAxMC43NjkxNy0zMC4yOTAyNSAxMC45NzA1OC01MS42OTM3OC4yMDg0NS0yMi4xNTIzOS0yLjgzMjEyLTMzLjMwOTExLTEzLjI0MDY4LTQ4LjU4MzgyLTYuMjY0NTEtOS4xOTMyOC02LjI3MzY1LTkuMjI5MDgtNC4zNzM0My0xNy4xNTAwMSAyLjI1MzY2LTkuMzk0MzUgMS4xNjE2OS0yOS4wODE3MTQtMi4xMTkxNC0zOC4yMDY0NzFsLTIuMjY0OTgtNi4yOTk0MTktOC40ODM0OC4xMzY5MTJjLTEwLjAwNzk2LjE2MTQ5Mi0yMS45OTgyNiA0LjUzMjk0OC0zNi42MTY5MyAxMy4zNDk4NzVsLTEwLjU4NDYyIDYuMzgzOTAzLTEyLjEzODAxLTIuODQ3MTNjLTE2LjY3Mjg1LTMuOTEwNzc3LTU4Ljg2NTIyLTMuOTU1MzIxLTc2LjQyMDUxLS4wODA4bC0xMi4zMTIzNSAyLjcxNzQ4LTEwLjQxMDI4LTYuMjc4NzQ3Yy0xNC41MzA3MS04Ljc2Mzc4NS0yNi40NjczMS0xMy4wODQwODQtMzYuNTk0MDUtMTMuMjQ0NjQxbC04LjYzNDk0Ny0uMTM2ODk4LTIuMTI5NTc1IDYuMjk5NDE5Yy0zLjEzMzQ4OSA5LjI2OTA4MS00LjE2MzA1MSAyOC45ODgxMjctMS45ODcxMTkgMzguMDU4NTA3IDEuODUyODQxIDcuNzIzNDMgMS44MTU3NTYgNy44Njg4OC00LjM3MjU0NCAxNy4xNDk5OC0xMC41MzEwMDkgMTUuNzk0MjUtMTMuNDk4ODk3IDI2LjY5NzY2LTEzLjI2NDY2NiA0OC43MzE4MS4yMjY5MzEgMjEuMzQ4NyAzLjgwNzgyOSAzOC4xNjQzMyAxMS4wMDgyMzUgNTEuNjkzNzggNi4yODkxNzEgMTEuODE3MjcgMjEuMzI5OTU2IDI2LjA2NzY3IDMzLjk4NDE5NiAzMi4xOTgzMiAxMC43MTQyNyA1LjE5MDc4IDMyLjg2ODUgMTEuMzU1MDMgNDAuODgzMjIgMTEuMzc1NDQgNS4yODU1My4wMTQyIDUuMzIyNzEuNDg1NjguNTM2MiA2LjgwOTI0LTIuMDg3MDYgMi43NTcyNS00LjgwNTQzIDguNTU2NjEtNi4wNDA4NCAxMi44ODc0NS0yLjEwNDc3IDcuMzc4NDgtMi43MzM0OSA4LjA0OTUtOS45ODUzMyAxMC42NTc0My0xNy4zNTQ1OCA2LjI0MTEtMzYuODI3ODIuMzE2MTMtNDYuODUxNzQ4LTE0LjI1NTI3LTEyLjI4MjQzNC0xNy44NTQ0My0yMy4wMjk4NjUtMjUuNTM2ODktMzUuNzI1MTM1LTI1LjUzNjg5LTguODk0OTkyIDAtMTAuMDY2OTk2IDMuODAzNDQtMi45ODY2NDIgOS42OTIzNiAxMi4zMTM1NTUgMTAuMjQxNSAxNy42MTM4MjUgMTYuNjI3MjEgMjIuODY4MDEgMjcuNTUxMDggNi42NTc2NDYgMTMuODQxODQgMTIuNjYzODI4IDIwLjE5MDY4IDI0LjIzNzE5NSAyNS42MTk5NiA3LjgyNTU3IDMuNjcxMTEgMTAuNDc2MDEgNC4wNjAzMSAyNy4xNzU4IDMuOTkwNTFsMTguNTA0NTEtLjA3NzJ2MTkuODU1N2MwIDEzLjQ2MDI0LS42MzQwOCAyMC42ODU4LTEuOTY4NTYgMjIuNDMyODEtMy42NTk5NSA0Ljc5MTI5LTkuMjc4OTMgNC41NzUxLTIyLjYwODQyLS44Njk5MXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=";
7506
7662
  var Nav_vue_vue_type_style_index_0_scoped_true_lang = "";
7507
- const _withScopeId$1 = (n) => (pushScopeId("data-v-0393dbf8"), n = n(), popScopeId(), n);
7508
- const _hoisted_1$2 = { id: "menu" };
7509
- const _hoisted_2$2 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("a", { href: "/project/new" }, [
7663
+ const _withScopeId$2 = (n) => (pushScopeId("data-v-4004adc6"), n = n(), popScopeId(), n);
7664
+ const _hoisted_1$4 = { id: "menu" };
7665
+ const _hoisted_2$4 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("a", { href: "/project/new" }, [
7510
7666
  /* @__PURE__ */ createElementVNode("img", {
7511
7667
  class: "button",
7512
7668
  title: "add project",
@@ -7514,38 +7670,38 @@ const _hoisted_2$2 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ create
7514
7670
  src: _imports_0$1
7515
7671
  })
7516
7672
  ], -1));
7517
- const _hoisted_3 = ["href"];
7518
- const _hoisted_4 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("img", {
7673
+ const _hoisted_3$2 = ["href"];
7674
+ const _hoisted_4$2 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7519
7675
  class: "button",
7520
7676
  title: "settings",
7521
7677
  alt: "settings",
7522
7678
  src: _imports_1
7523
7679
  }, null, -1));
7524
- const _hoisted_5 = [
7525
- _hoisted_4
7680
+ const _hoisted_5$1 = [
7681
+ _hoisted_4$2
7526
7682
  ];
7527
- const _hoisted_6 = ["href"];
7528
- const _hoisted_7 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("img", {
7683
+ const _hoisted_6$1 = ["href"];
7684
+ const _hoisted_7$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7529
7685
  class: "button",
7530
7686
  title: "search",
7531
7687
  alt: "search",
7532
7688
  src: _imports_2
7533
7689
  }, null, -1));
7534
- const _hoisted_8 = [
7535
- _hoisted_7
7690
+ const _hoisted_8$1 = [
7691
+ _hoisted_7$1
7536
7692
  ];
7537
- const _hoisted_9 = ["href"];
7538
- const _hoisted_10 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("img", {
7693
+ const _hoisted_9$1 = ["href"];
7694
+ const _hoisted_10$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7539
7695
  class: "button",
7540
7696
  title: "documentation",
7541
7697
  alt: "documentation",
7542
7698
  src: _imports_3
7543
7699
  }, null, -1));
7544
- const _hoisted_11 = [
7545
- _hoisted_10
7700
+ const _hoisted_11$1 = [
7701
+ _hoisted_10$1
7546
7702
  ];
7547
- const _hoisted_12 = ["href"];
7548
- const _hoisted_13 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("img", {
7703
+ const _hoisted_12$1 = ["href"];
7704
+ const _hoisted_13 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7549
7705
  class: "button",
7550
7706
  title: "report a bug",
7551
7707
  alt: "report a bug",
@@ -7555,7 +7711,7 @@ const _hoisted_14 = [
7555
7711
  _hoisted_13
7556
7712
  ];
7557
7713
  const _hoisted_15 = ["href"];
7558
- const _hoisted_16 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("img", {
7714
+ const _hoisted_16 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7559
7715
  class: "button",
7560
7716
  title: "join our github project",
7561
7717
  alt: "join our github project",
@@ -7565,71 +7721,73 @@ const _hoisted_16 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createE
7565
7721
  const _hoisted_17 = [
7566
7722
  _hoisted_16
7567
7723
  ];
7568
- const _hoisted_18 = {
7724
+ const _hoisted_18 = { class: "login" };
7725
+ const _hoisted_19 = { key: 0 };
7726
+ const _hoisted_20 = ["href"];
7727
+ const _hoisted_21 = /* @__PURE__ */ createTextVNode(" (");
7728
+ const _hoisted_22 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("a", { href: "/logout" }, "Log Out", -1));
7729
+ const _hoisted_23 = /* @__PURE__ */ createTextVNode(") ");
7730
+ const _hoisted_24 = {
7569
7731
  key: 1,
7570
- class: "login"
7732
+ href: "/auth/github"
7571
7733
  };
7572
- const _hoisted_19 = ["href"];
7573
- const _hoisted_20 = /* @__PURE__ */ createTextVNode(" (");
7574
- const _hoisted_21 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("a", { href: "/logout" }, "Log Out", -1));
7575
- const _hoisted_22 = /* @__PURE__ */ createTextVNode(") ");
7576
- const _sfc_main$3 = {
7734
+ const _sfc_main$5 = {
7577
7735
  setup(__props) {
7578
7736
  const { githubURL, issuesURL, searchURL, docURL } = inject("config");
7579
7737
  const user = inject("user");
7580
7738
  const displaySettings = inject("displaySettings");
7581
- const { project: project2 } = useProject();
7739
+ const { project } = useProject();
7582
7740
  return (_ctx, _cache) => {
7583
- return openBlock(), createElementBlock("nav", _hoisted_1$2, [
7584
- _hoisted_2$2,
7585
- unref(displaySettings) && unref(project2) != null ? (openBlock(), createElementBlock("a", {
7741
+ return openBlock(), createElementBlock("nav", _hoisted_1$4, [
7742
+ _hoisted_2$4,
7743
+ unref(displaySettings) && unref(project) != null ? (openBlock(), createElementBlock("a", {
7586
7744
  key: 0,
7587
- href: `/project/${unref(project2).shortname}/settings`
7588
- }, _hoisted_5, 8, _hoisted_3)) : createCommentVNode("", true),
7745
+ href: `/project/${unref(project).shortname}/settings`
7746
+ }, _hoisted_5$1, 8, _hoisted_3$2)) : createCommentVNode("", true),
7589
7747
  createElementVNode("a", {
7590
7748
  href: unref(searchURL),
7591
7749
  target: "_blank"
7592
- }, _hoisted_8, 8, _hoisted_6),
7593
- createElementVNode("a", { href: unref(docURL) }, _hoisted_11, 8, _hoisted_9),
7750
+ }, _hoisted_8$1, 8, _hoisted_6$1),
7751
+ createElementVNode("a", { href: unref(docURL) }, _hoisted_11$1, 8, _hoisted_9$1),
7594
7752
  createElementVNode("a", {
7595
7753
  href: unref(issuesURL),
7596
7754
  target: "_blank"
7597
- }, _hoisted_14, 8, _hoisted_12),
7755
+ }, _hoisted_14, 8, _hoisted_12$1),
7598
7756
  createElementVNode("a", {
7599
7757
  href: unref(githubURL),
7600
7758
  target: "_blank"
7601
7759
  }, _hoisted_17, 8, _hoisted_15),
7602
- unref(user) != null ? (openBlock(), createElementBlock("div", _hoisted_18, [
7603
- createElementVNode("span", null, [
7760
+ createElementVNode("div", _hoisted_18, [
7761
+ unref(user) != null ? (openBlock(), createElementBlock("span", _hoisted_19, [
7604
7762
  createElementVNode("a", {
7605
- href: unref(user).brainboxURL
7606
- }, toDisplayString(unref(user).nickname), 9, _hoisted_19),
7607
- _hoisted_20,
7763
+ href: `/user/${unref(user).username}`
7764
+ }, toDisplayString(unref(user).username), 9, _hoisted_20),
7608
7765
  _hoisted_21,
7609
- _hoisted_22
7610
- ])
7611
- ])) : createCommentVNode("", true)
7766
+ _hoisted_22,
7767
+ _hoisted_23
7768
+ ])) : (openBlock(), createElementBlock("a", _hoisted_24, "Log in with GitHub"))
7769
+ ])
7612
7770
  ]);
7613
7771
  };
7614
7772
  }
7615
7773
  };
7616
- var Nav = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-0393dbf8"]]);
7774
+ var Nav = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-4004adc6"]]);
7617
7775
  var Header_vue_vue_type_style_index_0_scoped_true_lang = "";
7618
- const _hoisted_1$1 = {
7776
+ const _hoisted_1$3 = {
7619
7777
  class: "logo",
7620
7778
  href: "/"
7621
7779
  };
7622
- const _hoisted_2$1 = ["src", "alt"];
7623
- const _sfc_main$2 = {
7780
+ const _hoisted_2$3 = ["src", "alt"];
7781
+ const _sfc_main$4 = {
7624
7782
  setup(__props) {
7625
7783
  const { logoURL, siteName } = inject("config");
7626
7784
  return (_ctx, _cache) => {
7627
7785
  return openBlock(), createElementBlock("header", null, [
7628
- createElementVNode("a", _hoisted_1$1, [
7786
+ createElementVNode("a", _hoisted_1$3, [
7629
7787
  createElementVNode("img", {
7630
7788
  src: unref(logoURL),
7631
7789
  alt: unref(siteName)
7632
- }, null, 8, _hoisted_2$1)
7790
+ }, null, 8, _hoisted_2$3)
7633
7791
  ]),
7634
7792
  renderSlot(_ctx.$slots, "default", {}, void 0, true),
7635
7793
  createVNode(Nav)
@@ -7637,12 +7795,12 @@ const _sfc_main$2 = {
7637
7795
  };
7638
7796
  }
7639
7797
  };
7640
- var Header = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-251127d1"]]);
7798
+ var Header = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-12a1788c"]]);
7641
7799
  var _imports_0 = "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI3MiIgd2lkdGg9IjI3Ni4yNzM0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTQwLjI4MTI1IDBjLTYzLjI3ODEyMyAwLTExNi4zMTM1MDkgNDMuMjg0OTg2LTEzMS41IDEwMS44MTI1aDcuMjE4NzUgNXYzLjMxMjVjLjYwNDAxLS40MDU3NyAxLjExNzU2LS45NTcxOSAxLjc1LTEuMzEyNWguMDMxMjVjMS4wOTMxOC0uNjA3MzEgMi4yMzY1NTctMS4xNDAwNCAzLjQwNjI1LTEuNTkzNzVzMi4zODkwMTgtLjgyMzcxIDMuNjI1LTEuMTI1YzIuNDcxOTY1LS42MDI1OSA1LjA0Mjk3LS45MDYyMiA3LjcxODc1LS45MDYyNSAyLjE2ODEwMy4wMDAwMiA0LjI3NDQ0My4xOTA2NSA2LjI4MTI1LjU2MjVzMy45MjExNzEuOTQzMTUgNS43MTg3NSAxLjY4NzUgMy40OTA4MyAxLjY2Mzc0IDUuMDMxMjUgMi43ODEyNSAyLjkyMDkyIDIuNDE0OSA0LjE1NjI1IDMuOTA2MjVoLjAzMTI1Yy4wMDU1NS4wMDY2OC0uMDA1NTUuMDI0NTcgMCAuMDMxMjUgMS4yMzM4MDIgMS40ODYyOSAyLjI5Njk4OSAzLjExMzg1IDMuMTg3NSA0Ljg3NXMxLjYxNzA0OSAzLjY2OTk3IDIuMTg3NSA1LjY4NzUuOTc2MzggNC4xNTA4MiAxLjI1IDYuNDA2MjUuNDA2MjMgNC42MTg5MS40MDYyNSA3LjA5Mzc1djQwLjE4NzUgNWgtNS0xMC45Mzc1LTV2LTUtMzkuODQzNzVjLS4wMDAwMi0yLjgyNzQtLjI3NTMzNy01LjExMDEtLjc1LTYuOTM3NXMtMS4xNDg2Ny0zLjE5OTQ4LTEuODc1LTQuMTI1Yy0uNzI5NTA1LS45Mjk0OS0xLjUzOTI1Ni0xLjU5OTU3LTIuNjU2MjUtMi4wNjI1cy0yLjU0MTIzLS43MTg3My00LjQ2ODc1LS43MTg3NWMtMS4yMTE0MDguMDAwMDEtMi4yODEzMjguMDg2MDgtMy4yODEyNS4yNXMtMS45MjA1NjMuNDE4ODctMi43NS43NS0xLjU4MTI5Ny43NDgzNi0yLjI4MTI1IDEuMjUtMS4zNTcyOCAxLjA3NDU0LTEuOTY4NzUgMS43NWMtLjYxMjM2LjY3NjQ1LTEuMTUyNzU4IDEuNDMyMDctMS42MjUgMi4yNXMtLjg2NDAyNiAxLjcwMDYxLTEuMTg3NSAyLjY4NzUtLjU4Mzk0MiAyLjA2NjY3LS43NSAzLjI1LS4yNTAwMDcgMi40Njc3Ny0uMjUgMy44NzV2MzcuNjI1IDVoLTUtNC45MDYyNWMxNy44MzAzNjIgNTQuMzI0NzggNjguODk4ODI1IDkzLjU5Mzc1IDEyOS4xODc1IDkzLjU5Mzc1IDYwLjI5NjcxIDAgMTExLjQxODMyLTM5LjI0NDA0IDEyOS4yNDIxOS05My41ODAwOGgtNC4wMTE3Mi0xMS4yNWMtOS4wNjQxMiAwLTE2LjE4ODY0LTEuNDMxNjUtMjAuOTY4NzUtNi4wOTM3NXYtLjAzMTI1aC0uMDMxMjVjLTQuNzY4MS00LjcwOTIyLTYuMjgxMjYtMTEuODQyNjUtNi4yODEyNS0yMC44MTI1di0zMS4xNTYyNWgtMy4wMzEyNS01di01LTguNS01aDUgMy4wMzEyNXYtMTMuOTM3NDk4LTVoNSAxMSA1djUgMTMuOTM3NDk4aDE3LjUzMTI1IDV2NSA4LjUgNWgtNS0xNy41MzEyNXYzMS4xNTYyNWMtLjAwMDAyIDQuMTkzNjcuOTMxMjQgNi42MzE3Mi45MDQzIDYuOTYyODkuMzkxMjUuMTE4MDQgMi4xMTI1My44MTgzNyA1LjM3Njk1LjgxODM2aDExLjI1IDV2NSA5LjE1NjI1IDEuODU5MzhjMy43NDYxNy0xMi40MzcxNiA1Ljc2OTUzLTI1LjYyMTAzIDUuNzY5NTMtMzkuMjc5MyAwLTc1LjExMDcyOS02MC44ODkyNy0xMzYtMTM2LTEzNnptMTMwLjIzMDQ3IDE3NS4yNzkzYy0uMzE3IDEuMDUyNDItLjY0NjY0IDIuMDk5MTItLjk4ODI4IDMuMTQwNjJoLjk4ODI4em0tMTY0LjQwNjI1LTc1LjA3ODEzYzEwLjQ5OTY1LjAwMDA3IDE5LjI5ODAzIDIuODQ1OSAyNS4yMTg3NSA5LjA2MjUgNS45MjQ0NiA2LjIyMDgyIDguNTMxMTcgMTUuMjI0MDggOC41MzEyNSAyNi4xNTYyNXYzOCA1aC01LTEwLjk2ODc1LTV2LTIuOTM3NWMtLjY2NjA0LjQyNzY0LTEuMzI4MS44ODM0Ni0yLjAzMTI1IDEuMjVsLS4wMzEyNS4wMzEyNWMtNC41OTcxNSAyLjM0NzQ1LTkuOTU2NTggMy40MDYyNS0xNS45Mzc1IDMuNDA2MjUtNy43NTA0NTEgMC0xNC42NTI4MjEtMi4zMjU4LTE5LjcxODc1MS03LjA5Mzc1aC0uMDMxMjVsLS4wMzEyNS0uMDMxMjVjLTUuMDA3ODctNC44MDk1Mi03LjUzMTI2LTExLjUzNzIxLTcuNTMxMjUtMTktLjAwMDAxLTguNjA1MzggMy4yMTQzOC0xNi4xNzIyMiA5LjQ2ODc1LTIwLjkzNzUgNi4yOTk4Ni00Ljc2MjA3IDE0LjkwOTgxLTYuNzE4NzEgMjUuNTAwMDAxLTYuNzE4NzVoOS43MTg3NWMtLjUwMzY1LTEuNTUwODktMS4yNjY1LTIuODM2MDYtMi41MzEyNS0zLjg3NWwtLjAzMTI1LS4wMzEyNWgtLjAzMTI1Yy0yLjE0ODg5LTEuODEyMjUtNS40NzI2Ni0yLjk5OTk1LTEwLjY4NzUtMy0zLjQwNzQuMDAwMDUtNi43MDI4NjEuNDA5MTQtOS45MDYyNTEgMS4yMTg3NS0zLjE5NTAyLjgwNzU4LTYuMjQ3MTkgMi4wMjkwMS05LjIxODc1IDMuNjU2MjVsLTcuNDA2MjUgNC4wMzEyNXYtOC40Mzc1LTEwLjA5Mzc1LTMuNDM3NWwzLjE4NzUtMS4yNWM0LjIxOTAzLTEuNjI5MDcgOC4zODA1NC0yLjg0MDUgMTIuNDM3NS0zLjY1NjI1LjAyMTgxLS4wMDQzOS4wNDA2OS0uMDI2ODkuMDYyNS0uMDMxMjV2LjAzMTI1YzQuMDU3MjQtLjg1MDAxIDguMDQ5NDkxLTEuMzEyNDMgMTEuOTY4NzUxLTEuMzEyNXptNzQuNzE4NzUgMGMxMC40OTk2NS4wMDAwNyAxOS4yOTgwMiAyLjg0NTg5IDI1LjIxODc1IDkuMDYyNSA1LjkyNDQ1IDYuMjIwODIgOC40OTk5NCAxNS4yMjQwNyA4LjUgMjYuMTU2MjV2MzggNWgtNS0xMC45Mzc1LTV2LTIuOTM3NWMtLjY3MDM3LjQzMS0xLjMyMzI1Ljg4MDkzLTIuMDMxMjUgMS4yNWgtLjAzMTI1di4wMzEyNWMtNC41OTcxNSAyLjM0NzQ1LTkuOTg3ODQgMy40MDYyNS0xNS45Njg3NSAzLjQwNjI1LTcuNzUwNDUgMC0xNC42NTI4Mi0yLjMyNTgtMTkuNzE4NzUtNy4wOTM3NWwtLjAzMTI1LS4wMzEyNWMtNS4wMDc4Ny00LjgwOTUyLTcuNTMxMjYtMTEuNTM3MjEtNy41MzEyNS0xOS0uMDAwMDEtOC42MDUzOCAzLjE4MzEzLTE2LjE3MjIyIDkuNDM3NS0yMC45Mzc1aC4wMzEyNWM2LjI5OTg2LTQuNzYyMDcgMTQuOTA5OC02LjcxODcxIDI1LjUtNi43MTg3NWg5LjY4NzVjLS41MDM2OC0xLjU1MDUzLTEuMjY2Ny0yLjgzNjIzLTIuNTMxMjUtMy44NzV2LS4wMzEyNWgtLjAzMTI1Yy0yLjE0ODkxLTEuODEyMjYtNS40NzI2NS0yLjk5OTk1LTEwLjY4NzUtMy0zLjQwNzQuMDAwMDUtNi43MDI4Ni40MDkxNC05LjkwNjI1IDEuMjE4NzUtMy4xOTUwMi44MDc1OC02LjI3ODQ0IDIuMDI5MDEtOS4yNSAzLjY1NjI1bC03LjM3NSA0LjAzMTI1di04LjQzNzUtMTAuMDkzNzUtMy40Mzc1bDMuMTg3NS0xLjI1YzQuMjQxNzItMS42Mzc4MiA4LjM5MDgzLTIuODcxODUgMTIuNDY4NzUtMy42ODc1di4wMzEyNWM0LjA2Nzc5LS44NTQyNiA4LjA3MDg0LTEuMzEyNDMgMTItMS4zMTI1em0tNjcuODEyNSA0NC43NWMtOC40NjEzNC4wMDAwMy0xNC4wMzMzMDEgMS4yNTc0LTE1LjgxMjUwMSAyLjMxMjUtMS44OTMyOCAxLjEyMjc2LTIuNjg3NTIgMi4zNTA2Mi0yLjY4NzUgNi4wNjI1LS4wMDAwMSAyLjc3NTUxLjY1MDM1IDQuMTgyMDkgMi4xMjUgNS41MzEyNS4wMTE2OC4wMTA2OS4wMTk0Ni4wMjA1Ny4wMzEyNS4wMzEyNSAxLjUxNDM2IDEuMzE0NDQgMy42MDI4MzEgMi4wOTM3NiA3LjEyNTAwMSAyLjA5Mzc1IDQuODkwMjcuMDAwMDEgOC4wMjA0NC0xLjQxNTM0IDEwLjc4MTI1LTQuNjU2MjUgMi4zOTE4OC0yLjgwMzQzIDMuNzc2MzctNi40ODYwNSA0LjE1NjI1LTExLjM3NXptNzQuNzE4NzUgMGMtOC40NjEzNC4wMDAwMy0xNC4wNjQ1NSAxLjI1NzQtMTUuODQzNzUgMi4zMTI1LTEuODkzMjggMS4xMjI3Ni0yLjY1NjI3IDIuMzUwNjItMi42NTYyNSA2LjA2MjUtLjAwMDAxIDIuNzk3NDkuNjU2ODEgNC4yMDM2NSAyLjE1NjI1IDUuNTYyNSAxLjUxMjk1IDEuMzA0NTIgMy42MTc4OSAyLjA5Mzc2IDcuMTI1IDIuMDkzNzUgNC44OTAyNy4wMDAwMSA3Ljk4OTE5LTEuNDE1MzQgMTAuNzUtNC42NTYyNSAyLjM5MTg4LTIuODAzNDMgMy44MDc2Mi02LjQ4NjA1IDQuMTg3NS0xMS4zNzV6IiBmaWxsPSIjZmZmIi8+PC9zdmc+";
7642
7800
  var Footer_vue_vue_type_style_index_0_scoped_true_lang = "";
7643
- const _sfc_main$1 = {};
7644
- const _withScopeId = (n) => (pushScopeId("data-v-79b1b506"), n = n(), popScopeId(), n);
7645
- const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("p", null, [
7801
+ const _sfc_main$3 = {};
7802
+ const _withScopeId$1 = (n) => (pushScopeId("data-v-79b1b506"), n = n(), popScopeId(), n);
7803
+ const _hoisted_1$2 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("p", null, [
7646
7804
  /* @__PURE__ */ createElementVNode("a", {
7647
7805
  target: "_blank",
7648
7806
  href: "http://neuroanatomy.github.io"
@@ -7657,51 +7815,199 @@ const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElem
7657
7815
  href: "http://neuroanatomy.github.io"
7658
7816
  }, " groupe de neuroanatomie appliqu\xE9e et th\xE9orique ")
7659
7817
  ], -1));
7660
- const _hoisted_2 = [
7661
- _hoisted_1
7818
+ const _hoisted_2$2 = [
7819
+ _hoisted_1$2
7662
7820
  ];
7663
7821
  function _sfc_render(_ctx, _cache) {
7664
- return openBlock(), createElementBlock("footer", null, _hoisted_2);
7822
+ return openBlock(), createElementBlock("footer", null, _hoisted_2$2);
7665
7823
  }
7666
- var Footer = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__scopeId", "data-v-79b1b506"]]);
7667
- var SettingsPage_vue_vue_type_style_index_0_scoped_true_lang = "";
7668
- const _sfc_main = {
7824
+ var Footer = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render], ["__scopeId", "data-v-79b1b506"]]);
7825
+ const _sfc_main$2 = {
7669
7826
  props: {
7670
- projectID: {
7671
- type: String,
7827
+ project: {
7828
+ type: Object,
7672
7829
  required: true
7673
7830
  }
7674
7831
  },
7675
7832
  setup(__props) {
7676
7833
  const props = __props;
7677
- console.log(inject("config"));
7678
- const { project: project2, fetchProject, updateProject } = useProject();
7679
- const content = ref(project2.name);
7834
+ const { project, setProject, updateProject } = useProject();
7835
+ setProject(props.project);
7836
+ const content = ref(project.name);
7680
7837
  const onTitleInput = (event) => {
7681
7838
  content.value = event.currentTarget.textContent;
7682
7839
  updateProject({ name: content.value });
7683
7840
  };
7684
- fetchProject(props.projectID);
7685
7841
  return (_ctx, _cache) => {
7686
- return openBlock(), createElementBlock(Fragment, null, [
7687
- createVNode(Header, null, {
7688
- default: withCtx(() => [
7689
- createElementVNode("span", {
7690
- contenteditable: "true",
7691
- onInput: onTitleInput,
7692
- placeholder: "Enter a project name",
7693
- class: normalizeClass({ title: true, empty: !content.value || content.value.trim().length === 0 })
7694
- }, toDisplayString(content.value), 35)
7842
+ return openBlock(), createBlock(Wrapper, null, {
7843
+ default: withCtx(() => [
7844
+ createVNode(Header, null, {
7845
+ default: withCtx(() => [
7846
+ createElementVNode("span", {
7847
+ contenteditable: "true",
7848
+ onInput: onTitleInput,
7849
+ placeholder: "Enter a project name",
7850
+ class: normalizeClass({ title: true, empty: !content.value || content.value.trim().length === 0 })
7851
+ }, toDisplayString(content.value), 35)
7852
+ ]),
7853
+ _: 1
7854
+ }),
7855
+ createElementVNode("main", null, [
7856
+ unref(project) != null ? (openBlock(), createBlock(Settings, { key: 0 })) : createCommentVNode("", true)
7695
7857
  ]),
7696
- _: 1
7697
- }),
7698
- createElementVNode("main", null, [
7699
- unref(project2) != null ? (openBlock(), createBlock(Settings, { key: 0 })) : createCommentVNode("", true)
7858
+ createVNode(Footer)
7700
7859
  ]),
7701
- createVNode(Footer)
7702
- ], 64);
7860
+ _: 1
7861
+ });
7862
+ };
7863
+ }
7864
+ };
7865
+ const _hoisted_1$1 = { class: "title" };
7866
+ const _hoisted_2$1 = { id: "userImage" };
7867
+ const _hoisted_3$1 = ["src"];
7868
+ const _hoisted_4$1 = { id: "userDescription" };
7869
+ const _sfc_main$1 = {
7870
+ props: {
7871
+ user: {
7872
+ type: Object,
7873
+ required: true
7874
+ }
7875
+ },
7876
+ setup(__props) {
7877
+ return (_ctx, _cache) => {
7878
+ return openBlock(), createBlock(Wrapper, null, {
7879
+ default: withCtx(() => [
7880
+ createVNode(Header, null, {
7881
+ default: withCtx(() => [
7882
+ createElementVNode("span", _hoisted_1$1, toDisplayString(__props.user.nickname), 1)
7883
+ ]),
7884
+ _: 1
7885
+ }),
7886
+ createElementVNode("main", null, [
7887
+ createVNode(TwoCols, null, {
7888
+ side: withCtx(() => [
7889
+ createElementVNode("div", _hoisted_2$1, [
7890
+ createElementVNode("img", {
7891
+ alt: "user avatar",
7892
+ src: __props.user.avatarURL,
7893
+ style: { "width": "100%" }
7894
+ }, null, 8, _hoisted_3$1)
7895
+ ]),
7896
+ createElementVNode("div", _hoisted_4$1, [
7897
+ createElementVNode("h1", null, toDisplayString(__props.user.name), 1),
7898
+ createElementVNode("h2", null, toDisplayString(__props.user.nickname), 1),
7899
+ createElementVNode("p", null, "Joined " + toDisplayString(new Date(__props.user.joined).toDateString()), 1),
7900
+ renderSlot(_ctx.$slots, "side")
7901
+ ])
7902
+ ]),
7903
+ content: withCtx(() => [
7904
+ renderSlot(_ctx.$slots, "content")
7905
+ ]),
7906
+ _: 3
7907
+ })
7908
+ ]),
7909
+ createVNode(Footer)
7910
+ ]),
7911
+ _: 3
7912
+ });
7913
+ };
7914
+ }
7915
+ };
7916
+ var NewProjectPage_vue_vue_type_style_index_0_scoped_true_lang = "";
7917
+ const _withScopeId = (n) => (pushScopeId("data-v-34344f58"), n = n(), popScopeId(), n);
7918
+ const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("span", { class: "title" }, "BrainBox", -1));
7919
+ const _hoisted_2 = { class: "container" };
7920
+ const _hoisted_3 = { class: "inner" };
7921
+ const _hoisted_4 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("h1", null, "Create a new project", -1));
7922
+ const _hoisted_5 = { class: "warning" };
7923
+ const _hoisted_6 = /* @__PURE__ */ createTextVNode(" The project ");
7924
+ const _hoisted_7 = ["href"];
7925
+ const _hoisted_8 = /* @__PURE__ */ createTextVNode(" already exists ");
7926
+ const _hoisted_9 = { class: "warning" };
7927
+ const _hoisted_10 = { class: "actions" };
7928
+ const _hoisted_11 = /* @__PURE__ */ createTextVNode(" Create Project ");
7929
+ const _hoisted_12 = /* @__PURE__ */ createTextVNode("Cancel");
7930
+ const _sfc_main = {
7931
+ props: {
7932
+ onKeyDown: Function,
7933
+ validInput: Boolean,
7934
+ existingProject: Boolean
7935
+ },
7936
+ setup(__props) {
7937
+ const createProject = (value) => {
7938
+ location.pathname = `/project/${value}/settings`;
7939
+ };
7940
+ const cancel = () => location.assign("/");
7941
+ return (_ctx, _cache) => {
7942
+ return openBlock(), createBlock(Wrapper, null, {
7943
+ default: withCtx(() => [
7944
+ createVNode(Header, null, {
7945
+ default: withCtx(() => [
7946
+ _hoisted_1
7947
+ ]),
7948
+ _: 1
7949
+ }),
7950
+ createElementVNode("main", null, [
7951
+ createElementVNode("div", _hoisted_2, [
7952
+ createElementVNode("div", _hoisted_3, [
7953
+ _hoisted_4,
7954
+ createElementVNode("p", null, [
7955
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
7956
+ ]),
7957
+ createElementVNode("input", {
7958
+ class: "input",
7959
+ type: "text",
7960
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.handleNameChange && _ctx.handleNameChange(...args)),
7961
+ onKeyup: _cache[1] || (_cache[1] = ($event) => {
7962
+ __props.onKeyDown($event);
7963
+ _ctx.value = $event.target.value;
7964
+ }),
7965
+ placeholder: "Enter the project short name"
7966
+ }, null, 32),
7967
+ withDirectives(createElementVNode("div", _hoisted_5, [
7968
+ _hoisted_6,
7969
+ createElementVNode("a", {
7970
+ href: `/project/${_ctx.value}`
7971
+ }, [
7972
+ createElementVNode("strong", null, toDisplayString(_ctx.value), 1)
7973
+ ], 8, _hoisted_7),
7974
+ _hoisted_8
7975
+ ], 512), [
7976
+ [vShow, __props.existingProject]
7977
+ ]),
7978
+ withDirectives(createElementVNode("div", _hoisted_9, " This name is not allowed. Project short names can only contain letters and numbers ", 512), [
7979
+ [vShow, !__props.validInput]
7980
+ ])
7981
+ ]),
7982
+ createElementVNode("div", _hoisted_10, [
7983
+ createVNode(Button, {
7984
+ disabled: !__props.validInput || __props.existingProject,
7985
+ onClick: _cache[2] || (_cache[2] = ($event) => createProject(_ctx.value)),
7986
+ class: "push-button"
7987
+ }, {
7988
+ default: withCtx(() => [
7989
+ _hoisted_11
7990
+ ]),
7991
+ _: 1
7992
+ }, 8, ["disabled"]),
7993
+ createVNode(Button, {
7994
+ class: "push-button",
7995
+ onClick: cancel
7996
+ }, {
7997
+ default: withCtx(() => [
7998
+ _hoisted_12
7999
+ ]),
8000
+ _: 1
8001
+ })
8002
+ ])
8003
+ ])
8004
+ ]),
8005
+ createVNode(Footer)
8006
+ ]),
8007
+ _: 3
8008
+ });
7703
8009
  };
7704
8010
  }
7705
8011
  };
7706
- var SettingsPage = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-06da6966"]]);
7707
- export { Access, _sfc_main$7 as Annotations, Autocomplete, Button, _sfc_main$9 as Collaborators, _sfc_main$5 as Files, Footer, Header, ImportFilesDialog, Nav, ProjectInfo, PureAnnotations, PureCollaborators, PureFiles, Select, Settings, SettingsPage, Table, TextArea, TextInput };
8012
+ var NewProjectPage = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-34344f58"]]);
8013
+ export { Access, _sfc_main$a as Annotations, Autocomplete, Button, Checkbox, _sfc_main$c as Collaborators, _sfc_main$8 as Files, Footer, Header, ImportFilesDialog, Nav, NewProjectPage, ProjectInfo, PureAnnotations, PureCollaborators, PureFiles, Select, Settings, _sfc_main$2 as SettingsPage, Tab, Table, Tabs, TextArea, TextInput, _sfc_main$1 as UserPage, Wrapper };