@json-editor/json-editor 2.14.1 → 2.15.0

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 (73) hide show
  1. package/.env +4 -0
  2. package/.eslintrc +4 -1
  3. package/.github/workflows/build.yml +5 -4
  4. package/CHANGELOG.md +21 -0
  5. package/README.md +32 -1
  6. package/config/webpack.common.js +2 -6
  7. package/dist/jsoneditor.js +1 -1
  8. package/dist/jsoneditor.js.LICENSE.txt +1 -1
  9. package/dist/nonmin/jsoneditor.js +4121 -3939
  10. package/dist/nonmin/jsoneditor.js.map +1 -1
  11. package/docs/meta-schema.html +793 -0
  12. package/package.json +13 -13
  13. package/src/core.js +5 -1
  14. package/src/defaults.js +9 -2
  15. package/src/editor.js +33 -14
  16. package/src/editors/array.js +3 -6
  17. package/src/editors/base64.js +3 -0
  18. package/src/editors/describedby.js +2 -2
  19. package/src/editors/enum.js +9 -1
  20. package/src/editors/info.js +8 -0
  21. package/src/editors/multiple.js +9 -2
  22. package/src/editors/object.js +26 -7
  23. package/src/editors/radio.js +5 -2
  24. package/src/editors/select.js +19 -8
  25. package/src/editors/select2.js +1 -1
  26. package/src/editors/starrating.js +5 -4
  27. package/src/editors/string.js +16 -2
  28. package/src/editors/table.js +2 -2
  29. package/src/iconlib.js +0 -1
  30. package/src/schemaloader.js +2 -2
  31. package/src/style.css +4 -0
  32. package/src/style.css.js +1 -1
  33. package/src/templates/default.js +2 -2
  34. package/src/theme.js +13 -3
  35. package/src/themes/index.js +0 -1
  36. package/src/validator.js +4 -4
  37. package/tests/Dockerfile +1 -1
  38. package/tests/codeceptjs/core_test.js +8 -2
  39. package/tests/codeceptjs/editors/array_test.js +11 -6
  40. package/tests/codeceptjs/editors/autocomplete_test.js +0 -1
  41. package/tests/codeceptjs/editors/integer_test.js +0 -4
  42. package/tests/codeceptjs/editors/object_test.js +8 -0
  43. package/tests/codeceptjs/editors/rating_test.js +1 -1
  44. package/tests/codeceptjs/editors/select_test.js +18 -0
  45. package/tests/codeceptjs/editors/starrating_test.js +15 -0
  46. package/tests/codeceptjs/editors/string_test.js +7 -0
  47. package/tests/codeceptjs/issues/issue-gh-1158_test.js +1 -1
  48. package/tests/codeceptjs/issues/issue-gh-1164_test.js +0 -1
  49. package/tests/codeceptjs/issues/issue-gh-1383_test.js +1 -1
  50. package/tests/codeceptjs/issues/issue-gh-1452_test.js +10 -0
  51. package/tests/codeceptjs/issues/issue-gh-1525_test.js +9 -0
  52. package/tests/codeceptjs/issues/issue-gh-1536_test.js +12 -0
  53. package/tests/codeceptjs/issues/issue-gh-1538_test.js +10 -0
  54. package/tests/codeceptjs/issues/issue-gh-1541_test.js +8 -0
  55. package/tests/docker-compose-local.yml +1 -2
  56. package/tests/docker-compose.yml +0 -1
  57. package/tests/pages/array-events-table.html +39 -31
  58. package/tests/pages/array-events.html +39 -31
  59. package/tests/pages/assets/autocomplete.css +1 -0
  60. package/tests/pages/assets/autocomplete.min.js +1 -0
  61. package/tests/pages/autocomplete.html +4 -4
  62. package/tests/pages/enforce-const.html +176 -0
  63. package/tests/pages/issues/issue-gh-1452.html +98 -0
  64. package/tests/pages/issues/issue-gh-1525.html +62 -0
  65. package/tests/pages/issues/issue-gh-1536.html +55 -0
  66. package/tests/pages/issues/issue-gh-1538.html +56 -0
  67. package/tests/pages/issues/issue-gh-1541.html +51 -0
  68. package/tests/pages/issues/issue-gh-1541.json +9 -0
  69. package/tests/pages/placeholder-options.html +57 -0
  70. package/tests/pages/prompt-paste-max-length-reached.html +51 -0
  71. package/tests/pages/remove-false-properties.html +85 -0
  72. package/tests/pages/starrating.html +86 -0
  73. package/tests/unit/editor.spec.js +1 -1
@@ -0,0 +1,85 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>remove_false_properties</title>
6
+ <script src="../../dist/jsoneditor.js"></script>
7
+ <link rel="stylesheet" id="theme-link" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
8
+ <link rel="stylesheet" id="iconlib-link" href="https://use.fontawesome.com/releases/v5.6.1/css/all.css">
9
+ </head>
10
+ <body>
11
+
12
+ <div class="container">
13
+ <h1>Test</h1>
14
+ <label for="value">Value</label>
15
+ <textarea class="form-control" id="value" rows="12" style="font-size: 12px; font-family: monospace;"></textarea>
16
+ <div id='editor-container'></div>
17
+ </div>
18
+
19
+ <script>
20
+ const editorContainer = document.querySelector('#editor-container')
21
+ const value = document.querySelector('#value')
22
+ const schema = {
23
+ "type": "object",
24
+ "options": {
25
+ "remove_false_properties": true
26
+ },
27
+ "properties": {
28
+ "a": {
29
+ "type": "boolean",
30
+ "format": "checkbox",
31
+ "options": {
32
+ "dependencies": {
33
+ "a": [
34
+ true
35
+ ]
36
+ }
37
+ }
38
+ },
39
+ "b": {
40
+ "type": "boolean",
41
+ "format": "checkbox",
42
+ "options": {
43
+ "remove_false_properties": true
44
+ }
45
+ },
46
+ "c": {
47
+ "type": "boolean",
48
+ "format": "checkbox"
49
+ },
50
+ "d": {
51
+ "type": "boolean",
52
+ "format": "checkbox"
53
+ },
54
+ "e": {
55
+ "type": "boolean",
56
+ "format": "checkbox"
57
+ },
58
+ "f": {
59
+ "type": "boolean",
60
+ "format": "checkbox"
61
+ },
62
+ "g": {
63
+ "type": "boolean",
64
+ "format": "checkbox"
65
+ },
66
+ "h": {
67
+ "type": "boolean",
68
+ "format": "checkbox"
69
+ }
70
+ }
71
+ }
72
+
73
+ const editor = new JSONEditor(editorContainer, {
74
+ schema: schema,
75
+ theme: 'bootstrap4',
76
+ iconlib: 'fontawesome',
77
+ show_errors: 'always',
78
+ remove_false_properties: false
79
+ })
80
+
81
+ editor.on('change', function () {
82
+ value.value = JSON.stringify(editor.getValue())
83
+ })
84
+ </script>
85
+ </body>
@@ -0,0 +1,86 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <title>rating</title>
6
+ <script src="../../dist/jsoneditor.js"></script>
7
+ <link rel="stylesheet" id="theme-link" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
8
+ <link rel="stylesheet" id="iconlib-link" href="https://use.fontawesome.com/releases/v5.6.1/css/all.css">
9
+ </head>
10
+ <body>
11
+
12
+ <div class="container">
13
+ <h1>Test</h1>
14
+ <div class="form-group">
15
+ <label for="value">Value</label>
16
+ <textarea id="value" class="form-control" rows="10"></textarea>
17
+ </div>
18
+
19
+ <div id='editor-container'></div>
20
+ </div>
21
+
22
+ <script>
23
+ const editorContainer = document.querySelector('#editor-container')
24
+ const value = document.querySelector('#value')
25
+ const schema = {
26
+ type: "object",
27
+ title: "Car",
28
+ properties: {
29
+ integer_rating: {
30
+ type: "integer",
31
+ format: "rating",
32
+ },
33
+ string_rating: {
34
+ type: "string",
35
+ format: "rating",
36
+ },
37
+ starrating: {
38
+ type: "string",
39
+ format: "starrating",
40
+ title: "Starrating",
41
+ description: 'Starrating',
42
+ enum: ["Beginner", "Skilled", "Experienced", "Advanced", "Expert"],
43
+ options: {
44
+ grid_columns: 2
45
+ }
46
+ },
47
+ starrating2: {
48
+ type: "string",
49
+ format: "starrating",
50
+ title: "Starrating",
51
+ description: 'Starrating with "displayValue=true"',
52
+ enum: ["Beginner", "Skilled", "Experienced", "Advanced", "Expert"],
53
+ options: {
54
+ grid_columns: 2,
55
+ displayValue: true
56
+ }
57
+ },
58
+ starrating3: {
59
+ type: "string",
60
+ format: "starrating",
61
+ title: "Starrating",
62
+ description: 'Starrating with "displayValue=true"',
63
+ default: "5 Stars",
64
+ enum: ["1 Star", "2 Stars", "3 Stars", "4 Stars", "5 Stars", "6 Stars", "7 Stars", "8 Stars", "9 Stars", "10 Stars"],
65
+ options: {
66
+ grid_columns: 4,
67
+ displayValue: true
68
+ }
69
+ }
70
+ }
71
+ }
72
+
73
+ const editor = new JSONEditor(editorContainer, {
74
+ schema: schema,
75
+ theme: 'bootstrap4',
76
+ iconlib: 'fontawesome',
77
+ show_errors: 'always'
78
+ })
79
+
80
+ editor.on('change', function () {
81
+ value.value = JSON.stringify(editor.getValue())
82
+ })
83
+ </script>
84
+
85
+ </body>
86
+ </html>
@@ -63,7 +63,7 @@ describe('Editor', () => {
63
63
  startval: 5
64
64
  })
65
65
  editor.promise.then(() => {
66
- expect(editor.root.value).toBe(5)
66
+ expect(editor.root.getValue()).toBe(5)
67
67
  })
68
68
  })
69
69