@g1cloud/bluesea 5.0.0-beta.1 → 5.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/bluesea.css +358 -278
- package/css/frame-default.css +16 -12
- package/dist/{BSAlertModal-BixCrZDD.js → BSAlertModal-xBi30_WT.js} +1 -1
- package/dist/{BSGridColumnSettingModal-CVVenSnr.js → BSGridColumnSettingModal-CGOmNxYg.js} +1 -1
- package/dist/{BSRichTextMaximizedModal-BqzE5__U.js → BSRichTextMaximizedModal-bwfs_ETq.js} +1 -1
- package/dist/{BSYesNoModal-B5lERw_k.js → BSYesNoModal-g_jspSyV.js} +1 -1
- package/dist/{BSYoutubeInputModal-eRBqHjeW.js → BSYoutubeInputModal-gxqSatHw.js} +1 -1
- package/dist/{ImageInsertModal-DvKLXL1n.js → ImageInsertModal-BjQMX1aF.js} +2 -2
- package/dist/{ImageProperties.vue_vue_type_script_setup_true_lang-DVUZuLfG.js → ImageProperties.vue_vue_type_script_setup_true_lang-DngZdEN7.js} +1 -1
- package/dist/{ImagePropertiesModal-Dsg6BS63.js → ImagePropertiesModal-BVMSRdqN.js} +2 -2
- package/dist/{LinkPropertiesModal-Ct0ykD4j.js → LinkPropertiesModal-CjQMdxnd.js} +1 -1
- package/dist/{TableInsertModal-BhyzkcTU.js → TableInsertModal-W9oMIgb_.js} +1 -1
- package/dist/TablePropertiesModal-rKhKzzYG.js +353 -0
- package/dist/{VideoInsertModal-BAwRYBzU.js → VideoInsertModal-DMtZM5vy.js} +2 -2
- package/dist/{VideoProperties.vue_vue_type_script_setup_true_lang-BfwBHyER.js → VideoProperties.vue_vue_type_script_setup_true_lang-CbE-PZdm.js} +1 -1
- package/dist/{VideoPropertiesModal-B2FeEw4W.js → VideoPropertiesModal-CLkvzq3Y.js} +2 -2
- package/dist/{YoutubeInsertModal-EU6G-021.js → YoutubeInsertModal-4_qANoY5.js} +3 -3
- package/dist/{YoutubeProperties.vue_vue_type_script_setup_true_lang-Ci3ndkZR.js → YoutubeProperties.vue_vue_type_script_setup_true_lang-B-LT9GYf.js} +1 -1
- package/dist/{YoutubePropertiesModal-CRy6zJwZ.js → YoutubePropertiesModal-BKwZsK6d.js} +2 -2
- package/dist/bluesea.css +304 -228
- package/dist/bluesea.js +21 -21
- package/dist/bluesea.umd.cjs +433 -197
- package/dist/component/input/BSMultiSelect.vue.d.ts +6 -6
- package/dist/component/input/BSSelect.vue.d.ts +6 -6
- package/dist/component/input/BSSelectPopup.vue.d.ts +6 -6
- package/dist/component/input/BSTreeMultiSelect.vue.d.ts +6 -6
- package/dist/component/input/BSTreeSelect.vue.d.ts +6 -6
- package/dist/component/richtext/RichTextModel.d.ts +1 -0
- package/dist/component/richtext/richTextUtil.d.ts +1 -1
- package/dist/component/richtext/table/RichTextTableCell.d.ts +1 -0
- package/dist/component/richtext/table/RichTextTableLib.d.ts +7 -1
- package/dist/component/tree/BSTree.vue.d.ts +3 -3
- package/dist/component/tree/BSTreeRow.vue.d.ts +3 -3
- package/dist/directive/vT.d.ts +1 -0
- package/dist/{index-CDwzpZX0.js → index-BQZ3zTp7.js} +160 -93
- package/package.json +3 -3
- package/scss/component.scss +18 -14
- package/text/bluesea_text_en.json +12 -0
- package/text/bluesea_text_fr.json +12 -0
- package/text/bluesea_text_ja.json +12 -0
- package/text/bluesea_text_ko.json +12 -0
- package/text/bluesea_text_zh.json +12 -0
- package/dist/TablePropertiesModal-BAxcByTD.js +0 -184
|
@@ -87,8 +87,8 @@ const defaultAddressInputComponentConfig = {
|
|
|
87
87
|
countryConfigs: ADDRESS_COUNTRY_CONFIGS
|
|
88
88
|
};
|
|
89
89
|
const defaultRichTextComponentConfig = {
|
|
90
|
-
imageInsertModal: defineAsyncComponent(() => import("./ImageInsertModal-
|
|
91
|
-
videoInsertModal: defineAsyncComponent(() => import("./VideoInsertModal-
|
|
90
|
+
imageInsertModal: defineAsyncComponent(() => import("./ImageInsertModal-BjQMX1aF.js")),
|
|
91
|
+
videoInsertModal: defineAsyncComponent(() => import("./VideoInsertModal-DMtZM5vy.js")),
|
|
92
92
|
toolButtons: [
|
|
93
93
|
"Heading",
|
|
94
94
|
"FontSize",
|
|
@@ -5968,7 +5968,7 @@ class BSModal {
|
|
|
5968
5968
|
}
|
|
5969
5969
|
openAlert(title, message, clickHandler2) {
|
|
5970
5970
|
const option = {
|
|
5971
|
-
component: defineAsyncComponent(() => import("./BSAlertModal-
|
|
5971
|
+
component: defineAsyncComponent(() => import("./BSAlertModal-xBi30_WT.js")),
|
|
5972
5972
|
bind: {
|
|
5973
5973
|
title,
|
|
5974
5974
|
message
|
|
@@ -5981,7 +5981,7 @@ class BSModal {
|
|
|
5981
5981
|
}
|
|
5982
5982
|
openYesNo(title, message, yesHandler, noHandler) {
|
|
5983
5983
|
const option = {
|
|
5984
|
-
component: defineAsyncComponent(() => import("./BSYesNoModal-
|
|
5984
|
+
component: defineAsyncComponent(() => import("./BSYesNoModal-g_jspSyV.js")),
|
|
5985
5985
|
bind: {
|
|
5986
5986
|
title,
|
|
5987
5987
|
message
|
|
@@ -28352,43 +28352,6 @@ const TableRow = Node2.create({
|
|
|
28352
28352
|
return ["tr", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
28353
28353
|
}
|
|
28354
28354
|
});
|
|
28355
|
-
const TableCell = Node2.create({
|
|
28356
|
-
name: "tableCell",
|
|
28357
|
-
addOptions() {
|
|
28358
|
-
return {
|
|
28359
|
-
HTMLAttributes: {}
|
|
28360
|
-
};
|
|
28361
|
-
},
|
|
28362
|
-
content: "block+",
|
|
28363
|
-
addAttributes() {
|
|
28364
|
-
return {
|
|
28365
|
-
colspan: {
|
|
28366
|
-
default: 1
|
|
28367
|
-
},
|
|
28368
|
-
rowspan: {
|
|
28369
|
-
default: 1
|
|
28370
|
-
},
|
|
28371
|
-
colwidth: {
|
|
28372
|
-
default: null,
|
|
28373
|
-
parseHTML: (element) => {
|
|
28374
|
-
const colwidth = element.getAttribute("colwidth");
|
|
28375
|
-
const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
|
|
28376
|
-
return value;
|
|
28377
|
-
}
|
|
28378
|
-
}
|
|
28379
|
-
};
|
|
28380
|
-
},
|
|
28381
|
-
tableRole: "cell",
|
|
28382
|
-
isolating: true,
|
|
28383
|
-
parseHTML() {
|
|
28384
|
-
return [
|
|
28385
|
-
{ tag: "td" }
|
|
28386
|
-
];
|
|
28387
|
-
},
|
|
28388
|
-
renderHTML({ HTMLAttributes }) {
|
|
28389
|
-
return ["td", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
28390
|
-
}
|
|
28391
|
-
});
|
|
28392
28355
|
const _hoisted_1$X = { class: "tool-button-font-size bs-layout-horizontal align-items-center" };
|
|
28393
28356
|
const _hoisted_2$E = ["disabled", "value"];
|
|
28394
28357
|
const _sfc_main$18 = /* @__PURE__ */ defineComponent({
|
|
@@ -31022,10 +30985,11 @@ const renderHTMLAttr = (attr) => {
|
|
|
31022
30985
|
const parseHTMLStyle = (attr) => {
|
|
31023
30986
|
return (element) => element.style[attr];
|
|
31024
30987
|
};
|
|
31025
|
-
const renderHTMLStyle = (attr) => {
|
|
30988
|
+
const renderHTMLStyle = (attr, attrName2) => {
|
|
31026
30989
|
return (attrs) => {
|
|
31027
30990
|
const kebabCaseName = attr.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
|
|
31028
|
-
|
|
30991
|
+
const value = attrs[attrName2 || attr];
|
|
30992
|
+
return value ? { style: `${kebabCaseName}: ${value}` } : void 0;
|
|
31029
30993
|
};
|
|
31030
30994
|
};
|
|
31031
30995
|
const createStyleString = (attr, names) => {
|
|
@@ -31038,6 +31002,15 @@ const RichTextTable = Table.extend({
|
|
|
31038
31002
|
height: { parseHTML: parseHTMLStyle("height"), renderHTML: renderHTMLStyle("height") },
|
|
31039
31003
|
maxWidth: { parseHTML: parseHTMLStyle("maxWidth"), renderHTML: renderHTMLStyle("maxWidth") },
|
|
31040
31004
|
maxHeight: { parseHTML: parseHTMLStyle("maxHeight"), renderHTML: renderHTMLStyle("maxHeight") },
|
|
31005
|
+
marginLeft: { parseHTML: parseHTMLStyle("marginLeft"), renderHTML: renderHTMLStyle("marginLeft") },
|
|
31006
|
+
marginTop: { parseHTML: parseHTMLStyle("marginTop"), renderHTML: renderHTMLStyle("marginTop") },
|
|
31007
|
+
marginRight: { parseHTML: parseHTMLStyle("marginRight"), renderHTML: renderHTMLStyle("marginRight") },
|
|
31008
|
+
marginBottom: { parseHTML: parseHTMLStyle("marginBottom"), renderHTML: renderHTMLStyle("marginBottom") },
|
|
31009
|
+
tableAlign: {
|
|
31010
|
+
default: "",
|
|
31011
|
+
parseHTML: parseHTMLStyle("alignSelf"),
|
|
31012
|
+
renderHTML: renderHTMLStyle("alignSelf", "tableAlign")
|
|
31013
|
+
},
|
|
31041
31014
|
class: {
|
|
31042
31015
|
default: void 0,
|
|
31043
31016
|
parseHTML: (element) => element.className,
|
|
@@ -31050,6 +31023,13 @@ const RichTextTable = Table.extend({
|
|
|
31050
31023
|
renderHTML: (props) => {
|
|
31051
31024
|
var _a2;
|
|
31052
31025
|
const result = (_a2 = Table.config.renderHTML) == null ? void 0 : _a2.apply(Table, [props]);
|
|
31026
|
+
if (Array.isArray(result) && result.length > 1) {
|
|
31027
|
+
const attrs = result[1];
|
|
31028
|
+
attrs.style = props.HTMLAttributes.style;
|
|
31029
|
+
}
|
|
31030
|
+
if (Array.isArray(result) && result.length > 2 && result[2][0] === "colgroup") {
|
|
31031
|
+
result.splice(2, 1);
|
|
31032
|
+
}
|
|
31053
31033
|
return [
|
|
31054
31034
|
"div",
|
|
31055
31035
|
{ class: "table-wrapper" },
|
|
@@ -31113,13 +31093,13 @@ const tableContextMenus = (modal, editor) => {
|
|
|
31113
31093
|
};
|
|
31114
31094
|
const showTableProperties = (modal, editor) => {
|
|
31115
31095
|
modal.openModal({
|
|
31116
|
-
component: defineAsyncComponent(() => import("./TablePropertiesModal-
|
|
31096
|
+
component: defineAsyncComponent(() => import("./TablePropertiesModal-rKhKzzYG.js")),
|
|
31117
31097
|
bind: { editor }
|
|
31118
31098
|
});
|
|
31119
31099
|
};
|
|
31120
31100
|
const insertTable = (modal, editor) => {
|
|
31121
31101
|
modal.openModal({
|
|
31122
|
-
component: defineAsyncComponent(() => import("./TableInsertModal-
|
|
31102
|
+
component: defineAsyncComponent(() => import("./TableInsertModal-W9oMIgb_.js")),
|
|
31123
31103
|
bind: { editor }
|
|
31124
31104
|
});
|
|
31125
31105
|
};
|
|
@@ -31284,7 +31264,7 @@ const insertImage = (modal, editor) => {
|
|
|
31284
31264
|
const component = (_a2 = blueseaConfig.componentConfig.richText) == null ? void 0 : _a2.imageInsertModal;
|
|
31285
31265
|
if (component) {
|
|
31286
31266
|
modal.openModal({
|
|
31287
|
-
component: defineAsyncComponent(() => import("./ImageInsertModal-
|
|
31267
|
+
component: defineAsyncComponent(() => import("./ImageInsertModal-BjQMX1aF.js")),
|
|
31288
31268
|
bind: { editor },
|
|
31289
31269
|
on: {
|
|
31290
31270
|
insertImage: (image) => {
|
|
@@ -31302,7 +31282,7 @@ const insertImage = (modal, editor) => {
|
|
|
31302
31282
|
};
|
|
31303
31283
|
const showImageProperties = (modal, editor) => {
|
|
31304
31284
|
modal.openModal({
|
|
31305
|
-
component: defineAsyncComponent(() => import("./ImagePropertiesModal-
|
|
31285
|
+
component: defineAsyncComponent(() => import("./ImagePropertiesModal-BVMSRdqN.js")),
|
|
31306
31286
|
bind: { editor }
|
|
31307
31287
|
});
|
|
31308
31288
|
};
|
|
@@ -31595,16 +31575,23 @@ const RichTextYoutube = Youtube.extend({
|
|
|
31595
31575
|
start: {
|
|
31596
31576
|
default: 0
|
|
31597
31577
|
},
|
|
31598
|
-
width: { parseHTML:
|
|
31599
|
-
height: { parseHTML:
|
|
31600
|
-
maxWidth: { parseHTML:
|
|
31601
|
-
maxHeight: { parseHTML:
|
|
31602
|
-
marginLeft: { parseHTML:
|
|
31603
|
-
marginTop: { parseHTML:
|
|
31604
|
-
marginRight: { parseHTML:
|
|
31605
|
-
marginBottom: { parseHTML:
|
|
31578
|
+
width: { parseHTML: parseWrapperHTMLStyle("width"), renderHTML: renderHTMLStyle("width") },
|
|
31579
|
+
height: { parseHTML: parseWrapperHTMLStyle("height"), renderHTML: renderHTMLStyle("height") },
|
|
31580
|
+
maxWidth: { parseHTML: parseWrapperHTMLStyle("maxWidth"), renderHTML: renderHTMLStyle("maxWidth") },
|
|
31581
|
+
maxHeight: { parseHTML: parseWrapperHTMLStyle("maxHeight"), renderHTML: renderHTMLStyle("maxHeight") },
|
|
31582
|
+
marginLeft: { parseHTML: parseWrapperHTMLStyle("marginLeft"), renderHTML: renderHTMLStyle("marginLeft") },
|
|
31583
|
+
marginTop: { parseHTML: parseWrapperHTMLStyle("marginTop"), renderHTML: renderHTMLStyle("marginTop") },
|
|
31584
|
+
marginRight: { parseHTML: parseWrapperHTMLStyle("marginRight"), renderHTML: renderHTMLStyle("marginRight") },
|
|
31585
|
+
marginBottom: { parseHTML: parseWrapperHTMLStyle("marginBottom"), renderHTML: renderHTMLStyle("marginBottom") }
|
|
31606
31586
|
};
|
|
31607
31587
|
},
|
|
31588
|
+
parseHTML() {
|
|
31589
|
+
return [
|
|
31590
|
+
{
|
|
31591
|
+
tag: "span[data-youtube-video] iframe"
|
|
31592
|
+
}
|
|
31593
|
+
];
|
|
31594
|
+
},
|
|
31608
31595
|
// Youtube extension 에서는 div 로 감싸는데, p 안에 div 가 들어갈 수 없어, span 으로 변경함.
|
|
31609
31596
|
renderHTML: (props) => {
|
|
31610
31597
|
var _a2;
|
|
@@ -31616,14 +31603,21 @@ const RichTextYoutube = Youtube.extend({
|
|
|
31616
31603
|
const iframeAttr = result[2][1];
|
|
31617
31604
|
delete iframeAttr.width;
|
|
31618
31605
|
delete iframeAttr.height;
|
|
31619
|
-
iframeAttr.style = `width: 100%; height:100
|
|
31606
|
+
iframeAttr.style = `width: 100%; height:100%; ${args.style};`;
|
|
31620
31607
|
return ["span", args, [iframe, iframeAttr]];
|
|
31621
31608
|
}
|
|
31622
31609
|
return "span";
|
|
31623
31610
|
}
|
|
31624
31611
|
});
|
|
31612
|
+
const parseWrapperHTMLStyle = (attr) => {
|
|
31613
|
+
return (element) => {
|
|
31614
|
+
var _a2;
|
|
31615
|
+
return (_a2 = element.parentElement) == null ? void 0 : _a2.style[attr];
|
|
31616
|
+
};
|
|
31617
|
+
};
|
|
31625
31618
|
const createWrapperStyle = (attrs) => {
|
|
31626
31619
|
if (!attrs.aspectRatio) attrs.aspectRatio = "16/9";
|
|
31620
|
+
if (!attrs.width) attrs.width = "100%";
|
|
31627
31621
|
attrs = normalizeYoutubeInfoData(attrs);
|
|
31628
31622
|
const styleKeys = ["aspectRatio", "width", "height", "maxWidth", "maxHeight", "marginLeft", "marginTop", "marginRight", "marginBottom"];
|
|
31629
31623
|
const styles = [];
|
|
@@ -31649,13 +31643,13 @@ const youtubeContextMenu = (modal, editor) => {
|
|
|
31649
31643
|
};
|
|
31650
31644
|
const insertYoutube = (modal, editor) => {
|
|
31651
31645
|
modal.openModal({
|
|
31652
|
-
component: defineAsyncComponent(() => import("./YoutubeInsertModal-
|
|
31646
|
+
component: defineAsyncComponent(() => import("./YoutubeInsertModal-4_qANoY5.js")),
|
|
31653
31647
|
bind: { editor }
|
|
31654
31648
|
});
|
|
31655
31649
|
};
|
|
31656
31650
|
const showYoutubeProperties = (modal, editor) => {
|
|
31657
31651
|
modal.openModal({
|
|
31658
|
-
component: defineAsyncComponent(() => import("./YoutubePropertiesModal-
|
|
31652
|
+
component: defineAsyncComponent(() => import("./YoutubePropertiesModal-BKwZsK6d.js")),
|
|
31659
31653
|
bind: { editor }
|
|
31660
31654
|
});
|
|
31661
31655
|
};
|
|
@@ -31699,7 +31693,7 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
|
|
|
31699
31693
|
const showLinkProperties = () => {
|
|
31700
31694
|
if (!props.disabled) {
|
|
31701
31695
|
modal.openModal({
|
|
31702
|
-
component: defineAsyncComponent(() => import("./LinkPropertiesModal-
|
|
31696
|
+
component: defineAsyncComponent(() => import("./LinkPropertiesModal-CjQMdxnd.js")),
|
|
31703
31697
|
bind: {
|
|
31704
31698
|
editor: props.editor
|
|
31705
31699
|
}
|
|
@@ -32064,7 +32058,7 @@ const insertVideo = (modal, editor) => {
|
|
|
32064
32058
|
const component = (_a2 = blueseaConfig.componentConfig.richText) == null ? void 0 : _a2.videoInsertModal;
|
|
32065
32059
|
if (component) {
|
|
32066
32060
|
modal.openModal({
|
|
32067
|
-
component: defineAsyncComponent(() => import("./VideoInsertModal-
|
|
32061
|
+
component: defineAsyncComponent(() => import("./VideoInsertModal-DMtZM5vy.js")),
|
|
32068
32062
|
bind: { editor },
|
|
32069
32063
|
on: {
|
|
32070
32064
|
insertVideo: (video) => {
|
|
@@ -32082,7 +32076,7 @@ const insertVideo = (modal, editor) => {
|
|
|
32082
32076
|
};
|
|
32083
32077
|
const showVideoProperties = (modal, editor) => {
|
|
32084
32078
|
modal.openModal({
|
|
32085
|
-
component: defineAsyncComponent(() => import("./VideoPropertiesModal-
|
|
32079
|
+
component: defineAsyncComponent(() => import("./VideoPropertiesModal-CLkvzq3Y.js")),
|
|
32086
32080
|
bind: { editor }
|
|
32087
32081
|
});
|
|
32088
32082
|
};
|
|
@@ -33988,6 +33982,70 @@ class RichTextTableView {
|
|
|
33988
33982
|
}
|
|
33989
33983
|
const richTextContentStyle = '.rich-text-content {\n font-size: 14px;\n}\n.rich-text-content * {\n line-height: 1.4em;\n}\n.rich-text-content p {\n margin: 0 0 4px 0;\n padding: 0;\n}\n.rich-text-content p:empty:before {\n content: " ";\n white-space: pre;\n}\n.rich-text-content pre {\n background-color: #eee;\n padding: 8px;\n margin: 8px 0;\n border-radius: 4px;\n font-family: "Lucida Console", sans-serif;\n}\n.rich-text-content h1 {\n font-size: 1.8rem;\n margin: 1rem 0 0.4rem;\n}\n.rich-text-content h2 {\n font-size: 1.6rem;\n margin: 0.6rem 0 0.2rem;\n}\n.rich-text-content h3 {\n font-size: 1.4rem;\n margin: 0.4rem 0 0.2rem;\n}\n.rich-text-content h4 {\n font-size: 1.2rem;\n margin: 0.4rem 0 0.2rem;\n}\n.rich-text-content ul {\n padding-left: 1em;\n}\n.rich-text-content ul li {\n list-style: inside disc;\n}\n.rich-text-content ul li > ul > li {\n list-style: inside circle;\n}\n.rich-text-content ul li > ul > li > ul > li {\n list-style: inside square;\n}\n.rich-text-content ul li > p {\n display: inline;\n}\n.rich-text-content ol {\n padding-left: 1em;\n}\n.rich-text-content ol li {\n list-style: inside decimal;\n}\n.rich-text-content ol li > ol > li {\n list-style: inside lower-alpha;\n}\n.rich-text-content ol li > ol > li > ol > li {\n list-style: inside lower-roman;\n}\n.rich-text-content ol li > p {\n display: inline;\n}\n.rich-text-content > div > ul, .rich-text-content > div > ol {\n margin: 8px 0;\n}\n.rich-text-content em {\n font-style: italic;\n}\n.rich-text-content .table-wrapper {\n margin: 0.5rem 0;\n overflow-x: auto;\n display: flex;\n flex-direction: column;\n}\n.rich-text-content table {\n border-collapse: collapse;\n text-align: left;\n}\n.rich-text-content table > tr > th, .rich-text-content table > tr > td, .rich-text-content table > tbody > tr > th, .rich-text-content table > tbody > tr > td {\n border: 1px solid #ccc;\n box-sizing: border-box;\n padding: 6px 8px;\n vertical-align: top;\n}\n.rich-text-content table > tr > th > p, .rich-text-content table > tr > td > p, .rich-text-content table > tbody > tr > th > p, .rich-text-content table > tbody > tr > td > p {\n margin-bottom: 0;\n}\n.rich-text-content img {\n display: inline-block;\n height: auto;\n margin: 0.5rem 0;\n max-width: 100%;\n}\n.rich-text-content span[data-youtube-video] {\n padding-right: 0.5rem;\n display: inline-block;\n}\n.rich-text-content span[data-youtube-video] iframe {\n border: 0.5rem solid var(--black-contrast);\n outline: 0 solid transparent;\n}';
|
|
33990
33984
|
const richTextContainerStyle = ':root {\n --body-bg: #ffffff;\n --gray-400: #A9A9A9;\n --primary: #5672EF;\n --icon-font-family: Material Symbols Outlined, monospace;\n}\n\n.bs-rich-text-editor {\n width: 100%;\n box-sizing: border-box;\n overflow: auto;\n padding: 8px;\n margin: 0 auto;\n background-color: var(--body-bg);\n align-self: center;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.2);\n /* table */\n /* image */\n /* youtube */\n}\n.bs-rich-text-editor > .tiptap {\n width: 100%;\n flex-grow: 1;\n}\n.bs-rich-text-editor > .tiptap:focus {\n outline: 0;\n}\n.bs-rich-text-editor table {\n table-layout: fixed;\n}\n.bs-rich-text-editor table td,\n.bs-rich-text-editor table th {\n min-width: 1em;\n position: relative;\n}\n.bs-rich-text-editor table td > *,\n.bs-rich-text-editor table th > * {\n margin-bottom: 0;\n}\n.bs-rich-text-editor table th {\n font-weight: bold;\n text-align: left;\n}\n.bs-rich-text-editor table .selectedCell:after {\n background: var(--gray-400);\n opacity: 0.3;\n content: "";\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n position: absolute;\n z-index: 1;\n}\n.bs-rich-text-editor table .column-resize-handle {\n background-color: var(--primary);\n bottom: -2px;\n pointer-events: none;\n position: absolute;\n right: -2px;\n top: 0;\n width: 4px;\n z-index: 2;\n}\n.bs-rich-text-editor img, .bs-rich-text-editor video {\n user-select: auto;\n}\n.bs-rich-text-editor img.ProseMirror-selectednode, .bs-rich-text-editor video.ProseMirror-selectednode {\n outline: 3px solid var(--primary);\n position: relative;\n transition: outline 0.15s;\n z-index: 1;\n}\n.bs-rich-text-editor span[data-youtube-video] {\n position: relative;\n cursor: move;\n}\n.bs-rich-text-editor span[data-youtube-video] iframe {\n user-select: auto;\n}\n.bs-rich-text-editor span[data-youtube-video].ProseMirror-selectednode iframe {\n outline: 3px solid var(--primary);\n transition: outline 0.15s;\n}\n.bs-rich-text-editor span[data-youtube-video]::after {\n content: "menu";\n font-family: var(--icon-font-family);\n position: absolute;\n background-color: white;\n border-radius: 4px;\n padding: 4px;\n left: 8px;\n top: 8px;\n font-size: 20px;\n line-height: 1em;\n}';
|
|
33985
|
+
const TableCell = Node2.create({
|
|
33986
|
+
name: "tableCell",
|
|
33987
|
+
addOptions() {
|
|
33988
|
+
return {
|
|
33989
|
+
HTMLAttributes: {}
|
|
33990
|
+
};
|
|
33991
|
+
},
|
|
33992
|
+
content: "block+",
|
|
33993
|
+
addAttributes() {
|
|
33994
|
+
return {
|
|
33995
|
+
colspan: {
|
|
33996
|
+
default: 1
|
|
33997
|
+
},
|
|
33998
|
+
rowspan: {
|
|
33999
|
+
default: 1
|
|
34000
|
+
},
|
|
34001
|
+
colwidth: {
|
|
34002
|
+
default: null,
|
|
34003
|
+
parseHTML: (element) => {
|
|
34004
|
+
const colwidth = element.getAttribute("colwidth");
|
|
34005
|
+
const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
|
|
34006
|
+
return value;
|
|
34007
|
+
}
|
|
34008
|
+
}
|
|
34009
|
+
};
|
|
34010
|
+
},
|
|
34011
|
+
tableRole: "cell",
|
|
34012
|
+
isolating: true,
|
|
34013
|
+
parseHTML() {
|
|
34014
|
+
return [
|
|
34015
|
+
{ tag: "td" }
|
|
34016
|
+
];
|
|
34017
|
+
},
|
|
34018
|
+
renderHTML({ HTMLAttributes }) {
|
|
34019
|
+
return ["td", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
|
|
34020
|
+
}
|
|
34021
|
+
});
|
|
34022
|
+
const RichTextTableCell = TableCell.extend({
|
|
34023
|
+
addAttributes() {
|
|
34024
|
+
var _a2;
|
|
34025
|
+
return {
|
|
34026
|
+
...(_a2 = this.parent) == null ? void 0 : _a2.call(this),
|
|
34027
|
+
width: { parseHTML: parseHTMLStyle("width"), renderHTML: renderHTMLStyle("width") },
|
|
34028
|
+
colspan: {
|
|
34029
|
+
default: 1,
|
|
34030
|
+
parseHTML: (el) => {
|
|
34031
|
+
return Number(el.getAttribute("colspan")) || 1;
|
|
34032
|
+
},
|
|
34033
|
+
renderHTML: (attrs) => {
|
|
34034
|
+
if ((attrs.colspan || 1) > 1) return { colspan: attrs.colspan };
|
|
34035
|
+
}
|
|
34036
|
+
},
|
|
34037
|
+
rowspan: {
|
|
34038
|
+
default: 1,
|
|
34039
|
+
parseHTML: (el) => {
|
|
34040
|
+
return Number(el.getAttribute("rowspan")) || 1;
|
|
34041
|
+
},
|
|
34042
|
+
renderHTML: (attrs) => {
|
|
34043
|
+
if ((attrs.rowspan || 1) > 1) return { rowspan: attrs.rowspan };
|
|
34044
|
+
}
|
|
34045
|
+
}
|
|
34046
|
+
};
|
|
34047
|
+
}
|
|
34048
|
+
});
|
|
33991
34049
|
const _hoisted_1$M = ["innerHTML"];
|
|
33992
34050
|
const _hoisted_2$x = { class: "editor-container" };
|
|
33993
34051
|
const WRAP_BEGIN = '<div class="rich-text-content">';
|
|
@@ -34041,14 +34099,14 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
|
|
|
34041
34099
|
inline: true
|
|
34042
34100
|
}),
|
|
34043
34101
|
RichTextTable.configure({
|
|
34044
|
-
resizable:
|
|
34045
|
-
lastColumnResizable:
|
|
34102
|
+
resizable: false,
|
|
34103
|
+
lastColumnResizable: false,
|
|
34046
34104
|
allowTableNodeSelection: true,
|
|
34047
34105
|
View: RichTextTableView
|
|
34048
34106
|
}),
|
|
34049
34107
|
TableHeader,
|
|
34050
34108
|
TableRow,
|
|
34051
|
-
|
|
34109
|
+
RichTextTableCell,
|
|
34052
34110
|
RichTextYoutube.configure({
|
|
34053
34111
|
inline: true,
|
|
34054
34112
|
controls: false,
|
|
@@ -34168,10 +34226,19 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
|
|
|
34168
34226
|
const doc2 = iframeRef.value.contentWindow.document;
|
|
34169
34227
|
const context = {
|
|
34170
34228
|
iframeDocument: doc2,
|
|
34229
|
+
fontLinks: [
|
|
34230
|
+
"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block"
|
|
34231
|
+
],
|
|
34171
34232
|
editorStyles: [richTextContainerStyle],
|
|
34172
34233
|
contentStyles: [richTextContentStyle]
|
|
34173
34234
|
};
|
|
34174
34235
|
emit("editorIframeReady", context);
|
|
34236
|
+
context.fontLinks.forEach((font) => {
|
|
34237
|
+
const link = doc2.createElement("link");
|
|
34238
|
+
link.setAttribute("href", font);
|
|
34239
|
+
link.setAttribute("rel", "stylesheet");
|
|
34240
|
+
doc2.head.appendChild(link);
|
|
34241
|
+
});
|
|
34175
34242
|
const styles = [...context.editorStyles || [], ...context.contentStyles || []];
|
|
34176
34243
|
styles.forEach((css2) => {
|
|
34177
34244
|
const style2 = doc2.createElement("style");
|
|
@@ -34187,7 +34254,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
|
|
|
34187
34254
|
emit("maximized");
|
|
34188
34255
|
if (!props.internalMaximized) {
|
|
34189
34256
|
modal.openModal({
|
|
34190
|
-
component: defineAsyncComponent(() => import("./BSRichTextMaximizedModal-
|
|
34257
|
+
component: defineAsyncComponent(() => import("./BSRichTextMaximizedModal-bwfs_ETq.js")),
|
|
34191
34258
|
bind: {
|
|
34192
34259
|
modelValue: getEditorValue(),
|
|
34193
34260
|
contentMaxWidth: props.contentMaxWidth,
|
|
@@ -34724,7 +34791,7 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
|
|
|
34724
34791
|
const modal = useModal();
|
|
34725
34792
|
const enterYoutubeUrl = () => {
|
|
34726
34793
|
modal.openModal({
|
|
34727
|
-
component: defineAsyncComponent(() => import("./BSYoutubeInputModal-
|
|
34794
|
+
component: defineAsyncComponent(() => import("./BSYoutubeInputModal-gxqSatHw.js")),
|
|
34728
34795
|
on: {
|
|
34729
34796
|
"update:modelValue": (url) => {
|
|
34730
34797
|
emit("update:modelValue", {
|
|
@@ -38046,7 +38113,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
|
|
|
38046
38113
|
const modal = useModal();
|
|
38047
38114
|
const openSettingModal = () => {
|
|
38048
38115
|
modal.openModal({
|
|
38049
|
-
component: defineAsyncComponent(() => import("./BSGridColumnSettingModal-
|
|
38116
|
+
component: defineAsyncComponent(() => import("./BSGridColumnSettingModal-CGOmNxYg.js")),
|
|
38050
38117
|
bind: {
|
|
38051
38118
|
columns: props.columns,
|
|
38052
38119
|
columnSettings: props.columnSettings,
|
|
@@ -69779,22 +69846,22 @@ const localeNameProvider = (locale) => {
|
|
|
69779
69846
|
const BLUESEA_VERSION = "5.0.0";
|
|
69780
69847
|
export {
|
|
69781
69848
|
_sfc_main$T as $,
|
|
69782
|
-
|
|
69849
|
+
BSLink as A,
|
|
69783
69850
|
BSButton as B,
|
|
69784
|
-
|
|
69785
|
-
|
|
69786
|
-
|
|
69787
|
-
_sfc_main$
|
|
69788
|
-
_sfc_main$
|
|
69789
|
-
_sfc_main$
|
|
69790
|
-
_sfc_main$
|
|
69791
|
-
_sfc_main$
|
|
69792
|
-
_sfc_main$
|
|
69793
|
-
_sfc_main$
|
|
69794
|
-
_sfc_main$
|
|
69795
|
-
_sfc_main$
|
|
69796
|
-
_sfc_main$
|
|
69797
|
-
_sfc_main$
|
|
69851
|
+
_sfc_main$1z as C,
|
|
69852
|
+
BSConsole as D,
|
|
69853
|
+
BSLoadingIcon as E,
|
|
69854
|
+
_sfc_main$1w as F,
|
|
69855
|
+
_sfc_main$1v as G,
|
|
69856
|
+
_sfc_main$1u as H,
|
|
69857
|
+
_sfc_main$1t as I,
|
|
69858
|
+
_sfc_main$1r as J,
|
|
69859
|
+
_sfc_main$1q as K,
|
|
69860
|
+
_sfc_main$1o as L,
|
|
69861
|
+
_sfc_main$1m as M,
|
|
69862
|
+
_sfc_main$1j as N,
|
|
69863
|
+
_sfc_main$1h as O,
|
|
69864
|
+
_sfc_main$1l as P,
|
|
69798
69865
|
_sfc_main$1g as Q,
|
|
69799
69866
|
_sfc_main$1F as R,
|
|
69800
69867
|
_sfc_main$1f as S,
|
|
@@ -69989,19 +70056,19 @@ export {
|
|
|
69989
70056
|
_sfc_main$1i as i,
|
|
69990
70057
|
vFocusOnLoad as j,
|
|
69991
70058
|
componentUtil as k,
|
|
69992
|
-
|
|
69993
|
-
|
|
70059
|
+
_sfc_main$1k as l,
|
|
70060
|
+
formValidator as m,
|
|
69994
70061
|
notNull as n,
|
|
69995
|
-
|
|
69996
|
-
|
|
69997
|
-
|
|
69998
|
-
|
|
69999
|
-
|
|
70000
|
-
|
|
70062
|
+
findImageNode as o,
|
|
70063
|
+
imageInfoNumberToPixel as p,
|
|
70064
|
+
findYoutubeNode as q,
|
|
70065
|
+
normalizeYoutubeInfoData as r,
|
|
70066
|
+
findVideoNode as s,
|
|
70067
|
+
videoInfoNumberToPixel as t,
|
|
70001
70068
|
useModalHandle as u,
|
|
70002
70069
|
vT as v,
|
|
70003
|
-
|
|
70004
|
-
_sfc_main$
|
|
70070
|
+
BLUESEA_VERSION as w,
|
|
70071
|
+
_sfc_main$1E as x,
|
|
70005
70072
|
youtubeInfoNumberToPixel as y,
|
|
70006
|
-
|
|
70073
|
+
_sfc_main$1C as z
|
|
70007
70074
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@g1cloud/bluesea",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "5.0.0-beta.
|
|
4
|
+
"version": "5.0.0-beta.3",
|
|
5
5
|
"description": "Ui Library for g1cloud BackOffice.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"engines": {
|
|
@@ -54,13 +54,13 @@
|
|
|
54
54
|
"@vitest/coverage-v8": "^1.5.3",
|
|
55
55
|
"@vue/test-utils": "^2.4.6",
|
|
56
56
|
"jsdom": "^26.1.0",
|
|
57
|
+
"sass": "^1.86.3",
|
|
57
58
|
"typescript": "^5.4.5",
|
|
58
59
|
"vite": "^6.3.2",
|
|
59
60
|
"vite-plugin-dts": "^3.9.0",
|
|
60
61
|
"vitest": "^3.1.1",
|
|
61
62
|
"vitest-canvas-mock": "^0.3.3",
|
|
62
|
-
"vue-tsc": "^2.2.8"
|
|
63
|
-
"sass": "^1.86.3"
|
|
63
|
+
"vue-tsc": "^2.2.8"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"dayjs": "^1.11.11",
|
package/scss/component.scss
CHANGED
|
@@ -276,32 +276,36 @@
|
|
|
276
276
|
.bs-checkbox-group,
|
|
277
277
|
.bs-radio-button-group {
|
|
278
278
|
&.modified {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
279
|
+
.bs-checkbox:not(.disabled), .bs-radio-button:not(.disabled) {
|
|
280
|
+
input::before {
|
|
281
|
+
color: var(--purple) !important;
|
|
282
|
+
}
|
|
282
283
|
|
|
283
|
-
|
|
284
|
-
|
|
284
|
+
input ~ label {
|
|
285
|
+
color: var(--purple) !important;
|
|
286
|
+
}
|
|
285
287
|
}
|
|
286
288
|
}
|
|
287
289
|
|
|
288
|
-
&.
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
290
|
+
&.error {
|
|
291
|
+
.bs-checkbox:not(.disabled), .bs-radio-button:not(.disabled) {
|
|
292
|
+
input::before {
|
|
293
|
+
color: var(--danger) !important;
|
|
294
|
+
}
|
|
292
295
|
|
|
293
|
-
|
|
294
|
-
|
|
296
|
+
input ~ label {
|
|
297
|
+
color: var(--danger) !important;
|
|
298
|
+
}
|
|
295
299
|
}
|
|
296
300
|
}
|
|
297
301
|
|
|
298
|
-
&.
|
|
302
|
+
&.disabled {
|
|
299
303
|
input::before {
|
|
300
|
-
color: var(--
|
|
304
|
+
color: var(--gray-400) !important;
|
|
301
305
|
}
|
|
302
306
|
|
|
303
307
|
input ~ label {
|
|
304
|
-
color: var(--
|
|
308
|
+
color: var(--gray-400) !important;
|
|
305
309
|
}
|
|
306
310
|
}
|
|
307
311
|
}
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
"key": "bs.addYoutubeUrl",
|
|
8
8
|
"text": "Add YouTube URL"
|
|
9
9
|
},
|
|
10
|
+
{
|
|
11
|
+
"key": "bs.align",
|
|
12
|
+
"text": "Align"
|
|
13
|
+
},
|
|
10
14
|
{
|
|
11
15
|
"key": "bs.am",
|
|
12
16
|
"text": "AM"
|
|
@@ -35,6 +39,10 @@
|
|
|
35
39
|
"key": "bs.clear",
|
|
36
40
|
"text": "Clear"
|
|
37
41
|
},
|
|
42
|
+
{
|
|
43
|
+
"key": "bs.clearAll",
|
|
44
|
+
"text": "Clear All"
|
|
45
|
+
},
|
|
38
46
|
{
|
|
39
47
|
"key": "bs.cleared",
|
|
40
48
|
"text": "It has been cleared."
|
|
@@ -765,6 +773,10 @@
|
|
|
765
773
|
"key": "bs.richtext.table",
|
|
766
774
|
"text": "Table"
|
|
767
775
|
},
|
|
776
|
+
{
|
|
777
|
+
"key": "bs.richtext.tableColumnInfo",
|
|
778
|
+
"text": "Column Info."
|
|
779
|
+
},
|
|
768
780
|
{
|
|
769
781
|
"key": "bs.richtext.tableProperties",
|
|
770
782
|
"text": "Table Properties"
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
"key": "bs.addYoutubeUrl",
|
|
8
8
|
"text": "Ajouter une URL YouTube"
|
|
9
9
|
},
|
|
10
|
+
{
|
|
11
|
+
"key": "bs.align",
|
|
12
|
+
"text": "Aligner"
|
|
13
|
+
},
|
|
10
14
|
{
|
|
11
15
|
"key": "bs.am",
|
|
12
16
|
"text": "SUIS"
|
|
@@ -35,6 +39,10 @@
|
|
|
35
39
|
"key": "bs.clear",
|
|
36
40
|
"text": "Clair"
|
|
37
41
|
},
|
|
42
|
+
{
|
|
43
|
+
"key": "bs.clearAll",
|
|
44
|
+
"text": "Tout effacer"
|
|
45
|
+
},
|
|
38
46
|
{
|
|
39
47
|
"key": "bs.cleared",
|
|
40
48
|
"text": "Cela a été effacé."
|
|
@@ -765,6 +773,10 @@
|
|
|
765
773
|
"key": "bs.richtext.table",
|
|
766
774
|
"text": "Tableau"
|
|
767
775
|
},
|
|
776
|
+
{
|
|
777
|
+
"key": "bs.richtext.tableColumnInfo",
|
|
778
|
+
"text": "Info. sur la colonne"
|
|
779
|
+
},
|
|
768
780
|
{
|
|
769
781
|
"key": "bs.richtext.tableProperties",
|
|
770
782
|
"text": "Propriétés du tableau"
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
"key": "bs.addYoutubeUrl",
|
|
8
8
|
"text": "YouTube動画登録"
|
|
9
9
|
},
|
|
10
|
+
{
|
|
11
|
+
"key": "bs.align",
|
|
12
|
+
"text": "並べ替え"
|
|
13
|
+
},
|
|
10
14
|
{
|
|
11
15
|
"key": "bs.am",
|
|
12
16
|
"text": "午前"
|
|
@@ -35,6 +39,10 @@
|
|
|
35
39
|
"key": "bs.clear",
|
|
36
40
|
"text": "クリア"
|
|
37
41
|
},
|
|
42
|
+
{
|
|
43
|
+
"key": "bs.clearAll",
|
|
44
|
+
"text": "全体初期化"
|
|
45
|
+
},
|
|
38
46
|
{
|
|
39
47
|
"key": "bs.cleared",
|
|
40
48
|
"text": "初期化されました。"
|
|
@@ -765,6 +773,10 @@
|
|
|
765
773
|
"key": "bs.richtext.table",
|
|
766
774
|
"text": "テーブル"
|
|
767
775
|
},
|
|
776
|
+
{
|
|
777
|
+
"key": "bs.richtext.tableColumnInfo",
|
|
778
|
+
"text": "コラム情報"
|
|
779
|
+
},
|
|
768
780
|
{
|
|
769
781
|
"key": "bs.richtext.tableProperties",
|
|
770
782
|
"text": "テーブル属性"
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
"key": "bs.addYoutubeUrl",
|
|
8
8
|
"text": "YouTube 동영상 등록"
|
|
9
9
|
},
|
|
10
|
+
{
|
|
11
|
+
"key": "bs.align",
|
|
12
|
+
"text": "정렬"
|
|
13
|
+
},
|
|
10
14
|
{
|
|
11
15
|
"key": "bs.am",
|
|
12
16
|
"text": "오전"
|
|
@@ -35,6 +39,10 @@
|
|
|
35
39
|
"key": "bs.clear",
|
|
36
40
|
"text": "초기화"
|
|
37
41
|
},
|
|
42
|
+
{
|
|
43
|
+
"key": "bs.clearAll",
|
|
44
|
+
"text": "전체 초기화"
|
|
45
|
+
},
|
|
38
46
|
{
|
|
39
47
|
"key": "bs.cleared",
|
|
40
48
|
"text": "초기화 되었습니다."
|
|
@@ -765,6 +773,10 @@
|
|
|
765
773
|
"key": "bs.richtext.table",
|
|
766
774
|
"text": "테이블"
|
|
767
775
|
},
|
|
776
|
+
{
|
|
777
|
+
"key": "bs.richtext.tableColumnInfo",
|
|
778
|
+
"text": "칼럼 정보"
|
|
779
|
+
},
|
|
768
780
|
{
|
|
769
781
|
"key": "bs.richtext.tableProperties",
|
|
770
782
|
"text": "테이블 속성"
|