@bagelink/vue 1.2.115 → 1.2.121

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.
package/dist/index.cjs CHANGED
@@ -14190,6 +14190,59 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
14190
14190
  }
14191
14191
  });
14192
14192
  const CheckInput = /* @__PURE__ */ _export_sfc(_sfc_main$T, [["__scopeId", "data-v-722373de"]]);
14193
+ function useHighlight() {
14194
+ const hljs = vue.ref(null);
14195
+ const loaded = vue.ref(false);
14196
+ const loadHighlight = async () => {
14197
+ if (loaded.value) return;
14198
+ try {
14199
+ await appendScript("https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.0/highlight.min.js", { id: "hljs-cdn" });
14200
+ await appendStyle("https://cdn.jsdelivr.net/npm/highlight.js/styles/atom-one-dark.min.css");
14201
+ if (window.hljs) {
14202
+ hljs.value = window.hljs;
14203
+ loaded.value = true;
14204
+ } else {
14205
+ console.error("Failed to load highlight.js");
14206
+ }
14207
+ } catch (error) {
14208
+ console.error("Error loading highlight.js:", error);
14209
+ }
14210
+ };
14211
+ const escapeHtml = (unsafe) => {
14212
+ return unsafe.replace(/[&<>"']/g, (m2) => {
14213
+ const replacements = {
14214
+ "&": "&amp;",
14215
+ "<": "&lt;",
14216
+ ">": "&gt;",
14217
+ '"': "&quot;",
14218
+ "'": "&#039;"
14219
+ };
14220
+ return replacements[m2] || "";
14221
+ });
14222
+ };
14223
+ const highlightCode = (code, language, autodetect = true, ignoreIllegals = true) => {
14224
+ if (!hljs.value) return escapeHtml(code);
14225
+ try {
14226
+ const lang = language || "";
14227
+ if (lang && !autodetect && !hljs.value.getLanguage(lang)) {
14228
+ console.warn(`The language "${lang}" is not available.`);
14229
+ return escapeHtml(code);
14230
+ }
14231
+ const result2 = autodetect ? hljs.value.highlightAuto(code) : hljs.value.highlight(code, { language: lang, ignoreIllegals });
14232
+ return result2.value || escapeHtml(code);
14233
+ } catch (error) {
14234
+ console.error("Highlighting error:", error);
14235
+ return escapeHtml(code);
14236
+ }
14237
+ };
14238
+ return {
14239
+ hljs,
14240
+ loaded,
14241
+ loadHighlight,
14242
+ escapeHtml,
14243
+ highlightCode
14244
+ };
14245
+ }
14193
14246
  const _hoisted_1$L = {
14194
14247
  key: 0,
14195
14248
  class: "label"
@@ -14218,39 +14271,19 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
14218
14271
  const emit2 = __emit;
14219
14272
  const code = vue.ref(props2.modelValue || "");
14220
14273
  const editorRef = vue.ref();
14221
- const loaded = vue.ref(false);
14222
- const hljs = vue.ref(null);
14274
+ const { loaded, loadHighlight, highlightCode } = useHighlight();
14223
14275
  const maxHeight = vue.computed(() => {
14224
14276
  const h2 = props2.height ?? "240px";
14225
14277
  return h2.match(/^\d+$/) ? `${h2}px` : h2;
14226
14278
  });
14227
14279
  const formattedCode = vue.computed(() => {
14228
- if (!hljs.value) return escapeHtml(code.value);
14229
- try {
14230
- const lang = props2.language || "";
14231
- if (lang && !props2.autodetect && !hljs.value.getLanguage(lang)) {
14232
- console.warn(`The language "${lang}" is not available.`);
14233
- return escapeHtml(code.value);
14234
- }
14235
- const result2 = props2.autodetect ? hljs.value.highlightAuto(code.value) : hljs.value.highlight(code.value, { language: lang, ignoreIllegals: props2.ignoreIllegals });
14236
- return result2.value || escapeHtml(code.value);
14237
- } catch (error) {
14238
- console.error("Highlighting error:", error);
14239
- return escapeHtml(code.value);
14240
- }
14241
- });
14242
- function escapeHtml(unsafe) {
14243
- return unsafe.replace(/[&<>"']/g, (m2) => {
14244
- const replacements = {
14245
- "&": "&amp;",
14246
- "<": "&lt;",
14247
- ">": "&gt;",
14248
- '"': "&quot;",
14249
- "'": "&#039;"
14250
- };
14251
- return replacements[m2] || "";
14252
- });
14253
- }
14280
+ return highlightCode(
14281
+ code.value,
14282
+ props2.language,
14283
+ props2.autodetect,
14284
+ props2.ignoreIllegals
14285
+ );
14286
+ });
14254
14287
  function handleInput(e) {
14255
14288
  const target = e.target;
14256
14289
  code.value = target.value;
@@ -14270,18 +14303,7 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
14270
14303
  }, 0);
14271
14304
  }
14272
14305
  vue.onMounted(async () => {
14273
- try {
14274
- await appendScript("https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.0/highlight.min.js", { id: "hljs-cdn" });
14275
- await appendStyle("https://cdn.jsdelivr.net/npm/highlight.js/styles/atom-one-dark.min.css");
14276
- if (window.hljs) {
14277
- hljs.value = window.hljs;
14278
- loaded.value = true;
14279
- } else {
14280
- console.error("Failed to load highlight.js");
14281
- }
14282
- } catch (error) {
14283
- console.error("Error loading highlight.js:", error);
14284
- }
14306
+ await loadHighlight();
14285
14307
  });
14286
14308
  vue.watch(() => props2.modelValue, (newVal) => {
14287
14309
  if (newVal !== void 0 && newVal !== code.value) {
@@ -14294,7 +14316,7 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
14294
14316
  style: vue.normalizeStyle({ maxHeight: maxHeight.value })
14295
14317
  }, [
14296
14318
  _ctx.label ? (vue.openBlock(), vue.createElementBlock("label", _hoisted_1$L, vue.toDisplayString(_ctx.label), 1)) : vue.createCommentVNode("", true),
14297
- loaded.value ? (vue.openBlock(), vue.createElementBlock("div", {
14319
+ vue.unref(loaded) ? (vue.openBlock(), vue.createElementBlock("div", {
14298
14320
  key: 1,
14299
14321
  ref_key: "editorRef",
14300
14322
  ref: editorRef,
@@ -14321,7 +14343,7 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
14321
14343
  };
14322
14344
  }
14323
14345
  });
14324
- const CodeEditor = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["__scopeId", "data-v-6ab9613f"]]);
14346
+ const CodeEditor = /* @__PURE__ */ _export_sfc(_sfc_main$S, [["__scopeId", "data-v-de01e351"]]);
14325
14347
  const _hoisted_1$K = ["title"];
14326
14348
  const _hoisted_2$y = { class: "flex bg-input rounded px-025 colorInputPickWrap" };
14327
14349
  const _hoisted_3$t = ["id", "placeholder", "required"];
@@ -32848,53 +32870,65 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
32848
32870
  const Image$1 = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-2f5e271c"]]);
32849
32871
  const _hoisted_1$m = ["textContent"];
32850
32872
  const _hoisted_2$d = {
32873
+ key: 0,
32874
+ class: "h-100p flex column justify-content-center"
32875
+ };
32876
+ const _hoisted_3$a = {
32851
32877
  key: 1,
32852
32878
  class: "loading-container"
32853
32879
  };
32854
- const _hoisted_3$a = { class: "overflow h-100p" };
32855
- const _hoisted_4$6 = {
32880
+ const _hoisted_4$6 = { class: "overflow h-100p" };
32881
+ const _hoisted_5$6 = {
32856
32882
  key: 0,
32857
- class: "config-section flex gap-05 pb-2"
32883
+ class: "config-section flex gap-05 pb-2 m_flex-wrap"
32858
32884
  };
32859
- const _hoisted_5$6 = { key: 1 };
32860
- const _hoisted_6$5 = { class: "mapping-table" };
32861
- const _hoisted_7$4 = { class: "field-label" };
32862
- const _hoisted_8$3 = { key: 0 };
32863
- const _hoisted_9$2 = { key: 2 };
32864
- const _hoisted_10$2 = { key: 3 };
32865
- const _hoisted_11$2 = {
32885
+ const _hoisted_6$5 = { key: 1 };
32886
+ const _hoisted_7$4 = { class: "mapping-table" };
32887
+ const _hoisted_8$3 = { class: "field-label" };
32888
+ const _hoisted_9$2 = { class: "grid-span-2 input-size line-height-1 inline-block" };
32889
+ const _hoisted_10$2 = { key: 0 };
32890
+ const _hoisted_11$2 = { key: 2 };
32891
+ const _hoisted_12$2 = { key: 3 };
32892
+ const _hoisted_13$1 = {
32866
32893
  key: 0,
32867
32894
  class: "field-disabled-reason"
32868
32895
  };
32869
- const _hoisted_12$2 = { key: 1 };
32870
- const _hoisted_13$1 = { class: "fileColSelect" };
32871
- const _hoisted_14$1 = { class: "default-value-container hideLabel" };
32872
- const _hoisted_15 = { class: "flex gap-05" };
32873
- const _hoisted_16 = {
32896
+ const _hoisted_14$1 = { key: 1 };
32897
+ const _hoisted_15 = { class: "fileColSelect" };
32898
+ const _hoisted_16 = { class: "default-value-container hideLabel" };
32899
+ const _hoisted_17 = { class: "flex gap-05 my-05" };
32900
+ const _hoisted_18 = {
32874
32901
  key: 0,
32875
32902
  class: "action-buttons"
32876
32903
  };
32877
- const _hoisted_17 = {
32904
+ const _hoisted_19 = {
32878
32905
  key: 1,
32879
32906
  class: "action-buttons"
32880
32907
  };
32881
- const _hoisted_18 = { key: 0 };
32882
- const _hoisted_19 = { class: "flex space-between gap-1 mb-1" };
32883
- const _hoisted_20 = { class: "flex pt-05" };
32884
- const _hoisted_21 = { key: 0 };
32885
- const _hoisted_22 = { class: "pb-05" };
32886
- const _hoisted_23 = {
32908
+ const _hoisted_20 = { key: 0 };
32909
+ const _hoisted_21 = { class: "flex space-between gap-1 mb-1 border-bottom pb-05 m_flex-wrap" };
32910
+ const _hoisted_22 = { class: "grid-span-2 input-size line-height-1" };
32911
+ const _hoisted_23 = { class: "grid-span-4 input-size line-height-1 ellipsis-1" };
32912
+ const _hoisted_24 = { class: "grid grid-wrap-7 gap-1 align-items-center m_gap-025 m_pb-1-5" };
32913
+ const _hoisted_25 = { class: "grid-span-2" };
32914
+ const _hoisted_26 = { class: "grid-span-4" };
32915
+ const _hoisted_27 = { class: "flex pt-05" };
32916
+ const _hoisted_28 = { key: 0 };
32917
+ const _hoisted_29 = { class: "pb-05" };
32918
+ const _hoisted_30 = {
32887
32919
  key: 0,
32888
32920
  class: "mb-05"
32889
32921
  };
32890
- const _hoisted_24 = { key: 1 };
32891
- const _hoisted_25 = { class: "mb-1" };
32892
- const _hoisted_26 = { key: 0 };
32893
- const _hoisted_27 = { class: "flex gap-1" };
32894
- const _hoisted_28 = { class: "default-value-container" };
32895
- const _hoisted_29 = { class: "action-buttons-cell" };
32896
- const _hoisted_30 = { class: "flex pt-05" };
32897
- const _hoisted_31 = { key: 0 };
32922
+ const _hoisted_31 = { key: 1 };
32923
+ const _hoisted_32 = { class: "mb-1" };
32924
+ const _hoisted_33 = { key: 0 };
32925
+ const _hoisted_34 = { class: "flex gap-1" };
32926
+ const _hoisted_35 = { class: "default-value-container" };
32927
+ const _hoisted_36 = { class: "action-buttons-cell" };
32928
+ const _hoisted_37 = { class: "flex pt-05" };
32929
+ const _hoisted_38 = { class: "mt-1" };
32930
+ const _hoisted_39 = { class: "flex gap-1 mt-1 space-between" };
32931
+ const _hoisted_40 = { key: 0 };
32898
32932
  const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
32899
32933
  __name: "ImportData",
32900
32934
  props: {
@@ -33920,41 +33954,51 @@ ${unmatchedValues.length} values could not be automatically matched.`);
33920
33954
  class: "line-height-1 m-0 pb-2 txt-center",
33921
33955
  textContent: vue.toDisplayString(props2.title || "Upload and Map Data")
33922
33956
  }, null, 8, _hoisted_1$m),
33923
- !file.value ? (vue.openBlock(), vue.createBlock(vue.unref(DragOver), {
33924
- key: 0,
33925
- accept: ".csv,.xls,.xlsx",
33926
- onAddFiles: vue.unref(addFile),
33927
- onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(browse)(false))
33928
- }, {
33929
- default: vue.withCtx(() => [
33930
- vue.createVNode(vue.unref(_sfc_main$15), { class: "flex flex-column items-center justify-center outline-dashed outline-3 bg-input hover h-100p justify-content-center" }, {
33957
+ !file.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$d, [
33958
+ vue.createVNode(vue.unref(DragOver), {
33959
+ accept: ".csv,.xls,.xlsx",
33960
+ class: "max-h300px w-500px",
33961
+ onAddFiles: vue.unref(addFile),
33962
+ onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(browse)(false))
33963
+ }, {
33964
+ default: vue.withCtx(() => [
33965
+ vue.createVNode(vue.unref(_sfc_main$15), { class: "flex flex-column items-center justify-center outline-dashed outline-3 bg-input hover h-100p justify-content-center txt-center" }, {
33966
+ default: vue.withCtx(() => [
33967
+ vue.createVNode(vue.unref(_sfc_main$v), {
33968
+ name: "upload",
33969
+ size: "5"
33970
+ }),
33971
+ _cache[30] || (_cache[30] = vue.createElementVNode("p", null, "Drag and drop an Excel or CSV file here", -1)),
33972
+ _cache[31] || (_cache[31] = vue.createElementVNode("u", null, "or click to select a file", -1)),
33973
+ _cache[32] || (_cache[32] = vue.createElementVNode("p", { class: "txt-12 color-gray" }, " Accepts .xlsx, .xls, and .csv files ", -1))
33974
+ ]),
33975
+ _: 1
33976
+ })
33977
+ ]),
33978
+ _: 1
33979
+ }, 8, ["onAddFiles"])
33980
+ ])) : vue.createCommentVNode("", true),
33981
+ isLoading.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$a, _cache[33] || (_cache[33] = [
33982
+ vue.createElementVNode("div", { class: "spinner" }, null, -1),
33983
+ vue.createElementVNode("p", null, "Processing your file...", -1)
33984
+ ]))) : vue.createCommentVNode("", true),
33985
+ vue.createElementVNode("div", _hoisted_4$6, [
33986
+ file.value && !isLoading.value && sheetNames.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$6, [
33987
+ vue.withDirectives((vue.openBlock(), vue.createBlock(vue.unref(Btn), {
33988
+ class: "px-1",
33989
+ color: "gray",
33990
+ onClick: _cache[1] || (_cache[1] = ($event) => file.value = null)
33991
+ }, {
33931
33992
  default: vue.withCtx(() => [
33932
33993
  vue.createVNode(vue.unref(_sfc_main$v), {
33933
- name: "upload",
33934
- size: "5"
33994
+ icon: "draft",
33995
+ size: "1.5",
33996
+ weight: "300"
33935
33997
  }),
33936
- _cache[30] || (_cache[30] = vue.createElementVNode("p", null, "Drag and drop an Excel or CSV file here", -1)),
33937
- _cache[31] || (_cache[31] = vue.createElementVNode("p", null, "or click to select a file", -1)),
33938
- _cache[32] || (_cache[32] = vue.createElementVNode("p", { class: "txt-12 color-gray" }, " Accepts .xlsx, .xls, and .csv files ", -1))
33998
+ vue.createElementVNode("p", null, vue.toDisplayString(file.value.name), 1)
33939
33999
  ]),
33940
34000
  _: 1
33941
- })
33942
- ]),
33943
- _: 1
33944
- }, 8, ["onAddFiles"])) : vue.createCommentVNode("", true),
33945
- isLoading.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$d, _cache[33] || (_cache[33] = [
33946
- vue.createElementVNode("div", { class: "spinner" }, null, -1),
33947
- vue.createElementVNode("p", null, "Processing your file...", -1)
33948
- ]))) : vue.createCommentVNode("", true),
33949
- vue.createElementVNode("div", _hoisted_3$a, [
33950
- file.value && !isLoading.value && sheetNames.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$6, [
33951
- vue.withDirectives(vue.createVNode(vue.unref(Btn), {
33952
- value: file.value.name,
33953
- thin: "",
33954
- round: "",
33955
- iconEnd: "edit",
33956
- onClick: _cache[1] || (_cache[1] = ($event) => file.value = null)
33957
- }, null, 8, ["value"]), [
34001
+ })), [
33958
34002
  [_directive_tooltip, "Change File"]
33959
34003
  ]),
33960
34004
  sheetNames.value.length > 1 ? (vue.openBlock(), vue.createBlock(vue.unref(SelectInput), {
@@ -33968,13 +34012,14 @@ ${unmatchedValues.length} values could not be automatically matched.`);
33968
34012
  modelValue: hasHeaders.value,
33969
34013
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => hasHeaders.value = $event),
33970
34014
  label: "Mark this if file has a header row",
33971
- class: "m-0"
34015
+ class: "m-0",
34016
+ style: { "--bgl-accent-color": "var(--bgl-black)", "--bgl-primary": "var(--bgl-black)" }
33972
34017
  }, null, 8, ["modelValue"])
33973
34018
  ])) : vue.createCommentVNode("", true),
33974
- file.value && !isLoading.value && fileHeaders.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$6, [
34019
+ file.value && !isLoading.value && fileHeaders.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$5, [
33975
34020
  _cache[37] || (_cache[37] = vue.createElementVNode("p", { class: "label pb-1 border-bottom mb-1" }, " Match each required field to a column from your file, set default values, or configure transformations ", -1)),
33976
- vue.createElementVNode("div", _hoisted_6$5, [
33977
- _cache[34] || (_cache[34] = vue.createElementVNode("div", { class: "grid grid-wrap-5 gap-1 bold pb-1" }, [
34021
+ vue.createElementVNode("div", _hoisted_7$4, [
34022
+ _cache[34] || (_cache[34] = vue.createElementVNode("div", { class: "grid grid-wrap-5 gap-1 bold pb-1 m_none" }, [
33978
34023
  vue.createElementVNode("p", null, "Schema Field"),
33979
34024
  vue.createElementVNode("p", null, "Column from File"),
33980
34025
  vue.createElementVNode("p", null, "Default Value"),
@@ -33984,12 +34029,12 @@ ${unmatchedValues.length} values could not be automatically matched.`);
33984
34029
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(schemaFields.value, (field) => {
33985
34030
  return vue.openBlock(), vue.createElementBlock("div", {
33986
34031
  key: field.id,
33987
- class: vue.normalizeClass(["grid grid-wrap-5 gap-1", { "array-field-row": field.isArrayField || field.$el === "array" }])
34032
+ class: vue.normalizeClass(["grid grid-wrap-5 gap-1 m_gap-025 m_pb-1-5", { "array-field-row": field.isArrayField || field.$el === "array" }])
33988
34033
  }, [
33989
34034
  vue.createElementVNode("div", null, [
33990
- vue.createElementVNode("div", _hoisted_7$4, [
33991
- vue.createTextVNode(vue.toDisplayString(field.label) + " ", 1),
33992
- field.isArrayField ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_8$3, "↳")) : vue.createCommentVNode("", true),
34035
+ vue.createElementVNode("div", _hoisted_8$3, [
34036
+ vue.createElementVNode("p", _hoisted_9$2, vue.toDisplayString(field.label), 1),
34037
+ field.isArrayField ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_10$2, "↳")) : vue.createCommentVNode("", true),
33993
34038
  field.$el === "array" ? (vue.openBlock(), vue.createBlock(vue.unref(Pill), {
33994
34039
  key: 1,
33995
34040
  class: "txt10 ms-05",
@@ -33997,13 +34042,13 @@ ${unmatchedValues.length} values could not be automatically matched.`);
33997
34042
  thin: "",
33998
34043
  value: "Array"
33999
34044
  })) : vue.createCommentVNode("", true),
34000
- isFieldRequired(field) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_9$2, "*")) : vue.createCommentVNode("", true),
34001
- getFieldDescription(field).isConditional ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_10$2, "†")) : vue.createCommentVNode("", true)
34045
+ isFieldRequired(field) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_11$2, "*")) : vue.createCommentVNode("", true),
34046
+ getFieldDescription(field).isConditional ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_12$2, "†")) : vue.createCommentVNode("", true)
34002
34047
  ]),
34003
- field.disabled ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$2, vue.toDisplayString(field.disabledReason), 1)) : vue.createCommentVNode("", true),
34004
- getFieldDescription(field).isConditional ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$2, vue.toDisplayString(getFieldDescription(field).description), 1)) : vue.createCommentVNode("", true)
34048
+ field.disabled ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$1, vue.toDisplayString(field.disabledReason), 1)) : vue.createCommentVNode("", true),
34049
+ getFieldDescription(field).isConditional ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14$1, vue.toDisplayString(getFieldDescription(field).description), 1)) : vue.createCommentVNode("", true)
34005
34050
  ]),
34006
- vue.createElementVNode("div", _hoisted_13$1, [
34051
+ vue.createElementVNode("div", _hoisted_15, [
34007
34052
  vue.createVNode(vue.unref(SelectInput), {
34008
34053
  modelValue: fieldMapping[field.id],
34009
34054
  "onUpdate:modelValue": ($event) => fieldMapping[field.id] = $event,
@@ -34015,7 +34060,7 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34015
34060
  }, null, 8, ["modelValue", "onUpdate:modelValue", "options", "required", "disabled", "onChange"])
34016
34061
  ]),
34017
34062
  vue.createElementVNode("div", null, [
34018
- vue.createElementVNode("div", _hoisted_14$1, [
34063
+ vue.createElementVNode("div", _hoisted_16, [
34019
34064
  vue.createTextVNode(vue.toDisplayString(initDefaultValue(field.id)) + " ", 1),
34020
34065
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(renderField)(getFieldWithDefaults(field)))))
34021
34066
  ])
@@ -34029,7 +34074,7 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34029
34074
  }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
34030
34075
  ]),
34031
34076
  vue.createElementVNode("div", null, [
34032
- vue.createElementVNode("div", _hoisted_15, [
34077
+ vue.createElementVNode("div", _hoisted_17, [
34033
34078
  vue.withDirectives(vue.createVNode(vue.unref(Btn), {
34034
34079
  thin: "",
34035
34080
  disabled: field.disabled,
@@ -34052,14 +34097,14 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34052
34097
  ], 2);
34053
34098
  }), 128))
34054
34099
  ]),
34055
- mappingComplete.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16, [
34100
+ mappingComplete.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18, [
34056
34101
  vue.createVNode(vue.unref(Btn), { onClick: showPreview }, {
34057
34102
  default: vue.withCtx(() => _cache[35] || (_cache[35] = [
34058
34103
  vue.createTextVNode(" Preview Data ")
34059
34104
  ])),
34060
34105
  _: 1
34061
34106
  })
34062
- ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_17, _cache[36] || (_cache[36] = [
34107
+ ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_19, _cache[36] || (_cache[36] = [
34063
34108
  vue.createElementVNode("div", { class: "mapping-incomplete-message" }, " Please map the required fields to continue ", -1)
34064
34109
  ])))
34065
34110
  ])) : vue.createCommentVNode("", true)
@@ -34071,8 +34116,8 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34071
34116
  width: "800"
34072
34117
  }, {
34073
34118
  default: vue.withCtx(() => [
34074
- selectedTransformField.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_18, [
34075
- vue.createElementVNode("div", _hoisted_19, [
34119
+ selectedTransformField.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_20, [
34120
+ vue.createElementVNode("div", _hoisted_21, [
34076
34121
  vue.createElementVNode("p", null, [
34077
34122
  _cache[38] || (_cache[38] = vue.createTextVNode("Create transformations for ")),
34078
34123
  vue.createElementVNode("strong", null, vue.toDisplayString(selectedTransformField.value.label), 1)
@@ -34084,33 +34129,33 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34084
34129
  onClick: _cache[4] || (_cache[4] = ($event) => autoPopulateTransformations(selectedTransformField.value.id))
34085
34130
  })
34086
34131
  ]),
34087
- vue.createElementVNode("table", null, [
34088
- _cache[39] || (_cache[39] = vue.createElementVNode("thead", null, [
34089
- vue.createElementVNode("tr", null, [
34090
- vue.createElementVNode("th", null, "Source Value"),
34091
- vue.createElementVNode("th", null, "Target Value"),
34092
- vue.createElementVNode("th", null, "Action")
34093
- ])
34132
+ vue.createElementVNode("div", null, [
34133
+ _cache[39] || (_cache[39] = vue.createElementVNode("div", { class: "grid grid-wrap-7 gap-1 bold pb-05 m_none" }, [
34134
+ vue.createElementVNode("p", { class: "grid-span-2" }, " Source Value "),
34135
+ vue.createElementVNode("p", { class: "grid-span-4" }, " Target Value "),
34136
+ vue.createElementVNode("p", null, "Action")
34094
34137
  ], -1)),
34095
- vue.createElementVNode("tbody", null, [
34138
+ vue.createElementVNode("div", null, [
34096
34139
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(transformations[selectedTransformField.value.id] || [], (transform, index2) => {
34097
- return vue.openBlock(), vue.createElementBlock("tr", { key: index2 }, [
34098
- vue.createElementVNode("td", null, vue.toDisplayString(transform.sourceValue), 1),
34099
- vue.createElementVNode("td", null, vue.toDisplayString(transform.targetValue), 1),
34100
- vue.createElementVNode("td", null, [
34101
- vue.withDirectives(vue.createVNode(vue.unref(Btn), {
34102
- thin: "",
34103
- icon: "delete",
34104
- color: "red",
34105
- onClick: ($event) => removeTransformation(selectedTransformField.value.id, index2)
34106
- }, null, 8, ["onClick"]), [
34107
- [_directive_tooltip, "Remove"]
34108
- ])
34140
+ return vue.openBlock(), vue.createElementBlock("div", {
34141
+ key: index2,
34142
+ class: "grid grid-wrap-7 gap-1 align-items-center m_gap-025 m_pb-1-5"
34143
+ }, [
34144
+ vue.createElementVNode("p", _hoisted_22, vue.toDisplayString(transform.sourceValue), 1),
34145
+ vue.createElementVNode("p", _hoisted_23, vue.toDisplayString(transform.targetValue), 1),
34146
+ vue.withDirectives(vue.createVNode(vue.unref(Btn), {
34147
+ class: "mb-05",
34148
+ thin: "",
34149
+ icon: "delete",
34150
+ color: "red",
34151
+ onClick: ($event) => removeTransformation(selectedTransformField.value.id, index2)
34152
+ }, null, 8, ["onClick"]), [
34153
+ [_directive_tooltip, "Remove"]
34109
34154
  ])
34110
34155
  ]);
34111
34156
  }), 128)),
34112
- vue.createElementVNode("tr", null, [
34113
- vue.createElementVNode("td", null, [
34157
+ vue.createElementVNode("div", _hoisted_24, [
34158
+ vue.createElementVNode("div", _hoisted_25, [
34114
34159
  fieldMapping[selectedTransformField.value.id] ? (vue.openBlock(), vue.createBlock(vue.unref(SelectInput), {
34115
34160
  key: 0,
34116
34161
  modelValue: selectedSourceValue.value,
@@ -34118,16 +34163,15 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34118
34163
  searchable: "",
34119
34164
  options: sourceValueOptions.value,
34120
34165
  placeholder: "Select source value"
34121
- }, null, 8, ["modelValue", "options"])) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
34166
+ }, null, 8, ["modelValue", "options"])) : (vue.openBlock(), vue.createBlock(TextInput, {
34122
34167
  key: 1,
34168
+ modelValue: selectedSourceValue.value,
34123
34169
  "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => selectedSourceValue.value = $event),
34124
34170
  type: "text",
34125
34171
  placeholder: "Source value"
34126
- }, null, 512)), [
34127
- [vue.vModelText, selectedSourceValue.value]
34128
- ])
34172
+ }, null, 8, ["modelValue"]))
34129
34173
  ]),
34130
- vue.createElementVNode("td", null, [
34174
+ vue.createElementVNode("div", _hoisted_26, [
34131
34175
  selectedTransformField.value.options && selectedTransformField.value.options.length > 0 ? (vue.openBlock(), vue.createBlock(vue.unref(SelectInput), {
34132
34176
  key: 0,
34133
34177
  modelValue: selectedTargetValue.value,
@@ -34135,29 +34179,27 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34135
34179
  searchable: "",
34136
34180
  options: selectedTransformField.value.options,
34137
34181
  placeholder: "Select target value"
34138
- }, null, 8, ["modelValue", "options"])) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
34182
+ }, null, 8, ["modelValue", "options"])) : (vue.openBlock(), vue.createBlock(TextInput, {
34139
34183
  key: 1,
34184
+ modelValue: selectedTargetValue.value,
34140
34185
  "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => selectedTargetValue.value = $event),
34141
34186
  type: "text",
34142
34187
  placeholder: "Target value"
34143
- }, null, 512)), [
34144
- [vue.vModelText, selectedTargetValue.value]
34145
- ])
34188
+ }, null, 8, ["modelValue"]))
34146
34189
  ]),
34147
- vue.createElementVNode("td", null, [
34148
- vue.withDirectives(vue.createVNode(vue.unref(Btn), {
34149
- thin: "",
34150
- icon: "add",
34151
- color: "primary",
34152
- onClick: _cache[9] || (_cache[9] = ($event) => addTransformation(selectedTransformField.value.id))
34153
- }, null, 512), [
34154
- [_directive_tooltip, "Add"]
34155
- ])
34190
+ vue.withDirectives(vue.createVNode(vue.unref(Btn), {
34191
+ class: "mb-05",
34192
+ thin: "",
34193
+ icon: "add",
34194
+ color: "primary",
34195
+ onClick: _cache[9] || (_cache[9] = ($event) => addTransformation(selectedTransformField.value.id))
34196
+ }, null, 512), [
34197
+ [_directive_tooltip, "Add"]
34156
34198
  ])
34157
34199
  ])
34158
34200
  ])
34159
34201
  ]),
34160
- vue.createElementVNode("div", _hoisted_20, [
34202
+ vue.createElementVNode("div", _hoisted_27, [
34161
34203
  vue.createVNode(vue.unref(Btn), {
34162
34204
  class: "ms-auto",
34163
34205
  value: "Close",
@@ -34177,9 +34219,9 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34177
34219
  default: vue.withCtx(() => {
34178
34220
  var _a;
34179
34221
  return [
34180
- selectedRelationField.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_21, [
34181
- vue.createElementVNode("p", _hoisted_22, " Upload a file with related data for " + vue.toDisplayString(selectedRelationField.value.label), 1),
34182
- !relatedFiles[selectedRelationField.value.id] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_23, [
34222
+ selectedRelationField.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_28, [
34223
+ vue.createElementVNode("p", _hoisted_29, " Upload a file with related data for " + vue.toDisplayString(selectedRelationField.value.label), 1),
34224
+ !relatedFiles[selectedRelationField.value.id] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_30, [
34183
34225
  vue.createVNode(vue.unref(DragOver), {
34184
34226
  accept: ".csv,.xls,.xlsx",
34185
34227
  onAddFiles: _cache[12] || (_cache[12] = (files2) => {
@@ -34202,8 +34244,8 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34202
34244
  ]),
34203
34245
  _: 1
34204
34246
  })
34205
- ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_24, [
34206
- vue.createElementVNode("div", _hoisted_25, [
34247
+ ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_31, [
34248
+ vue.createElementVNode("div", _hoisted_32, [
34207
34249
  vue.createVNode(vue.unref(Pill), null, {
34208
34250
  default: vue.withCtx(() => [
34209
34251
  vue.createTextVNode(vue.toDisplayString(relatedFiles[selectedRelationField.value.id].name), 1)
@@ -34217,9 +34259,9 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34217
34259
  onClick: _cache[13] || (_cache[13] = ($event) => relatedFiles[selectedRelationField.value.id] = null)
34218
34260
  })
34219
34261
  ]),
34220
- relatedFileData[selectedRelationField.value.id] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_26, [
34262
+ relatedFileData[selectedRelationField.value.id] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_33, [
34221
34263
  _cache[45] || (_cache[45] = vue.createElementVNode("h4", null, "Configure Relationship", -1)),
34222
- vue.createElementVNode("div", _hoisted_27, [
34264
+ vue.createElementVNode("div", _hoisted_34, [
34223
34265
  vue.createVNode(vue.unref(SelectInput), {
34224
34266
  modelValue: parentKeyField[selectedRelationField.value.id],
34225
34267
  "onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => parentKeyField[selectedRelationField.value.id] = $event),
@@ -34260,7 +34302,7 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34260
34302
  }, null, 8, ["modelValue", "onUpdate:modelValue", "options"])
34261
34303
  ]),
34262
34304
  vue.createElementVNode("td", null, [
34263
- vue.createElementVNode("div", _hoisted_28, [
34305
+ vue.createElementVNode("div", _hoisted_35, [
34264
34306
  vue.createTextVNode(vue.toDisplayString(initRelatedDefaultValue(selectedRelationField.value.id, schemaItem.id)) + " ", 1),
34265
34307
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(renderField)(getRelatedFieldWithDefaults(selectedRelationField.value.id, schemaItem)))))
34266
34308
  ])
@@ -34274,7 +34316,7 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34274
34316
  }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
34275
34317
  ]),
34276
34318
  vue.createElementVNode("td", null, [
34277
- vue.createElementVNode("div", _hoisted_29, [
34319
+ vue.createElementVNode("div", _hoisted_36, [
34278
34320
  vue.createVNode(vue.unref(Btn), {
34279
34321
  thin: "",
34280
34322
  icon: "transform",
@@ -34293,7 +34335,7 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34293
34335
  ])
34294
34336
  ])) : vue.createCommentVNode("", true)
34295
34337
  ])),
34296
- vue.createElementVNode("div", _hoisted_30, [
34338
+ vue.createElementVNode("div", _hoisted_37, [
34297
34339
  vue.createVNode(vue.unref(Btn), {
34298
34340
  class: "ms-auto",
34299
34341
  value: "Close",
@@ -34309,21 +34351,24 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34309
34351
  visible: showPreviewModal.value,
34310
34352
  "onUpdate:visible": _cache[21] || (_cache[21] = ($event) => showPreviewModal.value = $event),
34311
34353
  title: "Data Preview & Edit",
34312
- width: "1200"
34354
+ width: "90vw"
34313
34355
  }, {
34314
34356
  default: vue.withCtx(() => [
34315
34357
  vue.createElementVNode("div", null, [
34316
- vue.createVNode(vue.unref(Spreadsheet), {
34358
+ vue.createVNode(vue.unref(_sfc_main$5), {
34317
34359
  modelValue: previewData.value,
34318
34360
  "onUpdate:modelValue": _cache[18] || (_cache[18] = ($event) => previewData.value = $event),
34361
+ class: "popupPreviewSpreadsheet",
34319
34362
  "column-config": spreadsheetColumns.value,
34320
34363
  "allow-add-row": ""
34321
34364
  }, null, 8, ["modelValue", "column-config"])
34322
34365
  ]),
34323
34366
  vue.createElementVNode("div", null, [
34324
- vue.createElementVNode("div", null, " Showing all " + vue.toDisplayString(previewData.value.length) + " records. You can edit values directly. ", 1),
34325
- vue.createElementVNode("div", null, [
34367
+ vue.createElementVNode("p", _hoisted_38, " Showing all " + vue.toDisplayString(previewData.value.length) + " records. You can edit values directly. ", 1),
34368
+ vue.createElementVNode("div", _hoisted_39, [
34326
34369
  vue.createVNode(vue.unref(Btn), {
34370
+ flat: "",
34371
+ thin: "",
34327
34372
  value: "Cancel",
34328
34373
  onClick: _cache[19] || (_cache[19] = ($event) => showPreviewModal.value = false)
34329
34374
  }),
@@ -34345,7 +34390,7 @@ ${unmatchedValues.length} values could not be automatically matched.`);
34345
34390
  default: vue.withCtx(() => {
34346
34391
  var _a, _b, _c;
34347
34392
  return [
34348
- selectedRelatedTransformField.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_31, [
34393
+ selectedRelatedTransformField.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_40, [
34349
34394
  vue.createElementVNode("p", null, [
34350
34395
  _cache[47] || (_cache[47] = vue.createTextVNode("Create transformations for ")),
34351
34396
  vue.createElementVNode("strong", null, vue.toDisplayString(selectedRelatedTransformField.value.field.label), 1),
@@ -34508,7 +34553,7 @@ const BottomMenu = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data
34508
34553
  const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
34509
34554
  __name: "Layout",
34510
34555
  props: {
34511
- gap: { default: 1 },
34556
+ gap: { default: 0.5 },
34512
34557
  h100: { type: Boolean, default: false },
34513
34558
  columns: { default: () => [] },
34514
34559
  mColumns: { default: () => [] },
@@ -34518,12 +34563,12 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
34518
34563
  },
34519
34564
  setup(__props) {
34520
34565
  vue.useCssVars((_ctx) => ({
34521
- "ff4aa016": gapSize.value,
34522
- "3683119b": gridTemplateRows.value,
34523
- "f6f04e4a": gridTemplateColumns.value,
34524
- "fa53dae8": mGapSize.value,
34525
- "0307a8e4": mGridTemplateRows.value,
34526
- "7e4910f2": mGridTemplateColumns.value
34566
+ "3438906a": gapSize.value,
34567
+ "32967a85": gridTemplateRows.value,
34568
+ "4974609e": gridTemplateColumns.value,
34569
+ "6323f514": mGapSize.value,
34570
+ "ed3d458c": mGridTemplateRows.value,
34571
+ "016c1648": mGridTemplateColumns.value
34527
34572
  }));
34528
34573
  const props2 = __props;
34529
34574
  const gridTemplateRows = vue.computed(() => props2.rows.length > 0 ? props2.rows.join(" ") : "auto");
@@ -34549,7 +34594,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
34549
34594
  };
34550
34595
  }
34551
34596
  });
34552
- const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-a0f4895c"]]);
34597
+ const Layout = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-7835674f"]]);
34553
34598
  const _hoisted_1$k = { key: 0 };
34554
34599
  const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
34555
34600
  __name: "SidebarMenu",
@@ -36821,7 +36866,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
36821
36866
  };
36822
36867
  }
36823
36868
  });
36824
- const SpreadsheetTable = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-857ccb8b"]]);
36869
+ const SpreadsheetTable = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-72033517"]]);
36825
36870
  const _hoisted_1$3 = { class: "flex gap-05 py-05 justify-content-end m_flex-wrap" };
36826
36871
  const _hoisted_2$1 = {
36827
36872
  key: 0,
@@ -37471,7 +37516,6 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
37471
37516
  };
37472
37517
  }
37473
37518
  });
37474
- const Spreadsheet = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-81050b79"]]);
37475
37519
  const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
37476
37520
  __name: "Title",
37477
37521
  props: {
@@ -38849,13 +38893,13 @@ function bindingToItem(binding, el) {
38849
38893
  const youtubeRegex = /youtube\.com|youtu\.be/;
38850
38894
  const vimeoRegex = /vimeo\.com/;
38851
38895
  function urlToName(url) {
38852
- if (!url) return "";
38896
+ if (!url || typeof url !== "string") return "";
38853
38897
  const name = url.split("/").pop() || "";
38854
38898
  return name.replace(/\.[^/.]+$/, "");
38855
38899
  }
38856
38900
  function determineFileType(url) {
38857
38901
  var _a;
38858
- if (!url) return "unknown";
38902
+ if (typeof url !== "string" || !url) return "unknown";
38859
38903
  const extension = (url.split(".").pop() || "").toLowerCase();
38860
38904
  const altExtension = ((_a = url.split("?")[0].split(".").pop()) == null ? void 0 : _a.toLowerCase()) || "";
38861
38905
  if (IMAGE_FORMATS_REGEXP.test(extension) || IMAGE_FORMATS_REGEXP.test(altExtension)) return "image";
@@ -40004,7 +40048,7 @@ exports.SidebarMenu = SidebarMenu;
40004
40048
  exports.SignaturePad = _sfc_main$B;
40005
40049
  exports.Skeleton = Skeleton;
40006
40050
  exports.Slider = Slider;
40007
- exports.Spreadsheet = Spreadsheet;
40051
+ exports.Spreadsheet = _sfc_main$5;
40008
40052
  exports.TabbedLayout = TabbedLayout;
40009
40053
  exports.TableField = TableField;
40010
40054
  exports.TableSchema = DataTable;