@adminforth/rich-editor 1.5.5 → 1.6.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/build.log +2 -2
- package/custom/package-lock.json +159 -1
- package/custom/package.json +2 -1
- package/custom/quillEditor.vue +32 -6
- package/dist/custom/package-lock.json +159 -1
- package/dist/custom/package.json +2 -1
- package/dist/custom/quillEditor.vue +32 -6
- package/dist/index.js +3 -3
- package/index.ts +1 -1
- package/package.json +1 -1
package/build.log
CHANGED
|
@@ -10,5 +10,5 @@ custom/package.json
|
|
|
10
10
|
custom/quillEditor.vue
|
|
11
11
|
custom/tsconfig.json
|
|
12
12
|
|
|
13
|
-
sent
|
|
14
|
-
total size is
|
|
13
|
+
sent 28,581 bytes received 115 bytes 57,392.00 bytes/sec
|
|
14
|
+
total size is 28,158 speedup is 0.98
|
package/custom/package-lock.json
CHANGED
|
@@ -9,7 +9,62 @@
|
|
|
9
9
|
"version": "1.0.0",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"quill": "^2.0.2"
|
|
12
|
+
"quill": "^2.0.2",
|
|
13
|
+
"quill-table-better": "^1.2.3"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"node_modules/@babel/runtime": {
|
|
17
|
+
"version": "7.28.4",
|
|
18
|
+
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
|
|
19
|
+
"integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"engines": {
|
|
22
|
+
"node": ">=6.9.0"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"node_modules/@irojs/iro-core": {
|
|
26
|
+
"version": "1.2.1",
|
|
27
|
+
"resolved": "https://registry.npmjs.org/@irojs/iro-core/-/iro-core-1.2.1.tgz",
|
|
28
|
+
"integrity": "sha512-p2OvsBSSmidsDsTSkID6jEyXDF7lcyxPrkh3qBzasBZFpjkYd6kZ3yMWai3MlAaQ3F7li/Et7rSJVV09Fpei+A==",
|
|
29
|
+
"license": "MPL-2.0"
|
|
30
|
+
},
|
|
31
|
+
"node_modules/@jaames/iro": {
|
|
32
|
+
"version": "5.5.2",
|
|
33
|
+
"resolved": "https://registry.npmjs.org/@jaames/iro/-/iro-5.5.2.tgz",
|
|
34
|
+
"integrity": "sha512-Fbi5U4Vdkw6UsF+R3oMlPONqkvUDMkwzh+mX718gQsDFt3+1r1jvGsrfCbedmXAAy0WsjDHOrefK0BkDk99TQg==",
|
|
35
|
+
"license": "MPL-2.0",
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@irojs/iro-core": "^1.2.1",
|
|
38
|
+
"preact": "^10.0.0"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"node_modules/@types/lodash": {
|
|
42
|
+
"version": "4.17.21",
|
|
43
|
+
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz",
|
|
44
|
+
"integrity": "sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==",
|
|
45
|
+
"license": "MIT"
|
|
46
|
+
},
|
|
47
|
+
"node_modules/@types/lodash.merge": {
|
|
48
|
+
"version": "4.6.9",
|
|
49
|
+
"resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.9.tgz",
|
|
50
|
+
"integrity": "sha512-23sHDPmzd59kUgWyKGiOMO2Qb9YtqRO/x4IhkgNUiPQ1+5MUVqi6bCZeq9nBJ17msjIMbEIO5u+XW4Kz6aGUhQ==",
|
|
51
|
+
"license": "MIT",
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@types/lodash": "*"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"node_modules/clone-deep": {
|
|
57
|
+
"version": "4.0.1",
|
|
58
|
+
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
|
|
59
|
+
"integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
|
|
60
|
+
"license": "MIT",
|
|
61
|
+
"dependencies": {
|
|
62
|
+
"is-plain-object": "^2.0.4",
|
|
63
|
+
"kind-of": "^6.0.2",
|
|
64
|
+
"shallow-clone": "^3.0.0"
|
|
65
|
+
},
|
|
66
|
+
"engines": {
|
|
67
|
+
"node": ">=6"
|
|
13
68
|
}
|
|
14
69
|
},
|
|
15
70
|
"node_modules/eventemitter3": {
|
|
@@ -22,6 +77,45 @@
|
|
|
22
77
|
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
|
|
23
78
|
"integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="
|
|
24
79
|
},
|
|
80
|
+
"node_modules/flat": {
|
|
81
|
+
"version": "5.0.2",
|
|
82
|
+
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
|
|
83
|
+
"integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
|
|
84
|
+
"license": "BSD-3-Clause",
|
|
85
|
+
"bin": {
|
|
86
|
+
"flat": "cli.js"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"node_modules/is-plain-object": {
|
|
90
|
+
"version": "2.0.4",
|
|
91
|
+
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
|
|
92
|
+
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
|
|
93
|
+
"license": "MIT",
|
|
94
|
+
"dependencies": {
|
|
95
|
+
"isobject": "^3.0.1"
|
|
96
|
+
},
|
|
97
|
+
"engines": {
|
|
98
|
+
"node": ">=0.10.0"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"node_modules/isobject": {
|
|
102
|
+
"version": "3.0.1",
|
|
103
|
+
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
|
|
104
|
+
"integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
|
|
105
|
+
"license": "MIT",
|
|
106
|
+
"engines": {
|
|
107
|
+
"node": ">=0.10.0"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"node_modules/kind-of": {
|
|
111
|
+
"version": "6.0.3",
|
|
112
|
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
|
113
|
+
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
|
|
114
|
+
"license": "MIT",
|
|
115
|
+
"engines": {
|
|
116
|
+
"node": ">=0.10.0"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
25
119
|
"node_modules/lodash-es": {
|
|
26
120
|
"version": "4.17.21",
|
|
27
121
|
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
|
|
@@ -37,11 +131,27 @@
|
|
|
37
131
|
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
|
38
132
|
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
|
|
39
133
|
},
|
|
134
|
+
"node_modules/lodash.merge": {
|
|
135
|
+
"version": "4.6.2",
|
|
136
|
+
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
|
137
|
+
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
|
|
138
|
+
"license": "MIT"
|
|
139
|
+
},
|
|
40
140
|
"node_modules/parchment": {
|
|
41
141
|
"version": "3.0.0",
|
|
42
142
|
"resolved": "https://registry.npmjs.org/parchment/-/parchment-3.0.0.tgz",
|
|
43
143
|
"integrity": "sha512-HUrJFQ/StvgmXRcQ1ftY6VEZUq3jA2t9ncFN4F84J/vN0/FPpQF+8FKXb3l6fLces6q0uOHj6NJn+2xvZnxO6A=="
|
|
44
144
|
},
|
|
145
|
+
"node_modules/preact": {
|
|
146
|
+
"version": "10.27.2",
|
|
147
|
+
"resolved": "https://registry.npmjs.org/preact/-/preact-10.27.2.tgz",
|
|
148
|
+
"integrity": "sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==",
|
|
149
|
+
"license": "MIT",
|
|
150
|
+
"funding": {
|
|
151
|
+
"type": "opencollective",
|
|
152
|
+
"url": "https://opencollective.com/preact"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
45
155
|
"node_modules/quill": {
|
|
46
156
|
"version": "2.0.2",
|
|
47
157
|
"resolved": "https://registry.npmjs.org/quill/-/quill-2.0.2.tgz",
|
|
@@ -69,6 +179,54 @@
|
|
|
69
179
|
"engines": {
|
|
70
180
|
"node": ">= 12.0.0"
|
|
71
181
|
}
|
|
182
|
+
},
|
|
183
|
+
"node_modules/quill-table-better": {
|
|
184
|
+
"version": "1.2.3",
|
|
185
|
+
"resolved": "https://registry.npmjs.org/quill-table-better/-/quill-table-better-1.2.3.tgz",
|
|
186
|
+
"integrity": "sha512-AlXGuIPhNx0B65DI7eCbGsEThxGWc0gLsd3Y+3NpMaPkFIQpcDCk0htrD2BzNLynOF/Euja1BkHnzjkVz3QFGw==",
|
|
187
|
+
"license": "MIT",
|
|
188
|
+
"dependencies": {
|
|
189
|
+
"@babel/runtime": "^7.17.9",
|
|
190
|
+
"@jaames/iro": "^5.5.2",
|
|
191
|
+
"@types/lodash.merge": "^4.6.7",
|
|
192
|
+
"lodash.merge": "^4.6.2",
|
|
193
|
+
"webpack-merge": "^5.8.0"
|
|
194
|
+
},
|
|
195
|
+
"engines": {
|
|
196
|
+
"node": ">= 14.15.0"
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"node_modules/shallow-clone": {
|
|
200
|
+
"version": "3.0.1",
|
|
201
|
+
"resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
|
|
202
|
+
"integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
|
|
203
|
+
"license": "MIT",
|
|
204
|
+
"dependencies": {
|
|
205
|
+
"kind-of": "^6.0.2"
|
|
206
|
+
},
|
|
207
|
+
"engines": {
|
|
208
|
+
"node": ">=8"
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
"node_modules/webpack-merge": {
|
|
212
|
+
"version": "5.10.0",
|
|
213
|
+
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
|
|
214
|
+
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
|
|
215
|
+
"license": "MIT",
|
|
216
|
+
"dependencies": {
|
|
217
|
+
"clone-deep": "^4.0.1",
|
|
218
|
+
"flat": "^5.0.2",
|
|
219
|
+
"wildcard": "^2.0.0"
|
|
220
|
+
},
|
|
221
|
+
"engines": {
|
|
222
|
+
"node": ">=10.0.0"
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"node_modules/wildcard": {
|
|
226
|
+
"version": "2.0.1",
|
|
227
|
+
"resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
|
|
228
|
+
"integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
|
|
229
|
+
"license": "MIT"
|
|
72
230
|
}
|
|
73
231
|
}
|
|
74
232
|
}
|
package/custom/package.json
CHANGED
package/custom/quillEditor.vue
CHANGED
|
@@ -27,6 +27,9 @@ import adminforth from '@/adminforth';
|
|
|
27
27
|
import AsyncQueue from './async-queue';
|
|
28
28
|
import Quill from "quill";
|
|
29
29
|
import "quill/dist/quill.snow.css";
|
|
30
|
+
import QuillTableBetter from 'quill-table-better';
|
|
31
|
+
import 'quill-table-better/dist/quill-table-better.css';
|
|
32
|
+
|
|
30
33
|
import { useI18n } from 'vue-i18n';
|
|
31
34
|
|
|
32
35
|
const { t } = useI18n();
|
|
@@ -89,6 +92,11 @@ Quill.register(CompleteBlot);
|
|
|
89
92
|
// @ts-ignore
|
|
90
93
|
Quill.register(ImageBlot);
|
|
91
94
|
|
|
95
|
+
Quill.register({
|
|
96
|
+
'modules/table-better': QuillTableBetter
|
|
97
|
+
}, true);
|
|
98
|
+
|
|
99
|
+
|
|
92
100
|
const updaterQueue = new AsyncQueue();
|
|
93
101
|
|
|
94
102
|
const props = defineProps<{
|
|
@@ -197,11 +205,7 @@ async function imageHandler() {
|
|
|
197
205
|
};
|
|
198
206
|
}
|
|
199
207
|
|
|
200
|
-
|
|
201
|
-
currentValue.value = props.record[props.column.name] || '';
|
|
202
|
-
editor.value.innerHTML = currentValue.value;
|
|
203
|
-
|
|
204
|
-
quill = new Quill(editor.value as HTMLElement, {
|
|
208
|
+
const quillOptions = {
|
|
205
209
|
theme: "snow",
|
|
206
210
|
readOnly:props.column?.editReadonly,
|
|
207
211
|
placeholder: 'Type here...',
|
|
@@ -210,6 +214,7 @@ onMounted(() => {
|
|
|
210
214
|
toolbar: {
|
|
211
215
|
container: props.meta.toolbar || [
|
|
212
216
|
['bold', 'italic', 'underline', 'strike'], // toggled buttons
|
|
217
|
+
['table-better'],
|
|
213
218
|
['blockquote', 'code-block', 'link', ...props.meta.uploadPluginInstanceId ? ['image'] : []],
|
|
214
219
|
// [
|
|
215
220
|
// // 'image',
|
|
@@ -237,6 +242,11 @@ onMounted(() => {
|
|
|
237
242
|
image: imageHandler,
|
|
238
243
|
},
|
|
239
244
|
},
|
|
245
|
+
'table-better': {
|
|
246
|
+
language: 'en_US',
|
|
247
|
+
menus: ['column', 'row', 'merge', 'table', 'cell', 'wrap', 'delete'],
|
|
248
|
+
toolbarTable: true
|
|
249
|
+
},
|
|
240
250
|
keyboard: {
|
|
241
251
|
bindings: {
|
|
242
252
|
tab: {
|
|
@@ -250,8 +260,24 @@ onMounted(() => {
|
|
|
250
260
|
},
|
|
251
261
|
}
|
|
252
262
|
},
|
|
253
|
-
}
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
function initValue(quill: Quill) {
|
|
266
|
+
const html = props.record[props.column.name] || '';
|
|
267
|
+
const delta = quill.clipboard.convert({ html });
|
|
268
|
+
const [range] = quill.selection.getRange();
|
|
269
|
+
quill.updateContents(delta, Quill.sources.USER);
|
|
270
|
+
quill.setSelection(
|
|
271
|
+
delta.length() - (range?.length || 0),
|
|
272
|
+
Quill.sources.SILENT
|
|
273
|
+
);
|
|
274
|
+
quill.scrollSelectionIntoView();
|
|
275
|
+
}
|
|
254
276
|
|
|
277
|
+
onMounted(() => {
|
|
278
|
+
currentValue.value = props.record[props.column.name] || '';
|
|
279
|
+
quill = new Quill(editor.value as HTMLElement, quillOptions);
|
|
280
|
+
initValue(quill);
|
|
255
281
|
lastText = quill.getText();
|
|
256
282
|
|
|
257
283
|
quill.on(Quill.events.TEXT_CHANGE, async (delta: any, oldDelta: any, source: string) => {
|
|
@@ -9,7 +9,62 @@
|
|
|
9
9
|
"version": "1.0.0",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"quill": "^2.0.2"
|
|
12
|
+
"quill": "^2.0.2",
|
|
13
|
+
"quill-table-better": "^1.2.3"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"node_modules/@babel/runtime": {
|
|
17
|
+
"version": "7.28.4",
|
|
18
|
+
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
|
|
19
|
+
"integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"engines": {
|
|
22
|
+
"node": ">=6.9.0"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"node_modules/@irojs/iro-core": {
|
|
26
|
+
"version": "1.2.1",
|
|
27
|
+
"resolved": "https://registry.npmjs.org/@irojs/iro-core/-/iro-core-1.2.1.tgz",
|
|
28
|
+
"integrity": "sha512-p2OvsBSSmidsDsTSkID6jEyXDF7lcyxPrkh3qBzasBZFpjkYd6kZ3yMWai3MlAaQ3F7li/Et7rSJVV09Fpei+A==",
|
|
29
|
+
"license": "MPL-2.0"
|
|
30
|
+
},
|
|
31
|
+
"node_modules/@jaames/iro": {
|
|
32
|
+
"version": "5.5.2",
|
|
33
|
+
"resolved": "https://registry.npmjs.org/@jaames/iro/-/iro-5.5.2.tgz",
|
|
34
|
+
"integrity": "sha512-Fbi5U4Vdkw6UsF+R3oMlPONqkvUDMkwzh+mX718gQsDFt3+1r1jvGsrfCbedmXAAy0WsjDHOrefK0BkDk99TQg==",
|
|
35
|
+
"license": "MPL-2.0",
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@irojs/iro-core": "^1.2.1",
|
|
38
|
+
"preact": "^10.0.0"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"node_modules/@types/lodash": {
|
|
42
|
+
"version": "4.17.21",
|
|
43
|
+
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz",
|
|
44
|
+
"integrity": "sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==",
|
|
45
|
+
"license": "MIT"
|
|
46
|
+
},
|
|
47
|
+
"node_modules/@types/lodash.merge": {
|
|
48
|
+
"version": "4.6.9",
|
|
49
|
+
"resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.9.tgz",
|
|
50
|
+
"integrity": "sha512-23sHDPmzd59kUgWyKGiOMO2Qb9YtqRO/x4IhkgNUiPQ1+5MUVqi6bCZeq9nBJ17msjIMbEIO5u+XW4Kz6aGUhQ==",
|
|
51
|
+
"license": "MIT",
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@types/lodash": "*"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"node_modules/clone-deep": {
|
|
57
|
+
"version": "4.0.1",
|
|
58
|
+
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
|
|
59
|
+
"integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
|
|
60
|
+
"license": "MIT",
|
|
61
|
+
"dependencies": {
|
|
62
|
+
"is-plain-object": "^2.0.4",
|
|
63
|
+
"kind-of": "^6.0.2",
|
|
64
|
+
"shallow-clone": "^3.0.0"
|
|
65
|
+
},
|
|
66
|
+
"engines": {
|
|
67
|
+
"node": ">=6"
|
|
13
68
|
}
|
|
14
69
|
},
|
|
15
70
|
"node_modules/eventemitter3": {
|
|
@@ -22,6 +77,45 @@
|
|
|
22
77
|
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
|
|
23
78
|
"integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="
|
|
24
79
|
},
|
|
80
|
+
"node_modules/flat": {
|
|
81
|
+
"version": "5.0.2",
|
|
82
|
+
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
|
|
83
|
+
"integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
|
|
84
|
+
"license": "BSD-3-Clause",
|
|
85
|
+
"bin": {
|
|
86
|
+
"flat": "cli.js"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"node_modules/is-plain-object": {
|
|
90
|
+
"version": "2.0.4",
|
|
91
|
+
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
|
|
92
|
+
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
|
|
93
|
+
"license": "MIT",
|
|
94
|
+
"dependencies": {
|
|
95
|
+
"isobject": "^3.0.1"
|
|
96
|
+
},
|
|
97
|
+
"engines": {
|
|
98
|
+
"node": ">=0.10.0"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"node_modules/isobject": {
|
|
102
|
+
"version": "3.0.1",
|
|
103
|
+
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
|
|
104
|
+
"integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
|
|
105
|
+
"license": "MIT",
|
|
106
|
+
"engines": {
|
|
107
|
+
"node": ">=0.10.0"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"node_modules/kind-of": {
|
|
111
|
+
"version": "6.0.3",
|
|
112
|
+
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
|
|
113
|
+
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
|
|
114
|
+
"license": "MIT",
|
|
115
|
+
"engines": {
|
|
116
|
+
"node": ">=0.10.0"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
25
119
|
"node_modules/lodash-es": {
|
|
26
120
|
"version": "4.17.21",
|
|
27
121
|
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
|
|
@@ -37,11 +131,27 @@
|
|
|
37
131
|
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
|
38
132
|
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
|
|
39
133
|
},
|
|
134
|
+
"node_modules/lodash.merge": {
|
|
135
|
+
"version": "4.6.2",
|
|
136
|
+
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
|
137
|
+
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
|
|
138
|
+
"license": "MIT"
|
|
139
|
+
},
|
|
40
140
|
"node_modules/parchment": {
|
|
41
141
|
"version": "3.0.0",
|
|
42
142
|
"resolved": "https://registry.npmjs.org/parchment/-/parchment-3.0.0.tgz",
|
|
43
143
|
"integrity": "sha512-HUrJFQ/StvgmXRcQ1ftY6VEZUq3jA2t9ncFN4F84J/vN0/FPpQF+8FKXb3l6fLces6q0uOHj6NJn+2xvZnxO6A=="
|
|
44
144
|
},
|
|
145
|
+
"node_modules/preact": {
|
|
146
|
+
"version": "10.27.2",
|
|
147
|
+
"resolved": "https://registry.npmjs.org/preact/-/preact-10.27.2.tgz",
|
|
148
|
+
"integrity": "sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==",
|
|
149
|
+
"license": "MIT",
|
|
150
|
+
"funding": {
|
|
151
|
+
"type": "opencollective",
|
|
152
|
+
"url": "https://opencollective.com/preact"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
45
155
|
"node_modules/quill": {
|
|
46
156
|
"version": "2.0.2",
|
|
47
157
|
"resolved": "https://registry.npmjs.org/quill/-/quill-2.0.2.tgz",
|
|
@@ -69,6 +179,54 @@
|
|
|
69
179
|
"engines": {
|
|
70
180
|
"node": ">= 12.0.0"
|
|
71
181
|
}
|
|
182
|
+
},
|
|
183
|
+
"node_modules/quill-table-better": {
|
|
184
|
+
"version": "1.2.3",
|
|
185
|
+
"resolved": "https://registry.npmjs.org/quill-table-better/-/quill-table-better-1.2.3.tgz",
|
|
186
|
+
"integrity": "sha512-AlXGuIPhNx0B65DI7eCbGsEThxGWc0gLsd3Y+3NpMaPkFIQpcDCk0htrD2BzNLynOF/Euja1BkHnzjkVz3QFGw==",
|
|
187
|
+
"license": "MIT",
|
|
188
|
+
"dependencies": {
|
|
189
|
+
"@babel/runtime": "^7.17.9",
|
|
190
|
+
"@jaames/iro": "^5.5.2",
|
|
191
|
+
"@types/lodash.merge": "^4.6.7",
|
|
192
|
+
"lodash.merge": "^4.6.2",
|
|
193
|
+
"webpack-merge": "^5.8.0"
|
|
194
|
+
},
|
|
195
|
+
"engines": {
|
|
196
|
+
"node": ">= 14.15.0"
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"node_modules/shallow-clone": {
|
|
200
|
+
"version": "3.0.1",
|
|
201
|
+
"resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
|
|
202
|
+
"integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
|
|
203
|
+
"license": "MIT",
|
|
204
|
+
"dependencies": {
|
|
205
|
+
"kind-of": "^6.0.2"
|
|
206
|
+
},
|
|
207
|
+
"engines": {
|
|
208
|
+
"node": ">=8"
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
"node_modules/webpack-merge": {
|
|
212
|
+
"version": "5.10.0",
|
|
213
|
+
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
|
|
214
|
+
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
|
|
215
|
+
"license": "MIT",
|
|
216
|
+
"dependencies": {
|
|
217
|
+
"clone-deep": "^4.0.1",
|
|
218
|
+
"flat": "^5.0.2",
|
|
219
|
+
"wildcard": "^2.0.0"
|
|
220
|
+
},
|
|
221
|
+
"engines": {
|
|
222
|
+
"node": ">=10.0.0"
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"node_modules/wildcard": {
|
|
226
|
+
"version": "2.0.1",
|
|
227
|
+
"resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
|
|
228
|
+
"integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
|
|
229
|
+
"license": "MIT"
|
|
72
230
|
}
|
|
73
231
|
}
|
|
74
232
|
}
|
package/dist/custom/package.json
CHANGED
|
@@ -27,6 +27,9 @@ import adminforth from '@/adminforth';
|
|
|
27
27
|
import AsyncQueue from './async-queue';
|
|
28
28
|
import Quill from "quill";
|
|
29
29
|
import "quill/dist/quill.snow.css";
|
|
30
|
+
import QuillTableBetter from 'quill-table-better';
|
|
31
|
+
import 'quill-table-better/dist/quill-table-better.css';
|
|
32
|
+
|
|
30
33
|
import { useI18n } from 'vue-i18n';
|
|
31
34
|
|
|
32
35
|
const { t } = useI18n();
|
|
@@ -89,6 +92,11 @@ Quill.register(CompleteBlot);
|
|
|
89
92
|
// @ts-ignore
|
|
90
93
|
Quill.register(ImageBlot);
|
|
91
94
|
|
|
95
|
+
Quill.register({
|
|
96
|
+
'modules/table-better': QuillTableBetter
|
|
97
|
+
}, true);
|
|
98
|
+
|
|
99
|
+
|
|
92
100
|
const updaterQueue = new AsyncQueue();
|
|
93
101
|
|
|
94
102
|
const props = defineProps<{
|
|
@@ -197,11 +205,7 @@ async function imageHandler() {
|
|
|
197
205
|
};
|
|
198
206
|
}
|
|
199
207
|
|
|
200
|
-
|
|
201
|
-
currentValue.value = props.record[props.column.name] || '';
|
|
202
|
-
editor.value.innerHTML = currentValue.value;
|
|
203
|
-
|
|
204
|
-
quill = new Quill(editor.value as HTMLElement, {
|
|
208
|
+
const quillOptions = {
|
|
205
209
|
theme: "snow",
|
|
206
210
|
readOnly:props.column?.editReadonly,
|
|
207
211
|
placeholder: 'Type here...',
|
|
@@ -210,6 +214,7 @@ onMounted(() => {
|
|
|
210
214
|
toolbar: {
|
|
211
215
|
container: props.meta.toolbar || [
|
|
212
216
|
['bold', 'italic', 'underline', 'strike'], // toggled buttons
|
|
217
|
+
['table-better'],
|
|
213
218
|
['blockquote', 'code-block', 'link', ...props.meta.uploadPluginInstanceId ? ['image'] : []],
|
|
214
219
|
// [
|
|
215
220
|
// // 'image',
|
|
@@ -237,6 +242,11 @@ onMounted(() => {
|
|
|
237
242
|
image: imageHandler,
|
|
238
243
|
},
|
|
239
244
|
},
|
|
245
|
+
'table-better': {
|
|
246
|
+
language: 'en_US',
|
|
247
|
+
menus: ['column', 'row', 'merge', 'table', 'cell', 'wrap', 'delete'],
|
|
248
|
+
toolbarTable: true
|
|
249
|
+
},
|
|
240
250
|
keyboard: {
|
|
241
251
|
bindings: {
|
|
242
252
|
tab: {
|
|
@@ -250,8 +260,24 @@ onMounted(() => {
|
|
|
250
260
|
},
|
|
251
261
|
}
|
|
252
262
|
},
|
|
253
|
-
}
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
function initValue(quill: Quill) {
|
|
266
|
+
const html = props.record[props.column.name] || '';
|
|
267
|
+
const delta = quill.clipboard.convert({ html });
|
|
268
|
+
const [range] = quill.selection.getRange();
|
|
269
|
+
quill.updateContents(delta, Quill.sources.USER);
|
|
270
|
+
quill.setSelection(
|
|
271
|
+
delta.length() - (range?.length || 0),
|
|
272
|
+
Quill.sources.SILENT
|
|
273
|
+
);
|
|
274
|
+
quill.scrollSelectionIntoView();
|
|
275
|
+
}
|
|
254
276
|
|
|
277
|
+
onMounted(() => {
|
|
278
|
+
currentValue.value = props.record[props.column.name] || '';
|
|
279
|
+
quill = new Quill(editor.value as HTMLElement, quillOptions);
|
|
280
|
+
initValue(quill);
|
|
255
281
|
lastText = quill.getText();
|
|
256
282
|
|
|
257
283
|
quill.on(Quill.events.TEXT_CHANGE, async (delta: any, oldDelta: any, source: string) => {
|
package/dist/index.js
CHANGED
|
@@ -18,14 +18,14 @@ import * as cheerio from 'cheerio';
|
|
|
18
18
|
// },
|
|
19
19
|
export default class RichEditorPlugin extends AdminForthPlugin {
|
|
20
20
|
constructor(options) {
|
|
21
|
-
var _a, _b;
|
|
21
|
+
var _a, _b, _c;
|
|
22
22
|
super(options, import.meta.url);
|
|
23
23
|
this.resourceConfig = undefined;
|
|
24
24
|
this.activationOrder = 100000;
|
|
25
25
|
this.attachmentResource = undefined;
|
|
26
26
|
this.options = options;
|
|
27
|
-
if ((_a = this.options.completion
|
|
28
|
-
this.rateLimiter = new RateLimiter((
|
|
27
|
+
if ((_b = (_a = this.options.completion) === null || _a === void 0 ? void 0 : _a.rateLimit) === null || _b === void 0 ? void 0 : _b.limit) {
|
|
28
|
+
this.rateLimiter = new RateLimiter((_c = this.options.completion.rateLimit) === null || _c === void 0 ? void 0 : _c.limit);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
modifyResourceConfig(adminforth, resourceConfig) {
|
package/index.ts
CHANGED
|
@@ -30,7 +30,7 @@ export default class RichEditorPlugin extends AdminForthPlugin {
|
|
|
30
30
|
constructor(options: PluginOptions) {
|
|
31
31
|
super(options, import.meta.url);
|
|
32
32
|
this.options = options;
|
|
33
|
-
if (this.options.completion
|
|
33
|
+
if (this.options.completion?.rateLimit?.limit) {
|
|
34
34
|
this.rateLimiter = new RateLimiter(this.options.completion.rateLimit?.limit);
|
|
35
35
|
}
|
|
36
36
|
}
|