@bbl-digital/snorre 4.2.14 → 4.2.16

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,21 +1,17 @@
1
1
  /** @jsxImportSource @emotion/react */
2
- import { useRef, useState, useEffect, useCallback, useLayoutEffect } from 'react';
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((delta, _oldDelta, source, quill) => {
125
+ const handleChange = useCallback(quill => {
153
126
  if (!quill) return;
154
- const html = sanitizeHtml ? DOMPurify.sanitize(quill.root.innerHTML, {
127
+ const html = sanitizeHtml ? DOMPurify.sanitize(quill.getSemanticHTML(), {
155
128
  USE_PROFILES: {
156
129
  html: true
157
130
  }
158
131
  }) : quill.root.innerHTML;
159
- if (onChange) {
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, delta: any, source: string, editor: any) => void;
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":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/packages/core/QuillEditor/models.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bbl-digital/snorre",
3
- "version": "4.2.14",
3
+ "version": "4.2.16",
4
4
  "description": "Design library for BBL Digital",
5
5
  "license": "MIT",
6
6
  "main": "./lib/index.js",