nwl-components 0.0.1 → 0.0.5

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
+ ]);
346
412
  };
347
413
  }
348
414
  };
349
- var Table = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-6416d86a"]]);
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
+ ]);
430
+ };
431
+ }
432
+ };
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,21 +6669,28 @@ 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,
6560
6676
  loading: true
6561
6677
  });
6562
6678
  function useProject() {
6563
- const service = new ProjectService(inject("baseURL"));
6679
+ const { baseURL } = inject("config");
6680
+ const service = new ProjectService(baseURL);
6681
+ const setProject = (project) => {
6682
+ state.project = project;
6683
+ };
6564
6684
  const fetchProject = async (id) => {
6565
6685
  state.loading = true;
6566
6686
  state.project = await service.fetch(id);
6567
6687
  state.loading = false;
6568
6688
  };
6569
- const saveProject = async () => {
6570
- 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);
6571
6694
  };
6572
6695
  const updateProject = (data) => {
6573
6696
  if (!state.project)
@@ -6635,8 +6758,10 @@ function useProject() {
6635
6758
  state.project.files.list = state.project.files.list.filter((file) => !filesIdx.includes(state.project.files.list.indexOf(file)));
6636
6759
  };
6637
6760
  return __spreadProps(__spreadValues({}, toRefs(state)), {
6761
+ setProject,
6638
6762
  fetchProject,
6639
6763
  saveProject,
6764
+ deleteProject,
6640
6765
  updateProject,
6641
6766
  addCollaborator,
6642
6767
  updateCollaborator,
@@ -6650,89 +6775,104 @@ function useProject() {
6650
6775
  });
6651
6776
  }
6652
6777
  var ProjectInfo_vue_vue_type_style_index_0_scoped_true_lang = "";
6653
- const _withScopeId$5 = (n) => (pushScopeId("data-v-6fc5d70c"), n = n(), popScopeId(), n);
6654
- const _hoisted_1$8 = { class: "image" };
6655
- const _hoisted_2$8 = ["href"];
6656
- 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", {
6657
6782
  id: "jdenticon",
6658
6783
  width: "100%",
6659
6784
  height: "100%"
6660
6785
  }, null, -1));
6661
- const _hoisted_4$5 = [
6662
- _hoisted_3$5
6786
+ const _hoisted_4$7 = [
6787
+ _hoisted_3$7
6663
6788
  ];
6664
- const _hoisted_5$5 = { class: "description" };
6665
- const _hoisted_6$4 = ["href"];
6666
- const _hoisted_7$4 = /* @__PURE__ */ createTextVNode(" by ");
6667
- const _hoisted_8$4 = ["href"];
6668
- 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" };
6669
6794
  const _hoisted_10$3 = /* @__PURE__ */ createTextVNode(" Collaborators ");
6670
- const _hoisted_11$1 = { id: "numAnnotations" };
6671
- const _hoisted_12$1 = /* @__PURE__ */ createTextVNode(" Annotations ");
6795
+ const _hoisted_11$2 = { id: "numAnnotations" };
6796
+ const _hoisted_12$2 = /* @__PURE__ */ createTextVNode(" Annotations ");
6672
6797
  const _hoisted_13$1 = { id: "numFiles" };
6673
6798
  const _hoisted_14$1 = /* @__PURE__ */ createTextVNode(" Data Files ");
6674
6799
  const _hoisted_15$1 = { class: "actions" };
6675
6800
  const _hoisted_16$1 = /* @__PURE__ */ createTextVNode("Save Changes");
6676
6801
  const _hoisted_17$1 = /* @__PURE__ */ createTextVNode("Delete Project");
6677
6802
  const _hoisted_18$1 = /* @__PURE__ */ createTextVNode("Go to Project");
6678
- const _hoisted_19$1 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createElementVNode("p", { id: "saveFeedback" }, null, -1));
6679
- const _sfc_main$c = {
6803
+ const _hoisted_19$1 = { id: "saveFeedback" };
6804
+ const _sfc_main$f = {
6680
6805
  setup(__props) {
6681
- const { project: project2 } = useProject();
6682
- const handleProjectSave = () => {
6683
- 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
+ }
6684
6815
  };
6685
- const handleProjectDeletion = () => {
6686
- const res = confirm("Are you sure you want to delete project " + project2.shortname + "? This operation cannot be undone.");
6687
- 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) {
6688
6819
  return;
6689
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
+ }
6690
6830
  };
6691
6831
  const goToProject = () => {
6692
- window.location.assign(`/project/${project2.value.shortname}`);
6832
+ window.location.assign(`/project/${project.value.shortname}`);
6693
6833
  };
6694
6834
  onMounted(() => {
6695
- update(document.getElementById("jdenticon"), md5(project2.value.shortname));
6835
+ update(document.getElementById("jdenticon"), md5(project.value.shortname));
6696
6836
  });
6697
6837
  return (_ctx, _cache) => {
6698
- return openBlock(), createElementBlock("aside", null, [
6699
- createElementVNode("div", _hoisted_1$8, [
6838
+ return openBlock(), createElementBlock(Fragment, null, [
6839
+ createElementVNode("div", _hoisted_1$b, [
6700
6840
  createElementVNode("a", {
6701
- href: `/project/${unref(project2).shortname}`
6702
- }, _hoisted_4$5, 8, _hoisted_2$8)
6841
+ href: `/project/${unref(project).shortname}`
6842
+ }, _hoisted_4$7, 8, _hoisted_2$9)
6703
6843
  ]),
6704
- createElementVNode("div", _hoisted_5$5, [
6844
+ createElementVNode("div", _hoisted_5$6, [
6705
6845
  createElementVNode("a", {
6706
- href: `/project/${unref(project2).shortname}`
6846
+ href: `/project/${unref(project).shortname}`
6707
6847
  }, [
6708
- createElementVNode("h1", null, toDisplayString(unref(project2).shortname), 1)
6709
- ], 8, _hoisted_6$4),
6848
+ createElementVNode("h1", null, toDisplayString(unref(project).shortname), 1)
6849
+ ], 8, _hoisted_6$5),
6710
6850
  createVNode(TextInput, {
6711
- modelValue: unref(project2).url,
6712
- "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),
6713
6853
  placeholder: "Enter a project website"
6714
6854
  }, null, 8, ["modelValue"]),
6715
6855
  createElementVNode("p", null, [
6716
- _hoisted_7$4,
6856
+ _hoisted_7$5,
6717
6857
  createElementVNode("a", {
6718
- href: `/user/${unref(project2).owner}`
6719
- }, toDisplayString(unref(project2).owner), 9, _hoisted_8$4)
6858
+ href: `/user/${unref(project).owner}`
6859
+ }, toDisplayString(unref(project).owner), 9, _hoisted_8$5)
6720
6860
  ]),
6721
6861
  createVNode(TextArea, {
6722
- modelValue: unref(project2).description,
6723
- "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),
6724
6864
  placeholder: "Enter a project description"
6725
6865
  }, null, 8, ["modelValue"]),
6726
6866
  createElementVNode("p", null, [
6727
- 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),
6728
6868
  _hoisted_10$3
6729
6869
  ]),
6730
6870
  createElementVNode("p", null, [
6731
- createElementVNode("span", _hoisted_11$1, toDisplayString(unref(project2).annotations.list.length), 1),
6732
- _hoisted_12$1
6871
+ createElementVNode("span", _hoisted_11$2, toDisplayString(unref(project).annotations.list.length), 1),
6872
+ _hoisted_12$2
6733
6873
  ]),
6734
6874
  createElementVNode("p", null, [
6735
- 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),
6736
6876
  _hoisted_14$1
6737
6877
  ]),
6738
6878
  createElementVNode("div", _hoisted_15$1, [
@@ -6763,21 +6903,21 @@ const _sfc_main$c = {
6763
6903
  ]),
6764
6904
  _: 1
6765
6905
  }),
6766
- _hoisted_19$1
6906
+ createElementVNode("p", _hoisted_19$1, toDisplayString(feedback.value), 1)
6767
6907
  ])
6768
6908
  ])
6769
- ]);
6909
+ ], 64);
6770
6910
  };
6771
6911
  }
6772
6912
  };
6773
- 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"]]);
6774
6914
  var Access_vue_vue_type_style_index_0_scoped_true_lang = "";
6775
- const _hoisted_1$7 = ["data-level"];
6776
- const _hoisted_2$7 = ["title"];
6777
- const _hoisted_3$4 = ["title"];
6778
- const _hoisted_4$4 = ["title"];
6779
- const _hoisted_5$4 = ["title"];
6780
- 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 = {
6781
6921
  props: {
6782
6922
  collaborator: Object,
6783
6923
  type: String
@@ -6794,30 +6934,30 @@ const _sfc_main$b = {
6794
6934
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("updateAccess", __props.collaborator, __props.type, 1)),
6795
6935
  class: "view",
6796
6936
  title: `view ${__props.type}`
6797
- }, null, 8, _hoisted_2$7),
6937
+ }, null, 8, _hoisted_2$8),
6798
6938
  createElementVNode("button", {
6799
6939
  small: true,
6800
6940
  onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("updateAccess", __props.collaborator, __props.type, 2)),
6801
6941
  class: "edit",
6802
6942
  title: `edit ${__props.type}`
6803
- }, null, 8, _hoisted_3$4),
6943
+ }, null, 8, _hoisted_3$6),
6804
6944
  createElementVNode("button", {
6805
6945
  small: true,
6806
6946
  onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("updateAccess", __props.collaborator, __props.type, 3)),
6807
6947
  class: "add",
6808
6948
  title: `add ${__props.type}`
6809
- }, null, 8, _hoisted_4$4),
6949
+ }, null, 8, _hoisted_4$6),
6810
6950
  createElementVNode("button", {
6811
6951
  small: true,
6812
6952
  onClick: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("updateAccess", __props.collaborator, __props.type, 4)),
6813
6953
  class: "remove",
6814
6954
  title: `remove ${__props.type}`
6815
- }, null, 8, _hoisted_5$4)
6816
- ], 8, _hoisted_1$7);
6955
+ }, null, 8, _hoisted_5$5)
6956
+ ], 8, _hoisted_1$a);
6817
6957
  };
6818
6958
  }
6819
6959
  };
6820
- 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"]]);
6821
6961
  const _AccessLevel = class {
6822
6962
  constructor(level) {
6823
6963
  __publicField(this, "numericalLevel", 0);
@@ -6857,10 +6997,10 @@ __publicField(AccessLevel, "EDIT", new _AccessLevel("edit"));
6857
6997
  __publicField(AccessLevel, "ADD", new _AccessLevel("add"));
6858
6998
  __publicField(AccessLevel, "REMOVE", new _AccessLevel("remove"));
6859
6999
  var PureCollaborators_vue_vue_type_style_index_0_scoped_true_lang = "";
6860
- const _withScopeId$4 = (n) => (pushScopeId("data-v-2d19ee37"), n = n(), popScopeId(), n);
6861
- const _hoisted_1$6 = { class: "wrapper" };
6862
- const _hoisted_2$6 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createElementVNode("h2", null, "Access", -1));
6863
- 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, [
6864
7004
  /* @__PURE__ */ createElementVNode("tr", null, [
6865
7005
  /* @__PURE__ */ createElementVNode("th", null, "User Name"),
6866
7006
  /* @__PURE__ */ createElementVNode("th", null, "Name"),
@@ -6869,12 +7009,12 @@ const _hoisted_3$3 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ create
6869
7009
  /* @__PURE__ */ createElementVNode("th", null, "Files")
6870
7010
  ])
6871
7011
  ], -1));
6872
- const _hoisted_4$3 = ["onClick"];
6873
- const _hoisted_5$3 = { style: { "position": "relative" } };
6874
- const _hoisted_6$3 = { class: "actions" };
6875
- const _hoisted_7$3 = /* @__PURE__ */ createTextVNode(" + ");
6876
- const _hoisted_8$3 = /* @__PURE__ */ createTextVNode(" - ");
6877
- 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 = {
6878
7018
  props: {
6879
7019
  collaborators: {
6880
7020
  type: Array,
@@ -6928,11 +7068,11 @@ const _sfc_main$a = {
6928
7068
  });
6929
7069
  };
6930
7070
  return (_ctx, _cache) => {
6931
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
6932
- _hoisted_2$6,
7071
+ return openBlock(), createElementBlock("div", _hoisted_1$9, [
7072
+ _hoisted_2$7,
6933
7073
  createVNode(Table, { id: "access" }, {
6934
7074
  default: withCtx(() => [
6935
- _hoisted_3$3,
7075
+ _hoisted_3$5,
6936
7076
  createElementVNode("tbody", null, [
6937
7077
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.collaborators, (collaborator, idx) => {
6938
7078
  return openBlock(), createElementBlock("tr", {
@@ -6940,7 +7080,7 @@ const _sfc_main$a = {
6940
7080
  class: normalizeClass({ selected: selected.value === idx }),
6941
7081
  onClick: ($event) => handleRowClick($event, idx)
6942
7082
  }, [
6943
- createElementVNode("td", _hoisted_5$3, [
7083
+ createElementVNode("td", _hoisted_5$4, [
6944
7084
  createVNode(Autocomplete, {
6945
7085
  onInput: unref(handleUserSearch),
6946
7086
  onSelect: handleUserSelect,
@@ -6984,20 +7124,20 @@ const _sfc_main$a = {
6984
7124
  onUpdateAccess: handleAccessChange
6985
7125
  }, null, 8, ["collaborator"])
6986
7126
  ])
6987
- ], 10, _hoisted_4$3);
7127
+ ], 10, _hoisted_4$5);
6988
7128
  }), 128))
6989
7129
  ])
6990
7130
  ]),
6991
7131
  _: 1
6992
7132
  }),
6993
- createElementVNode("div", _hoisted_6$3, [
7133
+ createElementVNode("div", _hoisted_6$4, [
6994
7134
  createVNode(Button, {
6995
7135
  small: true,
6996
7136
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("addCollaborator")),
6997
7137
  title: "Add collaborator"
6998
7138
  }, {
6999
7139
  default: withCtx(() => [
7000
- _hoisted_7$3
7140
+ _hoisted_7$4
7001
7141
  ]),
7002
7142
  _: 1
7003
7143
  }),
@@ -7011,7 +7151,7 @@ const _sfc_main$a = {
7011
7151
  disabled: selected.value == null || __props.collaborators[selected.value].userID === "anyone"
7012
7152
  }, {
7013
7153
  default: withCtx(() => [
7014
- _hoisted_8$3
7154
+ _hoisted_8$4
7015
7155
  ]),
7016
7156
  _: 1
7017
7157
  }, 8, ["disabled"])
@@ -7020,12 +7160,13 @@ const _sfc_main$a = {
7020
7160
  };
7021
7161
  }
7022
7162
  };
7023
- 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"]]);
7024
7164
  const usersFound = reactive([]);
7025
7165
  function useUserSearch() {
7166
+ const { userSearchURL } = inject("config");
7026
7167
  const fetchUsers = async (q) => {
7027
7168
  usersFound.splice(0, usersFound.length);
7028
- const users = await (await fetch(`https://brainbox.pasteur.fr/api/userNameQuery?q=${q}`)).json();
7169
+ const users = await (await fetch(`${userSearchURL}${q}`)).json();
7029
7170
  usersFound.push(...users);
7030
7171
  };
7031
7172
  return {
@@ -7033,10 +7174,10 @@ function useUserSearch() {
7033
7174
  fetchUsers
7034
7175
  };
7035
7176
  }
7036
- const _sfc_main$9 = {
7177
+ const _sfc_main$c = {
7037
7178
  setup(__props) {
7038
7179
  const {
7039
- project: project2,
7180
+ project,
7040
7181
  addCollaborator,
7041
7182
  updateCollaborator,
7042
7183
  removeCollaborators
@@ -7046,9 +7187,9 @@ const _sfc_main$9 = {
7046
7187
  fetchUsers
7047
7188
  } = useUserSearch();
7048
7189
  return (_ctx, _cache) => {
7049
- return unref(project2) && unref(project2).collaborators ? (openBlock(), createBlock(PureCollaborators, {
7190
+ return unref(project) && unref(project).collaborators ? (openBlock(), createBlock(PureCollaborators, {
7050
7191
  key: 0,
7051
- collaborators: unref(project2).collaborators.list,
7192
+ collaborators: unref(project).collaborators.list,
7052
7193
  "users-found": unref(usersFound2),
7053
7194
  onAddCollaborator: unref(addCollaborator),
7054
7195
  onRemoveCollaborators: unref(removeCollaborators),
@@ -7059,10 +7200,10 @@ const _sfc_main$9 = {
7059
7200
  }
7060
7201
  };
7061
7202
  var PureAnnotations_vue_vue_type_style_index_0_scoped_true_lang = "";
7062
- const _withScopeId$3 = (n) => (pushScopeId("data-v-c953eec6"), n = n(), popScopeId(), n);
7063
- const _hoisted_1$5 = { class: "wrapper" };
7064
- const _hoisted_2$5 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("h2", null, "Annotations", -1));
7065
- const _hoisted_3$2 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("thead", null, [
7203
+ const _withScopeId$4 = (n) => (pushScopeId("data-v-72fdca59"), 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, [
7066
7207
  /* @__PURE__ */ createElementVNode("tr", null, [
7067
7208
  /* @__PURE__ */ createElementVNode("th", null, "Name"),
7068
7209
  /* @__PURE__ */ createElementVNode("th", null, "Type"),
@@ -7070,14 +7211,13 @@ const _hoisted_3$2 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ create
7070
7211
  /* @__PURE__ */ createElementVNode("th", null, "Display")
7071
7212
  ])
7072
7213
  ], -1));
7073
- const _hoisted_4$2 = ["onClick"];
7074
- const _hoisted_5$2 = ["value", "selected"];
7075
- const _hoisted_6$2 = ["value", "selected"];
7076
- const _hoisted_7$2 = ["onUpdate:modelValue", "onChange"];
7077
- const _hoisted_8$2 = { class: "actions" };
7078
- const _hoisted_9$2 = /* @__PURE__ */ createTextVNode(" + ");
7079
- const _hoisted_10$2 = /* @__PURE__ */ createTextVNode(" - ");
7080
- 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 = {
7081
7221
  props: {
7082
7222
  annotations: {
7083
7223
  type: Array,
@@ -7091,13 +7231,13 @@ const _sfc_main$8 = {
7091
7231
  ],
7092
7232
  setup(__props, { emit }) {
7093
7233
  const props = __props;
7094
- const baseURL = inject("baseURL");
7234
+ const { baseURL, fetchLabelSets } = inject("config");
7095
7235
  const annotationType = ["volume", "text"];
7096
7236
  const labelSets = reactive([]);
7097
- const fetchLabelSets = async () => {
7098
- labelSets.push(...await (await fetch(`${baseURL}/api/getLabelsets`)).json());
7237
+ const updateLabelSets = async () => {
7238
+ labelSets.push(...await fetchLabelSets());
7099
7239
  };
7100
- fetchLabelSets();
7240
+ updateLabelSets();
7101
7241
  const selected = ref(null);
7102
7242
  const handleRowClick = (event, idx) => {
7103
7243
  selected.value = idx;
@@ -7128,17 +7268,18 @@ const _sfc_main$8 = {
7128
7268
  emitAnnotationUpdate(idx, { values });
7129
7269
  };
7130
7270
  const handleDisplayChange = (annotation, display) => {
7271
+ console.log("dsfsdfsdf", display);
7131
7272
  const idx = props.annotations.indexOf(annotation);
7132
7273
  if (idx < 0)
7133
7274
  return;
7134
7275
  emitAnnotationUpdate(idx, { display });
7135
7276
  };
7136
7277
  return (_ctx, _cache) => {
7137
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
7138
- _hoisted_2$5,
7278
+ return openBlock(), createElementBlock("div", _hoisted_1$8, [
7279
+ _hoisted_2$6,
7139
7280
  createVNode(Table, { id: "annotations" }, {
7140
7281
  default: withCtx(() => [
7141
- _hoisted_3$2,
7282
+ _hoisted_3$4,
7142
7283
  createElementVNode("tbody", null, [
7143
7284
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.annotations, (annotation, idx) => {
7144
7285
  return openBlock(), createElementBlock("tr", {
@@ -7167,7 +7308,7 @@ const _sfc_main$8 = {
7167
7308
  key: `${annotation.name}${opt}`,
7168
7309
  value: opt,
7169
7310
  selected: opt === annotation.type
7170
- }, toDisplayString(opt), 9, _hoisted_5$2);
7311
+ }, toDisplayString(opt), 9, _hoisted_5$3);
7171
7312
  }), 64))
7172
7313
  ]),
7173
7314
  _: 2
@@ -7186,35 +7327,33 @@ const _sfc_main$8 = {
7186
7327
  value: opt.source,
7187
7328
  key: `${annotation.name}${opt.source}`,
7188
7329
  selected: opt.source === annotation.values
7189
- }, toDisplayString(opt.name), 9, _hoisted_6$2);
7330
+ }, toDisplayString(opt.name), 9, _hoisted_6$3);
7190
7331
  }), 128))
7191
7332
  ]),
7192
7333
  _: 2
7193
7334
  }, 1032, ["modelValue", "onUpdate:modelValue", "onChange"])) : createCommentVNode("", true)
7194
7335
  ]),
7195
7336
  createElementVNode("td", null, [
7196
- withDirectives(createElementVNode("input", {
7197
- type: "checkbox",
7337
+ createVNode(Checkbox, {
7338
+ modelValue: annotation.display,
7198
7339
  "onUpdate:modelValue": ($event) => annotation.display = $event,
7199
- onChange: ($event) => handleDisplayChange(annotation, $event.target.checked)
7200
- }, null, 40, _hoisted_7$2), [
7201
- [vModelCheckbox, annotation.display]
7202
- ])
7340
+ onChange: ($event) => handleDisplayChange(annotation, $event)
7341
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "onChange"])
7203
7342
  ])
7204
- ], 10, _hoisted_4$2);
7343
+ ], 10, _hoisted_4$4);
7205
7344
  }), 128))
7206
7345
  ])
7207
7346
  ]),
7208
7347
  _: 1
7209
7348
  }),
7210
- createElementVNode("div", _hoisted_8$2, [
7349
+ createElementVNode("div", _hoisted_7$3, [
7211
7350
  createVNode(Button, {
7212
7351
  small: true,
7213
7352
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("addAnnotation")),
7214
7353
  title: "Add annotation"
7215
7354
  }, {
7216
7355
  default: withCtx(() => [
7217
- _hoisted_9$2
7356
+ _hoisted_8$3
7218
7357
  ]),
7219
7358
  _: 1
7220
7359
  }),
@@ -7225,7 +7364,7 @@ const _sfc_main$8 = {
7225
7364
  disabled: selected.value == null
7226
7365
  }, {
7227
7366
  default: withCtx(() => [
7228
- _hoisted_10$2
7367
+ _hoisted_9$3
7229
7368
  ]),
7230
7369
  _: 1
7231
7370
  }, 8, ["disabled"])
@@ -7234,19 +7373,19 @@ const _sfc_main$8 = {
7234
7373
  };
7235
7374
  }
7236
7375
  };
7237
- var PureAnnotations = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-c953eec6"]]);
7238
- const _sfc_main$7 = {
7376
+ var PureAnnotations = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-72fdca59"]]);
7377
+ const _sfc_main$a = {
7239
7378
  setup(__props) {
7240
7379
  const {
7241
- project: project2,
7380
+ project,
7242
7381
  addAnnotation,
7243
7382
  updateAnnotation,
7244
7383
  removeAnnotations
7245
7384
  } = useProject();
7246
7385
  return (_ctx, _cache) => {
7247
- return unref(project2) && unref(project2).annotations ? (openBlock(), createBlock(PureAnnotations, {
7386
+ return unref(project) && unref(project).annotations ? (openBlock(), createBlock(PureAnnotations, {
7248
7387
  key: 0,
7249
- annotations: unref(project2).annotations.list,
7388
+ annotations: unref(project).annotations.list,
7250
7389
  onAddAnnotation: unref(addAnnotation),
7251
7390
  onRemoveAnnotations: unref(removeAnnotations),
7252
7391
  onUpdateAnnotation: unref(updateAnnotation)
@@ -7257,29 +7396,29 @@ const _sfc_main$7 = {
7257
7396
  var _imports_0$2 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MzguNTMzIDQzOC41MzMiIGhlaWdodD0iNDM4LjUzMyIgdmlld0JveD0iMCAwIDQzOC41MzMgNDM4LjUzMyIgd2lkdGg9IjQzOC41MzMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJtYXRyaXgoLjcxMTE2MTExIDAgMCAuNzExMTYxMTEgODEuMDg2NzE2IDI1LjY3MTMwNykiPjxwYXRoIGQ9Im0xMTQuMDA2MzYgMTgzLjM5MzI5aDQ4LjExNTQ2djkxLjIwODljMCAyLjQxOTQzLjc1NjY2IDQuNDA0MTcgMi4yNTg2IDUuOTU5NjUgMS40OTU3OCAxLjU1MDk1IDMuNDE5MDggMi4zMzA1IDUuNzU1OCAyLjMzMDVoNDguMTI0MjFjMi4zMzg0OSAwIDQuMjYwODktLjc3OTU1IDUuNzY0NTktMi4zMzA1IDEuNTA0NTYtMS41NTYzOCAyLjI1NTk2LTMuNTQwMjIgMi4yNTU5Ni01Ljk1OTY1di05MS4yMDUyN2g0OC4xMjA3MWMzLjY3NDUyIDAgNi4xODE1My0xLjcyODgxIDcuNTE5MzItNS4xODEgMS4zMzc3OS0zLjI4NjExLjc0OTY2LTYuMzA0NTEtMS43NTQ3My05LjA3MTUybC04MC4xOTk0My04Mi45MTE0OTNjLTEuODM5ODctMS41NTI3NTktMy43NTk2NS0yLjMyOTU5Ni01Ljc2NDU3LTIuMzI5NTk2LTIuMDAyMyAwLTMuOTI0Ny43NzY4MzctNS43NjYzMyAyLjMyOTU5NmwtNzkuOTQ4MzggODIuNjUwMTMzYy0xLjY2OTU5IDIuMDcxODUtMi41MDI2MyA0LjE1Mjc4LTIuNTAyNjMgNi4yMTgyOSAwIDIuNDE1ODEuNzUwNTMgNC40MDQxNyAyLjI1ODYxIDUuOTYyMzcgMS41MDAxOCAxLjU1MzY3IDMuNDIyNTcgMi4zMjk1OSA1Ljc2MjgxIDIuMzI5NTl6Ii8+PHBhdGggZD0ibTM2LjIzNTI0NCAzMTkuMjQ3Mzl2ODUuMDUxNDRoMzE2LjEzMjgxNnYtODUuMDUxNDRoLTM2LjkwODkydjQ4LjE0MjUyaC0yNDIuMzE0OTcydi00OC4xNDI1MnoiLz48L2c+PC9zdmc+";
7258
7397
  var _imports_1$1 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MzguNTMzIDQzOC41MzMiIGhlaWdodD0iNDM4LjUzMyIgdmlld0JveD0iMCAwIDQzOC41MzMgNDM4LjUzMyIgd2lkdGg9IjQzOC41MzMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE2Mi4xNjM2MSAxNTYuMDk5OTRoMzQuMjE3ODR2LTY0Ljg2NDIzMWMwLTEuNzIwNi41MzgxMS0zLjEzMjA3IDEuNjA2MjMtNC4yMzgyNyAxLjA2Mzc0LTEuMTAyOTcgMi40MzE1MS0xLjY1NzM2IDQuMDkzMy0xLjY1NzM2aDM0LjIyNDA3YzEuNjYzMDQgMCAzLjAzMDE3LjU1NDM5IDQuMDk5NTUgMS42NTczNiAxLjA2OTk4IDEuMTA2ODQgMS42MDQzNSAyLjUxNzY3IDEuNjA0MzUgNC4yMzgyN3Y2NC44NjE2NTFoMzQuMjIxNThjMi42MTMxNyAwIDQuMzk2MDYgMS4yMjk0NiA1LjM0NzQ0IDMuNjg0NTIuOTUxMzkgMi4zMzY5Ni41MzMxMyA0LjQ4MzUyLTEuMjQ3ODkgNi40NTEzMWwtNTcuMDM0NzIgNTguOTYzNDNjLTEuMzA4NDQgMS4xMDQyNi0yLjY3MzcxIDEuNjU2NzItNC4wOTk1MyAxLjY1NjcyLTEuNDIzOTYgMC0yLjc5MTEtLjU1MjQ2LTQuMTAwNzktMS42NTY3MmwtNTYuODU2MTgtNTguNzc3NTZjLTEuMTg3MzUtMS40NzM0Mi0xLjc3OTc4LTIuOTUzMjktMS43Nzk3OC00LjQyMjIgMC0xLjcxODAzLjUzMzc1LTMuMTMyMDggMS42MDYyNC00LjI0MDIxIDEuMDY2ODctMS4xMDQ5MSAyLjQzNC0xLjY1NjcxIDQuMDk4MjktMS42NTY3MXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJtMTA2Ljg1NTgxIDI1Mi43MDc2NHY2MC40ODUyN2gyMjQuODIxMzd2LTYwLjQ4NTI3aC0yNi4yNDgxOXYzNC4yMzcwOGgtMTcyLjMyNDk5di0zNC4yMzcwOHoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=";
7259
7398
  var PureFiles_vue_vue_type_style_index_0_scoped_true_lang = "";
7260
- const _withScopeId$2 = (n) => (pushScopeId("data-v-3c8f55ac"), n = n(), popScopeId(), n);
7261
- const _hoisted_1$4 = { class: "wrapper" };
7262
- const _hoisted_2$4 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("h2", null, "Files", -1));
7263
- const _hoisted_3$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("thead", null, [
7399
+ const _withScopeId$3 = (n) => (pushScopeId("data-v-3c8f55ac"), n = n(), popScopeId(), n);
7400
+ const _hoisted_1$7 = { class: "wrapper" };
7401
+ const _hoisted_2$5 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("h2", null, "Files", -1));
7402
+ const _hoisted_3$3 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("thead", null, [
7264
7403
  /* @__PURE__ */ createElementVNode("tr", null, [
7265
7404
  /* @__PURE__ */ createElementVNode("th", null, "URL"),
7266
7405
  /* @__PURE__ */ createElementVNode("th", null, "Name")
7267
7406
  ])
7268
7407
  ], -1));
7269
- const _hoisted_4$1 = ["onClick"];
7270
- const _hoisted_5$1 = ["onBlur", "onKeyup"];
7271
- const _hoisted_6$1 = { class: "actions" };
7272
- const _hoisted_7$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7408
+ const _hoisted_4$3 = ["onClick"];
7409
+ const _hoisted_5$2 = ["onBlur", "onKeyup"];
7410
+ const _hoisted_6$2 = { class: "actions" };
7411
+ const _hoisted_7$2 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("img", {
7273
7412
  src: _imports_0$2,
7274
7413
  alt: "Import CSV"
7275
7414
  }, null, -1));
7276
- const _hoisted_8$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7415
+ const _hoisted_8$2 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createElementVNode("img", {
7277
7416
  src: _imports_1$1,
7278
7417
  alt: "Download CSV"
7279
7418
  }, null, -1));
7280
- const _hoisted_9$1 = /* @__PURE__ */ createTextVNode(" + ");
7281
- const _hoisted_10$1 = /* @__PURE__ */ createTextVNode(" - ");
7282
- const _sfc_main$6 = {
7419
+ const _hoisted_9$2 = /* @__PURE__ */ createTextVNode(" + ");
7420
+ const _hoisted_10$2 = /* @__PURE__ */ createTextVNode(" - ");
7421
+ const _sfc_main$9 = {
7283
7422
  props: {
7284
7423
  files: {
7285
7424
  type: Array,
@@ -7315,11 +7454,11 @@ const _sfc_main$6 = {
7315
7454
  emitFileUpdate(idx, { source });
7316
7455
  };
7317
7456
  return (_ctx, _cache) => {
7318
- return openBlock(), createElementBlock("div", _hoisted_1$4, [
7319
- _hoisted_2$4,
7457
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
7458
+ _hoisted_2$5,
7320
7459
  createVNode(Table, { id: "access" }, {
7321
7460
  default: withCtx(() => [
7322
- _hoisted_3$1,
7461
+ _hoisted_3$3,
7323
7462
  createElementVNode("tbody", null, [
7324
7463
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.files, (file, idx) => {
7325
7464
  return openBlock(), createElementBlock("tr", {
@@ -7333,7 +7472,7 @@ const _sfc_main$6 = {
7333
7472
  placeholder: "File URL",
7334
7473
  onBlur: ($event) => handleSourceChange(file, $event.currentTarget.textContent),
7335
7474
  onKeyup: withKeys(($event) => handleSourceChange(file, $event.currentTarget.textContent), ["enter"])
7336
- }, toDisplayString(file.source), 41, _hoisted_5$1)
7475
+ }, toDisplayString(file.source), 41, _hoisted_5$2)
7337
7476
  ]),
7338
7477
  createElementVNode("td", null, [
7339
7478
  createVNode(TextInput, {
@@ -7344,20 +7483,20 @@ const _sfc_main$6 = {
7344
7483
  onKeyup: withKeys(($event) => handleNameChange(file, $event.target.value), ["enter"])
7345
7484
  }, null, 8, ["modelValue", "onUpdate:modelValue", "onBlur", "onKeyup"])
7346
7485
  ])
7347
- ], 10, _hoisted_4$1);
7486
+ ], 10, _hoisted_4$3);
7348
7487
  }), 128))
7349
7488
  ])
7350
7489
  ]),
7351
7490
  _: 1
7352
7491
  }),
7353
- createElementVNode("div", _hoisted_6$1, [
7492
+ createElementVNode("div", _hoisted_6$2, [
7354
7493
  createVNode(Button, {
7355
7494
  small: true,
7356
7495
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("importCsv")),
7357
7496
  title: "Upload CSV"
7358
7497
  }, {
7359
7498
  default: withCtx(() => [
7360
- _hoisted_7$1
7499
+ _hoisted_7$2
7361
7500
  ]),
7362
7501
  _: 1
7363
7502
  }),
@@ -7367,7 +7506,7 @@ const _sfc_main$6 = {
7367
7506
  title: "Download CSV"
7368
7507
  }, {
7369
7508
  default: withCtx(() => [
7370
- _hoisted_8$1
7509
+ _hoisted_8$2
7371
7510
  ]),
7372
7511
  _: 1
7373
7512
  }),
@@ -7377,7 +7516,7 @@ const _sfc_main$6 = {
7377
7516
  title: "Add file"
7378
7517
  }, {
7379
7518
  default: withCtx(() => [
7380
- _hoisted_9$1
7519
+ _hoisted_9$2
7381
7520
  ]),
7382
7521
  _: 1
7383
7522
  }),
@@ -7388,7 +7527,7 @@ const _sfc_main$6 = {
7388
7527
  disabled: selected.value == null
7389
7528
  }, {
7390
7529
  default: withCtx(() => [
7391
- _hoisted_10$1
7530
+ _hoisted_10$2
7392
7531
  ]),
7393
7532
  _: 1
7394
7533
  }, 8, ["disabled"])
@@ -7397,10 +7536,10 @@ const _sfc_main$6 = {
7397
7536
  };
7398
7537
  }
7399
7538
  };
7400
- var PureFiles = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-3c8f55ac"]]);
7401
- const _sfc_main$5 = {
7539
+ var PureFiles = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-3c8f55ac"]]);
7540
+ const _sfc_main$8 = {
7402
7541
  setup(__props) {
7403
- const { project: project2, addFile, updateFile, removeFiles } = useProject();
7542
+ const { project, addFile, updateFile, removeFiles } = useProject();
7404
7543
  const displayImportDialog = ref(false);
7405
7544
  const importedFiles = ref([]);
7406
7545
  const handleCSVImport = () => {
@@ -7427,11 +7566,11 @@ const _sfc_main$5 = {
7427
7566
  input.click();
7428
7567
  };
7429
7568
  const handleCSVDownload = () => {
7430
- const filename = prompt("File name", `${project2.value.shortname}`);
7569
+ const filename = prompt("File name", `${project.value.shortname}`);
7431
7570
  if (filename == null) {
7432
7571
  return;
7433
7572
  }
7434
- const csv = project2.value.files.list.map((o) => `${o.source},${o.name}`).join("\n");
7573
+ const csv = project.value.files.list.map((o) => `${o.source},${o.name}`).join("\n");
7435
7574
  const csvData = "data:text/ascii;charset=utf-8," + encodeURIComponent(csv);
7436
7575
  const a = document.createElement("a");
7437
7576
  a.href = csvData;
@@ -7446,13 +7585,13 @@ const _sfc_main$5 = {
7446
7585
  console.log("Too short to be an url:", file.source);
7447
7586
  return;
7448
7587
  }
7449
- const found = project2.value.files.list.find((f) => f.source === file.source);
7588
+ const found = project.value.files.list.find((f) => f.source === file.source);
7450
7589
  if (found != null) {
7451
7590
  if (found.name === "") {
7452
7591
  found.name = file.name;
7453
7592
  }
7454
7593
  } else {
7455
- project2.value.files.list.push(file);
7594
+ project.value.files.list.push(file);
7456
7595
  }
7457
7596
  });
7458
7597
  displayImportDialog.value = false;
@@ -7465,9 +7604,9 @@ const _sfc_main$5 = {
7465
7604
  onImport: appendFiles,
7466
7605
  onCancel: _cache[0] || (_cache[0] = ($event) => displayImportDialog.value = false)
7467
7606
  }, null, 8, ["files"])) : createCommentVNode("", true),
7468
- unref(project2) && unref(project2).files ? (openBlock(), createBlock(PureFiles, {
7607
+ unref(project) && unref(project).files ? (openBlock(), createBlock(PureFiles, {
7469
7608
  key: 1,
7470
- files: unref(project2).files.list,
7609
+ files: unref(project).files.list,
7471
7610
  onAddFile: unref(addFile),
7472
7611
  onRemoveFiles: unref(removeFiles),
7473
7612
  onUpdateFile: unref(updateFile),
@@ -7479,23 +7618,36 @@ const _sfc_main$5 = {
7479
7618
  }
7480
7619
  };
7481
7620
  var Settings_vue_vue_type_style_index_0_scoped_true_lang = "";
7482
- const _hoisted_1$3 = { class: "settings" };
7483
- const _hoisted_2$3 = { class: "content" };
7484
- const _sfc_main$4 = {
7621
+ const _hoisted_1$6 = { class: "content" };
7622
+ const _sfc_main$7 = {
7485
7623
  setup(__props) {
7486
7624
  return (_ctx, _cache) => {
7487
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
7488
- createVNode(ProjectInfo),
7489
- createElementVNode("div", _hoisted_2$3, [
7490
- createVNode(_sfc_main$9),
7491
- createVNode(_sfc_main$7),
7492
- createVNode(_sfc_main$5)
7493
- ])
7494
- ]);
7625
+ return openBlock(), createBlock(TwoCols, null, {
7626
+ side: withCtx(() => [
7627
+ createVNode(ProjectInfo)
7628
+ ]),
7629
+ content: withCtx(() => [
7630
+ createElementVNode("div", _hoisted_1$6, [
7631
+ createVNode(_sfc_main$c),
7632
+ createVNode(_sfc_main$a),
7633
+ createVNode(_sfc_main$8)
7634
+ ])
7635
+ ]),
7636
+ _: 1
7637
+ });
7495
7638
  };
7496
7639
  }
7497
7640
  };
7498
- var Settings = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-7df5bbe0"]]);
7641
+ var Settings = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-3f5ec6e5"]]);
7642
+ var Wrapper_vue_vue_type_style_index_0_lang = "";
7643
+ const _sfc_main$6 = {};
7644
+ const _hoisted_1$5 = { class: "app" };
7645
+ function _sfc_render$1(_ctx, _cache) {
7646
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
7647
+ renderSlot(_ctx.$slots, "default")
7648
+ ]);
7649
+ }
7650
+ var Wrapper = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$1]]);
7499
7651
  var _imports_0$1 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MDEuOTk0IDQwMS45OTQiIGhlaWdodD0iNDAxLjk5NCIgdmlld0JveD0iMCAwIDQwMS45OTQgNDAxLjk5NCIgd2lkdGg9IjQwMS45OTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iNTAiPjxwYXRoIGQ9Im00MDIuMDMyMjEgMjAxLjg0ODY4aC00MDAuMjkwNjIyOCIvPjxwYXRoIGQ9Im0yMDIuNzAwMzYgMi44NTE2ODA4djQwMC4yOTA2MTkyIi8+PC9nPjwvc3ZnPg==";
7500
7652
  var _imports_1 = "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjE1MzYiIHdpZHRoPSIxNTM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im0xMDI0IDc2OGMwLTcwLjY2NjY3LTI1LTEzMS03NS0xODFzLTExMC4zMzMzMy03NS0xODEtNzUtMTMxIDI1LTE4MSA3NS03NSAxMTAuMzMzMzMtNzUgMTgxIDI1IDEzMSA3NSAxODEgMTEwLjMzMzMzIDc1IDE4MSA3NSAxMzEtMjUgMTgxLTc1IDc1LTExMC4zMzMzMyA3NS0xODF6bTUxMi0xMDl2MjIyYzAgOC0yLjY2NjcgMTUuNjY2NjctOCAyM3MtMTIgMTEuNjY2NjctMjAgMTNsLTI5NS4xMzE3LTEwLjc1MDAzYy0xMi42NjY3IDM2LTI3LjcwNjEgNjQuMjkzODYtNDEuMDM5NCA4OC45NjA1MyAyMy4zMzMzIDMzLjMzMzMgMTcxLjE3MTEgMTIwLjEyMjggMjE5LjE3MTEgMTc4Ljc4OTUgNi42NjY3IDggMTAgMTYuMzMzMyAxMCAyNXMtMyAxNi4zMzMzLTkgMjNjLTE4IDI0LjY2NjctNTEgNjAuNjY2Ny05OSAxMDhzLTc5LjMzMzMgNzEtOTQgNzFjLTggMC0xNi42NjY3LTMtMjYtOWwtMTkxLjAyNjM1LTIxOC4xMzE2Yy0yOS4zMzMzIDE1LjMzMzMtNjUuNzg1MSAzMi4wNzg5LTk3LjExODQzIDQyLjA3ODktMTAuNjY2NjcgOTAuNjY2NyAzOC44MTE0NSAyNTguNzE5NCAzMC4xNDQ3OCAyOTIuMDUyNy00LjY2NjY3IDE4LjY2NjctMTYuNjY2NjcgMjgtMzYgMjhoLTIyMmMtOS4zMzMzMyAwLTE3LjUtMi44MzMzLTI0LjUtOC41cy0xMC44MzMzMy0xMi44MzMzLTExLjUtMjEuNWwyMC45NDc0LTI5Mi4wOTIyYy0zMi42NjY2Ny0xMC42NjY2LTg5LjE3OTg0LTQ3LjQ3MzctMTE2LjUxMzE3LTYxLjQ3MzdsLTE2My40MzQyMyAyMzkuNTY1OXMtMTYuMTQ4MzggOS4zMDUzLTI1IDljLTkuMDk4OTItLjMxMzgtMTcuMzM4ODItNC4wMDk5LTI1LTExLTgzLjY4MDkxLTc2LjM1MTItMTM5LTEzMi0xNjUtMTY4LTQuNjY2NjctNi42NjY3LTctMTQuMzMzMy03LTIzIDAtOCAyLjY2NjY3LTE1LjY2NjcgOC0yMyA3MC4xMDAwOC02Ni43MDYyIDE1Mi41NDMyNy0xMjkuODc0MiAyMTkuMjEwNi0xOTYuMTQ0NzgtMTgtMzMuMzMzMzMtMjMuNTA4NzctNTguMTc1NDMtMzIuODQyMS05MC44NDIxbC0zMDUuMzY4NSAyMy45ODY4OGMtOC42NjY2NjctMS4zMzMzMy0xNS42NjY2NjctNS41LTIxLTEyLjUtNS4zMzMzMzMzLTctOC0xNC44MzMzMy04LTIzLjV2LTIyMmMwLTggMi42NjY2NjY3LTE1LjY2NjY3IDgtMjMgNS4zMzMzMzMtNy4zMzMzMyAxMS42NjY2NjctMTEuNjY2NjcgMTktMTNsMzE2LjUyNjQgNDEuMzQyMTVjOS4zMzMzMy0zMC42NjY2NyAyNi40MTIyOC03NS42MDk2MiA0My4wNzg5NS0xMDYuMjc2MzItMjYuNjY2NjctMzguMDAwMDMtMTk2LjkzODY4LTEzOS4wNjU4My0yNDEuNjA1MzUtMTkzLjA2NTgzLTYuNjY2NjctOC0xMC0xNi0xMC0yNCAwLTYuNjY2NyAzLTE0LjMzMzMgOS0yMyAxNy4zMzMzMy0yNCA1MC4xNjY2Ny01OS44MzMzIDk4LjUtMTA3LjVzNzkuODMzMzMtNzEuNSA5NC41LTcxLjVjOC42NjY2NyAwIDE3LjMzMzMzIDMuMzMzMyAyNiAxMGwxODAuODI4OTggMjM5LjU2NTljMjkuMzMzMzMtMTUuMzMzMyA5NC4zMzc3NC00NC4zMTU4IDEyNS42NzEwNy01NC4zMTU4LTcuNjg4Ni04Ni41ODc4LTU3LjE2NjcyLTI2OC45MTY4LTQ4LjUwMDA1LTMwMi4yNTAxIDQuNjY2NjctMTguNjY2NyAxNi42NjY2Ny0yOCAzNi0yOGgyMjJjOS4zMzMzMyAwIDE3LjUgMi44MzMzIDI0LjUgOC41czEwLjgzMzMzIDEyLjgzMzMgMTEuNSAyMS41bC0zNS4yMjM3MyAyOTYuMTcxMWMzMi42NjY2NyAxMC42NjY3IDk5LjM3NzI1IDM5LjMxNTggMTI2LjcxMDUzIDUzLjMxNThsMTY4LjUxMzItMjM1LjQ4NjljNi02IDE0LTkgMjQtOSA4LjY2NjcgMCAxNyAzLjMzMzMgMjUgMTAgODYgNzkuMzMzMyAxNDEgMTM2IDE2NSAxNzAgNC42NjY3IDUuMzMzMyA3IDEyLjY2NjcgNyAyMiAwIDgtMi42NjY3IDE1LjY2NjctOCAyMy01Ni44MTEzIDQ5LjEyNjUtMTQzLjEzNDQgMTI0LjE0OC0yMTcuMTcxMSAxOTAuMDI2MzUgMTcuMzMzMyAzMy4zMzMzIDMxIDc0LjE1NzkgNDEgMTA2LjE1NzlsMjk1LjE3MTEtMzMuMTg0MjVjOC42NjY3IDEuMzMzMzMgMTUuNjY2NyA1LjUgMjEgMTIuNXM4IDE0LjgzMzMzIDggMjMuNXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=";
7501
7653
  var _imports_2 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0NzUuMDg0IDQ3NS4wODQiIGhlaWdodD0iNDc1LjA4NCIgdmlld0JveD0iMCAwIDQ3NS4wODQgNDc1LjA4NCIgd2lkdGg9IjQ3NS4wODQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTQ2NC41MjQgNDEyLjg0Ni05Ny45MjktOTcuOTI1YzIzLjYtMzQuMDY4IDM1LjQwNi03Mi4wNDcgMzUuNDA2LTExMy45MTcgMC0yNy4yMTgtNS4yODQtNTMuMjQ5LTE1Ljg1Mi03OC4wODctMTAuNTYxLTI0Ljg0Mi0yNC44MzgtNDYuMjU0LTQyLjgyNS02NC4yNDFzLTM5LjM5Ni0zMi4yNjQtNjQuMjMzLTQyLjgyNmMtMjQuODQ1LTEwLjU2NS01MC44NzQtMTUuODQ3LTc4LjA5Mi0xNS44NDctMjcuMjE2IDAtNTMuMjQ3IDUuMjgyLTc4LjA4NSAxNS44NDctMjQuODQyIDEwLjU2Mi00Ni4yNTQgMjQuODM5LTY0LjI0MSA0Mi44MjYtMTcuOTg5IDE3Ljk4Ny0zMi4yNjQgMzkuNDAzLTQyLjgyNyA2NC4yNDEtMTAuNTY0IDI0Ljg0MS0xNS44NDYgNTAuODY5LTE1Ljg0NiA3OC4wODcgMCAyNy4yMTYgNS4yODIgNTMuMjM4IDE1Ljg0NiA3OC4wODMgMTAuNTYyIDI0LjgzOCAyNC44MzggNDYuMjQ3IDQyLjgyNyA2NC4yMzQgMTcuOTg3IDE3Ljk5MyAzOS40MDMgMzIuMjY0IDY0LjI0MSA0Mi44MzIgMjQuODQxIDEwLjU2MyA1MC44NjkgMTUuODQ0IDc4LjA4NSAxNS44NDQgNDEuODc5IDAgNzkuODUyLTExLjgwNyAxMTMuOTIyLTM1LjQwNWw5Ny45MjkgOTcuNjQxYzYuODUyIDcuMjMxIDE1LjQwNiAxMC44NDkgMjUuNjkzIDEwLjg0OSA5Ljg5NyAwIDE4LjQ2Ny0zLjYxNyAyNS42OTQtMTAuODQ5IDcuMjMtNy4yMyAxMC44NDgtMTUuNzk2IDEwLjg0OC0yNS42OTMuMDAzLTEwLjA4Mi0zLjUxOC0xOC42NTEtMTAuNTYxLTI1LjY5NHptLTE0OS45OTc2Ni0xMDguMzc2OTNjLTI1LjAyOSAyNS4wMzEtNzIuMjY4MzUgNDcuMjcyMjgtMTA3LjQ3NTA4IDQ2LjYwNzgxLTUzLjMzMDYxLTEuMDA2NTMtNzIuMjgzMzUtMTAuNDIyNzItMTA5LjQ4NDE0LTM4LjU1NTU0LTI2LjA4NjY2Mi0xOS43Mjc4NS00NC41OTE3MzEtNjcuMjI1NDEtNDcuNjExMzMyLTEwNi40NjQ1NC0yLjcwMTc4OC0zNS4xMDkyIDExLjE3OTQ4NC03NS43MzM3NyAzOS41NTkwNjUtMTA1LjQ1OCAzNi43MzI3NDctMzguNDczMTc0IDY4LjI3NzU1Ny00Ni42OTgzMzEgMTEwLjQ5MDY3Ny00OC42MTc4NzYgNDQuMjY5OC0yLjAxMzA2OCA4NC40NTUxNCAxOC41NTg2OTggMTA5LjQ4ODE0IDQzLjU4NTE5NiAyNS4wMzMgMjUuMDI2NSA0My4wMTA2NiA2OC4yNjEyNSA0MS41NzQxNCAxMDMuNDQ0OTQtMi4wMTMwNyA0OS4zMDQ0OC0xMS41MTI0NyA4MC40MjcwMS0zNi41NDE0NyAxMDUuNDU4MDF6IiBmaWxsPSIjZmZmIi8+PC9zdmc+";
@@ -7503,53 +7655,48 @@ var _imports_3 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3
7503
7655
  var _imports_4 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MDEuOTk0IDQwMS45OTQiIGhlaWdodD0iNDAxLjk5NCIgdmlld0JveD0iMCAwIDQwMS45OTQgNDAxLjk5NCIgd2lkdGg9IjQwMS45OTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLS42ODQxMDcgLTIuNjg1NTQ5KSI+PHBhdGggZD0ibTM5Ny43MTUxOSAyMTYuOTk4MzNjLTMuMTYyMTctMy4xNzE4LTcuMjU5NTYtNy4wNDEwOC0xMS41OTkwOS03LjA5MjY2bC01Ni4wODEyNi0uNjY2Nzd2LTUzLjU1NzExbDQwLjM0OTExLTQxLjU0MjgyYzUuMDU1MDQtNy40MTMyNiA4LjE5ODI4LTEwLjg0NTUxIDkuMTQxMjEtMTkuNDMxMjE3LjQ3MzYtNC4zMTIxNjMtLjE3NTQ0LTEyLjgwNzcyNi0zLjM0NTQ4LTE1Ljk4MDQwMS0zLjE2OTE2LTMuMTcwOTIxLTkuNzU0NjktNS42OTkzMjMtMTQuMDk0NTQtNS42OTkzMjMtNC4zMzk4NCAwLTE1LjczMDc3IDIuODg2MzQyLTIyLjkwMDQ5IDEwLjM5MDMyN2wtNDAuNjgyNDkgMzYuMzQ2ODE0LTE4OS42MzY3MyAxLjAwMDE0LTQ2LjMxNDY5Mi00Mi45ODA5MDVjLTMuMTcxODAzLTMuMTcwOTIxLTEzLjU5MzQ0Ni02LjA4OTg4NS0xNy45MzMzMDUtNi4wODk4ODUtNC4zNDI0NzIgMC0xMS4wOTY5NTggMi45MTk4NDctMTQuMjY4NzUgNi4wODk4ODUtMy4xNzE4MDMgMy4xNzE4MDQtNi4xOTU1ODIgNy45MzM3MzctNi40MjMyOCAxMi4yNjU4NS0uMzMzMzcyIDYuMzQyNzU5LS40MTU2OTIgMTEuMDk4NzI1IDMuNzU2MjQ5IDE3LjkzNTkyNWw0NS45ODEzMDcgNDYuOTgxNDZ2NDcuOTM3MDZsLTU1Ljc0Nzg4MyAxLjAwMDE0Yy04LjA1Mjk3OC4xNDQ0Ni0xMi43NjIxMDkzIDYuNTg3OS0xNC45MzI4ODExIDExLjQyNjU5LTIuODM4NDIwMyA1LjE2OTQ1LTEuNDI0MzQzNyAxNS4yNjM4Ni0xLjQyNDM0MzcgMTkuNjAwMTkgMCA0LjMzOTg2IDEuNTg2MzM3MiA2LjQzMzE2IDQuNzU4MTI5MiA5LjU5OTcgMy4xNzA5MjA2IDMuMTcxNzkgNi45MjU4NjQ2IDQuNzYyNTEgMTEuMjY1NzEyNiA0Ljc2MjUxaDU2LjA4MTI2NmMwIDI2LjY5OTQuNTA4Mzk0IDQxLjIzNzQ0IDEwLjE4Nzc2OSA2MC4yNjEybC00NS41NzA5MzIgNDkuODMwOTdjLTkuODM5NTM1IDkuNjc1MjMtNy43OTkxODggMTcuNTU1MjYtNy41NDc1MTcgMjEuOTc1NzcuMjQ5MDQ2IDQuNDE3MDMgNC45NjAzMiAxMy4xMzIzMiA4LjEzMjExMiAxNi4xNDAxMyAzLjE3MTc5MiAyLjY3MDIgNi43NTgzNyA0LjAwODM3IDEwLjc2NDExMyA0LjAwODM3IDQuNjczOTUzIDAgMTUuMzQ2NDA3LTEuNzQ1OTUgMjQuMDIwNjM2LTEyLjI1ODA2bDQwLjE0Nzc5LTQwLjQ5MjQ1LTIuNTc2NjMtLjgyMjc4YzIuMzM2MSAyLjE3Mzg2IDUuOTYzODkgNC44NzkxNiAxMC44OTAzOSA4LjEzMjUxIDQuOTI1NjMgMy4yNTMzNCAyLjg4OTE0IDQuNjIzNDYgOC45NzkzMSA3Ljg4NTU3IDYuMDk0NTQgMy4yNTMzNSAxMC40NjcyNiA2LjM3MjkgMTAuNDY3MjYgNi4zNzI5cy00My4wMjI4Ny0xNjkuNTIxMTMtOS4wNzcwNy0yMDUuMTIyOWwxMzguMTI2OC42NjY3NmMzNy4xOTcxOSAzNi4xNDkyNy01LjgxODkyIDIwMy42Mzg1OC01LjgxODkyIDIwMy42Mzg1OCA3Ljc0MTM0LTQuMDA0MTkgMTQuMTQzOTgtMTAuNDk0OTUgMjAuMzU3MzEtMTUuNDg0MzYgMS42NzQwNS0xLjMzODE2IDEuOTIyNjUtMS4wODg1NCAyLjc1NjU3LTEuOTE5ODRsNDguOTA4NjkgNDYuOTg2NjFjMy4xNTM1IDMuMDI5NiAxMi43NTkyMSAyLjQyMjcyIDE3LjI2NjU0IDIuNDIyNzIgNC41MDgyMSAwIDguMjIyNjEtMS42MjI2NyAxMS4yNzE4NS00Ljc1NjM4IDMuMTIzODctMy4yMTAzOCA1LjcyNzM5LTcuNjExMSA2LjA4NzI4LTExLjkzNTk4LjMzMzM4LTQuMDA2NDcuNzQyMDktMTIuNzk2MDEtMi40MjAxLTE1LjkzMzAxbC01Mi43NDQ5NS01Mi4zMjQ1N2MxMS4xODUwNC0xOS44NjI5NyAxMy40NDE1OC0zNS43MzEzMiAxMy40NDE1OC02NC4yNzA0N2w1Ni40MTQ2Ni0uMzMzMzdjNC4zMzk3Ny0uMDI1NyA4LjA5OTE4LTQuMjU0MjUgMTEuMjY1NzItNy40MjYwNSAzLjE2OTE2LTMuMTY5MTcgNC43NjMzNy02LjkyNTg3IDQuNzYzMzctMTEuMjY1NzEgMC00LjMzODk3LTEuMjU5OTYtMTMuMDk4OTktNC40NDE0LTE2LjI3MTY2eiIvPjxwYXRoIGQ9Im0yNTguNTY0NjIgMjkuMjFjLTE1LjYwNDY5LTE1LjYwNDY4OC0zNC41MDgzMi0yMy40MTAwOTc0LTU2LjcwNzM5LTIzLjQxMDA5NzQtMjIuMjAyNTggMC00MS4xMDA5NSA3LjgwNTQwOTQtNTYuNzA4MjYgMjMuNDEwMDk3NC0xNS42MDQ2OCAxNS42MDY0MzEtMjMuNDA1NyAzNC41MDkxODctMjMuNDA1NyA1Ni43MDczNzdoMTYwLjIyNjE3YzAtMjIuMTk0NjgzLTcuODAwMTUtNDEuMTAwOTQ2LTIzLjQwNDgyLTU2LjcwNzM3N3oiLz48L2c+PHJlY3QgaGVpZ2h0PSIyMjMuNDc2NTMiIHJ5PSIuNTQ5ODMzIiB3aWR0aD0iNDEuNDg5MzE1IiB4PSIxODAuMTI3MjMiIHk9IjE2My41NzM1NSIvPjwvZz48L3N2Zz4=";
7504
7656
  var _imports_5 = "data:image/svg+xml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0MDEuOTk0IDQwMS45OTQiIGhlaWdodD0iNDAxLjk5NCIgdmlld0JveD0iMCAwIDQwMS45OTQgNDAxLjk5NCIgd2lkdGg9IjQwMS45OTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTEyNi4xMDQzOSAzODguNDI2NzNjLTI3LjE4NTM0NS0xMS4xMDQ5Ny00OC45NzEwMDktMjUuOTg2OTMtNzAuMDQ2MDg2LTQ3Ljg0ODk3LTY2LjI1NDI3Ni02OC43MjgzMi03NS4wNTg0NTMtMTcyLjMzOTIyLTIxLjQ1Mzk1MS0yNTIuNDc4MjIyIDEwLjE1MDYzMS0xNS4xNzUyNDQgMzcuOTA3NjY3LTQyLjkzMjI3IDUzLjA4Mjg5My01My4wODI5MDMgMjIuOTEyNDU0LTE1LjMyNTk5NiA0OS4wMjQzOTQtMjYuMjQ3NzYxIDc1LjE2MDA1NC0zMS40MzY5NzY4IDE4Ljg5NDg5LTMuNzUxNTcwMDYgNTcuNTYzODItMy43NTE1NzAwNiA3Ni40NTg3MSAwIDYwLjk5NDgxIDEyLjExMDQ3NDggMTE0LjUwNDk5IDUzLjExMjIyODggMTQyLjczMTggMTA5LjM2NzEwMTggMTYuOTQ5NjYgMzMuNzgwMDMgMjQuMDA5MTEgNzguNTY1NzcgMTguMzg0NTEgMTE2LjYzMjktNi42NDQ4NCA0NC45NzIwOS0yNC45NDQxOSA4MS4yMjk5Ny01Ny40NTk0IDExMy44NDg2Mi0yMS43Nzg1NiAyMS44NDc4NS00NS42NTcxMyAzNy40NDEwMi03MS44NjMzOCA0Ni45MjgyLTEwLjkyNDAxIDMuOTU0NjctMTcuMzk3MjggMi43OTA5MS0xOC43NjExNS0zLjM3MjkzLS40MzgtMS45Nzk1LTEuMDAwMzEtMTkuNTQ0NS0xLjI0OTYtMzkuMDMzMy0uNDI1MzItMzMuMjUzMjgtLjY4MDQyLTM1Ljk0MDAxLTQuMTQ0NzgtNDMuNjUyNTctMi4wMzAzNC00LjUyMDEzLTQuNjc2ODgtOS4wMzYxNy01Ljg4MTIxLTEwLjAzNTY3LTMuNDQxNjMtMi44NTYzLTIuNTgyMDEtNC41ODEzMiAyLjI4Mjk3LTQuNTgxMzIgNy43MDA1MyAwIDI4Ljg5NTQ5LTYuMTE2NzUgNDAuODk2NDYtMTEuODAyNTMgMTMuMzk2MS02LjM0Njc3IDI3LjA5MDYxLTE5LjIyMDYyIDMzLjgwODItMzEuNzgyMjYgNy4xOTcwMi0xMy40NTgxNSAxMC43NjkxNy0zMC4yOTAyNSAxMC45NzA1OC01MS42OTM3OC4yMDg0NS0yMi4xNTIzOS0yLjgzMjEyLTMzLjMwOTExLTEzLjI0MDY4LTQ4LjU4MzgyLTYuMjY0NTEtOS4xOTMyOC02LjI3MzY1LTkuMjI5MDgtNC4zNzM0My0xNy4xNTAwMSAyLjI1MzY2LTkuMzk0MzUgMS4xNjE2OS0yOS4wODE3MTQtMi4xMTkxNC0zOC4yMDY0NzFsLTIuMjY0OTgtNi4yOTk0MTktOC40ODM0OC4xMzY5MTJjLTEwLjAwNzk2LjE2MTQ5Mi0yMS45OTgyNiA0LjUzMjk0OC0zNi42MTY5MyAxMy4zNDk4NzVsLTEwLjU4NDYyIDYuMzgzOTAzLTEyLjEzODAxLTIuODQ3MTNjLTE2LjY3Mjg1LTMuOTEwNzc3LTU4Ljg2NTIyLTMuOTU1MzIxLTc2LjQyMDUxLS4wODA4bC0xMi4zMTIzNSAyLjcxNzQ4LTEwLjQxMDI4LTYuMjc4NzQ3Yy0xNC41MzA3MS04Ljc2Mzc4NS0yNi40NjczMS0xMy4wODQwODQtMzYuNTk0MDUtMTMuMjQ0NjQxbC04LjYzNDk0Ny0uMTM2ODk4LTIuMTI5NTc1IDYuMjk5NDE5Yy0zLjEzMzQ4OSA5LjI2OTA4MS00LjE2MzA1MSAyOC45ODgxMjctMS45ODcxMTkgMzguMDU4NTA3IDEuODUyODQxIDcuNzIzNDMgMS44MTU3NTYgNy44Njg4OC00LjM3MjU0NCAxNy4xNDk5OC0xMC41MzEwMDkgMTUuNzk0MjUtMTMuNDk4ODk3IDI2LjY5NzY2LTEzLjI2NDY2NiA0OC43MzE4MS4yMjY5MzEgMjEuMzQ4NyAzLjgwNzgyOSAzOC4xNjQzMyAxMS4wMDgyMzUgNTEuNjkzNzggNi4yODkxNzEgMTEuODE3MjcgMjEuMzI5OTU2IDI2LjA2NzY3IDMzLjk4NDE5NiAzMi4xOTgzMiAxMC43MTQyNyA1LjE5MDc4IDMyLjg2ODUgMTEuMzU1MDMgNDAuODgzMjIgMTEuMzc1NDQgNS4yODU1My4wMTQyIDUuMzIyNzEuNDg1NjguNTM2MiA2LjgwOTI0LTIuMDg3MDYgMi43NTcyNS00LjgwNTQzIDguNTU2NjEtNi4wNDA4NCAxMi44ODc0NS0yLjEwNDc3IDcuMzc4NDgtMi43MzM0OSA4LjA0OTUtOS45ODUzMyAxMC42NTc0My0xNy4zNTQ1OCA2LjI0MTEtMzYuODI3ODIuMzE2MTMtNDYuODUxNzQ4LTE0LjI1NTI3LTEyLjI4MjQzNC0xNy44NTQ0My0yMy4wMjk4NjUtMjUuNTM2ODktMzUuNzI1MTM1LTI1LjUzNjg5LTguODk0OTkyIDAtMTAuMDY2OTk2IDMuODAzNDQtMi45ODY2NDIgOS42OTIzNiAxMi4zMTM1NTUgMTAuMjQxNSAxNy42MTM4MjUgMTYuNjI3MjEgMjIuODY4MDEgMjcuNTUxMDggNi42NTc2NDYgMTMuODQxODQgMTIuNjYzODI4IDIwLjE5MDY4IDI0LjIzNzE5NSAyNS42MTk5NiA3LjgyNTU3IDMuNjcxMTEgMTAuNDc2MDEgNC4wNjAzMSAyNy4xNzU4IDMuOTkwNTFsMTguNTA0NTEtLjA3NzJ2MTkuODU1N2MwIDEzLjQ2MDI0LS42MzQwOCAyMC42ODU4LTEuOTY4NTYgMjIuNDMyODEtMy42NTk5NSA0Ljc5MTI5LTkuMjc4OTMgNC41NzUxLTIyLjYwODQyLS44Njk5MXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=";
7505
7657
  var Nav_vue_vue_type_style_index_0_scoped_true_lang = "";
7506
- const _withScopeId$1 = (n) => (pushScopeId("data-v-aea72240"), n = n(), popScopeId(), n);
7507
- const _hoisted_1$2 = { id: "menu" };
7508
- const _hoisted_2$2 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("a", { href: "/project/new" }, [
7658
+ const _withScopeId$2 = (n) => (pushScopeId("data-v-10fcf70c"), n = n(), popScopeId(), n);
7659
+ const _hoisted_1$4 = { id: "menu" };
7660
+ const _hoisted_2$4 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("a", { href: "/project/new" }, [
7509
7661
  /* @__PURE__ */ createElementVNode("img", {
7510
- id: "addProject",
7511
7662
  class: "button",
7512
7663
  title: "add project",
7513
7664
  alt: "add project",
7514
7665
  src: _imports_0$1
7515
7666
  })
7516
7667
  ], -1));
7517
- const _hoisted_3 = ["href"];
7518
- const _hoisted_4 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("img", {
7519
- id: "settings",
7668
+ const _hoisted_3$2 = ["href"];
7669
+ const _hoisted_4$2 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7520
7670
  class: "button",
7521
7671
  title: "settings",
7522
7672
  alt: "settings",
7523
7673
  src: _imports_1
7524
7674
  }, null, -1));
7525
- const _hoisted_5 = [
7526
- _hoisted_4
7675
+ const _hoisted_5$1 = [
7676
+ _hoisted_4$2
7527
7677
  ];
7528
- const _hoisted_6 = ["href"];
7529
- const _hoisted_7 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("img", {
7530
- id: "search",
7678
+ const _hoisted_6$1 = ["href"];
7679
+ const _hoisted_7$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7531
7680
  class: "button",
7532
7681
  title: "search",
7533
7682
  alt: "search",
7534
7683
  src: _imports_2
7535
7684
  }, null, -1));
7536
- const _hoisted_8 = [
7537
- _hoisted_7
7685
+ const _hoisted_8$1 = [
7686
+ _hoisted_7$1
7538
7687
  ];
7539
- const _hoisted_9 = ["href"];
7540
- const _hoisted_10 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("img", {
7541
- id: "doc",
7688
+ const _hoisted_9$1 = ["href"];
7689
+ const _hoisted_10$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7542
7690
  class: "button",
7543
7691
  title: "documentation",
7544
7692
  alt: "documentation",
7545
7693
  src: _imports_3
7546
7694
  }, null, -1));
7547
- const _hoisted_11 = [
7548
- _hoisted_10
7695
+ const _hoisted_11$1 = [
7696
+ _hoisted_10$1
7549
7697
  ];
7550
- const _hoisted_12 = ["href"];
7551
- const _hoisted_13 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("img", {
7552
- id: "bug",
7698
+ const _hoisted_12$1 = ["href"];
7699
+ const _hoisted_13 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7553
7700
  class: "button",
7554
7701
  title: "report a bug",
7555
7702
  alt: "report a bug",
@@ -7559,8 +7706,7 @@ const _hoisted_14 = [
7559
7706
  _hoisted_13
7560
7707
  ];
7561
7708
  const _hoisted_15 = ["href"];
7562
- const _hoisted_16 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("img", {
7563
- id: "github",
7709
+ const _hoisted_16 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("img", {
7564
7710
  class: "button",
7565
7711
  title: "join our github project",
7566
7712
  alt: "join our github project",
@@ -7576,35 +7722,30 @@ const _hoisted_18 = {
7576
7722
  };
7577
7723
  const _hoisted_19 = ["href"];
7578
7724
  const _hoisted_20 = /* @__PURE__ */ createTextVNode(" (");
7579
- const _hoisted_21 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("a", { href: "/logout" }, "Log Out", -1));
7725
+ const _hoisted_21 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createElementVNode("a", { href: "/logout" }, "Log Out", -1));
7580
7726
  const _hoisted_22 = /* @__PURE__ */ createTextVNode(") ");
7581
- const _sfc_main$3 = {
7727
+ const _sfc_main$5 = {
7582
7728
  setup(__props) {
7583
- inject("baseURL");
7584
- inject("logoURL");
7585
- const githubURL = inject("githubURL");
7586
- const issuesURL = inject("issuesURL");
7587
- const searchURL = inject("searchURL");
7588
- const docURL = inject("docURL");
7729
+ const { githubURL, issuesURL, searchURL, docURL } = inject("config");
7589
7730
  const user = inject("user");
7590
7731
  const displaySettings = inject("displaySettings");
7591
- const { project: project2 } = useProject();
7732
+ const { project } = useProject();
7592
7733
  return (_ctx, _cache) => {
7593
- return openBlock(), createElementBlock("nav", _hoisted_1$2, [
7594
- _hoisted_2$2,
7595
- unref(displaySettings) && unref(project2) != null ? (openBlock(), createElementBlock("a", {
7734
+ return openBlock(), createElementBlock("nav", _hoisted_1$4, [
7735
+ _hoisted_2$4,
7736
+ unref(displaySettings) && unref(project) != null ? (openBlock(), createElementBlock("a", {
7596
7737
  key: 0,
7597
- href: `/project/${unref(project2).shortname}/settings`
7598
- }, _hoisted_5, 8, _hoisted_3)) : createCommentVNode("", true),
7738
+ href: `/project/${unref(project).shortname}/settings`
7739
+ }, _hoisted_5$1, 8, _hoisted_3$2)) : createCommentVNode("", true),
7599
7740
  createElementVNode("a", {
7600
7741
  href: unref(searchURL),
7601
7742
  target: "_blank"
7602
- }, _hoisted_8, 8, _hoisted_6),
7603
- createElementVNode("a", { href: unref(docURL) }, _hoisted_11, 8, _hoisted_9),
7743
+ }, _hoisted_8$1, 8, _hoisted_6$1),
7744
+ createElementVNode("a", { href: unref(docURL) }, _hoisted_11$1, 8, _hoisted_9$1),
7604
7745
  createElementVNode("a", {
7605
7746
  href: unref(issuesURL),
7606
7747
  target: "_blank"
7607
- }, _hoisted_14, 8, _hoisted_12),
7748
+ }, _hoisted_14, 8, _hoisted_12$1),
7608
7749
  createElementVNode("a", {
7609
7750
  href: unref(githubURL),
7610
7751
  target: "_blank"
@@ -7612,8 +7753,8 @@ const _sfc_main$3 = {
7612
7753
  unref(user) != null ? (openBlock(), createElementBlock("div", _hoisted_18, [
7613
7754
  createElementVNode("span", null, [
7614
7755
  createElementVNode("a", {
7615
- href: unref(user).brainboxURL
7616
- }, toDisplayString(unref(user).nickname), 9, _hoisted_19),
7756
+ href: `/user/${unref(user).username}`
7757
+ }, toDisplayString(unref(user).username), 9, _hoisted_19),
7617
7758
  _hoisted_20,
7618
7759
  _hoisted_21,
7619
7760
  _hoisted_22
@@ -7623,24 +7764,23 @@ const _sfc_main$3 = {
7623
7764
  };
7624
7765
  }
7625
7766
  };
7626
- var Nav = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-aea72240"]]);
7767
+ var Nav = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-10fcf70c"]]);
7627
7768
  var Header_vue_vue_type_style_index_0_scoped_true_lang = "";
7628
- const _hoisted_1$1 = {
7769
+ const _hoisted_1$3 = {
7629
7770
  class: "logo",
7630
7771
  href: "/"
7631
7772
  };
7632
- const _hoisted_2$1 = ["src", "alt"];
7633
- const _sfc_main$2 = {
7773
+ const _hoisted_2$3 = ["src", "alt"];
7774
+ const _sfc_main$4 = {
7634
7775
  setup(__props) {
7635
- const logoURL = inject("logoURL");
7636
- const siteName = inject("siteName");
7776
+ const { logoURL, siteName } = inject("config");
7637
7777
  return (_ctx, _cache) => {
7638
7778
  return openBlock(), createElementBlock("header", null, [
7639
- createElementVNode("a", _hoisted_1$1, [
7779
+ createElementVNode("a", _hoisted_1$3, [
7640
7780
  createElementVNode("img", {
7641
7781
  src: unref(logoURL),
7642
7782
  alt: unref(siteName)
7643
- }, null, 8, _hoisted_2$1)
7783
+ }, null, 8, _hoisted_2$3)
7644
7784
  ]),
7645
7785
  renderSlot(_ctx.$slots, "default", {}, void 0, true),
7646
7786
  createVNode(Nav)
@@ -7648,12 +7788,12 @@ const _sfc_main$2 = {
7648
7788
  };
7649
7789
  }
7650
7790
  };
7651
- var Header = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-76b6934e"]]);
7791
+ var Header = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-12a1788c"]]);
7652
7792
  var _imports_0 = "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI3MiIgd2lkdGg9IjI3Ni4yNzM0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTQwLjI4MTI1IDBjLTYzLjI3ODEyMyAwLTExNi4zMTM1MDkgNDMuMjg0OTg2LTEzMS41IDEwMS44MTI1aDcuMjE4NzUgNXYzLjMxMjVjLjYwNDAxLS40MDU3NyAxLjExNzU2LS45NTcxOSAxLjc1LTEuMzEyNWguMDMxMjVjMS4wOTMxOC0uNjA3MzEgMi4yMzY1NTctMS4xNDAwNCAzLjQwNjI1LTEuNTkzNzVzMi4zODkwMTgtLjgyMzcxIDMuNjI1LTEuMTI1YzIuNDcxOTY1LS42MDI1OSA1LjA0Mjk3LS45MDYyMiA3LjcxODc1LS45MDYyNSAyLjE2ODEwMy4wMDAwMiA0LjI3NDQ0My4xOTA2NSA2LjI4MTI1LjU2MjVzMy45MjExNzEuOTQzMTUgNS43MTg3NSAxLjY4NzUgMy40OTA4MyAxLjY2Mzc0IDUuMDMxMjUgMi43ODEyNSAyLjkyMDkyIDIuNDE0OSA0LjE1NjI1IDMuOTA2MjVoLjAzMTI1Yy4wMDU1NS4wMDY2OC0uMDA1NTUuMDI0NTcgMCAuMDMxMjUgMS4yMzM4MDIgMS40ODYyOSAyLjI5Njk4OSAzLjExMzg1IDMuMTg3NSA0Ljg3NXMxLjYxNzA0OSAzLjY2OTk3IDIuMTg3NSA1LjY4NzUuOTc2MzggNC4xNTA4MiAxLjI1IDYuNDA2MjUuNDA2MjMgNC42MTg5MS40MDYyNSA3LjA5Mzc1djQwLjE4NzUgNWgtNS0xMC45Mzc1LTV2LTUtMzkuODQzNzVjLS4wMDAwMi0yLjgyNzQtLjI3NTMzNy01LjExMDEtLjc1LTYuOTM3NXMtMS4xNDg2Ny0zLjE5OTQ4LTEuODc1LTQuMTI1Yy0uNzI5NTA1LS45Mjk0OS0xLjUzOTI1Ni0xLjU5OTU3LTIuNjU2MjUtMi4wNjI1cy0yLjU0MTIzLS43MTg3My00LjQ2ODc1LS43MTg3NWMtMS4yMTE0MDguMDAwMDEtMi4yODEzMjguMDg2MDgtMy4yODEyNS4yNXMtMS45MjA1NjMuNDE4ODctMi43NS43NS0xLjU4MTI5Ny43NDgzNi0yLjI4MTI1IDEuMjUtMS4zNTcyOCAxLjA3NDU0LTEuOTY4NzUgMS43NWMtLjYxMjM2LjY3NjQ1LTEuMTUyNzU4IDEuNDMyMDctMS42MjUgMi4yNXMtLjg2NDAyNiAxLjcwMDYxLTEuMTg3NSAyLjY4NzUtLjU4Mzk0MiAyLjA2NjY3LS43NSAzLjI1LS4yNTAwMDcgMi40Njc3Ny0uMjUgMy44NzV2MzcuNjI1IDVoLTUtNC45MDYyNWMxNy44MzAzNjIgNTQuMzI0NzggNjguODk4ODI1IDkzLjU5Mzc1IDEyOS4xODc1IDkzLjU5Mzc1IDYwLjI5NjcxIDAgMTExLjQxODMyLTM5LjI0NDA0IDEyOS4yNDIxOS05My41ODAwOGgtNC4wMTE3Mi0xMS4yNWMtOS4wNjQxMiAwLTE2LjE4ODY0LTEuNDMxNjUtMjAuOTY4NzUtNi4wOTM3NXYtLjAzMTI1aC0uMDMxMjVjLTQuNzY4MS00LjcwOTIyLTYuMjgxMjYtMTEuODQyNjUtNi4yODEyNS0yMC44MTI1di0zMS4xNTYyNWgtMy4wMzEyNS01di01LTguNS01aDUgMy4wMzEyNXYtMTMuOTM3NDk4LTVoNSAxMSA1djUgMTMuOTM3NDk4aDE3LjUzMTI1IDV2NSA4LjUgNWgtNS0xNy41MzEyNXYzMS4xNTYyNWMtLjAwMDAyIDQuMTkzNjcuOTMxMjQgNi42MzE3Mi45MDQzIDYuOTYyODkuMzkxMjUuMTE4MDQgMi4xMTI1My44MTgzNyA1LjM3Njk1LjgxODM2aDExLjI1IDV2NSA5LjE1NjI1IDEuODU5MzhjMy43NDYxNy0xMi40MzcxNiA1Ljc2OTUzLTI1LjYyMTAzIDUuNzY5NTMtMzkuMjc5MyAwLTc1LjExMDcyOS02MC44ODkyNy0xMzYtMTM2LTEzNnptMTMwLjIzMDQ3IDE3NS4yNzkzYy0uMzE3IDEuMDUyNDItLjY0NjY0IDIuMDk5MTItLjk4ODI4IDMuMTQwNjJoLjk4ODI4em0tMTY0LjQwNjI1LTc1LjA3ODEzYzEwLjQ5OTY1LjAwMDA3IDE5LjI5ODAzIDIuODQ1OSAyNS4yMTg3NSA5LjA2MjUgNS45MjQ0NiA2LjIyMDgyIDguNTMxMTcgMTUuMjI0MDggOC41MzEyNSAyNi4xNTYyNXYzOCA1aC01LTEwLjk2ODc1LTV2LTIuOTM3NWMtLjY2NjA0LjQyNzY0LTEuMzI4MS44ODM0Ni0yLjAzMTI1IDEuMjVsLS4wMzEyNS4wMzEyNWMtNC41OTcxNSAyLjM0NzQ1LTkuOTU2NTggMy40MDYyNS0xNS45Mzc1IDMuNDA2MjUtNy43NTA0NTEgMC0xNC42NTI4MjEtMi4zMjU4LTE5LjcxODc1MS03LjA5Mzc1aC0uMDMxMjVsLS4wMzEyNS0uMDMxMjVjLTUuMDA3ODctNC44MDk1Mi03LjUzMTI2LTExLjUzNzIxLTcuNTMxMjUtMTktLjAwMDAxLTguNjA1MzggMy4yMTQzOC0xNi4xNzIyMiA5LjQ2ODc1LTIwLjkzNzUgNi4yOTk4Ni00Ljc2MjA3IDE0LjkwOTgxLTYuNzE4NzEgMjUuNTAwMDAxLTYuNzE4NzVoOS43MTg3NWMtLjUwMzY1LTEuNTUwODktMS4yNjY1LTIuODM2MDYtMi41MzEyNS0zLjg3NWwtLjAzMTI1LS4wMzEyNWgtLjAzMTI1Yy0yLjE0ODg5LTEuODEyMjUtNS40NzI2Ni0yLjk5OTk1LTEwLjY4NzUtMy0zLjQwNzQuMDAwMDUtNi43MDI4NjEuNDA5MTQtOS45MDYyNTEgMS4yMTg3NS0zLjE5NTAyLjgwNzU4LTYuMjQ3MTkgMi4wMjkwMS05LjIxODc1IDMuNjU2MjVsLTcuNDA2MjUgNC4wMzEyNXYtOC40Mzc1LTEwLjA5Mzc1LTMuNDM3NWwzLjE4NzUtMS4yNWM0LjIxOTAzLTEuNjI5MDcgOC4zODA1NC0yLjg0MDUgMTIuNDM3NS0zLjY1NjI1LjAyMTgxLS4wMDQzOS4wNDA2OS0uMDI2ODkuMDYyNS0uMDMxMjV2LjAzMTI1YzQuMDU3MjQtLjg1MDAxIDguMDQ5NDkxLTEuMzEyNDMgMTEuOTY4NzUxLTEuMzEyNXptNzQuNzE4NzUgMGMxMC40OTk2NS4wMDAwNyAxOS4yOTgwMiAyLjg0NTg5IDI1LjIxODc1IDkuMDYyNSA1LjkyNDQ1IDYuMjIwODIgOC40OTk5NCAxNS4yMjQwNyA4LjUgMjYuMTU2MjV2MzggNWgtNS0xMC45Mzc1LTV2LTIuOTM3NWMtLjY3MDM3LjQzMS0xLjMyMzI1Ljg4MDkzLTIuMDMxMjUgMS4yNWgtLjAzMTI1di4wMzEyNWMtNC41OTcxNSAyLjM0NzQ1LTkuOTg3ODQgMy40MDYyNS0xNS45Njg3NSAzLjQwNjI1LTcuNzUwNDUgMC0xNC42NTI4Mi0yLjMyNTgtMTkuNzE4NzUtNy4wOTM3NWwtLjAzMTI1LS4wMzEyNWMtNS4wMDc4Ny00LjgwOTUyLTcuNTMxMjYtMTEuNTM3MjEtNy41MzEyNS0xOS0uMDAwMDEtOC42MDUzOCAzLjE4MzEzLTE2LjE3MjIyIDkuNDM3NS0yMC45Mzc1aC4wMzEyNWM2LjI5OTg2LTQuNzYyMDcgMTQuOTA5OC02LjcxODcxIDI1LjUtNi43MTg3NWg5LjY4NzVjLS41MDM2OC0xLjU1MDUzLTEuMjY2Ny0yLjgzNjIzLTIuNTMxMjUtMy44NzV2LS4wMzEyNWgtLjAzMTI1Yy0yLjE0ODkxLTEuODEyMjYtNS40NzI2NS0yLjk5OTk1LTEwLjY4NzUtMy0zLjQwNzQuMDAwMDUtNi43MDI4Ni40MDkxNC05LjkwNjI1IDEuMjE4NzUtMy4xOTUwMi44MDc1OC02LjI3ODQ0IDIuMDI5MDEtOS4yNSAzLjY1NjI1bC03LjM3NSA0LjAzMTI1di04LjQzNzUtMTAuMDkzNzUtMy40Mzc1bDMuMTg3NS0xLjI1YzQuMjQxNzItMS42Mzc4MiA4LjM5MDgzLTIuODcxODUgMTIuNDY4NzUtMy42ODc1di4wMzEyNWM0LjA2Nzc5LS44NTQyNiA4LjA3MDg0LTEuMzEyNDMgMTItMS4zMTI1em0tNjcuODEyNSA0NC43NWMtOC40NjEzNC4wMDAwMy0xNC4wMzMzMDEgMS4yNTc0LTE1LjgxMjUwMSAyLjMxMjUtMS44OTMyOCAxLjEyMjc2LTIuNjg3NTIgMi4zNTA2Mi0yLjY4NzUgNi4wNjI1LS4wMDAwMSAyLjc3NTUxLjY1MDM1IDQuMTgyMDkgMi4xMjUgNS41MzEyNS4wMTE2OC4wMTA2OS4wMTk0Ni4wMjA1Ny4wMzEyNS4wMzEyNSAxLjUxNDM2IDEuMzE0NDQgMy42MDI4MzEgMi4wOTM3NiA3LjEyNTAwMSAyLjA5Mzc1IDQuODkwMjcuMDAwMDEgOC4wMjA0NC0xLjQxNTM0IDEwLjc4MTI1LTQuNjU2MjUgMi4zOTE4OC0yLjgwMzQzIDMuNzc2MzctNi40ODYwNSA0LjE1NjI1LTExLjM3NXptNzQuNzE4NzUgMGMtOC40NjEzNC4wMDAwMy0xNC4wNjQ1NSAxLjI1NzQtMTUuODQzNzUgMi4zMTI1LTEuODkzMjggMS4xMjI3Ni0yLjY1NjI3IDIuMzUwNjItMi42NTYyNSA2LjA2MjUtLjAwMDAxIDIuNzk3NDkuNjU2ODEgNC4yMDM2NSAyLjE1NjI1IDUuNTYyNSAxLjUxMjk1IDEuMzA0NTIgMy42MTc4OSAyLjA5Mzc2IDcuMTI1IDIuMDkzNzUgNC44OTAyNy4wMDAwMSA3Ljk4OTE5LTEuNDE1MzQgMTAuNzUtNC42NTYyNSAyLjM5MTg4LTIuODAzNDMgMy44MDc2Mi02LjQ4NjA1IDQuMTg3NS0xMS4zNzV6IiBmaWxsPSIjZmZmIi8+PC9zdmc+";
7653
7793
  var Footer_vue_vue_type_style_index_0_scoped_true_lang = "";
7654
- const _sfc_main$1 = {};
7655
- const _withScopeId = (n) => (pushScopeId("data-v-79b1b506"), n = n(), popScopeId(), n);
7656
- const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("p", null, [
7794
+ const _sfc_main$3 = {};
7795
+ const _withScopeId$1 = (n) => (pushScopeId("data-v-79b1b506"), n = n(), popScopeId(), n);
7796
+ const _hoisted_1$2 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createElementVNode("p", null, [
7657
7797
  /* @__PURE__ */ createElementVNode("a", {
7658
7798
  target: "_blank",
7659
7799
  href: "http://neuroanatomy.github.io"
@@ -7668,50 +7808,199 @@ const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElem
7668
7808
  href: "http://neuroanatomy.github.io"
7669
7809
  }, " groupe de neuroanatomie appliqu\xE9e et th\xE9orique ")
7670
7810
  ], -1));
7671
- const _hoisted_2 = [
7672
- _hoisted_1
7811
+ const _hoisted_2$2 = [
7812
+ _hoisted_1$2
7673
7813
  ];
7674
7814
  function _sfc_render(_ctx, _cache) {
7675
- return openBlock(), createElementBlock("footer", null, _hoisted_2);
7815
+ return openBlock(), createElementBlock("footer", null, _hoisted_2$2);
7676
7816
  }
7677
- var Footer = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__scopeId", "data-v-79b1b506"]]);
7678
- var SettingsPage_vue_vue_type_style_index_0_scoped_true_lang = "";
7679
- const _sfc_main = {
7817
+ var Footer = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render], ["__scopeId", "data-v-79b1b506"]]);
7818
+ const _sfc_main$2 = {
7680
7819
  props: {
7681
- projectID: {
7682
- type: String,
7820
+ project: {
7821
+ type: Object,
7683
7822
  required: true
7684
7823
  }
7685
7824
  },
7686
7825
  setup(__props) {
7687
7826
  const props = __props;
7688
- const { project: project2, fetchProject, updateProject } = useProject();
7689
- const content = ref(project2.name);
7827
+ const { project, setProject, updateProject } = useProject();
7828
+ setProject(props.project);
7829
+ const content = ref(project.name);
7690
7830
  const onTitleInput = (event) => {
7691
7831
  content.value = event.currentTarget.textContent;
7692
7832
  updateProject({ name: content.value });
7693
7833
  };
7694
- fetchProject(props.projectID);
7695
7834
  return (_ctx, _cache) => {
7696
- return openBlock(), createElementBlock(Fragment, null, [
7697
- createVNode(Header, null, {
7698
- default: withCtx(() => [
7699
- createElementVNode("span", {
7700
- contenteditable: "true",
7701
- onInput: onTitleInput,
7702
- placeholder: "Enter a project name",
7703
- class: normalizeClass({ title: true, empty: !content.value || content.value.trim().length === 0 })
7704
- }, toDisplayString(content.value), 35)
7835
+ return openBlock(), createBlock(Wrapper, null, {
7836
+ default: withCtx(() => [
7837
+ createVNode(Header, null, {
7838
+ default: withCtx(() => [
7839
+ createElementVNode("span", {
7840
+ contenteditable: "true",
7841
+ onInput: onTitleInput,
7842
+ placeholder: "Enter a project name",
7843
+ class: normalizeClass({ title: true, empty: !content.value || content.value.trim().length === 0 })
7844
+ }, toDisplayString(content.value), 35)
7845
+ ]),
7846
+ _: 1
7847
+ }),
7848
+ createElementVNode("main", null, [
7849
+ unref(project) != null ? (openBlock(), createBlock(Settings, { key: 0 })) : createCommentVNode("", true)
7705
7850
  ]),
7706
- _: 1
7707
- }),
7708
- createElementVNode("main", null, [
7709
- unref(project2) != null ? (openBlock(), createBlock(Settings, { key: 0 })) : createCommentVNode("", true)
7851
+ createVNode(Footer)
7710
7852
  ]),
7711
- createVNode(Footer)
7712
- ], 64);
7853
+ _: 1
7854
+ });
7855
+ };
7856
+ }
7857
+ };
7858
+ const _hoisted_1$1 = { class: "title" };
7859
+ const _hoisted_2$1 = { id: "userImage" };
7860
+ const _hoisted_3$1 = ["src"];
7861
+ const _hoisted_4$1 = { id: "userDescription" };
7862
+ const _sfc_main$1 = {
7863
+ props: {
7864
+ user: {
7865
+ type: Object,
7866
+ required: true
7867
+ }
7868
+ },
7869
+ setup(__props) {
7870
+ return (_ctx, _cache) => {
7871
+ return openBlock(), createBlock(Wrapper, null, {
7872
+ default: withCtx(() => [
7873
+ createVNode(Header, null, {
7874
+ default: withCtx(() => [
7875
+ createElementVNode("span", _hoisted_1$1, toDisplayString(__props.user.nickname), 1)
7876
+ ]),
7877
+ _: 1
7878
+ }),
7879
+ createElementVNode("main", null, [
7880
+ createVNode(TwoCols, null, {
7881
+ side: withCtx(() => [
7882
+ createElementVNode("div", _hoisted_2$1, [
7883
+ createElementVNode("img", {
7884
+ alt: "user avatar",
7885
+ src: __props.user.avatarURL,
7886
+ style: { "width": "100%" }
7887
+ }, null, 8, _hoisted_3$1)
7888
+ ]),
7889
+ createElementVNode("div", _hoisted_4$1, [
7890
+ createElementVNode("h1", null, toDisplayString(__props.user.name), 1),
7891
+ createElementVNode("h2", null, toDisplayString(__props.user.nickname), 1),
7892
+ createElementVNode("p", null, "Joined " + toDisplayString(new Date(__props.user.joined).toDateString()), 1),
7893
+ renderSlot(_ctx.$slots, "side")
7894
+ ])
7895
+ ]),
7896
+ content: withCtx(() => [
7897
+ renderSlot(_ctx.$slots, "content")
7898
+ ]),
7899
+ _: 3
7900
+ })
7901
+ ]),
7902
+ createVNode(Footer)
7903
+ ]),
7904
+ _: 3
7905
+ });
7906
+ };
7907
+ }
7908
+ };
7909
+ var NewProjectPage_vue_vue_type_style_index_0_scoped_true_lang = "";
7910
+ const _withScopeId = (n) => (pushScopeId("data-v-34344f58"), n = n(), popScopeId(), n);
7911
+ const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("span", { class: "title" }, "BrainBox", -1));
7912
+ const _hoisted_2 = { class: "container" };
7913
+ const _hoisted_3 = { class: "inner" };
7914
+ const _hoisted_4 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("h1", null, "Create a new project", -1));
7915
+ const _hoisted_5 = { class: "warning" };
7916
+ const _hoisted_6 = /* @__PURE__ */ createTextVNode(" The project ");
7917
+ const _hoisted_7 = ["href"];
7918
+ const _hoisted_8 = /* @__PURE__ */ createTextVNode(" already exists ");
7919
+ const _hoisted_9 = { class: "warning" };
7920
+ const _hoisted_10 = { class: "actions" };
7921
+ const _hoisted_11 = /* @__PURE__ */ createTextVNode(" Create Project ");
7922
+ const _hoisted_12 = /* @__PURE__ */ createTextVNode("Cancel");
7923
+ const _sfc_main = {
7924
+ props: {
7925
+ onKeyDown: Function,
7926
+ validInput: Boolean,
7927
+ existingProject: Boolean
7928
+ },
7929
+ setup(__props) {
7930
+ const createProject = (value) => {
7931
+ location.pathname = `/project/${value}/settings`;
7932
+ };
7933
+ const cancel = () => location.assign("/");
7934
+ return (_ctx, _cache) => {
7935
+ return openBlock(), createBlock(Wrapper, null, {
7936
+ default: withCtx(() => [
7937
+ createVNode(Header, null, {
7938
+ default: withCtx(() => [
7939
+ _hoisted_1
7940
+ ]),
7941
+ _: 1
7942
+ }),
7943
+ createElementVNode("main", null, [
7944
+ createElementVNode("div", _hoisted_2, [
7945
+ createElementVNode("div", _hoisted_3, [
7946
+ _hoisted_4,
7947
+ createElementVNode("p", null, [
7948
+ renderSlot(_ctx.$slots, "default", {}, void 0, true)
7949
+ ]),
7950
+ createElementVNode("input", {
7951
+ class: "input",
7952
+ type: "text",
7953
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.handleNameChange && _ctx.handleNameChange(...args)),
7954
+ onKeyup: _cache[1] || (_cache[1] = ($event) => {
7955
+ __props.onKeyDown($event);
7956
+ _ctx.value = $event.target.value;
7957
+ }),
7958
+ placeholder: "Enter the project short name"
7959
+ }, null, 32),
7960
+ withDirectives(createElementVNode("div", _hoisted_5, [
7961
+ _hoisted_6,
7962
+ createElementVNode("a", {
7963
+ href: `/project/${_ctx.value}`
7964
+ }, [
7965
+ createElementVNode("strong", null, toDisplayString(_ctx.value), 1)
7966
+ ], 8, _hoisted_7),
7967
+ _hoisted_8
7968
+ ], 512), [
7969
+ [vShow, __props.existingProject]
7970
+ ]),
7971
+ withDirectives(createElementVNode("div", _hoisted_9, " This name is not allowed. Project short names can only contain letters and numbers ", 512), [
7972
+ [vShow, !__props.validInput]
7973
+ ])
7974
+ ]),
7975
+ createElementVNode("div", _hoisted_10, [
7976
+ createVNode(Button, {
7977
+ disabled: !__props.validInput || __props.existingProject,
7978
+ onClick: _cache[2] || (_cache[2] = ($event) => createProject(_ctx.value)),
7979
+ class: "push-button"
7980
+ }, {
7981
+ default: withCtx(() => [
7982
+ _hoisted_11
7983
+ ]),
7984
+ _: 1
7985
+ }, 8, ["disabled"]),
7986
+ createVNode(Button, {
7987
+ class: "push-button",
7988
+ onClick: cancel
7989
+ }, {
7990
+ default: withCtx(() => [
7991
+ _hoisted_12
7992
+ ]),
7993
+ _: 1
7994
+ })
7995
+ ])
7996
+ ])
7997
+ ]),
7998
+ createVNode(Footer)
7999
+ ]),
8000
+ _: 3
8001
+ });
7713
8002
  };
7714
8003
  }
7715
8004
  };
7716
- var SettingsPage = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4aa64246"]]);
7717
- 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 };
8005
+ var NewProjectPage = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-34344f58"]]);
8006
+ 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 };