@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.
@@ -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.13",
3
+ "version": "4.2.16",
4
4
  "description": "Design library for BBL Digital",
5
5
  "license": "MIT",
6
6
  "main": "./lib/index.js",