@json-editor/json-editor 2.9.1 → 2.10.1

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 (89) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +52 -1
  3. package/dist/jsoneditor.js +1 -1
  4. package/dist/jsoneditor.js.LICENSE.txt +1 -1
  5. package/dist/nonmin/jsoneditor.js +462 -124
  6. package/dist/nonmin/jsoneditor.js.map +1 -1
  7. package/docs/css_integration.html +17 -15
  8. package/docs/custom-editor.html +92 -0
  9. package/docs/index.html +4 -1
  10. package/docs/meta_schema.json +426 -398
  11. package/package.json +1 -1
  12. package/src/defaults.js +15 -1
  13. package/src/editor.js +23 -6
  14. package/src/editors/multiple.js +76 -8
  15. package/src/editors/object.js +0 -1
  16. package/src/iconlibs/bootstrap.js +28 -0
  17. package/src/iconlibs/index.js +2 -0
  18. package/src/resolvers.js +5 -2
  19. package/src/schemaloader.js +3 -1
  20. package/src/themes/bootstrap3.js +1 -1
  21. package/src/utilities.js +32 -0
  22. package/src/validator.js +93 -0
  23. package/tests/codeceptjs/constrains/contains_test.js +36 -0
  24. package/tests/codeceptjs/constrains/dependentSchemas_test.js +15 -0
  25. package/tests/codeceptjs/constrains/if-then-else_test.js +186 -0
  26. package/tests/codeceptjs/core_test.js +35 -27
  27. package/tests/codeceptjs/editors/advanced_test.js +11 -10
  28. package/tests/codeceptjs/editors/array_any_of_test.js +35 -35
  29. package/tests/codeceptjs/editors/array_test.js +757 -767
  30. package/tests/codeceptjs/editors/autocomplete_test.js +1 -3
  31. package/tests/codeceptjs/editors/button_test.js +25 -24
  32. package/tests/codeceptjs/editors/checkbox_test.js +17 -16
  33. package/tests/codeceptjs/editors/colorpicker_test.js +18 -16
  34. package/tests/codeceptjs/editors/datetime_test.js +7 -7
  35. package/tests/codeceptjs/editors/inheritance_test.js +7 -8
  36. package/tests/codeceptjs/editors/integer_test.js +71 -72
  37. package/tests/codeceptjs/editors/jodit_test.js +16 -17
  38. package/tests/codeceptjs/editors/multiselect_test.js +5 -5
  39. package/tests/codeceptjs/editors/number_test.js +64 -65
  40. package/tests/codeceptjs/editors/object_test.js +39 -13
  41. package/tests/codeceptjs/editors/option-no_default_values_test.js +4 -4
  42. package/tests/codeceptjs/editors/programmatic-changes_test.js +2 -3
  43. package/tests/codeceptjs/editors/range_test.js +1 -3
  44. package/tests/codeceptjs/editors/select_test.js +3 -5
  45. package/tests/codeceptjs/editors/stepper_test.js +5 -7
  46. package/tests/codeceptjs/editors/string_test.js +8 -8
  47. package/tests/codeceptjs/editors/table-confirm-delete_test.js +7 -9
  48. package/tests/codeceptjs/editors/uuid_test.js +10 -10
  49. package/tests/codeceptjs/editors/validation_test.js +1 -1
  50. package/tests/codeceptjs/{editors/issues → issues}/issue-gh-1133_test.js +1 -3
  51. package/tests/codeceptjs/issues/issue-gh-1158-2_test.js +10 -0
  52. package/tests/codeceptjs/{editors/issues → issues}/issue-gh-1158_test.js +0 -2
  53. package/tests/codeceptjs/issues/issue-gh-1164_test.js +10 -0
  54. package/tests/codeceptjs/issues/issue-gh-1211_test.js +17 -0
  55. package/tests/codeceptjs/{editors/issues → issues}/issue-gh-1257_test.js +2 -4
  56. package/tests/codeceptjs/issues/issue-gh-1338_test.js +16 -0
  57. package/tests/codeceptjs/issues/issue-gh-1347_test.js +8 -0
  58. package/tests/codeceptjs/issues/issue-gh-795_test.js +13 -0
  59. package/tests/codeceptjs/issues/issue-gh-810_test.js +52 -0
  60. package/tests/codeceptjs/issues/issue-gh-812_test.js +25 -0
  61. package/tests/codeceptjs/meta-schema_test.js +10 -10
  62. package/tests/codeceptjs/schemaloader_test.js +7 -7
  63. package/tests/codeceptjs/themes_test.js +31 -0
  64. package/tests/pages/autocomplete.html +1 -0
  65. package/tests/pages/contains.html +38 -0
  66. package/tests/pages/dependentSchemas.html +52 -0
  67. package/tests/pages/if-else.html +57 -0
  68. package/tests/pages/if-then-else-allOf.html +117 -0
  69. package/tests/pages/if-then-else-disable-fields.html +69 -0
  70. package/tests/pages/if-then-else.html +64 -0
  71. package/tests/pages/if-then.html +57 -0
  72. package/tests/pages/issues/issue-gh-1158-2.html +189 -0
  73. package/tests/pages/issues/issue-gh-1165.html +63 -0
  74. package/tests/pages/issues/issue-gh-1165.json +8 -0
  75. package/tests/pages/issues/issue-gh-1211.html +1022 -0
  76. package/tests/pages/issues/issue-gh-1338.html +74 -0
  77. package/tests/pages/issues/issue-gh-1347.html +142 -0
  78. package/tests/pages/issues/issue-gh-795.html +58 -0
  79. package/tests/pages/issues/issue-gh-810.html +149 -0
  80. package/tests/pages/keep_only_existing_values.html +80 -0
  81. package/tests/pages/maxContains.html +39 -0
  82. package/tests/pages/meta-schema.html +28 -0
  83. package/tests/pages/meta_schema.json +426 -398
  84. package/tests/pages/minContains.html +39 -0
  85. package/tests/pages/option-dependencies.html +106 -0
  86. package/tests/pages/themes.html +3 -1
  87. package/tests/unit/core.spec.js +2 -5
  88. package/tests/codeceptjs/editors/issues/issue-gh-1164_test.js +0 -12
  89. package/tests/codeceptjs/editors/issues/issue-gh-812_test.js +0 -32
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  ### Unreleased
2
2
 
3
+ ### 2.10.1
4
+
5
+ - Added keep_only_existing_values option
6
+ - Fixed if-then-else edge case bug with disabled fields
7
+
8
+ ### 2.10.0
9
+
10
+ - Fixed schema loader bug and added test for relative issues
11
+ - Using multiple for schemas with if-then-else
12
+ - Added support for shell script highlighting
13
+ - Added support for contains, minContains and maxContains constrains
14
+ - Added support for if-then-else constrains
15
+ - Added support for dependentSchemas constrains
16
+ - Added support for absolute paths in dependencies
17
+ - Added support for bootstrap icons
18
+ - Added custom editor example page
19
+ - Added bootstrap 5 theme option in example page
20
+ - Fixed property checkboxes display
21
+ - Updated array delete message
22
+ - Refactored tests with codeceptjs native waitForValue()
23
+ - Fixed bootstrap 3 import warnings
24
+ - Updated autocomplete example with library css
25
+
3
26
  ### 2.9.1
4
27
 
5
28
  - Fixed past merge
package/README.md CHANGED
@@ -240,6 +240,11 @@ Here are all the available options:
240
240
  <td>If <code>true</code>, makes oneOf copy properties over when switching.</td>
241
241
  <td><code>true</code></td>
242
242
  </tr>
243
+ <tr>
244
+ <td>keep_only_existing_values</td>
245
+ <td>If <code>true</code>, copy only existing properties over when switching.</td>
246
+ <td><code>false</code></td>
247
+ </tr>
243
248
  <tr>
244
249
  <td>schema</td>
245
250
  <td>A valid JSON Schema to use for the editor. Version 3 and Version 4 of the draft specification are supported.</td>
@@ -462,6 +467,7 @@ The currently supported themes are:
462
467
 
463
468
  * barebones
464
469
  * html (the default)
470
+ * bootstrap3
465
471
  * bootstrap4
466
472
  * bootstrap5
467
473
  * spectre
@@ -471,7 +477,6 @@ Note: The following themes have NOT been updated to 2.x format and will be remov
471
477
  Old 1.x themes displays the message **"This is an old JSON-Editor 1.x Theme and might not display elements correctly when used with the 2.x version"** at the bottom of the form output.
472
478
 
473
479
  * bootstrap2
474
- * bootstrap3
475
480
  * foundation3
476
481
  * foundation4
477
482
  * foundation5
@@ -509,6 +514,7 @@ The supported icon libs are:
509
514
  * fontawesome5
510
515
  * openiconic
511
516
  * spectre
517
+ * bootstrap
512
518
 
513
519
  By default, no icons are used. Just like the CSS theme, you can set the icon lib globally or when initializing:
514
520
 
@@ -1247,6 +1253,51 @@ Here's an example schema:
1247
1253
  }
1248
1254
  ```
1249
1255
 
1256
+ Keys can also be an absolute path like `root.property.nested_property`
1257
+
1258
+ ```json
1259
+ {
1260
+ "title": "Person",
1261
+ "type": "object",
1262
+ "required": [
1263
+ "gender"
1264
+ ],
1265
+ "properties": {
1266
+ "gender": {
1267
+ "title": "Gender",
1268
+ "type": "string",
1269
+ "enum": [
1270
+ "female",
1271
+ "male"
1272
+ ]
1273
+ },
1274
+ "age": {
1275
+ "type": "object",
1276
+ "properties": {
1277
+ "maleSpecificAge": {
1278
+ "type": "string",
1279
+ "title": "Male specific age question?",
1280
+ "options": {
1281
+ "dependencies": {
1282
+ "root.gender": "male"
1283
+ }
1284
+ }
1285
+ },
1286
+ "femaleSpecificAge": {
1287
+ "type": "string",
1288
+ "title": "Female specific age question?",
1289
+ "options": {
1290
+ "dependencies": {
1291
+ "root.gender": "female"
1292
+ }
1293
+ }
1294
+ }
1295
+ }
1296
+ }
1297
+ }
1298
+ }
1299
+ ```
1300
+
1250
1301
  The `dependencies` keyword from the JSON Schema specification is not nearly flexible enough to handle most use cases,
1251
1302
  so JSON Editor introduces a couple custom keywords that help in this regard.
1252
1303