@zipify/wysiwyg 1.0.0-dev.9 → 1.0.0-dev.90

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 (232) hide show
  1. package/.editorconfig +1 -1
  2. package/.eslintrc.js +2 -2
  3. package/.github/dependabot.yaml +1 -0
  4. package/.lintstagedrc +2 -2
  5. package/.release-it.json +3 -1
  6. package/.stylelintrc +0 -4
  7. package/README.md +2 -2
  8. package/config/jest/setupTests.js +0 -3
  9. package/config/vite/example.config.js +25 -0
  10. package/config/vite/lib.config.js +30 -0
  11. package/config/{webpack → vite}/settings.js +0 -0
  12. package/dist/wysiwyg.css +404 -373
  13. package/dist/wysiwyg.mjs +26014 -0
  14. package/example/ExampleApp.vue +35 -4
  15. package/example/example.js +0 -3
  16. package/example/{example.html → index.html} +1 -0
  17. package/example/pageBlocks.js +31 -0
  18. package/example/presets.js +2 -2
  19. package/example/tooltip/Tooltip.js +1 -1
  20. package/jest.config.js +3 -1
  21. package/lib/Wysiwyg.vue +73 -14
  22. package/lib/__tests__/utils/index.js +0 -1
  23. package/lib/__tests__/utils/withComponentContext.js +1 -1
  24. package/lib/assets/icons/background-color.svg +3 -1
  25. package/lib/assets/icons/font-color.svg +1 -3
  26. package/lib/assets/icons/link.svg +3 -0
  27. package/lib/assets/icons/unlink.svg +3 -0
  28. package/lib/components/base/Button.vue +23 -2
  29. package/lib/components/base/Checkbox.vue +89 -0
  30. package/lib/components/base/FieldLabel.vue +2 -1
  31. package/lib/components/base/Icon.vue +3 -3
  32. package/lib/components/base/Modal.vue +1 -2
  33. package/lib/components/base/NumberField.vue +2 -2
  34. package/lib/components/base/Range.vue +1 -1
  35. package/lib/components/base/ScrollView.vue +1 -3
  36. package/lib/components/base/TextField.vue +108 -0
  37. package/lib/components/base/__tests__/Modal.test.js +7 -2
  38. package/lib/components/base/__tests__/TextField.test.js +57 -0
  39. package/lib/components/base/__tests__/__snapshots__/TextField.test.js.snap +9 -0
  40. package/lib/components/base/colorPicker/ColorPicker.vue +14 -12
  41. package/lib/components/base/colorPicker/composables/__tests__/usePickerApi.test.js +6 -6
  42. package/lib/components/base/colorPicker/composables/usePickerApi.js +15 -8
  43. package/lib/components/base/colorPicker/composables/usePickerHotkeys.js +3 -2
  44. package/lib/components/base/composables/__tests__/useActivatedListener.test.js +1 -1
  45. package/lib/components/base/composables/__tests__/useDeselectionLock.test.js +1 -1
  46. package/lib/components/base/composables/__tests__/useElementRef.test.js +1 -1
  47. package/lib/components/base/composables/__tests__/useModalToggler.test.js +1 -1
  48. package/lib/components/base/composables/__tests__/useNumberValue.test.js +1 -1
  49. package/lib/components/base/composables/__tests__/useScrollView.test.js +1 -1
  50. package/lib/components/base/composables/__tests__/useTempValue.test.js +1 -1
  51. package/lib/components/base/composables/__tests__/useValidator.test.js +44 -0
  52. package/lib/components/base/composables/index.js +1 -0
  53. package/lib/components/base/composables/useActivatedListener.js +1 -1
  54. package/lib/components/base/composables/useDeselectionLock.js +1 -1
  55. package/lib/components/base/composables/useElementRef.js +1 -1
  56. package/lib/components/base/composables/useModalToggler.js +6 -2
  57. package/lib/components/base/composables/useScrollView.js +1 -1
  58. package/lib/components/base/composables/useTempValue.js +1 -1
  59. package/lib/components/base/composables/useValidator.js +23 -0
  60. package/lib/components/base/dropdown/Dropdown.vue +16 -4
  61. package/lib/components/base/dropdown/DropdownActivator.vue +19 -3
  62. package/lib/components/base/dropdown/DropdownGroup.vue +1 -1
  63. package/lib/components/base/dropdown/DropdownMenu.vue +1 -1
  64. package/lib/components/base/dropdown/DropdownOption.vue +1 -1
  65. package/lib/components/base/dropdown/__tests__/DropdownActivator.test.js +1 -1
  66. package/lib/components/base/dropdown/__tests__/DropdownMenu.test.js +1 -1
  67. package/lib/components/base/dropdown/__tests__/DropdownOption.test.js +1 -1
  68. package/lib/components/base/dropdown/composables/__tests__/useActiveOptionManager.test.js +1 -1
  69. package/lib/components/base/dropdown/composables/__tests__/useDropdownEntityTitle.test.js +1 -1
  70. package/lib/components/base/dropdown/composables/useActiveOptionManager.js +1 -1
  71. package/lib/components/base/dropdown/composables/useDropdownEntityTitle.js +1 -1
  72. package/lib/components/base/index.js +3 -1
  73. package/lib/components/toolbar/Toolbar.vue +51 -9
  74. package/lib/components/toolbar/ToolbarDivider.vue +1 -1
  75. package/lib/components/toolbar/ToolbarFull.vue +41 -10
  76. package/lib/components/toolbar/ToolbarRow.vue +1 -0
  77. package/lib/components/toolbar/__tests__/Toolbar.test.js +6 -0
  78. package/lib/components/toolbar/controls/AlignmentControl.vue +1 -1
  79. package/lib/components/toolbar/controls/AlignmentDeviceControl.vue +1 -1
  80. package/lib/components/toolbar/controls/BackgroundColorControl.vue +1 -1
  81. package/lib/components/toolbar/controls/CaseStyleControl.vue +1 -1
  82. package/lib/components/toolbar/controls/FontColorControl.vue +1 -1
  83. package/lib/components/toolbar/controls/FontFamilyControl.vue +1 -1
  84. package/lib/components/toolbar/controls/FontSizeControl.vue +8 -1
  85. package/lib/components/toolbar/controls/FontWeightControl.vue +1 -1
  86. package/lib/components/toolbar/controls/ItalicControl.vue +1 -1
  87. package/lib/components/toolbar/controls/LineHeightControl.vue +1 -1
  88. package/lib/components/toolbar/controls/ListControl.vue +68 -34
  89. package/lib/components/toolbar/controls/RemoveFormatControl.vue +1 -1
  90. package/lib/components/toolbar/controls/StrikeThroughControl.vue +1 -1
  91. package/lib/components/toolbar/controls/StylePresetControl.vue +15 -2
  92. package/lib/components/toolbar/controls/SuperscriptControl.vue +1 -1
  93. package/lib/components/toolbar/controls/UnderlineControl.vue +2 -2
  94. package/lib/components/toolbar/controls/__tests__/AlignmentControl.test.js +1 -1
  95. package/lib/components/toolbar/controls/__tests__/AlignmentDeviceControl.test.js +1 -1
  96. package/lib/components/toolbar/controls/__tests__/BackgroundColorControl.test.js +1 -1
  97. package/lib/components/toolbar/controls/__tests__/CaseStyleControl.test.js +1 -1
  98. package/lib/components/toolbar/controls/__tests__/FontColorControl.test.js +1 -1
  99. package/lib/components/toolbar/controls/__tests__/FontFamilyControl.test.js +1 -1
  100. package/lib/components/toolbar/controls/__tests__/FontSizeControl.test.js +1 -1
  101. package/lib/components/toolbar/controls/__tests__/FontWeightControl.test.js +1 -1
  102. package/lib/components/toolbar/controls/__tests__/ItalicControl.test.js +1 -1
  103. package/lib/components/toolbar/controls/__tests__/LineHeightControl.test.js +1 -1
  104. package/lib/components/toolbar/controls/__tests__/ListControl.test.js +18 -3
  105. package/lib/components/toolbar/controls/__tests__/StrikeThroughControl.test.js +1 -1
  106. package/lib/components/toolbar/controls/__tests__/StylePresetControl.test.js +17 -1
  107. package/lib/components/toolbar/controls/__tests__/UnderlineControl.test.js +5 -1
  108. package/lib/components/toolbar/controls/composables/useRecentFonts.js +1 -1
  109. package/lib/components/toolbar/controls/index.js +1 -0
  110. package/lib/components/toolbar/controls/link/LinkControl.vue +160 -0
  111. package/lib/components/toolbar/controls/link/LinkControlApply.vue +35 -0
  112. package/lib/components/toolbar/controls/link/LinkControlHeader.vue +69 -0
  113. package/lib/components/toolbar/controls/link/__tests__/LinkControl.test.js +79 -0
  114. package/lib/components/toolbar/controls/link/__tests__/LinkControlHeader.test.js +42 -0
  115. package/lib/components/toolbar/controls/link/composables/__tests__/__snapshots__/useLink.test.js.snap +15 -0
  116. package/lib/components/toolbar/controls/link/composables/__tests__/useLink.test.js +172 -0
  117. package/lib/components/toolbar/controls/link/composables/index.js +1 -0
  118. package/lib/components/toolbar/controls/link/composables/useLink.js +82 -0
  119. package/lib/components/toolbar/controls/link/destination/LinkControlDestination.vue +103 -0
  120. package/lib/components/toolbar/controls/link/destination/LinkControlPageBlock.vue +54 -0
  121. package/lib/components/toolbar/controls/link/destination/LinkControlUrl.vue +52 -0
  122. package/lib/components/toolbar/controls/link/destination/__tests__/LinkControlPageBlock.test.js +36 -0
  123. package/lib/components/toolbar/controls/link/destination/__tests__/LinkControlUrl.test.js +46 -0
  124. package/lib/components/toolbar/controls/link/destination/__tests__/__snapshots__/LinkControlPageBlock.test.js.snap +9 -0
  125. package/lib/components/toolbar/controls/link/destination/__tests__/__snapshots__/LinkControlUrl.test.js.snap +17 -0
  126. package/lib/components/toolbar/controls/link/destination/index.js +1 -0
  127. package/lib/components/toolbar/controls/link/index.js +1 -0
  128. package/lib/composables/__tests__/__snapshots__/useEditor.test.js.snap +1 -0
  129. package/lib/composables/__tests__/useEditor.test.js +5 -4
  130. package/lib/composables/useEditor.js +12 -9
  131. package/lib/composables/useToolbar.js +26 -19
  132. package/lib/directives/__tests__/outClick.test.js +6 -0
  133. package/lib/directives/outClick.js +19 -6
  134. package/lib/enums/Alignments.js +10 -1
  135. package/lib/enums/LinkDestinations.js +4 -0
  136. package/lib/enums/LinkTargets.js +4 -0
  137. package/lib/enums/TextSettings.js +3 -1
  138. package/lib/enums/index.js +2 -0
  139. package/lib/extensions/Alignment.js +22 -8
  140. package/lib/extensions/BackgroundColor.js +15 -7
  141. package/lib/extensions/DeviceManager.js +2 -5
  142. package/lib/extensions/FontColor.js +15 -7
  143. package/lib/extensions/FontFamily.js +26 -9
  144. package/lib/extensions/FontSize.js +33 -13
  145. package/lib/extensions/FontStyle.js +24 -14
  146. package/lib/extensions/FontWeight.js +25 -15
  147. package/lib/extensions/LineHeight.js +33 -29
  148. package/lib/extensions/Link.js +90 -0
  149. package/lib/extensions/StylePreset.js +20 -19
  150. package/lib/extensions/Superscript.js +5 -1
  151. package/lib/extensions/TextDecoration.js +46 -13
  152. package/lib/extensions/__tests__/Alignment.test.js +14 -9
  153. package/lib/extensions/__tests__/BackgroundColor.test.js +13 -8
  154. package/lib/extensions/__tests__/CaseStyle.test.js +4 -7
  155. package/lib/extensions/__tests__/FontColor.test.js +13 -8
  156. package/lib/extensions/__tests__/FontFamily.test.js +34 -10
  157. package/lib/extensions/__tests__/FontSize.test.js +16 -10
  158. package/lib/extensions/__tests__/FontStyle.test.js +13 -8
  159. package/lib/extensions/__tests__/FontWeight.test.js +21 -8
  160. package/lib/extensions/__tests__/LineHeight.test.js +25 -14
  161. package/lib/extensions/__tests__/Link.test.js +101 -0
  162. package/lib/extensions/__tests__/StylePreset.test.js +72 -10
  163. package/lib/extensions/__tests__/TextDecoration.test.js +53 -8
  164. package/lib/extensions/__tests__/__snapshots__/Alignment.test.js.snap +26 -2
  165. package/lib/extensions/__tests__/__snapshots__/BackgroundColor.test.js.snap +30 -1
  166. package/lib/extensions/__tests__/__snapshots__/FontColor.test.js.snap +18 -1
  167. package/lib/extensions/__tests__/__snapshots__/FontFamily.test.js.snap +88 -1
  168. package/lib/extensions/__tests__/__snapshots__/FontSize.test.js.snap +33 -2
  169. package/lib/extensions/__tests__/__snapshots__/FontStyle.test.js.snap +25 -4
  170. package/lib/extensions/__tests__/__snapshots__/FontWeight.test.js.snap +47 -1
  171. package/lib/extensions/__tests__/__snapshots__/LineHeight.test.js.snap +26 -2
  172. package/lib/extensions/__tests__/__snapshots__/Link.test.js.snap +225 -0
  173. package/lib/extensions/__tests__/__snapshots__/StylePreset.test.js.snap +6 -2
  174. package/lib/extensions/__tests__/__snapshots__/TextDecoration.test.js.snap +183 -3
  175. package/lib/extensions/core/CopyPasteProcessor.js +10 -0
  176. package/lib/extensions/core/NodeProcessor.js +1 -1
  177. package/lib/extensions/core/TextProcessor.js +11 -24
  178. package/lib/extensions/core/__tests__/NodeProcessor.test.js +4 -7
  179. package/lib/extensions/core/__tests__/SelectionProcessor.test.js +4 -7
  180. package/lib/extensions/core/__tests__/TextProcessor.test.js +139 -14
  181. package/lib/extensions/core/__tests__/__snapshots__/TextProcessor.test.js.snap +26 -0
  182. package/lib/extensions/core/index.js +11 -2
  183. package/lib/extensions/core/plugins/PastePlugin.js +57 -0
  184. package/lib/extensions/core/plugins/ProseMirrorPlugin.js +20 -0
  185. package/lib/extensions/core/plugins/index.js +1 -0
  186. package/lib/extensions/index.js +46 -34
  187. package/lib/extensions/list/List.js +5 -4
  188. package/lib/extensions/list/__tests__/List.test.js +6 -10
  189. package/lib/extensions/list/__tests__/__snapshots__/List.test.js.snap +60 -20
  190. package/lib/index.js +3 -0
  191. package/lib/injectionTokens.js +3 -1
  192. package/lib/services/ContentNormalizer.js +144 -28
  193. package/lib/services/ContextWidnow.js +23 -0
  194. package/lib/{__tests__/utils → services}/NodeFactory.js +5 -1
  195. package/lib/services/__tests__/ContentNormalizer.test.js +124 -8
  196. package/lib/services/__tests__/FavoriteColors.test.js +1 -1
  197. package/lib/services/index.js +2 -0
  198. package/lib/styles/content.css +108 -13
  199. package/lib/styles/helpers/offsets.css +16 -0
  200. package/lib/styles/variables.css +6 -0
  201. package/lib/utils/__tests__/__snapshots__/renderInlineSetting.test.js.snap +4 -4
  202. package/lib/utils/__tests__/convertAlignment.test.js +16 -0
  203. package/lib/utils/__tests__/convertFontSize.test.js +21 -0
  204. package/lib/utils/__tests__/convertLineHeight.test.js +21 -0
  205. package/lib/utils/convertAlignment.js +12 -0
  206. package/lib/utils/convertColor.js +1 -1
  207. package/lib/utils/convertFontSize.js +8 -0
  208. package/lib/utils/convertLineHeight.js +17 -0
  209. package/lib/utils/importIcon.js +7 -6
  210. package/lib/utils/index.js +4 -0
  211. package/lib/utils/isWysiwygContent.js +12 -0
  212. package/lib/utils/renderInlineSetting.js +1 -1
  213. package/package.json +26 -30
  214. package/config/webpack/example.config.js +0 -88
  215. package/config/webpack/lib.config.js +0 -44
  216. package/config/webpack/loaders/index.js +0 -6
  217. package/config/webpack/loaders/js-loader.js +0 -5
  218. package/config/webpack/loaders/style-loader.js +0 -9
  219. package/config/webpack/loaders/svg-loader.js +0 -4
  220. package/config/webpack/loaders/vue-loader.js +0 -4
  221. package/dist/wysiwyg.js +0 -2
  222. package/dist/wysiwyg.js.LICENSE.txt +0 -1
  223. package/lib/extensions/core/inputRules/closeDoubleQuote.js +0 -6
  224. package/lib/extensions/core/inputRules/closeSingleQuote.js +0 -6
  225. package/lib/extensions/core/inputRules/copyright.js +0 -6
  226. package/lib/extensions/core/inputRules/ellipsis.js +0 -6
  227. package/lib/extensions/core/inputRules/emDash.js +0 -6
  228. package/lib/extensions/core/inputRules/index.js +0 -9
  229. package/lib/extensions/core/inputRules/openDoubleQuote.js +0 -6
  230. package/lib/extensions/core/inputRules/openSingleQuote.js +0 -6
  231. package/lib/extensions/core/inputRules/registeredTrademark.js +0 -6
  232. package/lib/extensions/core/inputRules/trademark.js +0 -6
@@ -162,6 +162,37 @@ Object {
162
162
  }
163
163
  `;
164
164
 
165
+ exports[`parsing html should get value from rendered view 1`] = `
166
+ Object {
167
+ "content": Array [
168
+ Object {
169
+ "content": Array [
170
+ Object {
171
+ "marks": Array [
172
+ Object {
173
+ "attrs": Object {
174
+ "desktop": "30",
175
+ "mobile": "24",
176
+ "tablet": null,
177
+ },
178
+ "type": "font_size",
179
+ },
180
+ ],
181
+ "text": "lorem",
182
+ "type": "text",
183
+ },
184
+ Object {
185
+ "text": " ipsum",
186
+ "type": "text",
187
+ },
188
+ ],
189
+ "type": "paragraph",
190
+ },
191
+ ],
192
+ "type": "doc",
193
+ }
194
+ `;
195
+
165
196
  exports[`parsing html should get value from text 1`] = `
166
197
  Object {
167
198
  "content": Array [
@@ -234,6 +265,6 @@ Object {
234
265
  }
235
266
  `;
236
267
 
237
- exports[`rendering should render all devices 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-mobile-font-size: 12px; --zw-tablet-font-size: 14px; --zw-desktop-font-size: 16px;\\" class=\\"zw-style\\">hello world</span></p>"`;
268
+ exports[`rendering should render all devices 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-font-size-mobile:12px;--zw-font-size-tablet:14px;--zw-font-size-desktop:16px;\\" class=\\"zw-style\\">hello world</span></p>"`;
238
269
 
239
- exports[`rendering should render only desktop 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-desktop-font-size: 14px;\\" class=\\"zw-style\\">hello world</span></p>"`;
270
+ exports[`rendering should render only desktop 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-font-size-desktop:14px;\\" class=\\"zw-style\\">hello world</span></p>"`;
@@ -138,7 +138,7 @@ Object {
138
138
  }
139
139
  `;
140
140
 
141
- exports[`parsing html should get value from text 1`] = `
141
+ exports[`parsing html should get value from rendered view 1`] = `
142
142
  Object {
143
143
  "content": Array [
144
144
  Object {
@@ -167,7 +167,7 @@ Object {
167
167
  }
168
168
  `;
169
169
 
170
- exports[`parsing html should merge paragraph and text settings 1`] = `
170
+ exports[`parsing html should get value from text 1`] = `
171
171
  Object {
172
172
  "content": Array [
173
173
  Object {
@@ -176,7 +176,7 @@ Object {
176
176
  "marks": Array [
177
177
  Object {
178
178
  "attrs": Object {
179
- "italic": false,
179
+ "italic": true,
180
180
  },
181
181
  "type": "font_style",
182
182
  },
@@ -184,6 +184,27 @@ Object {
184
184
  "text": "lorem",
185
185
  "type": "text",
186
186
  },
187
+ Object {
188
+ "text": " ipsum",
189
+ "type": "text",
190
+ },
191
+ ],
192
+ "type": "paragraph",
193
+ },
194
+ ],
195
+ "type": "doc",
196
+ }
197
+ `;
198
+
199
+ exports[`parsing html should merge paragraph and text settings 1`] = `
200
+ Object {
201
+ "content": Array [
202
+ Object {
203
+ "content": Array [
204
+ Object {
205
+ "text": "lorem",
206
+ "type": "text",
207
+ },
187
208
  Object {
188
209
  "marks": Array [
189
210
  Object {
@@ -204,4 +225,4 @@ Object {
204
225
  }
205
226
  `;
206
227
 
207
- exports[`rendering should render html 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-font-style: italic;\\" class=\\"zw-style\\">hello world</span></p>"`;
228
+ exports[`rendering should render html 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-font-style:italic;\\" class=\\"zw-style\\">hello world</span></p>"`;
@@ -191,6 +191,35 @@ Object {
191
191
  }
192
192
  `;
193
193
 
194
+ exports[`parsing html should get value from rendered view 1`] = `
195
+ Object {
196
+ "content": Array [
197
+ Object {
198
+ "content": Array [
199
+ Object {
200
+ "marks": Array [
201
+ Object {
202
+ "attrs": Object {
203
+ "value": "700",
204
+ },
205
+ "type": "font_weight",
206
+ },
207
+ ],
208
+ "text": "lorem",
209
+ "type": "text",
210
+ },
211
+ Object {
212
+ "text": " ipsum",
213
+ "type": "text",
214
+ },
215
+ ],
216
+ "type": "paragraph",
217
+ },
218
+ ],
219
+ "type": "doc",
220
+ }
221
+ `;
222
+
194
223
  exports[`parsing html should get value from strong tag 1`] = `
195
224
  Object {
196
225
  "content": Array [
@@ -249,6 +278,23 @@ Object {
249
278
  }
250
279
  `;
251
280
 
281
+ exports[`parsing html should ignore invalid value 1`] = `
282
+ Object {
283
+ "content": Array [
284
+ Object {
285
+ "content": Array [
286
+ Object {
287
+ "text": "lorem ipsum",
288
+ "type": "text",
289
+ },
290
+ ],
291
+ "type": "paragraph",
292
+ },
293
+ ],
294
+ "type": "doc",
295
+ }
296
+ `;
297
+
252
298
  exports[`parsing html should merge paragraph and text settings 1`] = `
253
299
  Object {
254
300
  "content": Array [
@@ -286,4 +332,4 @@ Object {
286
332
  }
287
333
  `;
288
334
 
289
- exports[`rendering should render html 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-font-weight: 700;\\" class=\\"zw-style\\">hello world</span></p>"`;
335
+ exports[`rendering should render html 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-font-weight:700;\\" class=\\"zw-style\\">hello world</span></p>"`;
@@ -24,6 +24,30 @@ Object {
24
24
  }
25
25
  `;
26
26
 
27
+ exports[`parsing html should get value from rendered view 1`] = `
28
+ Object {
29
+ "content": Array [
30
+ Object {
31
+ "attrs": Object {
32
+ "line_height": Object {
33
+ "desktop": "1.4",
34
+ "mobile": "1.2",
35
+ "tablet": null,
36
+ },
37
+ },
38
+ "content": Array [
39
+ Object {
40
+ "text": "test",
41
+ "type": "text",
42
+ },
43
+ ],
44
+ "type": "paragraph",
45
+ },
46
+ ],
47
+ "type": "doc",
48
+ }
49
+ `;
50
+
27
51
  exports[`parsing html should get value from text in px units with font size 1`] = `
28
52
  Object {
29
53
  "content": Array [
@@ -116,6 +140,6 @@ Object {
116
140
  }
117
141
  `;
118
142
 
119
- exports[`rendering should render all devices 1`] = `"<p class=\\"zw-style\\" style=\\"--zw-mobile-line-height: 1.21; --zw-tablet-line-height: 1.4; --zw-desktop-line-height: 1.6;\\">hello world</p>"`;
143
+ exports[`rendering should render all devices 1`] = `"<p class=\\"zw-style\\" style=\\"--zw-line-height-mobile:1.21;--zw-line-height-tablet:1.4;--zw-line-height-desktop:1.6;\\">hello world</p>"`;
120
144
 
121
- exports[`rendering should render only desktop 1`] = `"<p class=\\"zw-style\\" style=\\"--zw-desktop-line-height: 1.3;\\">hello world</p>"`;
145
+ exports[`rendering should render only desktop 1`] = `"<p class=\\"zw-style\\" style=\\"--zw-line-height-desktop:1.3;\\">hello world</p>"`;
@@ -0,0 +1,225 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`apply link should apply link 1`] = `
4
+ Object {
5
+ "content": Array [
6
+ Object {
7
+ "content": Array [
8
+ Object {
9
+ "marks": Array [
10
+ Object {
11
+ "attrs": Object {
12
+ "destination": "url",
13
+ "href": "/test",
14
+ "target": "_self",
15
+ },
16
+ "type": "link",
17
+ },
18
+ ],
19
+ "text": "Hello world link",
20
+ "type": "text",
21
+ },
22
+ ],
23
+ "type": "paragraph",
24
+ },
25
+ ],
26
+ "type": "doc",
27
+ }
28
+ `;
29
+
30
+ exports[`apply link should apply link when no selected text 1`] = `
31
+ Object {
32
+ "content": Array [
33
+ Object {
34
+ "content": Array [
35
+ Object {
36
+ "text": "Some ",
37
+ "type": "text",
38
+ },
39
+ Object {
40
+ "marks": Array [
41
+ Object {
42
+ "attrs": Object {
43
+ "destination": "url",
44
+ "href": "/test",
45
+ "target": "_self",
46
+ },
47
+ "type": "link",
48
+ },
49
+ ],
50
+ "text": "Hello world link",
51
+ "type": "text",
52
+ },
53
+ Object {
54
+ "text": " text",
55
+ "type": "text",
56
+ },
57
+ ],
58
+ "type": "paragraph",
59
+ },
60
+ ],
61
+ "type": "doc",
62
+ }
63
+ `;
64
+
65
+ exports[`parse html should add default self target for links from html without target 1`] = `
66
+ Object {
67
+ "content": Array [
68
+ Object {
69
+ "content": Array [
70
+ Object {
71
+ "marks": Array [
72
+ Object {
73
+ "attrs": Object {
74
+ "destination": "url",
75
+ "href": "https://hello.world",
76
+ "target": "_self",
77
+ },
78
+ "type": "link",
79
+ },
80
+ ],
81
+ "text": "Hello",
82
+ "type": "text",
83
+ },
84
+ ],
85
+ "type": "paragraph",
86
+ },
87
+ ],
88
+ "type": "doc",
89
+ }
90
+ `;
91
+
92
+ exports[`parse html should parse block links from html 1`] = `
93
+ Object {
94
+ "content": Array [
95
+ Object {
96
+ "content": Array [
97
+ Object {
98
+ "marks": Array [
99
+ Object {
100
+ "attrs": Object {
101
+ "destination": "block",
102
+ "href": 987654,
103
+ "target": "_blank",
104
+ },
105
+ "type": "link",
106
+ },
107
+ ],
108
+ "text": "Hello",
109
+ "type": "text",
110
+ },
111
+ ],
112
+ "type": "paragraph",
113
+ },
114
+ ],
115
+ "type": "doc",
116
+ }
117
+ `;
118
+
119
+ exports[`parse html should parse link target 1`] = `
120
+ Object {
121
+ "content": Array [
122
+ Object {
123
+ "content": Array [
124
+ Object {
125
+ "marks": Array [
126
+ Object {
127
+ "attrs": Object {
128
+ "destination": "url",
129
+ "href": "https://hello.world",
130
+ "target": "_blank",
131
+ },
132
+ "type": "link",
133
+ },
134
+ ],
135
+ "text": "Hello",
136
+ "type": "text",
137
+ },
138
+ ],
139
+ "type": "paragraph",
140
+ },
141
+ ],
142
+ "type": "doc",
143
+ }
144
+ `;
145
+
146
+ exports[`parse html should parse not valid value 1`] = `
147
+ Object {
148
+ "content": Array [
149
+ Object {
150
+ "content": Array [
151
+ Object {
152
+ "marks": Array [
153
+ Object {
154
+ "attrs": Object {
155
+ "destination": "url",
156
+ "href": "934238",
157
+ "target": "_self",
158
+ },
159
+ "type": "link",
160
+ },
161
+ ],
162
+ "text": "Hello",
163
+ "type": "text",
164
+ },
165
+ ],
166
+ "type": "paragraph",
167
+ },
168
+ ],
169
+ "type": "doc",
170
+ }
171
+ `;
172
+
173
+ exports[`parse html should parse url links from html 1`] = `
174
+ Object {
175
+ "content": Array [
176
+ Object {
177
+ "content": Array [
178
+ Object {
179
+ "marks": Array [
180
+ Object {
181
+ "attrs": Object {
182
+ "destination": "url",
183
+ "href": "https://hello.world",
184
+ "target": "_blank",
185
+ },
186
+ "type": "link",
187
+ },
188
+ ],
189
+ "text": "Hello",
190
+ "type": "text",
191
+ },
192
+ ],
193
+ "type": "paragraph",
194
+ },
195
+ ],
196
+ "type": "doc",
197
+ }
198
+ `;
199
+
200
+ exports[`parse html should parse value for relative url 1`] = `
201
+ Object {
202
+ "content": Array [
203
+ Object {
204
+ "content": Array [
205
+ Object {
206
+ "marks": Array [
207
+ Object {
208
+ "attrs": Object {
209
+ "destination": "url",
210
+ "href": "/hello-world",
211
+ "target": "_self",
212
+ },
213
+ "type": "link",
214
+ },
215
+ ],
216
+ "text": "Hello",
217
+ "type": "text",
218
+ },
219
+ ],
220
+ "type": "paragraph",
221
+ },
222
+ ],
223
+ "type": "doc",
224
+ }
225
+ `;
@@ -349,7 +349,9 @@ Object {
349
349
  Object {
350
350
  "attrs": Object {
351
351
  "alignment": null,
352
- "preset": null,
352
+ "preset": Object {
353
+ "id": "regular-1",
354
+ },
353
355
  },
354
356
  "content": Array [
355
357
  Object {
@@ -385,7 +387,9 @@ Object {
385
387
  Object {
386
388
  "attrs": Object {
387
389
  "alignment": null,
388
- "preset": null,
390
+ "preset": Object {
391
+ "id": "regular-1",
392
+ },
389
393
  },
390
394
  "content": Array [
391
395
  Object {
@@ -225,6 +225,36 @@ Object {
225
225
  }
226
226
  `;
227
227
 
228
+ exports[`parsing html should get both from rendered view 1`] = `
229
+ Object {
230
+ "content": Array [
231
+ Object {
232
+ "content": Array [
233
+ Object {
234
+ "marks": Array [
235
+ Object {
236
+ "attrs": Object {
237
+ "strike_through": true,
238
+ "underline": true,
239
+ },
240
+ "type": "text_decoration",
241
+ },
242
+ ],
243
+ "text": "lorem",
244
+ "type": "text",
245
+ },
246
+ Object {
247
+ "text": " ipsum",
248
+ "type": "text",
249
+ },
250
+ ],
251
+ "type": "paragraph",
252
+ },
253
+ ],
254
+ "type": "doc",
255
+ }
256
+ `;
257
+
228
258
  exports[`parsing html should get both from text 1`] = `
229
259
  Object {
230
260
  "content": Array [
@@ -255,6 +285,36 @@ Object {
255
285
  }
256
286
  `;
257
287
 
288
+ exports[`parsing html should get both from text with property shorthand 1`] = `
289
+ Object {
290
+ "content": Array [
291
+ Object {
292
+ "content": Array [
293
+ Object {
294
+ "marks": Array [
295
+ Object {
296
+ "attrs": Object {
297
+ "strike_through": true,
298
+ "underline": true,
299
+ },
300
+ "type": "text_decoration",
301
+ },
302
+ ],
303
+ "text": "lorem",
304
+ "type": "text",
305
+ },
306
+ Object {
307
+ "text": " ipsum",
308
+ "type": "text",
309
+ },
310
+ ],
311
+ "type": "paragraph",
312
+ },
313
+ ],
314
+ "type": "doc",
315
+ }
316
+ `;
317
+
258
318
  exports[`parsing html should get strike through from paragraph 1`] = `
259
319
  Object {
260
320
  "content": Array [
@@ -281,6 +341,36 @@ Object {
281
341
  }
282
342
  `;
283
343
 
344
+ exports[`parsing html should get strike through from rendered view 1`] = `
345
+ Object {
346
+ "content": Array [
347
+ Object {
348
+ "content": Array [
349
+ Object {
350
+ "marks": Array [
351
+ Object {
352
+ "attrs": Object {
353
+ "strike_through": true,
354
+ "underline": false,
355
+ },
356
+ "type": "text_decoration",
357
+ },
358
+ ],
359
+ "text": "lorem",
360
+ "type": "text",
361
+ },
362
+ Object {
363
+ "text": " ipsum",
364
+ "type": "text",
365
+ },
366
+ ],
367
+ "type": "paragraph",
368
+ },
369
+ ],
370
+ "type": "doc",
371
+ }
372
+ `;
373
+
284
374
  exports[`parsing html should get strike through from text 1`] = `
285
375
  Object {
286
376
  "content": Array [
@@ -337,6 +427,36 @@ Object {
337
427
  }
338
428
  `;
339
429
 
430
+ exports[`parsing html should get underline from rendered view 1`] = `
431
+ Object {
432
+ "content": Array [
433
+ Object {
434
+ "content": Array [
435
+ Object {
436
+ "marks": Array [
437
+ Object {
438
+ "attrs": Object {
439
+ "strike_through": false,
440
+ "underline": true,
441
+ },
442
+ "type": "text_decoration",
443
+ },
444
+ ],
445
+ "text": "lorem",
446
+ "type": "text",
447
+ },
448
+ Object {
449
+ "text": " ipsum",
450
+ "type": "text",
451
+ },
452
+ ],
453
+ "type": "paragraph",
454
+ },
455
+ ],
456
+ "type": "doc",
457
+ }
458
+ `;
459
+
340
460
  exports[`parsing html should get underline from text 1`] = `
341
461
  Object {
342
462
  "content": Array [
@@ -406,8 +526,68 @@ Object {
406
526
  }
407
527
  `;
408
528
 
409
- exports[`rendering should render both 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-text-decoration: underline line-through;\\" class=\\"zw-style\\">hello world</span></p>"`;
529
+ exports[`parsing html should parse strike through from tag 1`] = `
530
+ Object {
531
+ "content": Array [
532
+ Object {
533
+ "content": Array [
534
+ Object {
535
+ "marks": Array [
536
+ Object {
537
+ "attrs": Object {
538
+ "strike_through": true,
539
+ "underline": false,
540
+ },
541
+ "type": "text_decoration",
542
+ },
543
+ ],
544
+ "text": "lorem",
545
+ "type": "text",
546
+ },
547
+ Object {
548
+ "text": " ipsum",
549
+ "type": "text",
550
+ },
551
+ ],
552
+ "type": "paragraph",
553
+ },
554
+ ],
555
+ "type": "doc",
556
+ }
557
+ `;
558
+
559
+ exports[`parsing html should parse underline from tag 1`] = `
560
+ Object {
561
+ "content": Array [
562
+ Object {
563
+ "content": Array [
564
+ Object {
565
+ "marks": Array [
566
+ Object {
567
+ "attrs": Object {
568
+ "strike_through": false,
569
+ "underline": true,
570
+ },
571
+ "type": "text_decoration",
572
+ },
573
+ ],
574
+ "text": "lorem",
575
+ "type": "text",
576
+ },
577
+ Object {
578
+ "text": " ipsum",
579
+ "type": "text",
580
+ },
581
+ ],
582
+ "type": "paragraph",
583
+ },
584
+ ],
585
+ "type": "doc",
586
+ }
587
+ `;
588
+
589
+ exports[`rendering should render both 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-text-decoration:underline line-through;\\" class=\\"zw-style\\">hello world</span></p>"`;
410
590
 
411
- exports[`rendering should render strike through only 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-text-decoration: line-through;\\" class=\\"zw-style\\">hello world</span></p>"`;
591
+ exports[`rendering should render strike through only 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-text-decoration:line-through;\\" class=\\"zw-style\\">hello world</span></p>"`;
412
592
 
413
- exports[`rendering should render underline only 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-text-decoration: underline;\\" class=\\"zw-style\\">hello world</span></p>"`;
593
+ exports[`rendering should render underline only 1`] = `"<p class=\\"zw-style\\"><span style=\\"--zw-text-decoration:underline;\\" class=\\"zw-style\\">hello world</span></p>"`;
@@ -0,0 +1,10 @@
1
+ import { Extension } from '@tiptap/vue-2';
2
+ import { PastePlugin } from './plugins';
3
+
4
+ export const CopyPasteProcessor = Extension.create({
5
+ name: 'copy_paste_processor',
6
+
7
+ addProseMirrorPlugins() {
8
+ return [PastePlugin.create()];
9
+ }
10
+ });
@@ -1,5 +1,5 @@
1
1
  import { Extension } from '@tiptap/vue-2';
2
- import { computed } from '@vue/composition-api';
2
+ import { computed } from 'vue';
3
3
  import { createCommand } from '../../utils';
4
4
  import { NodeTypes } from '../../enums';
5
5