@zipify/wysiwyg 1.0.0-dev.4 → 1.0.0-dev.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 (95) hide show
  1. package/.eslintignore +1 -0
  2. package/.release-it.json +0 -1
  3. package/.stylelintignore +1 -0
  4. package/README.md +3 -1
  5. package/config/jest/setupTests.js +7 -1
  6. package/config/webpack/example.config.js +2 -0
  7. package/config/webpack/lib.config.js +40 -0
  8. package/config/webpack/loaders/style-loader.js +3 -1
  9. package/config/webpack/loaders/svg-loader.js +1 -1
  10. package/dist/wysiwyg.css +837 -0
  11. package/dist/wysiwyg.js +2 -0
  12. package/dist/wysiwyg.js.LICENSE.txt +1 -0
  13. package/example/ExampleApp.vue +39 -31
  14. package/example/example.js +26 -0
  15. package/example/presets.js +2 -0
  16. package/lib/Wysiwyg.vue +6 -0
  17. package/lib/assets/icons/alignment-center.svg +3 -0
  18. package/lib/assets/icons/alignment-justify.svg +3 -0
  19. package/lib/assets/icons/alignment-left.svg +3 -0
  20. package/lib/assets/icons/alignment-right.svg +3 -0
  21. package/lib/assets/icons/arrow.svg +3 -0
  22. package/lib/assets/icons/background-color.svg +3 -0
  23. package/lib/assets/icons/case-style.svg +3 -0
  24. package/lib/assets/icons/font-color.svg +5 -0
  25. package/lib/assets/icons/italic.svg +3 -0
  26. package/lib/assets/icons/line-height.svg +3 -0
  27. package/lib/assets/icons/list-circle.svg +3 -0
  28. package/lib/assets/icons/list-decimal.svg +3 -0
  29. package/lib/assets/icons/list-disc.svg +3 -0
  30. package/lib/assets/icons/list-latin.svg +3 -0
  31. package/lib/assets/icons/list-roman.svg +3 -0
  32. package/lib/assets/icons/list-square.svg +3 -0
  33. package/lib/assets/icons/remove-format.svg +3 -0
  34. package/lib/assets/icons/reset-styles.svg +3 -0
  35. package/lib/assets/icons/strike-through.svg +3 -0
  36. package/lib/assets/icons/superscript.svg +3 -0
  37. package/lib/assets/icons/underline.svg +3 -0
  38. package/lib/components/base/Icon.vue +17 -9
  39. package/lib/components/base/__tests__/Icon.test.js +6 -13
  40. package/lib/composables/__tests__/useEditor.test.js +12 -3
  41. package/lib/composables/useEditor.js +12 -5
  42. package/lib/extensions/Alignment.js +6 -0
  43. package/lib/extensions/BackgroundColor.js +8 -1
  44. package/lib/extensions/FontColor.js +8 -1
  45. package/lib/extensions/FontFamily.js +7 -0
  46. package/lib/extensions/FontSize.js +12 -0
  47. package/lib/extensions/FontStyle.js +11 -0
  48. package/lib/extensions/FontWeight.js +25 -1
  49. package/lib/extensions/LineHeight.js +17 -0
  50. package/lib/extensions/StylePreset.js +30 -3
  51. package/lib/extensions/TextDecoration.js +11 -0
  52. package/lib/extensions/__tests__/Alignment.test.js +22 -1
  53. package/lib/extensions/__tests__/BackgroundColor.test.js +30 -1
  54. package/lib/extensions/__tests__/CaseStyle.test.js +4 -1
  55. package/lib/extensions/__tests__/FontColor.test.js +30 -1
  56. package/lib/extensions/__tests__/FontFamily.test.js +30 -1
  57. package/lib/extensions/__tests__/FontSize.test.js +30 -1
  58. package/lib/extensions/__tests__/FontStyle.test.js +38 -1
  59. package/lib/extensions/__tests__/FontWeight.test.js +58 -1
  60. package/lib/extensions/__tests__/LineHeight.test.js +41 -1
  61. package/lib/extensions/__tests__/StylePreset.test.js +76 -1
  62. package/lib/extensions/__tests__/TextDecoration.test.js +63 -1
  63. package/lib/extensions/__tests__/__snapshots__/Alignment.test.js.snap +44 -0
  64. package/lib/extensions/__tests__/__snapshots__/BackgroundColor.test.js.snap +91 -0
  65. package/lib/extensions/__tests__/__snapshots__/FontColor.test.js.snap +91 -0
  66. package/lib/extensions/__tests__/__snapshots__/FontFamily.test.js.snap +91 -0
  67. package/lib/extensions/__tests__/__snapshots__/FontSize.test.js.snap +99 -0
  68. package/lib/extensions/__tests__/__snapshots__/FontStyle.test.js.snap +120 -0
  69. package/lib/extensions/__tests__/__snapshots__/FontWeight.test.js.snap +149 -0
  70. package/lib/extensions/__tests__/__snapshots__/LineHeight.test.js.snap +92 -0
  71. package/lib/extensions/__tests__/__snapshots__/StylePreset.test.js.snap +167 -2
  72. package/lib/extensions/__tests__/__snapshots__/TextDecoration.test.js.snap +207 -0
  73. package/lib/extensions/core/__tests__/NodeProcessor.test.js +4 -1
  74. package/lib/extensions/core/__tests__/SelectionProcessor.test.js +9 -4
  75. package/lib/extensions/core/__tests__/TextProcessor.test.js +4 -1
  76. package/lib/extensions/index.js +1 -0
  77. package/lib/extensions/list/List.js +34 -0
  78. package/lib/extensions/list/__tests__/List.test.js +115 -3
  79. package/lib/extensions/list/__tests__/__snapshots__/List.test.js.snap +457 -6
  80. package/lib/services/ContentNormalizer.js +113 -0
  81. package/lib/services/Storage.js +1 -13
  82. package/lib/services/__tests__/ContentNormalizer.test.js +41 -0
  83. package/lib/services/__tests__/FavoriteColors.test.js +20 -0
  84. package/lib/services/__tests__/JsonSerializer.test.js +23 -0
  85. package/lib/services/__tests__/Storage.test.js +79 -0
  86. package/lib/services/index.js +1 -0
  87. package/lib/utils/__tests__/convertColor.test.js +19 -0
  88. package/lib/utils/__tests__/createKeyboardShortcut.test.js +25 -0
  89. package/lib/utils/__tests__/renderInlineSetting.test.js +26 -0
  90. package/lib/utils/convertColor.js +7 -0
  91. package/lib/utils/importIcon.js +12 -0
  92. package/lib/utils/index.js +2 -0
  93. package/lib/utils/renderInlineSetting.js +1 -1
  94. package/package.json +5 -6
  95. package/lib/assets/icons.svg +0 -69
package/.eslintignore ADDED
@@ -0,0 +1 @@
1
+ dist/**
package/.release-it.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "npm": {
3
3
  "publish": true,
4
- "tag": "dev",
5
4
  "publishArgs": ["--access public"]
6
5
  },
7
6
  "git": {
@@ -0,0 +1 @@
1
+ dist/**
package/README.md CHANGED
@@ -56,6 +56,7 @@ export default {
56
56
  | value | true | - | |
57
57
  | presets | true | - | Array of [Style-Presets](#Style-Preset) |
58
58
  | default-preset-id | true | - | Id of any preset |
59
+ | base-preset-class | true | - | Base class of preset |
59
60
  | make-preset-variable | true | - | [Generates](#Generate-Preset-Variable) name of preset variable |
60
61
  | fonts | true | - | Array of [fonts](#Font) |
61
62
  | device | false | `'desktop'` | Active device type. can be 'mobile', 'tablet' or 'desktop' |
@@ -72,6 +73,7 @@ interface StylePreset {
72
73
  name: string;
73
74
  hidden: boolean;
74
75
  node?: PresetNode;
76
+ fallbackClass?: string;
75
77
  common: CommonSettings;
76
78
  desktop: DeviceSettings;
77
79
  tablet: DeviceSettings;
@@ -88,7 +90,7 @@ interface CommonSettings {
88
90
  font_weight: string;
89
91
  color: string;
90
92
  font_style: 'italic' | 'normal';
91
- text_decoration: 'none' | 'underscore';
93
+ text_decoration: 'none' | 'underline';
92
94
  }
93
95
 
94
96
  interface DeviceSettings {
@@ -1,8 +1,10 @@
1
+ /* eslint-disable no-console */
2
+
1
3
  import Vue from 'vue';
2
4
  import CompositionAPI from '@vue/composition-api';
3
5
 
4
- // eslint-disable-next-line no-console
5
6
  console.warn = jest.fn();
7
+ console.error = jest.fn();
6
8
 
7
9
  Vue.use(CompositionAPI);
8
10
 
@@ -30,3 +32,7 @@ Range.prototype.getClientRects = () => ({
30
32
  length: 0,
31
33
  [Symbol.iterator]: jest.fn()
32
34
  });
35
+
36
+ jest.mock('../../lib/utils/importIcon', () => ({
37
+ importIcon: () => ''
38
+ }));
@@ -2,6 +2,7 @@ const path = require('path');
2
2
  const { DefinePlugin } = require('webpack');
3
3
  const HtmlWebpackPlugin = require('html-webpack-plugin');
4
4
  const { VueLoaderPlugin } = require('vue-loader');
5
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
5
6
  const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
6
7
  const { resolvePath, isDevelopment } = require('./settings');
7
8
  const loaders = require('./loaders');
@@ -74,6 +75,7 @@ module.exports = {
74
75
 
75
76
  plugins: [
76
77
  new VueLoaderPlugin(),
78
+ new MiniCssExtractPlugin(),
77
79
  new HtmlWebpackPlugin({
78
80
  title: 'ZipifyWysiwyg',
79
81
  template: resolvePath('./example/example.html')
@@ -0,0 +1,40 @@
1
+ const { VueLoaderPlugin } = require('vue-loader');
2
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
3
+ const { resolvePath } = require('./settings');
4
+ const loaders = require('./loaders');
5
+
6
+ module.exports = {
7
+ mode: 'production',
8
+ entry: resolvePath('./lib/index.js'),
9
+
10
+ output: {
11
+ clean: true,
12
+ path: resolvePath('./dist'),
13
+ filename: 'wysiwyg.js',
14
+ library: { type: 'commonjs2' }
15
+ },
16
+
17
+ resolve: {
18
+ extensions: ['*', '.js', '.vue', '.json']
19
+ },
20
+
21
+ module: {
22
+ rules: [
23
+ loaders.style,
24
+ loaders.js,
25
+ loaders.svg,
26
+ loaders.vue
27
+ ]
28
+ },
29
+
30
+ externals: {
31
+ vue: { commonjs2: 'vue' },
32
+ '@vue/composition-api': { commonjs2: '@vue/composition-api' },
33
+ 'zipify-colorpicker': { commonjs2: 'zipify-colorpicker' }
34
+ },
35
+
36
+ plugins: [
37
+ new VueLoaderPlugin(),
38
+ new MiniCssExtractPlugin({ filename: 'wysiwyg.css' })
39
+ ]
40
+ };
@@ -1,7 +1,9 @@
1
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
2
+
1
3
  module.exports = {
2
4
  test: /\.s?css$/,
3
5
  use: [
4
- 'vue-style-loader',
6
+ MiniCssExtractPlugin.loader,
5
7
  'css-loader'
6
8
  ]
7
9
  };
@@ -1,4 +1,4 @@
1
1
  module.exports = {
2
2
  test: /\.svg$/,
3
- type: 'asset/resource'
3
+ type: 'asset/source'
4
4
  };