@bbl-digital/snorre 4.2.13 → 4.2.16
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/dist/bundle.js +22 -156
- package/esm/core/Html/Html.stories.js +1 -1
- package/esm/core/Html/index.js +1 -3
- package/esm/core/Html/styles.js +7 -7
- package/esm/core/QuillEditor/classes/ListItem.js +0 -5
- package/esm/core/QuillEditor/index.js +9 -48
- package/lib/core/Html/Html.stories.js +1 -1
- package/lib/core/Html/index.d.ts +2 -4
- package/lib/core/Html/index.d.ts.map +1 -1
- package/lib/core/Html/index.js +1 -3
- package/lib/core/Html/styles.d.ts.map +1 -1
- package/lib/core/Html/styles.js +7 -7
- package/lib/core/QuillEditor/classes/ListItem.d.ts +0 -3
- package/lib/core/QuillEditor/classes/ListItem.d.ts.map +1 -1
- package/lib/core/QuillEditor/classes/ListItem.js +0 -5
- package/lib/core/QuillEditor/index.d.ts.map +1 -1
- package/lib/core/QuillEditor/index.js +9 -48
- package/lib/core/QuillEditor/models.d.ts +1 -1
- package/lib/core/QuillEditor/models.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
/** @jsxImportSource @emotion/react */
|
|
2
|
-
import { useRef, useState, useEffect, useCallback
|
|
2
|
+
import { useRef, useState, useEffect, useCallback } from 'react';
|
|
3
3
|
import Quill from 'quill';
|
|
4
4
|
import { basicToolbar, richToolbar } from './config';
|
|
5
5
|
import { ErrorWrapper, Label, styles } from './styles';
|
|
6
6
|
import Text from '../Text';
|
|
7
7
|
import IconErrorOutline from '../../icons/General/IconErrorOutline';
|
|
8
8
|
import { useTheme } from '@emotion/react';
|
|
9
|
-
import MyListItem from './classes/ListItem';
|
|
10
|
-
import { IndentAttributor } from './classes/IndentAttributor';
|
|
11
9
|
import { CustomLinkSanitizer } from './classes/LinkSanitizer';
|
|
12
|
-
import { MyListContainer } from './classes/ListContainer';
|
|
13
10
|
import DOMPurify from 'dompurify';
|
|
14
11
|
import 'quill/dist/quill.snow.css';
|
|
15
|
-
import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
16
|
-
const Parchment = Quill.import('parchment');
|
|
17
12
|
|
|
18
13
|
// Colors
|
|
14
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
19
15
|
Quill.register(Quill.import('attributors/style/color'), true);
|
|
20
16
|
// Background colors
|
|
21
17
|
Quill.register(Quill.import('attributors/style/background'), true);
|
|
@@ -39,22 +35,11 @@ Quill.register('attributors/style/bold', true);
|
|
|
39
35
|
const Size = Quill.import('attributors/style/size');
|
|
40
36
|
Size.whitelist = ['0.75em', '1em', '1.5em', '2.5em'];
|
|
41
37
|
Quill.register(Size, true);
|
|
42
|
-
let IndentStyle = new IndentAttributor('indent', 'margin-left', {
|
|
43
|
-
scope: Parchment.Scope.BLOCK,
|
|
44
|
-
whitelist: ['1em', '2em', '3em', '4em', '5em', '6em', '7em', '8em', '9em']
|
|
45
|
-
});
|
|
46
38
|
|
|
47
39
|
// Font
|
|
48
40
|
const Font = Quill.import('formats/font');
|
|
49
41
|
Font.whitelist = ['Source Sans Pro', 'sans-serif'];
|
|
50
42
|
Quill.register(Font, true);
|
|
51
|
-
const Container = MyListContainer;
|
|
52
|
-
Container.allowedChildren = [MyListItem];
|
|
53
|
-
Quill.register(IndentStyle, true);
|
|
54
|
-
Quill.register({
|
|
55
|
-
'formats/list': Container,
|
|
56
|
-
'formats/ulist': MyListItem
|
|
57
|
-
}, true);
|
|
58
43
|
Quill.register(CustomLinkSanitizer, true);
|
|
59
44
|
const QuillEditor = ({
|
|
60
45
|
height,
|
|
@@ -87,7 +72,6 @@ const QuillEditor = ({
|
|
|
87
72
|
const isMounted = useRef(false);
|
|
88
73
|
const quillRef = useRef(null);
|
|
89
74
|
const defaultValueRef = useRef(initialValue);
|
|
90
|
-
const onTextChangeRef = useRef(onChange);
|
|
91
75
|
const editorId = useRef(new Date().getTime() + (100 * Math.random()).toFixed(0));
|
|
92
76
|
const {
|
|
93
77
|
alert
|
|
@@ -122,17 +106,6 @@ const QuillEditor = ({
|
|
|
122
106
|
}
|
|
123
107
|
return true;
|
|
124
108
|
}, [quill]);
|
|
125
|
-
const handleAutoidentList = useCallback((range, _context, quill) => {
|
|
126
|
-
if (!quill) return true;
|
|
127
|
-
const [line] = quill.getLine(range.index);
|
|
128
|
-
const formats = line.formats();
|
|
129
|
-
if (formats.list) {
|
|
130
|
-
const indent = formats.indent ? parseInt(formats.indent, 10) : 0;
|
|
131
|
-
quill.format('indent', indent + 1);
|
|
132
|
-
return false;
|
|
133
|
-
}
|
|
134
|
-
return true;
|
|
135
|
-
}, [quill]);
|
|
136
109
|
const modules = {
|
|
137
110
|
toolbar: toolbars[type || 'basic'],
|
|
138
111
|
clipboard: {
|
|
@@ -149,20 +122,15 @@ const QuillEditor = ({
|
|
|
149
122
|
}
|
|
150
123
|
}
|
|
151
124
|
};
|
|
152
|
-
const handleChange = useCallback(
|
|
125
|
+
const handleChange = useCallback(quill => {
|
|
153
126
|
if (!quill) return;
|
|
154
|
-
const html = sanitizeHtml ? DOMPurify.sanitize(quill.
|
|
127
|
+
const html = sanitizeHtml ? DOMPurify.sanitize(quill.getSemanticHTML(), {
|
|
155
128
|
USE_PROFILES: {
|
|
156
129
|
html: true
|
|
157
130
|
}
|
|
158
131
|
}) : quill.root.innerHTML;
|
|
159
|
-
|
|
160
|
-
onChange(html, delta, source, quill);
|
|
161
|
-
}
|
|
132
|
+
onChange?.(html);
|
|
162
133
|
}, [onChange, quill]);
|
|
163
|
-
useLayoutEffect(() => {
|
|
164
|
-
onTextChangeRef.current = onChange;
|
|
165
|
-
});
|
|
166
134
|
useEffect(() => {
|
|
167
135
|
if (isMounted.current) return;
|
|
168
136
|
quillRef.current = new Quill(`#editor${editorId.current}`, {
|
|
@@ -189,16 +157,6 @@ const QuillEditor = ({
|
|
|
189
157
|
}, (range, context) => {
|
|
190
158
|
return handleBackspaceWithIndentetList(range, context, quillRef.current);
|
|
191
159
|
});
|
|
192
|
-
// Tabbing within a list should indent the list item
|
|
193
|
-
quillRef.current.keyboard.addBinding({
|
|
194
|
-
key: 'Tab'
|
|
195
|
-
}, {
|
|
196
|
-
format: {
|
|
197
|
-
list: true
|
|
198
|
-
}
|
|
199
|
-
}, (range, context) => {
|
|
200
|
-
return handleAutoidentList(range, context, quillRef.current);
|
|
201
|
-
});
|
|
202
160
|
quillRef.current.root.style.touchAction = 'pan-y';
|
|
203
161
|
quillRef.current.root.style.overflowY = 'auto';
|
|
204
162
|
quillRef.current.disable();
|
|
@@ -224,7 +182,6 @@ const QuillEditor = ({
|
|
|
224
182
|
});
|
|
225
183
|
quillRef.current.setContents(formattedDelta);
|
|
226
184
|
}
|
|
227
|
-
quillRef.current.on(Quill.events.TEXT_CHANGE, (...args) => handleChange(...args, quillRef.current));
|
|
228
185
|
if (onFocus || onBlur) {
|
|
229
186
|
quillRef.current.on(Quill.events.SELECTION_CHANGE, (range, oldRange, source) => {
|
|
230
187
|
const hasFocus = range && !oldRange;
|
|
@@ -239,6 +196,10 @@ const QuillEditor = ({
|
|
|
239
196
|
quillRef.current = null;
|
|
240
197
|
};
|
|
241
198
|
}, [quillRef]);
|
|
199
|
+
useEffect(() => {
|
|
200
|
+
if (!quill) return;
|
|
201
|
+
quill.on(Quill.events.TEXT_CHANGE, _args => handleChange(quill));
|
|
202
|
+
}, [quill, handleChange]);
|
|
242
203
|
useEffect(() => {
|
|
243
204
|
if (!quill) return;
|
|
244
205
|
quill.clipboard.addMatcher(Node.ELEMENT_NODE, (node, delta) => {
|
|
@@ -60,7 +60,7 @@ interface QuillEditorProps {
|
|
|
60
60
|
resize?: boolean | 'both';
|
|
61
61
|
formats?: string[];
|
|
62
62
|
bounds?: string | HTMLElement;
|
|
63
|
-
onChange?: (content: string
|
|
63
|
+
onChange?: (content: string) => void;
|
|
64
64
|
onFocus?: (html: string) => void;
|
|
65
65
|
onBlur?: (html: string) => void;
|
|
66
66
|
invalidMessage?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/packages/core/QuillEditor/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,UAAU,kBAAkB;IAE1B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAGhB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IAGtB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IAGhE,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;IAGD,MAAM,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,OAAO,CAAA;QACb,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB,CAAA;IAGD,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,IAAI,CAAC,EAAE,OAAO,CAAA;KACf,CAAA;IAGD,SAAS,CAAC,EAAE;QACV,GAAG,CAAC,EAAE,OAAO,CAAA;KACd,CAAA;IAGD,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IAGrD,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAA;IAG/B,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAA;IAGzB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IAGtD,KAAK,CAAC,EAAE,OAAO,CAAA;IAGf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;IAC3C,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;KAC/B,CAAA;IACD,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IAC7B,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/packages/core/QuillEditor/models.ts"],"names":[],"mappings":"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"}
|