@pie-lib/editable-html-tip-tap 1.1.1-next.1 → 1.1.1-next.3

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 (155) hide show
  1. package/LICENSE.md +5 -0
  2. package/NEXT.CHANGELOG.json +1 -0
  3. package/lib/components/CharacterPicker.js +10 -24
  4. package/lib/components/CharacterPicker.js.map +1 -1
  5. package/lib/components/EditableHtml.js +0 -17
  6. package/lib/components/EditableHtml.js.map +1 -1
  7. package/lib/components/MenuBar.js +0 -17
  8. package/lib/components/MenuBar.js.map +1 -1
  9. package/lib/components/TiptapContainer.js +4 -17
  10. package/lib/components/TiptapContainer.js.map +1 -1
  11. package/lib/components/characters/characterUtils.js +0 -2
  12. package/lib/components/characters/characterUtils.js.map +1 -1
  13. package/lib/components/characters/custom-popper.js +0 -1
  14. package/lib/components/characters/custom-popper.js.map +1 -1
  15. package/lib/components/common/done-button.js +0 -1
  16. package/lib/components/common/done-button.js.map +1 -1
  17. package/lib/components/common/toolbar-buttons.js +0 -12
  18. package/lib/components/common/toolbar-buttons.js.map +1 -1
  19. package/lib/components/icons/CssIcon.js +0 -1
  20. package/lib/components/icons/CssIcon.js.map +1 -1
  21. package/lib/components/icons/RespArea.js +0 -10
  22. package/lib/components/icons/RespArea.js.map +1 -1
  23. package/lib/components/icons/TableIcons.js +0 -1
  24. package/lib/components/icons/TableIcons.js.map +1 -1
  25. package/lib/components/icons/TextAlign.js +0 -7
  26. package/lib/components/icons/TextAlign.js.map +1 -1
  27. package/lib/components/image/AltDialog.js +0 -5
  28. package/lib/components/image/AltDialog.js.map +1 -1
  29. package/lib/components/image/ImageToolbar.js +0 -13
  30. package/lib/components/image/ImageToolbar.js.map +1 -1
  31. package/lib/components/image/InsertImageHandler.js +0 -10
  32. package/lib/components/image/InsertImageHandler.js.map +1 -1
  33. package/lib/components/media/MediaDialog.js +0 -19
  34. package/lib/components/media/MediaDialog.js.map +1 -1
  35. package/lib/components/media/MediaToolbar.js +0 -2
  36. package/lib/components/media/MediaToolbar.js.map +1 -1
  37. package/lib/components/media/MediaWrapper.js +0 -11
  38. package/lib/components/media/MediaWrapper.js.map +1 -1
  39. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +2 -12
  40. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -1
  41. package/lib/components/respArea/DragInTheBlank/choice.js +0 -8
  42. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
  43. package/lib/components/respArea/ExplicitConstructedResponse.js +0 -8
  44. package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -1
  45. package/lib/components/respArea/InlineDropdown.js +0 -8
  46. package/lib/components/respArea/InlineDropdown.js.map +1 -1
  47. package/lib/components/respArea/ToolbarIcon.js +0 -10
  48. package/lib/components/respArea/ToolbarIcon.js.map +1 -1
  49. package/lib/constants.js +0 -1
  50. package/lib/constants.js.map +1 -1
  51. package/lib/extensions/css.js +0 -11
  52. package/lib/extensions/css.js.map +1 -1
  53. package/lib/extensions/custom-toolbar-wrapper.js +1 -19
  54. package/lib/extensions/custom-toolbar-wrapper.js.map +1 -1
  55. package/lib/extensions/extended-table.js +1 -5
  56. package/lib/extensions/extended-table.js.map +1 -1
  57. package/lib/extensions/image-component.js +4 -21
  58. package/lib/extensions/image-component.js.map +1 -1
  59. package/lib/extensions/image.js +0 -11
  60. package/lib/extensions/image.js.map +1 -1
  61. package/lib/extensions/index.js +3 -12
  62. package/lib/extensions/index.js.map +1 -1
  63. package/lib/extensions/math.js +0 -16
  64. package/lib/extensions/math.js.map +1 -1
  65. package/lib/extensions/media.js +0 -15
  66. package/lib/extensions/media.js.map +1 -1
  67. package/lib/extensions/responseArea.js +0 -23
  68. package/lib/extensions/responseArea.js.map +1 -1
  69. package/lib/index.js +0 -7
  70. package/lib/index.js.map +1 -1
  71. package/lib/styles/editorContainerStyles.js +0 -2
  72. package/lib/styles/editorContainerStyles.js.map +1 -1
  73. package/lib/theme.js +0 -1
  74. package/lib/theme.js.map +1 -1
  75. package/lib/utils/size.js +0 -6
  76. package/lib/utils/size.js.map +1 -1
  77. package/package.json +9 -9
  78. package/src/__tests__/constants.test.js +1 -2
  79. package/src/__tests__/extensions.test.js +1 -1
  80. package/src/__tests__/index.test.jsx +1 -1
  81. package/src/components/CharacterPicker.jsx +11 -8
  82. package/src/components/EditableHtml.jsx +2 -2
  83. package/src/components/MenuBar.jsx +32 -186
  84. package/src/components/TiptapContainer.jsx +4 -1
  85. package/src/components/__tests__/AltDialog.test.jsx +1 -1
  86. package/src/components/__tests__/CharacterPicker.test.jsx +5 -3
  87. package/src/components/__tests__/DragInTheBlank.test.jsx +1 -1
  88. package/src/components/__tests__/ExplicitConstructedResponse.test.jsx +1 -1
  89. package/src/components/__tests__/ImageToolbar.test.jsx +1 -1
  90. package/src/components/__tests__/InlineDropdown.test.jsx +1 -1
  91. package/src/components/__tests__/MediaDialog.test.jsx +1 -1
  92. package/src/components/__tests__/MediaToolbar.test.jsx +1 -1
  93. package/src/components/__tests__/MenuBar.test.jsx +1 -1
  94. package/src/components/__tests__/TableIcons.test.jsx +1 -1
  95. package/src/components/__tests__/TextAlign.test.jsx +2 -2
  96. package/src/components/__tests__/choice.test.jsx +1 -1
  97. package/src/components/__tests__/done-button.test.jsx +2 -2
  98. package/src/components/__tests__/toolbar-buttons.test.jsx +2 -2
  99. package/src/components/image/AltDialog.jsx +1 -1
  100. package/src/components/image/InsertImageHandler.js +1 -1
  101. package/src/components/media/MediaDialog.js +4 -15
  102. package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +1 -1
  103. package/src/components/respArea/DragInTheBlank/choice.jsx +34 -27
  104. package/src/components/respArea/ExplicitConstructedResponse.jsx +1 -1
  105. package/src/components/respArea/InlineDropdown.jsx +2 -3
  106. package/src/extensions/__tests__/custom-toolbar-wrapper.test.jsx +1 -1
  107. package/src/extensions/__tests__/extended-table.test.js +0 -21
  108. package/src/extensions/__tests__/image-component.test.jsx +1 -1
  109. package/src/extensions/__tests__/media.test.js +1 -1
  110. package/src/extensions/__tests__/responseArea.test.js +2 -2
  111. package/src/extensions/css.js +25 -23
  112. package/src/extensions/custom-toolbar-wrapper.jsx +1 -2
  113. package/src/extensions/extended-table.js +0 -3
  114. package/src/extensions/image-component.jsx +2 -2
  115. package/src/extensions/image.js +8 -6
  116. package/src/extensions/index.js +1 -3
  117. package/src/extensions/math.js +29 -27
  118. package/src/extensions/media.js +12 -14
  119. package/src/extensions/responseArea.js +91 -86
  120. package/src/styles/editorContainerStyles.js +0 -1
  121. package/lib/__tests__/EditableHtml.test.js +0 -374
  122. package/lib/__tests__/constants.test.js +0 -28
  123. package/lib/__tests__/extensions.test.js +0 -214
  124. package/lib/__tests__/index.test.js +0 -246
  125. package/lib/__tests__/size-utils.test.js +0 -57
  126. package/lib/__tests__/theme.test.js +0 -17
  127. package/lib/components/__tests__/AltDialog.test.js +0 -201
  128. package/lib/components/__tests__/CharacterPicker.test.js +0 -313
  129. package/lib/components/__tests__/CssIcon.test.js +0 -58
  130. package/lib/components/__tests__/DragInTheBlank.test.js +0 -309
  131. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +0 -263
  132. package/lib/components/__tests__/ImageToolbar.test.js +0 -195
  133. package/lib/components/__tests__/InlineDropdown.test.js +0 -297
  134. package/lib/components/__tests__/InsertImageHandler.test.js +0 -162
  135. package/lib/components/__tests__/MediaDialog.test.js +0 -435
  136. package/lib/components/__tests__/MediaToolbar.test.js +0 -126
  137. package/lib/components/__tests__/MediaWrapper.test.js +0 -96
  138. package/lib/components/__tests__/MenuBar.test.js +0 -459
  139. package/lib/components/__tests__/RespArea.test.js +0 -171
  140. package/lib/components/__tests__/TableIcons.test.js +0 -153
  141. package/lib/components/__tests__/TextAlign.test.js +0 -216
  142. package/lib/components/__tests__/TiptapContainer.test.js +0 -196
  143. package/lib/components/__tests__/characterUtils.test.js +0 -189
  144. package/lib/components/__tests__/choice.test.js +0 -213
  145. package/lib/components/__tests__/custom-popper.test.js +0 -108
  146. package/lib/components/__tests__/done-button.test.js +0 -72
  147. package/lib/components/__tests__/toolbar-buttons.test.js +0 -277
  148. package/lib/extensions/__tests__/component.test.js +0 -314
  149. package/lib/extensions/__tests__/css.test.js +0 -218
  150. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +0 -185
  151. package/lib/extensions/__tests__/extended-table.test.js +0 -114
  152. package/lib/extensions/__tests__/image.test.js +0 -178
  153. package/lib/extensions/__tests__/media.test.js +0 -296
  154. package/lib/extensions/__tests__/responseArea.test.js +0 -332
  155. package/lib/extensions/component.js +0 -308
@@ -1,171 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _react = _interopRequireDefault(require("react"));
5
- var _react2 = require("@testing-library/react");
6
- var _RespArea = require("../icons/RespArea");
7
- describe('Chevron', function () {
8
- it('renders without crashing', function () {
9
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.Chevron, null)),
10
- container = _render.container;
11
- expect(container).toBeInTheDocument();
12
- });
13
- it('rotates 0 degrees for right direction (default)', function () {
14
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.Chevron, {
15
- direction: "right"
16
- })),
17
- container = _render2.container;
18
- var svg = container.querySelector('svg');
19
- expect(svg).toHaveStyle({
20
- transform: 'rotate(0deg)'
21
- });
22
- });
23
- it('rotates 90 degrees for down direction', function () {
24
- var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.Chevron, {
25
- direction: "down"
26
- })),
27
- container = _render3.container;
28
- var svg = container.querySelector('svg');
29
- expect(svg).toHaveStyle({
30
- transform: 'rotate(90deg)'
31
- });
32
- });
33
- it('rotates -90 degrees for up direction', function () {
34
- var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.Chevron, {
35
- direction: "up"
36
- })),
37
- container = _render4.container;
38
- var svg = container.querySelector('svg');
39
- expect(svg).toHaveStyle({
40
- transform: 'rotate(-90deg)'
41
- });
42
- });
43
- it('rotates 180 degrees for left direction', function () {
44
- var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.Chevron, {
45
- direction: "left"
46
- })),
47
- container = _render5.container;
48
- var svg = container.querySelector('svg');
49
- expect(svg).toHaveStyle({
50
- transform: 'rotate(180deg)'
51
- });
52
- });
53
- it('applies custom style prop', function () {
54
- var customStyle = {
55
- color: 'red',
56
- fontSize: '20px'
57
- };
58
- var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.Chevron, {
59
- style: customStyle
60
- })),
61
- container = _render6.container;
62
- var svg = container.querySelector('svg');
63
- expect(svg).toHaveStyle({
64
- color: 'red',
65
- fontSize: '20px'
66
- });
67
- });
68
- it('defaults to 0 rotation when no direction specified', function () {
69
- var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.Chevron, null)),
70
- container = _render7.container;
71
- var svg = container.querySelector('svg');
72
- expect(svg).toHaveStyle({
73
- transform: 'rotate(0deg)'
74
- });
75
- });
76
- });
77
- describe('GripIcon', function () {
78
- it('renders without crashing', function () {
79
- var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.GripIcon, null)),
80
- container = _render8.container;
81
- expect(container).toBeInTheDocument();
82
- });
83
- it('renders two MoreVert icons', function () {
84
- var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.GripIcon, null)),
85
- container = _render9.container;
86
- var moreVertIcons = container.querySelectorAll('svg');
87
- expect(moreVertIcons.length).toBe(2);
88
- });
89
- it('applies custom style prop', function () {
90
- var customStyle = {
91
- color: 'blue'
92
- };
93
- var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.GripIcon, {
94
- style: customStyle
95
- })),
96
- container = _render0.container;
97
- var span = container.querySelector('span');
98
- expect(span).toHaveStyle({
99
- color: 'blue'
100
- });
101
- });
102
- it('applies negative margin to first icon', function () {
103
- var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.GripIcon, null)),
104
- container = _render1.container;
105
- var firstIcon = container.querySelector('svg');
106
- expect(firstIcon).toHaveStyle({
107
- margin: '0 -16px'
108
- });
109
- });
110
- });
111
- describe('ToolbarIcon', function () {
112
- it('renders without crashing', function () {
113
- var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.ToolbarIcon, null)),
114
- container = _render10.container;
115
- expect(container).toBeInTheDocument();
116
- });
117
- it('renders "+ Response Area" text', function () {
118
- var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.ToolbarIcon, null)),
119
- getByText = _render11.getByText;
120
- expect(getByText('+ Response Area')).toBeInTheDocument();
121
- });
122
- it('applies correct font family', function () {
123
- var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.ToolbarIcon, null)),
124
- getByText = _render12.getByText;
125
- var element = getByText('+ Response Area');
126
- // Font family is applied via styled component, just verify text renders
127
- expect(element).toBeInTheDocument();
128
- });
129
- it('applies bold font weight', function () {
130
- var _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.ToolbarIcon, null)),
131
- getByText = _render13.getByText;
132
- var element = getByText('+ Response Area');
133
- expect(element).toHaveStyle({
134
- fontWeight: 'bold'
135
- });
136
- });
137
- it('has correct dimensions', function () {
138
- var _render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.ToolbarIcon, null)),
139
- getByText = _render14.getByText;
140
- var element = getByText('+ Response Area');
141
- expect(element).toHaveStyle({
142
- width: '110px',
143
- height: '28px'
144
- });
145
- });
146
- it('has relative positioning', function () {
147
- var _render15 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.ToolbarIcon, null)),
148
- getByText = _render15.getByText;
149
- var element = getByText('+ Response Area');
150
- expect(element).toHaveStyle({
151
- position: 'relative'
152
- });
153
- });
154
- it('has nowrap white space', function () {
155
- var _render16 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.ToolbarIcon, null)),
156
- getByText = _render16.getByText;
157
- var element = getByText('+ Response Area');
158
- expect(element).toHaveStyle({
159
- whiteSpace: 'nowrap'
160
- });
161
- });
162
- it('has top offset', function () {
163
- var _render17 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_RespArea.ToolbarIcon, null)),
164
- getByText = _render17.getByText;
165
- var element = getByText('+ Response Area');
166
- expect(element).toHaveStyle({
167
- top: '7px'
168
- });
169
- });
170
- });
171
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfUmVzcEFyZWEiLCJkZXNjcmliZSIsIml0IiwiX3JlbmRlciIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJDaGV2cm9uIiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyMiIsImRpcmVjdGlvbiIsInN2ZyIsInF1ZXJ5U2VsZWN0b3IiLCJ0b0hhdmVTdHlsZSIsInRyYW5zZm9ybSIsIl9yZW5kZXIzIiwiX3JlbmRlcjQiLCJfcmVuZGVyNSIsImN1c3RvbVN0eWxlIiwiY29sb3IiLCJmb250U2l6ZSIsIl9yZW5kZXI2Iiwic3R5bGUiLCJfcmVuZGVyNyIsIl9yZW5kZXI4IiwiR3JpcEljb24iLCJfcmVuZGVyOSIsIm1vcmVWZXJ0SWNvbnMiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwidG9CZSIsIl9yZW5kZXIwIiwic3BhbiIsIl9yZW5kZXIxIiwiZmlyc3RJY29uIiwibWFyZ2luIiwiX3JlbmRlcjEwIiwiVG9vbGJhckljb24iLCJfcmVuZGVyMTEiLCJnZXRCeVRleHQiLCJfcmVuZGVyMTIiLCJlbGVtZW50IiwiX3JlbmRlcjEzIiwiZm9udFdlaWdodCIsIl9yZW5kZXIxNCIsIndpZHRoIiwiaGVpZ2h0IiwiX3JlbmRlcjE1IiwicG9zaXRpb24iLCJfcmVuZGVyMTYiLCJ3aGl0ZVNwYWNlIiwiX3JlbmRlcjE3IiwidG9wIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvX190ZXN0c19fL1Jlc3BBcmVhLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IENoZXZyb24sIEdyaXBJY29uLCBUb29sYmFySWNvbiB9IGZyb20gJy4uL2ljb25zL1Jlc3BBcmVhJztcblxuZGVzY3JpYmUoJ0NoZXZyb24nLCAoKSA9PiB7XG4gIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q2hldnJvbiAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JvdGF0ZXMgMCBkZWdyZWVzIGZvciByaWdodCBkaXJlY3Rpb24gKGRlZmF1bHQpJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPENoZXZyb24gZGlyZWN0aW9uPVwicmlnaHRcIiAvPik7XG4gICAgY29uc3Qgc3ZnID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgIGV4cGVjdChzdmcpLnRvSGF2ZVN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKDBkZWcpJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ3JvdGF0ZXMgOTAgZGVncmVlcyBmb3IgZG93biBkaXJlY3Rpb24nLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q2hldnJvbiBkaXJlY3Rpb249XCJkb3duXCIgLz4pO1xuICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICBleHBlY3Qoc3ZnKS50b0hhdmVTdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZSg5MGRlZyknIH0pO1xuICB9KTtcblxuICBpdCgncm90YXRlcyAtOTAgZGVncmVlcyBmb3IgdXAgZGlyZWN0aW9uJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPENoZXZyb24gZGlyZWN0aW9uPVwidXBcIiAvPik7XG4gICAgY29uc3Qgc3ZnID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgIGV4cGVjdChzdmcpLnRvSGF2ZVN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKC05MGRlZyknIH0pO1xuICB9KTtcblxuICBpdCgncm90YXRlcyAxODAgZGVncmVlcyBmb3IgbGVmdCBkaXJlY3Rpb24nLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q2hldnJvbiBkaXJlY3Rpb249XCJsZWZ0XCIgLz4pO1xuICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICBleHBlY3Qoc3ZnKS50b0hhdmVTdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgY3VzdG9tIHN0eWxlIHByb3AnLCAoKSA9PiB7XG4gICAgY29uc3QgY3VzdG9tU3R5bGUgPSB7IGNvbG9yOiAncmVkJywgZm9udFNpemU6ICcyMHB4JyB9O1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPENoZXZyb24gc3R5bGU9e2N1c3RvbVN0eWxlfSAvPik7XG4gICAgY29uc3Qgc3ZnID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgIGV4cGVjdChzdmcpLnRvSGF2ZVN0eWxlKHsgY29sb3I6ICdyZWQnLCBmb250U2l6ZTogJzIwcHgnIH0pO1xuICB9KTtcblxuICBpdCgnZGVmYXVsdHMgdG8gMCByb3RhdGlvbiB3aGVuIG5vIGRpcmVjdGlvbiBzcGVjaWZpZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8Q2hldnJvbiAvPik7XG4gICAgY29uc3Qgc3ZnID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgIGV4cGVjdChzdmcpLnRvSGF2ZVN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKDBkZWcpJyB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0dyaXBJY29uJywgKCkgPT4ge1xuICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEdyaXBJY29uIC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyB0d28gTW9yZVZlcnQgaWNvbnMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8R3JpcEljb24gLz4pO1xuICAgIGNvbnN0IG1vcmVWZXJ0SWNvbnMgPSBjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnc3ZnJyk7XG4gICAgZXhwZWN0KG1vcmVWZXJ0SWNvbnMubGVuZ3RoKS50b0JlKDIpO1xuICB9KTtcblxuICBpdCgnYXBwbGllcyBjdXN0b20gc3R5bGUgcHJvcCcsICgpID0+IHtcbiAgICBjb25zdCBjdXN0b21TdHlsZSA9IHsgY29sb3I6ICdibHVlJyB9O1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEdyaXBJY29uIHN0eWxlPXtjdXN0b21TdHlsZX0gLz4pO1xuICAgIGNvbnN0IHNwYW4gPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3BhbicpO1xuICAgIGV4cGVjdChzcGFuKS50b0hhdmVTdHlsZSh7IGNvbG9yOiAnYmx1ZScgfSk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIG5lZ2F0aXZlIG1hcmdpbiB0byBmaXJzdCBpY29uJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEdyaXBJY29uIC8+KTtcbiAgICBjb25zdCBmaXJzdEljb24gPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJyk7XG4gICAgZXhwZWN0KGZpcnN0SWNvbikudG9IYXZlU3R5bGUoeyBtYXJnaW46ICcwIC0xNnB4JyB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ1Rvb2xiYXJJY29uJywgKCkgPT4ge1xuICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFRvb2xiYXJJY29uIC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBcIisgUmVzcG9uc2UgQXJlYVwiIHRleHQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8VG9vbGJhckljb24gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRleHQoJysgUmVzcG9uc2UgQXJlYScpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnYXBwbGllcyBjb3JyZWN0IGZvbnQgZmFtaWx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoPFRvb2xiYXJJY29uIC8+KTtcbiAgICBjb25zdCBlbGVtZW50ID0gZ2V0QnlUZXh0KCcrIFJlc3BvbnNlIEFyZWEnKTtcbiAgICAvLyBGb250IGZhbWlseSBpcyBhcHBsaWVkIHZpYSBzdHlsZWQgY29tcG9uZW50LCBqdXN0IHZlcmlmeSB0ZXh0IHJlbmRlcnNcbiAgICBleHBlY3QoZWxlbWVudCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgYm9sZCBmb250IHdlaWdodCcsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxUb29sYmFySWNvbiAvPik7XG4gICAgY29uc3QgZWxlbWVudCA9IGdldEJ5VGV4dCgnKyBSZXNwb25zZSBBcmVhJyk7XG4gICAgZXhwZWN0KGVsZW1lbnQpLnRvSGF2ZVN0eWxlKHsgZm9udFdlaWdodDogJ2JvbGQnIH0pO1xuICB9KTtcblxuICBpdCgnaGFzIGNvcnJlY3QgZGltZW5zaW9ucycsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxUb29sYmFySWNvbiAvPik7XG4gICAgY29uc3QgZWxlbWVudCA9IGdldEJ5VGV4dCgnKyBSZXNwb25zZSBBcmVhJyk7XG4gICAgZXhwZWN0KGVsZW1lbnQpLnRvSGF2ZVN0eWxlKHsgd2lkdGg6ICcxMTBweCcsIGhlaWdodDogJzI4cHgnIH0pO1xuICB9KTtcblxuICBpdCgnaGFzIHJlbGF0aXZlIHBvc2l0aW9uaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoPFRvb2xiYXJJY29uIC8+KTtcbiAgICBjb25zdCBlbGVtZW50ID0gZ2V0QnlUZXh0KCcrIFJlc3BvbnNlIEFyZWEnKTtcbiAgICBleHBlY3QoZWxlbWVudCkudG9IYXZlU3R5bGUoeyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ2hhcyBub3dyYXAgd2hpdGUgc3BhY2UnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8VG9vbGJhckljb24gLz4pO1xuICAgIGNvbnN0IGVsZW1lbnQgPSBnZXRCeVRleHQoJysgUmVzcG9uc2UgQXJlYScpO1xuICAgIGV4cGVjdChlbGVtZW50KS50b0hhdmVTdHlsZSh7IHdoaXRlU3BhY2U6ICdub3dyYXAnIH0pO1xuICB9KTtcblxuICBpdCgnaGFzIHRvcCBvZmZzZXQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8VG9vbGJhckljb24gLz4pO1xuICAgIGNvbnN0IGVsZW1lbnQgPSBnZXRCeVRleHQoJysgUmVzcG9uc2UgQXJlYScpO1xuICAgIGV4cGVjdChlbGVtZW50KS50b0hhdmVTdHlsZSh7IHRvcDogJzdweCcgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFNBQUEsR0FBQUYsT0FBQTtBQUVBRyxRQUFRLENBQUMsU0FBUyxFQUFFLFlBQU07RUFDeEJDLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxZQUFNO0lBQ25DLElBQUFDLE9BQUEsR0FBc0IsSUFBQUMsY0FBTSxlQUFDUixNQUFBLFlBQUFTLGFB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
@@ -1,153 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _react = _interopRequireDefault(require("react"));
5
- var _react2 = require("@testing-library/react");
6
- var _TableIcons = require("../icons/TableIcons");
7
- describe('AddRow', function () {
8
- it('renders without crashing', function () {
9
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.AddRow, null)),
10
- container = _render.container;
11
- expect(container).toBeInTheDocument();
12
- });
13
- it('renders SVG', function () {
14
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.AddRow, null)),
15
- container = _render2.container;
16
- var svg = container.querySelector('svg');
17
- expect(svg).toBeInTheDocument();
18
- });
19
- it('has correct viewBox', function () {
20
- var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.AddRow, null)),
21
- container = _render3.container;
22
- var svg = container.querySelector('svg');
23
- expect(svg).toHaveAttribute('viewBox', '0 0 24 24');
24
- });
25
- it('has correct dimensions', function () {
26
- var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.AddRow, null)),
27
- container = _render4.container;
28
- var svg = container.querySelector('svg');
29
- expect(svg).toHaveAttribute('width', '24');
30
- expect(svg).toHaveAttribute('height', '24');
31
- });
32
- it('contains path element', function () {
33
- var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.AddRow, null)),
34
- container = _render5.container;
35
- var path = container.querySelector('path');
36
- expect(path).toBeInTheDocument();
37
- });
38
- });
39
- describe('RemoveRow', function () {
40
- it('renders without crashing', function () {
41
- var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveRow, null)),
42
- container = _render6.container;
43
- expect(container).toBeInTheDocument();
44
- });
45
- it('renders SVG', function () {
46
- var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveRow, null)),
47
- container = _render7.container;
48
- var svg = container.querySelector('svg');
49
- expect(svg).toBeInTheDocument();
50
- });
51
- it('has correct viewBox', function () {
52
- var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveRow, null)),
53
- container = _render8.container;
54
- var svg = container.querySelector('svg');
55
- expect(svg).toHaveAttribute('viewBox', '0 0 24 24');
56
- });
57
- it('contains path element', function () {
58
- var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveRow, null)),
59
- container = _render9.container;
60
- var path = container.querySelector('path');
61
- expect(path).toBeInTheDocument();
62
- });
63
- });
64
- describe('AddColumn', function () {
65
- it('renders without crashing', function () {
66
- var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.AddColumn, null)),
67
- container = _render0.container;
68
- expect(container).toBeInTheDocument();
69
- });
70
- it('renders SVG', function () {
71
- var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.AddColumn, null)),
72
- container = _render1.container;
73
- var svg = container.querySelector('svg');
74
- expect(svg).toBeInTheDocument();
75
- });
76
- it('has correct viewBox', function () {
77
- var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.AddColumn, null)),
78
- container = _render10.container;
79
- var svg = container.querySelector('svg');
80
- expect(svg).toHaveAttribute('viewBox', '0 0 24 24');
81
- });
82
- it('has correct dimensions', function () {
83
- var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.AddColumn, null)),
84
- container = _render11.container;
85
- var svg = container.querySelector('svg');
86
- expect(svg).toHaveAttribute('width', '24');
87
- expect(svg).toHaveAttribute('height', '24');
88
- });
89
- it('contains path element', function () {
90
- var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.AddColumn, null)),
91
- container = _render12.container;
92
- var path = container.querySelector('path');
93
- expect(path).toBeInTheDocument();
94
- });
95
- });
96
- describe('RemoveColumn', function () {
97
- it('renders without crashing', function () {
98
- var _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveColumn, null)),
99
- container = _render13.container;
100
- expect(container).toBeInTheDocument();
101
- });
102
- it('renders SVG', function () {
103
- var _render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveColumn, null)),
104
- container = _render14.container;
105
- var svg = container.querySelector('svg');
106
- expect(svg).toBeInTheDocument();
107
- });
108
- it('has correct viewBox', function () {
109
- var _render15 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveColumn, null)),
110
- container = _render15.container;
111
- var svg = container.querySelector('svg');
112
- expect(svg).toHaveAttribute('viewBox', '0 0 24 24');
113
- });
114
- it('contains path element', function () {
115
- var _render16 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveColumn, null)),
116
- container = _render16.container;
117
- var path = container.querySelector('path');
118
- expect(path).toBeInTheDocument();
119
- });
120
- });
121
- describe('RemoveTable', function () {
122
- it('renders without crashing', function () {
123
- var _render17 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveTable, null)),
124
- container = _render17.container;
125
- expect(container).toBeInTheDocument();
126
- });
127
- it('renders SVG', function () {
128
- var _render18 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveTable, null)),
129
- container = _render18.container;
130
- var svg = container.querySelector('svg');
131
- expect(svg).toBeInTheDocument();
132
- });
133
- it('has correct viewBox', function () {
134
- var _render19 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveTable, null)),
135
- container = _render19.container;
136
- var svg = container.querySelector('svg');
137
- expect(svg).toHaveAttribute('viewBox', '0 0 24 24');
138
- });
139
- it('has correct dimensions', function () {
140
- var _render20 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveTable, null)),
141
- container = _render20.container;
142
- var svg = container.querySelector('svg');
143
- expect(svg).toHaveAttribute('width', '24');
144
- expect(svg).toHaveAttribute('height', '24');
145
- });
146
- it('contains path element', function () {
147
- var _render21 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveTable, null)),
148
- container = _render21.container;
149
- var path = container.querySelector('path');
150
- expect(path).toBeInTheDocument();
151
- });
152
- });
153
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfVGFibGVJY29ucyIsImRlc2NyaWJlIiwiaXQiLCJfcmVuZGVyIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIkFkZFJvdyIsImNvbnRhaW5lciIsImV4cGVjdCIsInRvQmVJblRoZURvY3VtZW50IiwiX3JlbmRlcjIiLCJzdmciLCJxdWVyeVNlbGVjdG9yIiwiX3JlbmRlcjMiLCJ0b0hhdmVBdHRyaWJ1dGUiLCJfcmVuZGVyNCIsIl9yZW5kZXI1IiwicGF0aCIsIl9yZW5kZXI2IiwiUmVtb3ZlUm93IiwiX3JlbmRlcjciLCJfcmVuZGVyOCIsIl9yZW5kZXI5IiwiX3JlbmRlcjAiLCJBZGRDb2x1bW4iLCJfcmVuZGVyMSIsIl9yZW5kZXIxMCIsIl9yZW5kZXIxMSIsIl9yZW5kZXIxMiIsIl9yZW5kZXIxMyIsIlJlbW92ZUNvbHVtbiIsIl9yZW5kZXIxNCIsIl9yZW5kZXIxNSIsIl9yZW5kZXIxNiIsIl9yZW5kZXIxNyIsIlJlbW92ZVRhYmxlIiwiX3JlbmRlcjE4IiwiX3JlbmRlcjE5IiwiX3JlbmRlcjIwIiwiX3JlbmRlcjIxIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvX190ZXN0c19fL1RhYmxlSWNvbnMudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IHsgQWRkUm93LCBSZW1vdmVSb3csIEFkZENvbHVtbiwgUmVtb3ZlQ29sdW1uLCBSZW1vdmVUYWJsZSB9IGZyb20gJy4uL2ljb25zL1RhYmxlSWNvbnMnO1xuXG5kZXNjcmliZSgnQWRkUm93JywgKCkgPT4ge1xuICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEFkZFJvdyAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgU1ZHJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEFkZFJvdyAvPik7XG4gICAgY29uc3Qgc3ZnID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgIGV4cGVjdChzdmcpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdoYXMgY29ycmVjdCB2aWV3Qm94JywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEFkZFJvdyAvPik7XG4gICAgY29uc3Qgc3ZnID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgIGV4cGVjdChzdmcpLnRvSGF2ZUF0dHJpYnV0ZSgndmlld0JveCcsICcwIDAgMjQgMjQnKTtcbiAgfSk7XG5cbiAgaXQoJ2hhcyBjb3JyZWN0IGRpbWVuc2lvbnMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8QWRkUm93IC8+KTtcbiAgICBjb25zdCBzdmcgPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJyk7XG4gICAgZXhwZWN0KHN2ZykudG9IYXZlQXR0cmlidXRlKCd3aWR0aCcsICcyNCcpO1xuICAgIGV4cGVjdChzdmcpLnRvSGF2ZUF0dHJpYnV0ZSgnaGVpZ2h0JywgJzI0Jyk7XG4gIH0pO1xuXG4gIGl0KCdjb250YWlucyBwYXRoIGVsZW1lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8QWRkUm93IC8+KTtcbiAgICBjb25zdCBwYXRoID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3BhdGgnKTtcbiAgICBleHBlY3QocGF0aCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ1JlbW92ZVJvdycsICgpID0+IHtcbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxSZW1vdmVSb3cgLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIFNWRycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxSZW1vdmVSb3cgLz4pO1xuICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICBleHBlY3Qoc3ZnKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGFzIGNvcnJlY3Qgdmlld0JveCcsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxSZW1vdmVSb3cgLz4pO1xuICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICBleHBlY3Qoc3ZnKS50b0hhdmVBdHRyaWJ1dGUoJ3ZpZXdCb3gnLCAnMCAwIDI0IDI0Jyk7XG4gIH0pO1xuXG4gIGl0KCdjb250YWlucyBwYXRoIGVsZW1lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8UmVtb3ZlUm93IC8+KTtcbiAgICBjb25zdCBwYXRoID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3BhdGgnKTtcbiAgICBleHBlY3QocGF0aCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0FkZENvbHVtbicsICgpID0+IHtcbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxBZGRDb2x1bW4gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIFNWRycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxBZGRDb2x1bW4gLz4pO1xuICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICBleHBlY3Qoc3ZnKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGFzIGNvcnJlY3Qgdmlld0JveCcsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxBZGRDb2x1bW4gLz4pO1xuICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICBleHBlY3Qoc3ZnKS50b0hhdmVBdHRyaWJ1dGUoJ3ZpZXdCb3gnLCAnMCAwIDI0IDI0Jyk7XG4gIH0pO1xuXG4gIGl0KCdoYXMgY29ycmVjdCBkaW1lbnNpb25zJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEFkZENvbHVtbiAvPik7XG4gICAgY29uc3Qgc3ZnID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgIGV4cGVjdChzdmcpLnRvSGF2ZUF0dHJpYnV0ZSgnd2lkdGgnLCAnMjQnKTtcbiAgICBleHBlY3Qoc3ZnKS50b0hhdmVBdHRyaWJ1dGUoJ2hlaWdodCcsICcyNCcpO1xuICB9KTtcblxuICBpdCgnY29udGFpbnMgcGF0aCBlbGVtZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEFkZENvbHVtbiAvPik7XG4gICAgY29uc3QgcGF0aCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdwYXRoJyk7XG4gICAgZXhwZWN0KHBhdGgpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdSZW1vdmVDb2x1bW4nLCAoKSA9PiB7XG4gIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8UmVtb3ZlQ29sdW1uIC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBTVkcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8UmVtb3ZlQ29sdW1uIC8+KTtcbiAgICBjb25zdCBzdmcgPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJyk7XG4gICAgZXhwZWN0KHN2ZykudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhcyBjb3JyZWN0IHZpZXdCb3gnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8UmVtb3ZlQ29sdW1uIC8+KTtcbiAgICBjb25zdCBzdmcgPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJyk7XG4gICAgZXhwZWN0KHN2ZykudG9IYXZlQXR0cmlidXRlKCd2aWV3Qm94JywgJzAgMCAyNCAyNCcpO1xuICB9KTtcblxuICBpdCgnY29udGFpbnMgcGF0aCBlbGVtZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFJlbW92ZUNvbHVtbiAvPik7XG4gICAgY29uc3QgcGF0aCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdwYXRoJyk7XG4gICAgZXhwZWN0KHBhdGgpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdSZW1vdmVUYWJsZScsICgpID0+IHtcbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxSZW1vdmVUYWJsZSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgU1ZHJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFJlbW92ZVRhYmxlIC8+KTtcbiAgICBjb25zdCBzdmcgPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJyk7XG4gICAgZXhwZWN0KHN2ZykudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhcyBjb3JyZWN0IHZpZXdCb3gnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8UmVtb3ZlVGFibGUgLz4pO1xuICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICBleHBlY3Qoc3ZnKS50b0hhdmVBdHRyaWJ1dGUoJ3ZpZXdCb3gnLCAnMCAwIDI0IDI0Jyk7XG4gIH0pO1xuXG4gIGl0KCdoYXMgY29ycmVjdCBkaW1lbnNpb25zJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFJlbW92ZVRhYmxlIC8+KTtcbiAgICBjb25zdCBzdmcgPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJyk7XG4gICAgZXhwZWN0KHN2ZykudG9IYXZlQXR0cmlidXRlKCd3aWR0aCcsICcyNCcpO1xuICAgIGV4cGVjdChzdmcpLnRvSGF2ZUF0dHJpYnV0ZSgnaGVpZ2h0JywgJzI0Jyk7XG4gIH0pO1xuXG4gIGl0KCdjb250YWlucyBwYXRoIGVsZW1lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8UmVtb3ZlVGFibGUgLz4pO1xuICAgIGNvbnN0IHBhdGggPSBjb250YWluZXIucXVlcnlTZWxlY3RvcigncGF0aCcpO1xuICAgIGV4cGVjdChwYXRoKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFGLE9B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
@@ -1,216 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.array.iterator.js");
4
- require("core-js/modules/es.object.define-property.js");
5
- require("core-js/modules/es.object.get-own-property-descriptor.js");
6
- require("core-js/modules/es.object.to-string.js");
7
- require("core-js/modules/es.string.iterator.js");
8
- require("core-js/modules/es.weak-map.js");
9
- require("core-js/modules/web.dom-collections.iterator.js");
10
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
11
- var _typeof = require("@babel/runtime/helpers/typeof");
12
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
- var _react = _interopRequireDefault(require("react"));
15
- var _react2 = require("@testing-library/react");
16
- var _TextAlign = _interopRequireWildcard(require("../icons/TextAlign"));
17
- var _excluded = ["children", "onClick", "value"];
18
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
- jest.mock('@mui/material/ListItem', function () {
20
- return {
21
- __esModule: true,
22
- "default": function _default(_ref) {
23
- var children = _ref.children,
24
- onClick = _ref.onClick,
25
- value = _ref.value,
26
- props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
27
- return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, props, {
28
- value: value,
29
- onClick: onClick,
30
- role: "listitem"
31
- }), children);
32
- }
33
- };
34
- });
35
- describe('AlignLeft', function () {
36
- it('renders SVG', function () {
37
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign.AlignLeft, null)),
38
- container = _render.container;
39
- expect(container.querySelector('svg')).toBeInTheDocument();
40
- });
41
- it('has correct viewBox', function () {
42
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign.AlignLeft, null)),
43
- container = _render2.container;
44
- var svg = container.querySelector('svg');
45
- expect(svg).toHaveAttribute('viewBox', '0 0 66 66');
46
- });
47
- });
48
- describe('AlignRight', function () {
49
- it('renders SVG', function () {
50
- var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign.AlignRight, null)),
51
- container = _render3.container;
52
- expect(container.querySelector('svg')).toBeInTheDocument();
53
- });
54
- it('has correct viewBox', function () {
55
- var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign.AlignRight, null)),
56
- container = _render4.container;
57
- var svg = container.querySelector('svg');
58
- expect(svg).toHaveAttribute('viewBox', '0 0 66 66');
59
- });
60
- });
61
- describe('AlignCenter', function () {
62
- it('renders SVG', function () {
63
- var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign.AlignCenter, null)),
64
- container = _render5.container;
65
- expect(container.querySelector('svg')).toBeInTheDocument();
66
- });
67
- it('has correct viewBox', function () {
68
- var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign.AlignCenter, null)),
69
- container = _render6.container;
70
- var svg = container.querySelector('svg');
71
- expect(svg).toHaveAttribute('viewBox', '0 0 66 66');
72
- });
73
- });
74
- describe('AlignJustify', function () {
75
- it('renders SVG', function () {
76
- var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign.AlignJustify, null)),
77
- container = _render7.container;
78
- expect(container.querySelector('svg')).toBeInTheDocument();
79
- });
80
- it('has correct viewBox', function () {
81
- var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign.AlignJustify, null)),
82
- container = _render8.container;
83
- var svg = container.querySelector('svg');
84
- expect(svg).toHaveAttribute('viewBox', '0 0 66 66');
85
- });
86
- });
87
- describe('TextAlignIcon', function () {
88
- var mockEditor = {
89
- isActive: jest.fn(),
90
- commands: {
91
- setTextAlign: jest.fn()
92
- }
93
- };
94
- beforeEach(function () {
95
- jest.clearAllMocks();
96
- });
97
- it('renders without crashing', function () {
98
- var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
99
- editor: mockEditor
100
- })),
101
- container = _render9.container;
102
- expect(container).toBeInTheDocument();
103
- });
104
- it('shows AlignLeft icon by default', function () {
105
- mockEditor.isActive.mockReturnValue(false);
106
- var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
107
- editor: mockEditor
108
- })),
109
- container = _render0.container;
110
- expect(container.querySelector('svg')).toBeInTheDocument();
111
- });
112
- it('shows AlignRight icon when right alignment is active', function () {
113
- mockEditor.isActive.mockImplementation(function (options) {
114
- return (options === null || options === void 0 ? void 0 : options.textAlign) === 'right';
115
- });
116
- var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
117
- editor: mockEditor
118
- })),
119
- container = _render1.container;
120
- expect(container.querySelector('svg')).toBeInTheDocument();
121
- });
122
- it('shows AlignCenter icon when center alignment is active', function () {
123
- mockEditor.isActive.mockImplementation(function (options) {
124
- return (options === null || options === void 0 ? void 0 : options.textAlign) === 'center';
125
- });
126
- var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
127
- editor: mockEditor
128
- })),
129
- container = _render10.container;
130
- expect(container.querySelector('svg')).toBeInTheDocument();
131
- });
132
- it('shows AlignJustify icon when justify alignment is active', function () {
133
- mockEditor.isActive.mockImplementation(function (options) {
134
- return (options === null || options === void 0 ? void 0 : options.textAlign) === 'justify';
135
- });
136
- var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
137
- editor: mockEditor
138
- })),
139
- container = _render11.container;
140
- expect(container.querySelector('svg')).toBeInTheDocument();
141
- });
142
- it('toggles dropdown on click', function () {
143
- var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
144
- editor: mockEditor
145
- })),
146
- container = _render12.container;
147
- var button = container.querySelector('div[style*="display: flex"]');
148
- _react2.fireEvent.click(button);
149
- expect(container).toBeInTheDocument();
150
- });
151
- it('applies alignment when list item is clicked', function () {
152
- var _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
153
- editor: mockEditor
154
- })),
155
- container = _render13.container,
156
- getByLabelText = _render13.getByLabelText;
157
- var button = container.querySelector('div[style*="display: flex"]');
158
- _react2.fireEvent.click(button);
159
- var leftButton = getByLabelText('Align text left');
160
- _react2.fireEvent.click(leftButton);
161
- expect(mockEditor.commands.setTextAlign).toHaveBeenCalledWith('left');
162
- });
163
- it('prevents default and stops propagation on mouse down', function () {
164
- var _render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
165
- editor: mockEditor
166
- })),
167
- container = _render14.container;
168
- var button = container.querySelector('div[style*="display"]');
169
- if (button) {
170
- _react2.fireEvent.mouseDown(button);
171
- // Just verify the event handler didn't throw
172
- expect(container).toBeInTheDocument();
173
- } else {
174
- expect(container).toBeInTheDocument();
175
- }
176
- });
177
- it('shows dropdown arrow', function () {
178
- var _render15 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
179
- editor: mockEditor
180
- })),
181
- container = _render15.container;
182
- var span = container.querySelector('span[style*="marginLeft"]');
183
- if (span) {
184
- expect(span).toBeInTheDocument();
185
- } else {
186
- // Arrow might be rendered differently in test environment
187
- expect(container).toBeInTheDocument();
188
- }
189
- });
190
- it('closes dropdown after selecting alignment', function () {
191
- var _render16 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
192
- editor: mockEditor
193
- })),
194
- container = _render16.container,
195
- getByLabelText = _render16.getByLabelText;
196
- var button = container.querySelector('div[style*="display: flex"]');
197
- _react2.fireEvent.click(button);
198
- var centerButton = getByLabelText('Align text center');
199
- _react2.fireEvent.click(centerButton);
200
- expect(mockEditor.commands.setTextAlign).toHaveBeenCalledWith('center');
201
- });
202
- it('renders all alignment options in dropdown', function () {
203
- var _render17 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
204
- editor: mockEditor
205
- })),
206
- container = _render17.container,
207
- getByLabelText = _render17.getByLabelText;
208
- var button = container.querySelector('div[style*="display: flex"]');
209
- _react2.fireEvent.click(button);
210
- expect(getByLabelText('Align text left')).toBeInTheDocument();
211
- expect(getByLabelText('Align text center')).toBeInTheDocument();
212
- expect(getByLabelText('Align text right')).toBeInTheDocument();
213
- expect(getByLabelText('Justify text')).toBeInTheDocument();
214
- });
215
- });
216
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfVGV4dEFsaWduIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZXhjbHVkZWQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImplc3QiLCJtb2NrIiwiZGVmYXVsdCIsIl9yZWYiLCJjaGlsZHJlbiIsIm9uQ2xpY2siLCJ2YWx1ZSIsInByb3BzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJyb2xlIiwiZGVzY3JpYmUiLCJpdCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJBbGlnbkxlZnQiLCJjb250YWluZXIiLCJleHBlY3QiLCJxdWVyeVNlbGVjdG9yIiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyMiIsInN2ZyIsInRvSGF2ZUF0dHJpYnV0ZSIsIl9yZW5kZXIzIiwiQWxpZ25SaWdodCIsIl9yZW5kZXI0IiwiX3JlbmRlcjUiLCJBbGlnbkNlbnRlciIsIl9yZW5kZXI2IiwiX3JlbmRlcjciLCJBbGlnbkp1c3RpZnkiLCJfcmVuZGVyOCIsIm1vY2tFZGl0b3IiLCJpc0FjdGl2ZSIsImZuIiwiY29tbWFuZHMiLCJzZXRUZXh0QWxpZ24iLCJiZWZvcmVFYWNoIiwiY2xlYXJBbGxNb2NrcyIsIl9yZW5kZXI5IiwiZWRpdG9yIiwibW9ja1JldHVyblZhbHVlIiwiX3JlbmRlcjAiLCJtb2NrSW1wbGVtZW50YXRpb24iLCJvcHRpb25zIiwidGV4dEFsaWduIiwiX3JlbmRlcjEiLCJfcmVuZGVyMTAiLCJfcmVuZGVyMTEiLCJfcmVuZGVyMTIiLCJidXR0b24iLCJmaXJlRXZlbnQiLCJjbGljayIsIl9yZW5kZXIxMyIsImdldEJ5TGFiZWxUZXh0IiwibGVmdEJ1dHRvbiIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiX3JlbmRlcjE0IiwibW91c2VEb3duIiwiX3JlbmRlcjE1Iiwic3BhbiIsIl9yZW5kZXIxNiIsImNlbnRlckJ1dHRvbiIsIl9yZW5kZXIxNyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL19fdGVzdHNfXy9UZXh0QWxpZ24udGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciwgZmlyZUV2ZW50IH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgVGV4dEFsaWduSWNvbiwgeyBBbGlnbkxlZnQsIEFsaWduUmlnaHQsIEFsaWduQ2VudGVyLCBBbGlnbkp1c3RpZnkgfSBmcm9tICcuLi9pY29ucy9UZXh0QWxpZ24nO1xuXG5qZXN0Lm1vY2soJ0BtdWkvbWF0ZXJpYWwvTGlzdEl0ZW0nLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiAoeyBjaGlsZHJlbiwgb25DbGljaywgdmFsdWUsIC4uLnByb3BzIH0pID0+IChcbiAgICA8ZGl2IHsuLi5wcm9wc30gdmFsdWU9e3ZhbHVlfSBvbkNsaWNrPXtvbkNsaWNrfSByb2xlPVwibGlzdGl0ZW1cIj5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKSxcbn0pKTtcblxuZGVzY3JpYmUoJ0FsaWduTGVmdCcsICgpID0+IHtcbiAgaXQoJ3JlbmRlcnMgU1ZHJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEFsaWduTGVmdCAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhcyBjb3JyZWN0IHZpZXdCb3gnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8QWxpZ25MZWZ0IC8+KTtcbiAgICBjb25zdCBzdmcgPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJyk7XG4gICAgZXhwZWN0KHN2ZykudG9IYXZlQXR0cmlidXRlKCd2aWV3Qm94JywgJzAgMCA2NiA2NicpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnQWxpZ25SaWdodCcsICgpID0+IHtcbiAgaXQoJ3JlbmRlcnMgU1ZHJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEFsaWduUmlnaHQgLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdoYXMgY29ycmVjdCB2aWV3Qm94JywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEFsaWduUmlnaHQgLz4pO1xuICAgIGNvbnN0IHN2ZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKTtcbiAgICBleHBlY3Qoc3ZnKS50b0hhdmVBdHRyaWJ1dGUoJ3ZpZXdCb3gnLCAnMCAwIDY2IDY2Jyk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdBbGlnbkNlbnRlcicsICgpID0+IHtcbiAgaXQoJ3JlbmRlcnMgU1ZHJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEFsaWduQ2VudGVyIC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGFzIGNvcnJlY3Qgdmlld0JveCcsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxBbGlnbkNlbnRlciAvPik7XG4gICAgY29uc3Qgc3ZnID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpO1xuICAgIGV4cGVjdChzdmcpLnRvSGF2ZUF0dHJpYnV0ZSgndmlld0JveCcsICcwIDAgNjYgNjYnKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0FsaWduSnVzdGlmeScsICgpID0+IHtcbiAgaXQoJ3JlbmRlcnMgU1ZHJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEFsaWduSnVzdGlmeSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhcyBjb3JyZWN0IHZpZXdCb3gnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8QWxpZ25KdXN0aWZ5IC8+KTtcbiAgICBjb25zdCBzdmcgPSBjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJyk7XG4gICAgZXhwZWN0KHN2ZykudG9IYXZlQXR0cmlidXRlKCd2aWV3Qm94JywgJzAgMCA2NiA2NicpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnVGV4dEFsaWduSWNvbicsICgpID0+IHtcbiAgY29uc3QgbW9ja0VkaXRvciA9IHtcbiAgICBpc0FjdGl2ZTogamVzdC5mbigpLFxuICAgIGNvbW1hbmRzOiB7XG4gICAgICBzZXRUZXh0QWxpZ246IGplc3QuZm4oKSxcbiAgICB9LFxuICB9O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGplc3QuY2xlYXJBbGxNb2NrcygpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFRleHRBbGlnbkljb24gZWRpdG9yPXttb2NrRWRpdG9yfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3dzIEFsaWduTGVmdCBpY29uIGJ5IGRlZmF1bHQnLCAoKSA9PiB7XG4gICAgbW9ja0VkaXRvci5pc0FjdGl2ZS5tb2NrUmV0dXJuVmFsdWUoZmFsc2UpO1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFRleHRBbGlnbkljb24gZWRpdG9yPXttb2NrRWRpdG9yfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3dzIEFsaWduUmlnaHQgaWNvbiB3aGVuIHJpZ2h0IGFsaWdubWVudCBpcyBhY3RpdmUnLCAoKSA9PiB7XG4gICAgbW9ja0VkaXRvci5pc0FjdGl2ZS5tb2NrSW1wbGVtZW50YXRpb24oKG9wdGlvbnMpID0+IG9wdGlvbnM/LnRleHRBbGlnbiA9PT0gJ3JpZ2h0Jyk7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8VGV4dEFsaWduSWNvbiBlZGl0b3I9e21vY2tFZGl0b3J9IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnc2hvd3MgQWxpZ25DZW50ZXIgaWNvbiB3aGVuIGNlbnRlciBhbGlnbm1lbnQgaXMgYWN0aXZlJywgKCkgPT4ge1xuICAgIG1vY2tFZGl0b3IuaXNBY3RpdmUubW9ja0ltcGxlbWVudGF0aW9uKChvcHRpb25zKSA9PiBvcHRpb25zPy50ZXh0QWxpZ24gPT09ICdjZW50ZXInKTtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxUZXh0QWxpZ25JY29uIGVkaXRvcj17bW9ja0VkaXRvcn0gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdzaG93cyBBbGlnbkp1c3RpZnkgaWNvbiB3aGVuIGp1c3RpZnkgYWxpZ25tZW50IGlzIGFjdGl2ZScsICgpID0+IHtcbiAgICBtb2NrRWRpdG9yLmlzQWN0aXZlLm1vY2tJbXBsZW1lbnRhdGlvbigob3B0aW9ucykgPT4gb3B0aW9ucz8udGV4dEFsaWduID09PSAnanVzdGlmeScpO1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFRleHRBbGlnbkljb24gZWRpdG9yPXttb2NrRWRpdG9yfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdzdmcnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3RvZ2dsZXMgZHJvcGRvd24gb24gY2xpY2snLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8VGV4dEFsaWduSWNvbiBlZGl0b3I9e21vY2tFZGl0b3J9IC8+KTtcbiAgICBjb25zdCBidXR0b24gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignZGl2W3N0eWxlKj1cImRpc3BsYXk6IGZsZXhcIl0nKTtcbiAgICBmaXJlRXZlbnQuY2xpY2soYnV0dG9uKTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnYXBwbGllcyBhbGlnbm1lbnQgd2hlbiBsaXN0IGl0ZW0gaXMgY2xpY2tlZCcsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciwgZ2V0QnlMYWJlbFRleHQgfSA9IHJlbmRlcig8VGV4dEFsaWduSWNvbiBlZGl0b3I9e21vY2tFZGl0b3J9IC8+KTtcbiAgICBjb25zdCBidXR0b24gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignZGl2W3N0eWxlKj1cImRpc3BsYXk6IGZsZXhcIl0nKTtcbiAgICBmaXJlRXZlbnQuY2xpY2soYnV0dG9uKTtcblxuICAgIGNvbnN0IGxlZnRCdXR0b24gPSBnZXRCeUxhYmVsVGV4dCgnQWxpZ24gdGV4dCBsZWZ0Jyk7XG4gICAgZmlyZUV2ZW50LmNsaWNrKGxlZnRCdXR0b24pO1xuICAgIGV4cGVjdChtb2NrRWRpdG9yLmNvbW1hbmRzLnNldFRleHRBbGlnbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2xlZnQnKTtcbiAgfSk7XG5cbiAgaXQoJ3ByZXZlbnRzIGRlZmF1bHQgYW5kIHN0b3BzIHByb3BhZ2F0aW9uIG9uIG1vdXNlIGRvd24nLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8VGV4dEFsaWduSWNvbiBlZGl0b3I9e21vY2tFZGl0b3J9IC8+KTtcbiAgICBjb25zdCBidXR0b24gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignZGl2W3N0eWxlKj1cImRpc3BsYXlcIl0nKTtcbiAgICBpZiAoYnV0dG9uKSB7XG4gICAgICBmaXJlRXZlbnQubW91c2VEb3duKGJ1dHRvbik7XG4gICAgICAvLyBKdXN0IHZlcmlmeSB0aGUgZXZlbnQgaGFuZGxlciBkaWRuJ3QgdGhyb3dcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfVxuICB9KTtcblxuICBpdCgnc2hvd3MgZHJvcGRvd24gYXJyb3cnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8VGV4dEFsaWduSWNvbiBlZGl0b3I9e21vY2tFZGl0b3J9IC8+KTtcbiAgICBjb25zdCBzcGFuID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ3NwYW5bc3R5bGUqPVwibWFyZ2luTGVmdFwiXScpO1xuICAgIGlmIChzcGFuKSB7XG4gICAgICBleHBlY3Qoc3BhbikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXJyb3cgbWlnaHQgYmUgcmVuZGVyZWQgZGlmZmVyZW50bHkgaW4gdGVzdCBlbnZpcm9ubWVudFxuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdjbG9zZXMgZHJvcGRvd24gYWZ0ZXIgc2VsZWN0aW5nIGFsaWdubWVudCcsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciwgZ2V0QnlMYWJlbFRleHQgfSA9IHJlbmRlcig8VGV4dEFsaWduSWNvbiBlZGl0b3I9e21vY2tFZGl0b3J9IC8+KTtcbiAgICBjb25zdCBidXR0b24gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignZGl2W3N0eWxlKj1cImRpc3BsYXk6IGZsZXhcIl0nKTtcbiAgICBmaXJlRXZlbnQuY2xpY2soYnV0dG9uKTtcblxuICAgIGNvbnN0IGNlbnRlckJ1dHRvbiA9IGdldEJ5TGFiZWxUZXh0KCdBbGlnbiB0ZXh0IGNlbnRlcicpO1xuICAgIGZpcmVFdmVudC5jbGljayhjZW50ZXJCdXR0b24pO1xuICAgIGV4cGVjdChtb2NrRWRpdG9yLmNvbW1hbmRzLnNldFRleHRBbGlnbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2NlbnRlcicpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBhbGwgYWxpZ25tZW50IG9wdGlvbnMgaW4gZHJvcGRvd24nLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIsIGdldEJ5TGFiZWxUZXh0IH0gPSByZW5kZXIoPFRleHRBbGlnbkljb24gZWRpdG9yPXttb2NrRWRpdG9yfSAvPik7XG4gICAgY29uc3QgYnV0dG9uID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2RpdltzdHlsZSo9XCJkaXNwbGF5OiBmbGV4XCJdJyk7XG4gICAgZmlyZUV2ZW50LmNsaWNrKGJ1dHRvbik7XG5cbiAgICBleHBlY3QoZ2V0QnlMYWJlbFRleHQoJ0FsaWduIHRleHQgbGVmdCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIGV4cGVjdChnZXRCeUxhYmVsVGV4dCgnQWxpZ24gdGV4dCBjZW50ZXInKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICBleHBlY3QoZ2V0QnlMYWJlbFRleHQoJ0FsaWduIHRleHQgcmlnaHQnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICBleHBlY3QoZ2V0QnlMYWJlbFRleHQoJ0p1c3RpZnkgdGV4dCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQXFHLElBQUFJLFNBQUE7QUFBQSxTQUFBRCx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUosdUJBQUEsWUFBQUEsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFPLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUSxDQUFBLGNBQUFNLEVBQUEsSUFBQWQsQ0FBQSxnQkFBQWMsRUFBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsRUFBQSxPQUFBUCxDQUFBLElBQUFELENBQUEsR0FBQVcsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQW5CLENBQUEsRUFBQWMsRUFBQSxPQUFBUCxDQUFBLENBQUFLLEdBQUEsSUFBQUwsQ0FBQSxDQUFBTSxHQUFBLElBQUFQ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