@g1cloud/bluesea 5.0.0-beta.9 → 6.0.0-alpha.0

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 (243) hide show
  1. package/README.md +11 -0
  2. package/bin/install-claude-skill.mjs +74 -0
  3. package/css/bluesea.css +12 -30478
  4. package/dist/index.d.ts +10 -130
  5. package/dist/index.js +13 -0
  6. package/package.json +41 -59
  7. package/skills/bluesea-ui/SKILL.md +345 -0
  8. package/skills/bluesea-ui/references/components.md +196 -0
  9. package/skills/bluesea-ui/references/grid.md +159 -0
  10. package/skills/bluesea-ui/references/i18n.md +149 -0
  11. package/skills/bluesea-ui/references/validation.md +178 -0
  12. package/css/frame-default.css +0 -703
  13. package/dist/BSAlertModal-DypUvVcH.js +0 -52
  14. package/dist/BSGridColumnSettingModal-DhGr9UtK.js +0 -149
  15. package/dist/BSRichTextMaximizedModal-DmPabr58.js +0 -62
  16. package/dist/BSYesNoModal-CBrzf4F5.js +0 -57
  17. package/dist/BSYoutubeInputModal-BxabTSWx.js +0 -76
  18. package/dist/ImageInsertModal-K1Tx7ys2.js +0 -106
  19. package/dist/ImageProperties.vue_vue_type_script_setup_true_lang-D8KH2XwP.js +0 -180
  20. package/dist/ImagePropertiesModal-Duu4PBjb.js +0 -98
  21. package/dist/LinkPropertiesModal-Bx3WJhkN.js +0 -119
  22. package/dist/TableInsertModal-DBrcQa3b.js +0 -74
  23. package/dist/TablePropertiesModal-ClsK1yM4.js +0 -353
  24. package/dist/VideoInsertModal-C-b0-PU0.js +0 -106
  25. package/dist/VideoProperties.vue_vue_type_script_setup_true_lang-zYZJtiR2.js +0 -194
  26. package/dist/VideoPropertiesModal-zlEThjim.js +0 -98
  27. package/dist/YoutubeInsertModal-Gpob0la3.js +0 -84
  28. package/dist/YoutubeProperties.vue_vue_type_script_setup_true_lang-CDvDzheM.js +0 -181
  29. package/dist/YoutubePropertiesModal-C3I5eF0-.js +0 -102
  30. package/dist/bluesea.css +0 -11278
  31. package/dist/bluesea.js +0 -223
  32. package/dist/bluesea.umd.cjs +0 -72228
  33. package/dist/component/basic/BSButton.vue.d.ts +0 -50
  34. package/dist/component/basic/BSCalendar.vue.d.ts +0 -68
  35. package/dist/component/basic/BSCalendarRange.vue.d.ts +0 -57
  36. package/dist/component/basic/BSConsole.vue.d.ts +0 -36
  37. package/dist/component/basic/BSDate.vue.d.ts +0 -19
  38. package/dist/component/basic/BSFormLabel.vue.d.ts +0 -19
  39. package/dist/component/basic/BSImage.vue.d.ts +0 -44
  40. package/dist/component/basic/BSLink.vue.d.ts +0 -21
  41. package/dist/component/basic/BSLoadingIcon.vue.d.ts +0 -2
  42. package/dist/component/basic/BSPageNavigation.vue.d.ts +0 -52
  43. package/dist/component/basic/BSPopup.vue.d.ts +0 -70
  44. package/dist/component/basic/BSPopupButton.vue.d.ts +0 -41
  45. package/dist/component/basic/BSProgressBar.vue.d.ts +0 -33
  46. package/dist/component/basic/BSTooltip.vue.d.ts +0 -35
  47. package/dist/component/global/AddressSearchButton.vue.d.ts +0 -36
  48. package/dist/component/global/AddressSearchList.gen.d.ts +0 -4
  49. package/dist/component/global/BSAddressInput.vue.d.ts +0 -72
  50. package/dist/component/global/BSLocaleSelect.vue.d.ts +0 -35
  51. package/dist/component/global/BSNameInput.vue.d.ts +0 -80
  52. package/dist/component/global/BSTelInput.vue.d.ts +0 -88
  53. package/dist/component/grid/BSDateRangeFilter.vue.d.ts +0 -63
  54. package/dist/component/grid/BSDateRangeFilters.vue.d.ts +0 -56
  55. package/dist/component/grid/BSGrid.vue.d.ts +0 -177
  56. package/dist/component/grid/BSGridCell.vue.d.ts +0 -85
  57. package/dist/component/grid/BSGridCellCheckbox.vue.d.ts +0 -21
  58. package/dist/component/grid/BSGridCellDragHandle.vue.d.ts +0 -15
  59. package/dist/component/grid/BSGridCellEdit.vue.d.ts +0 -21
  60. package/dist/component/grid/BSGridCellSerialNo.vue.d.ts +0 -15
  61. package/dist/component/grid/BSGridColumnSettingModal.vue.d.ts +0 -25
  62. package/dist/component/grid/BSGridControl.vue.d.ts +0 -78
  63. package/dist/component/grid/BSGridHeaderCell.vue.d.ts +0 -45
  64. package/dist/component/grid/BSGridHeaderCellCheckbox.vue.d.ts +0 -19
  65. package/dist/component/grid/BSGridHeaderCellResizeHandle.vue.d.ts +0 -21
  66. package/dist/component/grid/BSGridHeaderCellSerialNo.vue.d.ts +0 -2
  67. package/dist/component/grid/BSGridLookup.vue.d.ts +0 -67
  68. package/dist/component/grid/BSGridRow.vue.d.ts +0 -140
  69. package/dist/component/grid/BSTextFilter.vue.d.ts +0 -42
  70. package/dist/component/grid/DateFilterModel.d.ts +0 -19
  71. package/dist/component/grid/GridExtension.d.ts +0 -17
  72. package/dist/component/grid/GridLib.d.ts +0 -21
  73. package/dist/component/grid/GridModel.d.ts +0 -399
  74. package/dist/component/grid/extension/gridExcelDownloadExtension.d.ts +0 -22
  75. package/dist/component/grid/vDndSupport.d.ts +0 -18
  76. package/dist/component/input/BSCheckbox.vue.d.ts +0 -63
  77. package/dist/component/input/BSCheckboxGroup.vue.d.ts +0 -79
  78. package/dist/component/input/BSCodeEditor.vue.d.ts +0 -73
  79. package/dist/component/input/BSColorInput.vue.d.ts +0 -68
  80. package/dist/component/input/BSDateInput.vue.d.ts +0 -90
  81. package/dist/component/input/BSDateInputPopup.vue.d.ts +0 -41
  82. package/dist/component/input/BSDateRange.vue.d.ts +0 -113
  83. package/dist/component/input/BSDateRangeInputPopup.vue.d.ts +0 -45
  84. package/dist/component/input/BSDateRangePresets.vue.d.ts +0 -40
  85. package/dist/component/input/BSHtmlEditor.vue.d.ts +0 -64
  86. package/dist/component/input/BSImageUpload.vue.d.ts +0 -118
  87. package/dist/component/input/BSMediaPreview.vue.d.ts +0 -55
  88. package/dist/component/input/BSMultiImageUpload.vue.d.ts +0 -108
  89. package/dist/component/input/BSMultiSelect.vue.d.ts +0 -91
  90. package/dist/component/input/BSNumberInput.vue.d.ts +0 -91
  91. package/dist/component/input/BSPopupSelect.vue.d.ts +0 -54
  92. package/dist/component/input/BSPositionedImageUpload.vue.d.ts +0 -97
  93. package/dist/component/input/BSPriceInput.vue.d.ts +0 -91
  94. package/dist/component/input/BSRadioButton.vue.d.ts +0 -72
  95. package/dist/component/input/BSRadioButtonGroup.vue.d.ts +0 -86
  96. package/dist/component/input/BSSelect.vue.d.ts +0 -95
  97. package/dist/component/input/BSSelectPopup.vue.d.ts +0 -87
  98. package/dist/component/input/BSTextArea.vue.d.ts +0 -88
  99. package/dist/component/input/BSTextInput.vue.d.ts +0 -100
  100. package/dist/component/input/BSTreeMultiSelect.vue.d.ts +0 -89
  101. package/dist/component/input/BSTreeSelect.vue.d.ts +0 -90
  102. package/dist/component/input/BSYesNoGroup.vue.d.ts +0 -55
  103. package/dist/component/input/BSYesNoSelect.vue.d.ts +0 -51
  104. package/dist/component/input/BSYoutubeInputModal.vue.d.ts +0 -6
  105. package/dist/component/input/DateInputLib.d.ts +0 -27
  106. package/dist/component/input/DateRangePresetModel.d.ts +0 -16
  107. package/dist/component/input/HtmlEditorModel.d.ts +0 -5
  108. package/dist/component/input/ImageUploadLib.d.ts +0 -22
  109. package/dist/component/input/ImageUploadModel.d.ts +0 -12
  110. package/dist/component/input/ValidationErrors.vue.d.ts +0 -19
  111. package/dist/component/input/vDragAndDropSupport.d.ts +0 -10
  112. package/dist/component/layout/BSCardLayout.vue.d.ts +0 -41
  113. package/dist/component/layout/BSHorizontalLayoutResizer.vue.d.ts +0 -6
  114. package/dist/component/layout/BSListControl.vue.d.ts +0 -52
  115. package/dist/component/layout/BSListLayout.vue.d.ts +0 -85
  116. package/dist/component/layout/BSListLayoutItem.vue.d.ts +0 -82
  117. package/dist/component/layout/BSTabSheet.vue.d.ts +0 -63
  118. package/dist/component/layout/BSVerticalLayoutResizer.vue.d.ts +0 -6
  119. package/dist/component/layout/SlideDownTransition.vue.d.ts +0 -9
  120. package/dist/component/layout/TabSheetModel.d.ts +0 -49
  121. package/dist/component/multilang/BSMultiLangExpandButton.vue.d.ts +0 -2
  122. package/dist/component/multilang/BSMultiLangHtmlEditor.vue.d.ts +0 -84
  123. package/dist/component/multilang/BSMultiLangImageUpload.vue.d.ts +0 -81
  124. package/dist/component/multilang/BSMultiLangRichText.vue.d.ts +0 -93
  125. package/dist/component/multilang/BSMultiLangTextArea.vue.d.ts +0 -96
  126. package/dist/component/multilang/BSMultiLangTextInput.vue.d.ts +0 -96
  127. package/dist/component/multilang/multiLangLib.d.ts +0 -6
  128. package/dist/component/richtext/BSRichText.vue.d.ts +0 -90
  129. package/dist/component/richtext/BSRichTextMaximizedModal.vue.d.ts +0 -74
  130. package/dist/component/richtext/RichTextLib.d.ts +0 -15
  131. package/dist/component/richtext/RichTextModel.d.ts +0 -9
  132. package/dist/component/richtext/RichTextToolbar.vue.d.ts +0 -36
  133. package/dist/component/richtext/image/ImageInsertModal.vue.d.ts +0 -22
  134. package/dist/component/richtext/image/ImageProperties.vue.d.ts +0 -19
  135. package/dist/component/richtext/image/ImagePropertiesModal.vue.d.ts +0 -17
  136. package/dist/component/richtext/image/RichTextImage.d.ts +0 -7
  137. package/dist/component/richtext/image/RichTextImageLib.d.ts +0 -13
  138. package/dist/component/richtext/image/ToolButtonImage.vue.d.ts +0 -19
  139. package/dist/component/richtext/link/LinkPropertiesModal.vue.d.ts +0 -17
  140. package/dist/component/richtext/link/ToolButtonLink.vue.d.ts +0 -19
  141. package/dist/component/richtext/richTextUtil.d.ts +0 -18
  142. package/dist/component/richtext/table/RichTextTable.d.ts +0 -8
  143. package/dist/component/richtext/table/RichTextTableCell.d.ts +0 -1
  144. package/dist/component/richtext/table/RichTextTableLib.d.ts +0 -23
  145. package/dist/component/richtext/table/RichTextTableView.d.ts +0 -19
  146. package/dist/component/richtext/table/TableInsertModal.vue.d.ts +0 -17
  147. package/dist/component/richtext/table/TablePropertiesModal.vue.d.ts +0 -17
  148. package/dist/component/richtext/table/ToolButtonTable.vue.d.ts +0 -19
  149. package/dist/component/richtext/tool/ToolButtonFontColor.vue.d.ts +0 -19
  150. package/dist/component/richtext/tool/ToolButtonFontSize.vue.d.ts +0 -19
  151. package/dist/component/richtext/tool/ToolButtonFontStyle.vue.d.ts +0 -19
  152. package/dist/component/richtext/tool/ToolButtonHeading.vue.d.ts +0 -19
  153. package/dist/component/richtext/tool/ToolButtonListItem.vue.d.ts +0 -19
  154. package/dist/component/richtext/tool/ToolButtonMaximize.vue.d.ts +0 -19
  155. package/dist/component/richtext/tool/ToolButtonTextAlign.vue.d.ts +0 -19
  156. package/dist/component/richtext/video/RichTextVideo.d.ts +0 -29
  157. package/dist/component/richtext/video/RichTextVideoLib.d.ts +0 -16
  158. package/dist/component/richtext/video/ToolButtonVideo.vue.d.ts +0 -19
  159. package/dist/component/richtext/video/VideoInsertModal.vue.d.ts +0 -22
  160. package/dist/component/richtext/video/VideoProperties.vue.d.ts +0 -19
  161. package/dist/component/richtext/video/VideoPropertiesModal.vue.d.ts +0 -17
  162. package/dist/component/richtext/youtube/RichTextYoutube.d.ts +0 -8
  163. package/dist/component/richtext/youtube/RichTextYoutubeLib.d.ts +0 -14
  164. package/dist/component/richtext/youtube/ToolButtonYoutube.vue.d.ts +0 -19
  165. package/dist/component/richtext/youtube/YoutubeInsertModal.vue.d.ts +0 -17
  166. package/dist/component/richtext/youtube/YoutubeProperties.vue.d.ts +0 -19
  167. package/dist/component/richtext/youtube/YoutubePropertiesModal.vue.d.ts +0 -17
  168. package/dist/component/tree/BSTree.vue.d.ts +0 -107
  169. package/dist/component/tree/BSTreeControl.vue.d.ts +0 -90
  170. package/dist/component/tree/BSTreeRow.vue.d.ts +0 -92
  171. package/dist/component/tree/TreeLib.d.ts +0 -11
  172. package/dist/component/tree/TreeModel.d.ts +0 -188
  173. package/dist/component/tree/vTreeDndSupport.d.ts +0 -10
  174. package/dist/config/config.d.ts +0 -155
  175. package/dist/contextmenu/BSContextMenu.vue.d.ts +0 -43
  176. package/dist/contextmenu/BSContextMenuContainer.vue.d.ts +0 -2
  177. package/dist/contextmenu/contextMenuPlugin.d.ts +0 -43
  178. package/dist/directive/vClickOutside.d.ts +0 -21
  179. package/dist/directive/vFocusJump.d.ts +0 -19
  180. package/dist/directive/vFocusLoop.d.ts +0 -25
  181. package/dist/directive/vFocusOnLoad.d.ts +0 -4
  182. package/dist/directive/vT.d.ts +0 -11
  183. package/dist/directive/vTooltip.d.ts +0 -9
  184. package/dist/frame/FrameModel.d.ts +0 -82
  185. package/dist/frame/ShortcutKeyHandler.d.ts +0 -37
  186. package/dist/frame/default/DefaultBody.vue.d.ts +0 -2
  187. package/dist/frame/default/DefaultFrameModel.d.ts +0 -107
  188. package/dist/frame/default/DefaultHeader.vue.d.ts +0 -23
  189. package/dist/frame/default/HeaderTab.vue.d.ts +0 -17
  190. package/dist/frame/default/HeaderTabListButton.vue.d.ts +0 -2
  191. package/dist/frame/default/HeaderTabs.vue.d.ts +0 -15
  192. package/dist/frame/default/SidebarMenu.vue.d.ts +0 -2
  193. package/dist/frame/default/SidebarMenuItem.vue.d.ts +0 -25
  194. package/dist/frame/default/SidebarMenuLink.vue.d.ts +0 -29
  195. package/dist/frame/default/SidebarMenuSearch.vue.d.ts +0 -28
  196. package/dist/index-DxMqs72-.js +0 -70181
  197. package/dist/modal/BSAlertModal.vue.d.ts +0 -23
  198. package/dist/modal/BSModalContainer.vue.d.ts +0 -2
  199. package/dist/modal/BSModalFrame.vue.d.ts +0 -37
  200. package/dist/modal/BSModalWrapper.vue.d.ts +0 -17
  201. package/dist/modal/BSYesNoModal.vue.d.ts +0 -25
  202. package/dist/modal/modalPlugin.d.ts +0 -73
  203. package/dist/model/CommonTypes.d.ts +0 -96
  204. package/dist/model/DefaultImpl.d.ts +0 -8
  205. package/dist/model/FieldContext.d.ts +0 -15
  206. package/dist/model/FilterModel.d.ts +0 -114
  207. package/dist/model/MoneySerializer.d.ts +0 -3
  208. package/dist/model/PaginatedList.d.ts +0 -29
  209. package/dist/model/SearchModel.d.ts +0 -22
  210. package/dist/notification/BSAlarmFrame.vue.d.ts +0 -26
  211. package/dist/notification/BSNotificationContainer.vue.d.ts +0 -2
  212. package/dist/notification/notificationPlugin.d.ts +0 -33
  213. package/dist/savepoint/SavePoint.d.ts +0 -47
  214. package/dist/text/i18n.d.ts +0 -28
  215. package/dist/util/alertUtil.d.ts +0 -1
  216. package/dist/util/componentUtil.d.ts +0 -40
  217. package/dist/util/debounceUtil.d.ts +0 -16
  218. package/dist/util/elementUtil.d.ts +0 -58
  219. package/dist/util/formatUtil.d.ts +0 -70
  220. package/dist/util/langUtil.d.ts +0 -3
  221. package/dist/util/multiLangUtil.d.ts +0 -27
  222. package/dist/util/routeUtil.d.ts +0 -3
  223. package/dist/util/typeUtil.d.ts +0 -18
  224. package/dist/util/waitUtil.d.ts +0 -19
  225. package/dist/validator/FieldValidator.d.ts +0 -45
  226. package/dist/validator/FormValidator.d.ts +0 -35
  227. package/scss/bluesea-base.scss +0 -6
  228. package/scss/bluesea.scss +0 -2
  229. package/scss/component.scss +0 -515
  230. package/scss/font.scss +0 -3
  231. package/scss/frame/default.scss +0 -293
  232. package/scss/layout.scss +0 -192
  233. package/scss/reset.scss +0 -68
  234. package/scss/rich-text-container.scss +0 -113
  235. package/scss/rich-text-content.scss +0 -137
  236. package/scss/transition.scss +0 -108
  237. package/scss/utility.scss +0 -816
  238. package/scss/variable.scss +0 -347
  239. package/text/bluesea_text_en.json +0 -956
  240. package/text/bluesea_text_fr.json +0 -956
  241. package/text/bluesea_text_ja.json +0 -956
  242. package/text/bluesea_text_ko.json +0 -956
  243. package/text/bluesea_text_zh.json +0 -956
@@ -1,98 +0,0 @@
1
- import { defineComponent, computed, ref, onMounted, useTemplateRef, createBlock, openBlock, withCtx, createElementVNode, createVNode, createElementBlock, createCommentVNode } from "vue";
2
- import { o as findImageNode, u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, m as formValidator, p as imageInfoNumberToPixel } from "./index-DxMqs72-.js";
3
- import { _ as _sfc_main$4 } from "./ImageProperties.vue_vue_type_script_setup_true_lang-D8KH2XwP.js";
4
- const _hoisted_1 = { class: "title" };
5
- const _hoisted_2 = { class: "bs-layout-horizontal justify-content-end gap-8" };
6
- const _sfc_main = /* @__PURE__ */ defineComponent({
7
- __name: "ImagePropertiesModal",
8
- props: {
9
- editor: {}
10
- },
11
- setup(__props) {
12
- const props = __props;
13
- const disabled = computed(() => !props.editor.isEditable);
14
- const data = ref();
15
- onMounted(() => {
16
- const selection = props.editor.state.selection;
17
- const { node } = findImageNode(selection);
18
- if (node) {
19
- data.value = {
20
- ...node.attrs,
21
- src: node.attrs.src
22
- };
23
- }
24
- });
25
- const modalHandle = useModalHandle();
26
- const form = useTemplateRef("form");
27
- const validator = formValidator({ element: form });
28
- const save = async () => {
29
- await validator.validate();
30
- props.editor.chain().focus().command(({ tr }) => {
31
- const { node, nodePos } = findImageNode(tr.selection);
32
- if (node && nodePos && data.value) {
33
- tr.setNodeMarkup(nodePos - 1, null, {
34
- ...node.attrs,
35
- ...imageInfoNumberToPixel(data.value)
36
- });
37
- }
38
- return true;
39
- }).run();
40
- modalHandle.close();
41
- };
42
- const close = () => modalHandle.close();
43
- modalHandle.setDefaultStyle({
44
- width: "540px"
45
- });
46
- return (_ctx, _cache) => {
47
- return openBlock(), createBlock(_sfc_main$1, { title: { key: "bs.richtext.imageProperties" } }, {
48
- default: withCtx(() => [
49
- data.value ? (openBlock(), createElementBlock("div", {
50
- key: 0,
51
- ref_key: "form",
52
- ref: form,
53
- class: "bs-layout-form title-w-8"
54
- }, [
55
- createElementVNode("div", null, [
56
- createElementVNode("div", _hoisted_1, [
57
- createVNode(_sfc_main$2, { label: { key: "bs.url" } })
58
- ]),
59
- createElementVNode("div", null, [
60
- createVNode(_sfc_main$3, {
61
- modelValue: data.value.src,
62
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => data.value.src = $event),
63
- disabled: "",
64
- name: "src",
65
- required: "",
66
- width: "100%"
67
- }, null, 8, ["modelValue"])
68
- ])
69
- ]),
70
- createVNode(_sfc_main$4, {
71
- disabled: disabled.value,
72
- "image-info": data.value
73
- }, null, 8, ["disabled", "image-info"])
74
- ], 512)) : createCommentVNode("", true)
75
- ]),
76
- buttons: withCtx(() => [
77
- createElementVNode("div", _hoisted_2, [
78
- createVNode(BSButton, {
79
- caption: { key: "bs.ok" },
80
- "button-color": "blue",
81
- "data-id": "okBtn",
82
- onClick: save
83
- }),
84
- createVNode(BSButton, {
85
- caption: { key: "bs.cancel" },
86
- "data-id": "cancelBtn",
87
- onClick: close
88
- })
89
- ])
90
- ]),
91
- _: 1
92
- });
93
- };
94
- }
95
- });
96
- export {
97
- _sfc_main as default
98
- };
@@ -1,119 +0,0 @@
1
- import { defineComponent, ref, onMounted, createBlock, openBlock, withCtx, createElementVNode, createVNode, createTextVNode, withModifiers } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3 } from "./index-DxMqs72-.js";
3
- const _hoisted_1 = { class: "bs-layout-form title-w-8" };
4
- const _hoisted_2 = { class: "title" };
5
- const _hoisted_3 = { class: "title" };
6
- const _hoisted_4 = { class: "ml-8" };
7
- const _hoisted_5 = { class: "bs-layout-horizontal justify-content-end gap-4" };
8
- const _sfc_main = /* @__PURE__ */ defineComponent({
9
- __name: "LinkPropertiesModal",
10
- props: {
11
- editor: {}
12
- },
13
- setup(__props) {
14
- const props = __props;
15
- const link = ref({});
16
- const hasLink = ref(false);
17
- onMounted(() => {
18
- const oldUrl = props.editor.getAttributes("link").href;
19
- link.value.url = oldUrl;
20
- hasLink.value = !!oldUrl;
21
- });
22
- const modalHandle = useModalHandle();
23
- const PROTOCOLS = ["http://", "https://", "tel:", "mailto:"];
24
- const save = () => {
25
- if (link.value.url) {
26
- let url = link.value.url;
27
- if (!PROTOCOLS.find((proto) => url.startsWith(proto))) {
28
- url = "https://" + url;
29
- }
30
- props.editor.chain().focus().extendMarkRange("link").setLink({ href: url, target: link.value.target || "_self" }).run();
31
- modalHandle.close();
32
- }
33
- };
34
- const removeLink = () => {
35
- props.editor.chain().focus().extendMarkRange("link").unsetLink().run();
36
- modalHandle.close();
37
- };
38
- const setBlank = () => {
39
- link.value.target = "_blank";
40
- };
41
- const close = () => {
42
- modalHandle.close();
43
- };
44
- modalHandle.setDefaultStyle({
45
- width: "500px"
46
- });
47
- return (_ctx, _cache) => {
48
- return openBlock(), createBlock(_sfc_main$1, { title: { key: "bs.link" } }, {
49
- default: withCtx(() => [
50
- createElementVNode("div", _hoisted_1, [
51
- createElementVNode("div", null, [
52
- createElementVNode("div", _hoisted_2, [
53
- createVNode(_sfc_main$2, {
54
- label: { key: "bs.linkUrl" },
55
- required: ""
56
- })
57
- ]),
58
- createElementVNode("div", null, [
59
- createVNode(_sfc_main$3, {
60
- modelValue: link.value.url,
61
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => link.value.url = $event),
62
- name: "url",
63
- required: "",
64
- width: "100%"
65
- }, null, 8, ["modelValue"])
66
- ])
67
- ]),
68
- createElementVNode("div", null, [
69
- createElementVNode("div", _hoisted_3, [
70
- createVNode(_sfc_main$2, { label: { key: "bs.linkTarget" } })
71
- ]),
72
- createElementVNode("div", null, [
73
- createVNode(_sfc_main$3, {
74
- modelValue: link.value.target,
75
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => link.value.target = $event),
76
- name: "target",
77
- width: "100px"
78
- }, null, 8, ["modelValue"]),
79
- createElementVNode("span", _hoisted_4, [
80
- _cache[2] || (_cache[2] = createTextVNode(" (ex: ")),
81
- createElementVNode("a", {
82
- class: "text-decoration-none",
83
- href: "#",
84
- onClick: withModifiers(setBlank, ["prevent"])
85
- }, "_blank"),
86
- _cache[3] || (_cache[3] = createTextVNode(") "))
87
- ])
88
- ])
89
- ])
90
- ])
91
- ]),
92
- buttons: withCtx(() => [
93
- createElementVNode("div", _hoisted_5, [
94
- createVNode(BSButton, {
95
- caption: { key: "bs.richtext.removeLink" },
96
- "data-id": "removeLinkBtn",
97
- onClick: removeLink
98
- }),
99
- createVNode(BSButton, {
100
- caption: { key: "bs.ok" },
101
- "button-color": "blue",
102
- "data-id": "okBtn",
103
- onClick: save
104
- }),
105
- createVNode(BSButton, {
106
- caption: { key: "bs.cancel" },
107
- "data-id": "cancelBtn",
108
- onClick: close
109
- })
110
- ])
111
- ]),
112
- _: 1
113
- });
114
- };
115
- }
116
- });
117
- export {
118
- _sfc_main as default
119
- };
@@ -1,74 +0,0 @@
1
- import { defineComponent, ref, createBlock, openBlock, withCtx, createElementVNode, createVNode } from "vue";
2
- import { u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, h as _sfc_main$3 } from "./index-DxMqs72-.js";
3
- const _hoisted_1 = { class: "bs-layout-form" };
4
- const _hoisted_2 = { class: "bs-form-label" };
5
- const _hoisted_3 = { class: "bs-form-label" };
6
- const _hoisted_4 = { class: "bs-layout-horizontal justify-content-end gap-8" };
7
- const _sfc_main = /* @__PURE__ */ defineComponent({
8
- __name: "TableInsertModal",
9
- props: {
10
- editor: {}
11
- },
12
- setup(__props) {
13
- const props = __props;
14
- const rows = ref(3);
15
- const columns = ref(3);
16
- const modalHandle = useModalHandle();
17
- const insert = () => {
18
- props.editor.chain().focus().insertTable({ rows: rows.value, cols: columns.value, withHeaderRow: false }).run();
19
- modalHandle.close();
20
- };
21
- const close = () => modalHandle.close();
22
- return (_ctx, _cache) => {
23
- return openBlock(), createBlock(_sfc_main$1, { title: { key: "bs.richtext.insertTable" } }, {
24
- default: withCtx(() => [
25
- createElementVNode("div", _hoisted_1, [
26
- createElementVNode("div", null, [
27
- createElementVNode("div", _hoisted_2, [
28
- createVNode(_sfc_main$2, { label: { key: "bs.richtext.rows" } })
29
- ]),
30
- createElementVNode("div", null, [
31
- createVNode(_sfc_main$3, {
32
- modelValue: rows.value,
33
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => rows.value = $event),
34
- width: "100px"
35
- }, null, 8, ["modelValue"])
36
- ])
37
- ]),
38
- createElementVNode("div", null, [
39
- createElementVNode("div", _hoisted_3, [
40
- createVNode(_sfc_main$2, { label: { key: "bs.richtext.columns" } })
41
- ]),
42
- createElementVNode("div", null, [
43
- createVNode(_sfc_main$3, {
44
- modelValue: columns.value,
45
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => columns.value = $event),
46
- width: "100px"
47
- }, null, 8, ["modelValue"])
48
- ])
49
- ])
50
- ])
51
- ]),
52
- buttons: withCtx(() => [
53
- createElementVNode("div", _hoisted_4, [
54
- createVNode(BSButton, {
55
- caption: { key: "bs.ok" },
56
- "button-color": "blue",
57
- "data-id": "okBtn",
58
- onClick: insert
59
- }),
60
- createVNode(BSButton, {
61
- caption: { key: "bs.cancel" },
62
- "data-id": "cancelBtn",
63
- onClick: close
64
- })
65
- ])
66
- ]),
67
- _: 1
68
- });
69
- };
70
- }
71
- });
72
- export {
73
- _sfc_main as default
74
- };
@@ -1,353 +0,0 @@
1
- import { defineComponent, computed, ref, onMounted, useTemplateRef, createBlock, openBlock, withCtx, createElementVNode, createVNode, createElementBlock, createCommentVNode, withDirectives, createTextVNode, unref, Fragment, renderList, toDisplayString } from "vue";
2
- import { k as componentUtil, u as useModalHandle, _ as _sfc_main$1, B as BSButton, b as _sfc_main$2, c as _sfc_main$3, v as vT, l as _sfc_main$4, m as formValidator } from "./index-DxMqs72-.js";
3
- const findTableNode = (selection, type) => {
4
- const head = selection.$head;
5
- let depth = head.depth;
6
- let node = head.node(depth);
7
- while (depth > 0 && node && node.type.name !== type) {
8
- node = head.node(--depth);
9
- }
10
- if (node && node.type.name === type) {
11
- const nodePos = head.start(depth);
12
- return { node, nodePos };
13
- } else {
14
- return {};
15
- }
16
- };
17
- const tableInfoNumberToPixel = (data) => {
18
- return {
19
- ...data,
20
- width: componentUtil.numberToPixel(data.width),
21
- height: componentUtil.numberToPixel(data.height),
22
- maxWidth: componentUtil.numberToPixel(data.maxWidth),
23
- maxHeight: componentUtil.numberToPixel(data.maxHeight),
24
- marginLeft: componentUtil.numberToPixel(data.marginLeft),
25
- marginTop: componentUtil.numberToPixel(data.marginTop),
26
- marginRight: componentUtil.numberToPixel(data.marginRight),
27
- marginBottom: componentUtil.numberToPixel(data.marginBottom)
28
- };
29
- };
30
- const setTableColumnWidth = (node, tablePos, colIndex, width, tr) => {
31
- node.forEach((row, rowOffset) => {
32
- let col = 0;
33
- row.forEach((cell, cellOffset) => {
34
- const colspan = cell.attrs.colspan || 1;
35
- if (col <= colIndex && col + colspan > colIndex) {
36
- tr.setNodeMarkup(
37
- tablePos + 1 + rowOffset + cellOffset,
38
- void 0,
39
- {
40
- ...cell.attrs,
41
- width
42
- }
43
- );
44
- }
45
- col += colspan;
46
- });
47
- });
48
- };
49
- const _hoisted_1 = { class: "title" };
50
- const _hoisted_2 = { class: "title" };
51
- const _hoisted_3 = { class: "title" };
52
- const _hoisted_4 = { class: "bs-layout-horizontal gap-2" };
53
- const _hoisted_5 = { class: "title" };
54
- const _hoisted_6 = { class: "title" };
55
- const _hoisted_7 = { class: "py-2 pr-8" };
56
- const _hoisted_8 = { class: "pt-4" };
57
- const _hoisted_9 = { class: "bs-layout-horizontal justify-content-end gap-8" };
58
- const _sfc_main = /* @__PURE__ */ defineComponent({
59
- __name: "TablePropertiesModal",
60
- props: {
61
- editor: {}
62
- },
63
- setup(__props) {
64
- const props = __props;
65
- const disabled = computed(() => !props.editor.isEditable);
66
- const data = ref();
67
- const columns = ref([]);
68
- onMounted(() => {
69
- const selection = props.editor.state.selection;
70
- const { node } = findTableNode(selection, "table");
71
- if (node) {
72
- data.value = {
73
- ...node.attrs
74
- };
75
- if (node.firstChild && (node.firstChild.children.length || 0) > 0) {
76
- columns.value = node.firstChild.children.map((col) => ({
77
- width: col.attrs.width || void 0
78
- }));
79
- }
80
- }
81
- });
82
- const resetAllColumns = () => {
83
- var _a;
84
- (_a = columns.value) == null ? void 0 : _a.forEach((col) => {
85
- col.width = void 0;
86
- });
87
- };
88
- const alignItems = [
89
- { value: "", caption: "", icon: "format_align_justify" },
90
- { value: "start", caption: "", icon: "format_align_left", tooltip: { key: "bs.richtext.alignLeft" } },
91
- { value: "center", caption: "", icon: "format_align_center", tooltip: { key: "bs.richtext.alignCenter" } },
92
- { value: "end", caption: "", icon: "format_align_right", tooltip: { key: "bs.richtext.alignRight" } }
93
- ];
94
- const modalHandle = useModalHandle();
95
- const form = useTemplateRef("form");
96
- const validator = formValidator({ element: form });
97
- const save = async () => {
98
- await validator.validate();
99
- props.editor.chain().focus().command(({ tr }) => {
100
- var _a;
101
- const { node, nodePos } = findTableNode(tr.selection, "table");
102
- if (node && nodePos && data.value) {
103
- tr.setNodeMarkup(nodePos - 1, null, {
104
- ...node.attrs,
105
- ...tableInfoNumberToPixel(data.value)
106
- });
107
- (_a = columns.value) == null ? void 0 : _a.forEach((column, index) => {
108
- setTableColumnWidth(node, nodePos, index, column.width, tr);
109
- });
110
- }
111
- return true;
112
- }).run();
113
- modalHandle.close();
114
- };
115
- const close = () => {
116
- modalHandle.close();
117
- };
118
- modalHandle.setDefaultStyle({
119
- width: "500px",
120
- maxHeight: "80%"
121
- });
122
- return (_ctx, _cache) => {
123
- return openBlock(), createBlock(_sfc_main$1, { title: { key: "bs.richtext.table" } }, {
124
- default: withCtx(() => [
125
- data.value ? (openBlock(), createElementBlock("div", {
126
- key: 0,
127
- ref_key: "form",
128
- ref: form,
129
- class: "bs-layout-form title-w-8"
130
- }, [
131
- createElementVNode("div", null, [
132
- createElementVNode("div", _hoisted_1, [
133
- createVNode(_sfc_main$2, { label: { key: "bs.size" } })
134
- ]),
135
- createElementVNode("div", null, [
136
- withDirectives(createVNode(_sfc_main$3, {
137
- modelValue: data.value.width,
138
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => data.value.width = $event),
139
- disabled: disabled.value,
140
- name: "width",
141
- prefix: "W",
142
- width: "120px"
143
- }, null, 8, ["modelValue", "disabled"]), [
144
- [
145
- unref(vT),
146
- { key: "bs.width" },
147
- void 0,
148
- { title: true }
149
- ]
150
- ]),
151
- _cache[9] || (_cache[9] = createTextVNode(" x ")),
152
- withDirectives(createVNode(_sfc_main$3, {
153
- modelValue: data.value.height,
154
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => data.value.height = $event),
155
- disabled: disabled.value,
156
- name: "height",
157
- prefix: "H",
158
- width: "120px"
159
- }, null, 8, ["modelValue", "disabled"]), [
160
- [
161
- unref(vT),
162
- { key: "bs.height" },
163
- void 0,
164
- { title: true }
165
- ]
166
- ])
167
- ])
168
- ]),
169
- createElementVNode("div", null, [
170
- createElementVNode("div", _hoisted_2, [
171
- createVNode(_sfc_main$2, { label: { key: "bs.maxSize" } })
172
- ]),
173
- createElementVNode("div", null, [
174
- withDirectives(createVNode(_sfc_main$3, {
175
- modelValue: data.value.maxWidth,
176
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => data.value.maxWidth = $event),
177
- disabled: disabled.value,
178
- name: "maxWidth",
179
- prefix: "W",
180
- width: "120px"
181
- }, null, 8, ["modelValue", "disabled"]), [
182
- [
183
- unref(vT),
184
- { key: "bs.maxWidth" },
185
- void 0,
186
- { title: true }
187
- ]
188
- ]),
189
- _cache[10] || (_cache[10] = createTextVNode(" x ")),
190
- withDirectives(createVNode(_sfc_main$3, {
191
- modelValue: data.value.maxHeight,
192
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => data.value.maxHeight = $event),
193
- disabled: disabled.value,
194
- name: "maxHeight",
195
- prefix: "H",
196
- width: "120px"
197
- }, null, 8, ["modelValue", "disabled"]), [
198
- [
199
- unref(vT),
200
- { key: "bs.maxHeight" },
201
- void 0,
202
- { title: true }
203
- ]
204
- ])
205
- ])
206
- ]),
207
- createElementVNode("div", null, [
208
- createElementVNode("div", _hoisted_3, [
209
- createVNode(_sfc_main$2, { label: { key: "bs.margin" } })
210
- ]),
211
- createElementVNode("div", _hoisted_4, [
212
- withDirectives(createVNode(_sfc_main$3, {
213
- modelValue: data.value.marginLeft,
214
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => data.value.marginLeft = $event),
215
- disabled: disabled.value,
216
- prefix: { type: "font-icon", value: "keyboard_arrow_left" },
217
- name: "marginLeft",
218
- width: "80px"
219
- }, null, 8, ["modelValue", "disabled"]), [
220
- [
221
- unref(vT),
222
- { key: "bs.left" },
223
- void 0,
224
- { title: true }
225
- ]
226
- ]),
227
- withDirectives(createVNode(_sfc_main$3, {
228
- modelValue: data.value.marginTop,
229
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => data.value.marginTop = $event),
230
- disabled: disabled.value,
231
- prefix: { type: "font-icon", value: "keyboard_arrow_up" },
232
- name: "marginTop",
233
- width: "80px"
234
- }, null, 8, ["modelValue", "disabled"]), [
235
- [
236
- unref(vT),
237
- { key: "bs.top" },
238
- void 0,
239
- { title: true }
240
- ]
241
- ]),
242
- withDirectives(createVNode(_sfc_main$3, {
243
- modelValue: data.value.marginBottom,
244
- "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => data.value.marginBottom = $event),
245
- disabled: disabled.value,
246
- prefix: { type: "font-icon", value: "keyboard_arrow_down" },
247
- name: "marginBottom",
248
- width: "80px"
249
- }, null, 8, ["modelValue", "disabled"]), [
250
- [
251
- unref(vT),
252
- { key: "bs.bottom" },
253
- void 0,
254
- { title: true }
255
- ]
256
- ]),
257
- withDirectives(createVNode(_sfc_main$3, {
258
- modelValue: data.value.marginRight,
259
- "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => data.value.marginRight = $event),
260
- disabled: disabled.value,
261
- prefix: { type: "font-icon", value: "keyboard_arrow_right" },
262
- name: "marginRight",
263
- width: "80px"
264
- }, null, 8, ["modelValue", "disabled"]), [
265
- [
266
- unref(vT),
267
- { key: "bs.right" },
268
- void 0,
269
- { title: true }
270
- ]
271
- ])
272
- ])
273
- ]),
274
- createElementVNode("div", null, [
275
- createElementVNode("div", _hoisted_5, [
276
- createVNode(_sfc_main$2, { label: { key: "bs.align" } })
277
- ]),
278
- createElementVNode("div", null, [
279
- createVNode(_sfc_main$4, {
280
- modelValue: data.value.tableAlign,
281
- "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => data.value.tableAlign = $event),
282
- disabled: disabled.value,
283
- "icon-provider": (item) => item.icon,
284
- items: alignItems,
285
- "label-provider": (item) => item.caption,
286
- "tooltip-provider": (item) => item.tooltip,
287
- "value-provider": (item) => item.value,
288
- class: "button-group-style",
289
- name: "tableAlign"
290
- }, null, 8, ["modelValue", "disabled", "icon-provider", "label-provider", "tooltip-provider", "value-provider"])
291
- ])
292
- ]),
293
- createElementVNode("div", null, [
294
- createElementVNode("div", _hoisted_6, [
295
- createVNode(_sfc_main$2, { label: { key: "bs.richtext.tableColumnInfo" } })
296
- ]),
297
- createElementVNode("div", null, [
298
- (openBlock(true), createElementBlock(Fragment, null, renderList(columns.value, (column, index) => {
299
- return openBlock(), createElementBlock("div", {
300
- key: index,
301
- class: "mb-4"
302
- }, [
303
- createElementVNode("span", _hoisted_7, toDisplayString(index + 1) + ":", 1),
304
- withDirectives(createVNode(_sfc_main$3, {
305
- modelValue: column.width,
306
- "onUpdate:modelValue": ($event) => column.width = $event,
307
- disabled: disabled.value,
308
- name: `columnWidth_${index}`,
309
- prefix: "W",
310
- width: "120px"
311
- }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled", "name"]), [
312
- [
313
- unref(vT),
314
- { key: "bs.width" },
315
- void 0,
316
- { title: true }
317
- ]
318
- ])
319
- ]);
320
- }), 128)),
321
- createElementVNode("div", _hoisted_8, [
322
- createVNode(BSButton, {
323
- caption: { key: "bs.clearAll" },
324
- onClick: resetAllColumns
325
- })
326
- ])
327
- ])
328
- ])
329
- ], 512)) : createCommentVNode("", true)
330
- ]),
331
- buttons: withCtx(() => [
332
- createElementVNode("div", _hoisted_9, [
333
- createVNode(BSButton, {
334
- caption: { key: "bs.ok" },
335
- "button-color": "blue",
336
- "data-id": "okBtn",
337
- onClick: save
338
- }),
339
- createVNode(BSButton, {
340
- caption: { key: "bs.cancel" },
341
- "data-id": "cancelBtn",
342
- onClick: close
343
- })
344
- ])
345
- ]),
346
- _: 1
347
- });
348
- };
349
- }
350
- });
351
- export {
352
- _sfc_main as default
353
- };