@pie-lib/editable-html-tip-tap 1.1.1-next.0 → 1.1.1-next.2

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