@modusoperandi/licit 1.4.3 → 1.4.7

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.
Files changed (226) hide show
  1. package/BlockquoteInsertNewLineCommand.js.flow +70 -70
  2. package/BlockquoteNodeSpec.js.flow +29 -29
  3. package/BlockquoteToggleCommand.js.flow +56 -56
  4. package/BookmarkNodeSpec.js.flow +39 -39
  5. package/BulletListNodeSpec.js.flow +61 -61
  6. package/CZIProseMirror.js.flow +90 -90
  7. package/CodeBlockCommand.js.flow +65 -65
  8. package/CodeBlockNodeSpec.js.flow +24 -24
  9. package/CodeMarkSpec.js.flow +14 -14
  10. package/ContentPlaceholderPlugin.js.flow +183 -183
  11. package/CursorPlaceholderPlugin.js.flow +113 -113
  12. package/DocLayoutCommand.js.flow +97 -97
  13. package/DocNodeSpec.js.flow +62 -62
  14. package/EMMarkSpec.js.flow +39 -39
  15. package/EditorCommands.js.flow +124 -124
  16. package/EditorKeyMap.js.flow +173 -173
  17. package/EditorMarks.js +4 -2
  18. package/EditorMarks.js.flow +77 -74
  19. package/EditorNodes.js.flow +55 -55
  20. package/EditorPageLayoutPlugin.js.flow +67 -67
  21. package/EditorPlugins.js.flow +8 -8
  22. package/EditorSchema.js.flow +12 -12
  23. package/EditorState.js.flow +7 -7
  24. package/FontSizeMarkSpec.js.flow +54 -54
  25. package/FontTypeMarkSpec.js.flow +89 -89
  26. package/HTMLMutator.js.flow +58 -58
  27. package/HangingIndentMarkSpec.js +34 -0
  28. package/HangingIndentMarkSpec.js.flow +30 -0
  29. package/HardBreakNodeSpec.js.flow +15 -15
  30. package/HeadingNodeSpec.js.flow +42 -42
  31. package/HistoryRedoCommand.js.flow +41 -41
  32. package/HistoryUndoCommand.js.flow +41 -41
  33. package/HorizontalRuleCommand.js.flow +71 -71
  34. package/HorizontalRuleNodeSpec.js.flow +39 -39
  35. package/ImageUploadPlaceholderPlugin.js.flow +187 -187
  36. package/LICENSE +22 -22
  37. package/LinkMarkSpec.js +13 -3
  38. package/LinkMarkSpec.js.flow +41 -37
  39. package/LinkSetURLCommand.js.flow +129 -129
  40. package/LinkTooltipPlugin.js +34 -37
  41. package/LinkTooltipPlugin.js.flow +207 -217
  42. package/ListItemInsertNewLineCommand.js.flow +76 -76
  43. package/ListItemMergeCommand.js.flow +197 -197
  44. package/ListItemNodeSpec.js.flow +52 -52
  45. package/ListSplitCommand.js.flow +54 -54
  46. package/ListToggleCommand.js.flow +99 -99
  47. package/MarkNames.js +2 -1
  48. package/MarkNames.js.flow +20 -19
  49. package/MarksClearCommand.js.flow +66 -66
  50. package/NodeNames.js.flow +23 -23
  51. package/OrderedListNodeSpec.js.flow +131 -131
  52. package/OverrideMarkSpec.js.flow +49 -49
  53. package/ParagraphNodeSpec.js +21 -2
  54. package/ParagraphNodeSpec.js.flow +233 -215
  55. package/ParagraphSpacingCommand.js.flow +139 -139
  56. package/PrintCommand.js.flow +53 -53
  57. package/SelectionPlaceholderPlugin.js.flow +129 -129
  58. package/SpacerMarkSpec.js.flow +47 -47
  59. package/StrikeMarkSpec.js.flow +24 -24
  60. package/StrongMarkSpec.js.flow +39 -39
  61. package/StyleView.js.flow +18 -18
  62. package/TableBackgroundColorCommand.js.flow +79 -79
  63. package/TableBorderColorCommand.js +5 -3
  64. package/TableBorderColorCommand.js.flow +108 -106
  65. package/TableCellColorCommand.js.flow +73 -73
  66. package/TableCellMenuPlugin.js.flow +129 -129
  67. package/TableInsertCommand.js.flow +117 -117
  68. package/TableMergeCellsCommand.js.flow +113 -113
  69. package/TableNodesSpecs.js.flow +144 -144
  70. package/TablePlugins.js.flow +14 -14
  71. package/TableResizePlugin.js.flow +636 -636
  72. package/TextColorMarkSpec.js.flow +40 -40
  73. package/TextHighlightMarkSpec.js.flow +47 -47
  74. package/TextInsertTabSpaceCommand.js +0 -3
  75. package/TextInsertTabSpaceCommand.js.flow +103 -106
  76. package/TextNoWrapMarkSpec.js.flow +14 -14
  77. package/TextNodeSpec.js.flow +7 -7
  78. package/TextSelectionMarkSpec.js.flow +24 -24
  79. package/TextSubMarkSpec.js.flow +28 -28
  80. package/TextSuperMarkSpec.js.flow +28 -28
  81. package/TextUnderlineMarkSpec.js.flow +24 -24
  82. package/Types.js.flow +77 -77
  83. package/WebFontLoader.js.flow +22 -22
  84. package/blockQuoteInputRule.js.flow +36 -36
  85. package/bom.xml +9555 -9683
  86. package/browser.js.flow +7 -7
  87. package/buildEditorPlugins.js.flow +48 -48
  88. package/buildInputRules.js.flow +85 -85
  89. package/client/CollabConnector.js.flow +90 -90
  90. package/client/EditorConnection.js.flow +324 -324
  91. package/client/Licit.js +39 -39
  92. package/client/Licit.js.flow +649 -649
  93. package/client/Licit.test.js.flow +104 -104
  94. package/client/Reporter.js.flow +35 -35
  95. package/client/SimpleConnector.js.flow +61 -61
  96. package/client/http.js.flow +60 -60
  97. package/client/licit.css +12 -12
  98. package/client/throttle.js.flow +27 -27
  99. package/convertFromDOMElement.js.flow +33 -33
  100. package/convertFromHTML.js.flow +15 -15
  101. package/convertFromJSON.js.flow +53 -53
  102. package/convertToCSSPTValue.js.flow +19 -19
  103. package/convertToJSON.js.flow +7 -7
  104. package/createCommand.js.flow +62 -62
  105. package/createEditorKeyMap.js.flow +87 -87
  106. package/createEmptyEditorState.js.flow +29 -29
  107. package/createTableResizingPlugin.js.flow +86 -86
  108. package/findActionableCell.js.flow +74 -74
  109. package/findActiveMark.js.flow +32 -32
  110. package/hyphenize.js.flow +17 -17
  111. package/index.d.ts +167 -167
  112. package/index.js.flow +10 -10
  113. package/insertTable.js.flow +54 -54
  114. package/isEditorStateEmpty.js.flow +32 -32
  115. package/isTableNode.js.flow +15 -15
  116. package/joinDown.js.flow +25 -25
  117. package/joinListNode.js.flow +55 -55
  118. package/joinUp.js.flow +37 -37
  119. package/keymaps.js.flow +175 -175
  120. package/lookUpElement.js.flow +14 -14
  121. package/nodeAt.js.flow +12 -12
  122. package/normalizeHTML.js.flow +80 -80
  123. package/package.json +152 -152
  124. package/patchAnchorElements.js.flow +38 -38
  125. package/patchBreakElements.js.flow +22 -22
  126. package/patchElementInlineStyles.js.flow +92 -92
  127. package/patchListElements.js.flow +275 -275
  128. package/patchMathElements.js.flow +58 -58
  129. package/patchParagraphElements.js.flow +20 -20
  130. package/patchStyleElements.js.flow +197 -197
  131. package/patchTableElements.js.flow +88 -88
  132. package/rebaseDocWithSteps.js.flow +42 -42
  133. package/sanitizeURL.js.flow +13 -13
  134. package/splitListItem.js.flow +191 -191
  135. package/styles.css +46 -46
  136. package/toClosestFontPtSize.js.flow +22 -22
  137. package/toSafeHTMLDocument.js.flow +9 -9
  138. package/toggleBlockquote.js.flow +101 -101
  139. package/toggleCodeBlock.js.flow +102 -102
  140. package/ui/AlertInfo.js.flow +63 -63
  141. package/ui/BookmarkNodeView.js.flow +64 -64
  142. package/ui/CommandButton.js.flow +68 -68
  143. package/ui/CommandMenu.js.flow +74 -74
  144. package/ui/CommandMenuButton.js.flow +128 -128
  145. package/ui/CustomEditorView.js.flow +29 -29
  146. package/ui/CustomMenu.js.flow +14 -14
  147. package/ui/CustomMenuItem.js.flow +35 -35
  148. package/ui/CustomNodeView.js.flow +207 -207
  149. package/ui/CustomRadioButton.js.flow +63 -63
  150. package/ui/DocLayoutEditor.js.flow +130 -130
  151. package/ui/Editor.js.flow +281 -281
  152. package/ui/EditorFrameset.js.flow +79 -79
  153. package/ui/EditorToolbar.js.flow +197 -197
  154. package/ui/EditorToolbarConfig.js.flow +162 -162
  155. package/ui/FontSizeCommandMenuButton.js.flow +66 -66
  156. package/ui/FontTypeCommandMenuButton.js.flow +60 -60
  157. package/ui/Frag.js.flow +11 -11
  158. package/ui/Icon.js.flow +82 -82
  159. package/ui/ImageInlineEditor.js.flow +66 -66
  160. package/ui/KeyCodes.js.flow +12 -12
  161. package/ui/LinkTooltip.js.flow +51 -51
  162. package/ui/LinkURLEditor.js.flow +227 -227
  163. package/ui/ListItemNodeView.js.flow +101 -101
  164. package/ui/ListTypeButton.js.flow +121 -121
  165. package/ui/ListTypeCommandButton.js.flow +85 -85
  166. package/ui/ListTypeMenu.js.flow +78 -78
  167. package/ui/LoadingIndicator.js.flow +19 -19
  168. package/ui/PasteMenu.js.flow +52 -52
  169. package/ui/ResizeObserver.js.flow +105 -105
  170. package/ui/RichTextEditor.js.flow +133 -133
  171. package/ui/SelectionObserver.js.flow +134 -134
  172. package/ui/TableCellMenu.js.flow +49 -49
  173. package/ui/TableGridSizeEditor.js.flow +185 -185
  174. package/ui/TableNodeView.js.flow +36 -36
  175. package/ui/bindScrollHandler.js.flow +46 -46
  176. package/ui/canUseCSSFont.js.flow +42 -42
  177. package/ui/czi-body-layout-editor.css +16 -16
  178. package/ui/czi-bookmark-view.css +10 -10
  179. package/ui/czi-cursor-placeholder.css +36 -36
  180. package/ui/czi-custom-menu-button.css +18 -18
  181. package/ui/czi-custom-menu-item.css +30 -30
  182. package/ui/czi-custom-menu.css +8 -8
  183. package/ui/czi-custom-radio-button.css +80 -80
  184. package/ui/czi-custom-scrollbar.css +21 -21
  185. package/ui/czi-editor-frameset.css +81 -81
  186. package/ui/czi-editor-toolbar.css +122 -122
  187. package/ui/czi-editor.css +239 -216
  188. package/ui/czi-form.css +201 -201
  189. package/ui/czi-frag.css +3 -3
  190. package/ui/czi-heading.css +40 -40
  191. package/ui/czi-icon.css +72 -72
  192. package/ui/czi-image-resize-box.css +165 -165
  193. package/ui/czi-image-upload-editor.css +57 -57
  194. package/ui/czi-image-upload-placeholder.css +50 -50
  195. package/ui/czi-image-url-editor.css +38 -38
  196. package/ui/czi-image-view.css +121 -121
  197. package/ui/czi-indent.css +137 -137
  198. package/ui/czi-inline-editor.css +20 -20
  199. package/ui/czi-link-tooltip.css +112 -112
  200. package/ui/czi-list.css +406 -406
  201. package/ui/czi-loading-indicator.css +66 -66
  202. package/ui/czi-math-view.css +62 -62
  203. package/ui/czi-selection-placeholder.css +24 -24
  204. package/ui/czi-table-cell-menu.css +16 -16
  205. package/ui/czi-table-grid-size-editor.css +37 -37
  206. package/ui/czi-table.css +89 -89
  207. package/ui/czi-vars.css +47 -45
  208. package/ui/findActiveFontSize.js.flow +55 -55
  209. package/ui/findActiveFontType.js.flow +35 -35
  210. package/ui/fonts.css +460 -460
  211. package/ui/handleEditorDrop.js.flow +28 -28
  212. package/ui/handleEditorKeyDown.js.flow +39 -39
  213. package/ui/handleEditorPaste.js.flow +33 -33
  214. package/ui/htmlElementToRect.js.flow +18 -18
  215. package/ui/icon-font.css +9 -9
  216. package/ui/injectStyleSheet.js.flow +40 -40
  217. package/ui/isElementFullyVisible.js.flow +14 -14
  218. package/ui/isOffline.js.flow +8 -8
  219. package/ui/isReactClass.js.flow +12 -12
  220. package/ui/listType.css +21 -21
  221. package/ui/resolveImage.js.flow +121 -121
  222. package/ui/toCSSColor.js.flow +51 -51
  223. package/ui/toCSSLineSpacing.js.flow +53 -53
  224. package/ui/toHexColor.js.flow +26 -26
  225. package/ui/uuid.js.flow +9 -9
  226. package/uuid.js.flow +9 -9
@@ -1,97 +1,97 @@
1
- // @flow
2
-
3
- import { Schema } from 'prosemirror-model';
4
- import { EditorState } from 'prosemirror-state';
5
- import { Transform } from 'prosemirror-transform';
6
- import { EditorView } from 'prosemirror-view';
7
- import { SetDocAttrStep, UICommand } from '@modusoperandi/licit-doc-attrs-step';
8
- import DocLayoutEditor from './ui/DocLayoutEditor.js';
9
- import { createPopUp } from '@modusoperandi/licit-ui-commands';
10
-
11
- import type {
12
- DocLayoutEditorValue
13
- } from './ui/DocLayoutEditor.js';
14
-
15
- function setDocLayout(
16
- tr: Transform,
17
- schema: Schema,
18
- width: ?number,
19
- layout: ?string
20
- ): Transform {
21
- const { doc } = tr;
22
- if (!doc) {
23
- return tr;
24
- }
25
-
26
- tr = tr.step(new SetDocAttrStep('width', width || null));
27
- tr = tr.step(new SetDocAttrStep('layout', layout || null));
28
- return tr;
29
- }
30
-
31
- class DocLayoutCommand extends UICommand {
32
- _popUp = null;
33
-
34
- isEnabled = (state: EditorState): boolean => {
35
- return true;
36
- };
37
-
38
- isActive = (state: EditorState): boolean => {
39
- return !!this._popUp;
40
- };
41
-
42
- waitForUserInput = (
43
- state: EditorState,
44
- dispatch: ?(tr: Transform) => void,
45
- view: ?EditorView,
46
- event: ?SyntheticEvent<>
47
- ): Promise<any> => {
48
- if (this._popUp) {
49
- return Promise.resolve(undefined);
50
- }
51
-
52
- const { doc } = state;
53
-
54
- return new Promise((resolve) => {
55
- const props = {
56
- initialValue: doc.attrs,
57
- };
58
- this._popUp = createPopUp(DocLayoutEditor, props, {
59
- modal: true,
60
- onClose: (val) => {
61
- if (this._popUp) {
62
- this._popUp = null;
63
- resolve(val);
64
- }
65
- },
66
- });
67
- });
68
- };
69
-
70
- executeWithUserInput = (
71
- state: EditorState,
72
- dispatch: ?(tr: Transform) => void,
73
- view: ?EditorView,
74
- inputs: ?DocLayoutEditorValue
75
- ): boolean => {
76
- if (dispatch) {
77
- const { selection, schema } = state;
78
- let { tr } = state;
79
- tr = tr.setSelection(selection);
80
-
81
- if (inputs) {
82
- const { width, layout } = inputs;
83
- tr = setDocLayout(tr, schema, width, layout);
84
- }
85
- dispatch(tr);
86
- view && view.focus();
87
- }
88
-
89
- return false;
90
- };
91
-
92
- cancel(): void {
93
- return null;
94
- }
95
- }
96
-
97
- export default DocLayoutCommand;
1
+ // @flow
2
+
3
+ import { Schema } from 'prosemirror-model';
4
+ import { EditorState } from 'prosemirror-state';
5
+ import { Transform } from 'prosemirror-transform';
6
+ import { EditorView } from 'prosemirror-view';
7
+ import { SetDocAttrStep, UICommand } from '@modusoperandi/licit-doc-attrs-step';
8
+ import DocLayoutEditor from './ui/DocLayoutEditor.js';
9
+ import { createPopUp } from '@modusoperandi/licit-ui-commands';
10
+
11
+ import type {
12
+ DocLayoutEditorValue
13
+ } from './ui/DocLayoutEditor.js';
14
+
15
+ function setDocLayout(
16
+ tr: Transform,
17
+ schema: Schema,
18
+ width: ?number,
19
+ layout: ?string
20
+ ): Transform {
21
+ const { doc } = tr;
22
+ if (!doc) {
23
+ return tr;
24
+ }
25
+
26
+ tr = tr.step(new SetDocAttrStep('width', width || null));
27
+ tr = tr.step(new SetDocAttrStep('layout', layout || null));
28
+ return tr;
29
+ }
30
+
31
+ class DocLayoutCommand extends UICommand {
32
+ _popUp = null;
33
+
34
+ isEnabled = (state: EditorState): boolean => {
35
+ return true;
36
+ };
37
+
38
+ isActive = (state: EditorState): boolean => {
39
+ return !!this._popUp;
40
+ };
41
+
42
+ waitForUserInput = (
43
+ state: EditorState,
44
+ dispatch: ?(tr: Transform) => void,
45
+ view: ?EditorView,
46
+ event: ?SyntheticEvent<>
47
+ ): Promise<any> => {
48
+ if (this._popUp) {
49
+ return Promise.resolve(undefined);
50
+ }
51
+
52
+ const { doc } = state;
53
+
54
+ return new Promise((resolve) => {
55
+ const props = {
56
+ initialValue: doc.attrs,
57
+ };
58
+ this._popUp = createPopUp(DocLayoutEditor, props, {
59
+ modal: true,
60
+ onClose: (val) => {
61
+ if (this._popUp) {
62
+ this._popUp = null;
63
+ resolve(val);
64
+ }
65
+ },
66
+ });
67
+ });
68
+ };
69
+
70
+ executeWithUserInput = (
71
+ state: EditorState,
72
+ dispatch: ?(tr: Transform) => void,
73
+ view: ?EditorView,
74
+ inputs: ?DocLayoutEditorValue
75
+ ): boolean => {
76
+ if (dispatch) {
77
+ const { selection, schema } = state;
78
+ let { tr } = state;
79
+ tr = tr.setSelection(selection);
80
+
81
+ if (inputs) {
82
+ const { width, layout } = inputs;
83
+ tr = setDocLayout(tr, schema, width, layout);
84
+ }
85
+ dispatch(tr);
86
+ view && view.focus();
87
+ }
88
+
89
+ return false;
90
+ };
91
+
92
+ cancel(): void {
93
+ return null;
94
+ }
95
+ }
96
+
97
+ export default DocLayoutCommand;
@@ -1,62 +1,62 @@
1
- // @flow
2
-
3
- import convertToCSSPTValue from './convertToCSSPTValue.js';
4
-
5
- export const LAYOUT = {
6
- US_LETTER_LANDSCAPE: 'us_letter_landscape',
7
- US_LETTER_PORTRAIT: 'us_letter_portrait',
8
- A4_LANDSCAPE: 'a4_landscape',
9
- A4_PORTRAIT: 'a4_portrait',
10
- };
11
-
12
- export const ATTRIBUTE_LAYOUT = 'data-layout';
13
-
14
- export function getAttrs(el: HTMLElement): Object {
15
- const attrs: Object = {
16
- layout: null,
17
- width: null,
18
- padding: null,
19
- };
20
-
21
- const { width, maxWidth, padding } = el.style || {};
22
- const ww = convertToCSSPTValue(width) || convertToCSSPTValue(maxWidth);
23
- const pp = convertToCSSPTValue(padding);
24
- if (ww) {
25
- // 1pt = 1/72in
26
- // letter size: 8.5in x 11inch
27
- const ptWidth = ww + pp * 2;
28
- const inWidth = ptWidth / 72;
29
- const cmWidth = inWidth * 2.54;
30
- if (inWidth >= 10.9 && inWidth <= 11.1) {
31
- // Round up to letter size.
32
- attrs.layout = LAYOUT.US_LETTER_LANDSCAPE;
33
- } else if (inWidth >= 8.4 && inWidth <= 8.6) {
34
- // Round up to letter size.
35
- attrs.layout = LAYOUT.US_LETTER_PORTRAIT;
36
- } else if (cmWidth >= 29.5 && cmWidth <= 30.1) {
37
- attrs.layout = LAYOUT.A4_LANDSCAPE;
38
- } else if (cmWidth >= 20.5 && cmWidth <= 21.5) {
39
- attrs.layout = LAYOUT.A4_PORTRAIT;
40
- } else {
41
- attrs.width = ptWidth;
42
- if (pp) {
43
- attrs.padding = pp;
44
- }
45
- }
46
- }
47
-
48
- return attrs;
49
- }
50
-
51
- const DocNodeSpec = {
52
- attrs: {
53
- layout: { default: null },
54
- padding: { default: null },
55
- width: { default: null },
56
- // [FS] IRAD-1202 2021-02-15
57
- // Counter flags for Numbering
58
- counterFlags: { default: null },
59
- },
60
- content: 'block+',
61
- };
62
- export default DocNodeSpec;
1
+ // @flow
2
+
3
+ import convertToCSSPTValue from './convertToCSSPTValue.js';
4
+
5
+ export const LAYOUT = {
6
+ US_LETTER_LANDSCAPE: 'us_letter_landscape',
7
+ US_LETTER_PORTRAIT: 'us_letter_portrait',
8
+ A4_LANDSCAPE: 'a4_landscape',
9
+ A4_PORTRAIT: 'a4_portrait',
10
+ };
11
+
12
+ export const ATTRIBUTE_LAYOUT = 'data-layout';
13
+
14
+ export function getAttrs(el: HTMLElement): Object {
15
+ const attrs: Object = {
16
+ layout: null,
17
+ width: null,
18
+ padding: null,
19
+ };
20
+
21
+ const { width, maxWidth, padding } = el.style || {};
22
+ const ww = convertToCSSPTValue(width) || convertToCSSPTValue(maxWidth);
23
+ const pp = convertToCSSPTValue(padding);
24
+ if (ww) {
25
+ // 1pt = 1/72in
26
+ // letter size: 8.5in x 11inch
27
+ const ptWidth = ww + pp * 2;
28
+ const inWidth = ptWidth / 72;
29
+ const cmWidth = inWidth * 2.54;
30
+ if (inWidth >= 10.9 && inWidth <= 11.1) {
31
+ // Round up to letter size.
32
+ attrs.layout = LAYOUT.US_LETTER_LANDSCAPE;
33
+ } else if (inWidth >= 8.4 && inWidth <= 8.6) {
34
+ // Round up to letter size.
35
+ attrs.layout = LAYOUT.US_LETTER_PORTRAIT;
36
+ } else if (cmWidth >= 29.5 && cmWidth <= 30.1) {
37
+ attrs.layout = LAYOUT.A4_LANDSCAPE;
38
+ } else if (cmWidth >= 20.5 && cmWidth <= 21.5) {
39
+ attrs.layout = LAYOUT.A4_PORTRAIT;
40
+ } else {
41
+ attrs.width = ptWidth;
42
+ if (pp) {
43
+ attrs.padding = pp;
44
+ }
45
+ }
46
+ }
47
+
48
+ return attrs;
49
+ }
50
+
51
+ const DocNodeSpec = {
52
+ attrs: {
53
+ layout: { default: null },
54
+ padding: { default: null },
55
+ width: { default: null },
56
+ // [FS] IRAD-1202 2021-02-15
57
+ // Counter flags for Numbering
58
+ counterFlags: { default: null },
59
+ },
60
+ content: 'block+',
61
+ };
62
+ export default DocNodeSpec;
@@ -1,39 +1,39 @@
1
-
2
- import type { MarkSpec } from './Types.js';
3
-
4
-
5
- const EMMarkSpec: MarkSpec = {
6
- attrs: {
7
- overridden: { default: false },
8
- },
9
- parseDOM: [
10
- {
11
- tag: 'i',
12
- getAttrs: (dom: HTMLElement) => {
13
- const _overridden = dom.getAttribute('overridden');
14
- return { overridden: _overridden === 'true' };
15
- }
16
- },
17
-
18
- {
19
- tag: 'em',
20
- getAttrs: (dom: HTMLElement) => {
21
- const _overridden = dom.getAttribute('overridden');
22
- return { overridden: _overridden === 'true' };
23
- }
24
- },
25
- {
26
- tag: 'span[style*=font-style]',
27
- getAttrs: (value, dom: HTMLElement) => {
28
- const _overridden = dom.getAttribute('overridden');
29
- return { overridden: _overridden === 'true' };
30
-
31
- },
32
- },
33
- ],
34
- toDOM(mark) {
35
- return ['em', { overridden: mark.attrs.overridden }, 0];
36
- },
37
- };
38
-
39
- export default EMMarkSpec;
1
+
2
+ import type { MarkSpec } from './Types.js';
3
+
4
+
5
+ const EMMarkSpec: MarkSpec = {
6
+ attrs: {
7
+ overridden: { default: false },
8
+ },
9
+ parseDOM: [
10
+ {
11
+ tag: 'i',
12
+ getAttrs: (dom: HTMLElement) => {
13
+ const _overridden = dom.getAttribute('overridden');
14
+ return { overridden: _overridden === 'true' };
15
+ }
16
+ },
17
+
18
+ {
19
+ tag: 'em',
20
+ getAttrs: (dom: HTMLElement) => {
21
+ const _overridden = dom.getAttribute('overridden');
22
+ return { overridden: _overridden === 'true' };
23
+ }
24
+ },
25
+ {
26
+ tag: 'span[style*=font-style]',
27
+ getAttrs: (value, dom: HTMLElement) => {
28
+ const _overridden = dom.getAttribute('overridden');
29
+ return { overridden: _overridden === 'true' };
30
+
31
+ },
32
+ },
33
+ ],
34
+ toDOM(mark) {
35
+ return ['em', { overridden: mark.attrs.overridden }, 0];
36
+ },
37
+ };
38
+
39
+ export default EMMarkSpec;
@@ -1,124 +1,124 @@
1
- // @flow
2
-
3
- import * as ProsemirrorTables from 'prosemirror-tables';
4
- // [FS][07-MAY-2020][IRAD-956]
5
- import BlockquoteInsertNewLineCommand from './BlockquoteInsertNewLineCommand.js';
6
- import BlockquoteToggleCommand from './BlockquoteToggleCommand.js';
7
- import DocLayoutCommand from './DocLayoutCommand.js';
8
- import HistoryRedoCommand from './HistoryRedoCommand.js';
9
- import HistoryUndoCommand from './HistoryUndoCommand.js';
10
- import HorizontalRuleCommand from './HorizontalRuleCommand.js';
11
- import LinkSetURLCommand from './LinkSetURLCommand.js';
12
- import ListItemInsertNewLineCommand from './ListItemInsertNewLineCommand.js';
13
- import ListItemMergeCommand from './ListItemMergeCommand.js';
14
- import ListSplitCommand from './ListSplitCommand.js';
15
- import { ListToggleCommand } from './ListToggleCommand.js';
16
- import * as MarkNames from './MarkNames.js';
17
- import MarksClearCommand from './MarksClearCommand.js';
18
- import PrintCommand from './PrintCommand.js';
19
- import TableBackgroundColorCommand from './TableBackgroundColorCommand.js';
20
- import TableBorderColorCommand from './TableBorderColorCommand.js';
21
- import TableInsertCommand from './TableInsertCommand.js';
22
- import TableMergeCellsCommand from './TableMergeCellsCommand.js';
23
- import {
24
- HeadingCommand,
25
- IndentCommand,
26
- MarkToggleCommand,
27
- TextAlignCommand,
28
- TextColorCommand,
29
- TextHighlightCommand,
30
- TextLineSpacingCommand,
31
- } from '@modusoperandi/licit-ui-commands';
32
- import TextInsertTabSpaceCommand from './TextInsertTabSpaceCommand.js';
33
- import createCommand from './createCommand.js';
34
-
35
- const {
36
- addColumnAfter,
37
- addColumnBefore,
38
- addRowAfter,
39
- addRowBefore,
40
- // columnResizing,
41
- deleteColumn,
42
- deleteRow,
43
- deleteTable,
44
- // fixTables,
45
- goToNextCell,
46
- // mergeCells,
47
- // setCellAttr,
48
- splitCell,
49
- // tableEditing,
50
- // tableNodes,
51
- toggleHeaderCell,
52
- toggleHeaderColumn,
53
- toggleHeaderRow,
54
- } = ProsemirrorTables;
55
-
56
- const {
57
- MARK_STRONG,
58
- MARK_EM,
59
- MARK_STRIKE,
60
- MARK_SUPER,
61
- MARK_SUB,
62
- MARK_UNDERLINE,
63
- } = MarkNames;
64
-
65
- // Note that Firefox will, by default, add various kinds of controls to
66
- // editable tables, even though those don't work in ProseMirror. The only way
67
- // to turn these off is globally, which you might want to do with the
68
- // following code:
69
- document.execCommand('enableObjectResizing', false, 'false');
70
- document.execCommand('enableInlineTableEditing', false, 'false');
71
- // [FS][07-MAY-2020][IRAD-956]
72
- export const BLOCKQUOTE_TOGGLE = new BlockquoteToggleCommand();
73
- export const BLOCKQUOTE_INSERT_NEW_LINE = new BlockquoteInsertNewLineCommand();
74
- export const CLEAR_FORMAT = new MarksClearCommand();
75
- export const DOC_LAYOUT = new DocLayoutCommand();
76
- export const EM = new MarkToggleCommand(MARK_EM);
77
- export const H1 = new HeadingCommand(1);
78
- export const H2 = new HeadingCommand(2);
79
- export const H3 = new HeadingCommand(3);
80
- export const H4 = new HeadingCommand(4);
81
- export const H5 = new HeadingCommand(5);
82
- export const H6 = new HeadingCommand(6);
83
- export const HISTORY_REDO = new HistoryRedoCommand();
84
- export const HISTORY_UNDO = new HistoryUndoCommand();
85
- export const HR = new HorizontalRuleCommand();
86
- export const INDENT_LESS = new IndentCommand(-1);
87
- export const INDENT_MORE = new IndentCommand(1);
88
- export const LINK_SET_URL = new LinkSetURLCommand();
89
- export const LIST_ITEM_INSERT_NEW_LINE = new ListItemInsertNewLineCommand();
90
- export const LIST_ITEM_MERGE_DOWN = new ListItemMergeCommand('down');
91
- export const LIST_ITEM_MERGE_UP = new ListItemMergeCommand('up');
92
- export const LIST_SPLIT = new ListSplitCommand();
93
- export const PRINT = new PrintCommand();
94
- export const STRIKE = new MarkToggleCommand(MARK_STRIKE);
95
- export const STRONG = new MarkToggleCommand(MARK_STRONG);
96
- export const SUPER = new MarkToggleCommand(MARK_SUPER);
97
- export const SUB = new MarkToggleCommand(MARK_SUB);
98
- export const TABLE_ADD_COLUMN_AFTER = createCommand(addColumnAfter);
99
- export const TABLE_ADD_COLUMN_BEFORE = createCommand(addColumnBefore);
100
- export const TABLE_ADD_ROW_AFTER = createCommand(addRowAfter);
101
- export const TABLE_ADD_ROW_BEFORE = createCommand(addRowBefore);
102
- export const TABLE_BACKGROUND_COLOR = new TableBackgroundColorCommand();
103
- export const TABLE_BORDER_COLOR = new TableBorderColorCommand();
104
- export const TABLE_DELETE_COLUMN = createCommand(deleteColumn);
105
- export const TABLE_DELETE_ROW = createCommand(deleteRow);
106
- export const TABLE_DELETE_TABLE = createCommand(deleteTable);
107
- export const TABLE_INSERT_TABLE = new TableInsertCommand();
108
- export const TABLE_MERGE_CELLS = new TableMergeCellsCommand();
109
- export const TABLE_MOVE_TO_NEXT_CELL = createCommand(goToNextCell(1));
110
- export const TABLE_MOVE_TO_PREV_CELL = createCommand(goToNextCell(-1));
111
- export const TABLE_SPLIT_ROW = createCommand(splitCell);
112
- export const TABLE_TOGGLE_HEADER_CELL = createCommand(toggleHeaderCell);
113
- export const TABLE_TOGGLE_HEADER_COLUMN = createCommand(toggleHeaderColumn);
114
- export const TABLE_TOGGLE_HEADER_ROW = createCommand(toggleHeaderRow);
115
- export const TEXT_ALIGN_CENTER = new TextAlignCommand('center');
116
- export const TEXT_ALIGN_JUSTIFY = new TextAlignCommand('justify');
117
- export const TEXT_ALIGN_LEFT = new TextAlignCommand('left');
118
- export const TEXT_ALIGN_RIGHT = new TextAlignCommand('right');
119
- export const TEXT_COLOR = new TextColorCommand();
120
- export const TEXT_HIGHLIGHT = new TextHighlightCommand();
121
- export const TEXT_INSERT_TAB_SPACE = new TextInsertTabSpaceCommand();
122
- export const TEXT_LINE_SPACINGS = TextLineSpacingCommand.createGroup();
123
- export const UL = new ListToggleCommand(false, '');
124
- export const UNDERLINE = new MarkToggleCommand(MARK_UNDERLINE);
1
+ // @flow
2
+
3
+ import * as ProsemirrorTables from 'prosemirror-tables';
4
+ // [FS][07-MAY-2020][IRAD-956]
5
+ import BlockquoteInsertNewLineCommand from './BlockquoteInsertNewLineCommand.js';
6
+ import BlockquoteToggleCommand from './BlockquoteToggleCommand.js';
7
+ import DocLayoutCommand from './DocLayoutCommand.js';
8
+ import HistoryRedoCommand from './HistoryRedoCommand.js';
9
+ import HistoryUndoCommand from './HistoryUndoCommand.js';
10
+ import HorizontalRuleCommand from './HorizontalRuleCommand.js';
11
+ import LinkSetURLCommand from './LinkSetURLCommand.js';
12
+ import ListItemInsertNewLineCommand from './ListItemInsertNewLineCommand.js';
13
+ import ListItemMergeCommand from './ListItemMergeCommand.js';
14
+ import ListSplitCommand from './ListSplitCommand.js';
15
+ import { ListToggleCommand } from './ListToggleCommand.js';
16
+ import * as MarkNames from './MarkNames.js';
17
+ import MarksClearCommand from './MarksClearCommand.js';
18
+ import PrintCommand from './PrintCommand.js';
19
+ import TableBackgroundColorCommand from './TableBackgroundColorCommand.js';
20
+ import TableBorderColorCommand from './TableBorderColorCommand.js';
21
+ import TableInsertCommand from './TableInsertCommand.js';
22
+ import TableMergeCellsCommand from './TableMergeCellsCommand.js';
23
+ import {
24
+ HeadingCommand,
25
+ IndentCommand,
26
+ MarkToggleCommand,
27
+ TextAlignCommand,
28
+ TextColorCommand,
29
+ TextHighlightCommand,
30
+ TextLineSpacingCommand,
31
+ } from '@modusoperandi/licit-ui-commands';
32
+ import TextInsertTabSpaceCommand from './TextInsertTabSpaceCommand.js';
33
+ import createCommand from './createCommand.js';
34
+
35
+ const {
36
+ addColumnAfter,
37
+ addColumnBefore,
38
+ addRowAfter,
39
+ addRowBefore,
40
+ // columnResizing,
41
+ deleteColumn,
42
+ deleteRow,
43
+ deleteTable,
44
+ // fixTables,
45
+ goToNextCell,
46
+ // mergeCells,
47
+ // setCellAttr,
48
+ splitCell,
49
+ // tableEditing,
50
+ // tableNodes,
51
+ toggleHeaderCell,
52
+ toggleHeaderColumn,
53
+ toggleHeaderRow,
54
+ } = ProsemirrorTables;
55
+
56
+ const {
57
+ MARK_STRONG,
58
+ MARK_EM,
59
+ MARK_STRIKE,
60
+ MARK_SUPER,
61
+ MARK_SUB,
62
+ MARK_UNDERLINE,
63
+ } = MarkNames;
64
+
65
+ // Note that Firefox will, by default, add various kinds of controls to
66
+ // editable tables, even though those don't work in ProseMirror. The only way
67
+ // to turn these off is globally, which you might want to do with the
68
+ // following code:
69
+ document.execCommand('enableObjectResizing', false, 'false');
70
+ document.execCommand('enableInlineTableEditing', false, 'false');
71
+ // [FS][07-MAY-2020][IRAD-956]
72
+ export const BLOCKQUOTE_TOGGLE = new BlockquoteToggleCommand();
73
+ export const BLOCKQUOTE_INSERT_NEW_LINE = new BlockquoteInsertNewLineCommand();
74
+ export const CLEAR_FORMAT = new MarksClearCommand();
75
+ export const DOC_LAYOUT = new DocLayoutCommand();
76
+ export const EM = new MarkToggleCommand(MARK_EM);
77
+ export const H1 = new HeadingCommand(1);
78
+ export const H2 = new HeadingCommand(2);
79
+ export const H3 = new HeadingCommand(3);
80
+ export const H4 = new HeadingCommand(4);
81
+ export const H5 = new HeadingCommand(5);
82
+ export const H6 = new HeadingCommand(6);
83
+ export const HISTORY_REDO = new HistoryRedoCommand();
84
+ export const HISTORY_UNDO = new HistoryUndoCommand();
85
+ export const HR = new HorizontalRuleCommand();
86
+ export const INDENT_LESS = new IndentCommand(-1);
87
+ export const INDENT_MORE = new IndentCommand(1);
88
+ export const LINK_SET_URL = new LinkSetURLCommand();
89
+ export const LIST_ITEM_INSERT_NEW_LINE = new ListItemInsertNewLineCommand();
90
+ export const LIST_ITEM_MERGE_DOWN = new ListItemMergeCommand('down');
91
+ export const LIST_ITEM_MERGE_UP = new ListItemMergeCommand('up');
92
+ export const LIST_SPLIT = new ListSplitCommand();
93
+ export const PRINT = new PrintCommand();
94
+ export const STRIKE = new MarkToggleCommand(MARK_STRIKE);
95
+ export const STRONG = new MarkToggleCommand(MARK_STRONG);
96
+ export const SUPER = new MarkToggleCommand(MARK_SUPER);
97
+ export const SUB = new MarkToggleCommand(MARK_SUB);
98
+ export const TABLE_ADD_COLUMN_AFTER = createCommand(addColumnAfter);
99
+ export const TABLE_ADD_COLUMN_BEFORE = createCommand(addColumnBefore);
100
+ export const TABLE_ADD_ROW_AFTER = createCommand(addRowAfter);
101
+ export const TABLE_ADD_ROW_BEFORE = createCommand(addRowBefore);
102
+ export const TABLE_BACKGROUND_COLOR = new TableBackgroundColorCommand();
103
+ export const TABLE_BORDER_COLOR = new TableBorderColorCommand();
104
+ export const TABLE_DELETE_COLUMN = createCommand(deleteColumn);
105
+ export const TABLE_DELETE_ROW = createCommand(deleteRow);
106
+ export const TABLE_DELETE_TABLE = createCommand(deleteTable);
107
+ export const TABLE_INSERT_TABLE = new TableInsertCommand();
108
+ export const TABLE_MERGE_CELLS = new TableMergeCellsCommand();
109
+ export const TABLE_MOVE_TO_NEXT_CELL = createCommand(goToNextCell(1));
110
+ export const TABLE_MOVE_TO_PREV_CELL = createCommand(goToNextCell(-1));
111
+ export const TABLE_SPLIT_ROW = createCommand(splitCell);
112
+ export const TABLE_TOGGLE_HEADER_CELL = createCommand(toggleHeaderCell);
113
+ export const TABLE_TOGGLE_HEADER_COLUMN = createCommand(toggleHeaderColumn);
114
+ export const TABLE_TOGGLE_HEADER_ROW = createCommand(toggleHeaderRow);
115
+ export const TEXT_ALIGN_CENTER = new TextAlignCommand('center');
116
+ export const TEXT_ALIGN_JUSTIFY = new TextAlignCommand('justify');
117
+ export const TEXT_ALIGN_LEFT = new TextAlignCommand('left');
118
+ export const TEXT_ALIGN_RIGHT = new TextAlignCommand('right');
119
+ export const TEXT_COLOR = new TextColorCommand();
120
+ export const TEXT_HIGHLIGHT = new TextHighlightCommand();
121
+ export const TEXT_INSERT_TAB_SPACE = new TextInsertTabSpaceCommand();
122
+ export const TEXT_LINE_SPACINGS = TextLineSpacingCommand.createGroup();
123
+ export const UL = new ListToggleCommand(false, '');
124
+ export const UNDERLINE = new MarkToggleCommand(MARK_UNDERLINE);