@json-editor/json-editor 1.3.5 → 1.17.0
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.
- package/.claude/settings.local.json +8 -0
- package/.env +2 -0
- package/.env-dist +2 -0
- package/.eslintrc +10 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +9 -0
- package/.github/workflows/build.yml +70 -0
- package/.travis.yml +63 -9
- package/CHANGELOG.md +1152 -0
- package/CONTRIBUTING.md +44 -5
- package/Makefile +26 -0
- package/README.md +765 -138
- package/README_ADDON.md +577 -0
- package/UPGRADING.md +46 -0
- package/build/CssToJson.js +55 -0
- package/codecept.conf.js +35 -0
- package/config/.eslintrc +7 -0
- package/config/codeceptjs_helpers.js +146 -0
- package/config/helpers.js +10 -0
- package/config/karma.conf.js +89 -0
- package/config/readme.md +31 -0
- package/config/webpack.common.js +71 -0
- package/config/webpack.dev.js +15 -0
- package/config/webpack.nonmin.js +19 -0
- package/config/webpack.prod.js +24 -0
- package/dist/jsoneditor.js +2 -11013
- package/dist/jsoneditor.js.LICENSE.txt +15 -0
- package/dist/nonmin/jsoneditor.js +31392 -0
- package/dist/nonmin/jsoneditor.js.map +1 -0
- package/docs/basic.html +2 -2
- package/docs/basic_person.json +2 -1
- package/docs/choices.html +86 -0
- package/docs/cleave.html +11 -19
- package/docs/colorpicker.html +194 -0
- package/docs/css_integration.html +56 -54
- package/docs/custom-editor.html +92 -0
- package/docs/datetime.html +48 -21
- package/docs/describedby.html +161 -0
- package/docs/enumsource.html +67 -0
- package/docs/form-submission.html +162 -0
- package/docs/imask.html +192 -0
- package/docs/index.html +606 -423
- package/docs/materialize_css.html +1 -1
- package/docs/meta-schema.html +793 -0
- package/docs/meta_schema.json +446 -400
- package/docs/polyfills/assign.js +29 -0
- package/docs/radio.html +156 -0
- package/docs/recursive.html +15 -17
- package/docs/scripts/ajv-validator.js +8695 -0
- package/docs/select2.html +15 -9
- package/docs/selectize.html +11 -9
- package/docs/signature.html +12 -11
- package/docs/starrating.html +5 -17
- package/docs/upload.html +33 -23
- package/docs/uuid.html +70 -0
- package/docs/wysiwyg.html +14 -7
- package/jasmine.json +11 -0
- package/package.json +74 -25
- package/release-notes.md +90 -0
- package/src/core.js +411 -611
- package/src/defaults.js +385 -306
- package/src/editor.js +761 -520
- package/src/editors/ace.js +90 -0
- package/src/editors/array/choices.js +104 -0
- package/src/editors/array/select2.js +112 -0
- package/src/editors/array/selectize.js +108 -86
- package/src/editors/array.css +9 -0
- package/src/editors/array.css.js +3 -0
- package/src/editors/array.js +812 -695
- package/src/editors/autocomplete.js +59 -0
- package/src/editors/base64.js +148 -129
- package/src/editors/button.js +104 -0
- package/src/editors/checkbox.js +111 -76
- package/src/editors/choices.css +3 -0
- package/src/editors/choices.css.js +3 -0
- package/src/editors/choices.js +71 -0
- package/src/editors/colorpicker.js +105 -0
- package/src/editors/datetime.js +93 -79
- package/src/editors/describedby.js +190 -0
- package/src/editors/enum.js +131 -116
- package/src/editors/hidden.js +100 -86
- package/src/editors/index.js +81 -0
- package/src/editors/info.js +28 -0
- package/src/editors/integer.js +21 -8
- package/src/editors/ip.js +36 -0
- package/src/editors/jodit.js +66 -0
- package/src/editors/multiple.js +380 -241
- package/src/editors/multiselect.js +207 -207
- package/src/editors/null.js +15 -11
- package/src/editors/number.js +39 -30
- package/src/editors/object.css +41 -0
- package/src/editors/object.css.js +3 -0
- package/src/editors/object.js +1209 -1007
- package/src/editors/radio.js +128 -0
- package/src/editors/sceditor.js +74 -0
- package/src/editors/select.js +318 -342
- package/src/editors/select2.js +112 -0
- package/src/editors/selectize.js +89 -338
- package/src/editors/signature.js +100 -104
- package/src/editors/simplemde.js +103 -0
- package/src/{styles → editors}/starrating.css +11 -2
- package/src/editors/starrating.css.js +3 -0
- package/src/editors/starrating.js +126 -95
- package/src/editors/stepper.js +27 -0
- package/src/editors/string.js +352 -426
- package/src/editors/table.js +486 -410
- package/src/editors/upload.js +297 -131
- package/src/editors/uuid.js +49 -0
- package/src/iconlib.js +22 -27
- package/src/iconlibs/bootstrap.js +28 -0
- package/src/iconlibs/bootstrap2.js +28 -17
- package/src/iconlibs/bootstrap3.js +28 -17
- package/src/iconlibs/fontawesome3.js +28 -17
- package/src/iconlibs/fontawesome4.js +28 -18
- package/src/iconlibs/fontawesome5.js +28 -18
- package/src/iconlibs/foundation2.js +24 -17
- package/src/iconlibs/foundation3.js +28 -17
- package/src/iconlibs/index.js +27 -0
- package/src/iconlibs/jqueryui.js +28 -17
- package/src/iconlibs/materialicons.js +49 -44
- package/src/iconlibs/openiconic.js +28 -0
- package/src/iconlibs/spectre.js +28 -0
- package/src/resolvers.js +135 -0
- package/src/schemaloader.js +639 -0
- package/src/style.css +157 -0
- package/src/style.css.js +3 -0
- package/src/templates/default.js +46 -51
- package/src/templates/ejs.js +8 -10
- package/src/templates/handlebars.js +1 -3
- package/src/templates/hogan.js +7 -9
- package/src/templates/index.js +21 -0
- package/src/templates/lodash.js +6 -8
- package/src/templates/markup.js +6 -8
- package/src/templates/mustache.js +6 -8
- package/src/templates/swig.js +1 -3
- package/src/templates/underscore.js +6 -8
- package/src/theme.js +717 -426
- package/src/themes/barebones.css +35 -0
- package/src/themes/barebones.css.js +3 -0
- package/src/themes/barebones.js +31 -0
- package/src/themes/bootstrap2.js +302 -264
- package/src/themes/bootstrap3.css +53 -0
- package/src/themes/bootstrap3.css.js +3 -0
- package/src/themes/bootstrap3.js +356 -259
- package/src/themes/bootstrap4.css +89 -0
- package/src/themes/bootstrap4.css.js +3 -0
- package/src/themes/bootstrap4.js +744 -234
- package/src/themes/bootstrap5.css +97 -0
- package/src/themes/bootstrap5.css.js +3 -0
- package/src/themes/bootstrap5.js +687 -0
- package/src/themes/foundation.js +539 -465
- package/src/themes/html.css +60 -0
- package/src/themes/html.css.js +3 -0
- package/src/themes/html.js +69 -82
- package/src/themes/index.js +29 -0
- package/src/themes/jqueryui.js +181 -166
- package/src/themes/materialize.js +263 -291
- package/src/themes/spectre.css +208 -0
- package/src/themes/spectre.css.js +3 -0
- package/src/themes/spectre.js +443 -0
- package/src/themes/tailwind.css +303 -0
- package/src/themes/tailwind.css.js +3 -0
- package/src/themes/tailwind.js +469 -0
- package/src/utilities.js +127 -68
- package/src/validator.js +914 -551
- package/src/validators/ip-validator.js +51 -0
- package/tests/Dockerfile +3 -0
- package/tests/README.md +27 -6
- package/tests/codeceptjs/codecept.json +29 -5
- package/tests/codeceptjs/constrains/contains_test.js +37 -0
- package/tests/codeceptjs/constrains/dependentRequired_test.js +33 -0
- package/tests/codeceptjs/constrains/dependentSchemas_test.js +16 -0
- package/tests/codeceptjs/constrains/if-then-else_test.js +186 -0
- package/tests/codeceptjs/core_test.js +534 -68
- package/tests/codeceptjs/editors/advanced_test.js +12 -10
- package/tests/codeceptjs/editors/array_any_of_test.js +50 -0
- package/tests/codeceptjs/editors/array_test.js +935 -677
- package/tests/codeceptjs/editors/autocomplete_test.js +15 -0
- package/tests/codeceptjs/editors/button_test.js +50 -0
- package/tests/codeceptjs/editors/checkbox_test.js +21 -8
- package/tests/codeceptjs/editors/colorpicker_test.js +29 -0
- package/tests/codeceptjs/editors/datetime_test.js +33 -0
- package/tests/codeceptjs/editors/inheritance_test.js +10 -0
- package/tests/codeceptjs/editors/integer_test.js +82 -71
- package/tests/codeceptjs/editors/jodit_test.js +23 -0
- package/tests/codeceptjs/editors/multiple_test.js +27 -0
- package/tests/codeceptjs/editors/multiselect_test.js +6 -9
- package/tests/codeceptjs/editors/number_test.js +75 -67
- package/tests/codeceptjs/editors/object_test.js +337 -28
- package/tests/codeceptjs/editors/option-no_default_values_test.js +42 -0
- package/tests/codeceptjs/editors/programmatic-changes_test.js +20 -0
- package/tests/codeceptjs/editors/purify_test.js +26 -0
- package/tests/codeceptjs/editors/radio_test.js +9 -0
- package/tests/codeceptjs/editors/range_test.js +10 -0
- package/tests/codeceptjs/editors/rating_test.js +10 -16
- package/tests/codeceptjs/editors/select_test.js +46 -23
- package/tests/codeceptjs/editors/starrating_test.js +15 -0
- package/tests/codeceptjs/editors/stepper_test.js +37 -0
- package/tests/codeceptjs/editors/string_test.js +108 -101
- package/tests/codeceptjs/editors/table-confirm-delete_test.js +60 -55
- package/tests/codeceptjs/editors/tabs_test.js +14 -11
- package/tests/codeceptjs/editors/uuid_test.js +48 -0
- package/tests/codeceptjs/editors/validation_test.js +13 -9
- package/tests/codeceptjs/issues/issue-gh-1133_test.js +9 -0
- package/tests/codeceptjs/issues/issue-gh-1158-2_test.js +10 -0
- package/tests/codeceptjs/issues/issue-gh-1158_test.js +8 -0
- package/tests/codeceptjs/issues/issue-gh-1164_test.js +9 -0
- package/tests/codeceptjs/issues/issue-gh-1171_test.js +11 -0
- package/tests/codeceptjs/issues/issue-gh-1211_test.js +17 -0
- package/tests/codeceptjs/issues/issue-gh-1257_test.js +11 -0
- package/tests/codeceptjs/issues/issue-gh-1272_test.js +21 -0
- package/tests/codeceptjs/issues/issue-gh-1330_test.js +8 -0
- package/tests/codeceptjs/issues/issue-gh-1338_test.js +18 -0
- package/tests/codeceptjs/issues/issue-gh-1347_test.js +8 -0
- package/tests/codeceptjs/issues/issue-gh-1364_test.js +13 -0
- package/tests/codeceptjs/issues/issue-gh-1367_test.js +11 -0
- package/tests/codeceptjs/issues/issue-gh-1383_test.js +9 -0
- package/tests/codeceptjs/issues/issue-gh-1384_test.js +9 -0
- package/tests/codeceptjs/issues/issue-gh-1410_test.js +13 -0
- package/tests/codeceptjs/issues/issue-gh-1422_test.js +9 -0
- package/tests/codeceptjs/issues/issue-gh-1431_test.js +12 -0
- package/tests/codeceptjs/issues/issue-gh-1439_test.js +12 -0
- package/tests/codeceptjs/issues/issue-gh-1452_test.js +10 -0
- package/tests/codeceptjs/issues/issue-gh-1453_test.js +18 -0
- package/tests/codeceptjs/issues/issue-gh-1461_test.js +14 -0
- package/tests/codeceptjs/issues/issue-gh-1463_test.js +9 -0
- package/tests/codeceptjs/issues/issue-gh-1471_test.js +17 -0
- package/tests/codeceptjs/issues/issue-gh-1485_test.js +13 -0
- package/tests/codeceptjs/issues/issue-gh-1491_test.js +9 -0
- package/tests/codeceptjs/issues/issue-gh-1525_test.js +9 -0
- package/tests/codeceptjs/issues/issue-gh-1536_test.js +12 -0
- package/tests/codeceptjs/issues/issue-gh-1538_test.js +10 -0
- package/tests/codeceptjs/issues/issue-gh-1541_test.js +8 -0
- package/tests/codeceptjs/issues/issue-gh-1559_test.js +15 -0
- package/tests/codeceptjs/issues/issue-gh-1562_test.js +12 -0
- package/tests/codeceptjs/issues/issue-gh-1586_test.js +15 -0
- package/tests/codeceptjs/issues/issue-gh-1636_test.js +9 -0
- package/tests/codeceptjs/issues/issue-gh-795_test.js +13 -0
- package/tests/codeceptjs/issues/issue-gh-810_test.js +52 -0
- package/tests/codeceptjs/issues/issue-gh-812_test.js +25 -0
- package/tests/codeceptjs/meta-schema_test.js +85 -0
- package/tests/codeceptjs/schemaloader_test.js +14 -0
- package/tests/codeceptjs/steps.d.ts +13 -0
- package/tests/codeceptjs/steps_file.js +4 -4
- package/tests/codeceptjs/test-config.js +3 -0
- package/tests/codeceptjs/themes_test.js +564 -0
- package/tests/docker-compose-local.yml +5 -0
- package/tests/docker-compose.yml +23 -17
- package/tests/fixtures/basic_person.json +2 -1
- package/tests/fixtures/definitions.json +22 -0
- package/tests/fixtures/nested_object.json +26 -0
- package/tests/fixtures/properties.json +20 -0
- package/tests/fixtures/some_types.json +32 -0
- package/tests/fixtures/validation.json +1347 -0
- package/tests/pages/_demo.html +475 -0
- package/tests/pages/advanced.html +1 -1
- package/tests/pages/anyof-2.html +91 -0
- package/tests/pages/anyof.html +82 -0
- package/tests/pages/array-anyof.html +145 -0
- package/tests/pages/array-checkboxes-infotext.html +55 -0
- package/tests/pages/array-checkboxes.html +5 -2
- package/tests/pages/array-choices.html +48 -0
- package/tests/pages/array-events-table.html +70 -0
- package/tests/pages/array-events.html +75 -0
- package/tests/pages/array-header-template.html +60 -0
- package/tests/pages/array-integers.html +5 -2
- package/tests/pages/array-multiselects.html +5 -2
- package/tests/pages/array-nested-arrays.html +5 -2
- package/tests/pages/array-numbers.html +5 -2
- package/tests/pages/array-objects.html +5 -2
- package/tests/pages/array-ratings.html +5 -2
- package/tests/pages/array-selectize-create.html +63 -0
- package/tests/pages/array-selectize.html +54 -0
- package/tests/pages/array-selects.html +5 -2
- package/tests/pages/array-strings.html +5 -2
- package/tests/pages/array-table-responsive.html +66 -0
- package/tests/pages/array-unique-items-sort.html +81 -0
- package/tests/pages/array.html +5 -2
- package/tests/pages/assets/autocomplete.css +1 -0
- package/tests/pages/assets/autocomplete.min.js +1 -0
- package/tests/pages/assets/pages.css +130 -0
- package/tests/pages/autocomplete.html +72 -0
- package/tests/pages/button-callbacks.html +79 -0
- package/tests/pages/button-icons.html +39 -0
- package/tests/pages/button_state_mode_1.html +35 -0
- package/tests/pages/button_state_mode_2.html +36 -0
- package/tests/pages/checkbox-labels.html +116 -0
- package/tests/pages/colorpicker-no-3rd-party.html +45 -0
- package/tests/pages/colorpicker-use-vanilla-picker.html +52 -0
- package/tests/pages/container-attributes.html +51 -0
- package/tests/pages/contains.html +39 -0
- package/tests/pages/core.html +14 -7
- package/tests/pages/datetime.html +78 -0
- package/tests/pages/dependentRequired.html +72 -0
- package/tests/pages/dependentSchemas.html +53 -0
- package/tests/pages/disable-button-in-object-editors.html +57 -0
- package/tests/pages/editor-show-validation-errors.html +54 -0
- package/tests/pages/enforce-const.html +168 -0
- package/tests/pages/error-messages.html +48 -0
- package/tests/pages/form-name.html +111 -0
- package/tests/pages/grid-strict.html +308 -0
- package/tests/pages/grid.html +281 -0
- package/tests/pages/if-else.html +58 -0
- package/tests/pages/if-then-else-allOf.html +118 -0
- package/tests/pages/if-then-else-disable-fields.html +70 -0
- package/tests/pages/if-then-else.html +65 -0
- package/tests/pages/if-then.html +58 -0
- package/tests/pages/inheritance.html +80 -0
- package/tests/pages/integer.html +17 -10
- package/tests/pages/issues/_template.html +50 -0
- package/tests/pages/issues/issue-gh-1133.html +64 -0
- package/tests/pages/issues/issue-gh-1158-2.html +189 -0
- package/tests/pages/issues/issue-gh-1158.html +50 -0
- package/tests/pages/issues/issue-gh-1164.html +71 -0
- package/tests/pages/issues/issue-gh-1165.html +63 -0
- package/tests/pages/issues/issue-gh-1165.json +8 -0
- package/tests/pages/issues/issue-gh-1171.html +39 -0
- package/tests/pages/issues/issue-gh-1211.html +1022 -0
- package/tests/pages/issues/issue-gh-1233-failing.html +46 -0
- package/tests/pages/issues/issue-gh-1233-passing.html +49 -0
- package/tests/pages/issues/issue-gh-1257.html +77 -0
- package/tests/pages/issues/issue-gh-1272.html +167 -0
- package/tests/pages/issues/issue-gh-1330.html +52 -0
- package/tests/pages/issues/issue-gh-1338.html +74 -0
- package/tests/pages/issues/issue-gh-1347.html +142 -0
- package/tests/pages/issues/issue-gh-1364.html +64 -0
- package/tests/pages/issues/issue-gh-1367.html +49 -0
- package/tests/pages/issues/issue-gh-1383.html +31 -0
- package/tests/pages/issues/issue-gh-1383.json +14 -0
- package/tests/pages/issues/issue-gh-1384.html +31 -0
- package/tests/pages/issues/issue-gh-1384.json +36 -0
- package/tests/pages/issues/issue-gh-1410.html +57 -0
- package/tests/pages/issues/issue-gh-1422.html +68 -0
- package/tests/pages/issues/issue-gh-1431.html +49 -0
- package/tests/pages/issues/issue-gh-1439.html +69 -0
- package/tests/pages/issues/issue-gh-1452.html +98 -0
- package/tests/pages/issues/issue-gh-1453.html +45 -0
- package/tests/pages/issues/issue-gh-1461.html +55 -0
- package/tests/pages/issues/issue-gh-1463.html +41 -0
- package/tests/pages/issues/issue-gh-1466.html +63 -0
- package/tests/pages/issues/issue-gh-1471.html +49 -0
- package/tests/pages/issues/issue-gh-1485.html +59 -0
- package/tests/pages/issues/issue-gh-1491.html +59 -0
- package/tests/pages/issues/issue-gh-1525.html +62 -0
- package/tests/pages/issues/issue-gh-1536.html +55 -0
- package/tests/pages/issues/issue-gh-1538.html +56 -0
- package/tests/pages/issues/issue-gh-1541.html +51 -0
- package/tests/pages/issues/issue-gh-1541.json +9 -0
- package/tests/pages/issues/issue-gh-1559.html +68 -0
- package/tests/pages/issues/issue-gh-1562.html +170 -0
- package/tests/pages/issues/issue-gh-1586.html +48 -0
- package/tests/pages/issues/issue-gh-1636.html +52 -0
- package/tests/pages/issues/issue-gh-795.html +58 -0
- package/tests/pages/issues/issue-gh-810.html +149 -0
- package/tests/pages/issues/issue-gh-812.html +113 -0
- package/tests/pages/issues/issue-gh-823-meta-schema.html +35 -0
- package/tests/pages/issues/issue-gh-848.html +81 -0
- package/tests/pages/keep_only_existing_values.html +81 -0
- package/tests/pages/load-events.html +61 -0
- package/tests/pages/maxContains.html +40 -0
- package/tests/pages/meta-schema.html +793 -0
- package/tests/pages/meta_schema.json +740 -0
- package/tests/pages/minContains.html +40 -0
- package/tests/pages/number.html +53 -6
- package/tests/pages/object-case-sensitive-property-search-false.html +42 -0
- package/tests/pages/object-case-sensitive-property-search-true.html +42 -0
- package/tests/pages/object-no-additional-properties.html +68 -0
- package/tests/pages/object-no-duplicated-id.html +70 -0
- package/tests/pages/object-required-properties.html +261 -0
- package/tests/pages/object-show-opt-in.html +111 -0
- package/tests/pages/object-with-dependencies-array.html +58 -0
- package/tests/pages/object-with-dependencies.html +62 -0
- package/tests/pages/object.html +5 -3
- package/tests/pages/oneof-2.html +91 -0
- package/tests/pages/oneof.html +105 -0
- package/tests/pages/opt-in-widget.html +134 -0
- package/tests/pages/option-dependencies.html +107 -0
- package/tests/pages/option-no_default_values.html +60 -0
- package/tests/pages/per-editor-options.html +44 -0
- package/tests/pages/placeholder-options.html +57 -0
- package/tests/pages/programmatic-changes.html +121 -0
- package/tests/pages/prompt-paste-max-length-reached.html +51 -0
- package/tests/pages/purify.html +66 -0
- package/tests/pages/range.html +62 -0
- package/tests/pages/read-only.html +60 -8
- package/tests/pages/ready.html +44 -0
- package/tests/pages/references.html +168 -0
- package/tests/pages/remove-false-properties.html +85 -0
- package/tests/pages/select-values.html +91 -0
- package/tests/pages/select.html +4 -3
- package/tests/pages/show-validation-errors.html +73 -0
- package/tests/pages/starrating.html +86 -0
- package/tests/pages/stepper-manual.html +59 -0
- package/tests/pages/stepper.html +61 -0
- package/tests/pages/string-ace-editor.html +7 -3
- package/tests/pages/string-cleave.html +48 -0
- package/tests/pages/string-custom-attributes.html +9 -6
- package/tests/pages/string-formats.html +54 -0
- package/tests/pages/string-formats2.html +59 -0
- package/tests/pages/{array-move-events.html → string-jodit-editor.html} +21 -29
- package/tests/pages/string-sceditor.html +9 -7
- package/tests/pages/string-simplemde-editor.html +83 -0
- package/tests/pages/switcher-option.html +69 -0
- package/tests/pages/table.html +4 -2
- package/tests/pages/tabs.html +1 -1
- package/tests/pages/themes.html +517 -0
- package/tests/pages/title-hidden.html +75 -0
- package/tests/pages/translate-property.html +248 -0
- package/tests/pages/urn.html +98 -0
- package/tests/pages/use-name-attributes.html +207 -0
- package/tests/pages/uuid.html +113 -0
- package/tests/pages/validation-messages.json +705 -0
- package/tests/pages/validation.html +20 -730
- package/tests/unit/.eslintrc +8 -0
- package/tests/unit/core.spec.js +320 -0
- package/tests/unit/defaults.spec.js +40 -0
- package/tests/unit/editor.spec.js +172 -0
- package/tests/unit/editors/array.spec.js +87 -0
- package/tests/unit/editors/object.spec.js +81 -0
- package/tests/unit/editors/table.spec.js +93 -0
- package/tests/unit/readme.md +35 -0
- package/tests/unit/schemaloader.spec.js +576 -0
- package/tests/unit/validator.spec.js +104 -0
- package/tests/unit/validators/ip-validator.spec.js +62 -0
- package/Gruntfile.js +0 -226
- package/dist/css/jsoneditor.min.css +0 -1
- package/dist/jsoneditor.js.map +0 -1
- package/dist/jsoneditor.min.js +0 -19
- package/dist/jsoneditor.min.js.map +0 -1
- package/docs/demo.html +0 -646
- package/src/class.js +0 -68
- package/src/editors/rating.js +0 -152
- package/src/ie9.js +0 -51
- package/src/intro.js +0 -23
- package/src/jquery.js +0 -64
- package/src/outro.js +0 -2
- package/src/themes/jsoneditor.barebones-theme.js +0 -60
package/src/defaults.js
CHANGED
|
@@ -1,365 +1,444 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { resolvers } from './resolvers.js'
|
|
2
|
+
import { editors } from './editors/index.js'
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
/* default theme */
|
|
5
|
+
const theme = 'html'
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
/* default template engine */
|
|
8
|
+
const template = 'default'
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
/* Global callback list */
|
|
11
|
+
const callbacks = {}
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
13
|
+
const themes = {}
|
|
14
|
+
const templates = {}
|
|
15
|
+
const iconlibs = {}
|
|
16
|
+
const languages = {}
|
|
17
|
+
// eslint-disable-next-line camelcase
|
|
18
|
+
const custom_validators = []
|
|
15
19
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var string = lang[key] || JSONEditor.defaults.languages[JSONEditor.defaults.default_language][key];
|
|
22
|
-
|
|
23
|
-
if(typeof string === "undefined") throw "Unknown translate string "+key;
|
|
24
|
-
|
|
25
|
-
if(variables) {
|
|
26
|
-
for(var i=0; i<variables.length; i++) {
|
|
27
|
-
string = string.replace(new RegExp('\\{\\{'+i+'}}','g'),variables[i]);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return string;
|
|
32
|
-
};
|
|
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
|
|
33
25
|
|
|
34
|
-
|
|
35
|
-
JSONEditor.defaults.default_language = 'en';
|
|
36
|
-
JSONEditor.defaults.language = JSONEditor.defaults.default_language;
|
|
37
|
-
JSONEditor.defaults.languages.en = {
|
|
26
|
+
languages.en = {
|
|
38
27
|
/**
|
|
39
28
|
* When a property is not set
|
|
40
29
|
*/
|
|
41
|
-
error_notset:
|
|
30
|
+
error_notset: 'Property must be set',
|
|
42
31
|
/**
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
error_notempty:
|
|
32
|
+
* When a string must not be empty
|
|
33
|
+
*/
|
|
34
|
+
error_notempty: 'Value required',
|
|
46
35
|
/**
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
error_enum:
|
|
36
|
+
* When a value is not one of the enumerated values
|
|
37
|
+
*/
|
|
38
|
+
error_enum: 'Value must be one of the enumerated values',
|
|
50
39
|
/**
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
40
|
+
* When a value is not equal to the constant
|
|
41
|
+
*/
|
|
42
|
+
error_const: 'Value must be the constant value',
|
|
54
43
|
/**
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
+
*/
|
|
58
51
|
error_oneOf: 'Value must validate against exactly one of the provided schemas. It currently validates against {{0}} of the schemas.',
|
|
59
52
|
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
error_not:
|
|
53
|
+
* When a value does not validate a 'not' schema
|
|
54
|
+
*/
|
|
55
|
+
error_not: 'Value must not validate against the provided schema',
|
|
63
56
|
/**
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
error_type_union:
|
|
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',
|
|
67
60
|
/**
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
error_type:
|
|
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}}',
|
|
72
65
|
/**
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
error_disallow_union:
|
|
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',
|
|
76
69
|
/**
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
error_disallow:
|
|
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}}',
|
|
81
74
|
/**
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
error_multipleOf:
|
|
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}}',
|
|
86
79
|
/**
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
error_maximum_excl:
|
|
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}}',
|
|
91
84
|
/**
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
error_maximum_incl:
|
|
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}}',
|
|
96
89
|
/**
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
error_minimum_excl:
|
|
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}}',
|
|
101
94
|
/**
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
error_minimum_incl:
|
|
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}}',
|
|
106
99
|
/**
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
error_maxLength:
|
|
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',
|
|
111
104
|
/**
|
|
112
|
-
* When
|
|
113
|
-
* @variables This key takes one variable: The minimum character count
|
|
105
|
+
* When no array items validates the contains schema
|
|
114
106
|
*/
|
|
115
|
-
|
|
107
|
+
error_contains: 'No items match contains',
|
|
116
108
|
/**
|
|
117
|
-
* When
|
|
109
|
+
* When an array have too few items that validate agaist contains schema
|
|
110
|
+
* @variables This key takes two variable: The valid items count and the minContains value
|
|
118
111
|
*/
|
|
119
|
-
|
|
112
|
+
error_minContains: 'Contains match count {{0}} is less than minimum contains count of {{1}}',
|
|
120
113
|
/**
|
|
121
|
-
* When an array
|
|
114
|
+
* When an array have too many items that validate agaist contains schema
|
|
115
|
+
* @variables This key takes two variable: The valid items count and the maxContains value
|
|
122
116
|
*/
|
|
123
|
-
|
|
117
|
+
error_maxContains: 'Contains match count {{0}} exceeds maximum contains count of {{1}}',
|
|
124
118
|
/**
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
119
|
+
* When a value does not have enough characters
|
|
120
|
+
* @variables This key takes one variable: The minimum character count
|
|
121
|
+
*/
|
|
122
|
+
error_minLength: 'Value must be at least {{0}} characters long',
|
|
129
123
|
/**
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
error_minItems: "Value must have at least {{0}} items",
|
|
124
|
+
* When a value does not match a given pattern
|
|
125
|
+
*/
|
|
126
|
+
error_pattern: 'Value must match the pattern {{0}}',
|
|
134
127
|
/**
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
128
|
+
* When an array has additional items whereas it is not supposed to
|
|
129
|
+
*/
|
|
130
|
+
error_additionalItems: 'No additional items allowed in this array',
|
|
138
131
|
/**
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
132
|
+
* When there are to many items in an array
|
|
133
|
+
* @variables This key takes one variable: The maximum item count
|
|
134
|
+
*/
|
|
135
|
+
error_maxItems: 'Value must have at most {{0}} items',
|
|
143
136
|
/**
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
137
|
+
* When there are not enough items in an array
|
|
138
|
+
* @variables This key takes one variable: The minimum item count
|
|
139
|
+
*/
|
|
140
|
+
error_minItems: 'Value must have at least {{0}} items',
|
|
148
141
|
/**
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
error_required: "Object is missing the required property '{{0}}'",
|
|
142
|
+
* When an array is supposed to have unique items but has duplicates
|
|
143
|
+
*/
|
|
144
|
+
error_uniqueItems: 'Array must have unique items',
|
|
153
145
|
/**
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
146
|
+
* When there are too many properties in an object
|
|
147
|
+
* @variables This key takes one variable: The maximum property count
|
|
148
|
+
*/
|
|
149
|
+
error_maxProperties: 'Object must have at most {{0}} properties',
|
|
158
150
|
/**
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
151
|
+
* When there are not enough properties in an object
|
|
152
|
+
* @variables This key takes one variable: The minimum property count
|
|
153
|
+
*/
|
|
154
|
+
error_minProperties: 'Object must have at least {{0}} properties',
|
|
155
|
+
/**
|
|
156
|
+
* When a required property is not defined
|
|
157
|
+
* @variables This key takes one variable: The name of the missing property
|
|
158
|
+
*/
|
|
159
|
+
error_required: "Object is missing the required property '{{0}}'",
|
|
163
160
|
/**
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
161
|
+
* When there is an additional property is set whereas there should be none
|
|
162
|
+
* @variables This key takes one variable: The name of the additional property
|
|
163
|
+
*/
|
|
164
|
+
error_additional_properties: 'No additional properties allowed, but property {{0}} is set',
|
|
165
|
+
/**
|
|
166
|
+
* When there is a propertyName that sets a max length and a property name exceeds the max length
|
|
167
|
+
* @variables This key takes one variable: The name of the invalid property
|
|
168
|
+
*/
|
|
169
|
+
error_property_names_exceeds_maxlength: 'Property name {{0}} exceeds maxLength',
|
|
170
|
+
/**
|
|
171
|
+
* When there is a propertyName that sets an enum and a property name matches none of the possible enum
|
|
172
|
+
* @variables This key takes one variable: The name of the invalid property
|
|
173
|
+
*/
|
|
174
|
+
error_property_names_enum_mismatch: 'Property name {{0}} does not match any enum values',
|
|
175
|
+
/**
|
|
176
|
+
* When there is a propertyName that sets a const and a property does not match the const value
|
|
177
|
+
* @variables This key takes one variable: The name of the invalid property
|
|
178
|
+
*/
|
|
179
|
+
error_property_names_const_mismatch: 'Property name {{0}} does not match the const value',
|
|
180
|
+
/**
|
|
181
|
+
* When there is a propertyName that sets a pattern and a property name does not match the pattern
|
|
182
|
+
* @variables This key takes one variable: The name of the invalid property
|
|
183
|
+
*/
|
|
184
|
+
error_property_names_pattern_mismatch: 'Property name {{0}} does not match pattern',
|
|
185
|
+
/**
|
|
186
|
+
* When the propertyName is set to false and there is at least one property
|
|
187
|
+
* @variables This key takes one variable: The name of the invalid property
|
|
188
|
+
*/
|
|
189
|
+
error_property_names_false: 'Property name {{0}} fails when propertyName is false',
|
|
190
|
+
/**
|
|
191
|
+
* When the propertyName specifies a maxLength that is not a number
|
|
192
|
+
* @variables This key takes one variable: The name of the current property
|
|
193
|
+
*/
|
|
194
|
+
error_property_names_maxlength: 'Property name {{0}} cannot match invalid maxLength',
|
|
195
|
+
/**
|
|
196
|
+
* When the propertyName specifies an enum that is not an array
|
|
197
|
+
* @variables This key takes one variable: The name of the current property
|
|
198
|
+
*/
|
|
199
|
+
error_property_names_enum: 'Property name {{0}} cannot match invalid enum',
|
|
200
|
+
/**
|
|
201
|
+
* When the propertyName specifies a pattern that is not a string
|
|
202
|
+
* @variables This key takes one variable: The name of the current property
|
|
203
|
+
*/
|
|
204
|
+
error_property_names_pattern: 'Property name {{0}} cannot match invalid pattern',
|
|
205
|
+
/**
|
|
206
|
+
* When the propertyName is unsupported
|
|
207
|
+
* @variables This key takes one variable: The name of the invalid propertyName
|
|
208
|
+
*/
|
|
209
|
+
error_property_names_unsupported: 'Unsupported propertyName {{0}}',
|
|
210
|
+
/**
|
|
211
|
+
* When a dependency is not resolved
|
|
212
|
+
* @variables This key takes one variable: The name of the missing property for the dependency
|
|
213
|
+
*/
|
|
214
|
+
error_dependency: 'Must have property {{0}}',
|
|
215
|
+
/**
|
|
216
|
+
* When a date is in incorrect format
|
|
217
|
+
* @variables This key takes one variable: The valid format
|
|
218
|
+
*/
|
|
167
219
|
error_date: 'Date must be in the format {{0}}',
|
|
168
220
|
/**
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
221
|
+
* When a time is in incorrect format
|
|
222
|
+
* @variables This key takes one variable: The valid format
|
|
223
|
+
*/
|
|
172
224
|
error_time: 'Time must be in the format {{0}}',
|
|
173
225
|
/**
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
226
|
+
* When a datetime-local is in incorrect format
|
|
227
|
+
* @variables This key takes one variable: The valid format
|
|
228
|
+
*/
|
|
177
229
|
error_datetime_local: 'Datetime must be in the format {{0}}',
|
|
178
230
|
/**
|
|
179
|
-
|
|
180
|
-
|
|
231
|
+
* When a integer date is less than 1 January 1970
|
|
232
|
+
*/
|
|
181
233
|
error_invalid_epoch: 'Date must be greater than 1 January 1970',
|
|
182
|
-
|
|
183
234
|
/**
|
|
184
|
-
|
|
235
|
+
* When an IPv4 is in incorrect format
|
|
236
|
+
*/
|
|
237
|
+
error_ipv4: 'Value must be a valid IPv4 address in the form of 4 numbers between 0 and 255, separated by dots',
|
|
238
|
+
/**
|
|
239
|
+
* When an IPv6 is in incorrect format
|
|
240
|
+
*/
|
|
241
|
+
error_ipv6: 'Value must be a valid IPv6 address',
|
|
242
|
+
/**
|
|
243
|
+
* When a hostname is in incorrect format
|
|
244
|
+
*/
|
|
245
|
+
error_hostname: 'The hostname has the wrong format',
|
|
246
|
+
/**
|
|
247
|
+
* When uploads max size limit is exceeded
|
|
248
|
+
*/
|
|
249
|
+
upload_max_size: 'Filesize too large. Max size is ',
|
|
250
|
+
/**
|
|
251
|
+
* When the mime type does not match the type of the file
|
|
252
|
+
*/
|
|
253
|
+
upload_wrong_file_format: 'Wrong file format. Allowed format(s): ',
|
|
254
|
+
/**
|
|
255
|
+
* Text/Title on Save button
|
|
256
|
+
*/
|
|
257
|
+
button_save: 'Save',
|
|
258
|
+
/**
|
|
259
|
+
* Text/Title on Copy button
|
|
260
|
+
*/
|
|
261
|
+
button_copy: 'Copy',
|
|
262
|
+
/**
|
|
263
|
+
* Text/Title on Cancel button
|
|
264
|
+
*/
|
|
265
|
+
button_cancel: 'Cancel',
|
|
266
|
+
/**
|
|
267
|
+
* Text/Title on Add button
|
|
268
|
+
*/
|
|
269
|
+
button_add: 'Add',
|
|
270
|
+
/**
|
|
271
|
+
* Text on Delete All buttons
|
|
272
|
+
*/
|
|
273
|
+
button_delete_all: 'All',
|
|
274
|
+
/**
|
|
275
|
+
* Title on Delete All buttons
|
|
276
|
+
*/
|
|
277
|
+
button_delete_all_title: 'Delete All',
|
|
278
|
+
/**
|
|
279
|
+
* Text on Delete Last buttons
|
|
280
|
+
* @variable This key takes one variable: The title of object to delete
|
|
281
|
+
*/
|
|
282
|
+
button_delete_last: 'Last {{0}}',
|
|
283
|
+
/**
|
|
284
|
+
* Title on Delete Last buttons
|
|
285
|
+
* @variable This key takes one variable: The title of object to delete
|
|
286
|
+
*/
|
|
287
|
+
button_delete_last_title: 'Delete Last {{0}}',
|
|
288
|
+
/**
|
|
289
|
+
* Title on Add Row buttons
|
|
290
|
+
* @variable This key takes one variable: The title of object to add
|
|
291
|
+
*/
|
|
292
|
+
button_add_row_title: 'Add {{0}}',
|
|
293
|
+
/**
|
|
294
|
+
* Title on Move Down buttons
|
|
295
|
+
*/
|
|
296
|
+
button_move_down_title: 'Move down',
|
|
297
|
+
/**
|
|
298
|
+
* Title on Move Up buttons
|
|
299
|
+
*/
|
|
300
|
+
button_move_up_title: 'Move up',
|
|
301
|
+
/**
|
|
302
|
+
* Text on Object Properties buttons
|
|
303
|
+
*/
|
|
304
|
+
button_properties: 'Properties',
|
|
305
|
+
/**
|
|
306
|
+
* Title on Object Properties buttons
|
|
307
|
+
*/
|
|
308
|
+
button_object_properties: 'Object Properties',
|
|
309
|
+
/**
|
|
310
|
+
* Title on Copy Row button
|
|
311
|
+
* @variable This key takes one variable: The title of object to delete
|
|
312
|
+
*/
|
|
313
|
+
button_copy_row_title: 'Copy {{0}}',
|
|
314
|
+
/**
|
|
315
|
+
* Title on Delete Row buttons
|
|
316
|
+
* @variable This key takes one variable: The title of object to delete
|
|
317
|
+
*/
|
|
318
|
+
button_delete_row_title: 'Delete {{0}}',
|
|
319
|
+
/**
|
|
320
|
+
* Title on Delete Row buttons, short version (no parameter with the object title)
|
|
321
|
+
*/
|
|
322
|
+
button_delete_row_title_short: 'Delete',
|
|
323
|
+
/**
|
|
324
|
+
* Title on Copy Row buttons, short version (no parameter with the object title)
|
|
325
|
+
*/
|
|
326
|
+
button_copy_row_title_short: 'Copy',
|
|
327
|
+
/**
|
|
328
|
+
* Title on Collapse buttons
|
|
329
|
+
*/
|
|
330
|
+
button_collapse: 'Collapse',
|
|
331
|
+
/**
|
|
332
|
+
* Title on Expand buttons
|
|
333
|
+
*/
|
|
334
|
+
button_expand: 'Expand',
|
|
335
|
+
/**
|
|
336
|
+
* Title on Edit JSON buttons
|
|
337
|
+
*/
|
|
338
|
+
button_edit_json: 'Edit JSON',
|
|
339
|
+
/**
|
|
340
|
+
* Text/Title on Upload buttons
|
|
341
|
+
*/
|
|
342
|
+
button_upload: 'Upload',
|
|
343
|
+
/**
|
|
344
|
+
* Title on Flatpickr toggle buttons
|
|
345
|
+
*/
|
|
346
|
+
flatpickr_toggle_button: 'Toggle',
|
|
347
|
+
/**
|
|
348
|
+
* Title on Flatpickr clear buttons
|
|
349
|
+
*/
|
|
350
|
+
flatpickr_clear_button: 'Clear',
|
|
351
|
+
/**
|
|
352
|
+
* Choices input field placeholder text
|
|
353
|
+
*/
|
|
354
|
+
choices_placeholder_text: 'Start typing to add value',
|
|
355
|
+
/**
|
|
356
|
+
* Default title for array items
|
|
357
|
+
*/
|
|
358
|
+
default_array_item_title: 'item',
|
|
359
|
+
/**
|
|
360
|
+
* Warning when deleting a node
|
|
361
|
+
*/
|
|
362
|
+
button_delete_node_warning: 'Are you sure you want to remove this item?',
|
|
363
|
+
/**
|
|
364
|
+
* Warning when deleting a node
|
|
185
365
|
*/
|
|
186
|
-
|
|
366
|
+
table_controls: 'Controls',
|
|
187
367
|
/**
|
|
188
|
-
*
|
|
368
|
+
* Warning when paste and length exceeded maxLength
|
|
189
369
|
*/
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
* Text on Delete Last buttons
|
|
193
|
-
* @variable This key takes one variable: The title of object to delete
|
|
194
|
-
*/
|
|
195
|
-
button_delete_last: "Last {{0}}",
|
|
196
|
-
/**
|
|
197
|
-
* Title on Delete Last buttons
|
|
198
|
-
* @variable This key takes one variable: The title of object to delete
|
|
199
|
-
*/
|
|
200
|
-
button_delete_last_title: "Delete Last {{0}}",
|
|
201
|
-
/**
|
|
202
|
-
* Title on Add Row buttons
|
|
203
|
-
* @variable This key takes one variable: The title of object to add
|
|
204
|
-
*/
|
|
205
|
-
button_add_row_title: "Add {{0}}",
|
|
206
|
-
/**
|
|
207
|
-
* Title on Move Down buttons
|
|
208
|
-
*/
|
|
209
|
-
button_move_down_title: "Move down",
|
|
210
|
-
/**
|
|
211
|
-
* Title on Move Up buttons
|
|
212
|
-
*/
|
|
213
|
-
button_move_up_title: "Move up",
|
|
214
|
-
/**
|
|
215
|
-
* Title on Delete Row buttons
|
|
216
|
-
* @variable This key takes one variable: The title of object to delete
|
|
217
|
-
*/
|
|
218
|
-
button_delete_row_title: "Delete {{0}}",
|
|
219
|
-
/**
|
|
220
|
-
* Title on Delete Row buttons, short version (no parameter with the object title)
|
|
221
|
-
*/
|
|
222
|
-
button_delete_row_title_short: "Delete",
|
|
223
|
-
/**
|
|
224
|
-
* Title on Collapse buttons
|
|
225
|
-
*/
|
|
226
|
-
button_collapse: "Collapse",
|
|
227
|
-
/**
|
|
228
|
-
* Title on Expand buttons
|
|
229
|
-
*/
|
|
230
|
-
button_expand: "Expand",
|
|
231
|
-
/**
|
|
232
|
-
* Title on Flatpickr toggle buttons
|
|
233
|
-
*/
|
|
234
|
-
flatpickr_toggle_button: "Toggle",
|
|
235
|
-
/**
|
|
236
|
-
* Title on Flatpickr clear buttons
|
|
237
|
-
*/
|
|
238
|
-
flatpickr_clear_button: "Clear"
|
|
239
|
-
};
|
|
370
|
+
paste_max_length_reached: 'Pasted text exceeded maximum length of {{0}} and will be clipped.'
|
|
371
|
+
}
|
|
240
372
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
ace: {
|
|
244
|
-
theme: ''
|
|
245
|
-
},
|
|
246
|
-
SimpleMDE: {
|
|
373
|
+
/* Default per-editor options */
|
|
374
|
+
Object.entries(editors).forEach(([i, editor]) => { editors[i].options = editor.options || {} })
|
|
247
375
|
|
|
248
|
-
|
|
249
|
-
|
|
376
|
+
/* Default upload handler */
|
|
377
|
+
function upload (type, file, cbs) {
|
|
378
|
+
// eslint-disable-next-line no-console
|
|
379
|
+
console.log('Upload handler required for upload editor')
|
|
380
|
+
}
|
|
250
381
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
382
|
+
/* String translate function */
|
|
383
|
+
function translate (key, variables, schema) {
|
|
384
|
+
let schemaMessages = {}
|
|
385
|
+
|
|
386
|
+
if (schema && schema.options && schema.options.error_messages && schema.options.error_messages[defaults.language]) {
|
|
387
|
+
schemaMessages = schema.options.error_messages[defaults.language]
|
|
256
388
|
}
|
|
257
|
-
};
|
|
258
389
|
|
|
259
|
-
|
|
260
|
-
$each(JSONEditor.defaults.editors, function(i,editor) {
|
|
261
|
-
JSONEditor.defaults.editors[i].options = editor.options || {};
|
|
262
|
-
});
|
|
390
|
+
const lang = defaults.languages[defaults.language]
|
|
263
391
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
// If the schema is a simple type
|
|
272
|
-
if(!schema.type && schema.properties ) return "object";
|
|
273
|
-
});
|
|
274
|
-
// If the type is set and it's a basic type, use the primitive editor
|
|
275
|
-
JSONEditor.defaults.resolvers.unshift(function(schema) {
|
|
276
|
-
// If the schema is a simple type
|
|
277
|
-
if(typeof schema.type === "string") return schema.type;
|
|
278
|
-
});
|
|
279
|
-
// Use specialized editor for signatures
|
|
280
|
-
JSONEditor.defaults.resolvers.unshift(function(schema) {
|
|
281
|
-
if(schema.type === "string" && schema.format === "signature") return "signature";
|
|
282
|
-
});
|
|
283
|
-
// Use a specialized editor for ratings
|
|
284
|
-
JSONEditor.defaults.resolvers.unshift(function(schema) {
|
|
285
|
-
if(schema.type === "integer" && schema.format === "rating") return "rating";
|
|
286
|
-
});
|
|
287
|
-
// Use the select editor for all boolean values
|
|
288
|
-
JSONEditor.defaults.resolvers.unshift(function(schema) {
|
|
289
|
-
if(schema.type === 'boolean') {
|
|
290
|
-
// If explicitly set to 'checkbox', use that
|
|
291
|
-
if(schema.format === "checkbox" || (schema.options && schema.options.checkbox)) {
|
|
292
|
-
return "checkbox";
|
|
293
|
-
}
|
|
294
|
-
// Otherwise, default to select menu
|
|
295
|
-
return (JSONEditor.plugins.selectize.enable) ? 'selectize' : 'select';
|
|
296
|
-
}
|
|
297
|
-
});
|
|
298
|
-
// Use the multiple editor for schemas where the `type` is set to "any"
|
|
299
|
-
JSONEditor.defaults.resolvers.unshift(function(schema) {
|
|
300
|
-
// If the schema can be of any type
|
|
301
|
-
if(schema.type === "any") return "multiple";
|
|
302
|
-
});
|
|
303
|
-
// Editor for base64 encoded files
|
|
304
|
-
JSONEditor.defaults.resolvers.unshift(function(schema) {
|
|
305
|
-
// If the schema can be of any type
|
|
306
|
-
if(schema.type === "string" && schema.media && schema.media.binaryEncoding==="base64") {
|
|
307
|
-
return "base64";
|
|
308
|
-
}
|
|
309
|
-
});
|
|
310
|
-
// Editor for uploading files
|
|
311
|
-
JSONEditor.defaults.resolvers.unshift(function(schema) {
|
|
312
|
-
if(schema.type === "string" && schema.format === "url" && schema.options && schema.options.upload === true) {
|
|
313
|
-
if(window.FileReader) return "upload";
|
|
314
|
-
}
|
|
315
|
-
});
|
|
316
|
-
// Use the table editor for arrays with the format set to `table`
|
|
317
|
-
JSONEditor.defaults.resolvers.unshift(function(schema) {
|
|
318
|
-
// Type `array` with format set to `table`
|
|
319
|
-
if(schema.type === "array" && schema.format === "table") {
|
|
320
|
-
return "table";
|
|
321
|
-
}
|
|
322
|
-
});
|
|
323
|
-
// Use the `select` editor for dynamic enumSource enums
|
|
324
|
-
JSONEditor.defaults.resolvers.unshift(function(schema) {
|
|
325
|
-
if(schema.enumSource) return (JSONEditor.plugins.selectize.enable) ? 'selectize' : 'select';
|
|
326
|
-
});
|
|
327
|
-
// Use the `enum` or `select` editors for schemas with enumerated properties
|
|
328
|
-
JSONEditor.defaults.resolvers.unshift(function(schema) {
|
|
329
|
-
if(schema["enum"]) {
|
|
330
|
-
if(schema.type === "array" || schema.type === "object") {
|
|
331
|
-
return "enum";
|
|
332
|
-
}
|
|
333
|
-
else if(schema.type === "number" || schema.type === "integer" || schema.type === "string") {
|
|
334
|
-
return (JSONEditor.plugins.selectize.enable) ? 'selectize' : 'select';
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
});
|
|
338
|
-
// Specialized editors for arrays of strings
|
|
339
|
-
JSONEditor.defaults.resolvers.unshift(function(schema) {
|
|
340
|
-
if(schema.type === "array" && schema.items && !(Array.isArray(schema.items)) && schema.uniqueItems && ['string','number','integer'].indexOf(schema.items.type) >= 0) {
|
|
341
|
-
// For enumerated strings, number, or integers
|
|
342
|
-
if(schema.items.enum) {
|
|
343
|
-
return 'multiselect';
|
|
344
|
-
}
|
|
345
|
-
// For non-enumerated strings (tag editor)
|
|
346
|
-
else if(JSONEditor.plugins.selectize.enable && schema.items.type === "string") {
|
|
347
|
-
return 'arraySelectize';
|
|
392
|
+
if (!lang) throw new Error(`Unknown language ${defaults.language}`)
|
|
393
|
+
|
|
394
|
+
let string = schemaMessages[key] || lang[key] || defaults.languages[default_language][key] || key
|
|
395
|
+
|
|
396
|
+
if (variables) {
|
|
397
|
+
for (let i = 0; i < variables.length; i++) {
|
|
398
|
+
string = string.replace(new RegExp(`\\{\\{${i}}}`, 'g'), variables[i])
|
|
348
399
|
}
|
|
349
400
|
}
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
401
|
+
|
|
402
|
+
return string
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/* Text element translate function */
|
|
406
|
+
|
|
407
|
+
function translateProperty (text, variables) {
|
|
408
|
+
return text
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/* Default options when initializing JSON Editor */
|
|
412
|
+
const options = {
|
|
413
|
+
upload,
|
|
414
|
+
use_name_attributes: true,
|
|
415
|
+
prompt_before_delete: true,
|
|
416
|
+
use_default_values: true,
|
|
417
|
+
max_depth: 0,
|
|
418
|
+
button_state_mode: 1,
|
|
419
|
+
case_sensitive_property_search: true,
|
|
420
|
+
show_errors: 'interaction',
|
|
421
|
+
prompt_paste_max_length_reached: false,
|
|
422
|
+
remove_false_properties: false,
|
|
423
|
+
enforce_const: false,
|
|
424
|
+
opt_in_widget: 'checkbox'
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/* This assignment was previously in index.js but makes more sense here */
|
|
428
|
+
export const defaults = {
|
|
429
|
+
options,
|
|
430
|
+
theme,
|
|
431
|
+
template,
|
|
432
|
+
themes,
|
|
433
|
+
callbacks,
|
|
434
|
+
templates,
|
|
435
|
+
iconlibs,
|
|
436
|
+
editors,
|
|
437
|
+
languages,
|
|
438
|
+
resolvers,
|
|
439
|
+
custom_validators,
|
|
440
|
+
default_language,
|
|
441
|
+
language,
|
|
442
|
+
translate,
|
|
443
|
+
translateProperty
|
|
444
|
+
}
|