@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,247 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <title>translate property</title>
6
+ <link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
7
+ <script src="https://cdn.jsdelivr.net/npm/signature_pad@2.3.2/dist/signature_pad.min.js"></script>
8
+ <script src="../../dist/jsoneditor.js"></script>
9
+ </head>
10
+ <body>
11
+
12
+ <div class="container">
13
+ <div class='json-editor-container'></div>
14
+ </div>
15
+
16
+
17
+ <script>
18
+ var jsonEditorContainer = document.querySelector('.json-editor-container');
19
+ var value = document.querySelector('.value');
20
+
21
+ var schema = {
22
+ "type": "object",
23
+ "title": "objectTitle",
24
+ "description": "objectDescription",
25
+ "properties": {
26
+ "boolean": {
27
+ "type": "boolean",
28
+ "title": "booleanTitle",
29
+ "description": "booleanDescription",
30
+ "options": {
31
+ "infoText": "booleanInfoText"
32
+ }
33
+ },
34
+ "booleanCheckbox": {
35
+ "format": "checkbox",
36
+ "type": "boolean",
37
+ "title": "booleanTitle",
38
+ "description": "booleanDescription",
39
+ "options": {
40
+ "infoText": "booleanInfoText"
41
+ }
42
+ },
43
+ "string": {
44
+ "type": "string",
45
+ "title": "stringTitle",
46
+ "description": "stringDescription",
47
+ "options": {
48
+ "infoText": "stringInfoText"
49
+ }
50
+ },
51
+ "stringRadio": {
52
+ "format": "radio",
53
+ "type": "string",
54
+ "title": "stringRadioTitle",
55
+ "description": "stringRadioDescription",
56
+ "options": {
57
+ "infoText": "stringRadioInfoText"
58
+ },
59
+ "enum": ["Home", "Work"]
60
+ },
61
+ "integer": {
62
+ "type": "integer",
63
+ "title": "integerTitle",
64
+ "description": "integerDescription",
65
+ "options": {
66
+ "infoText": "integerInfoText"
67
+ }
68
+ },
69
+ "number": {
70
+ "type": "number",
71
+ "title": "numberTitle",
72
+ "description": "numberDescription",
73
+ "options": {
74
+ "infoText": "numberInfoText"
75
+ }
76
+ },
77
+ "array": {
78
+ "type": "array",
79
+ "title": "arrayTitle",
80
+ "description": "arrayDescription",
81
+ "options": {
82
+ "infoText": "arrayInfoText"
83
+ },
84
+ "items": {
85
+ "type": "string",
86
+ "title": "stringTitle",
87
+ "description": "stringDescription",
88
+ "options": {
89
+ "infoText": "stringInfoText"
90
+ }
91
+ }
92
+ },
93
+ "arrayTabs": {
94
+ "format": "tabs",
95
+ "type": "array",
96
+ "title": "arrayTabsTitle",
97
+ "description": "arrayTabsDescription",
98
+ "options": {
99
+ "infoText": "arrayTabsInfoText"
100
+ },
101
+ "items": {
102
+ "type": "string",
103
+ "title": "stringTitle",
104
+ "description": "stringDescription",
105
+ "options": {
106
+ "infoText": "stringInfoText"
107
+ }
108
+ }
109
+ },
110
+ "arrayTable": {
111
+ "format": "table",
112
+ "type": "array",
113
+ "title": "arrayTableTitle",
114
+ "description": "arrayTableDescription",
115
+ "options": {
116
+ "infoText": "arrayTableInfoText"
117
+ },
118
+ "items": {
119
+ "type": "string",
120
+ "title": "stringTitle",
121
+ "description": "stringDescription",
122
+ "options": {
123
+ "infoText": "stringInfoText"
124
+ }
125
+ }
126
+ },
127
+ "signature": {
128
+ "type": "signature",
129
+ "title": "signatureTitle",
130
+ "description": "signatureDescription",
131
+ "options": {
132
+ "infoText": "signatureInfoText",
133
+ "canvas_height": 200
134
+ }
135
+ },
136
+ "rating": {
137
+ "title": "ratingTitle",
138
+ "description": "ratingDescription",
139
+ "type": "integer",
140
+ "format": "rating",
141
+ "maximum": "5",
142
+ "exclusiveMaximum": false,
143
+ "options": {
144
+ "infoText": "ratingInfoText"
145
+ }
146
+ }
147
+ }
148
+ }
149
+
150
+ var dictionary = {
151
+ en: {
152
+ 'objectTitle': 'Object Title',
153
+ 'objectDescription': 'Object Description',
154
+ 'booleanTitle': 'Boolean Title',
155
+ 'booleanDescription': 'Boolean Description',
156
+ 'booleanInfoText': 'Boolean Info Text',
157
+ 'stringTitle': 'String Title',
158
+ 'stringDescription': 'String Description',
159
+ 'stringInfoText': 'String Info Text',
160
+ 'stringRadioTitle': 'String Radio Title',
161
+ 'stringRadioDescription': 'String Radio Description',
162
+ 'stringRadioInfoText': 'String Radio Info Text',
163
+ 'integerTitle': 'Integer Title',
164
+ 'integerDescription': 'Integer Description',
165
+ 'integerInfoText': 'Integer Info Text',
166
+ 'numberTitle': 'Number Title',
167
+ 'numberDescription': 'Number Description',
168
+ 'numberInfoText': 'Number Info Text',
169
+ 'arrayTitle': 'Array Title',
170
+ 'arrayDescription': 'Array Description',
171
+ 'arrayInfoText': 'Array Info Text',
172
+ 'arrayTabsTitle': 'Array Tabs Title',
173
+ 'arrayTabsDescription': 'Array Tabs Description',
174
+ 'arrayTabsInfoText': 'Array Tabs Info Text',
175
+ 'arrayTableTitle': 'Array Table Title',
176
+ 'arrayTableDescription': 'Array Table Description',
177
+ 'arrayTableInfoText': 'Array Table Info Text',
178
+ 'signatureTitle': 'Signature Title',
179
+ 'signatureDescription': 'Signature Description',
180
+ 'signatureInfoText': 'Signature Info Text',
181
+ 'ratingTitle': 'Rating Title',
182
+ 'ratingDescription': 'Rating Description',
183
+ 'ratingInfoText': 'Rating Info Text'
184
+ },
185
+ de: {
186
+ 'objectTitle': 'Object Title (but in german)',
187
+ 'objectDescription': 'Object Description (but in german)',
188
+ 'booleanTitle': 'Boolean Title (but in german)',
189
+ 'booleanDescription': 'Boolean Description (but in german)',
190
+ 'booleanInfoText': 'Boolean Info Text (but in german)',
191
+ 'stringTitle': 'String Title (but in german)',
192
+ 'stringDescription': 'String Description (but in german)',
193
+ 'stringInfoText': 'String Info Text (but in german)',
194
+ 'stringRadioTitle': 'String Radio Title (but in german)',
195
+ 'stringRadioDescription': 'String Radio Description (but in german)',
196
+ 'stringRadioInfoText': 'String Radio Info Text (but in german)',
197
+ 'integerTitle': 'Integer Title (but in german)',
198
+ 'integerDescription': 'Integer Description (but in german)',
199
+ 'integerInfoText': 'Integer Info Text (but in german)',
200
+ 'numberTitle': 'Number Title (but in german)',
201
+ 'numberDescription': 'Number Description (but in german)',
202
+ 'numberInfoText': 'Number Info Text (but in german)',
203
+ 'arrayTitle': 'Array Title (but in german)',
204
+ 'arrayDescription': 'Array Description (but in german)',
205
+ 'arrayInfoText': 'Array Info Text (but in german)',
206
+ 'arrayTabsTitle': 'Array Tabs Title (but in german)',
207
+ 'arrayTabsDescription': 'Array Tabs Description (but in german)',
208
+ 'arrayTabsInfoText': 'Array Tabs Info Text (but in german)',
209
+ 'arrayTableTitle': 'Array Table Title (but in german)',
210
+ 'arrayTableDescription': 'Array Table Description (but in german)',
211
+ 'arrayTableInfoText': 'Array Table Info Text (but in german)',
212
+ 'signatureTitle': 'Signature Title (but in german)',
213
+ 'signatureDescription': 'Signature Description (but in german)',
214
+ 'signatureInfoText': 'Signature Info Text (but in german)',
215
+ 'ratingTitle': 'Rating Title (but in german)',
216
+ 'ratingDescription': 'Rating Description (but in german)',
217
+ 'ratingInfoText': 'Rating Info Text (but in german)'
218
+ }
219
+ }
220
+
221
+ const urlParams = new URLSearchParams(window.location.search);
222
+ const lang = urlParams.get('lang') || 'en'
223
+
224
+ console.log('lang', lang)
225
+
226
+ JSONEditor.defaults.translateProperty = function (key) {
227
+ var text;
228
+
229
+ if (key !== null) {
230
+ text = dictionary[lang][key] ? dictionary[lang][key] : key
231
+ }
232
+
233
+ console.log('translateProperty', key, '=>', text)
234
+
235
+ return text;
236
+ };
237
+
238
+ var editor = new JSONEditor(jsonEditorContainer, {
239
+ schema: schema,
240
+ theme: 'bootstrap3',
241
+ use_default_values: false,
242
+ required_by_default: true
243
+ });
244
+ </script>
245
+
246
+ </body>
247
+ </html>
@@ -0,0 +1,93 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <title>URN</title>
6
+ <link rel="stylesheet" id="theme-link" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
7
+ <link rel="stylesheet" id="iconlib-link" href="https://use.fontawesome.com/releases/v5.6.1/css/all.css">
8
+ <script src="https://cdn.jsdelivr.net/npm/mathjs@5.3.1/dist/math.min.js" class="external_mathjs"></script>
9
+ <script src="../../dist/jsoneditor.js"></script>
10
+ </head>
11
+ <body>
12
+
13
+ <textarea class="value" cols="30" rows="10"></textarea>
14
+ <button class='get-value'>Get Value</button>
15
+ <button class='set-value'>Set Value</button>
16
+ <div class='json-editor-container'></div>
17
+
18
+ <script>
19
+ var jsonEditorContainer = document.querySelector('.json-editor-container');
20
+ var value = document.querySelector('.value');
21
+
22
+ var schema = {
23
+ $ref: 'urn:com:github:json-editor:name'
24
+ };
25
+
26
+ var editor = new JSONEditor(jsonEditorContainer, {
27
+ schema: schema,
28
+ theme: 'bootstrap4',
29
+ use_default_values: false,
30
+ show_errors: 'always',
31
+ urn_resolver: (urn, callback) => {
32
+ console.log('resolving ' + urn)
33
+ let schema
34
+
35
+ switch (urn) {
36
+ case 'urn:com:github:json-editor:name':
37
+ schema = {
38
+ type: 'object',
39
+ properties: {
40
+ fname: {
41
+ $ref: 'urn:com:github:json-editor:fname'
42
+ },
43
+ lname: {
44
+ $ref: 'urn:com:github:json-editor:lname#/definitions/lname'
45
+ }
46
+ }
47
+ }
48
+ break
49
+ case 'urn:com:github:json-editor:fname':
50
+ schema = {
51
+ id: 'urn:com:github:json-editor:fname',
52
+ type: 'string',
53
+ default: 'John',
54
+ minLength: 4
55
+ }
56
+ break
57
+ case 'urn:com:github:json-editor:lname':
58
+ schema = {
59
+ definitions: {
60
+ lname: {
61
+ id: 'urn:com:github:json-editor:lname',
62
+ type: 'string',
63
+ default: 'Doe',
64
+ minLength: 3
65
+ }
66
+ }
67
+ }
68
+ break
69
+ default: return false
70
+ }
71
+
72
+ // simulate async
73
+ window.setTimeout(() => {
74
+ callback(JSON.stringify(schema))
75
+ }, 500)
76
+
77
+ return true
78
+ }
79
+ })
80
+
81
+ document.querySelector('.get-value').addEventListener('click', function () {
82
+ value.value = JSON.stringify(editor.getValue())
83
+ console.log(editor.getValue())
84
+ })
85
+
86
+ document.querySelector('.set-value').addEventListener('click', function () {
87
+ editor.setValue({number_range: 2})
88
+ })
89
+
90
+ </script>
91
+
92
+ </body>
93
+ </html>
@@ -0,0 +1,72 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <script src="../../dist/jsoneditor.js"></script>
6
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
7
+ <title>object-no-duplicated-id</title>
8
+ </head>
9
+ <body>
10
+
11
+ <div class="container">
12
+ <div class="form-group">
13
+ <textarea id="value" class="form-control" rows="10"></textarea>
14
+ </div>
15
+ <button id="get-value" class='btn btn-secondary'>get value</button>
16
+ <hr>
17
+ <div id='form-container'></div>
18
+ </div>
19
+
20
+ <script>
21
+ var formContainer = document.querySelector('#form-container')
22
+ var value = document.querySelector('#value')
23
+ var getValue = document.querySelector('#get-value')
24
+
25
+ var today = (offset) => {
26
+ var t = new Date()
27
+ t.setDate(t.getDate() + (offset || 0))
28
+ return t.toISOString().split('T')[0]
29
+ }
30
+
31
+ var schema = {
32
+ 'type': 'object',
33
+ 'properties': {
34
+ 'uuid': {
35
+ 'type': 'string',
36
+ 'format': 'uuid',
37
+ 'title': 'single uuid',
38
+ 'required': true,
39
+ 'default': 'banana'
40
+ },
41
+ 'uuidArray': {
42
+ 'type': 'array',
43
+ 'title': 'uuid array',
44
+ 'required': true,
45
+ 'items': {
46
+ 'type': 'object',
47
+ 'properties': {
48
+ 'uuid': {
49
+ 'type': 'string',
50
+ 'format': 'uuid'
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ var editor = new JSONEditor(formContainer, {
59
+ schema: schema,
60
+ theme: 'bootstrap4',
61
+ show_errors: 'always'
62
+ })
63
+
64
+ getValue.addEventListener('click', function () {
65
+ value.value = JSON.stringify(editor.getValue())
66
+ console.log(editor.getValue())
67
+ })
68
+
69
+ </script>
70
+
71
+ </body>
72
+ </html>
@@ -0,0 +1,99 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title>JSON Editor Validation Example</title>
6
+ <script src="./../../node_modules/jquery/dist/jquery.min.js"></script>
7
+ <script src='../../dist/jsoneditor.js'></script>
8
+ <script src='https://cdnjs.cloudflare.com/ajax/libs/mathjs/2.7.0/math.min.js'></script>
9
+ </head>
10
+
11
+ <body>
12
+ <div id='output'></div>
13
+ <script>
14
+ var validate = function (tests) {
15
+ // Custom validators must return an array of errors or an empty array if valid
16
+ JSONEditor.defaults.custom_validators.push(function(schema, value, path) {
17
+ var errors = [];
18
+ if(schema.format==="date") {
19
+ if(!/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(value)) {
20
+ // Errors must be an object with `path`, `property`, and `mesage`
21
+ errors.push({
22
+ path: path,
23
+ property: 'format',
24
+ message: 'Dates must be in the format "YYYY-MM-DD"'
25
+ });
26
+ }
27
+ }
28
+ return errors;
29
+ });
30
+
31
+ var num = 0;
32
+ var animel = $("<div></div>");
33
+ $.each(tests,function(i,test) {
34
+ animel.queue(function(next) {
35
+ console.log(i);
36
+
37
+ try {
38
+ var editor = new JSONEditor(document.createElement('div'),{
39
+ schema: test.schema,
40
+ ajax: true
41
+ });
42
+ }
43
+ catch(e) {
44
+ console.log(test.schema);
45
+ throw e;
46
+ }
47
+
48
+ editor.on('ready',function() {
49
+ $.each(test.valid,function(j,value) {
50
+ try {
51
+ num++;
52
+ var result = editor.validate(value);
53
+ if(result.length) {
54
+ console.error(num,'valid',j,JSON.stringify(result,null,2));
55
+ $("#output").append("<div><strong>"+i+" [test valid "+j+"]</strong>: fail. Expected: [], Actual: "+JSON.stringify(result)+"</div>");
56
+ }
57
+ else {
58
+ $("#output").append("<div><strong>"+i+" [test valid "+j+"]</strong>: success</div>");
59
+ console.log(num,'valid',j);
60
+ }
61
+ }
62
+ catch(e) {
63
+ console.log(test.schema,value);
64
+ throw e;
65
+ }
66
+ });
67
+ $.each(test.invalid,function(j,value) {
68
+ try {
69
+ num++;
70
+ var result = editor.validate(value);
71
+ if(!result.length) {
72
+ console.error(num,'invalid',j,JSON.stringify(result,null,2));
73
+ $("#output").append("<div><strong>"+i+" [test invalid "+j+"]</strong>: fail. Expected: errors, Actual: []</div>");
74
+ }
75
+ else {
76
+ var errors = [];
77
+ $.each(result,function(k,error) {
78
+ errors.push(error.path+": "+error.message);
79
+ });
80
+ if(errors.length === 1) errors = errors[0];
81
+ $("#output").append("<div><strong>"+i+" [test invalid "+j+"]</strong>: success</div>");
82
+ console.log(num,'invalid',j,JSON.stringify(errors,null,2));
83
+ }
84
+ }
85
+ catch(e) {
86
+ console.log(test.schema,value);
87
+ throw e;
88
+ }
89
+ });
90
+ next();
91
+ });
92
+ });
93
+ });
94
+ }
95
+ $.getJSON('../fixtures/validation.json').done(validate)
96
+
97
+ </script>
98
+ </body>
99
+ </html>
@@ -0,0 +1,8 @@
1
+ // eslint config file for unit tests
2
+ {
3
+ "extends":"../../.eslintrc",
4
+ "env":
5
+ {
6
+ "jasmine":true
7
+ }
8
+ }