@pie-element/inline-dropdown 4.10.16-next.1 → 4.11.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.
- package/CHANGELOG.md +461 -0
- package/LICENSE.md +5 -0
- package/configure/CHANGELOG.md +405 -0
- package/configure/lib/defaults.js +18 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +15 -1
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/inline-dropdown-toolbar.js +54 -47
- package/configure/lib/inline-dropdown-toolbar.js.map +1 -1
- package/configure/lib/main.js +227 -159
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/markupUtils.js +1 -1
- package/configure/lib/markupUtils.js.map +1 -1
- package/configure/lib/utils.js +17 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +85 -0
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/index.js +28 -1
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +1 -1
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/config-schema.json +94 -0
- package/docs/config-schema.json.md +73 -1
- package/docs/demo/config.js +2 -2
- package/docs/demo/generate.js +19 -20
- package/docs/pie-schema.json +27 -0
- package/docs/pie-schema.json.md +20 -0
- package/lib/index.js +4 -1
- package/lib/index.js.map +1 -1
- package/lib/inline-dropdown.js +31 -21
- package/lib/inline-dropdown.js.map +1 -1
- package/package.json +6 -6
- package/configure/lib/__tests__/inline-dropdown-toolbar.test.js +0 -124
- package/configure/lib/__tests__/main.test.js +0 -516
- package/configure/lib/__tests__/markupUtils.test.js +0 -108
- package/controller/lib/__tests__/index.test.js +0 -942
- package/docs/demo/pie.manifest.json +0 -11
- package/lib/__tests__/inline-dropdown.test.js +0 -121
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _markupUtils = require("../markupUtils");
|
|
4
|
-
|
|
5
|
-
describe('markupUtils', function () {
|
|
6
|
-
describe('createElementFromHTML', function () {
|
|
7
|
-
it('should create dom element from string', function () {
|
|
8
|
-
var el = (0, _markupUtils.createElementFromHTML)("<div>Foo Bar</div>");
|
|
9
|
-
expect(el.outerHTML).toEqual('<div><div>Foo Bar</div></div>');
|
|
10
|
-
});
|
|
11
|
-
});
|
|
12
|
-
describe('removeUnwantedCharacters', function () {
|
|
13
|
-
it('should remove \\t and \\n characters', function () {
|
|
14
|
-
expect((0, _markupUtils.removeUnwantedCharacters)('<div>foo\t\nbar</div>')).toEqual('<div>foobar</div>');
|
|
15
|
-
});
|
|
16
|
-
it('should remove \\t and \\n characters', function () {
|
|
17
|
-
expect((0, _markupUtils.removeUnwantedCharacters)('<div>foo\\t\\nbar</div>')).toEqual('<div>foobar</div>');
|
|
18
|
-
});
|
|
19
|
-
it('should replace \\" with "', function () {
|
|
20
|
-
expect((0, _markupUtils.removeUnwantedCharacters)('<div>\"foo bar\"</div>')).toEqual('<div>"foo bar"</div>');
|
|
21
|
-
});
|
|
22
|
-
it('should replace \\\/ with /', function () {
|
|
23
|
-
expect((0, _markupUtils.removeUnwantedCharacters)('<div>foo\/bar</div>')).toEqual('<div>foo/bar</div>');
|
|
24
|
-
});
|
|
25
|
-
it('should not remove \\t character which has latex like \\times', function () {
|
|
26
|
-
expect((0, _markupUtils.removeUnwantedCharacters)('<div><span data-latex=\"\" data-raw=\"3\\times3\\div2\">3\\times3\\div2</span></div>')).toEqual("<div><span data-latex=\"\" data-raw=\"3\\times3\\div2\">3\\times3\\div2</span></div>");
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
describe('processMarkup', function () {
|
|
30
|
-
it('should get processed markup', function () {
|
|
31
|
-
var markup = ['<div>', '<span data-type="inline_dropdown" data-value="foobar" data-index="0"></span>', '<span data-type="inline_dropdown" data-value="barfoo" data-index="1"></span>', '</div>'].join('');
|
|
32
|
-
var processed = (0, _markupUtils.processMarkup)(markup);
|
|
33
|
-
expect(processed).toEqual(['<div>', '{{0}}', '{{1}}', '</div>'].join(''));
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
describe('createSlateMarkup', function () {
|
|
37
|
-
it('should create slate markup from the regular markup and choices', function () {
|
|
38
|
-
var markup = ['<div>', '{{0}}', '{{1}}', '</div>'].join('');
|
|
39
|
-
var choices = {
|
|
40
|
-
0: [{
|
|
41
|
-
id: '0',
|
|
42
|
-
value: 'foobar',
|
|
43
|
-
label: 'foobar'
|
|
44
|
-
}, {
|
|
45
|
-
id: '1',
|
|
46
|
-
value: 'barfoo',
|
|
47
|
-
label: 'barfoo'
|
|
48
|
-
}, {
|
|
49
|
-
id: '2',
|
|
50
|
-
value: 'hufu',
|
|
51
|
-
label: 'hufu',
|
|
52
|
-
correct: true
|
|
53
|
-
}],
|
|
54
|
-
1: [{
|
|
55
|
-
id: '0',
|
|
56
|
-
value: 'foobar',
|
|
57
|
-
label: 'foobar'
|
|
58
|
-
}, {
|
|
59
|
-
id: '1',
|
|
60
|
-
value: 'barfoo',
|
|
61
|
-
label: 'barfoo'
|
|
62
|
-
}, {
|
|
63
|
-
id: '2',
|
|
64
|
-
value: 'hufu',
|
|
65
|
-
label: 'hufu',
|
|
66
|
-
correct: true
|
|
67
|
-
}]
|
|
68
|
-
};
|
|
69
|
-
var slateMarkup = (0, _markupUtils.createSlateMarkup)(markup, choices);
|
|
70
|
-
expect(slateMarkup).toEqual(['<div>', '<span data-type="inline_dropdown" data-index="0" data-value="hufu"></span>', '<span data-type="inline_dropdown" data-index="1" data-value="hufu"></span>', '</div>'].join(''));
|
|
71
|
-
});
|
|
72
|
-
it('should handle choices with empty values', function () {
|
|
73
|
-
var markup = ['<div>', '{{0}}', '{{1}}', '</div>'].join('');
|
|
74
|
-
var choices = {
|
|
75
|
-
0: [{
|
|
76
|
-
id: '0',
|
|
77
|
-
value: 'foobar',
|
|
78
|
-
label: 'foobar'
|
|
79
|
-
}, {
|
|
80
|
-
id: '1',
|
|
81
|
-
value: 'barfoo',
|
|
82
|
-
label: 'barfoo'
|
|
83
|
-
}, {
|
|
84
|
-
id: '2',
|
|
85
|
-
value: 'hufu',
|
|
86
|
-
label: 'hufu',
|
|
87
|
-
correct: true
|
|
88
|
-
}],
|
|
89
|
-
1: [{
|
|
90
|
-
id: '0',
|
|
91
|
-
value: 'foobar',
|
|
92
|
-
label: 'foobar'
|
|
93
|
-
}, {
|
|
94
|
-
id: '1',
|
|
95
|
-
value: 'barfoo',
|
|
96
|
-
label: 'barfoo'
|
|
97
|
-
}, {
|
|
98
|
-
id: '2',
|
|
99
|
-
value: 'hufu',
|
|
100
|
-
label: 'hufu'
|
|
101
|
-
}]
|
|
102
|
-
};
|
|
103
|
-
var slateMarkup = (0, _markupUtils.createSlateMarkup)(markup, choices);
|
|
104
|
-
expect(slateMarkup).toEqual(['<div>', '<span data-type="inline_dropdown" data-index="0" data-value="hufu"></span>', '<span data-type="inline_dropdown" data-index="1" data-value=""></span>', '</div>'].join(''));
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbWFya3VwVXRpbHMudGVzdC5qc3giXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJpdCIsImVsIiwiZXhwZWN0Iiwib3V0ZXJIVE1MIiwidG9FcXVhbCIsIm1hcmt1cCIsImpvaW4iLCJwcm9jZXNzZWQiLCJjaG9pY2VzIiwiaWQiLCJ2YWx1ZSIsImxhYmVsIiwiY29ycmVjdCIsInNsYXRlTWFya3VwIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQU9BQSxRQUFRLENBQUMsYUFBRCxFQUFnQixZQUFNO0FBRTVCQSxFQUFBQSxRQUFRLENBQUMsdUJBQUQsRUFBMEIsWUFBTTtBQUV0Q0MsSUFBQUEsRUFBRSxDQUFDLHVDQUFELEVBQTBDLFlBQU07QUFDaEQsVUFBTUMsRUFBRSxHQUFHLDZEQUFYO0FBRUFDLE1BQUFBLE1BQU0sQ0FBQ0QsRUFBRSxDQUFDRSxTQUFKLENBQU4sQ0FBcUJDLE9BQXJCLENBQTZCLCtCQUE3QjtBQUNELEtBSkMsQ0FBRjtBQU1ELEdBUk8sQ0FBUjtBQVVBTCxFQUFBQSxRQUFRLENBQUMsMEJBQUQsRUFBNkIsWUFBTTtBQUV6Q0MsSUFBQUEsRUFBRSxDQUFDLHNDQUFELEVBQXlDLFlBQU07QUFDL0NFLE1BQUFBLE1BQU0sQ0FBQywyQ0FBeUIsdUJBQXpCLENBQUQsQ0FBTixDQUEwREUsT0FBMUQsQ0FBa0UsbUJBQWxFO0FBQ0QsS0FGQyxDQUFGO0FBSUFKLElBQUFBLEVBQUUsQ0FBQyxzQ0FBRCxFQUF5QyxZQUFNO0FBQy9DRSxNQUFBQSxNQUFNLENBQUMsMkNBQXlCLHlCQUF6QixDQUFELENBQU4sQ0FBNERFLE9BQTVELENBQW9FLG1CQUFwRTtBQUNELEtBRkMsQ0FBRjtBQUlBSixJQUFBQSxFQUFFLENBQUMsMkJBQUQsRUFBOEIsWUFBTTtBQUNwQ0UsTUFBQUEsTUFBTSxDQUFDLDJDQUF5Qix3QkFBekIsQ0FBRCxDQUFOLENBQTJERSxPQUEzRCxDQUFtRSxzQkFBbkU7QUFDRCxLQUZDLENBQUY7QUFJQUos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ZW1lbnRGcm9tSFRNTCxcbiAgY3JlYXRlU2xhdGVNYXJrdXAsXG4gIHByb2Nlc3NNYXJrdXAsXG4gIHJlbW92ZVVud2FudGVkQ2hhcmFjdGVyc1xufSBmcm9tICcuLi9tYXJrdXBVdGlscyc7XG5cbmRlc2NyaWJlKCdtYXJrdXBVdGlscycsICgpID0+IHtcblxuICBkZXNjcmliZSgnY3JlYXRlRWxlbWVudEZyb21IVE1MJywgKCkgPT4ge1xuXG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgZG9tIGVsZW1lbnQgZnJvbSBzdHJpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IGNyZWF0ZUVsZW1lbnRGcm9tSFRNTChgPGRpdj5Gb28gQmFyPC9kaXY+YCk7XG5cbiAgICAgIGV4cGVjdChlbC5vdXRlckhUTUwpLnRvRXF1YWwoJzxkaXY+PGRpdj5Gb28gQmFyPC9kaXY+PC9kaXY+Jyk7XG4gICAgfSk7XG5cbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlbW92ZVVud2FudGVkQ2hhcmFjdGVycycsICgpID0+IHtcblxuICAgIGl0KCdzaG91bGQgcmVtb3ZlIFxcXFx0IGFuZCBcXFxcbiBjaGFyYWN0ZXJzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHJlbW92ZVVud2FudGVkQ2hhcmFjdGVycygnPGRpdj5mb29cXHRcXG5iYXI8L2Rpdj4nKSkudG9FcXVhbCgnPGRpdj5mb29iYXI8L2Rpdj4nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVtb3ZlIFxcXFx0IGFuZCBcXFxcbiBjaGFyYWN0ZXJzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHJlbW92ZVVud2FudGVkQ2hhcmFjdGVycygnPGRpdj5mb29cXFxcdFxcXFxuYmFyPC9kaXY+JykpLnRvRXF1YWwoJzxkaXY+Zm9vYmFyPC9kaXY+Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlcGxhY2UgXFxcXFwiIHdpdGggXCInLCAoKSA9PiB7XG4gICAgICBleHBlY3QocmVtb3ZlVW53YW50ZWRDaGFyYWN0ZXJzKCc8ZGl2PlxcXCJmb28gYmFyXFxcIjwvZGl2PicpKS50b0VxdWFsKCc8ZGl2PlwiZm9vIGJhclwiPC9kaXY+Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlcGxhY2UgXFxcXFxcLyB3aXRoIC8nLCAoKSA9PiB7XG4gICAgICBleHBlY3QocmVtb3ZlVW53YW50ZWRDaGFyYWN0ZXJzKCc8ZGl2PmZvb1xcL2JhcjwvZGl2PicpKS50b0VxdWFsKCc8ZGl2PmZvby9iYXI8L2Rpdj4nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IHJlbW92ZSBcXFxcdCBjaGFyYWN0ZXIgd2hpY2ggaGFzIGxhdGV4IGxpa2UgXFxcXHRpbWVzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KHJlbW92ZVVud2FudGVkQ2hhcmFjdGVycygnPGRpdj48c3BhbiBkYXRhLWxhdGV4PVxcXCJcXFwiIGRhdGEtcmF3PVxcXCIzXFxcXHRpbWVzM1xcXFxkaXYyXFxcIj4zXFxcXHRpbWVzM1xcXFxkaXYyPC9zcGFuPjwvZGl2PicpKVxuICAgICAgICAudG9FcXVhbChcIjxkaXY+PHNwYW4gZGF0YS1sYXRleD1cXFwiXFxcIiBkYXRhLXJhdz1cXFwiM1xcXFx0aW1lczNcXFxcZGl2MlxcXCI+M1xcXFx0aW1lczNcXFxcZGl2Mjwvc3Bhbj48L2Rpdj5cIik7XG4gICAgfSk7XG5cbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Byb2Nlc3NNYXJrdXAnLCAoKSA9PiB7XG5cbiAgICBpdCgnc2hvdWxkIGdldCBwcm9jZXNzZWQgbWFya3VwJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFya3VwID0gW1xuICAgICAgICAnPGRpdj4nLFxuICAgICAgICAgICc8c3BhbiBkYXRhLXR5cGU9XCJpbmxpbmVfZHJvcGRvd25cIiBkYXRhLXZhbHVlPVwiZm9vYmFyXCIgZGF0YS1pbmRleD1cIjBcIj48L3NwYW4+JyxcbiAgICAgICAgICAnPHNwYW4gZGF0YS10eXBlPVwiaW5saW5lX2Ryb3Bkb3duXCIgZGF0YS12YWx1ZT1cImJhcmZvb1wiIGRhdGEtaW5kZXg9XCIxXCI+PC9zcGFuPicsXG4gICAgICAgICc8L2Rpdj4nXG4gICAgICBdLmpvaW4oJycpO1xuICAgICAgY29uc3QgcHJvY2Vzc2VkID0gcHJvY2Vzc01hcmt1cChtYXJrdXApO1xuXG4gICAgICBleHBlY3QocHJvY2Vzc2VkKS50b0VxdWFsKFtcbiAgICAgICAgJzxkaXY+JyxcbiAgICAgICAgJ3t7MH19JyxcbiAgICAgICAgJ3t7MX19JyxcbiAgICAgICAgJzwvZGl2PidcbiAgICAgIF0uam9pbignJykpO1xuICAgIH0pO1xuXG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjcmVhdGVTbGF0ZU1hcmt1cCcsICgpID0+IHtcblxuICAgIGl0KCdzaG91bGQgY3JlYXRlIHNsYXRlIG1hcmt1cCBmcm9tIHRoZSByZWd1bGFyIG1hcmt1cCBhbmQgY2hvaWNlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1hcmt1cCA9IFtcbiAgICAgICAgJzxkaXY+JyxcbiAgICAgICAgICAne3swfX0nLFxuICAgICAgICAgICd7ezF9fScsXG4gICAgICAgICc8L2Rpdj4nXG4gICAgICBdLmpvaW4oJycpO1xuICAgICAgY29uc3QgY2hvaWNlcyA9IHtcbiAgICAgICAgMDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnMCcsXG4gICAgICAgICAgICB2YWx1ZTogJ2Zvb2JhcicsXG4gICAgICAgICAgICBsYWJlbDogJ2Zvb2JhcidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnMScsXG4gICAgICAgICAgICB2YWx1ZTogJ2JhcmZvbycsXG4gICAgICAgICAgICBsYWJlbDogJ2JhcmZvbydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnMicsXG4gICAgICAgICAgICB2YWx1ZTogJ2h1ZnUnLFxuICAgICAgICAgICAgbGFiZWw6ICdodWZ1JyxcbiAgICAgICAgICAgIGNvcnJlY3Q6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIDE6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJzAnLFxuICAgICAgICAgICAgdmFsdWU6ICdmb29iYXInLFxuICAgICAgICAgICAgbGFiZWw6ICdmb29iYXInXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJzEnLFxuICAgICAgICAgICAgdmFsdWU6ICdiYXJmb28nLFxuICAgICAgICAgICAgbGFiZWw6ICdiYXJmb28nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJzInLFxuICAgICAgICAgICAgdmFsdWU6ICdodWZ1JyxcbiAgICAgICAgICAgIGxhYmVsOiAnaHVmdScsXG4gICAgICAgICAgICBjb3JyZWN0OiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2xhdGVNYXJrdXAgPSBjcmVhdGVTbGF0ZU1hcmt1cChtYXJrdXAsIGNob2ljZXMpO1xuXG4gICAgICBleHBlY3Qoc2xhdGVNYXJrdXApLnRvRXF1YWwoW1xuICAgICAgICAnPGRpdj4nLFxuICAgICAgICAnPHNwYW4gZGF0YS10eXBlPVwiaW5saW5lX2Ryb3Bkb3duXCIgZGF0YS1pbmRleD1cIjBcIiBkYXRhLXZhbHVlPVwiaHVmdVwiPjwvc3Bhbj4nLFxuICAgICAgICAnPHNwYW4gZGF0YS10eXBlPVwiaW5saW5lX2Ryb3Bkb3duXCIgZGF0YS1pbmRleD1cIjFcIiBkYXRhLXZhbHVlPVwiaHVmdVwiPjwvc3Bhbj4nLFxuICAgICAgICAnPC9kaXY+J1xuICAgICAgXS5qb2luKCcnKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBjaG9pY2VzIHdpdGggZW1wdHkgdmFsdWVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFya3VwID0gW1xuICAgICAgICAnPGRpdj4nLFxuICAgICAgICAne3swfX0nLFxuICAgICAgICAne3sxfX0nLFxuICAgICAgICAnPC9kaXY+J1xuICAgICAgXS5qb2luKCcnKTtcbiAgICAgIGNvbnN0IGNob2ljZXMgPSB7XG4gICAgICAgIDA6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJzAnLFxuICAgICAgICAgICAgdmFsdWU6ICdmb29iYXInLFxuICAgICAgICAgICAgbGFiZWw6ICdmb29iYXInXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJzEnLFxuICAgICAgICAgICAgdmFsdWU6ICdiYXJmb28nLFxuICAgICAgICAgICAgbGFiZWw6ICdiYXJmb28nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJzInLFxuICAgICAgICAgICAgdmFsdWU6ICdodWZ1JyxcbiAgICAgICAgICAgIGxhYmVsOiAnaHVmdScsXG4gICAgICAgICAgICBjb3JyZWN0OiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAxOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICcwJyxcbiAgICAgICAgICAgIHZhbHVlOiAnZm9vYmFyJyxcbiAgICAgICAgICAgIGxhYmVsOiAnZm9vYmFyJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgICAgIHZhbHVlOiAnYmFyZm9vJyxcbiAgICAgICAgICAgIGxhYmVsOiAnYmFyZm9vJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICcyJyxcbiAgICAgICAgICAgIHZhbHVlOiAnaHVmdScsXG4gICAgICAgICAgICBsYWJlbDogJ2h1ZnUnXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2xhdGVNYXJrdXAgPSBjcmVhdGVTbGF0ZU1hcmt1cChtYXJrdXAsIGNob2ljZXMpO1xuXG4gICAgICBleHBlY3Qoc2xhdGVNYXJrdXApLnRvRXF1YWwoW1xuICAgICAgICAnPGRpdj4nLFxuICAgICAgICAnPHNwYW4gZGF0YS10eXBlPVwiaW5saW5lX2Ryb3Bkb3duXCIgZGF0YS1pbmRleD1cIjBcIiBkYXRhLXZhbHVlPVwiaHVmdVwiPjwvc3Bhbj4nLFxuICAgICAgICAnPHNwYW4gZGF0YS10eXBlPVwiaW5saW5lX2Ryb3Bkb3duXCIgZGF0YS1pbmRleD1cIjFcIiBkYXRhLXZhbHVlPVwiXCI+PC9zcGFuPicsXG4gICAgICAgICc8L2Rpdj4nXG4gICAgICBdLmpvaW4oJycpKTtcbiAgICB9KTtcblxuICB9KTtcblxufSk7XG4iXX0=
|