@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.
Files changed (40) hide show
  1. package/CHANGELOG.md +461 -0
  2. package/LICENSE.md +5 -0
  3. package/configure/CHANGELOG.md +405 -0
  4. package/configure/lib/defaults.js +18 -1
  5. package/configure/lib/defaults.js.map +1 -1
  6. package/configure/lib/index.js +15 -1
  7. package/configure/lib/index.js.map +1 -1
  8. package/configure/lib/inline-dropdown-toolbar.js +54 -47
  9. package/configure/lib/inline-dropdown-toolbar.js.map +1 -1
  10. package/configure/lib/main.js +227 -159
  11. package/configure/lib/main.js.map +1 -1
  12. package/configure/lib/markupUtils.js +1 -1
  13. package/configure/lib/markupUtils.js.map +1 -1
  14. package/configure/lib/utils.js +17 -0
  15. package/configure/lib/utils.js.map +1 -0
  16. package/configure/package.json +5 -5
  17. package/controller/CHANGELOG.md +85 -0
  18. package/controller/lib/defaults.js +1 -1
  19. package/controller/lib/index.js +28 -1
  20. package/controller/lib/index.js.map +1 -1
  21. package/controller/lib/utils.js +1 -1
  22. package/controller/lib/utils.js.map +1 -1
  23. package/controller/package.json +2 -2
  24. package/docs/config-schema.json +94 -0
  25. package/docs/config-schema.json.md +73 -1
  26. package/docs/demo/config.js +2 -2
  27. package/docs/demo/generate.js +19 -20
  28. package/docs/pie-schema.json +27 -0
  29. package/docs/pie-schema.json.md +20 -0
  30. package/lib/index.js +4 -1
  31. package/lib/index.js.map +1 -1
  32. package/lib/inline-dropdown.js +31 -21
  33. package/lib/inline-dropdown.js.map +1 -1
  34. package/package.json +6 -6
  35. package/configure/lib/__tests__/inline-dropdown-toolbar.test.js +0 -124
  36. package/configure/lib/__tests__/main.test.js +0 -516
  37. package/configure/lib/__tests__/markupUtils.test.js +0 -108
  38. package/controller/lib/__tests__/index.test.js +0 -942
  39. package/docs/demo/pie.manifest.json +0 -11
  40. 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=