@g1cloud/bluesea 5.0.0-beta.2 → 5.0.0-beta.4

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 (40) hide show
  1. package/dist/{BSAlertModal-BixCrZDD.js → BSAlertModal-BsYimMJ_.js} +1 -1
  2. package/dist/{BSGridColumnSettingModal-CVVenSnr.js → BSGridColumnSettingModal-BEB2-Ux4.js} +1 -1
  3. package/dist/{BSRichTextMaximizedModal-BqzE5__U.js → BSRichTextMaximizedModal-LB8VUZme.js} +1 -1
  4. package/dist/{BSYesNoModal-B5lERw_k.js → BSYesNoModal-Cc1Nki9Z.js} +1 -1
  5. package/dist/{BSYoutubeInputModal-eRBqHjeW.js → BSYoutubeInputModal-BJ1snN1M.js} +1 -1
  6. package/dist/{ImageInsertModal-DvKLXL1n.js → ImageInsertModal-CO6NeKVX.js} +2 -2
  7. package/dist/{ImageProperties.vue_vue_type_script_setup_true_lang-DVUZuLfG.js → ImageProperties.vue_vue_type_script_setup_true_lang-DUkL-qju.js} +1 -1
  8. package/dist/{ImagePropertiesModal-Dsg6BS63.js → ImagePropertiesModal-NMjlJ5hA.js} +2 -2
  9. package/dist/{LinkPropertiesModal-Ct0ykD4j.js → LinkPropertiesModal-CFQucomV.js} +1 -1
  10. package/dist/{TableInsertModal-BhyzkcTU.js → TableInsertModal-D0cHwmgl.js} +1 -1
  11. package/dist/TablePropertiesModal-H8Ohz-Xv.js +353 -0
  12. package/dist/{VideoInsertModal-BAwRYBzU.js → VideoInsertModal-DR06SKIA.js} +2 -2
  13. package/dist/{VideoProperties.vue_vue_type_script_setup_true_lang-BfwBHyER.js → VideoProperties.vue_vue_type_script_setup_true_lang-BOCeOQVe.js} +1 -1
  14. package/dist/{VideoPropertiesModal-B2FeEw4W.js → VideoPropertiesModal-BvwmSEP-.js} +2 -2
  15. package/dist/{YoutubeInsertModal-EU6G-021.js → YoutubeInsertModal-CL4QiU4m.js} +3 -3
  16. package/dist/{YoutubeProperties.vue_vue_type_script_setup_true_lang-Ci3ndkZR.js → YoutubeProperties.vue_vue_type_script_setup_true_lang-BpRF2WTd.js} +1 -1
  17. package/dist/{YoutubePropertiesModal-CRy6zJwZ.js → YoutubePropertiesModal-DaHvv9Df.js} +2 -2
  18. package/dist/bluesea.js +21 -21
  19. package/dist/bluesea.umd.cjs +526 -257
  20. package/dist/component/input/BSMultiSelect.vue.d.ts +6 -6
  21. package/dist/component/input/BSSelect.vue.d.ts +6 -6
  22. package/dist/component/input/BSSelectPopup.vue.d.ts +6 -6
  23. package/dist/component/input/BSTreeMultiSelect.vue.d.ts +6 -6
  24. package/dist/component/input/BSTreeSelect.vue.d.ts +6 -6
  25. package/dist/component/richtext/RichTextModel.d.ts +1 -0
  26. package/dist/component/richtext/richTextUtil.d.ts +1 -1
  27. package/dist/component/richtext/table/RichTextTableCell.d.ts +1 -0
  28. package/dist/component/richtext/table/RichTextTableLib.d.ts +7 -1
  29. package/dist/component/tree/BSTree.vue.d.ts +6 -3
  30. package/dist/component/tree/BSTreeRow.vue.d.ts +3 -3
  31. package/dist/directive/vT.d.ts +1 -0
  32. package/dist/{index-CDwzpZX0.js → index-Bx4oDJu3.js} +254 -154
  33. package/dist/model/CommonTypes.d.ts +1 -1
  34. package/package.json +3 -3
  35. package/text/bluesea_text_en.json +12 -0
  36. package/text/bluesea_text_fr.json +12 -0
  37. package/text/bluesea_text_ja.json +12 -0
  38. package/text/bluesea_text_ko.json +12 -0
  39. package/text/bluesea_text_zh.json +12 -0
  40. package/dist/TablePropertiesModal-BAxcByTD.js +0 -184
@@ -87,8 +87,8 @@ const defaultAddressInputComponentConfig = {
87
87
  countryConfigs: ADDRESS_COUNTRY_CONFIGS
88
88
  };
89
89
  const defaultRichTextComponentConfig = {
90
- imageInsertModal: defineAsyncComponent(() => import("./ImageInsertModal-DvKLXL1n.js")),
91
- videoInsertModal: defineAsyncComponent(() => import("./VideoInsertModal-BAwRYBzU.js")),
90
+ imageInsertModal: defineAsyncComponent(() => import("./ImageInsertModal-CO6NeKVX.js")),
91
+ videoInsertModal: defineAsyncComponent(() => import("./VideoInsertModal-DR06SKIA.js")),
92
92
  toolButtons: [
93
93
  "Heading",
94
94
  "FontSize",
@@ -583,7 +583,7 @@ const waitUtil = {
583
583
  waitDuring,
584
584
  tryUntil
585
585
  };
586
- const _hoisted_1$1q = ["data-popup-id"];
586
+ const _hoisted_1$1p = ["data-popup-id"];
587
587
  const ADJUST_OFFSET = 8;
588
588
  const _sfc_main$1I = /* @__PURE__ */ defineComponent({
589
589
  __name: "BSPopup",
@@ -768,7 +768,7 @@ const _sfc_main$1I = /* @__PURE__ */ defineComponent({
768
768
  onKeydown: _cache[1] || (_cache[1] = ($event) => emit("keydown", $event))
769
769
  }, [
770
770
  renderSlot(_ctx.$slots, "default")
771
- ], 46, _hoisted_1$1q)
771
+ ], 46, _hoisted_1$1p)
772
772
  ]),
773
773
  _: 3
774
774
  })
@@ -810,7 +810,7 @@ const debounce$2 = (func, wait) => {
810
810
  });
811
811
  };
812
812
  };
813
- const _hoisted_1$1p = {
813
+ const _hoisted_1$1o = {
814
814
  key: 0,
815
815
  class: "popup-search pa-4"
816
816
  };
@@ -975,7 +975,7 @@ const _sfc_main$1H = /* @__PURE__ */ defineComponent({
975
975
  onKeydown: withKeys(withModifiers(handleKeyboard, ["stop", "prevent"]), ["enter", "down", "up"])
976
976
  }, {
977
977
  default: withCtx(() => [
978
- actualShowSearch.value ? (openBlock(), createElementBlock("div", _hoisted_1$1p, [
978
+ actualShowSearch.value ? (openBlock(), createElementBlock("div", _hoisted_1$1o, [
979
979
  withDirectives(createElementVNode("input", {
980
980
  type: "text",
981
981
  onInput: setSearchKeyword,
@@ -1370,7 +1370,7 @@ class SavePointHandlerImpl {
1370
1370
  return this.isModified(this.valueProvider.getCurrentValue());
1371
1371
  }
1372
1372
  }
1373
- const _hoisted_1$1o = { key: 0 };
1373
+ const _hoisted_1$1n = { key: 0 };
1374
1374
  const _sfc_main$1G = /* @__PURE__ */ defineComponent({
1375
1375
  __name: "ValidationErrors",
1376
1376
  props: {
@@ -1379,7 +1379,7 @@ const _sfc_main$1G = /* @__PURE__ */ defineComponent({
1379
1379
  },
1380
1380
  setup(__props) {
1381
1381
  return (_ctx, _cache) => {
1382
- return !_ctx.hideErrorMessage && _ctx.errors && _ctx.errors.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$1o, [
1382
+ return !_ctx.hideErrorMessage && _ctx.errors && _ctx.errors.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$1n, [
1383
1383
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(_ctx.errors, (error) => {
1384
1384
  return withDirectives((openBlock(), createElementBlock("div", {
1385
1385
  key: error.code,
@@ -1426,7 +1426,7 @@ const executeKeyProviderOrDefault = (item, keyProvider, defaultKey) => {
1426
1426
  }
1427
1427
  return defaultKey(item);
1428
1428
  };
1429
- const _hoisted_1$1n = ["tabindex", "onKeydown"];
1429
+ const _hoisted_1$1m = ["tabindex", "onKeydown"];
1430
1430
  const _hoisted_2$11 = { key: 0 };
1431
1431
  const _hoisted_3$A = {
1432
1432
  key: 0,
@@ -1619,7 +1619,7 @@ const _sfc_main$1F = /* @__PURE__ */ defineComponent({
1619
1619
  "hide-error-message": _ctx.hideErrorMessage
1620
1620
  }, null, 8, ["errors", "hide-error-message"])) : createCommentVNode("", true)
1621
1621
  ], 64))
1622
- ], 42, _hoisted_1$1n)), [
1622
+ ], 42, _hoisted_1$1m)), [
1623
1623
  [unref(vClickOutside), () => togglePopup(false)]
1624
1624
  ]);
1625
1625
  };
@@ -1722,7 +1722,7 @@ const useContextMenuOptional = () => {
1722
1722
  const createContextMenuPlugin = () => {
1723
1723
  return new BSContextMenuPlugin();
1724
1724
  };
1725
- const _hoisted_1$1m = ["data-menu-id"];
1725
+ const _hoisted_1$1l = ["data-menu-id"];
1726
1726
  const _hoisted_2$10 = ["href", "target"];
1727
1727
  const _hoisted_3$z = ["data-menu-id"];
1728
1728
  const _hoisted_4$n = ["data-menu-id", "onMouseenter", "onClick"];
@@ -1808,7 +1808,7 @@ const _sfc_main$1D = /* @__PURE__ */ defineComponent({
1808
1808
  }, null, 8, _hoisted_2$10), [
1809
1809
  [unref(vT), menu.caption]
1810
1810
  ])
1811
- ], 8, _hoisted_1$1m)) : menu.type === "route" ? (openBlock(), createElementBlock("div", {
1811
+ ], 8, _hoisted_1$1l)) : menu.type === "route" ? (openBlock(), createElementBlock("div", {
1812
1812
  key: 3,
1813
1813
  "data-menu-id": menu.menuId,
1814
1814
  class: "menu no-padding",
@@ -2022,7 +2022,7 @@ const _sfc_main$1C = /* @__PURE__ */ defineComponent({
2022
2022
  };
2023
2023
  }
2024
2024
  });
2025
- const _hoisted_1$1l = {
2025
+ const _hoisted_1$1k = {
2026
2026
  key: 0,
2027
2027
  class: "view-mode"
2028
2028
  };
@@ -2187,7 +2187,7 @@ const _sfc_main$1B = /* @__PURE__ */ defineComponent({
2187
2187
  class: normalizeClass([{ required: _ctx.required, disabled: _ctx.disabled, modified: modified.value, error: unref(errors).length > 0 }, "bs-text-input"]),
2188
2188
  style: normalizeStyle({ width: _ctx.width })
2189
2189
  }, [
2190
- _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$1l, [
2190
+ _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$1k, [
2191
2191
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(getPrefixSuffixList(_ctx.prefix), (item) => {
2192
2192
  return openBlock(), createElementBlock(Fragment$1, null, [
2193
2193
  item.type === "text" ? withDirectives((openBlock(), createElementBlock("span", {
@@ -2290,7 +2290,7 @@ const _sfc_main$1B = /* @__PURE__ */ defineComponent({
2290
2290
  };
2291
2291
  }
2292
2292
  });
2293
- const _hoisted_1$1k = { class: "bs-link bs-layout-horizontal-inline flex-align-center" };
2293
+ const _hoisted_1$1j = { class: "bs-link bs-layout-horizontal-inline flex-align-center" };
2294
2294
  const _hoisted_2$_ = ["href", "target"];
2295
2295
  const _sfc_main$1A = /* @__PURE__ */ defineComponent({
2296
2296
  __name: "BSLink",
@@ -2301,7 +2301,7 @@ const _sfc_main$1A = /* @__PURE__ */ defineComponent({
2301
2301
  },
2302
2302
  setup(__props) {
2303
2303
  return (_ctx, _cache) => {
2304
- return openBlock(), createElementBlock("div", _hoisted_1$1k, [
2304
+ return openBlock(), createElementBlock("div", _hoisted_1$1j, [
2305
2305
  _cache[0] || (_cache[0] = createElementVNode("span", { class: "font-icon mr-4" }, "link", -1)),
2306
2306
  withDirectives(createElementVNode("a", {
2307
2307
  href: _ctx.path,
@@ -2314,7 +2314,7 @@ const _sfc_main$1A = /* @__PURE__ */ defineComponent({
2314
2314
  }
2315
2315
  });
2316
2316
  const BSLink = /* @__PURE__ */ _export_sfc(_sfc_main$1A, [["__scopeId", "data-v-29df56e5"]]);
2317
- const _hoisted_1$1j = {
2317
+ const _hoisted_1$1i = {
2318
2318
  key: 0,
2319
2319
  class: "show-percent",
2320
2320
  style: { "left": "100%" }
@@ -2353,7 +2353,7 @@ const _sfc_main$1z = /* @__PURE__ */ defineComponent({
2353
2353
  style: normalizeStyle({ width: calculateProgress.value + "%" }),
2354
2354
  class: "inner-progressbar"
2355
2355
  }, [
2356
- calculateProgress.value !== void 0 && calculateProgress.value < 50 ? (openBlock(), createElementBlock("span", _hoisted_1$1j, toDisplayString(calculatePercent.value) + "% ", 1)) : (openBlock(), createElementBlock("span", _hoisted_2$Z, toDisplayString(calculatePercent.value) + "% ", 1))
2356
+ calculateProgress.value !== void 0 && calculateProgress.value < 50 ? (openBlock(), createElementBlock("span", _hoisted_1$1i, toDisplayString(calculatePercent.value) + "% ", 1)) : (openBlock(), createElementBlock("span", _hoisted_2$Z, toDisplayString(calculatePercent.value) + "% ", 1))
2357
2357
  ], 4)) : (openBlock(), createElementBlock("div", _hoisted_3$x, _cache[0] || (_cache[0] = [
2358
2358
  createElementVNode("div", { class: "in-box" }, null, -1)
2359
2359
  ])))
@@ -2383,9 +2383,9 @@ const _sfc_main$1y = /* @__PURE__ */ defineComponent({
2383
2383
  });
2384
2384
  const BSConsole = /* @__PURE__ */ _export_sfc(_sfc_main$1y, [["__scopeId", "data-v-f33a4477"]]);
2385
2385
  const _sfc_main$1x = {};
2386
- const _hoisted_1$1i = { class: "bs-loading-icon" };
2386
+ const _hoisted_1$1h = { class: "bs-loading-icon" };
2387
2387
  function _sfc_render$1(_ctx, _cache) {
2388
- return openBlock(), createElementBlock("div", _hoisted_1$1i, _cache[0] || (_cache[0] = [
2388
+ return openBlock(), createElementBlock("div", _hoisted_1$1h, _cache[0] || (_cache[0] = [
2389
2389
  createElementVNode("span", { class: "font-icon" }, "progress_activity", -1)
2390
2390
  ]));
2391
2391
  }
@@ -2660,7 +2660,7 @@ const formatUtil = {
2660
2660
  return tmp.textContent || tmp.innerText;
2661
2661
  }
2662
2662
  };
2663
- const _hoisted_1$1h = { class: "bs-date" };
2663
+ const _hoisted_1$1g = { class: "bs-date" };
2664
2664
  const _sfc_main$1w = /* @__PURE__ */ defineComponent({
2665
2665
  __name: "BSDate",
2666
2666
  props: {
@@ -2672,11 +2672,11 @@ const _sfc_main$1w = /* @__PURE__ */ defineComponent({
2672
2672
  const props = __props;
2673
2673
  const formatted = computed(() => formatUtil.formatDateString(props.value, props.format, props.timeZone));
2674
2674
  return (_ctx, _cache) => {
2675
- return openBlock(), createElementBlock("span", _hoisted_1$1h, toDisplayString(formatted.value), 1);
2675
+ return openBlock(), createElementBlock("span", _hoisted_1$1g, toDisplayString(formatted.value), 1);
2676
2676
  };
2677
2677
  }
2678
2678
  });
2679
- const _hoisted_1$1g = { class: "page-navigation" };
2679
+ const _hoisted_1$1f = { class: "page-navigation" };
2680
2680
  const _hoisted_2$Y = ["data-page", "onClick"];
2681
2681
  const _sfc_main$1v = /* @__PURE__ */ defineComponent({
2682
2682
  __name: "BSPageNavigation",
@@ -2738,7 +2738,7 @@ const _sfc_main$1v = /* @__PURE__ */ defineComponent({
2738
2738
  }
2739
2739
  };
2740
2740
  return (_ctx, _cache) => {
2741
- return openBlock(), createElementBlock("div", _hoisted_1$1g, [
2741
+ return openBlock(), createElementBlock("div", _hoisted_1$1f, [
2742
2742
  createElementVNode("span", {
2743
2743
  class: normalizeClass([{ "disabled": isFirstSet.value }, "font-icon first"]),
2744
2744
  onClick: _cache[0] || (_cache[0] = withModifiers(($event) => !isFirstSet.value && goToPage(1), ["prevent"]))
@@ -2767,7 +2767,7 @@ const _sfc_main$1v = /* @__PURE__ */ defineComponent({
2767
2767
  };
2768
2768
  }
2769
2769
  });
2770
- const _hoisted_1$1f = { class: "bs-calendar bs-layout-vertical-inline" };
2770
+ const _hoisted_1$1e = { class: "bs-calendar bs-layout-vertical-inline" };
2771
2771
  const _hoisted_2$X = { class: "bs-layout-horizontal justify-content-between align-items-center gap-8" };
2772
2772
  const _hoisted_3$w = { class: "year-month bs-layout-horizontal gap-4" };
2773
2773
  const _hoisted_4$l = { class: "timezone" };
@@ -2957,7 +2957,7 @@ const _sfc_main$1u = /* @__PURE__ */ defineComponent({
2957
2957
  }
2958
2958
  };
2959
2959
  return (_ctx, _cache) => {
2960
- return openBlock(), createElementBlock("div", _hoisted_1$1f, [
2960
+ return openBlock(), createElementBlock("div", _hoisted_1$1e, [
2961
2961
  createElementVNode("div", _hoisted_2$X, [
2962
2962
  createElementVNode("div", _hoisted_3$w, [
2963
2963
  createVNode(BSButton, {
@@ -3014,7 +3014,7 @@ const _sfc_main$1u = /* @__PURE__ */ defineComponent({
3014
3014
  }), 128))
3015
3015
  ])
3016
3016
  ], 2),
3017
- _ctx.resolution === "HOUR" || _ctx.resolution === "MINUTE_10" || _ctx.resolution === "MINUTE" ? (openBlock(), createElementBlock("div", _hoisted_7$4, [
3017
+ ["HOUR", "MINUTE_10", "MINUTE", "SECOND"].includes(_ctx.resolution) ? (openBlock(), createElementBlock("div", _hoisted_7$4, [
3018
3018
  createElementVNode("div", _hoisted_8$2, [
3019
3019
  createVNode(_sfc_main$1F, {
3020
3020
  disabled: _ctx.disabled,
@@ -3049,7 +3049,7 @@ const _sfc_main$1u = /* @__PURE__ */ defineComponent({
3049
3049
  };
3050
3050
  }
3051
3051
  });
3052
- const _hoisted_1$1e = { class: "bs-calendar-range bs-layout-horizontal" };
3052
+ const _hoisted_1$1d = { class: "bs-calendar-range bs-layout-horizontal" };
3053
3053
  const _hoisted_2$W = { class: "bs-layout-vertical" };
3054
3054
  const _hoisted_3$v = { class: "bs-layout-horizontal align-items-center" };
3055
3055
  const _hoisted_4$k = {
@@ -3097,7 +3097,7 @@ const _sfc_main$1t = /* @__PURE__ */ defineComponent({
3097
3097
  };
3098
3098
  const displayTimeZones = computed(() => [actualTimeZone.value, ...blueseaConfig.getValidDisplayTimeZones()]);
3099
3099
  return (_ctx, _cache) => {
3100
- return openBlock(), createElementBlock("div", _hoisted_1$1e, [
3100
+ return openBlock(), createElementBlock("div", _hoisted_1$1d, [
3101
3101
  createElementVNode("div", _hoisted_2$W, [
3102
3102
  createElementVNode("div", _hoisted_3$v, [
3103
3103
  createVNode(_sfc_main$1u, {
@@ -3155,7 +3155,7 @@ const _sfc_main$1t = /* @__PURE__ */ defineComponent({
3155
3155
  };
3156
3156
  }
3157
3157
  });
3158
- const _hoisted_1$1d = {
3158
+ const _hoisted_1$1c = {
3159
3159
  key: 0,
3160
3160
  class: "view-mode"
3161
3161
  };
@@ -3278,7 +3278,7 @@ const _sfc_main$1s = /* @__PURE__ */ defineComponent({
3278
3278
  class: normalizeClass([{ required: _ctx.required, disabled: _ctx.disabled, modified: modified.value, error: unref(errors).length > 0 }, "bs-number-input"]),
3279
3279
  style: normalizeStyle({ width: _ctx.width })
3280
3280
  }, [
3281
- _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$1d, [
3281
+ _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$1c, [
3282
3282
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(unref(componentUtil).toMultiLangTextArray(_ctx.prefix), (text) => {
3283
3283
  return withDirectives((openBlock(), createElementBlock("span", {
3284
3284
  key: JSON.stringify(text),
@@ -3344,7 +3344,7 @@ const _sfc_main$1s = /* @__PURE__ */ defineComponent({
3344
3344
  };
3345
3345
  }
3346
3346
  });
3347
- const _hoisted_1$1c = {
3347
+ const _hoisted_1$1b = {
3348
3348
  key: 0,
3349
3349
  class: "view-mode"
3350
3350
  };
@@ -3476,7 +3476,7 @@ const _sfc_main$1r = /* @__PURE__ */ defineComponent({
3476
3476
  class: normalizeClass([{ required: _ctx.required, disabled: _ctx.disabled, modified: modified.value, error: unref(errors).length > 0 }, "bs-price-input"]),
3477
3477
  style: normalizeStyle({ width: _ctx.width })
3478
3478
  }, [
3479
- _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$1c, [
3479
+ _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$1b, [
3480
3480
  createElementVNode("span", {
3481
3481
  class: "price mr-4",
3482
3482
  textContent: toDisplayString(_ctx.formatInViewMode ? formattedStringValue.value : unref(stringValue))
@@ -3701,7 +3701,7 @@ const NAMED_COLORS = {
3701
3701
  yellow: "#FFFF00",
3702
3702
  yellowgreen: "#9ACD32"
3703
3703
  };
3704
- const _hoisted_1$1b = {
3704
+ const _hoisted_1$1a = {
3705
3705
  key: 0,
3706
3706
  class: "bs-layout-horizontal gap-4 align-items-center view-mode"
3707
3707
  };
@@ -3802,7 +3802,7 @@ const _sfc_main$1q = /* @__PURE__ */ defineComponent({
3802
3802
  return openBlock(), createElementBlock("div", {
3803
3803
  class: normalizeClass([{ required: _ctx.required, disabled: _ctx.disabled, modified: modified.value, error: unref(errors).length > 0 }, "bs-color-input bs-layout-vertical-inline"])
3804
3804
  }, [
3805
- _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$1b, [
3805
+ _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$1a, [
3806
3806
  createElementVNode("span", {
3807
3807
  style: normalizeStyle({ "background-color": unref(stringValue) }),
3808
3808
  class: "color-preview"
@@ -3848,6 +3848,7 @@ dayjs.extend(timezone);
3848
3848
  const dateInputFormatByResolution = (resolution) => {
3849
3849
  if (resolution === "DAY") return "YYYYMMDD";
3850
3850
  else if (resolution === "HOUR") return "YYYYMMDDHH";
3851
+ else if (resolution === "SECOND") return "YYYYMMDDHHmmss";
3851
3852
  else return "YYYYMMDDHHmm";
3852
3853
  };
3853
3854
  const convertInputToDateString = (str, inputFormat, endTime, resolution, inputTimeZone, minDateValue, maxDateValue) => {
@@ -3899,7 +3900,7 @@ const checkDateMinMaxValue = (value, inputFormat, endTime, resolution, inputTime
3899
3900
  const normalizeDateInput = (value) => {
3900
3901
  return value.replace(/[^\d-]/g, "");
3901
3902
  };
3902
- const _hoisted_1$1a = { class: "bs-layout-vertical px-16 py-8" };
3903
+ const _hoisted_1$19 = { class: "bs-layout-vertical px-16 py-8" };
3903
3904
  const _hoisted_2$S = { class: "bs-layout-horizontal justify-content-center align-items-center gap-8 mt-8 mb-8" };
3904
3905
  const _sfc_main$1p = /* @__PURE__ */ defineComponent({
3905
3906
  __name: "BSDateInputPopup",
@@ -3938,7 +3939,7 @@ const _sfc_main$1p = /* @__PURE__ */ defineComponent({
3938
3939
  }, ["stop"]))
3939
3940
  }, {
3940
3941
  default: withCtx(() => [
3941
- createElementVNode("div", _hoisted_1$1a, [
3942
+ createElementVNode("div", _hoisted_1$19, [
3942
3943
  createVNode(_sfc_main$1u, {
3943
3944
  modelValue: date.value,
3944
3945
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => date.value = $event),
@@ -3969,7 +3970,7 @@ const _sfc_main$1p = /* @__PURE__ */ defineComponent({
3969
3970
  };
3970
3971
  }
3971
3972
  });
3972
- const _hoisted_1$19 = {
3973
+ const _hoisted_1$18 = {
3973
3974
  key: 0,
3974
3975
  class: "view-mode"
3975
3976
  };
@@ -4034,6 +4035,19 @@ const _sfc_main$1o = /* @__PURE__ */ defineComponent({
4034
4035
  );
4035
4036
  return formatUtil.formatDateString(date, props.displayFormat, displayTimeZone);
4036
4037
  };
4038
+ const viewModeValue = computed(() => viewModeTimeZoneValue(actualTimeZone.value));
4039
+ const viewModeTimeZoneValue = (displayTimeZone) => {
4040
+ const date = convertInputToDateString(
4041
+ props.modelValue,
4042
+ "SECOND",
4043
+ props.endTime,
4044
+ "SECOND",
4045
+ actualTimeZone.value,
4046
+ props.minDateValue,
4047
+ props.maxDateValue
4048
+ );
4049
+ return formatUtil.formatDateString(date, props.displayFormat, displayTimeZone);
4050
+ };
4037
4051
  const maxlength = computed(() => inputFormat.value.length);
4038
4052
  const rootRef = useTemplateRef("root");
4039
4053
  const field = ref();
@@ -4130,8 +4144,8 @@ const _sfc_main$1o = /* @__PURE__ */ defineComponent({
4130
4144
  style: normalizeStyle({ width: _ctx.width }),
4131
4145
  onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers(() => togglePopup(false), ["stop", "prevent"]), ["esc"]))
4132
4146
  }, [
4133
- _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$19, [
4134
- createElementVNode("span", null, toDisplayString(formattedValue.value), 1)
4147
+ _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$18, [
4148
+ createElementVNode("span", null, toDisplayString(viewModeValue.value), 1)
4135
4149
  ])) : (openBlock(), createElementBlock("div", _hoisted_2$R, [
4136
4150
  createElementVNode("span", {
4137
4151
  class: normalizeClass([{ "bs-clickable": !_ctx.disabled }, "font-icon"]),
@@ -4195,7 +4209,7 @@ const _sfc_main$1o = /* @__PURE__ */ defineComponent({
4195
4209
  };
4196
4210
  }
4197
4211
  });
4198
- const _hoisted_1$18 = { class: "bs-layout-vertical px-16 py-8" };
4212
+ const _hoisted_1$17 = { class: "bs-layout-vertical px-16 py-8" };
4199
4213
  const _hoisted_2$Q = { class: "bs-layout-horizontal justify-content-end align-items-center gap-8 mt-16 mb-8" };
4200
4214
  const _sfc_main$1n = /* @__PURE__ */ defineComponent({
4201
4215
  __name: "BSDateRangeInputPopup",
@@ -4235,7 +4249,7 @@ const _sfc_main$1n = /* @__PURE__ */ defineComponent({
4235
4249
  }, ["stop"]))
4236
4250
  }, {
4237
4251
  default: withCtx(() => [
4238
- createElementVNode("div", _hoisted_1$18, [
4252
+ createElementVNode("div", _hoisted_1$17, [
4239
4253
  createVNode(_sfc_main$1t, {
4240
4254
  from: fromValue.value,
4241
4255
  "onUpdate:from": _cache[0] || (_cache[0] = ($event) => fromValue.value = $event),
@@ -4270,7 +4284,7 @@ const _sfc_main$1n = /* @__PURE__ */ defineComponent({
4270
4284
  };
4271
4285
  }
4272
4286
  });
4273
- const _hoisted_1$17 = {
4287
+ const _hoisted_1$16 = {
4274
4288
  key: 0,
4275
4289
  class: "view-mode"
4276
4290
  };
@@ -4324,7 +4338,7 @@ const _sfc_main$1m = /* @__PURE__ */ defineComponent({
4324
4338
  const emit = __emit;
4325
4339
  const rootRef = useTemplateRef("root");
4326
4340
  const formattedDateRange = computed(() => {
4327
- return `${formattedFrom.value} ~ ${formattedTo.value}`;
4341
+ return `${viewModeFrom.value} ~ ${viewModeTo.value}`;
4328
4342
  });
4329
4343
  const actualTimeZone = computed(() => props.timeZone || blueseaConfig.timeZone);
4330
4344
  const inputFormat = computed(() => dateInputFormatByResolution(props.resolution));
@@ -4350,11 +4364,12 @@ const _sfc_main$1m = /* @__PURE__ */ defineComponent({
4350
4364
  const focusedTo = ref(false);
4351
4365
  const formattedFrom = computed(() => formattedTimeZoneFrom(actualTimeZone.value));
4352
4366
  const formattedTimeZoneFrom = (timeZone) => {
4367
+ const resolution = props.resolution === "MINUTE_10" ? "MINUTE" : props.resolution;
4353
4368
  const date = convertInputToDateString(
4354
4369
  stringValueFrom.value,
4355
4370
  inputFormat.value,
4356
4371
  false,
4357
- props.resolution,
4372
+ resolution,
4358
4373
  actualTimeZone.value,
4359
4374
  props.minDateValue,
4360
4375
  props.maxDateValue
@@ -4374,6 +4389,20 @@ const _sfc_main$1m = /* @__PURE__ */ defineComponent({
4374
4389
  );
4375
4390
  return formatUtil.formatDateString(date, props.displayFormat, timeZone);
4376
4391
  };
4392
+ const viewModeFrom = computed(() => viewModeTimeZoneValue(props.fromValue, false, actualTimeZone.value));
4393
+ const viewModeTo = computed(() => viewModeTimeZoneValue(props.toValue, true, actualTimeZone.value));
4394
+ const viewModeTimeZoneValue = (value, endTime, displayTimeZone) => {
4395
+ const date = convertInputToDateString(
4396
+ value,
4397
+ "SECOND",
4398
+ endTime,
4399
+ "SECOND",
4400
+ actualTimeZone.value,
4401
+ props.minDateValue,
4402
+ props.maxDateValue
4403
+ );
4404
+ return formatUtil.formatDateString(date, props.displayFormat, displayTimeZone);
4405
+ };
4377
4406
  const maxlength = computed(() => inputFormat.value.length);
4378
4407
  const disabled = computed(() => props.disabledFrom && props.disabledTo);
4379
4408
  const fieldFrom = ref();
@@ -4563,7 +4592,7 @@ const _sfc_main$1m = /* @__PURE__ */ defineComponent({
4563
4592
  style: normalizeStyle({ width: _ctx.width }),
4564
4593
  onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers(() => togglePopup(false), ["stop", "prevent"]), ["esc"]))
4565
4594
  }, [
4566
- _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$17, [
4595
+ _ctx.viewMode ? (openBlock(), createElementBlock("div", _hoisted_1$16, [
4567
4596
  createElementVNode("span", null, toDisplayString(formattedDateRange.value), 1)
4568
4597
  ])) : (openBlock(), createElementBlock("div", _hoisted_2$P, [
4569
4598
  createElementVNode("span", {
@@ -4717,7 +4746,7 @@ const resolveYearsAgo = (years, from2, timeZone, baseDate) => {
4717
4746
  const today = dayjs().tz(timeZone);
4718
4747
  return from2 ? today.add(-years, "year").startOf("year") : today.add(-years, "year").endOf("year");
4719
4748
  };
4720
- const _hoisted_1$16 = ["id", "checked", "disabled", "name", "tabindex"];
4749
+ const _hoisted_1$15 = ["id", "checked", "disabled", "name", "tabindex"];
4721
4750
  const _hoisted_2$O = ["for"];
4722
4751
  const _hoisted_3$p = {
4723
4752
  key: 0,
@@ -4771,7 +4800,7 @@ const _sfc_main$1l = /* @__PURE__ */ defineComponent({
4771
4800
  class: "",
4772
4801
  role: "radio",
4773
4802
  type: "radio"
4774
- }, toHandlers(handlers2, true)), null, 16, _hoisted_1$16),
4803
+ }, toHandlers(handlers2, true)), null, 16, _hoisted_1$15),
4775
4804
  createElementVNode("label", { for: _ctx.id }, [
4776
4805
  _ctx.icon ? (openBlock(), createElementBlock("span", _hoisted_3$p, toDisplayString(_ctx.icon), 1)) : createCommentVNode("", true),
4777
4806
  _ctx.label ? withDirectives((openBlock(), createElementBlock("span", _hoisted_4$g, null, 512)), [
@@ -4789,7 +4818,7 @@ const _sfc_main$1l = /* @__PURE__ */ defineComponent({
4789
4818
  };
4790
4819
  }
4791
4820
  });
4792
- const _hoisted_1$15 = ["data-name"];
4821
+ const _hoisted_1$14 = ["data-name"];
4793
4822
  const _hoisted_2$N = { key: 0 };
4794
4823
  const _sfc_main$1k = /* @__PURE__ */ defineComponent({
4795
4824
  __name: "BSRadioButtonGroup",
@@ -4899,7 +4928,7 @@ const _sfc_main$1k = /* @__PURE__ */ defineComponent({
4899
4928
  errors: unref(errors),
4900
4929
  "hide-error-message": _ctx.hideErrorMessage
4901
4930
  }, null, 8, ["errors", "hide-error-message"])) : createCommentVNode("", true)
4902
- ], 10, _hoisted_1$15);
4931
+ ], 10, _hoisted_1$14);
4903
4932
  };
4904
4933
  }
4905
4934
  });
@@ -4957,7 +4986,7 @@ const _sfc_main$1j = /* @__PURE__ */ defineComponent({
4957
4986
  };
4958
4987
  }
4959
4988
  });
4960
- const _hoisted_1$14 = ["id", "checked", "disabled", "name", "tabindex"];
4989
+ const _hoisted_1$13 = ["id", "checked", "disabled", "name", "tabindex"];
4961
4990
  const _hoisted_2$M = ["for"];
4962
4991
  const _hoisted_3$o = ["for"];
4963
4992
  const _sfc_main$1i = /* @__PURE__ */ defineComponent({
@@ -5016,7 +5045,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
5016
5045
  tabindex: _ctx.tabindex,
5017
5046
  class: "",
5018
5047
  type: "checkbox"
5019
- }, toHandlers(handlers2, true)), null, 16, _hoisted_1$14),
5048
+ }, toHandlers(handlers2, true)), null, 16, _hoisted_1$13),
5020
5049
  _ctx.label ? withDirectives((openBlock(), createElementBlock("label", {
5021
5050
  key: 0,
5022
5051
  for: _ctx.id,
@@ -5035,7 +5064,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
5035
5064
  };
5036
5065
  }
5037
5066
  });
5038
- const _hoisted_1$13 = ["data-name"];
5067
+ const _hoisted_1$12 = ["data-name"];
5039
5068
  const _hoisted_2$L = { class: "items" };
5040
5069
  const _hoisted_3$n = ["textContent"];
5041
5070
  const _sfc_main$1h = /* @__PURE__ */ defineComponent({
@@ -5161,7 +5190,7 @@ const _sfc_main$1h = /* @__PURE__ */ defineComponent({
5161
5190
  errors: unref(errors),
5162
5191
  "hide-error-message": _ctx.hideErrorMessage
5163
5192
  }, null, 8, ["errors", "hide-error-message"])) : createCommentVNode("", true)
5164
- ], 10, _hoisted_1$13);
5193
+ ], 10, _hoisted_1$12);
5165
5194
  };
5166
5195
  }
5167
5196
  });
@@ -5211,7 +5240,7 @@ const _sfc_main$1g = /* @__PURE__ */ defineComponent({
5211
5240
  };
5212
5241
  }
5213
5242
  });
5214
- const _hoisted_1$12 = ["tabindex", "onKeydown"];
5243
+ const _hoisted_1$11 = ["tabindex", "onKeydown"];
5215
5244
  const _hoisted_2$K = { key: 0 };
5216
5245
  const _hoisted_3$m = {
5217
5246
  key: 0,
@@ -5413,7 +5442,7 @@ const _sfc_main$1f = /* @__PURE__ */ defineComponent({
5413
5442
  errors: unref(errors),
5414
5443
  "hide-error-message": _ctx.hideErrorMessage
5415
5444
  }, null, 8, ["errors", "hide-error-message"])) : createCommentVNode("", true)
5416
- ], 42, _hoisted_1$12)), [
5445
+ ], 42, _hoisted_1$11)), [
5417
5446
  [unref(vClickOutside), () => togglePopup(false)]
5418
5447
  ]);
5419
5448
  };
@@ -5574,7 +5603,7 @@ const vTreeRowDrop = {
5574
5603
  }
5575
5604
  }
5576
5605
  };
5577
- const _hoisted_1$11 = { class: "bs-tree-row" };
5606
+ const _hoisted_1$10 = { class: "bs-tree-row" };
5578
5607
  const _hoisted_2$J = ["textContent"];
5579
5608
  const _hoisted_3$l = {
5580
5609
  key: 1,
@@ -5680,7 +5709,7 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
5680
5709
  };
5681
5710
  return (_ctx, _cache) => {
5682
5711
  const _component_BSTreeRow = resolveComponent("BSTreeRow", true);
5683
- return openBlock(), createElementBlock("div", _hoisted_1$11, [
5712
+ return openBlock(), createElementBlock("div", _hoisted_1$10, [
5684
5713
  withDirectives((openBlock(), createElementBlock("div", {
5685
5714
  ref: "row-caption",
5686
5715
  class: normalizeClass([{ disabled: _ctx.disabledProvider && _ctx.disabledProvider(_ctx.row) }, "row-caption"])
@@ -5746,7 +5775,6 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
5746
5775
  };
5747
5776
  }
5748
5777
  });
5749
- const _hoisted_1$10 = { class: "tree-wrap pb-80" };
5750
5778
  const _sfc_main$1d = /* @__PURE__ */ defineComponent({
5751
5779
  __name: "BSTree",
5752
5780
  props: {
@@ -5763,7 +5791,8 @@ const _sfc_main$1d = /* @__PURE__ */ defineComponent({
5763
5791
  multiSelect: { type: Boolean },
5764
5792
  showCheckbox: { type: Boolean },
5765
5793
  rowDisabledProvider: {},
5766
- contextMenuProvider: {}
5794
+ contextMenuProvider: {},
5795
+ bottomPadding: { default: "80px" }
5767
5796
  },
5768
5797
  emits: ["update:expandedRows", "before:selectedRows", "update:selectedRows", "rowMoved"],
5769
5798
  setup(__props, { emit: __emit }) {
@@ -5878,7 +5907,10 @@ const _sfc_main$1d = /* @__PURE__ */ defineComponent({
5878
5907
  class: "bs-tree",
5879
5908
  onContextmenu: showOutsideContextMenu
5880
5909
  }, [
5881
- createElementVNode("div", _hoisted_1$10, [
5910
+ createElementVNode("div", {
5911
+ style: normalizeStyle({ "padding-bottom": _ctx.bottomPadding }),
5912
+ class: "tree-wrap"
5913
+ }, [
5882
5914
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(_ctx.data, (item) => {
5883
5915
  return openBlock(), createBlock(_sfc_main$1e, {
5884
5916
  key: _ctx.keyProvider(item),
@@ -5900,7 +5932,7 @@ const _sfc_main$1d = /* @__PURE__ */ defineComponent({
5900
5932
  onSelectRow: selectRow
5901
5933
  }, null, 8, ["children-provider", "disabled-provider", "enable-drag-and-drop", "icon-provider", "key-provider", "label-provider", "multi-select", "row", "show-checkbox", "show-move-button", "siblings"]);
5902
5934
  }), 128))
5903
- ])
5935
+ ], 4)
5904
5936
  ], 32);
5905
5937
  };
5906
5938
  }
@@ -5968,7 +6000,7 @@ class BSModal {
5968
6000
  }
5969
6001
  openAlert(title, message, clickHandler2) {
5970
6002
  const option = {
5971
- component: defineAsyncComponent(() => import("./BSAlertModal-BixCrZDD.js")),
6003
+ component: defineAsyncComponent(() => import("./BSAlertModal-BsYimMJ_.js")),
5972
6004
  bind: {
5973
6005
  title,
5974
6006
  message
@@ -5981,7 +6013,7 @@ class BSModal {
5981
6013
  }
5982
6014
  openYesNo(title, message, yesHandler, noHandler) {
5983
6015
  const option = {
5984
- component: defineAsyncComponent(() => import("./BSYesNoModal-B5lERw_k.js")),
6016
+ component: defineAsyncComponent(() => import("./BSYesNoModal-Cc1Nki9Z.js")),
5985
6017
  bind: {
5986
6018
  title,
5987
6019
  message
@@ -6562,7 +6594,7 @@ const _sfc_main$1c = /* @__PURE__ */ defineComponent({
6562
6594
  }, ["stop"]))
6563
6595
  }, {
6564
6596
  default: withCtx(() => [
6565
- createVNode(_sfc_main$1d, mergeProps(unref(treeHandler).tree, toHandlers(unref(treeHandler).treeEventListener)), null, 16)
6597
+ createVNode(_sfc_main$1d, mergeProps({ "bottom-padding": "0" }, unref(treeHandler).tree, toHandlers(unref(treeHandler).treeEventListener)), null, 16)
6566
6598
  ]),
6567
6599
  _: 1
6568
6600
  }, 8, ["base-element", "max-height", "popup-align", "popup-direction"])) : createCommentVNode("", true),
@@ -6753,6 +6785,7 @@ const _sfc_main$1b = /* @__PURE__ */ defineComponent({
6753
6785
  }, {
6754
6786
  default: withCtx(() => [
6755
6787
  createVNode(_sfc_main$1d, mergeProps({
6788
+ "bottom-padding": "0",
6756
6789
  "multi-select": "",
6757
6790
  "show-checkbox": ""
6758
6791
  }, unref(treeHandler).tree, toHandlers(unref(treeHandler).treeEventListener), {
@@ -28352,43 +28385,6 @@ const TableRow = Node2.create({
28352
28385
  return ["tr", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
28353
28386
  }
28354
28387
  });
28355
- const TableCell = Node2.create({
28356
- name: "tableCell",
28357
- addOptions() {
28358
- return {
28359
- HTMLAttributes: {}
28360
- };
28361
- },
28362
- content: "block+",
28363
- addAttributes() {
28364
- return {
28365
- colspan: {
28366
- default: 1
28367
- },
28368
- rowspan: {
28369
- default: 1
28370
- },
28371
- colwidth: {
28372
- default: null,
28373
- parseHTML: (element) => {
28374
- const colwidth = element.getAttribute("colwidth");
28375
- const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
28376
- return value;
28377
- }
28378
- }
28379
- };
28380
- },
28381
- tableRole: "cell",
28382
- isolating: true,
28383
- parseHTML() {
28384
- return [
28385
- { tag: "td" }
28386
- ];
28387
- },
28388
- renderHTML({ HTMLAttributes }) {
28389
- return ["td", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
28390
- }
28391
- });
28392
28388
  const _hoisted_1$X = { class: "tool-button-font-size bs-layout-horizontal align-items-center" };
28393
28389
  const _hoisted_2$E = ["disabled", "value"];
28394
28390
  const _sfc_main$18 = /* @__PURE__ */ defineComponent({
@@ -31022,10 +31018,11 @@ const renderHTMLAttr = (attr) => {
31022
31018
  const parseHTMLStyle = (attr) => {
31023
31019
  return (element) => element.style[attr];
31024
31020
  };
31025
- const renderHTMLStyle = (attr) => {
31021
+ const renderHTMLStyle = (attr, attrName2) => {
31026
31022
  return (attrs) => {
31027
31023
  const kebabCaseName = attr.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
31028
- return attrs[attr] ? { style: `${kebabCaseName}: ${attrs[attr]}` } : void 0;
31024
+ const value = attrs[attrName2 || attr];
31025
+ return value ? { style: `${kebabCaseName}: ${value}` } : void 0;
31029
31026
  };
31030
31027
  };
31031
31028
  const createStyleString = (attr, names) => {
@@ -31038,6 +31035,15 @@ const RichTextTable = Table.extend({
31038
31035
  height: { parseHTML: parseHTMLStyle("height"), renderHTML: renderHTMLStyle("height") },
31039
31036
  maxWidth: { parseHTML: parseHTMLStyle("maxWidth"), renderHTML: renderHTMLStyle("maxWidth") },
31040
31037
  maxHeight: { parseHTML: parseHTMLStyle("maxHeight"), renderHTML: renderHTMLStyle("maxHeight") },
31038
+ marginLeft: { parseHTML: parseHTMLStyle("marginLeft"), renderHTML: renderHTMLStyle("marginLeft") },
31039
+ marginTop: { parseHTML: parseHTMLStyle("marginTop"), renderHTML: renderHTMLStyle("marginTop") },
31040
+ marginRight: { parseHTML: parseHTMLStyle("marginRight"), renderHTML: renderHTMLStyle("marginRight") },
31041
+ marginBottom: { parseHTML: parseHTMLStyle("marginBottom"), renderHTML: renderHTMLStyle("marginBottom") },
31042
+ tableAlign: {
31043
+ default: "",
31044
+ parseHTML: parseHTMLStyle("alignSelf"),
31045
+ renderHTML: renderHTMLStyle("alignSelf", "tableAlign")
31046
+ },
31041
31047
  class: {
31042
31048
  default: void 0,
31043
31049
  parseHTML: (element) => element.className,
@@ -31050,6 +31056,13 @@ const RichTextTable = Table.extend({
31050
31056
  renderHTML: (props) => {
31051
31057
  var _a2;
31052
31058
  const result = (_a2 = Table.config.renderHTML) == null ? void 0 : _a2.apply(Table, [props]);
31059
+ if (Array.isArray(result) && result.length > 1) {
31060
+ const attrs = result[1];
31061
+ attrs.style = props.HTMLAttributes.style;
31062
+ }
31063
+ if (Array.isArray(result) && result.length > 2 && result[2][0] === "colgroup") {
31064
+ result.splice(2, 1);
31065
+ }
31053
31066
  return [
31054
31067
  "div",
31055
31068
  { class: "table-wrapper" },
@@ -31113,13 +31126,13 @@ const tableContextMenus = (modal, editor) => {
31113
31126
  };
31114
31127
  const showTableProperties = (modal, editor) => {
31115
31128
  modal.openModal({
31116
- component: defineAsyncComponent(() => import("./TablePropertiesModal-BAxcByTD.js")),
31129
+ component: defineAsyncComponent(() => import("./TablePropertiesModal-H8Ohz-Xv.js")),
31117
31130
  bind: { editor }
31118
31131
  });
31119
31132
  };
31120
31133
  const insertTable = (modal, editor) => {
31121
31134
  modal.openModal({
31122
- component: defineAsyncComponent(() => import("./TableInsertModal-BhyzkcTU.js")),
31135
+ component: defineAsyncComponent(() => import("./TableInsertModal-D0cHwmgl.js")),
31123
31136
  bind: { editor }
31124
31137
  });
31125
31138
  };
@@ -31284,7 +31297,7 @@ const insertImage = (modal, editor) => {
31284
31297
  const component = (_a2 = blueseaConfig.componentConfig.richText) == null ? void 0 : _a2.imageInsertModal;
31285
31298
  if (component) {
31286
31299
  modal.openModal({
31287
- component: defineAsyncComponent(() => import("./ImageInsertModal-DvKLXL1n.js")),
31300
+ component: defineAsyncComponent(() => import("./ImageInsertModal-CO6NeKVX.js")),
31288
31301
  bind: { editor },
31289
31302
  on: {
31290
31303
  insertImage: (image) => {
@@ -31302,7 +31315,7 @@ const insertImage = (modal, editor) => {
31302
31315
  };
31303
31316
  const showImageProperties = (modal, editor) => {
31304
31317
  modal.openModal({
31305
- component: defineAsyncComponent(() => import("./ImagePropertiesModal-Dsg6BS63.js")),
31318
+ component: defineAsyncComponent(() => import("./ImagePropertiesModal-NMjlJ5hA.js")),
31306
31319
  bind: { editor }
31307
31320
  });
31308
31321
  };
@@ -31595,16 +31608,23 @@ const RichTextYoutube = Youtube.extend({
31595
31608
  start: {
31596
31609
  default: 0
31597
31610
  },
31598
- width: { parseHTML: parseHTMLStyle("width"), renderHTML: renderHTMLStyle("width") },
31599
- height: { parseHTML: parseHTMLStyle("height"), renderHTML: renderHTMLStyle("height") },
31600
- maxWidth: { parseHTML: parseHTMLStyle("maxWidth"), renderHTML: renderHTMLStyle("maxWidth") },
31601
- maxHeight: { parseHTML: parseHTMLStyle("maxHeight"), renderHTML: renderHTMLStyle("maxHeight") },
31602
- marginLeft: { parseHTML: parseHTMLStyle("marginLeft"), renderHTML: renderHTMLStyle("marginLeft") },
31603
- marginTop: { parseHTML: parseHTMLStyle("marginTop"), renderHTML: renderHTMLStyle("marginTop") },
31604
- marginRight: { parseHTML: parseHTMLStyle("marginRight"), renderHTML: renderHTMLStyle("marginRight") },
31605
- marginBottom: { parseHTML: parseHTMLStyle("marginBottom"), renderHTML: renderHTMLStyle("marginBottom") }
31611
+ width: { parseHTML: parseWrapperHTMLStyle("width"), renderHTML: renderHTMLStyle("width") },
31612
+ height: { parseHTML: parseWrapperHTMLStyle("height"), renderHTML: renderHTMLStyle("height") },
31613
+ maxWidth: { parseHTML: parseWrapperHTMLStyle("maxWidth"), renderHTML: renderHTMLStyle("maxWidth") },
31614
+ maxHeight: { parseHTML: parseWrapperHTMLStyle("maxHeight"), renderHTML: renderHTMLStyle("maxHeight") },
31615
+ marginLeft: { parseHTML: parseWrapperHTMLStyle("marginLeft"), renderHTML: renderHTMLStyle("marginLeft") },
31616
+ marginTop: { parseHTML: parseWrapperHTMLStyle("marginTop"), renderHTML: renderHTMLStyle("marginTop") },
31617
+ marginRight: { parseHTML: parseWrapperHTMLStyle("marginRight"), renderHTML: renderHTMLStyle("marginRight") },
31618
+ marginBottom: { parseHTML: parseWrapperHTMLStyle("marginBottom"), renderHTML: renderHTMLStyle("marginBottom") }
31606
31619
  };
31607
31620
  },
31621
+ parseHTML() {
31622
+ return [
31623
+ {
31624
+ tag: "span[data-youtube-video] iframe"
31625
+ }
31626
+ ];
31627
+ },
31608
31628
  // Youtube extension 에서는 div 로 감싸는데, p 안에 div 가 들어갈 수 없어, span 으로 변경함.
31609
31629
  renderHTML: (props) => {
31610
31630
  var _a2;
@@ -31616,14 +31636,21 @@ const RichTextYoutube = Youtube.extend({
31616
31636
  const iframeAttr = result[2][1];
31617
31637
  delete iframeAttr.width;
31618
31638
  delete iframeAttr.height;
31619
- iframeAttr.style = `width: 100%; height:100%;`;
31639
+ iframeAttr.style = `width: 100%; height:100%; ${args.style};`;
31620
31640
  return ["span", args, [iframe, iframeAttr]];
31621
31641
  }
31622
31642
  return "span";
31623
31643
  }
31624
31644
  });
31645
+ const parseWrapperHTMLStyle = (attr) => {
31646
+ return (element) => {
31647
+ var _a2;
31648
+ return (_a2 = element.parentElement) == null ? void 0 : _a2.style[attr];
31649
+ };
31650
+ };
31625
31651
  const createWrapperStyle = (attrs) => {
31626
31652
  if (!attrs.aspectRatio) attrs.aspectRatio = "16/9";
31653
+ if (!attrs.width) attrs.width = "100%";
31627
31654
  attrs = normalizeYoutubeInfoData(attrs);
31628
31655
  const styleKeys = ["aspectRatio", "width", "height", "maxWidth", "maxHeight", "marginLeft", "marginTop", "marginRight", "marginBottom"];
31629
31656
  const styles = [];
@@ -31649,13 +31676,13 @@ const youtubeContextMenu = (modal, editor) => {
31649
31676
  };
31650
31677
  const insertYoutube = (modal, editor) => {
31651
31678
  modal.openModal({
31652
- component: defineAsyncComponent(() => import("./YoutubeInsertModal-EU6G-021.js")),
31679
+ component: defineAsyncComponent(() => import("./YoutubeInsertModal-CL4QiU4m.js")),
31653
31680
  bind: { editor }
31654
31681
  });
31655
31682
  };
31656
31683
  const showYoutubeProperties = (modal, editor) => {
31657
31684
  modal.openModal({
31658
- component: defineAsyncComponent(() => import("./YoutubePropertiesModal-CRy6zJwZ.js")),
31685
+ component: defineAsyncComponent(() => import("./YoutubePropertiesModal-DaHvv9Df.js")),
31659
31686
  bind: { editor }
31660
31687
  });
31661
31688
  };
@@ -31699,7 +31726,7 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
31699
31726
  const showLinkProperties = () => {
31700
31727
  if (!props.disabled) {
31701
31728
  modal.openModal({
31702
- component: defineAsyncComponent(() => import("./LinkPropertiesModal-Ct0ykD4j.js")),
31729
+ component: defineAsyncComponent(() => import("./LinkPropertiesModal-CFQucomV.js")),
31703
31730
  bind: {
31704
31731
  editor: props.editor
31705
31732
  }
@@ -32064,7 +32091,7 @@ const insertVideo = (modal, editor) => {
32064
32091
  const component = (_a2 = blueseaConfig.componentConfig.richText) == null ? void 0 : _a2.videoInsertModal;
32065
32092
  if (component) {
32066
32093
  modal.openModal({
32067
- component: defineAsyncComponent(() => import("./VideoInsertModal-BAwRYBzU.js")),
32094
+ component: defineAsyncComponent(() => import("./VideoInsertModal-DR06SKIA.js")),
32068
32095
  bind: { editor },
32069
32096
  on: {
32070
32097
  insertVideo: (video) => {
@@ -32082,7 +32109,7 @@ const insertVideo = (modal, editor) => {
32082
32109
  };
32083
32110
  const showVideoProperties = (modal, editor) => {
32084
32111
  modal.openModal({
32085
- component: defineAsyncComponent(() => import("./VideoPropertiesModal-B2FeEw4W.js")),
32112
+ component: defineAsyncComponent(() => import("./VideoPropertiesModal-BvwmSEP-.js")),
32086
32113
  bind: { editor }
32087
32114
  });
32088
32115
  };
@@ -33988,6 +34015,70 @@ class RichTextTableView {
33988
34015
  }
33989
34016
  const richTextContentStyle = '.rich-text-content {\n font-size: 14px;\n}\n.rich-text-content * {\n line-height: 1.4em;\n}\n.rich-text-content p {\n margin: 0 0 4px 0;\n padding: 0;\n}\n.rich-text-content p:empty:before {\n content: " ";\n white-space: pre;\n}\n.rich-text-content pre {\n background-color: #eee;\n padding: 8px;\n margin: 8px 0;\n border-radius: 4px;\n font-family: "Lucida Console", sans-serif;\n}\n.rich-text-content h1 {\n font-size: 1.8rem;\n margin: 1rem 0 0.4rem;\n}\n.rich-text-content h2 {\n font-size: 1.6rem;\n margin: 0.6rem 0 0.2rem;\n}\n.rich-text-content h3 {\n font-size: 1.4rem;\n margin: 0.4rem 0 0.2rem;\n}\n.rich-text-content h4 {\n font-size: 1.2rem;\n margin: 0.4rem 0 0.2rem;\n}\n.rich-text-content ul {\n padding-left: 1em;\n}\n.rich-text-content ul li {\n list-style: inside disc;\n}\n.rich-text-content ul li > ul > li {\n list-style: inside circle;\n}\n.rich-text-content ul li > ul > li > ul > li {\n list-style: inside square;\n}\n.rich-text-content ul li > p {\n display: inline;\n}\n.rich-text-content ol {\n padding-left: 1em;\n}\n.rich-text-content ol li {\n list-style: inside decimal;\n}\n.rich-text-content ol li > ol > li {\n list-style: inside lower-alpha;\n}\n.rich-text-content ol li > ol > li > ol > li {\n list-style: inside lower-roman;\n}\n.rich-text-content ol li > p {\n display: inline;\n}\n.rich-text-content > div > ul, .rich-text-content > div > ol {\n margin: 8px 0;\n}\n.rich-text-content em {\n font-style: italic;\n}\n.rich-text-content .table-wrapper {\n margin: 0.5rem 0;\n overflow-x: auto;\n display: flex;\n flex-direction: column;\n}\n.rich-text-content table {\n border-collapse: collapse;\n text-align: left;\n}\n.rich-text-content table > tr > th, .rich-text-content table > tr > td, .rich-text-content table > tbody > tr > th, .rich-text-content table > tbody > tr > td {\n border: 1px solid #ccc;\n box-sizing: border-box;\n padding: 6px 8px;\n vertical-align: top;\n}\n.rich-text-content table > tr > th > p, .rich-text-content table > tr > td > p, .rich-text-content table > tbody > tr > th > p, .rich-text-content table > tbody > tr > td > p {\n margin-bottom: 0;\n}\n.rich-text-content img {\n display: inline-block;\n height: auto;\n margin: 0.5rem 0;\n max-width: 100%;\n}\n.rich-text-content span[data-youtube-video] {\n padding-right: 0.5rem;\n display: inline-block;\n}\n.rich-text-content span[data-youtube-video] iframe {\n border: 0.5rem solid var(--black-contrast);\n outline: 0 solid transparent;\n}';
33990
34017
  const richTextContainerStyle = ':root {\n --body-bg: #ffffff;\n --gray-400: #A9A9A9;\n --primary: #5672EF;\n --icon-font-family: Material Symbols Outlined, monospace;\n}\n\n.bs-rich-text-editor {\n width: 100%;\n box-sizing: border-box;\n overflow: auto;\n padding: 8px;\n margin: 0 auto;\n background-color: var(--body-bg);\n align-self: center;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.2);\n /* table */\n /* image */\n /* youtube */\n}\n.bs-rich-text-editor > .tiptap {\n width: 100%;\n flex-grow: 1;\n}\n.bs-rich-text-editor > .tiptap:focus {\n outline: 0;\n}\n.bs-rich-text-editor table {\n table-layout: fixed;\n}\n.bs-rich-text-editor table td,\n.bs-rich-text-editor table th {\n min-width: 1em;\n position: relative;\n}\n.bs-rich-text-editor table td > *,\n.bs-rich-text-editor table th > * {\n margin-bottom: 0;\n}\n.bs-rich-text-editor table th {\n font-weight: bold;\n text-align: left;\n}\n.bs-rich-text-editor table .selectedCell:after {\n background: var(--gray-400);\n opacity: 0.3;\n content: "";\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n position: absolute;\n z-index: 1;\n}\n.bs-rich-text-editor table .column-resize-handle {\n background-color: var(--primary);\n bottom: -2px;\n pointer-events: none;\n position: absolute;\n right: -2px;\n top: 0;\n width: 4px;\n z-index: 2;\n}\n.bs-rich-text-editor img, .bs-rich-text-editor video {\n user-select: auto;\n}\n.bs-rich-text-editor img.ProseMirror-selectednode, .bs-rich-text-editor video.ProseMirror-selectednode {\n outline: 3px solid var(--primary);\n position: relative;\n transition: outline 0.15s;\n z-index: 1;\n}\n.bs-rich-text-editor span[data-youtube-video] {\n position: relative;\n cursor: move;\n}\n.bs-rich-text-editor span[data-youtube-video] iframe {\n user-select: auto;\n}\n.bs-rich-text-editor span[data-youtube-video].ProseMirror-selectednode iframe {\n outline: 3px solid var(--primary);\n transition: outline 0.15s;\n}\n.bs-rich-text-editor span[data-youtube-video]::after {\n content: "menu";\n font-family: var(--icon-font-family);\n position: absolute;\n background-color: white;\n border-radius: 4px;\n padding: 4px;\n left: 8px;\n top: 8px;\n font-size: 20px;\n line-height: 1em;\n}';
34018
+ const TableCell = Node2.create({
34019
+ name: "tableCell",
34020
+ addOptions() {
34021
+ return {
34022
+ HTMLAttributes: {}
34023
+ };
34024
+ },
34025
+ content: "block+",
34026
+ addAttributes() {
34027
+ return {
34028
+ colspan: {
34029
+ default: 1
34030
+ },
34031
+ rowspan: {
34032
+ default: 1
34033
+ },
34034
+ colwidth: {
34035
+ default: null,
34036
+ parseHTML: (element) => {
34037
+ const colwidth = element.getAttribute("colwidth");
34038
+ const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
34039
+ return value;
34040
+ }
34041
+ }
34042
+ };
34043
+ },
34044
+ tableRole: "cell",
34045
+ isolating: true,
34046
+ parseHTML() {
34047
+ return [
34048
+ { tag: "td" }
34049
+ ];
34050
+ },
34051
+ renderHTML({ HTMLAttributes }) {
34052
+ return ["td", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
34053
+ }
34054
+ });
34055
+ const RichTextTableCell = TableCell.extend({
34056
+ addAttributes() {
34057
+ var _a2;
34058
+ return {
34059
+ ...(_a2 = this.parent) == null ? void 0 : _a2.call(this),
34060
+ width: { parseHTML: parseHTMLStyle("width"), renderHTML: renderHTMLStyle("width") },
34061
+ colspan: {
34062
+ default: 1,
34063
+ parseHTML: (el) => {
34064
+ return Number(el.getAttribute("colspan")) || 1;
34065
+ },
34066
+ renderHTML: (attrs) => {
34067
+ if ((attrs.colspan || 1) > 1) return { colspan: attrs.colspan };
34068
+ }
34069
+ },
34070
+ rowspan: {
34071
+ default: 1,
34072
+ parseHTML: (el) => {
34073
+ return Number(el.getAttribute("rowspan")) || 1;
34074
+ },
34075
+ renderHTML: (attrs) => {
34076
+ if ((attrs.rowspan || 1) > 1) return { rowspan: attrs.rowspan };
34077
+ }
34078
+ }
34079
+ };
34080
+ }
34081
+ });
33991
34082
  const _hoisted_1$M = ["innerHTML"];
33992
34083
  const _hoisted_2$x = { class: "editor-container" };
33993
34084
  const WRAP_BEGIN = '<div class="rich-text-content">';
@@ -34041,14 +34132,14 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
34041
34132
  inline: true
34042
34133
  }),
34043
34134
  RichTextTable.configure({
34044
- resizable: true,
34045
- lastColumnResizable: true,
34135
+ resizable: false,
34136
+ lastColumnResizable: false,
34046
34137
  allowTableNodeSelection: true,
34047
34138
  View: RichTextTableView
34048
34139
  }),
34049
34140
  TableHeader,
34050
34141
  TableRow,
34051
- TableCell,
34142
+ RichTextTableCell,
34052
34143
  RichTextYoutube.configure({
34053
34144
  inline: true,
34054
34145
  controls: false,
@@ -34168,10 +34259,19 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
34168
34259
  const doc2 = iframeRef.value.contentWindow.document;
34169
34260
  const context = {
34170
34261
  iframeDocument: doc2,
34262
+ fontLinks: [
34263
+ "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block"
34264
+ ],
34171
34265
  editorStyles: [richTextContainerStyle],
34172
34266
  contentStyles: [richTextContentStyle]
34173
34267
  };
34174
34268
  emit("editorIframeReady", context);
34269
+ context.fontLinks.forEach((font) => {
34270
+ const link = doc2.createElement("link");
34271
+ link.setAttribute("href", font);
34272
+ link.setAttribute("rel", "stylesheet");
34273
+ doc2.head.appendChild(link);
34274
+ });
34175
34275
  const styles = [...context.editorStyles || [], ...context.contentStyles || []];
34176
34276
  styles.forEach((css2) => {
34177
34277
  const style2 = doc2.createElement("style");
@@ -34187,7 +34287,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
34187
34287
  emit("maximized");
34188
34288
  if (!props.internalMaximized) {
34189
34289
  modal.openModal({
34190
- component: defineAsyncComponent(() => import("./BSRichTextMaximizedModal-BqzE5__U.js")),
34290
+ component: defineAsyncComponent(() => import("./BSRichTextMaximizedModal-LB8VUZme.js")),
34191
34291
  bind: {
34192
34292
  modelValue: getEditorValue(),
34193
34293
  contentMaxWidth: props.contentMaxWidth,
@@ -34724,7 +34824,7 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
34724
34824
  const modal = useModal();
34725
34825
  const enterYoutubeUrl = () => {
34726
34826
  modal.openModal({
34727
- component: defineAsyncComponent(() => import("./BSYoutubeInputModal-eRBqHjeW.js")),
34827
+ component: defineAsyncComponent(() => import("./BSYoutubeInputModal-BJ1snN1M.js")),
34728
34828
  on: {
34729
34829
  "update:modelValue": (url) => {
34730
34830
  emit("update:modelValue", {
@@ -38046,7 +38146,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
38046
38146
  const modal = useModal();
38047
38147
  const openSettingModal = () => {
38048
38148
  modal.openModal({
38049
- component: defineAsyncComponent(() => import("./BSGridColumnSettingModal-CVVenSnr.js")),
38149
+ component: defineAsyncComponent(() => import("./BSGridColumnSettingModal-BEB2-Ux4.js")),
38050
38150
  bind: {
38051
38151
  columns: props.columns,
38052
38152
  columnSettings: props.columnSettings,
@@ -69779,22 +69879,22 @@ const localeNameProvider = (locale) => {
69779
69879
  const BLUESEA_VERSION = "5.0.0";
69780
69880
  export {
69781
69881
  _sfc_main$T as $,
69782
- _sfc_main$1z as A,
69882
+ BSLink as A,
69783
69883
  BSButton as B,
69784
- BSConsole as C,
69785
- BSLoadingIcon as D,
69786
- _sfc_main$1w as E,
69787
- _sfc_main$1v as F,
69788
- _sfc_main$1u as G,
69789
- _sfc_main$1t as H,
69790
- _sfc_main$1r as I,
69791
- _sfc_main$1q as J,
69792
- _sfc_main$1o as K,
69793
- _sfc_main$1m as L,
69794
- _sfc_main$1j as M,
69795
- _sfc_main$1h as N,
69796
- _sfc_main$1l as O,
69797
- _sfc_main$1k as P,
69884
+ _sfc_main$1z as C,
69885
+ BSConsole as D,
69886
+ BSLoadingIcon as E,
69887
+ _sfc_main$1w as F,
69888
+ _sfc_main$1v as G,
69889
+ _sfc_main$1u as H,
69890
+ _sfc_main$1t as I,
69891
+ _sfc_main$1r as J,
69892
+ _sfc_main$1q as K,
69893
+ _sfc_main$1o as L,
69894
+ _sfc_main$1m as M,
69895
+ _sfc_main$1j as N,
69896
+ _sfc_main$1h as O,
69897
+ _sfc_main$1l as P,
69798
69898
  _sfc_main$1g as Q,
69799
69899
  _sfc_main$1F as R,
69800
69900
  _sfc_main$1f as S,
@@ -69989,19 +70089,19 @@ export {
69989
70089
  _sfc_main$1i as i,
69990
70090
  vFocusOnLoad as j,
69991
70091
  componentUtil as k,
69992
- formValidator as l,
69993
- findImageNode as m,
70092
+ _sfc_main$1k as l,
70093
+ formValidator as m,
69994
70094
  notNull as n,
69995
- imageInfoNumberToPixel as o,
69996
- findYoutubeNode as p,
69997
- normalizeYoutubeInfoData as q,
69998
- findVideoNode as r,
69999
- videoInfoNumberToPixel as s,
70000
- BLUESEA_VERSION as t,
70095
+ findImageNode as o,
70096
+ imageInfoNumberToPixel as p,
70097
+ findYoutubeNode as q,
70098
+ normalizeYoutubeInfoData as r,
70099
+ findVideoNode as s,
70100
+ videoInfoNumberToPixel as t,
70001
70101
  useModalHandle as u,
70002
70102
  vT as v,
70003
- _sfc_main$1E as w,
70004
- _sfc_main$1C as x,
70103
+ BLUESEA_VERSION as w,
70104
+ _sfc_main$1E as x,
70005
70105
  youtubeInfoNumberToPixel as y,
70006
- BSLink as z
70106
+ _sfc_main$1C as z
70007
70107
  };