@pie-lib/editable-html 12.1.0-next.0 → 12.1.0-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 (121) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/package.json +7 -7
  3. package/lib/__tests__/editor-utils.test.js +0 -164
  4. package/lib/__tests__/serialization.test.js +0 -242
  5. package/lib/__tests__/utils.js +0 -79
  6. package/lib/block-tags.js +0 -24
  7. package/lib/block-tags.js.map +0 -1
  8. package/lib/constants.js +0 -11
  9. package/lib/constants.js.map +0 -1
  10. package/lib/editor.js +0 -1224
  11. package/lib/editor.js.map +0 -1
  12. package/lib/index.js +0 -208
  13. package/lib/index.js.map +0 -1
  14. package/lib/parse-html.js +0 -16
  15. package/lib/parse-html.js.map +0 -1
  16. package/lib/plugins/characters/custom-popper.js +0 -57
  17. package/lib/plugins/characters/custom-popper.js.map +0 -1
  18. package/lib/plugins/characters/index.js +0 -265
  19. package/lib/plugins/characters/index.js.map +0 -1
  20. package/lib/plugins/characters/utils.js +0 -378
  21. package/lib/plugins/characters/utils.js.map +0 -1
  22. package/lib/plugins/css/icons/index.js +0 -25
  23. package/lib/plugins/css/icons/index.js.map +0 -1
  24. package/lib/plugins/css/index.js +0 -338
  25. package/lib/plugins/css/index.js.map +0 -1
  26. package/lib/plugins/customPlugin/index.js +0 -98
  27. package/lib/plugins/customPlugin/index.js.map +0 -1
  28. package/lib/plugins/html/icons/index.js +0 -30
  29. package/lib/plugins/html/icons/index.js.map +0 -1
  30. package/lib/plugins/html/index.js +0 -71
  31. package/lib/plugins/html/index.js.map +0 -1
  32. package/lib/plugins/image/__tests__/component.test.js +0 -96
  33. package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +0 -131
  34. package/lib/plugins/image/__tests__/image-toolbar.test.js +0 -22
  35. package/lib/plugins/image/__tests__/index.test.js +0 -90
  36. package/lib/plugins/image/__tests__/insert-image-handler.test.js +0 -112
  37. package/lib/plugins/image/__tests__/mock-change.js +0 -22
  38. package/lib/plugins/image/alt-dialog.js +0 -100
  39. package/lib/plugins/image/alt-dialog.js.map +0 -1
  40. package/lib/plugins/image/component.js +0 -343
  41. package/lib/plugins/image/component.js.map +0 -1
  42. package/lib/plugins/image/image-toolbar.js +0 -137
  43. package/lib/plugins/image/image-toolbar.js.map +0 -1
  44. package/lib/plugins/image/index.js +0 -223
  45. package/lib/plugins/image/index.js.map +0 -1
  46. package/lib/plugins/image/insert-image-handler.js +0 -140
  47. package/lib/plugins/image/insert-image-handler.js.map +0 -1
  48. package/lib/plugins/index.js +0 -342
  49. package/lib/plugins/index.js.map +0 -1
  50. package/lib/plugins/list/__tests__/index.test.js +0 -64
  51. package/lib/plugins/list/index.js +0 -288
  52. package/lib/plugins/list/index.js.map +0 -1
  53. package/lib/plugins/math/__tests__/index.test.js +0 -284
  54. package/lib/plugins/math/index.js +0 -402
  55. package/lib/plugins/math/index.js.map +0 -1
  56. package/lib/plugins/media/__tests__/index.test.js +0 -69
  57. package/lib/plugins/media/index.js +0 -330
  58. package/lib/plugins/media/index.js.map +0 -1
  59. package/lib/plugins/media/media-dialog.js +0 -594
  60. package/lib/plugins/media/media-dialog.js.map +0 -1
  61. package/lib/plugins/media/media-toolbar.js +0 -76
  62. package/lib/plugins/media/media-toolbar.js.map +0 -1
  63. package/lib/plugins/media/media-wrapper.js +0 -64
  64. package/lib/plugins/media/media-wrapper.js.map +0 -1
  65. package/lib/plugins/rendering/index.js +0 -36
  66. package/lib/plugins/rendering/index.js.map +0 -1
  67. package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -271
  68. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +0 -1
  69. package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -55
  70. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +0 -1
  71. package/lib/plugins/respArea/drag-in-the-blank/utils.js +0 -38
  72. package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +0 -1
  73. package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -50
  74. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +0 -1
  75. package/lib/plugins/respArea/icons/index.js +0 -72
  76. package/lib/plugins/respArea/icons/index.js.map +0 -1
  77. package/lib/plugins/respArea/index.js +0 -287
  78. package/lib/plugins/respArea/index.js.map +0 -1
  79. package/lib/plugins/respArea/inline-dropdown/index.js +0 -67
  80. package/lib/plugins/respArea/inline-dropdown/index.js.map +0 -1
  81. package/lib/plugins/respArea/math-templated/index.js +0 -112
  82. package/lib/plugins/respArea/math-templated/index.js.map +0 -1
  83. package/lib/plugins/respArea/utils.js +0 -95
  84. package/lib/plugins/respArea/utils.js.map +0 -1
  85. package/lib/plugins/table/CustomTablePlugin.js +0 -116
  86. package/lib/plugins/table/CustomTablePlugin.js.map +0 -1
  87. package/lib/plugins/table/__tests__/index.test.js +0 -416
  88. package/lib/plugins/table/__tests__/table-toolbar.test.js +0 -81
  89. package/lib/plugins/table/icons/index.js +0 -55
  90. package/lib/plugins/table/icons/index.js.map +0 -1
  91. package/lib/plugins/table/index.js +0 -413
  92. package/lib/plugins/table/index.js.map +0 -1
  93. package/lib/plugins/table/table-toolbar.js +0 -138
  94. package/lib/plugins/table/table-toolbar.js.map +0 -1
  95. package/lib/plugins/textAlign/icons/index.js +0 -187
  96. package/lib/plugins/textAlign/icons/index.js.map +0 -1
  97. package/lib/plugins/textAlign/index.js +0 -26
  98. package/lib/plugins/textAlign/index.js.map +0 -1
  99. package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +0 -154
  100. package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +0 -47
  101. package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +0 -112
  102. package/lib/plugins/toolbar/__tests__/toolbar.test.js +0 -118
  103. package/lib/plugins/toolbar/default-toolbar.js +0 -180
  104. package/lib/plugins/toolbar/default-toolbar.js.map +0 -1
  105. package/lib/plugins/toolbar/done-button.js +0 -35
  106. package/lib/plugins/toolbar/done-button.js.map +0 -1
  107. package/lib/plugins/toolbar/editor-and-toolbar.js +0 -258
  108. package/lib/plugins/toolbar/editor-and-toolbar.js.map +0 -1
  109. package/lib/plugins/toolbar/index.js +0 -29
  110. package/lib/plugins/toolbar/index.js.map +0 -1
  111. package/lib/plugins/toolbar/toolbar-buttons.js +0 -145
  112. package/lib/plugins/toolbar/toolbar-buttons.js.map +0 -1
  113. package/lib/plugins/toolbar/toolbar.js +0 -307
  114. package/lib/plugins/toolbar/toolbar.js.map +0 -1
  115. package/lib/plugins/utils.js +0 -42
  116. package/lib/plugins/utils.js.map +0 -1
  117. package/lib/serialization.js +0 -571
  118. package/lib/serialization.js.map +0 -1
  119. package/lib/shared/alert-dialog.js +0 -68
  120. package/lib/theme.js +0 -8
  121. package/lib/theme.js.map +0 -1
@@ -1,416 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- var _slateEditTable = _interopRequireDefault(require("slate-edit-table"));
6
- var _index = _interopRequireWildcard(require("../index"));
7
- var _slate = require("slate");
8
- var _react = _interopRequireDefault(require("react"));
9
- 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); }
10
- jest.mock('slate-edit-table', function () {
11
- var mock = {
12
- "default": jest.fn().mockReturnThis(),
13
- utils: {
14
- isSelectionInTable: jest.fn().mockReturnValue(true),
15
- createTable: jest.fn(function (c) {
16
- return {
17
- toJSON: jest.fn().mockReturnValue({
18
- object: 'block',
19
- type: 'table'
20
- })
21
- };
22
- })
23
- },
24
- changes: {
25
- insertTable: jest.fn(function (c) {
26
- return c;
27
- })
28
- }
29
- };
30
- return jest.fn().mockReturnValue(mock);
31
- });
32
- describe('table', function () {
33
- describe('toolbar', function () {
34
- describe('onClick', function () {
35
- var plugin;
36
- var onChange;
37
- var findDescendant;
38
- var insertBlock;
39
- var changeMock;
40
- beforeEach(function () {
41
- plugin = (0, _index["default"])();
42
- onChange = jest.fn();
43
- insertBlock = jest.fn();
44
- findDescendant = jest.fn();
45
- changeMock = jest.fn().mockReturnValue({
46
- insertBlock: insertBlock,
47
- value: {
48
- document: {
49
- findDescendant: findDescendant
50
- }
51
- }
52
- });
53
- });
54
- it('calls utils.createTable', function () {
55
- plugin.toolbar.onClick({
56
- change: changeMock
57
- }, onChange);
58
- expect((0, _slateEditTable["default"])().utils.createTable).toHaveBeenCalledWith(2, 2);
59
- });
60
- it('creates table with border: 1 as default', function () {
61
- plugin.toolbar.onClick({
62
- change: changeMock
63
- }, onChange);
64
- expect(insertBlock).toHaveBeenCalledWith(_slate.Block.create({
65
- key: '2',
66
- type: 'table',
67
- data: {
68
- border: '1',
69
- newTable: true
70
- }
71
- }));
72
- });
73
- it('moves cursor to first cell of the table and removes the newTable property', function () {
74
- var dataRemoveFn = jest.fn().mockReturnValue({
75
- border: '1'
76
- });
77
- var setNodeByKey = jest.fn();
78
- var newTableBlock = {
79
- key: '2',
80
- data: {
81
- remove: dataRemoveFn
82
- }
83
- };
84
- var collapseToStartOf = jest.fn();
85
- changeMock = jest.fn().mockReturnValue({
86
- insertBlock: insertBlock,
87
- collapseToStartOf: collapseToStartOf,
88
- setNodeByKey: setNodeByKey,
89
- value: {
90
- document: {
91
- findDescendant: jest.fn().mockReturnValue(newTableBlock)
92
- }
93
- }
94
- });
95
- plugin.toolbar.onClick({
96
- change: changeMock
97
- }, onChange);
98
- expect(collapseToStartOf).toHaveBeenCalledWith(newTableBlock);
99
- expect(dataRemoveFn).toHaveBeenCalledWith('newTable');
100
- expect(setNodeByKey).toHaveBeenCalledWith('2', {
101
- data: {
102
- border: '1'
103
- }
104
- });
105
- });
106
- });
107
- describe('supports', function () {
108
- var assertSupports = function assertSupports(inTable, object, expected) {
109
- it("inTable: ".concat(inTable, ", type: ").concat(object, " => ").concat(expected), function () {
110
- (0, _slateEditTable["default"])().utils.isSelectionInTable.mockReturnValue(inTable);
111
- var plugin = (0, _index["default"])();
112
- var supports = plugin.toolbar.supports({
113
- object: object
114
- });
115
- expect(supports).toEqual(expected);
116
- });
117
- };
118
- assertSupports(true, 'block', true);
119
- assertSupports(false, 'block', false);
120
- assertSupports(true, 'inline', false);
121
- assertSupports(false, 'inline', false);
122
- });
123
- describe('customToolbar', function () {
124
- describe('toggleBorder', function () {
125
- var assertToggle = function assertToggle(border, expectedBorder) {
126
- describe("with initial border of ".concat(border), function () {
127
- var change;
128
- var done;
129
- beforeEach(function () {
130
- var plugin = (0, _index["default"])();
131
- change = {
132
- setNodeByKey: jest.fn().mockReturnThis()
133
- };
134
- plugin.utils.getTableBlock = jest.fn().mockReturnValue({
135
- key: 'tableKey',
136
- data: _slate.Data.create({
137
- border: border
138
- })
139
- });
140
- var node = {
141
- key: 'nodeKey'
142
- };
143
- var value = {
144
- change: jest.fn().mockReturnValue(change)
145
- };
146
- done = jest.fn();
147
- var Comp = plugin.toolbar.customToolbar(node, value, done);
148
- var c = Comp();
149
- c.props.onToggleBorder();
150
- });
151
- it("calls setNodeByKey with ".concat(expectedBorder), function () {
152
- expect(change.setNodeByKey).toHaveBeenCalledWith('tableKey', {
153
- data: _slate.Data.create({
154
- border: expectedBorder
155
- })
156
- });
157
- });
158
- it('calls onToolbarDone', function () {
159
- expect(done).toHaveBeenCalledWith(change, false);
160
- });
161
- });
162
- };
163
- assertToggle(null, '1');
164
- assertToggle(undefined, '1');
165
- assertToggle('0', '1');
166
- assertToggle('1', '0');
167
- assertToggle('2', '0');
168
- });
169
- });
170
- describe('normalizeNode', function () {
171
- it('should exit the function if the node is not of type document', function () {
172
- var tablePlugin = (0, _index["default"])();
173
- var returnValue = tablePlugin.normalizeNode({
174
- object: 'table'
175
- });
176
- expect(returnValue).toEqual(undefined);
177
- });
178
- it('should exit there are no changes needed', function () {
179
- var tablePlugin = (0, _index["default"])();
180
- var nodes = {
181
- size: 3,
182
- findLastIndex: jest.fn().mockReturnValue(1)
183
- };
184
- var returnValue = tablePlugin.normalizeNode({
185
- object: 'document',
186
- nodes: nodes,
187
- findDescendant: jest.fn().mockReturnValue({
188
- object: 'block',
189
- type: 'table'
190
- }),
191
- getParent: jest.fn().mockReturnValue(undefined)
192
- });
193
- expect(returnValue).toEqual(undefined);
194
- });
195
- it('should return a function if a table does not have a node before or after it', function () {
196
- var tablePlugin = (0, _index["default"])();
197
- var nodes = [{
198
- object: 'block',
199
- type: 'table',
200
- key: '99',
201
- data: _slate.Data.create({
202
- newTable: true
203
- })
204
- }];
205
- var findDescendant = jest.fn(function (callback) {
206
- nodes.forEach(function (n) {
207
- return callback(n);
208
- });
209
- });
210
- var change = {
211
- insertNodeByPath: jest.fn(),
212
- value: {
213
- document: {
214
- getPath: jest.fn().mockReturnValue(_slate.PathUtils.create([0, 0]))
215
- }
216
- }
217
- };
218
- var returnValue = tablePlugin.normalizeNode({
219
- object: 'document',
220
- findDescendant: findDescendant,
221
- getPath: jest.fn().mockReturnValue(_slate.PathUtils.create([0, 0])),
222
- getPreviousNode: jest.fn().mockReturnValue(undefined),
223
- getNextNode: jest.fn().mockReturnValue(undefined)
224
- });
225
- expect(returnValue).toEqual(expect.any(Function));
226
- returnValue(change);
227
- expect(change.insertNodeByPath).toHaveBeenCalledWith([0], 0, {
228
- object: 'block',
229
- type: 'div'
230
- });
231
- });
232
- });
233
- });
234
- });
235
- describe('parseStyleString', function () {
236
- var parses = function parses(s, expected) {
237
- it("parses ".concat(s, " -> ").concat(JSON.stringify(expected)), function () {
238
- var result = (0, _index.parseStyleString)(s);
239
- expect(result).toEqual(expected);
240
- });
241
- };
242
- parses(' width: 10px ', {
243
- width: '10px'
244
- });
245
- parses(' width: 10px; ', {
246
- width: '10px'
247
- });
248
- parses(' border-width: 10px; ', {
249
- 'border-width': '10px'
250
- });
251
- parses(' border: solid 1px red; height: 1px', {
252
- border: 'solid 1px red',
253
- height: '1px'
254
- });
255
- });
256
- describe('toStyleString', function () {
257
- var styleString = function styleString(o, expected) {
258
- it("".concat(JSON.stringify(s), " -> ").concat(expected), function () {
259
- var result = toStyleString(o);
260
- expect(result).toEqual(expected);
261
- });
262
- };
263
- });
264
- describe('reactAttributes', function () {
265
- var attributes = function attributes(o, expected) {
266
- it("".concat(JSON.stringify(o), " -> ").concat(JSON.stringify(expected)), function () {
267
- var result = (0, _index.reactAttributes)(o);
268
- expect(result).toEqual(expected);
269
- });
270
- };
271
- attributes({
272
- 'border-width': '10px',
273
- 'line-height': 1.56
274
- }, {
275
- borderWidth: '10px',
276
- lineHeight: '1.56'
277
- });
278
- });
279
- describe('serialization', function () {
280
- describe('deserialize', function () {
281
- var next;
282
- beforeEach(function () {
283
- next = jest.fn().mockReturnValue([]);
284
- });
285
- describe('table', function () {
286
- var el;
287
- var out;
288
- beforeEach(function () {
289
- el = {
290
- tagName: 'table',
291
- children: [],
292
- getAttribute: jest.fn(function (name) {
293
- switch (name) {
294
- case 'border':
295
- return '1';
296
- case 'cellspacing':
297
- return '2';
298
- case 'cellpadding':
299
- return '3';
300
- case 'class':
301
- return 'table-class';
302
- case 'style':
303
- return 'width: 10px';
304
- }
305
- })
306
- };
307
- out = _index.serialization.deserialize(el, next);
308
- });
309
- var assertData = function assertData(name, value) {
310
- it("data.".concat(name, " should eql ").concat(value), function () {
311
- expect(out.data[name]).toEqual(value);
312
- });
313
- };
314
- assertData('border', '1');
315
- assertData('cellspacing', '2');
316
- assertData('cellpadding', '3');
317
- assertData('class', 'table-class');
318
- assertData('style', {
319
- width: '10px'
320
- });
321
- it('returns a table block', function () {
322
- expect(out).toMatchObject({
323
- object: 'block',
324
- type: 'table',
325
- nodes: []
326
- });
327
- });
328
- });
329
- it('deserializes tr', function () {
330
- var el = {
331
- tagName: 'tr',
332
- children: []
333
- };
334
- var out = _index.serialization.deserialize(el, next);
335
- expect(out).toEqual({
336
- object: 'block',
337
- type: 'table_row',
338
- nodes: []
339
- });
340
- });
341
- it('deserializes td', function () {
342
- var el = {
343
- tagName: 'td',
344
- childNodes: [],
345
- getAttribute: jest.fn(function (name) {
346
- var o = {
347
- "class": 'class name',
348
- colspan: '1',
349
- rowspan: '1'
350
- };
351
- return o[name];
352
- })
353
- };
354
- var out = _index.serialization.deserialize(el, next);
355
- expect(out).toEqual({
356
- object: 'block',
357
- type: 'table_cell',
358
- nodes: [],
359
- data: {
360
- colspan: '1',
361
- rowspan: '1',
362
- "class": 'class name',
363
- header: false
364
- }
365
- });
366
- });
367
- });
368
- describe('serialize', function () {
369
- it('serializes table', function () {
370
- var el = _index.serialization.serialize({
371
- object: 'block',
372
- type: 'table',
373
- nodes: [],
374
- data: _slate.Data.create({
375
- border: '1',
376
- cellpadding: '2',
377
- cellspacing: '3'
378
- })
379
- });
380
- expect(el).toEqual(/*#__PURE__*/_react["default"].createElement("table", {
381
- border: "1",
382
- cellPadding: "2",
383
- cellSpacing: "3"
384
- }, /*#__PURE__*/_react["default"].createElement("tbody", null)));
385
- });
386
- it('serializes table_row', function () {
387
- var el = _index.serialization.serialize({
388
- object: 'block',
389
- type: 'table_row',
390
- nodes: []
391
- });
392
- expect(el).toEqual(/*#__PURE__*/_react["default"].createElement("tr", null));
393
- });
394
- it('serializes table_cell', function () {
395
- var el = _index.serialization.serialize({
396
- object: 'block',
397
- type: 'table_cell',
398
- nodes: [],
399
- data: _slate.Data.create({
400
- header: false,
401
- style: {
402
- width: '10px'
403
- },
404
- "class": 'foo'
405
- })
406
- });
407
- expect(el).toEqual(/*#__PURE__*/_react["default"].createElement("td", {
408
- style: {
409
- width: '10px'
410
- },
411
- className: 'foo'
412
- }));
413
- });
414
- });
415
- });
416
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2xhdGVFZGl0VGFibGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9pbmRleCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3NsYXRlIiwiX3JlYWN0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJqZXN0IiwibW9jayIsImZuIiwibW9ja1JldHVyblRoaXMiLCJ1dGlscyIsImlzU2VsZWN0aW9uSW5UYWJsZSIsIm1vY2tSZXR1cm5WYWx1ZSIsImNyZWF0ZVRhYmxlIiwiYyIsInRvSlNPTiIsIm9iamVjdCIsInR5cGUiLCJjaGFuZ2VzIiwiaW5zZXJ0VGFibGUiLCJkZXNjcmliZSIsInBsdWdpbiIsIm9uQ2hhbmdlIiwiZmluZERlc2NlbmRhbnQiLCJpbnNlcnRCbG9jayIsImNoYW5nZU1vY2siLCJiZWZvcmVFYWNoIiwiVGFibGVQbHVnaW4iLCJ2YWx1ZSIsImRvY3VtZW50IiwiaXQiLCJ0b29sYmFyIiwib25DbGljayIsImNoYW5nZSIsImV4cGVjdCIsIkVkaXRUYWJsZSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiQmxvY2siLCJjcmVhdGUiLCJrZXkiLCJkYXRhIiwiYm9yZGVyIiwibmV3VGFibGUiLCJkYXRhUmVtb3ZlRm4iLCJzZXROb2RlQnlLZXkiLCJuZXdUYWJsZUJsb2NrIiwicmVtb3ZlIiwiY29sbGFwc2VUb1N0YXJ0T2YiLCJhc3NlcnRTdXBwb3J0cyIsImluVGFibGUiLCJleHBlY3RlZCIsImNvbmNhdCIsInN1cHBvcnRzIiwidG9FcXVhbCIsImFzc2VydFRvZ2dsZSIsImV4cGVjdGVkQm9yZGVyIiwiZG9uZSIsImdldFRhYmxlQmxvY2siLCJEYXRhIiwibm9kZSIsIkNvbXAiLCJjdXN0b21Ub29sYmFyIiwicHJvcHMiLCJvblRvZ2dsZUJvcmRlciIsInVuZGVmaW5lZCIsInRhYmxlUGx1Z2luIiwicmV0dXJuVmFsdWUiLCJub3JtYWxpemVOb2RlIiwibm9kZXMiLCJzaXplIiwiZmluZExhc3RJbmRleCIsImdldFBhcmVudCIsImNhbGxiYWNrIiwiZm9yRWFjaCIsImluc2VydE5vZGVCeVBhdGgiLCJnZXRQYXRoIiwiUGF0aFV0aWxzIiwiZ2V0UHJldmlvdXNOb2RlIiwiZ2V0TmV4dE5vZGUiLCJhbnkiLCJGdW5jdGlvbiIsInBhcnNlcyIsInMiLCJKU09OIiwic3RyaW5naWZ5IiwicmVzdWx0IiwicGFyc2VTdHlsZVN0cmluZyIsIndpZHRoIiwiaGVpZ2h0Iiwic3R5bGVTdHJpbmciLCJ0b1N0eWxlU3RyaW5nIiwiYXR0cmlidXRlcyIsInJlYWN0QXR0cmlidXRlcyIsImJvcmRlcldpZHRoIiwibGluZUhlaWdodCIsIm5leHQiLCJlbCIsIm91dCIsInRhZ05hbWUiLCJjaGlsZHJlbiIsImdldEF0dHJpYnV0ZSIsIm5hbWUiLCJzZXJpYWxpemF0aW9uIiwiZGVzZXJpYWxpemUiLCJhc3NlcnREYXRhIiwidG9NYXRjaE9iamVjdCIsImNoaWxkTm9kZXMiLCJjb2xzcGFuIiwicm93c3BhbiIsImhlYWRlciIsInNlcmlhbGl6ZSIsImNlbGxwYWRkaW5nIiwiY2VsbHNwYWNpbmciLCJjcmVhdGVFbGVtZW50IiwiY2VsbFBhZGRpbmciLCJjZWxsU3BhY2luZyIsInN0eWxlIiwiY2xhc3NOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvdGFibGUvX190ZXN0c19fL2luZGV4LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFZGl0VGFibGUgZnJvbSAnc2xhdGUtZWRpdC10YWJsZSc7XG5pbXBvcnQgVGFibGVQbHVnaW4sIHsgc2VyaWFsaXphdGlvbiwgcGFyc2VTdHlsZVN0cmluZywgcmVhY3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgRGF0YSwgQmxvY2ssIFBhdGhVdGlscyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmplc3QubW9jaygnc2xhdGUtZWRpdC10YWJsZScsICgpID0+IHtcbiAgY29uc3QgbW9jayA9IHtcbiAgICBkZWZhdWx0OiBqZXN0LmZuKCkubW9ja1JldHVyblRoaXMoKSxcbiAgICB1dGlsczoge1xuICAgICAgaXNTZWxlY3Rpb25JblRhYmxlOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHRydWUpLFxuICAgICAgY3JlYXRlVGFibGU6IGplc3QuZm4oZnVuY3Rpb24oYykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRvSlNPTjogamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSh7IG9iamVjdDogJ2Jsb2NrJywgdHlwZTogJ3RhYmxlJyB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgIH0sXG4gICAgY2hhbmdlczoge1xuICAgICAgaW5zZXJ0VGFibGU6IGplc3QuZm4oZnVuY3Rpb24oYykge1xuICAgICAgICByZXR1cm4gYztcbiAgICAgIH0pLFxuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUobW9jayk7XG59KTtcblxuZGVzY3JpYmUoJ3RhYmxlJywgKCkgPT4ge1xuICBkZXNjcmliZSgndG9vbGJhcicsICgpID0+IHtcbiAgICBkZXNjcmliZSgnb25DbGljaycsICgpID0+IHtcbiAgICAgIGxldCBwbHVnaW47XG4gICAgICBsZXQgb25DaGFuZ2U7XG4gICAgICBsZXQgZmluZERlc2NlbmRhbnQ7XG4gICAgICBsZXQgaW5zZXJ0QmxvY2s7XG4gICAgICBsZXQgY2hhbmdlTW9jaztcblxuICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICAgIHBsdWdpbiA9IFRhYmxlUGx1Z2luKCk7XG4gICAgICAgIG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICAgICAgICBpbnNlcnRCbG9jayA9IGplc3QuZm4oKTtcbiAgICAgICAgZmluZERlc2NlbmRhbnQgPSBqZXN0LmZuKCk7XG4gICAgICAgIGNoYW5nZU1vY2sgPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHtcbiAgICAgICAgICBpbnNlcnRCbG9jayxcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgZG9jdW1lbnQ6IHtcbiAgICAgICAgICAgICAgZmluZERlc2NlbmRhbnQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdjYWxscyB1dGlscy5jcmVhdGVUYWJsZScsICgpID0+IHtcbiAgICAgICAgcGx1Z2luLnRvb2xiYXIub25DbGljayh7IGNoYW5nZTogY2hhbmdlTW9jayB9LCBvbkNoYW5nZSk7XG5cbiAgICAgICAgZXhwZWN0KEVkaXRUYWJsZSgpLnV0aWxzLmNyZWF0ZVRhYmxlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgyLCAyKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnY3JlYXRlcyB0YWJsZSB3aXRoIGJvcmRlcjogMSBhcyBkZWZhdWx0JywgKCkgPT4ge1xuICAgICAgICBwbHVnaW4udG9vbGJhci5vbkNsaWNrKHsgY2hhbmdlOiBjaGFuZ2VNb2NrIH0sIG9uQ2hhbmdlKTtcblxuICAgICAgICBleHBlY3QoaW5zZXJ0QmxvY2spLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAgIEJsb2NrLmNyZWF0ZSh7IGtleTogJzInLCB0eXBlOiAndGFibGUnLCBkYXRhOiB7IGJvcmRlcjogJzEnLCBuZXdUYWJsZTogdHJ1ZSB9IH0pLFxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdtb3ZlcyBjdXJzb3IgdG8gZmlyc3QgY2VsbCBvZiB0aGUgdGFibGUgYW5kIHJlbW92ZXMgdGhlIG5ld1RhYmxlIHByb3BlcnR5JywgKCkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhUmVtb3ZlRm4gPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHsgYm9yZGVyOiAnMScgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vZGVCeUtleSA9IGplc3QuZm4oKTtcbiAgICAgICAgY29uc3QgbmV3VGFibGVCbG9jayA9IHtcbiAgICAgICAgICBrZXk6ICcyJyxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICByZW1vdmU6IGRhdGFSZW1vdmVGbixcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjb2xsYXBzZVRvU3RhcnRPZiA9IGplc3QuZm4oKTtcblxuICAgICAgICBjaGFuZ2VNb2NrID0gamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICAgICAgaW5zZXJ0QmxvY2ssXG4gICAgICAgICAgY29sbGFwc2VUb1N0YXJ0T2YsXG4gICAgICAgICAgc2V0Tm9kZUJ5S2V5LFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBkb2N1bWVudDoge1xuICAgICAgICAgICAgICBmaW5kRGVzY2VuZGFudDogamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZShuZXdUYWJsZUJsb2NrKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHBsdWdpbi50b29sYmFyLm9uQ2xpY2soeyBjaGFuZ2U6IGNoYW5nZU1vY2sgfSwgb25DaGFuZ2UpO1xuXG4gICAgICAgIGV4cGVjdChjb2xsYXBzZVRvU3RhcnRPZikudG9IYXZlQmVlbkNhbGxlZFdpdGgobmV3VGFibGVCbG9jayk7XG4gICAgICAgIGV4cGVjdChkYXRhUmVtb3ZlRm4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCduZXdUYWJsZScpO1xuICAgICAgICBleHBlY3Qoc2V0Tm9kZUJ5S2V5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnMicsIHsgZGF0YTogeyBib3JkZXI6ICcxJyB9IH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc3VwcG9ydHMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBhc3NlcnRTdXBwb3J0cyA9IChpblRhYmxlLCBvYmplY3QsIGV4cGVjdGVkKSA9PiB7XG4gICAgICAgIGl0KGBpblRhYmxlOiAke2luVGFibGV9LCB0eXBlOiAke29iamVjdH0gPT4gJHtleHBlY3RlZH1gLCAoKSA9PiB7XG4gICAgICAgICAgRWRpdFRhYmxlKCkudXRpbHMuaXNTZWxlY3Rpb25JblRhYmxlLm1vY2tSZXR1cm5WYWx1ZShpblRhYmxlKTtcbiAgICAgICAgICBjb25zdCBwbHVnaW4gPSBUYWJsZVBsdWdpbigpO1xuICAgICAgICAgIGNvbnN0IHN1cHBvcnRzID0gcGx1Z2luLnRvb2xiYXIuc3VwcG9ydHMoeyBvYmplY3QgfSk7XG4gICAgICAgICAgZXhwZWN0KHN1cHBvcnRzKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBhc3NlcnRTdXBwb3J0cyh0cnVlLCAnYmxvY2snLCB0cnVlKTtcbiAgICAgIGFzc2VydFN1cHBvcnRzKGZhbHNlLCAnYmxvY2snLCBmYWxzZSk7XG4gICAgICBhc3NlcnRTdXBwb3J0cyh0cnVlLCAnaW5saW5lJywgZmFsc2UpO1xuICAgICAgYXNzZXJ0U3VwcG9ydHMoZmFsc2UsICdpbmxpbmUnLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnY3VzdG9tVG9vbGJhcicsICgpID0+IHtcbiAgICAgIGRlc2NyaWJlKCd0b2dnbGVCb3JkZXInLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFzc2VydFRvZ2dsZSA9IChib3JkZXIsIGV4cGVjdGVkQm9yZGVyKSA9PiB7XG4gICAgICAgICAgZGVzY3JpYmUoYHdpdGggaW5pdGlhbCBib3JkZXIgb2YgJHtib3JkZXJ9YCwgKCkgPT4ge1xuICAgICAgICAgICAgbGV0IGNoYW5nZTtcbiAgICAgICAgICAgIGxldCBkb25lO1xuXG4gICAgICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcGx1Z2luID0gVGFibGVQbHVnaW4oKTtcbiAgICAgICAgICAgICAgY2hhbmdlID0ge1xuICAgICAgICAgICAgICAgIHNldE5vZGVCeUtleTogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHBsdWdpbi51dGlscy5nZXRUYWJsZUJsb2NrID0gamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICAgICAgICAgICAga2V5OiAndGFibGVLZXknLFxuICAgICAgICAgICAgICAgIGRhdGE6IERhdGEuY3JlYXRlKHsgYm9yZGVyIH0pLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHsga2V5OiAnbm9kZUtleScgfTtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKGNoYW5nZSksXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGRvbmUgPSBqZXN0LmZuKCk7XG4gICAgICAgICAgICAgIGNvbnN0IENvbXAgPSBwbHVnaW4udG9vbGJhci5jdXN0b21Ub29sYmFyKG5vZGUsIHZhbHVlLCBkb25lKTtcbiAgICAgICAgICAgICAgY29uc3QgYyA9IENvbXAoKTtcbiAgICAgICAgICAgICAgYy5wcm9wcy5vblRvZ2dsZUJvcmRlcigpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGl0KGBjYWxscyBzZXROb2RlQnlLZXkgd2l0aCAke2V4cGVjdGVkQm9yZGVyfWAsICgpID0+IHtcbiAgICAgICAgICAgICAgZXhwZWN0KGNoYW5nZS5zZXROb2RlQnlLZXkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCd0YWJsZUtleScsIHtcbiAgICAgICAgICAgICAgICBkYXRhOiBEYXRhLmNyZWF0ZSh7IGJvcmRlcjogZXhwZWN0ZWRCb3JkZXIgfSksXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGl0KCdjYWxscyBvblRvb2xiYXJEb25lJywgKCkgPT4ge1xuICAgICAgICAgICAgICBleHBlY3QoZG9uZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoY2hhbmdlLCBmYWxzZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBhc3NlcnRUb2dnbGUobnVsbCwgJzEnKTtcbiAgICAgICAgYXNzZXJ0VG9nZ2xlKHVuZGVmaW5lZCwgJzEnKTtcbiAgICAgICAgYXNzZXJ0VG9nZ2xlKCcwJywgJzEnKTtcbiAgICAgICAgYXNzZXJ0VG9nZ2xlKCcxJywgJzAnKTtcbiAgICAgICAgYXNzZXJ0VG9nZ2xlKCcyJywgJzAnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ25vcm1hbGl6ZU5vZGUnLCAoKSA9PiB7XG4gICAgICBpdCgnc2hvdWxkIGV4aXQgdGhlIGZ1bmN0aW9uIGlmIHRoZSBub2RlIGlzIG5vdCBvZiB0eXBlIGRvY3VtZW50JywgKCkgPT4ge1xuICAgICAgICBjb25zdCB0YWJsZVBsdWdpbiA9IFRhYmxlUGx1Z2luKCk7XG4gICAgICAgIGNvbnN0IHJldHVyblZhbHVlID0gdGFibGVQbHVnaW4ubm9ybWFsaXplTm9kZSh7IG9iamVjdDogJ3RhYmxlJyB9KTtcblxuICAgICAgICBleHBlY3QocmV0dXJuVmFsdWUpLnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGV4aXQgdGhlcmUgYXJlIG5vIGNoYW5nZXMgbmVlZGVkJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB0YWJsZVBsdWdpbiA9IFRhYmxlUGx1Z2luKCk7XG4gICAgICAgIGNvbnN0IG5vZGVzID0ge1xuICAgICAgICAgIHNpemU6IDMsXG4gICAgICAgICAgZmluZExhc3RJbmRleDogamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSgxKSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmV0dXJuVmFsdWUgPSB0YWJsZVBsdWdpbi5ub3JtYWxpemVOb2RlKHtcbiAgICAgICAgICBvYmplY3Q6ICdkb2N1bWVudCcsXG4gICAgICAgICAgbm9kZXMsXG4gICAgICAgICAgZmluZERlc2NlbmRhbnQ6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoeyBvYmplY3Q6ICdibG9jaycsIHR5cGU6ICd0YWJsZScgfSksXG4gICAgICAgICAgZ2V0UGFyZW50OiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHVuZGVmaW5lZCksXG4gICAgICAgIH0pO1xuICAgICAgICBleHBlY3QocmV0dXJuVmFsdWUpLnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHJldHVybiBhIGZ1bmN0aW9uIGlmIGEgdGFibGUgZG9lcyBub3QgaGF2ZSBhIG5vZGUgYmVmb3JlIG9yIGFmdGVyIGl0JywgKCkgPT4ge1xuICAgICAgICBjb25zdCB0YWJsZVBsdWdpbiA9IFRhYmxlUGx1Z2luKCk7XG4gICAgICAgIGNvbnN0IG5vZGVzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9iamVjdDogJ2Jsb2NrJyxcbiAgICAgICAgICAgIHR5cGU6ICd0YWJsZScsXG4gICAgICAgICAgICBrZXk6ICc5OScsXG4gICAgICAgICAgICBkYXRhOiBEYXRhLmNyZWF0ZSh7XG4gICAgICAgICAgICAgIG5ld1RhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgZmluZERlc2NlbmRhbnQgPSBqZXN0LmZuKChjYWxsYmFjaykgPT4ge1xuICAgICAgICAgIG5vZGVzLmZvckVhY2goKG4pID0+IGNhbGxiYWNrKG4pKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IHtcbiAgICAgICAgICBpbnNlcnROb2RlQnlQYXRoOiBqZXN0LmZuKCksXG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIGRvY3VtZW50OiB7XG4gICAgICAgICAgICAgIGdldFBhdGg6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoUGF0aFV0aWxzLmNyZWF0ZShbMCwgMF0pKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXR1cm5WYWx1ZSA9IHRhYmxlUGx1Z2luLm5vcm1hbGl6ZU5vZGUoe1xuICAgICAgICAgIG9iamVjdDogJ2RvY3VtZW50JyxcbiAgICAgICAgICBmaW5kRGVzY2VuZGFudCxcbiAgICAgICAgICBnZXRQYXRoOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKFBhdGhVdGlscy5jcmVhdGUoWzAsIDBdKSksXG4gICAgICAgICAgZ2V0UHJldmlvdXNOb2RlOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHVuZGVmaW5lZCksXG4gICAgICAgICAgZ2V0TmV4dE5vZGU6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUodW5kZWZpbmVkKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZXhwZWN0KHJldHVyblZhbHVlKS50b0VxdWFsKGV4cGVjdC5hbnkoRnVuY3Rpb24pKTtcblxuICAgICAgICByZXR1cm5WYWx1ZShjaGFuZ2UpO1xuXG4gICAgICAgIGV4cGVjdChjaGFuZ2UuaW5zZXJ0Tm9kZUJ5UGF0aCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoWzBdLCAwLCB7XG4gICAgICAgICAgb2JqZWN0OiAnYmxvY2snLFxuICAgICAgICAgIHR5cGU6ICdkaXYnLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgncGFyc2VTdHlsZVN0cmluZycsICgpID0+IHtcbiAgY29uc3QgcGFyc2VzID0gKHMsIGV4cGVjdGVkKSA9PiB7XG4gICAgaXQoYHBhcnNlcyAke3N9IC0+ICR7SlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpfWAsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlU3R5bGVTdHJpbmcocyk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICB9KTtcbiAgfTtcbiAgcGFyc2VzKCcgd2lkdGg6IDEwcHggJywgeyB3aWR0aDogJzEwcHgnIH0pO1xuICBwYXJzZXMoJyB3aWR0aDogMTBweDsgJywgeyB3aWR0aDogJzEwcHgnIH0pO1xuICBwYXJzZXMoJyBib3JkZXItd2lkdGg6IDEwcHg7ICcsIHsgJ2JvcmRlci13aWR0aCc6ICcxMHB4JyB9KTtcbiAgcGFyc2VzKCcgYm9yZGVyOiBzb2xpZCAxcHggcmVkOyBoZWlnaHQ6IDFweCcsIHtcbiAgICBib3JkZXI6ICdzb2xpZCAxcHggcmVkJyxcbiAgICBoZWlnaHQ6ICcxcHgnLFxuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgndG9TdHlsZVN0cmluZycsICgpID0+IHtcbiAgY29uc3Qgc3R5bGVTdHJpbmcgPSAobywgZXhwZWN0ZWQpID0+IHtcbiAgICBpdChgJHtKU09OLnN0cmluZ2lmeShzKX0gLT4gJHtleHBlY3RlZH1gLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0b1N0eWxlU3RyaW5nKG8pO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3RlZCk7XG4gICAgfSk7XG4gIH07XG59KTtcblxuZGVzY3JpYmUoJ3JlYWN0QXR0cmlidXRlcycsICgpID0+IHtcbiAgY29uc3QgYXR0cmlidXRlcyA9IChvLCBleHBlY3RlZCkgPT4ge1xuICAgIGl0KGAke0pTT04uc3RyaW5naWZ5KG8pfSAtPiAke0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkKX1gLCAoKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSByZWFjdEF0dHJpYnV0ZXMobyk7XG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICB9KTtcbiAgfTtcbiAgYXR0cmlidXRlcyh7ICdib3JkZXItd2lkdGgnOiAnMTBweCcsICdsaW5lLWhlaWdodCc6IDEuNTYgfSwgeyBib3JkZXJXaWR0aDogJzEwcHgnLCBsaW5lSGVpZ2h0OiAnMS41NicgfSk7XG59KTtcblxuZGVzY3JpYmUoJ3NlcmlhbGl6YXRpb24nLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdkZXNlcmlhbGl6ZScsICgpID0+IHtcbiAgICBsZXQgbmV4dDtcblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgbmV4dCA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoW10pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3RhYmxlJywgKCkgPT4ge1xuICAgICAgbGV0IGVsO1xuICAgICAgbGV0IG91dDtcbiAgICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgICBlbCA9IHtcbiAgICAgICAgICB0YWdOYW1lOiAndGFibGUnLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICBnZXRBdHRyaWJ1dGU6IGplc3QuZm4oKG5hbWUpID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgICAgICAgICBjYXNlICdib3JkZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiAnMSc7XG4gICAgICAgICAgICAgIGNhc2UgJ2NlbGxzcGFjaW5nJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJzInO1xuICAgICAgICAgICAgICBjYXNlICdjZWxscGFkZGluZyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICczJztcbiAgICAgICAgICAgICAgY2FzZSAnY2xhc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiAndGFibGUtY2xhc3MnO1xuICAgICAgICAgICAgICBjYXNlICdzdHlsZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd3aWR0aDogMTBweCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICAgIG91dCA9IHNlcmlhbGl6YXRpb24uZGVzZXJpYWxpemUoZWwsIG5leHQpO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGFzc2VydERhdGEgPSAobmFtZSwgdmFsdWUpID0+IHtcbiAgICAgICAgaXQoYGRhdGEuJHtuYW1lfSBzaG91bGQgZXFsICR7dmFsdWV9YCwgKCkgPT4ge1xuICAgICAgICAgIGV4cGVjdChvdXQuZGF0YVtuYW1lXSkudG9FcXVhbCh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgYXNzZXJ0RGF0YSgnYm9yZGVyJywgJzEnKTtcbiAgICAgIGFzc2VydERhdGEoJ2NlbGxzcGFjaW5nJywgJzInKTtcbiAgICAgIGFzc2VydERhdGEoJ2NlbGxwYWRkaW5nJywgJzMnKTtcbiAgICAgIGFzc2VydERhdGEoJ2NsYXNzJywgJ3RhYmxlLWNsYXNzJyk7XG4gICAgICBhc3NlcnREYXRhKCdzdHlsZScsIHsgd2lkdGg6ICcxMHB4JyB9KTtcbiAgICAgIGl0KCdyZXR1cm5zIGEgdGFibGUgYmxvY2snLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdChvdXQpLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgICAgIG9iamVjdDogJ2Jsb2NrJyxcbiAgICAgICAgICB0eXBlOiAndGFibGUnLFxuICAgICAgICAgIG5vZGVzOiBbXSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXNlcmlhbGl6ZXMgdHInLCAoKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IHtcbiAgICAgICAgdGFnTmFtZTogJ3RyJyxcbiAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb3V0ID0gc2VyaWFsaXphdGlvbi5kZXNlcmlhbGl6ZShlbCwgbmV4dCk7XG5cbiAgICAgIGV4cGVjdChvdXQpLnRvRXF1YWwoe1xuICAgICAgICBvYmplY3Q6ICdibG9jaycsXG4gICAgICAgIHR5cGU6ICd0YWJsZV9yb3cnLFxuICAgICAgICBub2RlczogW10sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXNlcmlhbGl6ZXMgdGQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IHtcbiAgICAgICAgdGFnTmFtZTogJ3RkJyxcbiAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIGdldEF0dHJpYnV0ZTogamVzdC5mbihmdW5jdGlvbihuYW1lKSB7XG4gICAgICAgICAgY29uc3QgbyA9IHtcbiAgICAgICAgICAgIGNsYXNzOiAnY2xhc3MgbmFtZScsXG4gICAgICAgICAgICBjb2xzcGFuOiAnMScsXG4gICAgICAgICAgICByb3dzcGFuOiAnMScsXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gb1tuYW1lXTtcbiAgICAgICAgfSksXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvdXQgPSBzZXJpYWxpemF0aW9uLmRlc2VyaWFsaXplKGVsLCBuZXh0KTtcblxuICAgICAgZXhwZWN0KG91dCkudG9FcXVhbCh7XG4gICAgICAgIG9iamVjdDogJ2Jsb2NrJyxcbiAgICAgICAgdHlwZTogJ3RhYmxlX2NlbGwnLFxuICAgICAgICBub2RlczogW10sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBjb2xzcGFuOiAnMScsXG4gICAgICAgICAgcm93c3BhbjogJzEnLFxuICAgICAgICAgIGNsYXNzOiAnY2xhc3MgbmFtZScsXG4gICAgICAgICAgaGVhZGVyOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2VyaWFsaXplJywgKCkgPT4ge1xuICAgIGl0KCdzZXJpYWxpemVzIHRhYmxlJywgKCkgPT4ge1xuICAgICAgY29uc3QgZWwgPSBzZXJpYWxpemF0aW9uLnNlcmlhbGl6ZSh7XG4gICAgICAgIG9iamVjdDogJ2Jsb2NrJyxcbiAgICAgICAgdHlwZTogJ3RhYmxlJyxcbiAgICAgICAgbm9kZXM6IFtdLFxuICAgICAgICBkYXRhOiBEYXRhLmNyZWF0ZSh7XG4gICAgICAgICAgYm9yZGVyOiAnMScsXG4gICAgICAgICAgY2VsbHBhZGRpbmc6ICcyJyxcbiAgICAgICAgICBjZWxsc3BhY2luZzogJzMnLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoZWwpLnRvRXF1YWwoXG4gICAgICAgIDx0YWJsZSBib3JkZXI9XCIxXCIgY2VsbFBhZGRpbmc9XCIyXCIgY2VsbFNwYWNpbmc9XCIzXCI+XG4gICAgICAgICAgPHRib2R5IC8+XG4gICAgICAgIDwvdGFibGU+LFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzZXJpYWxpemVzIHRhYmxlX3JvdycsICgpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gc2VyaWFsaXphdGlvbi5zZXJpYWxpemUoe1xuICAgICAgICBvYmplY3Q6ICdibG9jaycsXG4gICAgICAgIHR5cGU6ICd0YWJsZV9yb3cnLFxuICAgICAgICBub2RlczogW10sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGVsKS50b0VxdWFsKDx0ciAvPik7XG4gICAgfSk7XG4gICAgaXQoJ3NlcmlhbGl6ZXMgdGFibGVfY2VsbCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gc2VyaWFsaXphdGlvbi5zZXJpYWxpemUoe1xuICAgICAgICBvYmplY3Q6ICdibG9jaycsXG4gICAgICAgIHR5cGU6ICd0YWJsZV9jZWxsJyxcbiAgICAgICAgbm9kZXM6IFtdLFxuICAgICAgICBkYXRhOiBEYXRhLmNyZWF0ZSh7XG4gICAgICAgICAgaGVhZGVyOiBmYWxzZSxcbiAgICAgICAgICBzdHlsZTogeyB3aWR0aDogJzEwcHgnIH0sXG4gICAgICAgICAgY2xhc3M6ICdmb28nLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoZWwpLnRvRXF1YWwoPHRkIHN0eWxlPXt7IHdpZHRoOiAnMTBweCcgfX0gY2xhc3NOYW1lPXsnZm9vJ30gLz4pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsZUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FB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LEtBQUssRUFBRSxFQUFFO1FBQ1Q1QixJQUFJLEVBQUVrQixXQUFJLENBQUNwQixNQUFNLENBQUM7VUFDaEJHLE1BQU0sRUFBRSxHQUFHO1VBQ1hzRSxXQUFXLEVBQUUsR0FBRztVQUNoQkMsV0FBVyxFQUFFO1FBQ2YsQ0FBQztNQUNILENBQUMsQ0FBQztNQUVGOUUsTUFBTSxDQUFDOEQsRUFBRSxDQUFDLENBQUMzQyxPQUFPLGNBQ2hCcEUsTUFBQSxZQUFBZ0ksYUFBQTtRQUFPeEUsTUFBTSxFQUFDLEdBQUc7UUFBQ3lFLFdBQVcsRUFBQyxHQUFHO1FBQUNDLFdBQVcsRUFBQztNQUFHLGdCQUMvQ2xJLE1BQUEsWUFBQWdJLGFBQUEsY0FBUSxDQUNILENBQ1QsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGbkYsRUFBRSxDQUFDLHNCQUFzQixFQUFFLFlBQU07TUFDL0IsSUFBTWtFLEVBQUUsR0FBR00sb0JBQWEsQ0FBQ1EsU0FBUyxDQUFDO1FBQ2pDOUYsTUFBTSxFQUFFLE9BQU87UUFDZkMsSUFBSSxFQUFFLFdBQVc7UUFDakJtRCxLQUFLLEVBQUU7TUFDVCxDQUFDLENBQUM7TUFFRmxDLE1BQU0sQ0FBQzhELEVBQUUsQ0FBQyxDQUFDM0MsT0FBTyxjQUFDcEUsTUFBQSxZQUFBZ0ksYUFBQSxXQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUM7SUFDRm5GLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxZQUFNO01BQ2hDLElBQU1rRSxFQUFFLEdBQUdNLG9CQUFhLENBQUNRLFNBQVMsQ0FBQztRQUNqQzlGLE1BQU0sRUFBRSxPQUFPO1FBQ2ZDLElBQUksRUFBRSxZQUFZO1FBQ2xCbUQsS0FBSyxFQUFFLEVBQUU7UUFDVDVCLElBQUksRUFBRWtCLFdBQUksQ0FBQ3BCLE1BQU0sQ0FBQztVQUNoQnVFLE1BQU0sRUFBRSxLQUFLO1VBQ2JPLEtBQUssRUFBRTtZQUFFN0IsS0FBSyxFQUFFO1VBQU8sQ0FBQztVQUN4QixTQUFPO1FBQ1QsQ0FBQztNQUNILENBQUMsQ0FBQztNQUVGckQsTUFBTSxDQUFDOEQsRUFBRSxDQUFDLENBQUMzQyxPQUFPLGNBQUNwRSxNQUFBLFlBQUFnSSxhQUFBO1FBQUlHLEtBQUssRUFBRTtVQUFFN0IsS0FBSyxFQUFFO1FBQU8sQ0FBRTtRQUFDOEIsU0FBUyxFQUFFO01BQU0sQ0FBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -1,81 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
- var _react = _interopRequireDefault(require("react"));
6
- var _react2 = require("@testing-library/react");
7
- var _tableToolbar = require("../table-toolbar");
8
- 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; }
9
- 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; }
10
- describe('table-toolbar', function () {
11
- var onDone, onAddColumn, onAddRow, onRemoveColumn, onRemoveRow, onRemoveTable, onToggleBorder;
12
- beforeEach(function () {
13
- onAddColumn = jest.fn();
14
- onAddRow = jest.fn();
15
- onRemoveColumn = jest.fn();
16
- onRemoveRow = jest.fn();
17
- onRemoveTable = jest.fn();
18
- onDone = jest.fn();
19
- onToggleBorder = jest.fn();
20
- });
21
- var renderComponent = function renderComponent() {
22
- var extras = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23
- var props = _objectSpread({
24
- onDone: onDone,
25
- onAddRow: onAddRow,
26
- onRemoveRow: onRemoveRow,
27
- onAddColumn: onAddColumn,
28
- onRemoveColumn: onRemoveColumn,
29
- onRemoveTable: onRemoveTable,
30
- hasBorder: true,
31
- onToggleBorder: onToggleBorder,
32
- classes: {
33
- tableToolbar: 'table-toolbar'
34
- },
35
- plugins: [],
36
- value: {},
37
- onChange: jest.fn()
38
- }, extras);
39
- return (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_tableToolbar.TableToolbar, props));
40
- };
41
- describe('rendering', function () {
42
- it('renders toolbar without crashing', function () {
43
- var _renderComponent = renderComponent(),
44
- container = _renderComponent.container;
45
-
46
- // Check that the toolbar container is rendered
47
- expect(container.firstChild).toBeInTheDocument();
48
-
49
- // Check for Done button (only one with aria-label)
50
- expect(_react2.screen.getByLabelText('Done')).toBeInTheDocument();
51
-
52
- // Check that there are multiple buttons (table manipulation buttons)
53
- var buttons = container.querySelectorAll('button');
54
- expect(buttons.length).toBeGreaterThan(1);
55
- });
56
- it('renders with hasBorder prop', function () {
57
- var _renderComponent2 = renderComponent({
58
- hasBorder: false
59
- }),
60
- container = _renderComponent2.container;
61
- expect(container.firstChild).toBeInTheDocument();
62
-
63
- // Verify hasBorder affects rendering - button with aria-pressed attribute
64
- var borderButton = container.querySelector('button[aria-pressed]');
65
- expect(borderButton).toBeInTheDocument();
66
- expect(borderButton).toHaveAttribute('aria-pressed', 'false');
67
- });
68
- it('renders with hasBorder true', function () {
69
- var _renderComponent3 = renderComponent({
70
- hasBorder: true
71
- }),
72
- container = _renderComponent3.container;
73
-
74
- // Verify hasBorder affects rendering
75
- var borderButton = container.querySelector('button[aria-pressed]');
76
- expect(borderButton).toBeInTheDocument();
77
- expect(borderButton).toHaveAttribute('aria-pressed', 'true');
78
- });
79
- });
80
- });
81
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfdGFibGVUb29sYmFyIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJkZXNjcmliZSIsIm9uRG9uZSIsIm9uQWRkQ29sdW1uIiwib25BZGRSb3ciLCJvblJlbW92ZUNvbHVtbiIsIm9uUmVtb3ZlUm93Iiwib25SZW1vdmVUYWJsZSIsIm9uVG9nZ2xlQm9yZGVyIiwiYmVmb3JlRWFjaCIsImplc3QiLCJmbiIsInJlbmRlckNvbXBvbmVudCIsImV4dHJhcyIsInVuZGVmaW5lZCIsInByb3BzIiwiaGFzQm9yZGVyIiwiY2xhc3NlcyIsInRhYmxlVG9vbGJhciIsInBsdWdpbnMiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIlRhYmxlVG9vbGJhciIsIml0IiwiX3JlbmRlckNvbXBvbmVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsInNjcmVlbiIsImdldEJ5TGFiZWxUZXh0IiwiYnV0dG9ucyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJ0b0JlR3JlYXRlclRoYW4iLCJfcmVuZGVyQ29tcG9uZW50MiIsImJvcmRlckJ1dHRvbiIsInF1ZXJ5U2VsZWN0b3IiLCJ0b0hhdmVBdHRyaWJ1dGUiLCJfcmVuZGVyQ29tcG9uZW50MyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL3RhYmxlL19fdGVzdHNfXy90YWJsZS10b29sYmFyLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIsIHNjcmVlbiB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IHsgVGFibGVUb29sYmFyIH0gZnJvbSAnLi4vdGFibGUtdG9vbGJhcic7XG5cbmRlc2NyaWJlKCd0YWJsZS10b29sYmFyJywgKCkgPT4ge1xuICBsZXQgb25Eb25lLCBvbkFkZENvbHVtbiwgb25BZGRSb3csIG9uUmVtb3ZlQ29sdW1uLCBvblJlbW92ZVJvdywgb25SZW1vdmVUYWJsZSwgb25Ub2dnbGVCb3JkZXI7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25BZGRDb2x1bW4gPSBqZXN0LmZuKCk7XG4gICAgb25BZGRSb3cgPSBqZXN0LmZuKCk7XG4gICAgb25SZW1vdmVDb2x1bW4gPSBqZXN0LmZuKCk7XG4gICAgb25SZW1vdmVSb3cgPSBqZXN0LmZuKCk7XG4gICAgb25SZW1vdmVUYWJsZSA9IGplc3QuZm4oKTtcbiAgICBvbkRvbmUgPSBqZXN0LmZuKCk7XG4gICAgb25Ub2dnbGVCb3JkZXIgPSBqZXN0LmZuKCk7XG4gIH0pO1xuXG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMgPSB7fSkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgb25Eb25lLFxuICAgICAgb25BZGRSb3csXG4gICAgICBvblJlbW92ZVJvdyxcbiAgICAgIG9uQWRkQ29sdW1uLFxuICAgICAgb25SZW1vdmVDb2x1bW4sXG4gICAgICBvblJlbW92ZVRhYmxlLFxuICAgICAgaGFzQm9yZGVyOiB0cnVlLFxuICAgICAgb25Ub2dnbGVCb3JkZXIsXG4gICAgICBjbGFzc2VzOiB7XG4gICAgICAgIHRhYmxlVG9vbGJhcjogJ3RhYmxlLXRvb2xiYXInLFxuICAgICAgfSxcbiAgICAgIHBsdWdpbnM6IFtdLFxuICAgICAgdmFsdWU6IHt9LFxuICAgICAgb25DaGFuZ2U6IGplc3QuZm4oKSxcbiAgICAgIC4uLmV4dHJhcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlbmRlcig8VGFibGVUb29sYmFyIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgdG9vbGJhciB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuXG4gICAgICAvLyBDaGVjayB0aGF0IHRoZSB0b29sYmFyIGNvbnRhaW5lciBpcyByZW5kZXJlZFxuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuXG4gICAgICAvLyBDaGVjayBmb3IgRG9uZSBidXR0b24gKG9ubHkgb25lIHdpdGggYXJpYS1sYWJlbClcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlMYWJlbFRleHQoJ0RvbmUnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcblxuICAgICAgLy8gQ2hlY2sgdGhhdCB0aGVyZSBhcmUgbXVsdGlwbGUgYnV0dG9ucyAodGFibGUgbWFuaXB1bGF0aW9uIGJ1dHRvbnMpXG4gICAgICBjb25zdCBidXR0b25zID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpO1xuICAgICAgZXhwZWN0KGJ1dHRvbnMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMSk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGhhc0JvcmRlciBwcm9wJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IGhhc0JvcmRlcjogZmFsc2UgfSk7XG5cbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcblxuICAgICAgLy8gVmVyaWZ5IGhhc0JvcmRlciBhZmZlY3RzIHJlbmRlcmluZyAtIGJ1dHRvbiB3aXRoIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGVcbiAgICAgIGNvbnN0IGJvcmRlckJ1dHRvbiA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdidXR0b25bYXJpYS1wcmVzc2VkXScpO1xuICAgICAgZXhwZWN0KGJvcmRlckJ1dHRvbikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChib3JkZXJCdXR0b24pLnRvSGF2ZUF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJywgJ2ZhbHNlJyk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGhhc0JvcmRlciB0cnVlJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IGhhc0JvcmRlcjogdHJ1ZSB9KTtcblxuICAgICAgLy8gVmVyaWZ5IGhhc0JvcmRlciBhZmZlY3RzIHJlbmRlcmluZ1xuICAgICAgY29uc3QgYm9yZGVyQnV0dG9uID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvblthcmlhLXByZXNzZWRdJyk7XG4gICAgICBleHBlY3QoYm9yZGVyQnV0dG9uKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KGJvcmRlckJ1dHRvbikudG9IYXZlQXR0cmlidXRlKCdhcmlhLXByZXNzZWQnLCAndHJ1ZScpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsYUFBQSxHQUFBRixPQUFBO0FBQWdELFNBQUFHLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFC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
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.RemoveTable = exports.RemoveRow = exports.RemoveColumn = exports.AddRow = exports.AddColumn = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _styles = require("@mui/material/styles");
11
- var StyledPath = (0, _styles.styled)('path')({
12
- fill: 'grey',
13
- '&:hover': {
14
- fill: 'black'
15
- }
16
- });
17
- var SvgIcon = function SvgIcon(Component) {
18
- var SvgIconComponent = function SvgIconComponent(props) {
19
- return /*#__PURE__*/_react["default"].createElement("svg", {
20
- xmlns: "http://www.w3.org/2000/svg",
21
- version: "1.1",
22
- width: "24",
23
- height: "24",
24
- viewBox: "0 0 24 24"
25
- }, /*#__PURE__*/_react["default"].createElement(Component, props));
26
- };
27
- SvgIconComponent.displayName = "SvgIcon(".concat(Component.displayName || Component.name || 'Component', ")");
28
- return SvgIconComponent;
29
- };
30
- var AddRow = exports.AddRow = SvgIcon(function (props) {
31
- return /*#__PURE__*/_react["default"].createElement(StyledPath, (0, _extends2["default"])({}, props, {
32
- d: "M22,10A2,2 0 0,1 20,12H4A2,2 0 0,1 2,10V3H4V5H8V3H10V5H14V3H16V5H20V3H22V10M4,10H8V7H4V10M10,10H14V7H10V10M20,10V7H16V10H20M11,14H13V17H16V19H13V22H11V19H8V17H11V14Z"
33
- }));
34
- });
35
- var RemoveRow = exports.RemoveRow = SvgIcon(function (props) {
36
- return /*#__PURE__*/_react["default"].createElement(StyledPath, (0, _extends2["default"])({}, props, {
37
- d: "M9.41,13L12,15.59L14.59,13L16,14.41L13.41,17L16,19.59L14.59,21L12,18.41L9.41,21L8,19.59L10.59,17L8,14.41L9.41,13M22,9A2,2 0 0,1 20,11H4A2,2 0 0,1 2,9V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V9M4,9H8V6H4V9M10,9H14V6H10V9M16,9H20V6H16V9Z"
38
- }));
39
- });
40
- var AddColumn = exports.AddColumn = SvgIcon(function (props) {
41
- return /*#__PURE__*/_react["default"].createElement(StyledPath, (0, _extends2["default"])({}, props, {
42
- d: "M11,2A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H2V2H11M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M15,11H18V8H20V11H23V13H20V16H18V13H15V11Z"
43
- }));
44
- });
45
- var RemoveColumn = exports.RemoveColumn = SvgIcon(function (props) {
46
- return /*#__PURE__*/_react["default"].createElement(StyledPath, (0, _extends2["default"])({}, props, {
47
- d: "M4,2H11A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H4A2,2 0 0,1 2,20V4A2,2 0 0,1 4,2M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M17.59,12L15,9.41L16.41,8L19,10.59L21.59,8L23,9.41L20.41,12L23,14.59L21.59,16L19,13.41L16.41,16L15,14.59L17.59,12Z"
48
- }));
49
- });
50
- var RemoveTable = exports.RemoveTable = SvgIcon(function (props) {
51
- return /*#__PURE__*/_react["default"].createElement(StyledPath, (0, _extends2["default"])({}, props, {
52
- d: "M15.46,15.88L16.88,14.46L19,16.59L21.12,14.46L22.54,15.88L20.41,18L22.54,20.12L21.12,21.54L19,19.41L16.88,21.54L15.46,20.12L17.59,18L15.46,15.88M4,3H18A2,2 0 0,1 20,5V12.08C18.45,11.82 16.92,12.18 15.68,13H12V17H13.08C12.97,17.68 12.97,18.35 13.08,19H4A2,2 0 0,1 2,17V5A2,2 0 0,1 4,3M4,7V11H10V7H4M12,7V11H18V7H12M4,13V17H10V13H4Z"
53
- }));
54
- });
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZXMiLCJTdHlsZWRQYXRoIiwic3R5bGVkIiwiZmlsbCIsIlN2Z0ljb24iLCJDb21wb25lbnQiLCJTdmdJY29uQ29tcG9uZW50IiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwieG1sbnMiLCJ2ZXJzaW9uIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZGlzcGxheU5hbWUiLCJjb25jYXQiLCJuYW1lIiwiQWRkUm93IiwiZXhwb3J0cyIsIl9leHRlbmRzMiIsImQiLCJSZW1vdmVSb3ciLCJBZGRDb2x1bW4iLCJSZW1vdmVDb2x1bW4iLCJSZW1vdmVUYWJsZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL3RhYmxlL2ljb25zL2luZGV4LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuXG5jb25zdCBTdHlsZWRQYXRoID0gc3R5bGVkKCdwYXRoJykoe1xuICBmaWxsOiAnZ3JleScsXG4gICcmOmhvdmVyJzoge1xuICAgIGZpbGw6ICdibGFjaycsXG4gIH0sXG59KTtcblxuY29uc3QgU3ZnSWNvbiA9IChDb21wb25lbnQpID0+IHtcbiAgY29uc3QgU3ZnSWNvbkNvbXBvbmVudCA9IChwcm9wcykgPT4gKFxuICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZlcnNpb249XCIxLjFcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICA8Q29tcG9uZW50IHsuLi5wcm9wc30gLz5cbiAgICA8L3N2Zz5cbiAgKTtcbiAgU3ZnSWNvbkNvbXBvbmVudC5kaXNwbGF5TmFtZSA9IGBTdmdJY29uKCR7Q29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnfSlgO1xuICByZXR1cm4gU3ZnSWNvbkNvbXBvbmVudDtcbn07XG5leHBvcnQgY29uc3QgQWRkUm93ID0gU3ZnSWNvbigocHJvcHMpID0+IChcbiAgPFN0eWxlZFBhdGhcbiAgICB7Li4ucHJvcHN9XG4gICAgZD1cIk0yMiwxMEEyLDIgMCAwLDEgMjAsMTJINEEyLDIgMCAwLDEgMiwxMFYzSDRWNUg4VjNIMTBWNUgxNFYzSDE2VjVIMjBWM0gyMlYxME00LDEwSDhWN0g0VjEwTTEwLDEwSDE0VjdIMTBWMTBNMjAsMTBWN0gxNlYxMEgyME0xMSwxNEgxM1YxN0gxNlYxOUgxM1YyMkgxMVYxOUg4VjE3SDExVjE0WlwiXG4gIC8+XG4pKTtcblxuZXhwb3J0IGNvbnN0IFJlbW92ZVJvdyA9IFN2Z0ljb24oKHByb3BzKSA9PiAoXG4gIDxTdHlsZWRQYXRoXG4gICAgey4uLnByb3BzfVxuICAgIGQ9XCJNOS40MSwxM0wxMiwxNS41OUwxNC41OSwxM0wxNiwxNC40MUwxMy40MSwxN0wxNiwxOS41OUwxNC41OSwyMUwxMiwxOC40MUw5LjQxLDIxTDgsMTkuNTlMMTAuNTksMTdMOCwxNC40MUw5LjQxLDEzTTIyLDlBMiwyIDAgMCwxIDIwLDExSDRBMiwyIDAgMCwxIDIsOVY2QTIsMiAwIDAsMSA0LDRIMjBBMiwyIDAgMCwxIDIyLDZWOU00LDlIOFY2SDRWOU0xMCw5SDE0VjZIMTBWOU0xNiw5SDIwVjZIMTZWOVpcIlxuICAvPlxuKSk7XG5cbmV4cG9ydCBjb25zdCBBZGRDb2x1bW4gPSBTdmdJY29uKChwcm9wcykgPT4gKFxuICA8U3R5bGVkUGF0aFxuICAgIHsuLi5wcm9wc31cbiAgICBkPVwiTTExLDJBMiwyIDAgMCwxIDEzLDRWMjBBMiwyIDAgMCwxIDExLDIySDJWMkgxMU00LDEwVjE0SDExVjEwSDRNNCwxNlYyMEgxMVYxNkg0TTQsNFY4SDExVjRINE0xNSwxMUgxOFY4SDIwVjExSDIzVjEzSDIwVjE2SDE4VjEzSDE1VjExWlwiXG4gIC8+XG4pKTtcblxuZXhwb3J0IGNvbnN0IFJlbW92ZUNvbHVtbiA9IFN2Z0ljb24oKHByb3BzKSA9PiAoXG4gIDxTdHlsZWRQYXRoXG4gICAgey4uLnByb3BzfVxuICAgIGQ9XCJNNCwySDExQTIsMiAwIDAsMSAxMyw0VjIwQTIsMiAwIDAsMSAxMSwyMkg0QTIsMiAwIDAsMSAyLDIwVjRBMiwyIDAgMCwxIDQsMk00LDEwVjE0SDExVjEwSDRNNCwxNlYyMEgxMVYxNkg0TTQsNFY4SDExVjRINE0xNy41OSwxMkwxNSw5LjQxTDE2LjQxLDhMMTksMTAuNTlMMjEuNTksOEwyMyw5LjQxTDIwLjQxLDEyTDIzLDE0LjU5TDIxLjU5LDE2TDE5LDEzLjQxTDE2LjQxLDE2TDE1LDE0LjU5TDE3LjU5LDEyWlwiXG4gIC8+XG4pKTtcblxuZXhwb3J0IGNvbnN0IFJlbW92ZVRhYmxlID0gU3ZnSWNvbigocHJvcHMpID0+IChcbiAgPFN0eWxlZFBhdGhcbiAgICB7Li4ucHJvcHN9XG4gICAgZD1cIk0xNS40NiwxNS44OEwxNi44OCwxNC40NkwxOSwxNi41OUwyMS4xMiwxNC40NkwyMi41NCwxNS44OEwyMC40MSwxOEwyMi41NCwyMC4xMkwyMS4xMiwyMS41NEwxOSwxOS40MUwxNi44OCwyMS41NEwxNS40NiwyMC4xMkwxNy41OSwxOEwxNS40NiwxNS44OE00LDNIMThBMiwyIDAgMCwxIDIwLDVWMTIuMDhDMTguNDUsMTEuODIgMTYuOTIsMTIuMTggMTUuNjgsMTNIMTJWMTdIMTMuMDhDMTIuOTcsMTcuNjggMTIuOTcsMTguMzUgMTMuMDgsMTlINEEyLDIgMCAwLDEgMiwxN1Y1QTIsMiAwIDAsMSA0LDNNNCw3VjExSDEwVjdINE0xMiw3VjExSDE4VjdIMTJNNCwxM1YxN0gxMFYxM0g0WlwiXG4gIC8+XG4pKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFNRSxVQUFVLEdBQUcsSUFBQUMsY0FBTSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0VBQ2hDQyxJQUFJLEVBQUUsTUFBTTtFQUNaLFNBQVMsRUFBRTtJQUNUQSxJQUFJLEVBQUU7RUFDUjtBQUNGLENBQUMsQ0FBQztBQUVGLElBQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFJQyxTQUFTLEVBQUs7RUFDN0IsSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBSUMsS0FBSztJQUFBLG9CQUM3QlYsTUFBQSxZQUFBVyxhQUFBO01BQUtDLEtBQUssRUFBQyw0QkFBNEI7TUFBQ0MsT0FBTyxFQUFDLEtBQUs7TUFBQ0MsS0FBSyxFQUFDLElBQUk7TUFBQ0MsTUFBTSxFQUFDLElBQUk7TUFBQ0MsT0FBTyxFQUFDO0lBQVcsZ0JBQzlGaEIsTUFBQSxZQUFBVyxhQUFBLENBQUNILFNBQVMsRUFBS0UsS0FBUSxDQUNwQixDQUFDO0VBQUEsQ0FDUDtFQUNERCxnQkFBZ0IsQ0FBQ1EsV0FBVyxjQUFBQyxNQUFBLENBQWNWLFNBQVMsQ0FBQ1MsV0FBVyxJQUFJVCxTQUFTLENBQUNXLElBQUksSUFBSSxXQUFXLE1BQUc7RUFDbkcsT0FBT1YsZ0JBQWdCO0FBQ3pCLENBQUM7QUFDTSxJQUFNVyxNQUFNLEdBQUFDLE9BQUEsQ0FBQUQsTUFBQSxHQUFHYixPQUFPLENBQUMsVUFBQ0csS0FBSztFQUFBLG9CQUNsQ1YsTUFBQSxZQUFBVyxhQUFBLENBQUNQLFVBQVUsTUFBQWtCLFNBQUEsaUJBQ0xaLEtBQUs7SUFDVGEsQ0FBQyxFQUFDO0VBQXVLLEVBQzFLLENBQUM7QUFBQSxDQUNILENBQUM7QUFFSyxJQUFNQyxTQUFTLEdBQUFILE9BQUEsQ0FBQUcsU0FBQSxHQUFHakIsT0FBTyxDQUFDLFVBQUNHLEtBQUs7RUFBQSxvQkFDckNWLE1BQUEsWUFBQVcsYUFBQSxDQUFDUCxVQUFVLE1BQUFrQixTQUFBLGlCQUNMWixLQUFLO0lBQ1RhLENBQUMsRUFBQztFQUFzTyxFQUN6TyxDQUFDO0FBQUEsQ0FDSCxDQUFDO0FBRUssSUFBTUUsU0FBUyxHQUFBSixPQUFBLENBQUFJLFNBQUEsR0FBR2xCLE9BQU8sQ0FBQyxVQUFDRyxLQUFLO0VBQUEsb0JBQ3JDVixNQUFBLFlBQUFXLGFBQUEsQ0FBQ1AsVUFBVSxNQUFBa0IsU0FBQSxpQkFDTFosS0FBSztJQUNUYSxDQUFDLEVBQUM7RUFBdUksRUFDMUksQ0FBQztBQUFBLENBQ0gsQ0FBQztBQUVLLElBQU1HLFlBQVksR0FBQUwsT0FBQSxDQUFBSyxZQUFBLEdBQUduQixPQUFPLENBQUMsVUFBQ0csS0FBSztFQUFBLG9CQUN4Q1YsTUFBQSxZQUFBVyxhQUFBLENBQUNQLFVBQVUsTUFBQWtCLFNBQUEsaUJBQ0xaLEtBQUs7SUFDVGEsQ0FBQyxFQUFDO0VBQTJPLEVBQzlPLENBQUM7QUFBQSxDQUNILENBQUM7QUFFSyxJQUFNSSxXQUFXLEdBQUFOLE9BQUEsQ0FBQU0sV0FBQSxHQUFHcEIsT0FBTyxDQUFDLFVBQUNHLEtBQUs7RUFBQSxvQkFDdkNWLE1BQUEsWUFBQVcsYUFBQSxDQUFDUCxVQUFVLE1BQUFrQixTQUFBLGlCQUNMWixLQUFLO0lBQ1RhLENBQUMsRUFBQztFQUE0VSxFQUMvVSxDQUFDO0FBQUEsQ0FDSCxDQUFDIiwiaWdub3JlTGlzdCI6W119