@bagelink/vue 0.0.331 → 0.0.337

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/components/MaterialIcon.vue.d.ts +4 -2
  2. package/dist/components/MaterialIcon.vue.d.ts.map +1 -1
  3. package/dist/components/form/inputs/SelectInput.vue.d.ts +24 -16
  4. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  5. package/dist/components/index.d.ts +0 -2
  6. package/dist/components/index.d.ts.map +1 -1
  7. package/dist/components/layout/Layout.vue.d.ts +8 -0
  8. package/dist/components/layout/Layout.vue.d.ts.map +1 -1
  9. package/dist/components/layout/SidebarMenu.vue.d.ts.map +1 -1
  10. package/dist/components/layout/TabbedLayout.vue.d.ts +38 -0
  11. package/dist/components/layout/TabbedLayout.vue.d.ts.map +1 -0
  12. package/dist/components/layout/Tabs.vue.d.ts +24 -0
  13. package/dist/components/layout/Tabs.vue.d.ts.map +1 -0
  14. package/dist/components/layout/TabsBody.vue.d.ts +21 -0
  15. package/dist/components/layout/TabsBody.vue.d.ts.map +1 -0
  16. package/dist/components/layout/TabsNav.vue.d.ts +25 -0
  17. package/dist/components/layout/TabsNav.vue.d.ts.map +1 -0
  18. package/dist/components/layout/index.d.ts +4 -0
  19. package/dist/components/layout/index.d.ts.map +1 -1
  20. package/dist/components/layout/tabsManager.d.ts +4 -0
  21. package/dist/components/layout/tabsManager.d.ts.map +1 -0
  22. package/dist/index.cjs +806 -2027
  23. package/dist/index.mjs +808 -2029
  24. package/dist/style.css +420 -504
  25. package/dist/types/index.d.ts +7 -1
  26. package/dist/types/index.d.ts.map +1 -1
  27. package/dist/types/materialIcons.d.ts +1 -1
  28. package/dist/types/materialIcons.d.ts.map +1 -1
  29. package/dist/utils/index.d.ts.map +1 -1
  30. package/package.json +1 -1
  31. package/src/components/MaterialIcon.vue +3 -2
  32. package/src/components/PageTitle.vue +10 -20
  33. package/src/components/form/BglField.vue +2 -2
  34. package/src/components/form/BglForm.vue +0 -1
  35. package/src/components/form/inputs/SelectInput.vue +161 -482
  36. package/src/components/index.ts +0 -2
  37. package/src/components/layout/Layout.vue +34 -13
  38. package/src/components/layout/SidebarMenu.vue +22 -22
  39. package/src/components/layout/TabbedLayout.vue +79 -0
  40. package/src/components/layout/Tabs.vue +19 -0
  41. package/src/components/layout/TabsBody.vue +15 -0
  42. package/src/components/layout/TabsNav.vue +48 -0
  43. package/src/components/layout/index.ts +4 -0
  44. package/src/components/layout/tabsManager.ts +18 -0
  45. package/src/styles/appearance.css +42 -0
  46. package/src/styles/layout.css +74 -12
  47. package/src/styles/mobilLayout.css +77 -17
  48. package/src/styles/text.css +153 -1
  49. package/src/types/index.ts +9 -1
  50. package/src/types/materialIcons.ts +1180 -1178
  51. package/src/utils/index.ts +0 -1
  52. package/src/components/ComboBox.vue +0 -171
  53. package/src/components/TabbedLayout.vue +0 -87
package/dist/index.cjs CHANGED
@@ -262,7 +262,7 @@ const computePosition = async (reference, floating, config) => {
262
262
  middlewareData
263
263
  };
264
264
  };
265
- async function detectOverflow(state, options) {
265
+ async function detectOverflow(state2, options) {
266
266
  var _await$platform$isEle;
267
267
  if (options === void 0) {
268
268
  options = {};
@@ -274,14 +274,14 @@ async function detectOverflow(state, options) {
274
274
  rects,
275
275
  elements,
276
276
  strategy
277
- } = state;
277
+ } = state2;
278
278
  const {
279
279
  boundary = "clippingAncestors",
280
280
  rootBoundary = "viewport",
281
281
  elementContext = "floating",
282
282
  altBoundary = false,
283
283
  padding = 0
284
- } = evaluate(options, state);
284
+ } = evaluate(options, state2);
285
285
  const paddingObject = getPaddingObject(padding);
286
286
  const altContext = elementContext === "floating" ? "reference" : "floating";
287
287
  const element = elements[altBoundary ? altContext : elementContext];
@@ -320,7 +320,7 @@ async function detectOverflow(state, options) {
320
320
  const arrow = (options) => ({
321
321
  name: "arrow",
322
322
  options,
323
- async fn(state) {
323
+ async fn(state2) {
324
324
  const {
325
325
  x: x2,
326
326
  y: y2,
@@ -329,11 +329,11 @@ const arrow = (options) => ({
329
329
  platform: platform2,
330
330
  elements,
331
331
  middlewareData
332
- } = state;
332
+ } = state2;
333
333
  const {
334
334
  element,
335
335
  padding = 0
336
- } = evaluate(options, state) || {};
336
+ } = evaluate(options, state2) || {};
337
337
  if (element == null) {
338
338
  return {};
339
339
  }
@@ -395,7 +395,7 @@ const autoPlacement = function(options) {
395
395
  return {
396
396
  name: "autoPlacement",
397
397
  options,
398
- async fn(state) {
398
+ async fn(state2) {
399
399
  var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;
400
400
  const {
401
401
  rects,
@@ -403,16 +403,16 @@ const autoPlacement = function(options) {
403
403
  placement,
404
404
  platform: platform2,
405
405
  elements
406
- } = state;
406
+ } = state2;
407
407
  const {
408
408
  crossAxis = false,
409
409
  alignment,
410
410
  allowedPlacements = placements,
411
411
  autoAlignment = true,
412
412
  ...detectOverflowOptions
413
- } = evaluate(options, state);
413
+ } = evaluate(options, state2);
414
414
  const placements$1 = alignment !== void 0 || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;
415
- const overflow = await detectOverflow(state, detectOverflowOptions);
415
+ const overflow = await detectOverflow(state2, detectOverflowOptions);
416
416
  const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;
417
417
  const currentPlacement = placements$1[currentIndex];
418
418
  if (currentPlacement == null) {
@@ -482,7 +482,7 @@ const flip = function(options) {
482
482
  return {
483
483
  name: "flip",
484
484
  options,
485
- async fn(state) {
485
+ async fn(state2) {
486
486
  var _middlewareData$arrow, _middlewareData$flip;
487
487
  const {
488
488
  placement,
@@ -491,7 +491,7 @@ const flip = function(options) {
491
491
  initialPlacement,
492
492
  platform: platform2,
493
493
  elements
494
- } = state;
494
+ } = state2;
495
495
  const {
496
496
  mainAxis: checkMainAxis = true,
497
497
  crossAxis: checkCrossAxis = true,
@@ -500,7 +500,7 @@ const flip = function(options) {
500
500
  fallbackAxisSideDirection = "none",
501
501
  flipAlignment = true,
502
502
  ...detectOverflowOptions
503
- } = evaluate(options, state);
503
+ } = evaluate(options, state2);
504
504
  if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
505
505
  return {};
506
506
  }
@@ -512,7 +512,7 @@ const flip = function(options) {
512
512
  fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
513
513
  }
514
514
  const placements2 = [initialPlacement, ...fallbackPlacements];
515
- const overflow = await detectOverflow(state, detectOverflowOptions);
515
+ const overflow = await detectOverflow(state2, detectOverflowOptions);
516
516
  const overflows = [];
517
517
  let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
518
518
  if (checkMainAxis) {
@@ -569,19 +569,19 @@ const flip = function(options) {
569
569
  }
570
570
  };
571
571
  };
572
- async function convertValueToCoords(state, options) {
572
+ async function convertValueToCoords(state2, options) {
573
573
  const {
574
574
  placement,
575
575
  platform: platform2,
576
576
  elements
577
- } = state;
577
+ } = state2;
578
578
  const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));
579
579
  const side = getSide$1(placement);
580
580
  const alignment = getAlignment(placement);
581
581
  const isVertical = getSideAxis(placement) === "y";
582
582
  const mainAxisMulti = ["left", "top"].includes(side) ? -1 : 1;
583
583
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
584
- const rawValue = evaluate(options, state);
584
+ const rawValue = evaluate(options, state2);
585
585
  let {
586
586
  mainAxis,
587
587
  crossAxis,
@@ -614,15 +614,15 @@ const offset = function(options) {
614
614
  return {
615
615
  name: "offset",
616
616
  options,
617
- async fn(state) {
617
+ async fn(state2) {
618
618
  var _middlewareData$offse, _middlewareData$arrow;
619
619
  const {
620
620
  x: x2,
621
621
  y: y2,
622
622
  placement,
623
623
  middlewareData
624
- } = state;
625
- const diffCoords = await convertValueToCoords(state, options);
624
+ } = state2;
625
+ const diffCoords = await convertValueToCoords(state2, options);
626
626
  if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
627
627
  return {};
628
628
  }
@@ -644,12 +644,12 @@ const shift$1 = function(options) {
644
644
  return {
645
645
  name: "shift",
646
646
  options,
647
- async fn(state) {
647
+ async fn(state2) {
648
648
  const {
649
649
  x: x2,
650
650
  y: y2,
651
651
  placement
652
- } = state;
652
+ } = state2;
653
653
  const {
654
654
  mainAxis: checkMainAxis = true,
655
655
  crossAxis: checkCrossAxis = false,
@@ -666,12 +666,12 @@ const shift$1 = function(options) {
666
666
  }
667
667
  },
668
668
  ...detectOverflowOptions
669
- } = evaluate(options, state);
669
+ } = evaluate(options, state2);
670
670
  const coords = {
671
671
  x: x2,
672
672
  y: y2
673
673
  };
674
- const overflow = await detectOverflow(state, detectOverflowOptions);
674
+ const overflow = await detectOverflow(state2, detectOverflowOptions);
675
675
  const crossAxis = getSideAxis(getSide$1(placement));
676
676
  const mainAxis = getOppositeAxis(crossAxis);
677
677
  let mainAxisCoord = coords[mainAxis];
@@ -691,7 +691,7 @@ const shift$1 = function(options) {
691
691
  crossAxisCoord = clamp(min2, crossAxisCoord, max2);
692
692
  }
693
693
  const limitedCoords = limiter.fn({
694
- ...state,
694
+ ...state2,
695
695
  [mainAxis]: mainAxisCoord,
696
696
  [crossAxis]: crossAxisCoord
697
697
  });
@@ -712,19 +712,19 @@ const size = function(options) {
712
712
  return {
713
713
  name: "size",
714
714
  options,
715
- async fn(state) {
715
+ async fn(state2) {
716
716
  const {
717
717
  placement,
718
718
  rects,
719
719
  platform: platform2,
720
720
  elements
721
- } = state;
721
+ } = state2;
722
722
  const {
723
723
  apply: apply2 = () => {
724
724
  },
725
725
  ...detectOverflowOptions
726
- } = evaluate(options, state);
727
- const overflow = await detectOverflow(state, detectOverflowOptions);
726
+ } = evaluate(options, state2);
727
+ const overflow = await detectOverflow(state2, detectOverflowOptions);
728
728
  const side = getSide$1(placement);
729
729
  const alignment = getAlignment(placement);
730
730
  const isYAxis = getSideAxis(placement) === "y";
@@ -743,7 +743,7 @@ const size = function(options) {
743
743
  }
744
744
  const overflowAvailableHeight = height - overflow[heightSide];
745
745
  const overflowAvailableWidth = width - overflow[widthSide];
746
- const noShift = !state.middlewareData.shift;
746
+ const noShift = !state2.middlewareData.shift;
747
747
  let availableHeight = overflowAvailableHeight;
748
748
  let availableWidth = overflowAvailableWidth;
749
749
  if (isYAxis) {
@@ -765,7 +765,7 @@ const size = function(options) {
765
765
  }
766
766
  }
767
767
  await apply2({
768
- ...state,
768
+ ...state2,
769
769
  availableWidth,
770
770
  availableHeight
771
771
  });
@@ -4019,7 +4019,7 @@ const adapters = {
4019
4019
  }
4020
4020
  if (!adapter) {
4021
4021
  const reasons = Object.entries(rejectedReasons).map(
4022
- ([id, state]) => `adapter ${id} ` + (state === false ? "is not supported by the environment" : "is not available in the build")
4022
+ ([id, state2]) => `adapter ${id} ` + (state2 === false ? "is not supported by the environment" : "is not available in the build")
4023
4023
  );
4024
4024
  let s2 = length ? reasons.length > 1 ? "since :\n" + reasons.map(renderReason).join("\n") : " " + renderReason(reasons[0]) : "as no adapter specified";
4025
4025
  throw new AxiosError(
@@ -4880,7 +4880,7 @@ const ModalPlugin = {
4880
4880
  const props2 = { ...modal.modalOptions, visible: true, "onUpdate:visible": () => hideModal(index2) };
4881
4881
  if (modal.modalType === "modalForm")
4882
4882
  return vue.h(ModalForm, props2, modal.componentSlots);
4883
- return vue.h(_sfc_main$C, props2, modal.componentSlots);
4883
+ return vue.h(_sfc_main$E, props2, modal.componentSlots);
4884
4884
  });
4885
4885
  }
4886
4886
  });
@@ -4991,8 +4991,6 @@ function bindAttrs(attrs, fieldVal, row) {
4991
4991
  key,
4992
4992
  typeof value === "function" ? value(fieldVal, row) : value
4993
4993
  ]);
4994
- if (attrs.options)
4995
- console.log("arr", arr);
4996
4994
  const resolvedAttrs = Object.fromEntries(arr);
4997
4995
  return resolvedAttrs;
4998
4996
  }
@@ -6970,19 +6968,19 @@ function dfa(nfa2) {
6970
6968
  });
6971
6969
  });
6972
6970
  });
6973
- let state = labeled[states.join(",")] = new ContentMatch(states.indexOf(nfa2.length - 1) > -1);
6971
+ let state2 = labeled[states.join(",")] = new ContentMatch(states.indexOf(nfa2.length - 1) > -1);
6974
6972
  for (let i2 = 0; i2 < out.length; i2++) {
6975
6973
  let states2 = out[i2][1].sort(cmp);
6976
- state.next.push({ type: out[i2][0], next: labeled[states2.join(",")] || explore(states2) });
6974
+ state2.next.push({ type: out[i2][0], next: labeled[states2.join(",")] || explore(states2) });
6977
6975
  }
6978
- return state;
6976
+ return state2;
6979
6977
  }
6980
6978
  }
6981
6979
  function checkForDeadEnds(match2, stream) {
6982
6980
  for (let i2 = 0, work = [match2]; i2 < work.length; i2++) {
6983
- let state = work[i2], dead = !state.validEnd, nodes2 = [];
6984
- for (let j = 0; j < state.next.length; j++) {
6985
- let { type: type3, next } = state.next[j];
6981
+ let state2 = work[i2], dead = !state2.validEnd, nodes2 = [];
6982
+ for (let j = 0; j < state2.next.length; j++) {
6983
+ let { type: type3, next } = state2.next[j];
6986
6984
  nodes2.push(type3.name);
6987
6985
  if (dead && !(type3.isText || type3.hasRequiredAttrs()))
6988
6986
  dead = false;
@@ -10379,14 +10377,14 @@ class Transaction extends Transform {
10379
10377
  /**
10380
10378
  @internal
10381
10379
  */
10382
- constructor(state) {
10383
- super(state.doc);
10380
+ constructor(state2) {
10381
+ super(state2.doc);
10384
10382
  this.curSelectionFor = 0;
10385
10383
  this.updated = 0;
10386
10384
  this.meta = /* @__PURE__ */ Object.create(null);
10387
10385
  this.time = Date.now();
10388
- this.curSelection = state.selection;
10389
- this.storedMarks = state.storedMarks;
10386
+ this.curSelection = state2.selection;
10387
+ this.storedMarks = state2.storedMarks;
10390
10388
  }
10391
10389
  /**
10392
10390
  The transaction's current selection. This defaults to the editor
@@ -10593,8 +10591,8 @@ const baseFields = [
10593
10591
  init(config) {
10594
10592
  return config.storedMarks || null;
10595
10593
  },
10596
- apply(tr2, _marks, _old, state) {
10597
- return state.selection.$cursor ? tr2.storedMarks : null;
10594
+ apply(tr2, _marks, _old, state2) {
10595
+ return state2.selection.$cursor ? tr2.storedMarks : null;
10598
10596
  }
10599
10597
  }),
10600
10598
  new FieldDesc("scrollToSelection", {
@@ -10758,9 +10756,9 @@ class EditorState {
10758
10756
  for (let prop3 in pluginFields) {
10759
10757
  if (prop3 == "doc" || prop3 == "selection")
10760
10758
  throw new RangeError("The JSON fields `doc` and `selection` are reserved");
10761
- let plugin = pluginFields[prop3], state = plugin.spec.state;
10762
- if (state && state.toJSON)
10763
- result[prop3] = state.toJSON.call(plugin, this[plugin.key]);
10759
+ let plugin = pluginFields[prop3], state2 = plugin.spec.state;
10760
+ if (state2 && state2.toJSON)
10761
+ result[prop3] = state2.toJSON.call(plugin, this[plugin.key]);
10764
10762
  }
10765
10763
  return result;
10766
10764
  }
@@ -10789,9 +10787,9 @@ class EditorState {
10789
10787
  } else {
10790
10788
  if (pluginFields)
10791
10789
  for (let prop3 in pluginFields) {
10792
- let plugin = pluginFields[prop3], state = plugin.spec.state;
10793
- if (plugin.key == field.name && state && state.fromJSON && Object.prototype.hasOwnProperty.call(json, prop3)) {
10794
- instance[field.name] = state.fromJSON.call(plugin, config, json[prop3], instance);
10790
+ let plugin = pluginFields[prop3], state2 = plugin.spec.state;
10791
+ if (plugin.key == field.name && state2 && state2.fromJSON && Object.prototype.hasOwnProperty.call(json, prop3)) {
10792
+ instance[field.name] = state2.fromJSON.call(plugin, config, json[prop3], instance);
10795
10793
  return;
10796
10794
  }
10797
10795
  }
@@ -10826,8 +10824,8 @@ class Plugin {
10826
10824
  /**
10827
10825
  Extract the plugin's state field from an editor state.
10828
10826
  */
10829
- getState(state) {
10830
- return state[this.key];
10827
+ getState(state2) {
10828
+ return state2[this.key];
10831
10829
  }
10832
10830
  }
10833
10831
  const keys$1 = /* @__PURE__ */ Object.create(null);
@@ -10848,14 +10846,14 @@ class PluginKey {
10848
10846
  Get the active plugin with this key, if any, from an editor
10849
10847
  state.
10850
10848
  */
10851
- get(state) {
10852
- return state.config.pluginsByKey[this.key];
10849
+ get(state2) {
10850
+ return state2.config.pluginsByKey[this.key];
10853
10851
  }
10854
10852
  /**
10855
10853
  Get the plugin's state from an editor state.
10856
10854
  */
10857
- getState(state) {
10858
- return state[this.key];
10855
+ getState(state2) {
10856
+ return state2[this.key];
10859
10857
  }
10860
10858
  }
10861
10859
  const domIndex = function(node) {
@@ -11341,25 +11339,25 @@ function flattenH(rect, top2) {
11341
11339
  let y2 = top2 ? rect.top : rect.bottom;
11342
11340
  return { top: y2, bottom: y2, left: rect.left, right: rect.right };
11343
11341
  }
11344
- function withFlushedState(view, state, f2) {
11342
+ function withFlushedState(view, state2, f2) {
11345
11343
  let viewState = view.state, active = view.root.activeElement;
11346
- if (viewState != state)
11347
- view.updateState(state);
11344
+ if (viewState != state2)
11345
+ view.updateState(state2);
11348
11346
  if (active != view.dom)
11349
11347
  view.focus();
11350
11348
  try {
11351
11349
  return f2();
11352
11350
  } finally {
11353
- if (viewState != state)
11351
+ if (viewState != state2)
11354
11352
  view.updateState(viewState);
11355
11353
  if (active != view.dom && active)
11356
11354
  active.focus();
11357
11355
  }
11358
11356
  }
11359
- function endOfTextblockVertical(view, state, dir) {
11360
- let sel = state.selection;
11357
+ function endOfTextblockVertical(view, state2, dir) {
11358
+ let sel = state2.selection;
11361
11359
  let $pos = dir == "up" ? sel.$from : sel.$to;
11362
- return withFlushedState(view, state, () => {
11360
+ return withFlushedState(view, state2, () => {
11363
11361
  let { node: dom } = view.docView.domFromPos($pos.pos, dir == "up" ? -1 : 1);
11364
11362
  for (; ; ) {
11365
11363
  let nearest = view.docView.nearestDesc(dom, true);
@@ -11390,15 +11388,15 @@ function endOfTextblockVertical(view, state, dir) {
11390
11388
  });
11391
11389
  }
11392
11390
  const maybeRTL = /[\u0590-\u08ac]/;
11393
- function endOfTextblockHorizontal(view, state, dir) {
11394
- let { $head } = state.selection;
11391
+ function endOfTextblockHorizontal(view, state2, dir) {
11392
+ let { $head } = state2.selection;
11395
11393
  if (!$head.parent.isTextblock)
11396
11394
  return false;
11397
11395
  let offset2 = $head.parentOffset, atStart = !offset2, atEnd = offset2 == $head.parent.content.size;
11398
11396
  let sel = view.domSelection();
11399
11397
  if (!maybeRTL.test($head.parent.textContent) || !sel.modify)
11400
11398
  return dir == "left" || dir == "backward" ? atStart : atEnd;
11401
- return withFlushedState(view, state, () => {
11399
+ return withFlushedState(view, state2, () => {
11402
11400
  let { focusNode: oldNode, focusOffset: oldOff, anchorNode, anchorOffset } = view.domSelectionRange();
11403
11401
  let oldBidiLevel = sel.caretBidiLevel;
11404
11402
  sel.modify("move", dir, "character");
@@ -11419,12 +11417,12 @@ function endOfTextblockHorizontal(view, state, dir) {
11419
11417
  let cachedState = null;
11420
11418
  let cachedDir = null;
11421
11419
  let cachedResult = false;
11422
- function endOfTextblock(view, state, dir) {
11423
- if (cachedState == state && cachedDir == dir)
11420
+ function endOfTextblock(view, state2, dir) {
11421
+ if (cachedState == state2 && cachedDir == dir)
11424
11422
  return cachedResult;
11425
- cachedState = state;
11423
+ cachedState = state2;
11426
11424
  cachedDir = dir;
11427
- return cachedResult = dir == "up" || dir == "down" ? endOfTextblockVertical(view, state, dir) : endOfTextblockHorizontal(view, state, dir);
11425
+ return cachedResult = dir == "up" || dir == "down" ? endOfTextblockVertical(view, state2, dir) : endOfTextblockHorizontal(view, state2, dir);
11428
11426
  }
11429
11427
  const NOT_DIRTY = 0, CHILD_DIRTY = 1, CONTENT_DIRTY = 2, NODE_DIRTY = 3;
11430
11428
  class ViewDesc {
@@ -12929,10 +12927,10 @@ function anchorInRightPlace(view) {
12929
12927
  let domSel = view.domSelectionRange();
12930
12928
  return isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset);
12931
12929
  }
12932
- function moveSelectionBlock(state, dir) {
12933
- let { $anchor, $head } = state.selection;
12930
+ function moveSelectionBlock(state2, dir) {
12931
+ let { $anchor, $head } = state2.selection;
12934
12932
  let $side = dir > 0 ? $anchor.max($head) : $anchor.min($head);
12935
- let $start = !$side.parent.inlineContent ? $side : $side.depth ? state.doc.resolve(dir > 0 ? $side.after() : $side.before()) : null;
12933
+ let $start = !$side.parent.inlineContent ? $side : $side.depth ? state2.doc.resolve(dir > 0 ? $side.after() : $side.before()) : null;
12936
12934
  return $start && Selection$1.findFrom($start, dir);
12937
12935
  }
12938
12936
  function apply(view, sel) {
@@ -13134,9 +13132,9 @@ function setSelFocus(view, node, offset2) {
13134
13132
  sel.extend(node, offset2);
13135
13133
  }
13136
13134
  view.domObserver.setCurSelection();
13137
- let { state } = view;
13135
+ let { state: state2 } = view;
13138
13136
  setTimeout(() => {
13139
- if (view.state == state)
13137
+ if (view.state == state2)
13140
13138
  selectionToDOM(view);
13141
13139
  }, 50);
13142
13140
  }
@@ -13201,9 +13199,9 @@ function stopNativeHorizontalDelete(view, dir) {
13201
13199
  }
13202
13200
  return false;
13203
13201
  }
13204
- function switchEditable(view, node, state) {
13202
+ function switchEditable(view, node, state2) {
13205
13203
  view.domObserver.stop();
13206
- node.contentEditable = state;
13204
+ node.contentEditable = state2;
13207
13205
  view.domObserver.start();
13208
13206
  }
13209
13207
  function safariDownArrowBug(view) {
@@ -13850,14 +13848,14 @@ const timeoutComposition = android ? 5e3 : -1;
13850
13848
  editHandlers.compositionstart = editHandlers.compositionupdate = (view) => {
13851
13849
  if (!view.composing) {
13852
13850
  view.domObserver.flush();
13853
- let { state } = view, $pos = state.selection.$from;
13854
- if (state.selection.empty && (state.storedMarks || !$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some((m2) => m2.type.spec.inclusive === false))) {
13851
+ let { state: state2 } = view, $pos = state2.selection.$from;
13852
+ if (state2.selection.empty && (state2.storedMarks || !$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some((m2) => m2.type.spec.inclusive === false))) {
13855
13853
  view.markCursor = view.state.storedMarks || $pos.marks();
13856
13854
  endComposition(view, true);
13857
13855
  view.markCursor = null;
13858
13856
  } else {
13859
13857
  endComposition(view);
13860
- if (gecko && state.selection.empty && $pos.parentOffset && !$pos.textOffset && $pos.nodeBefore.marks.length) {
13858
+ if (gecko && state2.selection.empty && $pos.parentOffset && !$pos.textOffset && $pos.nodeBefore.marks.length) {
13861
13859
  let sel = view.domSelectionRange();
13862
13860
  for (let node = sel.focusNode, offset2 = sel.focusOffset; node && node.nodeType == 1 && offset2 != 0; ) {
13863
13861
  let before = offset2 < 0 ? node.lastChild : node.childNodes[offset2 - 1];
@@ -15429,18 +15427,18 @@ class EditorView {
15429
15427
  Update the editor's `state` prop, without touching any of the
15430
15428
  other props.
15431
15429
  */
15432
- updateState(state) {
15433
- this.updateStateInner(state, this._props);
15430
+ updateState(state2) {
15431
+ this.updateStateInner(state2, this._props);
15434
15432
  }
15435
- updateStateInner(state, prevProps) {
15433
+ updateStateInner(state2, prevProps) {
15436
15434
  var _a2;
15437
15435
  let prev = this.state, redraw = false, updateSel = false;
15438
- if (state.storedMarks && this.composing) {
15436
+ if (state2.storedMarks && this.composing) {
15439
15437
  clearComposition(this);
15440
15438
  updateSel = true;
15441
15439
  }
15442
- this.state = state;
15443
- let pluginsChanged = prev.plugins != state.plugins || this._props.plugins != prevProps.plugins;
15440
+ this.state = state2;
15441
+ let pluginsChanged = prev.plugins != state2.plugins || this._props.plugins != prevProps.plugins;
15444
15442
  if (pluginsChanged || this._props.plugins != prevProps.plugins || this._props.nodeViews != prevProps.nodeViews) {
15445
15443
  let nodeViews = buildNodeViews(this);
15446
15444
  if (changedNodeViews(nodeViews, this.nodeViews)) {
@@ -15454,20 +15452,20 @@ class EditorView {
15454
15452
  this.editable = getEditable(this);
15455
15453
  updateCursorWrapper(this);
15456
15454
  let innerDeco = viewDecorations(this), outerDeco = computeDocDeco(this);
15457
- let scroll = prev.plugins != state.plugins && !prev.doc.eq(state.doc) ? "reset" : state.scrollToSelection > prev.scrollToSelection ? "to selection" : "preserve";
15458
- let updateDoc = redraw || !this.docView.matchesNode(state.doc, outerDeco, innerDeco);
15459
- if (updateDoc || !state.selection.eq(prev.selection))
15455
+ let scroll = prev.plugins != state2.plugins && !prev.doc.eq(state2.doc) ? "reset" : state2.scrollToSelection > prev.scrollToSelection ? "to selection" : "preserve";
15456
+ let updateDoc = redraw || !this.docView.matchesNode(state2.doc, outerDeco, innerDeco);
15457
+ if (updateDoc || !state2.selection.eq(prev.selection))
15460
15458
  updateSel = true;
15461
15459
  let oldScrollPos = scroll == "preserve" && updateSel && this.dom.style.overflowAnchor == null && storeScrollPos(this);
15462
15460
  if (updateSel) {
15463
15461
  this.domObserver.stop();
15464
- let forceSelUpdate = updateDoc && (ie$1 || chrome) && !this.composing && !prev.selection.empty && !state.selection.empty && selectionContextChanged(prev.selection, state.selection);
15462
+ let forceSelUpdate = updateDoc && (ie$1 || chrome) && !this.composing && !prev.selection.empty && !state2.selection.empty && selectionContextChanged(prev.selection, state2.selection);
15465
15463
  if (updateDoc) {
15466
15464
  let chromeKludge = chrome ? this.trackWrites = this.domSelectionRange().focusNode : null;
15467
- if (redraw || !this.docView.update(state.doc, outerDeco, innerDeco, this)) {
15465
+ if (redraw || !this.docView.update(state2.doc, outerDeco, innerDeco, this)) {
15468
15466
  this.docView.updateOuterDeco([]);
15469
15467
  this.docView.destroy();
15470
- this.docView = docViewDesc(state.doc, outerDeco, innerDeco, this.dom, this);
15468
+ this.docView = docViewDesc(state2.doc, outerDeco, innerDeco, this.dom, this);
15471
15469
  }
15472
15470
  if (chromeKludge && !this.trackWrites)
15473
15471
  forceSelUpdate = true;
@@ -15475,13 +15473,13 @@ class EditorView {
15475
15473
  if (forceSelUpdate || !(this.input.mouseDown && this.domObserver.currentSelection.eq(this.domSelectionRange()) && anchorInRightPlace(this))) {
15476
15474
  selectionToDOM(this, forceSelUpdate);
15477
15475
  } else {
15478
- syncNodeSelection(this, state.selection);
15476
+ syncNodeSelection(this, state2.selection);
15479
15477
  this.domObserver.setCurSelection();
15480
15478
  }
15481
15479
  this.domObserver.start();
15482
15480
  }
15483
15481
  this.updatePluginViews(prev);
15484
- if (((_a2 = this.dragging) === null || _a2 === void 0 ? void 0 : _a2.node) && !prev.doc.eq(state.doc))
15482
+ if (((_a2 = this.dragging) === null || _a2 === void 0 ? void 0 : _a2.node) && !prev.doc.eq(state2.doc))
15485
15483
  this.updateDraggedNode(this.dragging, prev);
15486
15484
  if (scroll == "reset") {
15487
15485
  this.dom.scrollTop = 0;
@@ -15691,8 +15689,8 @@ class EditorView {
15691
15689
  to the view's current state by default, but it is possible to
15692
15690
  pass a different state.
15693
15691
  */
15694
- endOfTextblock(dir, state) {
15695
- return endOfTextblock(this, state || this.state, dir);
15692
+ endOfTextblock(dir, state2) {
15693
+ return endOfTextblock(this, state2 || this.state, dir);
15696
15694
  }
15697
15695
  /**
15698
15696
  Run the editor's paste logic with the given HTML string. The
@@ -16019,21 +16017,21 @@ function keydownHandler(bindings) {
16019
16017
  return false;
16020
16018
  };
16021
16019
  }
16022
- const deleteSelection = (state, dispatch) => {
16023
- if (state.selection.empty)
16020
+ const deleteSelection = (state2, dispatch) => {
16021
+ if (state2.selection.empty)
16024
16022
  return false;
16025
16023
  if (dispatch)
16026
- dispatch(state.tr.deleteSelection().scrollIntoView());
16024
+ dispatch(state2.tr.deleteSelection().scrollIntoView());
16027
16025
  return true;
16028
16026
  };
16029
- function atBlockStart(state, view) {
16030
- let { $cursor } = state.selection;
16031
- if (!$cursor || (view ? !view.endOfTextblock("backward", state) : $cursor.parentOffset > 0))
16027
+ function atBlockStart(state2, view) {
16028
+ let { $cursor } = state2.selection;
16029
+ if (!$cursor || (view ? !view.endOfTextblock("backward", state2) : $cursor.parentOffset > 0))
16032
16030
  return null;
16033
16031
  return $cursor;
16034
16032
  }
16035
- const joinBackward = (state, dispatch, view) => {
16036
- let $cursor = atBlockStart(state, view);
16033
+ const joinBackward = (state2, dispatch, view) => {
16034
+ let $cursor = atBlockStart(state2, view);
16037
16035
  if (!$cursor)
16038
16036
  return false;
16039
16037
  let $cut = findCutBefore($cursor);
@@ -16042,17 +16040,17 @@ const joinBackward = (state, dispatch, view) => {
16042
16040
  if (target == null)
16043
16041
  return false;
16044
16042
  if (dispatch)
16045
- dispatch(state.tr.lift(range2, target).scrollIntoView());
16043
+ dispatch(state2.tr.lift(range2, target).scrollIntoView());
16046
16044
  return true;
16047
16045
  }
16048
16046
  let before = $cut.nodeBefore;
16049
- if (!before.type.spec.isolating && deleteBarrier(state, $cut, dispatch))
16047
+ if (!before.type.spec.isolating && deleteBarrier(state2, $cut, dispatch))
16050
16048
  return true;
16051
16049
  if ($cursor.parent.content.size == 0 && (textblockAt(before, "end") || NodeSelection.isSelectable(before))) {
16052
- let delStep = replaceStep(state.doc, $cursor.before(), $cursor.after(), Slice.empty);
16050
+ let delStep = replaceStep(state2.doc, $cursor.before(), $cursor.after(), Slice.empty);
16053
16051
  if (delStep && delStep.slice.size < delStep.to - delStep.from) {
16054
16052
  if (dispatch) {
16055
- let tr2 = state.tr.step(delStep);
16053
+ let tr2 = state2.tr.step(delStep);
16056
16054
  tr2.setSelection(textblockAt(before, "end") ? Selection$1.findFrom(tr2.doc.resolve(tr2.mapping.map($cut.pos, -1)), -1) : NodeSelection.create(tr2.doc, $cut.pos - before.nodeSize));
16057
16055
  dispatch(tr2.scrollIntoView());
16058
16056
  }
@@ -16061,7 +16059,7 @@ const joinBackward = (state, dispatch, view) => {
16061
16059
  }
16062
16060
  if (before.isAtom && $cut.depth == $cursor.depth - 1) {
16063
16061
  if (dispatch)
16064
- dispatch(state.tr.delete($cut.pos - before.nodeSize, $cut.pos).scrollIntoView());
16062
+ dispatch(state2.tr.delete($cut.pos - before.nodeSize, $cut.pos).scrollIntoView());
16065
16063
  return true;
16066
16064
  }
16067
16065
  return false;
@@ -16075,12 +16073,12 @@ function textblockAt(node, side, only = false) {
16075
16073
  }
16076
16074
  return false;
16077
16075
  }
16078
- const selectNodeBackward = (state, dispatch, view) => {
16079
- let { $head, empty: empty2 } = state.selection, $cut = $head;
16076
+ const selectNodeBackward = (state2, dispatch, view) => {
16077
+ let { $head, empty: empty2 } = state2.selection, $cut = $head;
16080
16078
  if (!empty2)
16081
16079
  return false;
16082
16080
  if ($head.parent.isTextblock) {
16083
- if (view ? !view.endOfTextblock("backward", state) : $head.parentOffset > 0)
16081
+ if (view ? !view.endOfTextblock("backward", state2) : $head.parentOffset > 0)
16084
16082
  return false;
16085
16083
  $cut = findCutBefore($head);
16086
16084
  }
@@ -16088,7 +16086,7 @@ const selectNodeBackward = (state, dispatch, view) => {
16088
16086
  if (!node || !NodeSelection.isSelectable(node))
16089
16087
  return false;
16090
16088
  if (dispatch)
16091
- dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos - node.nodeSize)).scrollIntoView());
16089
+ dispatch(state2.tr.setSelection(NodeSelection.create(state2.doc, $cut.pos - node.nodeSize)).scrollIntoView());
16092
16090
  return true;
16093
16091
  };
16094
16092
  function findCutBefore($pos) {
@@ -16101,27 +16099,27 @@ function findCutBefore($pos) {
16101
16099
  }
16102
16100
  return null;
16103
16101
  }
16104
- function atBlockEnd(state, view) {
16105
- let { $cursor } = state.selection;
16106
- if (!$cursor || (view ? !view.endOfTextblock("forward", state) : $cursor.parentOffset < $cursor.parent.content.size))
16102
+ function atBlockEnd(state2, view) {
16103
+ let { $cursor } = state2.selection;
16104
+ if (!$cursor || (view ? !view.endOfTextblock("forward", state2) : $cursor.parentOffset < $cursor.parent.content.size))
16107
16105
  return null;
16108
16106
  return $cursor;
16109
16107
  }
16110
- const joinForward = (state, dispatch, view) => {
16111
- let $cursor = atBlockEnd(state, view);
16108
+ const joinForward = (state2, dispatch, view) => {
16109
+ let $cursor = atBlockEnd(state2, view);
16112
16110
  if (!$cursor)
16113
16111
  return false;
16114
16112
  let $cut = findCutAfter($cursor);
16115
16113
  if (!$cut)
16116
16114
  return false;
16117
16115
  let after = $cut.nodeAfter;
16118
- if (deleteBarrier(state, $cut, dispatch))
16116
+ if (deleteBarrier(state2, $cut, dispatch))
16119
16117
  return true;
16120
16118
  if ($cursor.parent.content.size == 0 && (textblockAt(after, "start") || NodeSelection.isSelectable(after))) {
16121
- let delStep = replaceStep(state.doc, $cursor.before(), $cursor.after(), Slice.empty);
16119
+ let delStep = replaceStep(state2.doc, $cursor.before(), $cursor.after(), Slice.empty);
16122
16120
  if (delStep && delStep.slice.size < delStep.to - delStep.from) {
16123
16121
  if (dispatch) {
16124
- let tr2 = state.tr.step(delStep);
16122
+ let tr2 = state2.tr.step(delStep);
16125
16123
  tr2.setSelection(textblockAt(after, "start") ? Selection$1.findFrom(tr2.doc.resolve(tr2.mapping.map($cut.pos)), 1) : NodeSelection.create(tr2.doc, tr2.mapping.map($cut.pos)));
16126
16124
  dispatch(tr2.scrollIntoView());
16127
16125
  }
@@ -16130,17 +16128,17 @@ const joinForward = (state, dispatch, view) => {
16130
16128
  }
16131
16129
  if (after.isAtom && $cut.depth == $cursor.depth - 1) {
16132
16130
  if (dispatch)
16133
- dispatch(state.tr.delete($cut.pos, $cut.pos + after.nodeSize).scrollIntoView());
16131
+ dispatch(state2.tr.delete($cut.pos, $cut.pos + after.nodeSize).scrollIntoView());
16134
16132
  return true;
16135
16133
  }
16136
16134
  return false;
16137
16135
  };
16138
- const selectNodeForward = (state, dispatch, view) => {
16139
- let { $head, empty: empty2 } = state.selection, $cut = $head;
16136
+ const selectNodeForward = (state2, dispatch, view) => {
16137
+ let { $head, empty: empty2 } = state2.selection, $cut = $head;
16140
16138
  if (!empty2)
16141
16139
  return false;
16142
16140
  if ($head.parent.isTextblock) {
16143
- if (view ? !view.endOfTextblock("forward", state) : $head.parentOffset < $head.parent.content.size)
16141
+ if (view ? !view.endOfTextblock("forward", state2) : $head.parentOffset < $head.parent.content.size)
16144
16142
  return false;
16145
16143
  $cut = findCutAfter($head);
16146
16144
  }
@@ -16148,7 +16146,7 @@ const selectNodeForward = (state, dispatch, view) => {
16148
16146
  if (!node || !NodeSelection.isSelectable(node))
16149
16147
  return false;
16150
16148
  if (dispatch)
16151
- dispatch(state.tr.setSelection(NodeSelection.create(state.doc, $cut.pos)).scrollIntoView());
16149
+ dispatch(state2.tr.setSelection(NodeSelection.create(state2.doc, $cut.pos)).scrollIntoView());
16152
16150
  return true;
16153
16151
  };
16154
16152
  function findCutAfter($pos) {
@@ -16162,12 +16160,12 @@ function findCutAfter($pos) {
16162
16160
  }
16163
16161
  return null;
16164
16162
  }
16165
- const newlineInCode = (state, dispatch) => {
16166
- let { $head, $anchor } = state.selection;
16163
+ const newlineInCode = (state2, dispatch) => {
16164
+ let { $head, $anchor } = state2.selection;
16167
16165
  if (!$head.parent.type.spec.code || !$head.sameParent($anchor))
16168
16166
  return false;
16169
16167
  if (dispatch)
16170
- dispatch(state.tr.insertText("\n").scrollIntoView());
16168
+ dispatch(state2.tr.insertText("\n").scrollIntoView());
16171
16169
  return true;
16172
16170
  };
16173
16171
  function defaultBlockAt(match2) {
@@ -16178,22 +16176,22 @@ function defaultBlockAt(match2) {
16178
16176
  }
16179
16177
  return null;
16180
16178
  }
16181
- const exitCode = (state, dispatch) => {
16182
- let { $head, $anchor } = state.selection;
16179
+ const exitCode = (state2, dispatch) => {
16180
+ let { $head, $anchor } = state2.selection;
16183
16181
  if (!$head.parent.type.spec.code || !$head.sameParent($anchor))
16184
16182
  return false;
16185
16183
  let above = $head.node(-1), after = $head.indexAfter(-1), type3 = defaultBlockAt(above.contentMatchAt(after));
16186
16184
  if (!type3 || !above.canReplaceWith(after, after, type3))
16187
16185
  return false;
16188
16186
  if (dispatch) {
16189
- let pos = $head.after(), tr2 = state.tr.replaceWith(pos, pos, type3.createAndFill());
16187
+ let pos = $head.after(), tr2 = state2.tr.replaceWith(pos, pos, type3.createAndFill());
16190
16188
  tr2.setSelection(Selection$1.near(tr2.doc.resolve(pos), 1));
16191
16189
  dispatch(tr2.scrollIntoView());
16192
16190
  }
16193
16191
  return true;
16194
16192
  };
16195
- const createParagraphNear = (state, dispatch) => {
16196
- let sel = state.selection, { $from, $to } = sel;
16193
+ const createParagraphNear = (state2, dispatch) => {
16194
+ let sel = state2.selection, { $from, $to } = sel;
16197
16195
  if (sel instanceof AllSelection || $from.parent.inlineContent || $to.parent.inlineContent)
16198
16196
  return false;
16199
16197
  let type3 = defaultBlockAt($to.parent.contentMatchAt($to.indexAfter()));
@@ -16201,21 +16199,21 @@ const createParagraphNear = (state, dispatch) => {
16201
16199
  return false;
16202
16200
  if (dispatch) {
16203
16201
  let side = (!$from.parentOffset && $to.index() < $to.parent.childCount ? $from : $to).pos;
16204
- let tr2 = state.tr.insert(side, type3.createAndFill());
16202
+ let tr2 = state2.tr.insert(side, type3.createAndFill());
16205
16203
  tr2.setSelection(TextSelection.create(tr2.doc, side + 1));
16206
16204
  dispatch(tr2.scrollIntoView());
16207
16205
  }
16208
16206
  return true;
16209
16207
  };
16210
- const liftEmptyBlock = (state, dispatch) => {
16211
- let { $cursor } = state.selection;
16208
+ const liftEmptyBlock = (state2, dispatch) => {
16209
+ let { $cursor } = state2.selection;
16212
16210
  if (!$cursor || $cursor.parent.content.size)
16213
16211
  return false;
16214
16212
  if ($cursor.depth > 1 && $cursor.after() != $cursor.end(-1)) {
16215
16213
  let before = $cursor.before();
16216
- if (canSplit(state.doc, before)) {
16214
+ if (canSplit(state2.doc, before)) {
16217
16215
  if (dispatch)
16218
- dispatch(state.tr.split(before).scrollIntoView());
16216
+ dispatch(state2.tr.split(before).scrollIntoView());
16219
16217
  return true;
16220
16218
  }
16221
16219
  }
@@ -16223,25 +16221,25 @@ const liftEmptyBlock = (state, dispatch) => {
16223
16221
  if (target == null)
16224
16222
  return false;
16225
16223
  if (dispatch)
16226
- dispatch(state.tr.lift(range2, target).scrollIntoView());
16224
+ dispatch(state2.tr.lift(range2, target).scrollIntoView());
16227
16225
  return true;
16228
16226
  };
16229
16227
  function splitBlockAs(splitNode) {
16230
- return (state, dispatch) => {
16231
- let { $from, $to } = state.selection;
16232
- if (state.selection instanceof NodeSelection && state.selection.node.isBlock) {
16233
- if (!$from.parentOffset || !canSplit(state.doc, $from.pos))
16228
+ return (state2, dispatch) => {
16229
+ let { $from, $to } = state2.selection;
16230
+ if (state2.selection instanceof NodeSelection && state2.selection.node.isBlock) {
16231
+ if (!$from.parentOffset || !canSplit(state2.doc, $from.pos))
16234
16232
  return false;
16235
16233
  if (dispatch)
16236
- dispatch(state.tr.split($from.pos).scrollIntoView());
16234
+ dispatch(state2.tr.split($from.pos).scrollIntoView());
16237
16235
  return true;
16238
16236
  }
16239
16237
  if (!$from.parent.isBlock)
16240
16238
  return false;
16241
16239
  if (dispatch) {
16242
16240
  let atEnd = $to.parentOffset == $to.parent.content.size;
16243
- let tr2 = state.tr;
16244
- if (state.selection instanceof TextSelection || state.selection instanceof AllSelection)
16241
+ let tr2 = state2.tr;
16242
+ if (state2.selection instanceof TextSelection || state2.selection instanceof AllSelection)
16245
16243
  tr2.deleteSelection();
16246
16244
  let deflt = $from.depth == 0 ? null : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)));
16247
16245
  let splitType = splitNode && splitNode($to.parent, atEnd);
@@ -16266,31 +16264,31 @@ function splitBlockAs(splitNode) {
16266
16264
  };
16267
16265
  }
16268
16266
  const splitBlock = splitBlockAs();
16269
- const selectAll = (state, dispatch) => {
16267
+ const selectAll = (state2, dispatch) => {
16270
16268
  if (dispatch)
16271
- dispatch(state.tr.setSelection(new AllSelection(state.doc)));
16269
+ dispatch(state2.tr.setSelection(new AllSelection(state2.doc)));
16272
16270
  return true;
16273
16271
  };
16274
- function joinMaybeClear(state, $pos, dispatch) {
16272
+ function joinMaybeClear(state2, $pos, dispatch) {
16275
16273
  let before = $pos.nodeBefore, after = $pos.nodeAfter, index2 = $pos.index();
16276
16274
  if (!before || !after || !before.type.compatibleContent(after.type))
16277
16275
  return false;
16278
16276
  if (!before.content.size && $pos.parent.canReplace(index2 - 1, index2)) {
16279
16277
  if (dispatch)
16280
- dispatch(state.tr.delete($pos.pos - before.nodeSize, $pos.pos).scrollIntoView());
16278
+ dispatch(state2.tr.delete($pos.pos - before.nodeSize, $pos.pos).scrollIntoView());
16281
16279
  return true;
16282
16280
  }
16283
- if (!$pos.parent.canReplace(index2, index2 + 1) || !(after.isTextblock || canJoin(state.doc, $pos.pos)))
16281
+ if (!$pos.parent.canReplace(index2, index2 + 1) || !(after.isTextblock || canJoin(state2.doc, $pos.pos)))
16284
16282
  return false;
16285
16283
  if (dispatch)
16286
- dispatch(state.tr.clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount)).join($pos.pos).scrollIntoView());
16284
+ dispatch(state2.tr.clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount)).join($pos.pos).scrollIntoView());
16287
16285
  return true;
16288
16286
  }
16289
- function deleteBarrier(state, $cut, dispatch) {
16287
+ function deleteBarrier(state2, $cut, dispatch) {
16290
16288
  let before = $cut.nodeBefore, after = $cut.nodeAfter, conn, match2;
16291
16289
  if (before.type.spec.isolating || after.type.spec.isolating)
16292
16290
  return false;
16293
- if (joinMaybeClear(state, $cut, dispatch))
16291
+ if (joinMaybeClear(state2, $cut, dispatch))
16294
16292
  return true;
16295
16293
  let canDelAfter = $cut.parent.canReplace($cut.index(), $cut.index() + 1);
16296
16294
  if (canDelAfter && (conn = (match2 = before.contentMatchAt(before.childCount)).findWrapping(after.type)) && match2.matchType(conn[0] || after.type).validEnd) {
@@ -16299,7 +16297,7 @@ function deleteBarrier(state, $cut, dispatch) {
16299
16297
  for (let i2 = conn.length - 1; i2 >= 0; i2--)
16300
16298
  wrap2 = Fragment.from(conn[i2].create(null, wrap2));
16301
16299
  wrap2 = Fragment.from(before.copy(wrap2));
16302
- let tr2 = state.tr.step(new ReplaceAroundStep($cut.pos - 1, end, $cut.pos, end, new Slice(wrap2, 1, 0), conn.length, true));
16300
+ let tr2 = state2.tr.step(new ReplaceAroundStep($cut.pos - 1, end, $cut.pos, end, new Slice(wrap2, 1, 0), conn.length, true));
16303
16301
  let joinAt = end + 2 * conn.length;
16304
16302
  if (canJoin(tr2.doc, joinAt))
16305
16303
  tr2.join(joinAt);
@@ -16311,7 +16309,7 @@ function deleteBarrier(state, $cut, dispatch) {
16311
16309
  let range2 = selAfter && selAfter.$from.blockRange(selAfter.$to), target = range2 && liftTarget(range2);
16312
16310
  if (target != null && target >= $cut.depth) {
16313
16311
  if (dispatch)
16314
- dispatch(state.tr.lift(range2, target).scrollIntoView());
16312
+ dispatch(state2.tr.lift(range2, target).scrollIntoView());
16315
16313
  return true;
16316
16314
  }
16317
16315
  if (canDelAfter && textblockAt(after, "start", true) && textblockAt(before, "end")) {
@@ -16330,7 +16328,7 @@ function deleteBarrier(state, $cut, dispatch) {
16330
16328
  let end = Fragment.empty;
16331
16329
  for (let i2 = wrap2.length - 1; i2 >= 0; i2--)
16332
16330
  end = Fragment.from(wrap2[i2].copy(end));
16333
- let tr2 = state.tr.step(new ReplaceAroundStep($cut.pos - wrap2.length, $cut.pos + after.nodeSize, $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth, new Slice(end, wrap2.length, 0), 0, true));
16331
+ let tr2 = state2.tr.step(new ReplaceAroundStep($cut.pos - wrap2.length, $cut.pos + after.nodeSize, $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth, new Slice(end, wrap2.length, 0), 0, true));
16334
16332
  dispatch(tr2.scrollIntoView());
16335
16333
  }
16336
16334
  return true;
@@ -16339,8 +16337,8 @@ function deleteBarrier(state, $cut, dispatch) {
16339
16337
  return false;
16340
16338
  }
16341
16339
  function selectTextblockSide(side) {
16342
- return function(state, dispatch) {
16343
- let sel = state.selection, $pos = side < 0 ? sel.$from : sel.$to;
16340
+ return function(state2, dispatch) {
16341
+ let sel = state2.selection, $pos = side < 0 ? sel.$from : sel.$to;
16344
16342
  let depth = $pos.depth;
16345
16343
  while ($pos.node(depth).isInline) {
16346
16344
  if (!depth)
@@ -16350,16 +16348,16 @@ function selectTextblockSide(side) {
16350
16348
  if (!$pos.node(depth).isTextblock)
16351
16349
  return false;
16352
16350
  if (dispatch)
16353
- dispatch(state.tr.setSelection(TextSelection.create(state.doc, side < 0 ? $pos.start(depth) : $pos.end(depth))));
16351
+ dispatch(state2.tr.setSelection(TextSelection.create(state2.doc, side < 0 ? $pos.start(depth) : $pos.end(depth))));
16354
16352
  return true;
16355
16353
  };
16356
16354
  }
16357
16355
  const selectTextblockStart = selectTextblockSide(-1);
16358
16356
  const selectTextblockEnd = selectTextblockSide(1);
16359
16357
  function chainCommands(...commands) {
16360
- return function(state, dispatch, view) {
16358
+ return function(state2, dispatch, view) {
16361
16359
  for (let i2 = 0; i2 < commands.length; i2++)
16362
- if (commands[i2](state, dispatch, view))
16360
+ if (commands[i2](state2, dispatch, view))
16363
16361
  return true;
16364
16362
  return false;
16365
16363
  };
@@ -16586,7 +16584,7 @@ class Branch {
16586
16584
  }
16587
16585
  // Pop the latest event off the branch's history and apply it
16588
16586
  // to a document transform.
16589
- popEvent(state, preserveItems) {
16587
+ popEvent(state2, preserveItems) {
16590
16588
  if (this.eventCount == 0)
16591
16589
  return null;
16592
16590
  let end = this.items.length;
@@ -16602,7 +16600,7 @@ class Branch {
16602
16600
  remap = this.remapping(end, this.items.length);
16603
16601
  mapFrom = remap.maps.length;
16604
16602
  }
16605
- let transform = state.tr;
16603
+ let transform = state2.tr;
16606
16604
  let selection, remaining;
16607
16605
  let addAfter = [], addBefore = [];
16608
16606
  this.items.forEach((item, i2) => {
@@ -16799,7 +16797,7 @@ class HistoryState {
16799
16797
  }
16800
16798
  }
16801
16799
  const DEPTH_OVERFLOW = 20;
16802
- function applyTransaction(history2, state, tr2, options) {
16800
+ function applyTransaction(history2, state2, tr2, options) {
16803
16801
  let historyTr = tr2.getMeta(historyKey), rebased;
16804
16802
  if (historyTr)
16805
16803
  return historyTr.historyState;
@@ -16810,14 +16808,14 @@ function applyTransaction(history2, state, tr2, options) {
16810
16808
  return history2;
16811
16809
  } else if (appended && appended.getMeta(historyKey)) {
16812
16810
  if (appended.getMeta(historyKey).redo)
16813
- return new HistoryState(history2.done.addTransform(tr2, void 0, options, mustPreserveItems(state)), history2.undone, rangesFor(tr2.mapping.maps[tr2.steps.length - 1]), history2.prevTime, history2.prevComposition);
16811
+ return new HistoryState(history2.done.addTransform(tr2, void 0, options, mustPreserveItems(state2)), history2.undone, rangesFor(tr2.mapping.maps[tr2.steps.length - 1]), history2.prevTime, history2.prevComposition);
16814
16812
  else
16815
- return new HistoryState(history2.done, history2.undone.addTransform(tr2, void 0, options, mustPreserveItems(state)), null, history2.prevTime, history2.prevComposition);
16813
+ return new HistoryState(history2.done, history2.undone.addTransform(tr2, void 0, options, mustPreserveItems(state2)), null, history2.prevTime, history2.prevComposition);
16816
16814
  } else if (tr2.getMeta("addToHistory") !== false && !(appended && appended.getMeta("addToHistory") === false)) {
16817
16815
  let composition = tr2.getMeta("composition");
16818
16816
  let newGroup = history2.prevTime == 0 || !appended && history2.prevComposition != composition && (history2.prevTime < (tr2.time || 0) - options.newGroupDelay || !isAdjacentTo(tr2, history2.prevRanges));
16819
16817
  let prevRanges = appended ? mapRanges(history2.prevRanges, tr2.mapping) : rangesFor(tr2.mapping.maps[tr2.steps.length - 1]);
16820
- return new HistoryState(history2.done.addTransform(tr2, newGroup ? state.selection.getBookmark() : void 0, options, mustPreserveItems(state)), Branch.empty, prevRanges, tr2.time, composition == null ? history2.prevComposition : composition);
16818
+ return new HistoryState(history2.done.addTransform(tr2, newGroup ? state2.selection.getBookmark() : void 0, options, mustPreserveItems(state2)), Branch.empty, prevRanges, tr2.time, composition == null ? history2.prevComposition : composition);
16821
16819
  } else if (rebased = tr2.getMeta("rebased")) {
16822
16820
  return new HistoryState(history2.done.rebased(tr2, rebased), history2.undone.rebased(tr2, rebased), mapRanges(history2.prevRanges, tr2.mapping), history2.prevTime, history2.prevComposition);
16823
16821
  } else {
@@ -16853,20 +16851,20 @@ function mapRanges(ranges, mapping) {
16853
16851
  }
16854
16852
  return result;
16855
16853
  }
16856
- function histTransaction(history2, state, dispatch, redo2) {
16857
- let preserveItems = mustPreserveItems(state);
16858
- let histOptions = historyKey.get(state).spec.config;
16859
- let pop = (redo2 ? history2.undone : history2.done).popEvent(state, preserveItems);
16854
+ function histTransaction(history2, state2, dispatch, redo2) {
16855
+ let preserveItems = mustPreserveItems(state2);
16856
+ let histOptions = historyKey.get(state2).spec.config;
16857
+ let pop = (redo2 ? history2.undone : history2.done).popEvent(state2, preserveItems);
16860
16858
  if (!pop)
16861
16859
  return;
16862
16860
  let selection = pop.selection.resolve(pop.transform.doc);
16863
- let added = (redo2 ? history2.done : history2.undone).addTransform(pop.transform, state.selection.getBookmark(), histOptions, preserveItems);
16861
+ let added = (redo2 ? history2.done : history2.undone).addTransform(pop.transform, state2.selection.getBookmark(), histOptions, preserveItems);
16864
16862
  let newHist = new HistoryState(redo2 ? added : pop.remaining, redo2 ? pop.remaining : added, null, 0, -1);
16865
16863
  dispatch(pop.transform.setSelection(selection).setMeta(historyKey, { redo: redo2, historyState: newHist }).scrollIntoView());
16866
16864
  }
16867
16865
  let cachedPreserveItems = false, cachedPreserveItemsPlugins = null;
16868
- function mustPreserveItems(state) {
16869
- let plugins2 = state.plugins;
16866
+ function mustPreserveItems(state2) {
16867
+ let plugins2 = state2.plugins;
16870
16868
  if (cachedPreserveItemsPlugins != plugins2) {
16871
16869
  cachedPreserveItems = false;
16872
16870
  cachedPreserveItemsPlugins = plugins2;
@@ -16891,8 +16889,8 @@ function history(config = {}) {
16891
16889
  init() {
16892
16890
  return new HistoryState(Branch.empty, Branch.empty, null, 0, -1);
16893
16891
  },
16894
- apply(tr2, hist, state) {
16895
- return applyTransaction(hist, state, tr2, config);
16892
+ apply(tr2, hist, state2) {
16893
+ return applyTransaction(hist, state2, tr2, config);
16896
16894
  }
16897
16895
  },
16898
16896
  config,
@@ -16910,20 +16908,20 @@ function history(config = {}) {
16910
16908
  }
16911
16909
  });
16912
16910
  }
16913
- const undo = (state, dispatch) => {
16914
- let hist = historyKey.getState(state);
16911
+ const undo = (state2, dispatch) => {
16912
+ let hist = historyKey.getState(state2);
16915
16913
  if (!hist || hist.done.eventCount == 0)
16916
16914
  return false;
16917
16915
  if (dispatch)
16918
- histTransaction(hist, state, dispatch, false);
16916
+ histTransaction(hist, state2, dispatch, false);
16919
16917
  return true;
16920
16918
  };
16921
- const redo = (state, dispatch) => {
16922
- let hist = historyKey.getState(state);
16919
+ const redo = (state2, dispatch) => {
16920
+ let hist = historyKey.getState(state2);
16923
16921
  if (!hist || hist.undone.eventCount == 0)
16924
16922
  return false;
16925
16923
  if (dispatch)
16926
- histTransaction(hist, state, dispatch, true);
16924
+ histTransaction(hist, state2, dispatch, true);
16927
16925
  return true;
16928
16926
  };
16929
16927
  const pDOM = ["p", 0], blockquoteDOM = ["blockquote", 0], hrDOM = ["hr"], preDOM = ["pre", ["code", 0]], brDOM = ["br"];
@@ -17116,8 +17114,8 @@ const marks = {
17116
17114
  }
17117
17115
  };
17118
17116
  const schema = new Schema({ nodes, marks });
17119
- const _hoisted_1$I = ["id"];
17120
- const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
17117
+ const _hoisted_1$F = ["id"];
17118
+ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
17121
17119
  __name: "RTXEditor",
17122
17120
  props: {
17123
17121
  elementId: { default: Math.random().toString(36).substr(2, 9) },
@@ -17138,7 +17136,7 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
17138
17136
  } catch (err) {
17139
17137
  content = { type: "doc", content: [] };
17140
17138
  }
17141
- const state = EditorState.create({
17139
+ const state2 = EditorState.create({
17142
17140
  doc: DOMParser.fromSchema(schema).schema.nodeFromJSON(content),
17143
17141
  plugins: [
17144
17142
  history(),
@@ -17146,7 +17144,7 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
17146
17144
  keymap(baseKeymap)
17147
17145
  ]
17148
17146
  });
17149
- return state;
17147
+ return state2;
17150
17148
  };
17151
17149
  function handleChange(newState) {
17152
17150
  const dom = document.createElement("div");
@@ -17155,10 +17153,10 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
17155
17153
  html.value = (dom == null ? void 0 : dom.innerHTML) || "";
17156
17154
  emit2("update:modelValue", html.value);
17157
17155
  }
17158
- const createEditorView = (state) => {
17156
+ const createEditorView = (state2) => {
17159
17157
  const editorDiv = document.getElementById(`canvas-${props2.elementId}`);
17160
17158
  view = new EditorView(editorDiv, {
17161
- state,
17159
+ state: state2,
17162
17160
  // editable: () => props.editable,
17163
17161
  dispatchTransaction(transaction) {
17164
17162
  const newState = view.state.apply(transaction);
@@ -17171,8 +17169,8 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
17171
17169
  });
17172
17170
  };
17173
17171
  function loadContent() {
17174
- const state = createEditorStateFromHTML(props2.modelValue);
17175
- createEditorView(state);
17172
+ const state2 = createEditorStateFromHTML(props2.modelValue);
17173
+ createEditorView(state2);
17176
17174
  }
17177
17175
  vue.watch(
17178
17176
  () => props2.modelValue,
@@ -17194,14 +17192,15 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
17194
17192
  onClick: focusEditor,
17195
17193
  id: `canvas-${_ctx.elementId}`,
17196
17194
  onKeydown: _cache[0] || (_cache[0] = vue.withKeys(vue.withModifiers(($event) => _ctx.$emit("keydown.meta.enter"), ["meta"]), ["enter"]))
17197
- }, null, 40, _hoisted_1$I);
17195
+ }, null, 40, _hoisted_1$F);
17198
17196
  };
17199
17197
  }
17200
17198
  });
17201
- const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
17199
+ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
17202
17200
  __name: "MaterialIcon",
17203
17201
  props: {
17204
17202
  icon: {},
17203
+ name: {},
17205
17204
  size: {},
17206
17205
  color: {}
17207
17206
  },
@@ -17210,17 +17209,17 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
17210
17209
  return vue.openBlock(), vue.createElementBlock("div", {
17211
17210
  class: "bgl_icon-font",
17212
17211
  style: vue.normalizeStyle({ fontSize: `${_ctx.size}rem`, color: _ctx.color })
17213
- }, vue.toDisplayString(_ctx.icon), 5);
17212
+ }, vue.toDisplayString(_ctx.icon || _ctx.name), 5);
17214
17213
  };
17215
17214
  }
17216
17215
  });
17217
- const _hoisted_1$H = { class: "full-nav" };
17218
- const _hoisted_2$y = { class: "nav-scroll" };
17219
- const _hoisted_3$o = { class: "nav-links-wrapper" };
17220
- const _hoisted_4$g = { class: "tooltip" };
17221
- const _hoisted_5$d = { class: "bot-buttons-wrapper" };
17222
- const _hoisted_6$9 = { class: "tooltip" };
17223
- const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
17216
+ const _hoisted_1$E = { class: "full-nav" };
17217
+ const _hoisted_2$x = { class: "nav-scroll" };
17218
+ const _hoisted_3$n = { class: "nav-links-wrapper" };
17219
+ const _hoisted_4$f = { class: "tooltip" };
17220
+ const _hoisted_5$c = { class: "bot-buttons-wrapper" };
17221
+ const _hoisted_6$8 = { class: "tooltip" };
17222
+ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
17224
17223
  __name: "NavBar",
17225
17224
  props: {
17226
17225
  footerLinks: { default: () => [] },
@@ -17244,14 +17243,14 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
17244
17243
  "aria-label": "Toggle Navigation",
17245
17244
  tabindex: "0"
17246
17245
  }, [
17247
- vue.createVNode(vue.unref(_sfc_main$F), {
17246
+ vue.createVNode(vue.unref(_sfc_main$H), {
17248
17247
  icon: "chevron_right",
17249
17248
  class: "top-arrow"
17250
17249
  })
17251
17250
  ], 32),
17252
- vue.createElementVNode("div", _hoisted_1$H, [
17253
- vue.createElementVNode("div", _hoisted_2$y, [
17254
- vue.createElementVNode("div", _hoisted_3$o, [
17251
+ vue.createElementVNode("div", _hoisted_1$E, [
17252
+ vue.createElementVNode("div", _hoisted_2$x, [
17253
+ vue.createElementVNode("div", _hoisted_3$n, [
17255
17254
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.links, (link) => {
17256
17255
  return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(link.to ? "router-link" : "div"), {
17257
17256
  class: "nav-button",
@@ -17263,17 +17262,17 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
17263
17262
  }
17264
17263
  }, {
17265
17264
  default: vue.withCtx(() => [
17266
- vue.createVNode(vue.unref(_sfc_main$F), {
17265
+ vue.createVNode(vue.unref(_sfc_main$H), {
17267
17266
  icon: link.icon
17268
17267
  }, null, 8, ["icon"]),
17269
- vue.createElementVNode("div", _hoisted_4$g, vue.toDisplayString(link.label), 1)
17268
+ vue.createElementVNode("div", _hoisted_4$f, vue.toDisplayString(link.label), 1)
17270
17269
  ]),
17271
17270
  _: 2
17272
17271
  }, 1032, ["to", "onClick"]);
17273
17272
  }), 128))
17274
17273
  ])
17275
17274
  ]),
17276
- vue.createElementVNode("div", _hoisted_5$d, [
17275
+ vue.createElementVNode("div", _hoisted_5$c, [
17277
17276
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.footerLinks, (link) => {
17278
17277
  return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(link.to ? "router-link" : "div"), {
17279
17278
  class: "nav-button",
@@ -17285,10 +17284,10 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
17285
17284
  key: link.label
17286
17285
  }, {
17287
17286
  default: vue.withCtx(() => [
17288
- vue.createVNode(vue.unref(_sfc_main$F), {
17287
+ vue.createVNode(vue.unref(_sfc_main$H), {
17289
17288
  icon: link.icon
17290
17289
  }, null, 8, ["icon"]),
17291
- vue.createElementVNode("div", _hoisted_6$9, vue.toDisplayString(link.label), 1)
17290
+ vue.createElementVNode("div", _hoisted_6$8, vue.toDisplayString(link.label), 1)
17292
17291
  ]),
17293
17292
  _: 2
17294
17293
  }, 1032, ["to", "onClick"]);
@@ -17307,16 +17306,16 @@ const _export_sfc = (sfc, props2) => {
17307
17306
  }
17308
17307
  return target;
17309
17308
  };
17310
- const NavBar = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__scopeId", "data-v-727b754a"]]);
17311
- const _hoisted_1$G = {
17309
+ const NavBar = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-727b754a"]]);
17310
+ const _hoisted_1$D = {
17312
17311
  key: 0,
17313
17312
  class: "loading"
17314
17313
  };
17315
- const _hoisted_2$x = {
17314
+ const _hoisted_2$w = {
17316
17315
  key: 1,
17317
17316
  class: "bgl_btn-flex"
17318
17317
  };
17319
- const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
17318
+ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
17320
17319
  __name: "Btn",
17321
17320
  props: {
17322
17321
  disabled: { type: Boolean, default: false },
@@ -17402,8 +17401,8 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
17402
17401
  })
17403
17402
  }, {
17404
17403
  default: vue.withCtx(() => [
17405
- _ctx.loading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$G)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$x, [
17406
- _ctx.icon ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$F), {
17404
+ _ctx.loading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$D)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$w, [
17405
+ _ctx.icon ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$H), {
17407
17406
  key: 0,
17408
17407
  icon: _ctx.icon
17409
17408
  }, null, 8, ["icon"])) : vue.createCommentVNode("", true),
@@ -17411,7 +17410,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
17411
17410
  !vue.unref(slots)["default"] && _ctx.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
17412
17411
  vue.createTextVNode(vue.toDisplayString(_ctx.value), 1)
17413
17412
  ], 64)) : vue.createCommentVNode("", true),
17414
- props2["icon.end"] ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$F), {
17413
+ props2["icon.end"] ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$H), {
17415
17414
  key: 2,
17416
17415
  icon: props2["icon.end"]
17417
17416
  }, null, 8, ["icon"])) : vue.createCommentVNode("", true)
@@ -17422,10 +17421,10 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
17422
17421
  };
17423
17422
  }
17424
17423
  });
17425
- const Btn = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-0c8d9a95"]]);
17426
- const _hoisted_1$F = { class: "tool-bar" };
17427
- const _hoisted_2$w = { class: "modal-footer mt-3" };
17428
- const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
17424
+ const Btn = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-0c8d9a95"]]);
17425
+ const _hoisted_1$C = { class: "tool-bar" };
17426
+ const _hoisted_2$v = { class: "modal-footer mt-3" };
17427
+ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
17429
17428
  __name: "Modal",
17430
17429
  props: {
17431
17430
  side: { type: Boolean },
@@ -17466,13 +17465,13 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
17466
17465
  onClick: _cache[1] || (_cache[1] = () => _ctx.dismissable ? closeModal() : ""),
17467
17466
  onKeydown: vue.withKeys(closeModal, ["esc"])
17468
17467
  }, [
17469
- vue.createVNode(vue.unref(_sfc_main$q), {
17468
+ vue.createVNode(vue.unref(_sfc_main$t), {
17470
17469
  class: "modal",
17471
17470
  onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
17472
17471
  }, ["stop"]))
17473
17472
  }, {
17474
17473
  default: vue.withCtx(() => [
17475
- vue.createElementVNode("header", _hoisted_1$F, [
17474
+ vue.createElementVNode("header", _hoisted_1$C, [
17476
17475
  vue.renderSlot(_ctx.$slots, "toolbar"),
17477
17476
  vue.createVNode(vue.unref(Btn), {
17478
17477
  style: vue.normalizeStyle({ float: _ctx.side ? "left" : "right" }),
@@ -17480,7 +17479,7 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
17480
17479
  icon: "close",
17481
17480
  onClick: closeModal
17482
17481
  }, null, 8, ["style"]),
17483
- _ctx.title ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$o), {
17482
+ _ctx.title ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$r), {
17484
17483
  key: 0,
17485
17484
  class: "modal-title",
17486
17485
  tag: "h3",
@@ -17488,7 +17487,7 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
17488
17487
  }, null, 8, ["label"])) : vue.createCommentVNode("", true)
17489
17488
  ]),
17490
17489
  vue.renderSlot(_ctx.$slots, "default"),
17491
- vue.createElementVNode("footer", _hoisted_2$w, [
17490
+ vue.createElementVNode("footer", _hoisted_2$v, [
17492
17491
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.actions, (action, i2) => {
17493
17492
  return vue.openBlock(), vue.createBlock(vue.unref(Btn), vue.mergeProps({
17494
17493
  key: i2,
@@ -17505,7 +17504,7 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
17505
17504
  };
17506
17505
  }
17507
17506
  });
17508
- const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
17507
+ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
17509
17508
  __name: "ModalForm",
17510
17509
  props: /* @__PURE__ */ vue.mergeModels({
17511
17510
  side: { type: Boolean },
@@ -17562,7 +17561,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
17562
17561
  }
17563
17562
  __expose({ setFormValues });
17564
17563
  return (_ctx, _cache) => {
17565
- return vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$C), {
17564
+ return vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$E), {
17566
17565
  "onOnUpdate:isModalVisible": props2["onUpdate:isModalVisible"],
17567
17566
  side: _ctx.side,
17568
17567
  ref_key: "modal",
@@ -17571,7 +17570,7 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
17571
17570
  title: _ctx.title
17572
17571
  }, vue.createSlots({
17573
17572
  default: vue.withCtx(() => [
17574
- vue.createVNode(vue.unref(_sfc_main$h), {
17573
+ vue.createVNode(vue.unref(_sfc_main$l), {
17575
17574
  onSubmit: runSubmit,
17576
17575
  ref_key: "form",
17577
17576
  ref: form,
@@ -17613,12 +17612,12 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
17613
17612
  };
17614
17613
  }
17615
17614
  });
17616
- const ModalForm = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-7e6899c7"]]);
17617
- const _hoisted_1$E = { class: "accordion-item" };
17618
- const _hoisted_2$v = ["aria-expanded", "aria-controls"];
17619
- const _hoisted_3$n = { class: "accordion-label" };
17620
- const _hoisted_4$f = ["id", "aria-hidden"];
17621
- const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
17615
+ const ModalForm = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-7e6899c7"]]);
17616
+ const _hoisted_1$B = { class: "accordion-item" };
17617
+ const _hoisted_2$u = ["aria-expanded", "aria-controls"];
17618
+ const _hoisted_3$m = { class: "accordion-label" };
17619
+ const _hoisted_4$e = ["id", "aria-hidden"];
17620
+ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
17622
17621
  __name: "AccordionItem",
17623
17622
  props: {
17624
17623
  label: {},
@@ -17642,20 +17641,20 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
17642
17641
  accordionState.openItem = null;
17643
17642
  }
17644
17643
  return (_ctx, _cache) => {
17645
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$E, [
17644
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$B, [
17646
17645
  vue.createElementVNode("button", {
17647
17646
  onClick: _cache[0] || (_cache[0] = ($event) => toggle()),
17648
17647
  "aria-expanded": vue.unref(open) ? "true" : "false",
17649
17648
  class: "accordion-head",
17650
17649
  "aria-controls": `accordion-body-${vue.unref(id)}`
17651
17650
  }, [
17652
- vue.createElementVNode("span", _hoisted_3$n, vue.toDisplayString(_ctx.label), 1),
17651
+ vue.createElementVNode("span", _hoisted_3$m, vue.toDisplayString(_ctx.label), 1),
17653
17652
  vue.createElementVNode("div", {
17654
17653
  class: vue.normalizeClass(["accordion-icon", { open: vue.unref(open) }])
17655
17654
  }, [
17656
- vue.createVNode(vue.unref(_sfc_main$F), { icon: "expand_more" })
17655
+ vue.createVNode(vue.unref(_sfc_main$H), { icon: "expand_more" })
17657
17656
  ], 2)
17658
- ], 8, _hoisted_2$v),
17657
+ ], 8, _hoisted_2$u),
17659
17658
  vue.createVNode(vue.Transition, { name: "expand" }, {
17660
17659
  default: vue.withCtx(() => [
17661
17660
  vue.unref(open) ? (vue.openBlock(), vue.createElementBlock("div", {
@@ -17665,7 +17664,7 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
17665
17664
  "aria-hidden": vue.unref(open) ? "false" : "true"
17666
17665
  }, [
17667
17666
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
17668
- ], 8, _hoisted_4$f)) : vue.createCommentVNode("", true)
17667
+ ], 8, _hoisted_4$e)) : vue.createCommentVNode("", true)
17669
17668
  ]),
17670
17669
  _: 3
17671
17670
  })
@@ -17673,28 +17672,28 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
17673
17672
  };
17674
17673
  }
17675
17674
  });
17676
- const AccordionItem = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-bf74738b"]]);
17677
- const _hoisted_1$D = { class: "list-wrap bgl_card thin grid overflow-hidden h-100 p-0" };
17678
- const _hoisted_2$u = { class: "p-1" };
17679
- const _hoisted_3$m = { class: "list-content auto-flow-rows align-items-start overflow-y h-100" };
17680
- const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
17675
+ const AccordionItem = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__scopeId", "data-v-bf74738b"]]);
17676
+ const _hoisted_1$A = { class: "list-wrap bgl_card thin grid overflow-hidden h-100 p-0" };
17677
+ const _hoisted_2$t = { class: "p-1" };
17678
+ const _hoisted_3$l = { class: "list-content auto-flow-rows align-items-start overflow-y h-100" };
17679
+ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
17681
17680
  __name: "ListView",
17682
17681
  setup(__props) {
17683
17682
  return (_ctx, _cache) => {
17684
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$D, [
17685
- vue.createElementVNode("div", _hoisted_2$u, [
17683
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$A, [
17684
+ vue.createElementVNode("div", _hoisted_2$t, [
17686
17685
  vue.renderSlot(_ctx.$slots, "header")
17687
17686
  ]),
17688
- vue.createElementVNode("div", _hoisted_3$m, [
17687
+ vue.createElementVNode("div", _hoisted_3$l, [
17689
17688
  vue.renderSlot(_ctx.$slots, "default")
17690
17689
  ])
17691
17690
  ]);
17692
17691
  };
17693
17692
  }
17694
17693
  });
17695
- const _hoisted_1$C = { class: "txt16 no-margin ellipsis" };
17696
- const _hoisted_2$t = { class: "txt14 no-margin txt-gray ellipsis" };
17697
- const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
17694
+ const _hoisted_1$z = { class: "txt16 no-margin ellipsis" };
17695
+ const _hoisted_2$s = { class: "txt14 no-margin txt-gray ellipsis" };
17696
+ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
17698
17697
  __name: "ListItem",
17699
17698
  props: {
17700
17699
  src: {},
@@ -17718,11 +17717,11 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
17718
17717
  size: 40
17719
17718
  }, null, 8, ["name", "src"])) : vue.createCommentVNode("", true),
17720
17719
  vue.createElementVNode("div", null, [
17721
- vue.createElementVNode("p", _hoisted_1$C, [
17720
+ vue.createElementVNode("p", _hoisted_1$z, [
17722
17721
  vue.createTextVNode(vue.toDisplayString(_ctx.title) + " ", 1),
17723
17722
  vue.renderSlot(_ctx.$slots, "default")
17724
17723
  ]),
17725
- vue.createElementVNode("p", _hoisted_2$t, [
17724
+ vue.createElementVNode("p", _hoisted_2$s, [
17726
17725
  vue.createTextVNode(vue.toDisplayString(_ctx.subtitle) + " ", 1),
17727
17726
  vue.renderSlot(_ctx.$slots, "subtitle")
17728
17727
  ])
@@ -17733,81 +17732,15 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
17733
17732
  };
17734
17733
  }
17735
17734
  });
17736
- const _hoisted_1$B = { class: "bgl_card tabs-top" };
17737
- const _hoisted_2$s = { class: "tabs grid auto-flow-columns fit-content" };
17738
- const _hoisted_3$l = ["onClick"];
17739
- const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
17740
- __name: "TabbedLayout",
17741
- props: {
17742
- title: {},
17743
- tabs: {},
17744
- modelValue: {},
17745
- router: {},
17746
- sideTabs: { type: Boolean }
17747
- },
17748
- emits: ["update:modelValue"],
17749
- setup(__props, { emit: __emit }) {
17750
- const emit2 = __emit;
17751
- let activeTab = vue.ref();
17752
- const props2 = __props;
17753
- function changeTab(tab) {
17754
- var _a2;
17755
- activeTab.value = tab;
17756
- emit2("update:modelValue", activeTab.value);
17757
- if (!props2.router)
17758
- return;
17759
- void ((_a2 = props2.router) == null ? void 0 : _a2.push({
17760
- path: props2.router.currentRoute.value.path,
17761
- query: { ...props2.router.currentRoute.value.query, t: tab },
17762
- hash: props2.router.currentRoute.value.hash
17763
- }));
17764
- }
17765
- vue.onMounted(() => {
17766
- var _a2;
17767
- const firstTab = props2.modelValue || ((_a2 = props2.router) == null ? void 0 : _a2.currentRoute.value.query.t) || props2.tabs[0];
17768
- activeTab.value = firstTab;
17769
- });
17770
- return (_ctx, _cache) => {
17771
- return vue.openBlock(), vue.createElementBlock("div", {
17772
- class: vue.normalizeClass(["h-100 grid list-view gap-1", { "side-tabs": _ctx.sideTabs }])
17773
- }, [
17774
- vue.createElementVNode("div", _hoisted_1$B, [
17775
- vue.renderSlot(_ctx.$slots, "top-section", {}, void 0, true),
17776
- vue.createElementVNode("div", _hoisted_2$s, [
17777
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tabs, (tab) => {
17778
- var _a2;
17779
- return vue.openBlock(), vue.createElementBlock("div", {
17780
- class: vue.normalizeClass([{
17781
- active: tab === vue.unref(activeTab) || tab === ((_a2 = _ctx.router) == null ? void 0 : _a2.currentRoute.value.path.split("/").slice(-1)[0])
17782
- }, "tab"]),
17783
- key: tab,
17784
- onClick: ($event) => changeTab(tab)
17785
- }, vue.toDisplayString(tab), 11, _hoisted_3$l);
17786
- }), 128))
17787
- ])
17788
- ]),
17789
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tabs.filter((item) => item === vue.unref(activeTab)), (tab) => {
17790
- return vue.openBlock(), vue.createElementBlock("div", {
17791
- class: "list-content",
17792
- key: tab
17793
- }, [
17794
- vue.renderSlot(_ctx.$slots, tab, { key: tab }, void 0, true)
17795
- ]);
17796
- }), 128))
17797
- ], 2);
17798
- };
17799
- }
17800
- });
17801
- const TabbedLayout = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-37337215"]]);
17802
- const _hoisted_1$A = { class: "comments-wrap" };
17735
+ const _hoisted_1$y = { class: "comments-wrap" };
17803
17736
  const _hoisted_2$r = { class: "comment-list" };
17804
17737
  const _hoisted_3$k = { class: "comment-top" };
17805
- const _hoisted_4$e = { class: "comment-owner" };
17806
- const _hoisted_5$c = { class: "comment-time" };
17807
- const _hoisted_6$8 = { class: "comment-actions" };
17808
- const _hoisted_7$4 = ["innerHTML"];
17809
- const _hoisted_8$2 = { class: "new-comment" };
17810
- const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
17738
+ const _hoisted_4$d = { class: "comment-owner" };
17739
+ const _hoisted_5$b = { class: "comment-time" };
17740
+ const _hoisted_6$7 = { class: "comment-actions" };
17741
+ const _hoisted_7$3 = ["innerHTML"];
17742
+ const _hoisted_8$1 = { class: "new-comment" };
17743
+ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
17811
17744
  __name: "Comments",
17812
17745
  props: {
17813
17746
  ref_table: {},
@@ -17850,7 +17783,7 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
17850
17783
  void fetchData();
17851
17784
  };
17852
17785
  return (_ctx, _cache) => {
17853
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$A, [
17786
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$y, [
17854
17787
  vue.createElementVNode("div", _hoisted_2$r, [
17855
17788
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(comments), (comment) => {
17856
17789
  var _a2, _b, _c;
@@ -17862,22 +17795,22 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
17862
17795
  key: comment.id
17863
17796
  }, [
17864
17797
  vue.createElementVNode("div", _hoisted_3$k, [
17865
- vue.createElementVNode("div", _hoisted_4$e, vue.toDisplayString(comment.sender.first_name) + " " + vue.toDisplayString(comment.sender.last_name), 1),
17866
- vue.createElementVNode("div", _hoisted_5$c, vue.toDisplayString(comment.updated_at.split("T")[0]), 1),
17867
- vue.createElementVNode("div", _hoisted_6$8, [
17868
- vue.createVNode(vue.unref(_sfc_main$F), {
17798
+ vue.createElementVNode("div", _hoisted_4$d, vue.toDisplayString(comment.sender.first_name) + " " + vue.toDisplayString(comment.sender.last_name), 1),
17799
+ vue.createElementVNode("div", _hoisted_5$b, vue.toDisplayString(comment.updated_at.split("T")[0]), 1),
17800
+ vue.createElementVNode("div", _hoisted_6$7, [
17801
+ vue.createVNode(vue.unref(_sfc_main$H), {
17869
17802
  size: 1,
17870
17803
  class: "edit",
17871
17804
  icon: "edit",
17872
17805
  onClick: ($event) => vue.isRef(editComment) ? editComment.value = comment : editComment = comment
17873
17806
  }, null, 8, ["onClick"]),
17874
- vue.createVNode(vue.unref(_sfc_main$F), {
17807
+ vue.createVNode(vue.unref(_sfc_main$H), {
17875
17808
  size: 1.2,
17876
17809
  class: "delete",
17877
17810
  icon: "delete",
17878
17811
  onClick: ($event) => deleteComment(comment.id)
17879
17812
  }, null, 8, ["onClick"]),
17880
- vue.createVNode(vue.unref(_sfc_main$F), {
17813
+ vue.createVNode(vue.unref(_sfc_main$H), {
17881
17814
  size: 1.2,
17882
17815
  class: "save",
17883
17816
  icon: "save",
@@ -17885,7 +17818,7 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
17885
17818
  })
17886
17819
  ])
17887
17820
  ]),
17888
- vue.unref(editComment) !== null && ((_c = vue.unref(editComment)) == null ? void 0 : _c.id) === comment.id ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$G), {
17821
+ vue.unref(editComment) !== null && ((_c = vue.unref(editComment)) == null ? void 0 : _c.id) === comment.id ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$I), {
17889
17822
  key: 0,
17890
17823
  modelValue: vue.unref(editComment).body_html,
17891
17824
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(editComment).body_html = $event),
@@ -17894,12 +17827,12 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
17894
17827
  key: 1,
17895
17828
  class: "editor-wrapper",
17896
17829
  innerHTML: comment.body_html
17897
- }, null, 8, _hoisted_7$4))
17830
+ }, null, 8, _hoisted_7$3))
17898
17831
  ], 2);
17899
17832
  }), 128))
17900
17833
  ]),
17901
- vue.createElementVNode("div", _hoisted_8$2, [
17902
- vue.createVNode(vue.unref(_sfc_main$G), {
17834
+ vue.createElementVNode("div", _hoisted_8$1, [
17835
+ vue.createVNode(vue.unref(_sfc_main$I), {
17903
17836
  class: "comment-input",
17904
17837
  modelValue: vue.unref(bodyHtml),
17905
17838
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(bodyHtml) ? bodyHtml.value = $event : bodyHtml = $event),
@@ -17919,10 +17852,10 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
17919
17852
  };
17920
17853
  }
17921
17854
  });
17922
- const Comments = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-c4b41dc0"]]);
17923
- const _hoisted_1$z = { class: "page-top" };
17855
+ const Comments = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-c4b41dc0"]]);
17856
+ const _hoisted_1$x = { class: "page-top" };
17924
17857
  const _hoisted_2$q = { class: "top-title" };
17925
- const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
17858
+ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
17926
17859
  __name: "PageTitle",
17927
17860
  props: {
17928
17861
  value: {
@@ -17932,7 +17865,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
17932
17865
  },
17933
17866
  setup(__props) {
17934
17867
  return (_ctx, _cache) => {
17935
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$z, [
17868
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$x, [
17936
17869
  vue.createElementVNode("h1", _hoisted_2$q, [
17937
17870
  vue.renderSlot(_ctx.$slots, "default"),
17938
17871
  vue.createTextVNode(" " + vue.toDisplayString(__props.value), 1)
@@ -17941,14 +17874,14 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
17941
17874
  };
17942
17875
  }
17943
17876
  });
17944
- const _hoisted_1$y = { class: "table-list-wrap h-100" };
17877
+ const _hoisted_1$w = { class: "table-list-wrap h-100" };
17945
17878
  const _hoisted_2$p = { class: "infinite-wrapper" };
17946
17879
  const _hoisted_3$j = { class: "row first-row" };
17947
- const _hoisted_4$d = ["onClick"];
17948
- const _hoisted_5$b = { class: "flex" };
17949
- const _hoisted_6$7 = ["onClick"];
17950
- const _hoisted_7$3 = { key: 1 };
17951
- const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
17880
+ const _hoisted_4$c = ["onClick"];
17881
+ const _hoisted_5$a = { class: "flex" };
17882
+ const _hoisted_6$6 = ["onClick"];
17883
+ const _hoisted_7$2 = { key: 1 };
17884
+ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
17952
17885
  __name: "TableSchema",
17953
17886
  props: {
17954
17887
  data: {},
@@ -17982,7 +17915,7 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
17982
17915
  emit2("orderBy", `${fieldname} ${sortDirection.value}`.trim());
17983
17916
  };
17984
17917
  return (_ctx, _cache) => {
17985
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$y, [
17918
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$w, [
17986
17919
  vue.createElementVNode("table", _hoisted_2$p, [
17987
17920
  vue.createElementVNode("thead", _hoisted_3$j, [
17988
17921
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(computedSchema.value, (field) => {
@@ -17991,18 +17924,18 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
17991
17924
  key: field.id,
17992
17925
  onClick: ($event) => sort2((field == null ? void 0 : field.id) || "")
17993
17926
  }, [
17994
- vue.createElementVNode("div", _hoisted_5$b, [
17927
+ vue.createElementVNode("div", _hoisted_5$a, [
17995
17928
  vue.createTextVNode(vue.toDisplayString(field.label || vue.unref(keyToLabel)(field.id)) + " ", 1),
17996
17929
  vue.createElementVNode("div", {
17997
17930
  class: vue.normalizeClass(["list-arrows", { sorted: vue.unref(sortField) === field.id }])
17998
17931
  }, [
17999
- vue.createVNode(vue.unref(_sfc_main$F), {
17932
+ vue.createVNode(vue.unref(_sfc_main$H), {
18000
17933
  class: vue.normalizeClass({ desc: vue.unref(sortDirection) === "DESC" }),
18001
17934
  icon: "keyboard_arrow_up"
18002
17935
  }, null, 8, ["class"])
18003
17936
  ], 2)
18004
17937
  ])
18005
- ], 8, _hoisted_4$d);
17938
+ ], 8, _hoisted_4$c);
18006
17939
  }), 128))
18007
17940
  ]),
18008
17941
  vue.createElementVNode("tbody", {
@@ -18024,15 +17957,15 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
18024
17957
  key: 0,
18025
17958
  row,
18026
17959
  field
18027
- }, void 0, true) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$3, [
18028
- vue.createVNode(vue.unref(_sfc_main$g), {
17960
+ }, void 0, true) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$2, [
17961
+ vue.createVNode(vue.unref(_sfc_main$k), {
18029
17962
  field,
18030
17963
  modelValue: row
18031
17964
  }, null, 8, ["field", "modelValue"])
18032
17965
  ]))
18033
17966
  ]);
18034
17967
  }), 128))
18035
- ], 8, _hoisted_6$7);
17968
+ ], 8, _hoisted_6$6);
18036
17969
  }), 128))
18037
17970
  ], 2)
18038
17971
  ])
@@ -18040,16 +17973,16 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
18040
17973
  };
18041
17974
  }
18042
17975
  });
18043
- const TableSchema = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-f3641508"]]);
18044
- const _sfc_main$t = {};
18045
- const _hoisted_1$x = { class: "flex space-between" };
17976
+ const TableSchema = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-f3641508"]]);
17977
+ const _sfc_main$w = {};
17978
+ const _hoisted_1$v = { class: "flex space-between" };
18046
17979
  function _sfc_render$1(_ctx, _cache) {
18047
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$x, [
17980
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$v, [
18048
17981
  vue.renderSlot(_ctx.$slots, "default")
18049
17982
  ]);
18050
17983
  }
18051
- const TopBar = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$1]]);
18052
- const _sfc_main$s = {};
17984
+ const TopBar = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$1]]);
17985
+ const _sfc_main$v = {};
18053
17986
  function _sfc_render(_ctx, _cache) {
18054
17987
  const _component_router_view = vue.resolveComponent("router-view");
18055
17988
  return vue.openBlock(), vue.createBlock(_component_router_view, null, {
@@ -18071,8 +18004,8 @@ function _sfc_render(_ctx, _cache) {
18071
18004
  _: 1
18072
18005
  });
18073
18006
  }
18074
- const RouterWrapper = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render]]);
18075
- const _hoisted_1$w = {
18007
+ const RouterWrapper = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render]]);
18008
+ const _hoisted_1$u = {
18076
18009
  key: 0,
18077
18010
  class: "data"
18078
18011
  };
@@ -18081,10 +18014,10 @@ const _hoisted_2$o = {
18081
18014
  class: "data-row"
18082
18015
  };
18083
18016
  const _hoisted_3$i = { class: "key" };
18084
- const _hoisted_4$c = { key: 1 };
18085
- const _hoisted_5$a = { class: "key" };
18086
- const _hoisted_6$6 = { class: "vlue" };
18087
- const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
18017
+ const _hoisted_4$b = { key: 1 };
18018
+ const _hoisted_5$9 = { class: "key" };
18019
+ const _hoisted_6$5 = { class: "vlue" };
18020
+ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
18088
18021
  __name: "DataPreview",
18089
18022
  props: /* @__PURE__ */ vue.mergeModels({
18090
18023
  schema: {},
@@ -18098,8 +18031,8 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
18098
18031
  const itemData = vue.useModel(__props, "data");
18099
18032
  return (_ctx, _cache) => {
18100
18033
  var _a2;
18101
- return __props.data ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$w, [
18102
- _ctx.title ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$o), {
18034
+ return __props.data ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$u, [
18035
+ _ctx.title ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$r), {
18103
18036
  key: 0,
18104
18037
  label: _ctx.title
18105
18038
  }, null, 8, ["label"])) : vue.createCommentVNode("", true),
@@ -18109,7 +18042,7 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
18109
18042
  }, [
18110
18043
  vue.unref(iffer)(field, itemData.value) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$o, [
18111
18044
  vue.createElementVNode("div", _hoisted_3$i, vue.toDisplayString((field == null ? void 0 : field.label) || vue.unref(keyToLabel)(field.id)), 1),
18112
- vue.createVNode(vue.unref(_sfc_main$g), {
18045
+ vue.createVNode(vue.unref(_sfc_main$k), {
18113
18046
  field,
18114
18047
  modelValue: itemData.value,
18115
18048
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => itemData.value = $event)
@@ -18117,14 +18050,14 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
18117
18050
  ])) : vue.createCommentVNode("", true)
18118
18051
  ], 64);
18119
18052
  }), 128)),
18120
- !((_a2 = _ctx.schema) == null ? void 0 : _a2.length) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$c, [
18053
+ !((_a2 = _ctx.schema) == null ? void 0 : _a2.length) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$b, [
18121
18054
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(Object.entries(itemData.value), ([key, value]) => {
18122
18055
  return vue.openBlock(), vue.createElementBlock("div", {
18123
18056
  class: "data-row",
18124
18057
  key
18125
18058
  }, [
18126
- vue.createElementVNode("div", _hoisted_5$a, vue.toDisplayString(vue.unref(keyToLabel)(key)), 1),
18127
- vue.createElementVNode("div", _hoisted_6$6, vue.toDisplayString(value), 1)
18059
+ vue.createElementVNode("div", _hoisted_5$9, vue.toDisplayString(vue.unref(keyToLabel)(key)), 1),
18060
+ vue.createElementVNode("div", _hoisted_6$5, vue.toDisplayString(value), 1)
18128
18061
  ]);
18129
18062
  }), 128))
18130
18063
  ])) : vue.createCommentVNode("", true),
@@ -18133,8 +18066,8 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
18133
18066
  };
18134
18067
  }
18135
18068
  });
18136
- const DataPreview = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-bb2526f9"]]);
18137
- const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
18069
+ const DataPreview = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-bb2526f9"]]);
18070
+ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
18138
18071
  __name: "Card",
18139
18072
  props: {
18140
18073
  thin: { type: Boolean },
@@ -18161,8 +18094,8 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
18161
18094
  };
18162
18095
  }
18163
18096
  });
18164
- const _hoisted_1$v = ["src", "alt"];
18165
- const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
18097
+ const _hoisted_1$t = ["src", "alt"];
18098
+ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
18166
18099
  __name: "Avatar",
18167
18100
  props: {
18168
18101
  fallback: {},
@@ -18180,7 +18113,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
18180
18113
  key: 0,
18181
18114
  src: _ctx.src,
18182
18115
  alt: _ctx.name
18183
- }, null, 8, _hoisted_1$v)) : (vue.openBlock(), vue.createElementBlock("p", {
18116
+ }, null, 8, _hoisted_1$t)) : (vue.openBlock(), vue.createElementBlock("p", {
18184
18117
  key: 1,
18185
18118
  style: vue.normalizeStyle({ "line-height": `${_ctx.size}px`, "font-size": `calc(1.5rem * ${_ctx.size} / 50)` })
18186
18119
  }, vue.toDisplayString(_ctx.fallback || vue.unref(initials)(_ctx.name || "")), 5))
@@ -18188,8 +18121,8 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
18188
18121
  };
18189
18122
  }
18190
18123
  });
18191
- const Avatar = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-c38bc02a"]]);
18192
- const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
18124
+ const Avatar = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-c38bc02a"]]);
18125
+ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
18193
18126
  __name: "Title",
18194
18127
  props: {
18195
18128
  value: {
@@ -18217,13 +18150,13 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
18217
18150
  };
18218
18151
  }
18219
18152
  });
18220
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
18153
+ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
18221
18154
  __name: "Accordion",
18222
18155
  setup(__props) {
18223
- const state = vue.reactive({
18156
+ const state2 = vue.reactive({
18224
18157
  openItem: null
18225
18158
  });
18226
- vue.provide("accordionState", state);
18159
+ vue.provide("accordionState", state2);
18227
18160
  return (_ctx, _cache) => {
18228
18161
  return vue.openBlock(), vue.createElementBlock("div", null, [
18229
18162
  vue.renderSlot(_ctx.$slots, "default")
@@ -18231,159 +18164,8 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
18231
18164
  };
18232
18165
  }
18233
18166
  });
18234
- const _hoisted_1$u = ["onClick"];
18235
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
18236
- __name: "ComboBox",
18237
- props: {
18238
- options: {},
18239
- placeholder: {},
18240
- disabled: { type: Boolean },
18241
- modelValue: {},
18242
- searchable: { type: Boolean },
18243
- required: { type: Boolean },
18244
- label: {},
18245
- fullWidth: { type: Boolean }
18246
- },
18247
- emits: ["update:modelValue"],
18248
- setup(__props, { emit: __emit }) {
18249
- let open = vue.ref(false);
18250
- const searchInput = vue.ref(null);
18251
- const props2 = __props;
18252
- let selectedItem = vue.ref();
18253
- let search = vue.ref("");
18254
- const toggle = () => {
18255
- open.value = !open.value;
18256
- if (!open.value)
18257
- search.value = "";
18258
- if (open.value)
18259
- setTimeout(() => {
18260
- var _a2, _b, _c;
18261
- return (_c = (_b = (_a2 = searchInput.value) == null ? void 0 : _a2.$el) == null ? void 0 : _b.querySelector("input")) == null ? void 0 : _c.focus();
18262
- }, 100);
18263
- };
18264
- const valueToLabel = (value) => {
18265
- if (!value)
18266
- return "";
18267
- const option2 = props2.options.find((option22) => {
18268
- if (typeof option22 === "string" || typeof option22 === "number")
18269
- return option22 === value;
18270
- return option22.value === value;
18271
- });
18272
- if (!option2)
18273
- return value;
18274
- return getLabel(option2);
18275
- };
18276
- const emit2 = __emit;
18277
- const getLabel = (option2) => {
18278
- if (typeof option2 === "string")
18279
- return option2;
18280
- if (typeof option2 === "number")
18281
- return `${option2}`;
18282
- return option2.label;
18283
- };
18284
- const isSelected = (option2) => {
18285
- if (typeof option2 === "string" || typeof option2 === "number")
18286
- return option2 === selectedItem.value;
18287
- return option2.value === selectedItem.value;
18288
- };
18289
- const filteredOptions = vue.computed(() => props2.options.filter((option2) => {
18290
- const searchTerm = new RegExp(search.value, "gi");
18291
- if (typeof option2 === "string")
18292
- return option2.match(searchTerm);
18293
- if (typeof option2 === "number")
18294
- return `${option2}`.match(searchTerm);
18295
- return option2.label.match(searchTerm);
18296
- }));
18297
- const select2 = (option2) => {
18298
- if (typeof option2 === "string")
18299
- selectedItem.value = option2;
18300
- else if (typeof option2 === "number")
18301
- selectedItem.value = option2;
18302
- else
18303
- selectedItem.value = option2.value;
18304
- emit2("update:modelValue", selectedItem.value);
18305
- open.value = false;
18306
- };
18307
- vue.watch(() => props2.modelValue, (value) => {
18308
- if (value !== selectedItem.value)
18309
- selectedItem.value = value;
18310
- }, { immediate: true });
18311
- return (_ctx, _cache) => {
18312
- return vue.openBlock(), vue.createBlock(vue.unref(kt$1), {
18313
- placement: "bottom-start",
18314
- class: "bagel-input combobox"
18315
- }, {
18316
- popper: vue.withCtx(({ hide }) => [
18317
- vue.createVNode(vue.unref(_sfc_main$q), {
18318
- class: "combobox-options p-05",
18319
- style: vue.normalizeStyle({ width: _ctx.fullWidth ? "100%" : "auto" })
18320
- }, {
18321
- default: vue.withCtx(() => [
18322
- _ctx.searchable ? (vue.openBlock(), vue.createBlock(vue.unref(TextInput), {
18323
- key: 0,
18324
- ref_key: "searchInput",
18325
- ref: searchInput,
18326
- dense: "",
18327
- placeholder: "Search",
18328
- icon: "search",
18329
- modelValue: vue.unref(search),
18330
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(search) ? search.value = $event : search = $event)
18331
- }, null, 8, ["modelValue"])) : vue.createCommentVNode("", true),
18332
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filteredOptions.value, (option2, i2) => {
18333
- return vue.openBlock(), vue.createElementBlock("div", {
18334
- class: vue.normalizeClass(["combobox-option hover gap-1", { selected: option2 === vue.unref(selectedItem) }]),
18335
- key: `${option2}${i2}`,
18336
- onClick: () => {
18337
- select2(option2);
18338
- hide();
18339
- }
18340
- }, [
18341
- isSelected(option2) ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$F), {
18342
- key: 0,
18343
- icon: "check"
18344
- })) : vue.createCommentVNode("", true),
18345
- !isSelected(option2) ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$F), {
18346
- key: 1,
18347
- class: "opacity-3",
18348
- icon: "fiber_manual_record"
18349
- })) : vue.createCommentVNode("", true),
18350
- vue.createElementVNode("span", null, vue.toDisplayString(getLabel(option2)), 1)
18351
- ], 10, _hoisted_1$u);
18352
- }), 128)),
18353
- vue.renderSlot(_ctx.$slots, "last", {}, void 0, true)
18354
- ]),
18355
- _: 2
18356
- }, 1032, ["style"])
18357
- ]),
18358
- default: vue.withCtx(() => [
18359
- vue.createElementVNode("label", null, [
18360
- vue.createTextVNode(vue.toDisplayString(_ctx.label) + " ", 1),
18361
- vue.createElementVNode("button", {
18362
- type: "button",
18363
- class: "combobox-btn",
18364
- onClick: toggle
18365
- }, [
18366
- vue.createTextVNode(vue.toDisplayString(valueToLabel(vue.unref(selectedItem)) || _ctx.placeholder || "Select") + " ", 1),
18367
- vue.createVNode(vue.unref(_sfc_main$F), vue.normalizeProps(vue.guardReactiveProps({ "icon": vue.unref(open) ? "unfold_less" : "unfold_more" })), null, 16)
18368
- ]),
18369
- _ctx.required ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
18370
- key: 0,
18371
- style: { "width": "0", "height": "0", "position": "absolute", "opacity": "0", "z-index": "-1" },
18372
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(selectedItem) ? selectedItem.value = $event : selectedItem = $event),
18373
- required: ""
18374
- }, null, 512)), [
18375
- [vue.vModelText, vue.unref(selectedItem)]
18376
- ]) : vue.createCommentVNode("", true)
18377
- ])
18378
- ]),
18379
- _: 3
18380
- });
18381
- };
18382
- }
18383
- });
18384
- const ComboBox = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-14fbb20b"]]);
18385
- const _hoisted_1$t = ["dismissable"];
18386
- const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
18167
+ const _hoisted_1$s = ["dismissable"];
18168
+ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
18387
18169
  __name: "Alert",
18388
18170
  props: {
18389
18171
  message: {},
@@ -18403,7 +18185,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
18403
18185
  class: vue.normalizeClass(["alert", [_ctx.type]]),
18404
18186
  dismissable: _ctx.dismissable
18405
18187
  }, [
18406
- vue.createVNode(vue.unref(_sfc_main$F), {
18188
+ vue.createVNode(vue.unref(_sfc_main$H), {
18407
18189
  class: "alert_icon",
18408
18190
  icon: _ctx.type,
18409
18191
  size: 2,
@@ -18417,12 +18199,12 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
18417
18199
  class: "alert_close",
18418
18200
  icon: "close"
18419
18201
  })
18420
- ], 10, _hoisted_1$t)) : vue.createCommentVNode("", true);
18202
+ ], 10, _hoisted_1$s)) : vue.createCommentVNode("", true);
18421
18203
  };
18422
18204
  }
18423
18205
  });
18424
- const Alert = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-94bfcb05"]]);
18425
- const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
18206
+ const Alert = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-94bfcb05"]]);
18207
+ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
18426
18208
  __name: "Badge",
18427
18209
  props: {
18428
18210
  color: {},
@@ -18437,13 +18219,13 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
18437
18219
  return vue.openBlock(), vue.createElementBlock("div", {
18438
18220
  class: vue.normalizeClass(["pill", [_ctx.color]])
18439
18221
  }, [
18440
- _ctx.icon ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$F), {
18222
+ _ctx.icon ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$H), {
18441
18223
  key: 0,
18442
18224
  class: "inline",
18443
18225
  icon: _ctx.icon
18444
18226
  }, null, 8, ["icon"])) : vue.createCommentVNode("", true),
18445
18227
  vue.createTextVNode(" " + vue.toDisplayString(_ctx.text) + " ", 1),
18446
- props2["icon.end"] ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$F), {
18228
+ props2["icon.end"] ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$H), {
18447
18229
  key: 1,
18448
18230
  class: "inline",
18449
18231
  icon: props2["icon.end"]
@@ -18452,11 +18234,11 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
18452
18234
  };
18453
18235
  }
18454
18236
  });
18455
- const Badge = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-10743b06"]]);
18456
- const _hoisted_1$s = { class: "bgl_vid" };
18237
+ const Badge = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-10743b06"]]);
18238
+ const _hoisted_1$r = { class: "bgl_vid" };
18457
18239
  const _hoisted_2$n = ["src"];
18458
18240
  const _hoisted_3$h = ["src", "autoplay", "muted", "loop", "controls"];
18459
- const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
18241
+ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
18460
18242
  __name: "BglVideo",
18461
18243
  props: {
18462
18244
  src: {},
@@ -18495,7 +18277,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
18495
18277
  });
18496
18278
  console.log("Video URL:", videoUrl.value);
18497
18279
  return (_ctx, _cache) => {
18498
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$s, [
18280
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$r, [
18499
18281
  embedType.value ? (vue.openBlock(), vue.createElementBlock("iframe", {
18500
18282
  key: 0,
18501
18283
  src: videoUrl.value,
@@ -18517,13 +18299,13 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
18517
18299
  };
18518
18300
  }
18519
18301
  });
18520
- const BglVideo = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-23835d69"]]);
18521
- const _hoisted_1$r = {
18302
+ const BglVideo = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-23835d69"]]);
18303
+ const _hoisted_1$q = {
18522
18304
  key: 0,
18523
18305
  class: "blocker"
18524
18306
  };
18525
18307
  const _hoisted_2$m = { class: "Handlers" };
18526
- const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
18308
+ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
18527
18309
  __name: "Carousel",
18528
18310
  props: {
18529
18311
  autoHeight: {
@@ -18673,7 +18455,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
18673
18455
  ref_key: "bglSlider",
18674
18456
  ref: bglSlider
18675
18457
  }, [
18676
- vue.unref(isDragging) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$r)) : vue.createCommentVNode("", true),
18458
+ vue.unref(isDragging) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$q)) : vue.createCommentVNode("", true),
18677
18459
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
18678
18460
  ], 34),
18679
18461
  vue.createElementVNode("div", _hoisted_2$m, [
@@ -18688,8 +18470,8 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
18688
18470
  };
18689
18471
  }
18690
18472
  });
18691
- const Carousel = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-7e8d16cb"]]);
18692
- const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
18473
+ const Carousel = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-7e8d16cb"]]);
18474
+ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
18693
18475
  __name: "BglForm",
18694
18476
  props: {
18695
18477
  label: {},
@@ -18729,7 +18511,6 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
18729
18511
  let formStatus = vue.ref("idle");
18730
18512
  const runSubmit = () => {
18731
18513
  var _a2;
18732
- console.log("runSubmit");
18733
18514
  try {
18734
18515
  validateForm();
18735
18516
  (_a2 = props2.onSubmit) == null ? void 0 : _a2.call(props2, data2.value);
@@ -18764,7 +18545,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
18764
18545
  return (_ctx, _cache) => {
18765
18546
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
18766
18547
  _ctx.id ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.schema, (field, i2) => {
18767
- return vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$g), {
18548
+ return vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$k), {
18768
18549
  key: field.id || `${i2}p`,
18769
18550
  field,
18770
18551
  modelValue: data2.value,
@@ -18776,13 +18557,13 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
18776
18557
  ref: form,
18777
18558
  onSubmit: vue.withModifiers(runSubmit, ["prevent"])
18778
18559
  }, [
18779
- _ctx.label ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$o), {
18560
+ _ctx.label ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$r), {
18780
18561
  key: 0,
18781
18562
  tag: "h4",
18782
18563
  label: _ctx.label
18783
18564
  }, null, 8, ["label"])) : vue.createCommentVNode("", true),
18784
18565
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.schema, (field, i2) => {
18785
- return vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$g), {
18566
+ return vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$k), {
18786
18567
  key: field.id || `${i2}p`,
18787
18568
  field,
18788
18569
  modelValue: data2.value,
@@ -18797,7 +18578,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
18797
18578
  };
18798
18579
  }
18799
18580
  });
18800
- const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
18581
+ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
18801
18582
  __name: "BglField",
18802
18583
  props: {
18803
18584
  field: {},
@@ -18810,7 +18591,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
18810
18591
  if (props2.field.$el === "text")
18811
18592
  return TextInput;
18812
18593
  if (props2.field.$el === "select")
18813
- return ComboBox;
18594
+ return SelectInput;
18814
18595
  if (props2.field.$el === "toggle")
18815
18596
  return ToggleInput;
18816
18597
  if (props2.field.$el === "check")
@@ -18888,7 +18669,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
18888
18669
  }
18889
18670
  });
18890
18671
  const _withScopeId$1 = (n2) => (vue.pushScopeId("data-v-e8219826"), n2 = n2(), vue.popScopeId(), n2);
18891
- const _hoisted_1$q = ["title"];
18672
+ const _hoisted_1$p = ["title"];
18892
18673
  const _hoisted_2$l = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ vue.createElementVNode("svg", {
18893
18674
  xmlns: "http://www.w3.org/2000/svg",
18894
18675
  height: "24",
@@ -18900,8 +18681,8 @@ const _hoisted_2$l = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ vue.cr
18900
18681
  const _hoisted_3$g = [
18901
18682
  _hoisted_2$l
18902
18683
  ];
18903
- const _hoisted_4$b = ["required", "id"];
18904
- const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
18684
+ const _hoisted_4$a = ["required", "id"];
18685
+ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
18905
18686
  __name: "CheckInput",
18906
18687
  props: /* @__PURE__ */ vue.mergeModels({
18907
18688
  label: {},
@@ -18931,18 +18712,18 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
18931
18712
  id: _ctx.id,
18932
18713
  type: "checkbox",
18933
18714
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => checked.value = $event)
18934
- }, null, 8, _hoisted_4$b), [
18715
+ }, null, 8, _hoisted_4$a), [
18935
18716
  [vue.vModelCheckbox, checked.value]
18936
18717
  ]),
18937
18718
  vue.renderSlot(_ctx.$slots, "label", {}, () => [
18938
18719
  vue.createTextVNode(vue.toDisplayString(_ctx.label), 1)
18939
18720
  ], true)
18940
18721
  ])
18941
- ], 10, _hoisted_1$q);
18722
+ ], 10, _hoisted_1$p);
18942
18723
  };
18943
18724
  }
18944
18725
  });
18945
- const CheckInput = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-e8219826"]]);
18726
+ const CheckInput = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-e8219826"]]);
18946
18727
  function toDate(argument) {
18947
18728
  const argStr = Object.prototype.toString.call(argument);
18948
18729
  if (argument instanceof Date || typeof argument === "object" && argStr === "[object Date]") {
@@ -27551,9 +27332,9 @@ const ar = ({
27551
27332
  Object.entries(Mo).forEach(([e, t]) => {
27552
27333
  e !== "default" && (Va[e] = t);
27553
27334
  });
27554
- const _hoisted_1$p = ["title"];
27335
+ const _hoisted_1$o = ["title"];
27555
27336
  const _hoisted_2$k = { key: 0 };
27556
- const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
27337
+ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
27557
27338
  __name: "DateInput",
27558
27339
  props: {
27559
27340
  label: {},
@@ -27599,14 +27380,14 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
27599
27380
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => date2.value = $event),
27600
27381
  "enable-time-picker": _ctx.enableTime
27601
27382
  }, _ctx.extraProps), null, 16, ["modelValue", "enable-time-picker"])
27602
- ], 10, _hoisted_1$p);
27383
+ ], 10, _hoisted_1$o);
27603
27384
  };
27604
27385
  }
27605
27386
  });
27606
- const _hoisted_1$o = ["title"];
27387
+ const _hoisted_1$n = ["title"];
27607
27388
  const _hoisted_2$j = { key: 0 };
27608
27389
  const _hoisted_3$f = ["value", "placeholder"];
27609
- const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
27390
+ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
27610
27391
  __name: "JSONInput",
27611
27392
  props: {
27612
27393
  description: { default: "" },
@@ -27638,1384 +27419,200 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
27638
27419
  class: vue.normalizeClass({ "no-edit": !_ctx.editMode }),
27639
27420
  placeholder: _ctx.placeholder
27640
27421
  }, null, 42, _hoisted_3$f)
27641
- ], 10, _hoisted_1$o);
27422
+ ], 10, _hoisted_1$n);
27642
27423
  };
27643
27424
  }
27644
27425
  });
27645
- const JSONInput = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-1fc4f739"]]);
27646
- function isEmpty(opt) {
27647
- if (opt === 0)
27648
- return false;
27649
- if (Array.isArray(opt) && opt.length === 0)
27650
- return true;
27651
- return !opt;
27652
- }
27653
- function not(fun) {
27654
- return (...params) => !fun(...params);
27655
- }
27656
- function includes(str, query) {
27657
- if (str === void 0)
27658
- str = "undefined";
27659
- if (str === null)
27660
- str = "null";
27661
- if (str === false)
27662
- str = "false";
27663
- const text = str.toString().toLowerCase();
27664
- return text.indexOf(query.trim()) !== -1;
27665
- }
27666
- function filterOptions(options, search, label, customLabel) {
27667
- return search ? options.filter((option2) => includes(customLabel(option2, label), search)).sort((a2, b2) => customLabel(a2, label).length - customLabel(b2, label).length) : options;
27668
- }
27669
- function stripGroups(options) {
27670
- return options.filter((option2) => !option2.$isLabel);
27671
- }
27672
- function flattenOptions(values3, label) {
27673
- return (options) => options.reduce((prev, curr) => {
27674
- if (curr[values3] && curr[values3].length) {
27675
- prev.push({
27676
- $groupLabel: curr[label],
27677
- $isLabel: true
27678
- });
27679
- return prev.concat(curr[values3]);
27680
- }
27681
- return prev;
27682
- }, []);
27683
- }
27684
- function filterGroups(search, label, values3, groupLabel, customLabel) {
27685
- return (groups) => groups.map((group) => {
27686
- if (!group[values3]) {
27687
- console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`);
27688
- return [];
27689
- }
27690
- const groupOptions = filterOptions(group[values3], search, label, customLabel);
27691
- return groupOptions.length ? {
27692
- [groupLabel]: group[groupLabel],
27693
- [values3]: groupOptions
27694
- } : [];
27695
- });
27696
- }
27697
- const flow = (...fns) => (x2) => fns.reduce((v2, f2) => f2(v2), x2);
27698
- var multiselectMixin = {
27699
- data() {
27700
- return {
27701
- search: "",
27702
- isOpen: false,
27703
- preferredOpenDirection: "below",
27704
- optimizedHeight: this.maxHeight
27705
- };
27706
- },
27707
- props: {
27708
- /**
27709
- * Decide whether to filter the results based on search query.
27710
- * Useful for async filtering, where we search through more complex data.
27711
- * @type {Boolean}
27712
- */
27713
- internalSearch: {
27714
- type: Boolean,
27715
- default: true
27716
- },
27717
- /**
27718
- * Array of available options: Objects, Strings or Integers.
27719
- * If array of objects, visible label will default to option.label.
27720
- * If `labal` prop is passed, label will equal option['label']
27721
- * @type {Array}
27722
- */
27723
- options: {
27724
- type: Array,
27725
- required: true
27726
- },
27727
- /**
27728
- * Equivalent to the `multiple` attribute on a `<select>` input.
27729
- * @default false
27730
- * @type {Boolean}
27731
- */
27732
- multiple: {
27733
- type: Boolean,
27734
- default: false
27735
- },
27736
- /**
27737
- * Key to compare objects
27738
- * @default 'id'
27739
- * @type {String}
27740
- */
27741
- trackBy: {
27742
- type: String
27743
- },
27744
- /**
27745
- * Label to look for in option Object
27746
- * @default 'label'
27747
- * @type {String}
27748
- */
27749
- label: {
27750
- type: String
27751
- },
27752
- /**
27753
- * Enable/disable search in options
27754
- * @default true
27755
- * @type {Boolean}
27756
- */
27757
- searchable: {
27758
- type: Boolean,
27759
- default: true
27760
- },
27761
- /**
27762
- * Clear the search input after `)
27763
- * @default true
27764
- * @type {Boolean}
27765
- */
27766
- clearOnSelect: {
27767
- type: Boolean,
27768
- default: true
27769
- },
27770
- /**
27771
- * Hide already selected options
27772
- * @default false
27773
- * @type {Boolean}
27774
- */
27775
- hideSelected: {
27776
- type: Boolean,
27777
- default: false
27778
- },
27779
- /**
27780
- * Equivalent to the `placeholder` attribute on a `<select>` input.
27781
- * @default 'Select option'
27782
- * @type {String}
27783
- */
27784
- placeholder: {
27785
- type: String,
27786
- default: "Select option"
27787
- },
27788
- /**
27789
- * Allow to remove all selected values
27790
- * @default true
27791
- * @type {Boolean}
27792
- */
27793
- allowEmpty: {
27794
- type: Boolean,
27795
- default: true
27796
- },
27797
- /**
27798
- * Reset this.internalValue, this.search after this.internalValue changes.
27799
- * Useful if want to create a stateless dropdown.
27800
- * @default false
27801
- * @type {Boolean}
27802
- */
27803
- resetAfter: {
27804
- type: Boolean,
27805
- default: false
27806
- },
27807
- /**
27808
- * Enable/disable closing after selecting an option
27809
- * @default true
27810
- * @type {Boolean}
27811
- */
27812
- closeOnSelect: {
27813
- type: Boolean,
27814
- default: true
27815
- },
27816
- /**
27817
- * Function to interpolate the custom label
27818
- * @default false
27819
- * @type {Function}
27820
- */
27821
- customLabel: {
27822
- type: Function,
27823
- default(option2, label) {
27824
- if (isEmpty(option2))
27825
- return "";
27826
- return label ? option2[label] : option2;
27827
- }
27828
- },
27829
- /**
27830
- * Disable / Enable tagging
27831
- * @default false
27832
- * @type {Boolean}
27833
- */
27834
- taggable: {
27835
- type: Boolean,
27836
- default: false
27837
- },
27838
- /**
27839
- * String to show when highlighting a potential tag
27840
- * @default 'Press enter to create a tag'
27841
- * @type {String}
27842
- */
27843
- tagPlaceholder: {
27844
- type: String,
27845
- default: "Press enter to create a tag"
27846
- },
27847
- /**
27848
- * By default new tags will appear above the search results.
27849
- * Changing to 'bottom' will revert this behaviour
27850
- * and will proritize the search results
27851
- * @default 'top'
27852
- * @type {String}
27853
- */
27854
- tagPosition: {
27855
- type: String,
27856
- default: "top"
27857
- },
27858
- /**
27859
- * Number of allowed selected options. No limit if 0.
27860
- * @default 0
27861
- * @type {Number}
27862
- */
27863
- max: {
27864
- type: [Number, Boolean],
27865
- default: false
27866
- },
27867
- /**
27868
- * Will be passed with all events as second param.
27869
- * Useful for identifying events origin.
27870
- * @default null
27871
- * @type {String|Integer}
27872
- */
27873
- id: {
27874
- default: null
27875
- },
27876
- /**
27877
- * Limits the options displayed in the dropdown
27878
- * to the first X options.
27879
- * @default 1000
27880
- * @type {Integer}
27881
- */
27882
- optionsLimit: {
27883
- type: Number,
27884
- default: 1e3
27885
- },
27886
- /**
27887
- * Name of the property containing
27888
- * the group values
27889
- * @default 1000
27890
- * @type {String}
27891
- */
27892
- groupValues: {
27893
- type: String
27894
- },
27895
- /**
27896
- * Name of the property containing
27897
- * the group label
27898
- * @default 1000
27899
- * @type {String}
27900
- */
27901
- groupLabel: {
27902
- type: String
27903
- },
27904
- /**
27905
- * Allow to select all group values
27906
- * by selecting the group label
27907
- * @default false
27908
- * @type {Boolean}
27909
- */
27910
- groupSelect: {
27911
- type: Boolean,
27912
- default: false
27913
- },
27914
- /**
27915
- * Array of keyboard keys to block
27916
- * when selecting
27917
- * @default 1000
27918
- * @type {String}
27919
- */
27920
- blockKeys: {
27921
- type: Array,
27922
- default() {
27923
- return [];
27924
- }
27925
- },
27926
- /**
27927
- * Prevent from wiping up the search value
27928
- * @default false
27929
- * @type {Boolean}
27930
- */
27931
- preserveSearch: {
27932
- type: Boolean,
27933
- default: false
27934
- },
27935
- /**
27936
- * Select 1st options if value is empty
27937
- * @default false
27938
- * @type {Boolean}
27939
- */
27940
- preselectFirst: {
27941
- type: Boolean,
27942
- default: false
27943
- },
27944
- /**
27945
- * Prevent autofocus
27946
- * @default false
27947
- * @type {Boolean}
27948
- */
27949
- preventAutofocus: {
27950
- type: Boolean,
27951
- default: false
27952
- }
27953
- },
27954
- mounted() {
27955
- if (!this.multiple && this.max) {
27956
- console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.");
27957
- }
27958
- if (this.preselectFirst && !this.internalValue.length && this.options.length) {
27959
- this.select(this.filteredOptions[0]);
27960
- }
27961
- },
27962
- computed: {
27963
- internalValue() {
27964
- return this.modelValue || this.modelValue === 0 ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue] : [];
27965
- },
27966
- filteredOptions() {
27967
- const search = this.search || "";
27968
- const normalizedSearch = search.toLowerCase().trim();
27969
- let options = this.options.concat();
27970
- if (this.internalSearch) {
27971
- options = this.groupValues ? this.filterAndFlat(options, normalizedSearch, this.label) : filterOptions(options, normalizedSearch, this.label, this.customLabel);
27972
- } else {
27973
- options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options;
27974
- }
27975
- options = this.hideSelected ? options.filter(not(this.isSelected)) : options;
27976
- if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {
27977
- if (this.tagPosition === "bottom") {
27978
- options.push({ isTag: true, label: search });
27979
- } else {
27980
- options.unshift({ isTag: true, label: search });
27981
- }
27982
- }
27983
- return options.slice(0, this.optionsLimit);
27984
- },
27985
- valueKeys() {
27986
- if (this.trackBy) {
27987
- return this.internalValue.map((element) => element[this.trackBy]);
27988
- } else {
27989
- return this.internalValue;
27990
- }
27991
- },
27992
- optionKeys() {
27993
- const options = this.groupValues ? this.flatAndStrip(this.options) : this.options;
27994
- return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase());
27995
- },
27996
- currentOptionLabel() {
27997
- return this.multiple ? this.searchable ? "" : this.placeholder : this.internalValue.length ? this.getOptionLabel(this.internalValue[0]) : this.searchable ? "" : this.placeholder;
27998
- }
27999
- },
28000
- watch: {
28001
- internalValue: {
28002
- handler() {
28003
- if (this.resetAfter && this.internalValue.length) {
28004
- this.search = "";
28005
- this.$emit("update:modelValue", this.multiple ? [] : null);
28006
- }
28007
- },
28008
- deep: true
28009
- },
28010
- search() {
28011
- this.$emit("search-change", this.search);
28012
- }
28013
- },
28014
- emits: ["open", "search-change", "close", "select", "update:modelValue", "remove", "tag"],
28015
- methods: {
28016
- /**
28017
- * Returns the internalValue in a way it can be emited to the parent
28018
- * @returns {Object||Array||String||Integer}
28019
- */
28020
- getValue() {
28021
- return this.multiple ? this.internalValue : this.internalValue.length === 0 ? null : this.internalValue[0];
28022
- },
28023
- /**
28024
- * Filters and then flattens the options list
28025
- * @param {Array}
28026
- * @return {Array} returns a filtered and flat options list
28027
- */
28028
- filterAndFlat(options, search, label) {
28029
- return flow(
28030
- filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel),
28031
- flattenOptions(this.groupValues, this.groupLabel)
28032
- )(options);
28033
- },
28034
- /**
28035
- * Flattens and then strips the group labels from the options list
28036
- * @param {Array}
28037
- * @return {Array} returns a flat options list without group labels
28038
- */
28039
- flatAndStrip(options) {
28040
- return flow(
28041
- flattenOptions(this.groupValues, this.groupLabel),
28042
- stripGroups
28043
- )(options);
28044
- },
28045
- /**
28046
- * Updates the search value
28047
- * @param {String}
28048
- */
28049
- updateSearch(query) {
28050
- this.search = query;
28051
- },
28052
- /**
28053
- * Finds out if the given query is already present
28054
- * in the available options
28055
- * @param {String}
28056
- * @return {Boolean} returns true if element is available
28057
- */
28058
- isExistingOption(query) {
28059
- return !this.options ? false : this.optionKeys.indexOf(query) > -1;
28060
- },
28061
- /**
28062
- * Finds out if the given element is already present
28063
- * in the result value
28064
- * @param {Object||String||Integer} option passed element to check
28065
- * @returns {Boolean} returns true if element is selected
28066
- */
28067
- isSelected(option2) {
28068
- const opt = this.trackBy ? option2[this.trackBy] : option2;
28069
- return this.valueKeys.indexOf(opt) > -1;
28070
- },
28071
- /**
28072
- * Finds out if the given option is disabled
28073
- * @param {Object||String||Integer} option passed element to check
28074
- * @returns {Boolean} returns true if element is disabled
28075
- */
28076
- isOptionDisabled(option2) {
28077
- return !!option2.$isDisabled;
28078
- },
28079
- /**
28080
- * Returns empty string when options is null/undefined
28081
- * Returns tag query if option is tag.
28082
- * Returns the customLabel() results and casts it to string.
28083
- *
28084
- * @param {Object||String||Integer} Passed option
28085
- * @returns {Object||String}
28086
- */
28087
- getOptionLabel(option2) {
28088
- if (isEmpty(option2))
28089
- return "";
28090
- if (option2.isTag)
28091
- return option2.label;
28092
- if (option2.$isLabel)
28093
- return option2.$groupLabel;
28094
- const label = this.customLabel(option2, this.label);
28095
- if (isEmpty(label))
28096
- return "";
28097
- return label;
28098
- },
28099
- /**
28100
- * Add the given option to the list of selected options
28101
- * or sets the option as the selected option.
28102
- * If option is already selected -> remove it from the results.
28103
- *
28104
- * @param {Object||String||Integer} option to select/deselect
28105
- * @param {Boolean} block removing
28106
- */
28107
- select(option2, key) {
28108
- if (option2.$isLabel && this.groupSelect) {
28109
- this.selectGroup(option2);
28110
- return;
28111
- }
28112
- if (this.blockKeys.indexOf(key) !== -1 || this.disabled || option2.$isDisabled || option2.$isLabel)
28113
- return;
28114
- if (this.max && this.multiple && this.internalValue.length === this.max)
28115
- return;
28116
- if (key === "Tab" && !this.pointerDirty)
28117
- return;
28118
- if (option2.isTag) {
28119
- this.$emit("tag", option2.label, this.id);
28120
- this.search = "";
28121
- if (this.closeOnSelect && !this.multiple)
28122
- this.deactivate();
28123
- } else {
28124
- const isSelected = this.isSelected(option2);
28125
- if (isSelected) {
28126
- if (key !== "Tab")
28127
- this.removeElement(option2);
28128
- return;
28129
- }
28130
- if (this.multiple) {
28131
- this.$emit("update:modelValue", this.internalValue.concat([option2]));
28132
- } else {
28133
- this.$emit("update:modelValue", option2);
28134
- }
28135
- this.$emit("select", option2, this.id);
28136
- if (this.clearOnSelect)
28137
- this.search = "";
28138
- }
28139
- if (this.closeOnSelect)
28140
- this.deactivate();
28141
- },
28142
- /**
28143
- * Add the given group options to the list of selected options
28144
- * If all group optiona are already selected -> remove it from the results.
28145
- *
28146
- * @param {Object||String||Integer} group to select/deselect
28147
- */
28148
- selectGroup(selectedGroup) {
28149
- const group = this.options.find((option2) => {
28150
- return option2[this.groupLabel] === selectedGroup.$groupLabel;
28151
- });
28152
- if (!group)
28153
- return;
28154
- if (this.wholeGroupSelected(group)) {
28155
- this.$emit("remove", group[this.groupValues], this.id);
28156
- const newValue = this.internalValue.filter(
28157
- (option2) => group[this.groupValues].indexOf(option2) === -1
28158
- );
28159
- this.$emit("update:modelValue", newValue);
28160
- } else {
28161
- let optionsToAdd = group[this.groupValues].filter(
28162
- (option2) => !(this.isOptionDisabled(option2) || this.isSelected(option2))
28163
- );
28164
- if (this.max) {
28165
- optionsToAdd.splice(this.max - this.internalValue.length);
28166
- }
28167
- this.$emit("select", optionsToAdd, this.id);
28168
- this.$emit(
28169
- "update:modelValue",
28170
- this.internalValue.concat(optionsToAdd)
28171
- );
28172
- }
28173
- if (this.closeOnSelect)
28174
- this.deactivate();
28175
- },
28176
- /**
28177
- * Helper to identify if all values in a group are selected
28178
- *
28179
- * @param {Object} group to validated selected values against
28180
- */
28181
- wholeGroupSelected(group) {
28182
- return group[this.groupValues].every(
28183
- (option2) => this.isSelected(option2) || this.isOptionDisabled(option2)
28184
- );
28185
- },
28186
- /**
28187
- * Helper to identify if all values in a group are disabled
28188
- *
28189
- * @param {Object} group to check for disabled values
28190
- */
28191
- wholeGroupDisabled(group) {
28192
- return group[this.groupValues].every(this.isOptionDisabled);
28193
- },
28194
- /**
28195
- * Removes the given option from the selected options.
28196
- * Additionally checks this.allowEmpty prop if option can be removed when
28197
- * it is the last selected option.
28198
- *
28199
- * @param {type} option description
28200
- * @return {type} description
28201
- */
28202
- removeElement(option2, shouldClose = true) {
28203
- if (this.disabled)
28204
- return;
28205
- if (option2.$isDisabled)
28206
- return;
28207
- if (!this.allowEmpty && this.internalValue.length <= 1) {
28208
- this.deactivate();
28209
- return;
28210
- }
28211
- const index2 = typeof option2 === "object" ? this.valueKeys.indexOf(option2[this.trackBy]) : this.valueKeys.indexOf(option2);
28212
- if (this.multiple) {
28213
- const newValue = this.internalValue.slice(0, index2).concat(this.internalValue.slice(index2 + 1));
28214
- this.$emit("update:modelValue", newValue);
28215
- } else {
28216
- this.$emit("update:modelValue", null);
28217
- }
28218
- this.$emit("remove", option2, this.id);
28219
- if (this.closeOnSelect && shouldClose)
28220
- this.deactivate();
28221
- },
28222
- /**
28223
- * Calls this.removeElement() with the last element
28224
- * from this.internalValue (selected element Array)
28225
- *
28226
- * @fires this#removeElement
28227
- */
28228
- removeLastElement() {
28229
- if (this.blockKeys.indexOf("Delete") !== -1)
28230
- return;
28231
- if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {
28232
- this.removeElement(this.internalValue[this.internalValue.length - 1], false);
28233
- }
28234
- },
28235
- /**
28236
- * Opens the multiselect’s dropdown.
28237
- * Sets this.isOpen to TRUE
28238
- */
28239
- activate() {
28240
- if (this.isOpen || this.disabled)
28241
- return;
28242
- this.adjustPosition();
28243
- if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {
28244
- this.pointer = 1;
28245
- }
28246
- this.isOpen = true;
28247
- if (this.searchable) {
28248
- if (!this.preserveSearch)
28249
- this.search = "";
28250
- if (!this.preventAutofocus)
28251
- this.$nextTick(() => this.$refs.search && this.$refs.search.focus());
28252
- } else if (!this.preventAutofocus) {
28253
- if (typeof this.$el !== "undefined")
28254
- this.$el.focus();
28255
- }
28256
- this.$emit("open", this.id);
28257
- },
28258
- /**
28259
- * Closes the multiselect’s dropdown.
28260
- * Sets this.isOpen to FALSE
28261
- */
28262
- deactivate() {
28263
- if (!this.isOpen)
28264
- return;
28265
- this.isOpen = false;
28266
- if (this.searchable) {
28267
- if (this.$refs.search !== null && typeof this.$refs.search !== "undefined")
28268
- this.$refs.search.blur();
28269
- } else {
28270
- if (typeof this.$el !== "undefined")
28271
- this.$el.blur();
28272
- }
28273
- if (!this.preserveSearch)
28274
- this.search = "";
28275
- this.$emit("close", this.getValue(), this.id);
28276
- },
28277
- /**
28278
- * Call this.activate() or this.deactivate()
28279
- * depending on this.isOpen value.
28280
- *
28281
- * @fires this#activate || this#deactivate
28282
- * @property {Boolean} isOpen indicates if dropdown is open
28283
- */
28284
- toggle() {
28285
- this.isOpen ? this.deactivate() : this.activate();
28286
- },
28287
- /**
28288
- * Updates the hasEnoughSpace variable used for
28289
- * detecting where to expand the dropdown
28290
- */
28291
- adjustPosition() {
28292
- if (typeof window === "undefined")
28293
- return;
28294
- const spaceAbove = this.$el.getBoundingClientRect().top;
28295
- const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom;
28296
- const hasEnoughSpaceBelow = spaceBelow > this.maxHeight;
28297
- if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === "below" || this.openDirection === "bottom") {
28298
- this.preferredOpenDirection = "below";
28299
- this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight);
28300
- } else {
28301
- this.preferredOpenDirection = "above";
28302
- this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight);
28303
- }
28304
- }
28305
- }
28306
- };
28307
- var pointerMixin = {
28308
- data() {
28309
- return {
28310
- pointer: 0,
28311
- pointerDirty: false
28312
- };
28313
- },
28314
- props: {
28315
- /**
28316
- * Enable/disable highlighting of the pointed value.
28317
- * @type {Boolean}
28318
- * @default true
28319
- */
28320
- showPointer: {
28321
- type: Boolean,
28322
- default: true
28323
- },
28324
- optionHeight: {
28325
- type: Number,
28326
- default: 40
28327
- }
28328
- },
28329
- computed: {
28330
- pointerPosition() {
28331
- return this.pointer * this.optionHeight;
28332
- },
28333
- visibleElements() {
28334
- return this.optimizedHeight / this.optionHeight;
28335
- }
28336
- },
28337
- watch: {
28338
- filteredOptions() {
28339
- this.pointerAdjust();
28340
- },
28341
- isOpen() {
28342
- this.pointerDirty = false;
28343
- },
28344
- pointer() {
28345
- this.$refs.search && this.$refs.search.setAttribute("aria-activedescendant", this.id + "-" + this.pointer.toString());
28346
- }
28347
- },
28348
- methods: {
28349
- optionHighlight(index2, option2) {
28350
- return {
28351
- "multiselect__option--highlight": index2 === this.pointer && this.showPointer,
28352
- "multiselect__option--selected": this.isSelected(option2)
28353
- };
28354
- },
28355
- groupHighlight(index2, selectedGroup) {
28356
- if (!this.groupSelect) {
28357
- return [
28358
- "multiselect__option--disabled",
28359
- { "multiselect__option--group": selectedGroup.$isLabel }
28360
- ];
28361
- }
28362
- const group = this.options.find((option2) => {
28363
- return option2[this.groupLabel] === selectedGroup.$groupLabel;
28364
- });
28365
- return group && !this.wholeGroupDisabled(group) ? [
28366
- "multiselect__option--group",
28367
- { "multiselect__option--highlight": index2 === this.pointer && this.showPointer },
28368
- { "multiselect__option--group-selected": this.wholeGroupSelected(group) }
28369
- ] : "multiselect__option--disabled";
28370
- },
28371
- addPointerElement({ key } = "Enter") {
28372
- if (this.filteredOptions.length > 0) {
28373
- this.select(this.filteredOptions[this.pointer], key);
28374
- }
28375
- this.pointerReset();
28376
- },
28377
- pointerForward() {
28378
- if (this.pointer < this.filteredOptions.length - 1) {
28379
- this.pointer++;
28380
- if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {
28381
- this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight;
28382
- }
28383
- if (this.filteredOptions[this.pointer] && this.filteredOptions[this.pointer].$isLabel && !this.groupSelect)
28384
- this.pointerForward();
28385
- }
28386
- this.pointerDirty = true;
28387
- },
28388
- pointerBackward() {
28389
- if (this.pointer > 0) {
28390
- this.pointer--;
28391
- if (this.$refs.list.scrollTop >= this.pointerPosition) {
28392
- this.$refs.list.scrollTop = this.pointerPosition;
28393
- }
28394
- if (this.filteredOptions[this.pointer] && this.filteredOptions[this.pointer].$isLabel && !this.groupSelect)
28395
- this.pointerBackward();
28396
- } else {
28397
- if (this.filteredOptions[this.pointer] && this.filteredOptions[0].$isLabel && !this.groupSelect)
28398
- this.pointerForward();
28399
- }
28400
- this.pointerDirty = true;
28401
- },
28402
- pointerReset() {
28403
- if (!this.closeOnSelect)
28404
- return;
28405
- this.pointer = 0;
28406
- if (this.$refs.list) {
28407
- this.$refs.list.scrollTop = 0;
28408
- }
28409
- },
28410
- pointerAdjust() {
28411
- if (this.pointer >= this.filteredOptions.length - 1) {
28412
- this.pointer = this.filteredOptions.length ? this.filteredOptions.length - 1 : 0;
28413
- }
28414
- if (this.filteredOptions.length > 0 && this.filteredOptions[this.pointer].$isLabel && !this.groupSelect) {
28415
- this.pointerForward();
28416
- }
28417
- },
28418
- pointerSet(index2) {
28419
- this.pointer = index2;
28420
- this.pointerDirty = true;
28421
- }
28422
- }
28423
- };
28424
- var script$e = {
28425
- name: "vue-multiselect",
28426
- mixins: [multiselectMixin, pointerMixin],
28427
- compatConfig: {
28428
- MODE: 3,
28429
- ATTR_ENUMERATED_COERCION: false
28430
- },
28431
- props: {
28432
- /**
28433
- * name attribute to match optional label element
28434
- * @default ''
28435
- * @type {String}
28436
- */
28437
- name: {
28438
- type: String,
28439
- default: ""
28440
- },
28441
- /**
28442
- * Presets the selected options value.
28443
- * @type {Object||Array||String||Integer}
28444
- */
28445
- modelValue: {
28446
- type: null,
28447
- default() {
28448
- return [];
28449
- }
28450
- },
28451
- /**
28452
- * String to show when pointing to an option
28453
- * @default 'Press enter to select'
28454
- * @type {String}
28455
- */
28456
- selectLabel: {
28457
- type: String,
28458
- default: "Press enter to select"
28459
- },
28460
- /**
28461
- * String to show when pointing to an option
28462
- * @default 'Press enter to select'
28463
- * @type {String}
28464
- */
28465
- selectGroupLabel: {
28466
- type: String,
28467
- default: "Press enter to select group"
28468
- },
28469
- /**
28470
- * String to show next to selected option
28471
- * @default 'Selected'
28472
- * @type {String}
28473
- */
28474
- selectedLabel: {
28475
- type: String,
28476
- default: "Selected"
28477
- },
28478
- /**
28479
- * String to show when pointing to an already selected option
28480
- * @default 'Press enter to remove'
28481
- * @type {String}
28482
- */
28483
- deselectLabel: {
28484
- type: String,
28485
- default: "Press enter to remove"
28486
- },
28487
- /**
28488
- * String to show when pointing to an already selected option
28489
- * @default 'Press enter to remove'
28490
- * @type {String}
28491
- */
28492
- deselectGroupLabel: {
28493
- type: String,
28494
- default: "Press enter to deselect group"
28495
- },
28496
- /**
28497
- * Decide whether to show pointer labels
28498
- * @default true
28499
- * @type {Boolean}
28500
- */
28501
- showLabels: {
28502
- type: Boolean,
28503
- default: true
28504
- },
28505
- /**
28506
- * Limit the display of selected options. The rest will be hidden within the limitText string.
28507
- * @default 99999
28508
- * @type {Integer}
28509
- */
28510
- limit: {
28511
- type: Number,
28512
- default: 99999
28513
- },
28514
- /**
28515
- * Sets maxHeight style value of the dropdown
28516
- * @default 300
28517
- * @type {Integer}
28518
- */
28519
- maxHeight: {
28520
- type: Number,
28521
- default: 300
28522
- },
28523
- /**
28524
- * Function that process the message shown when selected
28525
- * elements pass the defined limit.
28526
- * @default 'and * more'
28527
- * @param {Int} count Number of elements more than limit
28528
- * @type {Function}
28529
- */
28530
- limitText: {
28531
- type: Function,
28532
- default: (count2) => `and ${count2} more`
28533
- },
28534
- /**
28535
- * Set true to trigger the loading spinner.
28536
- * @default False
28537
- * @type {Boolean}
28538
- */
28539
- loading: {
28540
- type: Boolean,
28541
- default: false
28542
- },
28543
- /**
28544
- * Disables the multiselect if true.
28545
- * @default false
28546
- * @type {Boolean}
28547
- */
28548
- disabled: {
28549
- type: Boolean,
28550
- default: false
28551
- },
28552
- /**
28553
- * Fixed opening direction
28554
- * @default ''
28555
- * @type {String}
28556
- */
28557
- openDirection: {
28558
- type: String,
28559
- default: ""
28560
- },
28561
- /**
28562
- * Shows slot with message about empty options
28563
- * @default true
28564
- * @type {Boolean}
28565
- */
28566
- showNoOptions: {
28567
- type: Boolean,
28568
- default: true
28569
- },
28570
- showNoResults: {
28571
- type: Boolean,
28572
- default: true
28573
- },
28574
- tabindex: {
28575
- type: Number,
28576
- default: 0
28577
- }
28578
- },
28579
- computed: {
28580
- hasOptionGroup() {
28581
- return this.groupValues && this.groupLabel && this.groupSelect;
28582
- },
28583
- isSingleLabelVisible() {
28584
- return (this.singleValue || this.singleValue === 0) && (!this.isOpen || !this.searchable) && !this.visibleValues.length;
28585
- },
28586
- isPlaceholderVisible() {
28587
- return !this.internalValue.length && (!this.searchable || !this.isOpen);
28588
- },
28589
- visibleValues() {
28590
- return this.multiple ? this.internalValue.slice(0, this.limit) : [];
28591
- },
28592
- singleValue() {
28593
- return this.internalValue[0];
28594
- },
28595
- deselectLabelText() {
28596
- return this.showLabels ? this.deselectLabel : "";
28597
- },
28598
- deselectGroupLabelText() {
28599
- return this.showLabels ? this.deselectGroupLabel : "";
28600
- },
28601
- selectLabelText() {
28602
- return this.showLabels ? this.selectLabel : "";
28603
- },
28604
- selectGroupLabelText() {
28605
- return this.showLabels ? this.selectGroupLabel : "";
28606
- },
28607
- selectedLabelText() {
28608
- return this.showLabels ? this.selectedLabel : "";
28609
- },
28610
- inputStyle() {
28611
- if (this.searchable || this.multiple && this.modelValue && this.modelValue.length) {
28612
- return this.isOpen ? { width: "100%" } : { width: "0", position: "absolute", padding: "0" };
28613
- }
28614
- return "";
28615
- },
28616
- contentStyle() {
28617
- return this.options.length ? { display: "inline-block" } : { display: "block" };
28618
- },
28619
- isAbove() {
28620
- if (this.openDirection === "above" || this.openDirection === "top") {
28621
- return true;
28622
- } else if (this.openDirection === "below" || this.openDirection === "bottom") {
28623
- return false;
28624
- } else {
28625
- return this.preferredOpenDirection === "above";
28626
- }
28627
- },
28628
- showSearchInput() {
28629
- return this.searchable && (this.hasSingleSelectedSlot && (this.visibleSingleValue || this.visibleSingleValue === 0) ? this.isOpen : true);
28630
- }
28631
- }
28632
- };
28633
- const _hoisted_1$n = {
28634
- ref: "tags",
28635
- class: "multiselect__tags"
28636
- };
28637
- const _hoisted_2$i = { class: "multiselect__tags-wrap" };
28638
- const _hoisted_3$e = { class: "multiselect__spinner" };
28639
- const _hoisted_4$a = { key: 0 };
28640
- const _hoisted_5$9 = { class: "multiselect__option" };
28641
- const _hoisted_6$5 = { class: "multiselect__option" };
28642
- const _hoisted_7$2 = /* @__PURE__ */ vue.createTextVNode("No elements found. Consider changing the search query.");
28643
- const _hoisted_8$1 = { class: "multiselect__option" };
28644
- const _hoisted_9$1 = /* @__PURE__ */ vue.createTextVNode("List is empty.");
28645
- function render$e(_ctx, _cache, $props, $setup, $data, $options) {
28646
- return vue.openBlock(), vue.createBlock("div", {
28647
- tabindex: _ctx.searchable ? -1 : $props.tabindex,
28648
- class: [{ "multiselect--active": _ctx.isOpen, "multiselect--disabled": $props.disabled, "multiselect--above": $options.isAbove, "multiselect--has-options-group": $options.hasOptionGroup }, "multiselect"],
28649
- onFocus: _cache[14] || (_cache[14] = ($event) => _ctx.activate()),
28650
- onBlur: _cache[15] || (_cache[15] = ($event) => _ctx.searchable ? false : _ctx.deactivate()),
28651
- onKeydown: [
28652
- _cache[16] || (_cache[16] = vue.withKeys(vue.withModifiers(($event) => _ctx.pointerForward(), ["self", "prevent"]), ["down"])),
28653
- _cache[17] || (_cache[17] = vue.withKeys(vue.withModifiers(($event) => _ctx.pointerBackward(), ["self", "prevent"]), ["up"]))
28654
- ],
28655
- onKeypress: _cache[18] || (_cache[18] = vue.withKeys(vue.withModifiers(($event) => _ctx.addPointerElement($event), ["stop", "self"]), ["enter", "tab"])),
28656
- onKeyup: _cache[19] || (_cache[19] = vue.withKeys(($event) => _ctx.deactivate(), ["esc"])),
28657
- role: "combobox",
28658
- "aria-owns": "listbox-" + _ctx.id
28659
- }, [
28660
- vue.renderSlot(_ctx.$slots, "caret", { toggle: _ctx.toggle }, () => [
28661
- vue.createVNode(
28662
- "div",
28663
- {
28664
- onMousedown: _cache[1] || (_cache[1] = vue.withModifiers(($event) => _ctx.toggle(), ["prevent", "stop"])),
28665
- class: "multiselect__select"
28666
- },
28667
- null,
28668
- 32
28669
- /* HYDRATE_EVENTS */
28670
- )
28671
- ]),
28672
- vue.renderSlot(_ctx.$slots, "clear", { search: _ctx.search }),
28673
- vue.createVNode(
28674
- "div",
28675
- _hoisted_1$n,
28676
- [
28677
- vue.renderSlot(_ctx.$slots, "selection", {
28678
- search: _ctx.search,
28679
- remove: _ctx.removeElement,
28680
- values: $options.visibleValues,
28681
- isOpen: _ctx.isOpen
28682
- }, () => [
28683
- vue.withDirectives(vue.createVNode(
28684
- "div",
28685
- _hoisted_2$i,
28686
- [
28687
- (vue.openBlock(true), vue.createBlock(
28688
- vue.Fragment,
28689
- null,
28690
- vue.renderList($options.visibleValues, (option2, index2) => {
28691
- return vue.renderSlot(_ctx.$slots, "tag", {
28692
- option: option2,
28693
- search: _ctx.search,
28694
- remove: _ctx.removeElement
28695
- }, () => [
28696
- (vue.openBlock(), vue.createBlock("span", {
28697
- class: "multiselect__tag",
28698
- key: index2
28699
- }, [
28700
- vue.createVNode("span", {
28701
- textContent: vue.toDisplayString(_ctx.getOptionLabel(option2))
28702
- }, null, 8, ["textContent"]),
28703
- vue.createVNode("i", {
28704
- tabindex: "1",
28705
- onKeypress: vue.withKeys(vue.withModifiers(($event) => _ctx.removeElement(option2), ["prevent"]), ["enter"]),
28706
- onMousedown: vue.withModifiers(($event) => _ctx.removeElement(option2), ["prevent"]),
28707
- class: "multiselect__tag-icon"
28708
- }, null, 40, ["onKeypress", "onMousedown"])
28709
- ]))
28710
- ]);
28711
- }),
28712
- 256
28713
- /* UNKEYED_FRAGMENT */
28714
- ))
28715
- ],
28716
- 512
28717
- /* NEED_PATCH */
28718
- ), [
28719
- [vue.vShow, $options.visibleValues.length > 0]
28720
- ]),
28721
- _ctx.internalValue && _ctx.internalValue.length > $props.limit ? vue.renderSlot(_ctx.$slots, "limit", { key: 0 }, () => [
28722
- vue.createVNode("strong", {
28723
- class: "multiselect__strong",
28724
- textContent: vue.toDisplayString($props.limitText(_ctx.internalValue.length - $props.limit))
28725
- }, null, 8, ["textContent"])
28726
- ]) : vue.createCommentVNode("v-if", true)
28727
- ]),
28728
- vue.createVNode(vue.Transition, { name: "multiselect__loading" }, {
28729
- default: vue.withCtx(() => [
28730
- vue.renderSlot(_ctx.$slots, "loading", {}, () => [
28731
- vue.withDirectives(vue.createVNode(
28732
- "div",
28733
- _hoisted_3$e,
28734
- null,
28735
- 512
28736
- /* NEED_PATCH */
28737
- ), [
28738
- [vue.vShow, $props.loading]
28739
- ])
28740
- ])
28741
- ]),
28742
- _: 3
28743
- /* FORWARDED */
28744
- }),
28745
- _ctx.searchable ? (vue.openBlock(), vue.createBlock("input", {
28746
- key: 0,
28747
- ref: "search",
28748
- name: $props.name,
28749
- id: _ctx.id,
28750
- type: "text",
28751
- autocomplete: "off",
28752
- spellcheck: false,
28753
- placeholder: _ctx.placeholder,
28754
- style: $options.inputStyle,
28755
- value: _ctx.search,
28756
- disabled: $props.disabled,
28757
- tabindex: $props.tabindex,
28758
- onInput: _cache[2] || (_cache[2] = ($event) => _ctx.updateSearch($event.target.value)),
28759
- onFocus: _cache[3] || (_cache[3] = vue.withModifiers(($event) => _ctx.activate(), ["prevent"])),
28760
- onBlur: _cache[4] || (_cache[4] = vue.withModifiers(($event) => _ctx.deactivate(), ["prevent"])),
28761
- onKeyup: _cache[5] || (_cache[5] = vue.withKeys(($event) => _ctx.deactivate(), ["esc"])),
28762
- onKeydown: [
28763
- _cache[6] || (_cache[6] = vue.withKeys(vue.withModifiers(($event) => _ctx.pointerForward(), ["prevent"]), ["down"])),
28764
- _cache[7] || (_cache[7] = vue.withKeys(vue.withModifiers(($event) => _ctx.pointerBackward(), ["prevent"]), ["up"])),
28765
- _cache[9] || (_cache[9] = vue.withKeys(vue.withModifiers(($event) => _ctx.removeLastElement(), ["stop"]), ["delete"]))
28766
- ],
28767
- onKeypress: _cache[8] || (_cache[8] = vue.withKeys(vue.withModifiers(($event) => _ctx.addPointerElement($event), ["prevent", "stop", "self"]), ["enter"])),
28768
- class: "multiselect__input",
28769
- "aria-controls": "listbox-" + _ctx.id
28770
- }, null, 44, ["name", "id", "placeholder", "value", "disabled", "tabindex", "aria-controls"])) : vue.createCommentVNode("v-if", true),
28771
- $options.isSingleLabelVisible ? (vue.openBlock(), vue.createBlock(
28772
- "span",
28773
- {
28774
- key: 1,
28775
- class: "multiselect__single",
28776
- onMousedown: _cache[10] || (_cache[10] = vue.withModifiers((...args) => _ctx.toggle && _ctx.toggle(...args), ["prevent"]))
28777
- },
28778
- [
28779
- vue.renderSlot(_ctx.$slots, "singleLabel", { option: $options.singleValue }, () => [
28780
- vue.createTextVNode(
28781
- vue.toDisplayString(_ctx.currentOptionLabel),
28782
- 1
28783
- /* TEXT */
28784
- )
28785
- ])
28786
- ],
28787
- 32
28788
- /* HYDRATE_EVENTS */
28789
- )) : vue.createCommentVNode("v-if", true),
28790
- $options.isPlaceholderVisible ? (vue.openBlock(), vue.createBlock(
28791
- "span",
28792
- {
28793
- key: 2,
28794
- class: "multiselect__placeholder",
28795
- onMousedown: _cache[11] || (_cache[11] = vue.withModifiers((...args) => _ctx.toggle && _ctx.toggle(...args), ["prevent"]))
28796
- },
28797
- [
28798
- vue.renderSlot(_ctx.$slots, "placeholder", {}, () => [
28799
- vue.createTextVNode(
28800
- vue.toDisplayString(_ctx.placeholder),
28801
- 1
28802
- /* TEXT */
28803
- )
28804
- ])
28805
- ],
28806
- 32
28807
- /* HYDRATE_EVENTS */
28808
- )) : vue.createCommentVNode("v-if", true)
28809
- ],
28810
- 512
28811
- /* NEED_PATCH */
28812
- ),
28813
- vue.createVNode(vue.Transition, { name: "multiselect" }, {
28814
- default: vue.withCtx(() => [
28815
- vue.withDirectives(vue.createVNode(
28816
- "div",
28817
- {
28818
- class: "multiselect__content-wrapper",
28819
- onFocus: _cache[12] || (_cache[12] = (...args) => _ctx.activate && _ctx.activate(...args)),
28820
- tabindex: "-1",
28821
- onMousedown: _cache[13] || (_cache[13] = vue.withModifiers(() => {
28822
- }, ["prevent"])),
28823
- style: { maxHeight: _ctx.optimizedHeight + "px" },
28824
- ref: "list"
28825
- },
28826
- [
28827
- vue.createVNode("ul", {
28828
- class: "multiselect__content",
28829
- style: $options.contentStyle,
28830
- role: "listbox",
28831
- id: "listbox-" + _ctx.id
28832
- }, [
28833
- vue.renderSlot(_ctx.$slots, "beforeList"),
28834
- _ctx.multiple && _ctx.max === _ctx.internalValue.length ? (vue.openBlock(), vue.createBlock("li", _hoisted_4$a, [
28835
- vue.createVNode("span", _hoisted_5$9, [
28836
- vue.renderSlot(_ctx.$slots, "maxElements", {}, () => [
28837
- vue.createTextVNode(
28838
- "Maximum of " + vue.toDisplayString(_ctx.max) + " options selected. First remove a selected option to select another.",
28839
- 1
28840
- /* TEXT */
28841
- )
28842
- ])
28843
- ])
28844
- ])) : vue.createCommentVNode("v-if", true),
28845
- !_ctx.max || _ctx.internalValue.length < _ctx.max ? (vue.openBlock(true), vue.createBlock(
28846
- vue.Fragment,
28847
- { key: 1 },
28848
- vue.renderList(_ctx.filteredOptions, (option2, index2) => {
28849
- return vue.openBlock(), vue.createBlock("li", {
28850
- class: "multiselect__element",
28851
- key: index2,
28852
- id: _ctx.id + "-" + index2,
28853
- role: !(option2 && (option2.$isLabel || option2.$isDisabled)) ? "option" : null
28854
- }, [
28855
- !(option2 && (option2.$isLabel || option2.$isDisabled)) ? (vue.openBlock(), vue.createBlock("span", {
28856
- key: 0,
28857
- class: [_ctx.optionHighlight(index2, option2), "multiselect__option"],
28858
- onClick: vue.withModifiers(($event) => _ctx.select(option2), ["stop"]),
28859
- onMouseenter: vue.withModifiers(($event) => _ctx.pointerSet(index2), ["self"]),
28860
- "data-select": option2 && option2.isTag ? _ctx.tagPlaceholder : $options.selectLabelText,
28861
- "data-selected": $options.selectedLabelText,
28862
- "data-deselect": $options.deselectLabelText
28863
- }, [
28864
- vue.renderSlot(_ctx.$slots, "option", {
28865
- option: option2,
28866
- search: _ctx.search,
28867
- index: index2
28868
- }, () => [
28869
- vue.createVNode(
28870
- "span",
28871
- null,
28872
- vue.toDisplayString(_ctx.getOptionLabel(option2)),
28873
- 1
28874
- /* TEXT */
28875
- )
28876
- ])
28877
- ], 42, ["onClick", "onMouseenter", "data-select", "data-selected", "data-deselect"])) : vue.createCommentVNode("v-if", true),
28878
- option2 && (option2.$isLabel || option2.$isDisabled) ? (vue.openBlock(), vue.createBlock("span", {
28879
- key: 1,
28880
- "data-select": _ctx.groupSelect && $options.selectGroupLabelText,
28881
- "data-deselect": _ctx.groupSelect && $options.deselectGroupLabelText,
28882
- class: [_ctx.groupHighlight(index2, option2), "multiselect__option"],
28883
- onMouseenter: vue.withModifiers(($event) => _ctx.groupSelect && _ctx.pointerSet(index2), ["self"]),
28884
- onMousedown: vue.withModifiers(($event) => _ctx.selectGroup(option2), ["prevent"])
28885
- }, [
28886
- vue.renderSlot(_ctx.$slots, "option", {
28887
- option: option2,
28888
- search: _ctx.search,
28889
- index: index2
28890
- }, () => [
28891
- vue.createVNode(
28892
- "span",
28893
- null,
28894
- vue.toDisplayString(_ctx.getOptionLabel(option2)),
28895
- 1
28896
- /* TEXT */
28897
- )
28898
- ])
28899
- ], 42, ["data-select", "data-deselect", "onMouseenter", "onMousedown"])) : vue.createCommentVNode("v-if", true)
28900
- ], 8, ["id", "role"]);
28901
- }),
28902
- 128
28903
- /* KEYED_FRAGMENT */
28904
- )) : vue.createCommentVNode("v-if", true),
28905
- vue.withDirectives(vue.createVNode(
28906
- "li",
28907
- null,
28908
- [
28909
- vue.createVNode("span", _hoisted_6$5, [
28910
- vue.renderSlot(_ctx.$slots, "noResult", { search: _ctx.search }, () => [
28911
- _hoisted_7$2
28912
- ])
28913
- ])
28914
- ],
28915
- 512
28916
- /* NEED_PATCH */
28917
- ), [
28918
- [vue.vShow, $props.showNoResults && (_ctx.filteredOptions.length === 0 && _ctx.search && !$props.loading)]
28919
- ]),
28920
- vue.withDirectives(vue.createVNode(
28921
- "li",
28922
- null,
28923
- [
28924
- vue.createVNode("span", _hoisted_8$1, [
28925
- vue.renderSlot(_ctx.$slots, "noOptions", {}, () => [
28926
- _hoisted_9$1
28927
- ])
28928
- ])
28929
- ],
28930
- 512
28931
- /* NEED_PATCH */
28932
- ), [
28933
- [vue.vShow, $props.showNoOptions && ((_ctx.options.length === 0 || $options.hasOptionGroup === true && _ctx.filteredOptions.length === 0) && !_ctx.search && !$props.loading)]
28934
- ]),
28935
- vue.renderSlot(_ctx.$slots, "afterList")
28936
- ], 12, ["id"])
28937
- ],
28938
- 36
28939
- /* STYLE, HYDRATE_EVENTS */
28940
- ), [
28941
- [vue.vShow, _ctx.isOpen]
28942
- ])
28943
- ]),
28944
- _: 3
28945
- /* FORWARDED */
28946
- })
28947
- ], 42, ["tabindex", "aria-owns"]);
28948
- }
28949
- script$e.render = render$e;
28950
- const Multiselect = script$e;
28951
- const _hoisted_1$m = ["for"];
28952
- const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
27426
+ const JSONInput = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-1fc4f739"]]);
27427
+ const _hoisted_1$m = ["disabled"];
27428
+ const _hoisted_2$i = ["onClick"];
27429
+ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
28953
27430
  __name: "SelectInput",
28954
27431
  props: {
27432
+ options: {},
27433
+ placeholder: {},
27434
+ disabled: { type: Boolean },
27435
+ modelValue: {},
27436
+ searchable: { type: Boolean },
28955
27437
  required: { type: Boolean },
28956
27438
  label: {},
28957
- id: {},
28958
- modelValue: {},
28959
- placeholder: {},
28960
- defaultValue: {},
28961
- options: {},
28962
- extraProps: {}
27439
+ fullWidth: { type: Boolean },
27440
+ multiselect: { type: Boolean }
28963
27441
  },
28964
27442
  emits: ["update:modelValue"],
28965
27443
  setup(__props, { emit: __emit }) {
27444
+ let open = vue.ref(false);
27445
+ const searchInput = vue.ref(null);
28966
27446
  const props2 = __props;
28967
- let dataValue = vue.ref(props2.modelValue || props2.defaultValue);
28968
- const multiselect = vue.ref();
27447
+ const selectedItems = vue.ref([]);
27448
+ let search = vue.ref("");
27449
+ const dropdown = vue.ref(null);
27450
+ const toggle = () => {
27451
+ var _a2;
27452
+ (_a2 = dropdown.value) == null ? void 0 : _a2.hide();
27453
+ open.value = !open.value;
27454
+ if (!open.value)
27455
+ search.value = "";
27456
+ if (open.value)
27457
+ setTimeout(() => {
27458
+ var _a3, _b, _c;
27459
+ return (_c = (_b = (_a3 = searchInput.value) == null ? void 0 : _a3.$el) == null ? void 0 : _b.querySelector("input")) == null ? void 0 : _c.focus();
27460
+ }, 100);
27461
+ };
27462
+ const selecteLabel = vue.computed(() => {
27463
+ if (selectedItems.value.length === 0)
27464
+ return props2.placeholder || "Select";
27465
+ if (selectedItems.value.length > 4) {
27466
+ const str = selectedItems.value.slice(0, 4).map((item) => getLabel(item)).join(", ");
27467
+ return `${str}... +${selectedItems.value.length - 4}`;
27468
+ }
27469
+ return selectedItems.value.map((item) => getLabel(item)).join(", ");
27470
+ });
28969
27471
  const emit2 = __emit;
28970
- const optionList = vue.ref([]);
28971
- const seletValue = vue.computed({
28972
- get: () => optionList.value.find((opt) => opt.value === dataValue.value),
28973
- set: (val) => {
28974
- dataValue.value = val == null ? void 0 : val.value;
28975
- emit2("update:modelValue", dataValue.value);
27472
+ const getLabel = (option2) => {
27473
+ if (typeof option2 === "string")
27474
+ return option2;
27475
+ if (typeof option2 === "number")
27476
+ return `${option2}`;
27477
+ return option2.label;
27478
+ };
27479
+ const getValue = (option2) => {
27480
+ if (typeof option2 === "string")
27481
+ return option2;
27482
+ if (typeof option2 === "number")
27483
+ return option2;
27484
+ return option2.value;
27485
+ };
27486
+ const isSelected = (option2) => selectedItems.value.includes(getValue(option2));
27487
+ const filteredOptions = vue.computed(() => props2.options.filter((option2) => {
27488
+ const searchTerm = new RegExp(search.value, "gi");
27489
+ if (typeof option2 === "string")
27490
+ return option2.match(searchTerm);
27491
+ if (typeof option2 === "number")
27492
+ return `${option2}`.match(searchTerm);
27493
+ return option2.label.match(searchTerm);
27494
+ }));
27495
+ const select2 = (option2) => {
27496
+ const existingIndex = selectedItems.value.findIndex((item) => {
27497
+ if (typeof item === "string" || typeof item === "number")
27498
+ return item === option2;
27499
+ return item.value === option2;
27500
+ });
27501
+ if (existingIndex > -1)
27502
+ selectedItems.value.splice(existingIndex, 1);
27503
+ else if (props2.multiselect) {
27504
+ selectedItems.value.push(getValue(option2));
27505
+ } else {
27506
+ selectedItems.value.splice(0, selectedItems.value.length, getValue(option2));
27507
+ toggle();
28976
27508
  }
28977
- });
28978
- function optnToValueLabel(option2) {
28979
- if (typeof option2 === "string" || typeof option2 === "number") {
28980
- return { label: `${option2}`, value: option2 };
27509
+ emitUpdate();
27510
+ };
27511
+ function emitUpdate() {
27512
+ if (props2.multiselect) {
27513
+ emit2("update:modelValue", selectedItems.value);
27514
+ } else {
27515
+ selectedItems.value.splice(1, selectedItems.value.length);
27516
+ emit2("update:modelValue", selectedItems.value[0]);
28981
27517
  }
28982
- return option2;
28983
27518
  }
28984
- function updateOptionList() {
28985
- const { options } = props2;
28986
- const optnLst = typeof options === "string" ? options.split("\n|,") : options || [];
28987
- optionList.value.push(...optnLst.map(optnToValueLabel));
27519
+ function compareArrays(arr1, arr2) {
27520
+ const isSame = arr1.every((item) => arr2.map((a2) => getValue(a2)).includes(getValue(item)));
27521
+ return isSame;
28988
27522
  }
28989
- vue.watch(() => props2.options, updateOptionList, { immediate: true });
27523
+ vue.watch(
27524
+ () => props2.modelValue,
27525
+ (newVal) => {
27526
+ if (!newVal)
27527
+ return;
27528
+ if (!props2.multiselect) {
27529
+ if (!isSelected(newVal))
27530
+ selectedItems.value.splice(0, selectedItems.value.length, newVal);
27531
+ } else {
27532
+ const isSame = compareArrays([newVal].flat(), selectedItems.value);
27533
+ if (!isSame)
27534
+ selectedItems.value.splice(0, selectedItems.value.length, [newVal].flat());
27535
+ }
27536
+ },
27537
+ { immediate: true }
27538
+ );
28990
27539
  return (_ctx, _cache) => {
28991
- return vue.openBlock(), vue.createElementBlock("div", null, [
28992
- vue.createElementVNode("label", {
28993
- class: "txt-start",
28994
- for: _ctx.id
28995
- }, [
28996
- vue.createTextVNode(vue.toDisplayString(_ctx.label) + " ", 1),
28997
- vue.createVNode(vue.unref(Multiselect), vue.mergeProps({
28998
- ref_key: "multiselect",
28999
- ref: multiselect,
29000
- id: _ctx.id,
29001
- label: "label",
29002
- trackBy: "value",
29003
- options: optionList.value,
29004
- required: _ctx.required,
29005
- placeholder: _ctx.placeholder,
29006
- modelValue: seletValue.value,
29007
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => seletValue.value = $event),
29008
- "close-on-select": true
29009
- }, _ctx.extraProps), null, 16, ["id", "options", "required", "placeholder", "modelValue"])
29010
- ], 8, _hoisted_1$m)
29011
- ]);
27540
+ return vue.openBlock(), vue.createBlock(vue.unref(kt$1), {
27541
+ ref_key: "dropdown",
27542
+ ref: dropdown,
27543
+ placement: "bottom-start",
27544
+ class: "bagel-input selectinput"
27545
+ }, {
27546
+ popper: vue.withCtx(({ hide }) => [
27547
+ vue.createVNode(vue.unref(_sfc_main$t), {
27548
+ class: "selectinput-options p-05",
27549
+ style: vue.normalizeStyle({ width: _ctx.fullWidth ? "100%" : "auto" })
27550
+ }, {
27551
+ default: vue.withCtx(() => [
27552
+ _ctx.searchable ? (vue.openBlock(), vue.createBlock(vue.unref(TextInput), {
27553
+ key: 0,
27554
+ ref_key: "searchInput",
27555
+ ref: searchInput,
27556
+ dense: "",
27557
+ placeholder: "Search",
27558
+ icon: "search",
27559
+ modelValue: vue.unref(search),
27560
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(search) ? search.value = $event : search = $event)
27561
+ }, null, 8, ["modelValue"])) : vue.createCommentVNode("", true),
27562
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filteredOptions.value, (option2, i2) => {
27563
+ return vue.openBlock(), vue.createElementBlock("div", {
27564
+ class: vue.normalizeClass(["selectinput-option hover gap-1", { selected: isSelected(option2) }]),
27565
+ key: `${option2}${i2}`,
27566
+ onClick: ($event) => select2(option2)
27567
+ }, [
27568
+ isSelected(option2) ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$H), {
27569
+ key: 0,
27570
+ icon: "check"
27571
+ })) : vue.createCommentVNode("", true),
27572
+ !isSelected(option2) ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$H), {
27573
+ key: 1,
27574
+ class: "opacity-3",
27575
+ icon: "fiber_manual_record"
27576
+ })) : vue.createCommentVNode("", true),
27577
+ vue.createElementVNode("span", null, vue.toDisplayString(getLabel(option2)), 1)
27578
+ ], 10, _hoisted_2$i);
27579
+ }), 128)),
27580
+ vue.renderSlot(_ctx.$slots, "last", {}, void 0, true)
27581
+ ]),
27582
+ _: 3
27583
+ }, 8, ["style"])
27584
+ ]),
27585
+ default: vue.withCtx(() => [
27586
+ vue.createElementVNode("label", null, [
27587
+ vue.createTextVNode(vue.toDisplayString(_ctx.label) + " ", 1),
27588
+ vue.createElementVNode("button", {
27589
+ disabled: _ctx.disabled,
27590
+ type: "button",
27591
+ class: "selectinput-btn"
27592
+ }, [
27593
+ vue.createTextVNode(vue.toDisplayString(selecteLabel.value) + " ", 1),
27594
+ vue.createVNode(vue.unref(_sfc_main$H), vue.normalizeProps(vue.guardReactiveProps({ "icon": vue.unref(open) ? "unfold_less" : "unfold_more" })), null, 16)
27595
+ ], 8, _hoisted_1$m),
27596
+ _ctx.required ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
27597
+ key: 0,
27598
+ style: { "width": "0", "height": "0", "position": "absolute", "opacity": "0", "z-index": "-1" },
27599
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedItems.value = $event),
27600
+ required: ""
27601
+ }, null, 512)), [
27602
+ [vue.vModelText, selectedItems.value]
27603
+ ]) : vue.createCommentVNode("", true)
27604
+ ])
27605
+ ]),
27606
+ _: 3
27607
+ }, 512);
29012
27608
  };
29013
27609
  }
29014
27610
  });
27611
+ const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-fa186094"]]);
29015
27612
  const _hoisted_1$l = ["title"];
29016
27613
  const _hoisted_2$h = { key: 0 };
29017
- const _hoisted_3$d = ["value", "placeholder"];
29018
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
27614
+ const _hoisted_3$e = ["value", "placeholder"];
27615
+ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
29019
27616
  __name: "RichTextEditor",
29020
27617
  props: {
29021
27618
  description: { default: "" },
@@ -29046,12 +27643,12 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
29046
27643
  onInput: handleInput,
29047
27644
  placeholder: _ctx.placeholder,
29048
27645
  class: vue.normalizeClass({ "no-edit": !_ctx.editMode })
29049
- }, null, 42, _hoisted_3$d)
27646
+ }, null, 42, _hoisted_3$e)
29050
27647
  ], 10, _hoisted_1$l);
29051
27648
  };
29052
27649
  }
29053
27650
  });
29054
- const RichTextEditor = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-69a60381"]]);
27651
+ const RichTextEditor = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-69a60381"]]);
29055
27652
  /*!
29056
27653
  * vue-draggable-next v2.2.0
29057
27654
  * (c) 2023 Anish George
@@ -29223,13 +27820,13 @@ function closest(el, selector2, ctx, includeCTX) {
29223
27820
  return null;
29224
27821
  }
29225
27822
  var R_SPACE = /\s+/g;
29226
- function toggleClass(el, name, state) {
27823
+ function toggleClass(el, name, state2) {
29227
27824
  if (el && name) {
29228
27825
  if (el.classList) {
29229
- el.classList[state ? "add" : "remove"](name);
27826
+ el.classList[state2 ? "add" : "remove"](name);
29230
27827
  } else {
29231
27828
  var className = (" " + el.className + " ").replace(R_SPACE, " ").replace(" " + name + " ", " ");
29232
- el.className = (className + (state ? " " + name : "")).replace(R_SPACE, " ");
27829
+ el.className = (className + (state2 ? " " + name : "")).replace(R_SPACE, " ");
29233
27830
  }
29234
27831
  }
29235
27832
  }
@@ -29506,8 +28103,8 @@ function AnimationStateManager() {
29506
28103
  child.fromRect = fromRect;
29507
28104
  });
29508
28105
  },
29509
- addAnimationState: function addAnimationState(state) {
29510
- animationStates.push(state);
28106
+ addAnimationState: function addAnimationState(state2) {
28107
+ animationStates.push(state2);
29511
28108
  },
29512
28109
  removeAnimationState: function removeAnimationState(target) {
29513
28110
  animationStates.splice(indexOfObject(animationStates, {
@@ -29523,8 +28120,8 @@ function AnimationStateManager() {
29523
28120
  return;
29524
28121
  }
29525
28122
  var animating = false, animationTime = 0;
29526
- animationStates.forEach(function(state) {
29527
- var time = 0, target = state.target, fromRect = target.fromRect, toRect = getRect(target), prevFromRect = target.prevFromRect, prevToRect = target.prevToRect, animatingRect = state.rect, targetMatrix = matrix(target, true);
28123
+ animationStates.forEach(function(state2) {
28124
+ var time = 0, target = state2.target, fromRect = target.fromRect, toRect = getRect(target), prevFromRect = target.prevFromRect, prevToRect = target.prevToRect, animatingRect = state2.rect, targetMatrix = matrix(target, true);
29528
28125
  if (targetMatrix) {
29529
28126
  toRect.top -= targetMatrix.f;
29530
28127
  toRect.left -= targetMatrix.e;
@@ -31576,11 +30173,11 @@ const VueDraggableNext = vue.defineComponent({
31576
30173
  });
31577
30174
  const _hoisted_1$k = ["title"];
31578
30175
  const _hoisted_2$g = { class: "bagel-input" };
31579
- const _hoisted_3$c = { class: "table-side-scroll" };
30176
+ const _hoisted_3$d = { class: "table-side-scroll" };
31580
30177
  const _hoisted_4$9 = { class: "table-header" };
31581
30178
  const _hoisted_5$8 = { class: "table-reorder" };
31582
30179
  const _hoisted_6$4 = { class: "table-action" };
31583
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
30180
+ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
31584
30181
  __name: "TableField",
31585
30182
  props: {
31586
30183
  description: { default: "" },
@@ -31648,7 +30245,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
31648
30245
  vue.createElementVNode("div", _hoisted_2$g, [
31649
30246
  vue.createElementVNode("label", null, vue.toDisplayString((_a2 = vue.unref(fieldMeta)) == null ? void 0 : _a2.label), 1)
31650
30247
  ]),
31651
- vue.createElementVNode("div", _hoisted_3$c, [
30248
+ vue.createElementVNode("div", _hoisted_3$d, [
31652
30249
  vue.createElementVNode("div", _hoisted_4$9, [
31653
30250
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList((_b = vue.unref(entityMeta)) == null ? void 0 : _b.fields, (field) => {
31654
30251
  return vue.openBlock(), vue.createElementBlock("div", {
@@ -31677,7 +30274,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
31677
30274
  key: row.id
31678
30275
  }, [
31679
30276
  vue.createElementVNode("div", _hoisted_5$8, [
31680
- vue.createVNode(vue.unref(_sfc_main$F), { icon: "more_vert" })
30277
+ vue.createVNode(vue.unref(_sfc_main$H), { icon: "more_vert" })
31681
30278
  ]),
31682
30279
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList((_a3 = vue.unref(entityMeta)) == null ? void 0 : _a3.fields, (field) => {
31683
30280
  return vue.openBlock(), vue.createElementBlock("div", {
@@ -31694,7 +30291,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
31694
30291
  ], 2);
31695
30292
  }), 128)),
31696
30293
  vue.createElementVNode("div", _hoisted_6$4, [
31697
- vue.createVNode(vue.unref(_sfc_main$F), {
30294
+ vue.createVNode(vue.unref(_sfc_main$H), {
31698
30295
  icon: "delete",
31699
30296
  onClick: ($event) => removeRow(index2)
31700
30297
  }, null, 8, ["onClick"])
@@ -31724,13 +30321,13 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
31724
30321
  };
31725
30322
  }
31726
30323
  });
31727
- const TableField = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-cdacf10e"]]);
30324
+ const TableField = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-cdacf10e"]]);
31728
30325
  const _hoisted_1$j = ["title"];
31729
30326
  const _hoisted_2$f = ["for"];
31730
- const _hoisted_3$b = ["title", "autocomplete", "id", "type", "placeholder", "disabled", "required", "pattern"];
30327
+ const _hoisted_3$c = ["title", "autocomplete", "id", "type", "placeholder", "disabled", "required", "pattern"];
31731
30328
  const _hoisted_4$8 = ["title", "id", "type", "rows", "placeholder", "disabled", "required", "pattern"];
31732
30329
  const _hoisted_5$7 = { key: 2 };
31733
- const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
30330
+ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
31734
30331
  __name: "TextInput",
31735
30332
  props: {
31736
30333
  id: {},
@@ -31844,7 +30441,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
31844
30441
  disabled: !vue.unref(editMode),
31845
30442
  required: _ctx.required,
31846
30443
  pattern: _ctx.pattern
31847
- }, _ctx.nativeInputAttrs, { onDblclick: toggleEditAction }), null, 16, _hoisted_3$b)), [
30444
+ }, _ctx.nativeInputAttrs, { onDblclick: toggleEditAction }), null, 16, _hoisted_3$c)), [
31848
30445
  [vue.vModelDynamic, vue.unref(inputVal)]
31849
30446
  ]) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("textarea", vue.mergeProps({
31850
30447
  key: 1,
@@ -31864,12 +30461,12 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
31864
30461
  ]),
31865
30462
  _ctx.helptext ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_5$7, vue.toDisplayString(_ctx.helptext), 1)) : vue.createCommentVNode("", true)
31866
30463
  ], 8, _hoisted_2$f),
31867
- _ctx.iconStart ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$F), {
30464
+ _ctx.iconStart ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$H), {
31868
30465
  key: 0,
31869
30466
  class: "iconStart",
31870
30467
  icon: _ctx.iconStart
31871
30468
  }, null, 8, ["icon"])) : vue.createCommentVNode("", true),
31872
- _ctx.icon ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$F), {
30469
+ _ctx.icon ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$H), {
31873
30470
  key: 1,
31874
30471
  icon: _ctx.icon
31875
30472
  }, null, 8, ["icon"])) : vue.createCommentVNode("", true),
@@ -31885,9 +30482,9 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
31885
30482
  };
31886
30483
  }
31887
30484
  });
31888
- const TextInput = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-cd4c27ad"]]);
30485
+ const TextInput = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-cd4c27ad"]]);
31889
30486
  const _hoisted_1$i = { class: "primary-checkbox" };
31890
- const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
30487
+ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
31891
30488
  __name: "Checkbox",
31892
30489
  props: {
31893
30490
  "modelValue": {
@@ -31908,16 +30505,16 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
31908
30505
  [vue.vModelCheckbox, val.value]
31909
30506
  ]),
31910
30507
  vue.createElementVNode("span", null, [
31911
- vue.createVNode(vue.unref(_sfc_main$F), { icon: "check" })
30508
+ vue.createVNode(vue.unref(_sfc_main$H), { icon: "check" })
31912
30509
  ])
31913
30510
  ]);
31914
30511
  };
31915
30512
  }
31916
30513
  });
31917
- const Checkbox = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-e4cbb088"]]);
30514
+ const Checkbox = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-e4cbb088"]]);
31918
30515
  const _hoisted_1$h = ["title"];
31919
30516
  const _hoisted_2$e = ["id", "placeholder", "required"];
31920
- const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
30517
+ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
31921
30518
  __name: "ColorPicker",
31922
30519
  props: {
31923
30520
  label: {},
@@ -31963,13 +30560,13 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
31963
30560
  });
31964
30561
  const _hoisted_1$g = { class: "datetime-wrap" };
31965
30562
  const _hoisted_2$d = { class: "date-wrap" };
31966
- const _hoisted_3$a = {
30563
+ const _hoisted_3$b = {
31967
30564
  key: 0,
31968
30565
  class: "time-wrap"
31969
30566
  };
31970
30567
  const _hoisted_4$7 = ["id", "name", "value"];
31971
30568
  const _hoisted_5$6 = ["for"];
31972
- const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
30569
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
31973
30570
  __name: "DatePicker",
31974
30571
  props: {
31975
30572
  name: {},
@@ -32001,7 +30598,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
32001
30598
  _: 1
32002
30599
  }, 16, ["modelValue"])
32003
30600
  ]),
32004
- _ctx.showTimeWrap ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$a, [
30601
+ _ctx.showTimeWrap ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$b, [
32005
30602
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(hours), (hr2) => {
32006
30603
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: hr2 }, [
32007
30604
  vue.withDirectives(vue.createElementVNode("input", {
@@ -32025,10 +30622,10 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
32025
30622
  });
32026
30623
  const _hoisted_1$f = { class: "bagel-input" };
32027
30624
  const _hoisted_2$c = { class: "pb-025" };
32028
- const _hoisted_3$9 = { class: "flex gap-05 flex-wrap" };
30625
+ const _hoisted_3$a = { class: "flex gap-05 flex-wrap" };
32029
30626
  const _hoisted_4$6 = ["id", "name", "value", "checked"];
32030
30627
  const _hoisted_5$5 = ["for"];
32031
- const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
30628
+ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
32032
30629
  __name: "RadioPillsInput",
32033
30630
  props: {
32034
30631
  options: {},
@@ -32069,7 +30666,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
32069
30666
  return (_ctx, _cache) => {
32070
30667
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
32071
30668
  vue.createElementVNode("label", _hoisted_2$c, vue.toDisplayString(_ctx.label), 1),
32072
- vue.createElementVNode("div", _hoisted_3$9, [
30669
+ vue.createElementVNode("div", _hoisted_3$a, [
32073
30670
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(cumputedOptions.value, ({ optioId, label, value }, index2) => {
32074
30671
  return vue.openBlock(), vue.createElementBlock("div", {
32075
30672
  class: "radio-pill",
@@ -32091,13 +30688,13 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
32091
30688
  };
32092
30689
  }
32093
30690
  });
32094
- const RadioPillsInput = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-e47ae8b5"]]);
30691
+ const RadioPillsInput = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-e47ae8b5"]]);
32095
30692
  const _hoisted_1$e = { class: "bagel-input" };
32096
30693
  const _hoisted_2$b = {
32097
30694
  key: 0,
32098
30695
  class: "imagePreviewWrap"
32099
30696
  };
32100
- const _hoisted_3$8 = ["src"];
30697
+ const _hoisted_3$9 = ["src"];
32101
30698
  const _hoisted_4$5 = { class: "previewName" };
32102
30699
  const _hoisted_5$4 = ["src"];
32103
30700
  const _hoisted_6$3 = { class: "no-margin" };
@@ -32113,7 +30710,7 @@ const _hoisted_12 = {
32113
30710
  key: 0,
32114
30711
  class: "progress"
32115
30712
  };
32116
- const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
30713
+ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
32117
30714
  __name: "FileUpload",
32118
30715
  props: /* @__PURE__ */ vue.mergeModels({
32119
30716
  label: {},
@@ -32227,7 +30824,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
32227
30824
  class: "preview",
32228
30825
  src: file.url,
32229
30826
  alt: ""
32230
- }, null, 8, _hoisted_3$8)
30827
+ }, null, 8, _hoisted_3$9)
32231
30828
  ])) : vue.createCommentVNode("", true),
32232
30829
  vue.createElementVNode("div", _hoisted_4$5, [
32233
30830
  _ctx.multiple ? (vue.openBlock(), vue.createElementBlock("img", {
@@ -32273,7 +30870,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
32273
30870
  style: vue.normalizeStyle([`--p:${fileQ.progress}`, { "--b": "2px" }])
32274
30871
  }, [
32275
30872
  fileQ.progress < 100 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_12, vue.toDisplayString(`${fileQ.progress.toFixed(0)}`), 1)) : vue.createCommentVNode("", true),
32276
- vue.createVNode(vue.unref(_sfc_main$F), {
30873
+ vue.createVNode(vue.unref(_sfc_main$H), {
32277
30874
  class: "success",
32278
30875
  icon: "check"
32279
30876
  })
@@ -32286,15 +30883,15 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
32286
30883
  };
32287
30884
  }
32288
30885
  });
32289
- const FileUpload = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-1be8d7b1"]]);
30886
+ const FileUpload = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-1be8d7b1"]]);
32290
30887
  const _withScopeId = (n2) => (vue.pushScopeId("data-v-b87221d6"), n2 = n2(), vue.popScopeId(), n2);
32291
30888
  const _hoisted_1$d = ["title"];
32292
30889
  const _hoisted_2$a = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "slider round" }, null, -1));
32293
- const _hoisted_3$7 = [
30890
+ const _hoisted_3$8 = [
32294
30891
  _hoisted_2$a
32295
30892
  ];
32296
30893
  const _hoisted_4$4 = ["id"];
32297
- const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
30894
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
32298
30895
  __name: "ToggleInput",
32299
30896
  props: /* @__PURE__ */ vue.mergeModels({
32300
30897
  label: {},
@@ -32315,7 +30912,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
32315
30912
  }, [
32316
30913
  vue.createElementVNode("div", {
32317
30914
  class: vue.normalizeClass(["switch", { checked: checked.value }])
32318
- }, _hoisted_3$7, 2),
30915
+ }, _hoisted_3$8, 2),
32319
30916
  vue.createElementVNode("label", null, [
32320
30917
  vue.createTextVNode(vue.toDisplayString(_ctx.label) + " ", 1),
32321
30918
  vue.withDirectives(vue.createElementVNode("input", {
@@ -32330,7 +30927,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
32330
30927
  };
32331
30928
  }
32332
30929
  });
32333
- const ToggleInput = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-b87221d6"]]);
30930
+ const ToggleInput = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-b87221d6"]]);
32334
30931
  function _isPlaceholder(a2) {
32335
30932
  return a2 != null && typeof a2 === "object" && a2["@@functional/placeholder"] === true;
32336
30933
  }
@@ -37361,11 +35958,11 @@ var script$6 = vue.defineComponent({
37361
35958
  return { el, width, height };
37362
35959
  }
37363
35960
  });
37364
- const _hoisted_1$5 = { ref: "el" };
35961
+ const _hoisted_1$5$1 = { ref: "el" };
37365
35962
  function render$6(_ctx, _cache, $props, $setup, $data, $options) {
37366
35963
  return vue.openBlock(), vue.createElementBlock(
37367
35964
  "div",
37368
- _hoisted_1$5,
35965
+ _hoisted_1$5$1,
37369
35966
  [
37370
35967
  vue.renderSlot(_ctx.$slots, "main", {
37371
35968
  width: _ctx.width,
@@ -37437,7 +36034,7 @@ var script$5 = vue.defineComponent({
37437
36034
  return { data: data2, canvas, xLines, yLines };
37438
36035
  }
37439
36036
  });
37440
- const _hoisted_1$4 = ["stroke-dasharray"];
36037
+ const _hoisted_1$4$1 = ["stroke-dasharray"];
37441
36038
  const _hoisted_2$3 = {
37442
36039
  key: 0,
37443
36040
  class: "grid-x"
@@ -37507,7 +36104,7 @@ function render$5(_ctx, _cache, $props, $setup, $data, $options) {
37507
36104
  y2: _ctx.canvas.height
37508
36105
  }, null, 8, _hoisted_7)
37509
36106
  ])
37510
- ], 8, _hoisted_1$4)) : vue.createCommentVNode("v-if", true);
36107
+ ], 8, _hoisted_1$4$1)) : vue.createCommentVNode("v-if", true);
37511
36108
  }
37512
36109
  script$5.render = render$5;
37513
36110
  script$5.__file = "src/components/Grid/index.vue";
@@ -37600,7 +36197,7 @@ var script$4 = vue.defineComponent({
37600
36197
  return { el, show, canvas, direction, style, styleContent, position, items, isRight };
37601
36198
  }
37602
36199
  });
37603
- const _hoisted_1$3 = { key: 0 };
36200
+ const _hoisted_1$3$1 = { key: 0 };
37604
36201
  function render$4(_ctx, _cache, $props, $setup, $data, $options) {
37605
36202
  return _ctx.show ? (vue.openBlock(), vue.createElementBlock(
37606
36203
  "div",
@@ -37665,7 +36262,7 @@ function render$4(_ctx, _cache, $props, $setup, $data, $options) {
37665
36262
  4
37666
36263
  /* STYLE */
37667
36264
  ),
37668
- !_ctx.hideLine ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
36265
+ !_ctx.hideLine ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3$1, [
37669
36266
  _ctx.direction === "horizontal" ? (vue.openBlock(), vue.createElementBlock(
37670
36267
  "div",
37671
36268
  {
@@ -37769,11 +36366,11 @@ var script$2 = vue.defineComponent({
37769
36366
  return { y: y2, canvas, direction };
37770
36367
  }
37771
36368
  });
37772
- const _hoisted_1$2 = {
36369
+ const _hoisted_1$2$1 = {
37773
36370
  key: 0,
37774
36371
  class: "layer-marker"
37775
36372
  };
37776
- const _hoisted_2$2 = ["x", "y", "fill"];
36373
+ const _hoisted_2$2$1 = ["x", "y", "fill"];
37777
36374
  const _hoisted_3$1 = ["x1", "y1", "x2", "y2", "stroke", "stroke-opacity", "stroke-width", "stroke-dasharray"];
37778
36375
  const _hoisted_4$1 = {
37779
36376
  key: 1,
@@ -37782,13 +36379,13 @@ const _hoisted_4$1 = {
37782
36379
  const _hoisted_5$1 = ["x", "y", "fill"];
37783
36380
  const _hoisted_6$1 = ["x1", "y1", "x2", "y2", "stroke", "stroke-opacity", "stroke-width", "stroke-dasharray"];
37784
36381
  function render$2(_ctx, _cache, $props, $setup, $data, $options) {
37785
- return _ctx.direction === "horizontal" ? (vue.openBlock(), vue.createElementBlock("g", _hoisted_1$2, [
36382
+ return _ctx.direction === "horizontal" ? (vue.openBlock(), vue.createElementBlock("g", _hoisted_1$2$1, [
37786
36383
  vue.createElementVNode("text", {
37787
36384
  x: _ctx.canvas.x + 5,
37788
36385
  y: _ctx.y - 5,
37789
36386
  "text-anchor": "start",
37790
36387
  fill: _ctx.color
37791
- }, vue.toDisplayString(_ctx.label), 9, _hoisted_2$2),
36388
+ }, vue.toDisplayString(_ctx.label), 9, _hoisted_2$2$1),
37792
36389
  vue.createElementVNode("line", {
37793
36390
  x1: _ctx.canvas.x,
37794
36391
  y1: _ctx.y,
@@ -38402,8 +36999,8 @@ const _hoisted_1$1$1 = {
38402
36999
  class: "treemap",
38403
37000
  style: { display: "flex", position: "relative" }
38404
37001
  };
38405
- const _hoisted_2$1 = ["width", "height", "viewBox"];
38406
- const _hoisted_3 = { class: "layer-rectangles" };
37002
+ const _hoisted_2$1$1 = ["width", "height", "viewBox"];
37003
+ const _hoisted_3$7 = { class: "layer-rectangles" };
38407
37004
  const _hoisted_4 = ["transform", "onMouseover"];
38408
37005
  const _hoisted_5 = ["width", "height"];
38409
37006
  const _hoisted_6 = {
@@ -38421,7 +37018,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
38421
37018
  viewBox: `0 0 ${_ctx.size.width} ${_ctx.size.height}`,
38422
37019
  ref: "el"
38423
37020
  }, [
38424
- vue.createElementVNode("g", _hoisted_3, [
37021
+ vue.createElementVNode("g", _hoisted_3$7, [
38425
37022
  (vue.openBlock(true), vue.createElementBlock(
38426
37023
  vue.Fragment,
38427
37024
  null,
@@ -38462,7 +37059,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
38462
37059
  /* KEYED_FRAGMENT */
38463
37060
  ))
38464
37061
  ])
38465
- ], 8, _hoisted_2$1)),
37062
+ ], 8, _hoisted_2$1$1)),
38466
37063
  vue.renderSlot(_ctx.$slots, "widgets")
38467
37064
  ]);
38468
37065
  }
@@ -38530,13 +37127,13 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
38530
37127
  }
38531
37128
  script.render = render;
38532
37129
  script.__file = "src/components/HoverBar/index.vue";
38533
- const _hoisted_1$1 = /* @__PURE__ */ vue.createElementVNode("stop", {
37130
+ const _hoisted_1$5 = /* @__PURE__ */ vue.createElementVNode("stop", {
38534
37131
  offset: "100%",
38535
37132
  "stop-color": "white",
38536
37133
  "stop-opacity": "0.4"
38537
37134
  }, null, -1);
38538
37135
  const BRAND_COLOR = "var(--bgl-primary)";
38539
- const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
37136
+ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
38540
37137
  __name: "Lineart",
38541
37138
  props: {
38542
37139
  data: {},
@@ -38665,7 +37262,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
38665
37262
  "stop-color": BRAND_COLOR,
38666
37263
  "stop-opacity": "1"
38667
37264
  }),
38668
- _hoisted_1$1
37265
+ _hoisted_1$5
38669
37266
  ])
38670
37267
  ])
38671
37268
  ]),
@@ -38681,37 +37278,53 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
38681
37278
  };
38682
37279
  }
38683
37280
  });
38684
- const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
37281
+ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
38685
37282
  __name: "Layout",
38686
37283
  props: {
38687
37284
  gap: { default: 1 },
38688
37285
  h100: { type: Boolean, default: false },
38689
37286
  columns: { default: () => [] },
37287
+ mColumns: { default: () => [] },
37288
+ mRows: { default: () => [] },
38690
37289
  rows: { default: () => [] }
38691
37290
  },
38692
37291
  setup(__props) {
37292
+ vue.useCssVars((_ctx) => ({
37293
+ "7a00a82c": gapSize.value,
37294
+ "30493178": gridTemplateRows.value,
37295
+ "5b203692": gridTemplateColumns.value,
37296
+ "7cba085b": mGridTemplateRows.value,
37297
+ "7abc6a1b": mGridTemplateColumns.value
37298
+ }));
38693
37299
  const props2 = __props;
38694
- const style = vue.computed(() => {
38695
- const obj = { gap: `${props2.gap}rem` };
38696
- if (props2.columns.length)
38697
- obj["grid-template-columns"] = props2.columns.join(" ");
38698
- if (props2.rows.length)
38699
- obj["grid-template-rows"] = props2.rows.join(" ");
38700
- return obj;
37300
+ const gridTemplateRows = vue.computed(() => props2.rows.length ? props2.rows.join(" ") : "auto");
37301
+ const gapSize = vue.computed(() => `${props2.gap}rem`);
37302
+ const mGridTemplateRows = vue.computed(() => {
37303
+ var _a2;
37304
+ if ((_a2 = props2.mRows) == null ? void 0 : _a2.length)
37305
+ return props2.mRows.join(" ");
37306
+ return gridTemplateRows.value;
37307
+ });
37308
+ const gridTemplateColumns = vue.computed(() => props2.columns.length ? props2.columns.join(" ") : "auto");
37309
+ const mGridTemplateColumns = vue.computed(() => {
37310
+ var _a2;
37311
+ if ((_a2 = props2.mColumns) == null ? void 0 : _a2.length)
37312
+ return props2.mColumns.join(" ");
37313
+ return gridTemplateColumns.value;
38701
37314
  });
38702
37315
  return (_ctx, _cache) => {
38703
37316
  return vue.openBlock(), vue.createElementBlock("div", {
38704
- class: vue.normalizeClass(["layout", { "layout-h-100": _ctx.h100 }]),
38705
- style: vue.normalizeStyle(style.value)
37317
+ class: vue.normalizeClass(["layout", { "layout-h-100": _ctx.h100 }])
38706
37318
  }, [
38707
- vue.renderSlot(_ctx.$slots, "default")
38708
- ], 6);
37319
+ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
37320
+ ], 2);
38709
37321
  };
38710
37322
  }
38711
37323
  });
38712
- const _hoisted_1 = { class: "w-100 px-075" };
38713
- const _hoisted_2 = { key: 0 };
38714
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
37324
+ const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-977dfbf4"]]);
37325
+ const _hoisted_1$4 = { class: "w-100 px-075" };
37326
+ const _hoisted_2$2 = { key: 0 };
37327
+ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
38715
37328
  __name: "SidebarMenu",
38716
37329
  props: {
38717
37330
  navLinks: {},
@@ -38729,13 +37342,12 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
38729
37342
  emit2("update:open", isOpen.value);
38730
37343
  }
38731
37344
  return (_ctx, _cache) => {
38732
- const _component_Card = vue.resolveComponent("Card");
38733
37345
  const _directive_tooltip = vue.resolveDirective("tooltip");
38734
- return vue.openBlock(), vue.createBlock(_component_Card, {
37346
+ return vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$t), {
38735
37347
  class: vue.normalizeClass(["flex column gap-05 pt-1 bgl_sidebar", { "wideNav": vue.unref(isOpen) }])
38736
37348
  }, {
38737
37349
  default: vue.withCtx(() => [
38738
- vue.createElementVNode("div", _hoisted_1, [
37350
+ vue.createElementVNode("div", _hoisted_1$4, [
38739
37351
  vue.createVNode(vue.unref(Btn), {
38740
37352
  thin: "",
38741
37353
  color: "light",
@@ -38744,7 +37356,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
38744
37356
  onClick: toggleMenu
38745
37357
  })
38746
37358
  ]),
38747
- vue.createTextVNode(),
38748
37359
  !vue.unref(isOpen) || !vue.unref(slots)["brand-open"] ? vue.renderSlot(_ctx.$slots, "brand", { key: 0 }, void 0, true) : vue.createCommentVNode("", true),
38749
37360
  vue.unref(isOpen) ? vue.renderSlot(_ctx.$slots, "brand-open", { key: 1 }, void 0, true) : vue.createCommentVNode("", true),
38750
37361
  !_ctx.navLinks ? vue.renderSlot(_ctx.$slots, "default", { key: 2 }, void 0, true) : vue.createCommentVNode("", true),
@@ -38755,11 +37366,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
38755
37366
  class: "nav-button px-075"
38756
37367
  }, {
38757
37368
  default: vue.withCtx(() => [
38758
- vue.createVNode(vue.unref(_sfc_main$F), {
37369
+ vue.createVNode(vue.unref(_sfc_main$H), {
38759
37370
  icon: nav2.icon,
38760
37371
  size: 1.4
38761
37372
  }, null, 8, ["icon"]),
38762
- _ctx.open ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_2, vue.toDisplayString(nav2.label), 1)) : vue.createCommentVNode("", true)
37373
+ _ctx.open ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_2$2, vue.toDisplayString(nav2.label), 1)) : vue.createCommentVNode("", true)
38763
37374
  ]),
38764
37375
  _: 2
38765
37376
  }, 1032, ["to"])), [
@@ -38778,52 +37389,220 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
38778
37389
  };
38779
37390
  }
38780
37391
  });
38781
- const SidebarMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8d6bd3d8"]]);
38782
- exports.Accordion = _sfc_main$n;
37392
+ const SidebarMenu = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-8713ae4a"]]);
37393
+ const state = vue.reactive(/* @__PURE__ */ new Map());
37394
+ function useTabs(group) {
37395
+ if (!state.has(group)) {
37396
+ state.set(group, vue.reactive({ currentTab: null }));
37397
+ }
37398
+ const currentTab = vue.computed({
37399
+ get: () => state.get(group).currentTab,
37400
+ set: (val) => {
37401
+ state.get(group).currentTab = val;
37402
+ }
37403
+ });
37404
+ return { currentTab };
37405
+ }
37406
+ const _hoisted_1$3 = { key: 0 };
37407
+ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
37408
+ __name: "Tabs",
37409
+ props: {
37410
+ tabs: {},
37411
+ modelValue: {}
37412
+ },
37413
+ setup(__props) {
37414
+ const group = Math.random().toString(36).substring(7);
37415
+ const { currentTab } = useTabs(group);
37416
+ return (_ctx, _cache) => {
37417
+ return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
37418
+ vue.createVNode(vue.unref(TabsNav), {
37419
+ tabs: _ctx.tabs,
37420
+ group: vue.unref(group)
37421
+ }, null, 8, ["tabs", "group"]),
37422
+ vue.unref(currentTab) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
37423
+ vue.renderSlot(_ctx.$slots, vue.unref(currentTab))
37424
+ ])) : vue.createCommentVNode("", true)
37425
+ ], 64);
37426
+ };
37427
+ }
37428
+ });
37429
+ const _hoisted_1$2 = { class: "tabs grid auto-flow-columns fit-content" };
37430
+ const _hoisted_2$1 = ["onClick"];
37431
+ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
37432
+ __name: "TabsNav",
37433
+ props: {
37434
+ title: {},
37435
+ tabs: {},
37436
+ modelValue: {},
37437
+ sideTabs: { type: Boolean },
37438
+ group: {}
37439
+ },
37440
+ setup(__props) {
37441
+ const props2 = __props;
37442
+ const { currentTab } = useTabs(props2.group);
37443
+ currentTab.value = props2.modelValue || typeof props2.tabs[0] === "string" ? props2.tabs[0] : props2.tabs[0].id;
37444
+ const selectTab = (tab) => {
37445
+ currentTab.value = typeof tab === "string" ? tab : tab.id;
37446
+ };
37447
+ const isActive = (tab) => {
37448
+ if (typeof tab === "string")
37449
+ return currentTab.value === tab;
37450
+ return currentTab.value === tab.id;
37451
+ };
37452
+ const tabLabel = (tab) => {
37453
+ if (typeof tab === "string")
37454
+ return tab;
37455
+ return tab.label;
37456
+ };
37457
+ return (_ctx, _cache) => {
37458
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [
37459
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tabs, (tab, i2) => {
37460
+ return vue.openBlock(), vue.createElementBlock("button", {
37461
+ class: vue.normalizeClass([{ active: isActive(tab) }, "tab"]),
37462
+ onClick: ($event) => selectTab(tab),
37463
+ key: i2
37464
+ }, [
37465
+ typeof tab !== "string" && tab.icon ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$H), {
37466
+ key: 0,
37467
+ icon: tab.icon
37468
+ }, null, 8, ["icon"])) : vue.createCommentVNode("", true),
37469
+ vue.createTextVNode(" " + vue.toDisplayString(tabLabel(tab)), 1)
37470
+ ], 10, _hoisted_2$1);
37471
+ }), 128))
37472
+ ]);
37473
+ };
37474
+ }
37475
+ });
37476
+ const TabsNav = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-f737d297"]]);
37477
+ const _hoisted_1$1 = { key: 0 };
37478
+ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
37479
+ __name: "TabsBody",
37480
+ props: {
37481
+ group: {}
37482
+ },
37483
+ setup(__props) {
37484
+ const props2 = __props;
37485
+ const { currentTab } = useTabs(props2.group);
37486
+ return (_ctx, _cache) => {
37487
+ return vue.unref(currentTab) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
37488
+ vue.renderSlot(_ctx.$slots, vue.unref(currentTab))
37489
+ ])) : vue.createCommentVNode("", true);
37490
+ };
37491
+ }
37492
+ });
37493
+ const _hoisted_1 = { class: "bgl_card tabs-top" };
37494
+ const _hoisted_2 = { class: "tabs grid auto-flow-columns fit-content" };
37495
+ const _hoisted_3 = ["onClick"];
37496
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
37497
+ __name: "TabbedLayout",
37498
+ props: {
37499
+ title: {},
37500
+ tabs: {},
37501
+ modelValue: {},
37502
+ router: {},
37503
+ sideTabs: { type: Boolean }
37504
+ },
37505
+ emits: ["update:modelValue"],
37506
+ setup(__props, { emit: __emit }) {
37507
+ const emit2 = __emit;
37508
+ let activeTab = vue.ref();
37509
+ const props2 = __props;
37510
+ function changeTab(tab) {
37511
+ var _a2;
37512
+ activeTab.value = tab;
37513
+ emit2("update:modelValue", activeTab.value);
37514
+ if (!props2.router)
37515
+ return;
37516
+ void ((_a2 = props2.router) == null ? void 0 : _a2.push({
37517
+ path: props2.router.currentRoute.value.path,
37518
+ query: { ...props2.router.currentRoute.value.query, t: tab },
37519
+ hash: props2.router.currentRoute.value.hash
37520
+ }));
37521
+ }
37522
+ vue.onMounted(() => {
37523
+ var _a2;
37524
+ const firstTab = props2.modelValue || ((_a2 = props2.router) == null ? void 0 : _a2.currentRoute.value.query.t) || props2.tabs[0];
37525
+ activeTab.value = firstTab;
37526
+ });
37527
+ return (_ctx, _cache) => {
37528
+ return vue.openBlock(), vue.createElementBlock("div", {
37529
+ class: vue.normalizeClass(["h-100 grid list-view gap-1", { "side-tabs": _ctx.sideTabs }])
37530
+ }, [
37531
+ vue.createElementVNode("div", _hoisted_1, [
37532
+ vue.renderSlot(_ctx.$slots, "top-section", {}, void 0, true),
37533
+ vue.createElementVNode("div", _hoisted_2, [
37534
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tabs, (tab) => {
37535
+ var _a2;
37536
+ return vue.openBlock(), vue.createElementBlock("div", {
37537
+ class: vue.normalizeClass([{
37538
+ active: tab === vue.unref(activeTab) || tab === ((_a2 = _ctx.router) == null ? void 0 : _a2.currentRoute.value.path.split("/").slice(-1)[0])
37539
+ }, "tab"]),
37540
+ key: tab,
37541
+ onClick: ($event) => changeTab(tab)
37542
+ }, vue.toDisplayString(tab), 11, _hoisted_3);
37543
+ }), 128))
37544
+ ])
37545
+ ]),
37546
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.tabs.filter((item) => item === vue.unref(activeTab)), (tab) => {
37547
+ return vue.openBlock(), vue.createElementBlock("div", {
37548
+ class: "list-content",
37549
+ key: tab
37550
+ }, [
37551
+ vue.renderSlot(_ctx.$slots, tab, { key: tab }, void 0, true)
37552
+ ]);
37553
+ }), 128))
37554
+ ], 2);
37555
+ };
37556
+ }
37557
+ });
37558
+ const TabbedLayout = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-fd61196d"]]);
37559
+ exports.Accordion = _sfc_main$q;
38783
37560
  exports.AccordionItem = AccordionItem;
38784
37561
  exports.Alert = Alert;
38785
37562
  exports.Avatar = Avatar;
38786
37563
  exports.Badge = Badge;
38787
- exports.BagelForm = _sfc_main$h;
37564
+ exports.BagelForm = _sfc_main$l;
38788
37565
  exports.BagelVue = BagelVue;
38789
- exports.BglField = _sfc_main$g;
38790
- exports.BglForm = _sfc_main$h;
37566
+ exports.BglField = _sfc_main$k;
37567
+ exports.BglForm = _sfc_main$l;
38791
37568
  exports.BglVideo = BglVideo;
38792
37569
  exports.Btn = Btn;
38793
- exports.Card = _sfc_main$q;
37570
+ exports.Card = _sfc_main$t;
38794
37571
  exports.Carousel = Carousel;
38795
37572
  exports.CheckInput = CheckInput;
38796
37573
  exports.Checkbox = Checkbox;
38797
- exports.ColorPicker = _sfc_main$7;
38798
- exports.ComboBox = ComboBox;
37574
+ exports.ColorPicker = _sfc_main$b;
38799
37575
  exports.Comments = Comments;
38800
37576
  exports.DataPreview = DataPreview;
38801
- exports.DateInput = _sfc_main$e;
38802
- exports.DatePicker = _sfc_main$6;
37577
+ exports.DateInput = _sfc_main$i;
37578
+ exports.DatePicker = _sfc_main$a;
38803
37579
  exports.FileUpload = FileUpload;
38804
- exports.Icon = _sfc_main$F;
37580
+ exports.Icon = _sfc_main$H;
38805
37581
  exports.JSONInput = JSONInput;
38806
- exports.Layout = _sfc_main$1;
38807
- exports.Lineart = _sfc_main$2;
38808
- exports.ListItem = _sfc_main$y;
38809
- exports.ListView = _sfc_main$z;
38810
- exports.MaterialIcon = _sfc_main$F;
38811
- exports.Modal = _sfc_main$C;
37582
+ exports.Layout = Layout;
37583
+ exports.Lineart = _sfc_main$6;
37584
+ exports.ListItem = _sfc_main$A;
37585
+ exports.ListView = _sfc_main$B;
37586
+ exports.MaterialIcon = _sfc_main$H;
37587
+ exports.Modal = _sfc_main$E;
38812
37588
  exports.ModalForm = ModalForm;
38813
37589
  exports.ModalPlugin = ModalPlugin;
38814
37590
  exports.NavBar = NavBar;
38815
- exports.PageTitle = _sfc_main$v;
38816
- exports.RTXEditor = _sfc_main$G;
37591
+ exports.PageTitle = _sfc_main$y;
37592
+ exports.RTXEditor = _sfc_main$I;
38817
37593
  exports.RadioPillsInput = RadioPillsInput;
38818
37594
  exports.RichTextEditor = RichTextEditor;
38819
37595
  exports.RouterWrapper = RouterWrapper;
38820
- exports.SelectInput = _sfc_main$c;
37596
+ exports.SelectInput = SelectInput;
38821
37597
  exports.SidebarMenu = SidebarMenu;
38822
37598
  exports.TabbedLayout = TabbedLayout;
38823
37599
  exports.TableField = TableField;
38824
37600
  exports.TableSchema = TableSchema;
37601
+ exports.Tabs = _sfc_main$3;
37602
+ exports.TabsBody = _sfc_main$1;
37603
+ exports.TabsNav = TabsNav;
38825
37604
  exports.TextInput = TextInput;
38826
- exports.Title = _sfc_main$o;
37605
+ exports.Title = _sfc_main$r;
38827
37606
  exports.ToggleInput = ToggleInput;
38828
37607
  exports.TopBar = TopBar;
38829
37608
  exports.bagelFormUtils = BagelFormUtils;