@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,527 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>themes</title>
6
+ <script src="../../dist/jsoneditor.js"></script>
7
+ <link rel='stylesheet' id='theme_stylesheet'>
8
+ <link rel='stylesheet' id='iconlib_stylesheet'>
9
+ </head>
10
+ <body>
11
+ <div>
12
+ <label>theme</label>
13
+ <select id='theme_switcher' name="theme" class='form-control browser-default'>
14
+ <option value=''></option>
15
+ <option value='barebones'>Barebones</option>
16
+ <option value='bootstrap2'>Bootstrap 2</option>
17
+ <option value='bootstrap3'>Bootstrap 3</option>
18
+ <option value='bootstrap4'>Bootstrap 4</option>
19
+ <option value='foundation3'>Foundation 3</option>
20
+ <option value='foundation4'>Foundation 4</option>
21
+ <option value='foundation5'>Foundation 5</option>
22
+ <option value='foundation6'>Foundation 6</option>
23
+ <option value='html'>HTML</option>
24
+ <option value='jqueryui'>jQuery UI</option>
25
+ <option value='materialize'>Materialize</option>
26
+ <option value='spectre'>Spectre</option>
27
+ </select>
28
+ </div>
29
+ <div>
30
+ <label>iconlib</label>
31
+ <select id='iconlib_switcher' name="iconlib" class='form-control browser-default'>
32
+ <option value=''></option>
33
+ <option value='bootstrap2'>Bootstrap 2</option>
34
+ <option value='bootstrap3'>Bootstrap 3</option>
35
+ <option value='fontawesome3'>fontawesome 3</option>
36
+ <option value='fontawesome4'>fontawesome 4</option>
37
+ <option value='fontawesome5'>fontawesome 5</option>
38
+ <option value='foundation3'>Foundation 3</option>
39
+ <option value='jqueryui'>jQuery UI</option>
40
+ <option value='materialicons'>Material icons</option>
41
+ <option value='openiconic'>Open Iconic</option>
42
+ <option value='spectre'>Spectre</option>
43
+ </select>
44
+ </div>
45
+ <div class="container">
46
+ <div id="json-editor-form"></div>
47
+ </div>
48
+ <script>
49
+ const schema = {
50
+ "type": "object",
51
+ "title": "Themes Test Page",
52
+ "properties": {
53
+ "caseinfo": {
54
+ "type": "info",
55
+ "title": "Layout test cases",
56
+ "description": "This test case was made to help create or update themes for JSON-Editor 2.x version. It shows the available standard elements with all displayable options enabled, such as description and infoText. The buttons/select at the top of the form shows how to toggle various theme specific options.<br><br>Note: If you use this with the 1.x version, some of the fields might not be displayed correctly."
57
+ },
58
+ "standardcase1": {
59
+ "type": "object",
60
+ "$ref": "#/definitions/standardcase1"
61
+ },
62
+ "standardcase2": {
63
+ "type": "object",
64
+ "$ref": "#/definitions/standardcase2"
65
+ },
66
+ "arraycase": {
67
+ "type": "object",
68
+ "$ref": "#/definitions/arraycase"
69
+ },
70
+ "arraycasetabs": {
71
+ "type": "object",
72
+ "$ref": "#/definitions/arraycasetabs"
73
+ },
74
+ "arraycasetabstop": {
75
+ "type": "object",
76
+ "$ref": "#/definitions/arraycasetabstop"
77
+ },
78
+ "arraycasetable": {
79
+ "type": "object",
80
+ "$ref": "#/definitions/arraycasetable"
81
+ },
82
+ "objectcase": {
83
+ "type": "object",
84
+ "$ref": "#/definitions/objectcase"
85
+ },
86
+ "objectcasegrid": {
87
+ "type": "object",
88
+ "$ref": "#/definitions/objectcasegrid"
89
+ },
90
+ "objectcasegridstrict": {
91
+ "type": "object",
92
+ "$ref": "#/definitions/objectcasegridstrict"
93
+ },
94
+ "objectcasecategories": {
95
+ "type": "object",
96
+ "$ref": "#/definitions/objectcasecategories"
97
+ }
98
+ },
99
+ "definitions": {
100
+ "standardcase1": {
101
+ "title": "Input fields with description and infoText enabled.",
102
+ "properties": {
103
+ "stringinput": {
104
+ "type": "string",
105
+ "title": "String input field with description and infoText",
106
+ "description": "String input field with description and infoText.",
107
+ "options": {
108
+ "infoText": "This field is generated by src/editors/string.js",
109
+ "grid_columns": 6,
110
+ "inputAttributes": {
111
+ "placeholder": "enter a text"
112
+ }
113
+ }
114
+ },
115
+ "numberinput": {
116
+ "type": "number",
117
+ "title": "Number input field with description and infoText",
118
+ "description": "Number input field with description and infoText.",
119
+ "options": {
120
+ "infoText": "This field is generated by src/editors/number.js",
121
+ "grid_columns": 6,
122
+ "inputAttributes": {
123
+ "placeholder": "enter a number"
124
+ }
125
+ }
126
+ },
127
+ "integerinput": {
128
+ "type": "integer",
129
+ "title": "Integer input field with description and infoText",
130
+ "description": "Text input field with description and infoText.",
131
+ "options": {
132
+ "infoText": "This field is generated by src/editors/integer.js",
133
+ "grid_columns": 6,
134
+ "inputAttributes": {
135
+ "placeholder": "enter a integer number"
136
+ }
137
+ }
138
+ },
139
+ "rangeinput": {
140
+ "type": "integer",
141
+ "format": "range",
142
+ "title": "Range input field with description and infoText (Integer)",
143
+ "description": "Range input field with description and infoText. (Integer)",
144
+ "options": {
145
+ "infoText": "This field is generated by src/editors/integer.js",
146
+ "grid_columns": 6
147
+ }
148
+ },
149
+ "textareainput": {
150
+ "type": "string",
151
+ "format": "textarea",
152
+ "title": "Textarea input field with description and infoText",
153
+ "description": "Textarea input field with description and infoText.",
154
+ "options": {
155
+ "infoText": "This field is generated by src/editors/string.js",
156
+ "grid_columns": 12,
157
+ "inputAttributes": {
158
+ "placeholder": "enter a text"
159
+ }
160
+ }
161
+ },
162
+ "booleancheckbox": {
163
+ "type": "boolean",
164
+ "format": "checkbox",
165
+ "title": "Boolean checkbox input field with description and infoText",
166
+ "description": "Boolean checkbox input field with description and infoText.",
167
+ "default": true,
168
+ "options": {
169
+ "infoText": "This field is generated by src/editors/checkbox.js",
170
+ "grid_columns": 6
171
+ }
172
+ },
173
+ "select": {
174
+ "type": "string",
175
+ "title": "Select input field with description and infoText",
176
+ "description": "Select input field with description and infoText.",
177
+ "enum": [
178
+ "1",
179
+ "2",
180
+ "3"
181
+ ],
182
+ "options": {
183
+ "enum_titles": [
184
+ "First",
185
+ "Second",
186
+ "Third"
187
+ ],
188
+ "infoText": "This field is generated by src/editors/select.js",
189
+ "grid_columns": 6
190
+ }
191
+ },
192
+ "radio": {
193
+ "type": "string",
194
+ "format": "radio",
195
+ "title": "Radio input field with description and infoText",
196
+ "description": "Radio input field with description and infoText",
197
+ "enum": [
198
+ "Red",
199
+ "Green",
200
+ "Blue"
201
+ ],
202
+ "options": {
203
+ "infoText": "This field is generated by src/editors/radio.js",
204
+ "grid_columns": 6
205
+ }
206
+ },
207
+ "multiselect": {
208
+ "type": "array",
209
+ "format": "select",
210
+ "uniqueItems": true,
211
+ "title": "Multiselect input field with description and infoText - format: select",
212
+ "description": "Multiselect input field with description and infoText. - format: select",
213
+ "items": {
214
+ "type": "string",
215
+ "enum": [
216
+ "bold",
217
+ "italic",
218
+ "smallcaps"
219
+ ]
220
+ },
221
+ "options": {
222
+ "infoText": "This field is generated by src/editors/multiselect.js",
223
+ "grid_columns": 6
224
+ }
225
+ },
226
+ "multiselectcheckbox": {
227
+ "type": "array",
228
+ "format": "checkbox",
229
+ "uniqueItems": true,
230
+ "title": "Multiselect input field with description and infoText - format: checkbox",
231
+ "description": "Multiselect input field with description and infoText. - format: checkbox",
232
+ "items": {
233
+ "type": "string",
234
+ "enum": [
235
+ "bold",
236
+ "italic",
237
+ "smallcaps"
238
+ ]
239
+ },
240
+ "options": {
241
+ "infoText": "This field is generated by src/editors/multiselect.js",
242
+ "grid_columns": 6
243
+ }
244
+ },
245
+ "button": {
246
+ "type": "button",
247
+ "title": "Button",
248
+ "description": "Button with description and infoText.",
249
+ "options": {
250
+ "infoText": "This field is generated by src/editors/button.js",
251
+ "grid_columns": 6,
252
+ "align": 'right'
253
+ }
254
+ }
255
+ }
256
+ },
257
+ "standardcase2": {
258
+ "$ref": "#/definitions/standardcase1",
259
+ "title": "Input fields with description, infoText and compact enabled.",
260
+ "properties": {
261
+ "stringinput": {
262
+ "options": {
263
+ "compact": true
264
+ }
265
+ },
266
+ "numberinput": {
267
+ "options": {
268
+ "compact": true
269
+ }
270
+ },
271
+ "integerinput": {
272
+ "options": {
273
+ "compact": true
274
+ }
275
+ },
276
+ "rangeinput": {
277
+ "options": {
278
+ "compact": true
279
+ }
280
+ },
281
+ "textareainput": {
282
+ "options": {
283
+ "compact": true
284
+ }
285
+ },
286
+ "booleancheckbox": {
287
+ "options": {
288
+ "compact": true
289
+ }
290
+ },
291
+ "select": {
292
+ "options": {
293
+ "compact": true
294
+ }
295
+ },
296
+ "radio": {
297
+ "options": {
298
+ "compact": true
299
+ }
300
+ },
301
+ "multiselect": {
302
+ "options": {
303
+ "compact": true
304
+ }
305
+ },
306
+ "multiselectcheckbox": {
307
+ "options": {
308
+ "compact": true
309
+ }
310
+ },
311
+ "button": {
312
+ "options": {
313
+ "compact": true
314
+ }
315
+ }
316
+ }
317
+ },
318
+ "arraycase": {
319
+ "title": "Array",
320
+ "properties": {
321
+ "arraytest": {
322
+ "type": "array",
323
+ "title": "Colors",
324
+ "default": [
325
+ "Red",
326
+ "Green",
327
+ "Blue"
328
+ ],
329
+ "items": {
330
+ "type": "string"
331
+ }
332
+ }
333
+ }
334
+ },
335
+ "arraycasetabs": {
336
+ "title": "Array with format: tabs",
337
+ "$ref": "#/definitions/arraycase",
338
+ "properties": {
339
+ "arraytest": {
340
+ "format": "tabs"
341
+ }
342
+ }
343
+ },
344
+ "arraycasetabstop": {
345
+ "title": "Array with format: tabs-top",
346
+ "$ref": "#/definitions/arraycase",
347
+ "properties": {
348
+ "arraytest": {
349
+ "format": "tabs-top"
350
+ }
351
+ }
352
+ },
353
+ "arraycasetable": {
354
+ "title": "Array with format: table",
355
+ "$ref": "#/definitions/arraycase",
356
+ "properties": {
357
+ "arraytest": {
358
+ "format": "table"
359
+ }
360
+ }
361
+ },
362
+ "objectcase": {
363
+ "title": "Object",
364
+ "properties": {
365
+ "objecttest": {
366
+ "type": "object",
367
+ "title": "Object props",
368
+ "properties": {
369
+ "test1": {
370
+ "type": "string"
371
+ },
372
+ "test2": {
373
+ "type": "number"
374
+ },
375
+ "test3": {
376
+ "type": "integer"
377
+ }
378
+ }
379
+ }
380
+ }
381
+ },
382
+ "objectcasegrid": {
383
+ "$ref": "#/definitions/objectcase",
384
+ "title": "Object w. format: grid",
385
+ "properties": {
386
+ "objecttest": {
387
+ "format": "grid"
388
+ }
389
+ }
390
+ },
391
+ "objectcasegridstrict": {
392
+ "title": "Object w. format: grid-strict",
393
+ "$ref": "#/definitions/objectcase",
394
+ "properties": {
395
+ "objecttest": {
396
+ "format": "grid-strict"
397
+ }
398
+ }
399
+ },
400
+ "objectcasecategories": {
401
+ "title": "Object w. format: categories",
402
+ "properties": {
403
+ "objecttest": {
404
+ "type": "object",
405
+ "format": "categories",
406
+ "options": {
407
+ "disable_collapse": true,
408
+ "disable_edit_json": true,
409
+ "disable_properties": true,
410
+ "compact": true
411
+ },
412
+ "properties": {
413
+ "cat1": {
414
+ "type": "object",
415
+ "title": "Category 1",
416
+ "options": {
417
+ "disable_collapse": true,
418
+ "disable_edit_json": true,
419
+ "disable_properties": true,
420
+ "compact": true
421
+ },
422
+ "properties": {
423
+ "string": {
424
+ "type": "string"
425
+ }
426
+ }
427
+ },
428
+ "cat2": {
429
+ "type": "object",
430
+ "title": "Category 2",
431
+ "options": {
432
+ "disable_collapse": true,
433
+ "disable_edit_json": true,
434
+ "disable_properties": true
435
+ },
436
+ "properties": {
437
+ "number": {
438
+ "type": "number"
439
+ }
440
+ }
441
+ },
442
+ "cat3": {
443
+ "type": "object",
444
+ "title": "Category 3",
445
+ "properties": {
446
+ "integer": {
447
+ "type": "integer"
448
+ }
449
+ }
450
+ }
451
+ }
452
+ }
453
+ }
454
+ }
455
+ }
456
+ }
457
+ let jsoneditor = null
458
+ let theme = null
459
+ let iconlib = null
460
+
461
+ const initJsoneditor = (theme, iconlib) => {
462
+
463
+ if (jsoneditor) {
464
+ console.log('...destroy jsoneditor')
465
+ jsoneditor.destroy();
466
+ }
467
+
468
+ console.log('...init jsoneditor', theme, iconlib)
469
+
470
+ jsoneditor = new window.JSONEditor(document.querySelector("#json-editor-form"), {
471
+ schema: schema,
472
+ remove_button_labels: true,
473
+ theme: theme,
474
+ iconlib: iconlib,
475
+ object_indent: true,
476
+ object_border: true,
477
+ table_zebrastyle: true,
478
+ table_border: true
479
+ });
480
+ }
481
+
482
+ document.getElementById('theme_switcher').addEventListener('change', function() {
483
+ theme = this.value || '';
484
+ var mapping = {
485
+ barebones: '',
486
+ html: '',
487
+ bootstrap2: 'https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css',
488
+ bootstrap3: 'https://netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css',
489
+ bootstrap4: 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css',
490
+ foundation3: 'https://cdnjs.cloudflare.com/ajax/libs/foundation/3.2.5/stylesheets/foundation.css',
491
+ foundation4: 'https://cdnjs.cloudflare.com/ajax/libs/foundation/4.3.2/css/foundation.min.css',
492
+ foundation5: 'https://cdnjs.cloudflare.com/ajax/libs/foundation/5.5.3/css/foundation.min.css',
493
+ foundation6: 'https://cdnjs.cloudflare.com/ajax/libs/foundation/6.2.4/foundation.min.css',
494
+ jqueryui: 'https://code.jquery.com/ui/1.10.3/themes/south-street/jquery-ui.css',
495
+ materialize: 'https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css',
496
+ spectre: 'https://unpkg.com/spectre.css/dist/spectre.min.css'
497
+ };
498
+ const link = document.querySelector('#theme_stylesheet').href = mapping[theme];
499
+ console.log(link)
500
+ initJsoneditor(theme, iconlib)
501
+ });
502
+
503
+ document.getElementById('iconlib_switcher').addEventListener('change',function() {
504
+ iconlib = this.value || '';
505
+ var mapping = {
506
+ bootstrap2: 'https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css',
507
+ bootstrap3: 'https://netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css',
508
+ fontawesome3: 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.css',
509
+ fontawesome4: 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.3/css/font-awesome.css',
510
+ fontawesome5: 'https://use.fontawesome.com/releases/v5.6.1/css/all.css',
511
+ foundation3: 'https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css',
512
+ jqueryui: 'https://code.jquery.com/ui/1.10.3/themes/south-street/jquery-ui.css',
513
+ materialicons: 'https://fonts.googleapis.com/icon?family=Material+Icons',
514
+ openiconic: 'https://cdnjs.cloudflare.com/ajax/libs/open-iconic/1.1.1/font/css/open-iconic.min.css',
515
+ spectre: 'https://unpkg.com/spectre.css/dist/spectre-icons.min.css'
516
+ };
517
+
518
+ document.querySelector('#iconlib_stylesheet').href = mapping[iconlib];
519
+ initJsoneditor(theme, iconlib)
520
+ });
521
+
522
+
523
+ initJsoneditor()
524
+
525
+ </script>
526
+ </body>
527
+ </html>