@bagelink/vue 1.0.52 → 1.0.57

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 (75) hide show
  1. package/dist/components/MapEmbed/Index.vue.d.ts +30 -0
  2. package/dist/components/MapEmbed/Index.vue.d.ts.map +1 -0
  3. package/dist/components/Modal.vue.d.ts.map +1 -1
  4. package/dist/components/Spreadsheet/Index.vue.d.ts +2 -0
  5. package/dist/components/Spreadsheet/Index.vue.d.ts.map +1 -1
  6. package/dist/components/dashboard/Lineart.vue.d.ts.map +1 -1
  7. package/dist/components/dashboard/index.d.ts.map +1 -1
  8. package/dist/components/form/BagelForm.vue.d.ts +3 -1
  9. package/dist/components/form/BagelForm.vue.d.ts.map +1 -1
  10. package/dist/components/form/inputs/DateInput.vue.d.ts.map +1 -1
  11. package/dist/components/form/inputs/NumberInput.vue.d.ts.map +1 -1
  12. package/dist/components/form/inputs/PasswordInput.vue.d.ts +1 -0
  13. package/dist/components/form/inputs/PasswordInput.vue.d.ts.map +1 -1
  14. package/dist/components/form/inputs/PhoneInput.vue.d.ts +2 -0
  15. package/dist/components/form/inputs/PhoneInput.vue.d.ts.map +1 -1
  16. package/dist/components/form/inputs/SelectInput.vue.d.ts +4 -0
  17. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  18. package/dist/components/form/inputs/TextInput.vue.d.ts +1 -0
  19. package/dist/components/form/inputs/TextInput.vue.d.ts.map +1 -1
  20. package/dist/components/index.d.ts +3 -3
  21. package/dist/components/index.d.ts.map +1 -1
  22. package/dist/components/layout/BottomMenu.vue.d.ts.map +1 -1
  23. package/dist/components/layout/Layout.vue.d.ts.map +1 -1
  24. package/dist/components/layout/SidebarMenu.vue.d.ts.map +1 -1
  25. package/dist/components/layout/Skeleton.vue.d.ts.map +1 -1
  26. package/dist/components/layout/TabbedLayout.vue.d.ts.map +1 -1
  27. package/dist/components/layout/Tabs.vue.d.ts.map +1 -1
  28. package/dist/components/layout/TabsBody.vue.d.ts.map +1 -1
  29. package/dist/components/layout/TabsNav.vue.d.ts.map +1 -1
  30. package/dist/components/layout/index.d.ts.map +1 -1
  31. package/dist/components/layout/tabsManager.d.ts.map +1 -1
  32. package/dist/components/lightbox/Lightbox.vue.d.ts.map +1 -1
  33. package/dist/components/lightbox/index.d.ts.map +1 -1
  34. package/dist/components/lightbox/lightbox.types.d.ts.map +1 -1
  35. package/dist/composables/useSchemaField.d.ts.map +1 -1
  36. package/dist/index.cjs +125 -51
  37. package/dist/index.mjs +125 -51
  38. package/dist/plugins/bagel.d.ts.map +1 -1
  39. package/dist/style.css +852 -571
  40. package/dist/utils/BagelFormUtils.d.ts +6 -1
  41. package/dist/utils/BagelFormUtils.d.ts.map +1 -1
  42. package/dist/utils/timeAgo.d.ts.map +1 -1
  43. package/package.json +1 -1
  44. package/src/components/{MapEmbed.vue → MapEmbed/Index.vue} +1 -1
  45. package/src/components/Modal.vue +1 -0
  46. package/src/components/form/BagelForm.vue +23 -7
  47. package/src/components/form/FieldArray.vue +2 -2
  48. package/src/components/form/inputs/DateInput.vue +47 -7
  49. package/src/components/form/inputs/NumberInput.vue +2 -2
  50. package/src/components/form/inputs/PasswordInput.vue +2 -0
  51. package/src/components/form/inputs/TextInput.vue +4 -1
  52. package/src/components/index.ts +3 -3
  53. package/src/composables/useSchemaField.ts +34 -1
  54. package/src/plugins/bagel.ts +1 -2
  55. package/src/styles/text.css +911 -560
  56. package/src/utils/BagelFormUtils.ts +10 -1
  57. package/src/utils/timeAgo.ts +9 -17
  58. package/tsconfig.json +2 -1
  59. package/src/components/DataTable/tableTypes.d.ts +0 -0
  60. /package/src/components/{dashboard → Dashboard}/Lineart.vue +0 -0
  61. /package/src/components/{dashboard → Dashboard}/index.ts +0 -0
  62. /package/src/components/{layout → Layout}/BottomMenu.vue +0 -0
  63. /package/src/components/{layout → Layout}/Layout.vue +0 -0
  64. /package/src/components/{layout → Layout}/SidebarMenu.vue +0 -0
  65. /package/src/components/{layout → Layout}/Skeleton.vue +0 -0
  66. /package/src/components/{layout → Layout}/TabbedLayout.vue +0 -0
  67. /package/src/components/{layout → Layout}/Tabs.vue +0 -0
  68. /package/src/components/{layout → Layout}/TabsBody.vue +0 -0
  69. /package/src/components/{layout → Layout}/TabsNav.vue +0 -0
  70. /package/src/components/{layout → Layout}/index.ts +0 -0
  71. /package/src/components/{layout → Layout}/tabsManager.ts +0 -0
  72. /package/src/components/{lightbox → Lightbox}/Lightbox.vue +0 -0
  73. /package/src/components/{lightbox → Lightbox}/index.ts +0 -0
  74. /package/src/components/{lightbox → Lightbox}/lightbox.types.ts +0 -0
  75. /package/src/components/{leaflet → MapEmbed}/leaflet.css +0 -0
package/dist/index.cjs CHANGED
@@ -10532,6 +10532,24 @@ const SLOT_VALUE_COMPONENTS$1 = /* @__PURE__ */ new Set(["div", "span", "p"]);
10532
10532
  const SRC_VALUE_COMPONENTS$1 = /* @__PURE__ */ new Set(["img", "iframe"]);
10533
10533
  function useSchemaField(optns) {
10534
10534
  const { mode = "form", getRowData, onUpdate, includeUnset = false } = optns;
10535
+ function renderObject(obj, depth = 0) {
10536
+ if (obj === null || obj === void 0) return "";
10537
+ if (typeof obj !== "object") return String(obj);
10538
+ if (Array.isArray(obj)) return obj.map((item) => renderObject(item, depth + 1)).join(", ");
10539
+ const indent = depth > 0 ? " ".repeat(depth) : "";
10540
+ const nextIndent = " ".repeat(depth + 1);
10541
+ const entries = Object.entries(obj);
10542
+ if (entries.length === 0) return "{}";
10543
+ if (depth > 0) {
10544
+ return `{
10545
+ ${entries.map(([key, value]) => `${nextIndent}${key}: ${renderObject(value, depth + 1)}`).join(",\n")}
10546
+ ${indent}}`;
10547
+ }
10548
+ return entries.map(([key, value]) => {
10549
+ const valueStr = typeof value === "object" && value !== null ? renderObject(value, depth + 1) : String(value);
10550
+ return `${key}: ${valueStr}`;
10551
+ }).join("\n");
10552
+ }
10535
10553
  function getComponent(field) {
10536
10554
  var _a;
10537
10555
  const componentMap = {
@@ -10671,7 +10689,7 @@ function useSchemaField(optns) {
10671
10689
  return vue.h("div", { class: "preview-field" }, [
10672
10690
  vue.h("div", { class: "field-label" }, `${field.label || keyToLabel(field.id || "")}:`),
10673
10691
  vue.h("div", { class: "field-value" }, [
10674
- slotContent || (typeof field.$el === "object" ? vue.h(Component, props2, componentSlots) : (transformedValue == null ? void 0 : transformedValue.toString()) || "")
10692
+ slotContent || (typeof field.$el === "object" ? vue.h(Component, props2, componentSlots) : typeof transformedValue === "object" && transformedValue !== null ? vue.h("pre", { style: "margin: 0; white-space: pre-wrap; font-family: inherit; font-size: inherit;" }, renderObject(transformedValue)) : (transformedValue == null ? void 0 : transformedValue.toString()) || "")
10675
10693
  ])
10676
10694
  ]);
10677
10695
  }
@@ -15054,7 +15072,11 @@ function dateField(id, label, options) {
15054
15072
  vIf: options == null ? void 0 : options.vIf,
15055
15073
  attrs: {
15056
15074
  disabled: options == null ? void 0 : options.disabled,
15057
- autocomplete: options == null ? void 0 : options.autocomplete
15075
+ autocomplete: options == null ? void 0 : options.autocomplete,
15076
+ enableTime: options == null ? void 0 : options.enableTime,
15077
+ mode: options == null ? void 0 : options.mode,
15078
+ locale: options == null ? void 0 : options.locale,
15079
+ timezone: options == null ? void 0 : options.timezone
15058
15080
  }
15059
15081
  };
15060
15082
  }
@@ -15472,9 +15494,16 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
15472
15494
  formData.value = newData;
15473
15495
  emit2("update:modelValue", formData.value);
15474
15496
  }
15497
+ const validateForm = () => {
15498
+ var _a;
15499
+ return ((_a = form.value) == null ? void 0 : _a.reportValidity()) ?? false;
15500
+ };
15501
+ let formError = vue.ref();
15475
15502
  async function handleSubmit() {
15476
15503
  var _a;
15477
15504
  try {
15505
+ const valid = validateForm();
15506
+ if (!valid) return;
15478
15507
  if (formState.value === "submitting") return;
15479
15508
  formState.value = "submitting";
15480
15509
  await ((_a = props2.onSubmit) == null ? void 0 : _a.call(props2, formData.value));
@@ -15482,14 +15511,11 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
15482
15511
  formState.value = "success";
15483
15512
  window.parent.postMessage({ type: "BAGEL_FORM_SUCCESS", data: JSON.stringify(formData.value) }, "*");
15484
15513
  } catch (error) {
15485
- console.error("Submit error:", error);
15486
15514
  formState.value = "error";
15515
+ formError.value = error;
15516
+ console.error("Submit error:", formError.value);
15487
15517
  }
15488
15518
  }
15489
- const validateForm = () => {
15490
- var _a;
15491
- return ((_a = form.value) == null ? void 0 : _a.reportValidity()) ?? false;
15492
- };
15493
15519
  const { renderField } = useSchemaField({
15494
15520
  mode: "form",
15495
15521
  getRowData: () => ({
@@ -15505,6 +15531,13 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
15505
15531
  }
15506
15532
  });
15507
15533
  const renderSchemaField = (field) => renderField(field);
15534
+ function handleSlotInputChange(event) {
15535
+ const input = event.target;
15536
+ if (input.name) {
15537
+ const value = input.type === "checkbox" ? input.checked : input.value;
15538
+ updateFormData(input.name, value);
15539
+ }
15540
+ }
15508
15541
  __expose({ form, isDirty, validateForm, resolveSchema, refreshSchema });
15509
15542
  return (_ctx, _cache) => {
15510
15543
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
@@ -15514,7 +15547,8 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
15514
15547
  ref_key: "form",
15515
15548
  ref: form,
15516
15549
  class: vue.normalizeClass(props2.class),
15517
- onSubmit: vue.withModifiers(handleSubmit, ["prevent"])
15550
+ onSubmit: vue.withModifiers(handleSubmit, ["prevent"]),
15551
+ onInput: handleSlotInputChange
15518
15552
  }, [
15519
15553
  schemaState.value === "loading" ? vue.renderSlot(_ctx.$slots, "loading", { key: 0 }, () => [
15520
15554
  vue.createElementVNode("div", _hoisted_1$M, [
@@ -15548,7 +15582,10 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
15548
15582
  ], 64))
15549
15583
  ], 64)) : vue.createCommentVNode("", true),
15550
15584
  formState.value === "success" ? vue.renderSlot(_ctx.$slots, "success", { key: 1 }) : vue.createCommentVNode("", true),
15551
- formState.value === "error" ? vue.renderSlot(_ctx.$slots, "error", { key: 2 }) : vue.createCommentVNode("", true)
15585
+ formState.value === "error" ? vue.renderSlot(_ctx.$slots, "error", {
15586
+ key: 2,
15587
+ error: vue.unref(formError)
15588
+ }) : vue.createCommentVNode("", true)
15552
15589
  ], 64);
15553
15590
  };
15554
15591
  }
@@ -15674,7 +15711,7 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
15674
15711
  () => isPrimitiveType.value || props2.type === "object" && resolvedSchemaData.value.length > 0
15675
15712
  );
15676
15713
  const showMinimizeButton = vue.computed(() => {
15677
- return resolvedSchemaData.value.length > 3 || resolvedSchemaData.value.some((schema) => schema.$el === "richtext");
15714
+ return resolvedSchemaData.value.length > 2 || resolvedSchemaData.value.some((schema) => schema.$el === "richtext");
15678
15715
  });
15679
15716
  return (_ctx, _cache) => {
15680
15717
  const _component_Icon = vue.resolveComponent("Icon");
@@ -15730,7 +15767,7 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
15730
15767
  thin: "",
15731
15768
  icon: "add",
15732
15769
  color: "gray",
15733
- class: "txt12",
15770
+ class: "txt12 arrayAddButton",
15734
15771
  onClick: addItem
15735
15772
  }, {
15736
15773
  default: vue.withCtx(() => [
@@ -16042,7 +16079,7 @@ const _hoisted_12$4 = {
16042
16079
  const _hoisted_13$3 = ["disabled", "onClick"];
16043
16080
  const _hoisted_14$3 = {
16044
16081
  key: 0,
16045
- class: "time-picker border-start flex column gap-1 w-120px"
16082
+ class: "time-picker border-start flex column gap-1 w-120px px-025"
16046
16083
  };
16047
16084
  const _hoisted_15$3 = { class: "flex gap-025" };
16048
16085
  const _hoisted_16$3 = { class: "txt-center opacity-6 txt14" };
@@ -16057,7 +16094,13 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
16057
16094
  modelValue: {},
16058
16095
  min: {},
16059
16096
  max: {},
16060
- timezone: { default: "UTC" },
16097
+ timezone: { default: () => {
16098
+ try {
16099
+ return Intl.DateTimeFormat().resolvedOptions().timeZone;
16100
+ } catch {
16101
+ return "UTC";
16102
+ }
16103
+ } },
16061
16104
  mode: { default: "day" },
16062
16105
  defaultValue: {},
16063
16106
  firstDayOfWeek: { default: WEEK_START_DAY.SUNDAY },
@@ -16280,6 +16323,16 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
16280
16323
  const date2 = parseUserInput(input.value);
16281
16324
  if (date2) {
16282
16325
  if (props2.enableTime) {
16326
+ try {
16327
+ const targetDate = new Date(date2.toLocaleString("en-US", { timeZone: props2.timezone }));
16328
+ const tzOffset = targetDate.getTime() - date2.getTime();
16329
+ date2.setTime(date2.getTime() - tzOffset);
16330
+ } catch {
16331
+ if (props2.timezone === "UTC") {
16332
+ const tzOffset = (/* @__PURE__ */ new Date()).getTimezoneOffset();
16333
+ date2.setMinutes(date2.getMinutes() + tzOffset);
16334
+ }
16335
+ }
16283
16336
  emit2("update:modelValue", date2.toISOString());
16284
16337
  } else {
16285
16338
  const utcDate = new Date(Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate()));
@@ -16303,6 +16356,16 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
16303
16356
  const date2 = parseUserInput(inputValue.value);
16304
16357
  if (date2) {
16305
16358
  if (props2.enableTime) {
16359
+ try {
16360
+ const targetDate = new Date(date2.toLocaleString("en-US", { timeZone: props2.timezone }));
16361
+ const tzOffset = targetDate.getTime() - date2.getTime();
16362
+ date2.setTime(date2.getTime() - tzOffset);
16363
+ } catch {
16364
+ if (props2.timezone === "UTC") {
16365
+ const tzOffset = (/* @__PURE__ */ new Date()).getTimezoneOffset();
16366
+ date2.setMinutes(date2.getMinutes() + tzOffset);
16367
+ }
16368
+ }
16306
16369
  emit2("update:modelValue", date2.toISOString());
16307
16370
  } else {
16308
16371
  const utcDate = new Date(Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate()));
@@ -16339,9 +16402,15 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
16339
16402
  const currentMinutes = ((_b = selectedDate.value) == null ? void 0 : _b.getMinutes()) ?? (/* @__PURE__ */ new Date()).getMinutes();
16340
16403
  newDate.setHours(currentHours);
16341
16404
  newDate.setMinutes(currentMinutes);
16342
- if (props2.timezone === "UTC") {
16343
- const tzOffset = (/* @__PURE__ */ new Date()).getTimezoneOffset();
16344
- newDate.setMinutes(newDate.getMinutes() + tzOffset);
16405
+ try {
16406
+ const targetDate = new Date(newDate.toLocaleString("en-US", { timeZone: props2.timezone }));
16407
+ const tzOffset = targetDate.getTime() - newDate.getTime();
16408
+ newDate.setTime(newDate.getTime() - tzOffset);
16409
+ } catch {
16410
+ if (props2.timezone === "UTC") {
16411
+ const tzOffset = (/* @__PURE__ */ new Date()).getTimezoneOffset();
16412
+ newDate.setMinutes(newDate.getMinutes() + tzOffset);
16413
+ }
16345
16414
  }
16346
16415
  emit2("update:modelValue", newDate.toISOString());
16347
16416
  } else {
@@ -16558,7 +16627,7 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
16558
16627
  };
16559
16628
  }
16560
16629
  });
16561
- const DateInput = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-ca4c1d9b"]]);
16630
+ const DateInput = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-80df1413"]]);
16562
16631
  const _hoisted_1$F = ["title"];
16563
16632
  const _hoisted_2$t = { key: 0 };
16564
16633
  const _hoisted_3$o = {
@@ -17506,7 +17575,10 @@ const _hoisted_2$p = {
17506
17575
  class: "block"
17507
17576
  };
17508
17577
  const _hoisted_3$k = ["id", "placeholder", "disabled", "required", "readonly", "pattern", "onKeydown"];
17509
- const _hoisted_4$d = { key: 1 };
17578
+ const _hoisted_4$d = {
17579
+ key: 1,
17580
+ class: "opacity-7 light"
17581
+ };
17510
17582
  const _hoisted_5$d = {
17511
17583
  key: 5,
17512
17584
  class: "flex column spinner"
@@ -17556,7 +17628,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
17556
17628
  const precision = ((_a = __props.step.toString().split(".")[1]) == null ? void 0 : _a.length) || 0;
17557
17629
  return Number.parseFloat(numArr.reduce((acc, curr) => acc - curr, firstNum).toFixed(precision));
17558
17630
  }
17559
- const canAdd = vue.computed(() => !(__props.max !== void 0 && add(numberValue.value, __props.step) <= __props.max));
17631
+ const canAdd = vue.computed(() => __props.max === void 0 || add(numberValue.value, __props.step) <= __props.max);
17560
17632
  const canDecrement = vue.computed(() => __props.min === void 0 || subtract(numberValue.value, __props.step) >= __props.min);
17561
17633
  function increment() {
17562
17634
  if (!canAdd.value) return;
@@ -17709,7 +17781,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
17709
17781
  };
17710
17782
  }
17711
17783
  });
17712
- const NumberInput = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__scopeId", "data-v-af266bf2"]]);
17784
+ const NumberInput = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__scopeId", "data-v-b3711c9e"]]);
17713
17785
  const _hoisted_1$A = ["value", "autofocus", "onKeydown", "onPaste"];
17714
17786
  const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
17715
17787
  __name: "OTP",
@@ -17831,6 +17903,7 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
17831
17903
  pattern: {},
17832
17904
  shrink: { type: Boolean },
17833
17905
  disabled: { type: Boolean },
17906
+ name: {},
17834
17907
  nativeInputAttrs: {},
17835
17908
  icon: {},
17836
17909
  iconStart: {},
@@ -17862,8 +17935,9 @@ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
17862
17935
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => password.value = $event)
17863
17936
  }, props2, {
17864
17937
  type: inputType.value,
17865
- class: "mb-0"
17866
- }), null, 16, ["modelValue", "type"]),
17938
+ class: "mb-0",
17939
+ name: props2.name
17940
+ }), null, 16, ["modelValue", "type", "name"]),
17867
17941
  vue.createElementVNode("div", _hoisted_2$o, [
17868
17942
  vue.createVNode(vue.unref(Btn), {
17869
17943
  flat: "",
@@ -28365,15 +28439,19 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
28365
28439
  const TableField = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-e9632f79"]]);
28366
28440
  const _hoisted_1$o = ["title"];
28367
28441
  const _hoisted_2$e = ["for"];
28368
- const _hoisted_3$b = ["id", "title", "autocomplete", "type", "placeholder", "disabled", "required", "pattern"];
28369
- const _hoisted_4$6 = ["id", "title", "type", "rows", "placeholder", "disabled", "required", "pattern"];
28370
- const _hoisted_5$6 = { key: 2 };
28442
+ const _hoisted_3$b = ["id", "name", "title", "autocomplete", "type", "placeholder", "disabled", "required", "pattern"];
28443
+ const _hoisted_4$6 = ["id", "name", "title", "type", "rows", "placeholder", "disabled", "required", "pattern"];
28444
+ const _hoisted_5$6 = {
28445
+ key: 2,
28446
+ class: "opacity-7 light"
28447
+ };
28371
28448
  const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
28372
28449
  __name: "TextInput",
28373
28450
  props: {
28374
28451
  id: {},
28375
28452
  title: {},
28376
28453
  helptext: {},
28454
+ name: {},
28377
28455
  placeholder: {},
28378
28456
  modelValue: { default: "" },
28379
28457
  label: {},
@@ -28457,6 +28535,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
28457
28535
  ref_key: "input",
28458
28536
  ref: input,
28459
28537
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(inputVal) ? inputVal.value = $event : inputVal = $event),
28538
+ name: _ctx.name,
28460
28539
  title: _ctx.title,
28461
28540
  autocomplete: _ctx.autocomplete,
28462
28541
  type: _ctx.type,
@@ -28484,6 +28563,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
28484
28563
  ref_key: "input",
28485
28564
  ref: input,
28486
28565
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.isRef(inputVal) ? inputVal.value = $event : inputVal = $event),
28566
+ name: _ctx.name,
28487
28567
  title: _ctx.title,
28488
28568
  type: _ctx.type,
28489
28569
  rows: inputRows.value,
@@ -28513,7 +28593,7 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
28513
28593
  };
28514
28594
  }
28515
28595
  });
28516
- const TextInput = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-99e3ea36"]]);
28596
+ const TextInput = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-dbcf2010"]]);
28517
28597
  const _hoisted_1$n = ["title"];
28518
28598
  const _hoisted_2$d = ["id", "required"];
28519
28599
  const _hoisted_3$a = ["for"];
@@ -33652,7 +33732,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
33652
33732
  };
33653
33733
  }
33654
33734
  });
33655
- const BottomMenu = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-2227f9cc"]]);
33735
+ const BottomMenu = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-864b768d"]]);
33656
33736
  const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
33657
33737
  __name: "Layout",
33658
33738
  props: {
@@ -33665,11 +33745,11 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
33665
33745
  },
33666
33746
  setup(__props) {
33667
33747
  vue.useCssVars((_ctx) => ({
33668
- "16111f2e": gapSize.value,
33669
- "2c189afc": gridTemplateRows.value,
33670
- "243c3a94": gridTemplateColumns.value,
33671
- "84a9b646": mGridTemplateRows.value,
33672
- "55be334e": mGridTemplateColumns.value
33748
+ "39f67c85": gapSize.value,
33749
+ "0abc670b": gridTemplateRows.value,
33750
+ "40854d6b": gridTemplateColumns.value,
33751
+ "940dfd18": mGridTemplateRows.value,
33752
+ "41fa2e62": mGridTemplateColumns.value
33673
33753
  }));
33674
33754
  const props2 = __props;
33675
33755
  const gridTemplateRows = vue.computed(() => props2.rows.length > 0 ? props2.rows.join(" ") : "auto");
@@ -33694,7 +33774,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
33694
33774
  };
33695
33775
  }
33696
33776
  });
33697
- const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-1814129a"]]);
33777
+ const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-d3589d43"]]);
33698
33778
  const _hoisted_1$i = { key: 0 };
33699
33779
  const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
33700
33780
  __name: "SidebarMenu",
@@ -33770,7 +33850,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
33770
33850
  };
33771
33851
  }
33772
33852
  });
33773
- const SidebarMenu = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-951fdacc"]]);
33853
+ const SidebarMenu = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-4b730e73"]]);
33774
33854
  const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
33775
33855
  __name: "Skeleton",
33776
33856
  props: {
@@ -33802,7 +33882,7 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
33802
33882
  };
33803
33883
  }
33804
33884
  });
33805
- const Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-8788ed73"]]);
33885
+ const Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-7bce7e33"]]);
33806
33886
  const _hoisted_1$h = { class: "bgl_card tabs-top" };
33807
33887
  const _hoisted_2$a = { class: "tabs grid auto-flow-columns fit-content" };
33808
33888
  const _hoisted_3$7 = ["onClick"];
@@ -33866,7 +33946,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
33866
33946
  };
33867
33947
  }
33868
33948
  });
33869
- const TabbedLayout = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-915732c1"]]);
33949
+ const TabbedLayout = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-138a7441"]]);
33870
33950
  const state = vue.reactive(/* @__PURE__ */ new Map());
33871
33951
  function useTabs(group) {
33872
33952
  if (!state.has(group)) {
@@ -34043,7 +34123,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
34043
34123
  };
34044
34124
  }
34045
34125
  });
34046
- const TabsNav = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-6ece2018"]]);
34126
+ const TabsNav = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-2e964f00"]]);
34047
34127
  const _hoisted_1$e = { class: "no-margin ellipsis line-height-14 pb-025" };
34048
34128
  const _hoisted_2$9 = { class: "txt12 no-margin txt-gray ellipsis" };
34049
34129
  const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
@@ -34180,7 +34260,7 @@ const _hoisted_1$b = ["id"];
34180
34260
  const defaultMarkerSVG = '<svg width="28" height="38" viewBox="0 0 28 38" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.2263 37.7955C17.0897 37.7955 19.4109 37.0138 19.4109 36.0496C19.4109 35.0854 17.0897 34.3037 14.2263 34.3037C11.363 34.3037 9.04175 35.0854 9.04175 36.0496C9.04175 37.0138 11.363 37.7955 14.2263 37.7955Z" fill="black" fill-opacity="0.1"/><path d="M14.2265 0.549591C21.2842 0.549591 27.0131 6.23786 27.0787 13.28V13.4024C27.0787 19.3328 24.4759 24.4306 21.5627 28.2764C18.6511 32.12 15.4577 34.6754 14.3457 35.5097C14.2748 35.5629 14.1778 35.5629 14.1068 35.5097C12.9947 34.675 9.80135 32.1197 6.88984 28.2762C3.97665 24.4304 1.37378 19.3328 1.37378 13.4024C1.37378 6.30387 7.12806 0.549591 14.2265 0.549591Z" fill="#ED1b3E" stroke="#ED6C6F"/><path d="M14.2263 21.6185C18.7639 21.6185 22.4424 17.94 22.4424 13.4024C22.4424 8.86477 18.7639 5.18631 14.2263 5.18631C9.68872 5.18631 6.01025 8.86477 6.01025 13.4024C6.01025 17.94 9.68872 21.6185 14.2263 21.6185Z" fill="white"/></svg>';
34181
34261
  const leafletScriptUrl = "https://unpkg.com/leaflet@1.9.4/dist/leaflet.js";
34182
34262
  const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
34183
- __name: "MapEmbed",
34263
+ __name: "Index",
34184
34264
  props: {
34185
34265
  center: { default: () => [31.7683, 35.2137] },
34186
34266
  zoom: { default: 15 },
@@ -34373,6 +34453,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
34373
34453
  class: "position-start",
34374
34454
  icon: "close",
34375
34455
  thin: "",
34456
+ round: "",
34376
34457
  color: "white",
34377
34458
  onClick: closeModal
34378
34459
  })
@@ -36737,7 +36818,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
36737
36818
  };
36738
36819
  }
36739
36820
  });
36740
- const Lightbox$1 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-977a5319"]]);
36821
+ const Lightbox$1 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c7371018"]]);
36741
36822
  const groups = {};
36742
36823
  let clickHandler = (_e2) => void 0;
36743
36824
  const lightboxDirective = {
@@ -37534,7 +37615,6 @@ function getBrowserNavigatorLocale() {
37534
37615
  return navigator.languages && navigator.languages.length ? navigator.languages[0] : navigator.language;
37535
37616
  }
37536
37617
  function formatDate(date2, format2 = "dd.mm.yy", locale2) {
37537
- var _a;
37538
37618
  if (!date2) return "";
37539
37619
  locale2 = locale2 || getBrowserNavigatorLocale();
37540
37620
  try {
@@ -37543,8 +37623,6 @@ function formatDate(date2, format2 = "dd.mm.yy", locale2) {
37543
37623
  console.warn("Invalid date provided to formatDate:", date2);
37544
37624
  return "";
37545
37625
  }
37546
- const separator = ((_a = format2.match(/[^\w\s]/)) == null ? void 0 : _a[0]) || ".";
37547
- const formatParts = format2.split(/[^\w\s]/);
37548
37626
  const datePartsMap = {
37549
37627
  dd: String(d2.getDate()).padStart(2, "0"),
37550
37628
  ddd: d2.toLocaleString(locale2, { weekday: "short" }),
@@ -37586,15 +37664,11 @@ function formatDate(date2, format2 = "dd.mm.yy", locale2) {
37586
37664
  if (partsMap.dayPeriod) {
37587
37665
  datePartsMap.ampm = partsMap.dayPeriod;
37588
37666
  }
37589
- let formattedDate = "";
37590
- for (let i2 = 0; i2 < formatParts.length; i2++) {
37591
- const part = formatParts[i2];
37592
- if (datePartsMap[part]) {
37593
- formattedDate += datePartsMap[part];
37594
- }
37595
- if (i2 < formatParts.length - 1) {
37596
- formattedDate += separator;
37597
- }
37667
+ let formattedDate = format2;
37668
+ const tokens = Object.keys(datePartsMap).sort((a2, b2) => b2.length - a2.length);
37669
+ for (const token of tokens) {
37670
+ const regex2 = new RegExp(token, "g");
37671
+ formattedDate = formattedDate.replace(regex2, datePartsMap[token]);
37598
37672
  }
37599
37673
  return formattedDate;
37600
37674
  } catch (error) {