Node View for image node

pull/10/head
Jens Pelzetter 2021-09-30 20:50:21 +02:00
parent 842d9e708b
commit d72a740c15
5 changed files with 178 additions and 127 deletions

View File

@ -11,9 +11,9 @@
"dev": true "dev": true
}, },
"@tiptap/core": { "@tiptap/core": {
"version": "2.0.0-beta.104", "version": "2.0.0-beta.116",
"resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.0.0-beta.104.tgz", "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.0.0-beta.116.tgz",
"integrity": "sha512-eGmHljAgGFcIFHTykBaxOCUOeGJoZOJOwa3il7ci2GxrrMyvhvU421mv5njFoHxAiNQJEgdu+kWitDGYuxbixg==", "integrity": "sha512-5x3HkT71IxF56lPEHPSTqOqkm1fVfHgVfyBbiNA3Qsz47npgJCDelDr6PHY8qlzxLCaN4dMDQUXEsvDDAiRouw==",
"requires": { "requires": {
"@types/prosemirror-commands": "^1.0.4", "@types/prosemirror-commands": "^1.0.4",
"@types/prosemirror-inputrules": "^1.0.4", "@types/prosemirror-inputrules": "^1.0.4",
@ -22,15 +22,15 @@
"@types/prosemirror-schema-list": "^1.0.3", "@types/prosemirror-schema-list": "^1.0.3",
"@types/prosemirror-state": "^1.2.7", "@types/prosemirror-state": "^1.2.7",
"@types/prosemirror-transform": "^1.1.4", "@types/prosemirror-transform": "^1.1.4",
"@types/prosemirror-view": "^1.19.0", "@types/prosemirror-view": "^1.19.1",
"prosemirror-commands": "^1.1.10", "prosemirror-commands": "^1.1.10",
"prosemirror-inputrules": "^1.1.3", "prosemirror-inputrules": "^1.1.3",
"prosemirror-keymap": "^1.1.3", "prosemirror-keymap": "^1.1.3",
"prosemirror-model": "^1.14.3", "prosemirror-model": "^1.14.3",
"prosemirror-schema-list": "^1.1.5", "prosemirror-schema-list": "^1.1.6",
"prosemirror-state": "^1.3.4", "prosemirror-state": "^1.3.4",
"prosemirror-transform": "^1.3.2", "prosemirror-transform": "^1.3.3",
"prosemirror-view": "^1.20.0" "prosemirror-view": "^1.20.1"
} }
}, },
"@tiptap/extension-blockquote": { "@tiptap/extension-blockquote": {
@ -82,18 +82,18 @@
} }
}, },
"@tiptap/extension-gapcursor": { "@tiptap/extension-gapcursor": {
"version": "2.0.0-beta.19", "version": "2.0.0-beta.23",
"resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.0-beta.19.tgz", "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.0-beta.23.tgz",
"integrity": "sha512-GZYMR+Z45bn87CMuOHyxzTJOFoCv58mNakIBdSGX+8A+ExBFeZr/qLqxDxN3wz+LRqy7pREe5K3UxJxpsYnCzA==", "integrity": "sha512-yav1pAZ6YTZ4GzRaY3x0KutghLfC0Z6g/KXFzdE5KD5nxBhLUhid9rZ/kQiVPmZx2R0M/O5C+mdScYS2UzMmqA==",
"requires": { "requires": {
"@types/prosemirror-gapcursor": "^1.0.4", "@types/prosemirror-gapcursor": "^1.0.4",
"prosemirror-gapcursor": "^1.1.5" "prosemirror-gapcursor": "^1.2.0"
} }
}, },
"@tiptap/extension-hard-break": { "@tiptap/extension-hard-break": {
"version": "2.0.0-beta.16", "version": "2.0.0-beta.20",
"resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.16.tgz", "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.20.tgz",
"integrity": "sha512-vRw8OIJlvlr17Y7mtJGL/dWbotX9fjgmA/zYqL//UIXQjp1FWW5JMh5E1Z5+jlJpGWjsWGH8fHpGSM2JCZVPRw==" "integrity": "sha512-tLZ53VMse2C1skj23tPFlq0wmdOCQ9vRsukz/KaR8VAFQBany0GOFmazu6QEFpC9+TI2gAckIGijEGFyP9QkMA=="
}, },
"@tiptap/extension-heading": { "@tiptap/extension-heading": {
"version": "2.0.0-beta.15", "version": "2.0.0-beta.15",
@ -113,9 +113,9 @@
} }
}, },
"@tiptap/extension-horizontal-rule": { "@tiptap/extension-horizontal-rule": {
"version": "2.0.0-beta.19", "version": "2.0.0-beta.20",
"resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.0-beta.19.tgz", "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.0-beta.20.tgz",
"integrity": "sha512-RrU7+inExgC+rRmFWoTxALbu/IgRGRik11LPhMhqrCB+n0XFRUMyVEb/jbfgHWVrPmTXq0MbSWW6LYw3iREzRA==", "integrity": "sha512-phvZy1ckl4FJ8k6cXce8wOXxv0c50HjU5sA7r6b8u7+Mj0Dc5DZE7enjiDGxoBLP6Yf2lzOgq1phH/r9EihDUQ==",
"requires": { "requires": {
"prosemirror-state": "^1.3.4" "prosemirror-state": "^1.3.4"
} }
@ -159,23 +159,23 @@
"integrity": "sha512-rTQCnSnloSf6UN1y3zhu6j41MxrcCVWm5JIPX8VEt60WsOXJLAc/YJHLYi2FWhh/Psq8k78sPrmZbjYUrj3Dkw==" "integrity": "sha512-rTQCnSnloSf6UN1y3zhu6j41MxrcCVWm5JIPX8VEt60WsOXJLAc/YJHLYi2FWhh/Psq8k78sPrmZbjYUrj3Dkw=="
}, },
"@tiptap/extension-table": { "@tiptap/extension-table": {
"version": "2.0.0-beta.30", "version": "2.0.0-beta.31",
"resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.0.0-beta.30.tgz", "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.0.0-beta.31.tgz",
"integrity": "sha512-s6+HRo3sFv7SUprsUAAF27hg7inITpzl78If3XdrpscuzTVuRmd7GsFnY+aZGPVikekwCMjp/0klE92P4A7w0w==", "integrity": "sha512-yMqnbxaq2DjaZ6EOE9FLSQSO+qHH7oE0rA+ahQkJdy9KycSboKthXBY7P9JeXxariTyD2B/My9x41cuDLWes9w==",
"requires": { "requires": {
"prosemirror-tables": "^1.1.1", "prosemirror-tables": "^1.1.1",
"prosemirror-view": "^1.20.0" "prosemirror-view": "^1.20.1"
} }
}, },
"@tiptap/extension-table-cell": { "@tiptap/extension-table-cell": {
"version": "2.0.0-beta.14", "version": "2.0.0-beta.15",
"resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.0.0-beta.14.tgz", "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.0.0-beta.15.tgz",
"integrity": "sha512-VoZ8SF8urU1/I3XnjDez2pbDO0h4cow+o8Xi6mhkMTXbxr212T674W7lu5DVMJ4Y1NF1eLe9eJ9kGJE43cA0+Q==" "integrity": "sha512-MyZHJlFOF2z4Y1DQ/uuFbDPYQxSrl/PW8TEpAh2UQI/PGVsKkjzHItTvLtWSgo7t+tuPHbEOvIBDfpQKSyfbWg=="
}, },
"@tiptap/extension-table-header": { "@tiptap/extension-table-header": {
"version": "2.0.0-beta.16", "version": "2.0.0-beta.17",
"resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.0.0-beta.16.tgz", "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.0.0-beta.17.tgz",
"integrity": "sha512-L/r+ez4G7ZlninS4MwK4tYoVuA6bMMCz7OLvHGBmp24vZm7OA3qyUP4+GGtOXtdhv3aydeBis03gSrrB50aRWw==" "integrity": "sha512-HctO608QQEPe29QBtxXcDfBKfv+m9u2jBJ5AYpo7HjYGfUYRxv5uQpGXX3RW/c50+AhyTF0skF6Td1jiZcEPPw=="
}, },
"@tiptap/extension-table-row": { "@tiptap/extension-table-row": {
"version": "2.0.0-beta.14", "version": "2.0.0-beta.14",
@ -188,11 +188,11 @@
"integrity": "sha512-0EtAwuRldCAoFaL/iXgkRepEeOd55rPg5N4FQUN1xTwZT7PDofukP0DG/2jff/Uj17x4uTaJAa9qlFWuNnDvjw==" "integrity": "sha512-0EtAwuRldCAoFaL/iXgkRepEeOd55rPg5N4FQUN1xTwZT7PDofukP0DG/2jff/Uj17x4uTaJAa9qlFWuNnDvjw=="
}, },
"@tiptap/starter-kit": { "@tiptap/starter-kit": {
"version": "2.0.0-beta.103", "version": "2.0.0-beta.115",
"resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.0.0-beta.103.tgz", "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.0.0-beta.115.tgz",
"integrity": "sha512-Kmd7hLCc2JmmMijc6ng7u+OQBJYZBQJKznjgiUSuwJhAkROVdjgx7mz8p2J+tl81QpM4yHVBpj4W9Al2kiFRng==", "integrity": "sha512-GDkjNkp1zRl8K2U9VaClCvmOAASOqCiJiKMccdWKer8uyEEmjpZVhkdMqIQBflX3z9cDxdbh9Ywkqoysg4NFkw==",
"requires": { "requires": {
"@tiptap/core": "^2.0.0-beta.104", "@tiptap/core": "^2.0.0-beta.116",
"@tiptap/extension-blockquote": "^2.0.0-beta.15", "@tiptap/extension-blockquote": "^2.0.0-beta.15",
"@tiptap/extension-bold": "^2.0.0-beta.15", "@tiptap/extension-bold": "^2.0.0-beta.15",
"@tiptap/extension-bullet-list": "^2.0.0-beta.15", "@tiptap/extension-bullet-list": "^2.0.0-beta.15",
@ -200,11 +200,11 @@
"@tiptap/extension-code-block": "^2.0.0-beta.18", "@tiptap/extension-code-block": "^2.0.0-beta.18",
"@tiptap/extension-document": "^2.0.0-beta.13", "@tiptap/extension-document": "^2.0.0-beta.13",
"@tiptap/extension-dropcursor": "^2.0.0-beta.19", "@tiptap/extension-dropcursor": "^2.0.0-beta.19",
"@tiptap/extension-gapcursor": "^2.0.0-beta.19", "@tiptap/extension-gapcursor": "^2.0.0-beta.23",
"@tiptap/extension-hard-break": "^2.0.0-beta.16", "@tiptap/extension-hard-break": "^2.0.0-beta.20",
"@tiptap/extension-heading": "^2.0.0-beta.15", "@tiptap/extension-heading": "^2.0.0-beta.15",
"@tiptap/extension-history": "^2.0.0-beta.16", "@tiptap/extension-history": "^2.0.0-beta.16",
"@tiptap/extension-horizontal-rule": "^2.0.0-beta.19", "@tiptap/extension-horizontal-rule": "^2.0.0-beta.20",
"@tiptap/extension-italic": "^2.0.0-beta.15", "@tiptap/extension-italic": "^2.0.0-beta.15",
"@tiptap/extension-list-item": "^2.0.0-beta.14", "@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.16",
@ -255,9 +255,9 @@
"dev": true "dev": true
}, },
"@types/node": { "@types/node": {
"version": "16.7.10", "version": "16.10.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.2.tgz",
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==", "integrity": "sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==",
"dev": true "dev": true
}, },
"@types/orderedmap": { "@types/orderedmap": {
@ -358,9 +358,9 @@
} }
}, },
"@types/prosemirror-view": { "@types/prosemirror-view": {
"version": "1.19.0", "version": "1.19.1",
"resolved": "https://registry.npmjs.org/@types/prosemirror-view/-/prosemirror-view-1.19.0.tgz", "resolved": "https://registry.npmjs.org/@types/prosemirror-view/-/prosemirror-view-1.19.1.tgz",
"integrity": "sha512-Y8OX9L+Yni0HgXAN9wcNSf61IId13uqpURnRC5WkmCOlVDsr35vfGjj+tcaQL4dZzblsu3bRkXI/c0oGXp+xgw==", "integrity": "sha512-fyQ4NVxAdfISWrE2qT8cpZdosXoH/1JuVYMBs9CdaXPbvi/8R2L2tkkcMRM314piKrO8nfYH5OBZKzP2Ax3jtA==",
"requires": { "requires": {
"@types/prosemirror-model": "*", "@types/prosemirror-model": "*",
"@types/prosemirror-state": "*", "@types/prosemirror-state": "*",
@ -559,9 +559,9 @@
"dev": true "dev": true
}, },
"acorn": { "acorn": {
"version": "8.4.1", "version": "8.5.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
"integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==" "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q=="
}, },
"acorn-import-assertions": { "acorn-import-assertions": {
"version": "1.7.6", "version": "1.7.6",
@ -648,16 +648,16 @@
} }
}, },
"browserslist": { "browserslist": {
"version": "4.16.8", "version": "4.17.1",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.1.tgz",
"integrity": "sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==", "integrity": "sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"caniuse-lite": "^1.0.30001251", "caniuse-lite": "^1.0.30001259",
"colorette": "^1.3.0", "electron-to-chromium": "^1.3.846",
"electron-to-chromium": "^1.3.811",
"escalade": "^3.1.1", "escalade": "^3.1.1",
"node-releases": "^1.1.75" "nanocolors": "^0.1.5",
"node-releases": "^1.1.76"
} }
}, },
"buffer-from": { "buffer-from": {
@ -677,9 +677,9 @@
} }
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001254", "version": "1.0.30001261",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001254.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001261.tgz",
"integrity": "sha512-GxeHOvR0LFMYPmFGA+NiTOt9uwYDxB3h154tW2yBYwfz2EMX3i1IBgr6gmJGfU0K8KQsqPa5XqLD8zVdP5lUzA==", "integrity": "sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA==",
"dev": true "dev": true
}, },
"chalk": { "chalk": {
@ -782,15 +782,15 @@
} }
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.830", "version": "1.3.854",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.830.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.854.tgz",
"integrity": "sha512-gBN7wNAxV5vl1430dG+XRcQhD4pIeYeak6p6rjdCtlz5wWNwDad8jwvphe5oi1chL5MV6RNRikfffBBiFuj+rQ==", "integrity": "sha512-00/IIC1mFPkq32MhUJyLdcTp7+wsKK2G3Sb65GSas9FKJQGYkDcZ4GwJkkxf5YyM3ETvl6n+toV8OmtXl4IA/g==",
"dev": true "dev": true
}, },
"enhanced-resolve": { "enhanced-resolve": {
"version": "5.8.2", "version": "5.8.3",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz",
"integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==",
"dev": true, "dev": true,
"requires": { "requires": {
"graceful-fs": "^4.2.4", "graceful-fs": "^4.2.4",
@ -838,9 +838,9 @@
} }
}, },
"es-module-lexer": { "es-module-lexer": {
"version": "0.7.1", "version": "0.9.1",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.1.tgz",
"integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", "integrity": "sha512-17Ed9misDnpyNBJh63g1OhW3qUFecDgGOivI85JeZY/LGhDum8e+cltukbkSK8pcJnXXEkya56sp4vSS1nzoUw==",
"dev": true "dev": true
}, },
"es-to-primitive": { "es-to-primitive": {
@ -1193,9 +1193,9 @@
"dev": true "dev": true
}, },
"is-glob": { "is-glob": {
"version": "4.0.1", "version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true, "dev": true,
"requires": { "requires": {
"is-extglob": "^2.1.1" "is-extglob": "^2.1.1"
@ -1278,9 +1278,9 @@
"dev": true "dev": true
}, },
"jest-worker": { "jest-worker": {
"version": "27.1.0", "version": "27.2.4",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.0.tgz", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.4.tgz",
"integrity": "sha512-mO4PHb2QWLn9yRXGp7rkvXLAYuxwhq1ZYUo0LoDhg8wqvv4QizP1ZWEJOeolgbEgAWZLIEU0wsku8J+lGWfBhg==", "integrity": "sha512-Zq9A2Pw59KkVjBBKD1i3iE2e22oSjXhUKKuAK1HGX8flGwkm6NMozyEYzKd41hXc64dbd/0eWFeEEuxqXyhM+g==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/node": "*", "@types/node": "*",
@ -1416,6 +1416,12 @@
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
}, },
"nanocolors": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz",
"integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==",
"dev": true
},
"neo-async": { "neo-async": {
"version": "2.6.2", "version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
@ -1429,9 +1435,9 @@
"dev": true "dev": true
}, },
"node-releases": { "node-releases": {
"version": "1.1.75", "version": "1.1.76",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz",
"integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", "integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==",
"dev": true "dev": true
}, },
"normalize-package-data": { "normalize-package-data": {
@ -1649,9 +1655,9 @@
} }
}, },
"prosemirror-gapcursor": { "prosemirror-gapcursor": {
"version": "1.1.5", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.1.5.tgz", "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.2.0.tgz",
"integrity": "sha512-SjbUZq5pgsBDuV3hu8GqgIpZR5eZvGLM+gPQTqjVVYSMUCfKW3EGXTEYaLHEl1bGduwqNC95O3bZflgtAb4L6w==", "integrity": "sha512-yCLy5+0rVqLir/KcHFathQj4Rf8aRHi80FmEfKtM0JmyzvwdomslLzDZ/pX4oFhFKDgjl/WBBBFNqDyNifWg7g==",
"requires": { "requires": {
"prosemirror-keymap": "^1.0.0", "prosemirror-keymap": "^1.0.0",
"prosemirror-model": "^1.0.0", "prosemirror-model": "^1.0.0",
@ -1696,9 +1702,9 @@
} }
}, },
"prosemirror-schema-list": { "prosemirror-schema-list": {
"version": "1.1.5", "version": "1.1.6",
"resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.1.5.tgz", "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.1.6.tgz",
"integrity": "sha512-9gadhga/wySVfb/iZ2vOpndbG0XroeLw0HkkZN5demNbOea6U5oQtJmvyYWC7ZVf3WkhmVdVsOXrllM9JcC20A==", "integrity": "sha512-aFGEdaCWmJzouZ8DwedmvSsL50JpRkqhQ6tcpThwJONVVmCgI36LJHtoQ4VGZbusMavaBhXXr33zyD2IVsTlkw==",
"requires": { "requires": {
"prosemirror-model": "^1.0.0", "prosemirror-model": "^1.0.0",
"prosemirror-transform": "^1.0.0" "prosemirror-transform": "^1.0.0"
@ -1726,9 +1732,9 @@
} }
}, },
"prosemirror-transform": { "prosemirror-transform": {
"version": "1.3.2", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.3.2.tgz", "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.3.3.tgz",
"integrity": "sha512-/G6d/u9Mf6Bv3H1XR8VxhpjmUO75LYmnvj+s3ZfZpakU1hnQbsvCEybml1B3f2IWUAAQRFkbO1PnsbFhLZsYsw==", "integrity": "sha512-9NLVXy1Sfa2G6qPqhWMkEvwQQMTw7OyTqOZbJaGQWsCeH3hH5Cw+c5eNaLM1Uu75EyKLsEZhJ93XpHJBa6RX8A==",
"requires": { "requires": {
"prosemirror-model": "^1.0.0" "prosemirror-model": "^1.0.0"
} }
@ -1829,9 +1835,9 @@
"dev": true "dev": true
}, },
"sass": { "sass": {
"version": "1.39.0", "version": "1.42.1",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.39.0.tgz", "resolved": "https://registry.npmjs.org/sass/-/sass-1.42.1.tgz",
"integrity": "sha512-F4o+RhJkNOIG0b6QudYU8c78ZADKZjKDk5cyrf8XTKWfrgbtyVVXImFstJrc+1pkQDCggyidIOytq6gS4gCCZg==", "integrity": "sha512-/zvGoN8B7dspKc5mC6HlaygyCBRvnyzzgD5khiaCfglWztY99cYoiTUksVx11NlnemrcfH5CEaCpsUKoW0cQqg==",
"dev": true, "dev": true,
"requires": { "requires": {
"chokidar": ">=3.0.0 <4.0.0" "chokidar": ">=3.0.0 <4.0.0"
@ -1922,9 +1928,9 @@
"dev": true "dev": true
}, },
"source-map-support": { "source-map-support": {
"version": "0.5.19", "version": "0.5.20",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz",
"integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==",
"dev": true, "dev": true,
"requires": { "requires": {
"buffer-from": "^1.0.0", "buffer-from": "^1.0.0",
@ -2016,20 +2022,20 @@
} }
}, },
"tapable": { "tapable": {
"version": "2.2.0", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
"integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
"dev": true "dev": true
}, },
"terser": { "terser": {
"version": "5.7.2", "version": "5.9.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz",
"integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"commander": "^2.20.0", "commander": "^2.20.0",
"source-map": "~0.7.2", "source-map": "~0.7.2",
"source-map-support": "~0.5.19" "source-map-support": "~0.5.20"
}, },
"dependencies": { "dependencies": {
"source-map": { "source-map": {
@ -2041,9 +2047,9 @@
} }
}, },
"terser-webpack-plugin": { "terser-webpack-plugin": {
"version": "5.2.3", "version": "5.2.4",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.3.tgz", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz",
"integrity": "sha512-eDbuaDlXhVaaoKuLD3DTNTozKqln6xOG6Us0SzlKG5tNlazG+/cdl8pm9qiF1Di89iWScTI0HcO+CDcf2dkXiw==", "integrity": "sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==",
"dev": true, "dev": true,
"requires": { "requires": {
"jest-worker": "^27.0.6", "jest-worker": "^27.0.6",
@ -2064,9 +2070,9 @@
} }
}, },
"ts-loader": { "ts-loader": {
"version": "9.2.5", "version": "9.2.6",
"resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.5.tgz", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.6.tgz",
"integrity": "sha512-al/ATFEffybdRMUIr5zMEWQdVnCGMUA9d3fXJ8dBVvBlzytPvIszoG9kZoR+94k6/i293RnVOXwMaWbXhNy9pQ==", "integrity": "sha512-QMTC4UFzHmu9wU2VHZEmWWE9cUajjfcdcws+Gh7FhiO+Dy0RnR1bNz0YCHqhI0yRowCE9arVnNxYHqELOy9Hjw==",
"dev": true, "dev": true,
"requires": { "requires": {
"chalk": "^4.1.0", "chalk": "^4.1.0",
@ -2136,9 +2142,9 @@
} }
}, },
"typescript": { "typescript": {
"version": "4.4.2", "version": "4.4.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz",
"integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==",
"dev": true "dev": true
}, },
"unbox-primitive": { "unbox-primitive": {
@ -2194,9 +2200,9 @@
} }
}, },
"webpack": { "webpack": {
"version": "5.52.0", "version": "5.55.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.52.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.55.1.tgz",
"integrity": "sha512-yRZOat8jWGwBwHpco3uKQhVU7HYaNunZiJ4AkAVQkPCUGoZk/tiIXiwG+8HIy/F+qsiZvSOa+GLQOj3q5RKRYg==", "integrity": "sha512-EYp9lwaOOAs+AA/KviNZ7bQiITHm4bXQvyTPewD2+f5YGjv6sfiClm40yeX5FgBMxh5bxcB6LryiFoP09B97Ug==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/eslint-scope": "^3.7.0", "@types/eslint-scope": "^3.7.0",
@ -2208,8 +2214,8 @@
"acorn-import-assertions": "^1.7.6", "acorn-import-assertions": "^1.7.6",
"browserslist": "^4.14.5", "browserslist": "^4.14.5",
"chrome-trace-event": "^1.0.2", "chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.8.0", "enhanced-resolve": "^5.8.3",
"es-module-lexer": "^0.7.1", "es-module-lexer": "^0.9.0",
"eslint-scope": "5.1.1", "eslint-scope": "5.1.1",
"events": "^3.2.0", "events": "^3.2.0",
"glob-to-regexp": "^0.4.1", "glob-to-regexp": "^0.4.1",
@ -2265,9 +2271,9 @@
} }
}, },
"webpack-sources": { "webpack-sources": {
"version": "3.2.0", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.0.tgz", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.1.tgz",
"integrity": "sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw==", "integrity": "sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA==",
"dev": true "dev": true
}, },
"which": { "which": {

View File

@ -15,22 +15,22 @@
"@types/jquery": "^3.5.6", "@types/jquery": "^3.5.6",
"@types/sortablejs": "^1.10.7", "@types/sortablejs": "^1.10.7",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"sass": "^1.38.2", "sass": "^1.42.1",
"ts-loader": "^9.2.5", "ts-loader": "^9.2.6",
"typescript": "^4.4.2", "typescript": "^4.4.3",
"webpack": "^5.51.1", "webpack": "^5.55.1",
"webpack-cli": "^4.8.0" "webpack-cli": "^4.8.0"
}, },
"dependencies": { "dependencies": {
"@tiptap/core": "^2.0.0-beta.103", "@tiptap/core": "^2.0.0-beta.116",
"@tiptap/extension-subscript": "^2.0.0-beta.4", "@tiptap/extension-subscript": "^2.0.0-beta.4",
"@tiptap/extension-superscript": "^2.0.0-beta.4", "@tiptap/extension-superscript": "^2.0.0-beta.4",
"@tiptap/extension-table": "^2.0.0-beta.30", "@tiptap/extension-table": "^2.0.0-beta.31",
"@tiptap/extension-table-cell": "^2.0.0-beta.14", "@tiptap/extension-table-cell": "^2.0.0-beta.15",
"@tiptap/extension-table-header": "^2.0.0-beta.16", "@tiptap/extension-table-header": "^2.0.0-beta.17",
"@tiptap/extension-table-row": "^2.0.0-beta.14", "@tiptap/extension-table-row": "^2.0.0-beta.14",
"@tiptap/starter-kit": "^2.0.0-beta.102", "@tiptap/starter-kit": "^2.0.0-beta.115",
"acorn": "^8.4.1", "acorn": "^8.5.0",
"bootstrap": "^4.6.0", "bootstrap": "^4.6.0",
"bootstrap-icons": "^1.5.0", "bootstrap-icons": "^1.5.0",
"jquery": "^3.6.0", "jquery": "^3.6.0",

View File

@ -651,10 +651,22 @@
title="#{CmsAdminMessage['cms_editor.buttons.media.insert_image']}" title="#{CmsAdminMessage['cms_editor.buttons.media.insert_image']}"
type="button"> type="button">
<!--<bootstrap:svgIcon icon="image" />--> <!--<bootstrap:svgIcon icon="image" />-->
<librecms:remixSvgIcon icon="ri-image" /> <librecms:remixSvgIcon icon="ri-image-line" />
</button> </button>
</div> </div>
</div> </div>
<template id="librecms-image-node-view">
<figure>
<img src="#{request.contextPath}/assets/remixicon/image-line.svg" />
<button class="select-image-button">
#{CmsAdminMessages['cms_editor.image_node_view.select_image.label']}
</button>
<figcaption aria-label="#{CmsAdminMessages['cms_editor.image_node_view.figcaption.label']}"
contenteditable="true">
#{CmsAdminMessages['cms_editor.image_node_view.figcaption.placeholder']}
</figcaption>
</figure>
</template>
<div <div
class="cms-tiptap-editor-canvas border" class="cms-tiptap-editor-canvas border"
data-locale="#{cc.attrs.selectedLocale}" data-locale="#{cc.attrs.selectedLocale}"

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<g>
<path fill="none" d="M0 0h24v24H0z"/>
<path d="M4.828 21l-.02.02-.021-.02H2.992A.993.993 0 0 1 2 20.007V3.993A1 1 0 0 1 2.992 3h18.016c.548 0 .992.445.992.993v16.014a1 1 0 0 1-.992.993H4.828zM20 15V5H4v14L14 9l6 6zm0 2.828l-6-6L6.828 19H20v-1.172zM8 11a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 386 B

View File

@ -1,6 +1,6 @@
import "bootstrap"; import "bootstrap";
import * as $ from "jquery"; import * as $ from "jquery";
import { ChainedCommands, Editor, Node } from "@tiptap/core"; 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 StarterKit from "@tiptap/starter-kit";
import Subscript from "@tiptap/extension-subscript"; import Subscript from "@tiptap/extension-subscript";
@ -457,9 +457,9 @@ const ImageNode = Node.create({
content: "inline*", content: "inline*",
marks: '', marks: "",
group: 'block', group: "block",
code: false, code: false,
@ -475,17 +475,44 @@ const ImageNode = Node.create({
}; };
}, },
addNodeView() {
return ({ editor, node, getPos, HTMLAttributes, decorations, extension }) => {
const templateNode = document.querySelector("#librecms-image-node-view");
if (!templateNode) {
const errorMsg = document.createElement("div");
errorMsg.classList.add("alert");
errorMsg.classList.add("alert-danger");
errorMsg.textContent = "Failed to create image node view.";
return errorMsg;
}
const template = templateNode as HTMLTemplateElement;
const nodeView = template.content.cloneNode(true);
const dom = document.createElement("div");
dom.appendChild(nodeView);
return {
dom,
}
}
},
parseHTML() { parseHTML() {
return [ return [
{ {
tag: "figure", tag: "figure[data-type=librecms-image-node]",
"data-librecms-editor-node": "image",
}, },
]; ];
}, },
renderHTML({ HTMLAttributes }) { renderHTML({ HTMLAttributes }) {
return ["figure", HTMLAttributes, ["img"], ["figcaption"]]; return [
"figure",
mergeAttributes(HTMLAttributes, { "data-type": "librecms-image-node" }),
["img", {"src": "/assets/remixicon/image-line.svg"}],
["figcaption"],
];
}, },
}); });