@g1cloud/bluesea 5.0.0-alpha.42 → 5.0.0-alpha.43

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.
@@ -81,3 +81,15 @@
81
81
  .fade-leave-active {
82
82
  position: absolute;
83
83
  }
84
+
85
+ //
86
+ // spin animation
87
+ //
88
+ @keyframes spin {
89
+ 0% {
90
+ transform: rotate(0deg);
91
+ }
92
+ 100% {
93
+ transform: rotate(360deg);
94
+ }
95
+ }
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, ref, onMounted, openBlock, createBlock, withCtx, createElementVNode, createVNode, unref } from "vue";
2
- import { S as SearchParam, P as PaginatedList, u as useModalHandle, _ as _sfc_main$1, a as _sfc_main$2, b as _sfc_main$3, B as BSButton, w as waitDuring } from "./index-7tRkotiO.js";
2
+ import { S as SearchParam, P as PaginatedList, u as useModalHandle, _ as _sfc_main$1, a as _sfc_main$2, b as _sfc_main$3, B as BSButton, w as waitDuring } from "./index-CatLqUN1.js";
3
3
  const gridColumns = [
4
4
  { propertyId: "zipCode", caption: "Zipcode", width: 80 },
5
5
  { propertyId: "address1", caption: "state/province/region", width: 150 },
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, openBlock, createBlock, withCtx, createElementVNode, withDirectives, createVNode, unref } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, v as vFocusOnLoad, c as vT } from "./index-7tRkotiO.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, v as vFocusOnLoad, c as vT } from "./index-CatLqUN1.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, openBlock, createBlock, withCtx, createElementVNode, createVNode, withDirectives, unref } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, v as vFocusOnLoad, c as vT } from "./index-7tRkotiO.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, v as vFocusOnLoad, c as vT } from "./index-CatLqUN1.js";
3
3
  const _hoisted_1 = { class: "text-right" };
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "BSYesNoModal",
package/dist/bluesea.js CHANGED
@@ -1,4 +1,4 @@
1
- import { aI, aJ, d, a0, a4, B, L, q, r, k, a5, bb, o, p, K, e, b, I, a, a1, G, i, O, N, Y, a$, a2, _, H, W, X, V, U, T, z, Z, a3, m, l, g, D, n, j, s, t, F, y, M, $, E, J, h, Q, R, C, A, x, f, aQ, aP, ac, a7, bf, a6, aj, ag, ad, aO, al, ak, bj, aM, ai, aN, am, aL, aK, af, P, aH, aE, S, ar, br, b5, aR, aY, aX, aa, b7, ab, be, bg, ah, b2, ae, aq, aW, aB, aC, aD, az, aA, ay, at, bm, ba, bk, aU, a9, bs, bq, as, aV, av, aT, bl, b3, aS, bp, bh, aZ, b1, aF, an, b6, b4, b9, au, b8, bo, bc, bd, bi, a_, b0, u, aG, ao, ap, a8, c, aw, ax, w, bn } from "./index-7tRkotiO.js";
1
+ import { aI, aJ, d, a0, a4, B, L, q, r, k, a5, bf, o, p, K, e, b, I, a, a1, G, i, O, N, Y, a$, a2, _, H, W, X, V, U, T, z, Z, a3, m, l, g, D, n, j, s, t, F, y, M, $, E, J, h, Q, R, C, A, x, f, aQ, aP, ac, a7, bj, a6, aj, ag, ad, aO, al, ak, bn, aM, ai, aN, am, aL, aK, af, P, aH, aE, S, ar, bv, b5, aR, aY, aX, aa, b7, ab, bi, bk, ah, b2, ae, aq, aW, aB, aC, aD, az, aA, ay, at, bq, bd, ba, bo, aU, a9, bw, bu, as, aV, av, aT, bp, b3, aS, bt, bl, aZ, b1, aF, an, b6, bc, bb, b4, b9, au, b8, bs, bg, bh, bm, a_, b0, u, aG, ao, ap, a8, c, aw, ax, w, br, be } from "./index-CatLqUN1.js";
2
2
  export {
3
3
  aI as AbstractFilter,
4
4
  aJ as AndFilter,
@@ -11,7 +11,7 @@ export {
11
11
  r as BSCheckboxGroup,
12
12
  k as BSConsole,
13
13
  a5 as BSContextMenuContainer,
14
- bb as BSContextMenuPlugin,
14
+ bf as BSContextMenuPlugin,
15
15
  o as BSDateInput,
16
16
  p as BSDateRange,
17
17
  K as BSDateRangeFilter,
@@ -62,7 +62,7 @@ export {
62
62
  aP as BetweenFilter,
63
63
  ac as DEFAULT_GRID_COLUMN_WIDTH,
64
64
  a7 as DefaultBody,
65
- bf as DefaultFrameContext,
65
+ bj as DefaultFrameContext,
66
66
  a6 as DefaultHeader,
67
67
  aj as EditableInputGridHandlerImpl,
68
68
  ag as EditablePageGridHandlerImpl,
@@ -70,7 +70,7 @@ export {
70
70
  aO as EqualFilter,
71
71
  al as GridHandlerEditableSupport,
72
72
  ak as GridHandlerSelectDeleteSupport,
73
- bj as I18NTexts,
73
+ bn as I18NTexts,
74
74
  aM as InFilter,
75
75
  ai as InputGridHandlerImpl,
76
76
  aN as LikeFilter,
@@ -83,7 +83,7 @@ export {
83
83
  aE as SavePointImpl,
84
84
  S as SearchParam,
85
85
  ar as ValidationFailedError,
86
- br as addPrefixToMultiLangString,
86
+ bv as addPrefixToMultiLangString,
87
87
  b5 as alarmEntries,
88
88
  aR as andFilter,
89
89
  aY as betweenDateFilter,
@@ -91,8 +91,8 @@ export {
91
91
  aa as blueseaConfig,
92
92
  b7 as closeAlarm,
93
93
  ab as configureBluesea,
94
- be as createContextMenuPlugin,
95
- bg as createDefaultFrameContext,
94
+ bi as createContextMenuPlugin,
95
+ bk as createDefaultFrameContext,
96
96
  ah as createInputGridHandler,
97
97
  b2 as createModalPlugin,
98
98
  ae as createPageGridHandler,
@@ -105,35 +105,38 @@ export {
105
105
  aA as executeRequiredValidation,
106
106
  ay as fieldValidator,
107
107
  at as formValidator,
108
- bm as formatUtil,
108
+ bq as formatUtil,
109
+ bd as hideLoading,
109
110
  ba as hideTooltip,
110
- bk as i18n,
111
+ bo as i18n,
111
112
  aU as inFilter,
112
113
  a9 as interpretMultiLangText,
113
- bs as isBlankMultiLangImageFile,
114
- bq as isBlankMultiLangString,
114
+ bw as isBlankMultiLangImageFile,
115
+ bu as isBlankMultiLangString,
115
116
  as as isValidationFailedError,
116
117
  aV as likeFilter,
117
118
  av as loadFieldValidator,
118
119
  aT as notFilter,
119
- bl as notNull,
120
+ bp as notNull,
120
121
  b3 as notificationEntries,
121
122
  aS as orFilter,
122
- bp as parsePathParam,
123
- bh as provideDefaultFrameContext,
123
+ bt as parsePathParam,
124
+ bl as provideDefaultFrameContext,
124
125
  aZ as provideFieldContext,
125
126
  b1 as provideModalHandle,
126
127
  aF as provideSavePoint,
127
128
  an as provideTabManager,
128
129
  b6 as showAlarm,
130
+ bc as showLoading,
131
+ bb as showLoadingIcon,
129
132
  b4 as showNotification,
130
133
  b9 as showTooltip,
131
134
  au as storeFieldValidator,
132
135
  b8 as tooltipEntry,
133
- bo as tryUntil,
134
- bc as useContextMenu,
135
- bd as useContextMenuOptional,
136
- bi as useDefaultFrame,
136
+ bs as tryUntil,
137
+ bg as useContextMenu,
138
+ bh as useContextMenuOptional,
139
+ bm as useDefaultFrame,
137
140
  a_ as useFieldContext,
138
141
  b0 as useModal,
139
142
  u as useModalHandle,
@@ -145,5 +148,6 @@ export {
145
148
  aw as validateField,
146
149
  ax as validateFields,
147
150
  w as waitDuring,
148
- bn as waitUntil
151
+ br as waitUntil,
152
+ be as withLoading
149
153
  };
@@ -225,6 +225,31 @@ var __publicField = (obj, key, value) => {
225
225
  tooltipEntry.value = void 0;
226
226
  }
227
227
  };
228
+ const showLoadingIcon = vue.ref(false);
229
+ let showLoadingCount = 0;
230
+ const showLoading = () => {
231
+ showLoadingCount++;
232
+ showLoadingIcon.value = showLoadingCount > 0;
233
+ };
234
+ const hideLoading = () => {
235
+ showLoadingCount = Math.max(0, showLoadingCount - 1);
236
+ showLoadingIcon.value = showLoadingCount > 0;
237
+ };
238
+ const withLoading = async (func) => {
239
+ let shown = false;
240
+ const timeoutId = window.setTimeout(() => {
241
+ showLoading();
242
+ shown = true;
243
+ }, 300);
244
+ try {
245
+ return await func();
246
+ } finally {
247
+ if (shown)
248
+ hideLoading();
249
+ if (timeoutId)
250
+ window.clearTimeout(timeoutId);
251
+ }
252
+ };
228
253
  const DEFAULT_TOOLTIP_SHOW_DELAY = 800;
229
254
  const DEFAULT_TOOLTIP_HIDE_DELAY = 300;
230
255
  const setTooltipParam = (el, param) => {
@@ -779,7 +804,7 @@ var __publicField = (obj, key, value) => {
779
804
  key: 1,
780
805
  class: "label"
781
806
  };
782
- const _hoisted_5$g = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
807
+ const _hoisted_5$h = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
783
808
  const _sfc_main$1h = /* @__PURE__ */ vue.defineComponent({
784
809
  __name: "BSSelect",
785
810
  props: {
@@ -889,7 +914,7 @@ var __publicField = (obj, key, value) => {
889
914
  ]) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", _hoisted_4$m, null, 512)), [
890
915
  [vue.unref(vT), selectedItemLabel.value]
891
916
  ]),
892
- _hoisted_5$g
917
+ _hoisted_5$h
893
918
  ], 512),
894
919
  !_ctx.disabled && showPopup.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1j, {
895
920
  key: 0,
@@ -1428,7 +1453,7 @@ var __publicField = (obj, key, value) => {
1428
1453
  class: "indeterminate"
1429
1454
  };
1430
1455
  const _hoisted_4$k = /* @__PURE__ */ vue.createElementVNode("div", { class: "in-box" }, null, -1);
1431
- const _hoisted_5$f = [
1456
+ const _hoisted_5$g = [
1432
1457
  _hoisted_4$k
1433
1458
  ];
1434
1459
  const _sfc_main$1b = /* @__PURE__ */ vue.defineComponent({
@@ -1458,7 +1483,7 @@ var __publicField = (obj, key, value) => {
1458
1483
  class: "inner-progressbar"
1459
1484
  }, [
1460
1485
  calculateProgress.value !== void 0 && calculateProgress.value < 50 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$10, vue.toDisplayString(calculatePercent.value) + "% ", 1)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$N, vue.toDisplayString(calculatePercent.value) + "% ", 1))
1461
- ], 4)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$s, _hoisted_5$f))
1486
+ ], 4)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$s, _hoisted_5$g))
1462
1487
  ], 4);
1463
1488
  };
1464
1489
  }
@@ -1908,8 +1933,8 @@ var __publicField = (obj, key, value) => {
1908
1933
  key: 1,
1909
1934
  class: "input-area"
1910
1935
  };
1911
- const _hoisted_5$e = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
1912
- const _hoisted_6$7 = ["textContent"];
1936
+ const _hoisted_5$f = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
1937
+ const _hoisted_6$8 = ["textContent"];
1913
1938
  const _sfc_main$17 = /* @__PURE__ */ vue.defineComponent({
1914
1939
  __name: "BSPriceInput",
1915
1940
  props: {
@@ -2050,7 +2075,7 @@ var __publicField = (obj, key, value) => {
2050
2075
  tabindex: _ctx.tabindex,
2051
2076
  value: focused.value || !_ctx.formatOnBlur ? vue.unref(stringValue) : formattedStringValue.value,
2052
2077
  type: "text"
2053
- }, vue.toHandlers(handlers2, true)), null, 16, _hoisted_5$e), [
2078
+ }, vue.toHandlers(handlers2, true)), null, 16, _hoisted_5$f), [
2054
2079
  [
2055
2080
  vue.unref(vT),
2056
2081
  _ctx.placeholder,
@@ -2061,7 +2086,7 @@ var __publicField = (obj, key, value) => {
2061
2086
  vue.createElementVNode("div", {
2062
2087
  class: "currency-code",
2063
2088
  textContent: vue.toDisplayString(currencyCode.value)
2064
- }, null, 8, _hoisted_6$7)
2089
+ }, null, 8, _hoisted_6$8)
2065
2090
  ])),
2066
2091
  vue.createVNode(_sfc_main$1i, { errors: vue.unref(errors) }, null, 8, ["errors"])
2067
2092
  ], 6);
@@ -2230,8 +2255,8 @@ var __publicField = (obj, key, value) => {
2230
2255
  };
2231
2256
  const _hoisted_3$o = /* @__PURE__ */ vue.createElementVNode("span", { class: "font-icon" }, "calendar_month", -1);
2232
2257
  const _hoisted_4$g = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2233
- const _hoisted_5$d = /* @__PURE__ */ vue.createElementVNode("span", { class: "px-4" }, "~", -1);
2234
- const _hoisted_6$6 = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2258
+ const _hoisted_5$e = /* @__PURE__ */ vue.createElementVNode("span", { class: "px-4" }, "~", -1);
2259
+ const _hoisted_6$7 = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2235
2260
  const _sfc_main$15 = /* @__PURE__ */ vue.defineComponent({
2236
2261
  __name: "BSDateRange",
2237
2262
  props: {
@@ -2433,7 +2458,7 @@ var __publicField = (obj, key, value) => {
2433
2458
  { placeholder: true }
2434
2459
  ]
2435
2460
  ]),
2436
- _hoisted_5$d,
2461
+ _hoisted_5$e,
2437
2462
  vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
2438
2463
  id: _ctx.idTo,
2439
2464
  ref_key: "fieldTo",
@@ -2444,7 +2469,7 @@ var __publicField = (obj, key, value) => {
2444
2469
  tabindex: _ctx.tabindex,
2445
2470
  value: focusedTo.value ? vue.unref(stringValueTo) : formattedTo.value,
2446
2471
  type: "text"
2447
- }, vue.toHandlers(handlersTo, true)), null, 16, _hoisted_6$6), [
2472
+ }, vue.toHandlers(handlersTo, true)), null, 16, _hoisted_6$7), [
2448
2473
  [
2449
2474
  vue.unref(vT),
2450
2475
  _ctx.placeholderTo,
@@ -2869,7 +2894,7 @@ var __publicField = (obj, key, value) => {
2869
2894
  class: "placeholder flex-grow-1"
2870
2895
  };
2871
2896
  const _hoisted_4$f = { key: 1 };
2872
- const _hoisted_5$c = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
2897
+ const _hoisted_5$d = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
2873
2898
  const _sfc_main$$ = /* @__PURE__ */ vue.defineComponent({
2874
2899
  __name: "BSMultiSelect",
2875
2900
  props: {
@@ -3003,7 +3028,7 @@ var __publicField = (obj, key, value) => {
3003
3028
  ]);
3004
3029
  }), 128))
3005
3030
  ])),
3006
- _hoisted_5$c
3031
+ _hoisted_5$d
3007
3032
  ], 512),
3008
3033
  !_ctx.disabled && showPopup.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1j, {
3009
3034
  key: 0,
@@ -3924,7 +3949,7 @@ var __publicField = (obj, key, value) => {
3924
3949
  key: 1,
3925
3950
  class: "label"
3926
3951
  };
3927
- const _hoisted_5$b = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
3952
+ const _hoisted_5$c = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
3928
3953
  const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
3929
3954
  __name: "BSTreeSelect",
3930
3955
  props: {
@@ -4056,7 +4081,7 @@ var __publicField = (obj, key, value) => {
4056
4081
  ]) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", _hoisted_4$d, null, 512)), [
4057
4082
  [vue.unref(vT), selectedItemLabel.value]
4058
4083
  ]),
4059
- _hoisted_5$b
4084
+ _hoisted_5$c
4060
4085
  ], 512),
4061
4086
  showPopup.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1k, {
4062
4087
  key: 0,
@@ -4083,7 +4108,7 @@ var __publicField = (obj, key, value) => {
4083
4108
  key: 1,
4084
4109
  class: "label"
4085
4110
  };
4086
- const _hoisted_5$a = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
4111
+ const _hoisted_5$b = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
4087
4112
  const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
4088
4113
  __name: "BSTreeMultiSelect",
4089
4114
  props: {
@@ -4211,7 +4236,7 @@ var __publicField = (obj, key, value) => {
4211
4236
  ]) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", _hoisted_4$c, null, 512)), [
4212
4237
  [vue.unref(vT), selectedItemLabel.value]
4213
4238
  ]),
4214
- _hoisted_5$a
4239
+ _hoisted_5$b
4215
4240
  ], 512),
4216
4241
  showPopup.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1k, {
4217
4242
  key: 0,
@@ -27920,7 +27945,7 @@ img.ProseMirror-separator {
27920
27945
  const _hoisted_2$x = /* @__PURE__ */ vue.createElementVNode("div", { class: "separator" }, null, -1);
27921
27946
  const _hoisted_3$g = /* @__PURE__ */ vue.createElementVNode("div", { class: "separator" }, null, -1);
27922
27947
  const _hoisted_4$a = /* @__PURE__ */ vue.createElementVNode("div", { class: "separator" }, null, -1);
27923
- const _hoisted_5$9 = /* @__PURE__ */ vue.createElementVNode("div", { class: "separator" }, null, -1);
27948
+ const _hoisted_5$a = /* @__PURE__ */ vue.createElementVNode("div", { class: "separator" }, null, -1);
27924
27949
  const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
27925
27950
  __name: "RichTextToolbar",
27926
27951
  props: {
@@ -27966,7 +27991,7 @@ img.ProseMirror-separator {
27966
27991
  class: vue.normalizeClass([{ active: _ctx.editor.isActive({ textAlign: "right" }), "bs-clickable": !_ctx.disabled }, "font-icon"]),
27967
27992
  onClick: _cache[5] || (_cache[5] = ($event) => !_ctx.disabled && _ctx.editor.chain().focus().setTextAlign("right").run())
27968
27993
  }, " format_align_right ", 2),
27969
- _hoisted_5$9
27994
+ _hoisted_5$a
27970
27995
  ]);
27971
27996
  };
27972
27997
  }
@@ -29719,7 +29744,7 @@ img.ProseMirror-separator {
29719
29744
  key: 0,
29720
29745
  class: "font-icon"
29721
29746
  };
29722
- const _hoisted_5$8 = ["disabled", "name"];
29747
+ const _hoisted_5$9 = ["disabled", "name"];
29723
29748
  const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
29724
29749
  __name: "BSImageUpload",
29725
29750
  props: {
@@ -29934,7 +29959,7 @@ img.ProseMirror-separator {
29934
29959
  style: { "display": "none" },
29935
29960
  type: "file",
29936
29961
  onChange: imageSelected
29937
- }, null, 40, _hoisted_5$8)
29962
+ }, null, 40, _hoisted_5$9)
29938
29963
  ], 2),
29939
29964
  vue.createVNode(_sfc_main$1i, {
29940
29965
  class: vue.normalizeClass({ "text-nowrap": !_ctx.wrapErrorMessage }),
@@ -31421,16 +31446,16 @@ img.ProseMirror-separator {
31421
31446
  class: "fixed func-cell"
31422
31447
  };
31423
31448
  const _hoisted_4$8 = /* @__PURE__ */ vue.createElementVNode("div", null, null, -1);
31424
- const _hoisted_5$7 = [
31449
+ const _hoisted_5$8 = [
31425
31450
  _hoisted_4$8
31426
31451
  ];
31427
- const _hoisted_6$5 = {
31452
+ const _hoisted_6$6 = {
31428
31453
  key: 2,
31429
31454
  class: "fixed func-cell"
31430
31455
  };
31431
- const _hoisted_7$3 = /* @__PURE__ */ vue.createElementVNode("div", null, null, -1);
31456
+ const _hoisted_7$4 = /* @__PURE__ */ vue.createElementVNode("div", null, null, -1);
31432
31457
  const _hoisted_8$2 = [
31433
- _hoisted_7$3
31458
+ _hoisted_7$4
31434
31459
  ];
31435
31460
  const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
31436
31461
  __name: "BSGrid",
@@ -31452,7 +31477,8 @@ img.ProseMirror-separator {
31452
31477
  keyProvider: { default: () => emptyKeyProvider },
31453
31478
  selectedRows: {},
31454
31479
  editable: { type: Boolean },
31455
- editingRows: {}
31480
+ editingRows: {},
31481
+ alwaysEditing: { type: Boolean }
31456
31482
  },
31457
31483
  emits: ["offsetChanged", "update:selectedRows", "update:editingRows", "changeEditingRow", "update:sorts"],
31458
31484
  setup(__props, { emit: __emit }) {
@@ -31509,10 +31535,18 @@ img.ProseMirror-separator {
31509
31535
  };
31510
31536
  const cancelEditMode = async (row) => {
31511
31537
  if (internalEditingRows.isEditingRow(row)) {
31512
- internalEditingRows.removeRow(row);
31513
- emit("update:editingRows", internalEditingRows);
31514
- emit("changeEditingRow", row, false);
31515
- await setFixedCellLeftStyle(table.value);
31538
+ if (props.alwaysEditing) {
31539
+ internalEditingRows.removeRow(row);
31540
+ emit("changeEditingRow", row, false);
31541
+ await vue.nextTick();
31542
+ internalEditingRows.addEditingRow({ row });
31543
+ emit("changeEditingRow", row, true);
31544
+ } else {
31545
+ internalEditingRows.removeRow(row);
31546
+ emit("update:editingRows", internalEditingRows);
31547
+ emit("changeEditingRow", row, false);
31548
+ await setFixedCellLeftStyle(table.value);
31549
+ }
31516
31550
  }
31517
31551
  };
31518
31552
  const clearEditing = async () => {
@@ -31524,6 +31558,16 @@ img.ProseMirror-separator {
31524
31558
  await setFixedCellLeftStyle(table.value);
31525
31559
  }
31526
31560
  };
31561
+ const initEditing = () => {
31562
+ if (props.alwaysEditing) {
31563
+ props.data.forEach((row) => {
31564
+ if (!internalEditingRows.isEditingRow(row)) {
31565
+ internalEditingRows.addEditingRow({ row });
31566
+ }
31567
+ });
31568
+ }
31569
+ };
31570
+ vue.watch(() => props.alwaysEditing, () => initEditing(), { immediate: true });
31527
31571
  const internalSorts = props.sorts || vue.reactive([]);
31528
31572
  const changeSort = (column, ascending) => {
31529
31573
  internalSorts.splice(0, internalSorts.length);
@@ -31547,6 +31591,7 @@ img.ProseMirror-separator {
31547
31591
  async () => {
31548
31592
  await clearEditing();
31549
31593
  clearSelection();
31594
+ initEditing();
31550
31595
  await setFixedCellLeftStyle(table.value);
31551
31596
  },
31552
31597
  { immediate: true }
@@ -31572,13 +31617,13 @@ img.ProseMirror-separator {
31572
31617
  }, [
31573
31618
  vue.createElementVNode("thead", null, [
31574
31619
  vue.createElementVNode("tr", _hoisted_2$o, [
31575
- _ctx.showDragHandle ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_3$b, _hoisted_5$7)) : vue.createCommentVNode("", true),
31620
+ _ctx.showDragHandle ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_3$b, _hoisted_5$8)) : vue.createCommentVNode("", true),
31576
31621
  _ctx.showCheckbox ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
31577
31622
  key: 1,
31578
31623
  "selected-row-count": vue.unref(internalSelectedRows).size,
31579
31624
  onClick: toggleAllSelection
31580
31625
  }, null, 8, ["selected-row-count"])) : vue.createCommentVNode("", true),
31581
- _ctx.editable ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_6$5, _hoisted_8$2)) : vue.createCommentVNode("", true),
31626
+ _ctx.editable ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_6$6, _hoisted_8$2)) : vue.createCommentVNode("", true),
31582
31627
  _ctx.showSerial ? (vue.openBlock(), vue.createBlock(BSGridHeaderCellSerialNo, { key: 3 })) : vue.createCommentVNode("", true),
31583
31628
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(internalColumns.value, (column) => {
31584
31629
  return vue.openBlock(), vue.createBlock(BSGridHeaderCell, {
@@ -31655,7 +31700,7 @@ img.ProseMirror-separator {
31655
31700
  const _hoisted_2$n = { class: "input-wrap" };
31656
31701
  const _hoisted_3$a = ["onKeyup"];
31657
31702
  const _hoisted_4$7 = { class: "textarea-wrap" };
31658
- const _hoisted_5$6 = { class: "filter-caption text-nowrap" };
31703
+ const _hoisted_5$7 = { class: "filter-caption text-nowrap" };
31659
31704
  const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
31660
31705
  __name: "BSTextFilter",
31661
31706
  props: {
@@ -31761,7 +31806,7 @@ img.ProseMirror-separator {
31761
31806
  ], 512), [
31762
31807
  [vue.vShow, filterMode.value === "TEXTAREA"]
31763
31808
  ]),
31764
- vue.createElementVNode("div", _hoisted_5$6, [
31809
+ vue.createElementVNode("div", _hoisted_5$7, [
31765
31810
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filterMode.value === "INPUT" ? likeFilterItems.value : inFilterItems.value, (item) => {
31766
31811
  return vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", {
31767
31812
  key: item.propertyId
@@ -32062,9 +32107,9 @@ img.ProseMirror-separator {
32062
32107
  const _hoisted_2$k = { key: 0 };
32063
32108
  const _hoisted_3$9 = { key: 1 };
32064
32109
  const _hoisted_4$6 = { key: 2 };
32065
- const _hoisted_5$5 = { key: 3 };
32066
- const _hoisted_6$4 = { key: 4 };
32067
- const _hoisted_7$2 = { key: 5 };
32110
+ const _hoisted_5$6 = { key: 3 };
32111
+ const _hoisted_6$5 = { key: 4 };
32112
+ const _hoisted_7$3 = { key: 5 };
32068
32113
  const _hoisted_8$1 = ["textContent"];
32069
32114
  const _hoisted_9$1 = { key: 6 };
32070
32115
  const _hoisted_10$1 = ["textContent"];
@@ -32129,20 +32174,20 @@ img.ProseMirror-separator {
32129
32174
  onClick: clearGridFilter
32130
32175
  })
32131
32176
  ])) : vue.createCommentVNode("", true),
32132
- _ctx.showFilter ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$5, [
32177
+ _ctx.showFilter ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$6, [
32133
32178
  vue.createVNode(BSButton, {
32134
32179
  caption: { key: "bs.grid.filter" },
32135
32180
  "left-icon": "filter_alt"
32136
32181
  })
32137
32182
  ])) : vue.createCommentVNode("", true),
32138
- _ctx.showAddButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$4, [
32183
+ _ctx.showAddButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$5, [
32139
32184
  vue.createVNode(BSButton, {
32140
32185
  caption: { key: "bs.gridcontrol.addRow" },
32141
32186
  "left-icon": "add",
32142
32187
  onClick: _cache[0] || (_cache[0] = ($event) => emit("clickAdd"))
32143
32188
  })
32144
32189
  ])) : vue.createCommentVNode("", true),
32145
- _ctx.showRemoveButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$2, [
32190
+ _ctx.showRemoveButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$3, [
32146
32191
  vue.createVNode(BSButton, {
32147
32192
  caption: { key: "bs.gridcontrol.removeRow" },
32148
32193
  "left-icon": "remove",
@@ -32363,7 +32408,7 @@ img.ProseMirror-separator {
32363
32408
  const _hoisted_2$i = { class: "tabs flex-grow-1 flex-shrink-1" };
32364
32409
  const _hoisted_3$8 = ["onClick"];
32365
32410
  const _hoisted_4$5 = { class: "buttons text-nowrap" };
32366
- const _hoisted_5$4 = { class: "flex-grow-1 bs-layout-vertical" };
32411
+ const _hoisted_5$5 = { class: "flex-grow-1 bs-layout-vertical" };
32367
32412
  const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
32368
32413
  __name: "BSTabSheet",
32369
32414
  props: {
@@ -32430,7 +32475,7 @@ img.ProseMirror-separator {
32430
32475
  vue.renderSlot(_ctx.$slots, "buttons")
32431
32476
  ])
32432
32477
  ], 2),
32433
- vue.createElementVNode("div", _hoisted_5$4, [
32478
+ vue.createElementVNode("div", _hoisted_5$5, [
32434
32479
  currentTab.value ? vue.renderSlot(_ctx.$slots, currentTab.value.tabId, {
32435
32480
  key: 0,
32436
32481
  tabId: currentTab.value.tabId
@@ -33204,12 +33249,12 @@ img.ProseMirror-separator {
33204
33249
  key: 1,
33205
33250
  class: "ml-4"
33206
33251
  };
33207
- const _hoisted_5$3 = /* @__PURE__ */ vue.createElementVNode("span", { class: "label" }, "이름", -1);
33208
- const _hoisted_6$3 = {
33252
+ const _hoisted_5$4 = /* @__PURE__ */ vue.createElementVNode("span", { class: "label" }, "이름", -1);
33253
+ const _hoisted_6$4 = {
33209
33254
  key: 0,
33210
33255
  class: "bs-layout-horizontal mt-4"
33211
33256
  };
33212
- const _hoisted_7$1 = /* @__PURE__ */ vue.createElementVNode("span", { class: "label" }, "성(가타가나)", -1);
33257
+ const _hoisted_7$2 = /* @__PURE__ */ vue.createElementVNode("span", { class: "label" }, "성(가타가나)", -1);
33213
33258
  const _hoisted_8 = { class: "ml-4" };
33214
33259
  const _hoisted_9 = /* @__PURE__ */ vue.createElementVNode("span", { class: "label" }, "이름(가타가나)", -1);
33215
33260
  const _hoisted_10 = /* @__PURE__ */ vue.createElementVNode("div", { class: "message-area" }, null, -1);
@@ -33249,7 +33294,7 @@ img.ProseMirror-separator {
33249
33294
  }, null, 8, ["id", "modelValue", "disabled", "maxlength", "name", "width"])
33250
33295
  ])) : vue.createCommentVNode("", true),
33251
33296
  _ctx.useCount >= 2 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$4, [
33252
- _hoisted_5$3,
33297
+ _hoisted_5$4,
33253
33298
  vue.createVNode(_sfc_main$1d, {
33254
33299
  id: `${_ctx.id}2`,
33255
33300
  modelValue: nameRef.value.name2,
@@ -33261,9 +33306,9 @@ img.ProseMirror-separator {
33261
33306
  }, null, 8, ["id", "modelValue", "disabled", "maxlength", "name", "width"])
33262
33307
  ])) : vue.createCommentVNode("", true)
33263
33308
  ]),
33264
- _ctx.useCount >= 4 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$3, [
33309
+ _ctx.useCount >= 4 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$4, [
33265
33310
  vue.createElementVNode("div", null, [
33266
- _hoisted_7$1,
33311
+ _hoisted_7$2,
33267
33312
  vue.createVNode(_sfc_main$1d, {
33268
33313
  id: `${_ctx.id}3`,
33269
33314
  modelValue: nameRef.value.name3,
@@ -33669,8 +33714,8 @@ img.ProseMirror-separator {
33669
33714
  };
33670
33715
  const _hoisted_3$4 = { class: "title flex-grow-1" };
33671
33716
  const _hoisted_4$3 = { class: "title-buttons" };
33672
- const _hoisted_5$2 = { class: "flex-grow-1 overflow-auto" };
33673
- const _hoisted_6$2 = {
33717
+ const _hoisted_5$3 = { class: "flex-grow-1 overflow-auto" };
33718
+ const _hoisted_6$3 = {
33674
33719
  key: 1,
33675
33720
  class: "buttons"
33676
33721
  };
@@ -33711,10 +33756,10 @@ img.ProseMirror-separator {
33711
33756
  onClick: closeModal
33712
33757
  }, " close ")) : vue.createCommentVNode("", true)
33713
33758
  ])) : vue.createCommentVNode("", true),
33714
- vue.createElementVNode("div", _hoisted_5$2, [
33759
+ vue.createElementVNode("div", _hoisted_5$3, [
33715
33760
  vue.renderSlot(_ctx.$slots, "default")
33716
33761
  ]),
33717
- hasButtons.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$2, [
33762
+ hasButtons.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$3, [
33718
33763
  vue.renderSlot(_ctx.$slots, "buttons")
33719
33764
  ])) : vue.createCommentVNode("", true)
33720
33765
  ]);
@@ -33757,6 +33802,14 @@ img.ProseMirror-separator {
33757
33802
  const _hoisted_2$7 = { class: "top-notification bs-layout-vertical-inline flex-align-center gap-4" };
33758
33803
  const _hoisted_3$3 = { class: "bottom-notification bs-layout-vertical-inline flex-align-end gap-4" };
33759
33804
  const _hoisted_4$2 = { class: "tooltip-container" };
33805
+ const _hoisted_5$2 = {
33806
+ key: 0,
33807
+ class: "loading-container"
33808
+ };
33809
+ const _hoisted_6$2 = /* @__PURE__ */ vue.createElementVNode("span", { class: "font-icon" }, "progress_activity", -1);
33810
+ const _hoisted_7$1 = [
33811
+ _hoisted_6$2
33812
+ ];
33760
33813
  const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
33761
33814
  __name: "BSNotificationContainer",
33762
33815
  setup(__props) {
@@ -33811,7 +33864,8 @@ img.ProseMirror-separator {
33811
33864
  }, null, 8, ["target"])), [
33812
33865
  [vue.unref(vT), vue.unref(tooltipEntry).content]
33813
33866
  ]) : vue.createCommentVNode("", true)
33814
- ])
33867
+ ]),
33868
+ vue.unref(showLoadingIcon) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$2, _hoisted_7$1)) : vue.createCommentVNode("", true)
33815
33869
  ]);
33816
33870
  };
33817
33871
  }
@@ -34919,6 +34973,7 @@ img.ProseMirror-separator {
34919
34973
  exports2.fieldValidator = fieldValidator;
34920
34974
  exports2.formValidator = formValidator;
34921
34975
  exports2.formatUtil = formatUtil;
34976
+ exports2.hideLoading = hideLoading;
34922
34977
  exports2.hideTooltip = hideTooltip;
34923
34978
  exports2.i18n = i18n;
34924
34979
  exports2.inFilter = inFilter;
@@ -34939,6 +34994,8 @@ img.ProseMirror-separator {
34939
34994
  exports2.provideSavePoint = provideSavePoint;
34940
34995
  exports2.provideTabManager = provideTabManager;
34941
34996
  exports2.showAlarm = showAlarm;
34997
+ exports2.showLoading = showLoading;
34998
+ exports2.showLoadingIcon = showLoadingIcon;
34942
34999
  exports2.showNotification = showNotification;
34943
35000
  exports2.showTooltip = showTooltip;
34944
35001
  exports2.storeFieldValidator = storeFieldValidator;
@@ -34959,5 +35016,6 @@ img.ProseMirror-separator {
34959
35016
  exports2.validateFields = validateFields;
34960
35017
  exports2.waitDuring = waitDuring;
34961
35018
  exports2.waitUntil = waitUntil;
35019
+ exports2.withLoading = withLoading;
34962
35020
  Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
34963
35021
  });
@@ -26,6 +26,7 @@ declare const _default: <T extends GridRowData>(__VLS_props: {
26
26
  fixedColumnCount?: number | undefined;
27
27
  showPageNavigation?: boolean | undefined;
28
28
  singleSelect?: boolean | undefined;
29
+ alwaysEditing?: boolean | undefined;
29
30
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, __VLS_ctx?: {
30
31
  slots: Partial<Record<`${string}Filter`, (_: {}) => any>> & Partial<Record<string, (_: {
31
32
  cell: any;
@@ -64,6 +65,7 @@ declare const _default: <T extends GridRowData>(__VLS_props: {
64
65
  fixedColumnCount?: number | undefined;
65
66
  showPageNavigation?: boolean | undefined;
66
67
  singleSelect?: boolean | undefined;
68
+ alwaysEditing?: boolean | undefined;
67
69
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
68
70
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
69
71
  attrs: any;
@@ -106,6 +108,7 @@ declare const _default: <T extends GridRowData>(__VLS_props: {
106
108
  fixedColumnCount?: number | undefined;
107
109
  showPageNavigation?: boolean | undefined;
108
110
  singleSelect?: boolean | undefined;
111
+ alwaysEditing?: boolean | undefined;
109
112
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
110
113
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
111
114
  attrs: any;
@@ -224,6 +224,31 @@ const hideTooltip = () => {
224
224
  tooltipEntry.value = void 0;
225
225
  }
226
226
  };
227
+ const showLoadingIcon = ref(false);
228
+ let showLoadingCount = 0;
229
+ const showLoading = () => {
230
+ showLoadingCount++;
231
+ showLoadingIcon.value = showLoadingCount > 0;
232
+ };
233
+ const hideLoading = () => {
234
+ showLoadingCount = Math.max(0, showLoadingCount - 1);
235
+ showLoadingIcon.value = showLoadingCount > 0;
236
+ };
237
+ const withLoading = async (func) => {
238
+ let shown = false;
239
+ const timeoutId = window.setTimeout(() => {
240
+ showLoading();
241
+ shown = true;
242
+ }, 300);
243
+ try {
244
+ return await func();
245
+ } finally {
246
+ if (shown)
247
+ hideLoading();
248
+ if (timeoutId)
249
+ window.clearTimeout(timeoutId);
250
+ }
251
+ };
227
252
  const DEFAULT_TOOLTIP_SHOW_DELAY = 800;
228
253
  const DEFAULT_TOOLTIP_HIDE_DELAY = 300;
229
254
  const setTooltipParam = (el, param) => {
@@ -778,7 +803,7 @@ const _hoisted_4$m = {
778
803
  key: 1,
779
804
  class: "label"
780
805
  };
781
- const _hoisted_5$g = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
806
+ const _hoisted_5$h = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
782
807
  const _sfc_main$1e = /* @__PURE__ */ defineComponent({
783
808
  __name: "BSSelect",
784
809
  props: {
@@ -888,7 +913,7 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
888
913
  ]) : withDirectives((openBlock(), createElementBlock("span", _hoisted_4$m, null, 512)), [
889
914
  [unref(vT), selectedItemLabel.value]
890
915
  ]),
891
- _hoisted_5$g
916
+ _hoisted_5$h
892
917
  ], 512),
893
918
  !_ctx.disabled && showPopup.value ? (openBlock(), createBlock(_sfc_main$1g, {
894
919
  key: 0,
@@ -1427,7 +1452,7 @@ const _hoisted_3$r = {
1427
1452
  class: "indeterminate"
1428
1453
  };
1429
1454
  const _hoisted_4$k = /* @__PURE__ */ createElementVNode("div", { class: "in-box" }, null, -1);
1430
- const _hoisted_5$f = [
1455
+ const _hoisted_5$g = [
1431
1456
  _hoisted_4$k
1432
1457
  ];
1433
1458
  const _sfc_main$18 = /* @__PURE__ */ defineComponent({
@@ -1457,7 +1482,7 @@ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
1457
1482
  class: "inner-progressbar"
1458
1483
  }, [
1459
1484
  calculateProgress.value !== void 0 && calculateProgress.value < 50 ? (openBlock(), createElementBlock("span", _hoisted_1$Z, toDisplayString(calculatePercent.value) + "% ", 1)) : (openBlock(), createElementBlock("span", _hoisted_2$M, toDisplayString(calculatePercent.value) + "% ", 1))
1460
- ], 4)) : (openBlock(), createElementBlock("div", _hoisted_3$r, _hoisted_5$f))
1485
+ ], 4)) : (openBlock(), createElementBlock("div", _hoisted_3$r, _hoisted_5$g))
1461
1486
  ], 4);
1462
1487
  };
1463
1488
  }
@@ -1907,8 +1932,8 @@ const _hoisted_4$i = {
1907
1932
  key: 1,
1908
1933
  class: "input-area"
1909
1934
  };
1910
- const _hoisted_5$e = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
1911
- const _hoisted_6$7 = ["textContent"];
1935
+ const _hoisted_5$f = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
1936
+ const _hoisted_6$8 = ["textContent"];
1912
1937
  const _sfc_main$14 = /* @__PURE__ */ defineComponent({
1913
1938
  __name: "BSPriceInput",
1914
1939
  props: {
@@ -2049,7 +2074,7 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
2049
2074
  tabindex: _ctx.tabindex,
2050
2075
  value: focused.value || !_ctx.formatOnBlur ? unref(stringValue) : formattedStringValue.value,
2051
2076
  type: "text"
2052
- }, toHandlers(handlers2, true)), null, 16, _hoisted_5$e), [
2077
+ }, toHandlers(handlers2, true)), null, 16, _hoisted_5$f), [
2053
2078
  [
2054
2079
  unref(vT),
2055
2080
  _ctx.placeholder,
@@ -2060,7 +2085,7 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
2060
2085
  createElementVNode("div", {
2061
2086
  class: "currency-code",
2062
2087
  textContent: toDisplayString(currencyCode.value)
2063
- }, null, 8, _hoisted_6$7)
2088
+ }, null, 8, _hoisted_6$8)
2064
2089
  ])),
2065
2090
  createVNode(_sfc_main$1f, { errors: unref(errors) }, null, 8, ["errors"])
2066
2091
  ], 6);
@@ -2229,8 +2254,8 @@ const _hoisted_2$H = {
2229
2254
  };
2230
2255
  const _hoisted_3$n = /* @__PURE__ */ createElementVNode("span", { class: "font-icon" }, "calendar_month", -1);
2231
2256
  const _hoisted_4$g = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2232
- const _hoisted_5$d = /* @__PURE__ */ createElementVNode("span", { class: "px-4" }, "~", -1);
2233
- const _hoisted_6$6 = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2257
+ const _hoisted_5$e = /* @__PURE__ */ createElementVNode("span", { class: "px-4" }, "~", -1);
2258
+ const _hoisted_6$7 = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2234
2259
  const _sfc_main$12 = /* @__PURE__ */ defineComponent({
2235
2260
  __name: "BSDateRange",
2236
2261
  props: {
@@ -2432,7 +2457,7 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
2432
2457
  { placeholder: true }
2433
2458
  ]
2434
2459
  ]),
2435
- _hoisted_5$d,
2460
+ _hoisted_5$e,
2436
2461
  withDirectives(createElementVNode("input", mergeProps({
2437
2462
  id: _ctx.idTo,
2438
2463
  ref_key: "fieldTo",
@@ -2443,7 +2468,7 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
2443
2468
  tabindex: _ctx.tabindex,
2444
2469
  value: focusedTo.value ? unref(stringValueTo) : formattedTo.value,
2445
2470
  type: "text"
2446
- }, toHandlers(handlersTo, true)), null, 16, _hoisted_6$6), [
2471
+ }, toHandlers(handlersTo, true)), null, 16, _hoisted_6$7), [
2447
2472
  [
2448
2473
  unref(vT),
2449
2474
  _ctx.placeholderTo,
@@ -2868,7 +2893,7 @@ const _hoisted_3$k = {
2868
2893
  class: "placeholder flex-grow-1"
2869
2894
  };
2870
2895
  const _hoisted_4$f = { key: 1 };
2871
- const _hoisted_5$c = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
2896
+ const _hoisted_5$d = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
2872
2897
  const _sfc_main$Y = /* @__PURE__ */ defineComponent({
2873
2898
  __name: "BSMultiSelect",
2874
2899
  props: {
@@ -3002,7 +3027,7 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
3002
3027
  ]);
3003
3028
  }), 128))
3004
3029
  ])),
3005
- _hoisted_5$c
3030
+ _hoisted_5$d
3006
3031
  ], 512),
3007
3032
  !_ctx.disabled && showPopup.value ? (openBlock(), createBlock(_sfc_main$1g, {
3008
3033
  key: 0,
@@ -3478,7 +3503,7 @@ class BSModal {
3478
3503
  }
3479
3504
  openAlert(title, message, clickHandler2) {
3480
3505
  const option = {
3481
- component: defineAsyncComponent(() => import("./BSAlertModal-ClhCo07T.js")),
3506
+ component: defineAsyncComponent(() => import("./BSAlertModal-CjBJvytH.js")),
3482
3507
  bind: {
3483
3508
  title,
3484
3509
  message
@@ -3491,7 +3516,7 @@ class BSModal {
3491
3516
  }
3492
3517
  openYesNo(title, message, yesHandler, noHandler) {
3493
3518
  const option = {
3494
- component: defineAsyncComponent(() => import("./BSYesNoModal-BoaZLa9D.js")),
3519
+ component: defineAsyncComponent(() => import("./BSYesNoModal-BXIwk9I5.js")),
3495
3520
  bind: {
3496
3521
  title,
3497
3522
  message
@@ -3923,7 +3948,7 @@ const _hoisted_4$d = {
3923
3948
  key: 1,
3924
3949
  class: "label"
3925
3950
  };
3926
- const _hoisted_5$b = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
3951
+ const _hoisted_5$c = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
3927
3952
  const _sfc_main$V = /* @__PURE__ */ defineComponent({
3928
3953
  __name: "BSTreeSelect",
3929
3954
  props: {
@@ -4055,7 +4080,7 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
4055
4080
  ]) : withDirectives((openBlock(), createElementBlock("span", _hoisted_4$d, null, 512)), [
4056
4081
  [unref(vT), selectedItemLabel.value]
4057
4082
  ]),
4058
- _hoisted_5$b
4083
+ _hoisted_5$c
4059
4084
  ], 512),
4060
4085
  showPopup.value ? (openBlock(), createBlock(_sfc_main$1h, {
4061
4086
  key: 0,
@@ -4082,7 +4107,7 @@ const _hoisted_4$c = {
4082
4107
  key: 1,
4083
4108
  class: "label"
4084
4109
  };
4085
- const _hoisted_5$a = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
4110
+ const _hoisted_5$b = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
4086
4111
  const _sfc_main$U = /* @__PURE__ */ defineComponent({
4087
4112
  __name: "BSTreeMultiSelect",
4088
4113
  props: {
@@ -4210,7 +4235,7 @@ const _sfc_main$U = /* @__PURE__ */ defineComponent({
4210
4235
  ]) : withDirectives((openBlock(), createElementBlock("span", _hoisted_4$c, null, 512)), [
4211
4236
  [unref(vT), selectedItemLabel.value]
4212
4237
  ]),
4213
- _hoisted_5$a
4238
+ _hoisted_5$b
4214
4239
  ], 512),
4215
4240
  showPopup.value ? (openBlock(), createBlock(_sfc_main$1h, {
4216
4241
  key: 0,
@@ -27919,7 +27944,7 @@ const _hoisted_1$G = { class: "rich-text-toolbar bs-layout-horizontal-wrap align
27919
27944
  const _hoisted_2$w = /* @__PURE__ */ createElementVNode("div", { class: "separator" }, null, -1);
27920
27945
  const _hoisted_3$f = /* @__PURE__ */ createElementVNode("div", { class: "separator" }, null, -1);
27921
27946
  const _hoisted_4$a = /* @__PURE__ */ createElementVNode("div", { class: "separator" }, null, -1);
27922
- const _hoisted_5$9 = /* @__PURE__ */ createElementVNode("div", { class: "separator" }, null, -1);
27947
+ const _hoisted_5$a = /* @__PURE__ */ createElementVNode("div", { class: "separator" }, null, -1);
27923
27948
  const _sfc_main$P = /* @__PURE__ */ defineComponent({
27924
27949
  __name: "RichTextToolbar",
27925
27950
  props: {
@@ -27965,7 +27990,7 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
27965
27990
  class: normalizeClass([{ active: _ctx.editor.isActive({ textAlign: "right" }), "bs-clickable": !_ctx.disabled }, "font-icon"]),
27966
27991
  onClick: _cache[5] || (_cache[5] = ($event) => !_ctx.disabled && _ctx.editor.chain().focus().setTextAlign("right").run())
27967
27992
  }, " format_align_right ", 2),
27968
- _hoisted_5$9
27993
+ _hoisted_5$a
27969
27994
  ]);
27970
27995
  };
27971
27996
  }
@@ -29718,7 +29743,7 @@ const _hoisted_4$9 = {
29718
29743
  key: 0,
29719
29744
  class: "font-icon"
29720
29745
  };
29721
- const _hoisted_5$8 = ["disabled", "name"];
29746
+ const _hoisted_5$9 = ["disabled", "name"];
29722
29747
  const _sfc_main$N = /* @__PURE__ */ defineComponent({
29723
29748
  __name: "BSImageUpload",
29724
29749
  props: {
@@ -29933,7 +29958,7 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
29933
29958
  style: { "display": "none" },
29934
29959
  type: "file",
29935
29960
  onChange: imageSelected
29936
- }, null, 40, _hoisted_5$8)
29961
+ }, null, 40, _hoisted_5$9)
29937
29962
  ], 2),
29938
29963
  createVNode(_sfc_main$1f, {
29939
29964
  class: normalizeClass({ "text-nowrap": !_ctx.wrapErrorMessage }),
@@ -31420,16 +31445,16 @@ const _hoisted_3$a = {
31420
31445
  class: "fixed func-cell"
31421
31446
  };
31422
31447
  const _hoisted_4$8 = /* @__PURE__ */ createElementVNode("div", null, null, -1);
31423
- const _hoisted_5$7 = [
31448
+ const _hoisted_5$8 = [
31424
31449
  _hoisted_4$8
31425
31450
  ];
31426
- const _hoisted_6$5 = {
31451
+ const _hoisted_6$6 = {
31427
31452
  key: 2,
31428
31453
  class: "fixed func-cell"
31429
31454
  };
31430
- const _hoisted_7$3 = /* @__PURE__ */ createElementVNode("div", null, null, -1);
31455
+ const _hoisted_7$4 = /* @__PURE__ */ createElementVNode("div", null, null, -1);
31431
31456
  const _hoisted_8$2 = [
31432
- _hoisted_7$3
31457
+ _hoisted_7$4
31433
31458
  ];
31434
31459
  const _sfc_main$B = /* @__PURE__ */ defineComponent({
31435
31460
  __name: "BSGrid",
@@ -31451,7 +31476,8 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
31451
31476
  keyProvider: { default: () => emptyKeyProvider },
31452
31477
  selectedRows: {},
31453
31478
  editable: { type: Boolean },
31454
- editingRows: {}
31479
+ editingRows: {},
31480
+ alwaysEditing: { type: Boolean }
31455
31481
  },
31456
31482
  emits: ["offsetChanged", "update:selectedRows", "update:editingRows", "changeEditingRow", "update:sorts"],
31457
31483
  setup(__props, { emit: __emit }) {
@@ -31508,10 +31534,18 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
31508
31534
  };
31509
31535
  const cancelEditMode = async (row) => {
31510
31536
  if (internalEditingRows.isEditingRow(row)) {
31511
- internalEditingRows.removeRow(row);
31512
- emit("update:editingRows", internalEditingRows);
31513
- emit("changeEditingRow", row, false);
31514
- await setFixedCellLeftStyle(table.value);
31537
+ if (props.alwaysEditing) {
31538
+ internalEditingRows.removeRow(row);
31539
+ emit("changeEditingRow", row, false);
31540
+ await nextTick();
31541
+ internalEditingRows.addEditingRow({ row });
31542
+ emit("changeEditingRow", row, true);
31543
+ } else {
31544
+ internalEditingRows.removeRow(row);
31545
+ emit("update:editingRows", internalEditingRows);
31546
+ emit("changeEditingRow", row, false);
31547
+ await setFixedCellLeftStyle(table.value);
31548
+ }
31515
31549
  }
31516
31550
  };
31517
31551
  const clearEditing = async () => {
@@ -31523,6 +31557,16 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
31523
31557
  await setFixedCellLeftStyle(table.value);
31524
31558
  }
31525
31559
  };
31560
+ const initEditing = () => {
31561
+ if (props.alwaysEditing) {
31562
+ props.data.forEach((row) => {
31563
+ if (!internalEditingRows.isEditingRow(row)) {
31564
+ internalEditingRows.addEditingRow({ row });
31565
+ }
31566
+ });
31567
+ }
31568
+ };
31569
+ watch(() => props.alwaysEditing, () => initEditing(), { immediate: true });
31526
31570
  const internalSorts = props.sorts || reactive([]);
31527
31571
  const changeSort = (column, ascending) => {
31528
31572
  internalSorts.splice(0, internalSorts.length);
@@ -31546,6 +31590,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
31546
31590
  async () => {
31547
31591
  await clearEditing();
31548
31592
  clearSelection();
31593
+ initEditing();
31549
31594
  await setFixedCellLeftStyle(table.value);
31550
31595
  },
31551
31596
  { immediate: true }
@@ -31571,13 +31616,13 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
31571
31616
  }, [
31572
31617
  createElementVNode("thead", null, [
31573
31618
  createElementVNode("tr", _hoisted_2$n, [
31574
- _ctx.showDragHandle ? (openBlock(), createElementBlock("th", _hoisted_3$a, _hoisted_5$7)) : createCommentVNode("", true),
31619
+ _ctx.showDragHandle ? (openBlock(), createElementBlock("th", _hoisted_3$a, _hoisted_5$8)) : createCommentVNode("", true),
31575
31620
  _ctx.showCheckbox ? (openBlock(), createBlock(_sfc_main$J, {
31576
31621
  key: 1,
31577
31622
  "selected-row-count": unref(internalSelectedRows).size,
31578
31623
  onClick: toggleAllSelection
31579
31624
  }, null, 8, ["selected-row-count"])) : createCommentVNode("", true),
31580
- _ctx.editable ? (openBlock(), createElementBlock("th", _hoisted_6$5, _hoisted_8$2)) : createCommentVNode("", true),
31625
+ _ctx.editable ? (openBlock(), createElementBlock("th", _hoisted_6$6, _hoisted_8$2)) : createCommentVNode("", true),
31581
31626
  _ctx.showSerial ? (openBlock(), createBlock(BSGridHeaderCellSerialNo, { key: 3 })) : createCommentVNode("", true),
31582
31627
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(internalColumns.value, (column) => {
31583
31628
  return openBlock(), createBlock(BSGridHeaderCell, {
@@ -31654,7 +31699,7 @@ const _hoisted_1$u = { class: "bs-text-filter" };
31654
31699
  const _hoisted_2$m = { class: "input-wrap" };
31655
31700
  const _hoisted_3$9 = ["onKeyup"];
31656
31701
  const _hoisted_4$7 = { class: "textarea-wrap" };
31657
- const _hoisted_5$6 = { class: "filter-caption text-nowrap" };
31702
+ const _hoisted_5$7 = { class: "filter-caption text-nowrap" };
31658
31703
  const _sfc_main$A = /* @__PURE__ */ defineComponent({
31659
31704
  __name: "BSTextFilter",
31660
31705
  props: {
@@ -31760,7 +31805,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
31760
31805
  ], 512), [
31761
31806
  [vShow, filterMode.value === "TEXTAREA"]
31762
31807
  ]),
31763
- createElementVNode("div", _hoisted_5$6, [
31808
+ createElementVNode("div", _hoisted_5$7, [
31764
31809
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(filterMode.value === "INPUT" ? likeFilterItems.value : inFilterItems.value, (item) => {
31765
31810
  return withDirectives((openBlock(), createElementBlock("span", {
31766
31811
  key: item.propertyId
@@ -32061,9 +32106,9 @@ const _hoisted_1$r = { class: "bs-grid-control" };
32061
32106
  const _hoisted_2$j = { key: 0 };
32062
32107
  const _hoisted_3$8 = { key: 1 };
32063
32108
  const _hoisted_4$6 = { key: 2 };
32064
- const _hoisted_5$5 = { key: 3 };
32065
- const _hoisted_6$4 = { key: 4 };
32066
- const _hoisted_7$2 = { key: 5 };
32109
+ const _hoisted_5$6 = { key: 3 };
32110
+ const _hoisted_6$5 = { key: 4 };
32111
+ const _hoisted_7$3 = { key: 5 };
32067
32112
  const _hoisted_8$1 = ["textContent"];
32068
32113
  const _hoisted_9$1 = { key: 6 };
32069
32114
  const _hoisted_10$1 = ["textContent"];
@@ -32128,20 +32173,20 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
32128
32173
  onClick: clearGridFilter
32129
32174
  })
32130
32175
  ])) : createCommentVNode("", true),
32131
- _ctx.showFilter ? (openBlock(), createElementBlock("div", _hoisted_5$5, [
32176
+ _ctx.showFilter ? (openBlock(), createElementBlock("div", _hoisted_5$6, [
32132
32177
  createVNode(BSButton, {
32133
32178
  caption: { key: "bs.grid.filter" },
32134
32179
  "left-icon": "filter_alt"
32135
32180
  })
32136
32181
  ])) : createCommentVNode("", true),
32137
- _ctx.showAddButton ? (openBlock(), createElementBlock("div", _hoisted_6$4, [
32182
+ _ctx.showAddButton ? (openBlock(), createElementBlock("div", _hoisted_6$5, [
32138
32183
  createVNode(BSButton, {
32139
32184
  caption: { key: "bs.gridcontrol.addRow" },
32140
32185
  "left-icon": "add",
32141
32186
  onClick: _cache[0] || (_cache[0] = ($event) => emit("clickAdd"))
32142
32187
  })
32143
32188
  ])) : createCommentVNode("", true),
32144
- _ctx.showRemoveButton ? (openBlock(), createElementBlock("div", _hoisted_7$2, [
32189
+ _ctx.showRemoveButton ? (openBlock(), createElementBlock("div", _hoisted_7$3, [
32145
32190
  createVNode(BSButton, {
32146
32191
  caption: { key: "bs.gridcontrol.removeRow" },
32147
32192
  "left-icon": "remove",
@@ -32362,7 +32407,7 @@ const _hoisted_1$p = { class: "bs-tab-sheet bs-layout-vertical" };
32362
32407
  const _hoisted_2$h = { class: "tabs flex-grow-1 flex-shrink-1" };
32363
32408
  const _hoisted_3$7 = ["onClick"];
32364
32409
  const _hoisted_4$5 = { class: "buttons text-nowrap" };
32365
- const _hoisted_5$4 = { class: "flex-grow-1 bs-layout-vertical" };
32410
+ const _hoisted_5$5 = { class: "flex-grow-1 bs-layout-vertical" };
32366
32411
  const _sfc_main$t = /* @__PURE__ */ defineComponent({
32367
32412
  __name: "BSTabSheet",
32368
32413
  props: {
@@ -32429,7 +32474,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
32429
32474
  renderSlot(_ctx.$slots, "buttons")
32430
32475
  ])
32431
32476
  ], 2),
32432
- createElementVNode("div", _hoisted_5$4, [
32477
+ createElementVNode("div", _hoisted_5$5, [
32433
32478
  currentTab.value ? renderSlot(_ctx.$slots, currentTab.value.tabId, {
32434
32479
  key: 0,
32435
32480
  tabId: currentTab.value.tabId
@@ -33203,12 +33248,12 @@ const _hoisted_4$4 = {
33203
33248
  key: 1,
33204
33249
  class: "ml-4"
33205
33250
  };
33206
- const _hoisted_5$3 = /* @__PURE__ */ createElementVNode("span", { class: "label" }, "이름", -1);
33207
- const _hoisted_6$3 = {
33251
+ const _hoisted_5$4 = /* @__PURE__ */ createElementVNode("span", { class: "label" }, "이름", -1);
33252
+ const _hoisted_6$4 = {
33208
33253
  key: 0,
33209
33254
  class: "bs-layout-horizontal mt-4"
33210
33255
  };
33211
- const _hoisted_7$1 = /* @__PURE__ */ createElementVNode("span", { class: "label" }, "성(가타가나)", -1);
33256
+ const _hoisted_7$2 = /* @__PURE__ */ createElementVNode("span", { class: "label" }, "성(가타가나)", -1);
33212
33257
  const _hoisted_8 = { class: "ml-4" };
33213
33258
  const _hoisted_9 = /* @__PURE__ */ createElementVNode("span", { class: "label" }, "이름(가타가나)", -1);
33214
33259
  const _hoisted_10 = /* @__PURE__ */ createElementVNode("div", { class: "message-area" }, null, -1);
@@ -33248,7 +33293,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
33248
33293
  }, null, 8, ["id", "modelValue", "disabled", "maxlength", "name", "width"])
33249
33294
  ])) : createCommentVNode("", true),
33250
33295
  _ctx.useCount >= 2 ? (openBlock(), createElementBlock("div", _hoisted_4$4, [
33251
- _hoisted_5$3,
33296
+ _hoisted_5$4,
33252
33297
  createVNode(_sfc_main$1a, {
33253
33298
  id: `${_ctx.id}2`,
33254
33299
  modelValue: nameRef.value.name2,
@@ -33260,9 +33305,9 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
33260
33305
  }, null, 8, ["id", "modelValue", "disabled", "maxlength", "name", "width"])
33261
33306
  ])) : createCommentVNode("", true)
33262
33307
  ]),
33263
- _ctx.useCount >= 4 ? (openBlock(), createElementBlock("div", _hoisted_6$3, [
33308
+ _ctx.useCount >= 4 ? (openBlock(), createElementBlock("div", _hoisted_6$4, [
33264
33309
  createElementVNode("div", null, [
33265
- _hoisted_7$1,
33310
+ _hoisted_7$2,
33266
33311
  createVNode(_sfc_main$1a, {
33267
33312
  id: `${_ctx.id}3`,
33268
33313
  modelValue: nameRef.value.name3,
@@ -33372,7 +33417,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
33372
33417
  const modal = useModal();
33373
33418
  const openModal = () => {
33374
33419
  modal.openModal({
33375
- component: defineAsyncComponent(() => import("./AddressSearchModal-BlTRjOqn.js")),
33420
+ component: defineAsyncComponent(() => import("./AddressSearchModal-C2tRdvJd.js")),
33376
33421
  bind: {},
33377
33422
  on: {
33378
33423
  select: (addr) => {
@@ -33668,8 +33713,8 @@ const _hoisted_2$7 = {
33668
33713
  };
33669
33714
  const _hoisted_3$3 = { class: "title flex-grow-1" };
33670
33715
  const _hoisted_4$3 = { class: "title-buttons" };
33671
- const _hoisted_5$2 = { class: "flex-grow-1 overflow-auto" };
33672
- const _hoisted_6$2 = {
33716
+ const _hoisted_5$3 = { class: "flex-grow-1 overflow-auto" };
33717
+ const _hoisted_6$3 = {
33673
33718
  key: 1,
33674
33719
  class: "buttons"
33675
33720
  };
@@ -33710,10 +33755,10 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
33710
33755
  onClick: closeModal
33711
33756
  }, " close ")) : createCommentVNode("", true)
33712
33757
  ])) : createCommentVNode("", true),
33713
- createElementVNode("div", _hoisted_5$2, [
33758
+ createElementVNode("div", _hoisted_5$3, [
33714
33759
  renderSlot(_ctx.$slots, "default")
33715
33760
  ]),
33716
- hasButtons.value ? (openBlock(), createElementBlock("div", _hoisted_6$2, [
33761
+ hasButtons.value ? (openBlock(), createElementBlock("div", _hoisted_6$3, [
33717
33762
  renderSlot(_ctx.$slots, "buttons")
33718
33763
  ])) : createCommentVNode("", true)
33719
33764
  ]);
@@ -33756,6 +33801,14 @@ const _hoisted_1$a = { class: "bs-notification-container" };
33756
33801
  const _hoisted_2$6 = { class: "top-notification bs-layout-vertical-inline flex-align-center gap-4" };
33757
33802
  const _hoisted_3$2 = { class: "bottom-notification bs-layout-vertical-inline flex-align-end gap-4" };
33758
33803
  const _hoisted_4$2 = { class: "tooltip-container" };
33804
+ const _hoisted_5$2 = {
33805
+ key: 0,
33806
+ class: "loading-container"
33807
+ };
33808
+ const _hoisted_6$2 = /* @__PURE__ */ createElementVNode("span", { class: "font-icon" }, "progress_activity", -1);
33809
+ const _hoisted_7$1 = [
33810
+ _hoisted_6$2
33811
+ ];
33759
33812
  const _sfc_main$a = /* @__PURE__ */ defineComponent({
33760
33813
  __name: "BSNotificationContainer",
33761
33814
  setup(__props) {
@@ -33810,7 +33863,8 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
33810
33863
  }, null, 8, ["target"])), [
33811
33864
  [unref(vT), unref(tooltipEntry).content]
33812
33865
  ]) : createCommentVNode("", true)
33813
- ])
33866
+ ]),
33867
+ unref(showLoadingIcon) ? (openBlock(), createElementBlock("div", _hoisted_5$2, _hoisted_7$1)) : createCommentVNode("", true)
33814
33868
  ]);
33815
33869
  };
33816
33870
  }
@@ -34688,24 +34742,28 @@ export {
34688
34742
  tooltipEntry as b8,
34689
34743
  showTooltip as b9,
34690
34744
  hideTooltip as ba,
34691
- BSContextMenuPlugin as bb,
34692
- useContextMenu as bc,
34693
- useContextMenuOptional as bd,
34694
- createContextMenuPlugin as be,
34695
- DefaultFrameContext as bf,
34696
- createDefaultFrameContext as bg,
34697
- provideDefaultFrameContext as bh,
34698
- useDefaultFrame as bi,
34699
- I18NTexts as bj,
34700
- i18n as bk,
34701
- notNull as bl,
34702
- formatUtil as bm,
34703
- waitUntil as bn,
34704
- tryUntil as bo,
34705
- parsePathParam as bp,
34706
- isBlankMultiLangString as bq,
34707
- addPrefixToMultiLangString as br,
34708
- isBlankMultiLangImageFile as bs,
34745
+ showLoadingIcon as bb,
34746
+ showLoading as bc,
34747
+ hideLoading as bd,
34748
+ withLoading as be,
34749
+ BSContextMenuPlugin as bf,
34750
+ useContextMenu as bg,
34751
+ useContextMenuOptional as bh,
34752
+ createContextMenuPlugin as bi,
34753
+ DefaultFrameContext as bj,
34754
+ createDefaultFrameContext as bk,
34755
+ provideDefaultFrameContext as bl,
34756
+ useDefaultFrame as bm,
34757
+ I18NTexts as bn,
34758
+ i18n as bo,
34759
+ notNull as bp,
34760
+ formatUtil as bq,
34761
+ waitUntil as br,
34762
+ tryUntil as bs,
34763
+ parsePathParam as bt,
34764
+ isBlankMultiLangString as bu,
34765
+ addPrefixToMultiLangString as bv,
34766
+ isBlankMultiLangImageFile as bw,
34709
34767
  vT as c,
34710
34768
  BLUESEA_VERSION as d,
34711
34769
  _sfc_main$1i as e,
@@ -38,3 +38,7 @@ export type TooltipEntry = {
38
38
  export declare const tooltipEntry: import('vue').Ref<TooltipEntry | undefined>;
39
39
  export declare const showTooltip: (content: MultiLangText, target: HTMLElement) => void;
40
40
  export declare const hideTooltip: () => void;
41
+ export declare const showLoadingIcon: import('vue').Ref<boolean>;
42
+ export declare const showLoading: () => void;
43
+ export declare const hideLoading: () => void;
44
+ export declare const withLoading: <T>(func: () => Promise<T>) => Promise<T>;
package/dist/style.css CHANGED
@@ -36329,6 +36329,25 @@ textarea {
36329
36329
  z-index: 250;
36330
36330
  bottom: 20px;
36331
36331
  right: 20px;
36332
+ }
36333
+ .bs-notification-container > .loading-container {
36334
+ position: fixed;
36335
+ left: 0;
36336
+ top: 0;
36337
+ right: 0;
36338
+ bottom: 0;
36339
+ background-color: #000;
36340
+ opacity: 0.1;
36341
+ z-index: 200;
36342
+ display: flex;
36343
+ align-items: center;
36344
+ justify-content: center;
36345
+ }
36346
+ .bs-notification-container > .loading-container > .font-icon {
36347
+ font-size: 52px;
36348
+ color: white;
36349
+ opacity: 1;
36350
+ animation: spin 1s linear infinite;
36332
36351
  }[data-v-c47777f4]:root {
36333
36352
  --font-size: 13px;
36334
36353
  --font-size-input: 13px;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@g1cloud/bluesea",
3
3
  "private": false,
4
- "version": "5.0.0-alpha.42",
4
+ "version": "5.0.0-alpha.43",
5
5
  "description": "Ui Library for g1cloud BackOffice.",
6
6
  "type": "module",
7
7
  "engines": {