@modusoperandi/licit 1.1.3 → 1.1.4

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.
@@ -74,6 +74,7 @@ const ParagraphNodeSpec: NodeSpec = {
74
74
  },
75
75
  content: 'inline*',
76
76
  group: 'block',
77
+ defining: true,
77
78
  parseDOM: [
78
79
  {
79
80
  tag: 'p',
@@ -84,15 +85,10 @@ const ParagraphNodeSpec: NodeSpec = {
84
85
  };
85
86
 
86
87
  function getAttrs(dom: HTMLElement): Object {
87
- const {
88
- lineHeight,
89
- textAlign,
90
- marginLeft,
91
- paddingTop,
92
- paddingBottom,
93
- } = dom.style;
88
+ const { lineHeight, textAlign, marginLeft, paddingTop, paddingBottom } =
89
+ dom.style;
94
90
 
95
- let align = dom.getAttribute('align') || textAlign || '';
91
+ let align = dom.getAttribute('align') || textAlign || 'left';
96
92
  align = ALIGN_PATTERN.test(align) ? align : null;
97
93
 
98
94
  let indent = parseInt(dom.getAttribute(ATTRIBUTE_INDENT), 10);
@@ -109,10 +105,12 @@ function getAttrs(dom: HTMLElement): Object {
109
105
  const overriddenAlign = dom.getAttribute('overriddenAlign') || '';
110
106
  const overriddenAlignValue = dom.getAttribute('overriddenAlignValue') || '';
111
107
  const overriddenLineSpacing = dom.getAttribute('overriddenLineSpacing') || '';
112
- const overriddenLineSpacingValue = dom.getAttribute('overriddenLineSpacingValue') || '';
108
+ const overriddenLineSpacingValue =
109
+ dom.getAttribute('overriddenLineSpacingValue') || '';
113
110
  const overriddenIndent = dom.getAttribute('overriddenIndent') || '';
114
111
  const overriddenIndentValue = dom.getAttribute('overriddenIndentValue') || '';
115
112
  const innerLink = dom.getAttribute('innerLink') || '';
113
+ const objectId = dom.getAttribute('objectId') || '';
116
114
  return {
117
115
  align,
118
116
  indent,
@@ -127,6 +125,7 @@ function getAttrs(dom: HTMLElement): Object {
127
125
  overriddenIndent,
128
126
  overriddenIndentValue,
129
127
  innerLink,
128
+ objectId,
130
129
  };
131
130
  }
132
131
 
@@ -135,7 +134,7 @@ function getStyle(attrs: Object) {
135
134
  attrs.align,
136
135
  attrs.lineSpacing,
137
136
  attrs.paddingTop,
138
- attrs.paddingBottom,
137
+ attrs.paddingBottom
139
138
  );
140
139
  }
141
140
 
@@ -161,12 +160,21 @@ function getStyleEx(align, lineSpacing, paddingTop, paddingBottom) {
161
160
  style += `padding-bottom: ${paddingBottom};`;
162
161
  }
163
162
  return { style };
164
-
165
163
  }
166
164
 
167
165
  function toDOM(node: Node): Array<any> {
168
- const { indent, id, overriddenAlign,overriddenAlignValue, overriddenLineSpacing,overriddenLineSpacingValue, overriddenIndent,overriddenIndentValue, innerLink } = node.attrs;
169
- const attrs = {};
166
+ const {
167
+ indent,
168
+ id,
169
+ overriddenAlign,
170
+ overriddenAlignValue,
171
+ overriddenLineSpacing,
172
+ overriddenLineSpacingValue,
173
+ overriddenIndent,
174
+ overriddenIndentValue,
175
+ innerLink,
176
+ } = node.attrs;
177
+ const attrs = { ...node.attrs };
170
178
  const { style } = getStyle(node.attrs);
171
179
 
172
180
  style && (attrs.style = style);
@@ -196,7 +204,10 @@ export const getParagraphStyle = getStyle;
196
204
 
197
205
  export function convertMarginLeftToIndentValue(marginLeft: string): number {
198
206
  const ptValue = convertToCSSPTValue(marginLeft);
199
- return Math.min(Math.max(Math.floor(ptValue / INDENT_MARGIN_PT_SIZE), MIN_INDENT_LEVEL), MAX_INDENT_LEVEL);
207
+ return Math.min(
208
+ Math.max(Math.floor(ptValue / INDENT_MARGIN_PT_SIZE), MIN_INDENT_LEVEL),
209
+ MAX_INDENT_LEVEL
210
+ );
200
211
  }
201
212
 
202
213
  export default ParagraphNodeSpec;
package/StrikeMarkSpec.js CHANGED
@@ -1,15 +1,22 @@
1
1
  // https://bitbucket.org/atlassian/atlaskit/src/34facee3f461/packages/editor-core/src/schema/nodes/?at=master
2
2
  var StrikeMarkSpec = {
3
+ attrs: {
4
+ overridden: {
5
+ "default": false
6
+ } // Optional attribute for additional logic
7
+ },
3
8
  parseDOM: [{
4
- style: 'text-decoration',
5
- getAttrs: function getAttrs(value) {
6
- return value === 'line-through' && null;
9
+ tag: 'strike',
10
+ getAttrs: function getAttrs(dom) {
11
+ var _overridden = dom.getAttribute('overridden');
12
+ return {
13
+ overridden: _overridden === 'true'
14
+ };
7
15
  }
8
16
  }],
9
- toDOM: function toDOM() {
10
- var style = 'text-decoration: line-through';
11
- return ['span', {
12
- style: style
17
+ toDOM: function toDOM(mark) {
18
+ return ['strike', {
19
+ overridden: mark.attrs.overridden
13
20
  }, 0];
14
21
  }
15
22
  };
@@ -4,17 +4,20 @@ import type { MarkSpec } from './Types.js';
4
4
 
5
5
  // https://bitbucket.org/atlassian/atlaskit/src/34facee3f461/packages/editor-core/src/schema/nodes/?at=master
6
6
  const StrikeMarkSpec: MarkSpec = {
7
+ attrs: {
8
+ overridden: { default: false }, // Optional attribute for additional logic
9
+ },
7
10
  parseDOM: [
8
11
  {
9
- style: 'text-decoration',
10
- getAttrs: (value) => {
11
- return value === 'line-through' && null;
12
- },
12
+ tag: 'strike',
13
+ getAttrs: (dom: HTMLElement) => {
14
+ const _overridden = dom.getAttribute('overridden');
15
+ return { overridden: _overridden === 'true' };
16
+ }
13
17
  },
14
18
  ],
15
- toDOM() {
16
- const style = 'text-decoration: line-through';
17
- return ['span', { style }, 0];
19
+ toDOM(mark) {
20
+ return ['strike', { overridden: mark.attrs.overridden }, 0];
18
21
  },
19
22
  };
20
23
 
package/StrongMarkSpec.js CHANGED
@@ -1,25 +1,38 @@
1
- var STRONG_DOM = ['strong', 0];
2
- var CSS_BOLD_PATTERN = /^(bold(er)?|[5-9]\d{2,})$/;
3
1
  var StrongMarkSpec = {
4
- parseDOM: [{
5
- tag: 'strong'
2
+ attrs: {
3
+ overridden: {
4
+ "default": false
5
+ }
6
6
  },
7
- // This works around a Google Docs misbehavior where
8
- // pasted content will be inexplicably wrapped in `<b>`
9
- // tags with a font-weight normal.
10
- {
7
+ parseDOM: [{
8
+ tag: 'strong',
9
+ getAttrs: function getAttrs(dom) {
10
+ var _overridden = dom.getAttribute('overridden');
11
+ return {
12
+ overridden: _overridden === 'true'
13
+ };
14
+ }
15
+ }, {
11
16
  tag: 'b',
12
- getAttrs: function getAttrs(node) {
13
- return node.style.fontWeight != 'normal' && null;
17
+ getAttrs: function getAttrs(dom) {
18
+ var _overridden = dom.getAttribute('overridden');
19
+ return {
20
+ overridden: _overridden === 'true'
21
+ };
14
22
  }
15
23
  }, {
16
- style: 'font-weight',
17
- getAttrs: function getAttrs(value) {
18
- return CSS_BOLD_PATTERN.test(value) && null;
24
+ tag: 'span[style*=font-weight]',
25
+ getAttrs: function getAttrs(value, dom) {
26
+ var _overridden = dom.getAttribute('overridden');
27
+ return {
28
+ overridden: _overridden === 'true'
29
+ };
19
30
  }
20
31
  }],
21
- toDOM: function toDOM() {
22
- return STRONG_DOM;
32
+ toDOM: function toDOM(mark) {
33
+ return ['strong', {
34
+ overridden: mark.attrs.overridden
35
+ }, 0];
23
36
  }
24
37
  };
25
38
  export default StrongMarkSpec;
@@ -2,23 +2,37 @@
2
2
 
3
3
  import type { MarkSpec } from './Types.js';
4
4
 
5
- const STRONG_DOM = ['strong', 0];
6
- const CSS_BOLD_PATTERN = /^(bold(er)?|[5-9]\d{2,})$/;
7
-
8
5
  const StrongMarkSpec: MarkSpec = {
6
+ attrs: {
7
+ overridden: { default: false }
8
+ },
9
9
  parseDOM: [
10
- { tag: 'strong' },
11
- // This works around a Google Docs misbehavior where
12
- // pasted content will be inexplicably wrapped in `<b>`
13
- // tags with a font-weight normal.
14
- { tag: 'b', getAttrs: (node) => node.style.fontWeight != 'normal' && null },
10
+
11
+ {
12
+ tag: 'strong',
13
+ getAttrs: (dom: HTMLElement) => {
14
+ const _overridden = dom.getAttribute('overridden');
15
+ return { overridden: _overridden === 'true' };
16
+ }
17
+ },
18
+ {
19
+ tag: 'b',
20
+ getAttrs: (dom: HTMLElement) => {
21
+ const _overridden = dom.getAttribute('overridden');
22
+ return { overridden: _overridden === 'true' };
23
+ }
24
+ },
15
25
  {
16
- style: 'font-weight',
17
- getAttrs: (value) => CSS_BOLD_PATTERN.test(value) && null,
26
+ tag: 'span[style*=font-weight]',
27
+ getAttrs: (value, dom: HTMLElement) => {
28
+ const _overridden = dom.getAttribute('overridden');
29
+ return { overridden: _overridden === 'true' };
30
+
31
+ },
18
32
  },
19
33
  ],
20
- toDOM() {
21
- return STRONG_DOM;
34
+ toDOM(mark) {
35
+ return ['strong', { overridden: mark.attrs.overridden }, 0];
22
36
  },
23
37
  };
24
38
 
@@ -2,27 +2,34 @@ import { Node } from 'prosemirror-model';
2
2
  import toCSSColor from './ui/toCSSColor.js';
3
3
  var TextColorMarkSpec = {
4
4
  attrs: {
5
- color: ''
5
+ color: '',
6
+ overridden: {
7
+ "default": false
8
+ }
6
9
  },
7
10
  inline: true,
8
11
  group: 'inline',
9
12
  parseDOM: [{
10
- style: 'color',
11
- getAttrs: function getAttrs(color) {
13
+ tag: 'span[style*=color]',
14
+ getAttrs: function getAttrs(dom) {
15
+ var color = dom.style.color;
16
+ var overridden = dom.getAttribute('overridden') === 'true'; // Extract overridden flag
12
17
  return {
13
- color: toCSSColor(color)
18
+ color: toCSSColor(color),
19
+ overridden: overridden
14
20
  };
15
21
  }
16
22
  }],
17
23
  toDOM: function toDOM(node) {
18
- var color = node.attrs.color;
19
- var style = '';
24
+ var _node$attrs = node.attrs,
25
+ color = _node$attrs.color,
26
+ overridden = _node$attrs.overridden;
27
+ var attrs = {};
20
28
  if (color) {
21
- style += "color: ".concat(color, ";");
29
+ attrs.style = "color: ".concat(color, ";");
30
+ attrs['overridden'] = overridden.toString();
22
31
  }
23
- return ['span', {
24
- style: style
25
- }, 0];
32
+ return ['span', attrs, 0];
26
33
  }
27
34
  };
28
35
  export default TextColorMarkSpec;
@@ -9,26 +9,31 @@ import type { MarkSpec } from './Types.js';
9
9
  const TextColorMarkSpec: MarkSpec = {
10
10
  attrs: {
11
11
  color: '',
12
+ overridden: { default: false },
12
13
  },
13
14
  inline: true,
14
15
  group: 'inline',
15
16
  parseDOM: [
16
17
  {
17
- style: 'color',
18
- getAttrs: (color) => {
18
+ tag: 'span[style*=color]',
19
+ getAttrs: (dom: HTMLElement) => {
20
+ const { color } = dom.style;
21
+ const overridden = dom.getAttribute('overridden') === 'true'; // Extract overridden flag
19
22
  return {
20
23
  color: toCSSColor(color),
24
+ overridden
21
25
  };
22
26
  },
23
27
  },
24
28
  ],
25
29
  toDOM(node: Node) {
26
- const { color } = node.attrs;
27
- let style = '';
30
+ const { color, overridden } = node.attrs;
31
+ const attrs = {};
28
32
  if (color) {
29
- style += `color: ${color};`;
33
+ attrs.style = `color: ${color};`;
34
+ attrs['overridden'] = overridden.toString();
30
35
  }
31
- return ['span', { style }, 0];
36
+ return ['span', attrs, 0];
32
37
  },
33
38
  };
34
39
 
@@ -2,29 +2,39 @@ import { Node } from 'prosemirror-model';
2
2
  import { isTransparent, toCSSColor } from './ui/toCSSColor.js';
3
3
  var TextHighlightMarkSpec = {
4
4
  attrs: {
5
- highlightColor: ''
5
+ highlightColor: '',
6
+ overridden: {
7
+ "default": false
8
+ }
6
9
  },
7
10
  inline: true,
8
11
  group: 'inline',
9
12
  parseDOM: [{
10
13
  tag: 'span[style*=background-color]',
14
+ priority: 100,
11
15
  getAttrs: function getAttrs(dom) {
12
16
  var backgroundColor = dom.style.backgroundColor;
13
17
  var color = toCSSColor(backgroundColor);
18
+ var overridden = dom.getAttribute('overridden') === 'true'; // Extract overridden flag
19
+
14
20
  return {
15
- highlightColor: isTransparent(color) ? '' : color
21
+ highlightColor: isTransparent(color) ? '' : color,
22
+ overridden: overridden // Ensure overridden is captured
16
23
  };
17
24
  }
18
25
  }],
19
26
  toDOM: function toDOM(node) {
20
- var highlightColor = node.attrs.highlightColor;
21
- var style = '';
27
+ var _node$attrs = node.attrs,
28
+ highlightColor = _node$attrs.highlightColor,
29
+ overridden = _node$attrs.overridden;
30
+ var attrs = {};
22
31
  if (highlightColor) {
23
- style += "background-color: ".concat(highlightColor, ";");
32
+ attrs.style = "background-color: ".concat(highlightColor, ";");
24
33
  }
25
- return ['span', {
26
- style: style
27
- }, 0];
34
+
35
+ // Store overridden flag properly as a data attribute
36
+ attrs['overridden'] = overridden.toString();
37
+ return ['span', attrs, 0];
28
38
  }
29
39
  };
30
40
  export default TextHighlightMarkSpec;
@@ -1,7 +1,6 @@
1
1
  // @flow
2
2
 
3
3
  import { Node } from 'prosemirror-model';
4
-
5
4
  import { isTransparent, toCSSColor } from './ui/toCSSColor.js';
6
5
 
7
6
  import type { MarkSpec } from './Types.js';
@@ -9,29 +8,39 @@ import type { MarkSpec } from './Types.js';
9
8
  const TextHighlightMarkSpec: MarkSpec = {
10
9
  attrs: {
11
10
  highlightColor: '',
11
+ overridden: { default: false },
12
12
  },
13
13
  inline: true,
14
14
  group: 'inline',
15
15
  parseDOM: [
16
16
  {
17
17
  tag: 'span[style*=background-color]',
18
+ priority: 100,
18
19
  getAttrs: (dom: HTMLElement) => {
19
- const {backgroundColor} = dom.style;
20
+ const { backgroundColor } = dom.style;
20
21
  const color = toCSSColor(backgroundColor);
22
+ const overridden = dom.getAttribute('overridden') === 'true'; // Extract overridden flag
23
+
21
24
  return {
22
25
  highlightColor: isTransparent(color) ? '' : color,
26
+ overridden, // Ensure overridden is captured
23
27
  };
24
28
  },
25
29
  },
26
30
  ],
27
31
 
28
32
  toDOM(node: Node) {
29
- const {highlightColor} = node.attrs;
30
- let style = '';
33
+ const { highlightColor, overridden } = node.attrs;
34
+ const attrs = {};
35
+
31
36
  if (highlightColor) {
32
- style += `background-color: ${highlightColor};`;
37
+ attrs.style = `background-color: ${highlightColor};`;
33
38
  }
34
- return ['span', {style}, 0];
39
+
40
+ // Store overridden flag properly as a data attribute
41
+ attrs['overridden'] = overridden.toString();
42
+
43
+ return ['span', attrs, 0];
35
44
  },
36
45
  };
37
46
 
@@ -1,14 +1,28 @@
1
1
  var TextSubMarkSpec = {
2
+ attrs: {
3
+ overridden: {
4
+ "default": false
5
+ }
6
+ },
2
7
  parseDOM: [{
3
- tag: 'sub'
8
+ tag: 'sub',
9
+ getAttrs: function getAttrs() {
10
+ return {
11
+ overridden: false
12
+ };
13
+ }
4
14
  }, {
5
15
  style: 'vertical-align',
6
16
  getAttrs: function getAttrs(value) {
7
- return value === 'sub' && null;
17
+ return value === 'sub' ? {
18
+ overridden: false
19
+ } : null;
8
20
  }
9
21
  }],
10
- toDOM: function toDOM() {
11
- return ['sub', 0];
22
+ toDOM: function toDOM(mark) {
23
+ return ['sub', {
24
+ overridden: mark.attrs.overridden
25
+ }, 0];
12
26
  }
13
27
  };
14
28
  export default TextSubMarkSpec;
@@ -3,17 +3,18 @@
3
3
  import type { MarkSpec } from './Types.js';
4
4
 
5
5
  const TextSubMarkSpec: MarkSpec = {
6
+ attrs: {
7
+ overridden: { default: false },
8
+ },
6
9
  parseDOM: [
7
- { tag: 'sub' },
10
+ { tag: 'sub', getAttrs: () => ({ overridden: false }) },
8
11
  {
9
12
  style: 'vertical-align',
10
- getAttrs: (value) => {
11
- return value === 'sub' && null;
12
- },
13
+ getAttrs: (value) => (value === 'sub' ? { overridden: false } : null),
13
14
  },
14
15
  ],
15
- toDOM() {
16
- return ['sub', 0];
16
+ toDOM(mark) {
17
+ return ['sub', { overridden: mark.attrs.overridden }, 0];
17
18
  },
18
19
  };
19
20
 
@@ -1,14 +1,28 @@
1
1
  var TextSuperMarkSpec = {
2
+ attrs: {
3
+ overridden: {
4
+ "default": false
5
+ }
6
+ },
2
7
  parseDOM: [{
3
- tag: 'sup'
8
+ tag: 'sup',
9
+ getAttrs: function getAttrs() {
10
+ return {
11
+ overridden: false
12
+ };
13
+ }
4
14
  }, {
5
15
  style: 'vertical-align',
6
16
  getAttrs: function getAttrs(value) {
7
- return value === 'super' && null;
17
+ return value === 'super' ? {
18
+ overridden: false
19
+ } : null;
8
20
  }
9
21
  }],
10
- toDOM: function toDOM() {
11
- return ['sup', 0];
22
+ toDOM: function toDOM(mark) {
23
+ return ['sup', {
24
+ overridden: mark.attrs.overridden
25
+ }, 0];
12
26
  }
13
27
  };
14
28
  export default TextSuperMarkSpec;
@@ -3,17 +3,18 @@
3
3
  import type { MarkSpec } from './Types.js';
4
4
 
5
5
  const TextSuperMarkSpec: MarkSpec = {
6
+ attrs: {
7
+ overridden: { default: false },
8
+ },
6
9
  parseDOM: [
7
- { tag: 'sup' },
10
+ { tag: 'sup', getAttrs: () => ({ overridden: false }) },
8
11
  {
9
12
  style: 'vertical-align',
10
- getAttrs: (value) => {
11
- return value === 'super' && null;
12
- },
13
+ getAttrs: (value) => (value === 'super' ? { overridden: false } : null),
13
14
  },
14
15
  ],
15
- toDOM() {
16
- return ['sup', 0];
16
+ toDOM(mark) {
17
+ return ['sup', { overridden: mark.attrs.overridden }, 0];
17
18
  },
18
19
  };
19
20
 
@@ -1,20 +1,23 @@
1
1
  // https://bitbucket.org/atlassian/atlaskit/src/34facee3f461/packages/editor-core/src/schema/nodes/?at=master
2
2
  var TextUnderlineMarkSpec = {
3
- parseDOM: [{
4
- tag: 'u'
5
- }, {
6
- style: 'text-decoration-line',
7
- getAttrs: function getAttrs(value) {
8
- return value === 'underline' && null;
3
+ attrs: {
4
+ overridden: {
5
+ "default": false
9
6
  }
10
- }, {
11
- style: 'text-decoration',
12
- getAttrs: function getAttrs(value) {
13
- return value === 'underline' && null;
7
+ },
8
+ parseDOM: [{
9
+ tag: 'u',
10
+ getAttrs: function getAttrs(dom) {
11
+ var _overridden = dom.getAttribute('overridden');
12
+ return {
13
+ overridden: _overridden === 'true'
14
+ };
14
15
  }
15
16
  }],
16
- toDOM: function toDOM() {
17
- return ['u', 0];
17
+ toDOM: function toDOM(mark) {
18
+ return ['u', {
19
+ overridden: mark.attrs.overridden
20
+ }, 0];
18
21
  }
19
22
  };
20
23
  export default TextUnderlineMarkSpec;
@@ -4,23 +4,20 @@ import type { MarkSpec } from './Types.js';
4
4
 
5
5
  // https://bitbucket.org/atlassian/atlaskit/src/34facee3f461/packages/editor-core/src/schema/nodes/?at=master
6
6
  const TextUnderlineMarkSpec: MarkSpec = {
7
+ attrs: {
8
+ overridden: { default: false },
9
+ },
7
10
  parseDOM: [
8
- { tag: 'u' },
9
- {
10
- style: 'text-decoration-line',
11
- getAttrs: (value) => {
12
- return value === 'underline' && null;
13
- },
14
- },
15
11
  {
16
- style: 'text-decoration',
17
- getAttrs: (value) => {
18
- return value === 'underline' && null;
19
- },
12
+ tag: 'u',
13
+ getAttrs: (dom: HTMLElement) => {
14
+ const _overridden = dom.getAttribute('overridden');
15
+ return { overridden: _overridden === 'true' };
16
+ }
20
17
  },
21
18
  ],
22
- toDOM() {
23
- return ['u', 0];
19
+ toDOM(mark) {
20
+ return ['u', { overridden: mark.attrs.overridden }, 0];
24
21
  },
25
22
  };
26
23