@g1cloud/open-bluesea-grid 1.0.0-alpha.2 → 1.0.0-alpha.3

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.
@@ -1,7 +1,33 @@
1
1
  (function(global, factory) {
2
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("vue"), require("dayjs"), require("@g1cloud/open-bluesea-core")) : typeof define === "function" && define.amd ? define(["exports", "vue", "dayjs", "@g1cloud/open-bluesea-core"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.OpenBlueseaGrid = {}, global.Vue, global.dayjs, global.OpenBlueseaCore));
3
- })(this, (function(exports2, vue, dayjs, openBlueseaCore) {
2
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@g1cloud/open-bluesea-core"), require("vue"), require("dayjs")) : typeof define === "function" && define.amd ? define(["exports", "@g1cloud/open-bluesea-core", "vue", "dayjs"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.OpenBlueseaGrid = {}, global.OpenBlueseaCore, global.Vue, global.dayjs));
3
+ })(this, (function(exports2, openBlueseaCore, vue, dayjs) {
4
4
  "use strict";
5
+ const checkBoxIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm-9 14l-5-5l1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>';
6
+ const checkBoxOutlineBlankIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>';
7
+ const numbersIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.5 10l.5-2h-4l1-4h-2l-1 4h-4l1-4h-2L9 8H5l-.5 2h4l-1 4h-4L3 16h4l-1 4h2l1-4h4l-1 4h2l1-4h4l.5-2h-4l1-4h4zm-7 4h-4l1-4h4l-1 4z"/></svg>';
8
+ const dragHandleIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20 9H4v2h16V9zM4 15h16v-2H4v2z"/></svg>';
9
+ const editIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83l3.75 3.75l1.83-1.83z"/></svg>';
10
+ const replayIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6s-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8s-3.58-8-8-8z"/></svg>';
11
+ const searchIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5A6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5S14 7.01 14 9.5S11.99 14 9.5 14z"/></svg>';
12
+ const tableChartIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 10.02h5V21h-5zM17 21h3c1.1 0 2-.9 2-2v-9h-5v11zm3-18H5c-1.1 0-2 .9-2 2v3h19V5c0-1.1-.9-2-2-2zM3 19c0 1.1.9 2 2 2h3V10H3v9z"/></svg>';
13
+ const syncIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6c0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0 0 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6c0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 0 0 4 12c0 4.42 3.58 8 8 8v3l4-4l-4-4v3z"/></svg>';
14
+ const filterAltOffIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19.79 5.61A.998.998 0 0 0 19 4H6.83l7.97 7.97l4.99-6.36zM2.81 2.81L1.39 4.22L10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.17l5.78 5.78l1.41-1.41L2.81 2.81z"/></svg>';
15
+ const addIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>';
16
+ const removeIcon = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 13H5v-2h14v2z"/></svg>';
17
+ openBlueseaCore.registerIcons({
18
+ check_box: checkBoxIcon,
19
+ check_box_outline_blank: checkBoxOutlineBlankIcon,
20
+ numbers: numbersIcon,
21
+ drag_handle: dragHandleIcon,
22
+ edit: editIcon,
23
+ replay: replayIcon,
24
+ search: searchIcon,
25
+ data_table: tableChartIcon,
26
+ sync: syncIcon,
27
+ filter_alt_off: filterAltOffIcon,
28
+ add: addIcon,
29
+ remove: removeIcon
30
+ });
5
31
  class AbstractFilter {
6
32
  type;
7
33
  constructor(type) {
@@ -1115,10 +1141,9 @@
1115
1141
  return target;
1116
1142
  };
1117
1143
  const BSGridHeaderCellResizeHandle = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-3bda3a20"]]);
1118
- const _hoisted_1$d = ["data-property-id"];
1119
- const _hoisted_2$8 = { class: "flex align-items-center" };
1144
+ const _hoisted_1$c = ["data-property-id"];
1145
+ const _hoisted_2$5 = { class: "flex items-center w-full" };
1120
1146
  const _hoisted_3$4 = ["textContent"];
1121
- const _hoisted_4$4 = ["textContent"];
1122
1147
  const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
1123
1148
  __name: "BSGridHeaderCell",
1124
1149
  props: {
@@ -1199,20 +1224,20 @@
1199
1224
  class: vue.normalizeClass([styleClass.value, "position-relative"]),
1200
1225
  style: vue.normalizeStyle(styleCss.value)
1201
1226
  }, [
1202
- vue.createElementVNode("div", _hoisted_2$8, [
1227
+ vue.createElementVNode("div", _hoisted_2$5, [
1203
1228
  vue.createElementVNode("span", {
1204
1229
  textContent: vue.toDisplayString(__props.column.caption),
1205
1230
  class: "grow text-truncate"
1206
1231
  }, null, 8, _hoisted_3$4),
1207
- __props.column.sortable ? (vue.openBlock(), vue.createElementBlock("span", {
1232
+ __props.column.sortable ? (vue.openBlock(), vue.createBlock(vue.unref(openBlueseaCore.BSIcon), {
1208
1233
  key: 0,
1234
+ name: ascending.value === void 0 ? "swap_vert" : "straight",
1209
1235
  class: vue.normalizeClass([{
1210
1236
  "text-gray-400": ascending.value === void 0,
1211
1237
  descending: !ascending.value
1212
- }, "sort-icon font-icon bs-clickable"]),
1213
- onClick: sort,
1214
- textContent: vue.toDisplayString(ascending.value === void 0 ? "swap_vert" : "straight")
1215
- }, null, 10, _hoisted_4$4)) : vue.createCommentVNode("", true)
1238
+ }, "sort-icon bs-clickable"]),
1239
+ onClick: sort
1240
+ }, null, 8, ["name", "class"])) : vue.createCommentVNode("", true)
1216
1241
  ]),
1217
1242
  vue.renderSlot(_ctx.$slots, "filter", {}, void 0, true),
1218
1243
  vue.createVNode(BSGridHeaderCellResizeHandle, {
@@ -1220,13 +1245,12 @@
1220
1245
  onColumnResized: columnResized
1221
1246
  }, null, 8, ["column"])
1222
1247
  ], 6)
1223
- ], 46, _hoisted_1$d);
1248
+ ], 46, _hoisted_1$c);
1224
1249
  };
1225
1250
  }
1226
1251
  });
1227
- const BSGridHeaderCell = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-fbb8ef01"]]);
1228
- const _hoisted_1$c = { class: "checkbox bs-clickable" };
1229
- const _hoisted_2$7 = { class: "font-icon" };
1252
+ const BSGridHeaderCell = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-37a577b0"]]);
1253
+ const _hoisted_1$b = { class: "checkbox bs-clickable" };
1230
1254
  const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
1231
1255
  __name: "BSGridHeaderCellCheckbox",
1232
1256
  props: {
@@ -1242,24 +1266,29 @@
1242
1266
  class: vue.normalizeClass([{ checked: checked.value }, "fixed func-cell"]),
1243
1267
  onClick: _cache[0] || (_cache[0] = ($event) => emit("click"))
1244
1268
  }, [
1245
- vue.createElementVNode("div", _hoisted_1$c, [
1246
- vue.createElementVNode("span", _hoisted_2$7, vue.toDisplayString(checked.value ? "check_box" : "check_box_outline_blank"), 1)
1269
+ vue.createElementVNode("div", _hoisted_1$b, [
1270
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), {
1271
+ name: checked.value ? "check_box" : "check_box_outline_blank"
1272
+ }, null, 8, ["name"])
1247
1273
  ])
1248
1274
  ], 2);
1249
1275
  };
1250
1276
  }
1251
1277
  });
1252
- const _sfc_main$e = {};
1253
- const _hoisted_1$b = { class: "fixed func-cell serial-no min-w-48" };
1254
- function _sfc_render(_ctx, _cache) {
1255
- return vue.openBlock(), vue.createElementBlock("th", _hoisted_1$b, [..._cache[0] || (_cache[0] = [
1256
- vue.createElementVNode("div", null, [
1257
- vue.createElementVNode("span", { class: "font-icon" }, "numbers")
1258
- ], -1)
1259
- ])]);
1260
- }
1261
- const BSGridHeaderCellSerialNo = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render]]);
1262
- const _hoisted_1$a = ["data-property-id"];
1278
+ const _hoisted_1$a = { class: "fixed func-cell serial-no min-w-48" };
1279
+ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
1280
+ __name: "BSGridHeaderCellSerialNo",
1281
+ setup(__props) {
1282
+ return (_ctx, _cache) => {
1283
+ return vue.openBlock(), vue.createElementBlock("th", _hoisted_1$a, [
1284
+ vue.createElementVNode("div", null, [
1285
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), { name: "numbers" })
1286
+ ])
1287
+ ]);
1288
+ };
1289
+ }
1290
+ });
1291
+ const _hoisted_1$9 = ["data-property-id"];
1263
1292
  const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
1264
1293
  __name: "BSGridCell",
1265
1294
  props: {
@@ -1366,11 +1395,11 @@
1366
1395
  ], 6)), [
1367
1396
  [vue.unref(openBlueseaCore.vTooltip), { content: tooltipText.value }]
1368
1397
  ])
1369
- ], 14, _hoisted_1$a);
1398
+ ], 14, _hoisted_1$9);
1370
1399
  };
1371
1400
  }
1372
1401
  });
1373
- const _hoisted_1$9 = { class: "fixed func-cell serial-no" };
1402
+ const _hoisted_1$8 = { class: "fixed func-cell serial-no text-right" };
1374
1403
  const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
1375
1404
  __name: "BSGridCellSerialNo",
1376
1405
  props: {
@@ -1378,13 +1407,12 @@
1378
1407
  },
1379
1408
  setup(__props) {
1380
1409
  return (_ctx, _cache) => {
1381
- return vue.openBlock(), vue.createElementBlock("td", _hoisted_1$9, [
1410
+ return vue.openBlock(), vue.createElementBlock("td", _hoisted_1$8, [
1382
1411
  vue.createElementVNode("div", null, vue.toDisplayString(__props.serialNo), 1)
1383
1412
  ]);
1384
1413
  };
1385
1414
  }
1386
1415
  });
1387
- const _hoisted_1$8 = { class: "font-icon" };
1388
1416
  const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
1389
1417
  __name: "BSGridCellCheckbox",
1390
1418
  props: {
@@ -1406,15 +1434,16 @@
1406
1434
  vue.createElementVNode("div", {
1407
1435
  class: vue.normalizeClass([{ "bs-clickable": !__props.disabled }, "checkbox"])
1408
1436
  }, [
1409
- vue.createElementVNode("div", _hoisted_1$8, vue.toDisplayString(__props.checked ? "check_box" : "check_box_outline_blank"), 1)
1437
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), {
1438
+ name: __props.checked ? "check_box" : "check_box_outline_blank"
1439
+ }, null, 8, ["name"])
1410
1440
  ], 2)
1411
1441
  ], 2);
1412
1442
  };
1413
1443
  }
1414
1444
  });
1415
- const BSGridCellCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-0211159f"]]);
1445
+ const BSGridCellCheckbox = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-704bd1b5"]]);
1416
1446
  const _hoisted_1$7 = { class: "fixed func-cell cursor-pointer" };
1417
- const _hoisted_2$6 = { class: "font-icon" };
1418
1447
  const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
1419
1448
  __name: "BSGridCellEdit",
1420
1449
  props: {
@@ -1430,7 +1459,9 @@
1430
1459
  key: 0,
1431
1460
  onClick: _cache[0] || (_cache[0] = vue.withModifiers(($event) => emit("toggleEditMode"), ["stop"]))
1432
1461
  }, [
1433
- vue.createElementVNode("span", _hoisted_2$6, vue.toDisplayString(__props.isEditing ? "replay" : "stylus"), 1)
1462
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), {
1463
+ name: __props.isEditing ? "replay" : "edit"
1464
+ }, null, 8, ["name"])
1434
1465
  ])) : vue.createCommentVNode("", true)
1435
1466
  ]);
1436
1467
  };
@@ -1541,9 +1572,9 @@
1541
1572
  },
1542
1573
  setup(__props) {
1543
1574
  return (_ctx, _cache) => {
1544
- return vue.withDirectives((vue.openBlock(), vue.createElementBlock("td", _hoisted_1$6, [..._cache[0] || (_cache[0] = [
1545
- vue.createElementVNode("div", { class: "font-icon" }, "drag_handle", -1)
1546
- ])])), [
1575
+ return vue.withDirectives((vue.openBlock(), vue.createElementBlock("td", _hoisted_1$6, [
1576
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), { name: "drag_handle" })
1577
+ ])), [
1547
1578
  [vue.unref(vDragSupport), {
1548
1579
  draggable: true,
1549
1580
  sourceProvider: (td) => td.parentElement,
@@ -1695,7 +1726,7 @@
1695
1726
  }
1696
1727
  });
1697
1728
  const _hoisted_1$5 = { class: "table-wrap" };
1698
- const _hoisted_2$5 = { class: "header-row" };
1729
+ const _hoisted_2$4 = { class: "header-row" };
1699
1730
  const _hoisted_3$3 = {
1700
1731
  key: 0,
1701
1732
  class: "fixed func-cell"
@@ -1705,8 +1736,9 @@
1705
1736
  class: "fixed func-cell edit-icon"
1706
1737
  };
1707
1738
  const _hoisted_5$2 = { key: 0 };
1708
- const _hoisted_6$1 = { key: 1 };
1709
- const _hoisted_7$1 = ["textContent"];
1739
+ const _hoisted_6$1 = { class: "absolute" };
1740
+ const _hoisted_7$1 = { key: 1 };
1741
+ const _hoisted_8$1 = ["textContent"];
1710
1742
  const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
1711
1743
  __name: "BSGrid",
1712
1744
  props: {
@@ -1987,7 +2019,7 @@
1987
2019
  ref: table
1988
2020
  }, [
1989
2021
  vue.createElementVNode("thead", null, [
1990
- vue.createElementVNode("tr", _hoisted_2$5, [
2022
+ vue.createElementVNode("tr", _hoisted_2$4, [
1991
2023
  __props.showDragHandle ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_3$3, [..._cache[0] || (_cache[0] = [
1992
2024
  vue.createElementVNode("div", null, null, -1)
1993
2025
  ])])) : vue.createCommentVNode("", true),
@@ -1999,7 +2031,7 @@
1999
2031
  __props.editable && !__props.hideEditIcon ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_4$3, [..._cache[1] || (_cache[1] = [
2000
2032
  vue.createElementVNode("div", null, null, -1)
2001
2033
  ])])) : vue.createCommentVNode("", true),
2002
- __props.showSerial ? (vue.openBlock(), vue.createBlock(BSGridHeaderCellSerialNo, { key: 3 })) : vue.createCommentVNode("", true),
2034
+ __props.showSerial ? (vue.openBlock(), vue.createBlock(_sfc_main$e, { key: 3 })) : vue.createCommentVNode("", true),
2003
2035
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(internalColumns.value, (column) => {
2004
2036
  return vue.openBlock(), vue.createBlock(BSGridHeaderCell, {
2005
2037
  key: column.propertyId,
@@ -2027,15 +2059,15 @@
2027
2059
  ]),
2028
2060
  vue.createElementVNode("tbody", null, [
2029
2061
  __props.loading ? (vue.openBlock(), vue.createElementBlock("tr", _hoisted_5$2, [
2030
- vue.createElementVNode("td", null, [
2062
+ vue.createElementVNode("td", _hoisted_6$1, [
2031
2063
  vue.createVNode(vue.unref(openBlueseaCore.BSLoadingIcon), { class: "position-absolute pa-8" })
2032
2064
  ])
2033
- ])) : __props.data && __props.data.length === 0 ? (vue.openBlock(), vue.createElementBlock("tr", _hoisted_6$1, [
2065
+ ])) : __props.data && __props.data.length === 0 ? (vue.openBlock(), vue.createElementBlock("tr", _hoisted_7$1, [
2034
2066
  vue.createElementVNode("td", null, [
2035
2067
  vue.createElementVNode("div", {
2036
2068
  textContent: vue.toDisplayString(__props.emptyMessage),
2037
2069
  class: "position-absolute text-nowrap pa-8"
2038
- }, null, 8, _hoisted_7$1)
2070
+ }, null, 8, _hoisted_8$1)
2039
2071
  ])
2040
2072
  ])) : __props.data ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 2 }, vue.renderList(__props.data, (row, index) => {
2041
2073
  return vue.openBlock(), vue.createBlock(_sfc_main$8, {
@@ -2098,9 +2130,9 @@
2098
2130
  }
2099
2131
  });
2100
2132
  const _hoisted_1$4 = { class: "text-center" };
2101
- const _hoisted_2$4 = { class: "text-center" };
2133
+ const _hoisted_2$3 = { class: "text-center" };
2102
2134
  const _hoisted_3$2 = { class: "flex" };
2103
- const _hoisted_4$2 = { class: "flex grow justify-content-end gap-8" };
2135
+ const _hoisted_4$2 = { class: "flex grow justify-end gap-1" };
2104
2136
  const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
2105
2137
  __name: "BSGridColumnSettingModal",
2106
2138
  props: {
@@ -2204,7 +2236,7 @@
2204
2236
  ])
2205
2237
  ]),
2206
2238
  fixed: vue.withCtx(({ row }) => [
2207
- vue.createElementVNode("div", _hoisted_2$4, [
2239
+ vue.createElementVNode("div", _hoisted_2$3, [
2208
2240
  vue.createVNode(vue.unref(openBlueseaCore.BSCheckbox), {
2209
2241
  modelValue: row.fixed,
2210
2242
  "onUpdate:modelValue": [($event) => row.fixed = $event, ($event) => updateFixedColumn($event, row)],
@@ -2254,7 +2286,7 @@
2254
2286
  default: _sfc_main$6
2255
2287
  }, Symbol.toStringTag, { value: "Module" }));
2256
2288
  const _hoisted_1$3 = { class: "bs-grid-control" };
2257
- const _hoisted_2$3 = { key: 0 };
2289
+ const _hoisted_2$2 = { key: 0 };
2258
2290
  const _hoisted_3$1 = { key: 1 };
2259
2291
  const _hoisted_4$1 = { key: 2 };
2260
2292
  const _hoisted_5$1 = { key: 3 };
@@ -2322,44 +2354,73 @@
2322
2354
  };
2323
2355
  return (_ctx, _cache) => {
2324
2356
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
2325
- __props.showSetting ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$3, [
2357
+ __props.showSetting ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$2, [
2326
2358
  vue.createVNode(vue.unref(openBlueseaCore.BSButton), {
2327
2359
  caption: "Column Settings",
2328
2360
  "data-id": "columnSettingBtn",
2329
- "left-icon": "data_table",
2330
2361
  onClick: openSettingModal
2362
+ }, {
2363
+ left: vue.withCtx(() => [
2364
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), {
2365
+ class: "mt-0.5",
2366
+ name: "data_table"
2367
+ })
2368
+ ]),
2369
+ _: 1
2331
2370
  })
2332
2371
  ])) : vue.createCommentVNode("", true),
2333
2372
  __props.showRefresh ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$1, [
2334
2373
  vue.createVNode(vue.unref(openBlueseaCore.BSButton), {
2335
2374
  caption: "Refresh",
2336
2375
  "data-id": "refreshBtn",
2337
- "left-icon": "sync",
2338
2376
  onClick: refreshGrid
2377
+ }, {
2378
+ left: vue.withCtx(() => [
2379
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), {
2380
+ class: "mt-0.5",
2381
+ name: "sync"
2382
+ })
2383
+ ]),
2384
+ _: 1
2339
2385
  })
2340
2386
  ])) : vue.createCommentVNode("", true),
2341
2387
  __props.showClearFilter ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$1, [
2342
2388
  vue.createVNode(vue.unref(openBlueseaCore.BSButton), {
2343
2389
  caption: "Clear Settings",
2344
2390
  "data-id": "clearSettingBtn",
2345
- "left-icon": "filter_alt_off",
2346
2391
  onClick: clearGridFilter
2392
+ }, {
2393
+ left: vue.withCtx(() => [
2394
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), {
2395
+ class: "mt-0.5",
2396
+ name: "filter_alt_off"
2397
+ })
2398
+ ]),
2399
+ _: 1
2347
2400
  })
2348
2401
  ])) : vue.createCommentVNode("", true),
2349
2402
  __props.showAddButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$1, [
2350
2403
  vue.createVNode(vue.unref(openBlueseaCore.BSButton), {
2351
2404
  caption: "Add Row",
2352
2405
  "data-id": "addRowBtn",
2353
- "left-icon": "add",
2354
2406
  onClick: _cache[0] || (_cache[0] = ($event) => emit("clickAdd"))
2407
+ }, {
2408
+ left: vue.withCtx(() => [
2409
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), { name: "add" })
2410
+ ]),
2411
+ _: 1
2355
2412
  })
2356
2413
  ])) : vue.createCommentVNode("", true),
2357
2414
  __props.showRemoveButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, [
2358
2415
  vue.createVNode(vue.unref(openBlueseaCore.BSButton), {
2359
2416
  caption: "Remove Row",
2360
2417
  "data-id": "removeRowBtn",
2361
- "left-icon": "remove",
2362
2418
  onClick: _cache[1] || (_cache[1] = ($event) => emit("clickRemove"))
2419
+ }, {
2420
+ left: vue.withCtx(() => [
2421
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), { name: "remove" })
2422
+ ]),
2423
+ _: 1
2363
2424
  })
2364
2425
  ])) : vue.createCommentVNode("", true),
2365
2426
  vue.createElementVNode("div", null, [
@@ -2395,7 +2456,7 @@
2395
2456
  }
2396
2457
  });
2397
2458
  const _hoisted_1$2 = { class: "bs-text-filter" };
2398
- const _hoisted_2$2 = { class: "input-wrap" };
2459
+ const _hoisted_2$1 = { class: "input-wrap" };
2399
2460
  const _hoisted_3 = { class: "textarea-wrap" };
2400
2461
  const _hoisted_4 = {
2401
2462
  class: "filter-caption text-nowrap",
@@ -2530,7 +2591,7 @@
2530
2591
  );
2531
2592
  return (_ctx, _cache) => {
2532
2593
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [
2533
- vue.withDirectives(vue.createElementVNode("div", _hoisted_2$2, [
2594
+ vue.withDirectives(vue.createElementVNode("div", _hoisted_2$1, [
2534
2595
  vue.withDirectives(vue.createElementVNode("input", {
2535
2596
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputText.value = $event),
2536
2597
  "data-id": "textFilterInput",
@@ -2541,11 +2602,12 @@
2541
2602
  }, null, 544), [
2542
2603
  [vue.vModelText, inputText.value]
2543
2604
  ]),
2544
- hasTextAreaFilterItem.value ? (vue.openBlock(), vue.createElementBlock("span", {
2605
+ hasTextAreaFilterItem.value ? (vue.openBlock(), vue.createBlock(vue.unref(openBlueseaCore.BSIcon), {
2545
2606
  key: 0,
2546
- class: "filter-mode-btn font-icon bs-clickable pr-2 pt-1",
2607
+ name: "south",
2608
+ class: "bs-clickable m-1.5",
2547
2609
  onClick: _cache[2] || (_cache[2] = ($event) => changeFilterMode("TEXTAREA"))
2548
- }, "south")) : vue.createCommentVNode("", true)
2610
+ })) : vue.createCommentVNode("", true)
2549
2611
  ], 512), [
2550
2612
  [vue.vShow, filterMode.value === "INPUT"]
2551
2613
  ]),
@@ -2557,10 +2619,11 @@
2557
2619
  }, null, 544), [
2558
2620
  [vue.vModelText, textareaText.value]
2559
2621
  ]),
2560
- vue.createElementVNode("span", {
2561
- class: "filter-mode-btn font-icon bs-clickable pr-2 pt-1",
2622
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), {
2623
+ name: "north",
2624
+ class: "bs-clickable m-1.5",
2562
2625
  onClick: _cache[4] || (_cache[4] = ($event) => changeFilterMode("INPUT"))
2563
- }, "north")
2626
+ })
2564
2627
  ], 512), [
2565
2628
  [vue.vShow, filterMode.value === "TEXTAREA"]
2566
2629
  ]),
@@ -2894,7 +2957,7 @@
2894
2957
  nameTo: {},
2895
2958
  modelValue: {},
2896
2959
  disabled: { type: Boolean },
2897
- width: { default: "300px" },
2960
+ width: { default: "360px" },
2898
2961
  resolution: { default: "DAY" },
2899
2962
  displayFormat: {},
2900
2963
  popupDisplayFormat: {},
@@ -2958,7 +3021,6 @@
2958
3021
  key: 0,
2959
3022
  class: "date-filters flex flex-col"
2960
3023
  };
2961
- const _hoisted_2$1 = ["onClick"];
2962
3024
  const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
2963
3025
  __name: "BSDateRangeFilters",
2964
3026
  props: {
@@ -3081,19 +3143,21 @@
3081
3143
  key: index,
3082
3144
  class: "flex gap-1 mb-1 flex-align-center"
3083
3145
  }, [
3084
- index === 0 ? (vue.openBlock(), vue.createElementBlock("span", {
3146
+ index === 0 ? (vue.openBlock(), vue.createBlock(vue.unref(openBlueseaCore.BSIcon), {
3085
3147
  key: 0,
3148
+ name: "add",
3086
3149
  class: vue.normalizeClass([{
3087
3150
  disabled: dateFilterValues.value.length >= __props.dateFilter.filterItems.length
3088
- }, "font-icon bs-clickable"]),
3151
+ }, "bs-clickable"]),
3089
3152
  "data-id": "addDateFilterBtn",
3090
3153
  onClick: addDateFilter
3091
- }, "add", 2)) : (vue.openBlock(), vue.createElementBlock("span", {
3154
+ }, null, 8, ["class"])) : (vue.openBlock(), vue.createBlock(vue.unref(openBlueseaCore.BSIcon), {
3092
3155
  key: 1,
3093
- class: "font-icon bs-clickable",
3156
+ name: "remove",
3157
+ class: "bs-clickable",
3094
3158
  "data-id": "removeDateFilterBtn",
3095
3159
  onClick: ($event) => removeDateFilter(index)
3096
- }, "remove", 8, _hoisted_2$1)),
3160
+ }, null, 8, ["onClick"])),
3097
3161
  vue.createVNode(vue.unref(openBlueseaCore.BSSelect), {
3098
3162
  items: __props.dateFilter.filterItems,
3099
3163
  "label-provider": (filter) => filter.caption,
@@ -3255,9 +3319,16 @@
3255
3319
  vue.createElementVNode("div", _hoisted_2, [
3256
3320
  vue.createVNode(vue.unref(openBlueseaCore.BSButton), {
3257
3321
  caption: "Search",
3258
- class: "blue",
3259
- "left-icon": "search",
3322
+ "button-color": "blue",
3260
3323
  onClick: emitSearch
3324
+ }, {
3325
+ left: vue.withCtx(() => [
3326
+ vue.createVNode(vue.unref(openBlueseaCore.BSIcon), {
3327
+ class: "mt-0.5",
3328
+ name: "search"
3329
+ })
3330
+ ]),
3331
+ _: 1
3261
3332
  }),
3262
3333
  __props.config?.dateFilter ? (vue.openBlock(), vue.createBlock(vue.unref(openBlueseaCore.BSButton), {
3263
3334
  key: 0,
@@ -3289,7 +3360,7 @@
3289
3360
  exports2.BSGridHeaderCell = BSGridHeaderCell;
3290
3361
  exports2.BSGridHeaderCellCheckbox = _sfc_main$f;
3291
3362
  exports2.BSGridHeaderCellResizeHandle = BSGridHeaderCellResizeHandle;
3292
- exports2.BSGridHeaderCellSerialNo = BSGridHeaderCellSerialNo;
3363
+ exports2.BSGridHeaderCellSerialNo = _sfc_main$e;
3293
3364
  exports2.BSGridLookup = _sfc_main;
3294
3365
  exports2.BSGridRow = _sfc_main$8;
3295
3366
  exports2.BSTextFilter = _sfc_main$4;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Vue Data Grid Component for Management Console.",
4
4
  "license": "Proprietary",
5
5
  "private": false,
6
- "version": "1.0.0-alpha.2",
6
+ "version": "1.0.0-alpha.3",
7
7
  "type": "module",
8
8
  "engines": {
9
9
  "node": ">= 24.3.0"
@@ -26,6 +26,7 @@
26
26
  "css"
27
27
  ],
28
28
  "devDependencies": {
29
+ "@material-icons/svg": "^1.0.33",
29
30
  "@rollup/plugin-typescript": "^12.3.0",
30
31
  "@tailwindcss/vite": "^4.1.16",
31
32
  "@types/node": "^24.3.0",
@@ -39,7 +40,7 @@
39
40
  "dayjs": "^1.11.19",
40
41
  "tslib": "^2.8.1",
41
42
  "vue": "^3.5.22",
42
- "@g1cloud/open-bluesea-core": "1.0.0-alpha.8"
43
+ "@g1cloud/open-bluesea-core": "1.0.0-alpha.9"
43
44
  },
44
45
  "peerDependencies": {
45
46
  "@g1cloud/open-bluesea-core": "^1.0.0",