@pie-lib/editable-html 11.21.3-next.2 → 11.21.4-next.0

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 (180) hide show
  1. package/CHANGELOG.md +6 -76
  2. package/lib/__tests__/editor-utils.test.js +164 -0
  3. package/lib/__tests__/serialization.test.js +242 -0
  4. package/lib/__tests__/utils.js +79 -0
  5. package/lib/block-tags.js +3 -4
  6. package/lib/block-tags.js.map +1 -1
  7. package/lib/constants.js +4 -7
  8. package/lib/constants.js.map +1 -1
  9. package/lib/editor.js +351 -482
  10. package/lib/editor.js.map +1 -1
  11. package/lib/index.js +19 -80
  12. package/lib/index.js.map +1 -1
  13. package/lib/parse-html.js +8 -8
  14. package/lib/parse-html.js.map +1 -1
  15. package/lib/plugins/characters/custom-popper.js +29 -45
  16. package/lib/plugins/characters/custom-popper.js.map +1 -1
  17. package/lib/plugins/characters/index.js +24 -64
  18. package/lib/plugins/characters/index.js.map +1 -1
  19. package/lib/plugins/characters/utils.js +4 -7
  20. package/lib/plugins/characters/utils.js.map +1 -1
  21. package/lib/plugins/css/icons/index.js +14 -26
  22. package/lib/plugins/css/icons/index.js.map +1 -1
  23. package/lib/plugins/css/index.js +35 -94
  24. package/lib/plugins/css/index.js.map +1 -1
  25. package/lib/plugins/customPlugin/index.js +11 -27
  26. package/lib/plugins/customPlugin/index.js.map +1 -1
  27. package/lib/plugins/html/icons/index.js +18 -26
  28. package/lib/plugins/html/icons/index.js.map +1 -1
  29. package/lib/plugins/html/index.js +5 -14
  30. package/lib/plugins/html/index.js.map +1 -1
  31. package/lib/plugins/image/__tests__/component.test.js +96 -0
  32. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +131 -0
  33. package/lib/plugins/image/__tests__/image-toolbar.test.js +22 -0
  34. package/lib/plugins/image/__tests__/index.test.js +90 -0
  35. package/lib/plugins/image/__tests__/insert-image-handler.test.js +112 -0
  36. package/lib/plugins/image/__tests__/mock-change.js +22 -0
  37. package/lib/plugins/image/alt-dialog.js +21 -50
  38. package/lib/plugins/image/alt-dialog.js.map +1 -1
  39. package/lib/plugins/image/component.js +119 -195
  40. package/lib/plugins/image/component.js.map +1 -1
  41. package/lib/plugins/image/image-toolbar.js +49 -89
  42. package/lib/plugins/image/image-toolbar.js.map +1 -1
  43. package/lib/plugins/image/index.js +7 -47
  44. package/lib/plugins/image/index.js.map +1 -1
  45. package/lib/plugins/image/insert-image-handler.js +11 -32
  46. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  47. package/lib/plugins/index.js +47 -107
  48. package/lib/plugins/index.js.map +1 -1
  49. package/lib/plugins/list/__tests__/index.test.js +64 -0
  50. package/lib/plugins/list/index.js +28 -74
  51. package/lib/plugins/list/index.js.map +1 -1
  52. package/lib/plugins/math/__tests__/index.test.js +284 -0
  53. package/lib/plugins/math/index.js +65 -117
  54. package/lib/plugins/math/index.js.map +1 -1
  55. package/lib/plugins/media/__tests__/index.test.js +69 -0
  56. package/lib/plugins/media/index.js +28 -85
  57. package/lib/plugins/media/index.js.map +1 -1
  58. package/lib/plugins/media/media-dialog.js +193 -308
  59. package/lib/plugins/media/media-dialog.js.map +1 -1
  60. package/lib/plugins/media/media-toolbar.js +41 -66
  61. package/lib/plugins/media/media-toolbar.js.map +1 -1
  62. package/lib/plugins/media/media-wrapper.js +21 -50
  63. package/lib/plugins/media/media-wrapper.js.map +1 -1
  64. package/lib/plugins/rendering/index.js +6 -16
  65. package/lib/plugins/rendering/index.js.map +1 -1
  66. package/lib/plugins/respArea/drag-in-the-blank/choice.js +234 -252
  67. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  68. package/lib/plugins/respArea/drag-in-the-blank/index.js +18 -60
  69. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  70. package/lib/plugins/respArea/drag-in-the-blank/utils.js +38 -0
  71. package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +1 -0
  72. package/lib/plugins/respArea/explicit-constructed-response/index.js +4 -11
  73. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  74. package/lib/plugins/respArea/icons/index.js +23 -46
  75. package/lib/plugins/respArea/icons/index.js.map +1 -1
  76. package/lib/plugins/respArea/index.js +6 -60
  77. package/lib/plugins/respArea/index.js.map +1 -1
  78. package/lib/plugins/respArea/inline-dropdown/index.js +3 -11
  79. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  80. package/lib/plugins/respArea/math-templated/index.js +92 -110
  81. package/lib/plugins/respArea/math-templated/index.js.map +1 -1
  82. package/lib/plugins/respArea/utils.js +13 -43
  83. package/lib/plugins/respArea/utils.js.map +1 -1
  84. package/lib/plugins/table/CustomTablePlugin.js +25 -42
  85. package/lib/plugins/table/CustomTablePlugin.js.map +1 -1
  86. package/lib/plugins/table/__tests__/index.test.js +416 -0
  87. package/lib/plugins/table/__tests__/table-toolbar.test.js +81 -0
  88. package/lib/plugins/table/icons/index.js +22 -36
  89. package/lib/plugins/table/icons/index.js.map +1 -1
  90. package/lib/plugins/table/index.js +49 -119
  91. package/lib/plugins/table/index.js.map +1 -1
  92. package/lib/plugins/table/table-toolbar.js +38 -87
  93. package/lib/plugins/table/table-toolbar.js.map +1 -1
  94. package/lib/plugins/textAlign/icons/index.js +26 -65
  95. package/lib/plugins/textAlign/icons/index.js.map +1 -1
  96. package/lib/plugins/textAlign/index.js +1 -9
  97. package/lib/plugins/textAlign/index.js.map +1 -1
  98. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +154 -0
  99. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +47 -0
  100. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +112 -0
  101. package/lib/plugins/toolbar/__tests__/toolbar.test.js +118 -0
  102. package/lib/plugins/toolbar/default-toolbar.js +31 -80
  103. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  104. package/lib/plugins/toolbar/done-button.js +17 -35
  105. package/lib/plugins/toolbar/done-button.js.map +1 -1
  106. package/lib/plugins/toolbar/editor-and-toolbar.js +175 -203
  107. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  108. package/lib/plugins/toolbar/index.js +1 -6
  109. package/lib/plugins/toolbar/index.js.map +1 -1
  110. package/lib/plugins/toolbar/toolbar-buttons.js +60 -109
  111. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  112. package/lib/plugins/toolbar/toolbar.js +94 -163
  113. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  114. package/lib/plugins/utils.js +6 -26
  115. package/lib/plugins/utils.js.map +1 -1
  116. package/lib/serialization.js +48 -154
  117. package/lib/serialization.js.map +1 -1
  118. package/lib/shared/alert-dialog.js +36 -43
  119. package/lib/theme.js +2 -3
  120. package/lib/theme.js.map +1 -1
  121. package/package.json +18 -22
  122. package/src/__tests__/editor-utils.test.js +162 -0
  123. package/src/__tests__/utils.js +1 -1
  124. package/src/editor.jsx +175 -153
  125. package/src/index.jsx +0 -3
  126. package/src/plugins/characters/custom-popper.js +25 -25
  127. package/src/plugins/characters/index.jsx +15 -5
  128. package/src/plugins/css/icons/index.jsx +11 -13
  129. package/src/plugins/css/index.jsx +16 -11
  130. package/src/plugins/html/icons/index.jsx +17 -14
  131. package/src/plugins/image/__tests__/component.test.jsx +61 -29
  132. package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +69 -17
  133. package/src/plugins/image/__tests__/image-toolbar.test.jsx +6 -4
  134. package/src/plugins/image/alt-dialog.jsx +9 -8
  135. package/src/plugins/image/component.jsx +68 -92
  136. package/src/plugins/image/image-toolbar.jsx +31 -28
  137. package/src/plugins/image/index.jsx +1 -1
  138. package/src/plugins/index.jsx +12 -10
  139. package/src/plugins/math/__tests__/index.test.jsx +45 -26
  140. package/src/plugins/math/index.jsx +1 -1
  141. package/src/plugins/media/index.jsx +6 -5
  142. package/src/plugins/media/media-dialog.js +65 -76
  143. package/src/plugins/media/media-toolbar.jsx +32 -33
  144. package/src/plugins/media/media-wrapper.jsx +10 -13
  145. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +240 -167
  146. package/src/plugins/respArea/drag-in-the-blank/index.jsx +27 -56
  147. package/src/plugins/respArea/drag-in-the-blank/utils.js +14 -0
  148. package/src/plugins/respArea/icons/index.jsx +16 -16
  149. package/src/plugins/respArea/math-templated/index.jsx +88 -89
  150. package/src/plugins/respArea/utils.jsx +5 -3
  151. package/src/plugins/table/__tests__/table-toolbar.test.jsx +40 -7
  152. package/src/plugins/table/icons/index.jsx +16 -16
  153. package/src/plugins/table/index.jsx +35 -19
  154. package/src/plugins/table/table-toolbar.jsx +18 -19
  155. package/src/plugins/textAlign/icons/index.jsx +13 -4
  156. package/src/plugins/textAlign/index.jsx +0 -3
  157. package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +102 -69
  158. package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +14 -11
  159. package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +81 -35
  160. package/src/plugins/toolbar/__tests__/toolbar.test.jsx +44 -38
  161. package/src/plugins/toolbar/default-toolbar.jsx +18 -21
  162. package/src/plugins/toolbar/done-button.jsx +16 -22
  163. package/src/plugins/toolbar/editor-and-toolbar.jsx +134 -158
  164. package/src/plugins/toolbar/toolbar-buttons.jsx +30 -46
  165. package/src/plugins/toolbar/toolbar.jsx +57 -79
  166. package/src/serialization.jsx +3 -3
  167. package/esm/index.css +0 -847
  168. package/esm/index.js +0 -192929
  169. package/esm/index.js.map +0 -1
  170. package/esm/package.json +0 -3
  171. package/src/__tests__/editor.test.jsx +0 -363
  172. package/src/plugins/image/__tests__/__snapshots__/component.test.jsx.snap +0 -51
  173. package/src/plugins/image/__tests__/__snapshots__/image-toolbar-logic.test.jsx.snap +0 -27
  174. package/src/plugins/image/__tests__/__snapshots__/image-toolbar.test.jsx.snap +0 -44
  175. package/src/plugins/math/__tests__/__snapshots__/index.test.jsx.snap +0 -48
  176. package/src/plugins/table/__tests__/__snapshots__/table-toolbar.test.jsx.snap +0 -44
  177. package/src/plugins/toolbar/__tests__/__snapshots__/default-toolbar.test.jsx.snap +0 -923
  178. package/src/plugins/toolbar/__tests__/__snapshots__/editor-and-toolbar.test.jsx.snap +0 -20
  179. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar-buttons.test.jsx.snap +0 -36
  180. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar.test.jsx.snap +0 -46
package/CHANGELOG.md CHANGED
@@ -7,153 +7,83 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
7
7
 
8
8
  **Note:** Version bump only for package @pie-lib/editable-html
9
9
 
10
-
11
-
12
-
13
-
14
10
  ## [11.21.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.17.2...@pie-lib/editable-html@11.21.1) (2025-10-22)
15
11
 
16
12
  **Note:** Version bump only for package @pie-lib/editable-html
17
13
 
18
-
19
-
20
-
21
-
22
14
  # [11.21.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.20.0...@pie-lib/editable-html@11.21.0) (2025-10-16)
23
15
 
24
16
  **Note:** Version bump only for package @pie-lib/editable-html
25
17
 
26
-
27
-
28
-
29
-
30
18
  # [11.20.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.17.0...@pie-lib/editable-html@11.20.0) (2025-10-16)
31
19
 
32
20
  **Note:** Version bump only for package @pie-lib/editable-html
33
21
 
34
-
35
-
36
-
37
-
38
22
  # [11.19.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.17.0...@pie-lib/editable-html@11.19.0) (2025-10-16)
39
23
 
40
24
  **Note:** Version bump only for package @pie-lib/editable-html
41
25
 
42
-
43
-
44
-
45
-
46
26
  # [11.18.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.17.0...@pie-lib/editable-html@11.18.0) (2025-10-16)
47
27
 
48
28
  **Note:** Version bump only for package @pie-lib/editable-html
49
29
 
50
-
51
-
52
-
53
-
54
30
  ## [11.17.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.17.1...@pie-lib/editable-html@11.17.2) (2025-10-14)
55
31
 
56
32
  **Note:** Version bump only for package @pie-lib/editable-html
57
33
 
58
-
59
-
60
-
61
-
62
34
  ## [11.17.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.17.0...@pie-lib/editable-html@11.17.1) (2025-10-09)
63
35
 
64
36
  **Note:** Version bump only for package @pie-lib/editable-html
65
37
 
66
-
67
-
68
-
69
-
70
38
  # [11.17.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.1.1...@pie-lib/editable-html@11.17.0) (2025-09-25)
71
39
 
72
-
73
40
  ### Bug Fixes
74
41
 
75
- * fixed pie-lib/icons import [PD-5126] ([dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f))
76
-
42
+ - fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
77
43
 
78
44
  ### Features
79
45
 
80
- * split pie-toolbox into multiple packages [PD-5126] ([7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2))
81
-
82
-
83
-
84
-
46
+ - split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
85
47
 
86
48
  # [11.16.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.15.0...@pie-lib/editable-html@11.16.0) (2025-09-18)
87
49
 
88
50
  **Note:** Version bump only for package @pie-lib/editable-html
89
51
 
90
-
91
-
92
-
93
-
94
52
  # [11.15.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.14.0...@pie-lib/editable-html@11.15.0) (2025-09-18)
95
53
 
96
54
  **Note:** Version bump only for package @pie-lib/editable-html
97
55
 
98
-
99
-
100
-
101
-
102
56
  # [11.14.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.1.1...@pie-lib/editable-html@11.14.0) (2025-09-18)
103
57
 
104
-
105
58
  ### Bug Fixes
106
59
 
107
- * fixed pie-lib/icons import [PD-5126] ([dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f))
108
-
60
+ - fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
109
61
 
110
62
  ### Features
111
63
 
112
- * split pie-toolbox into multiple packages [PD-5126] ([7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2))
113
-
114
-
115
-
116
-
64
+ - split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
117
65
 
118
66
  # [11.13.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.12.0...@pie-lib/editable-html@11.13.0) (2025-09-17)
119
67
 
120
68
  **Note:** Version bump only for package @pie-lib/editable-html
121
69
 
122
-
123
-
124
-
125
-
126
70
  # [11.12.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.11.0...@pie-lib/editable-html@11.12.0) (2025-09-17)
127
71
 
128
72
  **Note:** Version bump only for package @pie-lib/editable-html
129
73
 
130
-
131
-
132
-
133
-
134
74
  # [11.11.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.10.1...@pie-lib/editable-html@11.11.0) (2025-09-17)
135
75
 
136
76
  **Note:** Version bump only for package @pie-lib/editable-html
137
77
 
138
-
139
-
140
-
141
-
142
78
  ## [11.10.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.1.1...@pie-lib/editable-html@11.10.1) (2025-08-11)
143
79
 
144
-
145
80
  ### Bug Fixes
146
81
 
147
- * fixed pie-lib/icons import [PD-5126] ([dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f))
148
-
82
+ - fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
149
83
 
150
84
  ### Features
151
85
 
152
- * split pie-toolbox into multiple packages [PD-5126] ([7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2))
153
-
154
-
155
-
156
-
86
+ - split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
157
87
 
158
88
  # [11.10.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html@11.1.1...@pie-lib/editable-html@11.10.0) (2025-08-07)
159
89
 
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+
3
+ var _editor = require("../editor");
4
+ describe('Editor Utilities', function () {
5
+ describe('valueToSize', function () {
6
+ it('returns undefined for falsy values', function () {
7
+ expect((0, _editor.valueToSize)(null)).toBeUndefined();
8
+ expect((0, _editor.valueToSize)(undefined)).toBeUndefined();
9
+ expect((0, _editor.valueToSize)('')).toBeUndefined();
10
+ expect((0, _editor.valueToSize)(0)).toBeUndefined();
11
+ });
12
+ it('converts number to px string', function () {
13
+ expect((0, _editor.valueToSize)(100)).toBe('100px');
14
+ expect((0, _editor.valueToSize)(50)).toBe('50px');
15
+ });
16
+ it('returns undefined for percentage strings', function () {
17
+ expect((0, _editor.valueToSize)('100%')).toBeUndefined();
18
+ expect((0, _editor.valueToSize)('50%')).toBeUndefined();
19
+ });
20
+ it('preserves valid CSS unit strings', function () {
21
+ expect((0, _editor.valueToSize)('100px')).toBe('100px');
22
+ expect((0, _editor.valueToSize)('10vh')).toBe('10vh');
23
+ expect((0, _editor.valueToSize)('50vw')).toBe('50vw');
24
+ expect((0, _editor.valueToSize)('9ch')).toBe('9ch');
25
+ expect((0, _editor.valueToSize)('2em')).toBe('2em');
26
+ });
27
+ it('preserves calc() expressions', function () {
28
+ expect((0, _editor.valueToSize)('calc(10em + 42px)')).toBe('calc(10em + 42px)');
29
+ expect((0, _editor.valueToSize)('calc(100% - 20px)')).toBe('calc(100% - 20px)');
30
+ });
31
+ it('converts numeric strings to px', function () {
32
+ expect((0, _editor.valueToSize)('100')).toBe('100px');
33
+ expect((0, _editor.valueToSize)('50')).toBe('50px');
34
+ });
35
+ it('handles invalid numeric strings', function () {
36
+ var result = (0, _editor.valueToSize)('invalid');
37
+ expect(isNaN(result)).toBe(true);
38
+ });
39
+ });
40
+ describe('buildSizeStyle', function () {
41
+ it('builds style with numeric width', function () {
42
+ var result = (0, _editor.buildSizeStyle)({
43
+ width: 100
44
+ });
45
+ expect(result).toEqual({
46
+ width: '100px',
47
+ minWidth: undefined,
48
+ maxWidth: undefined,
49
+ height: undefined,
50
+ minHeight: undefined,
51
+ maxHeight: undefined
52
+ });
53
+ });
54
+ it('returns undefined for percentage values', function () {
55
+ var result = (0, _editor.buildSizeStyle)({
56
+ height: '100%',
57
+ width: '100%'
58
+ });
59
+ expect(result).toEqual({
60
+ width: undefined,
61
+ height: undefined,
62
+ minWidth: undefined,
63
+ maxWidth: undefined,
64
+ minHeight: undefined,
65
+ maxHeight: undefined
66
+ });
67
+ });
68
+ it('builds style with numeric height', function () {
69
+ var result = (0, _editor.buildSizeStyle)({
70
+ height: 100
71
+ });
72
+ expect(result).toEqual({
73
+ width: undefined,
74
+ minWidth: undefined,
75
+ maxWidth: undefined,
76
+ height: '100px',
77
+ minHeight: undefined,
78
+ maxHeight: undefined
79
+ });
80
+ });
81
+ it('builds style with minHeight', function () {
82
+ var result = (0, _editor.buildSizeStyle)({
83
+ minHeight: 100
84
+ });
85
+ expect(result).toEqual({
86
+ width: undefined,
87
+ minWidth: undefined,
88
+ maxWidth: undefined,
89
+ height: undefined,
90
+ minHeight: '100px',
91
+ maxHeight: undefined
92
+ });
93
+ });
94
+ it('builds style with maxHeight', function () {
95
+ var result = (0, _editor.buildSizeStyle)({
96
+ maxHeight: 100
97
+ });
98
+ expect(result).toEqual({
99
+ width: undefined,
100
+ minWidth: undefined,
101
+ maxWidth: undefined,
102
+ height: undefined,
103
+ minHeight: undefined,
104
+ maxHeight: '100px'
105
+ });
106
+ });
107
+ it('builds style with calc() expression', function () {
108
+ var result = (0, _editor.buildSizeStyle)({
109
+ width: 'calc(10em + 42px)'
110
+ });
111
+ expect(result).toEqual({
112
+ width: 'calc(10em + 42px)',
113
+ minWidth: undefined,
114
+ maxWidth: undefined,
115
+ height: undefined,
116
+ minHeight: undefined,
117
+ maxHeight: undefined
118
+ });
119
+ });
120
+ it('builds style with ch unit', function () {
121
+ var result = (0, _editor.buildSizeStyle)({
122
+ width: '9ch'
123
+ });
124
+ expect(result).toEqual({
125
+ width: '9ch',
126
+ minWidth: undefined,
127
+ maxWidth: undefined,
128
+ height: undefined,
129
+ minHeight: undefined,
130
+ maxHeight: undefined
131
+ });
132
+ });
133
+ it('builds style with no size props', function () {
134
+ var result = (0, _editor.buildSizeStyle)({});
135
+ expect(result).toEqual({
136
+ width: undefined,
137
+ minWidth: undefined,
138
+ maxWidth: undefined,
139
+ height: undefined,
140
+ minHeight: undefined,
141
+ maxHeight: undefined
142
+ });
143
+ });
144
+ it('builds style with multiple size constraints', function () {
145
+ var result = (0, _editor.buildSizeStyle)({
146
+ width: 500,
147
+ minWidth: 300,
148
+ maxWidth: 700,
149
+ height: 400,
150
+ minHeight: 200,
151
+ maxHeight: 600
152
+ });
153
+ expect(result).toEqual({
154
+ width: '500px',
155
+ minWidth: '300px',
156
+ maxWidth: '700px',
157
+ height: '400px',
158
+ minHeight: '200px',
159
+ maxHeight: '600px'
160
+ });
161
+ });
162
+ });
163
+ });
164
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZWRpdG9yIiwicmVxdWlyZSIsImRlc2NyaWJlIiwiaXQiLCJleHBlY3QiLCJ2YWx1ZVRvU2l6ZSIsInRvQmVVbmRlZmluZWQiLCJ1bmRlZmluZWQiLCJ0b0JlIiwicmVzdWx0IiwiaXNOYU4iLCJidWlsZFNpemVTdHlsZSIsIndpZHRoIiwidG9FcXVhbCIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJoZWlnaHQiLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2VkaXRvci11dGlscy50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZhbHVlVG9TaXplLCBidWlsZFNpemVTdHlsZSB9IGZyb20gJy4uL2VkaXRvcic7XG5cbmRlc2NyaWJlKCdFZGl0b3IgVXRpbGl0aWVzJywgKCkgPT4ge1xuICBkZXNjcmliZSgndmFsdWVUb1NpemUnLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgdW5kZWZpbmVkIGZvciBmYWxzeSB2YWx1ZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUobnVsbCkpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdCh2YWx1ZVRvU2l6ZSh1bmRlZmluZWQpKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoJycpKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoMCkpLnRvQmVVbmRlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdjb252ZXJ0cyBudW1iZXIgdG8gcHggc3RyaW5nJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHZhbHVlVG9TaXplKDEwMCkpLnRvQmUoJzEwMHB4Jyk7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoNTApKS50b0JlKCc1MHB4Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyB1bmRlZmluZWQgZm9yIHBlcmNlbnRhZ2Ugc3RyaW5ncycsICgpID0+IHtcbiAgICAgIGV4cGVjdCh2YWx1ZVRvU2l6ZSgnMTAwJScpKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoJzUwJScpKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgncHJlc2VydmVzIHZhbGlkIENTUyB1bml0IHN0cmluZ3MnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoJzEwMHB4JykpLnRvQmUoJzEwMHB4Jyk7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoJzEwdmgnKSkudG9CZSgnMTB2aCcpO1xuICAgICAgZXhwZWN0KHZhbHVlVG9TaXplKCc1MHZ3JykpLnRvQmUoJzUwdncnKTtcbiAgICAgIGV4cGVjdCh2YWx1ZVRvU2l6ZSgnOWNoJykpLnRvQmUoJzljaCcpO1xuICAgICAgZXhwZWN0KHZhbHVlVG9TaXplKCcyZW0nKSkudG9CZSgnMmVtJyk7XG4gICAgfSk7XG5cbiAgICBpdCgncHJlc2VydmVzIGNhbGMoKSBleHByZXNzaW9ucycsICgpID0+IHtcbiAgICAgIGV4cGVjdCh2YWx1ZVRvU2l6ZSgnY2FsYygxMGVtICsgNDJweCknKSkudG9CZSgnY2FsYygxMGVtICsgNDJweCknKTtcbiAgICAgIGV4cGVjdCh2YWx1ZVRvU2l6ZSgnY2FsYygxMDAlIC0gMjBweCknKSkudG9CZSgnY2FsYygxMDAlIC0gMjBweCknKTtcbiAgICB9KTtcblxuICAgIGl0KCdjb252ZXJ0cyBudW1lcmljIHN0cmluZ3MgdG8gcHgnLCAoKSA9PiB7XG4gICAgICBleHBlY3QodmFsdWVUb1NpemUoJzEwMCcpKS50b0JlKCcxMDBweCcpO1xuICAgICAgZXhwZWN0KHZhbHVlVG9TaXplKCc1MCcpKS50b0JlKCc1MHB4Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyBpbnZhbGlkIG51bWVyaWMgc3RyaW5ncycsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbHVlVG9TaXplKCdpbnZhbGlkJyk7XG4gICAgICBleHBlY3QoaXNOYU4ocmVzdWx0KSkudG9CZSh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2J1aWxkU2l6ZVN0eWxlJywgKCkgPT4ge1xuICAgIGl0KCdidWlsZHMgc3R5bGUgd2l0aCBudW1lcmljIHdpZHRoJywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRTaXplU3R5bGUoeyB3aWR0aDogMTAwIH0pO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIHdpZHRoOiAnMTAwcHgnLFxuICAgICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyB1bmRlZmluZWQgZm9yIHBlcmNlbnRhZ2UgdmFsdWVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRTaXplU3R5bGUoeyBoZWlnaHQ6ICcxMDAlJywgd2lkdGg6ICcxMDAlJyB9KTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluV2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgbWF4V2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYnVpbGRzIHN0eWxlIHdpdGggbnVtZXJpYyBoZWlnaHQnLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBidWlsZFNpemVTdHlsZSh7IGhlaWdodDogMTAwIH0pO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIHdpZHRoOiB1bmRlZmluZWQsXG4gICAgICAgIG1pbldpZHRoOiB1bmRlZmluZWQsXG4gICAgICAgIG1heFdpZHRoOiB1bmRlZmluZWQsXG4gICAgICAgIGhlaWdodDogJzEwMHB4JyxcbiAgICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYnVpbGRzIHN0eWxlIHdpdGggbWluSGVpZ2h0JywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRTaXplU3R5bGUoeyBtaW5IZWlnaHQ6IDEwMCB9KTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluSGVpZ2h0OiAnMTAwcHgnLFxuICAgICAgICBtYXhIZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2J1aWxkcyBzdHlsZSB3aXRoIG1heEhlaWdodCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkU2l6ZVN0eWxlKHsgbWF4SGVpZ2h0OiAxMDAgfSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgd2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluV2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgbWF4V2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgaGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1pbkhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhIZWlnaHQ6ICcxMDBweCcsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdidWlsZHMgc3R5bGUgd2l0aCBjYWxjKCkgZXhwcmVzc2lvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkU2l6ZVN0eWxlKHsgd2lkdGg6ICdjYWxjKDEwZW0gKyA0MnB4KScgfSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgd2lkdGg6ICdjYWxjKDEwZW0gKyA0MnB4KScsXG4gICAgICAgIG1pbldpZHRoOiB1bmRlZmluZWQsXG4gICAgICAgIG1heFdpZHRoOiB1bmRlZmluZWQsXG4gICAgICAgIGhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgICBtaW5IZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWF4SGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdidWlsZHMgc3R5bGUgd2l0aCBjaCB1bml0JywgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRTaXplU3R5bGUoeyB3aWR0aDogJzljaCcgfSk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHtcbiAgICAgICAgd2lkdGg6ICc5Y2gnLFxuICAgICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYnVpbGRzIHN0eWxlIHdpdGggbm8gc2l6ZSBwcm9wcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkU2l6ZVN0eWxlKHt9KTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoe1xuICAgICAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYnVpbGRzIHN0eWxlIHdpdGggbXVsdGlwbGUgc2l6ZSBjb25zdHJhaW50cycsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkU2l6ZVN0eWxlKHtcbiAgICAgICAgd2lkdGg6IDUwMCxcbiAgICAgICAgbWluV2lkdGg6IDMwMCxcbiAgICAgICAgbWF4V2lkdGg6IDcwMCxcbiAgICAgICAgaGVpZ2h0OiA0MDAsXG4gICAgICAgIG1pbkhlaWdodDogMjAwLFxuICAgICAgICBtYXhIZWlnaHQ6IDYwMCxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh7XG4gICAgICAgIHdpZHRoOiAnNTAwcHgnLFxuICAgICAgICBtaW5XaWR0aDogJzMwMHB4JyxcbiAgICAgICAgbWF4V2lkdGg6ICc3MDBweCcsXG4gICAgICAgIGhlaWdodDogJzQwMHB4JyxcbiAgICAgICAgbWluSGVpZ2h0OiAnMjAwcHgnLFxuICAgICAgICBtYXhIZWlnaHQ6ICc2MDBweCcsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFFQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFlBQU07RUFDakNBLFFBQVEsQ0FBQyxhQUFhLEVBQUUsWUFBTTtJQUM1QkMsRUFBRSxDQUFDLG9DQUFvQyxFQUFFLFlBQU07TUFDN0NDLE1BQU0sQ0FBQyxJQUFBQyxtQkFBVyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUNDLGFBQWEsQ0FBQyxDQUFDO01BQ3pDRixNQUFNLENBQUMsSUFBQUMsbUJBQVcsRUFBQ0UsU0FBUyxDQUFDLENBQUMsQ0FBQ0QsYUFBYSxDQUFDLENBQUM7TUFDOUNGLE1BQU0sQ0FBQyxJQUFBQyxtQkFB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
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+
3
+ var _serialization = require("../serialization");
4
+ jest.mock('../plugins/math', function () {
5
+ return {
6
+ serialization: {
7
+ serialize: jest.fn(function (o, c) {
8
+ return undefined;
9
+ }),
10
+ deserialize: jest.fn(function (el, next) {
11
+ return undefined;
12
+ })
13
+ }
14
+ };
15
+ });
16
+ describe('TEXT_RULE', function () {
17
+ var mkBr = function mkBr(previousSibling) {
18
+ return {
19
+ remove: jest.fn(),
20
+ previousSibling: previousSibling,
21
+ replaceWith: function replaceWith(foo) {
22
+ previousSibling.textContent = previousSibling.textContent.replace(/(<br>)|(<\/br>)/g, foo);
23
+ },
24
+ normalize: jest.fn().mockReturnThis(),
25
+ tagName: 'br'
26
+ };
27
+ };
28
+ var mkTextNode = function mkTextNode() {
29
+ var textContent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
30
+ return {
31
+ nodeName: '#text',
32
+ textContent: textContent,
33
+ normalize: jest.fn().mockReturnThis()
34
+ };
35
+ };
36
+ var mkEl = function mkEl(querySelectorAllResult) {
37
+ return {
38
+ querySelectorAll: jest.fn().mockReturnValue(querySelectorAllResult),
39
+ normalize: jest.fn().mockReturnThis()
40
+ };
41
+ };
42
+ describe('deserialize', function () {
43
+ it('if no previous text node, no error is thrown', function () {
44
+ var br = mkBr();
45
+ var el = mkEl([br]);
46
+ expect(function () {
47
+ return _serialization.TEXT_RULE.deserialize(el);
48
+ }).not.toThrow();
49
+ });
50
+ });
51
+ });
52
+ describe('htmlToValue', function () {
53
+ it('converts', function () {
54
+ var expected = {
55
+ object: 'value',
56
+ document: {
57
+ object: 'document',
58
+ data: {},
59
+ nodes: [{
60
+ object: 'block',
61
+ type: 'div',
62
+ isVoid: false,
63
+ data: {
64
+ attributes: {}
65
+ },
66
+ nodes: [{
67
+ object: 'block',
68
+ type: 'paragraph',
69
+ isVoid: false,
70
+ data: {
71
+ attributes: {}
72
+ },
73
+ nodes: [{
74
+ object: 'text',
75
+ leaves: [{
76
+ object: 'leaf',
77
+ text: 'foo',
78
+ marks: []
79
+ }]
80
+ }, {
81
+ object: 'inline',
82
+ type: 'image',
83
+ isVoid: true,
84
+ data: {
85
+ src: 'blah.jpg',
86
+ width: null,
87
+ height: null,
88
+ margin: '',
89
+ justifyContent: '',
90
+ alignment: null,
91
+ alt: null
92
+ },
93
+ nodes: [{
94
+ object: 'text',
95
+ leaves: [{
96
+ object: 'leaf',
97
+ text: '',
98
+ marks: []
99
+ }]
100
+ }]
101
+ }, {
102
+ object: 'text',
103
+ leaves: [{
104
+ object: 'leaf',
105
+ text: 'bar',
106
+ marks: []
107
+ }]
108
+ }]
109
+ }]
110
+ }]
111
+ }
112
+ };
113
+ var html = "<div><p>foo<img src=\"blah.jpg\"/>bar</p></div>";
114
+ var v = (0, _serialization.htmlToValue)(html);
115
+ console.log(JSON.stringify(v.toJSON()));
116
+ expect(v.toJSON()).toEqual(expected);
117
+ });
118
+ it('does not break', function () {
119
+ /*
120
+ More than 12 iterations of the same kind would previously break the input. Here we have 16 text nodes, and now it works.
121
+ */
122
+ var expected = {
123
+ object: 'value',
124
+ document: {
125
+ object: 'document',
126
+ data: {},
127
+ nodes: [{
128
+ object: 'block',
129
+ type: 'div',
130
+ isVoid: false,
131
+ data: {
132
+ attributes: {}
133
+ },
134
+ nodes: [{
135
+ object: 'text',
136
+ leaves: [{
137
+ object: 'leaf',
138
+ text: 'Foo ',
139
+ marks: []
140
+ }, {
141
+ object: 'leaf',
142
+ text: 'x',
143
+ marks: [{
144
+ object: 'mark',
145
+ type: 'italic',
146
+ data: {}
147
+ }]
148
+ }, {
149
+ object: 'leaf',
150
+ text: ' bar ',
151
+ marks: []
152
+ }, {
153
+ object: 'leaf',
154
+ text: 'x',
155
+ marks: [{
156
+ object: 'mark',
157
+ type: 'italic',
158
+ data: {}
159
+ }]
160
+ }, {
161
+ object: 'leaf',
162
+ text: ' Foo ',
163
+ marks: []
164
+ }, {
165
+ object: 'leaf',
166
+ text: 'x',
167
+ marks: [{
168
+ object: 'mark',
169
+ type: 'italic',
170
+ data: {}
171
+ }]
172
+ }, {
173
+ object: 'leaf',
174
+ text: ' bar ',
175
+ marks: []
176
+ }, {
177
+ object: 'leaf',
178
+ text: 'x',
179
+ marks: [{
180
+ object: 'mark',
181
+ type: 'italic',
182
+ data: {}
183
+ }]
184
+ }, {
185
+ object: 'leaf',
186
+ text: ' Foo ',
187
+ marks: []
188
+ }, {
189
+ object: 'leaf',
190
+ text: 'x',
191
+ marks: [{
192
+ object: 'mark',
193
+ type: 'italic',
194
+ data: {}
195
+ }]
196
+ }, {
197
+ object: 'leaf',
198
+ text: ' bar ',
199
+ marks: []
200
+ }, {
201
+ object: 'leaf',
202
+ text: 'x',
203
+ marks: [{
204
+ object: 'mark',
205
+ type: 'italic',
206
+ data: {}
207
+ }]
208
+ }, {
209
+ object: 'leaf',
210
+ text: ' Foo ',
211
+ marks: []
212
+ }, {
213
+ object: 'leaf',
214
+ text: 'x',
215
+ marks: [{
216
+ object: 'mark',
217
+ type: 'italic',
218
+ data: {}
219
+ }]
220
+ }, {
221
+ object: 'leaf',
222
+ text: ' bar ',
223
+ marks: []
224
+ }, {
225
+ object: 'leaf',
226
+ text: 'x',
227
+ marks: [{
228
+ object: 'mark',
229
+ type: 'italic',
230
+ data: {}
231
+ }]
232
+ }]
233
+ }]
234
+ }]
235
+ }
236
+ };
237
+ var html = '<div>Foo <em>x</em> bar <em>x</em> Foo <em>x</em> bar <em>x</em> Foo <em>x</em> bar <em>x</em> Foo <em>x</em> bar <em>x</em></div>';
238
+ var v = (0, _serialization.htmlToValue)(html);
239
+ expect(v.toJSON()).toEqual(expected);
240
+ });
241
+ });
242
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2VyaWFsaXphdGlvbiIsInJlcXVpcmUiLCJqZXN0IiwibW9jayIsInNlcmlhbGl6YXRpb24iLCJzZXJpYWxpemUiLCJmbiIsIm8iLCJjIiwidW5kZWZpbmVkIiwiZGVzZXJpYWxpemUiLCJlbCIsIm5leHQiLCJkZXNjcmliZSIsIm1rQnIiLCJwcmV2aW91c1NpYmxpbmciLCJyZW1vdmUiLCJyZXBsYWNlV2l0aCIsImZvbyIsInRleHRDb250ZW50IiwicmVwbGFjZSIsIm5vcm1hbGl6ZSIsIm1vY2tSZXR1cm5UaGlzIiwidGFnTmFtZSIsIm1rVGV4dE5vZGUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJub2RlTmFtZSIsIm1rRWwiLCJxdWVyeVNlbGVjdG9yQWxsUmVzdWx0IiwicXVlcnlTZWxlY3RvckFsbCIsIm1vY2tSZXR1cm5WYWx1ZSIsIml0IiwiYnIiLCJleHBlY3QiLCJURVhUX1JVTEUiLCJub3QiLCJ0b1Rocm93IiwiZXhwZWN0ZWQiLCJvYmplY3QiLCJkb2N1bWVudCIsImRhdGEiLCJub2RlcyIsInR5cGUiLCJpc1ZvaWQiLCJhdHRyaWJ1dGVzIiwibGVhdmVzIiwidGV4dCIsIm1hcmtzIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJtYXJnaW4iLCJqdXN0aWZ5Q29udGVudCIsImFsaWdubWVudCIsImFsdCIsImh0bWwiLCJ2IiwiaHRtbFRvVmFsdWUiLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsInRvSlNPTiIsInRvRXF1YWwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3NlcmlhbGl6YXRpb24udGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBodG1sVG9WYWx1ZSwgVEVYVF9SVUxFIH0gZnJvbSAnLi4vc2VyaWFsaXphdGlvbic7XG5cbmplc3QubW9jaygnLi4vcGx1Z2lucy9tYXRoJywgKCkgPT4gKHtcbiAgc2VyaWFsaXphdGlvbjoge1xuICAgIHNlcmlhbGl6ZTogamVzdC5mbigobywgYykgPT4ge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KSxcbiAgICBkZXNlcmlhbGl6ZTogamVzdC5mbigoZWwsIG5leHQpID0+IHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSksXG4gIH0sXG59KSk7XG5cbmRlc2NyaWJlKCdURVhUX1JVTEUnLCAoKSA9PiB7XG4gIGNvbnN0IG1rQnIgPSAocHJldmlvdXNTaWJsaW5nKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlbW92ZTogamVzdC5mbigpLFxuICAgICAgcHJldmlvdXNTaWJsaW5nLFxuICAgICAgcmVwbGFjZVdpdGg6IChmb28pID0+IHtcbiAgICAgICAgcHJldmlvdXNTaWJsaW5nLnRleHRDb250ZW50ID0gcHJldmlvdXNTaWJsaW5nLnRleHRDb250ZW50LnJlcGxhY2UoLyg8YnI+KXwoPFxcL2JyPikvZywgZm9vKTtcbiAgICAgIH0sXG4gICAgICBub3JtYWxpemU6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICAgICAgdGFnTmFtZTogJ2JyJyxcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IG1rVGV4dE5vZGUgPSAodGV4dENvbnRlbnQgPSAnJykgPT4gKHtcbiAgICBub2RlTmFtZTogJyN0ZXh0JyxcbiAgICB0ZXh0Q29udGVudCxcbiAgICBub3JtYWxpemU6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICB9KTtcblxuICBjb25zdCBta0VsID0gKHF1ZXJ5U2VsZWN0b3JBbGxSZXN1bHQpID0+ICh7XG4gICAgcXVlcnlTZWxlY3RvckFsbDogamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZShxdWVyeVNlbGVjdG9yQWxsUmVzdWx0KSxcbiAgICBub3JtYWxpemU6IGplc3QuZm4oKS5tb2NrUmV0dXJuVGhpcygpLFxuICB9KTtcblxuICBkZXNjcmliZSgnZGVzZXJpYWxpemUnLCAoKSA9PiB7XG4gICAgaXQoJ2lmIG5vIHByZXZpb3VzIHRleHQgbm9kZSwgbm8gZXJyb3IgaXMgdGhyb3duJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnIgPSBta0JyKCk7XG4gICAgICBjb25zdCBlbCA9IG1rRWwoW2JyXSk7XG4gICAgICBleHBlY3QoKCkgPT4gVEVYVF9SVUxFLmRlc2VyaWFsaXplKGVsKSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2h0bWxUb1ZhbHVlJywgKCkgPT4ge1xuICBpdCgnY29udmVydHMnLCAoKSA9PiB7XG4gICAgY29uc3QgZXhwZWN0ZWQgPSB7XG4gICAgICBvYmplY3Q6ICd2YWx1ZScsXG4gICAgICBkb2N1bWVudDoge1xuICAgICAgICBvYmplY3Q6ICdkb2N1bWVudCcsXG4gICAgICAgIGRhdGE6IHt9LFxuICAgICAgICBub2RlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9iamVjdDogJ2Jsb2NrJyxcbiAgICAgICAgICAgIHR5cGU6ICdkaXYnLFxuICAgICAgICAgICAgaXNWb2lkOiBmYWxzZSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9iamVjdDogJ2Jsb2NrJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgICAgICAgICBpc1ZvaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHt9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIGxlYXZlczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJ2ZvbycsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2lubGluZScsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgICAgICAgICAgICAgIGlzVm9pZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgIHNyYzogJ2JsYWguanBnJyxcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgIGFsdDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlYXZlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIGxlYXZlczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJ2JhcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBodG1sID0gYDxkaXY+PHA+Zm9vPGltZyBzcmM9XCJibGFoLmpwZ1wiLz5iYXI8L3A+PC9kaXY+YDtcbiAgICBjb25zdCB2ID0gaHRtbFRvVmFsdWUoaHRtbCk7XG5cbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh2LnRvSlNPTigpKSk7XG4gICAgZXhwZWN0KHYudG9KU09OKCkpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3QgYnJlYWsnLCAoKSA9PiB7XG4gICAgLypcbiAgICAgTW9yZSB0aGFuIDEyIGl0ZXJhdGlvbnMgb2YgdGhlIHNhbWUga2luZCB3b3VsZCBwcmV2aW91c2x5IGJyZWFrIHRoZSBpbnB1dC4gSGVyZSB3ZSBoYXZlIDE2IHRleHQgbm9kZXMsIGFuZCBub3cgaXQgd29ya3MuXG4gICAgICovXG4gICAgY29uc3QgZXhwZWN0ZWQgPSB7XG4gICAgICBvYmplY3Q6ICd2YWx1ZScsXG4gICAgICBkb2N1bWVudDoge1xuICAgICAgICBvYmplY3Q6ICdkb2N1bWVudCcsXG4gICAgICAgIGRhdGE6IHt9LFxuICAgICAgICBub2RlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9iamVjdDogJ2Jsb2NrJyxcbiAgICAgICAgICAgIHR5cGU6ICdkaXYnLFxuICAgICAgICAgICAgaXNWb2lkOiBmYWxzZSxcbiAgICAgICAgICAgIGRhdGE6IHsgYXR0cmlidXRlczoge30gfSxcbiAgICAgICAgICAgIG5vZGVzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvYmplY3Q6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICBsZWF2ZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICdGb28gJyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICd4JyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdtYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnIGJhciAnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ3gnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ21hcmsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2l0YWxpYycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICcgRm9vICcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAneCcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbWFyaycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaXRhbGljJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJyBiYXIgJyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICd4JyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdtYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnIEZvbyAnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ3gnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ21hcmsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2l0YWxpYycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICcgYmFyICcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAneCcsXG4gICAgICAgICAgICAgICAgICAgIG1hcmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbWFyaycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaXRhbGljJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJyBGb28gJyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiAnbGVhZicsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICd4JyxcbiAgICAgICAgICAgICAgICAgICAgbWFya3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdtYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ2xlYWYnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnIGJhciAnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW10sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3Q6ICdsZWFmJyxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ3gnLFxuICAgICAgICAgICAgICAgICAgICBtYXJrczogW1xuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogJ21hcmsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2l0YWxpYycsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IGh0bWwgPVxuICAgICAgJzxkaXY+Rm9vIDxlbT54PC9lbT4gYmFyIDxlbT54PC9lbT4gRm9vIDxlbT54PC9lbT4gYmFyIDxlbT54PC9lbT4gRm9vIDxlbT54PC9lbT4gYmFyIDxlbT54PC9lbT4gRm9vIDxlbT54PC9lbT4gYmFyIDxlbT54PC9lbT48L2Rpdj4nO1xuICAgIGNvbnN0IHYgPSBodG1sVG9WYWx1ZShodG1sKTtcblxuICAgIGV4cGVjdCh2LnRvSlNPTigpKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLE9BQUE7QUFFQUMsSUFBSSxDQUFDQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7RUFBQSxPQUFPO0lBQ2xDQyxhQUFhLEVBQUU7TUFDYkMsU0FBUyxFQUFFSCxJQUFJLENBQUNJLEVBQUUsQ0FBQyxVQUFDQyxDQUFDLEVBQUVDLENBQUMsRUFBSztRQUMzQixPQUFPQyxTQUFTO01BQ2xCLENBQUMsQ0FBQztNQUNGQyxXQUFXLEVBQUVSLElBQUksQ0FBQ0ksRUFBRSxDQUFDLFVBQUNLLEVBQUUsRUFBRUMsSUFBSSxFQUFLO1FBQ2pDLE9BQU9ILFNBQVM7TUFDbEIsQ0FBQztJQUNIO0VBQ0YsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUVISSxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQU07RUFDMUIsSUFBTUMsSUFBSSxHQUFHLFNBQVBBLElBQUlBLENBQUlDLGVBQWUsRUFBSztJQUNoQyxPQUFPO01BQ0xDLE1BQU0sRUFBRWQsSUFBSSxDQUFDSSxFQUFFLENBQUMsQ0FBQztNQUNqQlMsZUFBZSxFQUFmQSxlQUFlO01BQ2ZFLFdBQVcsRUFBRSxTQUFiQSxXQUFXQSxDQUFHQyxHQUFHLEVBQUs7UUFDcEJILGVBQWUsQ0FBQ0ksV0FBVyxHQUFHSixlQUFlLENBQUNJLFdBQVcsQ0FBQ0MsT0FBTyxDQUFDLGtCQUFrQixFQUFFRixHQUFHLENBQUM7TUFDNUYsQ0FBQztNQUNERyxTQUFTLEVBQUVuQixJQUFJLENBQUNJLEVBQUUsQ0FBQyxDQUFDLENBQUNnQixjQUFjLENBQUMsQ0FBQztNQUNyQ0MsT0FBTyxFQUFFO0lBQ1gsQ0FBQztFQUNILENBQUM7RUFFRCxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBQTtJQUFBLElBQUlMLFdBQVcsR0FBQU0sU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQWhCLFNBQUEsR0FB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