@milkdown/crepe 7.5.0 → 7.5.1
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/cjs/{index--tnUmqZ_.js → index--2zEz40J.js} +8 -23
- package/lib/cjs/{index--tnUmqZ_.js.map → index--2zEz40J.js.map} +1 -1
- package/lib/cjs/{index-92bwto5V.js → index-5n9R-QCl.js} +5 -20
- package/lib/cjs/{index-92bwto5V.js.map → index-5n9R-QCl.js.map} +1 -1
- package/lib/cjs/{index-HH5lPgpj.js → index-HEdBw63r.js} +8 -23
- package/lib/cjs/{index-HH5lPgpj.js.map → index-HEdBw63r.js.map} +1 -1
- package/lib/cjs/{index-J1-yHn7v.js → index-Hlt9dRH5.js} +5 -20
- package/lib/cjs/{index-J1-yHn7v.js.map → index-Hlt9dRH5.js.map} +1 -1
- package/lib/cjs/{index-cb-5m0vG.js → index-KCW2CzRk.js} +8 -23
- package/lib/cjs/index-KCW2CzRk.js.map +1 -0
- package/lib/cjs/{index-VYwHTL3F.js → index-KSZhahYb.js} +6 -21
- package/lib/cjs/{index-VYwHTL3F.js.map → index-KSZhahYb.js.map} +1 -1
- package/lib/cjs/index-N1cRxqdw.js +39 -0
- package/lib/cjs/index-N1cRxqdw.js.map +1 -0
- package/lib/cjs/{index-c_OzudR7.js → index-NNo_VSEA.js} +5 -20
- package/lib/{esm/index-DS7Z4Ach.js.map → cjs/index-NNo_VSEA.js.map} +1 -1
- package/lib/cjs/{index-Tjg8KyK7.js → index-O1bDbloo.js} +5 -20
- package/lib/{esm/index-eqd5wtjX.js.map → cjs/index-O1bDbloo.js.map} +1 -1
- package/lib/cjs/{index-55VIM-52.js → index-OPh9naof.js} +8 -23
- package/lib/cjs/{index-55VIM-52.js.map → index-OPh9naof.js.map} +1 -1
- package/lib/cjs/{index-E4Ist86Z.js → index-PAhfZtcH.js} +5 -20
- package/lib/cjs/{index-E4Ist86Z.js.map → index-PAhfZtcH.js.map} +1 -1
- package/lib/cjs/{index-vfzLCXfi.js → index-PeRHVz4A.js} +5 -20
- package/lib/{esm/index-3bDzhU6z.js.map → cjs/index-PeRHVz4A.js.map} +1 -1
- package/lib/cjs/{index-Jztk6JlP.js → index-U7GWrg-w.js} +9 -456
- package/lib/cjs/index-U7GWrg-w.js.map +1 -0
- package/lib/cjs/{index-zXSAHvAj.js → index-UTb0Az5e.js} +2 -2
- package/lib/cjs/{index-zXSAHvAj.js.map → index-UTb0Az5e.js.map} +1 -1
- package/lib/cjs/{index-lBumFRUQ.js → index-UnEAyH8X.js} +5 -20
- package/lib/cjs/{index-lBumFRUQ.js.map → index-UnEAyH8X.js.map} +1 -1
- package/lib/cjs/{index-1vHyMXH8.js → index-VCkq0ru1.js} +5 -20
- package/lib/{esm/index-g_3dzLYU.js.map → cjs/index-VCkq0ru1.js.map} +1 -1
- package/lib/cjs/{index-FbNqlZU8.js → index-WQl7Du53.js} +4 -19
- package/lib/cjs/index-WQl7Du53.js.map +1 -0
- package/lib/cjs/{index-nTfDKYYi.js → index-ahL5MvrQ.js} +28 -43
- package/lib/cjs/{index-nTfDKYYi.js.map → index-ahL5MvrQ.js.map} +1 -1
- package/lib/cjs/{index--sa4NMpW.js → index-bpgWLeRY.js} +5 -20
- package/lib/cjs/{index--sa4NMpW.js.map → index-bpgWLeRY.js.map} +1 -1
- package/lib/cjs/index-dEVmN_aj.js +26 -0
- package/lib/cjs/index-dEVmN_aj.js.map +1 -0
- package/lib/cjs/{index-von4W2LG.js → index-fZupvR_f.js} +8 -23
- package/lib/{esm/index-NZ5-xr5_.js.map → cjs/index-fZupvR_f.js.map} +1 -1
- package/lib/cjs/{index-mcxgNBq9.js → index-gSM-jgti.js} +5 -20
- package/lib/cjs/{index-mcxgNBq9.js.map → index-gSM-jgti.js.map} +1 -1
- package/lib/cjs/{index-lUNj3xuC.js → index-jlPr_A_N.js} +5 -20
- package/lib/cjs/{index-lUNj3xuC.js.map → index-jlPr_A_N.js.map} +1 -1
- package/lib/cjs/index-ocxd4A-M.js +675 -0
- package/lib/cjs/index-ocxd4A-M.js.map +1 -0
- package/lib/cjs/{index-J3XY9IPt.js → index-rFFAL9YA.js} +9 -17
- package/lib/cjs/{index-J3XY9IPt.js.map → index-rFFAL9YA.js.map} +1 -1
- package/lib/cjs/index-tlx25I_m.js +36 -0
- package/lib/cjs/index-tlx25I_m.js.map +1 -0
- package/lib/cjs/index-tqAbVyds.js +28 -0
- package/lib/cjs/index-tqAbVyds.js.map +1 -0
- package/lib/cjs/{index-cpC-j5Nt.js → index-udZSknd8.js} +30 -39
- package/lib/cjs/{index-cpC-j5Nt.js.map → index-udZSknd8.js.map} +1 -1
- package/lib/cjs/index-uleaJDBC.js +19 -0
- package/lib/cjs/index-uleaJDBC.js.map +1 -0
- package/lib/cjs/{index-jn036wuh.js → index-urB-WDqA.js} +7 -22
- package/lib/{esm/index-VoX_n1l_.js.map → cjs/index-urB-WDqA.js.map} +1 -1
- package/lib/cjs/{index-jlfsu92T.js → index-xWgWtxUR.js} +6 -21
- package/lib/cjs/{index-jlfsu92T.js.map → index-xWgWtxUR.js.map} +1 -1
- package/lib/cjs/index.js +150 -14
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/{todoList-Ze4FLMlx.js → todoList-YYRQo7wG.js} +1 -12
- package/lib/cjs/todoList-YYRQo7wG.js.map +1 -0
- package/lib/esm/{index-Yuj7sNhQ.js → index-1NetiFdJ.js} +8 -23
- package/lib/esm/{index-Yuj7sNhQ.js.map → index-1NetiFdJ.js.map} +1 -1
- package/lib/esm/{index-6GrVnloh.js → index-2I_xbjAZ.js} +28 -43
- package/lib/esm/{index-6GrVnloh.js.map → index-2I_xbjAZ.js.map} +1 -1
- package/lib/esm/{index-bexsWrgs.js → index-2huXYfuJ.js} +8 -23
- package/lib/esm/{index-bexsWrgs.js.map → index-2huXYfuJ.js.map} +1 -1
- package/lib/esm/{index-zrQXXSXm.js → index-4x6_TVZv.js} +5 -20
- package/lib/esm/{index-zrQXXSXm.js.map → index-4x6_TVZv.js.map} +1 -1
- package/lib/esm/index-6JoGWH2I.js +17 -0
- package/lib/esm/index-6JoGWH2I.js.map +1 -0
- package/lib/esm/{index-OpUb5xP6.js → index-A-dNwMMf.js} +2 -2
- package/lib/esm/{index-OpUb5xP6.js.map → index-A-dNwMMf.js.map} +1 -1
- package/lib/esm/{index-SDPCpsD5.js → index-AV99ipmP.js} +5 -20
- package/lib/esm/{index-SDPCpsD5.js.map → index-AV99ipmP.js.map} +1 -1
- package/lib/esm/{index-MB6wQe1U.js → index-CMGDOz11.js} +5 -13
- package/lib/esm/{index-MB6wQe1U.js.map → index-CMGDOz11.js.map} +1 -1
- package/lib/esm/index-HlPKwzLC.js +34 -0
- package/lib/esm/index-HlPKwzLC.js.map +1 -0
- package/lib/esm/{index-MxgqkRtj.js → index-PC2bahtq.js} +5 -20
- package/lib/esm/{index-MxgqkRtj.js.map → index-PC2bahtq.js.map} +1 -1
- package/lib/esm/{index-eqd5wtjX.js → index-QBYz82jZ.js} +5 -20
- package/lib/{cjs/index-Tjg8KyK7.js.map → esm/index-QBYz82jZ.js.map} +1 -1
- package/lib/esm/{index-VP76m4nW.js → index-W1pAMr_8.js} +6 -21
- package/lib/esm/{index-VP76m4nW.js.map → index-W1pAMr_8.js.map} +1 -1
- package/lib/esm/{index-i79QMXpJ.js → index-Xzdc2jbA.js} +7 -454
- package/lib/esm/index-Xzdc2jbA.js.map +1 -0
- package/lib/esm/{index-_4fWmRbN.js → index-ZAtZWqJQ.js} +5 -20
- package/lib/esm/{index-_4fWmRbN.js.map → index-ZAtZWqJQ.js.map} +1 -1
- package/lib/esm/index-_A9vu1ED.js +673 -0
- package/lib/esm/index-_A9vu1ED.js.map +1 -0
- package/lib/esm/{index-x8SyiPMC.js → index-bnSKBrbD.js} +5 -20
- package/lib/esm/{index-x8SyiPMC.js.map → index-bnSKBrbD.js.map} +1 -1
- package/lib/esm/index-fVrfHXda.js +24 -0
- package/lib/esm/index-fVrfHXda.js.map +1 -0
- package/lib/esm/{index-Vl0W0S3h.js → index-ftnOhuRS.js} +4 -19
- package/lib/esm/index-ftnOhuRS.js.map +1 -0
- package/lib/esm/{index-1l-61HI-.js → index-iQPB0Rdl.js} +6 -21
- package/lib/esm/{index-1l-61HI-.js.map → index-iQPB0Rdl.js.map} +1 -1
- package/lib/esm/{index-grT-Kuf2.js → index-kPj3-TKp.js} +5 -20
- package/lib/esm/{index-grT-Kuf2.js.map → index-kPj3-TKp.js.map} +1 -1
- package/lib/esm/{index-NZ5-xr5_.js → index-kgOR7SZ6.js} +8 -23
- package/lib/{cjs/index-von4W2LG.js.map → esm/index-kgOR7SZ6.js.map} +1 -1
- package/lib/esm/{index-A83StUe6.js → index-lm00PM0y.js} +8 -17
- package/lib/esm/{index-A83StUe6.js.map → index-lm00PM0y.js.map} +1 -1
- package/lib/esm/{index-g_3dzLYU.js → index-m49Bj3q7.js} +5 -20
- package/lib/{cjs/index-1vHyMXH8.js.map → esm/index-m49Bj3q7.js.map} +1 -1
- package/lib/esm/index-ohmbt6Ys.js +37 -0
- package/lib/esm/index-ohmbt6Ys.js.map +1 -0
- package/lib/esm/{index-rvOBAXap.js → index-sWVjGw-3.js} +8 -23
- package/lib/esm/index-sWVjGw-3.js.map +1 -0
- package/lib/esm/{index-DS7Z4Ach.js → index-twh8lL5o.js} +5 -20
- package/lib/{cjs/index-c_OzudR7.js.map → esm/index-twh8lL5o.js.map} +1 -1
- package/lib/esm/{index-3bDzhU6z.js → index-v02MCz4_.js} +5 -20
- package/lib/{cjs/index-vfzLCXfi.js.map → esm/index-v02MCz4_.js.map} +1 -1
- package/lib/esm/index-v3rvbocl.js +26 -0
- package/lib/esm/index-v3rvbocl.js.map +1 -0
- package/lib/esm/{index-XH7OnwZl.js → index-wEXT8mbN.js} +5 -20
- package/lib/esm/{index-XH7OnwZl.js.map → index-wEXT8mbN.js.map} +1 -1
- package/lib/esm/{index-VoX_n1l_.js → index-wFIac5Kw.js} +7 -22
- package/lib/{cjs/index-jn036wuh.js.map → esm/index-wFIac5Kw.js.map} +1 -1
- package/lib/esm/{index-3HeWs5rX.js → index-wg94ewRo.js} +8 -23
- package/lib/esm/{index-3HeWs5rX.js.map → index-wg94ewRo.js.map} +1 -1
- package/lib/esm/index.js +152 -12
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/{todoList-M-PGJKde.js → todoList-9QsDDcmB.js} +2 -12
- package/lib/esm/todoList-9QsDDcmB.js.map +1 -0
- package/package.json +1 -1
- package/lib/cjs/_view-N32ied53.js +0 -27
- package/lib/cjs/_view-N32ied53.js.map +0 -1
- package/lib/cjs/floating-ui.dom-2cjBpir5.js +0 -1134
- package/lib/cjs/floating-ui.dom-2cjBpir5.js.map +0 -1
- package/lib/cjs/helper-1aludV1Z.js +0 -15
- package/lib/cjs/helper-1aludV1Z.js.map +0 -1
- package/lib/cjs/index-28q261C7.js +0 -448
- package/lib/cjs/index-28q261C7.js.map +0 -1
- package/lib/cjs/index-Buu2tD9O.js +0 -534
- package/lib/cjs/index-Buu2tD9O.js.map +0 -1
- package/lib/cjs/index-FbNqlZU8.js.map +0 -1
- package/lib/cjs/index-Jztk6JlP.js.map +0 -1
- package/lib/cjs/index-N6pPZY61.js +0 -191
- package/lib/cjs/index-N6pPZY61.js.map +0 -1
- package/lib/cjs/index-TUJs6KKL.js +0 -472
- package/lib/cjs/index-TUJs6KKL.js.map +0 -1
- package/lib/cjs/index-_GOdKqUK.js +0 -1147
- package/lib/cjs/index-_GOdKqUK.js.map +0 -1
- package/lib/cjs/index-cKQcw-eu.js +0 -386
- package/lib/cjs/index-cKQcw-eu.js.map +0 -1
- package/lib/cjs/index-cb-5m0vG.js.map +0 -1
- package/lib/cjs/index-crv_k6dv.js +0 -1353
- package/lib/cjs/index-crv_k6dv.js.map +0 -1
- package/lib/cjs/index-kqz-P6o6.js +0 -55
- package/lib/cjs/index-kqz-P6o6.js.map +0 -1
- package/lib/cjs/index-tBw4NmwY.js +0 -33852
- package/lib/cjs/index-tBw4NmwY.js.map +0 -1
- package/lib/cjs/schema-RVrwDDcq.js +0 -74
- package/lib/cjs/schema-RVrwDDcq.js.map +0 -1
- package/lib/cjs/todoList-Ze4FLMlx.js.map +0 -1
- package/lib/cjs/tooltip-plugin--lhebztC.js +0 -191
- package/lib/cjs/tooltip-plugin--lhebztC.js.map +0 -1
- package/lib/esm/_view-IlZC8FA6.js +0 -25
- package/lib/esm/_view-IlZC8FA6.js.map +0 -1
- package/lib/esm/floating-ui.dom-CAYjY8Gv.js +0 -1130
- package/lib/esm/floating-ui.dom-CAYjY8Gv.js.map +0 -1
- package/lib/esm/helper-wZAtC67x.js +0 -13
- package/lib/esm/helper-wZAtC67x.js.map +0 -1
- package/lib/esm/index-0-j8Icms.js +0 -384
- package/lib/esm/index-0-j8Icms.js.map +0 -1
- package/lib/esm/index-8QJbxTYk.js +0 -1145
- package/lib/esm/index-8QJbxTYk.js.map +0 -1
- package/lib/esm/index-9w_hdnvb.js +0 -532
- package/lib/esm/index-9w_hdnvb.js.map +0 -1
- package/lib/esm/index-AOoFzBaK.js +0 -53
- package/lib/esm/index-AOoFzBaK.js.map +0 -1
- package/lib/esm/index-LAdX6LsO.js +0 -33805
- package/lib/esm/index-LAdX6LsO.js.map +0 -1
- package/lib/esm/index-Vl0W0S3h.js.map +0 -1
- package/lib/esm/index-chrnjY1D.js +0 -470
- package/lib/esm/index-chrnjY1D.js.map +0 -1
- package/lib/esm/index-hF04phbf.js +0 -189
- package/lib/esm/index-hF04phbf.js.map +0 -1
- package/lib/esm/index-i79QMXpJ.js.map +0 -1
- package/lib/esm/index-rvOBAXap.js.map +0 -1
- package/lib/esm/index-uP9BKsTM.js +0 -446
- package/lib/esm/index-uP9BKsTM.js.map +0 -1
- package/lib/esm/index-ueQQMSgm.js +0 -1351
- package/lib/esm/index-ueQQMSgm.js.map +0 -1
- package/lib/esm/schema-JWJqD9qa.js +0 -71
- package/lib/esm/schema-JWJqD9qa.js.map +0 -1
- package/lib/esm/todoList-M-PGJKde.js.map +0 -1
- package/lib/esm/tooltip-plugin-iw2EQWIG.js +0 -185
- package/lib/esm/tooltip-plugin-iw2EQWIG.js.map +0 -1
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
import { c, useHost, useRef, useLayoutEffect, html } from 'atomico';
|
|
2
|
-
import { c as clsx } from './clsx-RxCLxYpD.js';
|
|
3
|
-
import { w as withMeta, b as bulletIcon, d as checkBoxCheckedIcon, e as checkBoxUncheckedIcon } from './todoList-M-PGJKde.js';
|
|
4
|
-
import { TextSelection } from '@milkdown/prose/state';
|
|
5
|
-
import { d as defIfNotExists } from './helper-wZAtC67x.js';
|
|
6
|
-
import { $ as $ctx, l as listItemSchema } from './index-LAdX6LsO.js';
|
|
7
|
-
import { $ as $view } from './_view-IlZC8FA6.js';
|
|
8
|
-
import '@milkdown/prose/model';
|
|
9
|
-
import '@milkdown/prose';
|
|
10
|
-
import '@milkdown/prose/commands';
|
|
11
|
-
import '@milkdown/prose/inputrules';
|
|
12
|
-
import '@milkdown/prose/keymap';
|
|
13
|
-
import '@milkdown/prose/view';
|
|
14
|
-
import '@milkdown/prose/schema-list';
|
|
15
|
-
import '@milkdown/prose/transform';
|
|
16
|
-
import '@milkdown/prose/history';
|
|
17
|
-
import '@milkdown/prose/tables';
|
|
18
|
-
|
|
19
|
-
const listItemComponent = ({
|
|
20
|
-
selected,
|
|
21
|
-
label = "",
|
|
22
|
-
listType = "",
|
|
23
|
-
checked,
|
|
24
|
-
onMount,
|
|
25
|
-
setAttr,
|
|
26
|
-
config,
|
|
27
|
-
readonly
|
|
28
|
-
}) => {
|
|
29
|
-
const host = useHost();
|
|
30
|
-
const contentWrapperRef = useRef();
|
|
31
|
-
useLayoutEffect(() => {
|
|
32
|
-
const current = contentWrapperRef.current;
|
|
33
|
-
if (!current)
|
|
34
|
-
return;
|
|
35
|
-
const contentDOM = host.current.querySelector("[data-content-dom]");
|
|
36
|
-
if (contentDOM) {
|
|
37
|
-
current.appendChild(contentDOM);
|
|
38
|
-
onMount == null ? void 0 : onMount();
|
|
39
|
-
}
|
|
40
|
-
}, []);
|
|
41
|
-
const onClickLabel = () => {
|
|
42
|
-
if (checked == null)
|
|
43
|
-
return;
|
|
44
|
-
setAttr == null ? void 0 : setAttr("checked", !checked);
|
|
45
|
-
};
|
|
46
|
-
const labelProps = {
|
|
47
|
-
label,
|
|
48
|
-
listType,
|
|
49
|
-
checked,
|
|
50
|
-
readonly
|
|
51
|
-
};
|
|
52
|
-
return html`<host class=${selected && "ProseMirror-selectednode"}>
|
|
53
|
-
<li class='list-item'>
|
|
54
|
-
<div class="label-wrapper" onclick=${onClickLabel} contenteditable="false">
|
|
55
|
-
${config == null ? void 0 : config.renderLabel(labelProps)}
|
|
56
|
-
</div>
|
|
57
|
-
<div class="children" ref=${contentWrapperRef}></div>
|
|
58
|
-
</li>
|
|
59
|
-
</host>`;
|
|
60
|
-
};
|
|
61
|
-
listItemComponent.props = {
|
|
62
|
-
label: String,
|
|
63
|
-
checked: Boolean,
|
|
64
|
-
readonly: Boolean,
|
|
65
|
-
listType: String,
|
|
66
|
-
config: Object,
|
|
67
|
-
selected: Boolean,
|
|
68
|
-
setAttr: Function,
|
|
69
|
-
onMount: Function
|
|
70
|
-
};
|
|
71
|
-
const ListItemElement = c(listItemComponent);
|
|
72
|
-
|
|
73
|
-
const defaultListItemBlockConfig = {
|
|
74
|
-
renderLabel: ({ label, listType, checked, readonly }) => {
|
|
75
|
-
if (checked == null)
|
|
76
|
-
return html`<span class='label'>${listType === "bullet" ? "\u29BF" : label}</span>`;
|
|
77
|
-
return html`<input disabled=${readonly} class='label' type="checkbox" checked=${checked} />`;
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
const listItemBlockConfig = $ctx(defaultListItemBlockConfig, "listItemBlockConfigCtx");
|
|
81
|
-
withMeta(listItemBlockConfig, {
|
|
82
|
-
displayName: "Config<list-item-block>",
|
|
83
|
-
group: "ListItemBlock"
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
defIfNotExists("milkdown-list-item-block", ListItemElement);
|
|
87
|
-
const listItemBlockView = $view(listItemSchema.node, (ctx) => {
|
|
88
|
-
return (initialNode, view, getPos) => {
|
|
89
|
-
const dom = document.createElement("milkdown-list-item-block");
|
|
90
|
-
const contentDOM = document.createElement("div");
|
|
91
|
-
contentDOM.setAttribute("data-content-dom", "true");
|
|
92
|
-
contentDOM.classList.add("content-dom");
|
|
93
|
-
const config = ctx.get(listItemBlockConfig.key);
|
|
94
|
-
const bindAttrs = (node2) => {
|
|
95
|
-
dom.listType = node2.attrs.listType;
|
|
96
|
-
dom.label = node2.attrs.label;
|
|
97
|
-
dom.checked = node2.attrs.checked;
|
|
98
|
-
dom.readonly = !view.editable;
|
|
99
|
-
};
|
|
100
|
-
bindAttrs(initialNode);
|
|
101
|
-
dom.appendChild(contentDOM);
|
|
102
|
-
dom.selected = false;
|
|
103
|
-
dom.setAttr = (attr, value) => {
|
|
104
|
-
const pos = getPos();
|
|
105
|
-
if (pos == null)
|
|
106
|
-
return;
|
|
107
|
-
view.dispatch(view.state.tr.setNodeAttribute(pos, attr, value));
|
|
108
|
-
};
|
|
109
|
-
dom.onMount = () => {
|
|
110
|
-
var _a;
|
|
111
|
-
const pos = (_a = getPos()) != null ? _a : 0;
|
|
112
|
-
const end = pos + initialNode.nodeSize;
|
|
113
|
-
const { from, to } = view.state.selection;
|
|
114
|
-
if (view.hasFocus() && pos < from && to < end) {
|
|
115
|
-
Promise.resolve().then(() => {
|
|
116
|
-
const p = view.state.doc.resolve(pos);
|
|
117
|
-
view.dispatch(view.state.tr.setSelection(TextSelection.near(p, 1)));
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
let node = initialNode;
|
|
122
|
-
dom.config = config;
|
|
123
|
-
return {
|
|
124
|
-
dom,
|
|
125
|
-
contentDOM,
|
|
126
|
-
update: (updatedNode) => {
|
|
127
|
-
if (updatedNode.type !== initialNode.type)
|
|
128
|
-
return false;
|
|
129
|
-
if (updatedNode.sameMarkup(node) && updatedNode.content.eq(node.content))
|
|
130
|
-
return false;
|
|
131
|
-
node = updatedNode;
|
|
132
|
-
bindAttrs(updatedNode);
|
|
133
|
-
return true;
|
|
134
|
-
},
|
|
135
|
-
ignoreMutation: (mutation) => {
|
|
136
|
-
if (!dom || !contentDOM)
|
|
137
|
-
return true;
|
|
138
|
-
if (mutation.type === "selection")
|
|
139
|
-
return false;
|
|
140
|
-
if (contentDOM === mutation.target && mutation.type === "attributes")
|
|
141
|
-
return true;
|
|
142
|
-
if (contentDOM.contains(mutation.target))
|
|
143
|
-
return false;
|
|
144
|
-
return true;
|
|
145
|
-
},
|
|
146
|
-
selectNode: () => {
|
|
147
|
-
dom.selected = true;
|
|
148
|
-
},
|
|
149
|
-
deselectNode: () => {
|
|
150
|
-
dom.selected = false;
|
|
151
|
-
},
|
|
152
|
-
destroy: () => {
|
|
153
|
-
dom.remove();
|
|
154
|
-
contentDOM.remove();
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
};
|
|
158
|
-
});
|
|
159
|
-
withMeta(listItemBlockView, {
|
|
160
|
-
displayName: "NodeView<list-item-block>",
|
|
161
|
-
group: "ListItemBlock"
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
const listItemBlockComponent = [
|
|
165
|
-
listItemBlockConfig,
|
|
166
|
-
listItemBlockView
|
|
167
|
-
];
|
|
168
|
-
|
|
169
|
-
function configureListItem(ctx, config) {
|
|
170
|
-
ctx.set(listItemBlockConfig.key, {
|
|
171
|
-
renderLabel: ({ label, listType, checked, readonly }) => {
|
|
172
|
-
var _a, _b, _c, _d, _e, _f;
|
|
173
|
-
if (checked == null) {
|
|
174
|
-
if (listType === "bullet")
|
|
175
|
-
return html`<span class='label'>${(_b = (_a = config == null ? void 0 : config.bulletIcon) == null ? void 0 : _a.call(config)) != null ? _b : bulletIcon}</span>`;
|
|
176
|
-
return html`<span class='label'>${label}</span>`;
|
|
177
|
-
}
|
|
178
|
-
if (checked)
|
|
179
|
-
return html`<span class=${clsx("label checkbox", readonly && "readonly")}>${(_d = (_c = config == null ? void 0 : config.checkBoxCheckedIcon) == null ? void 0 : _c.call(config)) != null ? _d : checkBoxCheckedIcon}</span>`;
|
|
180
|
-
return html`<span class=${clsx("label checkbox", readonly && "readonly")}>${(_f = (_e = config == null ? void 0 : config.checkBoxUncheckedIcon) == null ? void 0 : _e.call(config)) != null ? _f : checkBoxUncheckedIcon}</span>`;
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
const defineFeature = (editor, config) => {
|
|
185
|
-
editor.config((ctx) => configureListItem(ctx, config)).use(listItemBlockComponent);
|
|
186
|
-
};
|
|
187
|
-
|
|
188
|
-
export { defineFeature };
|
|
189
|
-
//# sourceMappingURL=index-hF04phbf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-hF04phbf.js","sources":["../../../components/src/list-item-block/component.ts","../../../components/src/list-item-block/config.ts","../../../components/src/list-item-block/view.ts","../../../components/src/list-item-block/index.ts","../../src/feature/list-item/index.ts"],"sourcesContent":["import type { Component } from 'atomico'\nimport { c, html, useHost, useLayoutEffect, useRef } from 'atomico'\nimport type { ListItemBlockConfig } from './config'\n\ninterface Attrs {\n label: string\n checked: boolean\n listType: string\n}\n\nexport type ListItemComponentProps = Attrs & {\n config: ListItemBlockConfig\n readonly: boolean\n selected: boolean\n setAttr: <T extends keyof Attrs>(attr: T, value: Attrs[T]) => void\n onMount: () => void\n}\n\nexport const listItemComponent: Component<ListItemComponentProps> = ({\n selected,\n label = '',\n listType = '',\n checked,\n onMount,\n setAttr,\n config,\n readonly,\n}) => {\n const host = useHost()\n const contentWrapperRef = useRef<HTMLDivElement>()\n\n useLayoutEffect(() => {\n const current = contentWrapperRef.current\n if (!current)\n return\n\n const contentDOM = host.current.querySelector('[data-content-dom]')\n\n if (contentDOM) {\n current.appendChild(contentDOM)\n onMount?.()\n }\n }, [])\n\n const onClickLabel = () => {\n if (checked == null)\n return\n\n setAttr?.('checked', !checked)\n }\n\n const labelProps = {\n label,\n listType,\n checked,\n readonly,\n }\n\n return html`<host class=${selected && 'ProseMirror-selectednode'}>\n <li class='list-item'>\n <div class=\"label-wrapper\" onclick=${onClickLabel} contenteditable=\"false\">\n ${config?.renderLabel(labelProps)}\n </div>\n <div class=\"children\" ref=${contentWrapperRef}></div>\n </li>\n </host>`\n}\n\nlistItemComponent.props = {\n label: String,\n checked: Boolean,\n readonly: Boolean,\n listType: String,\n config: Object,\n selected: Boolean,\n setAttr: Function,\n onMount: Function,\n}\n\nexport const ListItemElement = c(listItemComponent)\n","import { $ctx } from '@milkdown/utils'\nimport { html } from 'atomico'\nimport { withMeta } from '../__internal__/meta'\n\ninterface RenderLabelProps {\n label: string\n listType: string\n readonly?: boolean\n checked?: boolean\n}\n\nexport interface ListItemBlockConfig {\n renderLabel: (props: RenderLabelProps) => void\n}\n\nexport const defaultListItemBlockConfig: ListItemBlockConfig = {\n renderLabel: ({ label, listType, checked, readonly }: RenderLabelProps) => {\n if (checked == null)\n return html`<span class='label'>${listType === 'bullet' ? '⦿' : label}</span>`\n\n return html`<input disabled=${readonly} class='label' type=\"checkbox\" checked=${checked} />`\n },\n}\n\nexport const listItemBlockConfig = $ctx(defaultListItemBlockConfig, 'listItemBlockConfigCtx')\n\nwithMeta(listItemBlockConfig, {\n displayName: 'Config<list-item-block>',\n group: 'ListItemBlock',\n})\n","import { $view } from '@milkdown/utils'\nimport type { NodeViewConstructor } from '@milkdown/prose/view'\nimport { TextSelection } from '@milkdown/prose/state'\nimport type { Node } from '@milkdown/prose/model'\nimport { listItemSchema } from '@milkdown/preset-commonmark'\nimport { withMeta } from '../__internal__/meta'\nimport { defIfNotExists } from '../__internal__/helper'\nimport type { ListItemComponentProps } from './component'\nimport { ListItemElement } from './component'\nimport { listItemBlockConfig } from './config'\n\ndefIfNotExists('milkdown-list-item-block', ListItemElement)\nexport const listItemBlockView = $view(listItemSchema.node, (ctx): NodeViewConstructor => {\n return (initialNode, view, getPos) => {\n const dom = document.createElement('milkdown-list-item-block') as HTMLElement & ListItemComponentProps\n const contentDOM = document.createElement('div')\n contentDOM.setAttribute('data-content-dom', 'true')\n contentDOM.classList.add('content-dom')\n const config = ctx.get(listItemBlockConfig.key)\n const bindAttrs = (node: Node) => {\n dom.listType = node.attrs.listType\n dom.label = node.attrs.label\n dom.checked = node.attrs.checked\n\n dom.readonly = !view.editable\n }\n\n bindAttrs(initialNode)\n dom.appendChild(contentDOM)\n dom.selected = false\n dom.setAttr = (attr, value) => {\n const pos = getPos()\n if (pos == null)\n return\n\n view.dispatch(view.state.tr.setNodeAttribute(pos, attr, value))\n }\n dom.onMount = () => {\n const pos = getPos() ?? 0\n const end = pos + initialNode.nodeSize\n const { from, to } = view.state.selection\n if (view.hasFocus() && pos < from && to < end) {\n Promise.resolve().then(() => {\n const p = view.state.doc.resolve(pos)\n view.dispatch(view.state.tr.setSelection(TextSelection.near(p, 1)))\n })\n }\n }\n let node = initialNode\n dom.config = config\n return {\n dom,\n contentDOM,\n update: (updatedNode) => {\n if (updatedNode.type !== initialNode.type)\n return false\n\n if (updatedNode.sameMarkup(node) && updatedNode.content.eq(node.content))\n return false\n\n node = updatedNode\n bindAttrs(updatedNode)\n return true\n },\n ignoreMutation: (mutation) => {\n if (!dom || !contentDOM)\n return true\n\n if ((mutation.type as unknown) === 'selection')\n return false\n\n if (contentDOM === mutation.target && mutation.type === 'attributes')\n return true\n\n if (contentDOM.contains(mutation.target))\n return false\n\n return true\n },\n selectNode: () => {\n dom.selected = true\n },\n deselectNode: () => {\n dom.selected = false\n },\n destroy: () => {\n dom.remove()\n contentDOM.remove()\n },\n }\n }\n})\n\nwithMeta(listItemBlockView, {\n displayName: 'NodeView<list-item-block>',\n group: 'ListItemBlock',\n})\n","import type { MilkdownPlugin } from '@milkdown/ctx'\nimport { listItemBlockView } from './view'\nimport { listItemBlockConfig } from './config'\n\nexport * from './component'\nexport * from './config'\nexport * from './view'\n\nexport const listItemBlockComponent: MilkdownPlugin[] = [\n listItemBlockConfig,\n listItemBlockView,\n]\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport { listItemBlockComponent, listItemBlockConfig } from '@milkdown/kit/component/list-item-block'\nimport { html } from 'atomico'\nimport clsx from 'clsx'\nimport type { DefineFeature, Icon } from '../shared'\nimport { bulletIcon, checkBoxCheckedIcon, checkBoxUncheckedIcon } from '../../icons'\n\nexport interface ListItemConfig {\n bulletIcon: Icon\n checkBoxCheckedIcon: Icon\n checkBoxUncheckedIcon: Icon\n}\n\nexport type ListItemFeatureConfig = Partial<ListItemConfig>\n\nfunction configureListItem(ctx: Ctx, config?: ListItemFeatureConfig) {\n ctx.set(listItemBlockConfig.key, {\n renderLabel: ({ label, listType, checked, readonly }) => {\n if (checked == null) {\n if (listType === 'bullet')\n return html`<span class='label'>${config?.bulletIcon?.() ?? bulletIcon}</span>`\n\n return html`<span class='label'>${label}</span>`\n }\n\n if (checked)\n return html`<span class=${clsx('label checkbox', readonly && 'readonly')}>${config?.checkBoxCheckedIcon?.() ?? checkBoxCheckedIcon}</span>`\n\n return html`<span class=${clsx('label checkbox', readonly && 'readonly')}>${config?.checkBoxUncheckedIcon?.() ?? checkBoxUncheckedIcon}</span>`\n },\n })\n}\n\nexport const defineFeature: DefineFeature<ListItemFeatureConfig> = (editor, config) => {\n editor\n .config(ctx => configureListItem(ctx, config))\n .use(listItemBlockComponent)\n}\n"],"names":["node"],"mappings":"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"}
|