@wirenboard/json-editor 2.5.3-wb13

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 (283) hide show
  1. package/.env-dist +2 -0
  2. package/.eslintrc +7 -0
  3. package/.gitattributes +1 -0
  4. package/.github/PULL_REQUEST_TEMPLATE.md +9 -0
  5. package/.github/issue_template +25 -0
  6. package/.github/workflows/build.yml +58 -0
  7. package/.travis.yml +70 -0
  8. package/CHANGELOG.md +915 -0
  9. package/CONTRIBUTING.md +92 -0
  10. package/LICENSE +20 -0
  11. package/Makefile +26 -0
  12. package/README.md +1646 -0
  13. package/README_ADDON.md +573 -0
  14. package/UPGRADING.md +46 -0
  15. package/build/CssToJson.js +55 -0
  16. package/codecept.conf.js +35 -0
  17. package/config/.eslintrc +7 -0
  18. package/config/codeceptjs_helpers.js +139 -0
  19. package/config/helpers.js +10 -0
  20. package/config/karma.conf.js +93 -0
  21. package/config/readme.md +31 -0
  22. package/config/webpack.common.js +75 -0
  23. package/config/webpack.dev.js +15 -0
  24. package/config/webpack.nonmin.js +19 -0
  25. package/config/webpack.prod.js +25 -0
  26. package/dist/jsoneditor.js +14 -0
  27. package/dist/nonmin/jsoneditor.js +29097 -0
  28. package/dist/nonmin/jsoneditor.js.map +1 -0
  29. package/docs/ace_editor.html +56 -0
  30. package/docs/advanced.html +136 -0
  31. package/docs/basic.html +63 -0
  32. package/docs/basic_person.json +26 -0
  33. package/docs/choices.html +86 -0
  34. package/docs/cleave.html +132 -0
  35. package/docs/colorpicker.html +194 -0
  36. package/docs/css_integration.html +135 -0
  37. package/docs/datetime.html +305 -0
  38. package/docs/describedby.html +161 -0
  39. package/docs/enumsource.html +67 -0
  40. package/docs/images/categoriesDemo.png +0 -0
  41. package/docs/images/inheritance_tree.png +0 -0
  42. package/docs/images/jsoneditor.png +0 -0
  43. package/docs/imask.html +192 -0
  44. package/docs/index.html +579 -0
  45. package/docs/materialize_css.html +164 -0
  46. package/docs/meta_schema.json +705 -0
  47. package/docs/multiple_upload_base64.html +65 -0
  48. package/docs/person.json +73 -0
  49. package/docs/polyfills/assign.js +29 -0
  50. package/docs/radio.html +156 -0
  51. package/docs/recursive.html +170 -0
  52. package/docs/select2.html +99 -0
  53. package/docs/selectize.html +100 -0
  54. package/docs/signature.html +42 -0
  55. package/docs/starrating.html +137 -0
  56. package/docs/upload.html +131 -0
  57. package/docs/uuid.html +70 -0
  58. package/docs/wysiwyg.html +56 -0
  59. package/jasmine.json +11 -0
  60. package/json-editor-json-editor-2.5.3-wb13.tgz +0 -0
  61. package/package.json +100 -0
  62. package/release-notes.md +88 -0
  63. package/src/core.js +412 -0
  64. package/src/defaults.js +402 -0
  65. package/src/editor.js +707 -0
  66. package/src/editors/ace.js +89 -0
  67. package/src/editors/array/choices.js +103 -0
  68. package/src/editors/array/select2.js +110 -0
  69. package/src/editors/array/selectize.js +103 -0
  70. package/src/editors/array.css +9 -0
  71. package/src/editors/array.css.js +3 -0
  72. package/src/editors/array.js +818 -0
  73. package/src/editors/autocomplete.js +58 -0
  74. package/src/editors/base64.js +157 -0
  75. package/src/editors/button.js +97 -0
  76. package/src/editors/checkbox.js +95 -0
  77. package/src/editors/choices.css +3 -0
  78. package/src/editors/choices.css.js +3 -0
  79. package/src/editors/choices.js +69 -0
  80. package/src/editors/colorpicker.js +103 -0
  81. package/src/editors/datetime.js +141 -0
  82. package/src/editors/describedby.js +188 -0
  83. package/src/editors/enum.js +136 -0
  84. package/src/editors/hidden.js +127 -0
  85. package/src/editors/index.js +81 -0
  86. package/src/editors/info.js +20 -0
  87. package/src/editors/integer.js +19 -0
  88. package/src/editors/ip.js +36 -0
  89. package/src/editors/jodit.js +64 -0
  90. package/src/editors/multiple.js +409 -0
  91. package/src/editors/multiselect.js +218 -0
  92. package/src/editors/null.js +18 -0
  93. package/src/editors/number.js +51 -0
  94. package/src/editors/object.css +41 -0
  95. package/src/editors/object.css.js +3 -0
  96. package/src/editors/object.js +1290 -0
  97. package/src/editors/radio.js +111 -0
  98. package/src/editors/sceditor.js +72 -0
  99. package/src/editors/select.js +370 -0
  100. package/src/editors/select2.js +110 -0
  101. package/src/editors/selectize.js +112 -0
  102. package/src/editors/signature.js +113 -0
  103. package/src/editors/simplemde.js +100 -0
  104. package/src/editors/starrating.css +52 -0
  105. package/src/editors/starrating.css.js +3 -0
  106. package/src/editors/starrating.js +135 -0
  107. package/src/editors/stepper.js +27 -0
  108. package/src/editors/string.js +372 -0
  109. package/src/editors/table.js +516 -0
  110. package/src/editors/upload.js +321 -0
  111. package/src/editors/uuid.js +56 -0
  112. package/src/iconlib.js +24 -0
  113. package/src/iconlibs/bootstrap2.js +28 -0
  114. package/src/iconlibs/bootstrap3.js +28 -0
  115. package/src/iconlibs/fontawesome3.js +28 -0
  116. package/src/iconlibs/fontawesome4.js +28 -0
  117. package/src/iconlibs/fontawesome5.js +28 -0
  118. package/src/iconlibs/foundation2.js +24 -0
  119. package/src/iconlibs/foundation3.js +28 -0
  120. package/src/iconlibs/index.js +25 -0
  121. package/src/iconlibs/jqueryui.js +28 -0
  122. package/src/iconlibs/materialicons.js +49 -0
  123. package/src/iconlibs/openiconic.js +28 -0
  124. package/src/iconlibs/spectre.js +28 -0
  125. package/src/resolvers.js +128 -0
  126. package/src/schemaloader.js +408 -0
  127. package/src/style.css +150 -0
  128. package/src/style.css.js +3 -0
  129. package/src/templates/default.js +52 -0
  130. package/src/templates/ejs.js +13 -0
  131. package/src/templates/handlebars.js +1 -0
  132. package/src/templates/hogan.js +10 -0
  133. package/src/templates/index.js +21 -0
  134. package/src/templates/lodash.js +9 -0
  135. package/src/templates/markup.js +9 -0
  136. package/src/templates/mustache.js +9 -0
  137. package/src/templates/swig.js +1 -0
  138. package/src/templates/underscore.js +9 -0
  139. package/src/theme.js +659 -0
  140. package/src/themes/barebones.css +35 -0
  141. package/src/themes/barebones.css.js +3 -0
  142. package/src/themes/barebones.js +28 -0
  143. package/src/themes/bootstrap2.js +319 -0
  144. package/src/themes/bootstrap3.css +0 -0
  145. package/src/themes/bootstrap3.css.js +3 -0
  146. package/src/themes/bootstrap3.js +315 -0
  147. package/src/themes/bootstrap4.css +89 -0
  148. package/src/themes/bootstrap4.css.js +3 -0
  149. package/src/themes/bootstrap4.js +690 -0
  150. package/src/themes/bootstrap5.css.js +3 -0
  151. package/src/themes/foundation.js +569 -0
  152. package/src/themes/html.css +60 -0
  153. package/src/themes/html.css.js +3 -0
  154. package/src/themes/html.js +71 -0
  155. package/src/themes/index.js +28 -0
  156. package/src/themes/jqueryui.js +198 -0
  157. package/src/themes/materialize.js +426 -0
  158. package/src/themes/spectre.css +208 -0
  159. package/src/themes/spectre.css.js +3 -0
  160. package/src/themes/spectre.js +406 -0
  161. package/src/themes/tailwind.css +249 -0
  162. package/src/themes/tailwind.css.js +3 -0
  163. package/src/themes/tailwind.js +443 -0
  164. package/src/utilities.js +138 -0
  165. package/src/validator.js +877 -0
  166. package/src/validators/ip-validator.js +51 -0
  167. package/tests/Dockerfile +3 -0
  168. package/tests/README.md +48 -0
  169. package/tests/codeceptjs/codecept.json +42 -0
  170. package/tests/codeceptjs/constrains/if-then-else_test.js +143 -0
  171. package/tests/codeceptjs/core_test.js +217 -0
  172. package/tests/codeceptjs/editors/advanced_test.js +13 -0
  173. package/tests/codeceptjs/editors/array_any_of_test.js +50 -0
  174. package/tests/codeceptjs/editors/array_test.js +900 -0
  175. package/tests/codeceptjs/editors/button_test.js +35 -0
  176. package/tests/codeceptjs/editors/checkbox_test.js +21 -0
  177. package/tests/codeceptjs/editors/colorpicker_test.js +27 -0
  178. package/tests/codeceptjs/editors/datetime_test.js +33 -0
  179. package/tests/codeceptjs/editors/inheritance_test.js +11 -0
  180. package/tests/codeceptjs/editors/integer_test.js +84 -0
  181. package/tests/codeceptjs/editors/issues/issue-gh-812_test.js +32 -0
  182. package/tests/codeceptjs/editors/jodit_test.js +24 -0
  183. package/tests/codeceptjs/editors/multiselect_test.js +8 -0
  184. package/tests/codeceptjs/editors/number_test.js +82 -0
  185. package/tests/codeceptjs/editors/object_test.js +204 -0
  186. package/tests/codeceptjs/editors/option-no_default_values_test.js +42 -0
  187. package/tests/codeceptjs/editors/programmatic-changes_test.js +20 -0
  188. package/tests/codeceptjs/editors/radio_test.js +10 -0
  189. package/tests/codeceptjs/editors/rating_test.js +13 -0
  190. package/tests/codeceptjs/editors/select_test.js +22 -0
  191. package/tests/codeceptjs/editors/stepper_test.js +27 -0
  192. package/tests/codeceptjs/editors/string_test.js +118 -0
  193. package/tests/codeceptjs/editors/table-confirm-delete_test.js +67 -0
  194. package/tests/codeceptjs/editors/tabs_test.js +14 -0
  195. package/tests/codeceptjs/editors/uuid_test.js +21 -0
  196. package/tests/codeceptjs/editors/validation_test.js +14 -0
  197. package/tests/codeceptjs/meta-schema_test.js +17 -0
  198. package/tests/codeceptjs/schemaloader_test.js +13 -0
  199. package/tests/codeceptjs/steps.d.ts +13 -0
  200. package/tests/codeceptjs/steps_file.js +12 -0
  201. package/tests/codeceptjs/themes_test.js +519 -0
  202. package/tests/docker-compose.yml +34 -0
  203. package/tests/fixtures/basic_person.json +26 -0
  204. package/tests/fixtures/nested_object.json +26 -0
  205. package/tests/fixtures/person.json +55 -0
  206. package/tests/fixtures/recursive.json +8 -0
  207. package/tests/fixtures/some_types.json +32 -0
  208. package/tests/fixtures/string.json +3 -0
  209. package/tests/fixtures/validation.json +1140 -0
  210. package/tests/pages/_demo.html +475 -0
  211. package/tests/pages/advanced.html +137 -0
  212. package/tests/pages/anyof.html +80 -0
  213. package/tests/pages/array-anyof.html +142 -0
  214. package/tests/pages/array-checkboxes.html +41 -0
  215. package/tests/pages/array-choices.html +45 -0
  216. package/tests/pages/array-integers.html +37 -0
  217. package/tests/pages/array-move-events.html +61 -0
  218. package/tests/pages/array-multiselects.html +42 -0
  219. package/tests/pages/array-nested-arrays.html +40 -0
  220. package/tests/pages/array-numbers.html +37 -0
  221. package/tests/pages/array-objects.html +42 -0
  222. package/tests/pages/array-ratings.html +40 -0
  223. package/tests/pages/array-selectize.html +51 -0
  224. package/tests/pages/array-selects.html +36 -0
  225. package/tests/pages/array-strings.html +36 -0
  226. package/tests/pages/array.html +42 -0
  227. package/tests/pages/assets/pages.css +130 -0
  228. package/tests/pages/button-callbacks.html +77 -0
  229. package/tests/pages/checkbox-labels.html +114 -0
  230. package/tests/pages/colorpicker-no-3rd-party.html +43 -0
  231. package/tests/pages/colorpicker-use-vanilla-picker.html +50 -0
  232. package/tests/pages/core.html +118 -0
  233. package/tests/pages/datetime.html +76 -0
  234. package/tests/pages/form-name.html +108 -0
  235. package/tests/pages/grid-strict.html +311 -0
  236. package/tests/pages/grid.html +284 -0
  237. package/tests/pages/if-then-else-allOf.html +117 -0
  238. package/tests/pages/inheritance.html +76 -0
  239. package/tests/pages/integer.html +68 -0
  240. package/tests/pages/issues/_template.html +50 -0
  241. package/tests/pages/issues/issue-gh-812.html +110 -0
  242. package/tests/pages/issues/issue-gh-823-meta-schema.html +35 -0
  243. package/tests/pages/issues/issue-gh-848.html +81 -0
  244. package/tests/pages/meta_schema.json +705 -0
  245. package/tests/pages/number.html +89 -0
  246. package/tests/pages/object-no-additional-properties.html +65 -0
  247. package/tests/pages/object-no-duplicated-id.html +68 -0
  248. package/tests/pages/object-required-properties.html +236 -0
  249. package/tests/pages/object-with-dependencies-array.html +46 -0
  250. package/tests/pages/object-with-dependencies.html +60 -0
  251. package/tests/pages/object.html +79 -0
  252. package/tests/pages/oneof.html +103 -0
  253. package/tests/pages/option-no_default_values.html +58 -0
  254. package/tests/pages/programmatic-changes.html +120 -0
  255. package/tests/pages/read-only.html +105 -0
  256. package/tests/pages/select.html +41 -0
  257. package/tests/pages/stepper.html +59 -0
  258. package/tests/pages/string-ace-editor.html +52 -0
  259. package/tests/pages/string-cleave.html +46 -0
  260. package/tests/pages/string-custom-attributes.html +62 -0
  261. package/tests/pages/string-formats.html +52 -0
  262. package/tests/pages/string-formats2.html +57 -0
  263. package/tests/pages/string-jodit-editor.html +49 -0
  264. package/tests/pages/string-sceditor.html +62 -0
  265. package/tests/pages/table-move-events.html +56 -0
  266. package/tests/pages/table.html +46 -0
  267. package/tests/pages/tabs.html +131 -0
  268. package/tests/pages/themes.html +527 -0
  269. package/tests/pages/translate-property.html +247 -0
  270. package/tests/pages/urn.html +93 -0
  271. package/tests/pages/uuid.html +72 -0
  272. package/tests/pages/validation.html +99 -0
  273. package/tests/unit/.eslintrc +8 -0
  274. package/tests/unit/core.spec.js +309 -0
  275. package/tests/unit/defaults.spec.js +40 -0
  276. package/tests/unit/editor.spec.js +160 -0
  277. package/tests/unit/editors/array.spec.js +86 -0
  278. package/tests/unit/editors/object.spec.js +79 -0
  279. package/tests/unit/editors/table.spec.js +91 -0
  280. package/tests/unit/readme.md +35 -0
  281. package/tests/unit/schemaloader.spec.js +498 -0
  282. package/tests/unit/validator.spec.js +94 -0
  283. package/tests/unit/validators/ip-validator.spec.js +62 -0
@@ -0,0 +1,52 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <title>wysiwyg-sceditor</title>
6
+
7
+ <!-- json editor -->
8
+ <script src="../../dist/jsoneditor.js"></script>
9
+
10
+ <!-- jquery -->
11
+ <script src="./../../node_modules/jquery/dist/jquery.min.js"></script>
12
+
13
+ </head>
14
+ <body>
15
+
16
+ <textarea class="debug" cols="30" rows="10"></textarea>
17
+ <button class='get-value'>Get Value</button>
18
+ <div class='container'></div>
19
+
20
+ <script>
21
+ var container = document.querySelector('.container');
22
+ var debug = document.querySelector('.debug');
23
+
24
+ var schema = {
25
+ type: "object",
26
+ title: "Server",
27
+ properties: {
28
+ ipAddress: {
29
+ title: "IPv4 Address",
30
+ type: "string",
31
+ format:"ipv4"
32
+ },
33
+ ipv6Address: {
34
+ title: "IPv6 Address",
35
+ type: "string",
36
+ format:"ipv6"
37
+ }
38
+ }
39
+ };
40
+
41
+ var editor = new JSONEditor(container, {
42
+ schema: schema
43
+ });
44
+
45
+ document.querySelector('.get-value').addEventListener('click', function () {
46
+ debug.value = JSON.stringify(editor.getValue());
47
+ });
48
+
49
+ </script>
50
+
51
+ </body>
52
+ </html>
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <title>wysiwyg-sceditor</title>
6
+
7
+ <!-- json editor -->
8
+ <script src="../../dist/jsoneditor.js"></script>
9
+
10
+ <!-- jquery -->
11
+ <script src="./../../node_modules/jquery/dist/jquery.min.js"></script>
12
+
13
+ </head>
14
+ <body>
15
+
16
+ <textarea class="debug" cols="30" rows="10"></textarea>
17
+ <button class='get-value'>Get Value</button>
18
+ <div class='container'></div>
19
+
20
+ <script>
21
+ var container = document.querySelector('.container');
22
+ var debug = document.querySelector('.debug');
23
+ var schema ={
24
+ "definitions": {
25
+ "parent": {
26
+ "properties": {
27
+ "ipAddress": {
28
+ "title": "IP Address",
29
+ "type": "string",
30
+ "format": "ipv4"
31
+ }
32
+ },
33
+ "required": [
34
+ "ipAddress"
35
+ ]
36
+ },
37
+ },
38
+ "type": "object",
39
+ "allOf": [
40
+ {
41
+ "$ref": "#/definitions/parent"
42
+ }
43
+ ]
44
+ };
45
+
46
+ var editor = new JSONEditor(container, {
47
+ schema: schema
48
+ });
49
+
50
+ document.querySelector('.get-value').addEventListener('click', function () {
51
+ debug.value = JSON.stringify(editor.getValue());
52
+ });
53
+
54
+ </script>
55
+
56
+ </body>
57
+ </html>
@@ -0,0 +1,49 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <title>string-jodit-editor</title>
6
+
7
+ <!-- json editor -->
8
+ <script src="../../dist/jsoneditor.js"></script>
9
+
10
+ <!-- jodit-editor -->
11
+ <script src="./../../node_modules/jodit/build/jodit.min.js"></script>
12
+ <link rel="stylesheet" href="./../../node_modules/jodit/build/jodit.min.css" />
13
+ </head>
14
+ <body>
15
+
16
+ <textarea class="debug" cols="30" rows="10"></textarea>
17
+ <button class='get-value'>Get Value</button>
18
+ <div class='container'></div>
19
+
20
+ <script>
21
+ var container = document.querySelector('.container');
22
+ var debug = document.querySelector('.debug');
23
+
24
+ var schema = {
25
+ "type": "array",
26
+ "title": "string-jodit-editor",
27
+ "items": {
28
+ "type": "object",
29
+ "properties": {
30
+ "editor": {
31
+ "type": "string",
32
+ "format": "jodit"
33
+ }
34
+ }
35
+ }
36
+ };
37
+
38
+ var editor = new JSONEditor(container, {
39
+ schema: schema
40
+ });
41
+
42
+ document.querySelector('.get-value').addEventListener('click', function () {
43
+ debug.value = JSON.stringify(editor.getValue());
44
+ });
45
+
46
+ </script>
47
+
48
+ </body>
49
+ </html>
@@ -0,0 +1,62 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <title>wysiwyg-sceditor</title>
6
+
7
+ <!-- json editor -->
8
+ <script src="../../dist/jsoneditor.js"></script>
9
+
10
+ <!-- jquery -->
11
+ <script src="./../../node_modules/jquery/dist/jquery.min.js"></script>
12
+
13
+ <!-- sceditor -->
14
+ <script src="./../../node_modules/sceditor/minified/jquery.sceditor.bbcode.min.js"></script>
15
+ <script src="./../../node_modules/sceditor/minified/jquery.sceditor.xhtml.min.js"></script>
16
+ <link rel="stylesheet" href="./../../node_modules/sceditor/minified/themes/default.min.css">
17
+ </head>
18
+ <body>
19
+
20
+ <textarea class="debug" cols="30" rows="10"></textarea>
21
+ <button class='get-value'>Get Value</button>
22
+ <div class='container'></div>
23
+
24
+ <script>
25
+ var container = document.querySelector('.container');
26
+ var debug = document.querySelector('.debug');
27
+
28
+ var schema = {
29
+ "type": "array",
30
+ "title": "string-sceditor",
31
+ "items": {
32
+ "type": "object",
33
+ "properties": {
34
+ "editor": {
35
+ "type": "string",
36
+ "format": "xhtml",
37
+ "options": {
38
+ }
39
+ }
40
+ }
41
+ }
42
+ };
43
+
44
+ // sceditor quirk. Styles must be specified in the options at creation
45
+ // if you want to be able to focus on the iframes he creates.
46
+
47
+ JSONEditor.defaults.options.sceditor = {
48
+ //style: '//cdn.jsdelivr.net/sceditor/1.4.3/jquery.sceditor.default.min.css'
49
+ style: ''
50
+ };
51
+ var editor = new JSONEditor(container, {
52
+ schema: schema
53
+ });
54
+
55
+ document.querySelector('.get-value').addEventListener('click', function () {
56
+ debug.value = JSON.stringify(editor.getValue());
57
+ });
58
+
59
+ </script>
60
+
61
+ </body>
62
+ </html>
@@ -0,0 +1,56 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <script src="../../dist/jsoneditor.js"></script>
6
+ </head>
7
+ <body>
8
+
9
+ <textarea class="debug" cols="30" rows="10"></textarea>
10
+ <button class='get-value'>Get Value</button>
11
+ <div class='container'></div>
12
+
13
+ <script>
14
+ var container = document.querySelector('.container');
15
+ var debug = document.querySelector('.debug');
16
+ var schema = {
17
+ "type": "array",
18
+ "title": "Strings",
19
+ "format": "table",
20
+ "items": {
21
+ "type": "string",
22
+ "title": "String"
23
+ }
24
+ };
25
+ var editor = new JSONEditor(container, {
26
+ schema: schema,
27
+ enable_array_copy: true
28
+ });
29
+ document.querySelector('.get-value').addEventListener('click', function () {
30
+ debug.value = JSON.stringify(editor.getValue());
31
+ });
32
+ editor.setValue(["A","B","C","D","E"]);
33
+ editor.on('copyRow', function () {
34
+ alert('copyRow');
35
+ console.log('copyRow');
36
+ });
37
+ editor.on('moveRow', function () {
38
+ alert('moveRow');
39
+ console.log('moveRow');
40
+ });
41
+ editor.on('addRow', function () {
42
+ alert('addRow');
43
+ console.log('addRow');
44
+ });
45
+ editor.on('deleteRow', function () {
46
+ alert('deleteRow');
47
+ console.log('deleteRow');
48
+ });
49
+ editor.on('deleteAllRows', function () {
50
+ alert('deleteAllRows');
51
+ console.log('deleteAllRows');
52
+ });
53
+ </script>
54
+
55
+ </body>
56
+ </html>
@@ -0,0 +1,46 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <title>table-confirm-delete</title>
6
+ <script src="../../dist/jsoneditor.js"></script>
7
+ </head>
8
+ <body>
9
+
10
+ <textarea class="debug" cols="30" rows="10"></textarea>
11
+ <button class='get-value'>Get Value</button>
12
+ <div class='container'></div>
13
+
14
+ <script>
15
+ var container = document.querySelector('.container');
16
+ var debug = document.querySelector('.debug');
17
+ var schema = {
18
+ "type": "array",
19
+ "format": "table",
20
+ "title": "Nodes",
21
+ "items": {
22
+ "type": "object",
23
+ "title": "Node",
24
+ "properties": {
25
+ "node": {
26
+ "type": "string",
27
+ "title": "I am a node"
28
+ }
29
+ }
30
+ }
31
+ };
32
+
33
+ var editor = new JSONEditor(container, {
34
+ schema: schema
35
+ });
36
+
37
+ // editor.options.prompt_before_delete = false;
38
+
39
+ document.querySelector('.get-value').addEventListener('click', function () {
40
+ debug.value = JSON.stringify(editor.getValue());
41
+ });
42
+
43
+ </script>
44
+
45
+ </body>
46
+ </html>
@@ -0,0 +1,131 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>Advanced JSON Editor Example</title>
6
+
7
+ <script src="../../dist/jsoneditor.js"></script>
8
+ </head>
9
+ <body>
10
+ <h1>JSON Editor Tabs Test</h1>
11
+
12
+ <button id='submit'>Submit (console.log)</button>
13
+ <button id='restore'>Restore to Default</button>
14
+ <button id='enable_disable'>Disable/Enable Form</button>
15
+
16
+ <hr/>
17
+
18
+ <span id='valid_indicator'></span>
19
+
20
+ <div id='editor_holder'></div>
21
+
22
+ <script>
23
+ // This is the starting value for the editor
24
+ // We will use this to seed the initial editor
25
+ // and to provide a "Restore to Default" button.
26
+ var starting_value = [
27
+ {
28
+ name: "John Smith",
29
+ age: 35,
30
+ gender: "male",
31
+ location: {
32
+ city: "San Francisco",
33
+ state: "California",
34
+ citystate: ""
35
+ },
36
+ pets: [
37
+ {
38
+ name: "Spot",
39
+ type: "dog",
40
+ fixed: true
41
+ },
42
+ {
43
+ name: "Whiskers",
44
+ type: "cat",
45
+ fixed: false
46
+ }
47
+ ]
48
+ }
49
+ ];
50
+
51
+ // Initialize the editor
52
+ var editor = new JSONEditor(document.getElementById('editor_holder'),{
53
+ // Enable fetching schemas via ajax
54
+ ajax: true,
55
+
56
+ // The schema for the editor
57
+ schema: {
58
+ type: "array",
59
+ title: "People",
60
+ format: "tabs-top",
61
+ items: {
62
+ title: "Person",
63
+ headerTemplate: "{{i}} - {{self.name}}",
64
+ oneOf: [
65
+ {
66
+ $ref: "/tests/fixtures/basic_person.json",
67
+ title: "Basic Person"
68
+ },
69
+ {
70
+ $ref: "/tests/fixtures/person.json",
71
+ title: "Complex Person"
72
+ }
73
+ ]
74
+ }
75
+ },
76
+
77
+ // Seed the form with a starting value
78
+ startval: starting_value,
79
+
80
+ // Disable additional properties
81
+ no_additional_properties: true,
82
+
83
+ // Require all properties by default
84
+ required_by_default: true
85
+ });
86
+
87
+ // Hook up the submit button to log to the console
88
+ document.getElementById('submit').addEventListener('click',function() {
89
+ // Get the value from the editor
90
+ console.log(editor.getValue());
91
+ });
92
+
93
+ // Hook up the Restore to Default button
94
+ document.getElementById('restore').addEventListener('click',function() {
95
+ editor.setValue(starting_value);
96
+ });
97
+
98
+ // Hook up the enable/disable button
99
+ document.getElementById('enable_disable').addEventListener('click',function() {
100
+ // Enable form
101
+ if(!editor.isEnabled()) {
102
+ editor.enable();
103
+ }
104
+ // Disable form
105
+ else {
106
+ editor.disable();
107
+ }
108
+ });
109
+
110
+ // Hook up the validation indicator to update its
111
+ // status whenever the editor changes
112
+ editor.on('change',function() {
113
+ // Get an array of errors from the validator
114
+ var errors = editor.validate();
115
+
116
+ var indicator = document.getElementById('valid_indicator');
117
+
118
+ // Not valid
119
+ if(errors.length) {
120
+ indicator.style.color = 'red';
121
+ indicator.textContent = "validation failed";
122
+ }
123
+ // Valid
124
+ else {
125
+ indicator.style.color = 'green';
126
+ indicator.textContent = "validation passed";
127
+ }
128
+ });
129
+ </script>
130
+ </body>
131
+ </html>