@g1cloud/bluesea 5.0.0-beta.7 → 5.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/{BSAlertModal-B3zqxyBI.js → BSAlertModal-DypUvVcH.js} +1 -1
  2. package/dist/{BSGridColumnSettingModal-CD9mFu9P.js → BSGridColumnSettingModal-DhGr9UtK.js} +1 -1
  3. package/dist/{BSRichTextMaximizedModal-BP6jz2N7.js → BSRichTextMaximizedModal-DmPabr58.js} +1 -1
  4. package/dist/{BSYesNoModal-82FcvYh-.js → BSYesNoModal-CBrzf4F5.js} +1 -1
  5. package/dist/{BSYoutubeInputModal-CrtOzrD-.js → BSYoutubeInputModal-BxabTSWx.js} +1 -1
  6. package/dist/{ImageInsertModal-DdYqZWc5.js → ImageInsertModal-K1Tx7ys2.js} +2 -2
  7. package/dist/{ImageProperties.vue_vue_type_script_setup_true_lang-2wZT4GKQ.js → ImageProperties.vue_vue_type_script_setup_true_lang-D8KH2XwP.js} +1 -1
  8. package/dist/{ImagePropertiesModal-CQnEtdug.js → ImagePropertiesModal-Duu4PBjb.js} +2 -2
  9. package/dist/{LinkPropertiesModal-DiqsnQW6.js → LinkPropertiesModal-Bx3WJhkN.js} +1 -1
  10. package/dist/{TableInsertModal-CQP0Lv5V.js → TableInsertModal-DBrcQa3b.js} +1 -1
  11. package/dist/{TablePropertiesModal-BlPP_yM-.js → TablePropertiesModal-ClsK1yM4.js} +1 -1
  12. package/dist/{VideoInsertModal-kNMv3Gr0.js → VideoInsertModal-C-b0-PU0.js} +2 -2
  13. package/dist/{VideoProperties.vue_vue_type_script_setup_true_lang-BIg6hg9n.js → VideoProperties.vue_vue_type_script_setup_true_lang-zYZJtiR2.js} +1 -1
  14. package/dist/{VideoPropertiesModal-DTnfD1tS.js → VideoPropertiesModal-zlEThjim.js} +2 -2
  15. package/dist/{YoutubeInsertModal-Br27gi-y.js → YoutubeInsertModal-Gpob0la3.js} +2 -2
  16. package/dist/{YoutubeProperties.vue_vue_type_script_setup_true_lang-BpbU20_i.js → YoutubeProperties.vue_vue_type_script_setup_true_lang-CDvDzheM.js} +1 -1
  17. package/dist/{YoutubePropertiesModal-BXCSIlF9.js → YoutubePropertiesModal-C3I5eF0-.js} +2 -2
  18. package/dist/bluesea.js +107 -105
  19. package/dist/bluesea.umd.cjs +125 -56
  20. package/dist/component/grid/DateFilterModel.d.ts +15 -0
  21. package/dist/component/grid/GridModel.d.ts +1 -0
  22. package/dist/component/input/BSDateRangePresets.vue.d.ts +2 -2
  23. package/dist/component/input/DateRangePresetModel.d.ts +2 -0
  24. package/dist/component/tree/BSTree.vue.d.ts +3 -0
  25. package/dist/component/tree/BSTreeRow.vue.d.ts +3 -0
  26. package/dist/component/tree/TreeModel.d.ts +28 -0
  27. package/dist/{index-CpfyaKHy.js → index-DxMqs72-.js} +245 -176
  28. package/package.json +1 -1
@@ -1440,7 +1440,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1440
1440
  key: 1,
1441
1441
  class: "label"
1442
1442
  };
1443
- const _hoisted_5$k = {
1443
+ const _hoisted_5$j = {
1444
1444
  key: 2,
1445
1445
  class: "small-progress"
1446
1446
  };
@@ -1593,7 +1593,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
1593
1593
  [vue.unref(vT), selectedItemLabel.value]
1594
1594
  ]),
1595
1595
  _cache[4] || (_cache[4] = vue.createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1)),
1596
- loadingItems.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$k, "progress_activity")) : vue.createCommentVNode("", true)
1596
+ loadingItems.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$j, "progress_activity")) : vue.createCommentVNode("", true)
1597
1597
  ], 512),
1598
1598
  !_ctx.disabled && showPopup.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1Y, {
1599
1599
  key: 0,
@@ -2039,7 +2039,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2039
2039
  key: 2,
2040
2040
  class: "prefix"
2041
2041
  };
2042
- const _hoisted_5$j = ["src"];
2042
+ const _hoisted_5$i = ["src"];
2043
2043
  const _hoisted_6$9 = ["textContent"];
2044
2044
  const _hoisted_7$6 = {
2045
2045
  key: 1,
@@ -2205,7 +2205,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2205
2205
  vue.createElementVNode("img", {
2206
2206
  src: item.value,
2207
2207
  alt: "prefix"
2208
- }, null, 8, _hoisted_5$j)
2208
+ }, null, 8, _hoisted_5$i)
2209
2209
  ])) : vue.createCommentVNode("", true)
2210
2210
  ], 64);
2211
2211
  }), 256)),
@@ -2775,7 +2775,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2775
2775
  const _hoisted_2$19 = { class: "bs-layout-horizontal justify-content-between align-items-center gap-8" };
2776
2776
  const _hoisted_3$I = { class: "year-month bs-layout-horizontal gap-4" };
2777
2777
  const _hoisted_4$t = { class: "timezone" };
2778
- const _hoisted_5$i = { class: "weekdays" };
2778
+ const _hoisted_5$h = { class: "weekdays" };
2779
2779
  const _hoisted_6$8 = ["onClick"];
2780
2780
  const _hoisted_7$5 = {
2781
2781
  key: 0,
@@ -2993,7 +2993,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
2993
2993
  class: vue.normalizeClass([{ disabled: _ctx.disabled }, "align-self-center"])
2994
2994
  }, [
2995
2995
  vue.createElementVNode("tbody", null, [
2996
- vue.createElementVNode("tr", _hoisted_5$i, [
2996
+ vue.createElementVNode("tr", _hoisted_5$h, [
2997
2997
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(weekdays.value, (day) => {
2998
2998
  return vue.withDirectives((vue.openBlock(), vue.createElementBlock("th", { key: day })), [
2999
2999
  [vue.unref(vT), day]
@@ -3060,7 +3060,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3060
3060
  key: 0,
3061
3061
  class: "extra-dates bs-layout-vertical gap-2 mt-8"
3062
3062
  };
3063
- const _hoisted_5$h = { key: 0 };
3063
+ const _hoisted_5$g = { key: 0 };
3064
3064
  const _hoisted_6$7 = { key: 1 };
3065
3065
  const _sfc_main$1K = /* @__PURE__ */ vue.defineComponent({
3066
3066
  __name: "BSCalendarRange",
@@ -3148,7 +3148,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3148
3148
  key: `${tz}_${index}`,
3149
3149
  class: "extra-date"
3150
3150
  }, [
3151
- _ctx.from ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$h, vue.toDisplayString(vue.unref(formatUtil).formatDateString(_ctx.from, _ctx.displayFormat, tz)), 1)) : vue.createCommentVNode("", true),
3151
+ _ctx.from ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$g, vue.toDisplayString(vue.unref(formatUtil).formatDateString(_ctx.from, _ctx.displayFormat, tz)), 1)) : vue.createCommentVNode("", true),
3152
3152
  _cache[3] || (_cache[3] = vue.createElementVNode("span", null, "~", -1)),
3153
3153
  _ctx.to ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_6$7, vue.toDisplayString(vue.unref(formatUtil).formatDateString(_ctx.to, _ctx.displayFormat, tz)), 1)) : vue.createCommentVNode("", true)
3154
3154
  ]);
@@ -3358,7 +3358,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3358
3358
  key: 1,
3359
3359
  class: "input-area"
3360
3360
  };
3361
- const _hoisted_5$g = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
3361
+ const _hoisted_5$f = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
3362
3362
  const _hoisted_6$6 = ["textContent"];
3363
3363
  const _sfc_main$1I = /* @__PURE__ */ vue.defineComponent({
3364
3364
  __name: "BSPriceInput",
@@ -3501,7 +3501,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
3501
3501
  tabindex: _ctx.tabindex,
3502
3502
  value: focused.value || !_ctx.formatOnBlur ? vue.unref(stringValue) : formattedStringValue.value,
3503
3503
  type: "text"
3504
- }, vue.toHandlers(handlers2, true)), null, 16, _hoisted_5$g), [
3504
+ }, vue.toHandlers(handlers2, true)), null, 16, _hoisted_5$f), [
3505
3505
  [
3506
3506
  vue.unref(vT),
3507
3507
  _ctx.placeholder,
@@ -4688,6 +4688,11 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4688
4688
  });
4689
4689
  dayjs.extend(utc);
4690
4690
  dayjs.extend(timezone);
4691
+ const createDateRangeFromPreset = (value, timeZone) => {
4692
+ const from = value.from ? resolveMoment(value.from, true, timeZone) : void 0;
4693
+ const to = value.to ? resolveMoment(value.to, false, timeZone) : void 0;
4694
+ return { from: from == null ? void 0 : from.toISOString(), to: to == null ? void 0 : to.toISOString() };
4695
+ };
4691
4696
  const resolveMoment = (setting, from, timeZone, baseDate) => {
4692
4697
  switch (setting.type) {
4693
4698
  case "TODAY":
@@ -4762,7 +4767,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4762
4767
  key: 1,
4763
4768
  class: "text-label"
4764
4769
  };
4765
- const _hoisted_5$f = ["for"];
4770
+ const _hoisted_5$e = ["for"];
4766
4771
  const _sfc_main$1C = /* @__PURE__ */ vue.defineComponent({
4767
4772
  __name: "BSRadioButton",
4768
4773
  props: {
@@ -4819,7 +4824,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4819
4824
  class: "slot-label cursor-pointer"
4820
4825
  }, [
4821
4826
  vue.renderSlot(_ctx.$slots, "default", { disabled: _ctx.disabled })
4822
- ], 8, _hoisted_5$f)) : vue.createCommentVNode("", true)
4827
+ ], 8, _hoisted_5$e)) : vue.createCommentVNode("", true)
4823
4828
  ], 2);
4824
4829
  };
4825
4830
  }
@@ -4954,25 +4959,20 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4954
4959
  const emit = __emit;
4955
4960
  const actualTimeZone = vue.computed(() => props.timeZone || blueseaConfig.timeZone);
4956
4961
  const currentPreset = vue.ref();
4957
- const createDateRange = (value) => {
4958
- const from = value.from ? resolveMoment(value.from, true, actualTimeZone.value) : void 0;
4959
- const to = value.to ? resolveMoment(value.to, false, actualTimeZone.value) : void 0;
4960
- return { from: from == null ? void 0 : from.toISOString(), to: to == null ? void 0 : to.toISOString() };
4961
- };
4962
4962
  const presetSelected = (value) => {
4963
- const range = value ? createDateRange(value) : void 0;
4964
- emit("update:modelValue", range);
4963
+ const range = value ? createDateRangeFromPreset(value, actualTimeZone.value) : void 0;
4964
+ emit("update:modelValue", range, value);
4965
4965
  };
4966
- const findPreset = (range) => {
4966
+ const findPreset2 = (range) => {
4967
4967
  return props.presets.find((preset) => {
4968
- const presetValue = createDateRange(preset);
4968
+ const presetValue = createDateRangeFromPreset(preset, actualTimeZone.value);
4969
4969
  return (range == null ? void 0 : range.from) === presetValue.from && (range == null ? void 0 : range.to) === presetValue.to;
4970
4970
  });
4971
4971
  };
4972
4972
  vue.watch(
4973
4973
  () => props.modelValue,
4974
4974
  () => {
4975
- currentPreset.value = findPreset(props.modelValue);
4975
+ currentPreset.value = findPreset2(props.modelValue);
4976
4976
  },
4977
4977
  { immediate: true }
4978
4978
  );
@@ -5256,7 +5256,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5256
5256
  key: 0,
5257
5257
  class: "placeholder flex-grow-1"
5258
5258
  };
5259
- const _hoisted_5$e = {
5259
+ const _hoisted_5$d = {
5260
5260
  key: 1,
5261
5261
  class: "text-truncate"
5262
5262
  };
@@ -5410,7 +5410,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5410
5410
  }, [
5411
5411
  selectedItems.value.length === 0 ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", _hoisted_4$n, null, 512)), [
5412
5412
  [vue.unref(vT), _ctx.placeholder]
5413
- ]) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$e, [
5413
+ ]) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$d, [
5414
5414
  _ctx.selectedLabelProvider ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", _hoisted_6$5, null, 512)), [
5415
5415
  [vue.unref(vT), _ctx.selectedLabelProvider(selectedItems.value)]
5416
5416
  ]) : (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(selectedItems.value, (item) => {
@@ -5609,17 +5609,16 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5609
5609
  }
5610
5610
  }
5611
5611
  };
5612
- const _hoisted_1$1g = { class: "bs-tree-row" };
5613
- const _hoisted_2$X = ["textContent"];
5614
- const _hoisted_3$x = {
5612
+ const _hoisted_1$1g = ["textContent"];
5613
+ const _hoisted_2$X = {
5615
5614
  key: 1,
5616
5615
  class: "font-icon w-16 text-gray-400"
5617
5616
  };
5618
- const _hoisted_4$m = {
5617
+ const _hoisted_3$x = {
5619
5618
  key: 2,
5620
5619
  class: "move-buttons"
5621
5620
  };
5622
- const _hoisted_5$d = {
5621
+ const _hoisted_4$m = {
5623
5622
  key: 0,
5624
5623
  class: "child-rows"
5625
5624
  };
@@ -5634,6 +5633,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5634
5633
  labelProvider: { default: () => defaultLabelProvider },
5635
5634
  keyProvider: {},
5636
5635
  disabledProvider: {},
5636
+ displayProvider: {},
5637
5637
  multiSelect: { type: Boolean },
5638
5638
  showCheckbox: { type: Boolean },
5639
5639
  showMoveButton: { type: Boolean },
@@ -5715,7 +5715,10 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5715
5715
  };
5716
5716
  return (_ctx, _cache) => {
5717
5717
  const _component_BSTreeRow = vue.resolveComponent("BSTreeRow", true);
5718
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1g, [
5718
+ return vue.openBlock(), vue.createElementBlock("div", {
5719
+ style: vue.normalizeStyle({ display: _ctx.displayProvider && !_ctx.displayProvider(_ctx.row) ? "none" : void 0 }),
5720
+ class: "bs-tree-row"
5721
+ }, [
5719
5722
  vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
5720
5723
  ref: "row-caption",
5721
5724
  class: vue.normalizeClass([{ disabled: _ctx.disabledProvider && _ctx.disabledProvider(_ctx.row) }, "row-caption"])
@@ -5729,8 +5732,8 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5729
5732
  class: "bs-clickable font-icon",
5730
5733
  onClick: _cache[0] || (_cache[0] = ($event) => selectRow($event, true)),
5731
5734
  textContent: vue.toDisplayString(isSelected.value ? "check_box" : "check_box_outline_blank")
5732
- }, null, 8, _hoisted_2$X)) : vue.createCommentVNode("", true),
5733
- _ctx.iconProvider ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$x, vue.toDisplayString(icon.value || ""), 1)) : vue.createCommentVNode("", true),
5735
+ }, null, 8, _hoisted_1$1g)) : vue.createCommentVNode("", true),
5736
+ _ctx.iconProvider ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$X, vue.toDisplayString(icon.value || ""), 1)) : vue.createCommentVNode("", true),
5734
5737
  vue.withDirectives(vue.createElementVNode("span", {
5735
5738
  class: vue.normalizeClass([{ selected: isSelected.value }, "caption"]),
5736
5739
  onClick: _cache[1] || (_cache[1] = ($event) => selectRow($event, $event.shiftKey)),
@@ -5740,7 +5743,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5740
5743
  [vue.unref(vT), label.value],
5741
5744
  [vue.unref(vTreeRowDrag), dragOption]
5742
5745
  ]),
5743
- _ctx.showMoveButton ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$m, [
5746
+ _ctx.showMoveButton ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$x, [
5744
5747
  vue.createElementVNode("span", {
5745
5748
  class: "bs-clickable font-icon move-down",
5746
5749
  onClick: moveDownRow
@@ -5753,12 +5756,13 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5753
5756
  ], 2)), [
5754
5757
  [vue.unref(vTreeRowDrop), dropOption]
5755
5758
  ]),
5756
- children.value && children.value.length > 0 ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_5$d, [
5759
+ children.value && children.value.length > 0 ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_4$m, [
5757
5760
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(children.value, (child) => {
5758
5761
  return vue.openBlock(), vue.createBlock(_component_BSTreeRow, {
5759
5762
  key: _ctx.keyProvider(child),
5760
5763
  "children-provider": _ctx.childrenProvider,
5761
5764
  "disabled-provider": _ctx.disabledProvider,
5765
+ "display-provider": _ctx.displayProvider,
5762
5766
  "enable-drag-and-drop": _ctx.enableDragAndDrop,
5763
5767
  "icon-provider": _ctx.iconProvider,
5764
5768
  "key-provider": _ctx.keyProvider,
@@ -5772,12 +5776,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5772
5776
  onToggleRow: toggleChildRow,
5773
5777
  onMoveRow: moveChildRow,
5774
5778
  onSelectRow: selectChildRow
5775
- }, null, 8, ["children-provider", "disabled-provider", "enable-drag-and-drop", "icon-provider", "key-provider", "label-provider", "multi-select", "parent-row", "row", "show-checkbox", "show-move-button", "siblings"]);
5779
+ }, null, 8, ["children-provider", "disabled-provider", "display-provider", "enable-drag-and-drop", "icon-provider", "key-provider", "label-provider", "multi-select", "parent-row", "row", "show-checkbox", "show-move-button", "siblings"]);
5776
5780
  }), 128))
5777
5781
  ], 512)), [
5778
5782
  [vue.vShow, isOpen.value]
5779
5783
  ]) : vue.createCommentVNode("", true)
5780
- ]);
5784
+ ], 4);
5781
5785
  };
5782
5786
  }
5783
5787
  });
@@ -5797,6 +5801,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5797
5801
  multiSelect: { type: Boolean },
5798
5802
  showCheckbox: { type: Boolean },
5799
5803
  rowDisabledProvider: {},
5804
+ rowDisplayProvider: {},
5800
5805
  contextMenuProvider: {},
5801
5806
  bottomPadding: { default: "80px" }
5802
5807
  },
@@ -5922,6 +5927,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5922
5927
  key: _ctx.keyProvider(item),
5923
5928
  "children-provider": _ctx.childrenProvider,
5924
5929
  "disabled-provider": _ctx.rowDisabledProvider,
5930
+ "display-provider": _ctx.rowDisplayProvider,
5925
5931
  "enable-drag-and-drop": _ctx.enableDragAndDrop,
5926
5932
  "icon-provider": _ctx.iconProvider,
5927
5933
  "key-provider": _ctx.keyProvider,
@@ -5936,7 +5942,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
5936
5942
  onToggleRow: toggleRow,
5937
5943
  onMoveRow: moveRow,
5938
5944
  onSelectRow: selectRow
5939
- }, null, 8, ["children-provider", "disabled-provider", "enable-drag-and-drop", "icon-provider", "key-provider", "label-provider", "multi-select", "row", "show-checkbox", "show-move-button", "siblings"]);
5945
+ }, null, 8, ["children-provider", "disabled-provider", "display-provider", "enable-drag-and-drop", "icon-provider", "key-provider", "label-provider", "multi-select", "row", "show-checkbox", "show-move-button", "siblings"]);
5940
5946
  }), 128))
5941
5947
  ], 4)
5942
5948
  ], 32);
@@ -6153,16 +6159,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6153
6159
  },
6154
6160
  clickRemoveButton: () => this.removeSelectedItem(),
6155
6161
  expandAll: () => {
6156
- const allParents = this.getAllParents();
6157
- if (this.expandedRows.size === allParents.size) {
6158
- this.expandedRows.clear();
6159
- } else {
6160
- allParents.forEach((item) => {
6161
- const key = option.getItemKey(item);
6162
- if (key) this.expandedRows.add(key);
6163
- });
6164
- }
6165
- this.updateAllExpanded();
6162
+ this.expandAll(this.expandedRows.size !== this.getAllParents().size);
6166
6163
  }
6167
6164
  };
6168
6165
  }
@@ -6298,6 +6295,25 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6298
6295
  }
6299
6296
  this.cleanUpExpandedRows(this.expandedRows, this.tree.data);
6300
6297
  }
6298
+ expandAll(expandOrDepth) {
6299
+ if (expandOrDepth === true) {
6300
+ const allParents = this.getAllParents();
6301
+ allParents.forEach((item) => {
6302
+ const key = this.option.getItemKey(item);
6303
+ if (key) this.expandedRows.add(key);
6304
+ });
6305
+ } else if (expandOrDepth === false) {
6306
+ this.expandedRows.clear();
6307
+ } else if (expandOrDepth > 1) {
6308
+ const parents = /* @__PURE__ */ new Set();
6309
+ this.collectParents(parents, this.tree.data, this.option.getChildren, expandOrDepth - 1);
6310
+ parents.forEach((item) => {
6311
+ const key = this.option.getItemKey(item);
6312
+ if (key) this.expandedRows.add(key);
6313
+ });
6314
+ }
6315
+ this.updateAllExpanded();
6316
+ }
6301
6317
  forceRemoveItems(items) {
6302
6318
  items.forEach((item) => {
6303
6319
  var _a2, _b;
@@ -6334,12 +6350,14 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6334
6350
  }
6335
6351
  }
6336
6352
  }
6337
- collectParents(parents, list, childrenProvider) {
6353
+ collectParents(parents, list, childrenProvider, maxDepth) {
6338
6354
  for (const item of list) {
6339
6355
  const children = childrenProvider(item);
6340
6356
  if (children && children.length > 0) {
6341
6357
  parents.add(item);
6342
- this.collectParents(parents, children, childrenProvider);
6358
+ if (maxDepth === void 0 || maxDepth > 1) {
6359
+ this.collectParents(parents, children, childrenProvider, maxDepth ? maxDepth - 1 : void 0);
6360
+ }
6343
6361
  }
6344
6362
  }
6345
6363
  }
@@ -36198,6 +36216,7 @@ img.ProseMirror-separator {
36198
36216
  this.selectDeleteSupport.removeIfAddedRow = (row) => this.editableSupport.removeIfAddedRow(row);
36199
36217
  }
36200
36218
  setGridData(data) {
36219
+ GridHandlerEditableSupport.cleanUpData(data);
36201
36220
  super.setGridData(data);
36202
36221
  this.editableSupport.clearAddedRows();
36203
36222
  }
@@ -36284,6 +36303,11 @@ img.ProseMirror-separator {
36284
36303
  };
36285
36304
  controlEventListener.clickAdd = () => this.createAndAddNewRow();
36286
36305
  }
36306
+ static cleanUpData(data) {
36307
+ data == null ? void 0 : data.forEach((row) => {
36308
+ if (row && row[GRID_NEW_ROW_KEY]) delete row[GRID_NEW_ROW_KEY];
36309
+ });
36310
+ }
36287
36311
  getModifiedRows() {
36288
36312
  var _a2;
36289
36313
  const addedKeys = this.addedRows.map((row) => row[GRID_NEW_ROW_KEY]);
@@ -37805,6 +37829,36 @@ img.ProseMirror-separator {
37805
37829
  };
37806
37830
  }
37807
37831
  });
37832
+ const serializeMomentSetting = (setting) => {
37833
+ if (!setting) return "";
37834
+ const value = setting.value === void 0 ? "" : `:${setting.value}`;
37835
+ return `${setting.type}${value}`;
37836
+ };
37837
+ const convertDateRangePresetKey = (preset) => {
37838
+ if (preset.from === void 0 && preset.to === void 0) return "";
37839
+ return `${serializeMomentSetting(preset.from)}~${serializeMomentSetting(preset.to)}`;
37840
+ };
37841
+ const findPreset = (presetKey, candidatePresets) => {
37842
+ if (!presetKey) return void 0;
37843
+ return candidatePresets == null ? void 0 : candidatePresets.find((preset) => convertDateRangePresetKey(preset) === presetKey);
37844
+ };
37845
+ class BetweenDateFilterWithPreset extends BetweenDateFilter {
37846
+ constructor(name2, fromValue, toValue, preset) {
37847
+ super(name2, fromValue, toValue);
37848
+ __publicField(this, "presetKey");
37849
+ this.name = name2;
37850
+ this.fromValue = fromValue;
37851
+ this.toValue = toValue;
37852
+ this.presetKey = preset ? convertDateRangePresetKey(preset) : void 0;
37853
+ }
37854
+ // candidatePresets 중 presetKey 에 해당하는 preset 을 찾아, fromValue, toValue 를 설정한다.
37855
+ // preset 을 찾을 수 없으면 undefined 를 리턴한다.
37856
+ static createFromPresetKey(name2, presetKey, candidatePresets, timeZone) {
37857
+ const preset = findPreset(presetKey, candidatePresets);
37858
+ const range = preset ? createDateRangeFromPreset(preset, timeZone) : void 0;
37859
+ return range ? new BetweenDateFilterWithPreset(name2, range.from, range.to, preset) : void 0;
37860
+ }
37861
+ }
37808
37862
  const _hoisted_1$N = {
37809
37863
  key: 0,
37810
37864
  class: "date-filters .bs-layout-vertical mr-16"
@@ -37863,9 +37917,10 @@ img.ProseMirror-separator {
37863
37917
  if (propertyId) item.propertyId = propertyId;
37864
37918
  emitValue();
37865
37919
  };
37866
- const setDateFilterValue = (index, value) => {
37920
+ const setDateFilterValue = (index, value, preset) => {
37867
37921
  const item = dateFilterValues.value[index];
37868
37922
  item.value = value || {};
37923
+ item.preset = preset;
37869
37924
  emitValue();
37870
37925
  };
37871
37926
  const addDateFilter = () => {
@@ -37890,7 +37945,7 @@ img.ProseMirror-separator {
37890
37945
  };
37891
37946
  const emitValue = () => {
37892
37947
  var _a2;
37893
- const filters = dateFilterValues.value.map((item) => betweenDateFilter(item.propertyId, item.value.from, item.value.to));
37948
+ const filters = dateFilterValues.value.map((item) => new BetweenDateFilterWithPreset(item.propertyId, item.value.from, item.value.to, item.preset));
37894
37949
  const and = filters.length > 0 ? andFilter(filters) : void 0;
37895
37950
  if (((_a2 = props.modelValue) == null ? void 0 : _a2.toString()) !== (and == null ? void 0 : and.toString())) {
37896
37951
  emit("update:modelValue", and);
@@ -37957,10 +38012,11 @@ img.ProseMirror-separator {
37957
38012
  }, null, 8, ["display-format", "from-id", "model-value", "name-from", "name-to", "popup-display-format", "popup-end-year", "popup-start-year", "resolution", "time-zone", "to-id", "width", "onUpdate:modelValue"]),
37958
38013
  vue.createVNode(_sfc_main$1A, {
37959
38014
  modelValue: item.value,
37960
- "onUpdate:modelValue": [($event) => item.value = $event, ($event) => setDateFilterValue(index, $event)],
38015
+ "onUpdate:modelValue": [($event) => item.value = $event, (value, preset) => setDateFilterValue(index, value, preset)],
37961
38016
  presets: _ctx.presets,
38017
+ "time-zone": timeZoneOfFilterItem(item.propertyId),
37962
38018
  class: "ml-4"
37963
- }, null, 8, ["modelValue", "onUpdate:modelValue", "presets"])
38019
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "presets", "time-zone"])
37964
38020
  ]);
37965
38021
  }), 128))
37966
38022
  ])) : vue.createCommentVNode("", true);
@@ -38016,12 +38072,23 @@ img.ProseMirror-separator {
38016
38072
  emitUpdateModelValue();
38017
38073
  emitSearch();
38018
38074
  };
38075
+ const findDateFilterTimeZone = (name2, dateFilter) => {
38076
+ var _a2;
38077
+ return ((_a2 = dateFilter == null ? void 0 : dateFilter.filterItems.find((f) => f.propertyId === name2)) == null ? void 0 : _a2.timeZone) || blueseaConfig.timeZone;
38078
+ };
38019
38079
  vue.watch(() => props.gridPreferenceDateFilterValues, () => {
38020
38080
  if (props.gridPreferenceDateFilterValues && props.gridPreferenceDateFilterValues.filters && props.gridPreferenceDateFilterValues.filters.length > 0) {
38021
38081
  const filters = props.gridPreferenceDateFilterValues.filters.map((filter) => {
38022
- const dateFilter = filter;
38023
- if (dateFilter.name && (dateFilter.fromValue || dateFilter.toValue)) {
38024
- return betweenDateFilter(dateFilter.name, dateFilter.fromValue, dateFilter.toValue);
38082
+ var _a2, _b;
38083
+ const f = filter;
38084
+ if (f.name && (f.fromValue || f.toValue)) {
38085
+ if (f.presetKey) {
38086
+ const presets = props.dateRangePresets || ((_a2 = blueseaConfig.componentConfig.gridLookup) == null ? void 0 : _a2.dateRangePresets) || [];
38087
+ const timeZone = findDateFilterTimeZone(f.name, (_b = props.config) == null ? void 0 : _b.dateFilter);
38088
+ return BetweenDateFilterWithPreset.createFromPresetKey(f.name, f.presetKey, presets, timeZone);
38089
+ } else {
38090
+ return new BetweenDateFilterWithPreset(f.name, f.fromValue, f.toValue);
38091
+ }
38025
38092
  }
38026
38093
  }).filter(notNull);
38027
38094
  if (filters.length > 0) {
@@ -72015,6 +72082,7 @@ img.ProseMirror-separator {
72015
72082
  exports2.BSYesNoGroup = _sfc_main$1x;
72016
72083
  exports2.BSYesNoSelect = _sfc_main$1V;
72017
72084
  exports2.BetweenDateFilter = BetweenDateFilter;
72085
+ exports2.BetweenDateFilterWithPreset = BetweenDateFilterWithPreset;
72018
72086
  exports2.BetweenFilter = BetweenFilter;
72019
72087
  exports2.DEFAULT_GRID_COLUMN_WIDTH = DEFAULT_GRID_COLUMN_WIDTH;
72020
72088
  exports2.DefaultBody = _sfc_main$h;
@@ -72061,6 +72129,7 @@ img.ProseMirror-separator {
72061
72129
  exports2.closeAlarm = closeAlarm;
72062
72130
  exports2.configureBluesea = configureBluesea;
72063
72131
  exports2.contextMenuPluginKey = contextMenuPluginKey;
72132
+ exports2.convertDateRangePresetKey = convertDateRangePresetKey;
72064
72133
  exports2.createContextMenuPlugin = createContextMenuPlugin;
72065
72134
  exports2.createDefaultFrameContext = createDefaultFrameContext;
72066
72135
  exports2.createInputGridHandler = createInputGridHandler;
@@ -1,4 +1,19 @@
1
+ import { BetweenDateFilter } from '../../model/FilterModel.ts';
2
+ import { Dayjs } from 'dayjs';
3
+ import { DateRangePreset } from '../input/DateRangePresetModel.ts';
4
+ import { TimeZone } from '../../model/CommonTypes.ts';
5
+
1
6
  export type DateRange = {
2
7
  from?: string;
3
8
  to?: string;
4
9
  };
10
+ export type DateRangePresetKey = string;
11
+ export declare const convertDateRangePresetKey: (preset: DateRangePreset) => DateRangePresetKey;
12
+ export declare class BetweenDateFilterWithPreset extends BetweenDateFilter {
13
+ readonly name: string;
14
+ readonly fromValue?: string | Date | Dayjs | undefined;
15
+ readonly toValue?: string | Date | Dayjs | undefined;
16
+ presetKey?: DateRangePresetKey;
17
+ constructor(name: string, fromValue?: string | Date | Dayjs | undefined, toValue?: string | Date | Dayjs | undefined, preset?: DateRangePreset);
18
+ static createFromPresetKey(name: string, presetKey: DateRangePresetKey, candidatePresets: DateRangePreset[], timeZone: TimeZone): BetweenDateFilterWithPreset | undefined;
19
+ }
@@ -341,6 +341,7 @@ export declare class GridHandlerEditableSupport<T extends GridRowData> {
341
341
  private listener?;
342
342
  addedRows: T[];
343
343
  constructor(grid: UnwrapNestedRefs<GridBinding<T>>, gridEventListener: GridEventListener<T>, controlEventListener: GridControlEventListener, getRowKey: KeyProvider<T>, newRowCreator?: (() => T | undefined) | undefined, addRowToLast?: boolean | undefined, listener?: ((eventType: 'rowAdded' | 'rowRemoved') => void) | undefined);
344
+ static cleanUpData<T extends GridRowData>(data: T[]): void;
344
345
  getModifiedRows(): T[];
345
346
  getAddedRows(): T[];
346
347
  clearAddedRows(): void;
@@ -8,7 +8,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
8
8
  }>, {
9
9
  presets: () => DateRangePreset[];
10
10
  }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
11
- "update:modelValue": (value: DateRange | undefined) => void;
11
+ "update:modelValue": (value: DateRange | undefined, preset: DateRangePreset | undefined) => void;
12
12
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
13
13
  modelValue?: DateRange | undefined;
14
14
  presets?: DateRangePreset[] | undefined;
@@ -16,7 +16,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
16
16
  }>, {
17
17
  presets: () => DateRangePreset[];
18
18
  }>>> & Readonly<{
19
- "onUpdate:modelValue"?: ((value: DateRange | undefined) => any) | undefined;
19
+ "onUpdate:modelValue"?: ((value: DateRange | undefined, preset: DateRangePreset | undefined) => any) | undefined;
20
20
  }>, {
21
21
  presets: DateRangePreset[];
22
22
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -1,5 +1,6 @@
1
1
  import { MultiLangText, TimeZone } from '../../model/CommonTypes.ts';
2
2
  import { Dayjs } from 'dayjs';
3
+ import { DateRange } from '../grid/DateFilterModel.ts';
3
4
 
4
5
  export type MomentType = 'TODAY' | 'THIS_WEEK' | 'THIS_MONTH' | 'THIS_YEAR' | 'LAST_HOURS' | 'LAST_DAYS' | 'DAYS_AGO' | 'WEEKS_AGO' | 'MONTHS_AGO' | 'YEARS_AGO';
5
6
  export type MomentSetting = {
@@ -11,4 +12,5 @@ export type DateRangePreset = {
11
12
  from?: MomentSetting;
12
13
  to?: MomentSetting;
13
14
  };
15
+ export declare const createDateRangeFromPreset: (value: DateRangePreset, timeZone: TimeZone) => DateRange;
14
16
  export declare const resolveMoment: (setting: MomentSetting, from: boolean, timeZone: TimeZone, baseDate?: Dayjs) => Dayjs | undefined;
@@ -21,6 +21,7 @@ declare const _default: <T>(__VLS_props: {
21
21
  readonly "onBefore:selectedRows"?: ((event: ChangeSelectionEvent<T>) => any) | undefined;
22
22
  dontChangeDataWhenRowMoved?: boolean | undefined;
23
23
  rowDisabledProvider?: ((item: T) => boolean) | undefined;
24
+ rowDisplayProvider?: ((item: T) => boolean) | undefined;
24
25
  bottomPadding?: string | undefined;
25
26
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, __VLS_ctx?: {
26
27
  attrs: any;
@@ -51,6 +52,7 @@ declare const _default: <T>(__VLS_props: {
51
52
  readonly "onBefore:selectedRows"?: ((event: ChangeSelectionEvent<T>) => any) | undefined;
52
53
  dontChangeDataWhenRowMoved?: boolean | undefined;
53
54
  rowDisabledProvider?: ((item: T) => boolean) | undefined;
55
+ rowDisplayProvider?: ((item: T) => boolean) | undefined;
54
56
  bottomPadding?: string | undefined;
55
57
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
56
58
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
@@ -85,6 +87,7 @@ declare const _default: <T>(__VLS_props: {
85
87
  readonly "onBefore:selectedRows"?: ((event: ChangeSelectionEvent<T>) => any) | undefined;
86
88
  dontChangeDataWhenRowMoved?: boolean | undefined;
87
89
  rowDisabledProvider?: ((item: T) => boolean) | undefined;
90
+ rowDisplayProvider?: ((item: T) => boolean) | undefined;
88
91
  bottomPadding?: string | undefined;
89
92
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
90
93
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
@@ -16,6 +16,7 @@ declare const _default: <T>(__VLS_props: {
16
16
  parentRow: T | undefined;
17
17
  siblings: T[];
18
18
  disabledProvider?: ((item: T) => boolean) | undefined;
19
+ displayProvider?: ((item: T) => boolean) | undefined;
19
20
  multiSelect?: boolean | undefined;
20
21
  showMoveButton?: boolean | undefined;
21
22
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, __VLS_ctx?: {
@@ -41,6 +42,7 @@ declare const _default: <T>(__VLS_props: {
41
42
  parentRow: T | undefined;
42
43
  siblings: T[];
43
44
  disabledProvider?: ((item: T) => boolean) | undefined;
45
+ displayProvider?: ((item: T) => boolean) | undefined;
44
46
  multiSelect?: boolean | undefined;
45
47
  showMoveButton?: boolean | undefined;
46
48
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
@@ -70,6 +72,7 @@ declare const _default: <T>(__VLS_props: {
70
72
  parentRow: T | undefined;
71
73
  siblings: T[];
72
74
  disabledProvider?: ((item: T) => boolean) | undefined;
75
+ displayProvider?: ((item: T) => boolean) | undefined;
73
76
  multiSelect?: boolean | undefined;
74
77
  showMoveButton?: boolean | undefined;
75
78
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
@@ -35,9 +35,28 @@ export interface TreeHandler<T> {
35
35
  treeEventListener: TreeEventListener<T>;
36
36
  control: UnwrapNestedRefs<TreeControlBinding<T>>;
37
37
  controlEventListener: TreeControlEventListener;
38
+ /**
39
+ * Tree 에 data 를 넣는다.
40
+ * @param data
41
+ * @param keepSelection true 이면 현재 선택된 항목이 유지된다.
42
+ * @param keepExpanded true 이면 현재 expanded 인 항목이 유지된다.
43
+ * @param waitTime 이 값이 0보다 크면 이 시간동안 tree 를 비웠다가 다시 채운다. refresh 효과를 위해 사용한다. millisecond 단위.
44
+ */
38
45
  setTreeData(data: T[], keepSelection?: boolean, keepExpanded?: boolean, waitTime?: number): Promise<void>;
46
+ /**
47
+ * 항목을 선택한다.
48
+ * @param item
49
+ */
39
50
  selectItem(item: T | T[] | undefined): void;
51
+ /**
52
+ * `item` 의 parent 를 리턴한다.
53
+ * @param item
54
+ */
40
55
  getParent(item: T | undefined): T | undefined;
56
+ /**
57
+ * `item` 을 교체한다. item 이 변경된 경우, 변경된 객체를 tree 에 다시 표시할 때 사용한다.
58
+ * @param newItem
59
+ */
41
60
  replaceCurrentItem(newItem: T): void;
42
61
  /**
43
62
  * Tree 이 모든 항목을 순회하며 visitor 함수를 호출한다. visitor 함수가
@@ -63,7 +82,16 @@ export interface TreeHandler<T> {
63
82
  * @param index 추가할 위치. 0 보다 작으면 제일 마지막에 추가한다. 디폴트는 -1.
64
83
  */
65
84
  addChildItem(parent: T, index: number): void;
85
+ /**
86
+ * `items` 를 삭제한다.
87
+ * @param items
88
+ */
66
89
  removeItems(items: T[]): void;
90
+ /**
91
+ * Tree 전체를 펼치거나 접는다.
92
+ * @param expandOrDepth true 이면 전체를 펼치고, false 이면 접는다. 숫자이면 해당 depth 까지 표시되도록 펼친다.
93
+ */
94
+ expandAll(expandOrDepth: boolean | number): void;
67
95
  }
68
96
  export type TreeBinding<T> = {
69
97
  data: T[];