@g1cloud/bluesea 5.0.0-beta.17 → 5.0.0-beta.19

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 (23) hide show
  1. package/dist/{BSAlertModal-Dpfso89q.js → BSAlertModal-BHxFopXM.js} +1 -1
  2. package/dist/{BSGridColumnSettingModal-DJyibqBz.js → BSGridColumnSettingModal-Cb917J3D.js} +1 -1
  3. package/dist/{BSRichTextMaximizedModal-C1s9SHIe.js → BSRichTextMaximizedModal-CcaX4vLb.js} +1 -1
  4. package/dist/{BSYesNoModal-8Npez2Yl.js → BSYesNoModal-D3lgFpfA.js} +1 -1
  5. package/dist/{BSYoutubeInputModal-Bs5E5VNB.js → BSYoutubeInputModal-DL58pg-h.js} +1 -1
  6. package/dist/{ImageInsertModal-CfieDY5H.js → ImageInsertModal-J2mLr4xn.js} +2 -2
  7. package/dist/{ImageProperties.vue_vue_type_script_setup_true_lang-CELpkBje.js → ImageProperties.vue_vue_type_script_setup_true_lang-C0YeN_Nt.js} +1 -1
  8. package/dist/{ImagePropertiesModal-wbasrDX5.js → ImagePropertiesModal-CZCxhkMB.js} +2 -2
  9. package/dist/{LinkPropertiesModal-DioZe-8O.js → LinkPropertiesModal-CcUWZNil.js} +1 -1
  10. package/dist/{TableInsertModal-EIDbh4kM.js → TableInsertModal-DTPCKTcg.js} +1 -1
  11. package/dist/{TablePropertiesModal-Bt2SP_mR.js → TablePropertiesModal-CReXrzK1.js} +1 -1
  12. package/dist/{VideoInsertModal-Bjti4md0.js → VideoInsertModal-BSMUkiBi.js} +2 -2
  13. package/dist/{VideoProperties.vue_vue_type_script_setup_true_lang-ZVgL1I9N.js → VideoProperties.vue_vue_type_script_setup_true_lang-DwfUSJyi.js} +1 -1
  14. package/dist/{VideoPropertiesModal-BzHd9LxJ.js → VideoPropertiesModal-C7rjQ3qa.js} +2 -2
  15. package/dist/{YoutubeInsertModal-CWthi1k7.js → YoutubeInsertModal-Ujh5_lzl.js} +2 -2
  16. package/dist/{YoutubeProperties.vue_vue_type_script_setup_true_lang-BoW-ofEt.js → YoutubeProperties.vue_vue_type_script_setup_true_lang-CfmE5mV7.js} +1 -1
  17. package/dist/{YoutubePropertiesModal-Dn_4no50.js → YoutubePropertiesModal-DwlRrWKu.js} +2 -2
  18. package/dist/bluesea.js +1 -1
  19. package/dist/bluesea.umd.cjs +17 -4
  20. package/dist/component/input/BSSelect.vue.d.ts +3 -0
  21. package/dist/{index-5xeugPUy.js → index-B6nvdcYS.js} +33 -20
  22. package/dist/util/formatUtil.d.ts +4 -4
  23. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, createBlock, openBlock, withCtx, withDirectives, createElementVNode, unref, createVNode } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, v as vT, B as BSButton, j as vFocusOnLoad } from "./index-5xeugPUy.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, v as vT, B as BSButton, j as vFocusOnLoad } from "./index-B6nvdcYS.js";
3
3
  const _hoisted_1 = { class: "text-right" };
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "BSAlertModal",
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, ref, onMounted, createBlock, openBlock, withCtx, createElementVNode, createVNode, mergeProps, unref, toHandlers, nextTick } from "vue";
2
- import { f as createInputGridHandler, u as useModalHandle, _ as _sfc_main$1, B as BSButton, g as _sfc_main$2, h as _sfc_main$3, i as _sfc_main$4, n as notNull } from "./index-5xeugPUy.js";
2
+ import { f as createInputGridHandler, u as useModalHandle, _ as _sfc_main$1, B as BSButton, g as _sfc_main$2, h as _sfc_main$3, i as _sfc_main$4, n as notNull } from "./index-B6nvdcYS.js";
3
3
  const _hoisted_1 = { class: "text-center" };
4
4
  const _hoisted_2 = { class: "text-center" };
5
5
  const _hoisted_3 = { class: "bs-layout-horizontal" };
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, mergeModels, useModel, useTemplateRef, createBlock, openBlock } from "vue";
2
- import { u as useModalHandle, d as _sfc_main$1 } from "./index-5xeugPUy.js";
2
+ import { u as useModalHandle, d as _sfc_main$1 } from "./index-B6nvdcYS.js";
3
3
  const _sfc_main = /* @__PURE__ */ defineComponent({
4
4
  __name: "BSRichTextMaximizedModal",
5
5
  props: /* @__PURE__ */ mergeModels({
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, createBlock, openBlock, withCtx, withDirectives, createElementVNode, unref, createVNode } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, v as vT, B as BSButton } from "./index-5xeugPUy.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, v as vT, B as BSButton } from "./index-B6nvdcYS.js";
3
3
  const _hoisted_1 = { class: "text-right" };
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "BSYesNoModal",
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, useModel, ref, createBlock, openBlock, withCtx, createElementVNode, createVNode, createCommentVNode, unref } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, e as extractYoutubeVideoId } from "./index-5xeugPUy.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, e as extractYoutubeVideoId } from "./index-B6nvdcYS.js";
3
3
  import YouTube from "vue3-youtube";
4
4
  const _hoisted_1 = { class: "bs-layout-vertical gap-16" };
5
5
  const _hoisted_2 = { class: "bs-layout-horizontal align-items-center" };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, ref, createBlock, openBlock, withCtx, createElementVNode, createVNode, withDirectives, vShow } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, a as _sfc_main$2, b as _sfc_main$3, c as _sfc_main$4 } from "./index-5xeugPUy.js";
3
- import { _ as _sfc_main$5 } from "./ImageProperties.vue_vue_type_script_setup_true_lang-CELpkBje.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, a as _sfc_main$2, b as _sfc_main$3, c as _sfc_main$4 } from "./index-B6nvdcYS.js";
3
+ import { _ as _sfc_main$5 } from "./ImageProperties.vue_vue_type_script_setup_true_lang-C0YeN_Nt.js";
4
4
  const _hoisted_1 = { class: "bs-layout-form title-w-8" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = { class: "bs-layout-horizontal justify-content-end gap-8" };
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, createElementBlock, openBlock, Fragment, createElementVNode, createVNode, withDirectives, createTextVNode, unref } from "vue";
2
- import { b as _sfc_main$1, c as _sfc_main$2, v as vT } from "./index-5xeugPUy.js";
2
+ import { b as _sfc_main$1, c as _sfc_main$2, v as vT } from "./index-B6nvdcYS.js";
3
3
  const _hoisted_1 = { class: "title" };
4
4
  const _hoisted_2 = { class: "title" };
5
5
  const _hoisted_3 = { class: "title" };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, ref, onMounted, useTemplateRef, createBlock, openBlock, withCtx, createElementVNode, createVNode, createElementBlock, createCommentVNode } from "vue";
2
- import { o as findImageNode, u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, m as formValidator, p as imageInfoNumberToPixel } from "./index-5xeugPUy.js";
3
- import { _ as _sfc_main$4 } from "./ImageProperties.vue_vue_type_script_setup_true_lang-CELpkBje.js";
2
+ import { o as findImageNode, u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, m as formValidator, p as imageInfoNumberToPixel } from "./index-B6nvdcYS.js";
3
+ import { _ as _sfc_main$4 } from "./ImageProperties.vue_vue_type_script_setup_true_lang-C0YeN_Nt.js";
4
4
  const _hoisted_1 = { class: "title" };
5
5
  const _hoisted_2 = { class: "bs-layout-horizontal justify-content-end gap-8" };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, ref, onMounted, createBlock, openBlock, withCtx, createElementVNode, createVNode, createTextVNode, withModifiers } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3 } from "./index-5xeugPUy.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3 } from "./index-B6nvdcYS.js";
3
3
  const _hoisted_1 = { class: "bs-layout-form title-w-8" };
4
4
  const _hoisted_2 = { class: "title" };
5
5
  const _hoisted_3 = { class: "title" };
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, ref, createBlock, openBlock, withCtx, createElementVNode, createVNode } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, h as _sfc_main$3 } from "./index-5xeugPUy.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, h as _sfc_main$3 } from "./index-B6nvdcYS.js";
3
3
  const _hoisted_1 = { class: "bs-layout-form" };
4
4
  const _hoisted_2 = { class: "bs-form-label" };
5
5
  const _hoisted_3 = { class: "bs-form-label" };
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, computed, ref, onMounted, useTemplateRef, createBlock, openBlock, withCtx, createElementVNode, createVNode, createElementBlock, createCommentVNode, withDirectives, createTextVNode, unref, Fragment, renderList, toDisplayString } from "vue";
2
- import { k as componentUtil, u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, v as vT, l as _sfc_main$4, m as formValidator } from "./index-5xeugPUy.js";
2
+ import { k as componentUtil, u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, v as vT, l as _sfc_main$4, m as formValidator } from "./index-B6nvdcYS.js";
3
3
  const findTableNode = (selection, type) => {
4
4
  const head = selection.$head;
5
5
  let depth = head.depth;
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, ref, createBlock, openBlock, withCtx, createElementVNode, createVNode, withDirectives, vShow } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, a as _sfc_main$2, b as _sfc_main$3, c as _sfc_main$4 } from "./index-5xeugPUy.js";
3
- import { _ as _sfc_main$5 } from "./VideoProperties.vue_vue_type_script_setup_true_lang-ZVgL1I9N.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, a as _sfc_main$2, b as _sfc_main$3, c as _sfc_main$4 } from "./index-B6nvdcYS.js";
3
+ import { _ as _sfc_main$5 } from "./VideoProperties.vue_vue_type_script_setup_true_lang-DwfUSJyi.js";
4
4
  const _hoisted_1 = { class: "bs-layout-form title-w-8" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = { class: "bs-layout-horizontal justify-content-end gap-8" };
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, createElementBlock, openBlock, Fragment, createElementVNode, createVNode, withDirectives, createTextVNode, unref } from "vue";
2
- import { i as _sfc_main$1, b as _sfc_main$2, c as _sfc_main$3, v as vT } from "./index-5xeugPUy.js";
2
+ import { i as _sfc_main$1, b as _sfc_main$2, c as _sfc_main$3, v as vT } from "./index-B6nvdcYS.js";
3
3
  const _hoisted_1 = { class: "bs-layout-horizontal gap-8" };
4
4
  const _hoisted_2 = { class: "title" };
5
5
  const _hoisted_3 = { class: "title" };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, ref, onMounted, useTemplateRef, createBlock, openBlock, withCtx, createElementVNode, createVNode, createElementBlock, createCommentVNode } from "vue";
2
- import { s as findVideoNode, u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, m as formValidator, t as videoInfoNumberToPixel } from "./index-5xeugPUy.js";
3
- import { _ as _sfc_main$4 } from "./VideoProperties.vue_vue_type_script_setup_true_lang-ZVgL1I9N.js";
2
+ import { s as findVideoNode, u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, m as formValidator, t as videoInfoNumberToPixel } from "./index-B6nvdcYS.js";
3
+ import { _ as _sfc_main$4 } from "./VideoProperties.vue_vue_type_script_setup_true_lang-DwfUSJyi.js";
4
4
  const _hoisted_1 = { class: "title" };
5
5
  const _hoisted_2 = { class: "bs-layout-horizontal justify-content-end gap-8" };
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, ref, createBlock, openBlock, withCtx, createElementVNode, createVNode } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, y as youtubeInfoNumberToPixel } from "./index-5xeugPUy.js";
3
- import { _ as _sfc_main$4 } from "./YoutubeProperties.vue_vue_type_script_setup_true_lang-BoW-ofEt.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, y as youtubeInfoNumberToPixel } from "./index-B6nvdcYS.js";
3
+ import { _ as _sfc_main$4 } from "./YoutubeProperties.vue_vue_type_script_setup_true_lang-CfmE5mV7.js";
4
4
  const _hoisted_1 = { class: "bs-layout-form" };
5
5
  const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = { class: "bs-layout-horizontal justify-content-end gap-8" };
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, createElementBlock, openBlock, Fragment, createElementVNode, createVNode, withDirectives, createTextVNode, unref } from "vue";
2
- import { b as _sfc_main$1, c as _sfc_main$2, v as vT } from "./index-5xeugPUy.js";
2
+ import { b as _sfc_main$1, c as _sfc_main$2, v as vT } from "./index-B6nvdcYS.js";
3
3
  const _hoisted_1 = { class: "title" };
4
4
  const _hoisted_2 = { class: "title" };
5
5
  const _hoisted_3 = { class: "title" };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, ref, onMounted, createBlock, openBlock, withCtx, createElementVNode, createVNode, createElementBlock, createCommentVNode } from "vue";
2
- import { q as findYoutubeNode, r as normalizeYoutubeInfoData, u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, y as youtubeInfoNumberToPixel } from "./index-5xeugPUy.js";
3
- import { _ as _sfc_main$4 } from "./YoutubeProperties.vue_vue_type_script_setup_true_lang-BoW-ofEt.js";
2
+ import { q as findYoutubeNode, r as normalizeYoutubeInfoData, u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, y as youtubeInfoNumberToPixel } from "./index-B6nvdcYS.js";
3
+ import { _ as _sfc_main$4 } from "./YoutubeProperties.vue_vue_type_script_setup_true_lang-CfmE5mV7.js";
4
4
  const _hoisted_1 = {
5
5
  key: 0,
6
6
  class: "bs-layout-form"
package/dist/bluesea.js CHANGED
@@ -1,4 +1,4 @@
1
- import { aK, aL, bI, bJ, w, am, aw, B, H, I, a6, i, P, ao, L, D, ax, cq, F, M, as, N, a4, a5, at, O, b, g, a2, a1, a9, ap, an, Z, A, a8, a7, E, aj, c8, au, _, $, ag, ai, ah, af, ae, ad, T, ak, av, h, G, K, aq, z, W, a0, J, C, Q, l, d, S, ar, a, al, X, a3, c, ab, ac, V, U, aa, R, x, bQ, b8, bP, aU, az, cv, ay, a$, aZ, aW, Y, bO, b1, b0, cA, bG, bM, a_, bS, bR, bN, cu, b2, aT, aH, aI, aG, aJ, bL, bK, aY, bH, bx, c2, cz, bc, bj, c1, cJ, ce, bT, b_, bZ, aQ, bA, cg, aR, cp, b7, ct, cw, f, cb, aX, bf, cN, aM, b4, bg, aN, aP, aO, b6, bY, bu, bv, bw, br, bt, bs, e, bq, bn, m, cC, aS, b5, cn, cj, cB, bW, aC, cK, cH, cL, bB, cI, bC, c0, b$, ck, bk, bX, bm, bi, cM, b3, c7, c6, aV, bV, n, cc, bU, cG, cx, c3, ca, by, b9, bd, bF, c5, bD, bE, cf, cm, cl, cd, ci, bl, aB, bh, ch, cF, cr, cs, cy, c4, c9, u, bz, ba, bb, be, aA, aE, aF, j, v, aD, bo, bp, cE, cD, co } from "./index-5xeugPUy.js";
1
+ import { aK, aL, bI, bJ, w, am, aw, B, H, I, a6, i, P, ao, L, D, ax, cq, F, M, as, N, a4, a5, at, O, b, g, a2, a1, a9, ap, an, Z, A, a8, a7, E, aj, c8, au, _, $, ag, ai, ah, af, ae, ad, T, ak, av, h, G, K, aq, z, W, a0, J, C, Q, l, d, S, ar, a, al, X, a3, c, ab, ac, V, U, aa, R, x, bQ, b8, bP, aU, az, cv, ay, a$, aZ, aW, Y, bO, b1, b0, cA, bG, bM, a_, bS, bR, bN, cu, b2, aT, aH, aI, aG, aJ, bL, bK, aY, bH, bx, c2, cz, bc, bj, c1, cJ, ce, bT, b_, bZ, aQ, bA, cg, aR, cp, b7, ct, cw, f, cb, aX, bf, cN, aM, b4, bg, aN, aP, aO, b6, bY, bu, bv, bw, br, bt, bs, e, bq, bn, m, cC, aS, b5, cn, cj, cB, bW, aC, cK, cH, cL, bB, cI, bC, c0, b$, ck, bk, bX, bm, bi, cM, b3, c7, c6, aV, bV, n, cc, bU, cG, cx, c3, ca, by, b9, bd, bF, c5, bD, bE, cf, cm, cl, cd, ci, bl, aB, bh, ch, cF, cr, cs, cy, c4, c9, u, bz, ba, bb, be, aA, aE, aF, j, v, aD, bo, bp, cE, cD, co } from "./index-B6nvdcYS.js";
2
2
  export {
3
3
  aK as ADDRESS_COUNTRY_CONFIGS,
4
4
  aL as ADDRESS_COUNTRY_CONFIG_DEFAULT,
@@ -260,11 +260,19 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
260
260
  },
261
261
  /**
262
262
  * 통화단위와 표시위치를 받아 출력한다
263
- * @param value 값
264
- * @param currencyUnit 통화단위
263
+ * @param value 값 또는 Money 객체
264
+ * @param currencyUnit 통화단위 (Money 객체인 경우 무시됨)
265
265
  * @param prefix true 이면 withUnit을 앞에 붙이고, false 이면 뒤에 붙인다.
266
266
  */
267
267
  formatPrice(value, currencyUnit, prefix = false) {
268
+ if (value && typeof value === "object" && "currency" in value) {
269
+ const money = value;
270
+ if (money.amount || typeof money.amount === "number") {
271
+ const formattedValue = this.formatNumber(money.amount);
272
+ return prefix ? `${money.currency} ${formattedValue}` : `${formattedValue} ${money.currency}`;
273
+ }
274
+ return null;
275
+ }
268
276
  if (value || typeof value === "number") {
269
277
  const formattedValue = this.formatNumber(value);
270
278
  return prefix ? `${currencyUnit} ${formattedValue}` : `${formattedValue} ${currencyUnit}`;
@@ -1758,7 +1766,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1758
1766
  popupMaxHeight: {},
1759
1767
  showPopupSearch: { type: [Boolean, String], default: "auto" },
1760
1768
  hideErrorMessage: { type: Boolean },
1761
- showErrorMessageOnDisabled: { type: Boolean }
1769
+ showErrorMessageOnDisabled: { type: Boolean },
1770
+ autoSelectSingleItem: { type: Boolean }
1762
1771
  },
1763
1772
  emits: ["update:modelValue"],
1764
1773
  setup(__props, { emit: __emit }) {
@@ -1769,9 +1778,13 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1769
1778
  vue.watch(
1770
1779
  () => props.items,
1771
1780
  async () => {
1781
+ var _a2;
1772
1782
  loadingItems.value = true;
1773
1783
  allItems.value = await props.items;
1774
1784
  loadingItems.value = false;
1785
+ if (props.autoSelectSingleItem && ((_a2 = allItems.value) == null ? void 0 : _a2.length) === 1 && props.modelValue === void 0) {
1786
+ emit("update:modelValue", itemValue(allItems.value[0]));
1787
+ }
1775
1788
  },
1776
1789
  { immediate: true }
1777
1790
  );
@@ -34716,7 +34729,7 @@ img.ProseMirror-separator {
34716
34729
  }
34717
34730
  };
34718
34731
  const extractYoutubeVideoId = (url) => {
34719
- const regex = /(?:youtube\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|embed)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/;
34732
+ const regex = /(?:youtube\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|embed|shorts)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/;
34720
34733
  const match = url.match(regex);
34721
34734
  return match ? match[1] : void 0;
34722
34735
  };
@@ -26,6 +26,7 @@ declare const _default: <T, V>(__VLS_props: {
26
26
  selectedLabelProvider?: LabelProvider<T | undefined> | undefined;
27
27
  popupMaxHeight?: string | undefined;
28
28
  showPopupSearch?: boolean | "auto" | undefined;
29
+ autoSelectSingleItem?: boolean | undefined;
29
30
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, __VLS_ctx?: {
30
31
  attrs: any;
31
32
  slots: {};
@@ -55,6 +56,7 @@ declare const _default: <T, V>(__VLS_props: {
55
56
  selectedLabelProvider?: LabelProvider<T | undefined> | undefined;
56
57
  popupMaxHeight?: string | undefined;
57
58
  showPopupSearch?: boolean | "auto" | undefined;
59
+ autoSelectSingleItem?: boolean | undefined;
58
60
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
59
61
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
60
62
  attrs: any;
@@ -88,6 +90,7 @@ declare const _default: <T, V>(__VLS_props: {
88
90
  selectedLabelProvider?: LabelProvider<T | undefined> | undefined;
89
91
  popupMaxHeight?: string | undefined;
90
92
  showPopupSearch?: boolean | "auto" | undefined;
93
+ autoSelectSingleItem?: boolean | undefined;
91
94
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
92
95
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
93
96
  attrs: any;
@@ -260,11 +260,19 @@ const formatUtil = {
260
260
  },
261
261
  /**
262
262
  * 통화단위와 표시위치를 받아 출력한다
263
- * @param value 값
264
- * @param currencyUnit 통화단위
263
+ * @param value 값 또는 Money 객체
264
+ * @param currencyUnit 통화단위 (Money 객체인 경우 무시됨)
265
265
  * @param prefix true 이면 withUnit을 앞에 붙이고, false 이면 뒤에 붙인다.
266
266
  */
267
267
  formatPrice(value, currencyUnit, prefix = false) {
268
+ if (value && typeof value === "object" && "currency" in value) {
269
+ const money = value;
270
+ if (money.amount || typeof money.amount === "number") {
271
+ const formattedValue = this.formatNumber(money.amount);
272
+ return prefix ? `${money.currency} ${formattedValue}` : `${formattedValue} ${money.currency}`;
273
+ }
274
+ return null;
275
+ }
268
276
  if (value || typeof value === "number") {
269
277
  const formattedValue = this.formatNumber(value);
270
278
  return prefix ? `${currencyUnit} ${formattedValue}` : `${formattedValue} ${currencyUnit}`;
@@ -360,8 +368,8 @@ const defaultAddressInputComponentConfig = {
360
368
  countryConfigs: ADDRESS_COUNTRY_CONFIGS
361
369
  };
362
370
  const defaultRichTextComponentConfig = {
363
- imageInsertModal: defineAsyncComponent(() => import("./ImageInsertModal-CfieDY5H.js")),
364
- videoInsertModal: defineAsyncComponent(() => import("./VideoInsertModal-Bjti4md0.js")),
371
+ imageInsertModal: defineAsyncComponent(() => import("./ImageInsertModal-J2mLr4xn.js")),
372
+ videoInsertModal: defineAsyncComponent(() => import("./VideoInsertModal-BSMUkiBi.js")),
365
373
  toolButtons: [
366
374
  "Heading",
367
375
  "FontSize",
@@ -1758,7 +1766,8 @@ const _sfc_main$1G = /* @__PURE__ */ defineComponent({
1758
1766
  popupMaxHeight: {},
1759
1767
  showPopupSearch: { type: [Boolean, String], default: "auto" },
1760
1768
  hideErrorMessage: { type: Boolean },
1761
- showErrorMessageOnDisabled: { type: Boolean }
1769
+ showErrorMessageOnDisabled: { type: Boolean },
1770
+ autoSelectSingleItem: { type: Boolean }
1762
1771
  },
1763
1772
  emits: ["update:modelValue"],
1764
1773
  setup(__props, { emit: __emit }) {
@@ -1769,9 +1778,13 @@ const _sfc_main$1G = /* @__PURE__ */ defineComponent({
1769
1778
  watch(
1770
1779
  () => props.items,
1771
1780
  async () => {
1781
+ var _a2;
1772
1782
  loadingItems.value = true;
1773
1783
  allItems.value = await props.items;
1774
1784
  loadingItems.value = false;
1785
+ if (props.autoSelectSingleItem && ((_a2 = allItems.value) == null ? void 0 : _a2.length) === 1 && props.modelValue === void 0) {
1786
+ emit("update:modelValue", itemValue(allItems.value[0]));
1787
+ }
1775
1788
  },
1776
1789
  { immediate: true }
1777
1790
  );
@@ -6309,7 +6322,7 @@ class BSModal {
6309
6322
  }
6310
6323
  openAlert(title, message, clickHandler2) {
6311
6324
  const option = {
6312
- component: defineAsyncComponent(() => import("./BSAlertModal-Dpfso89q.js")),
6325
+ component: defineAsyncComponent(() => import("./BSAlertModal-BHxFopXM.js")),
6313
6326
  bind: {
6314
6327
  title,
6315
6328
  message
@@ -6322,7 +6335,7 @@ class BSModal {
6322
6335
  }
6323
6336
  openYesNo(title, message, yesHandler, noHandler) {
6324
6337
  const option = {
6325
- component: defineAsyncComponent(() => import("./BSYesNoModal-8Npez2Yl.js")),
6338
+ component: defineAsyncComponent(() => import("./BSYesNoModal-D3lgFpfA.js")),
6326
6339
  bind: {
6327
6340
  title,
6328
6341
  message
@@ -31456,13 +31469,13 @@ const tableContextMenus = (modal, editor) => {
31456
31469
  };
31457
31470
  const showTableProperties = (modal, editor) => {
31458
31471
  modal.openModal({
31459
- component: defineAsyncComponent(() => import("./TablePropertiesModal-Bt2SP_mR.js")),
31472
+ component: defineAsyncComponent(() => import("./TablePropertiesModal-CReXrzK1.js")),
31460
31473
  bind: { editor }
31461
31474
  });
31462
31475
  };
31463
31476
  const insertTable = (modal, editor) => {
31464
31477
  modal.openModal({
31465
- component: defineAsyncComponent(() => import("./TableInsertModal-EIDbh4kM.js")),
31478
+ component: defineAsyncComponent(() => import("./TableInsertModal-DTPCKTcg.js")),
31466
31479
  bind: { editor }
31467
31480
  });
31468
31481
  };
@@ -31627,7 +31640,7 @@ const insertImage = (modal, editor) => {
31627
31640
  const component = (_a2 = blueseaConfig.componentConfig.richText) == null ? void 0 : _a2.imageInsertModal;
31628
31641
  if (component) {
31629
31642
  modal.openModal({
31630
- component: defineAsyncComponent(() => import("./ImageInsertModal-CfieDY5H.js")),
31643
+ component: defineAsyncComponent(() => import("./ImageInsertModal-J2mLr4xn.js")),
31631
31644
  bind: { editor },
31632
31645
  on: {
31633
31646
  insertImage: (image) => {
@@ -31645,7 +31658,7 @@ const insertImage = (modal, editor) => {
31645
31658
  };
31646
31659
  const showImageProperties = (modal, editor) => {
31647
31660
  modal.openModal({
31648
- component: defineAsyncComponent(() => import("./ImagePropertiesModal-wbasrDX5.js")),
31661
+ component: defineAsyncComponent(() => import("./ImagePropertiesModal-CZCxhkMB.js")),
31649
31662
  bind: { editor }
31650
31663
  });
31651
31664
  };
@@ -32006,13 +32019,13 @@ const youtubeContextMenu = (modal, editor) => {
32006
32019
  };
32007
32020
  const insertYoutube = (modal, editor) => {
32008
32021
  modal.openModal({
32009
- component: defineAsyncComponent(() => import("./YoutubeInsertModal-CWthi1k7.js")),
32022
+ component: defineAsyncComponent(() => import("./YoutubeInsertModal-Ujh5_lzl.js")),
32010
32023
  bind: { editor }
32011
32024
  });
32012
32025
  };
32013
32026
  const showYoutubeProperties = (modal, editor) => {
32014
32027
  modal.openModal({
32015
- component: defineAsyncComponent(() => import("./YoutubePropertiesModal-Dn_4no50.js")),
32028
+ component: defineAsyncComponent(() => import("./YoutubePropertiesModal-DwlRrWKu.js")),
32016
32029
  bind: { editor }
32017
32030
  });
32018
32031
  };
@@ -32056,7 +32069,7 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
32056
32069
  const showLinkProperties = () => {
32057
32070
  if (!props.disabled) {
32058
32071
  modal.openModal({
32059
- component: defineAsyncComponent(() => import("./LinkPropertiesModal-DioZe-8O.js")),
32072
+ component: defineAsyncComponent(() => import("./LinkPropertiesModal-CcUWZNil.js")),
32060
32073
  bind: {
32061
32074
  editor: props.editor
32062
32075
  }
@@ -32421,7 +32434,7 @@ const insertVideo = (modal, editor) => {
32421
32434
  const component = (_a2 = blueseaConfig.componentConfig.richText) == null ? void 0 : _a2.videoInsertModal;
32422
32435
  if (component) {
32423
32436
  modal.openModal({
32424
- component: defineAsyncComponent(() => import("./VideoInsertModal-Bjti4md0.js")),
32437
+ component: defineAsyncComponent(() => import("./VideoInsertModal-BSMUkiBi.js")),
32425
32438
  bind: { editor },
32426
32439
  on: {
32427
32440
  insertVideo: (video) => {
@@ -32439,7 +32452,7 @@ const insertVideo = (modal, editor) => {
32439
32452
  };
32440
32453
  const showVideoProperties = (modal, editor) => {
32441
32454
  modal.openModal({
32442
- component: defineAsyncComponent(() => import("./VideoPropertiesModal-BzHd9LxJ.js")),
32455
+ component: defineAsyncComponent(() => import("./VideoPropertiesModal-C7rjQ3qa.js")),
32443
32456
  bind: { editor }
32444
32457
  });
32445
32458
  };
@@ -34617,7 +34630,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
34617
34630
  emit("maximized");
34618
34631
  if (!props.internalMaximized) {
34619
34632
  modal.openModal({
34620
- component: defineAsyncComponent(() => import("./BSRichTextMaximizedModal-C1s9SHIe.js")),
34633
+ component: defineAsyncComponent(() => import("./BSRichTextMaximizedModal-CcaX4vLb.js")),
34621
34634
  bind: {
34622
34635
  modelValue: getEditorValue(),
34623
34636
  contentMaxWidth: props.contentMaxWidth,
@@ -34716,7 +34729,7 @@ const getMediaType = (url) => {
34716
34729
  }
34717
34730
  };
34718
34731
  const extractYoutubeVideoId = (url) => {
34719
- const regex = /(?:youtube\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|embed)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/;
34732
+ const regex = /(?:youtube\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|embed|shorts)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/;
34720
34733
  const match = url.match(regex);
34721
34734
  return match ? match[1] : void 0;
34722
34735
  };
@@ -35155,7 +35168,7 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
35155
35168
  const modal = useModal();
35156
35169
  const enterYoutubeUrl = () => {
35157
35170
  modal.openModal({
35158
- component: defineAsyncComponent(() => import("./BSYoutubeInputModal-Bs5E5VNB.js")),
35171
+ component: defineAsyncComponent(() => import("./BSYoutubeInputModal-DL58pg-h.js")),
35159
35172
  on: {
35160
35173
  "update:modelValue": (url) => {
35161
35174
  emit("update:modelValue", {
@@ -38557,7 +38570,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
38557
38570
  const modal = useModal();
38558
38571
  const openSettingModal = () => {
38559
38572
  modal.openModal({
38560
- component: defineAsyncComponent(() => import("./BSGridColumnSettingModal-DJyibqBz.js")),
38573
+ component: defineAsyncComponent(() => import("./BSGridColumnSettingModal-Cb917J3D.js")),
38561
38574
  bind: {
38562
38575
  columns: props.columns,
38563
38576
  columnSettings: props.columnSettings,
@@ -1,4 +1,4 @@
1
- import { DisplayDateResolution, TimeZone } from '../model/CommonTypes.ts';
1
+ import { DisplayDateResolution, Money, TimeZone } from '../model/CommonTypes.ts';
2
2
 
3
3
  export declare const formatUtil: {
4
4
  /**
@@ -40,11 +40,11 @@ export declare const formatUtil: {
40
40
  formatNumberByCode(value?: number | string | null, locale?: string | 'ko-KR'): string | null;
41
41
  /**
42
42
  * 통화단위와 표시위치를 받아 출력한다
43
- * @param value 값
44
- * @param currencyUnit 통화단위
43
+ * @param value 값 또는 Money 객체
44
+ * @param currencyUnit 통화단위 (Money 객체인 경우 무시됨)
45
45
  * @param prefix true 이면 withUnit을 앞에 붙이고, false 이면 뒤에 붙인다.
46
46
  */
47
- formatPrice(value?: number | string | null, currencyUnit?: string | '', prefix?: boolean): string | null;
47
+ formatPrice(value?: number | string | Money | null, currencyUnit?: string | '', prefix?: boolean): string | null;
48
48
  /**
49
49
  * rate 를 받아 percent 를 출력한다.
50
50
  * * 0.1 -> 10%
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@g1cloud/bluesea",
3
3
  "private": false,
4
- "version": "5.0.0-beta.17",
4
+ "version": "5.0.0-beta.19",
5
5
  "description": "Ui Library for g1cloud BackOffice.",
6
6
  "type": "module",
7
7
  "engines": {