@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
@@ -87,8 +87,8 @@ const defaultAddressInputComponentConfig = {
87
87
  countryConfigs: ADDRESS_COUNTRY_CONFIGS
88
88
  };
89
89
  const defaultRichTextComponentConfig = {
90
- imageInsertModal: defineAsyncComponent(() => import("./ImageInsertModal-DdYqZWc5.js")),
91
- videoInsertModal: defineAsyncComponent(() => import("./VideoInsertModal-kNMv3Gr0.js")),
90
+ imageInsertModal: defineAsyncComponent(() => import("./ImageInsertModal-K1Tx7ys2.js")),
91
+ videoInsertModal: defineAsyncComponent(() => import("./VideoInsertModal-C-b0-PU0.js")),
92
92
  toolButtons: [
93
93
  "Heading",
94
94
  "FontSize",
@@ -1440,7 +1440,7 @@ const _hoisted_4$o = {
1440
1440
  key: 1,
1441
1441
  class: "label"
1442
1442
  };
1443
- const _hoisted_5$f = {
1443
+ const _hoisted_5$e = {
1444
1444
  key: 2,
1445
1445
  class: "small-progress"
1446
1446
  };
@@ -1593,7 +1593,7 @@ const _sfc_main$1F = /* @__PURE__ */ defineComponent({
1593
1593
  [unref(vT), selectedItemLabel.value]
1594
1594
  ]),
1595
1595
  _cache[4] || (_cache[4] = createElementVNode("span", { class: "dropdown-btn" }, "expand_more", -1)),
1596
- loadingItems.value ? (openBlock(), createElementBlock("span", _hoisted_5$f, "progress_activity")) : createCommentVNode("", true)
1596
+ loadingItems.value ? (openBlock(), createElementBlock("span", _hoisted_5$e, "progress_activity")) : createCommentVNode("", true)
1597
1597
  ], 512),
1598
1598
  !_ctx.disabled && showPopup.value ? (openBlock(), createBlock(_sfc_main$1H, {
1599
1599
  key: 0,
@@ -2039,7 +2039,7 @@ const _hoisted_4$m = {
2039
2039
  key: 2,
2040
2040
  class: "prefix"
2041
2041
  };
2042
- const _hoisted_5$e = ["src"];
2042
+ const _hoisted_5$d = ["src"];
2043
2043
  const _hoisted_6$8 = ["textContent"];
2044
2044
  const _hoisted_7$5 = {
2045
2045
  key: 1,
@@ -2205,7 +2205,7 @@ const _sfc_main$1B = /* @__PURE__ */ defineComponent({
2205
2205
  createElementVNode("img", {
2206
2206
  src: item.value,
2207
2207
  alt: "prefix"
2208
- }, null, 8, _hoisted_5$e)
2208
+ }, null, 8, _hoisted_5$d)
2209
2209
  ])) : createCommentVNode("", true)
2210
2210
  ], 64);
2211
2211
  }), 256)),
@@ -2775,7 +2775,7 @@ const _hoisted_1$1e = { class: "bs-calendar bs-layout-vertical-inline" };
2775
2775
  const _hoisted_2$X = { class: "bs-layout-horizontal justify-content-between align-items-center gap-8" };
2776
2776
  const _hoisted_3$w = { class: "year-month bs-layout-horizontal gap-4" };
2777
2777
  const _hoisted_4$l = { class: "timezone" };
2778
- const _hoisted_5$d = { class: "weekdays" };
2778
+ const _hoisted_5$c = { class: "weekdays" };
2779
2779
  const _hoisted_6$7 = ["onClick"];
2780
2780
  const _hoisted_7$4 = {
2781
2781
  key: 0,
@@ -2993,7 +2993,7 @@ const _sfc_main$1u = /* @__PURE__ */ defineComponent({
2993
2993
  class: normalizeClass([{ disabled: _ctx.disabled }, "align-self-center"])
2994
2994
  }, [
2995
2995
  createElementVNode("tbody", null, [
2996
- createElementVNode("tr", _hoisted_5$d, [
2996
+ createElementVNode("tr", _hoisted_5$c, [
2997
2997
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(weekdays.value, (day) => {
2998
2998
  return withDirectives((openBlock(), createElementBlock("th", { key: day })), [
2999
2999
  [unref(vT), day]
@@ -3060,7 +3060,7 @@ const _hoisted_4$k = {
3060
3060
  key: 0,
3061
3061
  class: "extra-dates bs-layout-vertical gap-2 mt-8"
3062
3062
  };
3063
- const _hoisted_5$c = { key: 0 };
3063
+ const _hoisted_5$b = { key: 0 };
3064
3064
  const _hoisted_6$6 = { key: 1 };
3065
3065
  const _sfc_main$1t = /* @__PURE__ */ defineComponent({
3066
3066
  __name: "BSCalendarRange",
@@ -3148,7 +3148,7 @@ const _sfc_main$1t = /* @__PURE__ */ defineComponent({
3148
3148
  key: `${tz}_${index}`,
3149
3149
  class: "extra-date"
3150
3150
  }, [
3151
- _ctx.from ? (openBlock(), createElementBlock("span", _hoisted_5$c, toDisplayString(unref(formatUtil).formatDateString(_ctx.from, _ctx.displayFormat, tz)), 1)) : createCommentVNode("", true),
3151
+ _ctx.from ? (openBlock(), createElementBlock("span", _hoisted_5$b, toDisplayString(unref(formatUtil).formatDateString(_ctx.from, _ctx.displayFormat, tz)), 1)) : createCommentVNode("", true),
3152
3152
  _cache[3] || (_cache[3] = createElementVNode("span", null, "~", -1)),
3153
3153
  _ctx.to ? (openBlock(), createElementBlock("span", _hoisted_6$6, toDisplayString(unref(formatUtil).formatDateString(_ctx.to, _ctx.displayFormat, tz)), 1)) : createCommentVNode("", true)
3154
3154
  ]);
@@ -3358,7 +3358,7 @@ const _hoisted_4$i = {
3358
3358
  key: 1,
3359
3359
  class: "input-area"
3360
3360
  };
3361
- const _hoisted_5$b = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
3361
+ const _hoisted_5$a = ["id", "autocomplete", "disabled", "maxlength", "name", "tabindex", "value"];
3362
3362
  const _hoisted_6$5 = ["textContent"];
3363
3363
  const _sfc_main$1r = /* @__PURE__ */ defineComponent({
3364
3364
  __name: "BSPriceInput",
@@ -3501,7 +3501,7 @@ const _sfc_main$1r = /* @__PURE__ */ defineComponent({
3501
3501
  tabindex: _ctx.tabindex,
3502
3502
  value: focused.value || !_ctx.formatOnBlur ? unref(stringValue) : formattedStringValue.value,
3503
3503
  type: "text"
3504
- }, toHandlers(handlers2, true)), null, 16, _hoisted_5$b), [
3504
+ }, toHandlers(handlers2, true)), null, 16, _hoisted_5$a), [
3505
3505
  [
3506
3506
  unref(vT),
3507
3507
  _ctx.placeholder,
@@ -4688,6 +4688,11 @@ const _sfc_main$1m = /* @__PURE__ */ defineComponent({
4688
4688
  });
4689
4689
  dayjs.extend(utc);
4690
4690
  dayjs.extend(timezone);
4691
+ const createDateRangeFromPreset = (value, timeZone) => {
4692
+ const from2 = value.from ? resolveMoment(value.from, true, timeZone) : void 0;
4693
+ const to = value.to ? resolveMoment(value.to, false, timeZone) : void 0;
4694
+ return { from: from2 == null ? void 0 : from2.toISOString(), to: to == null ? void 0 : to.toISOString() };
4695
+ };
4691
4696
  const resolveMoment = (setting, from2, timeZone, baseDate) => {
4692
4697
  switch (setting.type) {
4693
4698
  case "TODAY":
@@ -4762,7 +4767,7 @@ const _hoisted_4$g = {
4762
4767
  key: 1,
4763
4768
  class: "text-label"
4764
4769
  };
4765
- const _hoisted_5$a = ["for"];
4770
+ const _hoisted_5$9 = ["for"];
4766
4771
  const _sfc_main$1l = /* @__PURE__ */ defineComponent({
4767
4772
  __name: "BSRadioButton",
4768
4773
  props: {
@@ -4819,7 +4824,7 @@ const _sfc_main$1l = /* @__PURE__ */ defineComponent({
4819
4824
  class: "slot-label cursor-pointer"
4820
4825
  }, [
4821
4826
  renderSlot(_ctx.$slots, "default", { disabled: _ctx.disabled })
4822
- ], 8, _hoisted_5$a)) : createCommentVNode("", true)
4827
+ ], 8, _hoisted_5$9)) : createCommentVNode("", true)
4823
4828
  ], 2);
4824
4829
  };
4825
4830
  }
@@ -4954,25 +4959,20 @@ const _sfc_main$1j = /* @__PURE__ */ defineComponent({
4954
4959
  const emit = __emit;
4955
4960
  const actualTimeZone = computed(() => props.timeZone || blueseaConfig.timeZone);
4956
4961
  const currentPreset = ref();
4957
- const createDateRange = (value) => {
4958
- const from2 = 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: from2 == null ? void 0 : from2.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
  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 @@ const _hoisted_4$f = {
5256
5256
  key: 0,
5257
5257
  class: "placeholder flex-grow-1"
5258
5258
  };
5259
- const _hoisted_5$9 = {
5259
+ const _hoisted_5$8 = {
5260
5260
  key: 1,
5261
5261
  class: "text-truncate"
5262
5262
  };
@@ -5410,7 +5410,7 @@ const _sfc_main$1f = /* @__PURE__ */ defineComponent({
5410
5410
  }, [
5411
5411
  selectedItems.value.length === 0 ? withDirectives((openBlock(), createElementBlock("span", _hoisted_4$f, null, 512)), [
5412
5412
  [unref(vT), _ctx.placeholder]
5413
- ]) : (openBlock(), createElementBlock("span", _hoisted_5$9, [
5413
+ ]) : (openBlock(), createElementBlock("span", _hoisted_5$8, [
5414
5414
  _ctx.selectedLabelProvider ? withDirectives((openBlock(), createElementBlock("span", _hoisted_6$4, null, 512)), [
5415
5415
  [unref(vT), _ctx.selectedLabelProvider(selectedItems.value)]
5416
5416
  ]) : (openBlock(true), createElementBlock(Fragment$1, { key: 1 }, renderList(selectedItems.value, (item) => {
@@ -5609,17 +5609,16 @@ const vTreeRowDrop = {
5609
5609
  }
5610
5610
  }
5611
5611
  };
5612
- const _hoisted_1$10 = { class: "bs-tree-row" };
5613
- const _hoisted_2$J = ["textContent"];
5614
- const _hoisted_3$l = {
5612
+ const _hoisted_1$10 = ["textContent"];
5613
+ const _hoisted_2$J = {
5615
5614
  key: 1,
5616
5615
  class: "font-icon w-16 text-gray-400"
5617
5616
  };
5618
- const _hoisted_4$e = {
5617
+ const _hoisted_3$l = {
5619
5618
  key: 2,
5620
5619
  class: "move-buttons"
5621
5620
  };
5622
- const _hoisted_5$8 = {
5621
+ const _hoisted_4$e = {
5623
5622
  key: 0,
5624
5623
  class: "child-rows"
5625
5624
  };
@@ -5634,6 +5633,7 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
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 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
5715
5715
  };
5716
5716
  return (_ctx, _cache) => {
5717
5717
  const _component_BSTreeRow = resolveComponent("BSTreeRow", true);
5718
- return openBlock(), createElementBlock("div", _hoisted_1$10, [
5718
+ return openBlock(), createElementBlock("div", {
5719
+ style: normalizeStyle({ display: _ctx.displayProvider && !_ctx.displayProvider(_ctx.row) ? "none" : void 0 }),
5720
+ class: "bs-tree-row"
5721
+ }, [
5719
5722
  withDirectives((openBlock(), createElementBlock("div", {
5720
5723
  ref: "row-caption",
5721
5724
  class: normalizeClass([{ disabled: _ctx.disabledProvider && _ctx.disabledProvider(_ctx.row) }, "row-caption"])
@@ -5729,8 +5732,8 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
5729
5732
  class: "bs-clickable font-icon",
5730
5733
  onClick: _cache[0] || (_cache[0] = ($event) => selectRow($event, true)),
5731
5734
  textContent: toDisplayString(isSelected.value ? "check_box" : "check_box_outline_blank")
5732
- }, null, 8, _hoisted_2$J)) : createCommentVNode("", true),
5733
- _ctx.iconProvider ? (openBlock(), createElementBlock("span", _hoisted_3$l, toDisplayString(icon.value || ""), 1)) : createCommentVNode("", true),
5735
+ }, null, 8, _hoisted_1$10)) : createCommentVNode("", true),
5736
+ _ctx.iconProvider ? (openBlock(), createElementBlock("span", _hoisted_2$J, toDisplayString(icon.value || ""), 1)) : createCommentVNode("", true),
5734
5737
  withDirectives(createElementVNode("span", {
5735
5738
  class: normalizeClass([{ selected: isSelected.value }, "caption"]),
5736
5739
  onClick: _cache[1] || (_cache[1] = ($event) => selectRow($event, $event.shiftKey)),
@@ -5740,7 +5743,7 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
5740
5743
  [unref(vT), label.value],
5741
5744
  [unref(vTreeRowDrag), dragOption]
5742
5745
  ]),
5743
- _ctx.showMoveButton ? (openBlock(), createElementBlock("span", _hoisted_4$e, [
5746
+ _ctx.showMoveButton ? (openBlock(), createElementBlock("span", _hoisted_3$l, [
5744
5747
  createElementVNode("span", {
5745
5748
  class: "bs-clickable font-icon move-down",
5746
5749
  onClick: moveDownRow
@@ -5753,12 +5756,13 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
5753
5756
  ], 2)), [
5754
5757
  [unref(vTreeRowDrop), dropOption]
5755
5758
  ]),
5756
- children.value && children.value.length > 0 ? withDirectives((openBlock(), createElementBlock("div", _hoisted_5$8, [
5759
+ children.value && children.value.length > 0 ? withDirectives((openBlock(), createElementBlock("div", _hoisted_4$e, [
5757
5760
  (openBlock(true), createElementBlock(Fragment$1, null, renderList(children.value, (child) => {
5758
5761
  return openBlock(), 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 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
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
  [vShow, isOpen.value]
5779
5783
  ]) : createCommentVNode("", true)
5780
- ]);
5784
+ ], 4);
5781
5785
  };
5782
5786
  }
5783
5787
  });
@@ -5797,6 +5801,7 @@ const _sfc_main$1d = /* @__PURE__ */ defineComponent({
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 @@ const _sfc_main$1d = /* @__PURE__ */ defineComponent({
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 @@ const _sfc_main$1d = /* @__PURE__ */ defineComponent({
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);
@@ -6006,7 +6012,7 @@ class BSModal {
6006
6012
  }
6007
6013
  openAlert(title, message, clickHandler2) {
6008
6014
  const option = {
6009
- component: defineAsyncComponent(() => import("./BSAlertModal-B3zqxyBI.js")),
6015
+ component: defineAsyncComponent(() => import("./BSAlertModal-DypUvVcH.js")),
6010
6016
  bind: {
6011
6017
  title,
6012
6018
  message
@@ -6019,7 +6025,7 @@ class BSModal {
6019
6025
  }
6020
6026
  openYesNo(title, message, yesHandler, noHandler) {
6021
6027
  const option = {
6022
- component: defineAsyncComponent(() => import("./BSYesNoModal-82FcvYh-.js")),
6028
+ component: defineAsyncComponent(() => import("./BSYesNoModal-CBrzf4F5.js")),
6023
6029
  bind: {
6024
6030
  title,
6025
6031
  message
@@ -6153,16 +6159,7 @@ class TreeHandlerImpl {
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 @@ class TreeHandlerImpl {
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 @@ class TreeHandlerImpl {
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
  }
@@ -31132,13 +31150,13 @@ const tableContextMenus = (modal, editor) => {
31132
31150
  };
31133
31151
  const showTableProperties = (modal, editor) => {
31134
31152
  modal.openModal({
31135
- component: defineAsyncComponent(() => import("./TablePropertiesModal-BlPP_yM-.js")),
31153
+ component: defineAsyncComponent(() => import("./TablePropertiesModal-ClsK1yM4.js")),
31136
31154
  bind: { editor }
31137
31155
  });
31138
31156
  };
31139
31157
  const insertTable = (modal, editor) => {
31140
31158
  modal.openModal({
31141
- component: defineAsyncComponent(() => import("./TableInsertModal-CQP0Lv5V.js")),
31159
+ component: defineAsyncComponent(() => import("./TableInsertModal-DBrcQa3b.js")),
31142
31160
  bind: { editor }
31143
31161
  });
31144
31162
  };
@@ -31303,7 +31321,7 @@ const insertImage = (modal, editor) => {
31303
31321
  const component = (_a2 = blueseaConfig.componentConfig.richText) == null ? void 0 : _a2.imageInsertModal;
31304
31322
  if (component) {
31305
31323
  modal.openModal({
31306
- component: defineAsyncComponent(() => import("./ImageInsertModal-DdYqZWc5.js")),
31324
+ component: defineAsyncComponent(() => import("./ImageInsertModal-K1Tx7ys2.js")),
31307
31325
  bind: { editor },
31308
31326
  on: {
31309
31327
  insertImage: (image) => {
@@ -31321,7 +31339,7 @@ const insertImage = (modal, editor) => {
31321
31339
  };
31322
31340
  const showImageProperties = (modal, editor) => {
31323
31341
  modal.openModal({
31324
- component: defineAsyncComponent(() => import("./ImagePropertiesModal-CQnEtdug.js")),
31342
+ component: defineAsyncComponent(() => import("./ImagePropertiesModal-Duu4PBjb.js")),
31325
31343
  bind: { editor }
31326
31344
  });
31327
31345
  };
@@ -31682,13 +31700,13 @@ const youtubeContextMenu = (modal, editor) => {
31682
31700
  };
31683
31701
  const insertYoutube = (modal, editor) => {
31684
31702
  modal.openModal({
31685
- component: defineAsyncComponent(() => import("./YoutubeInsertModal-Br27gi-y.js")),
31703
+ component: defineAsyncComponent(() => import("./YoutubeInsertModal-Gpob0la3.js")),
31686
31704
  bind: { editor }
31687
31705
  });
31688
31706
  };
31689
31707
  const showYoutubeProperties = (modal, editor) => {
31690
31708
  modal.openModal({
31691
- component: defineAsyncComponent(() => import("./YoutubePropertiesModal-BXCSIlF9.js")),
31709
+ component: defineAsyncComponent(() => import("./YoutubePropertiesModal-C3I5eF0-.js")),
31692
31710
  bind: { editor }
31693
31711
  });
31694
31712
  };
@@ -31732,7 +31750,7 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
31732
31750
  const showLinkProperties = () => {
31733
31751
  if (!props.disabled) {
31734
31752
  modal.openModal({
31735
- component: defineAsyncComponent(() => import("./LinkPropertiesModal-DiqsnQW6.js")),
31753
+ component: defineAsyncComponent(() => import("./LinkPropertiesModal-Bx3WJhkN.js")),
31736
31754
  bind: {
31737
31755
  editor: props.editor
31738
31756
  }
@@ -32097,7 +32115,7 @@ const insertVideo = (modal, editor) => {
32097
32115
  const component = (_a2 = blueseaConfig.componentConfig.richText) == null ? void 0 : _a2.videoInsertModal;
32098
32116
  if (component) {
32099
32117
  modal.openModal({
32100
- component: defineAsyncComponent(() => import("./VideoInsertModal-kNMv3Gr0.js")),
32118
+ component: defineAsyncComponent(() => import("./VideoInsertModal-C-b0-PU0.js")),
32101
32119
  bind: { editor },
32102
32120
  on: {
32103
32121
  insertVideo: (video) => {
@@ -32115,7 +32133,7 @@ const insertVideo = (modal, editor) => {
32115
32133
  };
32116
32134
  const showVideoProperties = (modal, editor) => {
32117
32135
  modal.openModal({
32118
- component: defineAsyncComponent(() => import("./VideoPropertiesModal-DTnfD1tS.js")),
32136
+ component: defineAsyncComponent(() => import("./VideoPropertiesModal-zlEThjim.js")),
32119
32137
  bind: { editor }
32120
32138
  });
32121
32139
  };
@@ -34293,7 +34311,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
34293
34311
  emit("maximized");
34294
34312
  if (!props.internalMaximized) {
34295
34313
  modal.openModal({
34296
- component: defineAsyncComponent(() => import("./BSRichTextMaximizedModal-BP6jz2N7.js")),
34314
+ component: defineAsyncComponent(() => import("./BSRichTextMaximizedModal-DmPabr58.js")),
34297
34315
  bind: {
34298
34316
  modelValue: getEditorValue(),
34299
34317
  contentMaxWidth: props.contentMaxWidth,
@@ -34830,7 +34848,7 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
34830
34848
  const modal = useModal();
34831
34849
  const enterYoutubeUrl = () => {
34832
34850
  modal.openModal({
34833
- component: defineAsyncComponent(() => import("./BSYoutubeInputModal-CrtOzrD-.js")),
34851
+ component: defineAsyncComponent(() => import("./BSYoutubeInputModal-BxabTSWx.js")),
34834
34852
  on: {
34835
34853
  "update:modelValue": (url) => {
34836
34854
  emit("update:modelValue", {
@@ -36198,6 +36216,7 @@ class EditableInputGridHandlerImpl extends InputGridHandlerImpl {
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 @@ class GridHandlerEditableSupport {
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 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
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$x = {
37809
37863
  key: 0,
37810
37864
  class: "date-filters .bs-layout-vertical mr-16"
@@ -37863,9 +37917,10 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
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 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
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 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
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
  createVNode(_sfc_main$1j, {
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
  ])) : createCommentVNode("", true);
@@ -38016,12 +38072,23 @@ const _sfc_main$E = /* @__PURE__ */ defineComponent({
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
  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) {
@@ -38151,7 +38218,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
38151
38218
  const modal = useModal();
38152
38219
  const openSettingModal = () => {
38153
38220
  modal.openModal({
38154
- component: defineAsyncComponent(() => import("./BSGridColumnSettingModal-CD9mFu9P.js")),
38221
+ component: defineAsyncComponent(() => import("./BSGridColumnSettingModal-DhGr9UtK.js")),
38155
38222
  bind: {
38156
38223
  columns: props.columns,
38157
38224
  columnSettings: props.columnSettings,
@@ -69977,115 +70044,117 @@ export {
69977
70044
  _sfc_main as ay,
69978
70045
  vClickOutside as az,
69979
70046
  _sfc_main$1J as b,
69980
- useFieldContext as b$,
70047
+ SearchParam as b$,
69981
70048
  LocalStorageGridPreferenceStore as b0,
69982
70049
  mergeSameValueVertical as b1,
69983
70050
  gridExcelDownloadExtension as b2,
69984
70051
  downloadGridDataAsExcel as b3,
69985
- provideTabManager as b4,
69986
- useTabManager as b5,
69987
- useTabManagerSilently as b6,
69988
- TabStatusManagerImpl as b7,
69989
- provideTabStatusManager as b8,
69990
- useTabStatusManager as b9,
69991
- serializeAddress as bA,
69992
- IllegalAccessError as bB,
69993
- PaginatedList as bC,
69994
- AbstractFilter as bD,
69995
- AndFilter as bE,
69996
- OrFilter as bF,
69997
- NotFilter as bG,
69998
- InFilter as bH,
69999
- LikeFilter as bI,
70000
- EqualFilter as bJ,
70001
- BetweenFilter as bK,
70002
- BetweenDateFilter as bL,
70003
- IsNullFilter as bM,
70004
- IsNotNullFilter as bN,
70005
- andFilter as bO,
70006
- orFilter as bP,
70007
- notFilter as bQ,
70008
- inFilter as bR,
70009
- likeFilter as bS,
70010
- equalFilter as bT,
70011
- betweenFilter as bU,
70012
- betweenDateFilter as bV,
70013
- isNullFilter as bW,
70014
- isNotNullFilter as bX,
70015
- acceptFilter as bY,
70016
- SearchParam as bZ,
70017
- provideFieldContext as b_,
70018
- createTreeHandler as ba,
70019
- defaultExpandMultiLang as bb,
70020
- toggleDefaultExpandMultiLang as bc,
70021
- localeBasedExtraItemValidationRules as bd,
70022
- ValidationFailedError as be,
70023
- isValidationFailedError as bf,
70024
- storeFieldValidator as bg,
70025
- loadFieldValidator as bh,
70026
- findFieldValidatorElements as bi,
70027
- validateField as bj,
70028
- validateFields as bk,
70029
- fieldValidator as bl,
70030
- executeFieldValidationRule as bm,
70031
- executeRequiredValidation as bn,
70032
- executeRegExpValidation as bo,
70033
- executeBetweenLengthValidation as bp,
70034
- executeBetweenValueValidation as bq,
70035
- executeDateRangeValidation as br,
70036
- SavePointImpl as bs,
70037
- provideSavePoint as bt,
70038
- useSavePoint as bu,
70039
- cancelProvidedSavePoint as bv,
70040
- isMultiLangMessage as bw,
70041
- isNameEmpty as bx,
70042
- serializeName as by,
70043
- serializeTel as bz,
70052
+ convertDateRangePresetKey as b4,
70053
+ BetweenDateFilterWithPreset as b5,
70054
+ provideTabManager as b6,
70055
+ useTabManager as b7,
70056
+ useTabManagerSilently as b8,
70057
+ TabStatusManagerImpl as b9,
70058
+ serializeName as bA,
70059
+ serializeTel as bB,
70060
+ serializeAddress as bC,
70061
+ IllegalAccessError as bD,
70062
+ PaginatedList as bE,
70063
+ AbstractFilter as bF,
70064
+ AndFilter as bG,
70065
+ OrFilter as bH,
70066
+ NotFilter as bI,
70067
+ InFilter as bJ,
70068
+ LikeFilter as bK,
70069
+ EqualFilter as bL,
70070
+ BetweenFilter as bM,
70071
+ BetweenDateFilter as bN,
70072
+ IsNullFilter as bO,
70073
+ IsNotNullFilter as bP,
70074
+ andFilter as bQ,
70075
+ orFilter as bR,
70076
+ notFilter as bS,
70077
+ inFilter as bT,
70078
+ likeFilter as bU,
70079
+ equalFilter as bV,
70080
+ betweenFilter as bW,
70081
+ betweenDateFilter as bX,
70082
+ isNullFilter as bY,
70083
+ isNotNullFilter as bZ,
70084
+ acceptFilter as b_,
70085
+ provideTabStatusManager as ba,
70086
+ useTabStatusManager as bb,
70087
+ createTreeHandler as bc,
70088
+ defaultExpandMultiLang as bd,
70089
+ toggleDefaultExpandMultiLang as be,
70090
+ localeBasedExtraItemValidationRules as bf,
70091
+ ValidationFailedError as bg,
70092
+ isValidationFailedError as bh,
70093
+ storeFieldValidator as bi,
70094
+ loadFieldValidator as bj,
70095
+ findFieldValidatorElements as bk,
70096
+ validateField as bl,
70097
+ validateFields as bm,
70098
+ fieldValidator as bn,
70099
+ executeFieldValidationRule as bo,
70100
+ executeRequiredValidation as bp,
70101
+ executeRegExpValidation as bq,
70102
+ executeBetweenLengthValidation as br,
70103
+ executeBetweenValueValidation as bs,
70104
+ executeDateRangeValidation as bt,
70105
+ SavePointImpl as bu,
70106
+ provideSavePoint as bv,
70107
+ useSavePoint as bw,
70108
+ cancelProvidedSavePoint as bx,
70109
+ isMultiLangMessage as by,
70110
+ isNameEmpty as bz,
70044
70111
  _sfc_main$1B as c,
70045
- modalPluginKey as c0,
70046
- modalHandleKey as c1,
70047
- BSModal as c2,
70048
- useModal as c3,
70049
- provideModalHandle as c4,
70050
- createModalPlugin as c5,
70051
- notificationEntries as c6,
70052
- showNotification as c7,
70053
- alarmEntries as c8,
70054
- showAlarm as c9,
70055
- parsePathParam as cA,
70056
- isBlankMultiLangString as cB,
70057
- isMultiLangStringValidRequired as cC,
70058
- addPrefixToMultiLangString as cD,
70059
- isBlankMultiLangImageFile as cE,
70060
- isMultiLangImageFileValidRequired as cF,
70061
- localeNameProvider as cG,
70062
- debounce$2 as cH,
70063
- closeAlarm as ca,
70064
- tooltipEntry as cb,
70065
- showTooltip$1 as cc,
70066
- hideTooltip$1 as cd,
70067
- isTooltipDisplayed as ce,
70068
- showLoadingIcon as cf,
70069
- showLoading as cg,
70070
- hideLoading as ch,
70071
- withLoading as ci,
70072
- contextMenuPluginKey as cj,
70073
- BSContextMenuPlugin as ck,
70074
- useContextMenu as cl,
70075
- useContextMenuOptional as cm,
70076
- createContextMenuPlugin as cn,
70077
- LocalStorageFavoriteMenuHandler as co,
70078
- DefaultFrameContext as cp,
70079
- createDefaultFrameContext as cq,
70080
- provideDefaultFrameContext as cr,
70081
- useDefaultFrame as cs,
70082
- ShortcutKeyHandler as ct,
70083
- I18NTexts as cu,
70084
- i18n as cv,
70085
- formatUtil as cw,
70086
- waitUntil as cx,
70087
- waitDuring as cy,
70088
- tryUntil as cz,
70112
+ provideFieldContext as c0,
70113
+ useFieldContext as c1,
70114
+ modalPluginKey as c2,
70115
+ modalHandleKey as c3,
70116
+ BSModal as c4,
70117
+ useModal as c5,
70118
+ provideModalHandle as c6,
70119
+ createModalPlugin as c7,
70120
+ notificationEntries as c8,
70121
+ showNotification as c9,
70122
+ waitDuring as cA,
70123
+ tryUntil as cB,
70124
+ parsePathParam as cC,
70125
+ isBlankMultiLangString as cD,
70126
+ isMultiLangStringValidRequired as cE,
70127
+ addPrefixToMultiLangString as cF,
70128
+ isBlankMultiLangImageFile as cG,
70129
+ isMultiLangImageFileValidRequired as cH,
70130
+ localeNameProvider as cI,
70131
+ debounce$2 as cJ,
70132
+ alarmEntries as ca,
70133
+ showAlarm as cb,
70134
+ closeAlarm as cc,
70135
+ tooltipEntry as cd,
70136
+ showTooltip$1 as ce,
70137
+ hideTooltip$1 as cf,
70138
+ isTooltipDisplayed as cg,
70139
+ showLoadingIcon as ch,
70140
+ showLoading as ci,
70141
+ hideLoading as cj,
70142
+ withLoading as ck,
70143
+ contextMenuPluginKey as cl,
70144
+ BSContextMenuPlugin as cm,
70145
+ useContextMenu as cn,
70146
+ useContextMenuOptional as co,
70147
+ createContextMenuPlugin as cp,
70148
+ LocalStorageFavoriteMenuHandler as cq,
70149
+ DefaultFrameContext as cr,
70150
+ createDefaultFrameContext as cs,
70151
+ provideDefaultFrameContext as ct,
70152
+ useDefaultFrame as cu,
70153
+ ShortcutKeyHandler as cv,
70154
+ I18NTexts as cw,
70155
+ i18n as cx,
70156
+ formatUtil as cy,
70157
+ waitUntil as cz,
70089
70158
  _sfc_main$X as d,
70090
70159
  extractYoutubeVideoId as e,
70091
70160
  createInputGridHandler as f,