@jvs-milkdown/components 1.2.4 → 1.2.7
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/lib/__internal__/components/image-input.d.ts.map +1 -1
- package/lib/image-block/config.d.ts +0 -3
- package/lib/image-block/config.d.ts.map +1 -1
- package/lib/image-block/index.js +96 -93
- package/lib/image-block/index.js.map +1 -1
- package/lib/image-block/paste-rule.d.ts.map +1 -1
- package/lib/image-block/view/components/image-viewer.d.ts.map +1 -1
- package/lib/image-inline/index.js +7 -2
- package/lib/image-inline/index.js.map +1 -1
- package/lib/link-tooltip/edit/component.d.ts.map +1 -1
- package/lib/link-tooltip/index.js +7 -2
- package/lib/link-tooltip/index.js.map +1 -1
- package/lib/table-block/index.js.map +1 -1
- package/lib/table-block/view/utils.d.ts.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/__internal__/components/image-input.tsx +14 -5
- package/src/image-block/config.ts +0 -6
- package/src/image-block/paste-rule.ts +0 -2
- package/src/image-block/view/components/image-viewer.tsx +25 -26
- package/src/link-tooltip/edit/component.tsx +7 -2
- package/src/table-block/view/component.tsx +1 -1
- package/src/table-block/view/utils.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-input.d.ts","sourceRoot":"","sources":["../../../src/__internal__/components/image-input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AASvD,KAAK,eAAe,GAAG;IACrB,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAC5B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAE/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACzC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1D,CAAA;AAED,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"image-input.d.ts","sourceRoot":"","sources":["../../../src/__internal__/components/image-input.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AASvD,KAAK,eAAe,GAAG;IACrB,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAC5B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAE/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACzC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1D,CAAA;AAED,eAAO,MAAM,UAAU,0SA0LrB,CAAA"}
|
|
@@ -3,9 +3,6 @@ export interface ImageBlockConfig {
|
|
|
3
3
|
captionIcon: string | undefined;
|
|
4
4
|
cropIcon: string | undefined;
|
|
5
5
|
borderIcon: string | undefined;
|
|
6
|
-
confirmIcon: string | undefined;
|
|
7
|
-
cancelIcon: string | undefined;
|
|
8
|
-
resetCropIcon: string | undefined;
|
|
9
6
|
uploadButton: string | undefined;
|
|
10
7
|
confirmButton: string | undefined;
|
|
11
8
|
uploadPlaceholderText: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/image-block/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/image-block/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,qBAAqB,EAAE,MAAM,CAAA;IAC7B,sBAAsB,EAAE,MAAM,CAAA;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACzC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IACvD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,uBAAuB,EAAE,gBAUrC,CAAA;AAED,eAAO,MAAM,gBAAgB,6EAG5B,CAAA"}
|
package/lib/image-block/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { expectDomTypeError } from '@jvs-milkdown/exception';
|
|
|
5
5
|
import { Slice, Fragment as Fragment$1 } from '@jvs-milkdown/prose/model';
|
|
6
6
|
import { visit } from 'unist-util-visit';
|
|
7
7
|
import DOMPurify from 'dompurify';
|
|
8
|
-
import { h, defineComponent, ref, Fragment as Fragment$2, createApp, watchEffect } from 'vue';
|
|
8
|
+
import { h, defineComponent, ref, Fragment as Fragment$2, onMounted, onUnmounted, createApp, watchEffect } from 'vue';
|
|
9
9
|
import clsx from 'clsx';
|
|
10
10
|
import { customAlphabet } from 'nanoid';
|
|
11
11
|
|
|
@@ -39,9 +39,6 @@ const defaultImageBlockConfig = {
|
|
|
39
39
|
captionIcon: "\u{1F4AC}",
|
|
40
40
|
cropIcon: "\u2702\uFE0F",
|
|
41
41
|
borderIcon: "\u{1F532}",
|
|
42
|
-
confirmIcon: "\u2713",
|
|
43
|
-
cancelIcon: "\u2715",
|
|
44
|
-
resetCropIcon: "\u21A9",
|
|
45
42
|
uploadButton: "Upload file",
|
|
46
43
|
confirmButton: "Confirm \u23CE",
|
|
47
44
|
uploadPlaceholderText: "or paste the image link ...",
|
|
@@ -515,7 +512,9 @@ const ImageInput = defineComponent({
|
|
|
515
512
|
const isValidUrl = (url) => {
|
|
516
513
|
if (!url) return false;
|
|
517
514
|
const trimmedUrl = url.trim();
|
|
518
|
-
return /^(https?:\/\/|\/|\.\.?\/|data:image\/|blob:|[a-zA-Z0-9-]+\.[a-zA-Z]+)/i.test(
|
|
515
|
+
return /^(https?:\/\/|\/|\.\.?\/|data:image\/|blob:|[a-zA-Z0-9-]+\.[a-zA-Z]+)/i.test(
|
|
516
|
+
trimmedUrl
|
|
517
|
+
);
|
|
519
518
|
};
|
|
520
519
|
const onKeydown = (e) => {
|
|
521
520
|
var _a2, _b2, _c;
|
|
@@ -590,7 +589,10 @@ const ImageInput = defineComponent({
|
|
|
590
589
|
)), /* @__PURE__ */ h(
|
|
591
590
|
"div",
|
|
592
591
|
{
|
|
593
|
-
class: clsx(
|
|
592
|
+
class: clsx(
|
|
593
|
+
"confirm",
|
|
594
|
+
!isValidUrl(currentLink.value) && "disabled"
|
|
595
|
+
),
|
|
594
596
|
onClick: () => onConfirmLinkInput(),
|
|
595
597
|
style: !isValidUrl(currentLink.value) ? { opacity: 0.5, cursor: "not-allowed" } : void 0
|
|
596
598
|
},
|
|
@@ -831,15 +833,25 @@ const ImageViewer = defineComponent({
|
|
|
831
833
|
isCropping.value = true;
|
|
832
834
|
};
|
|
833
835
|
const applyCrop = () => {
|
|
836
|
+
if (!isCropping.value) return;
|
|
834
837
|
setAttr("cropTop", localCrop.value.top);
|
|
835
838
|
setAttr("cropLeft", localCrop.value.left);
|
|
836
839
|
setAttr("cropWidth", localCrop.value.width);
|
|
837
840
|
setAttr("cropHeight", localCrop.value.height);
|
|
838
841
|
isCropping.value = false;
|
|
839
842
|
};
|
|
840
|
-
const
|
|
841
|
-
isCropping.value
|
|
843
|
+
const handleGlobalPointerDown = (e) => {
|
|
844
|
+
if (!isCropping.value) return;
|
|
845
|
+
if (wrapperRef.value && !wrapperRef.value.contains(e.target)) {
|
|
846
|
+
applyCrop();
|
|
847
|
+
}
|
|
842
848
|
};
|
|
849
|
+
onMounted(() => {
|
|
850
|
+
window.addEventListener("pointerdown", handleGlobalPointerDown);
|
|
851
|
+
});
|
|
852
|
+
onUnmounted(() => {
|
|
853
|
+
window.removeEventListener("pointerdown", handleGlobalPointerDown);
|
|
854
|
+
});
|
|
843
855
|
const resetCrop = () => {
|
|
844
856
|
setAttr("cropTop", 0);
|
|
845
857
|
setAttr("cropLeft", 0);
|
|
@@ -926,7 +938,7 @@ const ImageViewer = defineComponent({
|
|
|
926
938
|
cropDragType = "";
|
|
927
939
|
};
|
|
928
940
|
return () => {
|
|
929
|
-
var _a2, _b, _c, _d, _e, _f, _g, _h
|
|
941
|
+
var _a2, _b, _c, _d, _e, _f, _g, _h;
|
|
930
942
|
const currentBorderStyle = (_a2 = borderStyle.value) != null ? _a2 : "none";
|
|
931
943
|
const currentBorderWidth = localBorderWidth.value !== null ? localBorderWidth.value : (_b = borderWidth.value) != null ? _b : 0;
|
|
932
944
|
const currentBorderColor = localBorderColor.value !== null ? localBorderColor.value : (_c = borderColor.value) != null ? _c : "#000000";
|
|
@@ -1023,7 +1035,7 @@ const ImageViewer = defineComponent({
|
|
|
1023
1035
|
resetCrop();
|
|
1024
1036
|
}
|
|
1025
1037
|
},
|
|
1026
|
-
/* @__PURE__ */ h(Icon, { icon:
|
|
1038
|
+
/* @__PURE__ */ h(Icon, { icon: "\u21A9" })
|
|
1027
1039
|
) : null,
|
|
1028
1040
|
config.borderIcon ? /* @__PURE__ */ h(
|
|
1029
1041
|
"div",
|
|
@@ -1153,96 +1165,87 @@ const ImageViewer = defineComponent({
|
|
|
1153
1165
|
}
|
|
1154
1166
|
}
|
|
1155
1167
|
),
|
|
1156
|
-
isCropping.value ? /* @__PURE__ */ h(
|
|
1157
|
-
"div",
|
|
1158
|
-
{
|
|
1159
|
-
class: "crop-box",
|
|
1160
|
-
style: {
|
|
1161
|
-
top: `${(localCrop.value.top * 100).toFixed(2)}%`,
|
|
1162
|
-
left: `${(localCrop.value.left * 100).toFixed(2)}%`,
|
|
1163
|
-
width: `${(localCrop.value.width * 100).toFixed(2)}%`,
|
|
1164
|
-
height: `${(localCrop.value.height * 100).toFixed(2)}%`
|
|
1165
|
-
},
|
|
1166
|
-
onPointerdown: (e) => onCropBoxPointerDown(e, "move")
|
|
1167
|
-
},
|
|
1168
|
-
/* @__PURE__ */ h("div", { class: "crop-grid" }, /* @__PURE__ */ h("div", { class: "crop-grid-line horizontal first" }), /* @__PURE__ */ h("div", { class: "crop-grid-line horizontal second" }), /* @__PURE__ */ h("div", { class: "crop-grid-line vertical first" }), /* @__PURE__ */ h("div", { class: "crop-grid-line vertical second" })),
|
|
1169
|
-
/* @__PURE__ */ h(
|
|
1170
|
-
"div",
|
|
1171
|
-
{
|
|
1172
|
-
class: "crop-handle nw",
|
|
1173
|
-
onPointerdown: (e) => onCropBoxPointerDown(e, "nw")
|
|
1174
|
-
}
|
|
1175
|
-
),
|
|
1176
|
-
/* @__PURE__ */ h(
|
|
1177
|
-
"div",
|
|
1178
|
-
{
|
|
1179
|
-
class: "crop-handle ne",
|
|
1180
|
-
onPointerdown: (e) => onCropBoxPointerDown(e, "ne")
|
|
1181
|
-
}
|
|
1182
|
-
),
|
|
1183
|
-
/* @__PURE__ */ h(
|
|
1184
|
-
"div",
|
|
1185
|
-
{
|
|
1186
|
-
class: "crop-handle sw",
|
|
1187
|
-
onPointerdown: (e) => onCropBoxPointerDown(e, "sw")
|
|
1188
|
-
}
|
|
1189
|
-
),
|
|
1190
|
-
/* @__PURE__ */ h(
|
|
1191
|
-
"div",
|
|
1192
|
-
{
|
|
1193
|
-
class: "crop-handle se",
|
|
1194
|
-
onPointerdown: (e) => onCropBoxPointerDown(e, "se")
|
|
1195
|
-
}
|
|
1196
|
-
),
|
|
1197
|
-
/* @__PURE__ */ h(
|
|
1198
|
-
"div",
|
|
1199
|
-
{
|
|
1200
|
-
class: "crop-handle n",
|
|
1201
|
-
onPointerdown: (e) => onCropBoxPointerDown(e, "n")
|
|
1202
|
-
}
|
|
1203
|
-
),
|
|
1204
|
-
/* @__PURE__ */ h(
|
|
1205
|
-
"div",
|
|
1206
|
-
{
|
|
1207
|
-
class: "crop-handle s",
|
|
1208
|
-
onPointerdown: (e) => onCropBoxPointerDown(e, "s")
|
|
1209
|
-
}
|
|
1210
|
-
),
|
|
1211
|
-
/* @__PURE__ */ h(
|
|
1212
|
-
"div",
|
|
1213
|
-
{
|
|
1214
|
-
class: "crop-handle e",
|
|
1215
|
-
onPointerdown: (e) => onCropBoxPointerDown(e, "e")
|
|
1216
|
-
}
|
|
1217
|
-
),
|
|
1218
|
-
/* @__PURE__ */ h(
|
|
1219
|
-
"div",
|
|
1220
|
-
{
|
|
1221
|
-
class: "crop-handle w",
|
|
1222
|
-
onPointerdown: (e) => onCropBoxPointerDown(e, "w")
|
|
1223
|
-
}
|
|
1224
|
-
)
|
|
1225
|
-
), /* @__PURE__ */ h("div", { class: "crop-toolbar" }, /* @__PURE__ */ h(
|
|
1168
|
+
isCropping.value ? /* @__PURE__ */ h(
|
|
1226
1169
|
"div",
|
|
1227
1170
|
{
|
|
1228
|
-
class: "crop-
|
|
1171
|
+
class: "crop-overlay",
|
|
1229
1172
|
onClick: (e) => {
|
|
1230
1173
|
e.stopPropagation();
|
|
1231
1174
|
applyCrop();
|
|
1232
1175
|
}
|
|
1233
1176
|
},
|
|
1234
|
-
/* @__PURE__ */ h(
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1177
|
+
/* @__PURE__ */ h(
|
|
1178
|
+
"div",
|
|
1179
|
+
{
|
|
1180
|
+
class: "crop-box",
|
|
1181
|
+
onClick: (e) => e.stopPropagation(),
|
|
1182
|
+
style: {
|
|
1183
|
+
top: `${(localCrop.value.top * 100).toFixed(2)}%`,
|
|
1184
|
+
left: `${(localCrop.value.left * 100).toFixed(2)}%`,
|
|
1185
|
+
width: `${(localCrop.value.width * 100).toFixed(2)}%`,
|
|
1186
|
+
height: `${(localCrop.value.height * 100).toFixed(2)}%`
|
|
1187
|
+
},
|
|
1188
|
+
onPointerdown: (e) => onCropBoxPointerDown(e, "move")
|
|
1189
|
+
},
|
|
1190
|
+
/* @__PURE__ */ h("div", { class: "crop-grid" }, /* @__PURE__ */ h("div", { class: "crop-grid-line horizontal first" }), /* @__PURE__ */ h("div", { class: "crop-grid-line horizontal second" }), /* @__PURE__ */ h("div", { class: "crop-grid-line vertical first" }), /* @__PURE__ */ h("div", { class: "crop-grid-line vertical second" })),
|
|
1191
|
+
/* @__PURE__ */ h(
|
|
1192
|
+
"div",
|
|
1193
|
+
{
|
|
1194
|
+
class: "crop-handle nw",
|
|
1195
|
+
onPointerdown: (e) => onCropBoxPointerDown(e, "nw")
|
|
1196
|
+
}
|
|
1197
|
+
),
|
|
1198
|
+
/* @__PURE__ */ h(
|
|
1199
|
+
"div",
|
|
1200
|
+
{
|
|
1201
|
+
class: "crop-handle ne",
|
|
1202
|
+
onPointerdown: (e) => onCropBoxPointerDown(e, "ne")
|
|
1203
|
+
}
|
|
1204
|
+
),
|
|
1205
|
+
/* @__PURE__ */ h(
|
|
1206
|
+
"div",
|
|
1207
|
+
{
|
|
1208
|
+
class: "crop-handle sw",
|
|
1209
|
+
onPointerdown: (e) => onCropBoxPointerDown(e, "sw")
|
|
1210
|
+
}
|
|
1211
|
+
),
|
|
1212
|
+
/* @__PURE__ */ h(
|
|
1213
|
+
"div",
|
|
1214
|
+
{
|
|
1215
|
+
class: "crop-handle se",
|
|
1216
|
+
onPointerdown: (e) => onCropBoxPointerDown(e, "se")
|
|
1217
|
+
}
|
|
1218
|
+
),
|
|
1219
|
+
/* @__PURE__ */ h(
|
|
1220
|
+
"div",
|
|
1221
|
+
{
|
|
1222
|
+
class: "crop-handle n",
|
|
1223
|
+
onPointerdown: (e) => onCropBoxPointerDown(e, "n")
|
|
1224
|
+
}
|
|
1225
|
+
),
|
|
1226
|
+
/* @__PURE__ */ h(
|
|
1227
|
+
"div",
|
|
1228
|
+
{
|
|
1229
|
+
class: "crop-handle s",
|
|
1230
|
+
onPointerdown: (e) => onCropBoxPointerDown(e, "s")
|
|
1231
|
+
}
|
|
1232
|
+
),
|
|
1233
|
+
/* @__PURE__ */ h(
|
|
1234
|
+
"div",
|
|
1235
|
+
{
|
|
1236
|
+
class: "crop-handle e",
|
|
1237
|
+
onPointerdown: (e) => onCropBoxPointerDown(e, "e")
|
|
1238
|
+
}
|
|
1239
|
+
),
|
|
1240
|
+
/* @__PURE__ */ h(
|
|
1241
|
+
"div",
|
|
1242
|
+
{
|
|
1243
|
+
class: "crop-handle w",
|
|
1244
|
+
onPointerdown: (e) => onCropBoxPointerDown(e, "w")
|
|
1245
|
+
}
|
|
1246
|
+
)
|
|
1247
|
+
)
|
|
1248
|
+
) : null,
|
|
1246
1249
|
!isCropping.value ? /* @__PURE__ */ h(Fragment$2, null, /* @__PURE__ */ h(
|
|
1247
1250
|
"div",
|
|
1248
1251
|
{
|