@g1cloud/bluesea 5.0.0-alpha.50 → 5.0.0-alpha.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/css/reset.scss CHANGED
@@ -61,4 +61,8 @@ table {
61
61
 
62
62
  strong {
63
63
  font-weight: bold;
64
+ }
65
+
66
+ a {
67
+ text-underline-offset: 2px;
64
68
  }
@@ -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-CX5p0Ph_.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-C81TfBCL.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-CX5p0Ph_.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, v as vFocusOnLoad, c as vT } from "./index-C81TfBCL.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-CX5p0Ph_.js";
2
+ import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, v as vFocusOnLoad, c as vT } from "./index-C81TfBCL.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 { aL, aM, d, a0, a4, B, L, q, r, k, a5, bi, o, p, K, e, b, I, a, a1, G, i, O, N, Y, b2, 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, aT, aS, ac, a7, bm, a6, aj, ag, ad, aR, al, ak, bq, aP, ai, aQ, am, aO, aN, af, P, aH, S, at, by, b8, aU, a$, a_, aa, aK, ba, ab, bl, bn, ah, b5, ae, aq, ar, aZ, aE, aF, aG, aC, aD, aB, ay, av, bt, bg, bd, br, aX, a9, bz, bx, au, aY, ax, bA, aW, bs, b6, aV, bw, bo, b0, b4, aI, an, b9, bf, be, b7, bc, aw, as, bb, bv, bj, bk, bp, b1, b3, u, aJ, ao, ap, a8, c, az, aA, w, bu, bh } from "./index-CX5p0Ph_.js";
1
+ import { aL, aM, d, a0, a4, B, L, q, r, k, a5, bi, o, p, K, e, b, I, a, a1, G, i, O, N, Y, b2, 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, aT, aS, ac, a7, bm, a6, aj, ag, ad, aR, al, ak, bq, aP, ai, aQ, am, aO, aN, af, P, aH, S, at, by, b8, aU, a$, a_, aa, aK, ba, ab, bl, bn, ah, b5, ae, aq, ar, aZ, aE, aF, aG, aC, aD, aB, ay, av, bt, bg, bd, br, aX, a9, bz, bx, au, aY, ax, bA, aW, bs, b6, aV, bw, bo, b0, b4, aI, an, b9, bf, be, b7, bc, aw, as, bb, bv, bj, bk, bp, b1, b3, u, aJ, ao, ap, a8, c, az, aA, w, bu, bh } from "./index-C81TfBCL.js";
2
2
  export {
3
3
  aL as AbstractFilter,
4
4
  aM as AndFilter,
@@ -363,7 +363,7 @@ var __publicField = (obj, key, value) => {
363
363
  }
364
364
  return target;
365
365
  };
366
- const BSButton = /* @__PURE__ */ _export_sfc(_sfc_main$1n, [["__scopeId", "data-v-6f347589"]]);
366
+ const BSButton = /* @__PURE__ */ _export_sfc(_sfc_main$1n, [["__scopeId", "data-v-2d45c4bb"]]);
367
367
  const _sfc_main$1m = /* @__PURE__ */ vue.defineComponent({
368
368
  __name: "BSFormLabel",
369
369
  props: {
@@ -881,7 +881,7 @@ var __publicField = (obj, key, value) => {
881
881
  key: 1,
882
882
  class: "label"
883
883
  };
884
- const _hoisted_5$i = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
884
+ const _hoisted_5$j = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
885
885
  const _sfc_main$1i = /* @__PURE__ */ vue.defineComponent({
886
886
  __name: "BSSelect",
887
887
  props: {
@@ -994,7 +994,7 @@ var __publicField = (obj, key, value) => {
994
994
  ]) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", _hoisted_4$n, null, 512)), [
995
995
  [vue.unref(vT), selectedItemLabel.value]
996
996
  ]),
997
- _hoisted_5$i
997
+ _hoisted_5$j
998
998
  ], 512),
999
999
  !_ctx.disabled && showPopup.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1k, {
1000
1000
  key: 0,
@@ -1536,7 +1536,7 @@ var __publicField = (obj, key, value) => {
1536
1536
  class: "indeterminate"
1537
1537
  };
1538
1538
  const _hoisted_4$l = /* @__PURE__ */ vue.createElementVNode("div", { class: "in-box" }, null, -1);
1539
- const _hoisted_5$h = [
1539
+ const _hoisted_5$i = [
1540
1540
  _hoisted_4$l
1541
1541
  ];
1542
1542
  const _sfc_main$1c = /* @__PURE__ */ vue.defineComponent({
@@ -1566,7 +1566,7 @@ var __publicField = (obj, key, value) => {
1566
1566
  class: "inner-progressbar"
1567
1567
  }, [
1568
1568
  calculateProgress.value !== void 0 && calculateProgress.value < 50 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$$, vue.toDisplayString(calculatePercent.value) + "% ", 1)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$O, vue.toDisplayString(calculatePercent.value) + "% ", 1))
1569
- ], 4)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$t, _hoisted_5$h))
1569
+ ], 4)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$t, _hoisted_5$i))
1570
1570
  ], 4);
1571
1571
  };
1572
1572
  }
@@ -2020,8 +2020,8 @@ var __publicField = (obj, key, value) => {
2020
2020
  key: 1,
2021
2021
  class: "input-area"
2022
2022
  };
2023
- const _hoisted_5$g = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
2024
- const _hoisted_6$8 = ["textContent"];
2023
+ const _hoisted_5$h = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
2024
+ const _hoisted_6$9 = ["textContent"];
2025
2025
  const _sfc_main$18 = /* @__PURE__ */ vue.defineComponent({
2026
2026
  __name: "BSPriceInput",
2027
2027
  props: {
@@ -2166,7 +2166,7 @@ var __publicField = (obj, key, value) => {
2166
2166
  tabindex: _ctx.tabindex,
2167
2167
  value: focused.value || !_ctx.formatOnBlur ? vue.unref(stringValue) : formattedStringValue.value,
2168
2168
  type: "text"
2169
- }, vue.toHandlers(handlers2, true)), null, 16, _hoisted_5$g), [
2169
+ }, vue.toHandlers(handlers2, true)), null, 16, _hoisted_5$h), [
2170
2170
  [
2171
2171
  vue.unref(vT),
2172
2172
  _ctx.placeholder,
@@ -2177,7 +2177,7 @@ var __publicField = (obj, key, value) => {
2177
2177
  vue.createElementVNode("div", {
2178
2178
  class: "currency-code",
2179
2179
  textContent: vue.toDisplayString(currencyCode.value)
2180
- }, null, 8, _hoisted_6$8)
2180
+ }, null, 8, _hoisted_6$9)
2181
2181
  ])),
2182
2182
  vue.createVNode(_sfc_main$1j, { errors: vue.unref(errors) }, null, 8, ["errors"])
2183
2183
  ], 6);
@@ -2350,8 +2350,8 @@ var __publicField = (obj, key, value) => {
2350
2350
  };
2351
2351
  const _hoisted_3$p = /* @__PURE__ */ vue.createElementVNode("span", { class: "font-icon" }, "calendar_month", -1);
2352
2352
  const _hoisted_4$h = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2353
- const _hoisted_5$f = /* @__PURE__ */ vue.createElementVNode("span", { class: "px-4" }, "~", -1);
2354
- const _hoisted_6$7 = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2353
+ const _hoisted_5$g = /* @__PURE__ */ vue.createElementVNode("span", { class: "px-4" }, "~", -1);
2354
+ const _hoisted_6$8 = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2355
2355
  const _sfc_main$16 = /* @__PURE__ */ vue.defineComponent({
2356
2356
  __name: "BSDateRange",
2357
2357
  props: {
@@ -2561,7 +2561,7 @@ var __publicField = (obj, key, value) => {
2561
2561
  { placeholder: true }
2562
2562
  ]
2563
2563
  ]),
2564
- _hoisted_5$f,
2564
+ _hoisted_5$g,
2565
2565
  vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
2566
2566
  id: _ctx.idTo,
2567
2567
  ref_key: "fieldTo",
@@ -2572,7 +2572,7 @@ var __publicField = (obj, key, value) => {
2572
2572
  tabindex: _ctx.tabindex,
2573
2573
  value: focusedTo.value ? vue.unref(stringValueTo) : formattedTo.value,
2574
2574
  type: "text"
2575
- }, vue.toHandlers(handlersTo, true)), null, 16, _hoisted_6$7), [
2575
+ }, vue.toHandlers(handlersTo, true)), null, 16, _hoisted_6$8), [
2576
2576
  [
2577
2577
  vue.unref(vT),
2578
2578
  _ctx.placeholderTo,
@@ -3010,7 +3010,7 @@ var __publicField = (obj, key, value) => {
3010
3010
  class: "placeholder flex-grow-1"
3011
3011
  };
3012
3012
  const _hoisted_4$g = { key: 1 };
3013
- const _hoisted_5$e = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
3013
+ const _hoisted_5$f = /* @__PURE__ */ vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
3014
3014
  const _sfc_main$10 = /* @__PURE__ */ vue.defineComponent({
3015
3015
  __name: "BSMultiSelect",
3016
3016
  props: {
@@ -3149,7 +3149,7 @@ var __publicField = (obj, key, value) => {
3149
3149
  ]);
3150
3150
  }), 128))
3151
3151
  ])),
3152
- _hoisted_5$e
3152
+ _hoisted_5$f
3153
3153
  ], 512),
3154
3154
  !_ctx.disabled && showPopup.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1k, {
3155
3155
  key: 0,
@@ -3323,6 +3323,10 @@ var __publicField = (obj, key, value) => {
3323
3323
  const _hoisted_2$E = { class: "row-caption" };
3324
3324
  const _hoisted_3$l = ["textContent"];
3325
3325
  const _hoisted_4$f = {
3326
+ key: 1,
3327
+ class: "font-icon w-16 text-gray-400"
3328
+ };
3329
+ const _hoisted_5$e = {
3326
3330
  key: 0,
3327
3331
  class: "child-rows"
3328
3332
  };
@@ -3333,6 +3337,7 @@ var __publicField = (obj, key, value) => {
3333
3337
  parentRow: {},
3334
3338
  siblings: {},
3335
3339
  childrenProvider: { default: () => defaultTreeChildrenProvider },
3340
+ iconProvider: {},
3336
3341
  labelProvider: { default: () => defaultLabelProvider },
3337
3342
  keyProvider: {},
3338
3343
  showCheckbox: { type: Boolean },
@@ -3343,6 +3348,7 @@ var __publicField = (obj, key, value) => {
3343
3348
  setup(__props, { emit: __emit }) {
3344
3349
  const props = __props;
3345
3350
  const emit = __emit;
3351
+ const icon = vue.computed(() => props.iconProvider && props.iconProvider(props.row));
3346
3352
  const label = vue.computed(() => props.labelProvider(props.row));
3347
3353
  const children = vue.computed(() => props.childrenProvider(props.row));
3348
3354
  const treeRowStatuses = vue.inject("TREE_ROW_STATUSES");
@@ -3401,6 +3407,7 @@ var __publicField = (obj, key, value) => {
3401
3407
  textContent: vue.toDisplayString(isSelected.value ? "check_box" : "check_box_outline_blank"),
3402
3408
  onClick: _cache[0] || (_cache[0] = vue.withModifiers(($event) => selectRow(true), ["stop"]))
3403
3409
  }, null, 8, _hoisted_3$l)) : vue.createCommentVNode("", true),
3410
+ _ctx.iconProvider ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$f, vue.toDisplayString(icon.value || ""), 1)) : vue.createCommentVNode("", true),
3404
3411
  vue.withDirectives(vue.createElementVNode("span", {
3405
3412
  class: vue.normalizeClass([{ selected: isSelected.value }, "caption"]),
3406
3413
  onClick: _cache[1] || (_cache[1] = vue.withModifiers(($event) => selectRow(false), ["stop"])),
@@ -3411,24 +3418,25 @@ var __publicField = (obj, key, value) => {
3411
3418
  [vue.unref(vTreeRowDrag), dragOption]
3412
3419
  ]),
3413
3420
  _ctx.showMoveButton ? (vue.openBlock(), vue.createElementBlock("span", {
3414
- key: 1,
3421
+ key: 2,
3415
3422
  class: "bs-clickable font-icon move-down",
3416
3423
  onClick: moveDownRow
3417
3424
  }, "arrow_downward")) : vue.createCommentVNode("", true),
3418
3425
  _ctx.showMoveButton ? (vue.openBlock(), vue.createElementBlock("span", {
3419
- key: 2,
3426
+ key: 3,
3420
3427
  class: "bs-clickable font-icon move-up",
3421
3428
  onClick: moveUpRow
3422
3429
  }, "arrow_upward")) : vue.createCommentVNode("", true)
3423
3430
  ])), [
3424
3431
  [vue.unref(vTreeRowDrop), dropOption]
3425
3432
  ]),
3426
- children.value && children.value.length > 0 ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_4$f, [
3433
+ children.value && children.value.length > 0 ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_5$e, [
3427
3434
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(children.value, (child) => {
3428
3435
  return vue.openBlock(), vue.createBlock(_component_BSTreeRow, {
3429
3436
  key: _ctx.keyProvider(child),
3430
3437
  "children-provider": _ctx.childrenProvider,
3431
3438
  "enable-drag-and-drop": _ctx.enableDragAndDrop,
3439
+ "icon-provider": _ctx.iconProvider,
3432
3440
  "key-provider": _ctx.keyProvider,
3433
3441
  "label-provider": _ctx.labelProvider,
3434
3442
  "parent-row": _ctx.row,
@@ -3439,7 +3447,7 @@ var __publicField = (obj, key, value) => {
3439
3447
  onToggleRow: toggleChildRow,
3440
3448
  onMoveRow: moveChildRow,
3441
3449
  onSelectRow: selectChildRow
3442
- }, null, 8, ["children-provider", "enable-drag-and-drop", "key-provider", "label-provider", "parent-row", "row", "show-checkbox", "show-move-button", "siblings"]);
3450
+ }, null, 8, ["children-provider", "enable-drag-and-drop", "icon-provider", "key-provider", "label-provider", "parent-row", "row", "show-checkbox", "show-move-button", "siblings"]);
3443
3451
  }), 128))
3444
3452
  ], 512)), [
3445
3453
  [vue.vShow, isOpen.value]
@@ -3454,6 +3462,7 @@ var __publicField = (obj, key, value) => {
3454
3462
  data: {},
3455
3463
  keyProvider: { default: () => defaultKeyProvider },
3456
3464
  childrenProvider: { default: () => defaultTreeChildrenProvider },
3465
+ iconProvider: {},
3457
3466
  labelProvider: { default: () => defaultLabelProvider },
3458
3467
  showMoveButton: { type: Boolean },
3459
3468
  enableDragAndDrop: { type: [Boolean, Object] },
@@ -3556,6 +3565,7 @@ var __publicField = (obj, key, value) => {
3556
3565
  key: _ctx.keyProvider(item),
3557
3566
  "children-provider": _ctx.childrenProvider,
3558
3567
  "enable-drag-and-drop": _ctx.enableDragAndDrop,
3568
+ "icon-provider": _ctx.iconProvider,
3559
3569
  "key-provider": _ctx.keyProvider,
3560
3570
  "label-provider": _ctx.labelProvider,
3561
3571
  "parent-row": void 0,
@@ -3567,7 +3577,7 @@ var __publicField = (obj, key, value) => {
3567
3577
  onToggleRow: toggleRow,
3568
3578
  onMoveRow: moveRow,
3569
3579
  onSelectRow: selectRow
3570
- }, null, 8, ["children-provider", "enable-drag-and-drop", "key-provider", "label-provider", "row", "show-checkbox", "show-move-button", "siblings"]);
3580
+ }, null, 8, ["children-provider", "enable-drag-and-drop", "icon-provider", "key-provider", "label-provider", "row", "show-checkbox", "show-move-button", "siblings"]);
3571
3581
  }), 128))
3572
3582
  ]),
3573
3583
  _: 1
@@ -31650,13 +31660,13 @@ img.ProseMirror-separator {
31650
31660
  const _hoisted_5$9 = [
31651
31661
  _hoisted_4$9
31652
31662
  ];
31653
- const _hoisted_6$6 = {
31663
+ const _hoisted_6$7 = {
31654
31664
  key: 2,
31655
31665
  class: "fixed func-cell"
31656
31666
  };
31657
- const _hoisted_7$4 = /* @__PURE__ */ vue.createElementVNode("div", null, null, -1);
31667
+ const _hoisted_7$5 = /* @__PURE__ */ vue.createElementVNode("div", null, null, -1);
31658
31668
  const _hoisted_8$3 = [
31659
- _hoisted_7$4
31669
+ _hoisted_7$5
31660
31670
  ];
31661
31671
  const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
31662
31672
  __name: "BSGrid",
@@ -31825,18 +31835,20 @@ img.ProseMirror-separator {
31825
31835
  cancelProvidedSavePoint();
31826
31836
  }
31827
31837
  const scrolledHorizontally = vue.ref(false);
31838
+ const scrolledVertically = vue.ref(false);
31828
31839
  vue.onMounted(() => {
31829
31840
  var _a, _b;
31830
- (_b = (_a = table.value) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.addEventListener("scroll", setHorizontalScrollStyle, { passive: true });
31841
+ (_b = (_a = table.value) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.addEventListener("scroll", setScrollStyle, { passive: true });
31831
31842
  });
31832
- const setHorizontalScrollStyle = () => {
31833
- var _a, _b;
31843
+ const setScrollStyle = () => {
31844
+ var _a, _b, _c, _d;
31834
31845
  scrolledHorizontally.value = (((_b = (_a = table.value) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.scrollLeft) || 0) > 0;
31846
+ scrolledVertically.value = (((_d = (_c = table.value) == null ? void 0 : _c.parentElement) == null ? void 0 : _d.scrollTop) || 0) > 0;
31835
31847
  };
31836
31848
  return (_ctx, _cache) => {
31837
31849
  var _a, _b, _c;
31838
31850
  return vue.openBlock(), vue.createElementBlock("div", {
31839
- class: vue.normalizeClass([{ "h-scrolled": scrolledHorizontally.value }, "bs-grid"]),
31851
+ class: vue.normalizeClass([{ "h-scrolled": scrolledHorizontally.value, "v-scrolled": scrolledVertically.value }, "bs-grid"]),
31840
31852
  style: vue.normalizeStyle({ width: _ctx.width, height: _ctx.height })
31841
31853
  }, [
31842
31854
  vue.createElementVNode("div", _hoisted_1$y, [
@@ -31852,7 +31864,7 @@ img.ProseMirror-separator {
31852
31864
  "selected-row-count": vue.unref(internalSelectedRows).size,
31853
31865
  onClick: toggleAllSelection
31854
31866
  }, null, 8, ["selected-row-count"])) : vue.createCommentVNode("", true),
31855
- _ctx.editable ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_6$6, _hoisted_8$3)) : vue.createCommentVNode("", true),
31867
+ _ctx.editable ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_6$7, _hoisted_8$3)) : vue.createCommentVNode("", true),
31856
31868
  _ctx.showSerial ? (vue.openBlock(), vue.createBlock(BSGridHeaderCellSerialNo, { key: 3 })) : vue.createCommentVNode("", true),
31857
31869
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(internalColumns.value, (column) => {
31858
31870
  return vue.openBlock(), vue.createBlock(BSGridHeaderCell, {
@@ -32460,8 +32472,8 @@ img.ProseMirror-separator {
32460
32472
  const _hoisted_3$a = { key: 1 };
32461
32473
  const _hoisted_4$7 = { key: 2 };
32462
32474
  const _hoisted_5$7 = { key: 3 };
32463
- const _hoisted_6$5 = { key: 4 };
32464
- const _hoisted_7$3 = { key: 5 };
32475
+ const _hoisted_6$6 = { key: 4 };
32476
+ const _hoisted_7$4 = { key: 5 };
32465
32477
  const _hoisted_8$2 = ["textContent"];
32466
32478
  const _hoisted_9$1 = { key: 6 };
32467
32479
  const _hoisted_10$1 = ["textContent"];
@@ -32532,14 +32544,14 @@ img.ProseMirror-separator {
32532
32544
  "left-icon": "filter_alt"
32533
32545
  })
32534
32546
  ])) : vue.createCommentVNode("", true),
32535
- _ctx.showAddButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$5, [
32547
+ _ctx.showAddButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$6, [
32536
32548
  vue.createVNode(BSButton, {
32537
32549
  caption: { key: "bs.gridcontrol.addRow" },
32538
32550
  "left-icon": "add",
32539
32551
  onClick: _cache[0] || (_cache[0] = ($event) => emit("clickAdd"))
32540
32552
  })
32541
32553
  ])) : vue.createCommentVNode("", true),
32542
- _ctx.showRemoveButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$3, [
32554
+ _ctx.showRemoveButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$4, [
32543
32555
  vue.createVNode(BSButton, {
32544
32556
  caption: { key: "bs.gridcontrol.removeRow" },
32545
32557
  "left-icon": "remove",
@@ -32759,8 +32771,13 @@ img.ProseMirror-separator {
32759
32771
  const _hoisted_1$s = { class: "bs-tab-sheet bs-layout-vertical" };
32760
32772
  const _hoisted_2$i = { class: "tabs flex-grow-1 flex-shrink-1" };
32761
32773
  const _hoisted_3$9 = ["onClick"];
32762
- const _hoisted_4$6 = { class: "buttons text-nowrap" };
32763
- const _hoisted_5$6 = { class: "flex-grow-1 bs-layout-vertical" };
32774
+ const _hoisted_4$6 = {
32775
+ key: 0,
32776
+ class: "font-icon"
32777
+ };
32778
+ const _hoisted_5$6 = { class: "ml-4" };
32779
+ const _hoisted_6$5 = { class: "buttons text-nowrap" };
32780
+ const _hoisted_7$3 = { class: "flex-grow-1 bs-layout-vertical" };
32764
32781
  const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
32765
32782
  __name: "BSTabSheet",
32766
32783
  props: {
@@ -32812,24 +32829,23 @@ img.ProseMirror-separator {
32812
32829
  vue.createElementVNode("div", _hoisted_2$i, [
32813
32830
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(visibleTabs.value, (tab) => {
32814
32831
  var _a;
32815
- return vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
32832
+ return vue.openBlock(), vue.createElementBlock("div", {
32816
32833
  key: tab.tabId,
32817
- class: vue.normalizeClass([{ selected: (tab == null ? void 0 : tab.tabId) === ((_a = currentTab.value) == null ? void 0 : _a.tabId), disabled: tab == null ? void 0 : tab.disabled }, "tab"]),
32834
+ class: vue.normalizeClass([{ selected: (tab == null ? void 0 : tab.tabId) === ((_a = currentTab.value) == null ? void 0 : _a.tabId), disabled: tab == null ? void 0 : tab.disabled }, "tab flex-row align-items-center"]),
32818
32835
  onClick: ($event) => selectTab(tab)
32819
32836
  }, [
32820
- vue.withDirectives(vue.createElementVNode("span", null, null, 512), [
32837
+ tab.icon ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$6, vue.toDisplayString(tab.icon), 1)) : vue.createCommentVNode("", true),
32838
+ vue.withDirectives(vue.createElementVNode("span", _hoisted_5$6, null, 512), [
32821
32839
  [vue.unref(vT), tab.caption]
32822
32840
  ])
32823
- ], 10, _hoisted_3$9)), [
32824
- [vue.unref(vT), tab.caption]
32825
- ]);
32841
+ ], 10, _hoisted_3$9);
32826
32842
  }), 128))
32827
32843
  ]),
32828
- vue.createElementVNode("div", _hoisted_4$6, [
32844
+ vue.createElementVNode("div", _hoisted_6$5, [
32829
32845
  vue.renderSlot(_ctx.$slots, "buttons")
32830
32846
  ])
32831
32847
  ], 2),
32832
- vue.createElementVNode("div", _hoisted_5$6, [
32848
+ vue.createElementVNode("div", _hoisted_7$3, [
32833
32849
  currentTab.value ? vue.renderSlot(_ctx.$slots, currentTab.value.tabId, {
32834
32850
  key: 0,
32835
32851
  tabId: currentTab.value.tabId
@@ -3,6 +3,7 @@ import { MultiLangText } from '../../model/CommonTypes';
3
3
  export type TabEntry = {
4
4
  tabId: string;
5
5
  caption?: MultiLangText;
6
+ icon?: string;
6
7
  disabled?: boolean;
7
8
  hidden?: boolean;
8
9
  };
@@ -1,6 +1,6 @@
1
1
  import { MenuItem } from '../../contextmenu/contextMenuPlugin';
2
2
  import { ChangeSelectionEvent, DragAndDropPolicy, RowMovedEvent, TreeChildrenProvider } from './TreeModel';
3
- import { KeyProvider, LabelProvider } from '../../model/CommonTypes';
3
+ import { IconProvider, KeyProvider, LabelProvider } from '../../model/CommonTypes';
4
4
 
5
5
  declare const _default: <T>(__VLS_props: {
6
6
  data: T[];
@@ -13,6 +13,7 @@ declare const _default: <T>(__VLS_props: {
13
13
  contextMenuProvider?: ((rows: T[]) => (MenuItem[] | undefined)) | undefined;
14
14
  onRowMoved?: ((event: RowMovedEvent<T>) => any) | undefined;
15
15
  "onUpdate:selectedRows"?: ((value: Set<T>) => any) | undefined;
16
+ iconProvider?: IconProvider<T> | undefined;
16
17
  showMoveButton?: boolean | undefined;
17
18
  "onUpdate:expandedRows"?: ((value: Set<string>) => any) | undefined;
18
19
  "onBefore:selectedRows"?: ((event: ChangeSelectionEvent<T>) => any) | undefined;
@@ -39,6 +40,7 @@ declare const _default: <T>(__VLS_props: {
39
40
  contextMenuProvider?: ((rows: T[]) => (MenuItem[] | undefined)) | undefined;
40
41
  onRowMoved?: ((event: RowMovedEvent<T>) => any) | undefined;
41
42
  "onUpdate:selectedRows"?: ((value: Set<T>) => any) | undefined;
43
+ iconProvider?: IconProvider<T> | undefined;
42
44
  showMoveButton?: boolean | undefined;
43
45
  "onUpdate:expandedRows"?: ((value: Set<string>) => any) | undefined;
44
46
  "onBefore:selectedRows"?: ((event: ChangeSelectionEvent<T>) => any) | undefined;
@@ -69,6 +71,7 @@ declare const _default: <T>(__VLS_props: {
69
71
  contextMenuProvider?: ((rows: T[]) => (MenuItem[] | undefined)) | undefined;
70
72
  onRowMoved?: ((event: RowMovedEvent<T>) => any) | undefined;
71
73
  "onUpdate:selectedRows"?: ((value: Set<T>) => any) | undefined;
74
+ iconProvider?: IconProvider<T> | undefined;
72
75
  showMoveButton?: boolean | undefined;
73
76
  "onUpdate:expandedRows"?: ((value: Set<string>) => any) | undefined;
74
77
  "onBefore:selectedRows"?: ((event: ChangeSelectionEvent<T>) => any) | undefined;
@@ -1,4 +1,4 @@
1
- import { KeyProvider, LabelProvider } from '../../model/CommonTypes';
1
+ import { IconProvider, KeyProvider, LabelProvider } from '../../model/CommonTypes';
2
2
  import { DragAndDropPolicy, TreeChildrenProvider } from './TreeModel';
3
3
 
4
4
  declare const _default: <T>(__VLS_props: {
@@ -13,6 +13,7 @@ declare const _default: <T>(__VLS_props: {
13
13
  onMoveRow?: ((row: T, siblings: T[], destRow: T | undefined, destSiblings: T[] | undefined, destIndex: number) => any) | undefined;
14
14
  parentRow: T | undefined;
15
15
  siblings: T[];
16
+ iconProvider?: IconProvider<T> | undefined;
16
17
  showMoveButton?: boolean | undefined;
17
18
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, __VLS_ctx?: {
18
19
  slots: {};
@@ -35,6 +36,7 @@ declare const _default: <T>(__VLS_props: {
35
36
  onMoveRow?: ((row: T, siblings: T[], destRow: T | undefined, destSiblings: T[] | undefined, destIndex: number) => any) | undefined;
36
37
  parentRow: T | undefined;
37
38
  siblings: T[];
39
+ iconProvider?: IconProvider<T> | undefined;
38
40
  showMoveButton?: boolean | undefined;
39
41
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
40
42
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
@@ -61,6 +63,7 @@ declare const _default: <T>(__VLS_props: {
61
63
  onMoveRow?: ((row: T, siblings: T[], destRow: T | undefined, destSiblings: T[] | undefined, destIndex: number) => any) | undefined;
62
64
  parentRow: T | undefined;
63
65
  siblings: T[];
66
+ iconProvider?: IconProvider<T> | undefined;
64
67
  showMoveButton?: boolean | undefined;
65
68
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
66
69
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
@@ -362,7 +362,7 @@ const _export_sfc = (sfc, props) => {
362
362
  }
363
363
  return target;
364
364
  };
365
- const BSButton = /* @__PURE__ */ _export_sfc(_sfc_main$1k, [["__scopeId", "data-v-6f347589"]]);
365
+ const BSButton = /* @__PURE__ */ _export_sfc(_sfc_main$1k, [["__scopeId", "data-v-2d45c4bb"]]);
366
366
  const _sfc_main$1j = /* @__PURE__ */ defineComponent({
367
367
  __name: "BSFormLabel",
368
368
  props: {
@@ -880,7 +880,7 @@ const _hoisted_4$n = {
880
880
  key: 1,
881
881
  class: "label"
882
882
  };
883
- const _hoisted_5$i = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
883
+ const _hoisted_5$j = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
884
884
  const _sfc_main$1f = /* @__PURE__ */ defineComponent({
885
885
  __name: "BSSelect",
886
886
  props: {
@@ -993,7 +993,7 @@ const _sfc_main$1f = /* @__PURE__ */ defineComponent({
993
993
  ]) : withDirectives((openBlock(), createElementBlock("span", _hoisted_4$n, null, 512)), [
994
994
  [unref(vT), selectedItemLabel.value]
995
995
  ]),
996
- _hoisted_5$i
996
+ _hoisted_5$j
997
997
  ], 512),
998
998
  !_ctx.disabled && showPopup.value ? (openBlock(), createBlock(_sfc_main$1h, {
999
999
  key: 0,
@@ -1535,7 +1535,7 @@ const _hoisted_3$s = {
1535
1535
  class: "indeterminate"
1536
1536
  };
1537
1537
  const _hoisted_4$l = /* @__PURE__ */ createElementVNode("div", { class: "in-box" }, null, -1);
1538
- const _hoisted_5$h = [
1538
+ const _hoisted_5$i = [
1539
1539
  _hoisted_4$l
1540
1540
  ];
1541
1541
  const _sfc_main$19 = /* @__PURE__ */ defineComponent({
@@ -1565,7 +1565,7 @@ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
1565
1565
  class: "inner-progressbar"
1566
1566
  }, [
1567
1567
  calculateProgress.value !== void 0 && calculateProgress.value < 50 ? (openBlock(), createElementBlock("span", _hoisted_1$Y, toDisplayString(calculatePercent.value) + "% ", 1)) : (openBlock(), createElementBlock("span", _hoisted_2$N, toDisplayString(calculatePercent.value) + "% ", 1))
1568
- ], 4)) : (openBlock(), createElementBlock("div", _hoisted_3$s, _hoisted_5$h))
1568
+ ], 4)) : (openBlock(), createElementBlock("div", _hoisted_3$s, _hoisted_5$i))
1569
1569
  ], 4);
1570
1570
  };
1571
1571
  }
@@ -2019,8 +2019,8 @@ const _hoisted_4$j = {
2019
2019
  key: 1,
2020
2020
  class: "input-area"
2021
2021
  };
2022
- const _hoisted_5$g = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
2023
- const _hoisted_6$8 = ["textContent"];
2022
+ const _hoisted_5$h = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
2023
+ const _hoisted_6$9 = ["textContent"];
2024
2024
  const _sfc_main$15 = /* @__PURE__ */ defineComponent({
2025
2025
  __name: "BSPriceInput",
2026
2026
  props: {
@@ -2165,7 +2165,7 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
2165
2165
  tabindex: _ctx.tabindex,
2166
2166
  value: focused.value || !_ctx.formatOnBlur ? unref(stringValue) : formattedStringValue.value,
2167
2167
  type: "text"
2168
- }, toHandlers(handlers2, true)), null, 16, _hoisted_5$g), [
2168
+ }, toHandlers(handlers2, true)), null, 16, _hoisted_5$h), [
2169
2169
  [
2170
2170
  unref(vT),
2171
2171
  _ctx.placeholder,
@@ -2176,7 +2176,7 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
2176
2176
  createElementVNode("div", {
2177
2177
  class: "currency-code",
2178
2178
  textContent: toDisplayString(currencyCode.value)
2179
- }, null, 8, _hoisted_6$8)
2179
+ }, null, 8, _hoisted_6$9)
2180
2180
  ])),
2181
2181
  createVNode(_sfc_main$1g, { errors: unref(errors) }, null, 8, ["errors"])
2182
2182
  ], 6);
@@ -2349,8 +2349,8 @@ const _hoisted_2$I = {
2349
2349
  };
2350
2350
  const _hoisted_3$o = /* @__PURE__ */ createElementVNode("span", { class: "font-icon" }, "calendar_month", -1);
2351
2351
  const _hoisted_4$h = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2352
- const _hoisted_5$f = /* @__PURE__ */ createElementVNode("span", { class: "px-4" }, "~", -1);
2353
- const _hoisted_6$7 = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2352
+ const _hoisted_5$g = /* @__PURE__ */ createElementVNode("span", { class: "px-4" }, "~", -1);
2353
+ const _hoisted_6$8 = ["id", "disabled", "maxlength", "name", "tabindex", "value"];
2354
2354
  const _sfc_main$13 = /* @__PURE__ */ defineComponent({
2355
2355
  __name: "BSDateRange",
2356
2356
  props: {
@@ -2560,7 +2560,7 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
2560
2560
  { placeholder: true }
2561
2561
  ]
2562
2562
  ]),
2563
- _hoisted_5$f,
2563
+ _hoisted_5$g,
2564
2564
  withDirectives(createElementVNode("input", mergeProps({
2565
2565
  id: _ctx.idTo,
2566
2566
  ref_key: "fieldTo",
@@ -2571,7 +2571,7 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
2571
2571
  tabindex: _ctx.tabindex,
2572
2572
  value: focusedTo.value ? unref(stringValueTo) : formattedTo.value,
2573
2573
  type: "text"
2574
- }, toHandlers(handlersTo, true)), null, 16, _hoisted_6$7), [
2574
+ }, toHandlers(handlersTo, true)), null, 16, _hoisted_6$8), [
2575
2575
  [
2576
2576
  unref(vT),
2577
2577
  _ctx.placeholderTo,
@@ -3009,7 +3009,7 @@ const _hoisted_3$l = {
3009
3009
  class: "placeholder flex-grow-1"
3010
3010
  };
3011
3011
  const _hoisted_4$g = { key: 1 };
3012
- const _hoisted_5$e = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
3012
+ const _hoisted_5$f = /* @__PURE__ */ createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1);
3013
3013
  const _sfc_main$Z = /* @__PURE__ */ defineComponent({
3014
3014
  __name: "BSMultiSelect",
3015
3015
  props: {
@@ -3148,7 +3148,7 @@ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
3148
3148
  ]);
3149
3149
  }), 128))
3150
3150
  ])),
3151
- _hoisted_5$e
3151
+ _hoisted_5$f
3152
3152
  ], 512),
3153
3153
  !_ctx.disabled && showPopup.value ? (openBlock(), createBlock(_sfc_main$1h, {
3154
3154
  key: 0,
@@ -3322,6 +3322,10 @@ const _hoisted_1$N = { class: "bs-tree-row" };
3322
3322
  const _hoisted_2$D = { class: "row-caption" };
3323
3323
  const _hoisted_3$k = ["textContent"];
3324
3324
  const _hoisted_4$f = {
3325
+ key: 1,
3326
+ class: "font-icon w-16 text-gray-400"
3327
+ };
3328
+ const _hoisted_5$e = {
3325
3329
  key: 0,
3326
3330
  class: "child-rows"
3327
3331
  };
@@ -3332,6 +3336,7 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
3332
3336
  parentRow: {},
3333
3337
  siblings: {},
3334
3338
  childrenProvider: { default: () => defaultTreeChildrenProvider },
3339
+ iconProvider: {},
3335
3340
  labelProvider: { default: () => defaultLabelProvider },
3336
3341
  keyProvider: {},
3337
3342
  showCheckbox: { type: Boolean },
@@ -3342,6 +3347,7 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
3342
3347
  setup(__props, { emit: __emit }) {
3343
3348
  const props = __props;
3344
3349
  const emit = __emit;
3350
+ const icon = computed(() => props.iconProvider && props.iconProvider(props.row));
3345
3351
  const label = computed(() => props.labelProvider(props.row));
3346
3352
  const children = computed(() => props.childrenProvider(props.row));
3347
3353
  const treeRowStatuses = inject("TREE_ROW_STATUSES");
@@ -3400,6 +3406,7 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
3400
3406
  textContent: toDisplayString(isSelected.value ? "check_box" : "check_box_outline_blank"),
3401
3407
  onClick: _cache[0] || (_cache[0] = withModifiers(($event) => selectRow(true), ["stop"]))
3402
3408
  }, null, 8, _hoisted_3$k)) : createCommentVNode("", true),
3409
+ _ctx.iconProvider ? (openBlock(), createElementBlock("span", _hoisted_4$f, toDisplayString(icon.value || ""), 1)) : createCommentVNode("", true),
3403
3410
  withDirectives(createElementVNode("span", {
3404
3411
  class: normalizeClass([{ selected: isSelected.value }, "caption"]),
3405
3412
  onClick: _cache[1] || (_cache[1] = withModifiers(($event) => selectRow(false), ["stop"])),
@@ -3410,24 +3417,25 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
3410
3417
  [unref(vTreeRowDrag), dragOption]
3411
3418
  ]),
3412
3419
  _ctx.showMoveButton ? (openBlock(), createElementBlock("span", {
3413
- key: 1,
3420
+ key: 2,
3414
3421
  class: "bs-clickable font-icon move-down",
3415
3422
  onClick: moveDownRow
3416
3423
  }, "arrow_downward")) : createCommentVNode("", true),
3417
3424
  _ctx.showMoveButton ? (openBlock(), createElementBlock("span", {
3418
- key: 2,
3425
+ key: 3,
3419
3426
  class: "bs-clickable font-icon move-up",
3420
3427
  onClick: moveUpRow
3421
3428
  }, "arrow_upward")) : createCommentVNode("", true)
3422
3429
  ])), [
3423
3430
  [unref(vTreeRowDrop), dropOption]
3424
3431
  ]),
3425
- children.value && children.value.length > 0 ? withDirectives((openBlock(), createElementBlock("div", _hoisted_4$f, [
3432
+ children.value && children.value.length > 0 ? withDirectives((openBlock(), createElementBlock("div", _hoisted_5$e, [
3426
3433
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(children.value, (child) => {
3427
3434
  return openBlock(), createBlock(_component_BSTreeRow, {
3428
3435
  key: _ctx.keyProvider(child),
3429
3436
  "children-provider": _ctx.childrenProvider,
3430
3437
  "enable-drag-and-drop": _ctx.enableDragAndDrop,
3438
+ "icon-provider": _ctx.iconProvider,
3431
3439
  "key-provider": _ctx.keyProvider,
3432
3440
  "label-provider": _ctx.labelProvider,
3433
3441
  "parent-row": _ctx.row,
@@ -3438,7 +3446,7 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
3438
3446
  onToggleRow: toggleChildRow,
3439
3447
  onMoveRow: moveChildRow,
3440
3448
  onSelectRow: selectChildRow
3441
- }, null, 8, ["children-provider", "enable-drag-and-drop", "key-provider", "label-provider", "parent-row", "row", "show-checkbox", "show-move-button", "siblings"]);
3449
+ }, null, 8, ["children-provider", "enable-drag-and-drop", "icon-provider", "key-provider", "label-provider", "parent-row", "row", "show-checkbox", "show-move-button", "siblings"]);
3442
3450
  }), 128))
3443
3451
  ], 512)), [
3444
3452
  [vShow, isOpen.value]
@@ -3453,6 +3461,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
3453
3461
  data: {},
3454
3462
  keyProvider: { default: () => defaultKeyProvider },
3455
3463
  childrenProvider: { default: () => defaultTreeChildrenProvider },
3464
+ iconProvider: {},
3456
3465
  labelProvider: { default: () => defaultLabelProvider },
3457
3466
  showMoveButton: { type: Boolean },
3458
3467
  enableDragAndDrop: { type: [Boolean, Object] },
@@ -3555,6 +3564,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
3555
3564
  key: _ctx.keyProvider(item),
3556
3565
  "children-provider": _ctx.childrenProvider,
3557
3566
  "enable-drag-and-drop": _ctx.enableDragAndDrop,
3567
+ "icon-provider": _ctx.iconProvider,
3558
3568
  "key-provider": _ctx.keyProvider,
3559
3569
  "label-provider": _ctx.labelProvider,
3560
3570
  "parent-row": void 0,
@@ -3566,7 +3576,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
3566
3576
  onToggleRow: toggleRow,
3567
3577
  onMoveRow: moveRow,
3568
3578
  onSelectRow: selectRow
3569
- }, null, 8, ["children-provider", "enable-drag-and-drop", "key-provider", "label-provider", "row", "show-checkbox", "show-move-button", "siblings"]);
3579
+ }, null, 8, ["children-provider", "enable-drag-and-drop", "icon-provider", "key-provider", "label-provider", "row", "show-checkbox", "show-move-button", "siblings"]);
3570
3580
  }), 128))
3571
3581
  ]),
3572
3582
  _: 1
@@ -3624,7 +3634,7 @@ class BSModal {
3624
3634
  }
3625
3635
  openAlert(title, message, clickHandler2) {
3626
3636
  const option = {
3627
- component: defineAsyncComponent(() => import("./BSAlertModal-CzXYUrgA.js")),
3637
+ component: defineAsyncComponent(() => import("./BSAlertModal-CeAHPZr3.js")),
3628
3638
  bind: {
3629
3639
  title,
3630
3640
  message
@@ -3637,7 +3647,7 @@ class BSModal {
3637
3647
  }
3638
3648
  openYesNo(title, message, yesHandler, noHandler) {
3639
3649
  const option = {
3640
- component: defineAsyncComponent(() => import("./BSYesNoModal-DxwzLJSi.js")),
3650
+ component: defineAsyncComponent(() => import("./BSYesNoModal-DmAqwhlo.js")),
3641
3651
  bind: {
3642
3652
  title,
3643
3653
  message
@@ -31649,13 +31659,13 @@ const _hoisted_4$9 = /* @__PURE__ */ createElementVNode("div", null, null, -1);
31649
31659
  const _hoisted_5$9 = [
31650
31660
  _hoisted_4$9
31651
31661
  ];
31652
- const _hoisted_6$6 = {
31662
+ const _hoisted_6$7 = {
31653
31663
  key: 2,
31654
31664
  class: "fixed func-cell"
31655
31665
  };
31656
- const _hoisted_7$4 = /* @__PURE__ */ createElementVNode("div", null, null, -1);
31666
+ const _hoisted_7$5 = /* @__PURE__ */ createElementVNode("div", null, null, -1);
31657
31667
  const _hoisted_8$3 = [
31658
- _hoisted_7$4
31668
+ _hoisted_7$5
31659
31669
  ];
31660
31670
  const _sfc_main$C = /* @__PURE__ */ defineComponent({
31661
31671
  __name: "BSGrid",
@@ -31824,18 +31834,20 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
31824
31834
  cancelProvidedSavePoint();
31825
31835
  }
31826
31836
  const scrolledHorizontally = ref(false);
31837
+ const scrolledVertically = ref(false);
31827
31838
  onMounted(() => {
31828
31839
  var _a, _b;
31829
- (_b = (_a = table.value) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.addEventListener("scroll", setHorizontalScrollStyle, { passive: true });
31840
+ (_b = (_a = table.value) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.addEventListener("scroll", setScrollStyle, { passive: true });
31830
31841
  });
31831
- const setHorizontalScrollStyle = () => {
31832
- var _a, _b;
31842
+ const setScrollStyle = () => {
31843
+ var _a, _b, _c, _d;
31833
31844
  scrolledHorizontally.value = (((_b = (_a = table.value) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.scrollLeft) || 0) > 0;
31845
+ scrolledVertically.value = (((_d = (_c = table.value) == null ? void 0 : _c.parentElement) == null ? void 0 : _d.scrollTop) || 0) > 0;
31834
31846
  };
31835
31847
  return (_ctx, _cache) => {
31836
31848
  var _a, _b, _c;
31837
31849
  return openBlock(), createElementBlock("div", {
31838
- class: normalizeClass([{ "h-scrolled": scrolledHorizontally.value }, "bs-grid"]),
31850
+ class: normalizeClass([{ "h-scrolled": scrolledHorizontally.value, "v-scrolled": scrolledVertically.value }, "bs-grid"]),
31839
31851
  style: normalizeStyle({ width: _ctx.width, height: _ctx.height })
31840
31852
  }, [
31841
31853
  createElementVNode("div", _hoisted_1$v, [
@@ -31851,7 +31863,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
31851
31863
  "selected-row-count": unref(internalSelectedRows).size,
31852
31864
  onClick: toggleAllSelection
31853
31865
  }, null, 8, ["selected-row-count"])) : createCommentVNode("", true),
31854
- _ctx.editable ? (openBlock(), createElementBlock("th", _hoisted_6$6, _hoisted_8$3)) : createCommentVNode("", true),
31866
+ _ctx.editable ? (openBlock(), createElementBlock("th", _hoisted_6$7, _hoisted_8$3)) : createCommentVNode("", true),
31855
31867
  _ctx.showSerial ? (openBlock(), createBlock(BSGridHeaderCellSerialNo, { key: 3 })) : createCommentVNode("", true),
31856
31868
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(internalColumns.value, (column) => {
31857
31869
  return openBlock(), createBlock(BSGridHeaderCell, {
@@ -32459,8 +32471,8 @@ const _hoisted_2$j = { key: 0 };
32459
32471
  const _hoisted_3$9 = { key: 1 };
32460
32472
  const _hoisted_4$7 = { key: 2 };
32461
32473
  const _hoisted_5$7 = { key: 3 };
32462
- const _hoisted_6$5 = { key: 4 };
32463
- const _hoisted_7$3 = { key: 5 };
32474
+ const _hoisted_6$6 = { key: 4 };
32475
+ const _hoisted_7$4 = { key: 5 };
32464
32476
  const _hoisted_8$2 = ["textContent"];
32465
32477
  const _hoisted_9$1 = { key: 6 };
32466
32478
  const _hoisted_10$1 = ["textContent"];
@@ -32531,14 +32543,14 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
32531
32543
  "left-icon": "filter_alt"
32532
32544
  })
32533
32545
  ])) : createCommentVNode("", true),
32534
- _ctx.showAddButton ? (openBlock(), createElementBlock("div", _hoisted_6$5, [
32546
+ _ctx.showAddButton ? (openBlock(), createElementBlock("div", _hoisted_6$6, [
32535
32547
  createVNode(BSButton, {
32536
32548
  caption: { key: "bs.gridcontrol.addRow" },
32537
32549
  "left-icon": "add",
32538
32550
  onClick: _cache[0] || (_cache[0] = ($event) => emit("clickAdd"))
32539
32551
  })
32540
32552
  ])) : createCommentVNode("", true),
32541
- _ctx.showRemoveButton ? (openBlock(), createElementBlock("div", _hoisted_7$3, [
32553
+ _ctx.showRemoveButton ? (openBlock(), createElementBlock("div", _hoisted_7$4, [
32542
32554
  createVNode(BSButton, {
32543
32555
  caption: { key: "bs.gridcontrol.removeRow" },
32544
32556
  "left-icon": "remove",
@@ -32758,8 +32770,13 @@ const useTabManagerSilently = () => {
32758
32770
  const _hoisted_1$p = { class: "bs-tab-sheet bs-layout-vertical" };
32759
32771
  const _hoisted_2$h = { class: "tabs flex-grow-1 flex-shrink-1" };
32760
32772
  const _hoisted_3$8 = ["onClick"];
32761
- const _hoisted_4$6 = { class: "buttons text-nowrap" };
32762
- const _hoisted_5$6 = { class: "flex-grow-1 bs-layout-vertical" };
32773
+ const _hoisted_4$6 = {
32774
+ key: 0,
32775
+ class: "font-icon"
32776
+ };
32777
+ const _hoisted_5$6 = { class: "ml-4" };
32778
+ const _hoisted_6$5 = { class: "buttons text-nowrap" };
32779
+ const _hoisted_7$3 = { class: "flex-grow-1 bs-layout-vertical" };
32763
32780
  const _sfc_main$t = /* @__PURE__ */ defineComponent({
32764
32781
  __name: "BSTabSheet",
32765
32782
  props: {
@@ -32811,24 +32828,23 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
32811
32828
  createElementVNode("div", _hoisted_2$h, [
32812
32829
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(visibleTabs.value, (tab) => {
32813
32830
  var _a;
32814
- return withDirectives((openBlock(), createElementBlock("div", {
32831
+ return openBlock(), createElementBlock("div", {
32815
32832
  key: tab.tabId,
32816
- class: normalizeClass([{ selected: (tab == null ? void 0 : tab.tabId) === ((_a = currentTab.value) == null ? void 0 : _a.tabId), disabled: tab == null ? void 0 : tab.disabled }, "tab"]),
32833
+ class: normalizeClass([{ selected: (tab == null ? void 0 : tab.tabId) === ((_a = currentTab.value) == null ? void 0 : _a.tabId), disabled: tab == null ? void 0 : tab.disabled }, "tab flex-row align-items-center"]),
32817
32834
  onClick: ($event) => selectTab(tab)
32818
32835
  }, [
32819
- withDirectives(createElementVNode("span", null, null, 512), [
32836
+ tab.icon ? (openBlock(), createElementBlock("span", _hoisted_4$6, toDisplayString(tab.icon), 1)) : createCommentVNode("", true),
32837
+ withDirectives(createElementVNode("span", _hoisted_5$6, null, 512), [
32820
32838
  [unref(vT), tab.caption]
32821
32839
  ])
32822
- ], 10, _hoisted_3$8)), [
32823
- [unref(vT), tab.caption]
32824
- ]);
32840
+ ], 10, _hoisted_3$8);
32825
32841
  }), 128))
32826
32842
  ]),
32827
- createElementVNode("div", _hoisted_4$6, [
32843
+ createElementVNode("div", _hoisted_6$5, [
32828
32844
  renderSlot(_ctx.$slots, "buttons")
32829
32845
  ])
32830
32846
  ], 2),
32831
- createElementVNode("div", _hoisted_5$6, [
32847
+ createElementVNode("div", _hoisted_7$3, [
32832
32848
  currentTab.value ? renderSlot(_ctx.$slots, currentTab.value.tabId, {
32833
32849
  key: 0,
32834
32850
  tabId: currentTab.value.tabId
@@ -33939,7 +33955,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
33939
33955
  const modal = useModal();
33940
33956
  const openModal = () => {
33941
33957
  modal.openModal({
33942
- component: defineAsyncComponent(() => import("./AddressSearchModal-CdgJFLjT.js")),
33958
+ component: defineAsyncComponent(() => import("./AddressSearchModal-Dhrg9zFz.js")),
33943
33959
  bind: {},
33944
33960
  on: {
33945
33961
  select: (addr) => {
@@ -1,6 +1,7 @@
1
1
  export type LabelProvider<T> = (item: T) => MultiLangText | undefined;
2
2
  export type KeyProvider<T> = (item: T) => string | undefined;
3
3
  export type EnabledItemProvider<T> = (item: T) => boolean;
4
+ export type IconProvider<T> = (item: T) => string | undefined;
4
5
  export type LocaleName = string;
5
6
  export type TimeZone = string;
6
7
  /**
package/dist/style.css CHANGED
@@ -1,22 +1,22 @@
1
- [data-v-6f347589]:root {
1
+ [data-v-2d45c4bb]:root {
2
2
  --font-size: 13px;
3
3
  --font-size-input: 13px;
4
4
  --font-size-button: 13px;
5
5
  }
6
- body[data-v-6f347589] {
6
+ body[data-v-2d45c4bb] {
7
7
  font-size: var(--font-size);
8
8
  }
9
- input[data-v-6f347589] {
9
+ input[data-v-2d45c4bb] {
10
10
  font-size: var(--font-size-input);
11
11
  padding-top: 2px;
12
12
  }
13
- button[data-v-6f347589] {
13
+ button[data-v-2d45c4bb] {
14
14
  font-size: var(--font-size-button);
15
15
  }
16
- textarea[data-v-6f347589] {
16
+ textarea[data-v-2d45c4bb] {
17
17
  font-size: var(--font-size-input);
18
18
  }
19
- .bs-button[data-v-6f347589] {
19
+ .bs-button[data-v-2d45c4bb] {
20
20
  color: #555555;
21
21
  border: none;
22
22
  border-radius: 2px;
@@ -30,105 +30,106 @@ textarea[data-v-6f347589] {
30
30
  vertical-align: middle;
31
31
  white-space: nowrap;
32
32
  }
33
- .bs-button.border-0 > .font-icon.left[data-v-6f347589] {
33
+ .bs-button.border-0 > .font-icon.left[data-v-2d45c4bb] {
34
34
  margin-right: 0;
35
35
  }
36
- .bs-button.border-0 > .font-icon.right[data-v-6f347589] {
36
+ .bs-button.border-0 > .font-icon.right[data-v-2d45c4bb] {
37
37
  margin-left: 0;
38
38
  }
39
- .bs-button.bg-transparent[data-v-6f347589]:not(:disabled):hover {
39
+ .bs-button.bg-transparent[data-v-2d45c4bb]:not(:disabled):hover {
40
40
  color: #444444;
41
41
  }
42
- .bs-button.bg-transparent[data-v-6f347589]:not(:disabled):active {
42
+ .bs-button.bg-transparent[data-v-2d45c4bb]:not(:disabled):active {
43
43
  color: black;
44
44
  }
45
- .bs-button[data-v-6f347589]:disabled {
45
+ .bs-button[data-v-2d45c4bb]:disabled {
46
46
  cursor: default;
47
47
  opacity: 0.6;
48
48
  }
49
- .bs-button.default[data-v-6f347589] {
49
+ .bs-button.default[data-v-2d45c4bb] {
50
50
  background-color: white;
51
51
  border: 1px solid #CCCCCC;
52
52
  }
53
- .bs-button.default[data-v-6f347589]:not(:disabled):hover {
53
+ .bs-button.default[data-v-2d45c4bb]:not(:disabled):hover {
54
54
  background-color: #f2f2f2;
55
55
  }
56
- .bs-button.default[data-v-6f347589]:not(:disabled):active {
56
+ .bs-button.default[data-v-2d45c4bb]:not(:disabled):active {
57
57
  background-color: #e6e6e6;
58
58
  }
59
- .bs-button.underline[data-v-6f347589] {
59
+ .bs-button.underline[data-v-2d45c4bb] {
60
60
  padding: 0 8px;
61
61
  border: 0 none;
62
62
  border-radius: 0;
63
63
  text-decoration: underline;
64
+ text-underline-offset: 2px;
64
65
  }
65
- .bs-button.underline.blue[data-v-6f347589]:not(:disabled):hover {
66
+ .bs-button.underline.blue[data-v-2d45c4bb]:not(:disabled):hover {
66
67
  background-color: #3f5fed;
67
68
  }
68
- .bs-button.underline.blue[data-v-6f347589]:not(:disabled):active {
69
+ .bs-button.underline.blue[data-v-2d45c4bb]:not(:disabled):active {
69
70
  color: #274beb;
70
71
  }
71
- .bs-button.underline.red[data-v-6f347589]:not(:disabled):active {
72
+ .bs-button.underline.red[data-v-2d45c4bb]:not(:disabled):active {
72
73
  color: #cc171c;
73
74
  }
74
- .bs-button.underline.orange[data-v-6f347589]:not(:disabled):active {
75
+ .bs-button.underline.orange[data-v-2d45c4bb]:not(:disabled):active {
75
76
  color: #f77710;
76
77
  }
77
- .bs-button.underline.green[data-v-6f347589]:not(:disabled):active {
78
+ .bs-button.underline.green[data-v-2d45c4bb]:not(:disabled):active {
78
79
  color: #3e8038;
79
80
  }
80
- .bs-button.underline.gray[data-v-6f347589]:not(:disabled):active {
81
+ .bs-button.underline.gray[data-v-2d45c4bb]:not(:disabled):active {
81
82
  color: #4d4d4d;
82
83
  }
83
- .bs-button.blue[data-v-6f347589] {
84
+ .bs-button.blue[data-v-2d45c4bb] {
84
85
  background-color: #5672EF;
85
86
  border: 1px solid #5672EF;
86
87
  color: white;
87
88
  }
88
- .bs-button.blue[data-v-6f347589]:not(:disabled):hover {
89
+ .bs-button.blue[data-v-2d45c4bb]:not(:disabled):hover {
89
90
  background-color: #274beb;
90
91
  }
91
- .bs-button.blue[data-v-6f347589]:not(:disabled):active {
92
+ .bs-button.blue[data-v-2d45c4bb]:not(:disabled):active {
92
93
  background-color: #1335cc;
93
94
  }
94
- .bs-button.red[data-v-6f347589] {
95
+ .bs-button.red[data-v-2d45c4bb] {
95
96
  background-color: #E72F34;
96
97
  color: white;
97
98
  }
98
- .bs-button.red[data-v-6f347589]:not(:disabled):hover {
99
+ .bs-button.red[data-v-2d45c4bb]:not(:disabled):hover {
99
100
  background-color: #cc171c;
100
101
  }
101
- .bs-button.red[data-v-6f347589]:not(:disabled):active {
102
+ .bs-button.red[data-v-2d45c4bb]:not(:disabled):active {
102
103
  background-color: #9e1216;
103
104
  }
104
- .bs-button.orange[data-v-6f347589] {
105
+ .bs-button.orange[data-v-2d45c4bb] {
105
106
  background-color: #F99341;
106
107
  color: white;
107
108
  }
108
- .bs-button.orange[data-v-6f347589]:not(:disabled):hover {
109
+ .bs-button.orange[data-v-2d45c4bb]:not(:disabled):hover {
109
110
  background-color: #f77710;
110
111
  }
111
- .bs-button.orange[data-v-6f347589]:not(:disabled):active {
112
+ .bs-button.orange[data-v-2d45c4bb]:not(:disabled):active {
112
113
  background-color: #ce5f06;
113
114
  }
114
- .bs-button.green[data-v-6f347589] {
115
+ .bs-button.green[data-v-2d45c4bb] {
115
116
  background-color: #4FA348;
116
117
  color: white;
117
118
  }
118
- .bs-button.green[data-v-6f347589]:not(:disabled):hover {
119
+ .bs-button.green[data-v-2d45c4bb]:not(:disabled):hover {
119
120
  background-color: #3e8038;
120
121
  }
121
- .bs-button.green[data-v-6f347589]:not(:disabled):active {
122
+ .bs-button.green[data-v-2d45c4bb]:not(:disabled):active {
122
123
  background-color: #2d5c29;
123
124
  }
124
- .bs-button.gray[data-v-6f347589] {
125
+ .bs-button.gray[data-v-2d45c4bb] {
125
126
  background-color: #666666;
126
127
  color: white;
127
128
  }
128
- .bs-button.gray[data-v-6f347589]:not(:disabled):hover {
129
+ .bs-button.gray[data-v-2d45c4bb]:not(:disabled):hover {
129
130
  background-color: #4d4d4d;
130
131
  }
131
- .bs-button.gray[data-v-6f347589]:not(:disabled):active {
132
+ .bs-button.gray[data-v-2d45c4bb]:not(:disabled):active {
132
133
  background-color: #333333;
133
134
  }:root {
134
135
  --font-size: 13px;
@@ -32936,7 +32937,7 @@ textarea {
32936
32937
  .bs-grid > .table-wrap {
32937
32938
  overflow: auto;
32938
32939
  flex-grow: 1;
32939
- background-color: #EAEAEA;
32940
+ background-color: #FAFAFA;
32940
32941
  border-top: 1px solid #EAEAEA;
32941
32942
  border-bottom: 1px solid #EAEAEA;
32942
32943
  }
@@ -32944,6 +32945,7 @@ textarea {
32944
32945
  flex-grow: 1;
32945
32946
  table-layout: fixed;
32946
32947
  border-collapse: collapse;
32948
+ box-shadow: 0 1px 8px rgba(0, 0, 0, 0.03), 0 1px 4px rgba(0, 0, 0, 0.03);
32947
32949
  }
32948
32950
  .bs-grid > .table-wrap > table > thead > tr > td, .bs-grid > .table-wrap > table > thead > tr > th, .bs-grid > .table-wrap > table tbody > tr > td, .bs-grid > .table-wrap > table tbody > tr > th {
32949
32951
  vertical-align: middle;
@@ -32978,6 +32980,9 @@ textarea {
32978
32980
  .bs-grid > .table-wrap > table > thead > tr.header-row > .func-cell.serial-no {
32979
32981
  min-width: 40px;
32980
32982
  }
32983
+ .bs-grid > .table-wrap > table > thead > tr.header-row:has(.has-filter) th > div {
32984
+ height: 50px;
32985
+ }
32981
32986
  .bs-grid > .table-wrap > table > thead > tr.header-row > th {
32982
32987
  position: sticky;
32983
32988
  top: 0;
@@ -32995,7 +33000,7 @@ textarea {
32995
33000
  .bs-grid > .table-wrap > table > thead > tr.header-row > th > div {
32996
33001
  border-right: 1px solid #EAEAEA;
32997
33002
  border-bottom: 1px solid #EAEAEA;
32998
- height: 50px;
33003
+ min-height: 36.5px;
32999
33004
  text-align: left;
33000
33005
  display: flex;
33001
33006
  flex-direction: column;
@@ -33074,6 +33079,20 @@ textarea {
33074
33079
  }
33075
33080
  .bs-grid > .table-wrap > table > tbody > tr.data-row.selected > td > div {
33076
33081
  border-right-color: #DDEEFF;
33082
+ }
33083
+ .bs-grid.h-scrolled .header-row .fixed:after,
33084
+ .bs-grid.h-scrolled .data-row .fixed:after {
33085
+ display: block;
33086
+ position: absolute;
33087
+ top: 0;
33088
+ right: -8px;
33089
+ width: 8px;
33090
+ height: 100%;
33091
+ content: "";
33092
+ background: linear-gradient(90deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0) 100%);
33093
+ }
33094
+ .bs-grid.v-scrolled .header-row > th > div {
33095
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.07);
33077
33096
  }:root {
33078
33097
  --font-size: 13px;
33079
33098
  --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.50",
4
+ "version": "5.0.0-alpha.51",
5
5
  "description": "Ui Library for g1cloud BackOffice.",
6
6
  "type": "module",
7
7
  "engines": {