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

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 (114) hide show
  1. package/lib/__tests__/EditableHtml.test.js +377 -0
  2. package/lib/__tests__/constants.test.js +21 -0
  3. package/lib/__tests__/extensions.test.js +209 -0
  4. package/lib/__tests__/index.test.js +235 -0
  5. package/lib/__tests__/size-utils.test.js +57 -0
  6. package/lib/__tests__/theme.test.js +17 -0
  7. package/lib/components/CharacterPicker.js +1 -1
  8. package/lib/components/CharacterPicker.js.map +1 -1
  9. package/lib/components/EditableHtml.js +1 -1
  10. package/lib/components/EditableHtml.js.map +1 -1
  11. package/lib/components/MenuBar.js +1 -1
  12. package/lib/components/MenuBar.js.map +1 -1
  13. package/lib/components/TiptapContainer.js +25 -6
  14. package/lib/components/TiptapContainer.js.map +1 -1
  15. package/lib/components/__tests__/AltDialog.test.js +201 -0
  16. package/lib/components/__tests__/CharacterPicker.test.js +305 -0
  17. package/lib/components/__tests__/CssIcon.test.js +58 -0
  18. package/lib/components/__tests__/DragInTheBlank.test.js +295 -0
  19. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +253 -0
  20. package/lib/components/__tests__/ImageToolbar.test.js +185 -0
  21. package/lib/components/__tests__/InlineDropdown.test.js +287 -0
  22. package/lib/components/__tests__/InsertImageHandler.test.js +162 -0
  23. package/lib/components/__tests__/MediaDialog.test.js +433 -0
  24. package/lib/components/__tests__/MediaToolbar.test.js +126 -0
  25. package/lib/components/__tests__/MediaWrapper.test.js +96 -0
  26. package/lib/components/__tests__/MenuBar.test.js +459 -0
  27. package/lib/components/__tests__/RespArea.test.js +171 -0
  28. package/lib/components/__tests__/TableIcons.test.js +153 -0
  29. package/lib/components/__tests__/TextAlign.test.js +209 -0
  30. package/lib/components/__tests__/TiptapContainer.test.js +196 -0
  31. package/lib/components/__tests__/characterUtils.test.js +178 -0
  32. package/lib/components/__tests__/choice.test.js +213 -0
  33. package/lib/components/__tests__/custom-popper.test.js +108 -0
  34. package/lib/components/__tests__/done-button.test.js +72 -0
  35. package/lib/components/__tests__/toolbar-buttons.test.js +277 -0
  36. package/lib/components/characters/characterUtils.js +1 -1
  37. package/lib/components/characters/characterUtils.js.map +1 -1
  38. package/lib/components/characters/custom-popper.js +1 -1
  39. package/lib/components/characters/custom-popper.js.map +1 -1
  40. package/lib/components/common/done-button.js +1 -1
  41. package/lib/components/common/done-button.js.map +1 -1
  42. package/lib/components/common/toolbar-buttons.js +1 -1
  43. package/lib/components/common/toolbar-buttons.js.map +1 -1
  44. package/lib/components/icons/CssIcon.js +1 -1
  45. package/lib/components/icons/CssIcon.js.map +1 -1
  46. package/lib/components/icons/RespArea.js +1 -1
  47. package/lib/components/icons/RespArea.js.map +1 -1
  48. package/lib/components/icons/TableIcons.js +1 -1
  49. package/lib/components/icons/TableIcons.js.map +1 -1
  50. package/lib/components/icons/TextAlign.js +1 -1
  51. package/lib/components/icons/TextAlign.js.map +1 -1
  52. package/lib/components/image/AltDialog.js +1 -1
  53. package/lib/components/image/AltDialog.js.map +1 -1
  54. package/lib/components/image/ImageToolbar.js +1 -1
  55. package/lib/components/image/ImageToolbar.js.map +1 -1
  56. package/lib/components/image/InsertImageHandler.js +1 -1
  57. package/lib/components/image/InsertImageHandler.js.map +1 -1
  58. package/lib/components/media/MediaDialog.js +1 -1
  59. package/lib/components/media/MediaDialog.js.map +1 -1
  60. package/lib/components/media/MediaToolbar.js +1 -1
  61. package/lib/components/media/MediaToolbar.js.map +1 -1
  62. package/lib/components/media/MediaWrapper.js +1 -1
  63. package/lib/components/media/MediaWrapper.js.map +1 -1
  64. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +1 -1
  65. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +1 -1
  66. package/lib/components/respArea/DragInTheBlank/choice.js +1 -1
  67. package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
  68. package/lib/components/respArea/ExplicitConstructedResponse.js +1 -1
  69. package/lib/components/respArea/ExplicitConstructedResponse.js.map +1 -1
  70. package/lib/components/respArea/InlineDropdown.js +1 -1
  71. package/lib/components/respArea/InlineDropdown.js.map +1 -1
  72. package/lib/components/respArea/ToolbarIcon.js +1 -1
  73. package/lib/components/respArea/ToolbarIcon.js.map +1 -1
  74. package/lib/constants.js +1 -1
  75. package/lib/constants.js.map +1 -1
  76. package/lib/extensions/__tests__/component.test.js +314 -0
  77. package/lib/extensions/__tests__/css.test.js +214 -0
  78. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +175 -0
  79. package/lib/extensions/__tests__/extended-table.test.js +92 -0
  80. package/lib/extensions/__tests__/image-component.test.js +305 -0
  81. package/lib/extensions/__tests__/image.test.js +164 -0
  82. package/lib/extensions/__tests__/media.test.js +292 -0
  83. package/lib/extensions/__tests__/responseArea.test.js +330 -0
  84. package/lib/extensions/component.js +305 -0
  85. package/lib/extensions/css.js +1 -1
  86. package/lib/extensions/css.js.map +1 -1
  87. package/lib/extensions/custom-toolbar-wrapper.js +1 -1
  88. package/lib/extensions/custom-toolbar-wrapper.js.map +1 -1
  89. package/lib/extensions/extended-table.js +1 -1
  90. package/lib/extensions/extended-table.js.map +1 -1
  91. package/lib/extensions/image-component.js +1 -1
  92. package/lib/extensions/image-component.js.map +1 -1
  93. package/lib/extensions/image.js +1 -1
  94. package/lib/extensions/image.js.map +1 -1
  95. package/lib/extensions/index.js +1 -1
  96. package/lib/extensions/index.js.map +1 -1
  97. package/lib/extensions/math.js +1 -1
  98. package/lib/extensions/math.js.map +1 -1
  99. package/lib/extensions/media.js +1 -1
  100. package/lib/extensions/media.js.map +1 -1
  101. package/lib/extensions/responseArea.js +1 -1
  102. package/lib/extensions/responseArea.js.map +1 -1
  103. package/lib/index.js +1 -1
  104. package/lib/index.js.map +1 -1
  105. package/lib/styles/editorContainerStyles.js +1 -1
  106. package/lib/styles/editorContainerStyles.js.map +1 -1
  107. package/lib/theme.js +1 -1
  108. package/lib/theme.js.map +1 -1
  109. package/lib/utils/size.js +1 -1
  110. package/lib/utils/size.js.map +1 -1
  111. package/package.json +2 -2
  112. package/src/components/TiptapContainer.jsx +24 -4
  113. package/LICENSE.md +0 -5
  114. package/NEXT.CHANGELOG.json +0 -1
@@ -0,0 +1,377 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _react2 = require("@testing-library/react");
11
+ var _EditableHtml = require("../components/EditableHtml");
12
+ var _excluded = ["editor"];
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ // Mock TipTap dependencies
16
+ jest.mock('@tiptap/react', function () {
17
+ return {
18
+ EditorContent: function EditorContent(_ref) {
19
+ var editor = _ref.editor,
20
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
21
+ return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
22
+ "data-testid": "editor-content"
23
+ }, props));
24
+ },
25
+ useEditor: jest.fn(function (config) {
26
+ var mockEditor = {
27
+ getHTML: jest.fn(function () {
28
+ return '<p>test content</p>';
29
+ }),
30
+ setEditable: jest.fn(),
31
+ commands: {
32
+ setContent: jest.fn()
33
+ },
34
+ isActive: jest.fn(function () {
35
+ return false;
36
+ }),
37
+ isFocused: false
38
+ };
39
+ return mockEditor;
40
+ }),
41
+ useEditorState: jest.fn(function () {
42
+ return {
43
+ isFocused: false
44
+ };
45
+ })
46
+ };
47
+ });
48
+ jest.mock('@tiptap/starter-kit', function () {
49
+ return {
50
+ __esModule: true,
51
+ "default": {}
52
+ };
53
+ });
54
+ jest.mock('@tiptap/extension-text-style', function () {
55
+ return {
56
+ TextStyleKit: {}
57
+ };
58
+ });
59
+ jest.mock('@tiptap/extension-character-count', function () {
60
+ return {
61
+ CharacterCount: {
62
+ configure: jest.fn(function () {
63
+ return {};
64
+ })
65
+ }
66
+ };
67
+ });
68
+ jest.mock('@tiptap/extension-superscript', function () {
69
+ return {
70
+ __esModule: true,
71
+ "default": {}
72
+ };
73
+ });
74
+ jest.mock('@tiptap/extension-subscript', function () {
75
+ return {
76
+ __esModule: true,
77
+ "default": {}
78
+ };
79
+ });
80
+ jest.mock('@tiptap/extension-text-align', function () {
81
+ return {
82
+ __esModule: true,
83
+ "default": {
84
+ configure: jest.fn(function () {
85
+ return {};
86
+ })
87
+ }
88
+ };
89
+ });
90
+ jest.mock('@tiptap/extension-image', function () {
91
+ return {
92
+ __esModule: true,
93
+ "default": {}
94
+ };
95
+ });
96
+ jest.mock('@tiptap/extension-table', function () {
97
+ return {
98
+ __esModule: true,
99
+ "default": {}
100
+ };
101
+ });
102
+ jest.mock('@tiptap/extension-table-row', function () {
103
+ return {
104
+ TableRow: {}
105
+ };
106
+ });
107
+ jest.mock('@tiptap/extension-table-cell', function () {
108
+ return {
109
+ TableCell: {}
110
+ };
111
+ });
112
+ jest.mock('@tiptap/extension-table-header', function () {
113
+ return {
114
+ TableHeader: {}
115
+ };
116
+ });
117
+ jest.mock('../extensions/extended-table', function () {
118
+ return {
119
+ __esModule: true,
120
+ "default": {}
121
+ };
122
+ });
123
+ jest.mock('../extensions/responseArea', function () {
124
+ return {
125
+ ExplicitConstructedResponseNode: {
126
+ configure: jest.fn(function () {
127
+ return {};
128
+ })
129
+ },
130
+ DragInTheBlankNode: {
131
+ configure: jest.fn(function () {
132
+ return {};
133
+ })
134
+ },
135
+ InlineDropdownNode: {
136
+ configure: jest.fn(function () {
137
+ return {};
138
+ })
139
+ },
140
+ ResponseAreaExtension: {
141
+ configure: jest.fn(function () {
142
+ return {};
143
+ })
144
+ }
145
+ };
146
+ });
147
+ jest.mock('../extensions/math', function () {
148
+ return {
149
+ MathNode: {
150
+ configure: jest.fn(function () {
151
+ return {};
152
+ })
153
+ }
154
+ };
155
+ });
156
+ jest.mock('../extensions/image', function () {
157
+ return {
158
+ ImageUploadNode: {
159
+ configure: jest.fn(function () {
160
+ return {};
161
+ })
162
+ }
163
+ };
164
+ });
165
+ jest.mock('../extensions/media', function () {
166
+ return {
167
+ Media: {
168
+ configure: jest.fn(function () {
169
+ return {};
170
+ })
171
+ }
172
+ };
173
+ });
174
+ jest.mock('../extensions/css', function () {
175
+ return {
176
+ CSSMark: {
177
+ configure: jest.fn(function () {
178
+ return {};
179
+ })
180
+ }
181
+ };
182
+ });
183
+ jest.mock('../components/TiptapContainer', function () {
184
+ return {
185
+ __esModule: true,
186
+ "default": function _default(_ref2) {
187
+ var children = _ref2.children;
188
+ return /*#__PURE__*/_react["default"].createElement("div", {
189
+ "data-testid": "editor-container"
190
+ }, children);
191
+ }
192
+ };
193
+ });
194
+ jest.mock('../extensions', function () {
195
+ return _objectSpread(_objectSpread({}, jest.requireActual('../extensions')), {}, {
196
+ buildExtensions: jest.fn(function () {
197
+ return [];
198
+ })
199
+ });
200
+ });
201
+ describe('EditableHtml', function () {
202
+ var defaultProps = {
203
+ markup: '<p>Hello World</p>',
204
+ onChange: jest.fn(),
205
+ onDone: jest.fn(),
206
+ disabled: false
207
+ };
208
+ beforeEach(function () {
209
+ jest.clearAllMocks();
210
+ });
211
+ it('renders without crashing', function () {
212
+ var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, defaultProps)),
213
+ container = _render.container;
214
+ expect(container).toBeInTheDocument();
215
+ });
216
+ it('renders editor container', function () {
217
+ var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, defaultProps)),
218
+ getByTestId = _render2.getByTestId;
219
+ expect(getByTestId('editor-container')).toBeInTheDocument();
220
+ });
221
+ it('renders editor content when editor is initialized', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
222
+ var _render3, getByTestId;
223
+ return _regenerator["default"].wrap(function (_context) {
224
+ while (1) switch (_context.prev = _context.next) {
225
+ case 0:
226
+ _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, defaultProps)), getByTestId = _render3.getByTestId;
227
+ _context.next = 1;
228
+ return (0, _react2.waitFor)(function () {
229
+ expect(getByTestId('editor-content')).toBeInTheDocument();
230
+ });
231
+ case 1:
232
+ case "end":
233
+ return _context.stop();
234
+ }
235
+ }, _callee);
236
+ })));
237
+ it('accepts custom toolbar options', function () {
238
+ var toolbarOpts = {
239
+ position: 'top',
240
+ alignment: 'center',
241
+ alwaysVisible: true,
242
+ showDone: false,
243
+ doneOn: 'change'
244
+ };
245
+ var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
246
+ toolbarOpts: toolbarOpts
247
+ }))),
248
+ container = _render4.container;
249
+ expect(container).toBeInTheDocument();
250
+ });
251
+ it('accepts custom active plugins', function () {
252
+ var activePlugins = ['bold', 'italic', 'underline'];
253
+ var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
254
+ activePlugins: activePlugins
255
+ }))),
256
+ container = _render5.container;
257
+ expect(container).toBeInTheDocument();
258
+ });
259
+ it('accepts plugin props', function () {
260
+ var pluginProps = {
261
+ showParagraphs: {
262
+ disabled: false
263
+ },
264
+ separateParagraphs: {
265
+ disabled: false
266
+ }
267
+ };
268
+ var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
269
+ pluginProps: pluginProps
270
+ }))),
271
+ container = _render6.container;
272
+ expect(container).toBeInTheDocument();
273
+ });
274
+ it('accepts response area props', function () {
275
+ var responseAreaProps = {
276
+ type: 'explicit-constructed-response',
277
+ options: {}
278
+ };
279
+ var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
280
+ responseAreaProps: responseAreaProps
281
+ }))),
282
+ container = _render7.container;
283
+ expect(container).toBeInTheDocument();
284
+ });
285
+ it('accepts size props', function () {
286
+ var sizeProps = {
287
+ width: 500,
288
+ height: 300,
289
+ minHeight: 200,
290
+ maxHeight: 400,
291
+ minWidth: 300,
292
+ maxWidth: 600
293
+ };
294
+ var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, sizeProps))),
295
+ container = _render8.container;
296
+ expect(container).toBeInTheDocument();
297
+ });
298
+ it('accepts character limit', function () {
299
+ var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
300
+ charactersLimit: 500
301
+ }))),
302
+ container = _render9.container;
303
+ expect(container).toBeInTheDocument();
304
+ });
305
+ it('accepts image support props', function () {
306
+ var imageSupport = {
307
+ add: jest.fn(),
308
+ "delete": jest.fn()
309
+ };
310
+ var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
311
+ imageSupport: imageSupport
312
+ }))),
313
+ container = _render0.container;
314
+ expect(container).toBeInTheDocument();
315
+ });
316
+ it('accepts max image dimensions', function () {
317
+ var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
318
+ maxImageWidth: 800,
319
+ maxImageHeight: 600
320
+ }))),
321
+ container = _render1.container;
322
+ expect(container).toBeInTheDocument();
323
+ });
324
+ it('accepts language characters props', function () {
325
+ var languageCharactersProps = [{
326
+ label: 'Greek',
327
+ value: 'greek'
328
+ }, {
329
+ label: 'Cyrillic',
330
+ value: 'cyrillic'
331
+ }];
332
+ var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
333
+ languageCharactersProps: languageCharactersProps
334
+ }))),
335
+ container = _render10.container;
336
+ expect(container).toBeInTheDocument();
337
+ });
338
+ it('accepts extra CSS rules', function () {
339
+ var extraCSSRules = {
340
+ '.custom-class': {
341
+ color: 'red'
342
+ }
343
+ };
344
+ var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
345
+ extraCSSRules: extraCSSRules
346
+ }))),
347
+ container = _render11.container;
348
+ expect(container).toBeInTheDocument();
349
+ });
350
+ it('accepts upload sound support', function () {
351
+ var uploadSoundSupport = {
352
+ add: jest.fn(),
353
+ "delete": jest.fn()
354
+ };
355
+ var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
356
+ uploadSoundSupport: uploadSoundSupport
357
+ }))),
358
+ container = _render12.container;
359
+ expect(container).toBeInTheDocument();
360
+ });
361
+ it('accepts onKeyDown handler', function () {
362
+ var onKeyDown = jest.fn();
363
+ var _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
364
+ onKeyDown: onKeyDown
365
+ }))),
366
+ container = _render13.container;
367
+ expect(container).toBeInTheDocument();
368
+ });
369
+ it('accepts disableImageAlignmentButtons prop', function () {
370
+ var _render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, (0, _extends2["default"])({}, defaultProps, {
371
+ disableImageAlignmentButtons: true
372
+ }))),
373
+ container = _render14.container;
374
+ expect(container).toBeInTheDocument();
375
+ });
376
+ });
377
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfRWRpdGFibGVIdG1sIiwiX2V4Y2x1ZGVkIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJqZXN0IiwibW9jayIsIkVkaXRvckNvbnRlbnQiLCJfcmVmIiwiZWRpdG9yIiwicHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsInVzZUVkaXRvciIsImZuIiwiY29uZmlnIiwibW9ja0VkaXRvciIsImdldEhUTUwiLCJzZXRFZGl0YWJsZSIsImNvbW1hbmRzIiwic2V0Q29udGVudCIsImlzQWN0aXZlIiwiaXNGb2N1c2VkIiwidXNlRWRpdG9yU3RhdGUiLCJfX2VzTW9kdWxlIiwiVGV4dFN0eWxlS2l0IiwiQ2hhcmFjdGVyQ291bnQiLCJjb25maWd1cmUiLCJUYWJsZVJvdyIsIlRhYmxlQ2VsbCIsIlRhYmxlSGVhZGVyIiwiRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlTm9kZSIsIkRyYWdJblRoZUJsYW5rTm9kZSIsIklubGluZURyb3Bkb3duTm9kZSIsIlJlc3BvbnNlQXJlYUV4dGVuc2lvbiIsIk1hdGhOb2RlIiwiSW1hZ2VVcGxvYWROb2RlIiwiTWVkaWEiLCJDU1NNYXJrIiwiZGVmYXVsdCIsIl9yZWYyIiwiY2hpbGRyZW4iLCJyZXF1aXJlQWN0dWFsIiwiYnVpbGRFeHRlbnNpb25zIiwiZGVzY3JpYmUiLCJkZWZhdWx0UHJvcHMiLCJtYXJrdXAiLCJvbkNoYW5nZSIsIm9uRG9uZSIsImRpc2FibGVkIiwiYmVmb3JlRWFjaCIsImNsZWFyQWxsTW9ja3MiLCJpdCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJFZGl0YWJsZUh0bWwiLCJjb250YWluZXIiLCJleHBlY3QiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIl9yZW5kZXIyIiwiZ2V0QnlUZXN0SWQiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIl9yZW5kZXIzIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ3YWl0Rm9yIiwic3RvcCIsInRvb2xiYXJPcHRzIiwicG9zaXRpb24iLCJhbGlnbm1lbnQiLCJhbHdheXNWaXNpYmxlIiwic2hvd0RvbmUiLCJkb25lT24iLCJfcmVuZGVyNCIsImFjdGl2ZVBsdWdpbnMiLCJfcmVuZGVyNSIsInBsdWdpblByb3BzIiwic2hvd1BhcmFncmFwaHMiLCJzZXBhcmF0ZVBhcmFncmFwaHMiLCJfcmVuZGVyNiIsInJlc3BvbnNlQXJlYVByb3BzIiwidHlwZSIsIm9wdGlvbnMiLCJfcmVuZGVyNyIsInNpemVQcm9wcyIsIndpZHRoIiwiaGVpZ2h0IiwibWluSGVpZ2h0IiwibWF4SGVpZ2h0IiwibWluV2lkdGgiLCJtYXhXaWR0aCIsIl9yZW5kZXI4IiwiX3JlbmRlcjkiLCJjaGFyYWN0ZXJzTGltaXQiLCJpbWFnZVN1cHBvcnQiLCJhZGQiLCJfcmVuZGVyMCIsIl9yZW5kZXIxIiwibWF4SW1hZ2VXaWR0aCIsIm1heEltYWdlSGVpZ2h0IiwibGFuZ3VhZ2VDaGFyYWN0ZXJzUHJvcHMiLCJsYWJlbCIsInZhbHVlIiwiX3JlbmRlcjEwIiwiZXh0cmFDU1NSdWxlcyIsImNvbG9yIiwiX3JlbmRlcjExIiwidXBsb2FkU291bmRTdXBwb3J0IiwiX3JlbmRlcjEyIiwib25LZXlEb3duIiwiX3JlbmRlcjEzIiwiX3JlbmRlcjE0IiwiZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vRWRpdGFibGVIdG1sLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIsIHdhaXRGb3IgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IEVkaXRhYmxlSHRtbCB9IGZyb20gJy4uL2NvbXBvbmVudHMvRWRpdGFibGVIdG1sJztcblxuLy8gTW9jayBUaXBUYXAgZGVwZW5kZW5jaWVzXG5qZXN0Lm1vY2soJ0B0aXB0YXAvcmVhY3QnLCAoKSA9PiAoe1xuICBFZGl0b3JDb250ZW50OiAoeyBlZGl0b3IsIC4uLnByb3BzIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJlZGl0b3ItY29udGVudFwiIHsuLi5wcm9wc30gLz4sXG4gIHVzZUVkaXRvcjogamVzdC5mbigoY29uZmlnKSA9PiB7XG4gICAgY29uc3QgbW9ja0VkaXRvciA9IHtcbiAgICAgIGdldEhUTUw6IGplc3QuZm4oKCkgPT4gJzxwPnRlc3QgY29udGVudDwvcD4nKSxcbiAgICAgIHNldEVkaXRhYmxlOiBqZXN0LmZuKCksXG4gICAgICBjb21tYW5kczoge1xuICAgICAgICBzZXRDb250ZW50OiBqZXN0LmZuKCksXG4gICAgICB9LFxuICAgICAgaXNBY3RpdmU6IGplc3QuZm4oKCkgPT4gZmFsc2UpLFxuICAgICAgaXNGb2N1c2VkOiBmYWxzZSxcbiAgICB9O1xuICAgIHJldHVybiBtb2NrRWRpdG9yO1xuICB9KSxcbiAgdXNlRWRpdG9yU3RhdGU6IGplc3QuZm4oKCkgPT4gKHtcbiAgICBpc0ZvY3VzZWQ6IGZhbHNlLFxuICB9KSksXG59KSk7XG5cbmplc3QubW9jaygnQHRpcHRhcC9zdGFydGVyLWtpdCcsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IHt9LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0B0aXB0YXAvZXh0ZW5zaW9uLXRleHQtc3R5bGUnLCAoKSA9PiAoe1xuICBUZXh0U3R5bGVLaXQ6IHt9LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0B0aXB0YXAvZXh0ZW5zaW9uLWNoYXJhY3Rlci1jb3VudCcsICgpID0+ICh7XG4gIENoYXJhY3RlckNvdW50OiB7XG4gICAgY29uZmlndXJlOiBqZXN0LmZuKCgpID0+ICh7fSkpLFxuICB9LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0B0aXB0YXAvZXh0ZW5zaW9uLXN1cGVyc2NyaXB0JywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDoge30sXG59KSk7XG5cbmplc3QubW9jaygnQHRpcHRhcC9leHRlbnNpb24tc3Vic2NyaXB0JywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDoge30sXG59KSk7XG5cbmplc3QubW9jaygnQHRpcHRhcC9leHRlbnNpb24tdGV4dC1hbGlnbicsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IHtcbiAgICBjb25maWd1cmU6IGplc3QuZm4oKCkgPT4gKHt9KSksXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygnQHRpcHRhcC9leHRlbnNpb24taW1hZ2UnLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiB7fSxcbn0pKTtcblxuamVzdC5tb2NrKCdAdGlwdGFwL2V4dGVuc2lvbi10YWJsZScsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IHt9LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0B0aXB0YXAvZXh0ZW5zaW9uLXRhYmxlLXJvdycsICgpID0+ICh7XG4gIFRhYmxlUm93OiB7fSxcbn0pKTtcblxuamVzdC5tb2NrKCdAdGlwdGFwL2V4dGVuc2lvbi10YWJsZS1jZWxsJywgKCkgPT4gKHtcbiAgVGFibGVDZWxsOiB7fSxcbn0pKTtcblxuamVzdC5tb2NrKCdAdGlwdGFwL2V4dGVuc2lvbi10YWJsZS1oZWFkZXInLCAoKSA9PiAoe1xuICBUYWJsZUhlYWRlcjoge30sXG59KSk7XG5cbmplc3QubW9jaygnLi4vZXh0ZW5zaW9ucy9leHRlbmRlZC10YWJsZScsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IHt9LFxufSkpO1xuXG5qZXN0Lm1vY2soJy4uL2V4dGVuc2lvbnMvcmVzcG9uc2VBcmVhJywgKCkgPT4gKHtcbiAgRXhwbGljaXRDb25zdHJ1Y3RlZFJlc3BvbnNlTm9kZToge1xuICAgIGNvbmZpZ3VyZTogamVzdC5mbigoKSA9PiAoe30pKSxcbiAgfSxcbiAgRHJhZ0luVGhlQmxhbmtOb2RlOiB7XG4gICAgY29uZmlndXJlOiBqZXN0LmZuKCgpID0+ICh7fSkpLFxuICB9LFxuICBJbmxpbmVEcm9wZG93bk5vZGU6IHtcbiAgICBjb25maWd1cmU6IGplc3QuZm4oKCkgPT4gKHt9KSksXG4gIH0sXG4gIFJlc3BvbnNlQXJlYUV4dGVuc2lvbjoge1xuICAgIGNvbmZpZ3VyZTogamVzdC5mbigoKSA9PiAoe30pKSxcbiAgfSxcbn0pKTtcblxuamVzdC5tb2NrKCcuLi9leHRlbnNpb25zL21hdGgnLCAoKSA9PiAoe1xuICBNYXRoTm9kZToge1xuICAgIGNvbmZpZ3VyZTogamVzdC5mbigoKSA9PiAoe30pKSxcbiAgfSxcbn0pKTtcblxuamVzdC5tb2NrKCcuLi9leHRlbnNpb25zL2ltYWdlJywgKCkgPT4gKHtcbiAgSW1hZ2VVcGxvYWROb2RlOiB7XG4gICAgY29uZmlndXJlOiBqZXN0LmZuKCgpID0+ICh7fSkpLFxuICB9LFxufSkpO1xuXG5qZXN0Lm1vY2soJy4uL2V4dGVuc2lvbnMvbWVkaWEnLCAoKSA9PiAoe1xuICBNZWRpYToge1xuICAgIGNvbmZpZ3VyZTogamVzdC5mbigoKSA9PiAoe30pKSxcbiAgfSxcbn0pKTtcblxuamVzdC5tb2NrKCcuLi9leHRlbnNpb25zL2NzcycsICgpID0+ICh7XG4gIENTU01hcms6IHtcbiAgICBjb25maWd1cmU6IGplc3QuZm4oKCkgPT4gKHt9KSksXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygnLi4vY29tcG9uZW50cy9UaXB0YXBDb250YWluZXInLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiAoeyBjaGlsZHJlbiB9KSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiZWRpdG9yLWNvbnRhaW5lclwiPntjaGlsZHJlbn08L2Rpdj4sXG59KSk7XG5cbmplc3QubW9jaygnLi4vZXh0ZW5zaW9ucycsICgpID0+ICh7XG4gIC4uLmplc3QucmVxdWlyZUFjdHVhbCgnLi4vZXh0ZW5zaW9ucycpLFxuICBidWlsZEV4dGVuc2lvbnM6IGplc3QuZm4oKCkgPT4gW10pLFxufSkpO1xuXG5kZXNjcmliZSgnRWRpdGFibGVIdG1sJywgKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgbWFya3VwOiAnPHA+SGVsbG8gV29ybGQ8L3A+JyxcbiAgICBvbkNoYW5nZTogamVzdC5mbigpLFxuICAgIG9uRG9uZTogamVzdC5mbigpLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgfTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBqZXN0LmNsZWFyQWxsTW9ja3MoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxFZGl0YWJsZUh0bWwgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIGVkaXRvciBjb250YWluZXInLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxFZGl0YWJsZUh0bWwgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRlc3RJZCgnZWRpdG9yLWNvbnRhaW5lcicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBlZGl0b3IgY29udGVudCB3aGVuIGVkaXRvciBpcyBpbml0aWFsaXplZCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPEVkaXRhYmxlSHRtbCB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgICBleHBlY3QoZ2V0QnlUZXN0SWQoJ2VkaXRvci1jb250ZW50JykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdhY2NlcHRzIGN1c3RvbSB0b29sYmFyIG9wdGlvbnMnLCAoKSA9PiB7XG4gICAgY29uc3QgdG9vbGJhck9wdHMgPSB7XG4gICAgICBwb3NpdGlvbjogJ3RvcCcsXG4gICAgICBhbGlnbm1lbnQ6ICdjZW50ZXInLFxuICAgICAgYWx3YXlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgIHNob3dEb25lOiBmYWxzZSxcbiAgICAgIGRvbmVPbjogJ2NoYW5nZScsXG4gICAgfTtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxFZGl0YWJsZUh0bWwgey4uLmRlZmF1bHRQcm9wc30gdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2FjY2VwdHMgY3VzdG9tIGFjdGl2ZSBwbHVnaW5zJywgKCkgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZVBsdWdpbnMgPSBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZSddO1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEVkaXRhYmxlSHRtbCB7Li4uZGVmYXVsdFByb3BzfSBhY3RpdmVQbHVnaW5zPXthY3RpdmVQbHVnaW5zfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2FjY2VwdHMgcGx1Z2luIHByb3BzJywgKCkgPT4ge1xuICAgIGNvbnN0IHBsdWdpblByb3BzID0ge1xuICAgICAgc2hvd1BhcmFncmFwaHM6IHsgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICBzZXBhcmF0ZVBhcmFncmFwaHM6IHsgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgfTtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxFZGl0YWJsZUh0bWwgey4uLmRlZmF1bHRQcm9wc30gcGx1Z2luUHJvcHM9e3BsdWdpblByb3BzfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2FjY2VwdHMgcmVzcG9uc2UgYXJlYSBwcm9wcycsICgpID0+IHtcbiAgICBjb25zdCByZXNwb25zZUFyZWFQcm9wcyA9IHtcbiAgICAgIHR5cGU6ICdleHBsaWNpdC1jb25zdHJ1Y3RlZC1yZXNwb25zZScsXG4gICAgICBvcHRpb25zOiB7fSxcbiAgICB9O1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEVkaXRhYmxlSHRtbCB7Li4uZGVmYXVsdFByb3BzfSByZXNwb25zZUFyZWFQcm9wcz17cmVzcG9uc2VBcmVhUHJvcHN9IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnYWNjZXB0cyBzaXplIHByb3BzJywgKCkgPT4ge1xuICAgIGNvbnN0IHNpemVQcm9wcyA9IHtcbiAgICAgIHdpZHRoOiA1MDAsXG4gICAgICBoZWlnaHQ6IDMwMCxcbiAgICAgIG1pbkhlaWdodDogMjAwLFxuICAgICAgbWF4SGVpZ2h0OiA0MDAsXG4gICAgICBtaW5XaWR0aDogMzAwLFxuICAgICAgbWF4V2lkdGg6IDYwMCxcbiAgICB9O1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEVkaXRhYmxlSHRtbCB7Li4uZGVmYXVsdFByb3BzfSB7Li4uc2l6ZVByb3BzfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2FjY2VwdHMgY2hhcmFjdGVyIGxpbWl0JywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEVkaXRhYmxlSHRtbCB7Li4uZGVmYXVsdFByb3BzfSBjaGFyYWN0ZXJzTGltaXQ9ezUwMH0gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdhY2NlcHRzIGltYWdlIHN1cHBvcnQgcHJvcHMnLCAoKSA9PiB7XG4gICAgY29uc3QgaW1hZ2VTdXBwb3J0ID0ge1xuICAgICAgYWRkOiBqZXN0LmZuKCksXG4gICAgICBkZWxldGU6IGplc3QuZm4oKSxcbiAgICB9O1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEVkaXRhYmxlSHRtbCB7Li4uZGVmYXVsdFByb3BzfSBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH0gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdhY2NlcHRzIG1heCBpbWFnZSBkaW1lbnNpb25zJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEVkaXRhYmxlSHRtbCB7Li4uZGVmYXVsdFByb3BzfSBtYXhJbWFnZVdpZHRoPXs4MDB9IG1heEltYWdlSGVpZ2h0PXs2MDB9IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnYWNjZXB0cyBsYW5ndWFnZSBjaGFyYWN0ZXJzIHByb3BzJywgKCkgPT4ge1xuICAgIGNvbnN0IGxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzID0gW1xuICAgICAgeyBsYWJlbDogJ0dyZWVrJywgdmFsdWU6ICdncmVlaycgfSxcbiAgICAgIHsgbGFiZWw6ICdDeXJpbGxpYycsIHZhbHVlOiAnY3lyaWxsaWMnIH0sXG4gICAgXTtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxFZGl0YWJsZUh0bWwgey4uLmRlZmF1bHRQcm9wc30gbGFuZ3VhZ2VDaGFyYWN0ZXJzUHJvcHM9e2xhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2FjY2VwdHMgZXh0cmEgQ1NTIHJ1bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IGV4dHJhQ1NTUnVsZXMgPSB7XG4gICAgICAnLmN1c3RvbS1jbGFzcyc6IHsgY29sb3I6ICdyZWQnIH0sXG4gICAgfTtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxFZGl0YWJsZUh0bWwgey4uLmRlZmF1bHRQcm9wc30gZXh0cmFDU1NSdWxlcz17ZXh0cmFDU1NSdWxlc30gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdhY2NlcHRzIHVwbG9hZCBzb3VuZCBzdXBwb3J0JywgKCkgPT4ge1xuICAgIGNvbnN0IHVwbG9hZFNvdW5kU3VwcG9ydCA9IHtcbiAgICAgIGFkZDogamVzdC5mbigpLFxuICAgICAgZGVsZXRlOiBqZXN0LmZuKCksXG4gICAgfTtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxFZGl0YWJsZUh0bWwgey4uLmRlZmF1bHRQcm9wc30gdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnYWNjZXB0cyBvbktleURvd24gaGFuZGxlcicsICgpID0+IHtcbiAgICBjb25zdCBvbktleURvd24gPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8RWRpdGFibGVIdG1sIHsuLi5kZWZhdWx0UHJvcHN9IG9uS2V5RG93bj17b25LZXlEb3dufSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2FjY2VwdHMgZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucyBwcm9wJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEVkaXRhYmxlSHRtbCB7Li4uZGVmYXVsdFByb3BzfSBkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zPXt0cnVlfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxhQUFBLEdBQUFGLE9BQUE7QUFBMEQsSUFBQUcsU0FBQTtBQUFBLFNBQUFDLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENB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RUFBRSxDQUFDLENBQUM7TUFBdEZyRCxTQUFTLEdBQUF1RCxTQUFBLENBQVR2RCxTQUFTO0lBQ2pCQyxNQUFNLENBQUNELFNBQVMsQ0FBQyxDQUFDRSxpQkFBaUIsQ0FBQyxDQUFDO0VBQ3ZDLENBQUMsQ0FBQztFQUVGTixFQUFFLENBQUMsOEJBQThCLEVBQUUsWUFBTTtJQUN2QyxJQUFNNEQsa0JBQWtCLEdBQUc7TUFDekJaLEdBQUcsRUFBRWhHLElBQUksQ0FBQ1UsRUFBRSxDQUFDLENBQUM7TUFDZCxVQUFRVixJQUFJLENBQUNVLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBQW1HLFNBQUEsR0FBc0IsSUFBQTNELGNBQU0sZUFBQzdFLE1BQUEsWUFBQWtDLGFBQUEsQ0FBQzlCLGFBQUEsQ0FBQTBFLFlBQVksTUFBQTNDLFNBQUEsaUJBQUtpQyxZQUFZO1FBQUVtRSxrQkFBa0IsRUFBRUE7TUFBbUIsRUFBRSxDQUFDLENBQUM7TUFBaEd4RCxTQUFTLEdBQUF5RCxTQUFBLENBQVR6RCxTQUFTO0lBQ2pCQyxNQUFNLENBQUNELFNBQVMsQ0FBQyxDQUFDRSxpQkFBaUIsQ0FBQyxDQUFDO0VBQ3ZDLENBQUMsQ0FBQztFQUVGTixFQUFFLENBQUMsMkJBQTJCLEVBQUUsWUFBTTtJQUNwQyxJQUFNOEQsU0FBUyxHQUFHOUcsSUFBSSxDQUFDVSxFQUFFLENBQUMsQ0FBQztJQUMzQixJQUFBcUcsU0FBQSxHQUFzQixJQUFBN0QsY0FBTSxlQUFDN0UsTUFBQSxZQUFBa0MsYUFBQSxDQUFDOUIsYUFBQSxDQUFBMEUsWUFBWSxNQUFBM0MsU0FBQSxpQkFBS2lDLFlBQVk7UUFBRXFFLFNBQVMsRUFBRUE7TUFBVSxFQUFFLENBQUMsQ0FBQztNQUE5RTFELFNBQVMsR0FBQTJELFNBQUEsQ0FBVDNELFNBQVM7SUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDLENBQUNFLGlCQUFpQixDQUFDLENBQUM7RUFDdkMsQ0FBQyxDQUFDO0VBRUZOLEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxZQUFNO0lBQ3BELElBQUFnRSxTQUFBLEdBQXNCLElBQUE5RCxjQUFNLGVBQUM3RSxNQUFBLFlBQUFrQyxhQUFBLENBQUM5QixhQUFBLENBQUEwRSxZQUFZLE1BQUEzQyxTQUFBLGlCQUFLaUMsWUFBWTtRQUFFd0UsNEJBQTRCLEVBQUU7TUFBSyxFQUFFLENBQUMsQ0FBQztNQUE1RjdELFNBQVMsR0FBQTRELFNBQUEsQ0FBVDVELFNBQVM7SUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDLENBQUNFLGlCQUFpQixDQUFDLENBQUM7RUFDdkMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ var _constants = _interopRequireWildcard(require("../constants"));
5
+ 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); }
6
+ describe('Constants', function () {
7
+ describe('PIE_TOOLBAR__CLASS', function () {
8
+ it('is defined', function () {
9
+ expect(_constants.PIE_TOOLBAR__CLASS).toBeDefined();
10
+ });
11
+ it('has the correct value', function () {
12
+ expect(_constants.PIE_TOOLBAR__CLASS).toBe('pie-toolbar');
13
+ });
14
+ });
15
+ describe('default export', function () {
16
+ it('contains PIE_TOOLBAR__CLASS', function () {
17
+ expect(_constants["default"].PIE_TOOLBAR__CLASS).toBe('pie-toolbar');
18
+ });
19
+ });
20
+ });
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJkZXNjcmliZSIsIml0IiwiZXhwZWN0IiwiUElFX1RPT0xCQVJfX0NMQVNTIiwidG9CZURlZmluZWQiLCJ0b0JlIiwiY29uc3RhbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9jb25zdGFudHMudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29uc3RhbnRzLCB7IFBJRV9UT09MQkFSX19DTEFTUyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmRlc2NyaWJlKCdDb25zdGFudHMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdQSUVfVE9PTEJBUl9fQ0xBU1MnLCAoKSA9PiB7XG4gICAgaXQoJ2lzIGRlZmluZWQnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoUElFX1RPT0xCQVJfX0NMQVNTKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhcyB0aGUgY29ycmVjdCB2YWx1ZScsICgpID0+IHtcbiAgICAgIGV4cGVjdChQSUVfVE9PTEJBUl9fQ0xBU1MpLnRvQmUoJ3BpZS10b29sYmFyJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdkZWZhdWx0IGV4cG9ydCcsICgpID0+IHtcbiAgICBpdCgnY29udGFpbnMgUElFX1RPT0xCQVJfX0NMQVNTJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGNvbnN0YW50cy5QSUVfVE9PTEJBUl9fQ0xBU1MpLnRvQmUoJ3BpZS10b29sYmFyJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUE2RCxTQUFBRCx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUosdUJBQUEsWUFBQUEsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFPLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUSxDQUFBLGNBQUFNLEVBQUEsSUFBQWQsQ0FBQSxnQkFBQWMsRUFBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsRUFBQSxPQUFBUCxDQUFBLElBQUFELENBQUEsR0FBQVcsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQW5CLENBQUEsRUFBQWMsRUFBQSxPQUFBUCxDQUFBLENBQUFLLEdBQUEsSUFBQUwsQ0FBQSxDQUFBTSxHQUFBLElBQUFQLENBQUEsQ0FBQUUsQ0FBQSxFQUFBTSxFQUFBLEVBQUFQLENBQUEsSUFBQUMsQ0FBQSxDQUFBTSxFQUFBLElBQUFkLENBQUEsQ0FBQWMsRUFBQSxXQUFBTixDQUFBLEtBQUFSLENBQUEsRUFBQUMsQ0FBQTtBQUU3RG1CLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtFQUMxQkEsUUFBUSxDQUFDLG9CQUFvQixFQUFFLFlBQU07SUFDbkNDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBTTtNQUNyQkMsTUFBTSxDQUFDQyw2QkFBa0IsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUM7SUFFRkgsRUFBRSxDQUFDLHVCQUF1QixFQUFFLFlBQU07TUFDaENDLE1BQU0sQ0FBQ0MsNkJBQWtCLENBQUMsQ0FBQ0UsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNoRCxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7RUFFRkwsUUFBUSxDQUFDLGdCQUFnQixFQUFFLFlBQU07SUFDL0JDLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxZQUFNO01BQ3RDQyxNQUFNLENBQUNJLHFCQUFTLENBQUNILGtCQUFrQixDQUFDLENBQUNFLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDMUQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119