@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,402 @@
1
+ import { resolvers } from './resolvers.js'
2
+
3
+ /* default theme */
4
+ const theme = 'html'
5
+
6
+ /* default template engine */
7
+ const template = 'default'
8
+
9
+ /* Global callback list */
10
+ const callbacks = {}
11
+
12
+ const themes = {}
13
+ const templates = {}
14
+ const iconlibs = {}
15
+ const editors = {}
16
+ const languages = {}
17
+ // eslint-disable-next-line camelcase
18
+ const custom_validators = []
19
+
20
+ /* Translation strings and default languages */
21
+ // eslint-disable-next-line camelcase
22
+ const default_language = 'en'
23
+ // eslint-disable-next-line camelcase
24
+ const language = default_language
25
+
26
+ languages.en = {
27
+ /**
28
+ * When a property is not set
29
+ */
30
+ error_notset: 'Property must be set',
31
+ /**
32
+ * When a string must not be empty
33
+ */
34
+ error_notempty: 'Value required',
35
+ /**
36
+ * When a value is not one of the enumerated values
37
+ */
38
+ error_enum: 'Value must be one of the enumerated values',
39
+ /**
40
+ * When a value is not equal to the constant
41
+ */
42
+ error_const: 'Value must be the constant value',
43
+ /**
44
+ * When a value doesn't validate any schema of a 'anyOf' combination
45
+ */
46
+ error_anyOf: 'Value must validate against at least one of the provided schemas',
47
+ /**
48
+ * When a value doesn't validate
49
+ * @variables This key takes one variable: The number of schemas the value does not validate
50
+ */
51
+ error_oneOf: 'Value must validate against exactly one of the provided schemas. It currently validates against {{0}} of the schemas.',
52
+ /**
53
+ * When a value does not validate a 'not' schema
54
+ */
55
+ error_not: 'Value must not validate against the provided schema',
56
+ /**
57
+ * When a value does not match any of the provided types
58
+ */
59
+ error_type_union: 'Value must be one of the provided types',
60
+ /**
61
+ * When a value does not match the given type
62
+ * @variables This key takes one variable: The type the value should be of
63
+ */
64
+ error_type: 'Value must be of type {{0}}',
65
+ /**
66
+ * When the value validates one of the disallowed types
67
+ */
68
+ error_disallow_union: 'Value must not be one of the provided disallowed types',
69
+ /**
70
+ * When the value validates a disallowed type
71
+ * @variables This key takes one variable: The type the value should not be of
72
+ */
73
+ error_disallow: 'Value must not be of type {{0}}',
74
+ /**
75
+ * When a value is not a multiple of or divisible by a given number
76
+ * @variables This key takes one variable: The number mentioned above
77
+ */
78
+ error_multipleOf: 'Value must be a multiple of {{0}}',
79
+ /**
80
+ * When a value is greater than it's supposed to be (exclusive)
81
+ * @variables This key takes one variable: The maximum
82
+ */
83
+ error_maximum_excl: 'Value must be less than {{0}}',
84
+ /**
85
+ * When a value is greater than it's supposed to be (inclusive
86
+ * @variables This key takes one variable: The maximum
87
+ */
88
+ error_maximum_incl: 'Value must be at most {{0}}',
89
+ /**
90
+ * When a value is lesser than it's supposed to be (exclusive)
91
+ * @variables This key takes one variable: The minimum
92
+ */
93
+ error_minimum_excl: 'Value must be greater than {{0}}',
94
+ /**
95
+ * When a value is lesser than it's supposed to be (inclusive)
96
+ * @variables This key takes one variable: The minimum
97
+ */
98
+ error_minimum_incl: 'Value must be at least {{0}}',
99
+ /**
100
+ * When a value have too many characters
101
+ * @variables This key takes one variable: The maximum character count
102
+ */
103
+ error_maxLength: 'Value must be at most {{0}} characters long',
104
+ /**
105
+ * When a value does not have enough characters
106
+ * @variables This key takes one variable: The minimum character count
107
+ */
108
+ error_minLength: 'Value must be at least {{0}} characters long',
109
+ /**
110
+ * When a value does not match a given pattern
111
+ */
112
+ error_pattern: 'Value must match the pattern {{0}}',
113
+ /**
114
+ * When an array has additional items whereas it is not supposed to
115
+ */
116
+ error_additionalItems: 'No additional items allowed in this array',
117
+ /**
118
+ * When there are to many items in an array
119
+ * @variables This key takes one variable: The maximum item count
120
+ */
121
+ error_maxItems: 'Value must have at most {{0}} items',
122
+ /**
123
+ * When there are not enough items in an array
124
+ * @variables This key takes one variable: The minimum item count
125
+ */
126
+ error_minItems: 'Value must have at least {{0}} items',
127
+ /**
128
+ * When an array is supposed to have unique items but has duplicates
129
+ */
130
+ error_uniqueItems: 'Array must have unique items',
131
+ /**
132
+ * When there are too many properties in an object
133
+ * @variables This key takes one variable: The maximum property count
134
+ */
135
+ error_maxProperties: 'Object must have at most {{0}} properties',
136
+ /**
137
+ * When there are not enough properties in an object
138
+ * @variables This key takes one variable: The minimum property count
139
+ */
140
+ error_minProperties: 'Object must have at least {{0}} properties',
141
+ /**
142
+ * When a required property is not defined
143
+ * @variables This key takes one variable: The name of the missing property
144
+ */
145
+ error_required: "Object is missing the required property '{{0}}'",
146
+ /**
147
+ * When there is an additional property is set whereas there should be none
148
+ * @variables This key takes one variable: The name of the additional property
149
+ */
150
+ error_additional_properties: 'No additional properties allowed, but property {{0}} is set',
151
+ /**
152
+ * When there is a propertyName that sets a max length and a property name exceeds the max length
153
+ * @variables This key takes one variable: The name of the invalid property
154
+ */
155
+ error_property_names_exceeds_maxlength: 'Property name {{0}} exceeds maxLength',
156
+ /**
157
+ * When there is a propertyName that sets an enum and a property name matches none of the possible enum
158
+ * @variables This key takes one variable: The name of the invalid property
159
+ */
160
+ error_property_names_enum_mismatch: 'Property name {{0}} does not match any enum values',
161
+ /**
162
+ * When there is a propertyName that sets a const and a property does not match the const value
163
+ * @variables This key takes one variable: The name of the invalid property
164
+ */
165
+ error_property_names_const_mismatch: 'Property name {{0}} does not match the const value',
166
+ /**
167
+ * When there is a propertyName that sets a pattern and a property name does not match the pattern
168
+ * @variables This key takes one variable: The name of the invalid property
169
+ */
170
+ error_property_names_pattern_mismatch: 'Property name {{0}} does not match pattern',
171
+ /**
172
+ * When the propertyName is set to false and there is at least one property
173
+ * @variables This key takes one variable: The name of the invalid property
174
+ */
175
+ error_property_names_false: 'Property name {{0}} fails when propertyName is false',
176
+ /**
177
+ * When the propertyName specifies a maxLength that is not a number
178
+ * @variables This key takes one variable: The name of the current property
179
+ */
180
+ error_property_names_maxlength: 'Property name {{0}} cannot match invalid maxLength',
181
+ /**
182
+ * When the propertyName specifies an enum that is not an array
183
+ * @variables This key takes one variable: The name of the current property
184
+ */
185
+ error_property_names_enum: 'Property name {{0}} cannot match invalid enum',
186
+ /**
187
+ * When the propertyName specifies a pattern that is not a string
188
+ * @variables This key takes one variable: The name of the current property
189
+ */
190
+ error_property_names_pattern: 'Property name {{0}} cannot match invalid pattern',
191
+ /**
192
+ * When the propertyName is unsupported
193
+ * @variables This key takes one variable: The name of the invalid propertyName
194
+ */
195
+ error_property_names_unsupported: 'Unsupported propertyName {{0}}',
196
+ /**
197
+ * When a dependency is not resolved
198
+ * @variables This key takes one variable: The name of the missing property for the dependency
199
+ */
200
+ error_dependency: 'Must have property {{0}}',
201
+ /**
202
+ * When a date is in incorrect format
203
+ * @variables This key takes one variable: The valid format
204
+ */
205
+ error_date: 'Date must be in the format {{0}}',
206
+ /**
207
+ * When a time is in incorrect format
208
+ * @variables This key takes one variable: The valid format
209
+ */
210
+ error_time: 'Time must be in the format {{0}}',
211
+ /**
212
+ * When a datetime-local is in incorrect format
213
+ * @variables This key takes one variable: The valid format
214
+ */
215
+ error_datetime_local: 'Datetime must be in the format {{0}}',
216
+ /**
217
+ * When a integer date is less than 1 January 1970
218
+ */
219
+ error_invalid_epoch: 'Date must be greater than 1 January 1970',
220
+ /**
221
+ * When an IPv4 is in incorrect format
222
+ */
223
+ error_ipv4: 'Value must be a valid IPv4 address in the form of 4 numbers between 0 and 255, separated by dots',
224
+ /**
225
+ * When an IPv6 is in incorrect format
226
+ */
227
+ error_ipv6: 'Value must be a valid IPv6 address',
228
+ /**
229
+ * When a hostname is in incorrect format
230
+ */
231
+ error_hostname: 'The hostname has the wrong format',
232
+ /**
233
+ * Text/Title on Save button
234
+ */
235
+ button_save: 'Save',
236
+ /**
237
+ * Text/Title on Copy button
238
+ */
239
+ button_copy: 'Copy',
240
+ /**
241
+ * Text/Title on Cancel button
242
+ */
243
+ button_cancel: 'Cancel',
244
+ /**
245
+ * Text/Title on Add button
246
+ */
247
+ button_add: 'Add',
248
+ /**
249
+ * Text on Delete All buttons
250
+ */
251
+ button_delete_all: 'All',
252
+ /**
253
+ * Title on Delete All buttons
254
+ */
255
+ button_delete_all_title: 'Delete All',
256
+ /**
257
+ * Text on Delete Last buttons
258
+ * @variable This key takes one variable: The title of object to delete
259
+ */
260
+ button_delete_last: 'Last {{0}}',
261
+ /**
262
+ * Title on Delete Last buttons
263
+ * @variable This key takes one variable: The title of object to delete
264
+ */
265
+ button_delete_last_title: 'Delete Last {{0}}',
266
+ /**
267
+ * Title on Add Row buttons
268
+ * @variable This key takes one variable: The title of object to add
269
+ */
270
+ button_add_row_title: 'Add {{0}}',
271
+ /**
272
+ * Title on Move Down buttons
273
+ */
274
+ button_move_down_title: 'Move down',
275
+ /**
276
+ * Title on Move Up buttons
277
+ */
278
+ button_move_up_title: 'Move up',
279
+ /**
280
+ * Text on Object Properties buttons
281
+ */
282
+ edit_properties: 'Properties',
283
+ property_name_placeholder: 'Property name...',
284
+ properties: 'properties',
285
+ duplicate_property_error: 'There is already a property with that name',
286
+ /**
287
+ * Title on Object Properties buttons
288
+ */
289
+ button_object_properties: 'Object Properties',
290
+ /**
291
+ * Title on Copy Row button
292
+ * @variable This key takes one variable: The title of object to delete
293
+ */
294
+ button_copy_row_title: 'Copy {{0}}',
295
+ /**
296
+ * Title on Delete Row buttons
297
+ * @variable This key takes one variable: The title of object to delete
298
+ */
299
+ button_delete_row_title: 'Delete {{0}}',
300
+ /**
301
+ * Title on Delete Row buttons, short version (no parameter with the object title)
302
+ */
303
+ button_delete_row_title_short: 'Delete',
304
+ /**
305
+ * Title on Copy Row buttons, short version (no parameter with the object title)
306
+ */
307
+ button_copy_row_title_short: 'Copy',
308
+ /**
309
+ * Title on Collapse buttons
310
+ */
311
+ button_collapse: 'Collapse',
312
+ /**
313
+ * Title on Expand buttons
314
+ */
315
+ button_expand: 'Expand',
316
+ /**
317
+ * Title on Edit JSON buttons
318
+ */
319
+ button_edit_json: 'Edit JSON',
320
+ /**
321
+ * Text/Title on Upload buttons
322
+ */
323
+ button_upload: 'Upload',
324
+ /**
325
+ * Title on Flatpickr toggle buttons
326
+ */
327
+ flatpickr_toggle_button: 'Toggle',
328
+ /**
329
+ * Title on Flatpickr clear buttons
330
+ */
331
+ flatpickr_clear_button: 'Clear',
332
+ /**
333
+ * Choices input field placeholder text
334
+ */
335
+ choices_placeholder_text: 'Start typing to add value',
336
+ /**
337
+ * Default title for array items
338
+ */
339
+ default_array_item_title: 'item',
340
+ /**
341
+ * Warning when deleting a node
342
+ */
343
+ button_delete_node_warning: 'Are you sure you want to remove this node?'
344
+ }
345
+
346
+ /* Default per-editor options */
347
+ Object.entries(editors).forEach(([i, editor]) => { editors[i].options = editor.options || {} })
348
+
349
+ /* Default upload handler */
350
+ function upload (type, file, cbs) {
351
+ // eslint-disable-next-line no-console
352
+ console.log('Upload handler required for upload editor')
353
+ }
354
+
355
+ /* String translate function */
356
+ function translate (key, variables) {
357
+ const lang = defaults.languages[defaults.language]
358
+ if (!lang) throw new Error(`Unknown language ${defaults.language}`)
359
+
360
+ let string = lang[key] || defaults.languages[default_language][key] || key
361
+
362
+ if (variables) {
363
+ for (let i = 0; i < variables.length; i++) {
364
+ string = string.replace(new RegExp(`\\{\\{${i}}}`, 'g'), variables[i])
365
+ }
366
+ }
367
+
368
+ return string
369
+ }
370
+
371
+ /* Text element translate function */
372
+
373
+ function translateProperty (text, variables) {
374
+ return text
375
+ }
376
+
377
+ /* Default options when initializing JSON Editor */
378
+ const options = {
379
+ upload,
380
+ prompt_before_delete: true,
381
+ use_default_values: true,
382
+ max_depth: 0
383
+ }
384
+
385
+ /* This assignment was previously in index.js but makes more sense here */
386
+ export const defaults = {
387
+ options,
388
+ theme,
389
+ template,
390
+ themes,
391
+ callbacks,
392
+ templates,
393
+ iconlibs,
394
+ editors,
395
+ languages,
396
+ resolvers,
397
+ custom_validators,
398
+ default_language,
399
+ language,
400
+ translate,
401
+ translateProperty
402
+ }