Some bugfixes for the editor.
parent
0d77ceb594
commit
4d069eb109
|
|
@ -11,60 +11,52 @@
|
|||
"dev": true
|
||||
},
|
||||
"@tiptap/core": {
|
||||
"version": "2.0.0-beta.116",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.0.0-beta.116.tgz",
|
||||
"integrity": "sha512-5x3HkT71IxF56lPEHPSTqOqkm1fVfHgVfyBbiNA3Qsz47npgJCDelDr6PHY8qlzxLCaN4dMDQUXEsvDDAiRouw==",
|
||||
"version": "2.0.0-beta.127",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.0.0-beta.127.tgz",
|
||||
"integrity": "sha512-vUjhvUUHhJcT9Rzg2duQuZ5idQ1AjWhmbAdaeuuethaVUKqOQmkUtEBMaOcZu9Bss5m81ISyuu7cVzn7TPBaGg==",
|
||||
"requires": {
|
||||
"@types/prosemirror-commands": "^1.0.4",
|
||||
"@types/prosemirror-inputrules": "^1.0.4",
|
||||
"@types/prosemirror-keymap": "^1.0.4",
|
||||
"@types/prosemirror-model": "^1.13.2",
|
||||
"@types/prosemirror-schema-list": "^1.0.3",
|
||||
"@types/prosemirror-state": "^1.2.7",
|
||||
"@types/prosemirror-transform": "^1.1.4",
|
||||
"@types/prosemirror-view": "^1.19.1",
|
||||
"prosemirror-commands": "^1.1.10",
|
||||
"prosemirror-inputrules": "^1.1.3",
|
||||
"prosemirror-commands": "^1.1.11",
|
||||
"prosemirror-keymap": "^1.1.3",
|
||||
"prosemirror-model": "^1.14.3",
|
||||
"prosemirror-schema-list": "^1.1.6",
|
||||
"prosemirror-state": "^1.3.4",
|
||||
"prosemirror-transform": "^1.3.3",
|
||||
"prosemirror-view": "^1.20.1"
|
||||
"prosemirror-view": "^1.20.3"
|
||||
}
|
||||
},
|
||||
"@tiptap/extension-blockquote": {
|
||||
"version": "2.0.0-beta.15",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.0.0-beta.15.tgz",
|
||||
"integrity": "sha512-Cso44KsYsqKqaNveQmx5KVaLy9krq5AzE9WhGVDBSFqWhvuIJkQYrTRBbOTfUDs/st9VuwJrbjTDD65ow50wEw==",
|
||||
"requires": {
|
||||
"prosemirror-inputrules": "^1.1.3"
|
||||
}
|
||||
"version": "2.0.0-beta.19",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.0.0-beta.19.tgz",
|
||||
"integrity": "sha512-9y8keXSm4E5mdh/EocdbrJ/H71qyXv2jajRHIsXj1SaJqLaz4JbSQGrX3j2r0ia3KW3YNFFIHl/z33fU70YfGQ=="
|
||||
},
|
||||
"@tiptap/extension-bold": {
|
||||
"version": "2.0.0-beta.15",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.0.0-beta.15.tgz",
|
||||
"integrity": "sha512-jKyV6iiwhxwa0+7uuKD74jNDVNLNOS1GmU14MgaA95pY5e1fyaRBPPX8Gtt89niz2CLOY711AV17RPZTe/e60w=="
|
||||
"version": "2.0.0-beta.19",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.0.0-beta.19.tgz",
|
||||
"integrity": "sha512-pbYMK3Lz78XFi+1OisdjuGQcjRnzHXeYivh9A4xP1fmSOS6t/lQsu2P2uDhFNXtz45dLcLTOkqnE0j5lj3TGMg=="
|
||||
},
|
||||
"@tiptap/extension-bullet-list": {
|
||||
"version": "2.0.0-beta.15",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.0.0-beta.15.tgz",
|
||||
"integrity": "sha512-5i44JzsZOh8Ci6CuYRQy6W3jCpYgX0+VuJKeHvZ6Aomy4Qqrtc9Jk43PBmCj91lNUUtH6Io9l+kDrLCumEFnEg==",
|
||||
"requires": {
|
||||
"prosemirror-inputrules": "^1.1.3"
|
||||
}
|
||||
"version": "2.0.0-beta.18",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.0.0-beta.18.tgz",
|
||||
"integrity": "sha512-dOf2Wx9bmgpBQIxhw7b+g1GhbIyIox7FIiIEkkSgqDtx8wPPYlnGwHRxopj4a57VbqRkRtspJZp52/vhP3is5w=="
|
||||
},
|
||||
"@tiptap/extension-code": {
|
||||
"version": "2.0.0-beta.16",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.0.0-beta.16.tgz",
|
||||
"integrity": "sha512-Kakg/RMiVrxjzIkLVDXtbCzRh/9W8dgSG04IhMZNOI8N9vWn8Z78jdUyxEEDTcL/JyWWcMxn9AsJw2U5ajO3pA=="
|
||||
"version": "2.0.0-beta.20",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.0.0-beta.20.tgz",
|
||||
"integrity": "sha512-25twg/rsg5CxTOfDgYzg1GbwrtdzNX2vCQyYsauXfPI1kbrWXdVBYWeL4iHdJk5WElfH9WUbQ4kMGh13/KCG/g=="
|
||||
},
|
||||
"@tiptap/extension-code-block": {
|
||||
"version": "2.0.0-beta.18",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.0.0-beta.18.tgz",
|
||||
"integrity": "sha512-E2gz7ovl9nXLZzheqLyN3hi7A10fCaodDn4DvIl4wiEbKZpF7WFBNeb+FQetWNay9UWNeDO94SCX9+rT9H+yHA==",
|
||||
"version": "2.0.0-beta.24",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.0.0-beta.24.tgz",
|
||||
"integrity": "sha512-Q6KxBe3FB+dMe/prlfeixXSVqGTmnOmIL2/10B1RzSj7Mj9SgzqQEHZFm3dKVqpYuMOYJ6S6edkW33E0Wq9ahQ==",
|
||||
"requires": {
|
||||
"prosemirror-inputrules": "^1.1.3"
|
||||
"prosemirror-state": "^1.3.4"
|
||||
}
|
||||
},
|
||||
"@tiptap/extension-document": {
|
||||
|
|
@ -82,26 +74,23 @@
|
|||
}
|
||||
},
|
||||
"@tiptap/extension-gapcursor": {
|
||||
"version": "2.0.0-beta.23",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.0-beta.23.tgz",
|
||||
"integrity": "sha512-yav1pAZ6YTZ4GzRaY3x0KutghLfC0Z6g/KXFzdE5KD5nxBhLUhid9rZ/kQiVPmZx2R0M/O5C+mdScYS2UzMmqA==",
|
||||
"version": "2.0.0-beta.28",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.0-beta.28.tgz",
|
||||
"integrity": "sha512-8JsvzVRh/ZzO+yEj7HtpXOcHo7eYIo2/uSIbFx24RM3f1TZd2/icFHUg8yMlj0tdXk9i6N270t2L/Qs7SysvFA==",
|
||||
"requires": {
|
||||
"@types/prosemirror-gapcursor": "^1.0.4",
|
||||
"prosemirror-gapcursor": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"@tiptap/extension-hard-break": {
|
||||
"version": "2.0.0-beta.20",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.20.tgz",
|
||||
"integrity": "sha512-tLZ53VMse2C1skj23tPFlq0wmdOCQ9vRsukz/KaR8VAFQBany0GOFmazu6QEFpC9+TI2gAckIGijEGFyP9QkMA=="
|
||||
"version": "2.0.0-beta.24",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.24.tgz",
|
||||
"integrity": "sha512-0oEHUlQKQZRQmrbKARFPBVVRBWdekR27ro+qg+T6nzEHYSRkJ7dWBswGSNul1v1XEp52JqniZ3el0w1xdYMR0w=="
|
||||
},
|
||||
"@tiptap/extension-heading": {
|
||||
"version": "2.0.0-beta.15",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.0.0-beta.15.tgz",
|
||||
"integrity": "sha512-UoXDwEdCV9KiPh0wj0jj2Jt6VDqkoTaSU3d9bmEBLwg1Gjgbuv39JDst7oxSqbf9rgbl3txbeOy35wVBKe9CqA==",
|
||||
"requires": {
|
||||
"prosemirror-inputrules": "^1.1.3"
|
||||
}
|
||||
"version": "2.0.0-beta.18",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.0.0-beta.18.tgz",
|
||||
"integrity": "sha512-JJtB1pNHkqC9z/z/6B+xQpDd1w5EaLp++yG8eoY9NCq3ZCRhwULda+Uq7reA9D0PdEDpASsTSS2qLu8ZAtgUeA=="
|
||||
},
|
||||
"@tiptap/extension-history": {
|
||||
"version": "2.0.0-beta.16",
|
||||
|
|
@ -113,17 +102,17 @@
|
|||
}
|
||||
},
|
||||
"@tiptap/extension-horizontal-rule": {
|
||||
"version": "2.0.0-beta.20",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.0-beta.20.tgz",
|
||||
"integrity": "sha512-phvZy1ckl4FJ8k6cXce8wOXxv0c50HjU5sA7r6b8u7+Mj0Dc5DZE7enjiDGxoBLP6Yf2lzOgq1phH/r9EihDUQ==",
|
||||
"version": "2.0.0-beta.24",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.0-beta.24.tgz",
|
||||
"integrity": "sha512-kRHJySSJl6QgPvnD+MkN3rzwQgInbq5zE4oxPPbgqYkaAcVSL/q7JBQK1dXMMFaslQlYmEgM6Eh3oU5vo9gUdQ==",
|
||||
"requires": {
|
||||
"prosemirror-state": "^1.3.4"
|
||||
}
|
||||
},
|
||||
"@tiptap/extension-italic": {
|
||||
"version": "2.0.0-beta.15",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.0.0-beta.15.tgz",
|
||||
"integrity": "sha512-ZCz1vCysLdvOUrwODuyBP0BDaemCLh6ib7qTYoSDKdive9kfn0Vc5Fg3o8xgHrtrUfwKIJz/sWOknjDEGIc9cw=="
|
||||
"version": "2.0.0-beta.19",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.0.0-beta.19.tgz",
|
||||
"integrity": "sha512-gEVDqEz25glLuOPW1IOPJy/AIrTgsm164XSi9lnwS1uZa1bmEAKpoALN0+9VzSVaBOmrg2tycMo+iuOhYxFb7w=="
|
||||
},
|
||||
"@tiptap/extension-list-item": {
|
||||
"version": "2.0.0-beta.14",
|
||||
|
|
@ -131,12 +120,9 @@
|
|||
"integrity": "sha512-t6xwEqP+d5443Ul2Jvqz9kXb3ro7bA7yY9HA0vskm3120WxxHW9jxgxZN+82Ot5Tm7nXOAlsN6vuqnt4idnxZQ=="
|
||||
},
|
||||
"@tiptap/extension-ordered-list": {
|
||||
"version": "2.0.0-beta.16",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.0.0-beta.16.tgz",
|
||||
"integrity": "sha512-3n0h5FBfQqBrN/zqF/Ngoyd1bZxeIRLwWI7ak4KulpvOg5V/yw3sw5CSxr2f13ZI9AgGaTq8yOsTYs9dkCCnsQ==",
|
||||
"requires": {
|
||||
"prosemirror-inputrules": "^1.1.3"
|
||||
}
|
||||
"version": "2.0.0-beta.19",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.0.0-beta.19.tgz",
|
||||
"integrity": "sha512-PHC5pA1gohxCJF2xMXOzruPt8XWyWLun3vhJL2AIUUzUoGJmSRhsc8Wreeozdlf8HkKrqnsIuk5tp6IEsau6Pw=="
|
||||
},
|
||||
"@tiptap/extension-paragraph": {
|
||||
"version": "2.0.0-beta.17",
|
||||
|
|
@ -144,9 +130,9 @@
|
|||
"integrity": "sha512-qCQVCf9c2hgaeIdfy22PaoZyW5Vare/1aGkOEAaZma5RjrUbV9hrRKwoW9LsDjnh1EN1fIeKdg02yEhnHWtG8A=="
|
||||
},
|
||||
"@tiptap/extension-strike": {
|
||||
"version": "2.0.0-beta.17",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.0.0-beta.17.tgz",
|
||||
"integrity": "sha512-+WRd0RuCK4+jFKNVN+4rHTa5VMqqGDO2uc+TknkqhFqWp/z96OAGlpHJOwPrnW1fLbpjEBBQIr1vVYSw6KgcZg=="
|
||||
"version": "2.0.0-beta.21",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.0.0-beta.21.tgz",
|
||||
"integrity": "sha512-uYU5k05MChVtZUwWMXAl+xp3IGx/N/+8VZaeJDlIZfg0hew+ZdEGVjwzgCQc1PAuEZriHhbpPg1yOdcHjWga8Q=="
|
||||
},
|
||||
"@tiptap/extension-subscript": {
|
||||
"version": "2.0.0-beta.4",
|
||||
|
|
@ -159,12 +145,12 @@
|
|||
"integrity": "sha512-rTQCnSnloSf6UN1y3zhu6j41MxrcCVWm5JIPX8VEt60WsOXJLAc/YJHLYi2FWhh/Psq8k78sPrmZbjYUrj3Dkw=="
|
||||
},
|
||||
"@tiptap/extension-table": {
|
||||
"version": "2.0.0-beta.31",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.0.0-beta.31.tgz",
|
||||
"integrity": "sha512-yMqnbxaq2DjaZ6EOE9FLSQSO+qHH7oE0rA+ahQkJdy9KycSboKthXBY7P9JeXxariTyD2B/My9x41cuDLWes9w==",
|
||||
"version": "2.0.0-beta.35",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.0.0-beta.35.tgz",
|
||||
"integrity": "sha512-7kdTHgkzZYiFBWN2GyXF+gGo6IodruRs/9f7qeT0i3bhuS2eQ//Tqz3w9w8NdR9APLq6fUgUnQNmdSSqOBzOXA==",
|
||||
"requires": {
|
||||
"prosemirror-tables": "^1.1.1",
|
||||
"prosemirror-view": "^1.20.1"
|
||||
"prosemirror-view": "^1.20.3"
|
||||
}
|
||||
},
|
||||
"@tiptap/extension-table-cell": {
|
||||
|
|
@ -188,28 +174,28 @@
|
|||
"integrity": "sha512-0EtAwuRldCAoFaL/iXgkRepEeOd55rPg5N4FQUN1xTwZT7PDofukP0DG/2jff/Uj17x4uTaJAa9qlFWuNnDvjw=="
|
||||
},
|
||||
"@tiptap/starter-kit": {
|
||||
"version": "2.0.0-beta.115",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.0.0-beta.115.tgz",
|
||||
"integrity": "sha512-GDkjNkp1zRl8K2U9VaClCvmOAASOqCiJiKMccdWKer8uyEEmjpZVhkdMqIQBflX3z9cDxdbh9Ywkqoysg4NFkw==",
|
||||
"version": "2.0.0-beta.129",
|
||||
"resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.0.0-beta.129.tgz",
|
||||
"integrity": "sha512-JCM0Upscww5s0N0ZWk9z+2zbDlYebygnxT5kofoBZB5Qs4yFee/AfvuE4KHtbwL5bk3zPlHWNVePivCYhKwz6Q==",
|
||||
"requires": {
|
||||
"@tiptap/core": "^2.0.0-beta.116",
|
||||
"@tiptap/extension-blockquote": "^2.0.0-beta.15",
|
||||
"@tiptap/extension-bold": "^2.0.0-beta.15",
|
||||
"@tiptap/extension-bullet-list": "^2.0.0-beta.15",
|
||||
"@tiptap/extension-code": "^2.0.0-beta.16",
|
||||
"@tiptap/extension-code-block": "^2.0.0-beta.18",
|
||||
"@tiptap/core": "^2.0.0-beta.127",
|
||||
"@tiptap/extension-blockquote": "^2.0.0-beta.19",
|
||||
"@tiptap/extension-bold": "^2.0.0-beta.19",
|
||||
"@tiptap/extension-bullet-list": "^2.0.0-beta.18",
|
||||
"@tiptap/extension-code": "^2.0.0-beta.20",
|
||||
"@tiptap/extension-code-block": "^2.0.0-beta.24",
|
||||
"@tiptap/extension-document": "^2.0.0-beta.13",
|
||||
"@tiptap/extension-dropcursor": "^2.0.0-beta.19",
|
||||
"@tiptap/extension-gapcursor": "^2.0.0-beta.23",
|
||||
"@tiptap/extension-hard-break": "^2.0.0-beta.20",
|
||||
"@tiptap/extension-heading": "^2.0.0-beta.15",
|
||||
"@tiptap/extension-gapcursor": "^2.0.0-beta.28",
|
||||
"@tiptap/extension-hard-break": "^2.0.0-beta.24",
|
||||
"@tiptap/extension-heading": "^2.0.0-beta.18",
|
||||
"@tiptap/extension-history": "^2.0.0-beta.16",
|
||||
"@tiptap/extension-horizontal-rule": "^2.0.0-beta.20",
|
||||
"@tiptap/extension-italic": "^2.0.0-beta.15",
|
||||
"@tiptap/extension-horizontal-rule": "^2.0.0-beta.24",
|
||||
"@tiptap/extension-italic": "^2.0.0-beta.19",
|
||||
"@tiptap/extension-list-item": "^2.0.0-beta.14",
|
||||
"@tiptap/extension-ordered-list": "^2.0.0-beta.16",
|
||||
"@tiptap/extension-ordered-list": "^2.0.0-beta.19",
|
||||
"@tiptap/extension-paragraph": "^2.0.0-beta.17",
|
||||
"@tiptap/extension-strike": "^2.0.0-beta.17",
|
||||
"@tiptap/extension-strike": "^2.0.0-beta.21",
|
||||
"@tiptap/extension-text": "^2.0.0-beta.13"
|
||||
}
|
||||
},
|
||||
|
|
@ -301,15 +287,6 @@
|
|||
"@types/prosemirror-state": "*"
|
||||
}
|
||||
},
|
||||
"@types/prosemirror-inputrules": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/prosemirror-inputrules/-/prosemirror-inputrules-1.0.4.tgz",
|
||||
"integrity": "sha512-lJIMpOjO47SYozQybUkpV6QmfuQt7GZKHtVrvS+mR5UekA8NMC5HRIVMyaIauJLWhKU6oaNjpVaXdw41kh165g==",
|
||||
"requires": {
|
||||
"@types/prosemirror-model": "*",
|
||||
"@types/prosemirror-state": "*"
|
||||
}
|
||||
},
|
||||
"@types/prosemirror-keymap": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.4.tgz",
|
||||
|
|
@ -1635,9 +1612,9 @@
|
|||
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="
|
||||
},
|
||||
"prosemirror-commands": {
|
||||
"version": "1.1.10",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.1.10.tgz",
|
||||
"integrity": "sha512-IWyBBXNAd44RM6NnBPljwq+/CM2oYCQJkF+YhKEAZNwzW0uFdGf4qComhjbKZzqFdu6Iub2ZhNsXgwPibA0lCQ==",
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.1.11.tgz",
|
||||
"integrity": "sha512-uXDVkOGJbFHocdacMJihrnQCT7tHswO48ewq6ByqLxTwOrI8Y4B4aHvwUbM4epwElv/YjgC+DuqXm/gEHPym4w==",
|
||||
"requires": {
|
||||
"prosemirror-model": "^1.0.0",
|
||||
"prosemirror-state": "^1.0.0",
|
||||
|
|
@ -1675,15 +1652,6 @@
|
|||
"rope-sequence": "^1.3.0"
|
||||
}
|
||||
},
|
||||
"prosemirror-inputrules": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.1.3.tgz",
|
||||
"integrity": "sha512-ZaHCLyBtvbyIHv0f5p6boQTIJjlD6o2NPZiEaZWT2DA+j591zS29QQEMT4lBqwcLW3qRSf7ZvoKNbf05YrsStw==",
|
||||
"requires": {
|
||||
"prosemirror-state": "^1.0.0",
|
||||
"prosemirror-transform": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"prosemirror-keymap": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.1.4.tgz",
|
||||
|
|
@ -1740,9 +1708,9 @@
|
|||
}
|
||||
},
|
||||
"prosemirror-view": {
|
||||
"version": "1.20.1",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.20.1.tgz",
|
||||
"integrity": "sha512-djWORhy3a706mUH4A2dgEEV0IPZqQd1tFyz/ZVHJNoqhSgq82FwG6dq7uqHeUB2KdVSNfI2yc3rwfqlC/ll2pA==",
|
||||
"version": "1.20.3",
|
||||
"resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.20.3.tgz",
|
||||
"integrity": "sha512-2ImL9K/tIEk+aC2GT8shzfmT2U0Y8UQZ13L5AY0A4Tcj09o/ICGE362gKUE3Ze/Xr/nMw61Zv5JMSQUszAj9dw==",
|
||||
"requires": {
|
||||
"prosemirror-model": "^1.14.3",
|
||||
"prosemirror-state": "^1.0.0",
|
||||
|
|
|
|||
|
|
@ -22,14 +22,14 @@
|
|||
"webpack-cli": "^4.8.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tiptap/core": "^2.0.0-beta.116",
|
||||
"@tiptap/core": "^2.0.0-beta.127",
|
||||
"@tiptap/extension-subscript": "^2.0.0-beta.4",
|
||||
"@tiptap/extension-superscript": "^2.0.0-beta.4",
|
||||
"@tiptap/extension-table": "^2.0.0-beta.31",
|
||||
"@tiptap/extension-table": "^2.0.0-beta.35",
|
||||
"@tiptap/extension-table-cell": "^2.0.0-beta.15",
|
||||
"@tiptap/extension-table-header": "^2.0.0-beta.17",
|
||||
"@tiptap/extension-table-row": "^2.0.0-beta.14",
|
||||
"@tiptap/starter-kit": "^2.0.0-beta.115",
|
||||
"@tiptap/starter-kit": "^2.0.0-beta.129",
|
||||
"acorn": "^8.5.0",
|
||||
"bootstrap": "^4.6.0",
|
||||
"bootstrap-icons": "^1.5.0",
|
||||
|
|
|
|||
|
|
@ -295,9 +295,9 @@ public class Images {
|
|||
// with the values for width and height)
|
||||
final int width = parseScaleParameter(widthParam, "width");
|
||||
final int height = parseScaleParameter(heightParam, "height");
|
||||
final java.awt.Image scaledImage = scaleImage(bufferedImage,
|
||||
width,
|
||||
height);
|
||||
final java.awt.Image scaledImage = scaleImage(
|
||||
bufferedImage, width, height
|
||||
);
|
||||
|
||||
final ByteArrayOutputStream outputStream
|
||||
= new ByteArrayOutputStream();
|
||||
|
|
|
|||
|
|
@ -790,6 +790,16 @@
|
|||
<small class="form-text text-muted"
|
||||
id="alttext-help">#{CmsAdminMessages['cms_editor.image_node_view.settings.dialog.alttext.help']}</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="caption">#{CmsAdminMessages['cms_editor.image_node_view.settings.dialog.caption.label']}</label>
|
||||
<input aria-describedby="caption-help"
|
||||
class="form-control"
|
||||
id="caption"
|
||||
required="true"
|
||||
type="text" />
|
||||
<small class="form-text text-muted"
|
||||
id="caption-help">#{CmsAdminMessages['cms_editor.image_node_view.settings.dialog.caption.help']}</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="size">#{CmsAdminMessages['cms_editor.image_node_view.settings.dialog.size.label']}</label>
|
||||
<select aria-describedby="size-help"
|
||||
|
|
@ -965,6 +975,16 @@
|
|||
<small class="form-text text-muted"
|
||||
id="alttext-help">#{CmsAdminMessages['cms_editor.video_node_view.settings.dialog.alttext.help']}</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="caption">#{CmsAdminMessages['cms_editor.video_node_view.settings.dialog.caption.label']}</label>
|
||||
<input aria-describedby="caption-help"
|
||||
class="form-control"
|
||||
id="caption"
|
||||
required="true"
|
||||
type="text" />
|
||||
<small class="form-text text-muted"
|
||||
id="caption-help">#{CmsAdminMessages['cms_editor.video_node_view.settings.dialog.caption.help']}</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="size">#{CmsAdminMessages['cms_editor.video_node_view.settings.dialog.size.label']}</label>
|
||||
<select aria-describedby="size-help"
|
||||
|
|
@ -1127,6 +1147,16 @@
|
|||
<small class="form-text text-muted"
|
||||
id="alttext-help">#{CmsAdminMessages['cms_editor.audio_node_view.settings.dialog.alttext.help']}</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="caption">#{CmsAdminMessages['cms_editor.audio_node_view.settings.dialog.caption.label']}</label>
|
||||
<input aria-describedby="caption-help"
|
||||
class="form-control"
|
||||
id="caption"
|
||||
required="true"
|
||||
type="text" />
|
||||
<small class="form-text text-muted"
|
||||
id="caption-help">#{CmsAdminMessages['cms_editor.audio_node_view.settings.dialog.caption.help']}</small>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="align">#{CmsAdminMessages['cms_editor.audio_node_view.settings.dialog.align.label']}</label>
|
||||
<select aria-describedby="align-help"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { CmsEditorBuilder, CmsEditor } from "./cms-editor";
|
||||
|
||||
document.addEventListener("DOMContentLoaded", event => {
|
||||
document.addEventListener("DOMContentLoaded", (event) => {
|
||||
const editorElem = document.querySelector("#cms-article-text-editor");
|
||||
|
||||
if (editorElem) {
|
||||
|
|
@ -25,22 +25,27 @@ document.addEventListener("DOMContentLoaded", event => {
|
|||
|
||||
builder
|
||||
.buildEditor()
|
||||
.then(editor => {
|
||||
// Temporary for development
|
||||
const submitButton = document.querySelector(".cms-editor-save-button");
|
||||
.then((editor) => {
|
||||
const submitButton = document.querySelector(
|
||||
".cms-editor-save-button"
|
||||
);
|
||||
|
||||
if (submitButton) {
|
||||
submitButton.addEventListener("click", (event) => {
|
||||
event.preventDefault();
|
||||
if (submitButton) {
|
||||
submitButton.addEventListener("click", (event) => {
|
||||
event.preventDefault();
|
||||
|
||||
console.log("HTML output of editor: ");
|
||||
console.log(editor.getEditor().getHTML());
|
||||
});
|
||||
}
|
||||
console.log("HTML output of editor: ");
|
||||
console.log(editor.getEditor().getHTML());
|
||||
});
|
||||
} else {
|
||||
console.error("Save button not found.")
|
||||
}
|
||||
);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error(error);
|
||||
console.trace(error);
|
||||
});
|
||||
} else {
|
||||
console.error("Editor element not found.")
|
||||
}
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import "bootstrap";
|
||||
import * as $ from "jquery";
|
||||
import { ChainedCommands, Editor, Node, mergeAttributes } from "@tiptap/core";
|
||||
import Gapcursor from "@tiptap/extension-gapcursor";
|
||||
// import Gapcursor from "@tiptap/extension-gapcursor";
|
||||
import StarterKit from "@tiptap/starter-kit";
|
||||
import Subscript from "@tiptap/extension-subscript";
|
||||
import Superscript from "@tiptap/extension-superscript";
|
||||
|
|
@ -709,6 +709,14 @@ class CmsEditor {
|
|||
body: params,
|
||||
});
|
||||
if (response.ok) {
|
||||
console.log(`Save response status: ${response.status}`);
|
||||
window.location.href = response.url;
|
||||
// const location = response.headers.get("Location");
|
||||
// if (location) {
|
||||
// window.location.href = location;
|
||||
// } else {
|
||||
// this.showMessage("#cms-editor-msg-save-successful");
|
||||
// }
|
||||
} else {
|
||||
this.showSaveFailedMessage(
|
||||
response.status,
|
||||
|
|
@ -716,6 +724,8 @@ class CmsEditor {
|
|||
);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
console.trace(error);
|
||||
this.showSaveFailedErrMessage(error as string);
|
||||
}
|
||||
}
|
||||
|
|
@ -772,31 +782,39 @@ class CmsEditorBuilder {
|
|||
}
|
||||
|
||||
const variant = await this.fetchVariant(this.variantUrl);
|
||||
console.log(`Got variant: ${variant}`);
|
||||
|
||||
const editor: Editor = new Editor({
|
||||
element: canvasElement,
|
||||
extensions: [
|
||||
AudioNode,
|
||||
Gapcursor,
|
||||
ImageNode,
|
||||
StarterKit,
|
||||
Subscript,
|
||||
Superscript,
|
||||
Table.configure({
|
||||
allowTableNodeSelection: true,
|
||||
cellMinWidth: 100,
|
||||
handleWidth: 25,
|
||||
resizable: true,
|
||||
}),
|
||||
TableRow,
|
||||
TableHeader,
|
||||
TableCell,
|
||||
VideoNode,
|
||||
],
|
||||
content: variant,
|
||||
});
|
||||
try {
|
||||
const editor: Editor = new Editor({
|
||||
element: canvasElement,
|
||||
extensions: [
|
||||
AudioNode,
|
||||
// Gapcursor,
|
||||
ImageNode,
|
||||
StarterKit,
|
||||
Subscript,
|
||||
Superscript,
|
||||
Table.configure({
|
||||
allowTableNodeSelection: true,
|
||||
cellMinWidth: 100,
|
||||
handleWidth: 25,
|
||||
resizable: true,
|
||||
}),
|
||||
TableRow,
|
||||
TableHeader,
|
||||
TableCell,
|
||||
VideoNode,
|
||||
],
|
||||
content: variant,
|
||||
});
|
||||
|
||||
return new CmsEditor(editor, this.editorElem, this.saveUrl);
|
||||
return new CmsEditor(editor, this.editorElem, this.saveUrl);
|
||||
} catch (error) {
|
||||
console.error("Failed to create editor:");
|
||||
console.trace(error);
|
||||
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
protected async fetchVariant(variantUrl: string): Promise<string> {
|
||||
|
|
@ -816,6 +834,8 @@ class CmsEditorBuilder {
|
|||
throw `Failed to load variant. Status: ${response.status}, Status Text: ${response.statusText}`;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
console.trace(error);
|
||||
this.showLoadVariantFailedErrorMessage(error as string);
|
||||
throw error;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -227,6 +227,11 @@ export const AudioNode = Node.create({
|
|||
const altTextInput = settingsDialogElem.querySelector(
|
||||
`input#alttext-${dialogIdNr}`
|
||||
);
|
||||
|
||||
const captionInput = settingsDialogElem.querySelector(
|
||||
`input#caption-${dialogIdNr}`
|
||||
);
|
||||
|
||||
const alignSelect = settingsDialogElem.querySelector(
|
||||
`select#align-${dialogIdNr}`
|
||||
);
|
||||
|
|
@ -238,6 +243,12 @@ export const AudioNode = Node.create({
|
|||
console.warn("Input for alt text not found.");
|
||||
}
|
||||
|
||||
if (captionInput) {
|
||||
(captionInput as HTMLInputElement).value = node.attrs.figCaption;
|
||||
} else {
|
||||
console.warn("Input for caption not found.");
|
||||
}
|
||||
|
||||
if (alignSelect) {
|
||||
const optionElems = alignSelect.querySelectorAll("option");
|
||||
for (let i = 0; i < optionElems.length; i++) {
|
||||
|
|
@ -254,14 +265,17 @@ export const AudioNode = Node.create({
|
|||
|
||||
if (submitButton) {
|
||||
submitButton.addEventListener("click", (event) => {
|
||||
const inputElem = altTextInput as HTMLInputElement;
|
||||
if (altTextInput) {
|
||||
node.attrs.altText = inputElem.value;
|
||||
if (audioElem) {
|
||||
audioElem.textContent = inputElem.value;
|
||||
}
|
||||
} else {
|
||||
console.warn("Input for alt text not found.");
|
||||
const altInputElem = altTextInput as HTMLInputElement;
|
||||
node.attrs.altText = altInputElem.value;
|
||||
if (audioElem) {
|
||||
audioElem.textContent = altInputElem.value;
|
||||
}
|
||||
|
||||
const captionInputElem =
|
||||
captionInput as HTMLInputElement;
|
||||
node.attrs.figCaption = captionInputElem.value;
|
||||
if (figCaptionElem) {
|
||||
figCaptionElem.textContent = captionInputElem.value;
|
||||
}
|
||||
|
||||
if (alignSelect) {
|
||||
|
|
@ -335,7 +349,7 @@ export const AudioNode = Node.create({
|
|||
textContent: node.attrs.altText,
|
||||
},
|
||||
],
|
||||
["figcaption", [node.attrs.figCaption]],
|
||||
["figcaption", node.attrs.figCaption],
|
||||
];
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -144,7 +144,15 @@ export const ImageNode = Node.create({
|
|||
|
||||
const template = templateNode as HTMLTemplateElement;
|
||||
const nodeView = template.content.cloneNode(true) as HTMLElement;
|
||||
|
||||
const imgElem = nodeView.querySelector("img");
|
||||
if (imgElem) {
|
||||
imgElem.src = node.attrs.imgSrc;
|
||||
imgElem.alt = node.attrs.altText;
|
||||
} else {
|
||||
console.error("No img element.");
|
||||
}
|
||||
|
||||
const dialogIdNr = Math.floor(Math.random() * 1000000000);
|
||||
|
||||
const selectDialogId = `librecms-image-node-select-image-dialog-${dialogIdNr}`;
|
||||
|
|
@ -266,6 +274,11 @@ export const ImageNode = Node.create({
|
|||
const altTextInput = settingsDialogElem.querySelector(
|
||||
`input#alttext-${dialogIdNr}`
|
||||
);
|
||||
|
||||
const captionInput = settingsDialogElem.querySelector(
|
||||
`input#caption-${dialogIdNr}`
|
||||
);
|
||||
|
||||
const alignSelect = settingsDialogElem.querySelector(
|
||||
`select#align-${dialogIdNr}`
|
||||
);
|
||||
|
|
@ -285,6 +298,13 @@ export const ImageNode = Node.create({
|
|||
console.warn("Input for alt text not found.");
|
||||
}
|
||||
|
||||
if (captionInput) {
|
||||
(captionInput as HTMLInputElement).value =
|
||||
node.attrs.figCaption;
|
||||
} else {
|
||||
console.warn("Input for caption not found.");
|
||||
}
|
||||
|
||||
if (alignSelect) {
|
||||
const optionElems = alignSelect.querySelectorAll("option");
|
||||
for (let i = 0; i < optionElems.length; i++) {
|
||||
|
|
@ -322,14 +342,17 @@ export const ImageNode = Node.create({
|
|||
|
||||
if (submitButton) {
|
||||
submitButton.addEventListener("click", (event) => {
|
||||
const inputElem = altTextInput as HTMLInputElement;
|
||||
if (altTextInput) {
|
||||
node.attrs.altText = inputElem.value;
|
||||
if (imgElem) {
|
||||
imgElem.alt = inputElem.value;
|
||||
}
|
||||
} else {
|
||||
console.warn("Input for alt text not found.");
|
||||
const altInputElem = altTextInput as HTMLInputElement;
|
||||
node.attrs.altText = altInputElem.value;
|
||||
if (imgElem) {
|
||||
imgElem.alt = altInputElem.value;
|
||||
}
|
||||
|
||||
const captionInputElem =
|
||||
captionInput as HTMLInputElement;
|
||||
node.attrs.figCaption = captionInputElem.value;
|
||||
if (figCaptionElem) {
|
||||
figCaptionElem.textContent = captionInputElem.value;
|
||||
}
|
||||
|
||||
if (alignSelect) {
|
||||
|
|
@ -434,7 +457,7 @@ export const ImageNode = Node.create({
|
|||
src: node.attrs.imgSrc,
|
||||
},
|
||||
],
|
||||
["figcaption", [node.attrs.figCaption]],
|
||||
["figcaption", node.attrs.figCaption],
|
||||
];
|
||||
},
|
||||
});
|
||||
|
|
@ -532,6 +555,7 @@ function loadImages(
|
|||
})
|
||||
.catch((error) => {
|
||||
console.error(error);
|
||||
console.trace(error);
|
||||
});
|
||||
} else {
|
||||
console.error(
|
||||
|
|
@ -541,5 +565,6 @@ function loadImages(
|
|||
})
|
||||
.catch((error) => {
|
||||
console.error(error);
|
||||
console.trace(error);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -239,6 +239,11 @@ export const VideoNode = Node.create({
|
|||
const altTextInput = settingsDialogElem.querySelector(
|
||||
`input#alttext-${dialogIdNr}`
|
||||
);
|
||||
|
||||
const captionInput = settingsDialogElem.querySelector(
|
||||
`input#caption-${dialogIdNr}`
|
||||
);
|
||||
|
||||
const alignSelect = settingsDialogElem.querySelector(
|
||||
`select#align-${dialogIdNr}`
|
||||
);
|
||||
|
|
@ -254,6 +259,13 @@ export const VideoNode = Node.create({
|
|||
console.warn("Input for alt text not found.");
|
||||
}
|
||||
|
||||
if (captionInput) {
|
||||
(captionInput as HTMLInputElement).value =
|
||||
node.attrs.figCaption;
|
||||
} else {
|
||||
console.warn("Input for caption not found.");
|
||||
}
|
||||
|
||||
if (alignSelect) {
|
||||
const optionElems = alignSelect.querySelectorAll("option");
|
||||
for (let i = 0; i < optionElems.length; i++) {
|
||||
|
|
@ -284,14 +296,17 @@ export const VideoNode = Node.create({
|
|||
|
||||
if (submitButton) {
|
||||
submitButton.addEventListener("click", (event) => {
|
||||
const inputElem = altTextInput as HTMLInputElement;
|
||||
if (altTextInput) {
|
||||
node.attrs.altText = inputElem.value;
|
||||
if (videoElem) {
|
||||
videoElem.textContent = inputElem.value;
|
||||
}
|
||||
} else {
|
||||
console.warn("Input for alt text not found.");
|
||||
const altInputElem = altTextInput as HTMLInputElement;
|
||||
node.attrs.altText = altInputElem.value;
|
||||
if (videoElem) {
|
||||
videoElem.textContent = altInputElem.value;
|
||||
}
|
||||
|
||||
const captionInputElem =
|
||||
captionInput as HTMLInputElement;
|
||||
node.attrs.figCaption = captionInputElem.value;
|
||||
if (figCaptionElem) {
|
||||
figCaptionElem.textContent = captionInputElem.value;
|
||||
}
|
||||
|
||||
if (alignSelect) {
|
||||
|
|
@ -383,7 +398,7 @@ export const VideoNode = Node.create({
|
|||
textContent: node.attrs.altText,
|
||||
},
|
||||
],
|
||||
["figcaption", [node.attrs.figCaption]],
|
||||
["figcaption", node.attrs.figCaption],
|
||||
];
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
module.exports = {
|
||||
mode: "production",
|
||||
mode: "development",
|
||||
devtool: "source-map",
|
||||
optimization: {
|
||||
chunkIds: false
|
||||
},
|
||||
entry: {
|
||||
"cms-admin": "./src/main/typescript/content-sections/cms-admin.ts",
|
||||
"article-text-step": "./src/main/typescript/content-sections/article-text-step.ts"
|
||||
|
|
|
|||
Loading…
Reference in New Issue