@bbl-digital/snorre 4.2.14 → 4.2.17

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,14 +1,9 @@
1
1
  import Quill from 'quill';
2
- import { MyListContainer } from './ListContainer';
3
2
  const ListItem = Quill.import('formats/list');
4
3
  class MyListItem extends ListItem {
5
- static requiredContainer = MyListContainer;
6
4
  static create(value) {
7
5
  return super.create(value);
8
6
  }
9
- static register() {
10
- Quill.register(MyListContainer, true);
11
- }
12
7
  optimize(context) {
13
8
  if (this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer)) {
14
9
  // Insert the format value (bullet, ordered) into wrap arguments
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/packages/core/QuillEditor/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAc3C,OAAO,2BAA2B,CAAA;AAqDlC,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0S3C,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/packages/core/QuillEditor/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAW3C,OAAO,2BAA2B,CAAA;AAkClC,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA+Q3C,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -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,16 @@ 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
+ const length = quill.getLength() - 1;
133
+ onChange?.(html, length);
162
134
  }, [onChange, quill]);
163
- useLayoutEffect(() => {
164
- onTextChangeRef.current = onChange;
165
- });
166
135
  useEffect(() => {
167
136
  if (isMounted.current) return;
168
137
  quillRef.current = new Quill(`#editor${editorId.current}`, {
@@ -189,16 +158,6 @@ const QuillEditor = ({
189
158
  }, (range, context) => {
190
159
  return handleBackspaceWithIndentetList(range, context, quillRef.current);
191
160
  });
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
161
  quillRef.current.root.style.touchAction = 'pan-y';
203
162
  quillRef.current.root.style.overflowY = 'auto';
204
163
  quillRef.current.disable();
@@ -224,7 +183,6 @@ const QuillEditor = ({
224
183
  });
225
184
  quillRef.current.setContents(formattedDelta);
226
185
  }
227
- quillRef.current.on(Quill.events.TEXT_CHANGE, (...args) => handleChange(...args, quillRef.current));
228
186
  if (onFocus || onBlur) {
229
187
  quillRef.current.on(Quill.events.SELECTION_CHANGE, (range, oldRange, source) => {
230
188
  const hasFocus = range && !oldRange;
@@ -239,6 +197,10 @@ const QuillEditor = ({
239
197
  quillRef.current = null;
240
198
  };
241
199
  }, [quillRef]);
200
+ useEffect(() => {
201
+ if (!quill) return;
202
+ quill.on(Quill.events.TEXT_CHANGE, () => handleChange(quill));
203
+ }, [quill, handleChange]);
242
204
  useEffect(() => {
243
205
  if (!quill) return;
244
206
  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, length: number) => 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.17",
4
4
  "description": "Design library for BBL Digital",
5
5
  "license": "MIT",
6
6
  "main": "./lib/index.js",