@quadrats/common 0.4.4 → 0.4.5

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 +1 @@
1
- export declare const createBold: (variant?: string | undefined) => ({ type, parentType }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark;
1
+ export declare const createBold: (variant?: string | undefined) => ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark;
@@ -1,10 +1,9 @@
1
1
  import { createToggleMarkCreator } from '@quadrats/common/toggle-mark';
2
- import { getVariantType } from '@quadrats/core';
3
2
  import { BOLD_TYPE } from './constants.js';
4
3
 
5
4
  const createBold = (variant) => createToggleMarkCreator({
6
- type: getVariantType(BOLD_TYPE, variant),
7
- parentType: BOLD_TYPE,
5
+ type: BOLD_TYPE,
6
+ variant,
8
7
  });
9
8
 
10
9
  export { createBold };
package/bold/index.cjs.js CHANGED
@@ -3,13 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var toggleMark = require('@quadrats/common/toggle-mark');
6
- var core = require('@quadrats/core');
7
6
 
8
7
  const BOLD_TYPE = 'bold';
9
8
 
10
9
  const createBold = (variant) => toggleMark.createToggleMarkCreator({
11
- type: core.getVariantType(BOLD_TYPE, variant),
12
- parentType: BOLD_TYPE,
10
+ type: BOLD_TYPE,
11
+ variant,
13
12
  });
14
13
 
15
14
  exports.BOLD_TYPE = BOLD_TYPE;
@@ -4,21 +4,14 @@ import { FOOTNOTE_TYPE } from './constants.js';
4
4
  /* eslint-disable max-len */
5
5
  function createFootnote({ type = FOOTNOTE_TYPE, } = {}) {
6
6
  const isSelectionInFootnote = (editor) => isNodesTypeIn(editor, [type]);
7
- const getAllFootnotes = (editor) => {
8
- const resultNodes = getNodes(editor, {
9
- at: [],
10
- match: (node) => node.type === FOOTNOTE_TYPE,
11
- });
12
- return Array.from(resultNodes);
13
- };
14
7
  const getFootnoteText = (editor) => {
15
8
  var _a, _b, _c;
16
9
  const at = editor.selection;
17
10
  if (!at) {
18
11
  return '';
19
12
  }
20
- const nodes = getNodes(editor, { at, match: (node) => node.type === type });
21
- return (_c = (_b = (_a = Array.from(nodes)) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.footnote;
13
+ const firstNode = (_b = (_a = Array.from(getNodes(editor, { at, match: (node) => node.type === type }))) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b[0];
14
+ return (_c = firstNode) === null || _c === void 0 ? void 0 : _c.footnote;
22
15
  };
23
16
  const updateFootnoteIndex = (editor, options = { startAt: 1 }) => {
24
17
  var _a;
@@ -61,7 +54,6 @@ function createFootnote({ type = FOOTNOTE_TYPE, } = {}) {
61
54
  };
62
55
  return {
63
56
  type,
64
- getAllFootnotes,
65
57
  getFootnoteText,
66
58
  isSelectionInFootnote,
67
59
  updateFootnoteIndex,
@@ -9,21 +9,14 @@ const FOOTNOTE_TYPE = 'footnote';
9
9
  /* eslint-disable max-len */
10
10
  function createFootnote({ type = FOOTNOTE_TYPE, } = {}) {
11
11
  const isSelectionInFootnote = (editor) => core.isNodesTypeIn(editor, [type]);
12
- const getAllFootnotes = (editor) => {
13
- const resultNodes = core.getNodes(editor, {
14
- at: [],
15
- match: (node) => node.type === FOOTNOTE_TYPE,
16
- });
17
- return Array.from(resultNodes);
18
- };
19
12
  const getFootnoteText = (editor) => {
20
13
  var _a, _b, _c;
21
14
  const at = editor.selection;
22
15
  if (!at) {
23
16
  return '';
24
17
  }
25
- const nodes = core.getNodes(editor, { at, match: (node) => node.type === type });
26
- return (_c = (_b = (_a = Array.from(nodes)) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.footnote;
18
+ const firstNode = (_b = (_a = Array.from(core.getNodes(editor, { at, match: (node) => node.type === type }))) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b[0];
19
+ return (_c = firstNode) === null || _c === void 0 ? void 0 : _c.footnote;
27
20
  };
28
21
  const updateFootnoteIndex = (editor, options = { startAt: 1 }) => {
29
22
  var _a;
@@ -66,7 +59,6 @@ function createFootnote({ type = FOOTNOTE_TYPE, } = {}) {
66
59
  };
67
60
  return {
68
61
  type,
69
- getAllFootnotes,
70
62
  getFootnoteText,
71
63
  isSelectionInFootnote,
72
64
  updateFootnoteIndex,
@@ -1,4 +1,9 @@
1
- import { Editor, Range, Element, WithElementType, UnwrapNodeByTypesOptions, TransformsWrapNodesOptions, Withable, NodeEntry, Node } from '@quadrats/core';
1
+ import { Editor, Range, Element, WithElementType, UnwrapNodeByTypesOptions, TransformsWrapNodesOptions, Withable } from '@quadrats/core';
2
+ export interface FootnoteData {
3
+ footnote: string;
4
+ index: number;
5
+ wrapperText: string;
6
+ }
2
7
  export interface FootnoteElement extends Element, WithElementType {
3
8
  footnote: string;
4
9
  index?: number;
@@ -14,7 +19,6 @@ export interface FootnoteUpsertFootnoteOptions {
14
19
  at?: Range;
15
20
  }
16
21
  export interface Footnote extends WithElementType, Withable {
17
- getAllFootnotes(editor: Editor): NodeEntry<Node>[];
18
22
  getFootnoteText(editor: Editor): string;
19
23
  isSelectionInFootnote(editor: Editor): boolean;
20
24
  unwrapFootnote(editor: Editor, options?: FootnoteUnwrapFootnoteOptions): void;
@@ -1 +1 @@
1
- export declare const createHighlight: (variant?: string | undefined) => ({ type, parentType }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark;
1
+ export declare const createHighlight: (variant?: string | undefined) => ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark;
@@ -1,10 +1,9 @@
1
1
  import { createToggleMarkCreator } from '@quadrats/common/toggle-mark';
2
- import { getVariantType } from '@quadrats/core';
3
2
  import { HIGHLIGHT_TYPE } from './constants.js';
4
3
 
5
4
  const createHighlight = (variant) => createToggleMarkCreator({
6
- type: getVariantType(HIGHLIGHT_TYPE, variant),
7
- parentType: HIGHLIGHT_TYPE,
5
+ type: HIGHLIGHT_TYPE,
6
+ variant,
8
7
  });
9
8
 
10
9
  export { createHighlight };
@@ -3,13 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var toggleMark = require('@quadrats/common/toggle-mark');
6
- var core = require('@quadrats/core');
7
6
 
8
7
  const HIGHLIGHT_TYPE = 'highlight';
9
8
 
10
9
  const createHighlight = (variant) => toggleMark.createToggleMarkCreator({
11
- type: core.getVariantType(HIGHLIGHT_TYPE, variant),
12
- parentType: HIGHLIGHT_TYPE,
10
+ type: HIGHLIGHT_TYPE,
11
+ variant,
13
12
  });
14
13
 
15
14
  exports.HIGHLIGHT_TYPE = HIGHLIGHT_TYPE;
@@ -28,7 +28,12 @@ function createInputBlock(options = {}) {
28
28
  confirm,
29
29
  with(editor) {
30
30
  const { isVoid } = editor;
31
- editor.isVoid = (element) => element.type === type || isVoid(element);
31
+ editor.isVoid = (element) => {
32
+ // invalidate unfinished input_block from storage
33
+ if (element.type === type && typeof element.getPlaceholder !== 'function')
34
+ return false;
35
+ return element.type === type || isVoid(element);
36
+ };
32
37
  return editor;
33
38
  },
34
39
  };
@@ -33,7 +33,12 @@ function createInputBlock(options = {}) {
33
33
  confirm,
34
34
  with(editor) {
35
35
  const { isVoid } = editor;
36
- editor.isVoid = (element) => element.type === type || isVoid(element);
36
+ editor.isVoid = (element) => {
37
+ // invalidate unfinished input_block from storage
38
+ if (element.type === type && typeof element.getPlaceholder !== 'function')
39
+ return false;
40
+ return element.type === type || isVoid(element);
41
+ };
37
42
  return editor;
38
43
  },
39
44
  };
@@ -1 +1 @@
1
- export declare const createItalic: (variant?: string | undefined) => ({ type, parentType }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark;
1
+ export declare const createItalic: (variant?: string | undefined) => ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark;
@@ -1,10 +1,9 @@
1
1
  import { createToggleMarkCreator } from '@quadrats/common/toggle-mark';
2
- import { getVariantType } from '@quadrats/core';
3
2
  import { ITALIC_TYPE } from './constants.js';
4
3
 
5
4
  const createItalic = (variant) => createToggleMarkCreator({
6
- type: getVariantType(ITALIC_TYPE, variant),
7
- parentType: ITALIC_TYPE,
5
+ type: ITALIC_TYPE,
6
+ variant,
8
7
  });
9
8
 
10
9
  export { createItalic };
@@ -3,13 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var toggleMark = require('@quadrats/common/toggle-mark');
6
- var core = require('@quadrats/core');
7
6
 
8
7
  const ITALIC_TYPE = 'italic';
9
8
 
10
9
  const createItalic = (variant) => toggleMark.createToggleMarkCreator({
11
- type: core.getVariantType(ITALIC_TYPE, variant),
12
- parentType: ITALIC_TYPE,
10
+ type: ITALIC_TYPE,
11
+ variant,
13
12
  });
14
13
 
15
14
  exports.ITALIC_TYPE = ITALIC_TYPE;
@@ -66,6 +66,9 @@ function createLink({ type = LINK_TYPE, isUrl: isUrl$1 = isUrl, prevUrlToLinkAft
66
66
  unwrapLink(editor, { at: wrappableVoidPath });
67
67
  wrapLink(editor, url, { at: wrappableVoidPath });
68
68
  }
69
+ else {
70
+ insertLink(editor, url, { at });
71
+ }
69
72
  return;
70
73
  }
71
74
  }
package/link/index.cjs.js CHANGED
@@ -71,6 +71,9 @@ function createLink({ type = LINK_TYPE, isUrl = utils.isUrl, prevUrlToLinkAfterS
71
71
  unwrapLink(editor, { at: wrappableVoidPath });
72
72
  wrapLink(editor, url, { at: wrappableVoidPath });
73
73
  }
74
+ else {
75
+ insertLink(editor, url, { at });
76
+ }
74
77
  return;
75
78
  }
76
79
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quadrats/common",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "",
5
5
  "author": "Rytass",
6
6
  "homepage": "https://github.com/Quadrats/quadrats#readme",
@@ -18,7 +18,7 @@
18
18
  "url": "https://github.com/Quadrats/quadrats/issues"
19
19
  },
20
20
  "dependencies": {
21
- "@quadrats/core": "^0.4.0",
21
+ "@quadrats/core": "^0.4.5",
22
22
  "@quadrats/locales": "^0.4.0",
23
23
  "@quadrats/utils": "^0.4.0"
24
24
  }
@@ -1 +1 @@
1
- export declare const createStrikethrough: (variant?: string | undefined) => ({ type, parentType }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark;
1
+ export declare const createStrikethrough: (variant?: string | undefined) => ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark;
@@ -1,10 +1,9 @@
1
1
  import { createToggleMarkCreator } from '@quadrats/common/toggle-mark';
2
- import { getVariantType } from '@quadrats/core';
3
2
  import { STRIKETHROUGH_TYPE } from './constants.js';
4
3
 
5
4
  const createStrikethrough = (variant) => createToggleMarkCreator({
6
- type: getVariantType(STRIKETHROUGH_TYPE, variant),
7
- parentType: STRIKETHROUGH_TYPE,
5
+ type: STRIKETHROUGH_TYPE,
6
+ variant,
8
7
  });
9
8
 
10
9
  export { createStrikethrough };
@@ -3,13 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var toggleMark = require('@quadrats/common/toggle-mark');
6
- var core = require('@quadrats/core');
7
6
 
8
7
  const STRIKETHROUGH_TYPE = 'strikethrough';
9
8
 
10
9
  const createStrikethrough = (variant) => toggleMark.createToggleMarkCreator({
11
- type: core.getVariantType(STRIKETHROUGH_TYPE, variant),
12
- parentType: STRIKETHROUGH_TYPE,
10
+ type: STRIKETHROUGH_TYPE,
11
+ variant,
13
12
  });
14
13
 
15
14
  exports.STRIKETHROUGH_TYPE = STRIKETHROUGH_TYPE;
@@ -1,9 +1,9 @@
1
1
  import { WithMarkType } from '@quadrats/core';
2
2
  import { ToggleMark } from './typings';
3
3
  export declare type CreateToggleMarkCreatorOptions = WithMarkType & {
4
- parentType?: string;
4
+ variant?: string;
5
5
  };
6
6
  export declare type CreateToggleMarkOptions = Partial<CreateToggleMarkCreatorOptions> & {
7
- parentType?: string;
7
+ variant?: string;
8
8
  };
9
- export declare function createToggleMarkCreator(defaults: CreateToggleMarkCreatorOptions): ({ type, parentType }?: CreateToggleMarkOptions) => ToggleMark;
9
+ export declare function createToggleMarkCreator(defaults: CreateToggleMarkCreatorOptions): ({ type, variant }?: CreateToggleMarkOptions) => ToggleMark;
@@ -1,27 +1,33 @@
1
- import { getMark, marksGroupBy } from '@quadrats/core';
1
+ import { getMark } from '@quadrats/core';
2
2
 
3
3
  function createToggleMarkCreator(defaults) {
4
- return ({ type = defaults.type, parentType = defaults.parentType } = {}) => {
4
+ return ({ type = defaults.type, variant = defaults.variant } = {}) => {
5
5
  const isToggleMarkActive = (editor) => {
6
6
  const mark = getMark(editor, type);
7
- return mark === true;
7
+ if (mark !== true)
8
+ return false;
9
+ const nowVariant = getMark(editor, `${type}Variant`) || '';
10
+ if (variant) {
11
+ return nowVariant === variant;
12
+ }
13
+ return !nowVariant;
8
14
  };
9
15
  const toggleMark = (editor) => {
10
16
  const isActive = isToggleMarkActive(editor);
11
17
  if (isActive) {
12
18
  editor.removeMark(type);
19
+ if (variant) {
20
+ editor.removeMark(`${type}Variant`);
21
+ }
13
22
  }
14
23
  else {
15
- if (parentType) {
16
- marksGroupBy(editor, (_mark) => {
17
- if (_mark.match(parentType)) {
18
- editor.removeMark(_mark);
19
- return true;
20
- }
21
- return false;
22
- });
23
- }
24
24
  editor.addMark(type, true);
25
+ if (variant) {
26
+ editor.addMark(`${type}Variant`, variant);
27
+ }
28
+ else {
29
+ editor.removeMark(`${type}Variant`);
30
+ }
25
31
  }
26
32
  };
27
33
  return {
@@ -5,27 +5,33 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var core = require('@quadrats/core');
6
6
 
7
7
  function createToggleMarkCreator(defaults) {
8
- return ({ type = defaults.type, parentType = defaults.parentType } = {}) => {
8
+ return ({ type = defaults.type, variant = defaults.variant } = {}) => {
9
9
  const isToggleMarkActive = (editor) => {
10
10
  const mark = core.getMark(editor, type);
11
- return mark === true;
11
+ if (mark !== true)
12
+ return false;
13
+ const nowVariant = core.getMark(editor, `${type}Variant`) || '';
14
+ if (variant) {
15
+ return nowVariant === variant;
16
+ }
17
+ return !nowVariant;
12
18
  };
13
19
  const toggleMark = (editor) => {
14
20
  const isActive = isToggleMarkActive(editor);
15
21
  if (isActive) {
16
22
  editor.removeMark(type);
23
+ if (variant) {
24
+ editor.removeMark(`${type}Variant`);
25
+ }
17
26
  }
18
27
  else {
19
- if (parentType) {
20
- core.marksGroupBy(editor, (_mark) => {
21
- if (_mark.match(parentType)) {
22
- editor.removeMark(_mark);
23
- return true;
24
- }
25
- return false;
26
- });
27
- }
28
28
  editor.addMark(type, true);
29
+ if (variant) {
30
+ editor.addMark(`${type}Variant`, variant);
31
+ }
32
+ else {
33
+ editor.removeMark(`${type}Variant`);
34
+ }
29
35
  }
30
36
  };
31
37
  return {
@@ -1 +1 @@
1
- export declare const createUnderline: (variant?: string | undefined) => ({ type, parentType }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark;
1
+ export declare const createUnderline: (variant?: string | undefined) => ({ type, variant }?: import("@quadrats/common/toggle-mark").CreateToggleMarkOptions | undefined) => import("@quadrats/common/toggle-mark").ToggleMark;
@@ -1,10 +1,9 @@
1
1
  import { createToggleMarkCreator } from '@quadrats/common/toggle-mark';
2
- import { getVariantType } from '@quadrats/core';
3
2
  import { UNDERLINE_TYPE } from './constants.js';
4
3
 
5
4
  const createUnderline = (variant) => createToggleMarkCreator({
6
- type: getVariantType(UNDERLINE_TYPE, variant),
7
- parentType: UNDERLINE_TYPE,
5
+ type: UNDERLINE_TYPE,
6
+ variant,
8
7
  });
9
8
 
10
9
  export { createUnderline };
@@ -3,13 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var toggleMark = require('@quadrats/common/toggle-mark');
6
- var core = require('@quadrats/core');
7
6
 
8
7
  const UNDERLINE_TYPE = 'underline';
9
8
 
10
9
  const createUnderline = (variant) => toggleMark.createToggleMarkCreator({
11
- type: core.getVariantType(UNDERLINE_TYPE, variant),
12
- parentType: UNDERLINE_TYPE,
10
+ type: UNDERLINE_TYPE,
11
+ variant,
13
12
  });
14
13
 
15
14
  exports.UNDERLINE_TYPE = UNDERLINE_TYPE;