@modusoperandi/licit 1.0.3 → 1.0.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.
Files changed (317) hide show
  1. package/BlockquoteInsertNewLineCommand.js +7 -8
  2. package/BlockquoteInsertNewLineCommand.js.flow +77 -77
  3. package/BlockquoteNodeSpec.js +1 -1
  4. package/BlockquoteNodeSpec.js.flow +30 -30
  5. package/BlockquoteToggleCommand.js +8 -9
  6. package/BlockquoteToggleCommand.js.flow +56 -56
  7. package/BookmarkNodeSpec.js +1 -1
  8. package/BookmarkNodeSpec.js.flow +39 -39
  9. package/BulletListNodeSpec.js.flow +61 -61
  10. package/CZIProseMirror.js.flow +90 -90
  11. package/CodeBlockCommand.js +8 -9
  12. package/CodeBlockCommand.js.flow +65 -65
  13. package/CodeBlockNodeSpec.js.flow +24 -24
  14. package/CodeMarkSpec.js.flow +14 -14
  15. package/ContentPlaceholderPlugin.js +3 -4
  16. package/ContentPlaceholderPlugin.js.flow +187 -187
  17. package/CursorPlaceholderPlugin.js +4 -4
  18. package/CursorPlaceholderPlugin.js.flow +115 -115
  19. package/DocLayoutCommand.js +9 -10
  20. package/DocLayoutCommand.js.flow +99 -99
  21. package/DocNodeSpec.js.flow +64 -64
  22. package/EMMarkSpec.js.flow +14 -14
  23. package/EditorCommands.js.flow +126 -126
  24. package/EditorKeyMap.js.flow +187 -187
  25. package/EditorMarks.js +1 -1
  26. package/EditorMarks.js.flow +71 -71
  27. package/EditorNodes.js +1 -1
  28. package/EditorNodes.js.flow +59 -59
  29. package/EditorPageLayoutPlugin.js +2 -2
  30. package/EditorPageLayoutPlugin.js.flow +67 -67
  31. package/EditorPlugins.js.flow +8 -8
  32. package/EditorSchema.js.flow +12 -12
  33. package/EditorState.js.flow +7 -7
  34. package/FontSizeMarkSpec.js.flow +49 -49
  35. package/FontTypeMarkSpec.js.flow +80 -80
  36. package/HTMLMutator.js +2 -3
  37. package/HTMLMutator.js.flow +59 -59
  38. package/HardBreakNodeSpec.js.flow +15 -15
  39. package/HeadingNodeSpec.js +1 -1
  40. package/HeadingNodeSpec.js.flow +52 -52
  41. package/HistoryRedoCommand.js +7 -8
  42. package/HistoryRedoCommand.js.flow +41 -41
  43. package/HistoryUndoCommand.js +7 -8
  44. package/HistoryUndoCommand.js.flow +41 -41
  45. package/HorizontalRuleCommand.js +7 -8
  46. package/HorizontalRuleCommand.js.flow +71 -71
  47. package/HorizontalRuleNodeSpec.js.flow +39 -39
  48. package/ImageUploadPlaceholderPlugin.js +2 -2
  49. package/ImageUploadPlaceholderPlugin.js.flow +192 -192
  50. package/LinkMarkSpec.js.flow +32 -32
  51. package/LinkSetURLCommand.js +8 -9
  52. package/LinkSetURLCommand.js.flow +117 -117
  53. package/LinkTooltipPlugin.js +3 -4
  54. package/LinkTooltipPlugin.js.flow +190 -190
  55. package/ListItemInsertNewLineCommand.js +7 -8
  56. package/ListItemInsertNewLineCommand.js.flow +77 -77
  57. package/ListItemMergeCommand.js +9 -10
  58. package/ListItemMergeCommand.js.flow +199 -199
  59. package/ListItemNodeSpec.js.flow +52 -52
  60. package/ListSplitCommand.js +7 -8
  61. package/ListSplitCommand.js.flow +54 -54
  62. package/ListToggleCommand.js +11 -12
  63. package/ListToggleCommand.js.flow +99 -99
  64. package/MarkNames.js.flow +18 -18
  65. package/MarksClearCommand.js +9 -10
  66. package/MarksClearCommand.js.flow +65 -65
  67. package/MathEditCommand.js +8 -9
  68. package/MathEditCommand.js.flow +120 -120
  69. package/MathNodeSpec.js.flow +46 -46
  70. package/NodeNames.js.flow +23 -23
  71. package/OrderedListNodeSpec.js +1 -1
  72. package/OrderedListNodeSpec.js.flow +132 -132
  73. package/ParagraphNodeSpec.js.flow +156 -156
  74. package/ParagraphSpacingCommand.js +9 -10
  75. package/ParagraphSpacingCommand.js.flow +144 -144
  76. package/PrintCommand.js +9 -10
  77. package/PrintCommand.js.flow +53 -53
  78. package/SelectionPlaceholderPlugin.js +4 -4
  79. package/SelectionPlaceholderPlugin.js.flow +131 -131
  80. package/SpacerMarkSpec.js +1 -1
  81. package/SpacerMarkSpec.js.flow +47 -47
  82. package/StrikeMarkSpec.js.flow +21 -21
  83. package/StrongMarkSpec.js.flow +25 -25
  84. package/StyleView.js +2 -3
  85. package/StyleView.js.flow +19 -19
  86. package/TableBackgroundColorCommand.js +25 -12
  87. package/TableBackgroundColorCommand.js.flow +83 -75
  88. package/TableBorderColorCommand.js +25 -12
  89. package/TableBorderColorCommand.js.flow +86 -75
  90. package/TableCellColorCommand.js +11 -11
  91. package/TableCellColorCommand.js.flow +75 -75
  92. package/TableCellMenuPlugin.js +3 -4
  93. package/TableCellMenuPlugin.js.flow +132 -132
  94. package/TableInsertCommand.js +9 -10
  95. package/TableInsertCommand.js.flow +120 -120
  96. package/TableMergeCellsCommand.js +7 -8
  97. package/TableMergeCellsCommand.js.flow +112 -112
  98. package/TableNodesSpecs.js.flow +78 -78
  99. package/TablePlugins.js.flow +14 -14
  100. package/TableResizePlugin.js +6 -6
  101. package/TableResizePlugin.js.flow +631 -632
  102. package/TextColorMarkSpec.js.flow +35 -35
  103. package/TextHighlightMarkSpec.js.flow +38 -38
  104. package/TextInsertTabSpaceCommand.js +7 -8
  105. package/TextInsertTabSpaceCommand.js.flow +106 -106
  106. package/TextNoWrapMarkSpec.js.flow +14 -14
  107. package/TextNodeSpec.js.flow +7 -7
  108. package/TextSelectionMarkSpec.js.flow +24 -24
  109. package/TextSubMarkSpec.js.flow +20 -20
  110. package/TextSuperMarkSpec.js.flow +20 -20
  111. package/TextUnderlineMarkSpec.js.flow +27 -27
  112. package/Types.js +5 -0
  113. package/Types.js.flow +80 -75
  114. package/WebFontLoader.js +2 -3
  115. package/WebFontLoader.js.flow +22 -22
  116. package/blockQuoteInputRule.js.flow +36 -36
  117. package/bom.xml +8533 -8895
  118. package/browser.js.flow +7 -7
  119. package/buildEditorPlugins.js +2 -3
  120. package/buildEditorPlugins.js.flow +49 -49
  121. package/buildInputRules.js.flow +81 -81
  122. package/client/CollabConnector.js +12 -12
  123. package/client/CollabConnector.js.flow +90 -90
  124. package/client/EditorConnection.js +2 -3
  125. package/client/EditorConnection.js.flow +323 -323
  126. package/client/Licit.js +59 -60
  127. package/client/Licit.js.flow +643 -643
  128. package/client/Licit.test.js +2 -2
  129. package/client/Licit.test.js.flow +98 -98
  130. package/client/Reporter.js +2 -3
  131. package/client/Reporter.js.flow +37 -37
  132. package/client/SimpleConnector.js +1 -1
  133. package/client/SimpleConnector.js.flow +61 -61
  134. package/client/http.js.flow +70 -70
  135. package/client/licit.css +12 -12
  136. package/client/throttle.js.flow +27 -27
  137. package/convertFromDOMElement.js.flow +36 -36
  138. package/convertFromHTML.js.flow +17 -17
  139. package/convertFromJSON.js.flow +56 -56
  140. package/convertToCSSPTValue.js.flow +22 -22
  141. package/convertToJSON.js.flow +7 -7
  142. package/createCommand.js +8 -9
  143. package/createCommand.js.flow +62 -62
  144. package/createEditorKeyMap.js +1 -1
  145. package/createEditorKeyMap.js.flow +94 -94
  146. package/createEmptyEditorState.js.flow +31 -31
  147. package/createTableResizingPlugin.js.flow +86 -86
  148. package/findActionableCell.js.flow +74 -74
  149. package/findActiveMark.js.flow +32 -32
  150. package/hyphenize.js.flow +17 -17
  151. package/index.d.ts +165 -165
  152. package/index.js.flow +10 -10
  153. package/insertTable.js.flow +56 -56
  154. package/isEditorStateEmpty.js.flow +32 -32
  155. package/isTableNode.js.flow +15 -15
  156. package/joinDown.js.flow +27 -27
  157. package/joinListNode.js.flow +55 -55
  158. package/joinUp.js.flow +39 -39
  159. package/keymaps.js.flow +185 -185
  160. package/lookUpElement.js.flow +14 -14
  161. package/nodeAt.js.flow +12 -12
  162. package/normalizeHTML.js.flow +78 -78
  163. package/package.json +156 -155
  164. package/patchAnchorElements.js.flow +38 -38
  165. package/patchBreakElements.js.flow +22 -22
  166. package/patchElementInlineStyles.js.flow +92 -92
  167. package/patchListElements.js.flow +276 -276
  168. package/patchMathElements.js.flow +60 -60
  169. package/patchParagraphElements.js.flow +20 -20
  170. package/patchStyleElements.js.flow +196 -196
  171. package/patchTableElements.js.flow +89 -89
  172. package/rebaseDocWithSteps.js.flow +42 -42
  173. package/sanitizeURL.js.flow +13 -13
  174. package/splitListItem.js +1 -1
  175. package/splitListItem.js.flow +191 -191
  176. package/styles.css +19 -19
  177. package/styles0.css +29 -29
  178. package/toClosestFontPtSize.js.flow +22 -22
  179. package/toSafeHTMLDocument.js.flow +9 -9
  180. package/toggleBlockquote.js.flow +108 -108
  181. package/toggleCodeBlock.js.flow +102 -102
  182. package/ui/AlertInfo.js +7 -8
  183. package/ui/AlertInfo.js.flow +64 -64
  184. package/ui/BookmarkNodeView.js +8 -10
  185. package/ui/BookmarkNodeView.js.flow +66 -66
  186. package/ui/CommandButton.js +7 -8
  187. package/ui/CommandButton.js.flow +68 -68
  188. package/ui/CommandMenu.js +8 -9
  189. package/ui/CommandMenu.js.flow +75 -75
  190. package/ui/CommandMenuButton.js +13 -14
  191. package/ui/CommandMenuButton.js.flow +131 -131
  192. package/ui/CustomEditorView.js +8 -9
  193. package/ui/CustomEditorView.js.flow +28 -28
  194. package/ui/CustomMenu.js +3 -4
  195. package/ui/CustomMenu.js.flow +17 -17
  196. package/ui/CustomMenuItem.js +6 -8
  197. package/ui/CustomMenuItem.js.flow +36 -36
  198. package/ui/CustomNodeView.js +2 -3
  199. package/ui/CustomNodeView.js.flow +200 -200
  200. package/ui/CustomRadioButton.js +6 -7
  201. package/ui/CustomRadioButton.js.flow +65 -65
  202. package/ui/DocLayoutEditor.js +9 -10
  203. package/ui/DocLayoutEditor.js.flow +146 -146
  204. package/ui/Editor.js +15 -16
  205. package/ui/Editor.js.flow +288 -288
  206. package/ui/EditorFrameset.js +5 -6
  207. package/ui/EditorFrameset.js.flow +81 -81
  208. package/ui/EditorToolbar.js +13 -14
  209. package/ui/EditorToolbar.js.flow +218 -218
  210. package/ui/EditorToolbarConfig.js.flow +164 -164
  211. package/ui/FontSizeCommandMenuButton.js +5 -6
  212. package/ui/FontSizeCommandMenuButton.js.flow +66 -66
  213. package/ui/FontTypeCommandMenuButton.js +5 -6
  214. package/ui/FontTypeCommandMenuButton.js.flow +61 -61
  215. package/ui/Frag.js +3 -4
  216. package/ui/Frag.js.flow +13 -13
  217. package/ui/Icon.js +9 -12
  218. package/ui/Icon.js.flow +89 -89
  219. package/ui/ImageInlineEditor.js +6 -7
  220. package/ui/ImageInlineEditor.js.flow +67 -67
  221. package/ui/KeyCodes.js.flow +12 -12
  222. package/ui/LinkTooltip.js +9 -10
  223. package/ui/LinkTooltip.js.flow +85 -85
  224. package/ui/LinkURLEditor.js +9 -10
  225. package/ui/LinkURLEditor.js.flow +117 -117
  226. package/ui/ListItemNodeView.js +2 -3
  227. package/ui/ListItemNodeView.js.flow +98 -98
  228. package/ui/ListTypeButton.js +13 -14
  229. package/ui/ListTypeButton.js.flow +131 -131
  230. package/ui/ListTypeCommandButton.js +5 -6
  231. package/ui/ListTypeCommandButton.js.flow +85 -85
  232. package/ui/ListTypeMenu.js +11 -12
  233. package/ui/ListTypeMenu.js.flow +70 -70
  234. package/ui/LoadingIndicator.js +3 -4
  235. package/ui/LoadingIndicator.js.flow +20 -20
  236. package/ui/MathEditor.js +10 -11
  237. package/ui/MathEditor.js.flow +78 -78
  238. package/ui/MathInlineEditor.js +8 -9
  239. package/ui/MathInlineEditor.js.flow +102 -102
  240. package/ui/MathNodeView.js +14 -16
  241. package/ui/MathNodeView.js.flow +186 -186
  242. package/ui/PasteMenu.js +10 -11
  243. package/ui/PasteMenu.js.flow +57 -57
  244. package/ui/ResizeObserver.js.flow +106 -106
  245. package/ui/RichTextEditor.js +9 -10
  246. package/ui/RichTextEditor.js.flow +133 -133
  247. package/ui/SelectionObserver.js +2 -3
  248. package/ui/SelectionObserver.js.flow +134 -134
  249. package/ui/TableCellMenu.js +6 -7
  250. package/ui/TableCellMenu.js.flow +51 -51
  251. package/ui/TableGridSizeEditor.js +19 -21
  252. package/ui/TableGridSizeEditor.js.flow +184 -184
  253. package/ui/TableNodeView.js +3 -4
  254. package/ui/TableNodeView.js.flow +25 -25
  255. package/ui/bindScrollHandler.js.flow +46 -46
  256. package/ui/canUseCSSFont.js.flow +43 -43
  257. package/ui/czi-body-layout-editor.css +16 -16
  258. package/ui/czi-bookmark-view.css +10 -10
  259. package/ui/czi-cursor-placeholder.css +36 -36
  260. package/ui/czi-custom-menu-button.css +18 -18
  261. package/ui/czi-custom-menu-item.css +30 -30
  262. package/ui/czi-custom-menu.css +8 -8
  263. package/ui/czi-custom-radio-button.css +80 -80
  264. package/ui/czi-custom-scrollbar.css +21 -21
  265. package/ui/czi-editor-frameset.css +81 -81
  266. package/ui/czi-editor-toolbar.css +122 -122
  267. package/ui/czi-editor.css +220 -220
  268. package/ui/czi-form.css +107 -107
  269. package/ui/czi-frag.css +3 -3
  270. package/ui/czi-heading.css +40 -40
  271. package/ui/czi-icon.css +72 -72
  272. package/ui/czi-image-resize-box.css +165 -165
  273. package/ui/czi-image-upload-editor.css +57 -57
  274. package/ui/czi-image-upload-placeholder.css +50 -50
  275. package/ui/czi-image-url-editor.css +38 -38
  276. package/ui/czi-image-view.css +125 -125
  277. package/ui/czi-indent.css +137 -137
  278. package/ui/czi-inline-editor.css +20 -20
  279. package/ui/czi-link-tooltip.css +71 -71
  280. package/ui/czi-list.css +410 -410
  281. package/ui/czi-loading-indicator.css +111 -111
  282. package/ui/czi-math-view.css +62 -62
  283. package/ui/czi-selection-placeholder.css +24 -24
  284. package/ui/czi-table-cell-menu.css +14 -14
  285. package/ui/czi-table-grid-size-editor.css +37 -37
  286. package/ui/czi-table.css +87 -87
  287. package/ui/czi-vars.css +2 -2
  288. package/ui/findActiveFontSize.js.flow +58 -58
  289. package/ui/findActiveFontType.js.flow +38 -38
  290. package/ui/fonts.css +460 -460
  291. package/ui/handleEditorDrop.js.flow +28 -28
  292. package/ui/handleEditorKeyDown.js.flow +39 -39
  293. package/ui/handleEditorPaste.js.flow +33 -33
  294. package/ui/htmlElementToRect.js.flow +18 -18
  295. package/ui/icon-font.css +9 -9
  296. package/ui/injectStyleSheet.js.flow +42 -42
  297. package/ui/isElementFullyVisible.js.flow +26 -26
  298. package/ui/isOffline.js.flow +8 -8
  299. package/ui/isReactClass.js.flow +12 -12
  300. package/ui/listType.css +21 -21
  301. package/ui/mathquill-editor/MathQuillEditor.js +15 -17
  302. package/ui/mathquill-editor/MathQuillEditor.js.flow +159 -159
  303. package/ui/mathquill-editor/MathQuillEditorSymbols.js.flow +483 -483
  304. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +6 -7
  305. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +50 -50
  306. package/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
  307. package/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
  308. package/ui/mathquill-editor/mathquill-import-kludge.js.flow +24 -24
  309. package/ui/renderLaTeXAsHTML.js +1 -1
  310. package/ui/renderLaTeXAsHTML.js.flow +46 -46
  311. package/ui/resolveImage.js +1 -1
  312. package/ui/resolveImage.js.flow +123 -123
  313. package/ui/toCSSColor.js.flow +51 -51
  314. package/ui/toCSSLineSpacing.js.flow +55 -55
  315. package/ui/toHexColor.js.flow +26 -26
  316. package/ui/uuid.js.flow +9 -9
  317. package/uuid.js.flow +9 -9
@@ -5,8 +5,8 @@ import Licit, { DataType } from './Licit';
5
5
  import RichTextEditor from '../ui/RichTextEditor';
6
6
  import { noop } from '@modusoperandi/licit-ui-commands';
7
7
 
8
- /**
9
- * Configure Jest to use react / enzyme
8
+ /**
9
+ * Configure Jest to use react / enzyme
10
10
  */
11
11
  configure({
12
12
  adapter: new Adapter()
@@ -1,98 +1,98 @@
1
- import React from 'react';
2
- import { configure, shallow } from 'enzyme';
3
- import Adapter from '@cfaester/enzyme-adapter-react-18';
4
- import Licit, { DataType } from './Licit';
5
- import RichTextEditor from '../ui/RichTextEditor';
6
- import { noop } from '@modusoperandi/licit-ui-commands';
7
-
8
- /**
9
- * Configure Jest to use react / enzyme
10
- */
11
- configure({
12
- adapter: new Adapter(),
13
- });
14
-
15
- describe('<Licit />', () => {
16
- let wrapper;
17
- let licit;
18
-
19
- // provide an empty document just to shut up that warning
20
- const data = {
21
- type: 'doc',
22
- content: [
23
- {
24
- type: 'paragraph',
25
- content: [{ type: 'text', text: ' ' }],
26
- },
27
- ],
28
- };
29
-
30
- // Mocking the functions used in _onReady
31
- const fakeEditorView = {
32
- focus: noop,
33
- dispatch: noop,
34
- state: {
35
- doc: {
36
- content: { size: 10 },
37
- resolve: () => ({
38
- min: () => 0,
39
- max: () => 10,
40
- parent: { inlineContent: true },
41
- }),
42
- toJSON: () => data,
43
- },
44
- tr: {
45
- setSelection: () => fakeEditorView.state.tr,
46
- scrollIntoView: noop,
47
- },
48
- },
49
- };
50
-
51
- beforeEach(() => {
52
- wrapper = shallow(<Licit data={data} />);
53
- licit = wrapper.instance();
54
- });
55
-
56
- it('should render a <RichTextEditor /> ', () => {
57
- expect(wrapper.find(RichTextEditor)).toBeTruthy();
58
- });
59
-
60
- describe('editorView (getter)', () => {
61
- it('should return the prosemirror view', () => {
62
- // Using shallow, the underlying RichTexEditor is never really created,
63
- // and Licit's _onReady method is not called. Call it here with the fake
64
- // view created above
65
- licit._onReady(fakeEditorView);
66
-
67
- // Verify that getter now returns the underlying view.
68
- expect(licit.editorView).toBe(fakeEditorView);
69
- });
70
- });
71
- });
72
-
73
- describe('<Licit with HTML input/>', () => {
74
- let wrapper;
75
- let licit;
76
-
77
- const HELLO = 'Hello ';
78
- const WORLD = 'World';
79
- const data =
80
- '<p stylename="None">' +
81
- HELLO +
82
- '<strong overridden="false">' +
83
- WORLD +
84
- '</strong></p>';
85
-
86
- beforeEach(() => {
87
- wrapper = shallow(<Licit data={data} dataType={DataType.HTML} />);
88
- licit = wrapper.instance();
89
- });
90
-
91
- it('should render a <RichTextEditor /> ', () => {
92
- expect(wrapper.find(RichTextEditor)).toBeTruthy();
93
- });
94
-
95
- it('should match state text content with the passed in text ', () => {
96
- expect(licit.state.editorState.doc.textContent).toBe(HELLO + WORLD);
97
- });
98
- });
1
+ import React from 'react';
2
+ import { configure, shallow } from 'enzyme';
3
+ import Adapter from '@cfaester/enzyme-adapter-react-18';
4
+ import Licit, { DataType } from './Licit';
5
+ import RichTextEditor from '../ui/RichTextEditor';
6
+ import { noop } from '@modusoperandi/licit-ui-commands';
7
+
8
+ /**
9
+ * Configure Jest to use react / enzyme
10
+ */
11
+ configure({
12
+ adapter: new Adapter(),
13
+ });
14
+
15
+ describe('<Licit />', () => {
16
+ let wrapper;
17
+ let licit;
18
+
19
+ // provide an empty document just to shut up that warning
20
+ const data = {
21
+ type: 'doc',
22
+ content: [
23
+ {
24
+ type: 'paragraph',
25
+ content: [{ type: 'text', text: ' ' }],
26
+ },
27
+ ],
28
+ };
29
+
30
+ // Mocking the functions used in _onReady
31
+ const fakeEditorView = {
32
+ focus: noop,
33
+ dispatch: noop,
34
+ state: {
35
+ doc: {
36
+ content: { size: 10 },
37
+ resolve: () => ({
38
+ min: () => 0,
39
+ max: () => 10,
40
+ parent: { inlineContent: true },
41
+ }),
42
+ toJSON: () => data,
43
+ },
44
+ tr: {
45
+ setSelection: () => fakeEditorView.state.tr,
46
+ scrollIntoView: noop,
47
+ },
48
+ },
49
+ };
50
+
51
+ beforeEach(() => {
52
+ wrapper = shallow(<Licit data={data} />);
53
+ licit = wrapper.instance();
54
+ });
55
+
56
+ it('should render a <RichTextEditor /> ', () => {
57
+ expect(wrapper.find(RichTextEditor)).toBeTruthy();
58
+ });
59
+
60
+ describe('editorView (getter)', () => {
61
+ it('should return the prosemirror view', () => {
62
+ // Using shallow, the underlying RichTexEditor is never really created,
63
+ // and Licit's _onReady method is not called. Call it here with the fake
64
+ // view created above
65
+ licit._onReady(fakeEditorView);
66
+
67
+ // Verify that getter now returns the underlying view.
68
+ expect(licit.editorView).toBe(fakeEditorView);
69
+ });
70
+ });
71
+ });
72
+
73
+ describe('<Licit with HTML input/>', () => {
74
+ let wrapper;
75
+ let licit;
76
+
77
+ const HELLO = 'Hello ';
78
+ const WORLD = 'World';
79
+ const data =
80
+ '<p stylename="None">' +
81
+ HELLO +
82
+ '<strong overridden="false">' +
83
+ WORLD +
84
+ '</strong></p>';
85
+
86
+ beforeEach(() => {
87
+ wrapper = shallow(<Licit data={data} dataType={DataType.HTML} />);
88
+ licit = wrapper.instance();
89
+ });
90
+
91
+ it('should render a <RichTextEditor /> ', () => {
92
+ expect(wrapper.find(RichTextEditor)).toBeTruthy();
93
+ });
94
+
95
+ it('should match state text content with the passed in text ', () => {
96
+ expect(licit.state.editorState.doc.textContent).toBe(HELLO + WORLD);
97
+ });
98
+ });
@@ -2,7 +2,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
2
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
3
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
4
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  /* eslint-disable */
8
8
  var Reporter = /*#__PURE__*/function () {
@@ -10,7 +10,7 @@ var Reporter = /*#__PURE__*/function () {
10
10
  _classCallCheck(this, Reporter);
11
11
  this.setAt = 0;
12
12
  }
13
- _createClass(Reporter, [{
13
+ return _createClass(Reporter, [{
14
14
  key: "clearState",
15
15
  value: function clearState() {
16
16
  if (this.state) {
@@ -45,6 +45,5 @@ var Reporter = /*#__PURE__*/function () {
45
45
  }, 5000);else this.clearState();
46
46
  }
47
47
  }]);
48
- return Reporter;
49
48
  }();
50
49
  export default Reporter;
@@ -1,37 +1,37 @@
1
- /* eslint-disable */
2
-
3
- class Reporter {
4
- constructor() {
5
- this.setAt = 0;
6
- }
7
-
8
- clearState() {
9
- if (this.state) {
10
- this.state = this.node = null;
11
- this.setAt = 0;
12
- }
13
- }
14
-
15
- failure(err) {
16
- console.error('fail', err.toString());
17
- }
18
-
19
- delay(err) {
20
- if (this.state == 'fail') return;
21
- console.info('delay', err.toString());
22
- }
23
-
24
- show(type, message) {
25
- this.clearState();
26
- this.state = type;
27
- this.setAt = Date.now();
28
- }
29
-
30
- success() {
31
- if (this.state == 'fail' && this.setAt > Date.now() - 1000 * 10)
32
- setTimeout(() => this.success(), 5000);
33
- else this.clearState();
34
- }
35
- }
36
-
37
- export default Reporter;
1
+ /* eslint-disable */
2
+
3
+ class Reporter {
4
+ constructor() {
5
+ this.setAt = 0;
6
+ }
7
+
8
+ clearState() {
9
+ if (this.state) {
10
+ this.state = this.node = null;
11
+ this.setAt = 0;
12
+ }
13
+ }
14
+
15
+ failure(err) {
16
+ console.error('fail', err.toString());
17
+ }
18
+
19
+ delay(err) {
20
+ if (this.state == 'fail') return;
21
+ console.info('delay', err.toString());
22
+ }
23
+
24
+ show(type, message) {
25
+ this.clearState();
26
+ this.state = type;
27
+ this.setAt = Date.now();
28
+ }
29
+
30
+ success() {
31
+ if (this.state == 'fail' && this.setAt > Date.now() - 1000 * 10)
32
+ setTimeout(() => this.success(), 5000);
33
+ else this.clearState();
34
+ }
35
+ }
36
+
37
+ export default Reporter;
@@ -3,7 +3,7 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
3
3
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
4
4
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7
7
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
8
  import { EditorState } from 'prosemirror-state';
9
9
  import { Transform } from 'prosemirror-transform';
@@ -1,61 +1,61 @@
1
- // @flow
2
-
3
- import { EditorState } from 'prosemirror-state';
4
- import { Transform } from 'prosemirror-transform';
5
- import { Schema } from 'prosemirror-model';
6
- import { EditorView } from 'prosemirror-view';
7
- import ReactDOM from 'react-dom';
8
-
9
- export type SetStateCall = (
10
- state: { editorState: EditorState },
11
- callback: Function
12
- ) => void;
13
-
14
- class SimpleConnector {
15
- _setState: SetStateCall;
16
- _editorState: EditorState;
17
- // This flag is used to deteremine if data passed in or not
18
- // If not passed in, use the data from collab server when in collab mode.
19
- // else use empty content.
20
- _dataDefined: boolean;
21
-
22
- constructor(editorState: EditorState, setState: SetStateCall) {
23
- this._editorState = editorState;
24
- this._setState = setState;
25
- }
26
-
27
- onEdit = (transaction: Transform, view: EditorView): void => {
28
- ReactDOM.unstable_batchedUpdates(() => {
29
- const editorState = this._editorState.apply(transaction);
30
- // [FS] IRAD-1236 2020-03-05
31
- // The state property should not be directly mutated. Use the updateState method.
32
- if (view) {
33
- view.updateState(editorState);
34
- }
35
-
36
- const state = {
37
- editorState,
38
- data: transaction.doc.toJSON(),
39
- };
40
- this._setState(state, () => {
41
- this._editorState = editorState;
42
- });
43
- });
44
- };
45
-
46
- // FS IRAD-989 2020-18-06
47
- // updating properties should automatically render the changes
48
- getState = (): EditorState => {
49
- return this._editorState;
50
- };
51
-
52
- // FS IRAD-1040 2020-09-02
53
- // Send the modified schema to server
54
- updateSchema = (schema: Schema, data: any) => {};
55
-
56
- updateContent = (data: any) => {};
57
-
58
- cleanUp = () => {};
59
- }
60
-
61
- export default SimpleConnector;
1
+ // @flow
2
+
3
+ import { EditorState } from 'prosemirror-state';
4
+ import { Transform } from 'prosemirror-transform';
5
+ import { Schema } from 'prosemirror-model';
6
+ import { EditorView } from 'prosemirror-view';
7
+ import ReactDOM from 'react-dom';
8
+
9
+ export type SetStateCall = (
10
+ state: { editorState: EditorState },
11
+ callback: Function
12
+ ) => void;
13
+
14
+ class SimpleConnector {
15
+ _setState: SetStateCall;
16
+ _editorState: EditorState;
17
+ // This flag is used to deteremine if data passed in or not
18
+ // If not passed in, use the data from collab server when in collab mode.
19
+ // else use empty content.
20
+ _dataDefined: boolean;
21
+
22
+ constructor(editorState: EditorState, setState: SetStateCall) {
23
+ this._editorState = editorState;
24
+ this._setState = setState;
25
+ }
26
+
27
+ onEdit = (transaction: Transform, view: EditorView): void => {
28
+ ReactDOM.unstable_batchedUpdates(() => {
29
+ const editorState = this._editorState.apply(transaction);
30
+ // [FS] IRAD-1236 2020-03-05
31
+ // The state property should not be directly mutated. Use the updateState method.
32
+ if (view) {
33
+ view.updateState(editorState);
34
+ }
35
+
36
+ const state = {
37
+ editorState,
38
+ data: transaction.doc.toJSON(),
39
+ };
40
+ this._setState(state, () => {
41
+ this._editorState = editorState;
42
+ });
43
+ });
44
+ };
45
+
46
+ // FS IRAD-989 2020-18-06
47
+ // updating properties should automatically render the changes
48
+ getState = (): EditorState => {
49
+ return this._editorState;
50
+ };
51
+
52
+ // FS IRAD-1040 2020-09-02
53
+ // Send the modified schema to server
54
+ updateSchema = (schema: Schema, data: any) => {};
55
+
56
+ updateContent = (data: any) => {};
57
+
58
+ cleanUp = () => {};
59
+ }
60
+
61
+ export default SimpleConnector;
@@ -1,70 +1,70 @@
1
- /* eslint-disable */
2
-
3
- // A simple wrapper for XHR.
4
- export function req(conf) {
5
- let req = new XMLHttpRequest(),
6
- aborted = false;
7
- let result = new Promise((success, failure) => {
8
- req.open(conf.method, conf.url, true);
9
- req.addEventListener('load', () => {
10
- if (aborted) return;
11
- if (req.status < 400) {
12
- success(req.responseText);
13
- } else {
14
- let text = req.responseText;
15
- if (text && /html/.test(req.getResponseHeader('content-type')))
16
- text = makePlain(text);
17
- let err = new Error(
18
- 'Request failed: ' + req.statusText + (text ? '\n\n' + text : '')
19
- );
20
- err.status = req.status;
21
-
22
- failure(err);
23
- }
24
- });
25
- req.addEventListener('error', () => {
26
- if (!aborted) failure(new Error('Network error'));
27
- });
28
- if (conf.headers)
29
- for (let header in conf.headers)
30
- req.setRequestHeader(header, conf.headers[header]);
31
- req.send(conf.body || null);
32
- });
33
- result.abort = () => {
34
- if (!aborted) {
35
- req.abort();
36
- aborted = true;
37
- }
38
- };
39
- return result;
40
- }
41
-
42
- function makePlain(html) {
43
- var elt = document.createElement('div');
44
- elt.innerHTML = html;
45
- return elt.textContent.replace(/\n[^]*|\s+$/g, '');
46
- }
47
-
48
- export function GET(url) {
49
- return req({ url, method: 'GET' });
50
- }
51
-
52
- export function POST(url, body, type) {
53
- return req({ url, method: 'POST', body, headers: { 'Content-Type': type } });
54
- }
55
-
56
- export function PUT(url, body, type) {
57
- return req({ url, method: 'PUT', body, headers: { 'Content-Type': type } });
58
- }
59
-
60
- // [FS] IRAD-1128 2021-02-03
61
- // http DELETE request overrided
62
- export function DELETE(url, type) {
63
- return req({ url, method: 'DELETE', headers: { 'Content-Type': type } });
64
- }
65
-
66
- // [FS] IRAD-1128 2021-02-03
67
- // http PATCH request overrided
68
- export function PATCH(url, body, type) {
69
- return req({ url, method: 'PATCH', body, headers: { 'Content-Type': type } });
70
- }
1
+ /* eslint-disable */
2
+
3
+ // A simple wrapper for XHR.
4
+ export function req(conf) {
5
+ let req = new XMLHttpRequest(),
6
+ aborted = false;
7
+ let result = new Promise((success, failure) => {
8
+ req.open(conf.method, conf.url, true);
9
+ req.addEventListener('load', () => {
10
+ if (aborted) return;
11
+ if (req.status < 400) {
12
+ success(req.responseText);
13
+ } else {
14
+ let text = req.responseText;
15
+ if (text && /html/.test(req.getResponseHeader('content-type')))
16
+ text = makePlain(text);
17
+ let err = new Error(
18
+ 'Request failed: ' + req.statusText + (text ? '\n\n' + text : '')
19
+ );
20
+ err.status = req.status;
21
+
22
+ failure(err);
23
+ }
24
+ });
25
+ req.addEventListener('error', () => {
26
+ if (!aborted) failure(new Error('Network error'));
27
+ });
28
+ if (conf.headers)
29
+ for (let header in conf.headers)
30
+ req.setRequestHeader(header, conf.headers[header]);
31
+ req.send(conf.body || null);
32
+ });
33
+ result.abort = () => {
34
+ if (!aborted) {
35
+ req.abort();
36
+ aborted = true;
37
+ }
38
+ };
39
+ return result;
40
+ }
41
+
42
+ function makePlain(html) {
43
+ var elt = document.createElement('div');
44
+ elt.innerHTML = html;
45
+ return elt.textContent.replace(/\n[^]*|\s+$/g, '');
46
+ }
47
+
48
+ export function GET(url) {
49
+ return req({ url, method: 'GET' });
50
+ }
51
+
52
+ export function POST(url, body, type) {
53
+ return req({ url, method: 'POST', body, headers: { 'Content-Type': type } });
54
+ }
55
+
56
+ export function PUT(url, body, type) {
57
+ return req({ url, method: 'PUT', body, headers: { 'Content-Type': type } });
58
+ }
59
+
60
+ // [FS] IRAD-1128 2021-02-03
61
+ // http DELETE request overrided
62
+ export function DELETE(url, type) {
63
+ return req({ url, method: 'DELETE', headers: { 'Content-Type': type } });
64
+ }
65
+
66
+ // [FS] IRAD-1128 2021-02-03
67
+ // http PATCH request overrided
68
+ export function PATCH(url, body, type) {
69
+ return req({ url, method: 'PATCH', body, headers: { 'Content-Type': type } });
70
+ }
package/client/licit.css CHANGED
@@ -1,12 +1,12 @@
1
- html {
2
- background: #fff;
3
- border: 0;
4
- border: none;
5
- margin: 0;
6
- }
7
-
8
- body {
9
- background: #fff;
10
- border: none;
11
- margin: 0;
12
- }
1
+ html {
2
+ background: #fff;
3
+ border: 0;
4
+ border: none;
5
+ margin: 0;
6
+ }
7
+
8
+ body {
9
+ background: #fff;
10
+ border: none;
11
+ margin: 0;
12
+ }
@@ -1,27 +1,27 @@
1
- // @flow
2
-
3
- export default function throttle(
4
- fn: Function,
5
- threshhold: number,
6
- context: any
7
- ): Function {
8
- let last;
9
- let deferTimer: window.TimeoutID;
10
- const boundFn = fn.bind(context);
11
-
12
- return function () {
13
- const now = Date.now();
14
- const args = Array.prototype.slice.call(arguments);
15
- if (last && now < last + threshhold) {
16
- // hold on to it
17
- clearTimeout(deferTimer);
18
- deferTimer = setTimeout(() => {
19
- last = now;
20
- boundFn.apply(null, args);
21
- }, threshhold);
22
- } else {
23
- last = now;
24
- boundFn.apply(null, args);
25
- }
26
- };
27
- }
1
+ // @flow
2
+
3
+ export default function throttle(
4
+ fn: Function,
5
+ threshhold: number,
6
+ context: any
7
+ ): Function {
8
+ let last;
9
+ let deferTimer: window.TimeoutID;
10
+ const boundFn = fn.bind(context);
11
+
12
+ return function () {
13
+ const now = Date.now();
14
+ const args = Array.prototype.slice.call(arguments);
15
+ if (last && now < last + threshhold) {
16
+ // hold on to it
17
+ clearTimeout(deferTimer);
18
+ deferTimer = setTimeout(() => {
19
+ last = now;
20
+ boundFn.apply(null, args);
21
+ }, threshhold);
22
+ } else {
23
+ last = now;
24
+ boundFn.apply(null, args);
25
+ }
26
+ };
27
+ }