@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.
- package/.env-dist +2 -0
- package/.eslintrc +7 -0
- package/.gitattributes +1 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +9 -0
- package/.github/issue_template +25 -0
- package/.github/workflows/build.yml +58 -0
- package/.travis.yml +70 -0
- package/CHANGELOG.md +915 -0
- package/CONTRIBUTING.md +92 -0
- package/LICENSE +20 -0
- package/Makefile +26 -0
- package/README.md +1646 -0
- package/README_ADDON.md +573 -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 +139 -0
- package/config/helpers.js +10 -0
- package/config/karma.conf.js +93 -0
- package/config/readme.md +31 -0
- package/config/webpack.common.js +75 -0
- package/config/webpack.dev.js +15 -0
- package/config/webpack.nonmin.js +19 -0
- package/config/webpack.prod.js +25 -0
- package/dist/jsoneditor.js +14 -0
- package/dist/nonmin/jsoneditor.js +29097 -0
- package/dist/nonmin/jsoneditor.js.map +1 -0
- package/docs/ace_editor.html +56 -0
- package/docs/advanced.html +136 -0
- package/docs/basic.html +63 -0
- package/docs/basic_person.json +26 -0
- package/docs/choices.html +86 -0
- package/docs/cleave.html +132 -0
- package/docs/colorpicker.html +194 -0
- package/docs/css_integration.html +135 -0
- package/docs/datetime.html +305 -0
- package/docs/describedby.html +161 -0
- package/docs/enumsource.html +67 -0
- package/docs/images/categoriesDemo.png +0 -0
- package/docs/images/inheritance_tree.png +0 -0
- package/docs/images/jsoneditor.png +0 -0
- package/docs/imask.html +192 -0
- package/docs/index.html +579 -0
- package/docs/materialize_css.html +164 -0
- package/docs/meta_schema.json +705 -0
- package/docs/multiple_upload_base64.html +65 -0
- package/docs/person.json +73 -0
- package/docs/polyfills/assign.js +29 -0
- package/docs/radio.html +156 -0
- package/docs/recursive.html +170 -0
- package/docs/select2.html +99 -0
- package/docs/selectize.html +100 -0
- package/docs/signature.html +42 -0
- package/docs/starrating.html +137 -0
- package/docs/upload.html +131 -0
- package/docs/uuid.html +70 -0
- package/docs/wysiwyg.html +56 -0
- package/jasmine.json +11 -0
- package/json-editor-json-editor-2.5.3-wb13.tgz +0 -0
- package/package.json +100 -0
- package/release-notes.md +88 -0
- package/src/core.js +412 -0
- package/src/defaults.js +402 -0
- package/src/editor.js +707 -0
- package/src/editors/ace.js +89 -0
- package/src/editors/array/choices.js +103 -0
- package/src/editors/array/select2.js +110 -0
- package/src/editors/array/selectize.js +103 -0
- package/src/editors/array.css +9 -0
- package/src/editors/array.css.js +3 -0
- package/src/editors/array.js +818 -0
- package/src/editors/autocomplete.js +58 -0
- package/src/editors/base64.js +157 -0
- package/src/editors/button.js +97 -0
- package/src/editors/checkbox.js +95 -0
- package/src/editors/choices.css +3 -0
- package/src/editors/choices.css.js +3 -0
- package/src/editors/choices.js +69 -0
- package/src/editors/colorpicker.js +103 -0
- package/src/editors/datetime.js +141 -0
- package/src/editors/describedby.js +188 -0
- package/src/editors/enum.js +136 -0
- package/src/editors/hidden.js +127 -0
- package/src/editors/index.js +81 -0
- package/src/editors/info.js +20 -0
- package/src/editors/integer.js +19 -0
- package/src/editors/ip.js +36 -0
- package/src/editors/jodit.js +64 -0
- package/src/editors/multiple.js +409 -0
- package/src/editors/multiselect.js +218 -0
- package/src/editors/null.js +18 -0
- package/src/editors/number.js +51 -0
- package/src/editors/object.css +41 -0
- package/src/editors/object.css.js +3 -0
- package/src/editors/object.js +1290 -0
- package/src/editors/radio.js +111 -0
- package/src/editors/sceditor.js +72 -0
- package/src/editors/select.js +370 -0
- package/src/editors/select2.js +110 -0
- package/src/editors/selectize.js +112 -0
- package/src/editors/signature.js +113 -0
- package/src/editors/simplemde.js +100 -0
- package/src/editors/starrating.css +52 -0
- package/src/editors/starrating.css.js +3 -0
- package/src/editors/starrating.js +135 -0
- package/src/editors/stepper.js +27 -0
- package/src/editors/string.js +372 -0
- package/src/editors/table.js +516 -0
- package/src/editors/upload.js +321 -0
- package/src/editors/uuid.js +56 -0
- package/src/iconlib.js +24 -0
- package/src/iconlibs/bootstrap2.js +28 -0
- package/src/iconlibs/bootstrap3.js +28 -0
- package/src/iconlibs/fontawesome3.js +28 -0
- package/src/iconlibs/fontawesome4.js +28 -0
- package/src/iconlibs/fontawesome5.js +28 -0
- package/src/iconlibs/foundation2.js +24 -0
- package/src/iconlibs/foundation3.js +28 -0
- package/src/iconlibs/index.js +25 -0
- package/src/iconlibs/jqueryui.js +28 -0
- package/src/iconlibs/materialicons.js +49 -0
- package/src/iconlibs/openiconic.js +28 -0
- package/src/iconlibs/spectre.js +28 -0
- package/src/resolvers.js +128 -0
- package/src/schemaloader.js +408 -0
- package/src/style.css +150 -0
- package/src/style.css.js +3 -0
- package/src/templates/default.js +52 -0
- package/src/templates/ejs.js +13 -0
- package/src/templates/handlebars.js +1 -0
- package/src/templates/hogan.js +10 -0
- package/src/templates/index.js +21 -0
- package/src/templates/lodash.js +9 -0
- package/src/templates/markup.js +9 -0
- package/src/templates/mustache.js +9 -0
- package/src/templates/swig.js +1 -0
- package/src/templates/underscore.js +9 -0
- package/src/theme.js +659 -0
- package/src/themes/barebones.css +35 -0
- package/src/themes/barebones.css.js +3 -0
- package/src/themes/barebones.js +28 -0
- package/src/themes/bootstrap2.js +319 -0
- package/src/themes/bootstrap3.css +0 -0
- package/src/themes/bootstrap3.css.js +3 -0
- package/src/themes/bootstrap3.js +315 -0
- package/src/themes/bootstrap4.css +89 -0
- package/src/themes/bootstrap4.css.js +3 -0
- package/src/themes/bootstrap4.js +690 -0
- package/src/themes/bootstrap5.css.js +3 -0
- package/src/themes/foundation.js +569 -0
- package/src/themes/html.css +60 -0
- package/src/themes/html.css.js +3 -0
- package/src/themes/html.js +71 -0
- package/src/themes/index.js +28 -0
- package/src/themes/jqueryui.js +198 -0
- package/src/themes/materialize.js +426 -0
- package/src/themes/spectre.css +208 -0
- package/src/themes/spectre.css.js +3 -0
- package/src/themes/spectre.js +406 -0
- package/src/themes/tailwind.css +249 -0
- package/src/themes/tailwind.css.js +3 -0
- package/src/themes/tailwind.js +443 -0
- package/src/utilities.js +138 -0
- package/src/validator.js +877 -0
- package/src/validators/ip-validator.js +51 -0
- package/tests/Dockerfile +3 -0
- package/tests/README.md +48 -0
- package/tests/codeceptjs/codecept.json +42 -0
- package/tests/codeceptjs/constrains/if-then-else_test.js +143 -0
- package/tests/codeceptjs/core_test.js +217 -0
- package/tests/codeceptjs/editors/advanced_test.js +13 -0
- package/tests/codeceptjs/editors/array_any_of_test.js +50 -0
- package/tests/codeceptjs/editors/array_test.js +900 -0
- package/tests/codeceptjs/editors/button_test.js +35 -0
- package/tests/codeceptjs/editors/checkbox_test.js +21 -0
- package/tests/codeceptjs/editors/colorpicker_test.js +27 -0
- package/tests/codeceptjs/editors/datetime_test.js +33 -0
- package/tests/codeceptjs/editors/inheritance_test.js +11 -0
- package/tests/codeceptjs/editors/integer_test.js +84 -0
- package/tests/codeceptjs/editors/issues/issue-gh-812_test.js +32 -0
- package/tests/codeceptjs/editors/jodit_test.js +24 -0
- package/tests/codeceptjs/editors/multiselect_test.js +8 -0
- package/tests/codeceptjs/editors/number_test.js +82 -0
- package/tests/codeceptjs/editors/object_test.js +204 -0
- 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/radio_test.js +10 -0
- package/tests/codeceptjs/editors/rating_test.js +13 -0
- package/tests/codeceptjs/editors/select_test.js +22 -0
- package/tests/codeceptjs/editors/stepper_test.js +27 -0
- package/tests/codeceptjs/editors/string_test.js +118 -0
- package/tests/codeceptjs/editors/table-confirm-delete_test.js +67 -0
- package/tests/codeceptjs/editors/tabs_test.js +14 -0
- package/tests/codeceptjs/editors/uuid_test.js +21 -0
- package/tests/codeceptjs/editors/validation_test.js +14 -0
- package/tests/codeceptjs/meta-schema_test.js +17 -0
- package/tests/codeceptjs/schemaloader_test.js +13 -0
- package/tests/codeceptjs/steps.d.ts +13 -0
- package/tests/codeceptjs/steps_file.js +12 -0
- package/tests/codeceptjs/themes_test.js +519 -0
- package/tests/docker-compose.yml +34 -0
- package/tests/fixtures/basic_person.json +26 -0
- package/tests/fixtures/nested_object.json +26 -0
- package/tests/fixtures/person.json +55 -0
- package/tests/fixtures/recursive.json +8 -0
- package/tests/fixtures/some_types.json +32 -0
- package/tests/fixtures/string.json +3 -0
- package/tests/fixtures/validation.json +1140 -0
- package/tests/pages/_demo.html +475 -0
- package/tests/pages/advanced.html +137 -0
- package/tests/pages/anyof.html +80 -0
- package/tests/pages/array-anyof.html +142 -0
- package/tests/pages/array-checkboxes.html +41 -0
- package/tests/pages/array-choices.html +45 -0
- package/tests/pages/array-integers.html +37 -0
- package/tests/pages/array-move-events.html +61 -0
- package/tests/pages/array-multiselects.html +42 -0
- package/tests/pages/array-nested-arrays.html +40 -0
- package/tests/pages/array-numbers.html +37 -0
- package/tests/pages/array-objects.html +42 -0
- package/tests/pages/array-ratings.html +40 -0
- package/tests/pages/array-selectize.html +51 -0
- package/tests/pages/array-selects.html +36 -0
- package/tests/pages/array-strings.html +36 -0
- package/tests/pages/array.html +42 -0
- package/tests/pages/assets/pages.css +130 -0
- package/tests/pages/button-callbacks.html +77 -0
- package/tests/pages/checkbox-labels.html +114 -0
- package/tests/pages/colorpicker-no-3rd-party.html +43 -0
- package/tests/pages/colorpicker-use-vanilla-picker.html +50 -0
- package/tests/pages/core.html +118 -0
- package/tests/pages/datetime.html +76 -0
- package/tests/pages/form-name.html +108 -0
- package/tests/pages/grid-strict.html +311 -0
- package/tests/pages/grid.html +284 -0
- package/tests/pages/if-then-else-allOf.html +117 -0
- package/tests/pages/inheritance.html +76 -0
- package/tests/pages/integer.html +68 -0
- package/tests/pages/issues/_template.html +50 -0
- package/tests/pages/issues/issue-gh-812.html +110 -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/meta_schema.json +705 -0
- package/tests/pages/number.html +89 -0
- package/tests/pages/object-no-additional-properties.html +65 -0
- package/tests/pages/object-no-duplicated-id.html +68 -0
- package/tests/pages/object-required-properties.html +236 -0
- package/tests/pages/object-with-dependencies-array.html +46 -0
- package/tests/pages/object-with-dependencies.html +60 -0
- package/tests/pages/object.html +79 -0
- package/tests/pages/oneof.html +103 -0
- package/tests/pages/option-no_default_values.html +58 -0
- package/tests/pages/programmatic-changes.html +120 -0
- package/tests/pages/read-only.html +105 -0
- package/tests/pages/select.html +41 -0
- package/tests/pages/stepper.html +59 -0
- package/tests/pages/string-ace-editor.html +52 -0
- package/tests/pages/string-cleave.html +46 -0
- package/tests/pages/string-custom-attributes.html +62 -0
- package/tests/pages/string-formats.html +52 -0
- package/tests/pages/string-formats2.html +57 -0
- package/tests/pages/string-jodit-editor.html +49 -0
- package/tests/pages/string-sceditor.html +62 -0
- package/tests/pages/table-move-events.html +56 -0
- package/tests/pages/table.html +46 -0
- package/tests/pages/tabs.html +131 -0
- package/tests/pages/themes.html +527 -0
- package/tests/pages/translate-property.html +247 -0
- package/tests/pages/urn.html +93 -0
- package/tests/pages/uuid.html +72 -0
- package/tests/pages/validation.html +99 -0
- package/tests/unit/.eslintrc +8 -0
- package/tests/unit/core.spec.js +309 -0
- package/tests/unit/defaults.spec.js +40 -0
- package/tests/unit/editor.spec.js +160 -0
- package/tests/unit/editors/array.spec.js +86 -0
- package/tests/unit/editors/object.spec.js +79 -0
- package/tests/unit/editors/table.spec.js +91 -0
- package/tests/unit/readme.md +35 -0
- package/tests/unit/schemaloader.spec.js +498 -0
- package/tests/unit/validator.spec.js +94 -0
- package/tests/unit/validators/ip-validator.spec.js +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/collection-weak.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/number-parse-float.js","webpack:///./node_modules/core-js/internals/number-parse-int.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/modules/es.array.every.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/modules/es.array.is-array.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/modules/es.array.some.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/modules/es.date.now.js","webpack:///./node_modules/core-js/modules/es.date.to-string.js","webpack:///./node_modules/core-js/modules/es.function.bind.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/modules/es.object.create.js","webpack:///./node_modules/core-js/modules/es.object.define-properties.js","webpack:///./node_modules/core-js/modules/es.object.define-property.js","webpack:///./node_modules/core-js/modules/es.object.entries.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/core-js/modules/es.parse-float.js","webpack:///./node_modules/core-js/modules/es.parse-int.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/modules/es.reflect.get.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/modules/es.weak-map.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/modules/web.timers.js","webpack:///./src/themes/bootstrap3.css","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/core.js","webpack:///./src/defaults.js","webpack:///./src/editor.js","webpack:///./src/editors/ace.js","webpack:///./src/editors/array.css.js","webpack:///./src/editors/array.js","webpack:///./src/editors/array/choices.js","webpack:///./src/editors/array/select2.js","webpack:///./src/editors/array/selectize.js","webpack:///./src/editors/autocomplete.js","webpack:///./src/editors/base64.js","webpack:///./src/editors/button.js","webpack:///./src/editors/checkbox.js","webpack:///./src/editors/choices.css.js","webpack:///./src/editors/choices.js","webpack:///./src/editors/colorpicker.js","webpack:///./src/editors/datetime.js","webpack:///./src/editors/describedby.js","webpack:///./src/editors/enum.js","webpack:///./src/editors/hidden.js","webpack:///./src/editors/index.js","webpack:///./src/editors/info.js","webpack:///./src/editors/integer.js","webpack:///./src/editors/ip.js","webpack:///./src/editors/jodit.js","webpack:///./src/editors/multiple.js","webpack:///./src/editors/multiselect.js","webpack:///./src/editors/null.js","webpack:///./src/editors/number.js","webpack:///./src/editors/object.css.js","webpack:///./src/editors/object.js","webpack:///./src/editors/radio.js","webpack:///./src/editors/sceditor.js","webpack:///./src/editors/select.js","webpack:///./src/editors/select2.js","webpack:///./src/editors/selectize.js","webpack:///./src/editors/signature.js","webpack:///./src/editors/simplemde.js","webpack:///./src/editors/starrating.css.js","webpack:///./src/editors/starrating.js","webpack:///./src/editors/stepper.js","webpack:///./src/editors/string.js","webpack:///./src/editors/table.js","webpack:///./src/editors/upload.js","webpack:///./src/editors/uuid.js","webpack:///./src/iconlib.js","webpack:///./src/iconlibs/bootstrap3.js","webpack:///./src/iconlibs/fontawesome3.js","webpack:///./src/iconlibs/fontawesome4.js","webpack:///./src/iconlibs/fontawesome5.js","webpack:///./src/iconlibs/index.js","webpack:///./src/iconlibs/jqueryui.js","webpack:///./src/iconlibs/openiconic.js","webpack:///./src/iconlibs/spectre.js","webpack:///./src/resolvers.js","webpack:///./src/schemaloader.js","webpack:///./src/style.css.js","webpack:///./src/templates/default.js","webpack:///./src/templates/ejs.js","webpack:///./src/templates/handlebars.js","webpack:///./src/templates/hogan.js","webpack:///./src/templates/index.js","webpack:///./src/templates/lodash.js","webpack:///./src/templates/markup.js","webpack:///./src/templates/mustache.js","webpack:///./src/templates/swig.js","webpack:///./src/templates/underscore.js","webpack:///./src/theme.js","webpack:///./src/themes/barebones.css.js","webpack:///./src/themes/barebones.js","webpack:///./src/themes/bootstrap3.css?a64c","webpack:///./src/themes/bootstrap3.js","webpack:///./src/themes/bootstrap4.css.js","webpack:///./src/themes/bootstrap4.js","webpack:///./src/themes/html.css.js","webpack:///./src/themes/html.js","webpack:///./src/themes/index.js","webpack:///./src/themes/jqueryui.js","webpack:///./src/themes/spectre.css.js","webpack:///./src/themes/spectre.js","webpack:///./src/themes/tailwind.css.js","webpack:///./src/themes/tailwind.js","webpack:///./src/utilities.js","webpack:///./src/validator.js","webpack:///./src/validators/ip-validator.js"],"names":["JSONEditor","element","options","Element","Error","extend","defaults","ready","copyClipboard","schema","template","translate","translateProperty","uuid","__data","themeName","theme","themeClass","themes","setAttribute","rules","styleRules","getEditorsRules","addRules","shadowRoot","addNewStyleRulesToShadowRoot","addNewStyleRules","disable_theme_rules","getShadowParent","iconClass","iconlibs","iconlib","root_container","getContainer","appendChild","fetchUrl","document","location","origin","pathname","toString","loader","SchemaLoader","expandSchema","fileBase","expandRefs","refs","load","validatorOptions","custom_validators","validator","Validator","editorClass","getEditorClass","root","createEditor","jsoneditor","required","container","preBuild","build","postBuild","hasOwnProperty","setValue","startval","validation_results","validate","getValue","showValidationErrors","window","requestAnimationFrame","trigger","value","arguments","length","destroyed","destroy","innerHTML","removeAttribute","event","callback","callbacks","push","newcallbacks","i","editor","apply","option","show_errors","onChange","extendRule","Object","values","editors","reduce","classname","resolvers","find","resolver","JSON","stringify","depthCounter","firing_change","name","engine","templates","compile","el","key","hasAttribute","getAttribute","path","watchlist","newlist","isEnabled","enable","disable","styleTag","querySelector","createElement","createTextNode","head","sheet","styleSheet","qualifier","nodeName","toLowerCase","cssRules","deleteRule","keys","forEach","selector","sel","insertRule","decodeURIComponent","addRule","cssText","CSSStyleSheet","replaceSync","adoptedStyleSheets","AbstractEditor","AbstractTheme","AbstractIconLib","assign","languages","default_language","language","en","error_notset","error_notempty","error_enum","error_const","error_anyOf","error_oneOf","error_not","error_type_union","error_type","error_disallow_union","error_disallow","error_multipleOf","error_maximum_excl","error_maximum_incl","error_minimum_excl","error_minimum_incl","error_maxLength","error_minLength","error_pattern","error_additionalItems","error_maxItems","error_minItems","error_uniqueItems","error_maxProperties","error_minProperties","error_required","error_additional_properties","error_property_names_exceeds_maxlength","error_property_names_enum_mismatch","error_property_names_const_mismatch","error_property_names_pattern_mismatch","error_property_names_false","error_property_names_maxlength","error_property_names_enum","error_property_names_pattern","error_property_names_unsupported","error_dependency","error_date","error_time","error_datetime_local","error_invalid_epoch","error_ipv4","error_ipv6","error_hostname","button_save","button_copy","button_cancel","button_add","button_delete_all","button_delete_all_title","button_delete_last","button_delete_last_title","button_add_row_title","button_move_down_title","button_move_up_title","edit_properties","property_name_placeholder","properties","duplicate_property_error","button_object_properties","button_copy_row_title","button_delete_row_title","button_delete_row_title_short","button_copy_row_title_short","button_collapse","button_expand","button_edit_json","button_upload","flatpickr_toggle_button","flatpickr_clear_button","choices_placeholder_text","default_array_item_title","button_delete_node_warning","entries","upload","type","file","cbs","console","log","variables","lang","string","replace","RegExp","text","prompt_before_delete","use_default_values","max_depth","template_engine","original_schema","active","formname","form_name_root","id","parent","undefined","split","slice","join","link_watchers","watchLoop","setContainer","registerDependencies","notifyWatchers","onChildEditorChange","bubble","notify","watch_listener","change","registerEditor","unregisterEditor","optInCheckbox","checked","isRequired","dependenciesFulfilled","deps","dependencies","dependency","watch","evaluateDependencies","wrapper","control","previousStatus","choices","checkDependency","displayMode","hidden","tagName","childNodes","child","style","display","getEditor","Array","isArray","some","choice","header","classList","add","addEventListener","isActive","deactivate","activate","show_opt_in","insertBefore","firstChild","setupWatchListeners","addLinks","getDefault","updateHeaderText","register","onWatchedFieldChange","watched","vars","watched_values","refreshWatchedFieldValues","pathParts","first","adjustedPath","myPath","concat","closest","unshift","shift","startsWith","headerTemplate","header_template","compileTemplate","no_link_holder","link_holder","getLinksHolder","description","parentNode","links","addLink","getLink","icon","title","args","btnClass","getIcon","btn","getButton","button","setButtonText","link","data","holder","mime","mediaType","href","relTemplate","rel","download","getBlockLinkHolder","image","createImageLink","url","includes","getBlockLink","media","createMediaLink","textContent","changed","val","self","headerText","getHeaderText","children","nodeType","nodeValue","cleanText","DOMPurify","sanitize","titleOnly","header_text","getTitle","txt","tmp","innerText","getWatchedFieldValues","i0","i1","unregister","unwatch","removeChild","oneOf","isDefaultRequired","disabled","required_by_default","arr","disp","used","format","descripton","inc","inputAttribute","inputAttributes","protectedAttributes","input","scope","expandCallbacks","bind","errors","AceEditor","initial","fromTemplate","res","ace_editor_instance","session","getSelection","clearSelection","resize","input_type","ace","mode","selectionStyle","minLines","maxLines","ace_container","width","position","edit","readOnly","readonly","setReadOnly","on","refreshValue","is_dirty","afterInputReady","always_disabled","alwaysDisabled","StringEditor","ArrayEditor","confirm","rows","row","info","getItemInfo","tabs_holder","Math","max","min","setAvailability","add_row_button","remove_all_rows_button","delete_last_row_button","copy_button","delete_button","moveup_button","movedown_button","row_cache","hide_delete_buttons","disable_array_delete","hide_delete_all_rows_buttons","disable_array_delete_all_rows","hide_delete_last_row_buttons","disable_array_delete_last_row","hide_move_buttons","disable_array_reorder","hide_add_button","disable_array_add","show_copy_button","enable_array_copy","array_controls_top","compact","getHeader","getPathDepth","title_controls","getHeaderButtonHolder","wb","disable_title","infoText","infoButton","getInfoButton","getDescription","error_holder","controls","getTopTabHolder","getValidId","getItemTitle","row_holder","getTopTabContentHolder","active_tab","getTabHolder","getTabContentHolder","disable_panel","panel","getIndentedPanel","getButtonHolder","addControls","refreshTabs","item_title","items","additionalItems","cachedItems","singleItemSchema","getItemSchema","item_info","stringified","child_editors","itemInfo","cachedEditorClass","getTopTabContent","getTabContent","getChildEditorHolder","disable_array_item_panel","ret","array_controls","elem","empty","checkParent","hard","tab","destroyRow","maxItems","Infinity","refreshHeaders","tab_text","markTabActive","markTabInactive","minItems","getMax","ensureArraySize","serialized","addRow","j","newActiveTab","controlsNeeded","setVisibility","display1","display2","e","force","oldi","map","collapsed","setupButtons","getElementEditor","getTopTab","addTopTab","getTab","addTab","preventDefault","stopPropagation","controlsHolder","_createDeleteButton","_createCopyButton","_createMoveUpButton","_createMoveDownButton","askConfirmation","currentTarget","newval","filter","toggle_button","_createToggleButton","disable_collapse","_createAddRowButton","_createDeleteLastRowButton","_createRemoveAllRowsButton","tabs","rowHolderDisplay","controlsDisplay","pop","myErrors","otherErrors","error","getErrorMessage","message","ArrayChoicesEditor","choices_instance","updateValue","removeActiveItems","setChoiceByValue","Choices","removeItems","removeItemButton","addItems","editItems","duplicateItemsAllowed","newEnumAllowed","removeEventListener","multiselectChangeHandler","newValue","select_values","addNewOption","sanitized","option_keys","option_titles","setChoices","label","MultiSelectEditor","ArraySelect2Editor","select2_instance","select2v4","select2","jQuery","fn","tags","selectChangeHandler","optionTag","Option","prop","ArraySelectizeEditor","selectize_instance","selectize","plugins","delimiter","createOnBlur","create","addOption","unlock","lock","AutocompleteEditor","Autocomplete","autocomplete_wrapper","nextSibling","autocomplete_dropdown","autocomplete_instance","search","jseditor","baseClass","autocomplete","Base64Editor","frMultiple","count","current_item_index","target","result","tempObject","splice","total","arrayEditor","getFormInputLabel","getFormInputField","FileReader","uploader","multiple","files","parseInt","setFileReaderListener","readAsDataURL","fr","onload","evt","refreshPreview","preview","getFormInputDescription","getFormControl","last_preview","match","floor","substr","img","maxWidth","maxHeight","src","ButtonEditor","validated","align","action","alert","getFormButton","setInputAttributes","getFormButtonHolder","changeHandler","off","CheckboxEditor","ceil","table_row","getCheckboxLabel","htmlFor","getCheckbox","previous_error_setting","addMessage","messages","controlgroup","addInputError","removeInputError","ChoicesEditor","typecast","enum_values","enum_options","indexOf","choicesList","v","enum_display","SelectEditor","ColorEditor","Picker","padding","picker_instance","domElement","setColor","createPicker","pointerEvents","buttons","querySelectorAll","alpha","color","popup","colorpicker","updateHandler","settings","editorFormat","isAlpha","hex","onDone","DatetimeEditor","flatpickr","enableTime","noCalendar","wrap","showToggleButton","toggleButton","showClearButton","clearButton","buttonContainer","getInputGroup","inline","inlineHideInput","Date","getTime","setDate","dateObj","year","getFullYear","month","zeroPad","getMonth","day","getDate","hour","getHours","getMinutes","sec","getSeconds","date","time","dateValue","DescribedByEditor","currentEditor","getNumColumns","ref","buildChildEditor","editor_holder","baseSchema","switchEditor","EnumEditor","enum_titles","selected","select_options","html_values","getHTML","switcher","getSwitcher","display_area","hide_display","each","obj","from","html","HiddenEditor","adjust_height","default_format","array","arrayChoices","arraySelect2","arraySelectize","base64","checkbox","datetime","describedBy","integer","ip","jodit","multiselect","NullEditor","number","object","radio","sceditor","select","signature","simplemde","starrating","stepper","table","InfoEditor","IntegerEditor","isInteger","NumberEditor","IpEditor","cleave","delimiters","blocks","uppercase","numericOnly","JoditEditor","jodit_instance","setEditorValue","Jodit","height","events","getEditorValue","destruct","MultipleEditor","lastType","currentValue","keep_only_existing_values","overwriteExistingProperties","keep_values","refreshHeaderText","types","switcher_options","validators","keep_oneof_values","anyOf","ifSchema","parse","thenSchema","elseSchema","then","mergeDeep","disallow","allowedTypes","display_text","getDisplayText","getSwitcherOptions","switchIf","displayText","getIfType","_validateSchema","prevType","fitTestVal","extra","validVal","fitTestResult","fitTest","finalI","typeChanged","checkPart","check","filterError","newErrors","newError","longestText","itemsSchema","t","inputs","getMultiCheckboxHolder","getSelectInput","setSelectOptions","size","item","regexPath","escapeRegExp","minimum","exclusiveMinimum","maximum","exclusiveMaximum","step","isNumber","parseFloat","ObjectEditor","depth","currentDepth","maxwidth","editjson_control","addproperty_button","hideEditJSON","row_container","property_order","sort","a","b","ordera","propertyOrder","orderb","isCategoriesFormat","rowIndex","property_removed","grid_columns","offset","grid_offset","gridBreak","grid_break","offsetHeight","column","layout","getGridRow","setGridColumnSize","found","minh","maxh","biggest","newWidth","containerSimple","newTabsHolder","newTabPanesContainer","aPane","isObjOrArray","gridRow","basicPane","childElementCount","insertBasicTopTab","rowPane","tabPanesContainer","parentTabsHolder","firstTab","getFirstTab","matched","patternProperties","regex","test","allOf","additionalProperties","cached_editors","object_layout","minwidth","defaultProperties","display_required_only","k","isRequiredObject","addObjectProperty","idx","basicCategoryTitle","tabHolder","rowsLen","basicTab","basicTabPresent","basicTabRefreshed","getTableCell","setOptInCheckbox","input_width","editjson_holder","getModal","editjson_textarea","getTextareaInput","editjson_save","saveJSON","editjson_copy","copyJSON","editjson_cancel","addproperty_holder","addproperty_list","addproperty_add","addproperty_input","previousSibling","spacer","clear","onOutsideModalClick","getGridContainer","getGridColumn","singleRowContainer","row_container_basic","collapse_control","toggleEditJSON","disable_edit_json","toggleAddProperty","refreshAddProperties","deactivateNonRequiredProperties","layoutEditors","hideAddProperty","left","offsetLeft","top","offsetTop","editing_json","ta","body","execCommand","json","showEditJSON","property","labelText","paddingBottom","marginBottom","paddingTop","marginTop","insertPropertyControlUsingPropertyOrder","removeObjectProperty","addproperty_checkboxes","adding_property","showAddProperty","acc","prebuildOnly","canHaveAdditionalProperties","getPropertySchema","maxDepth","getSchemaOnMaxDepth","composedPath","contains","no_additional_properties","isEmpty","constructor","remove_empty_properties","disable_properties","canAdd","numProps","showModal","maxProperties","addPropertyCheckbox","minProperties","show_editor","errorcount","addTableRowError","removeTableRowError","RadioEditor","radioContainer","radioGroup","radioInputEventhandler","getFormRadio","radioLabel","getFormRadioLabel","getFormRadioControl","radioContainerWrapper","dataset","containerFor","remove","ScEditor","sceditor_instance","emoticonsEnabled","instance","blur","updateOriginal","haveToUseDefaultValue","enumSource","enumValue","source","onInputChange","newVal","selectOptions","selectTitles","prototype","newItems","itemTitles","itemValues","order","prevValue","enum_source_value_auto_select","Select2Editor","SelectizeEditor","addItem","refreshOptions","clearOptions","SignatureEditor","SignaturePad","signatureContainer","canvas","signaturePad","onEnd","toDataURL","strokeEnd","offsetWidth","canvas_height","fromDataURL","SimplemdeEditor","simplemde_instance","SimpleMDE","codemirror","autorefresh","startListening","state","autoRefresh","delay","toTextArea","cm","stopListening","lastWrapHeight","clientHeight","refresh","timeout","setTimeout","hurry","clearTimeout","StarratingEditor","ratingContainer","radioInput","displayValue","displayRating","ratingsContainerWrapper","StepperEditor","stepperButtons","getStepperButtons","stepperDown","stepperUp","shouldBeUnset","setValueToInputField","output","maxLength","minLength","num","multipleOf","getRangeInput","pattern","input_height","expand_height","ch","scrollHeight","getRangeControl","getRangeOutput","cleave_instance","Cleave","imask","imask_instance","IMask","ajustIMaskOptions","regExMatch","getGlobalPropertyFromString","strValue","arrParts","hasValueSet","returnUnmasked","unmaskedValue","setupCleave","setupImask","TableEditor","itemSchema","item_default","item_has_child_editors","tableContainer","getTableContainer","getTable","thead","getTableHead","header_row","getTableRow","getTableBody","ce","getChildEditors","th","getTableHeaderCell","controls_header_cell","ignore","schemaCopy","controls_cell","table_controls","margin","getItemDefault","numrowsChanged","refreshRowButtons","needRowButtons","need","display3","UploadEditor","auto_upload","hide_input","enable_drag_drop","drop_zone_text","drop_zone_top","alt_drop_zone","mime_type","max_upload_size","upload_handler","clickHandler","dispatchEvent","MouseEvent","view","bubbles","cancelable","browseButton","fileDisplay","fileUploadGroup","altDropZone","dropZone","getDropZone","uploadHandler","dataTransfer","isValidMimeType","preview_value","dragHandler","validType","validZone","dropEffect","ev","inputNode","elements","onerror","mimeType","formattedSize","toFixed","uploadButton","getProgressBar","progressBar","success","failure","updateProgress","progress","updateProgressBar","updateProgressBarUnknown","getUploadPreview","mimeTypesList","UuidEditor","getUuid","testUuid","d","performance","now","c","r","random","defaultMapping","collapse","expand","cancel","save","moveup","movedown","iconPrefix","mapping","icon_prefix","iconclass","getIconClass","subtract","moveright","moveleft","copy","calendar","bootstrap3Iconlib","fontawesome3Iconlib","fontawesome4Iconlib","fontawesome5Iconlib","bootstrap3","fontawesome3","fontawesome4","fontawesome5","jqueryui","jqueryuiIconlib","openiconic","openiconicIconlib","spectre","spectreIconlib","defaultResolver","primitive","boolean","any","binaryEncoding","enumeratedProperties","arraysOfStrings","uniqueItems","ifThenElse","starratings","describeBy","autoComplete","markdown","xhtml","aceModes","colorPicker","refs_with_info","refs_prefix","refs_counter","_subSchema1","_expandSubSchema","not","_subSchema2","extended","_extended","extendSchemas","s","_loadExternalRefs","_getDefinitions","_getFileBase","recurseAllOf","$ref","_schema","refObj","_getRef","warn","func","call","subschema","m","definitions","mergeRefs","newrefs","refCounter","_getExternalRefs","$id","ajaxBase","_getFileBaseFromFileLocation","fileLocationString","pathItems","uri","done","waiting","_isUniformResourceName","urnResolver","urn_resolver","urn","response","responseText","ajax","_joinUrl","XMLHttpRequest","overrideMimeType","open","ajaxCredentials","withCredentials","onreadystatechange","readyState","status","send","obj1","obj2","isRequiredOrDefaultProperties","merge","p","mergeType","n","defaultTemplate","matches","l","replacements","getReplacement","trim","cur","ejsTemplate","EJS","compiled","context","render","handlebarsTemplate","Handlebars","hoganTemplate","Hogan","ejs","handlebars","hogan","lodash","lodashTemplate","markup","markupTemplate","mustache","mustacheTemplate","swig","swigTemplate","underscore","underscoreTemplate","_","Mark","up","Mustache","matchKey","documentElement","tooltip","onmouseover","visibility","onmouseleave","req","pathDepth","marginRight","attributes","getElementsByTagName","titles","div","minusBtn","plusBtn","initialize","Number","stepDown","stepUp","startvalue","updateOutput","buttonAlign","remove_button_labels","spanEl","propertyName","pName","styles","span","tabId","getTopIndentedPanel","applyStyles","opacity","background","start","barebonesTheme","errmsg","group","borderColor","bootstrap3Theme","wm","WeakMap","has","get","marginLeft","set","li","bar","percentage","inputGroupContainer","inputGroup","input_size","custom_forms","object_indent","object_background","object_text","table_border","table_zebrastyle","bootstrap4Theme","prepend","append","unique","ctrl","liel","ael","htmlTheme","bootstrap4","jqueryuiTheme","barebones","spectreTheme","tailwind","tailwindTheme","fontWeight","fontSize","lineHeight","fontStyle","queuedInputErrorText","label_bold","align_bottom","object_border","popover","card","cardbody","localName","selectized","single","object_panel_default","table_hdiv","enable_compact","getFormCheckboxControl","isPlainObject","deepCopy","destination","createEvent","initEvent","node","NUMBER_REGEXP","isNaN","isFinite","INTEGER_REGEXP","generateUUID","isObject","sources","_validateSubSchema","valid","oneofErrors","o","_checkType","invalid","_validateNumberSubSchema","_validateNumberSubSchemaMultipleDivisible","divisibleBy","math","bignumber","Decimal","_validateStringSubSchema","patternmessage","_validateArraySubSchema","seen","_validateObjectSubSchema","validatedProperties","_validateObjectSubSchema2","propertyNames","msg","truthy","every","dep","givenSchema","weight","fit","_getSchema","_validateV3Required","_validateCustomValidator","err","_validateByValueType","_expandSchemaLink","_validateDateTimeSubSchema","_validateUUIDSchema","_removeDuplicateErrors","divisor","mod","equals","_validateInteger","abs","dateFormat","_validateFlatPicker","compareValue","config","seperator","l10n","rangeSeparator","selectedDates","formatDate","parseDate","errorDateFormat","validatorRx","ipValidator","validateIpv4","parts","part","validateIpv6","validateHostname"],"mappings":"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,GAAG,gBAAgB;AACnB;AACA;;;;;;;;;;;;ACrCA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;ACJA,4BAA4B,mBAAO,CAAC,qGAAoC;AACxE,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;AACA;AACA,gDAAgD,kBAAkB,EAAE;;AAEpE;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzBa;AACb,kBAAkB,mBAAO,CAAC,mFAA2B;AACrD,kBAAkB,mBAAO,CAAC,6FAAgC;AAC1D,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,2BAA2B,mBAAO,CAAC,yFAA8B;AACjE,WAAW,mBAAO,CAAC,iEAAkB;AACrC,0BAA0B,mBAAO,CAAC,uFAA6B;;AAE/D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,iEAAiE,iCAAiC;AAClG,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;;;;;;;;;;;;ACxHa;AA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AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,mBAAmB;AACnC;AACA;AACA,yCAAyC,kCAAkC;AAC3E;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,SAAS,qFAAqF;AACnG;;AAEA;AACA;;;;;;;;;;;;ACzFA,WAAW,mBAAO,CAAC,mEAAmB;AACtC,UAAU,mBAAO,CAAC,iEAAkB;AACpC,mCAAmC,mBAAO,CAAC,6GAAwC;AACnF,qBAAqB,mBAAO,CAAC,uGAAqC;;AAElE;AACA,+CAA+C;AAC/C;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACVA,YAAY,mBAAO,CAAC,qEAAoB;;AAExC;AACA;AACA;AACA,iCAAiC,MAAM,mBAAmB,UAAU,EAAE,EAAE;AACxE,CAAC;;;;;;;;;;;;ACND,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClCA,cAAc,mBAAO,CAAC,iFAA0B;AAChD,aAAa,mBAAO,CAAC,uEAAqB;;AAE1C;;;;;;;;;;;;ACHA,iBAAiB,mBAAO,CAAC,mFAA2B;;AAEpD;;;;;;;;;;;;ACFA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,gBAAgB,mBAAO,CAAC,6FAAgC;;AAExD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,+BAA+B,mBAAO,CAAC,+HAAiD;AACxF,kCAAkC,mBAAO,CAAC,uHAA6C;AACvF,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,gCAAgC,mBAAO,CAAC,iHAA0C;AAClF,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,mDAAmD;AACnD,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrDA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;ACNa;AACb;AACA,mBAAO,CAAC,mFAA2B;AACnC,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,YAAY,mBAAO,CAAC,qEAAoB;AACxC,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,kCAAkC,mBAAO,CAAC,uHAA6C;;AAEvF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4CAA4C;AACrE;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;AACA;;AAEA,2BAA2B,mBAAmB,aAAa;;AAE3D;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,4CAA4C;AAC5E;AACA;AACA,2BAA2B,uCAAuC;AAClE;AACA;;AAEA;AACA;;;;;;;;;;;;AChIA,YAAY,mBAAO,CAAC,qEAAoB;;AAExC;AACA;AACA,wDAAwD;AACxD,CAAC;;;;;;;;;;;;ACLD,gBAAgB,mBAAO,CAAC,+EAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvBa;AACb,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;AACA;;AAEA;AACA;AACA,8BAA8B,gBAAgB;AAC9C;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1BA,WAAW,mBAAO,CAAC,mEAAmB;AACtC,aAAa,mBAAO,CAAC,uEAAqB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACVA,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,gBAAgB,mBAAO,CAAC,6EAAwB;AAChD,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACVA,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;AACA;AACA,yCAAyC,IAAI;AAC7C,kDAAkD,IAAI;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACvCA;AACA;AACA;;AAEA;AACA;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;AAE/C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACVA,aAAa,mBAAO,CAAC,uEAAqB;;AAE1C;;;;;;;;;;;;ACFA,eAAe,mBAAO,CAAC,2EAAuB;;AAE9C;AACA;AACA;AACA;;;;;;;;;;;;ACLA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,kCAAkC,mBAAO,CAAC,uHAA6C;AACvF,UAAU,mBAAO,CAAC,iEAAkB;AACpC,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,oBAAoB,mBAAO,CAAC,uFAA6B;AACzD,0BAA0B,mBAAO,CAAC,uFAA6B;;AAE/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;;;;;ACvCD,cAAc,mBAAO,CAAC,sEAAe;AACrC,iBAAiB,mBAAO,CAAC,sEAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;ACpBa;AACb;AACA;AACA,kBAAkB,mBAAO,CAAC,wEAAgB;AAC1C,oBAAoB,mBAAO,CAAC,0FAAyB;AACrD,aAAa,mBAAO,CAAC,4DAAU;;AAE/B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACtFa;AACb,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfa;;AAEb,YAAY,mBAAO,CAAC,0DAAS;;AAE7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACtBD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACLA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,kCAAkC,mBAAO,CAAC,uHAA6C;;AAEvF;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;;;;;;;;;;;;ACTa;AACb,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,2BAA2B,mBAAO,CAAC,uGAAqC;AACxE,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,KAAK;AACL;AACA;;;;;;;;;;;;AClBA,qBAAqB,mBAAO,CAAC,uGAAqC;AAClE,UAAU,mBAAO,CAAC,iEAAkB;AACpC,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;;AAEA;AACA;AACA,uCAAuC,iCAAiC;AACxE;AACA;;;;;;;;;;;;ACVA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,UAAU,mBAAO,CAAC,iEAAkB;;AAEpC;;AAEA;AACA;AACA;;;;;;;;;;;;ACPA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,gBAAgB,mBAAO,CAAC,+EAAyB;;AAEjD;AACA,kDAAkD;;AAElD;;;;;;;;;;;;ACNA,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,YAAY,mBAAO,CAAC,mFAA2B;;AAE/C;AACA,qEAAqE;AACrE,CAAC;AACD;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACTD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACZA,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,6BAA6B,mBAAO,CAAC,2GAAuC;;AAE5E,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1Ba;AACb,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,6BAA6B,mBAAO,CAAC,2GAAuC;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM;AACd;AACA;;;;;;;;;;;;ACbA,YAAY,mBAAO,CAAC,qEAAoB;AACxC,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACXA,6BAA6B,mBAAO,CAAC,2GAAuC;AAC5E,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;AACA;AACA;;AAEA,sBAAsB,gDAAgD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3BA,cAAc,mBAAO,CAAC,iFAA0B;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTA,gBAAgB,mBAAO,CAAC,+EAAyB;;AAEjD;AACA;;AAEA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;;;;;;;;;;;;ACXA;AACA,oBAAoB,mBAAO,CAAC,uFAA6B;AACzD,6BAA6B,mBAAO,CAAC,2GAAuC;;AAE5E;AACA;AACA;;;;;;;;;;;;ACNA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA,gBAAgB,mBAAO,CAAC,+EAAyB;;AAEjD;;AAEA;AACA;AACA;AACA,uEAAuE;AACvE;;;;;;;;;;;;ACRA,6BAA6B,mBAAO,CAAC,2GAAuC;;AAE5E;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACbA,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;AACA;;AAEA;;AAEA;;;;;;;;;;;;ACPA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACLA;AACA,oBAAoB,mBAAO,CAAC,qFAA4B;;AAExD;AACA;AACA;;;;;;;;;;;;ACLA,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;;;;;;;;;;;;ACFA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,UAAU,mBAAO,CAAC,iEAAkB;AACpC,UAAU,mBAAO,CAAC,iEAAkB;AACpC,oBAAoB,mBAAO,CAAC,qFAA4B;AACxD,wBAAwB,mBAAO,CAAC,6FAAgC;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACnBA;AACA;AACA;;;;;;;;;;;;;ACFa;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,YAAY,mBAAO,CAAC,qEAAoB;AACxC,cAAc,mBAAO,CAAC,2EAAuB;AAC7C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,qBAAqB,mBAAO,CAAC,yFAA8B;AAC3D,yBAAyB,mBAAO,CAAC,mGAAmC;AACpE,mCAAmC,mBAAO,CAAC,2HAA+C;AAC1F,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,iBAAiB,mBAAO,CAAC,6FAAgC;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG,+CAA+C;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC5DY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,aAAa,mBAAO,CAAC,yFAA8B;AACnD,0BAA0B,mBAAO,CAAC,uGAAqC;;AAEvE;;AAEA;AACA;AACA,GAAG,uDAAuD;AAC1D;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACbY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,cAAc,mBAAO,CAAC,yFAA8B;AACpD,mCAAmC,mBAAO,CAAC,2HAA+C;;AAE1F;;AAEA;AACA;AACA;AACA,GAAG,6DAA6D;AAChE;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACdY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,YAAY,mBAAO,CAAC,yFAA8B;AAClD,uBAAuB,mBAAO,CAAC,+FAAiC;;AAEhE;AACA;;AAEA;AACA,4CAA4C,qBAAqB,EAAE;;AAEnE;AACA;AACA,GAAG,oDAAoD;AACvD;AACA;AACA;AACA,CAAC;;AAED;AACA;;;;;;;;;;;;;ACpBa;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,cAAc,mBAAO,CAAC,uFAA6B;;AAEnD;AACA;AACA;AACA,GAAG,8DAA8D;AACjE;AACA,CAAC;;;;;;;;;;;;ACTD,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,WAAW,mBAAO,CAAC,+EAAyB;AAC5C,kCAAkC,mBAAO,CAAC,uHAA6C;;AAEvF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,GAAG,2DAA2D;AAC9D;AACA,CAAC;;;;;;;;;;;;;ACbY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,gBAAgB,mBAAO,CAAC,uFAA6B;AACrD,uBAAuB,mBAAO,CAAC,+FAAiC;;AAEhE;AACA;AACA,GAAG,+BAA+B;AAClC;AACA;AACA;AACA,CAAC;;AAED;AACA;;;;;;;;;;;;;ACda;AACb;AACA,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,eAAe,mBAAO,CAAC,uFAA6B;AACpD,0BAA0B,mBAAO,CAAC,uGAAqC;;AAEvE;;AAEA;AACA;;AAEA;AACA;AACA,GAAG,wEAAwE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACpBD,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,cAAc,mBAAO,CAAC,2EAAuB;;AAE7C;AACA;AACA,GAAG,8BAA8B;AACjC;AACA,CAAC;;;;;;;;;;;;;ACPY;AACb,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,uBAAuB,mBAAO,CAAC,+FAAiC;AAChE,gBAAgB,mBAAO,CAAC,6EAAwB;AAChD,0BAA0B,mBAAO,CAAC,uFAA6B;AAC/D,qBAAqB,mBAAO,CAAC,yFAA8B;;AAE3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,8BAA8B;AAC9B,gCAAgC;AAChC,UAAU;AACV,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACpDa;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,oBAAoB,mBAAO,CAAC,uFAA6B;AACzD,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,0BAA0B,mBAAO,CAAC,uGAAqC;;AAEvE;;AAEA;AACA;;AAEA;AACA;AACA,GAAG,sEAAsE;AACzE;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACjBY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,WAAW,mBAAO,CAAC,yFAA8B;AACjD,mCAAmC,mBAAO,CAAC,2HAA+C;;AAE1F;;AAEA;AACA;AACA;AACA,GAAG,6DAA6D;AAChE;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACdY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,cAAc,mBAAO,CAAC,mFAA2B;AACjD,0BAA0B,mBAAO,CAAC,uGAAqC;AACvE,qBAAqB,mBAAO,CAAC,6FAAgC;AAC7D,cAAc,mBAAO,CAAC,uFAA6B;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG,qEAAqE;AACxE;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AClBY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,cAAc,mBAAO,CAAC,2EAAuB;AAC7C,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,qBAAqB,mBAAO,CAAC,yFAA8B;AAC3D,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,mCAAmC,mBAAO,CAAC,2HAA+C;;AAE1F;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG,6DAA6D;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC9CY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,YAAY,mBAAO,CAAC,yFAA8B;AAClD,0BAA0B,mBAAO,CAAC,uGAAqC;;AAEvE;;AAEA;AACA;AACA,GAAG,uDAAuD;AAC1D;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACbY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,YAAY,mBAAO,CAAC,qEAAoB;AACxC,0BAA0B,mBAAO,CAAC,uGAAqC;;AAEvE;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;;AAEA;AACA;AACA,GAAG,+CAA+C;AAClD;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC/BY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,yBAAyB,mBAAO,CAAC,mGAAmC;AACpE,qBAAqB,mBAAO,CAAC,yFAA8B;AAC3D,mCAAmC,mBAAO,CAAC,2HAA+C;;AAE1F;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG,6DAA6D;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA,mBAAmB,2CAA2C;AAC9D,KAAK;AACL,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACnED,QAAQ,mBAAO,CAAC,uEAAqB;;AAErC;AACA;AACA,GAAG,6BAA6B;AAChC;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACRD,eAAe,mBAAO,CAAC,2EAAuB;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AChBA,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,WAAW,mBAAO,CAAC,qFAA4B;;AAE/C;AACA;AACA,GAAG,kCAAkC;AACrC;AACA,CAAC;;;;;;;;;;;;ACPD,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,qBAAqB,mBAAO,CAAC,uGAAqC;;AAElE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACrBa;AACb,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,2EAAuB;AAC9C,UAAU,mBAAO,CAAC,iEAAkB;AACpC,cAAc,mBAAO,CAAC,iFAA0B;AAChD,wBAAwB,mBAAO,CAAC,iGAAkC;AAClE,kBAAkB,mBAAO,CAAC,mFAA2B;AACrD,YAAY,mBAAO,CAAC,qEAAoB;AACxC,aAAa,mBAAO,CAAC,qFAA4B;AACjD,0BAA0B,mBAAO,CAAC,qHAA4C;AAC9E,+BAA+B,mBAAO,CAAC,+HAAiD;AACxF,qBAAqB,mBAAO,CAAC,uGAAqC;AAClE,WAAW,mBAAO,CAAC,iFAA0B;;AAE7C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,KAAK;AACL;AACA,oCAAoC,cAAc,OAAO;AACzD,qCAAqC,cAAc,OAAO;AAC1D;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAqC,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/Ea;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,aAAa,mBAAO,CAAC,qFAA4B;AACjD,YAAY,mBAAO,CAAC,qEAAoB;;AAExC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,CAAC;;AAED;AACA;AACA,GAAG,gDAAgD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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AACD;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,UAAU;AACV,CAAC;;;;;;;;;;;;;AC5BY;AACb,oCAAoC,mBAAO,CAAC,+HAAiD;AAC7F,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,6BAA6B,mBAAO,CAAC,2GAAuC;AAC5E,yBAAyB,mBAAO,CAAC,mGAAmC;AACpE,iBAAiB,mBAAO,CAAC,mGAAmC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC3CY;AACb,oCAAoC,mBAAO,CAAC,+HAAiD;AAC7F,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,6BAA6B,mBAAO,CAAC,2GAAuC;AAC5E,yBAAyB,mBAAO,CAAC,mGAAmC;AACpE,sBAAsB,mBAAO,CAAC,2FAA+B;AAC7D,iBAAiB,mBAAO,CAAC,mGAAmC;;AAE5D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,oBAAoB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACjGY;AACb,oCAAoC,mBAAO,CAAC,+HAAiD;AAC7F,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,6BAA6B,mBAAO,CAAC,2GAAuC;AAC5E,yBAAyB,mBAAO,CAAC,iGAAkC;AACnE,yBAAyB,mBAAO,CAAC,mGAAmC;AACpE,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,qBAAqB,mBAAO,CAAC,mGAAmC;AAChE,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,oBAAoB,mBAAO,CAAC,qGAAoC;;AAEhE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACrIY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,+BAA+B,mBAAO,CAAC,+HAAiD;AACxF,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,6BAA6B,mBAAO,CAAC,2GAAuC;AAC5E,2BAA2B,mBAAO,CAAC,yGAAsC;AACzE,cAAc,mBAAO,CAAC,yEAAsB;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AA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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,kCAAkC;AAChH;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gFAAgF,eAAe;AAC/F;AACA;AACA;;AAEA,GAAG,yEAAyE;AAC5E;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED,GAAG,qDAAqD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,0BAA0B,mBAAmB,EAAE;AAC/C,0BAA0B,oBAAoB;AAC9C,CAAC;;AAED,GAAG,2EAA2E;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,GAAG,uDAAuD;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,GAAG,0DAA0D,kCAAkC,EAAE,GAAG;AACpG;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAY,QAAQ;AACzC;AACA,0CAA0C;AAC1C,GAAG;;AAEH,KAAK,4DAA4D;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACtTa;AACb,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,kBAAkB,mBAAO,CAAC,mFAA2B;AACrD,6BAA6B,mBAAO,CAAC,6FAAgC;AACrE,iBAAiB,mBAAO,CAAC,+EAAyB;AAClD,qBAAqB,mBAAO,CAAC,yFAA8B;AAC3D,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,0BAA0B,mBAAO,CAAC,uFAA6B;AAC/D,sBAAsB,mBAAO,CAAC,yFAA8B;;AAE5D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACnEA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,mBAAmB,mBAAO,CAAC,qFAA4B;AACvD,cAAc,mBAAO,CAAC,uFAA6B;AACnD,kCAAkC,mBAAO,CAAC,uHAA6C;;AAEvF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;ACdA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,mBAAmB,mBAAO,CAAC,qFAA4B;AACvD,2BAA2B,mBAAO,CAAC,yFAA8B;AACjE,kCAAkC,mBAAO,CAAC,uHAA6C;AACvF,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChCA,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,gBAAgB,mBAAO,CAAC,6FAAgC;;AAExD;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,GAAG,yCAAyC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC3BD;AACA,kCAAkC,mBAAO,CAAC,wGAAmD;AAC7F;AACA;AACA,cAAc,QAAS;AACvB;AACA;;;;;;;;;;;;;ACNa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;;AAEA;AACA,4CAA4C,qBAAqB;AACjE;;AAEA;AACA,KAAK;AACL,IAAI;AACJ;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,qBAAqB,iBAAiB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B;;AAE9B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA,C;;;;;;;;;;;;AC7Fa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA,iBAAiB,wBAAwB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,KAAwC,GAAG,sBAAiB,GAAG,SAAI;;AAEnF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAE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","file":"jsoneditor.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/core.js\");\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterOut\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExpPrototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n return !String(Symbol()) ||\n // Chrome 38 Symbol has incorrect toString conversion\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseFloat = global.parseFloat;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(String(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(String(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\n/* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\nvar shared = require('./shared');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.12.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var $ = require('../internals/export');\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return new Date().getTime();\n }\n});\n","var redefine = require('../internals/redefine');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = DatePrototype[TO_STRING];\nvar getTime = DatePrototype.getTime;\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (new Date(NaN) + '' != INVALID_DATE) {\n redefine(DatePrototype, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare -- NaN check\n return value === value ? nativeDateToString.call(this) : INVALID_DATE;\n });\n}\n","var $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n$({ target: 'Function', proto: true }, {\n bind: bind\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModile = require('../internals/object-define-property');\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {\n defineProperty: objectDefinePropertyModile.f\n});\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var $ = require('../internals/export');\nvar parseFloatImplementation = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != parseFloatImplementation }, {\n parseFloat: parseFloatImplementation\n});\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","var $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar has = require('../internals/has');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n if (descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey)) return has(descriptor, 'value')\n ? descriptor.value\n : descriptor.get === undefined\n ? undefined\n : descriptor.get.call(receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) {\n var state = enforceInternalState(result);\n state.sticky = true;\n }\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar $startsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\n\nvar wrap = function (scheduler) {\n return function (handler, timeout /* , ...arguments */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : undefined;\n return scheduler(boundArgs ? function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof handler == 'function' ? handler : Function(handler)).apply(this, args);\n } : handler, timeout);\n };\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n$({ global: true, bind: true, forced: MSIE }, {\n // `setTimeout` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n setTimeout: wrap(global.setTimeout),\n // `setInterval` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n setInterval: wrap(global.setInterval)\n});\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import { defaults } from './defaults.js'\r\nimport { Validator } from './validator.js'\r\nimport { SchemaLoader } from './schemaloader.js'\r\nimport { editors } from './editors/index.js'\r\nimport { templates } from './templates/index.js'\r\nimport { iconlibs } from './iconlibs/index.js'\r\nimport { themes } from './themes/index.js'\r\nimport { extend, getShadowParent, hasOwnProperty } from './utilities.js'\r\nimport { AbstractEditor } from './editor'\r\nimport { AbstractTheme } from './theme'\r\nimport { AbstractIconLib } from './iconlib'\r\nimport styleRules from './style.css.js'\r\n\r\nexport class JSONEditor {\r\n constructor (element, options = {}) {\r\n if (!(element instanceof Element)) throw new Error('element should be an instance of Element')\r\n\r\n this.element = element\r\n this.options = extend({}, JSONEditor.defaults.options, options)\r\n this.ready = false\r\n this.copyClipboard = null\r\n this.schema = this.options.schema\r\n this.template = this.options.template\r\n this.translate = this.options.translate || JSONEditor.defaults.translate\r\n this.translateProperty = this.options.translateProperty || JSONEditor.defaults.translateProperty\r\n this.uuid = 0\r\n this.__data = {}\r\n const themeName = this.options.theme || JSONEditor.defaults.theme\r\n const themeClass = JSONEditor.defaults.themes[themeName]\r\n\r\n /* Load editors and selected theme style rules */\r\n if (!themeClass) throw new Error(`Unknown theme ${themeName}`)\r\n this.element.setAttribute('data-theme', themeName)\r\n // eslint-disable-next-line new-cap\r\n this.theme = new themeClass(this)\r\n const rules = extend(styleRules, this.getEditorsRules())\r\n\r\n /* Call addNewStyleRulesToShadowRoot if shadowRoot is found, otherwise call addNewStyleRules */\r\n const addRules = (themeName, rules, shadowRoot) => shadowRoot\r\n ? this.addNewStyleRulesToShadowRoot(themeName, rules, shadowRoot)\r\n : this.addNewStyleRules(themeName, rules)\r\n\r\n if (!this.theme.options.disable_theme_rules) {\r\n /* Attempt to locate a shadowRoot parent (i.e. in Web Components) */\r\n const shadowRoot = getShadowParent(this.element)\r\n addRules('default', rules, shadowRoot)\r\n if (typeof themeClass.rules !== 'undefined') {\r\n addRules(themeName, themeClass.rules, shadowRoot)\r\n }\r\n }\r\n\r\n /* Init icon class */\r\n const iconClass = JSONEditor.defaults.iconlibs[this.options.iconlib || JSONEditor.defaults.iconlib]\r\n // eslint-disable-next-line new-cap\r\n if (iconClass) this.iconlib = new iconClass()\r\n\r\n this.root_container = this.theme.getContainer()\r\n this.element.appendChild(this.root_container)\r\n\r\n /* Fetch all external refs via ajax */\r\n const fetchUrl = document.location.origin + document.location.pathname.toString()\r\n const loader = new SchemaLoader(this.options)\r\n const location = document.location.toString()\r\n\r\n this.expandSchema = (schema, fileBase) => loader.expandSchema(schema, fileBase)\r\n this.expandRefs = (schema, fileBase) => loader.expandRefs(schema, fileBase)\r\n this.refs = loader.refs\r\n\r\n loader.load(this.schema, schema => {\r\n const validatorOptions = this.options.custom_validators ? { custom_validators: this.options.custom_validators } : {}\r\n\r\n this.validator = new Validator(this, null, validatorOptions, JSONEditor.defaults)\r\n\r\n const editorClass = this.getEditorClass(schema)\r\n\r\n this.root = this.createEditor(editorClass, {\r\n jsoneditor: this,\r\n schema,\r\n required: true,\r\n container: this.root_container\r\n })\r\n\r\n this.root.preBuild()\r\n this.root.build()\r\n this.root.postBuild()\r\n\r\n /* Starting data */\r\n if (hasOwnProperty(this.options, 'startval')) this.root.setValue(this.options.startval)\r\n\r\n this.validation_results = this.validator.validate(this.root.getValue())\r\n this.root.showValidationErrors(this.validation_results)\r\n this.ready = true\r\n\r\n /* Fire ready event asynchronously */\r\n window.requestAnimationFrame(() => {\r\n if (!this.ready) return\r\n this.validation_results = this.validator.validate(this.root.getValue())\r\n this.root.showValidationErrors(this.validation_results)\r\n this.trigger('ready')\r\n this.trigger('change')\r\n })\r\n }, fetchUrl, location)\r\n }\r\n\r\n getValue () {\r\n if (!this.ready) throw new Error(\"JSON Editor not ready yet. Listen for 'ready' event before getting the value\")\r\n\r\n return this.root.getValue()\r\n }\r\n\r\n setValue (value) {\r\n if (!this.ready) throw new Error(\"JSON Editor not ready yet. Listen for 'ready' event before setting the value\")\r\n\r\n this.root.setValue(value)\r\n return this\r\n }\r\n\r\n validate (value) {\r\n if (!this.ready) throw new Error(\"JSON Editor not ready yet. Listen for 'ready' event before validating\")\r\n\r\n /* Custom value */\r\n if (arguments.length === 1) {\r\n return this.validator.validate(value)\r\n /* Current value (use cached result) */\r\n } else {\r\n return this.validation_results\r\n }\r\n }\r\n\r\n destroy () {\r\n if (this.destroyed) return\r\n if (!this.ready) return\r\n\r\n this.schema = null\r\n this.options = null\r\n this.root.destroy()\r\n this.root = null\r\n this.root_container = null\r\n this.validator = null\r\n this.validation_results = null\r\n this.theme = null\r\n this.iconlib = null\r\n this.template = null\r\n this.__data = null\r\n this.ready = false\r\n this.element.innerHTML = ''\r\n this.element.removeAttribute('data-theme')\r\n this.destroyed = true\r\n }\r\n\r\n on (event, callback) {\r\n this.callbacks = this.callbacks || {}\r\n this.callbacks[event] = this.callbacks[event] || []\r\n this.callbacks[event].push(callback)\r\n\r\n return this\r\n }\r\n\r\n off (event, callback) {\r\n /* Specific callback */\r\n if (event && callback) {\r\n this.callbacks = this.callbacks || {}\r\n this.callbacks[event] = this.callbacks[event] || []\r\n const newcallbacks = []\r\n for (let i = 0; i < this.callbacks[event].length; i++) {\r\n if (this.callbacks[event][i] === callback) continue\r\n newcallbacks.push(this.callbacks[event][i])\r\n }\r\n this.callbacks[event] = newcallbacks\r\n } else if (event) {\r\n /* All callbacks for a specific event */\r\n this.callbacks = this.callbacks || {}\r\n this.callbacks[event] = []\r\n } else {\r\n /* All callbacks for all events */\r\n this.callbacks = {}\r\n }\r\n\r\n return this\r\n }\r\n\r\n trigger (event, editor) {\r\n if (this.callbacks && this.callbacks[event] && this.callbacks[event].length) {\r\n for (let i = 0; i < this.callbacks[event].length; i++) {\r\n this.callbacks[event][i].apply(this, [editor])\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n setOption (option, value) {\r\n if (option === 'show_errors') {\r\n this.options.show_errors = value\r\n this.onChange()\r\n } else {\r\n /* Only the `show_errors` option is supported for now */\r\n throw new Error(`Option ${option} must be set during instantiation and cannot be changed later`)\r\n }\r\n\r\n return this\r\n }\r\n\r\n getEditorsRules () {\r\n const extendRule = (rules, editorClass) => editorClass.rules ? extend(rules, editorClass.rules) : rules\r\n return Object.values(JSONEditor.defaults.editors).reduce(extendRule, {})\r\n }\r\n\r\n getEditorClass (schema) {\r\n let classname\r\n\r\n schema = this.expandSchema(schema)\r\n\r\n JSONEditor.defaults.resolvers.find(resolver => {\r\n classname = resolver(schema)\r\n return classname && JSONEditor.defaults.editors[classname]\r\n })\r\n if (!classname) throw new Error(`Unknown editor for schema ${JSON.stringify(schema)}`)\r\n if (!JSONEditor.defaults.editors[classname]) throw new Error(`Unknown editor ${classname}`)\r\n return JSONEditor.defaults.editors[classname]\r\n }\r\n\r\n createEditor (editorClass, options, depthCounter = 1) {\r\n options = extend({}, editorClass.options || {}, options)\r\n // eslint-disable-next-line new-cap\r\n return new editorClass(options, JSONEditor.defaults, depthCounter)\r\n }\r\n\r\n onChange () {\r\n if (!this.ready) return\r\n\r\n if (this.firing_change) return\r\n this.firing_change = true\r\n\r\n window.requestAnimationFrame(() => {\r\n this.firing_change = false\r\n if (!this.ready) return\r\n\r\n /* Validate and cache results */\r\n this.validation_results = this.validator.validate(this.root.getValue())\r\n\r\n if (this.options.show_errors !== 'never') {\r\n this.root.showValidationErrors(this.validation_results)\r\n } else {\r\n this.root.showValidationErrors([])\r\n }\r\n\r\n /* Fire change event */\r\n this.trigger('change')\r\n })\r\n\r\n return this\r\n }\r\n\r\n compileTemplate (template, name = JSONEditor.defaults.template) {\r\n let engine\r\n\r\n /* Specifying a preset engine */\r\n if (typeof name === 'string') {\r\n if (!JSONEditor.defaults.templates[name]) throw new Error(`Unknown template engine ${name}`)\r\n engine = JSONEditor.defaults.templates[name]()\r\n\r\n if (!engine) throw new Error(`Template engine ${name} missing required library.`)\r\n } else {\r\n /* Specifying a custom engine */\r\n engine = name\r\n }\r\n\r\n if (!engine) throw new Error('No template engine set')\r\n if (!engine.compile) throw new Error('Invalid template engine set')\r\n\r\n return engine.compile(template)\r\n }\r\n\r\n _data (el, key, value) {\r\n /* Setting data */\r\n if (arguments.length === 3) {\r\n let uuid\r\n if (el.hasAttribute(`data-jsoneditor-${key}`)) {\r\n uuid = el.getAttribute(`data-jsoneditor-${key}`)\r\n } else {\r\n uuid = this.uuid++\r\n el.setAttribute(`data-jsoneditor-${key}`, uuid)\r\n }\r\n\r\n this.__data[uuid] = value\r\n } else {\r\n /* Getting data */\r\n /* No data stored */\r\n if (!el.hasAttribute(`data-jsoneditor-${key}`)) return null\r\n\r\n return this.__data[el.getAttribute(`data-jsoneditor-${key}`)]\r\n }\r\n }\r\n\r\n registerEditor (editor) {\r\n this.editors = this.editors || {}\r\n this.editors[editor.path] = editor\r\n return this\r\n }\r\n\r\n unregisterEditor (editor) {\r\n this.editors = this.editors || {}\r\n this.editors[editor.path] = null\r\n return this\r\n }\r\n\r\n getEditor (path) {\r\n if (!this.editors) return\r\n return this.editors[path]\r\n }\r\n\r\n watch (path, callback) {\r\n this.watchlist = this.watchlist || {}\r\n this.watchlist[path] = this.watchlist[path] || []\r\n this.watchlist[path].push(callback)\r\n\r\n return this\r\n }\r\n\r\n unwatch (path, callback) {\r\n if (!this.watchlist || !this.watchlist[path]) return this\r\n /* If removing all callbacks for a path */\r\n if (!callback) {\r\n this.watchlist[path] = null\r\n return this\r\n }\r\n\r\n const newlist = []\r\n for (let i = 0; i < this.watchlist[path].length; i++) {\r\n if (this.watchlist[path][i] === callback) continue\r\n else newlist.push(this.watchlist[path][i])\r\n }\r\n this.watchlist[path] = newlist.length ? newlist : null\r\n return this\r\n }\r\n\r\n notifyWatchers (path) {\r\n if (!this.watchlist || !this.watchlist[path]) return this\r\n for (let i = 0; i < this.watchlist[path].length; i++) {\r\n this.watchlist[path][i]()\r\n }\r\n }\r\n\r\n isEnabled () {\r\n return !this.root || this.root.isEnabled()\r\n }\r\n\r\n enable () {\r\n this.root.enable()\r\n }\r\n\r\n disable () {\r\n this.root.disable()\r\n }\r\n\r\n setCopyClipboardContents (value) {\r\n this.copyClipboard = value\r\n }\r\n\r\n getCopyClipboardContents () {\r\n return this.copyClipboard\r\n }\r\n\r\n addNewStyleRules (themeName, rules) {\r\n let styleTag = document.querySelector(`#theme-${themeName}`)\r\n\r\n if (!styleTag) {\r\n styleTag = document.createElement('style')\r\n styleTag.setAttribute('id', `theme-${themeName}`)\r\n styleTag.appendChild(document.createTextNode(''))\r\n document.head.appendChild(styleTag)\r\n }\r\n\r\n const sheet = styleTag.sheet ? styleTag.sheet : styleTag.styleSheet\r\n const qualifier = this.element.nodeName.toLowerCase()\r\n while (sheet.cssRules.length > 0) {\r\n sheet.deleteRule(0)\r\n }\r\n Object.keys(rules).forEach(selector => {\r\n const sel = themeName === 'default' ? selector : `${qualifier}[data-theme=\"${themeName}\"] ${selector}`\r\n\r\n // all browsers, except IE before version 9\r\n if (sheet.insertRule) sheet.insertRule(sel + ' {' + decodeURIComponent(rules[selector]) + '}', 0)\r\n // Internet Explorer before version 9\r\n else if (sheet.addRule) sheet.addRule(sel, decodeURIComponent(rules[selector]), 0)\r\n })\r\n }\r\n\r\n addNewStyleRulesToShadowRoot (themeName, rules, shadowRoot) {\r\n const qualifier = this.element.nodeName.toLowerCase()\r\n let cssText = ''\r\n\r\n Object.keys(rules).forEach(selector => {\r\n const sel = themeName === 'default' ? selector : `${qualifier}[data-theme=\"${themeName}\"] ${selector}`\r\n cssText += sel + ' {' + decodeURIComponent(rules[selector]) + '}' + '\\n'\r\n })\r\n const styleSheet = new CSSStyleSheet()\r\n styleSheet.replaceSync(cssText)\r\n shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, styleSheet]\r\n }\r\n}\r\n\r\nJSONEditor.defaults = defaults\r\nJSONEditor.AbstractEditor = AbstractEditor\r\nJSONEditor.AbstractTheme = AbstractTheme\r\nJSONEditor.AbstractIconLib = AbstractIconLib\r\n\r\nObject.assign(JSONEditor.defaults.themes, themes)\r\nObject.assign(JSONEditor.defaults.editors, editors)\r\nObject.assign(JSONEditor.defaults.templates, templates)\r\nObject.assign(JSONEditor.defaults.iconlibs, iconlibs)\r\n","import { resolvers } from './resolvers.js'\r\n\r\n/* default theme */\r\nconst theme = 'html'\r\n\r\n/* default template engine */\r\nconst template = 'default'\r\n\r\n/* Global callback list */\r\nconst callbacks = {}\r\n\r\nconst themes = {}\r\nconst templates = {}\r\nconst iconlibs = {}\r\nconst editors = {}\r\nconst languages = {}\r\n// eslint-disable-next-line camelcase\r\nconst custom_validators = []\r\n\r\n/* Translation strings and default languages */\r\n// eslint-disable-next-line camelcase\r\nconst default_language = 'en'\r\n// eslint-disable-next-line camelcase\r\nconst language = default_language\r\n\r\nlanguages.en = {\r\n /**\r\n * When a property is not set\r\n */\r\n error_notset: 'Property must be set',\r\n /**\r\n * When a string must not be empty\r\n */\r\n error_notempty: 'Value required',\r\n /**\r\n * When a value is not one of the enumerated values\r\n */\r\n error_enum: 'Value must be one of the enumerated values',\r\n /**\r\n * When a value is not equal to the constant\r\n */\r\n error_const: 'Value must be the constant value',\r\n /**\r\n * When a value doesn't validate any schema of a 'anyOf' combination\r\n */\r\n error_anyOf: 'Value must validate against at least one of the provided schemas',\r\n /**\r\n * When a value doesn't validate\r\n * @variables This key takes one variable: The number of schemas the value does not validate\r\n */\r\n error_oneOf: 'Value must validate against exactly one of the provided schemas. It currently validates against {{0}} of the schemas.',\r\n /**\r\n * When a value does not validate a 'not' schema\r\n */\r\n error_not: 'Value must not validate against the provided schema',\r\n /**\r\n * When a value does not match any of the provided types\r\n */\r\n error_type_union: 'Value must be one of the provided types',\r\n /**\r\n * When a value does not match the given type\r\n * @variables This key takes one variable: The type the value should be of\r\n */\r\n error_type: 'Value must be of type {{0}}',\r\n /**\r\n * When the value validates one of the disallowed types\r\n */\r\n error_disallow_union: 'Value must not be one of the provided disallowed types',\r\n /**\r\n * When the value validates a disallowed type\r\n * @variables This key takes one variable: The type the value should not be of\r\n */\r\n error_disallow: 'Value must not be of type {{0}}',\r\n /**\r\n * When a value is not a multiple of or divisible by a given number\r\n * @variables This key takes one variable: The number mentioned above\r\n */\r\n error_multipleOf: 'Value must be a multiple of {{0}}',\r\n /**\r\n * When a value is greater than it's supposed to be (exclusive)\r\n * @variables This key takes one variable: The maximum\r\n */\r\n error_maximum_excl: 'Value must be less than {{0}}',\r\n /**\r\n * When a value is greater than it's supposed to be (inclusive\r\n * @variables This key takes one variable: The maximum\r\n */\r\n error_maximum_incl: 'Value must be at most {{0}}',\r\n /**\r\n * When a value is lesser than it's supposed to be (exclusive)\r\n * @variables This key takes one variable: The minimum\r\n */\r\n error_minimum_excl: 'Value must be greater than {{0}}',\r\n /**\r\n * When a value is lesser than it's supposed to be (inclusive)\r\n * @variables This key takes one variable: The minimum\r\n */\r\n error_minimum_incl: 'Value must be at least {{0}}',\r\n /**\r\n * When a value have too many characters\r\n * @variables This key takes one variable: The maximum character count\r\n */\r\n error_maxLength: 'Value must be at most {{0}} characters long',\r\n /**\r\n * When a value does not have enough characters\r\n * @variables This key takes one variable: The minimum character count\r\n */\r\n error_minLength: 'Value must be at least {{0}} characters long',\r\n /**\r\n * When a value does not match a given pattern\r\n */\r\n error_pattern: 'Value must match the pattern {{0}}',\r\n /**\r\n * When an array has additional items whereas it is not supposed to\r\n */\r\n error_additionalItems: 'No additional items allowed in this array',\r\n /**\r\n * When there are to many items in an array\r\n * @variables This key takes one variable: The maximum item count\r\n */\r\n error_maxItems: 'Value must have at most {{0}} items',\r\n /**\r\n * When there are not enough items in an array\r\n * @variables This key takes one variable: The minimum item count\r\n */\r\n error_minItems: 'Value must have at least {{0}} items',\r\n /**\r\n * When an array is supposed to have unique items but has duplicates\r\n */\r\n error_uniqueItems: 'Array must have unique items',\r\n /**\r\n * When there are too many properties in an object\r\n * @variables This key takes one variable: The maximum property count\r\n */\r\n error_maxProperties: 'Object must have at most {{0}} properties',\r\n /**\r\n * When there are not enough properties in an object\r\n * @variables This key takes one variable: The minimum property count\r\n */\r\n error_minProperties: 'Object must have at least {{0}} properties',\r\n /**\r\n * When a required property is not defined\r\n * @variables This key takes one variable: The name of the missing property\r\n */\r\n error_required: \"Object is missing the required property '{{0}}'\",\r\n /**\r\n * When there is an additional property is set whereas there should be none\r\n * @variables This key takes one variable: The name of the additional property\r\n */\r\n error_additional_properties: 'No additional properties allowed, but property {{0}} is set',\r\n /**\r\n * When there is a propertyName that sets a max length and a property name exceeds the max length\r\n * @variables This key takes one variable: The name of the invalid property\r\n */\r\n error_property_names_exceeds_maxlength: 'Property name {{0}} exceeds maxLength',\r\n /**\r\n * When there is a propertyName that sets an enum and a property name matches none of the possible enum\r\n * @variables This key takes one variable: The name of the invalid property\r\n */\r\n error_property_names_enum_mismatch: 'Property name {{0}} does not match any enum values',\r\n /**\r\n * When there is a propertyName that sets a const and a property does not match the const value\r\n * @variables This key takes one variable: The name of the invalid property\r\n */\r\n error_property_names_const_mismatch: 'Property name {{0}} does not match the const value',\r\n /**\r\n * When there is a propertyName that sets a pattern and a property name does not match the pattern\r\n * @variables This key takes one variable: The name of the invalid property\r\n */\r\n error_property_names_pattern_mismatch: 'Property name {{0}} does not match pattern',\r\n /**\r\n * When the propertyName is set to false and there is at least one property\r\n * @variables This key takes one variable: The name of the invalid property\r\n */\r\n error_property_names_false: 'Property name {{0}} fails when propertyName is false',\r\n /**\r\n * When the propertyName specifies a maxLength that is not a number\r\n * @variables This key takes one variable: The name of the current property\r\n */\r\n error_property_names_maxlength: 'Property name {{0}} cannot match invalid maxLength',\r\n /**\r\n * When the propertyName specifies an enum that is not an array\r\n * @variables This key takes one variable: The name of the current property\r\n */\r\n error_property_names_enum: 'Property name {{0}} cannot match invalid enum',\r\n /**\r\n * When the propertyName specifies a pattern that is not a string\r\n * @variables This key takes one variable: The name of the current property\r\n */\r\n error_property_names_pattern: 'Property name {{0}} cannot match invalid pattern',\r\n /**\r\n * When the propertyName is unsupported\r\n * @variables This key takes one variable: The name of the invalid propertyName\r\n */\r\n error_property_names_unsupported: 'Unsupported propertyName {{0}}',\r\n /**\r\n * When a dependency is not resolved\r\n * @variables This key takes one variable: The name of the missing property for the dependency\r\n */\r\n error_dependency: 'Must have property {{0}}',\r\n /**\r\n * When a date is in incorrect format\r\n * @variables This key takes one variable: The valid format\r\n */\r\n error_date: 'Date must be in the format {{0}}',\r\n /**\r\n * When a time is in incorrect format\r\n * @variables This key takes one variable: The valid format\r\n */\r\n error_time: 'Time must be in the format {{0}}',\r\n /**\r\n * When a datetime-local is in incorrect format\r\n * @variables This key takes one variable: The valid format\r\n */\r\n error_datetime_local: 'Datetime must be in the format {{0}}',\r\n /**\r\n * When a integer date is less than 1 January 1970\r\n */\r\n error_invalid_epoch: 'Date must be greater than 1 January 1970',\r\n /**\r\n * When an IPv4 is in incorrect format\r\n */\r\n error_ipv4: 'Value must be a valid IPv4 address in the form of 4 numbers between 0 and 255, separated by dots',\r\n /**\r\n * When an IPv6 is in incorrect format\r\n */\r\n error_ipv6: 'Value must be a valid IPv6 address',\r\n /**\r\n * When a hostname is in incorrect format\r\n */\r\n error_hostname: 'The hostname has the wrong format',\r\n /**\r\n * Text/Title on Save button\r\n */\r\n button_save: 'Save',\r\n /**\r\n * Text/Title on Copy button\r\n */\r\n button_copy: 'Copy',\r\n /**\r\n * Text/Title on Cancel button\r\n */\r\n button_cancel: 'Cancel',\r\n /**\r\n * Text/Title on Add button\r\n */\r\n button_add: 'Add',\r\n /**\r\n * Text on Delete All buttons\r\n */\r\n button_delete_all: 'All',\r\n /**\r\n * Title on Delete All buttons\r\n */\r\n button_delete_all_title: 'Delete All',\r\n /**\r\n * Text on Delete Last buttons\r\n * @variable This key takes one variable: The title of object to delete\r\n */\r\n button_delete_last: 'Last {{0}}',\r\n /**\r\n * Title on Delete Last buttons\r\n * @variable This key takes one variable: The title of object to delete\r\n */\r\n button_delete_last_title: 'Delete Last {{0}}',\r\n /**\r\n * Title on Add Row buttons\r\n * @variable This key takes one variable: The title of object to add\r\n */\r\n button_add_row_title: 'Add {{0}}',\r\n /**\r\n * Title on Move Down buttons\r\n */\r\n button_move_down_title: 'Move down',\r\n /**\r\n * Title on Move Up buttons\r\n */\r\n button_move_up_title: 'Move up',\r\n /**\r\n * Text on Object Properties buttons\r\n */\r\n edit_properties: 'Properties',\r\n property_name_placeholder: 'Property name...',\r\n properties: 'properties',\r\n duplicate_property_error: 'There is already a property with that name',\r\n /**\r\n * Title on Object Properties buttons\r\n */\r\n button_object_properties: 'Object Properties',\r\n /**\r\n * Title on Copy Row button\r\n * @variable This key takes one variable: The title of object to delete\r\n */\r\n button_copy_row_title: 'Copy {{0}}',\r\n /**\r\n * Title on Delete Row buttons\r\n * @variable This key takes one variable: The title of object to delete\r\n */\r\n button_delete_row_title: 'Delete {{0}}',\r\n /**\r\n * Title on Delete Row buttons, short version (no parameter with the object title)\r\n */\r\n button_delete_row_title_short: 'Delete',\r\n /**\r\n * Title on Copy Row buttons, short version (no parameter with the object title)\r\n */\r\n button_copy_row_title_short: 'Copy',\r\n /**\r\n * Title on Collapse buttons\r\n */\r\n button_collapse: 'Collapse',\r\n /**\r\n * Title on Expand buttons\r\n */\r\n button_expand: 'Expand',\r\n /**\r\n * Title on Edit JSON buttons\r\n */\r\n button_edit_json: 'Edit JSON',\r\n /**\r\n * Text/Title on Upload buttons\r\n */\r\n button_upload: 'Upload',\r\n /**\r\n * Title on Flatpickr toggle buttons\r\n */\r\n flatpickr_toggle_button: 'Toggle',\r\n /**\r\n * Title on Flatpickr clear buttons\r\n */\r\n flatpickr_clear_button: 'Clear',\r\n /**\r\n * Choices input field placeholder text\r\n */\r\n choices_placeholder_text: 'Start typing to add value',\r\n /**\r\n * Default title for array items\r\n */\r\n default_array_item_title: 'item',\r\n /**\r\n * Warning when deleting a node\r\n */\r\n button_delete_node_warning: 'Are you sure you want to remove this node?'\r\n}\r\n\r\n/* Default per-editor options */\r\nObject.entries(editors).forEach(([i, editor]) => { editors[i].options = editor.options || {} })\r\n\r\n/* Default upload handler */\r\nfunction upload (type, file, cbs) {\r\n // eslint-disable-next-line no-console\r\n console.log('Upload handler required for upload editor')\r\n}\r\n\r\n/* String translate function */\r\nfunction translate (key, variables) {\r\n const lang = defaults.languages[defaults.language]\r\n if (!lang) throw new Error(`Unknown language ${defaults.language}`)\r\n\r\n let string = lang[key] || defaults.languages[default_language][key] || key\r\n\r\n if (variables) {\r\n for (let i = 0; i < variables.length; i++) {\r\n string = string.replace(new RegExp(`\\\\{\\\\{${i}}}`, 'g'), variables[i])\r\n }\r\n }\r\n\r\n return string\r\n}\r\n\r\n/* Text element translate function */\r\n\r\nfunction translateProperty (text, variables) {\r\n return text\r\n}\r\n\r\n/* Default options when initializing JSON Editor */\r\nconst options = {\r\n upload,\r\n prompt_before_delete: true,\r\n use_default_values: true,\r\n max_depth: 0\r\n}\r\n\r\n/* This assignment was previously in index.js but makes more sense here */\r\nexport const defaults = {\r\n options,\r\n theme,\r\n template,\r\n themes,\r\n callbacks,\r\n templates,\r\n iconlibs,\r\n editors,\r\n languages,\r\n resolvers,\r\n custom_validators,\r\n default_language,\r\n language,\r\n translate,\r\n translateProperty\r\n}\r\n","import { extend, hasOwnProperty } from './utilities.js'\r\n\r\n/**\r\n * All editors should extend from this class\r\n */\r\nexport class AbstractEditor {\r\n constructor (options, defaults) {\r\n this.defaults = defaults\r\n this.jsoneditor = options.jsoneditor\r\n this.theme = this.jsoneditor.theme\r\n this.template_engine = this.jsoneditor.template\r\n this.iconlib = this.jsoneditor.iconlib\r\n this.translate = this.jsoneditor.translate || this.defaults.translate\r\n this.translateProperty = this.jsoneditor.translateProperty || this.defaults.translateProperty\r\n this.original_schema = options.schema\r\n this.schema = this.jsoneditor.expandSchema(this.original_schema)\r\n this.active = true\r\n this.options = extend({}, (this.options || {}), (this.schema.options || {}), (options.schema.options || {}), options)\r\n\r\n this.formname = this.jsoneditor.options.form_name_root || 'root'\r\n\r\n if (!options.path && !this.schema.id) this.schema.id = this.formname\r\n this.path = options.path || this.formname\r\n this.formname = options.formname || this.path.replace(/\\.([^.]+)/g, '[$1]')\r\n\r\n this.parent = options.parent\r\n this.key = this.parent !== undefined ? this.path.split('.').slice(this.parent.path.split('.').length).join('.') : this.path\r\n\r\n this.link_watchers = []\r\n this.watchLoop = false\r\n\r\n if (options.container) this.setContainer(options.container)\r\n this.registerDependencies()\r\n }\r\n\r\n onChildEditorChange (editor) {\r\n this.onChange(true)\r\n }\r\n\r\n notify () {\r\n if (this.path) this.jsoneditor.notifyWatchers(this.path)\r\n }\r\n\r\n change () {\r\n if (this.parent) this.parent.onChildEditorChange(this)\r\n else if (this.jsoneditor) this.jsoneditor.onChange()\r\n }\r\n\r\n onChange (bubble) {\r\n this.notify()\r\n if (this.watch_listener) this.watch_listener()\r\n if (bubble) this.change()\r\n }\r\n\r\n register () {\r\n this.jsoneditor.registerEditor(this)\r\n this.onChange()\r\n }\r\n\r\n unregister () {\r\n if (!this.jsoneditor) return\r\n this.jsoneditor.unregisterEditor(this)\r\n }\r\n\r\n getNumColumns () {\r\n return 12\r\n }\r\n\r\n isActive () {\r\n return this.active\r\n }\r\n\r\n activate () {\r\n this.active = true\r\n this.optInCheckbox.checked = true\r\n this.enable()\r\n this.change()\r\n }\r\n\r\n deactivate () {\r\n /* only non required properties can be deactivated. */\r\n if (!this.isRequired()) {\r\n this.active = false\r\n this.optInCheckbox.checked = false\r\n this.disable()\r\n this.change()\r\n }\r\n }\r\n\r\n registerDependencies () {\r\n this.dependenciesFulfilled = true\r\n const deps = this.options.dependencies\r\n if (!deps) {\r\n return\r\n }\r\n\r\n Object.keys(deps).forEach(dependency => {\r\n let path = this.path.split('.')\r\n path[path.length - 1] = dependency\r\n path = path.join('.')\r\n this.jsoneditor.watch(path, () => {\r\n this.evaluateDependencies()\r\n })\r\n })\r\n }\r\n\r\n evaluateDependencies () {\r\n const wrapper = this.container || this.control\r\n if (!wrapper || this.jsoneditor === null) {\r\n return\r\n }\r\n\r\n const deps = this.options.dependencies\r\n if (!deps) {\r\n return\r\n }\r\n // Assume true and set to false if any unmet dependencies are found\r\n const previousStatus = this.dependenciesFulfilled\r\n this.dependenciesFulfilled = true\r\n\r\n Object.keys(deps).forEach(dependency => {\r\n let path = this.path.split('.')\r\n path[path.length - 1] = dependency\r\n path = path.join('.')\r\n const choices = deps[dependency]\r\n this.checkDependency(path, choices)\r\n })\r\n\r\n if (this.dependenciesFulfilled !== previousStatus) {\r\n this.notify()\r\n }\r\n\r\n let displayMode = this.dependenciesFulfilled ? 'block' : 'none'\r\n\r\n if (this.options.hidden) {\r\n displayMode = 'none'\r\n }\r\n\r\n if (wrapper.tagName === 'TD') {\r\n Object.keys(wrapper.childNodes).forEach(child => (wrapper.childNodes[child].style.display = displayMode))\r\n } else wrapper.style.display = displayMode\r\n }\r\n\r\n checkDependency (path, choices) {\r\n if (this.path === path || this.jsoneditor === null) {\r\n return\r\n }\r\n\r\n const editor = this.jsoneditor.getEditor(path)\r\n const value = editor ? editor.getValue() : undefined\r\n\r\n if (!editor || !editor.dependenciesFulfilled) {\r\n this.dependenciesFulfilled = false\r\n } else if (Array.isArray(choices)) {\r\n this.dependenciesFulfilled = choices.some(choice => {\r\n if (value === choice) {\r\n return true\r\n }\r\n })\r\n } else if (typeof choices === 'object') {\r\n if (typeof value !== 'object') {\r\n this.dependenciesFulfilled = choices === value\r\n } else {\r\n Object.keys(choices).some(key => {\r\n if (!hasOwnProperty(choices, key)) {\r\n return false\r\n }\r\n if (!hasOwnProperty(value, key) || choices[key] !== value[key]) {\r\n this.dependenciesFulfilled = false\r\n return true\r\n }\r\n })\r\n }\r\n } else if (typeof choices === 'string' || typeof choices === 'number') {\r\n this.dependenciesFulfilled = this.dependenciesFulfilled && value === choices\r\n } else if (typeof choices === 'boolean') {\r\n if (choices) {\r\n this.dependenciesFulfilled = this.dependenciesFulfilled && (value || value.length > 0)\r\n } else {\r\n this.dependenciesFulfilled = this.dependenciesFulfilled && (!value || value.length === 0)\r\n }\r\n }\r\n }\r\n\r\n setContainer (container) {\r\n this.container = container\r\n if (this.schema.id) this.container.setAttribute('data-schemaid', this.schema.id)\r\n if (this.schema.type && typeof this.schema.type === 'string') this.container.setAttribute('data-schematype', this.schema.type)\r\n this.container.setAttribute('data-schemapath', this.path)\r\n }\r\n\r\n setOptInCheckbox (header) {\r\n /* the active/deactive checbox control. */\r\n\r\n this.optInCheckbox = document.createElement('input')\r\n this.optInCheckbox.setAttribute('type', 'checkbox')\r\n this.optInCheckbox.setAttribute('style', 'margin: 0 10px 0 0;')\r\n this.optInCheckbox.classList.add('json-editor-opt-in')\r\n\r\n this.optInCheckbox.addEventListener('click', () => {\r\n if (this.isActive()) {\r\n this.deactivate()\r\n } else {\r\n this.activate()\r\n }\r\n })\r\n\r\n /* append active/deactive checkbox if show_opt_in is true */\r\n if (this.jsoneditor.options.show_opt_in || this.options.show_opt_in) {\r\n /* and control to type object editors if they are not required */\r\n if (this.parent && this.parent.schema.type === 'object' && !this.isRequired() && this.header) {\r\n this.header.appendChild(this.optInCheckbox)\r\n this.header.insertBefore(this.optInCheckbox, this.header.firstChild)\r\n this.active = false\r\n this.optInCheckbox.checked = false\r\n this.disable()\r\n }\r\n }\r\n }\r\n\r\n preBuild () {\r\n\r\n }\r\n\r\n build () {\r\n\r\n }\r\n\r\n postBuild () {\r\n this.setupWatchListeners()\r\n this.addLinks()\r\n this.setValue(this.getDefault(), true)\r\n this.updateHeaderText()\r\n this.register()\r\n this.onWatchedFieldChange()\r\n }\r\n\r\n setupWatchListeners () {\r\n /* Watched fields */\r\n this.watched = {}\r\n if (this.schema.vars) this.schema.watch = this.schema.vars\r\n this.watched_values = {}\r\n this.watch_listener = () => {\r\n if (this.refreshWatchedFieldValues()) {\r\n this.onWatchedFieldChange()\r\n }\r\n }\r\n\r\n if (hasOwnProperty(this.schema, 'watch')) {\r\n let path; let pathParts; let first; let root; let adjustedPath\r\n const myPath = this.container.getAttribute('data-schemapath')\r\n\r\n Object.keys(this.schema.watch).forEach(name => {\r\n path = this.schema.watch[name]\r\n if (Array.isArray(path)) {\r\n if (path.length < 2) return\r\n pathParts = [path[0]].concat(path[1].split('.'))\r\n } else {\r\n pathParts = path.split('.')\r\n if (!this.theme.closest(this.container, `[data-schemaid=\"${pathParts[0]}\"]`)) pathParts.unshift('#')\r\n }\r\n first = pathParts.shift()\r\n\r\n if (first === '#') first = this.jsoneditor.schema.id || this.jsoneditor.root.formname\r\n\r\n /* Find the root node for this template variable */\r\n root = this.theme.closest(this.container, `[data-schemaid=\"${first}\"]`)\r\n if (!root) throw new Error(`Could not find ancestor node with id ${first}`)\r\n\r\n /* Keep track of the root node and path for use when rendering the template */\r\n adjustedPath = `${root.getAttribute('data-schemapath')}.${pathParts.join('.')}`\r\n\r\n if (myPath.startsWith(adjustedPath)) this.watchLoop = true\r\n this.jsoneditor.watch(adjustedPath, this.watch_listener)\r\n\r\n this.watched[name] = adjustedPath\r\n })\r\n }\r\n\r\n /* Dynamic header */\r\n if (this.schema.headerTemplate) {\r\n this.header_template = this.jsoneditor.compileTemplate(this.translateProperty(this.schema.headerTemplate), this.template_engine)\r\n }\r\n }\r\n\r\n addLinks () {\r\n /* Add links */\r\n if (!this.no_link_holder) {\r\n this.link_holder = this.theme.getLinksHolder()\r\n /* if description element exists, insert the link before */\r\n if (typeof this.description !== 'undefined') this.description.parentNode.insertBefore(this.link_holder, this.description)\r\n /* otherwise just insert link at bottom of container */\r\n else this.container.appendChild(this.link_holder)\r\n if (this.schema.links) {\r\n for (let i = 0; i < this.schema.links.length; i++) {\r\n this.addLink(this.getLink(this.schema.links[i]))\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMove () {}\r\n\r\n getButton (text, icon, title, args = []) {\r\n const btnClass = `json-editor-btn-${icon}`\r\n if (!this.iconlib) icon = null\r\n else icon = this.iconlib.getIcon(icon)\r\n\r\n text = this.translate(text, args)\r\n title = this.translate(title, args)\r\n\r\n if (!icon && title) {\r\n text = title\r\n title = null\r\n }\r\n\r\n const btn = this.theme.getButton(text, icon, title)\r\n btn.classList.add(btnClass)\r\n return btn\r\n }\r\n\r\n setButtonText (button, text, icon, title, args = []) {\r\n if (!this.iconlib) icon = null\r\n else icon = this.iconlib.getIcon(icon)\r\n\r\n text = this.translate(text, args)\r\n title = this.translate(title, args)\r\n\r\n if (!icon && title) {\r\n text = title\r\n title = null\r\n }\r\n\r\n return this.theme.setButtonText(button, text, icon, title)\r\n }\r\n\r\n addLink (link) {\r\n if (this.link_holder) this.link_holder.appendChild(link)\r\n }\r\n\r\n getLink (data) {\r\n let holder\r\n let link\r\n\r\n /* Get mime type of the link */\r\n const mime = data.mediaType || 'application/javascript'\r\n const type = mime.split('/')[0]\r\n\r\n /* Template to generate the link href */\r\n const href = this.jsoneditor.compileTemplate(data.href, this.template_engine)\r\n const relTemplate = this.jsoneditor.compileTemplate(data.rel ? data.rel : data.href, this.template_engine)\r\n\r\n /* Template to generate the link's download attribute */\r\n let download = null\r\n if (data.download) download = data.download\r\n\r\n if (download && download !== true) {\r\n download = this.jsoneditor.compileTemplate(download, this.template_engine)\r\n }\r\n\r\n /* Image links */\r\n if (type === 'image') {\r\n holder = this.theme.getBlockLinkHolder()\r\n link = document.createElement('a')\r\n link.setAttribute('target', '_blank')\r\n const image = document.createElement('img')\r\n\r\n this.theme.createImageLink(holder, link, image)\r\n\r\n /* When a watched field changes, update the url */\r\n this.link_watchers.push(vars => {\r\n const url = href(vars)\r\n const rel = relTemplate(vars)\r\n link.setAttribute('href', url)\r\n link.setAttribute('title', rel || url)\r\n image.setAttribute('src', url)\r\n })\r\n /* Audio/Video links */\r\n } else if (['audio', 'video'].includes(type)) {\r\n holder = this.theme.getBlockLinkHolder()\r\n\r\n link = this.theme.getBlockLink()\r\n link.setAttribute('target', '_blank')\r\n\r\n const media = document.createElement(type)\r\n media.setAttribute('controls', 'controls')\r\n\r\n this.theme.createMediaLink(holder, link, media)\r\n\r\n /* When a watched field changes, update the url */\r\n this.link_watchers.push(vars => {\r\n const url = href(vars)\r\n const rel = relTemplate(vars)\r\n link.setAttribute('href', url)\r\n link.textContent = rel || url\r\n media.setAttribute('src', url)\r\n })\r\n /* Text links or blank link */\r\n } else {\r\n link = holder = this.theme.getBlockLink()\r\n holder.setAttribute('target', '_blank')\r\n holder.textContent = data.rel\r\n holder.style.display = 'none' /* Prevent blank links from showing up when using custom view */\r\n\r\n /* When a watched field changes, update the url */\r\n this.link_watchers.push(vars => {\r\n const url = href(vars)\r\n const rel = relTemplate(vars)\r\n if (url) holder.style.display = ''\r\n holder.setAttribute('href', url)\r\n holder.textContent = rel || url\r\n })\r\n }\r\n\r\n if (download && link) {\r\n if (download === true) {\r\n link.setAttribute('download', '')\r\n } else {\r\n this.link_watchers.push(vars => {\r\n link.setAttribute('download', download(vars))\r\n })\r\n }\r\n }\r\n\r\n if (data.class) link.classList.add(data.class)\r\n\r\n return holder\r\n }\r\n\r\n refreshWatchedFieldValues () {\r\n if (!this.watched_values) return\r\n const watched = {}\r\n let changed = false\r\n\r\n if (this.watched) {\r\n Object.keys(this.watched).forEach(name => {\r\n const editor = this.jsoneditor.getEditor(this.watched[name])\r\n const val = editor ? editor.getValue() : null\r\n if (this.watched_values[name] !== val) changed = true\r\n watched[name] = val\r\n })\r\n }\r\n\r\n watched.self = this.getValue()\r\n if (this.watched_values.self !== watched.self) changed = true\r\n\r\n this.watched_values = watched\r\n\r\n return changed\r\n }\r\n\r\n getWatchedFieldValues () {\r\n return this.watched_values\r\n }\r\n\r\n updateHeaderText () {\r\n if (this.header) {\r\n const headerText = this.getHeaderText()\r\n /* If the header has children, only update the text node's value */\r\n if (this.header.children.length) {\r\n for (let i = 0; i < this.header.childNodes.length; i++) {\r\n if (this.header.childNodes[i].nodeType === 3) {\r\n this.header.childNodes[i].nodeValue = this.cleanText(headerText)\r\n break\r\n }\r\n }\r\n /* Otherwise, just update the entire node */\r\n } else {\r\n if (window.DOMPurify) this.header.innerHTML = window.DOMPurify.sanitize(headerText)\r\n else this.header.textContent = this.cleanText(headerText)\r\n }\r\n }\r\n }\r\n\r\n getHeaderText (titleOnly) {\r\n if (this.header_text) return this.header_text\r\n else if (titleOnly) return this.translateProperty(this.schema.title)\r\n else return this.getTitle()\r\n }\r\n\r\n getPathDepth () {\r\n return this.path.split('.').length\r\n }\r\n\r\n cleanText (txt) {\r\n /* Clean out HTML tags from txt */\r\n const tmp = document.createElement('div')\r\n tmp.innerHTML = txt\r\n return (tmp.textContent || tmp.innerText)\r\n }\r\n\r\n onWatchedFieldChange () {\r\n let vars\r\n if (this.header_template) {\r\n vars = extend(this.getWatchedFieldValues(), {\r\n key: this.key,\r\n i: this.key,\r\n i0: (this.key * 1),\r\n i1: (this.key * 1 + 1),\r\n title: this.getTitle()\r\n })\r\n const headerText = this.header_template(vars)\r\n\r\n if (headerText !== this.header_text) {\r\n this.header_text = headerText\r\n this.updateHeaderText()\r\n this.notify()\r\n /* this.fireChangeHeaderEvent(); */\r\n }\r\n }\r\n if (this.link_watchers.length) {\r\n vars = this.getWatchedFieldValues()\r\n for (let i = 0; i < this.link_watchers.length; i++) {\r\n this.link_watchers[i](vars)\r\n }\r\n }\r\n }\r\n\r\n setValue (value) {\r\n this.value = value\r\n }\r\n\r\n getValue () {\r\n if (!this.dependenciesFulfilled) {\r\n return undefined\r\n }\r\n return this.value\r\n }\r\n\r\n refreshValue () {\r\n\r\n }\r\n\r\n getChildEditors () {\r\n return false\r\n }\r\n\r\n destroy () {\r\n this.unregister(this)\r\n if (this.watched) {\r\n Object.values(this.watched).forEach(adjustedPath => this.jsoneditor.unwatch(adjustedPath, this.watch_listener))\r\n }\r\n\r\n this.watched = null\r\n this.watched_values = null\r\n this.watch_listener = null\r\n this.header_text = null\r\n this.header_template = null\r\n this.value = null\r\n if (this.container && this.container.parentNode) this.container.parentNode.removeChild(this.container)\r\n this.container = null\r\n this.jsoneditor = null\r\n this.schema = null\r\n this.path = null\r\n this.key = null\r\n this.parent = null\r\n }\r\n\r\n isDefaultRequired () {\r\n return this.isRequired() || !!this.jsoneditor.options.use_default_values\r\n }\r\n\r\n getDefault () {\r\n if (typeof this.schema.default !== 'undefined') {\r\n return typeof this.schema.default === 'string' ? this.translateProperty(this.schema.default) : this.schema.default\r\n }\r\n\r\n if (typeof this.schema.enum !== 'undefined') {\r\n return this.schema.enum[0]\r\n }\r\n\r\n let type = this.schema.type || this.schema.oneOf\r\n if (type && Array.isArray(type)) type = type[0]\r\n if (type && typeof type === 'object') type = type.type\r\n if (type && Array.isArray(type)) type = type[0]\r\n\r\n if (typeof type === 'string') {\r\n if (type === 'number') return this.isDefaultRequired() ? 0.0 : undefined\r\n if (type === 'boolean') return this.isDefaultRequired() ? false : undefined\r\n if (type === 'integer') return this.isDefaultRequired() ? 0 : undefined\r\n if (type === 'string') return ''\r\n if (type === 'object') return {}\r\n if (type === 'array') return []\r\n }\r\n\r\n return null\r\n }\r\n\r\n getTitle () {\r\n return this.translateProperty(this.schema.title || this.key)\r\n }\r\n\r\n enable () {\r\n this.disabled = false\r\n }\r\n\r\n disable () {\r\n this.disabled = true\r\n }\r\n\r\n isEnabled () {\r\n return !this.disabled\r\n }\r\n\r\n isRequired () {\r\n if (typeof this.schema.required === 'boolean') return this.schema.required\r\n else if (this.parent && this.parent.schema && Array.isArray(this.parent.schema.required)) return this.parent.schema.required.includes(this.key)\r\n else if (this.jsoneditor.options.required_by_default) return true\r\n else return false\r\n }\r\n\r\n getDisplayText (arr) {\r\n const disp = []\r\n const used = {}\r\n\r\n /* Determine how many times each attribute name is used. */\r\n /* This helps us pick the most distinct display text for the schemas. */\r\n arr.forEach(el => {\r\n if (el.title) {\r\n const title = this.translateProperty(el.title)\r\n used[title] = used[title] || 0\r\n used[title]++\r\n }\r\n if (el.description) {\r\n used[el.description] = used[el.description] || 0\r\n used[el.description]++\r\n }\r\n if (el.format) {\r\n used[el.format] = used[el.format] || 0\r\n used[el.format]++\r\n }\r\n if (el.type) {\r\n used[el.type] = used[el.type] || 0\r\n used[el.type]++\r\n }\r\n })\r\n\r\n /* Determine display text for each element of the array */\r\n arr.forEach(el => {\r\n let name\r\n const title = this.translateProperty(el.title)\r\n\r\n /* If it's a simple string */\r\n if (typeof el === 'string') name = el\r\n /* Object */\r\n else if (el.title && used[title] <= 1) name = title\r\n else if (el.format && used[el.format] <= 1) name = el.format\r\n else if (el.type && used[el.type] <= 1) name = el.type\r\n else if (el.description && used[el.description] <= 1) name = el.descripton\r\n else if (el.title) name = title\r\n else if (el.format) name = el.format\r\n else if (el.type) name = el.type\r\n else if (el.description) name = el.description\r\n else if (JSON.stringify(el).length < 500) name = JSON.stringify(el)\r\n else name = 'type'\r\n\r\n disp.push(name)\r\n })\r\n\r\n /* Replace identical display text with \"text 1\", \"text 2\", etc. */\r\n const inc = {}\r\n disp.forEach((name, i) => {\r\n inc[name] = inc[name] || 0\r\n inc[name]++\r\n\r\n if (used[name] > 1) disp[i] = `${name} ${inc[name]}`\r\n })\r\n\r\n return disp\r\n }\r\n\r\n /* Replace space(s) with \"-\" to create valid id value */\r\n getValidId (id) {\r\n id = id === undefined ? '' : id.toString()\r\n return id.replace(/\\s+/g, '-')\r\n }\r\n\r\n setInputAttributes (inputAttribute) {\r\n if (this.schema.options && this.schema.options.inputAttributes) {\r\n const inputAttributes = this.schema.options.inputAttributes\r\n const protectedAttributes = ['name', 'type'].concat(inputAttribute)\r\n Object.keys(inputAttributes).forEach(key => {\r\n if (!protectedAttributes.includes(key.toLowerCase())) {\r\n this.input.setAttribute(key, key === 'placeholder' ? this.translateProperty(inputAttributes[key]) : inputAttributes[key])\r\n }\r\n })\r\n }\r\n }\r\n\r\n expandCallbacks (scope, options) {\r\n const callback = this.defaults.callbacks[scope]\r\n Object.entries(options).forEach(([key, value]) => {\r\n if (value === Object(value)) {\r\n options[key] = this.expandCallbacks(scope, value)\r\n } else if (typeof value === 'string' &&\r\n typeof callback === 'object' &&\r\n typeof callback[value] === 'function') {\r\n options[key] = callback[value].bind(null, this)\r\n }\r\n })\r\n return options\r\n }\r\n\r\n showValidationErrors (errors) {\r\n\r\n }\r\n}\r\n","import { StringEditor } from './string.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class AceEditor extends StringEditor {\r\n setValue (value, initial, fromTemplate) {\r\n const res = super.setValue(value, initial, fromTemplate)\r\n if (res !== undefined && res.changed && this.ace_editor_instance) {\r\n this.ace_editor_instance.setValue(res.value)\r\n this.ace_editor_instance.session.getSelection().clearSelection()\r\n this.ace_editor_instance.resize()\r\n }\r\n }\r\n\r\n build () {\r\n this.options.format = 'textarea' /* Force format into \"textarea\" */\r\n super.build()\r\n this.input_type = this.schema.format /* Restore original format */\r\n this.input.setAttribute('data-schemaformat', this.input_type)\r\n }\r\n\r\n afterInputReady () {\r\n let options\r\n\r\n if (window.ace) {\r\n let mode = this.input_type\r\n /* aliases for c/cpp */\r\n if (mode === 'cpp' || mode === 'c++' || mode === 'c') mode = 'c_cpp'\r\n\r\n /* Get options, either global options from \"this.defaults.options.ace\" or */\r\n /* single property options from schema \"options.ace\" */\r\n options = this.expandCallbacks('ace', extend({}, {\r\n selectionStyle: 'text',\r\n minLines: 30,\r\n maxLines: 30\r\n }, this.defaults.options.ace || {}, this.options.ace || {}, {\r\n mode: `ace/mode/${mode}`\r\n }))\r\n\r\n this.ace_container = document.createElement('div')\r\n this.ace_container.style.width = '100%'\r\n this.ace_container.style.position = 'relative'\r\n /* this.ace_container.style.height = '400px'; */\r\n this.input.parentNode.insertBefore(this.ace_container, this.input)\r\n this.input.style.display = 'none'\r\n\r\n this.ace_editor_instance = window.ace.edit(this.ace_container, options)\r\n\r\n this.ace_editor_instance.setValue(this.getValue())\r\n this.ace_editor_instance.session.getSelection().clearSelection()\r\n this.ace_editor_instance.resize()\r\n\r\n if (this.schema.readOnly || this.schema.readonly || this.schema.template) {\r\n this.ace_editor_instance.setReadOnly(true)\r\n }\r\n\r\n /* Listen for changes */\r\n this.ace_editor_instance.on('change', () => {\r\n this.input.value = this.ace_editor_instance.getValue()\r\n this.refreshValue()\r\n this.is_dirty = true\r\n this.onChange(true)\r\n })\r\n\r\n this.theme.afterInputReady(this.input)\r\n } else super.afterInputReady() /* Library not loaded, so just treat this as a string */\r\n }\r\n\r\n getNumColumns () {\r\n return 6\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled && this.ace_editor_instance) this.ace_editor_instance.setReadOnly(false)\r\n super.enable()\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (this.ace_editor_instance) this.ace_editor_instance.setReadOnly(true)\r\n super.disable(alwaysDisabled)\r\n }\r\n\r\n destroy () {\r\n if (this.ace_editor_instance) {\r\n this.ace_editor_instance.destroy()\r\n this.ace_editor_instance = null\r\n }\r\n super.destroy()\r\n }\r\n}\r\n","/* eslint-disable */\nexport default {\".json-editor-btntype-toggle\":\"margin:0%2010px%200%200\",\".je-array-control-btn\":\"width:100%25;text-align:left;margin-bottom:3px\"}\n/* eslint-enable */\n","import { AbstractEditor } from '../editor.js'\r\nimport { extend, trigger } from '../utilities.js'\r\nimport rules from './array.css.js'\r\n\r\nexport class ArrayEditor extends AbstractEditor {\r\n askConfirmation () {\r\n if (this.jsoneditor.options.prompt_before_delete === true) {\r\n if (window.confirm(this.translate('button_delete_node_warning')) === false) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n\r\n getDefault () {\r\n return this.schema.default || []\r\n }\r\n\r\n register () {\r\n super.register()\r\n if (this.rows) {\r\n this.rows.forEach(row => row.register())\r\n }\r\n }\r\n\r\n unregister () {\r\n super.unregister()\r\n if (this.rows) {\r\n this.rows.forEach(row => row.unregister())\r\n }\r\n }\r\n\r\n getNumColumns () {\r\n const info = this.getItemInfo(0)\r\n /* Tabs require extra horizontal space */\r\n if (this.tabs_holder && this.schema.format !== 'tabs-top') {\r\n return Math.max(Math.min(12, info.width + 2), 4)\r\n }\r\n return info.width\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n this.setAvailability(this, false)\r\n\r\n if (this.rows) {\r\n this.rows.forEach(row => {\r\n row.enable()\r\n this.setAvailability(row, false)\r\n })\r\n }\r\n super.enable()\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n this.setAvailability(this, true)\r\n\r\n if (this.rows) {\r\n this.rows.forEach(row => {\r\n row.disable(alwaysDisabled)\r\n this.setAvailability(row, true)\r\n })\r\n }\r\n super.disable()\r\n }\r\n\r\n setAvailability (element, val) {\r\n if (element.add_row_button) element.add_row_button.disabled = val\r\n if (element.remove_all_rows_button) element.remove_all_rows_button.disabled = val\r\n if (element.delete_last_row_button) element.delete_last_row_button.disabled = val\r\n if (element.copy_button) element.copy_button.disabled = val\r\n if (element.delete_button) element.delete_button.disabled = val\r\n if (element.moveup_button) element.moveup_button.disabled = val\r\n if (element.movedown_button) element.movedown_button.disabled = val\r\n }\r\n\r\n preBuild () {\r\n super.preBuild()\r\n\r\n this.rows = []\r\n this.row_cache = []\r\n\r\n this.hide_delete_buttons = this.options.disable_array_delete || this.jsoneditor.options.disable_array_delete\r\n this.hide_delete_all_rows_buttons = this.hide_delete_buttons || this.options.disable_array_delete_all_rows || this.jsoneditor.options.disable_array_delete_all_rows\r\n this.hide_delete_last_row_buttons = this.hide_delete_buttons || this.options.disable_array_delete_last_row || this.jsoneditor.options.disable_array_delete_last_row\r\n this.hide_move_buttons = this.options.disable_array_reorder || this.jsoneditor.options.disable_array_reorder\r\n this.hide_add_button = this.options.disable_array_add || this.jsoneditor.options.disable_array_add\r\n this.show_copy_button = this.options.enable_array_copy || this.jsoneditor.options.enable_array_copy\r\n this.array_controls_top = this.options.array_controls_top || this.jsoneditor.options.array_controls_top\r\n }\r\n\r\n build () {\r\n if (!this.options.compact) {\r\n this.header = document.createElement('label')\r\n this.header.textContent = this.getTitle()\r\n this.title = this.theme.getHeader(this.header, this.getPathDepth())\r\n this.title_controls = this.theme.getHeaderButtonHolder()\r\n if (!this.options.wb || !this.options.wb.disable_title) {\r\n this.container.appendChild(this.title)\r\n this.title.appendChild(this.title_controls)\r\n }\r\n if (this.options.infoText) {\r\n this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\r\n this.container.appendChild(this.infoButton)\r\n }\r\n if (this.schema.description) {\r\n this.description = this.theme.getDescription(this.translateProperty(this.schema.description))\r\n this.container.appendChild(this.description)\r\n }\r\n this.error_holder = document.createElement('div')\r\n this.container.appendChild(this.error_holder)\r\n\r\n if (this.schema.format === 'tabs-top') {\r\n this.controls = this.theme.getHeaderButtonHolder()\r\n this.title.appendChild(this.controls)\r\n this.tabs_holder = this.theme.getTopTabHolder(this.getValidId(this.getItemTitle()))\r\n this.container.appendChild(this.tabs_holder)\r\n this.row_holder = this.theme.getTopTabContentHolder(this.tabs_holder)\r\n\r\n this.active_tab = null\r\n } else if (this.schema.format === 'tabs') {\r\n this.controls = this.theme.getHeaderButtonHolder()\r\n this.title.appendChild(this.controls)\r\n this.tabs_holder = this.theme.getTabHolder(this.getValidId(this.getItemTitle()))\r\n this.container.appendChild(this.tabs_holder)\r\n this.row_holder = this.theme.getTabContentHolder(this.tabs_holder)\r\n\r\n this.active_tab = null\r\n } else {\r\n if (!this.options.wb || !this.options.wb.disable_panel) {\r\n this.panel = this.theme.getIndentedPanel()\r\n } else {\r\n this.panel = document.createElement('div')\r\n }\r\n this.container.appendChild(this.panel)\r\n this.row_holder = document.createElement('div')\r\n this.panel.appendChild(this.row_holder)\r\n this.controls = this.theme.getButtonHolder()\r\n if (this.array_controls_top) {\r\n this.title.appendChild(this.controls)\r\n } else {\r\n this.panel.appendChild(this.controls)\r\n }\r\n }\r\n } else {\r\n /* compact mode */\r\n this.title = this.theme.getHeader('', this.getPathDepth())\r\n this.panel = document.createElement('div')\r\n this.container.appendChild(this.panel)\r\n this.title_controls = this.theme.getHeaderButtonHolder()\r\n this.controls = this.theme.getHeaderButtonHolder()\r\n this.row_holder = document.createElement('div')\r\n this.panel.appendChild(this.row_holder)\r\n }\r\n\r\n /* Add controls */\r\n this.addControls()\r\n }\r\n\r\n onChildEditorChange (editor) {\r\n this.refreshValue()\r\n this.refreshTabs(true)\r\n super.onChildEditorChange(editor)\r\n }\r\n\r\n getItemTitle () {\r\n if (!this.item_title) {\r\n if (this.schema.items && !Array.isArray(this.schema.items)) {\r\n const tmp = this.jsoneditor.expandRefs(this.schema.items)\r\n this.item_title = this.translateProperty(tmp.title) || this.translate('default_array_item_title')\r\n } else {\r\n this.item_title = this.translate('default_array_item_title')\r\n }\r\n }\r\n return this.cleanText(this.item_title)\r\n }\r\n\r\n getItemSchema (i) {\r\n if (Array.isArray(this.schema.items)) {\r\n if (i >= this.schema.items.length) {\r\n if (this.schema.additionalItems === true) {\r\n return {}\r\n } else if (this.schema.additionalItems) {\r\n return extend({}, this.schema.additionalItems)\r\n }\r\n } else {\r\n return extend({}, this.schema.items[i])\r\n }\r\n } else if (this.schema.items) {\r\n if (!this.cachedItems) {\r\n var items = extend({}, this.schema.items)\r\n this.cachedItems = this.jsoneditor.expandRefs(items)\r\n this.singleItemSchema = true\r\n }\r\n return extend({}, this.cachedItems)\r\n } else {\r\n return {}\r\n }\r\n }\r\n\r\n getItemInfo (i, schema) {\r\n if (!schema) {\r\n schema = this.getItemSchema(i)\r\n }\r\n\r\n /* Check if it's cached */\r\n this.item_info = this.item_info || {}\r\n const stringified = JSON.stringify(schema)\r\n if (typeof this.item_info[stringified] !== 'undefined') return this.item_info[stringified]\r\n\r\n this.item_info[stringified] = {\r\n title: this.translateProperty(schema.title) || this.translate('default_array_item_title'),\r\n default: schema.default,\r\n width: 12,\r\n child_editors: schema.properties || schema.items\r\n }\r\n\r\n return this.item_info[stringified]\r\n }\r\n\r\n getElementEditor (i) {\r\n const schema = this.getItemSchema(i)\r\n const itemInfo = this.getItemInfo(i, schema)\r\n schema.title = `${itemInfo.title} ${i + 1}`\r\n\r\n var editor\r\n if (this.singleItemSchema) {\r\n if (!this.cachedEditorClass) {\r\n this.cachedEditorClass = this.jsoneditor.getEditorClass(schema)\r\n }\r\n editor = this.cachedEditorClass\r\n } else {\r\n editor = this.jsoneditor.getEditorClass(schema)\r\n }\r\n\r\n let holder\r\n if (this.tabs_holder) {\r\n if (this.schema.format === 'tabs-top') {\r\n holder = this.theme.getTopTabContent()\r\n } else {\r\n holder = this.theme.getTabContent()\r\n }\r\n holder.id = `${this.path}.${i}`\r\n } else if (itemInfo.child_editors) {\r\n holder = this.theme.getChildEditorHolder()\r\n } else {\r\n if (!this.options.wb || !this.options.wb.disable_array_item_panel) {\r\n holder = this.theme.getIndentedPanel()\r\n } else {\r\n holder = document.createElement('div')\r\n }\r\n }\r\n\r\n this.row_holder.appendChild(holder)\r\n\r\n const ret = this.jsoneditor.createEditor(editor, {\r\n jsoneditor: this.jsoneditor,\r\n schema,\r\n container: holder,\r\n path: `${this.path}.${i}`,\r\n parent: this,\r\n required: true\r\n })\r\n ret.preBuild()\r\n ret.build()\r\n ret.postBuild()\r\n\r\n if (!ret.title_controls) {\r\n ret.array_controls = this.theme.getButtonHolder()\r\n if (!this.hide_delete_buttons || this.show_copy_button || !this.hide_move_buttons) {\r\n holder.appendChild(ret.array_controls)\r\n }\r\n }\r\n\r\n return ret\r\n }\r\n\r\n checkParent (elem) {\r\n return elem && elem.parentNode\r\n }\r\n\r\n destroy () {\r\n this.empty(true)\r\n if (this.checkParent(this.title)) this.title.parentNode.removeChild(this.title)\r\n if (this.checkParent(this.description)) this.description.parentNode.removeChild(this.description)\r\n if (this.checkParent(this.row_holder)) this.row_holder.parentNode.removeChild(this.row_holder)\r\n if (this.checkParent(this.controls)) this.controls.parentNode.removeChild(this.controls)\r\n if (this.checkParent(this.panel)) this.panel.parentNode.removeChild(this.panel)\r\n\r\n this.rows = this.row_cache = this.title = this.description = this.row_holder = this.panel = this.controls = null\r\n\r\n super.destroy()\r\n }\r\n\r\n empty (hard) {\r\n if (!this.rows) return\r\n\r\n this.rows.forEach((row, i) => {\r\n if (hard) {\r\n if (this.checkParent(row.tab)) row.tab.parentNode.removeChild(row.tab)\r\n this.destroyRow(row, true)\r\n this.row_cache[i] = null\r\n }\r\n this.rows[i] = null\r\n })\r\n this.rows = []\r\n if (hard) this.row_cache = []\r\n }\r\n\r\n destroyRow (row, hard) {\r\n const holder = row.container\r\n if (hard) {\r\n row.destroy()\r\n if (holder.parentNode) holder.parentNode.removeChild(holder)\r\n if (this.checkParent(row.tab)) row.tab.parentNode.removeChild(row.tab)\r\n } else {\r\n if (row.tab) row.tab.style.display = 'none'\r\n holder.style.display = 'none'\r\n row.unregister()\r\n }\r\n }\r\n\r\n getMax () {\r\n if ((Array.isArray(this.schema.items)) && this.schema.additionalItems === false) {\r\n return Math.min(this.schema.items.length, this.schema.maxItems || Infinity)\r\n }\r\n return this.schema.maxItems || Infinity\r\n }\r\n\r\n refreshTabs (refreshHeaders) {\r\n this.rows.forEach(row => {\r\n if (!row.tab) return\r\n\r\n if (refreshHeaders) {\r\n row.tab_text.textContent = row.getHeaderText()\r\n } else if (row.tab === this.active_tab) {\r\n this.theme.markTabActive(row)\r\n } else {\r\n this.theme.markTabInactive(row)\r\n }\r\n })\r\n }\r\n\r\n ensureArraySize (value) {\r\n if (!(Array.isArray(value))) value = [value]\r\n\r\n if (this.schema.minItems) {\r\n while (value.length < this.schema.minItems) {\r\n value.push(this.getItemInfo(value.length).default)\r\n }\r\n }\r\n if (this.getMax() && value.length > this.getMax()) {\r\n value = value.slice(0, this.getMax())\r\n }\r\n return value\r\n }\r\n\r\n setValue (value = [], initial) {\r\n /* Make sure value has between minItems and maxItems items in it */\r\n value = this.ensureArraySize(value)\r\n\r\n const serialized = JSON.stringify(value)\r\n if (serialized === this.serialized) return\r\n\r\n value.forEach((val, i) => {\r\n if (this.rows[i]) {\r\n /* TODO: don't set the row's value if it hasn't changed */\r\n this.rows[i].setValue(val, initial)\r\n } else if (this.row_cache[i]) {\r\n this.rows[i] = this.row_cache[i]\r\n this.rows[i].setValue(val, initial)\r\n this.rows[i].container.style.display = ''\r\n if (this.rows[i].tab) this.rows[i].tab.style.display = ''\r\n this.rows[i].register()\r\n this.jsoneditor.trigger('addRow', this.rows[i])\r\n } else {\r\n const editor = this.addRow(val, initial)\r\n this.jsoneditor.trigger('addRow', editor)\r\n }\r\n })\r\n\r\n for (let j = value.length; j < this.rows.length; j++) {\r\n this.destroyRow(this.rows[j])\r\n this.rows[j] = null\r\n }\r\n this.rows = this.rows.slice(0, value.length)\r\n\r\n /* Set the active tab */\r\n const row = this.rows.find(row => row.tab === this.active_tab)\r\n let newActiveTab = typeof row !== 'undefined' ? row.tab : null\r\n if (!newActiveTab && this.rows.length) newActiveTab = this.rows[0].tab\r\n\r\n this.active_tab = newActiveTab\r\n\r\n this.refreshValue(initial)\r\n this.refreshTabs(true)\r\n this.refreshTabs()\r\n\r\n this.onChange()\r\n\r\n /* TODO: sortable */\r\n }\r\n\r\n setVisibility (element, display) {\r\n element.style.display = display ? '' : 'none'\r\n }\r\n\r\n setupButtons (minItems) {\r\n const controlsNeeded = []\r\n\r\n if (!this.value.length) {\r\n this.delete_last_row_button.style.display = 'none'\r\n this.remove_all_rows_button.style.display = 'none'\r\n } else if (this.value.length === 1) {\r\n this.remove_all_rows_button.style.display = 'none'\r\n\r\n /* If there are minItems items in the array, or configured to hide the delete_last_row button, hide the delete button beneath the rows */\r\n const display = !(minItems || this.hide_delete_last_row_buttons)\r\n this.setVisibility(this.delete_last_row_button, display)\r\n controlsNeeded.push(display)\r\n } else {\r\n const display1 = !(minItems || this.hide_delete_last_row_buttons)\r\n this.setVisibility(this.delete_last_row_button, display1)\r\n controlsNeeded.push(display1)\r\n\r\n const display2 = !(minItems || this.hide_delete_all_rows_buttons)\r\n this.setVisibility(this.remove_all_rows_button, display2)\r\n controlsNeeded.push(display2)\r\n }\r\n\r\n /* If there are maxItems in the array, hide the add button beneath the rows */\r\n const display = !((this.getMax() && this.getMax() <= this.rows.length) || this.hide_add_button)\r\n this.setVisibility(this.add_row_button, display)\r\n controlsNeeded.push(display)\r\n\r\n return controlsNeeded.some(e => e)\r\n }\r\n\r\n refreshValue (force) {\r\n const oldi = this.value ? this.value.length : 0\r\n /* Get the value for this editor */\r\n this.value = this.rows.map(editor => editor.getValue())\r\n\r\n if (oldi !== this.value.length || force) {\r\n /* If we currently have minItems items in the array */\r\n const minItems = this.schema.minItems && this.schema.minItems >= this.rows.length\r\n\r\n this.rows.forEach((editor, i) => {\r\n /* Hide the move down button for the last row */\r\n if (editor.movedown_button) {\r\n const display = (i !== this.rows.length - 1)\r\n this.setVisibility(editor.movedown_button, display)\r\n }\r\n\r\n /* Hide the delete button if we have minItems items */\r\n if (editor.delete_button) {\r\n this.setVisibility(editor.delete_button, !minItems)\r\n }\r\n\r\n /* Get the value for this editor */\r\n this.value[i] = editor.getValue()\r\n })\r\n\r\n if (!this.collapsed && this.setupButtons(minItems)) {\r\n this.controls.style.display = 'inline-block'\r\n } else {\r\n this.controls.style.display = 'none'\r\n }\r\n }\r\n this.serialized = JSON.stringify(this.value)\r\n }\r\n\r\n addRow (value, initial) {\r\n const i = this.rows.length\r\n\r\n this.rows[i] = this.getElementEditor(i)\r\n this.row_cache[i] = this.rows[i]\r\n\r\n if (this.tabs_holder) {\r\n this.rows[i].tab_text = document.createElement('span')\r\n this.rows[i].tab_text.textContent = this.rows[i].getHeaderText()\r\n if (this.schema.format === 'tabs-top') {\r\n this.rows[i].tab = this.theme.getTopTab(this.rows[i].tab_text, this.getValidId(this.rows[i].path))\r\n this.theme.addTopTab(this.tabs_holder, this.rows[i].tab)\r\n } else {\r\n this.rows[i].tab = this.theme.getTab(this.rows[i].tab_text, this.getValidId(this.rows[i].path))\r\n this.theme.addTab(this.tabs_holder, this.rows[i].tab)\r\n }\r\n this.rows[i].tab.addEventListener('click', (e) => {\r\n this.active_tab = this.rows[i].tab\r\n this.refreshTabs()\r\n e.preventDefault()\r\n e.stopPropagation()\r\n })\r\n }\r\n\r\n const controlsHolder = this.rows[i].title_controls || this.rows[i].array_controls\r\n\r\n /* Buttons to delete row, move row up, and move row down */\r\n if (!this.hide_delete_buttons) {\r\n this.rows[i].delete_button = this._createDeleteButton(i, controlsHolder)\r\n }\r\n\r\n /* Button to copy an array element and add it as last element */\r\n if (this.show_copy_button) {\r\n this.rows[i].copy_button = this._createCopyButton(i, controlsHolder)\r\n }\r\n\r\n if (i && !this.hide_move_buttons) {\r\n this.rows[i].moveup_button = this._createMoveUpButton(i, controlsHolder)\r\n }\r\n\r\n if (!this.hide_move_buttons) {\r\n this.rows[i].movedown_button = this._createMoveDownButton(i, controlsHolder)\r\n }\r\n\r\n if (typeof value !== 'undefined') this.rows[i].setValue(value, initial)\r\n this.refreshTabs()\r\n\r\n return this.rows[i]\r\n }\r\n\r\n _createDeleteButton (i, holder) {\r\n const button = this.getButton(this.getItemTitle(), 'delete', 'button_delete_row_title', [this.getItemTitle()])\r\n button.classList.add('delete', 'json-editor-btntype-delete')\r\n button.setAttribute('data-i', i)\r\n button.addEventListener('click', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n if (!this.askConfirmation()) {\r\n return false\r\n }\r\n\r\n const i = e.currentTarget.getAttribute('data-i') * 1\r\n const newval = this.getValue().filter((row, j) => j !== i)\r\n let newActiveTab = null\r\n\r\n const editor = this.rows[i]\r\n\r\n this.setValue(newval)\r\n\r\n if (this.rows[i]) {\r\n newActiveTab = this.rows[i].tab\r\n } else if (this.rows[i - 1]) {\r\n newActiveTab = this.rows[i - 1].tab\r\n }\r\n\r\n if (newActiveTab) {\r\n this.active_tab = newActiveTab\r\n this.refreshTabs()\r\n }\r\n\r\n this.onChange(true)\r\n this.jsoneditor.trigger('deleteRow', editor)\r\n })\r\n\r\n if (holder) {\r\n holder.appendChild(button)\r\n }\r\n return button\r\n }\r\n\r\n _createCopyButton (i, holder) {\r\n const button = this.getButton(this.getItemTitle(), 'copy', 'button_copy_row_title', [this.getItemTitle()])\r\n button.classList.add('copy', 'json-editor-btntype-copy')\r\n button.setAttribute('data-i', i)\r\n button.addEventListener('click', e => {\r\n const value = this.getValue()\r\n e.preventDefault()\r\n e.stopPropagation()\r\n const i = e.currentTarget.getAttribute('data-i') * 1\r\n\r\n value.forEach((row, j) => {\r\n if (j === i) {\r\n value.push(row)\r\n }\r\n })\r\n\r\n this.setValue(value)\r\n this.refreshValue(true)\r\n this.onChange(true)\r\n })\r\n\r\n holder.appendChild(button)\r\n return button\r\n }\r\n\r\n _createMoveUpButton (i, holder) {\r\n const button = this.getButton('', (this.schema.format === 'tabs-top' ? 'moveleft' : 'moveup'), 'button_move_up_title')\r\n button.classList.add('moveup', 'json-editor-btntype-move')\r\n button.setAttribute('data-i', i)\r\n button.addEventListener('click', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n const i = e.currentTarget.getAttribute('data-i') * 1\r\n\r\n if (i <= 0) return\r\n const rows = this.getValue()\r\n const tmp = rows[i - 1]\r\n rows[i - 1] = rows[i]\r\n rows[i] = tmp\r\n\r\n this.setValue(rows)\r\n this.active_tab = this.rows[i - 1].tab\r\n this.refreshTabs()\r\n\r\n this.onChange(true)\r\n\r\n this.jsoneditor.trigger('moveRow', this.rows[i - 1])\r\n })\r\n\r\n if (holder) {\r\n holder.appendChild(button)\r\n }\r\n return button\r\n }\r\n\r\n _createMoveDownButton (i, holder) {\r\n const button = this.getButton('', (this.schema.format === 'tabs-top' ? 'moveright' : 'movedown'), 'button_move_down_title')\r\n button.classList.add('movedown', 'json-editor-btntype-move')\r\n button.setAttribute('data-i', i)\r\n button.addEventListener('click', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n const i = e.currentTarget.getAttribute('data-i') * 1\r\n\r\n const rows = this.getValue()\r\n if (i >= rows.length - 1) return\r\n const tmp = rows[i + 1]\r\n rows[i + 1] = rows[i]\r\n rows[i] = tmp\r\n\r\n this.setValue(rows)\r\n this.active_tab = this.rows[i + 1].tab\r\n this.refreshTabs()\r\n this.onChange(true)\r\n\r\n this.jsoneditor.trigger('moveRow', this.rows[i + 1])\r\n })\r\n\r\n if (holder) {\r\n holder.appendChild(button)\r\n }\r\n return button\r\n }\r\n\r\n addControls () {\r\n this.collapsed = false\r\n this.toggle_button = this._createToggleButton()\r\n\r\n /* If it should start collapsed */\r\n if (this.options.collapsed) {\r\n trigger(this.toggle_button, 'click')\r\n }\r\n\r\n /* Collapse button disabled */\r\n if (this.schema.options && typeof this.schema.options.disable_collapse !== 'undefined') {\r\n if (this.schema.options.disable_collapse) this.toggle_button.style.display = 'none'\r\n } else if (this.jsoneditor.options.disable_collapse) {\r\n this.toggle_button.style.display = 'none'\r\n }\r\n\r\n /* Add \"new row\" and \"delete last\" buttons below editor */\r\n this.add_row_button = this._createAddRowButton()\r\n this.delete_last_row_button = this._createDeleteLastRowButton()\r\n this.remove_all_rows_button = this._createRemoveAllRowsButton()\r\n\r\n if (this.tabs) {\r\n this.add_row_button.classList.add('je-array-control-btn')\r\n this.delete_last_row_button.classList.add('je-array-control-btn')\r\n this.remove_all_rows_button.classList.add('je-array-control-btn')\r\n }\r\n }\r\n\r\n _createToggleButton () {\r\n const button = this.getButton('', 'collapse', 'button_collapse')\r\n button.classList.add('json-editor-btntype-toggle')\r\n this.title.insertBefore(button, this.title.childNodes[0])\r\n\r\n const rowHolderDisplay = this.row_holder.style.display\r\n const controlsDisplay = this.controls.style.display\r\n button.addEventListener('click', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n if (this.panel) this.setVisibility(this.panel, this.collapsed)\r\n if (this.tabs_holder) this.setVisibility(this.tabs_holder, this.collapsed)\r\n if (this.collapsed) {\r\n this.collapsed = false\r\n this.row_holder.style.display = rowHolderDisplay\r\n this.controls.style.display = controlsDisplay\r\n this.setButtonText(e.currentTarget, '', 'collapse', 'button_collapse')\r\n } else {\r\n this.collapsed = true\r\n this.row_holder.style.display = 'none'\r\n this.controls.style.display = 'none'\r\n this.setButtonText(e.currentTarget, '', 'expand', 'button_expand')\r\n }\r\n })\r\n return button\r\n }\r\n\r\n _createAddRowButton () {\r\n const button = this.getButton(this.getItemTitle(), 'add', 'button_add_row_title', [this.getItemTitle()])\r\n button.classList.add('json-editor-btntype-add')\r\n button.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n const i = this.rows.length\r\n let editor\r\n if (this.row_cache[i]) {\r\n editor = this.rows[i] = this.row_cache[i]\r\n this.rows[i].setValue(this.rows[i].getDefault(), true)\r\n this.rows[i].container.style.display = ''\r\n if (this.rows[i].tab) this.rows[i].tab.style.display = ''\r\n this.rows[i].register()\r\n } else {\r\n editor = this.addRow()\r\n }\r\n this.active_tab = this.rows[i].tab\r\n this.refreshTabs()\r\n this.refreshValue()\r\n this.onChange(true)\r\n this.jsoneditor.trigger('addRow', editor)\r\n })\r\n this.controls.appendChild(button)\r\n return button\r\n }\r\n\r\n _createDeleteLastRowButton () {\r\n const button = this.getButton('button_delete_last', 'subtract', 'button_delete_last_title', [this.getItemTitle()])\r\n button.classList.add('json-editor-btntype-deletelast')\r\n button.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n if (!this.askConfirmation()) {\r\n return false\r\n }\r\n\r\n const rows = this.getValue()\r\n let newActiveTab = null\r\n\r\n const editor = rows.pop()\r\n\r\n this.setValue(rows)\r\n\r\n if (this.rows[this.rows.length - 1]) {\r\n newActiveTab = this.rows[this.rows.length - 1].tab\r\n }\r\n\r\n if (newActiveTab) {\r\n this.active_tab = newActiveTab\r\n this.refreshTabs()\r\n }\r\n\r\n this.onChange(true)\r\n this.jsoneditor.trigger('deleteRow', editor)\r\n })\r\n this.controls.appendChild(button)\r\n return button\r\n }\r\n\r\n _createRemoveAllRowsButton () {\r\n const button = this.getButton('button_delete_all', 'delete', 'button_delete_all_title')\r\n button.classList.add('json-editor-btntype-deleteall')\r\n button.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n if (!this.askConfirmation()) {\r\n return false\r\n }\r\n\r\n this.empty(true)\r\n this.setValue([])\r\n this.onChange(true)\r\n this.jsoneditor.trigger('deleteAllRows')\r\n })\r\n this.controls.appendChild(button)\r\n return button\r\n }\r\n\r\n showValidationErrors (errors) {\r\n /* Get all the errors that pertain to this editor */\r\n const myErrors = []\r\n const otherErrors = []\r\n errors.forEach(error => {\r\n if (error.path === this.path) {\r\n myErrors.push(error)\r\n } else {\r\n otherErrors.push(error)\r\n }\r\n })\r\n\r\n /* Show errors for this editor */\r\n if (this.error_holder) {\r\n if (myErrors.length) {\r\n this.error_holder.innerHTML = ''\r\n this.error_holder.style.display = ''\r\n myErrors.forEach(error => {\r\n this.error_holder.appendChild(this.theme.getErrorMessage(error.message))\r\n })\r\n /* Hide error area */\r\n } else {\r\n this.error_holder.style.display = 'none'\r\n }\r\n }\r\n\r\n /* Show errors for child editors */\r\n this.rows.forEach(row =>\r\n row.showValidationErrors(otherErrors)\r\n )\r\n }\r\n}\r\nArrayEditor.rules = rules\r\n","import { MultiSelectEditor } from '../multiselect.js'\r\nimport { extend } from '../../utilities.js'\r\n\r\nexport class ArrayChoicesEditor extends MultiSelectEditor {\r\n setValue (value, initial) {\r\n if (this.choices_instance) {\r\n /* Make sure we are dealing with an array of strings so we can check for strict equality */\r\n value = [].concat(value).map(e => `${e}`)\r\n\r\n this.updateValue(value) /* Sets this.value to sanitized value */\r\n\r\n this.choices_instance.removeActiveItems() /* Remove existing selection */\r\n this.choices_instance.setChoiceByValue(this.value) /* Set new selection */\r\n\r\n this.onChange(true)\r\n } else super.setValue(value, initial)\r\n }\r\n\r\n afterInputReady () {\r\n if (window.Choices && !this.choices_instance) {\r\n /* Get options, either global options from \"this.defaults.options.choices\" or */\r\n /* single property options from schema \"options.choices\" */\r\n const options = this.expandCallbacks('choices', extend({}, {\r\n removeItems: true,\r\n removeItemButton: true\r\n }, this.defaults.options.choices || {}, this.options.choices || {}, {\r\n addItems: true,\r\n editItems: false,\r\n duplicateItemsAllowed: false\r\n }))\r\n\r\n /* New items are allowed if option \"addItems\" is true and items type is \"string\" */\r\n /* this.newEnumAllowed = options.addItems = !!options.addItems && this.schema.items && this.schema.items.type == 'string'; */\r\n\r\n /* Choices doesn't support adding new items to select type input */\r\n this.newEnumAllowed = false\r\n\r\n this.choices_instance = new window.Choices(this.input, options)\r\n\r\n /* Remove change handler set in parent class (src/multiselect.js) */\r\n this.control.removeEventListener('change', this.multiselectChangeHandler)\r\n\r\n /* Create a new change handler */\r\n this.multiselectChangeHandler = e => {\r\n const value = this.choices_instance.getValue(true)\r\n this.updateValue(value)\r\n this.onChange(true)\r\n }\r\n this.control.addEventListener('change', this.multiselectChangeHandler, false)\r\n }\r\n super.afterInputReady()\r\n }\r\n\r\n updateValue (value) {\r\n value = [].concat(value)\r\n let changed = false; const newValue = []\r\n for (let i = 0; i < value.length; i++) {\r\n if (!this.select_values[`${value[i]}`]) {\r\n changed = true\r\n if (this.newEnumAllowed) {\r\n if (!this.addNewOption(value[i])) continue\r\n } else continue\r\n }\r\n const sanitized = this.sanitize(this.select_values[value[i]])\r\n newValue.push(sanitized)\r\n if (sanitized !== value[i]) changed = true\r\n }\r\n this.value = newValue\r\n\r\n return changed\r\n }\r\n\r\n addNewOption (value) {\r\n /* Add new value and label */\r\n this.option_keys.push(`${value}`)\r\n this.option_titles.push(`${value}`)\r\n this.select_values[`${value}`] = value\r\n /* Update Schema enum to prevent triggering \"Value must be one of the enumerated values\" */\r\n this.schema.items.enum.push(value)\r\n /* Add new value and label to choices */\r\n this.choices_instance.setChoices([{ value: `${value}`, label: `${value}` }], 'value', 'label', false)\r\n\r\n return true\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled && this.choices_instance) this.choices_instance.enable()\r\n super.enable()\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (this.choices_instance) this.choices_instance.disable()\r\n super.disable(alwaysDisabled)\r\n }\r\n\r\n destroy () {\r\n if (this.choices_instance) {\r\n this.choices_instance.destroy()\r\n this.choices_instance = null\r\n }\r\n super.destroy()\r\n }\r\n}\r\n","import { MultiSelectEditor } from '../multiselect.js'\r\nimport { extend, hasOwnProperty } from '../../utilities.js'\r\n\r\nexport class ArraySelect2Editor extends MultiSelectEditor {\r\n setValue (value, initial) {\r\n if (this.select2_instance) {\r\n /* Make sure we are dealing with an array of strings so we can check for strict equality */\r\n value = [].concat(value).map(e => `${e}`)\r\n\r\n this.updateValue(value) /* Sets this.value to sanitized value */\r\n\r\n if (this.select2v4) this.select2_instance.val(this.value).change()\r\n else this.select2_instance.select2('val', this.value)\r\n\r\n this.onChange(true)\r\n } else super.setValue(value, initial)\r\n }\r\n\r\n afterInputReady () {\r\n let options\r\n\r\n if (window.jQuery && window.jQuery.fn && window.jQuery.fn.select2 && !this.select2_instance) {\r\n /* Get options, either global options from \"this.defaults.options.select2\" or */\r\n /* single property options from schema \"options.select2\" */\r\n options = this.expandCallbacks('select2', extend({}, {\r\n tags: true,\r\n width: '100%'\r\n }, this.defaults.options.select2 || {}, this.options.select2 || {}))\r\n\r\n /* New items are allowed if option \"tags\" is true and items type is \"string\" */\r\n this.newEnumAllowed = options.tags = !!options.tags && this.schema.items && this.schema.items.type === 'string'\r\n\r\n this.select2_instance = window.jQuery(this.input).select2(options)\r\n this.select2v4 = hasOwnProperty(this.select2_instance.select2, 'amd')\r\n\r\n this.selectChangeHandler = () => {\r\n const value = this.select2v4 ? this.select2_instance.val() : this.select2_instance.select2('val')\r\n this.updateValue(value)\r\n this.onChange(true)\r\n }\r\n\r\n /* Add event handler. */\r\n /* Note: Must use the \"on()\" method and not addEventListener() */\r\n this.select2_instance.on('select2-blur', this.selectChangeHandler)\r\n this.select2_instance.on('change', this.selectChangeHandler)\r\n }\r\n super.afterInputReady()\r\n }\r\n\r\n updateValue (value) {\r\n value = [].concat(value)\r\n let changed = false; const newValue = []\r\n for (let i = 0; i < value.length; i++) {\r\n /* if (!this.select_options[value[i]+'']) { */\r\n if (!this.select_values[`${value[i]}`]) {\r\n changed = true\r\n if (this.newEnumAllowed) {\r\n if (!this.addNewOption(value[i])) continue\r\n } else continue\r\n }\r\n const sanitized = this.sanitize(this.select_values[value[i]])\r\n newValue.push(sanitized)\r\n if (sanitized !== value[i]) changed = true\r\n }\r\n this.value = newValue\r\n\r\n return changed\r\n }\r\n\r\n addNewOption (value) {\r\n /* Add new value and label */\r\n this.option_keys.push(`${value}`)\r\n this.option_titles.push(`${value}`)\r\n this.select_values[`${value}`] = value\r\n /* Update Schema enum to prevent triggering \"Value must be one of the enumerated values\" */\r\n this.schema.items.enum.push(value)\r\n\r\n const optionTag = this.input.querySelector(`option[value=\"${value}\"]`)\r\n /* Remove data attribute to make option tag permanent. (user input) */\r\n if (optionTag) optionTag.removeAttribute('data-select2-tag')\r\n /* Create new option tag (setValue) */\r\n else this.input.appendChild(new Option(value, value, false, false)).trigger('change')\r\n\r\n return true\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled && this.select2_instance) {\r\n if (this.select2v4) this.select2_instance.prop('disabled', false)\r\n else this.select2_instance.select2('enable', true)\r\n }\r\n super.enable()\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (this.select2_instance) {\r\n if (this.select2v4) this.select2_instance.prop('disabled', true)\r\n else this.select2_instance.select2('enable', false)\r\n }\r\n super.disable()\r\n }\r\n\r\n destroy () {\r\n if (this.select2_instance) {\r\n this.select2_instance.select2('destroy')\r\n this.select2_instance = null\r\n }\r\n super.destroy()\r\n }\r\n}\r\n","import { MultiSelectEditor } from '../multiselect.js'\r\nimport { extend } from '../../utilities.js'\r\n\r\nexport class ArraySelectizeEditor extends MultiSelectEditor {\r\n setValue (value, initial) {\r\n if (this.selectize_instance) {\r\n /* Make sure we are dealing with an array of strings so we can check for strict equality */\r\n value = [].concat(value).map(e => `${e}`)\r\n\r\n this.updateValue(value) /* Sets this.value to sanitized value */\r\n\r\n this.selectize_instance.setValue(this.value)\r\n\r\n this.onChange(true)\r\n } else super.setValue(value, initial)\r\n }\r\n\r\n afterInputReady () {\r\n let options\r\n\r\n if (window.jQuery && window.jQuery.fn && window.jQuery.fn.selectize && !this.selectize_instance) {\r\n /* Get options, either global options from \"this.defaults.options.selectize\" or */\r\n /* single property options from schema \"options.selectize\" */\r\n options = this.expandCallbacks('selectize', extend({}, {\r\n plugins: ['remove_button'],\r\n delimiter: false,\r\n createOnBlur: true,\r\n create: true\r\n }, this.defaults.options.selectize || {}, this.options.selectize || {}))\r\n\r\n /* New items are allowed if option \"create\" is true and items type is \"string\" */\r\n this.newEnumAllowed = options.create = !!options.create && this.schema.items && this.schema.items.type === 'string'\r\n\r\n this.selectize_instance = (window.jQuery(this.input).selectize(options))[0].selectize\r\n\r\n /* Remove change handler set in parent class (src/multiselect.js) */\r\n this.control.removeEventListener('change', this.multiselectChangeHandler)\r\n\r\n /* Create a new change handler */\r\n this.multiselectChangeHandler = e => {\r\n const value = this.selectize_instance.getValue()\r\n this.updateValue(value)\r\n this.onChange(true)\r\n }\r\n\r\n /* Add new event handler. */\r\n /* Note: Must use the \"on()\" method and not addEventListener() */\r\n this.selectize_instance.on('change', this.multiselectChangeHandler)\r\n }\r\n super.afterInputReady()\r\n }\r\n\r\n updateValue (value) {\r\n value = [].concat(value)\r\n let changed = false; const newValue = []\r\n for (let i = 0; i < value.length; i++) {\r\n /* if (!this.select_options[value[i]+'']) { */\r\n if (!this.select_values[`${value[i]}`]) {\r\n changed = true\r\n if (this.newEnumAllowed) {\r\n if (!this.addNewOption(value[i])) continue\r\n } else continue\r\n }\r\n const sanitized = this.sanitize(this.select_values[value[i]])\r\n newValue.push(sanitized)\r\n if (sanitized !== value[i]) changed = true\r\n }\r\n this.value = newValue\r\n\r\n return changed\r\n }\r\n\r\n addNewOption (value) {\r\n /* Add new value and label */\r\n this.option_keys.push(`${value}`)\r\n this.option_titles.push(`${value}`)\r\n this.select_values[`${value}`] = value\r\n /* Update Schema enum to prevent triggering \"Value must be one of the enumerated values\" */\r\n this.schema.items.enum.push(value)\r\n /* Add new value and label to selectize */\r\n this.selectize_instance.addOption({ text: value, value })\r\n\r\n return true\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled && this.selectize_instance) this.selectize_instance.unlock()\r\n super.enable()\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (this.selectize_instance) this.selectize_instance.lock()\r\n super.disable(alwaysDisabled)\r\n }\r\n\r\n destroy () {\r\n if (this.selectize_instance) {\r\n this.selectize_instance.destroy()\r\n this.selectize_instance = null\r\n }\r\n super.destroy()\r\n }\r\n}\r\n","import { StringEditor } from './string.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class AutocompleteEditor extends StringEditor {\r\n postBuild () {\r\n if (window.Autocomplete) {\r\n /* create wrapper container */\r\n this.autocomplete_wrapper = document.createElement('div')\r\n\r\n /* insert wrapper after this.input in the DOM tree */\r\n this.input.parentNode.insertBefore(this.autocomplete_wrapper, this.input.nextSibling)\r\n\r\n /* move this.input into wrapper */\r\n this.autocomplete_wrapper.appendChild(this.input)\r\n\r\n /* create dropdown container */\r\n this.autocomplete_dropdown = document.createElement('ul')\r\n\r\n /* insert dropdown after this.input in the DOM tree */\r\n this.input.parentNode.insertBefore(this.autocomplete_dropdown, this.input.nextSibling)\r\n }\r\n super.postBuild()\r\n }\r\n\r\n afterInputReady () {\r\n let options\r\n\r\n if (window.Autocomplete && !this.autocomplete_instance) {\r\n /* Get options, either global options from \"this.defaults.options.autocomplete\" or */\r\n /* single property options from schema \"options.autocomplete\" */\r\n options = this.expandCallbacks('autocomplete', extend({}, {\r\n search: (jseditor, input) => {\r\n // eslint-disable-next-line no-console\r\n console.log(`No \"search\" callback defined for autocomplete in property \"${jseditor.key}\"`)\r\n return []\r\n },\r\n baseClass: 'autocomplete'\r\n }, this.defaults.options.autocomplete || {}, this.options.autocomplete || {}))\r\n\r\n this.autocomplete_wrapper.classList.add(options.baseClass)\r\n this.autocomplete_dropdown.classList.add(`${options.baseClass}-result-list`)\r\n /* this.input.classList.add(options.baseClass + '-input'); */\r\n\r\n this.autocomplete_instance = new window.Autocomplete(this.autocomplete_wrapper, options)\r\n }\r\n super.afterInputReady()\r\n }\r\n\r\n destroy () {\r\n if (this.autocomplete_instance) {\r\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\r\n if (this.autocomplete_dropdown && this.autocomplete_dropdown.parentNode) this.autocomplete_dropdown.parentNode.removeChild(this.autocomplete_dropdown)\r\n if (this.autocomplete_wrapper && this.autocomplete_wrapper.parentNode) this.autocomplete_wrapper.parentNode.removeChild(this.autocomplete_wrapper)\r\n this.autocomplete_instance = null\r\n }\r\n super.destroy()\r\n }\r\n}\r\n","import { AbstractEditor } from '../editor.js'\r\n\r\nexport class Base64Editor extends AbstractEditor {\r\n getNumColumns () {\r\n return 4\r\n }\r\n\r\n setFileReaderListener (frMultiple) {\r\n frMultiple.addEventListener('load', (event) => {\r\n if (this.count === this.current_item_index) {\r\n /* Overwrite existing file by default, leave other properties unchanged */\r\n this.value[this.count][this.key] = event.target.result\r\n } else {\r\n const tempObject = {}\r\n /* Create empty object */\r\n for (const key in this.parent.schema.properties) {\r\n tempObject[key] = ''\r\n }\r\n /* Set object media file */\r\n tempObject[this.key] = event.target.result\r\n this.value.splice(this.count, 0, tempObject) /* insert new file object */\r\n }\r\n\r\n /* Increment using the listener and not the 'for' loop as the listener will be processed asynchronously */\r\n this.count += 1\r\n /* When all files have been processed, update the value of the editor */\r\n if (this.count === (this.total + this.current_item_index)) {\r\n this.arrayEditor.setValue(this.value)\r\n }\r\n })\r\n }\r\n\r\n build () {\r\n if (!this.options.compact) this.title = this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\r\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\r\n\r\n /* Input that holds the base64 string */\r\n this.input = this.theme.getFormInputField('hidden')\r\n this.container.appendChild(this.input)\r\n\r\n /* Don't show uploader if this is readonly */\r\n if (!this.schema.readOnly && !this.schema.readonly) {\r\n if (!window.FileReader) throw new Error('FileReader required for base64 editor')\r\n\r\n /* File uploader */\r\n this.uploader = this.theme.getFormInputField('file')\r\n\r\n /* Set attribute of file input field to 'multiple' if: */\r\n /* 'multiple' key has been set to 'true' in the schema */\r\n /* and the parent object is of type 'object' */\r\n /* and the parent of the parent type has been set to 'array' */\r\n if (this.schema.options && this.schema.options.multiple && this.schema.options.multiple === true && this.parent && this.parent.schema.type === 'object' && this.parent.parent && this.parent.parent.schema.type === 'array') {\r\n this.uploader.setAttribute('multiple', '')\r\n }\r\n\r\n this.uploader.addEventListener('change', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n if (e.currentTarget.files && e.currentTarget.files.length) {\r\n /* Check the amount of files uploaded. */\r\n /* If 1, use the regular upload, otherwise use the multiple upload method */\r\n if (e.currentTarget.files.length > 1 && this.schema.options && this.schema.options.multiple && this.schema.options.multiple === true && this.parent && this.parent.schema.type === 'object' && this.parent.parent && this.parent.parent.schema.type === 'array') {\r\n /* Load editor of parent.parent to get the array */\r\n this.arrayEditor = this.jsoneditor.getEditor(this.parent.parent.path)\r\n /* Check the current value of this editor */\r\n this.value = this.arrayEditor.getValue()\r\n /* Set variables for amount of files, index of current array item and */\r\n /* count value containing current status of processed files */\r\n this.total = e.currentTarget.files.length\r\n this.current_item_index = parseInt(this.parent.key)\r\n this.count = this.current_item_index\r\n\r\n for (let i = 0; i < this.total; i++) {\r\n const frMultiple = new FileReader()\r\n this.setFileReaderListener(frMultiple)\r\n frMultiple.readAsDataURL(e.currentTarget.files[i])\r\n }\r\n } else {\r\n let fr = new FileReader()\r\n fr.onload = (evt) => {\r\n this.value = evt.target.result\r\n this.refreshPreview()\r\n this.onChange(true)\r\n fr = null\r\n }\r\n fr.readAsDataURL(e.currentTarget.files[0])\r\n }\r\n }\r\n })\r\n }\r\n\r\n this.preview = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\r\n this.container.appendChild(this.preview)\r\n\r\n this.control = this.theme.getFormControl(this.label, this.uploader || this.input, this.preview, this.infoButton)\r\n this.container.appendChild(this.control)\r\n }\r\n\r\n refreshPreview () {\r\n if (this.last_preview === this.value) return\r\n this.last_preview = this.value\r\n\r\n this.preview.innerHTML = ''\r\n\r\n if (!this.value) return\r\n\r\n let mime = this.value.match(/^data:([^;,]+)[;,]/)\r\n if (mime) mime = mime[1]\r\n\r\n if (!mime) {\r\n this.preview.innerHTML = '<em>Invalid data URI</em>'\r\n } else {\r\n this.preview.innerHTML = `<strong>Type:</strong> ${mime}, <strong>Size:</strong> ${Math.floor((this.value.length - this.value.split(',')[0].length - 1) / 1.33333)} bytes`\r\n if (mime.substr(0, 5) === 'image') {\r\n this.preview.innerHTML += '<br>'\r\n const img = document.createElement('img')\r\n img.style.maxWidth = '100%'\r\n img.style.maxHeight = '100px'\r\n img.src = this.value\r\n this.preview.appendChild(img)\r\n }\r\n }\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n if (this.uploader) this.uploader.disabled = false\r\n super.enable()\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n if (this.uploader) this.uploader.disabled = true\r\n super.disable()\r\n }\r\n\r\n setValue (val) {\r\n if (this.value !== val) {\r\n if (this.schema.readOnly && this.schema.enum && !this.schema.enum.includes(val)) this.value = this.schema.enum[0]\r\n else this.value = val\r\n this.input.value = this.value\r\n this.refreshPreview()\r\n this.onChange()\r\n }\r\n }\r\n\r\n destroy () {\r\n if (this.preview && this.preview.parentNode) this.preview.parentNode.removeChild(this.preview)\r\n if (this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title)\r\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\r\n if (this.uploader && this.uploader.parentNode) this.uploader.parentNode.removeChild(this.uploader)\r\n\r\n super.destroy()\r\n }\r\n}\r\n","/* Non-Active editor for displaying buttons in form */\r\nimport { AbstractEditor } from '../editor.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class ButtonEditor extends AbstractEditor {\r\n constructor (options, defaults) {\r\n super(options, defaults)\r\n this.active = false\r\n\r\n /* Set field to required in schema otherwise it will not be displayed */\r\n if (this.parent && this.parent.schema) {\r\n if (Array.isArray(this.parent.schema.required)) {\r\n if (!this.parent.schema.required.includes(this.key)) {\r\n this.parent.schema.required.push(this.key)\r\n }\r\n } else {\r\n this.parent.schema.required = [this.key]\r\n }\r\n }\r\n }\r\n\r\n build () {\r\n this.options.compact = true\r\n\r\n /* Get options, either global options from \"this.defaults.options.button\" or */\r\n /* single property options from schema \"options.button\" */\r\n const title = this.translateProperty(this.schema.title) || this.key\r\n const options = this.expandCallbacks('button', extend({}, {\r\n icon: '',\r\n validated: false,\r\n align: 'left',\r\n action: (jseditor, e) => {\r\n window.alert(`No button action defined for \"${jseditor.path}\"`)\r\n }\r\n }, this.defaults.options.button || {}, this.options.button || {}))\r\n\r\n this.input = this.theme.getFormButton(title, options.icon, title)\r\n this.input.addEventListener('click', options.action, false)\r\n\r\n if (this.schema.readOnly || this.schema.readonly || this.schema.template) {\r\n this.disable(true)\r\n this.input.setAttribute('readonly', 'true')\r\n }\r\n\r\n /* Set custom attributes on input element. Parameter is array of protected keys. Empty array if none. */\r\n this.setInputAttributes(['readonly'])\r\n\r\n this.control = this.theme.getFormButtonHolder(options.align)\r\n this.control.appendChild(this.input)\r\n\r\n this.container.appendChild(this.control)\r\n\r\n this.changeHandler = () => {\r\n if (this.jsoneditor.validate(this.jsoneditor.getValue()).length > 0) this.disable()\r\n else this.enable()\r\n }\r\n\r\n /* Enable/disable the button depending on form validation */\r\n if (options.validated) this.jsoneditor.on('change', this.changeHandler)\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n this.input.disabled = false\r\n super.enable()\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n this.input.disabled = true\r\n super.disable()\r\n }\r\n\r\n getNumColumns () {\r\n return 2\r\n }\r\n\r\n activate () {\r\n this.active = false\r\n this.enable()\r\n }\r\n\r\n deactivate () {\r\n /* only non required properties can be deactivated. */\r\n if (!this.isRequired()) {\r\n this.active = false\r\n this.disable()\r\n }\r\n }\r\n\r\n destroy () {\r\n this.jsoneditor.off('change', this.changeHandler)\r\n this.changeHandler = null\r\n super.destroy()\r\n }\r\n}\r\n","import { AbstractEditor } from '../editor.js'\r\n\r\nexport class CheckboxEditor extends AbstractEditor {\r\n setValue (value, initial) {\r\n value = !!value\r\n const changed = this.getValue() !== value\r\n this.value = value\r\n this.input.checked = this.value\r\n this.onChange(changed)\r\n }\r\n\r\n register () {\r\n super.register()\r\n if (!this.input) return\r\n this.input.setAttribute('name', this.formname)\r\n }\r\n\r\n unregister () {\r\n super.unregister()\r\n if (!this.input) return\r\n this.input.removeAttribute('name')\r\n }\r\n\r\n getNumColumns () {\r\n return Math.min(12, Math.max(Math.ceil(this.getTitle().length / 7), 2))\r\n }\r\n\r\n build () {\r\n if (!this.parent.options.table_row) {\r\n this.label = this.header = this.theme.getCheckboxLabel(this.getTitle(), this.isRequired())\r\n this.label.htmlFor = this.formname\r\n }\r\n\r\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\r\n if (this.options.infoText && !this.options.compact) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\r\n if (this.options.compact) this.container.classList.add('compact')\r\n\r\n this.input = this.theme.getCheckbox()\r\n this.input.id = this.formname\r\n this.control = this.theme.getFormControl(this.label, this.input, this.description, this.infoButton)\r\n\r\n if (this.schema.readOnly || this.schema.readonly) {\r\n this.disable(true)\r\n this.input.disabled = true\r\n }\r\n\r\n this.input.addEventListener('change', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.value = e.currentTarget.checked\r\n this.onChange(true)\r\n })\r\n\r\n this.container.appendChild(this.control)\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n this.input.disabled = false\r\n super.enable()\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n this.input.disabled = true\r\n super.disable()\r\n }\r\n\r\n destroy () {\r\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\r\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\r\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\r\n super.destroy()\r\n }\r\n\r\n showValidationErrors (errors) {\r\n this.previous_error_setting = this.jsoneditor.options.show_errors\r\n\r\n const addMessage = (messages, error) => {\r\n if (error.path === this.path) {\r\n messages.push(error.message)\r\n }\r\n return messages\r\n }\r\n const messages = errors.reduce(addMessage, [])\r\n this.input.controlgroup = this.control\r\n\r\n if (messages.length) {\r\n this.theme.addInputError(this.input, `${messages.join('. ')}.`)\r\n } else {\r\n this.theme.removeInputError(this.input)\r\n }\r\n }\r\n}\r\n","/* eslint-disable */\nexport default {\".choices > *\":\"box-sizing:border-box\"}\n/* eslint-enable */\n","import { SelectEditor } from './select.js'\r\nimport { extend } from '../utilities.js'\r\nimport rules from './choices.css.js'\r\n\r\nexport class ChoicesEditor extends SelectEditor {\r\n setValue (value, initial) {\r\n if (this.choices_instance) {\r\n /* Sanitize value before setting it */\r\n let sanitized = this.typecast(value || '')\r\n\r\n if (!this.enum_values.includes(sanitized)) sanitized = this.enum_values[0]\r\n\r\n if (this.value === sanitized) return\r\n\r\n if (initial) this.is_dirty = false\r\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\r\n\r\n this.input.value = this.enum_options[this.enum_values.indexOf(sanitized)]\r\n\r\n this.choices_instance.setChoiceByValue(this.input.value)\r\n\r\n this.value = sanitized\r\n this.onChange()\r\n } else super.setValue(value, initial)\r\n }\r\n\r\n afterInputReady () {\r\n if (window.Choices && !this.choices_instance) {\r\n /* Get options, either global options from \"this.defaults.options.choices\" or */\r\n /* single property options from schema \"options.choices\" */\r\n const options = this.expandCallbacks('choices', extend({}, this.defaults.options.choices || {}, this.options.choices || {}))\r\n\r\n this.choices_instance = new window.Choices(this.input, options)\r\n }\r\n super.afterInputReady()\r\n }\r\n\r\n onWatchedFieldChange () {\r\n super.onWatchedFieldChange()\r\n if (this.choices_instance) {\r\n const choicesList = this.enum_options.map((v, i) => ({\r\n value: v,\r\n label: this.enum_display[i]\r\n }))\r\n this.choices_instance.setChoices(choicesList, 'value', 'label', true)\r\n this.choices_instance.setChoiceByValue(`${this.value}`) /* Set new selection */\r\n }\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled && this.choices_instance) this.choices_instance.enable()\r\n super.enable()\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (this.choices_instance) this.choices_instance.disable()\r\n super.disable(alwaysDisabled)\r\n }\r\n\r\n destroy () {\r\n if (this.choices_instance) {\r\n this.choices_instance.destroy()\r\n this.choices_instance = null\r\n }\r\n super.destroy()\r\n }\r\n}\r\n\r\nChoicesEditor.rules = rules\r\n","/*\r\n\r\nEdtended handling of oolor type fields.\r\n\r\nHas optional support for using https://github.com/Sphinxxxx/vanilla-picker.\r\n\r\n*/\r\nimport { StringEditor } from './string.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class ColorEditor extends StringEditor {\r\n postBuild () {\r\n if (window.Picker) {\r\n this.input.type = 'text'\r\n }\r\n this.input.style.padding = '3px'\r\n }\r\n\r\n setValue (value, initial, fromTemplate) {\r\n const res = super.setValue(value, initial, fromTemplate)\r\n if (this.picker_instance && this.picker_instance.domElement && res && res.changed) {\r\n this.picker_instance.setColor(res.value, true)\r\n }\r\n return res\r\n }\r\n\r\n getNumColumns () {\r\n return 2\r\n }\r\n\r\n afterInputReady () {\r\n super.afterInputReady()\r\n this.createPicker(true)\r\n }\r\n\r\n disable () {\r\n super.disable()\r\n if (this.picker_instance && this.picker_instance.domElement) {\r\n /* Disable picker cursor dragging */\r\n this.picker_instance.domElement.style.pointerEvents = 'none'\r\n /* Disable picker buttons */\r\n const buttons = this.picker_instance.domElement.querySelectorAll('button')\r\n for (let i = 0; i < buttons.length; i++) {\r\n buttons[i].disabled = true\r\n }\r\n }\r\n }\r\n\r\n enable () {\r\n super.enable()\r\n if (this.picker_instance && this.picker_instance.domElement) {\r\n /* Enable picker cursor dragging */\r\n this.picker_instance.domElement.style.pointerEvents = 'auto'\r\n /* Enable picker buttons */\r\n const buttons = this.picker_instance.domElement.querySelectorAll('button')\r\n for (let i = 0; i < buttons.length; i++) {\r\n buttons[i].disabled = false\r\n }\r\n }\r\n }\r\n\r\n destroy () {\r\n this.createPicker(false)\r\n super.destroy()\r\n }\r\n\r\n /* helper functions */\r\n createPicker (create) {\r\n if (create) { /* create vanilla-picker */\r\n if (window.Picker && !this.picker_instance) { /* do when vanilla-picker loaded */\r\n const options = this.expandCallbacks('colorpicker', extend({}, {\r\n editor: false, /* default no editor */\r\n alpha: false, /* default no alpha */\r\n color: this.value,\r\n popup: 'bottom' /* show in the bottom */\r\n }, this.defaults.options.colorpicker || {}, this.options.colorpicker || {}, {\r\n parent: this.container\r\n }))\r\n\r\n const updateHandler = color => {\r\n const format = this.picker_instance.settings.editorFormat\r\n const isAlpha = this.picker_instance.settings.alpha\r\n this.setValue(format === 'hex' ? (isAlpha ? color.hex : color.hex.slice(0, 7)) : color[`${format + (isAlpha ? 'a' : '')}String`])\r\n }\r\n if (!options.popup && typeof options.onChange !== 'function') options.onChange = updateHandler\r\n else if (options.popup && typeof options.onDone !== 'function') options.onDone = updateHandler\r\n\r\n this.picker_instance = new window.Picker(options)\r\n /* this.picker_instance.openHandler() */\r\n if (!options.popup) { /* use inline colorPicker */\r\n this.input.style.display = 'none'\r\n this.theme.afterInputReady(this.picker_instance.domElement)\r\n }\r\n }\r\n } else { /* destroy vanilla-picker */\r\n if (this.picker_instance) {\r\n this.picker_instance.destroy()\r\n this.picker_instance = null\r\n this.input.style.display = ''\r\n }\r\n }\r\n }\r\n}\r\n","/*\r\n\r\nEdtended handling of date, time and datetime-local type fields.\r\n\r\nWorks with both string and integer data types. (default only support string type)\r\n\r\nHas optional support for using flatpickr datepicker.\r\nAll flatpickr options is supported with a few minor differences.\r\n- \"enableTime\" and \"noCalendar\" are set automatically, based on the data type.\r\n- Extra config option \"errorDateFormat\". If this is set, it will replace the format displayed in error messages.\r\n- It is not possible to use \"inline\" and \"wrap\" options together.\r\n- When using the \"wrap\" option, \"toggle\" and \"clear\" buttons are automatically added to markup. 2 extra boolean options (\"showToggleButton\" and \"showClearButton\") are available to control which buttons to display. Note: not all frameworks supports this. (Works in: Bootstrap and Foundation)\r\n- When using the \"inline\" option, an extra boolean option (\"inlineHideInput\") is available to hide the original input field.\r\n- If \"mode\" is set to either \"multiple\" or \"range\", only string data type is supported. Also the result from these is returned as a string not an array.\r\n\r\nToDo:\r\n - Improve Handling of flatpicker \"multiple\" and \"range\" modes. (Currently the values are just added as string values, but the optimal scenario would be to save those as array if possible)\r\n\r\n*/\r\nimport { StringEditor } from './string.js'\r\n\r\nexport class DatetimeEditor extends StringEditor {\r\n build () {\r\n super.build()\r\n if (!this.input) {\r\n return\r\n }\r\n\r\n if (this.schema.max && typeof this.schema.max === 'string') {\r\n this.input.setAttribute('max', this.schema.max)\r\n }\r\n\r\n if (this.schema.min && typeof this.schema.max === 'string') {\r\n this.input.setAttribute('min', this.schema.min)\r\n }\r\n\r\n if (window.flatpickr && typeof this.options.flatpickr === 'object') {\r\n /* Make sure that flatpickr settings matches the input type */\r\n this.options.flatpickr.enableTime = this.schema.format !== 'date'\r\n this.options.flatpickr.noCalendar = this.schema.format === 'time'\r\n\r\n /* Curently only string can contain range or multiple values */\r\n if (this.schema.type === 'integer') this.options.flatpickr.mode = 'single'\r\n\r\n /* Attribute for flatpicker */\r\n this.input.setAttribute('data-input', '')\r\n\r\n let { input } = this\r\n\r\n if (this.options.flatpickr.wrap === true) {\r\n /* Create buttons for input group */\r\n const buttons = []\r\n if (this.options.flatpickr.showToggleButton !== false) {\r\n const toggleButton = this.getButton('', this.schema.format === 'time' ? 'time' : 'calendar', 'flatpickr_toggle_button')\r\n /* Attribute for flatpicker */\r\n toggleButton.setAttribute('data-toggle', '')\r\n buttons.push(toggleButton)\r\n }\r\n if (this.options.flatpickr.showClearButton !== false) {\r\n const clearButton = this.getButton('', 'clear', 'flatpickr_clear_button')\r\n /* Attribute for flatpicker */\r\n clearButton.setAttribute('data-clear', '')\r\n buttons.push(clearButton)\r\n }\r\n\r\n /* Save position of input field */\r\n const { parentNode } = this.input; const { nextSibling } = this.input\r\n\r\n const buttonContainer = this.theme.getInputGroup(this.input, buttons)\r\n if (buttonContainer !== undefined) {\r\n /* Make sure \"inline\" option is turned off */\r\n this.options.flatpickr.inline = false\r\n\r\n /* Insert container at same position as input field */\r\n parentNode.insertBefore(buttonContainer, nextSibling)\r\n\r\n input = buttonContainer\r\n } else {\r\n this.options.flatpickr.wrap = false\r\n }\r\n }\r\n\r\n this.flatpickr = window.flatpickr(input, this.options.flatpickr)\r\n\r\n if (this.options.flatpickr.inline === true && this.options.flatpickr.inlineHideInput === true) {\r\n this.input.setAttribute('type', 'hidden')\r\n }\r\n }\r\n }\r\n\r\n getValue () {\r\n if (!this.dependenciesFulfilled) {\r\n return undefined\r\n }\r\n if (this.schema.type === 'string') {\r\n return this.value\r\n }\r\n if (this.value === '' || this.value === undefined) {\r\n return undefined\r\n }\r\n\r\n const value = this.schema.format === 'time' ? `1970-01-01 ${this.value}` : this.value\r\n return parseInt(new Date(value).getTime() / 1000)\r\n }\r\n\r\n setValue (value, initial, fromTemplate) {\r\n if (this.schema.type === 'string') {\r\n super.setValue(value, initial, fromTemplate)\r\n if (this.flatpickr) this.flatpickr.setDate(value)\r\n } else if (value > 0) {\r\n const dateObj = new Date(value * 1000)\r\n const year = dateObj.getFullYear()\r\n const month = this.zeroPad(dateObj.getMonth() + 1)\r\n const day = this.zeroPad(dateObj.getDate())\r\n const hour = this.zeroPad(dateObj.getHours())\r\n const min = this.zeroPad(dateObj.getMinutes())\r\n const sec = this.zeroPad(dateObj.getSeconds())\r\n const date = [year, month, day].join('-')\r\n const time = [hour, min, sec].join(':')\r\n let dateValue = `${date}T${time}`\r\n\r\n if (this.schema.format === 'date') dateValue = date\r\n else if (this.schema.format === 'time') dateValue = time\r\n\r\n this.input.value = dateValue\r\n this.refreshValue()\r\n if (this.flatpickr) this.flatpickr.setDate(dateValue)\r\n }\r\n }\r\n\r\n destroy () {\r\n if (this.flatpickr) this.flatpickr.destroy()\r\n this.flatpickr = null\r\n super.destroy()\r\n }\r\n\r\n /* helper function */\r\n zeroPad (value) {\r\n return (`0${value}`).slice(-2)\r\n }\r\n}\r\n","/* hyper-link describeBy Editor */\r\nimport { AbstractEditor } from '../editor.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class DescribedByEditor extends AbstractEditor {\r\n register () {\r\n if (this.editors) {\r\n for (let i = 0; i < this.editors.length; i++) {\r\n if (!this.editors[i]) continue\r\n this.editors[i].unregister()\r\n }\r\n\r\n if (this.editors[this.currentEditor]) this.editors[this.currentEditor].register()\r\n }\r\n\r\n super.register()\r\n }\r\n\r\n unregister () {\r\n super.unregister()\r\n\r\n if (this.editors) {\r\n for (let i = 0; i < this.editors.length; i++) {\r\n if (!this.editors[i]) continue\r\n this.editors[i].unregister()\r\n }\r\n }\r\n }\r\n\r\n getNumColumns () {\r\n if (!this.editors[this.currentEditor]) return 4\r\n return Math.max(this.editors[this.currentEditor].getNumColumns(), 4)\r\n }\r\n\r\n enable () {\r\n if (this.editors) {\r\n for (let i = 0; i < this.editors.length; i++) {\r\n if (!this.editors[i]) continue\r\n this.editors[i].enable()\r\n }\r\n }\r\n\r\n super.enable()\r\n }\r\n\r\n disable () {\r\n if (this.editors) {\r\n for (let i = 0; i < this.editors.length; i++) {\r\n if (!this.editors[i]) continue\r\n this.editors[i].disable()\r\n }\r\n }\r\n\r\n super.disable()\r\n }\r\n\r\n switchEditor () {\r\n const vars = this.getWatchedFieldValues()\r\n\r\n if (!vars) return\r\n\r\n /* var ref = this.template.fillFromObject(vars); */\r\n /* var ref = this.template(vars); */\r\n const ref = document.location.origin + document.location.pathname + this.template(vars)\r\n\r\n if (!this.editors[this.refs[ref]]) {\r\n this.buildChildEditor(ref)\r\n }\r\n\r\n this.currentEditor = this.refs[ref]\r\n\r\n this.register()\r\n\r\n this.editors.forEach((editor, ref) => {\r\n if (!editor) return\r\n if (this.currentEditor === ref) {\r\n editor.container.style.display = ''\r\n } else {\r\n editor.container.style.display = 'none'\r\n }\r\n })\r\n\r\n this.refreshValue()\r\n this.onChange(true)\r\n }\r\n\r\n buildChildEditor (ref) {\r\n this.refs[ref] = this.editors.length\r\n\r\n const holder = this.theme.getChildEditorHolder()\r\n this.editor_holder.appendChild(holder)\r\n\r\n const schema = extend({}, this.schema, this.jsoneditor.refs[ref])\r\n\r\n const editorClass = this.jsoneditor.getEditorClass(schema, this.jsoneditor)\r\n\r\n const editor = this.jsoneditor.createEditor(editorClass, {\r\n jsoneditor: this.jsoneditor,\r\n schema,\r\n container: holder,\r\n path: this.path,\r\n parent: this,\r\n required: true\r\n }\r\n )\r\n\r\n this.editors.push(editor)\r\n\r\n editor.preBuild()\r\n editor.build()\r\n editor.postBuild()\r\n }\r\n\r\n preBuild () {\r\n this.refs = {}\r\n this.editors = []\r\n this.currentEditor = ''\r\n let i\r\n for (i = 0; i < this.schema.links.length; i++) {\r\n if (this.schema.links[i].rel.toLowerCase() === 'describedby') {\r\n /* this.template = new UriTemplate(this.schema.links[i].href); */\r\n this.template = this.jsoneditor.compileTemplate(this.schema.links[i].href, this.template_engine)\r\n break\r\n }\r\n }\r\n\r\n /* this.template.fill(function(varName) {\r\n this.schema.watch = this.schema.watch || {};\r\n this.schema.watch[varName] = varName;\r\n return '';\r\n }); */\r\n\r\n this.schema.links = this.schema.links.slice(0, i).concat(this.schema.links.slice(i + 1))\r\n if (this.schema.links.length === 0) delete this.schema.links\r\n this.baseSchema = extend({}, this.schema)\r\n }\r\n\r\n build () {\r\n this.editor_holder = document.createElement('div')\r\n this.container.appendChild(this.editor_holder)\r\n this.switchEditor()\r\n }\r\n\r\n onWatchedFieldChange () {\r\n this.switchEditor()\r\n }\r\n\r\n onChildEditorChange (editor) {\r\n if (this.editors[this.currentEditor]) {\r\n this.refreshValue()\r\n }\r\n\r\n super.onChildEditorChange(editor)\r\n }\r\n\r\n refreshValue () {\r\n if (this.editors[this.currentEditor]) {\r\n this.value = this.editors[this.currentEditor].getValue()\r\n }\r\n }\r\n\r\n setValue (val, initial) {\r\n if (this.editors[this.currentEditor]) {\r\n this.editors[this.currentEditor].setValue(val, initial)\r\n this.refreshValue()\r\n this.onChange()\r\n }\r\n }\r\n\r\n destroy () {\r\n this.editors.forEach(editor => {\r\n if (editor) editor.destroy()\r\n })\r\n\r\n if (this.editor_holder && this.editor_holder.parentNode) {\r\n this.editor_holder.parentNode.removeChild(this.editor_holder)\r\n }\r\n\r\n super.destroy()\r\n }\r\n\r\n showValidationErrors (errors) {\r\n this.editors.forEach(editor => {\r\n if (!editor) return\r\n editor.showValidationErrors(errors)\r\n })\r\n }\r\n}\r\n","/* Enum Editor (used for objects and arrays with enumerated values) */\r\nimport { AbstractEditor } from '../editor.js'\r\n\r\nexport class EnumEditor extends AbstractEditor {\r\n getNumColumns () {\r\n return 4\r\n }\r\n\r\n build () {\r\n this.title = this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\r\n this.container.appendChild(this.title)\r\n\r\n this.options.enum_titles = this.options.enum_titles || []\r\n\r\n this.enum = this.schema.enum\r\n this.selected = 0\r\n this.select_options = []\r\n this.html_values = []\r\n\r\n for (let i = 0; i < this.enum.length; i++) {\r\n this.select_options[i] = this.options.enum_titles[i] || `Value ${i + 1}`\r\n this.html_values[i] = this.getHTML(this.enum[i])\r\n }\r\n\r\n /* Switcher */\r\n this.switcher = this.theme.getSwitcher(this.select_options)\r\n this.container.appendChild(this.switcher)\r\n\r\n /* Display area */\r\n this.display_area = this.theme.getIndentedPanel()\r\n this.container.appendChild(this.display_area)\r\n\r\n if (this.options.hide_display) this.display_area.style.display = 'none'\r\n\r\n this.switcher.addEventListener('change', e => {\r\n this.selected = this.select_options.indexOf(e.currentTarget.value)\r\n this.value = this.enum[this.selected]\r\n this.refreshValue()\r\n this.onChange(true)\r\n })\r\n this.value = this.enum[0]\r\n this.refreshValue()\r\n\r\n if (this.enum.length === 1) this.switcher.style.display = 'none'\r\n }\r\n\r\n refreshValue () {\r\n this.selected = -1\r\n const stringified = JSON.stringify(this.value)\r\n this.enum.forEach((el, i) => {\r\n if (stringified === JSON.stringify(el)) {\r\n this.selected = i\r\n return false\r\n }\r\n })\r\n\r\n if (this.selected < 0) {\r\n this.setValue(this.enum[0])\r\n return\r\n }\r\n\r\n this.switcher.value = this.select_options[this.selected]\r\n this.display_area.innerHTML = this.html_values[this.selected]\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n this.switcher.disabled = false\r\n super.enable()\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n this.switcher.disabled = true\r\n super.disable()\r\n }\r\n\r\n getHTML (el) {\r\n const each = (obj, callback) => {\r\n if (Array.isArray(obj) || (typeof obj.length === 'number' && obj.length > 0 && (obj.length - 1) in obj)) {\r\n Array.from(obj).forEach((e, i) => callback(i, e))\r\n } else {\r\n Object.entries(obj).forEach(([key, value]) => callback(key, value))\r\n }\r\n }\r\n\r\n if (el === null) {\r\n return '<em>null</em>'\r\n /* Array or Object */\r\n } else if (typeof el === 'object') {\r\n /* TODO: use theme */\r\n let ret = ''\r\n const callback = (i, child) => {\r\n let html = this.getHTML(child)\r\n /* Add the keys to object children */\r\n if (!(Array.isArray(el))) {\r\n /* TODO: use theme */\r\n html = `<div><em>${i}</em>: ${html}</div>`\r\n }\r\n /* TODO: use theme */\r\n ret += `<li>${html}</li>`\r\n }\r\n each(el, callback)\r\n\r\n if (Array.isArray(el)) ret = `<ol>${ret}</ol>`\r\n else ret = `<ul style='margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;'>${ret}</ul>`\r\n\r\n return ret\r\n /* Boolean */\r\n } else if (typeof el === 'boolean') {\r\n return el ? 'true' : 'false'\r\n /* String */\r\n } else if (typeof el === 'string') {\r\n return el.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')\r\n /* Number */\r\n }\r\n return el\r\n }\r\n\r\n setValue (val) {\r\n if (this.value !== val) {\r\n this.value = val\r\n this.refreshValue()\r\n this.onChange()\r\n }\r\n }\r\n\r\n destroy () {\r\n if (this.display_area && this.display_area.parentNode) this.display_area.parentNode.removeChild(this.display_area)\r\n if (this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title)\r\n if (this.switcher && this.switcher.parentNode) this.switcher.parentNode.removeChild(this.switcher)\r\n\r\n super.destroy()\r\n }\r\n}\r\n","/**\r\n * Created by Mehmet Baker on 12.04.2017\r\n */\r\nimport { AbstractEditor } from '../editor.js'\r\n\r\nexport class HiddenEditor extends AbstractEditor {\r\n register () {\r\n super.register()\r\n if (!this.input) return\r\n this.input.setAttribute('name', this.formname)\r\n }\r\n\r\n unregister () {\r\n super.unregister()\r\n if (!this.input) return\r\n this.input.removeAttribute('name')\r\n }\r\n\r\n setValue (value, initial, fromTemplate) {\r\n if (this.template && !fromTemplate) {\r\n return\r\n }\r\n\r\n if (value === null || typeof value === 'undefined') value = ''\r\n else if (typeof value === 'object') value = JSON.stringify(value)\r\n else if (typeof value !== 'string') value = `${value}`\r\n\r\n if (value === this.serialized) return\r\n\r\n /* Sanitize value before setting it */\r\n const sanitized = this.sanitize(value)\r\n\r\n if (this.input.value === sanitized) {\r\n return\r\n }\r\n\r\n this.input.value = sanitized\r\n\r\n const changed = fromTemplate || this.getValue() !== value\r\n\r\n this.refreshValue()\r\n\r\n if (initial) this.is_dirty = false\r\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\r\n\r\n if (this.adjust_height) this.adjust_height(this.input)\r\n\r\n /* Bubble this setValue to parents if the value changed */\r\n this.onChange(changed)\r\n }\r\n\r\n getNumColumns () {\r\n return 2\r\n }\r\n\r\n enable () {\r\n super.enable()\r\n }\r\n\r\n disable () {\r\n super.disable()\r\n }\r\n\r\n refreshValue () {\r\n this.value = this.input.value\r\n if (typeof this.value !== 'string') this.value = ''\r\n this.serialized = this.value\r\n }\r\n\r\n destroy () {\r\n this.template = null\r\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\r\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\r\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\r\n\r\n super.destroy()\r\n }\r\n\r\n /**\r\n * This is overridden in derivative editors\r\n */\r\n sanitize (value) {\r\n return value\r\n }\r\n\r\n /**\r\n * Re-calculates the value if needed\r\n */\r\n onWatchedFieldChange () {\r\n let vars\r\n\r\n /* If this editor needs to be rendered by a macro template */\r\n if (this.template) {\r\n vars = this.getWatchedFieldValues()\r\n this.setValue(this.template(vars), false, true)\r\n }\r\n\r\n super.onWatchedFieldChange()\r\n }\r\n\r\n build () {\r\n this.format = this.schema.format\r\n if (!this.format && this.options.default_format) {\r\n this.format = this.options.default_format\r\n }\r\n if (this.options.format) {\r\n this.format = this.options.format\r\n }\r\n\r\n this.input_type = 'hidden'\r\n this.input = this.theme.getFormInputField(this.input_type)\r\n\r\n if (this.format) this.input.setAttribute('data-schemaformat', this.format)\r\n\r\n this.container.appendChild(this.input)\r\n\r\n /* Compile and store the template */\r\n if (this.schema.template) {\r\n const callback = this.expandCallbacks('template', { template: this.schema.template })\r\n if (typeof callback.template === 'function') this.template = callback.template\r\n else this.template = this.jsoneditor.compileTemplate(this.schema.template, this.template_engine)\r\n this.refreshValue()\r\n } else {\r\n this.refreshValue()\r\n }\r\n }\r\n}\r\n","/* Internal helper function called only here so we won't export as part of class */\r\n/* Previously the assignment to the JSONEditor.defaults.editors was done in each of the editor */\r\n/* files but doing it this way removes each of the editors' dependency on JSONEditor */\r\n\r\nimport { AceEditor as ace } from './ace.js'\r\nimport { ArrayEditor as array } from './array.js'\r\nimport { ArrayChoicesEditor as arrayChoices } from './array/choices.js'\r\nimport { ArraySelect2Editor as arraySelect2 } from './array/select2.js'\r\nimport { ArraySelectizeEditor as arraySelectize } from './array/selectize.js'\r\nimport { AutocompleteEditor as autocomplete } from './autocomplete.js'\r\nimport { Base64Editor as base64 } from './base64.js'\r\nimport { ButtonEditor as button } from './button.js'\r\nimport { CheckboxEditor as checkbox } from './checkbox.js'\r\nimport { ChoicesEditor as choices } from './choices.js'\r\nimport { DatetimeEditor as datetime } from './datetime.js'\r\nimport { DescribedByEditor as describedBy } from './describedby.js'\r\nimport { EnumEditor } from './enum.js'\r\nimport { HiddenEditor as hidden } from './hidden.js'\r\nimport { InfoEditor as info } from './info.js'\r\nimport { IntegerEditor as integer } from './integer.js'\r\nimport { IpEditor as ip } from './ip.js'\r\nimport { JoditEditor as jodit } from './jodit.js'\r\nimport { MultipleEditor as multiple } from './multiple.js'\r\nimport { MultiSelectEditor as multiselect } from './multiselect.js'\r\nimport { NullEditor } from './null.js'\r\nimport { NumberEditor as number } from './number.js'\r\nimport { ObjectEditor as object } from './object.js'\r\nimport { RadioEditor as radio } from './radio.js'\r\nimport { ScEditor as sceditor } from './sceditor.js'\r\nimport { SelectEditor as select } from './select.js'\r\nimport { Select2Editor as select2 } from './select2.js'\r\nimport { SelectizeEditor as selectize } from './selectize.js'\r\nimport { SignatureEditor as signature } from './signature.js'\r\nimport { SimplemdeEditor as simplemde } from './simplemde.js'\r\nimport { StarratingEditor as starrating } from './starrating.js'\r\nimport { StepperEditor as stepper } from './stepper.js'\r\nimport { StringEditor as string } from './string.js'\r\nimport { TableEditor as table } from './table.js'\r\nimport { UploadEditor as upload } from './upload.js'\r\nimport { UuidEditor as uuid } from './uuid.js'\r\nimport { ColorEditor as colorpicker } from './colorpicker.js'\r\n\r\nexport const editors = {\r\n ace,\r\n array,\r\n arrayChoices,\r\n arraySelect2,\r\n arraySelectize,\r\n autocomplete,\r\n base64,\r\n button,\r\n checkbox,\r\n choices,\r\n datetime,\r\n describedBy,\r\n enum: EnumEditor,\r\n hidden,\r\n info,\r\n integer,\r\n ip,\r\n jodit,\r\n multiple,\r\n multiselect,\r\n null: NullEditor,\r\n number,\r\n object,\r\n radio,\r\n sceditor,\r\n select,\r\n select2,\r\n selectize,\r\n signature,\r\n simplemde,\r\n starrating,\r\n stepper,\r\n string,\r\n table,\r\n upload,\r\n uuid,\r\n colorpicker\r\n}\r\n","/* Non-Active editor for displaying text blocks in form */\r\nimport { ButtonEditor } from './button.js'\r\n\r\nexport class InfoEditor extends ButtonEditor {\r\n build () {\r\n this.options.compact = false\r\n this.header = this.label = this.theme.getFormInputLabel(this.getTitle())\r\n this.description = this.theme.getDescription(this.schema.description || '')\r\n this.control = this.theme.getFormControl(this.label, this.description, null)\r\n this.container.appendChild(this.control)\r\n }\r\n\r\n getTitle () {\r\n return this.translateProperty(this.schema.title)\r\n }\r\n\r\n getNumColumns () {\r\n return 12\r\n }\r\n}\r\n","import { NumberEditor } from './number.js'\r\nimport { isInteger } from '../utilities.js'\r\n\r\nexport class IntegerEditor extends NumberEditor {\r\n getNumColumns () {\r\n return 2\r\n }\r\n\r\n getValue () {\r\n if (!this.dependenciesFulfilled) {\r\n return undefined\r\n }\r\n const value = isInteger(this.value) ? parseInt(this.value) : this.value\r\n if (!this.jsoneditor.options.use_default_values && value === '') {\r\n return undefined\r\n }\r\n return value\r\n }\r\n}\r\n","import { StringEditor } from './string.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class IpEditor extends StringEditor {\r\n preBuild () {\r\n super.preBuild()\r\n\r\n /* Create schema options object if deesn't exist */\r\n if (!this.schema.options) {\r\n this.schema.options = {}\r\n }\r\n\r\n /* Create cleave options if they don't exist */\r\n if (!this.schema.options.cleave) {\r\n switch (this.format) {\r\n case 'ipv6':\r\n this.schema.options.cleave = {\r\n delimiters: [':'],\r\n blocks: [4, 4, 4, 4, 4, 4, 4, 4],\r\n uppercase: true\r\n }\r\n break\r\n case 'ipv4':\r\n this.schema.options.cleave = {\r\n delimiters: ['.'],\r\n blocks: [3, 3, 3, 3],\r\n numericOnly: true\r\n }\r\n break\r\n }\r\n }\r\n\r\n /* Update options object */\r\n this.options = extend(this.options, this.schema.options || {})\r\n }\r\n}\r\n","import { StringEditor } from './string.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class JoditEditor extends StringEditor {\r\n setValue (value, initial, fromTemplate) {\r\n const res = super.setValue(value, initial, fromTemplate)\r\n if (res !== undefined && res.changed && this.jodit_instance) this.jodit_instance.setEditorValue(res.value)\r\n }\r\n\r\n build () {\r\n this.options.format = 'textarea' /* Force format into \"textarea\" */\r\n super.build()\r\n this.input_type = this.schema.format /* Restore original format */\r\n this.input.setAttribute('data-schemaformat', this.input_type)\r\n }\r\n\r\n afterInputReady () {\r\n let options\r\n\r\n if (window.Jodit) {\r\n /* Get options, either global options from \"this.defaults.options.jodit\" or */\r\n /* single property options from schema \"options.jodit\" */\r\n options = this.expandCallbacks('jodit', extend({}, {\r\n height: 300\r\n }, this.defaults.options.jodit || {}, this.options.jodit || {}))\r\n\r\n this.jodit_instance = new window.Jodit(this.input, options)\r\n\r\n if (this.schema.readOnly || this.schema.readonly || this.schema.template) {\r\n this.jodit_instance.setReadOnly(true)\r\n }\r\n\r\n this.jodit_instance.events.on('change', () => {\r\n this.value = this.jodit_instance.getEditorValue()\r\n this.is_dirty = true\r\n this.onChange(true)\r\n })\r\n\r\n this.theme.afterInputReady(this.input)\r\n } else super.afterInputReady() /* Library not loaded, so just treat this as a string */\r\n }\r\n\r\n getNumColumns () {\r\n return 6\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled && this.jodit_instance) this.jodit_instance.setReadOnly(false)\r\n super.enable()\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (this.jodit_instance) this.jodit_instance.setReadOnly(true)\r\n super.disable(alwaysDisabled)\r\n }\r\n\r\n destroy () {\r\n if (this.jodit_instance) {\r\n this.jodit_instance.destruct()\r\n this.jodit_instance = null\r\n }\r\n super.destroy()\r\n }\r\n}\r\n","/* Multiple Editor (for when `type` is an array, also when `oneOf` is present) */\r\nimport { AbstractEditor } from '../editor.js'\r\nimport { Validator } from '../validator.js'\r\nimport { extend, mergeDeep, overwriteExistingProperties } from '../utilities.js'\r\n\r\nexport class MultipleEditor extends AbstractEditor {\r\n register () {\r\n if (this.editors) {\r\n for (let i = 0; i < this.editors.length; i++) {\r\n if (!this.editors[i]) continue\r\n this.editors[i].unregister()\r\n }\r\n if (this.editors[this.type]) this.editors[this.type].register()\r\n }\r\n super.register()\r\n }\r\n\r\n unregister () {\r\n super.unregister()\r\n if (this.editors) {\r\n for (let i = 0; i < this.editors.length; i++) {\r\n if (!this.editors[i]) continue\r\n this.editors[i].unregister()\r\n }\r\n }\r\n }\r\n\r\n getNumColumns () {\r\n if (!this.editors[this.type]) return 4\r\n return Math.max(this.editors[this.type].getNumColumns(), 4)\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n if (this.editors) {\r\n for (let i = 0; i < this.editors.length; i++) {\r\n if (!this.editors[i]) continue\r\n this.editors[i].enable()\r\n }\r\n }\r\n this.switcher.disabled = false\r\n super.enable()\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n if (this.editors) {\r\n for (let i = 0; i < this.editors.length; i++) {\r\n if (!this.editors[i]) continue\r\n this.editors[i].disable(alwaysDisabled)\r\n }\r\n }\r\n this.switcher.disabled = true\r\n super.disable()\r\n }\r\n\r\n switchEditor (i) {\r\n this.lastType = this.type\r\n\r\n if (!this.editors[i]) {\r\n this.buildChildEditor(i)\r\n }\r\n\r\n let currentValue = this.getValue()\r\n\r\n this.type = i\r\n\r\n this.register()\r\n\r\n this.editors.forEach((editor, type) => {\r\n if (!editor) return\r\n\r\n if (this.type === type) {\r\n if (this.keep_only_existing_values) {\r\n currentValue = overwriteExistingProperties(editor.getValue(), currentValue)\r\n }\r\n\r\n if (this.keep_values || this.if) editor.setValue(currentValue, true)\r\n editor.container.style.display = ''\r\n } else {\r\n editor.container.style.display = 'none'\r\n }\r\n })\r\n\r\n this.refreshValue()\r\n this.refreshHeaderText()\r\n }\r\n\r\n buildChildEditor (i) {\r\n const type = this.types[i]\r\n const holder = this.theme.getChildEditorHolder()\r\n this.editor_holder.appendChild(holder)\r\n\r\n let schema\r\n\r\n if (typeof type === 'string') {\r\n schema = extend({}, this.schema)\r\n schema.type = type\r\n } else {\r\n schema = extend({}, this.schema, type)\r\n schema = this.jsoneditor.expandRefs(schema)\r\n\r\n /* If we need to merge `required` arrays */\r\n if (type && type.required && Array.isArray(type.required) && this.schema.required && Array.isArray(this.schema.required)) {\r\n schema.required = this.schema.required.concat(type.required)\r\n }\r\n }\r\n\r\n const editor = this.jsoneditor.getEditorClass(schema)\r\n\r\n this.editors[i] = this.jsoneditor.createEditor(editor, {\r\n jsoneditor: this.jsoneditor,\r\n schema,\r\n container: holder,\r\n path: this.path,\r\n parent: this,\r\n required: true\r\n })\r\n this.editors[i].preBuild()\r\n this.editors[i].build()\r\n this.editors[i].postBuild()\r\n\r\n if (this.editors[i].header) this.editors[i].header.style.display = 'none'\r\n\r\n this.editors[i].option = this.switcher_options[i]\r\n\r\n holder.addEventListener('change_header_text', () => {\r\n this.refreshHeaderText()\r\n })\r\n\r\n if (i !== this.type) holder.style.display = 'none'\r\n }\r\n\r\n preBuild () {\r\n this.types = []\r\n this.type = 0\r\n this.editors = []\r\n this.validators = []\r\n\r\n this.keep_values = true\r\n if (typeof this.jsoneditor.options.keep_oneof_values !== 'undefined') this.keep_values = this.jsoneditor.options.keep_oneof_values\r\n if (typeof this.options.keep_oneof_values !== 'undefined') this.keep_values = this.options.keep_oneof_values\r\n\r\n this.keep_only_existing_values = false\r\n if (typeof this.jsoneditor.options.keep_only_existing_values !== 'undefined') this.keep_only_existing_values = this.jsoneditor.options.keep_only_existing_values\r\n if (typeof this.options.keep_only_existing_values !== 'undefined') this.keep_only_existing_values = this.options.keep_only_existing_values\r\n\r\n if (this.schema.oneOf) {\r\n this.oneOf = true\r\n this.types = this.schema.oneOf\r\n delete this.schema.oneOf\r\n } else if (this.schema.anyOf) {\r\n this.anyOf = true\r\n this.types = this.schema.anyOf\r\n delete this.schema.anyOf\r\n } else if (this.schema.if) {\r\n this.if = true\r\n this.ifSchema = JSON.parse(JSON.stringify(this.schema.if))\r\n this.thenSchema = { title: 'then' }\r\n this.elseSchema = { title: 'else' }\r\n this.types = []\r\n\r\n if (this.schema.then) {\r\n mergeDeep(this.thenSchema, this.schema, this.schema.then)\r\n }\r\n\r\n if (this.schema.else) {\r\n mergeDeep(this.elseSchema, this.schema, this.schema.else)\r\n }\r\n\r\n this.types.push(this.thenSchema)\r\n this.types.push(this.elseSchema)\r\n\r\n this.types.forEach((schema) => {\r\n delete schema.if\r\n delete schema.then\r\n delete schema.else\r\n })\r\n\r\n delete this.schema.if\r\n } else {\r\n if (!this.schema.type || this.schema.type === 'any') {\r\n this.types = ['string', 'number', 'integer', 'boolean', 'object', 'array', 'null']\r\n\r\n /* If any of these primitive types are disallowed */\r\n if (this.schema.disallow) {\r\n let { disallow } = this.schema\r\n if (typeof disallow !== 'object' || !(Array.isArray(disallow))) {\r\n disallow = [disallow]\r\n }\r\n const allowedTypes = []\r\n this.types.forEach(type => {\r\n if (!disallow.includes(type)) allowedTypes.push(type)\r\n })\r\n this.types = allowedTypes\r\n }\r\n } else if (Array.isArray(this.schema.type)) {\r\n this.types = this.schema.type\r\n } else {\r\n this.types = [this.schema.type]\r\n }\r\n delete this.schema.type\r\n }\r\n\r\n this.display_text = this.getDisplayText(this.types)\r\n }\r\n\r\n build () {\r\n const { container } = this\r\n this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\r\n this.switcher = this.theme.getSwitcher(this.display_text)\r\n\r\n if (!this.if) {\r\n this.container.appendChild(this.header)\r\n container.appendChild(this.switcher)\r\n }\r\n\r\n this.switcher.addEventListener('change', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n this.switchEditor(this.display_text.indexOf(e.currentTarget.value))\r\n this.onChange(true)\r\n })\r\n\r\n this.editor_holder = document.createElement('div')\r\n container.appendChild(this.editor_holder)\r\n\r\n const validatorOptions = {}\r\n if (this.jsoneditor.options.custom_validators) {\r\n validatorOptions.custom_validators = this.jsoneditor.options.custom_validators\r\n }\r\n\r\n this.switcher_options = this.theme.getSwitcherOptions(this.switcher)\r\n this.types.forEach((type, i) => {\r\n this.editors[i] = false\r\n\r\n let schema\r\n\r\n if (typeof type === 'string') {\r\n schema = extend({}, this.schema)\r\n schema.type = type\r\n } else {\r\n schema = extend({}, this.schema, type)\r\n\r\n /* If we need to merge `required` arrays */\r\n if (type.required && Array.isArray(type.required) && this.schema.required && Array.isArray(this.schema.required)) {\r\n schema.required = this.schema.required.concat(type.required)\r\n }\r\n }\r\n this.validators[i] = new Validator(this.jsoneditor, schema, validatorOptions, this.defaults)\r\n })\r\n\r\n this.jsoneditor.on('change', () => {\r\n this.switchIf()\r\n })\r\n\r\n this.switchEditor(0)\r\n }\r\n\r\n onChildEditorChange (editor) {\r\n if (this.editors[this.type]) {\r\n this.refreshValue()\r\n this.refreshHeaderText()\r\n }\r\n\r\n super.onChildEditorChange()\r\n }\r\n\r\n refreshHeaderText () {\r\n const displayText = this.getDisplayText(this.types)\r\n Array.from(this.switcher_options).forEach((option, i) => {\r\n option.textContent = displayText[i]\r\n })\r\n }\r\n\r\n refreshValue () {\r\n if (!this.editors[this.type]) {\r\n return\r\n }\r\n this.value = this.editors[this.type].getValue()\r\n }\r\n\r\n switchIf () {\r\n if (this.ifSchema && this.value) {\r\n const type = this.getIfType(this.value)\r\n\r\n if (this.lastType !== type) {\r\n this.switchEditor(type)\r\n this.editors[this.type].setValue(this.value, true)\r\n }\r\n\r\n this.switcher.value = this.display_text[this.type]\r\n }\r\n }\r\n\r\n getIfType (value) {\r\n const errors = this.jsoneditor.validator._validateSchema(this.ifSchema, value)\r\n return errors.length === 0 ? 0 : 1\r\n }\r\n\r\n setValue (val, initial) {\r\n /* Determine type by getting the first one that validates */\r\n\r\n const prevType = this.type\r\n /* find the best match one */\r\n let fitTestVal = {\r\n match: 0,\r\n extra: 0,\r\n i: this.type\r\n }\r\n const validVal = {\r\n match: 0,\r\n i: null\r\n }\r\n this.validators.forEach((validator, i) => {\r\n let fitTestResult = null\r\n if (typeof this.anyOf !== 'undefined' && this.anyOf) {\r\n fitTestResult = validator.fitTest(val)\r\n if (fitTestVal.match < fitTestResult.match) {\r\n fitTestVal = fitTestResult\r\n fitTestVal.i = i\r\n } else if (fitTestVal.match === fitTestResult.match) {\r\n if (fitTestVal.extra > fitTestResult.extra) {\r\n fitTestVal = fitTestResult\r\n fitTestVal.i = i\r\n }\r\n }\r\n }\r\n if (!validator.validate(val).length && validVal.i === null) {\r\n validVal.i = i\r\n if (fitTestResult !== null) {\r\n validVal.match = fitTestResult.match\r\n }\r\n }\r\n })\r\n let finalI = validVal.i\r\n /* if the best fit schema has more match properties, then use the best fit schema. */\r\n /* usually the value could be */\r\n if (typeof this.anyOf !== 'undefined' && this.anyOf) {\r\n if (validVal.match < fitTestVal.match) {\r\n finalI = fitTestVal.i\r\n }\r\n }\r\n if (this.if) {\r\n finalI = this.getIfType(val)\r\n }\r\n if (finalI === null) {\r\n finalI = this.type\r\n }\r\n this.type = finalI\r\n this.switcher.value = this.display_text[finalI]\r\n\r\n const typeChanged = this.type !== prevType\r\n\r\n if (typeChanged) {\r\n this.switchEditor(this.type)\r\n this.editors[this.type].setValue(val, initial)\r\n }\r\n\r\n this.editors[this.type].setValue(val, initial)\r\n\r\n this.refreshValue()\r\n this.onChange(typeChanged)\r\n }\r\n\r\n destroy () {\r\n this.editors.forEach(editor => {\r\n if (editor) editor.destroy()\r\n })\r\n if (this.editor_holder && this.editor_holder.parentNode) this.editor_holder.parentNode.removeChild(this.editor_holder)\r\n if (this.switcher && this.switcher.parentNode) this.switcher.parentNode.removeChild(this.switcher)\r\n super.destroy()\r\n }\r\n\r\n showValidationErrors (errors) {\r\n /* oneOf and anyOf error paths need to remove the oneOf[i] part before passing to child editors */\r\n if (this.oneOf || this.anyOf) {\r\n const checkPart = this.oneOf ? 'oneOf' : 'anyOf'\r\n this.editors.forEach((editor, i) => {\r\n if (!editor) return\r\n const check = `${this.path}.${checkPart}[${i}]`\r\n const filterError = (newErrors, error) => {\r\n if (error.path.startsWith(check) || error.path === check.substr(0, error.path.length)) {\r\n const newError = extend({}, error)\r\n\r\n if (error.path.startsWith(check)) {\r\n newError.path = this.path + newError.path.substr(check.length)\r\n }\r\n\r\n newErrors.push(newError)\r\n }\r\n return newErrors\r\n }\r\n editor.showValidationErrors(errors.reduce(filterError, []))\r\n })\r\n } else {\r\n this.editors.forEach(editor => {\r\n if (!editor) return\r\n editor.showValidationErrors(errors)\r\n })\r\n }\r\n }\r\n\r\n addLinks () {\r\n // multiple editor itself don't create links\r\n }\r\n}\r\n","import { AbstractEditor } from '../editor.js'\r\n\r\nexport class MultiSelectEditor extends AbstractEditor {\r\n onInputChange () {\r\n this.value = this.input.value\r\n this.onChange(true)\r\n }\r\n\r\n register () {\r\n super.register()\r\n if (!this.input) return\r\n this.input.setAttribute('name', this.formname)\r\n }\r\n\r\n unregister () {\r\n super.unregister()\r\n if (!this.input) return\r\n this.input.removeAttribute('name')\r\n }\r\n\r\n getNumColumns () {\r\n let longestText = this.getTitle().length\r\n Object.keys(this.select_values).forEach(i => (longestText = Math.max(longestText, (`${this.select_values[i]}`).length + 4)))\r\n\r\n return Math.min(12, Math.max(Math.ceil(longestText / 7), 2))\r\n }\r\n\r\n preBuild () {\r\n super.preBuild()\r\n\r\n this.select_options = {}\r\n this.select_values = {}\r\n this.option_keys = []\r\n this.option_titles = []\r\n\r\n let i\r\n const itemsSchema = this.jsoneditor.expandRefs(this.schema.items || {})\r\n const e = itemsSchema.enum || []\r\n const t = itemsSchema.options ? itemsSchema.options.enum_titles || [] : []\r\n\r\n for (i = 0; i < e.length; i++) {\r\n /* If the sanitized value is different from the enum value, don't include it */\r\n if (this.sanitize(e[i]) !== e[i]) continue\r\n\r\n this.option_keys.push(`${e[i]}`)\r\n this.option_titles.push(`${this.translateProperty(t[i]) || e[i]}`)\r\n this.select_values[`${e[i]}`] = e[i]\r\n }\r\n }\r\n\r\n build () {\r\n let i\r\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\r\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\r\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\r\n if (this.options.compact) this.container.classList.add('compact')\r\n\r\n if ((!this.schema.format && this.option_keys.length < 8) || this.schema.format === 'checkbox') {\r\n this.input_type = 'checkboxes'\r\n\r\n this.inputs = {}\r\n this.controls = {}\r\n for (i = 0; i < this.option_keys.length; i++) {\r\n const id = this.formname + i.toString()\r\n this.inputs[this.option_keys[i]] = this.theme.getCheckbox()\r\n this.inputs[this.option_keys[i]].id = id\r\n this.select_options[this.option_keys[i]] = this.inputs[this.option_keys[i]]\r\n const label = this.theme.getCheckboxLabel(this.option_titles[i])\r\n label.htmlFor = id\r\n this.controls[this.option_keys[i]] = this.theme.getFormControl(label, this.inputs[this.option_keys[i]])\r\n }\r\n\r\n this.control = this.theme.getMultiCheckboxHolder(this.controls, this.label, this.description, this.infoButton)\r\n this.inputs.controlgroup = this.inputs.controls = this.control /* Enable error messages for checkboxes */\r\n } else {\r\n this.input_type = 'select'\r\n this.input = this.theme.getSelectInput(this.option_keys, true)\r\n this.theme.setSelectOptions(this.input, this.option_keys, this.option_titles)\r\n /* this.input.multiple = true; */\r\n this.input.setAttribute('multiple', 'multiple')\r\n this.input.size = Math.min(10, this.option_keys.length)\r\n for (i = 0; i < this.option_keys.length; i++) {\r\n this.select_options[this.option_keys[i]] = this.input.children[i]\r\n }\r\n\r\n this.control = this.theme.getFormControl(this.label, this.input, this.description, this.infoButton)\r\n }\r\n\r\n if (this.schema.readOnly || this.schema.readonly) {\r\n this.disable(true)\r\n }\r\n\r\n this.container.appendChild(this.control)\r\n\r\n this.multiselectChangeHandler = (e) => {\r\n const newValue = []\r\n for (i = 0; i < this.option_keys.length; i++) {\r\n if (this.select_options[this.option_keys[i]] && (this.select_options[this.option_keys[i]].selected || this.select_options[this.option_keys[i]].checked)) newValue.push(this.select_values[this.option_keys[i]])\r\n }\r\n this.updateValue(newValue)\r\n this.onChange(true)\r\n }\r\n\r\n this.control.addEventListener('change', this.multiselectChangeHandler, false)\r\n\r\n /* Any special formatting that needs to happen after the input is added to the dom */\r\n window.requestAnimationFrame(() => {\r\n this.afterInputReady()\r\n })\r\n }\r\n\r\n postBuild () {\r\n super.postBuild()\r\n /* this.theme.afterInputReady(this.input || this.inputs); */\r\n }\r\n\r\n afterInputReady () {\r\n this.theme.afterInputReady(this.input || this.inputs)\r\n }\r\n\r\n setValue (value, initial) {\r\n value = value || []\r\n if (!(Array.isArray(value))) value = [value]\r\n\r\n /* Make sure we are dealing with an array of strings so we can check for strict equality */\r\n value = value.map(e => `${e}`)\r\n\r\n /* Update selected status of options */\r\n Object.keys(this.select_options).forEach(i => {\r\n this.select_options[i][this.input_type === 'select' ? 'selected' : 'checked'] = (value.includes(i))\r\n })\r\n\r\n this.updateValue(value)\r\n this.onChange(true)\r\n }\r\n\r\n removeValue (value) {\r\n /* Remove from existing value(s) */\r\n value = [].concat(value)\r\n this.setValue(this.getValue().filter(item => !value.includes(item)))\r\n }\r\n\r\n addValue (value) {\r\n /* Add to existing value(s) */\r\n this.setValue(this.getValue().concat(value))\r\n }\r\n\r\n updateValue (value) {\r\n let changed = false\r\n const newValue = []\r\n for (let i = 0; i < value.length; i++) {\r\n if (!this.select_options[`${value[i]}`]) {\r\n changed = true\r\n continue\r\n }\r\n const sanitized = this.sanitize(this.select_values[value[i]])\r\n newValue.push(sanitized)\r\n if (sanitized !== value[i]) changed = true\r\n }\r\n this.value = newValue\r\n\r\n return changed\r\n }\r\n\r\n sanitize (value) {\r\n if (this.schema.items.type === 'boolean') return !!value\r\n else if (this.schema.items.type === 'number') return 1 * value || 0\r\n else if (this.schema.items.type === 'integer') return Math.floor(value * 1 || 0)\r\n return `${value}`\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n if (this.input) {\r\n this.input.disabled = false\r\n } else if (this.inputs) {\r\n Object.keys(this.inputs).forEach(i => (this.inputs[i].disabled = false))\r\n }\r\n super.enable()\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n if (this.input) {\r\n this.input.disabled = true\r\n } else if (this.inputs) {\r\n Object.keys(this.inputs).forEach(i => (this.inputs[i].disabled = true))\r\n }\r\n super.disable()\r\n }\r\n\r\n destroy () {\r\n super.destroy()\r\n }\r\n\r\n escapeRegExp (string) {\r\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\r\n }\r\n\r\n showValidationErrors (errors) {\r\n const regexPath = new RegExp(`^${this.escapeRegExp(this.path)}(\\\\.\\\\d+)?$`)\r\n const addMessage = (messages, error) => {\r\n if (error.path.match(regexPath)) {\r\n messages.push(error.message)\r\n }\r\n return messages\r\n }\r\n\r\n const messages = errors.reduce(addMessage, [])\r\n\r\n if (messages.length) {\r\n this.theme.addInputError(this.input || this.inputs, `${messages.join('. ')}.`)\r\n } else {\r\n this.theme.removeInputError(this.input || this.inputs)\r\n }\r\n }\r\n}\r\n","import { AbstractEditor } from '../editor.js'\r\n\r\nexport class NullEditor extends AbstractEditor {\r\n getValue () {\r\n if (!this.dependenciesFulfilled) {\r\n return undefined\r\n }\r\n return null\r\n }\r\n\r\n setValue () {\r\n this.onChange()\r\n }\r\n\r\n getNumColumns () {\r\n return 2\r\n }\r\n}\r\n","import { StringEditor } from './string.js'\r\nimport { isNumber } from '../utilities'\r\n\r\nexport class NumberEditor extends StringEditor {\r\n build () {\r\n super.build()\r\n\r\n if (typeof this.schema.minimum !== 'undefined') {\r\n let { minimum } = this.schema\r\n\r\n if (typeof this.schema.exclusiveMinimum !== 'undefined') {\r\n minimum += 1\r\n }\r\n\r\n this.input.setAttribute('min', minimum)\r\n }\r\n\r\n if (typeof this.schema.maximum !== 'undefined') {\r\n let { maximum } = this.schema\r\n\r\n if (typeof this.schema.exclusiveMaximum !== 'undefined') {\r\n maximum -= 1\r\n }\r\n\r\n this.input.setAttribute('max', maximum)\r\n }\r\n\r\n if (typeof this.schema.step !== 'undefined') {\r\n const step = this.schema.step || 1\r\n this.input.setAttribute('step', step)\r\n }\r\n\r\n /* Set custom attributes on input element. Parameter is array of protected keys. Empty array if none. */\r\n this.setInputAttributes(['maxlength', 'pattern', 'readonly', 'min', 'max', 'step'])\r\n }\r\n\r\n getNumColumns () {\r\n return 2\r\n }\r\n\r\n getValue () {\r\n if (!this.dependenciesFulfilled) {\r\n return undefined\r\n }\r\n const value = isNumber(this.value) ? parseFloat(this.value) : this.value\r\n if (!this.jsoneditor.options.use_default_values && value === '') {\r\n return undefined\r\n }\r\n return value\r\n }\r\n}\r\n","/* eslint-disable */\nexport default {\".je-object__title\":\"display:inline-block\",\".je-object__controls\":\"margin:0%200%200%2010px\",\".je-object__container\":\"position:relative\",\".je-object__property-checkbox\":\"margin:0;height:auto\",\".property-selector\":\"width:295px;max-height:160px;padding:5px%200;overflow-y:auto;overflow-x:hidden;padding-left:5px\",\".property-selector-input\":\"width:220px;margin-bottom:0;display:inline-block\",\".json-editor-btntype-toggle\":\"margin:0%2010px%200%200\",\".je-edit-json--textarea\":\"height:170px%20!important;width:300px%20!important;display:block\"}\n/* eslint-enable */\n","import { AbstractEditor } from '../editor.js'\r\nimport { extend, hasOwnProperty, trigger } from '../utilities.js'\r\nimport rules from './object.css.js'\r\n\r\nexport class ObjectEditor extends AbstractEditor {\r\n constructor (options, defaults, depth) {\r\n super(options, defaults)\r\n this.currentDepth = depth\r\n }\r\n\r\n getDefault () {\r\n return extend({}, this.schema.default || {})\r\n }\r\n\r\n getChildEditors () {\r\n return this.editors\r\n }\r\n\r\n register () {\r\n super.register()\r\n if (this.editors) {\r\n Object.values(this.editors).forEach(e => e.register())\r\n }\r\n }\r\n\r\n unregister () {\r\n super.unregister()\r\n if (this.editors) {\r\n Object.values(this.editors).forEach(e => e.unregister())\r\n }\r\n }\r\n\r\n getNumColumns () {\r\n return Math.max(Math.min(12, this.maxwidth), 3)\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n if (this.editjson_control) this.editjson_control.disabled = false\r\n if (this.addproperty_button) this.addproperty_button.disabled = false\r\n\r\n super.enable()\r\n if (this.editors) {\r\n Object.values(this.editors).forEach(e => {\r\n if (e.isActive()) {\r\n e.enable()\r\n }\r\n e.optInCheckbox.disabled = false\r\n })\r\n }\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n if (this.editjson_control) this.editjson_control.disabled = true\r\n if (this.addproperty_button) this.addproperty_button.disabled = true\r\n this.hideEditJSON()\r\n\r\n super.disable()\r\n if (this.editors) {\r\n Object.values(this.editors).forEach(e => {\r\n if (e.isActive()) {\r\n e.disable(alwaysDisabled)\r\n }\r\n e.optInCheckbox.disabled = true\r\n })\r\n }\r\n }\r\n\r\n layoutEditors () {\r\n let i; let j\r\n\r\n if (!this.row_container) return\r\n\r\n /* Sort editors by propertyOrder */\r\n this.property_order = Object.keys(this.editors)\r\n this.property_order = this.property_order.sort((a, b) => {\r\n let ordera = this.editors[a].schema.propertyOrder\r\n let orderb = this.editors[b].schema.propertyOrder\r\n if (typeof ordera !== 'number') ordera = 1000\r\n if (typeof orderb !== 'number') orderb = 1000\r\n\r\n return ordera - orderb\r\n })\r\n\r\n let container\r\n const isCategoriesFormat = (this.format === 'categories')\r\n const rows = []\r\n let key = null\r\n let editor = null\r\n let row\r\n\r\n if (this.format === 'grid-strict') {\r\n let rowIndex = 0\r\n row = []\r\n\r\n this.property_order.forEach(key => {\r\n const editor = this.editors[key]\r\n if (editor.property_removed) {\r\n return\r\n }\r\n const width = editor.options.hidden ? 0 : (editor.options.grid_columns || editor.getNumColumns())\r\n const offset = editor.options.hidden ? 0 : (editor.options.grid_offset || 0)\r\n const gridBreak = editor.options.hidden ? false : (editor.options.grid_break || false)\r\n const height = editor.options.hidden ? 0 : editor.container.offsetHeight\r\n\r\n const column = {\r\n key,\r\n width,\r\n offset,\r\n height\r\n }\r\n\r\n row.push(column)\r\n\r\n rows[rowIndex] = row\r\n\r\n if (gridBreak) {\r\n rowIndex++\r\n row = []\r\n }\r\n })\r\n\r\n /* layout hasn't changed */\r\n if (this.layout === JSON.stringify(rows)) return false\r\n this.layout = JSON.stringify(rows)\r\n\r\n /* Layout the form */\r\n container = document.createElement('div')\r\n for (i = 0; i < rows.length; i++) {\r\n row = this.theme.getGridRow()\r\n container.appendChild(row)\r\n for (j = 0; j < rows[i].length; j++) {\r\n key = rows[i][j].key\r\n editor = this.editors[key]\r\n if (editor.options.hidden) {\r\n editor.container.style.display = 'none'\r\n } else {\r\n this.theme.setGridColumnSize(editor.container, rows[i][j].width, rows[i][j].offset)\r\n }\r\n row.appendChild(editor.container)\r\n }\r\n }\r\n } else if (this.format === 'grid') {\r\n this.property_order.forEach(key => {\r\n const editor = this.editors[key]\r\n if (editor.property_removed) return\r\n let found = false\r\n const width = editor.options.hidden ? 0 : (editor.options.grid_columns || editor.getNumColumns())\r\n const height = editor.options.hidden ? 0 : editor.container.offsetHeight\r\n /* See if the editor will fit in any of the existing rows first */\r\n for (let i = 0; i < rows.length; i++) {\r\n /* If the editor will fit in the row horizontally */\r\n if (rows[i].width + width <= 12) {\r\n /* If the editor is close to the other elements in height */\r\n /* i.e. Don't put a really tall editor in an otherwise short row or vice versa */\r\n if (!height || (rows[i].minh * 0.5 < height && rows[i].maxh * 2 > height)) {\r\n found = i\r\n }\r\n }\r\n }\r\n\r\n /* If there isn't a spot in any of the existing rows, start a new row */\r\n if (found === false) {\r\n rows.push({\r\n width: 0,\r\n minh: 999999,\r\n maxh: 0,\r\n editors: []\r\n })\r\n found = rows.length - 1\r\n }\r\n\r\n rows[found].editors.push({\r\n key,\r\n /* editor: editor, */\r\n width,\r\n height\r\n })\r\n rows[found].width += width\r\n rows[found].minh = Math.min(rows[found].minh, height)\r\n rows[found].maxh = Math.max(rows[found].maxh, height)\r\n })\r\n\r\n /* Make almost full rows width 12 */\r\n /* Do this by increasing all editors' sizes proprotionately */\r\n /* Any left over space goes to the biggest editor */\r\n /* Don't touch rows with a width of 6 or less */\r\n for (i = 0; i < rows.length; i++) {\r\n if (rows[i].width < 12) {\r\n let biggest = false\r\n let newWidth = 0\r\n for (j = 0; j < rows[i].editors.length; j++) {\r\n if (biggest === false) biggest = j\r\n else if (rows[i].editors[j].width > rows[i].editors[biggest].width) biggest = j\r\n rows[i].editors[j].width *= 12 / rows[i].width\r\n rows[i].editors[j].width = Math.floor(rows[i].editors[j].width)\r\n newWidth += rows[i].editors[j].width\r\n }\r\n if (newWidth < 12) rows[i].editors[biggest].width += 12 - newWidth\r\n rows[i].width = 12\r\n }\r\n }\r\n\r\n /* layout hasn't changed */\r\n if (this.layout === JSON.stringify(rows)) return false\r\n this.layout = JSON.stringify(rows)\r\n\r\n /* Layout the form */\r\n container = document.createElement('div')\r\n for (i = 0; i < rows.length; i++) {\r\n row = this.theme.getGridRow()\r\n container.appendChild(row)\r\n for (j = 0; j < rows[i].editors.length; j++) {\r\n key = rows[i].editors[j].key\r\n editor = this.editors[key]\r\n\r\n if (editor.options.hidden) editor.container.style.display = 'none'\r\n else this.theme.setGridColumnSize(editor.container, rows[i].editors[j].width)\r\n row.appendChild(editor.container)\r\n }\r\n }\r\n /* Normal layout */\r\n } else {\r\n container = document.createElement('div')\r\n\r\n if (isCategoriesFormat) {\r\n /* A container for properties not object nor arrays */\r\n const containerSimple = document.createElement('div')\r\n /* This will be the place to (re)build tabs and panes */\r\n /* tabs_holder has 2 childs, [0]: ul.nav.nav-tabs and [1]: div.tab-content */\r\n const newTabsHolder = this.theme.getTopTabHolder(this.translateProperty(this.schema.title))\r\n /* child [1] of previous, stores panes */\r\n const newTabPanesContainer = this.theme.getTopTabContentHolder(newTabsHolder)\r\n\r\n this.property_order.forEach(key => {\r\n const editor = this.editors[key]\r\n if (editor.property_removed) return\r\n const aPane = this.theme.getTabContent()\r\n const isObjOrArray = editor.schema && (editor.schema.type === 'object' || editor.schema.type === 'array')\r\n /* mark the pane */\r\n aPane.isObjOrArray = isObjOrArray\r\n const gridRow = this.theme.getGridRow()\r\n\r\n /* this happens with added properties, they don't have a tab */\r\n if (!editor.tab) {\r\n /* Pass the pane which holds the editor */\r\n if (typeof this.basicPane === 'undefined') {\r\n /* There is no basicPane yet, so aPane will be it */\r\n this.addRow(editor, newTabsHolder, aPane)\r\n } else {\r\n this.addRow(editor, newTabsHolder, this.basicPane)\r\n }\r\n }\r\n\r\n aPane.id = this.getValidId(editor.tab_text.textContent)\r\n\r\n /* For simple properties, add them on the same panel (Basic) */\r\n if (!isObjOrArray) {\r\n containerSimple.appendChild(gridRow)\r\n /* There are already some panes */\r\n if (newTabPanesContainer.childElementCount > 0) {\r\n /* If first pane is object or array, insert before a simple pane */\r\n if (newTabPanesContainer.firstChild.isObjOrArray) {\r\n /* Append pane for simple properties */\r\n aPane.appendChild(containerSimple)\r\n newTabPanesContainer.insertBefore(aPane, newTabPanesContainer.firstChild)\r\n /* Add \"Basic\" tab */\r\n this.theme.insertBasicTopTab(editor.tab, newTabsHolder)\r\n /* newTabs_holder.firstChild.insertBefore(editor.tab,newTabs_holder.firstChild.firstChild); */\r\n /* Update the basicPane */\r\n editor.basicPane = aPane\r\n } else {\r\n /* We already have a first \"Basic\" pane, just add the new property to it, so */\r\n /* do nothing; */\r\n }\r\n /* There is no pane, so add the first (simple) pane */\r\n } else {\r\n /* Append pane for simple properties */\r\n aPane.appendChild(containerSimple)\r\n newTabPanesContainer.appendChild(aPane)\r\n /* Add \"Basic\" tab */\r\n /* newTabs_holder.firstChild.appendChild(editor.tab); */\r\n this.theme.addTopTab(newTabsHolder, editor.tab)\r\n /* Update the basicPane */\r\n editor.basicPane = aPane\r\n }\r\n /* Objects and arrays earn their own panes */\r\n } else {\r\n aPane.appendChild(gridRow)\r\n newTabPanesContainer.appendChild(aPane)\r\n /* newTabs_holder.firstChild.appendChild(editor.tab); */\r\n this.theme.addTopTab(newTabsHolder, editor.tab)\r\n }\r\n\r\n if (editor.options.hidden) editor.container.style.display = 'none'\r\n else this.theme.setGridColumnSize(editor.container, 12)\r\n /* Now, add the property editor to the row */\r\n gridRow.appendChild(editor.container)\r\n /* Update the rowPane (same as this.rows[x].rowPane) */\r\n editor.rowPane = aPane\r\n })\r\n\r\n /* Erase old panes */\r\n while (this.tabPanesContainer.firstChild) {\r\n this.tabPanesContainer.removeChild(this.tabPanesContainer.firstChild)\r\n }\r\n\r\n /* Erase old tabs and set the new ones */\r\n const parentTabsHolder = this.tabs_holder.parentNode\r\n parentTabsHolder.removeChild(parentTabsHolder.firstChild)\r\n parentTabsHolder.appendChild(newTabsHolder)\r\n\r\n this.tabPanesContainer = newTabPanesContainer\r\n this.tabs_holder = newTabsHolder\r\n\r\n /* Activate the first tab */\r\n const firstTab = this.theme.getFirstTab(this.tabs_holder)\r\n if (firstTab) {\r\n trigger(firstTab, 'click')\r\n }\r\n return\r\n /* Normal layout */\r\n }\r\n this.property_order.forEach(key => {\r\n const editor = this.editors[key]\r\n if (editor.property_removed) return\r\n row = this.theme.getGridRow()\r\n container.appendChild(row)\r\n\r\n if (editor.options.hidden) editor.container.style.display = 'none'\r\n else this.theme.setGridColumnSize(editor.container, 12)\r\n row.appendChild(editor.container)\r\n })\r\n }\r\n /* for grid and normal layout */\r\n while (this.row_container.firstChild) {\r\n this.row_container.removeChild(this.row_container.firstChild)\r\n }\r\n this.row_container.appendChild(container)\r\n }\r\n\r\n getPropertySchema (key) {\r\n /* Schema declared directly in properties */\r\n let schema = this.schema.properties[key] || {}\r\n schema = extend({}, schema)\r\n let matched = !!this.schema.properties[key]\r\n\r\n /* Any matching patternProperties should be merged in */\r\n if (this.schema.patternProperties) {\r\n Object.keys(this.schema.patternProperties).forEach(i => {\r\n const regex = new RegExp(i)\r\n if (regex.test(key)) {\r\n schema.allOf = schema.allOf || []\r\n schema.allOf.push(this.schema.patternProperties[i])\r\n matched = true\r\n }\r\n })\r\n }\r\n\r\n /* Hasn't matched other rules, use additionalProperties schema */\r\n if (!matched && this.schema.additionalProperties && typeof this.schema.additionalProperties === 'object') {\r\n schema = extend({}, this.schema.additionalProperties)\r\n }\r\n\r\n return schema\r\n }\r\n\r\n preBuild () {\r\n super.preBuild()\r\n\r\n this.editors = {}\r\n this.cached_editors = {}\r\n\r\n this.format = this.options.layout || this.options.object_layout || this.schema.format || this.jsoneditor.options.object_layout || 'normal'\r\n\r\n this.schema.properties = this.schema.properties || {}\r\n\r\n this.minwidth = 0\r\n this.maxwidth = 0\r\n\r\n /* If the object should be rendered as a table row */\r\n if (this.options.table_row) {\r\n Object.entries(this.schema.properties).forEach(([key, schema]) => {\r\n const editor = this.jsoneditor.getEditorClass(schema)\r\n this.editors[key] = this.jsoneditor.createEditor(editor, {\r\n jsoneditor: this.jsoneditor,\r\n schema,\r\n path: `${this.path}.${key}`,\r\n parent: this,\r\n compact: true,\r\n required: true\r\n }, this.currentDepth + 1)\r\n this.editors[key].preBuild()\r\n\r\n const width = this.editors[key].options.hidden ? 0 : (this.editors[key].options.grid_columns || this.editors[key].getNumColumns())\r\n\r\n this.minwidth += width\r\n this.maxwidth += width\r\n })\r\n this.no_link_holder = true\r\n /* If the object should be rendered as a table */\r\n } else if (this.options.table) {\r\n /* TODO: table display format */\r\n throw new Error('Not supported yet')\r\n /* If the object should be rendered as a div */\r\n } else {\r\n if (!this.schema.defaultProperties) {\r\n if (this.jsoneditor.options.display_required_only || this.options.display_required_only) {\r\n this.schema.defaultProperties = Object.keys(this.schema.properties).filter(k => this.isRequiredObject({ key: k, schema: this.schema.properties[k] }))\r\n } else {\r\n this.schema.defaultProperties = Object.keys(this.schema.properties)\r\n }\r\n }\r\n\r\n /* Increase the grid width to account for padding */\r\n this.maxwidth += 1\r\n\r\n /* Check for array (eg. meta-schema options is an object) */\r\n if (Array.isArray(this.schema.defaultProperties)) {\r\n this.schema.defaultProperties.forEach(key => {\r\n this.addObjectProperty(key, true)\r\n\r\n if (this.editors[key]) {\r\n this.minwidth = Math.max(this.minwidth, (this.editors[key].options.grid_columns || this.editors[key].getNumColumns()))\r\n this.maxwidth += (this.editors[key].options.grid_columns || this.editors[key].getNumColumns())\r\n }\r\n })\r\n }\r\n }\r\n\r\n /* Sort editors by propertyOrder */\r\n this.property_order = Object.keys(this.editors)\r\n this.property_order = this.property_order.sort((a, b) => {\r\n let ordera = this.editors[a].schema.propertyOrder\r\n let orderb = this.editors[b].schema.propertyOrder\r\n if (typeof ordera !== 'number') ordera = 1000\r\n if (typeof orderb !== 'number') orderb = 1000\r\n\r\n return ordera - orderb\r\n })\r\n }\r\n\r\n /* \"Borrow\" from arrays code */\r\n addTab (idx) {\r\n const isObjOrArray = this.rows[idx].schema && (this.rows[idx].schema.type === 'object' || this.rows[idx].schema.type === 'array')\r\n if (this.tabs_holder) {\r\n this.rows[idx].tab_text = document.createElement('span')\r\n\r\n if (!isObjOrArray) {\r\n this.rows[idx].tab_text.textContent = (typeof this.schema.basicCategoryTitle === 'undefined') ? 'Basic' : this.schema.basicCategoryTitle\r\n } else {\r\n this.rows[idx].tab_text.textContent = this.rows[idx].getHeaderText()\r\n }\r\n this.rows[idx].tab = this.theme.getTopTab(this.rows[idx].tab_text, this.getValidId(this.rows[idx].tab_text.textContent))\r\n this.rows[idx].tab.addEventListener('click', (e) => {\r\n this.active_tab = this.rows[idx].tab\r\n this.refreshTabs()\r\n e.preventDefault()\r\n e.stopPropagation()\r\n })\r\n }\r\n }\r\n\r\n addRow (editor, tabHolder, aPane) {\r\n const rowsLen = this.rows.length\r\n const isObjOrArray = editor.schema.type === 'object' || editor.schema.type === 'array'\r\n\r\n /* Add a row */\r\n this.rows[rowsLen] = editor\r\n /* rowPane stores the editor corresponding pane to set the display style when refreshing Tabs */\r\n this.rows[rowsLen].rowPane = aPane\r\n\r\n if (!isObjOrArray) {\r\n /* This is the first simple property to be added, */\r\n /* add a (\"Basic\") tab for it and save it's row number */\r\n if (typeof this.basicTab === 'undefined') {\r\n this.addTab(rowsLen)\r\n /* Store the index row of the first simple property added */\r\n this.basicTab = rowsLen\r\n this.basicPane = aPane\r\n this.theme.addTopTab(tabHolder, this.rows[rowsLen].tab)\r\n } else {\r\n /* Any other simple property gets the same tab (and the same pane) as the first one, */\r\n /* so, when 'click' event is fired from a row, it gets the correct (\"Basic\") tab */\r\n this.rows[rowsLen].tab = this.rows[this.basicTab].tab\r\n this.rows[rowsLen].tab_text = this.rows[this.basicTab].tab_text\r\n this.rows[rowsLen].rowPane = this.rows[this.basicTab].rowPane\r\n }\r\n } else {\r\n this.addTab(rowsLen)\r\n this.theme.addTopTab(tabHolder, this.rows[rowsLen].tab)\r\n }\r\n }\r\n\r\n /* Mark the active tab and make visible the corresponding pane, hide others */\r\n refreshTabs (refreshHeaders) {\r\n const basicTabPresent = typeof this.basicTab !== 'undefined'\r\n let basicTabRefreshed = false\r\n\r\n this.rows.forEach(row => {\r\n /* If it's an orphan row (some property which has been deleted), return */\r\n if (!row.tab || !row.rowPane || !row.rowPane.parentNode) return\r\n\r\n if (basicTabPresent && row.tab === this.rows[this.basicTab].tab && basicTabRefreshed) return\r\n\r\n if (refreshHeaders) {\r\n row.tab_text.textContent = row.getHeaderText()\r\n } else {\r\n /* All rows of simple properties point to the same tab, so refresh just once */\r\n if (basicTabPresent && row.tab === this.rows[this.basicTab].tab) basicTabRefreshed = true\r\n\r\n if (row.tab === this.active_tab) {\r\n this.theme.markTabActive(row)\r\n } else {\r\n this.theme.markTabInactive(row)\r\n }\r\n }\r\n })\r\n }\r\n\r\n build () {\r\n const isCategoriesFormat = (this.format === 'categories')\r\n this.rows = []\r\n this.active_tab = null\r\n\r\n /* If the object should be rendered as a table row */\r\n if (this.options.table_row) {\r\n this.editor_holder = this.container\r\n Object.entries(this.editors).forEach(([key, editor]) => {\r\n const holder = this.theme.getTableCell()\r\n this.editor_holder.appendChild(holder)\r\n\r\n editor.setContainer(holder)\r\n editor.build()\r\n editor.postBuild()\r\n editor.setOptInCheckbox(editor.header)\r\n\r\n if (this.editors[key].options.hidden) {\r\n holder.style.display = 'none'\r\n }\r\n if (this.editors[key].options.input_width) {\r\n holder.style.width = this.editors[key].options.input_width\r\n }\r\n })\r\n /* If the object should be rendered as a table */\r\n } else if (this.options.table) {\r\n /* TODO: table display format */\r\n throw new Error('Not supported yet')\r\n /* If the object should be rendered as a div */\r\n } else {\r\n this.header = ''\r\n if (!this.options.compact) {\r\n this.header = document.createElement('label')\r\n this.header.textContent = this.getTitle()\r\n }\r\n this.title = this.theme.getHeader(this.header, this.getPathDepth())\r\n this.title.classList.add('je-object__title')\r\n if (!this.options.wb || !this.options.wb.disable_title) {\r\n this.container.appendChild(this.title)\r\n }\r\n\r\n this.controls = this.theme.getButtonHolder()\r\n this.controls.classList.add('je-object__controls')\r\n if (!this.options.wb || !this.options.wb.disable_title) {\r\n this.container.appendChild(this.controls)\r\n }\r\n\r\n this.container.classList.add('je-object__container')\r\n\r\n /* Edit JSON modal */\r\n this.editjson_holder = this.theme.getModal()\r\n this.editjson_textarea = this.theme.getTextareaInput()\r\n this.editjson_textarea.classList.add('je-edit-json--textarea')\r\n this.editjson_save = this.getButton('button_save', 'save', 'button_save')\r\n this.editjson_save.classList.add('json-editor-btntype-save')\r\n this.editjson_save.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.saveJSON()\r\n })\r\n this.editjson_copy = this.getButton('button_copy', 'copy', 'button_copy')\r\n this.editjson_copy.classList.add('json-editor-btntype-copy')\r\n this.editjson_copy.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.copyJSON()\r\n })\r\n this.editjson_cancel = this.getButton('button_cancel', 'cancel', 'button_cancel')\r\n this.editjson_cancel.classList.add('json-editor-btntype-cancel')\r\n this.editjson_cancel.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.hideEditJSON()\r\n })\r\n this.editjson_holder.appendChild(this.editjson_textarea)\r\n this.editjson_holder.appendChild(this.editjson_save)\r\n this.editjson_holder.appendChild(this.editjson_copy)\r\n this.editjson_holder.appendChild(this.editjson_cancel)\r\n\r\n /* Manage Properties modal */\r\n this.addproperty_holder = this.theme.getModal()\r\n this.addproperty_list = document.createElement('div')\r\n this.addproperty_list.classList.add('property-selector')\r\n this.addproperty_add = this.getButton('button_add', 'add', 'button_add')\r\n this.addproperty_add.classList.add('json-editor-btntype-add')\r\n\r\n this.addproperty_input = this.theme.getFormInputField('text')\r\n this.addproperty_input.setAttribute('placeholder', this.translate('property_name_placeholder'))\r\n this.addproperty_input.classList.add('property-selector-input')\r\n this.addproperty_add.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n if (this.addproperty_input.value) {\r\n if (this.editors[this.addproperty_input.value]) {\r\n window.alert(this.translate('duplicate_property_error'))\r\n return\r\n }\r\n\r\n this.addObjectProperty(this.addproperty_input.value)\r\n if (this.editors[this.addproperty_input.value]) {\r\n this.editors[this.addproperty_input.value].disable()\r\n }\r\n this.onChange(true)\r\n }\r\n })\r\n this.addproperty_input.addEventListener('input', (e) => {\r\n e.target.previousSibling.childNodes.forEach((value) => {\r\n if (value.innerText.includes(e.target.value)) {\r\n value.style.display = ''\r\n } else {\r\n value.style.display = 'none'\r\n }\r\n })\r\n })\r\n this.addproperty_holder.appendChild(this.addproperty_list)\r\n this.addproperty_holder.appendChild(this.addproperty_input)\r\n this.addproperty_holder.appendChild(this.addproperty_add)\r\n const spacer = document.createElement('div')\r\n spacer.style.clear = 'both'\r\n this.addproperty_holder.appendChild(spacer)\r\n\r\n /* Close properties modal if clicked outside modal */\r\n document.addEventListener('click', this.onOutsideModalClick.bind(this))\r\n\r\n /* Description */\r\n if (this.schema.description) {\r\n this.description = this.theme.getDescription(this.translateProperty(this.schema.description))\r\n this.container.appendChild(this.description)\r\n }\r\n\r\n /* Validation error placeholder area */\r\n this.error_holder = document.createElement('div')\r\n this.container.appendChild(this.error_holder)\r\n\r\n /* Container for child editor area */\r\n if (!this.options.wb || (!this.options.wb.disable_title && !this.options.wb.disable_panel)) {\r\n this.editor_holder = this.theme.getIndentedPanel()\r\n } else {\r\n this.editor_holder = document.createElement('div')\r\n }\r\n this.container.appendChild(this.editor_holder)\r\n\r\n /* Container for rows of child editors */\r\n this.row_container = this.theme.getGridContainer()\r\n\r\n if (isCategoriesFormat) {\r\n this.tabs_holder = this.theme.getTopTabHolder(this.getValidId(this.translateProperty(this.schema.title)))\r\n this.tabPanesContainer = this.theme.getTopTabContentHolder(this.tabs_holder)\r\n this.editor_holder.appendChild(this.tabs_holder)\r\n } else {\r\n this.tabs_holder = this.theme.getTabHolder(this.getValidId(this.translateProperty(this.schema.title)))\r\n this.tabPanesContainer = this.theme.getTabContentHolder(this.tabs_holder)\r\n this.editor_holder.appendChild(this.row_container)\r\n }\r\n\r\n Object.values(this.editors).forEach(editor => {\r\n const aPane = this.theme.getTabContent()\r\n const holder = this.theme.getGridColumn()\r\n const isObjOrArray = !!((editor.schema && (editor.schema.type === 'object' || editor.schema.type === 'array')))\r\n aPane.isObjOrArray = isObjOrArray\r\n\r\n if (isCategoriesFormat) {\r\n if (isObjOrArray) {\r\n const singleRowContainer = this.theme.getGridContainer()\r\n singleRowContainer.appendChild(holder)\r\n aPane.appendChild(singleRowContainer)\r\n this.tabPanesContainer.appendChild(aPane)\r\n this.row_container = singleRowContainer\r\n } else {\r\n if (typeof this.row_container_basic === 'undefined') {\r\n this.row_container_basic = this.theme.getGridContainer()\r\n aPane.appendChild(this.row_container_basic)\r\n if (this.tabPanesContainer.childElementCount === 0) {\r\n this.tabPanesContainer.appendChild(aPane)\r\n } else {\r\n this.tabPanesContainer.insertBefore(aPane, this.tabPanesContainer.childNodes[1])\r\n }\r\n }\r\n this.row_container_basic.appendChild(holder)\r\n }\r\n\r\n this.addRow(editor, this.tabs_holder, aPane)\r\n\r\n aPane.id = this.getValidId(editor.schema.title) /* editor.schema.path//tab_text.textContent */\r\n } else {\r\n this.row_container.appendChild(holder)\r\n }\r\n\r\n editor.setContainer(holder)\r\n editor.build()\r\n editor.postBuild()\r\n editor.setOptInCheckbox(editor.header)\r\n })\r\n\r\n if (this.rows[0]) {\r\n trigger(this.rows[0].tab, 'click')\r\n }\r\n\r\n /* Show/Hide button */\r\n this.collapsed = false\r\n this.collapse_control = this.getButton('', 'collapse', 'button_collapse')\r\n this.collapse_control.classList.add('json-editor-btntype-toggle')\r\n this.title.insertBefore(this.collapse_control, this.title.childNodes[0])\r\n\r\n this.collapse_control.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n if (this.collapsed) {\r\n this.editor_holder.style.display = ''\r\n this.collapsed = false\r\n this.setButtonText(this.collapse_control, '', 'collapse', 'button_collapse')\r\n } else {\r\n this.editor_holder.style.display = 'none'\r\n this.collapsed = true\r\n this.setButtonText(this.collapse_control, '', 'expand', 'button_expand')\r\n }\r\n })\r\n\r\n /* If it should start collapsed */\r\n if (this.options.collapsed) {\r\n trigger(this.collapse_control, 'click')\r\n }\r\n\r\n /* Collapse button disabled */\r\n if (this.schema.options && typeof this.schema.options.disable_collapse !== 'undefined') {\r\n if (this.schema.options.disable_collapse) {\r\n this.collapse_control.style.display = 'none'\r\n this.title.classList.add('disable_collapse')\r\n }\r\n } else if (this.jsoneditor.options.disable_collapse) {\r\n this.collapse_control.style.display = 'none'\r\n }\r\n\r\n /* Edit JSON Button */\r\n this.editjson_control = this.getButton('JSON', 'edit', 'button_edit_json')\r\n this.editjson_control.classList.add('json-editor-btntype-editjson')\r\n this.editjson_control.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.toggleEditJSON()\r\n })\r\n this.controls.appendChild(this.editjson_control)\r\n this.controls.insertBefore(this.editjson_holder, this.controls.childNodes[0])\r\n\r\n /* Edit JSON Buttton disabled */\r\n if (this.schema.options && typeof this.schema.options.disable_edit_json !== 'undefined') {\r\n if (this.schema.options.disable_edit_json) this.editjson_control.style.display = 'none'\r\n } else if (this.jsoneditor.options.disable_edit_json) {\r\n this.editjson_control.style.display = 'none'\r\n }\r\n\r\n /* Object Properties Button */\r\n this.addproperty_button = this.getButton('properties', 'edit_properties', 'button_object_properties')\r\n this.addproperty_button.classList.add('json-editor-btntype-properties')\r\n this.addproperty_button.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.toggleAddProperty()\r\n })\r\n this.controls.appendChild(this.addproperty_button)\r\n this.controls.insertBefore(this.addproperty_holder, this.controls.childNodes[1])\r\n\r\n this.refreshAddProperties()\r\n\r\n /* non required properties start deactivated */\r\n this.deactivateNonRequiredProperties()\r\n }\r\n\r\n /* Fix table cell ordering */\r\n if (this.options.table_row) {\r\n this.editor_holder = this.container\r\n this.property_order.forEach(key => {\r\n this.editor_holder.appendChild(this.editors[key].container)\r\n })\r\n /* Layout object editors in grid if needed */\r\n } else {\r\n /* Initial layout */\r\n this.layoutEditors()\r\n /* Do it again now that we know the approximate heights of elements */\r\n this.layoutEditors()\r\n }\r\n }\r\n\r\n deactivateNonRequiredProperties () {\r\n /* the show_opt_in editor option is for backward compatibility */\r\n if (this.jsoneditor.options.show_opt_in || this.options.show_opt_in) {\r\n Object.entries(this.editors).forEach(([key, editor]) => {\r\n if (!this.isRequiredObject(editor)) {\r\n this.editors[key].deactivate()\r\n }\r\n })\r\n }\r\n }\r\n\r\n showEditJSON () {\r\n if (!this.editjson_holder) return\r\n this.hideAddProperty()\r\n\r\n /* Position the form directly beneath the button */\r\n /* TODO: edge detection */\r\n this.editjson_holder.style.left = `${this.editjson_control.offsetLeft}px`\r\n this.editjson_holder.style.top = `${this.editjson_control.offsetTop + this.editjson_control.offsetHeight}px`\r\n\r\n /* Start the textarea with the current value */\r\n this.editjson_textarea.value = JSON.stringify(this.getValue(), null, 2)\r\n\r\n /* Disable the rest of the form while editing JSON */\r\n this.disable()\r\n\r\n this.editjson_holder.style.display = ''\r\n this.editjson_control.disabled = false\r\n this.editing_json = true\r\n }\r\n\r\n hideEditJSON () {\r\n if (!this.editjson_holder) return\r\n if (!this.editing_json) return\r\n\r\n this.editjson_holder.style.display = 'none'\r\n this.enable()\r\n this.editing_json = false\r\n }\r\n\r\n copyJSON () {\r\n if (!this.editjson_holder) return\r\n const ta = document.createElement('textarea')\r\n ta.value = this.editjson_textarea.value\r\n ta.setAttribute('readonly', '')\r\n ta.style.position = 'absolute'\r\n ta.style.left = '-9999px'\r\n document.body.appendChild(ta)\r\n ta.select()\r\n document.execCommand('copy')\r\n document.body.removeChild(ta)\r\n }\r\n\r\n saveJSON () {\r\n if (!this.editjson_holder) return\r\n\r\n try {\r\n const json = JSON.parse(this.editjson_textarea.value)\r\n this.setValue(json)\r\n this.hideEditJSON()\r\n this.onChange(true)\r\n } catch (e) {\r\n window.alert('invalid JSON')\r\n throw e\r\n }\r\n }\r\n\r\n toggleEditJSON () {\r\n if (this.editing_json) this.hideEditJSON()\r\n else this.showEditJSON()\r\n }\r\n\r\n insertPropertyControlUsingPropertyOrder (property, control, container) {\r\n let propertyOrder\r\n if (this.schema.properties[property]) { propertyOrder = this.schema.properties[property].propertyOrder }\r\n if (typeof propertyOrder !== 'number') propertyOrder = 1000\r\n control.propertyOrder = propertyOrder\r\n\r\n for (let i = 0; i < container.childNodes.length; i++) {\r\n const child = container.childNodes[i]\r\n if (control.propertyOrder < child.propertyOrder) {\r\n this.addproperty_list.insertBefore(control, child)\r\n control = null\r\n break\r\n }\r\n }\r\n if (control) {\r\n this.addproperty_list.appendChild(control)\r\n }\r\n }\r\n\r\n addPropertyCheckbox (key) {\r\n let labelText\r\n\r\n const checkbox = this.theme.getCheckbox()\r\n checkbox.style.width = 'auto'\r\n\r\n if (this.schema.properties[key] && this.schema.properties[key].title) {\r\n labelText = this.translateProperty(this.schema.properties[key].title)\r\n } else {\r\n labelText = key\r\n }\r\n\r\n const label = this.theme.getCheckboxLabel(labelText)\r\n\r\n const control = this.theme.getFormControl(label, checkbox)\r\n control.style.paddingBottom = control.style.marginBottom = control.style.paddingTop = control.style.marginTop = 0\r\n control.style.height = 'auto'\r\n /* control.style.overflowY = 'hidden'; */\r\n\r\n this.insertPropertyControlUsingPropertyOrder(key, control, this.addproperty_list)\r\n\r\n checkbox.checked = key in this.editors\r\n checkbox.addEventListener('change', () => {\r\n if (checkbox.checked) {\r\n this.addObjectProperty(key)\r\n } else {\r\n this.removeObjectProperty(key)\r\n }\r\n this.onChange(true)\r\n })\r\n this.addproperty_checkboxes[key] = checkbox\r\n\r\n return checkbox\r\n }\r\n\r\n showAddProperty () {\r\n if (!this.addproperty_holder) return\r\n this.hideEditJSON()\r\n\r\n /* Position the form directly beneath the button */\r\n /* TODO: edge detection */\r\n this.addproperty_holder.style.left = `${this.addproperty_button.offsetLeft}px`\r\n this.addproperty_holder.style.top = `${this.addproperty_button.offsetTop + this.addproperty_button.offsetHeight}px`\r\n\r\n /* Disable the rest of the form while editing JSON */\r\n this.disable()\r\n\r\n this.adding_property = true\r\n this.addproperty_button.disabled = false\r\n this.addproperty_holder.style.display = ''\r\n this.refreshAddProperties()\r\n }\r\n\r\n hideAddProperty () {\r\n if (!this.addproperty_holder) return\r\n if (!this.adding_property) return\r\n\r\n this.addproperty_holder.style.display = 'none'\r\n this.enable()\r\n\r\n this.adding_property = false\r\n }\r\n\r\n toggleAddProperty () {\r\n if (this.adding_property) this.hideAddProperty()\r\n else this.showAddProperty()\r\n }\r\n\r\n removeObjectProperty (property) {\r\n if (this.editors[property]) {\r\n this.editors[property].unregister()\r\n delete this.editors[property]\r\n\r\n this.refreshValue()\r\n this.layoutEditors()\r\n }\r\n }\r\n\r\n getSchemaOnMaxDepth (schema) {\r\n return Object.keys(schema).reduce((acc, key) => {\r\n switch (key) {\r\n case '$ref':\r\n return acc\r\n case 'properties':\r\n case 'items':\r\n return {\r\n ...acc,\r\n [key]: {}\r\n }\r\n case 'additionalProperties':\r\n case 'propertyNames':\r\n return {\r\n ...acc,\r\n [key]: true\r\n }\r\n default:\r\n return {\r\n ...acc,\r\n [key]: schema[key]\r\n }\r\n }\r\n }, {})\r\n }\r\n\r\n addObjectProperty (name, prebuildOnly) {\r\n /* Property is already added */\r\n if (this.editors[name]) return\r\n\r\n /* Property was added before and is cached */\r\n if (this.cached_editors[name]) {\r\n this.editors[name] = this.cached_editors[name]\r\n if (prebuildOnly) return\r\n this.editors[name].register()\r\n /* New property */\r\n } else {\r\n if (!this.canHaveAdditionalProperties() && (!this.schema.properties || !this.schema.properties[name])) {\r\n return\r\n }\r\n\r\n const schema = this.getPropertySchema(name)\r\n if (typeof schema.propertyOrder !== 'number') {\r\n /* if the propertyOrder undefined, then set a smart default value. */\r\n schema.propertyOrder = Object.keys(this.editors).length + 1000\r\n }\r\n\r\n /* Add the property */\r\n const editor = this.jsoneditor.getEditorClass(schema)\r\n\r\n const { max_depth: maxDepth } = this.jsoneditor.options\r\n\r\n this.editors[name] = this.jsoneditor.createEditor(editor, {\r\n jsoneditor: this.jsoneditor,\r\n schema: !!maxDepth && this.currentDepth >= maxDepth ? this.getSchemaOnMaxDepth(schema) : schema,\r\n path: `${this.path}.${name}`,\r\n parent: this\r\n }, this.currentDepth + 1)\r\n this.editors[name].preBuild()\r\n\r\n if (!prebuildOnly) {\r\n const holder = this.theme.getChildEditorHolder()\r\n this.editor_holder.appendChild(holder)\r\n this.editors[name].setContainer(holder)\r\n this.editors[name].build()\r\n this.editors[name].postBuild()\r\n this.editors[name].setOptInCheckbox(editor.header)\r\n this.editors[name].activate()\r\n }\r\n\r\n this.cached_editors[name] = this.editors[name]\r\n }\r\n\r\n /* If we're only prebuilding the editors, don't refresh values */\r\n if (!prebuildOnly) {\r\n this.refreshValue()\r\n this.layoutEditors()\r\n }\r\n }\r\n\r\n onOutsideModalClick (e) {\r\n const path = e.path || (e.composedPath && e.composedPath())\r\n if (this.addproperty_holder && !this.addproperty_holder.contains(path[0]) && this.adding_property) {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.toggleAddProperty()\r\n }\r\n }\r\n\r\n onChildEditorChange (editor) {\r\n this.refreshValue()\r\n super.onChildEditorChange(editor)\r\n }\r\n\r\n canHaveAdditionalProperties () {\r\n if (typeof this.schema.additionalProperties === 'boolean') {\r\n return this.schema.additionalProperties\r\n }\r\n return !this.jsoneditor.options.no_additional_properties\r\n }\r\n\r\n destroy () {\r\n Object.values(this.cached_editors).forEach(el => el.destroy())\r\n if (this.editor_holder) this.editor_holder.innerHTML = ''\r\n if (this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title)\r\n if (this.error_holder && this.error_holder.parentNode) this.error_holder.parentNode.removeChild(this.error_holder)\r\n\r\n this.editors = null\r\n this.cached_editors = null\r\n if (this.editor_holder && this.editor_holder.parentNode) this.editor_holder.parentNode.removeChild(this.editor_holder)\r\n this.editor_holder = null\r\n document.removeEventListener('click', this.onOutsideModalClick)\r\n\r\n super.destroy()\r\n }\r\n\r\n getValue () {\r\n if (!this.dependenciesFulfilled) {\r\n return undefined\r\n }\r\n const result = super.getValue()\r\n const isEmpty = obj => typeof obj === 'undefined' || obj === '' ||\r\n (\r\n obj === Object(obj) &&\r\n Object.keys(obj).length === 0 &&\r\n obj.constructor === Object\r\n )\r\n if (result && (this.jsoneditor.options.remove_empty_properties || this.options.remove_empty_properties)) {\r\n Object.keys(result).forEach(key => {\r\n if (isEmpty(result[key])) {\r\n delete result[key]\r\n }\r\n })\r\n }\r\n return result\r\n }\r\n\r\n refreshValue () {\r\n this.value = {}\r\n\r\n if (!this.editors) {\r\n return\r\n }\r\n\r\n Object.keys(this.editors).forEach(i => {\r\n if (this.editors[i].isActive()) {\r\n this.value[i] = this.editors[i].getValue()\r\n }\r\n })\r\n\r\n if (this.adding_property) this.refreshAddProperties()\r\n }\r\n\r\n refreshAddProperties () {\r\n if (this.options.disable_properties || (this.options.disable_properties !== false && this.jsoneditor.options.disable_properties)) {\r\n this.addproperty_button.style.display = 'none'\r\n return\r\n }\r\n\r\n let canAdd = false; let numProps = 0; let showModal = false\r\n\r\n /* Get number of editors */\r\n Object.keys(this.editors).forEach(i => numProps++)\r\n\r\n /* Determine if we can add back removed properties */\r\n canAdd = this.canHaveAdditionalProperties() && !(typeof this.schema.maxProperties !== 'undefined' && numProps >= this.schema.maxProperties)\r\n\r\n if (this.addproperty_checkboxes) {\r\n this.addproperty_list.innerHTML = ''\r\n }\r\n this.addproperty_checkboxes = {}\r\n\r\n /* Check for which editors can't be removed or added back */\r\n Object.keys(this.cached_editors).forEach(i => {\r\n this.addPropertyCheckbox(i)\r\n\r\n if (this.isRequiredObject(this.cached_editors[i]) && i in this.editors) {\r\n this.addproperty_checkboxes[i].disabled = true\r\n }\r\n\r\n if (typeof this.schema.minProperties !== 'undefined' && numProps <= this.schema.minProperties) {\r\n this.addproperty_checkboxes[i].disabled = this.addproperty_checkboxes[i].checked\r\n if (!this.addproperty_checkboxes[i].checked) showModal = true\r\n } else if (!(i in this.editors)) {\r\n if (!canAdd && !hasOwnProperty(this.schema.properties, i)) {\r\n this.addproperty_checkboxes[i].disabled = true\r\n } else {\r\n this.addproperty_checkboxes[i].disabled = false\r\n showModal = true\r\n }\r\n } else {\r\n showModal = true\r\n }\r\n })\r\n\r\n if (this.canHaveAdditionalProperties()) {\r\n showModal = true\r\n }\r\n\r\n /* Additional addproperty checkboxes not tied to a current editor */\r\n Object.keys(this.schema.properties).forEach(i => {\r\n if (this.cached_editors[i]) return\r\n showModal = true\r\n this.addPropertyCheckbox(i)\r\n })\r\n\r\n /* If no editors can be added or removed, hide the modal button */\r\n if (!showModal) {\r\n this.hideAddProperty()\r\n this.addproperty_button.style.display = 'none'\r\n /* If additional properties are disabled */\r\n } else if (!this.canHaveAdditionalProperties()) {\r\n this.addproperty_add.style.display = 'none'\r\n this.addproperty_input.style.display = 'none'\r\n /* If no new properties can be added */\r\n } else if (!canAdd) {\r\n this.addproperty_add.disabled = true\r\n /* If new properties can be added */\r\n } else {\r\n this.addproperty_add.disabled = false\r\n }\r\n }\r\n\r\n isRequiredObject (editor) {\r\n if (!editor) {\r\n return\r\n }\r\n if (typeof editor.schema.required === 'boolean') return editor.schema.required\r\n else if (Array.isArray(this.schema.required)) return this.schema.required.includes(editor.key)\r\n else if (this.jsoneditor.options.required_by_default) return true\r\n return false\r\n }\r\n\r\n setValue (value, initial) {\r\n value = value || {}\r\n\r\n if (typeof value !== 'object' || Array.isArray(value)) value = {}\r\n\r\n /* First, set the values for all of the defined properties */\r\n Object.entries(this.cached_editors).forEach(([i, editor]) => {\r\n /* Value explicitly set */\r\n if (typeof value[i] !== 'undefined') {\r\n this.addObjectProperty(i)\r\n editor.setValue(value[i], initial)\r\n editor.activate()\r\n /* Otherwise, remove value unless this is the initial set or it's required */\r\n } else if (!initial && !this.isRequiredObject(editor)) {\r\n if (this.jsoneditor.options.show_opt_in || editor.options.show_opt_in) {\r\n editor.deactivate()\r\n } else {\r\n if (!(editor.options.wb && editor.options.wb.show_editor)) {\r\n this.removeObjectProperty(i)\r\n }\r\n }\r\n /* Otherwise, set the value to the default */\r\n } else {\r\n editor.setValue(editor.getDefault(), initial)\r\n }\r\n })\r\n\r\n Object.entries(value).forEach(([i, val]) => {\r\n if (!this.cached_editors[i]) {\r\n this.addObjectProperty(i)\r\n if (this.editors[i]) this.editors[i].setValue(val, initial, !!this.editors[i].template)\r\n }\r\n })\r\n\r\n this.refreshValue()\r\n this.layoutEditors()\r\n this.onChange()\r\n }\r\n\r\n showValidationErrors (errors) {\r\n /* Get all the errors that pertain to this editor */\r\n const myErrors = []\r\n const otherErrors = []\r\n errors.forEach(error => {\r\n if (error.path === this.path) {\r\n myErrors.push(error)\r\n } else {\r\n otherErrors.push(error)\r\n }\r\n })\r\n\r\n /* Show errors for this editor */\r\n if (this.error_holder) {\r\n if (myErrors.length) {\r\n this.error_holder.innerHTML = ''\r\n this.error_holder.style.display = ''\r\n myErrors.forEach(error => {\r\n if (error.errorcount && error.errorcount > 1) error.message += ` (${error.errorcount} errors)`\r\n this.error_holder.appendChild(this.theme.getErrorMessage(error.message))\r\n })\r\n /* Hide error area */\r\n } else {\r\n this.error_holder.style.display = 'none'\r\n }\r\n }\r\n\r\n /* Show error for the table row if this is inside a table */\r\n if (this.options.table_row) {\r\n if (myErrors.length) {\r\n this.theme.addTableRowError(this.container)\r\n } else {\r\n this.theme.removeTableRowError(this.container)\r\n }\r\n }\r\n\r\n /* Show errors for child editors */\r\n Object.values(this.editors).forEach(editor => {\r\n editor.showValidationErrors(otherErrors)\r\n })\r\n }\r\n}\r\n\r\nObjectEditor.rules = rules\r\n","import { SelectEditor } from './select.js'\r\n\r\nexport class RadioEditor extends SelectEditor {\r\n preBuild () {\r\n this.schema.required = true /* force editor into required mode to prevent creation of empty radio button */\r\n super.preBuild()\r\n }\r\n\r\n build () {\r\n this.label = ''\r\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\r\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\r\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\r\n if (this.options.compact) this.container.classList.add('compact')\r\n\r\n this.radioContainer = document.createElement('div')\r\n\r\n this.radioGroup = []\r\n\r\n const radioInputEventhandler = e => {\r\n this.setValue(e.currentTarget.value)\r\n this.onChange(true)\r\n }\r\n\r\n for (let i = 0; i < this.enum_values.length; i++) {\r\n /* form radio elements */\r\n this.input = this.theme.getFormRadio({\r\n name: this.formname,\r\n id: `${this.formname}[${i}]`,\r\n value: this.enum_values[i]\r\n })\r\n\r\n /* Set custom attributes on input element. Parameter is array of protected keys. Empty array if none. */\r\n this.setInputAttributes(['id', 'value', 'name'])\r\n\r\n this.input.addEventListener('change', radioInputEventhandler, false)\r\n this.radioGroup.push(this.input)\r\n\r\n /* form-label for radio elements */\r\n const radioLabel = this.theme.getFormRadioLabel(this.enum_display[i])\r\n radioLabel.htmlFor = this.input.id\r\n\r\n const control = this.theme.getFormRadioControl(radioLabel, this.input, !!(this.options.layout === 'horizontal' || this.options.compact))\r\n\r\n this.radioContainer.appendChild(control)\r\n }\r\n\r\n if (this.schema.readOnly || this.schema.readonly) {\r\n this.disable(true)\r\n for (let j = 0; j < this.radioGroup.length; j++) {\r\n this.radioGroup[j].disabled = true\r\n }\r\n this.radioContainer.classList.add('readonly')\r\n }\r\n\r\n const radioContainerWrapper = this.theme.getContainer()\r\n radioContainerWrapper.appendChild(this.radioContainer)\r\n radioContainerWrapper.dataset.containerFor = 'radio'\r\n\r\n this.input = radioContainerWrapper\r\n\r\n this.control = this.theme.getFormControl(this.label, radioContainerWrapper, this.description, this.infoButton)\r\n this.container.appendChild(this.control)\r\n\r\n /* Any special formatting that needs to happen after the input is added to the dom */\r\n window.requestAnimationFrame(() => {\r\n if (this.input.parentNode) this.afterInputReady()\r\n })\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n for (let i = 0; i < this.radioGroup.length; i++) {\r\n this.radioGroup[i].disabled = false\r\n }\r\n this.radioContainer.classList.remove('readonly')\r\n super.enable()\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n for (let i = 0; i < this.radioGroup.length; i++) {\r\n this.radioGroup[i].disabled = true\r\n }\r\n this.radioContainer.classList.add('readonly')\r\n super.disable()\r\n }\r\n\r\n destroy () {\r\n if (this.radioContainer.parentNode && this.radioContainer.parentNode.parentNode) this.radioContainer.parentNode.parentNode.removeChild(this.radioContainer.parentNode)\r\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\r\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\r\n super.destroy()\r\n }\r\n\r\n getNumColumns () {\r\n return 2\r\n }\r\n\r\n setValue (val) {\r\n for (let i = 0; i < this.radioGroup.length; i++) {\r\n if (this.radioGroup[i].value === val) {\r\n this.radioGroup[i].checked = true\r\n this.value = val\r\n this.onChange()\r\n break\r\n }\r\n }\r\n }\r\n}\r\n","import { StringEditor } from './string.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class ScEditor extends StringEditor {\r\n setValue (value, initial, fromTemplate) {\r\n const res = super.setValue(value, initial, fromTemplate)\r\n if (res !== undefined && res.changed && this.sceditor_instance) this.sceditor_instance.val(res.value)\r\n }\r\n\r\n build () {\r\n this.options.format = 'textarea' /* Force format into \"textarea\" */\r\n super.build()\r\n this.input_type = this.schema.format /* Restore original format */\r\n this.input.setAttribute('data-schemaformat', this.input_type)\r\n }\r\n\r\n afterInputReady () {\r\n if (window.sceditor) {\r\n /* Get options, either global options from \"this.defaults.options.sceditor\" or */\r\n /* single property options from schema \"options.sceditor\" */\r\n const options = this.expandCallbacks('sceditor', extend({}, {\r\n format: this.input_type,\r\n emoticonsEnabled: false,\r\n width: '100%',\r\n height: 300,\r\n readOnly: this.schema.readOnly || this.schema.readonly || this.schema.template\r\n }, this.defaults.options.sceditor || {}, this.options.sceditor || {}, {\r\n element: this.input\r\n }))\r\n\r\n const instance = window.sceditor.instance(this.input)\r\n\r\n if (instance === undefined) {\r\n window.sceditor.create(this.input, options) /* Create doesn't return instance. */\r\n }\r\n\r\n this.sceditor_instance = instance || window.sceditor.instance(this.input)\r\n\r\n /* Listen for changes */\r\n this.sceditor_instance.blur(() => {\r\n this.value = this.sceditor_instance.val()\r\n this.sceditor_instance.updateOriginal()\r\n this.is_dirty = true\r\n this.onChange(true)\r\n })\r\n\r\n this.theme.afterInputReady(this.input)\r\n } else super.afterInputReady() /* Library not loaded, so just treat this as a string */\r\n }\r\n\r\n getNumColumns () {\r\n return 6\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled && this.sceditor_instance) this.sceditor_instance.readOnly(false)\r\n super.enable()\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (this.sceditor_instance) this.sceditor_instance.readOnly(true)\r\n super.disable(alwaysDisabled)\r\n }\r\n\r\n destroy () {\r\n if (this.sceditor_instance) {\r\n this.sceditor_instance.destroy()\r\n this.sceditor_instance = null\r\n }\r\n super.destroy()\r\n }\r\n}\r\n","import { AbstractEditor } from '../editor.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class SelectEditor extends AbstractEditor {\r\n setValue (value, initial) {\r\n /* Sanitize value before setting it */\r\n let sanitized = this.typecast(value)\r\n\r\n const haveToUseDefaultValue = !!this.jsoneditor.options.use_default_values || typeof this.schema.default !== 'undefined'\r\n\r\n if (\r\n (this.enum_options.length > 0 && !this.enum_values.includes(sanitized)) ||\r\n (initial && !this.isRequired() && !haveToUseDefaultValue)\r\n ) {\r\n sanitized = this.enum_values[0]\r\n }\r\n\r\n if (this.value === sanitized) return\r\n\r\n if (initial) this.is_dirty = false\r\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\r\n\r\n this.input.value = this.enum_options[this.enum_values.indexOf(sanitized)]\r\n\r\n this.value = sanitized\r\n this.onChange()\r\n this.change()\r\n }\r\n\r\n register () {\r\n super.register()\r\n if (!this.input) return\r\n this.input.setAttribute('name', this.formname)\r\n }\r\n\r\n unregister () {\r\n super.unregister()\r\n if (!this.input) return\r\n this.input.removeAttribute('name')\r\n }\r\n\r\n getNumColumns () {\r\n if (!this.enum_options) return 3\r\n let longestText = this.getTitle().length\r\n for (let i = 0; i < this.enum_options.length; i++) {\r\n longestText = Math.max(longestText, this.enum_options[i].length + 4)\r\n }\r\n return Math.min(12, Math.max(Math.ceil(longestText / 7), 2))\r\n }\r\n\r\n typecast (value) {\r\n if (this.schema.enum && value === undefined) return undefined\r\n else if (this.schema.type === 'boolean') return value === 'undefined' || value === undefined ? undefined : !!value\r\n else if (this.schema.type === 'number') return 1 * value || 0\r\n else if (this.schema.type === 'integer') return Math.floor(value * 1 || 0)\r\n return `${value}`\r\n }\r\n\r\n getValue () {\r\n if (!this.dependenciesFulfilled) {\r\n return undefined\r\n }\r\n return this.typecast(this.value)\r\n }\r\n\r\n preBuild () {\r\n this.input_type = 'select'\r\n this.enum_options = []\r\n this.enum_values = []\r\n this.enum_display = []\r\n let i\r\n let callback\r\n\r\n /* Enum options enumerated */\r\n if (this.schema.enum) {\r\n const display = (this.schema.options && this.schema.options.enum_titles) || []\r\n\r\n this.schema.enum.forEach((option, i) => {\r\n this.enum_options[i] = `${option}`\r\n this.enum_display[i] = `${this.translateProperty(display[i]) || option}`\r\n this.enum_values[i] = this.typecast(option)\r\n })\r\n\r\n if (!this.isRequired() && !(this.schema.options && this.schema.options.show_opt_in)) {\r\n this.enum_display.unshift(' ')\r\n this.enum_options.unshift('undefined')\r\n this.enum_values.unshift(undefined)\r\n }\r\n /* Boolean */\r\n } else if (this.schema.type === 'boolean') {\r\n this.enum_display = (this.schema.options && this.schema.options.enum_titles) || ['true', 'false']\r\n this.enum_options = ['1', '']\r\n this.enum_values = [true, false]\r\n\r\n if (!this.isRequired()) {\r\n this.enum_display.unshift(' ')\r\n this.enum_options.unshift('undefined')\r\n this.enum_values.unshift(undefined)\r\n }\r\n /* Dynamic Enum */\r\n } else if (this.schema.enumSource) {\r\n this.enumSource = []\r\n this.enum_display = []\r\n this.enum_options = []\r\n this.enum_values = []\r\n\r\n /* Shortcut declaration for using a single array */\r\n if (!(Array.isArray(this.schema.enumSource))) {\r\n if (this.schema.enumValue) {\r\n this.enumSource = [\r\n {\r\n source: this.schema.enumSource,\r\n value: this.schema.enumValue\r\n }\r\n ]\r\n } else {\r\n this.enumSource = [\r\n {\r\n source: this.schema.enumSource\r\n }\r\n ]\r\n }\r\n } else {\r\n for (i = 0; i < this.schema.enumSource.length; i++) {\r\n /* Shorthand for watched variable */\r\n if (typeof this.schema.enumSource[i] === 'string') {\r\n this.enumSource[i] = {\r\n source: this.schema.enumSource[i]\r\n }\r\n /* Make a copy of the schema */\r\n } else if (!(Array.isArray(this.schema.enumSource[i]))) {\r\n this.enumSource[i] = extend({}, this.schema.enumSource[i])\r\n } else {\r\n this.enumSource[i] = this.schema.enumSource[i]\r\n }\r\n }\r\n }\r\n /* Now, enumSource is an array of sources */\r\n /* Walk through this array and fix up the values */\r\n for (i = 0; i < this.enumSource.length; i++) {\r\n if (this.enumSource[i].value) {\r\n callback = this.expandCallbacks('template', { template: this.enumSource[i].value })\r\n if (typeof callback.template === 'function') this.enumSource[i].value = callback.template\r\n else this.enumSource[i].value = this.jsoneditor.compileTemplate(this.enumSource[i].value, this.template_engine)\r\n }\r\n if (this.enumSource[i].title) {\r\n callback = this.expandCallbacks('template', { template: this.enumSource[i].title })\r\n if (typeof callback.template === 'function') this.enumSource[i].title = callback.template\r\n else this.enumSource[i].title = this.jsoneditor.compileTemplate(this.enumSource[i].title, this.template_engine)\r\n }\r\n if (this.enumSource[i].filter && this.enumSource[i].value) {\r\n callback = this.expandCallbacks('template', { template: this.enumSource[i].filter })\r\n if (typeof callback.template === 'function') this.enumSource[i].filter = callback.template\r\n else this.enumSource[i].filter = this.jsoneditor.compileTemplate(this.enumSource[i].filter, this.template_engine)\r\n }\r\n }\r\n /* Other, not supported */\r\n } else {\r\n throw new Error(\"'select' editor requires the enum property to be set.\")\r\n }\r\n }\r\n\r\n build () {\r\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\r\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\r\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\r\n if (this.options.compact) this.container.classList.add('compact')\r\n\r\n this.input = this.theme.getSelectInput(this.enum_options, false)\r\n this.theme.setSelectOptions(this.input, this.enum_options, this.enum_display)\r\n\r\n if (this.schema.readOnly || this.schema.readonly) {\r\n this.disable(true)\r\n this.input.disabled = true\r\n }\r\n\r\n /* Set custom attributes on input element. Parameter is array of protected keys. Empty array if none. */\r\n this.setInputAttributes([])\r\n\r\n this.input.addEventListener('change', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.onInputChange()\r\n })\r\n\r\n this.control = this.theme.getFormControl(this.label, this.input, this.description, this.infoButton)\r\n this.container.appendChild(this.control)\r\n\r\n this.value = this.enum_values[0]\r\n\r\n /* Any special formatting that needs to happen after the input is added to the dom */\r\n window.requestAnimationFrame(() => {\r\n if (this.input.parentNode) this.afterInputReady()\r\n })\r\n }\r\n\r\n afterInputReady () {\r\n this.theme.afterInputReady(this.input)\r\n }\r\n\r\n onInputChange () {\r\n const val = this.typecast(this.input.value)\r\n\r\n let newVal\r\n /* Invalid option, use first option instead */\r\n if (!this.enum_values.includes(val)) {\r\n newVal = this.enum_values[0]\r\n } else {\r\n newVal = this.enum_values[this.enum_values.indexOf(val)]\r\n }\r\n\r\n /* If valid hasn't changed */\r\n if (newVal === this.value) return\r\n\r\n this.is_dirty = true\r\n\r\n /* Store new value and propogate change event */\r\n this.value = newVal\r\n this.onChange(true)\r\n }\r\n\r\n onWatchedFieldChange () {\r\n let vars; let j\r\n let selectOptions = []; let selectTitles = []\r\n\r\n /* If this editor uses a dynamic select box */\r\n if (this.enumSource) {\r\n vars = this.getWatchedFieldValues()\r\n\r\n for (let i = 0; i < this.enumSource.length; i++) {\r\n /* Constant values */\r\n if (Array.isArray(this.enumSource[i])) {\r\n selectOptions = selectOptions.concat(this.enumSource[i])\r\n selectTitles = selectTitles.concat(this.enumSource[i])\r\n } else {\r\n let items = []\r\n /* Static list of items */\r\n if (Array.isArray(this.enumSource[i].source)) {\r\n items = this.enumSource[i].source\r\n /* A watched field */\r\n } else {\r\n items = vars[this.enumSource[i].source]\r\n }\r\n\r\n if (items) {\r\n /* Only use a predefined part of the array */\r\n if (this.enumSource[i].slice) {\r\n items = Array.prototype.slice.apply(items, this.enumSource[i].slice)\r\n }\r\n /* Filter the items */\r\n if (this.enumSource[i].filter) {\r\n const newItems = []\r\n for (j = 0; j < items.length; j++) {\r\n if (this.enumSource[i].filter({ i: j, item: items[j], watched: vars })) newItems.push(items[j])\r\n }\r\n items = newItems\r\n }\r\n\r\n const itemTitles = []\r\n const itemValues = []\r\n for (j = 0; j < items.length; j++) {\r\n const item = items[j]\r\n\r\n /* Rendered value */\r\n if (this.enumSource[i].value) {\r\n itemValues[j] = this.typecast(this.enumSource[i].value({\r\n i: j,\r\n item\r\n }))\r\n /* Use value directly */\r\n } else {\r\n itemValues[j] = items[j]\r\n }\r\n\r\n /* Rendered title */\r\n if (this.enumSource[i].title) {\r\n itemTitles[j] = this.enumSource[i].title({\r\n i: j,\r\n item\r\n })\r\n /* Use value as the title also */\r\n } else {\r\n itemTitles[j] = itemValues[j]\r\n }\r\n }\r\n\r\n if (this.enumSource[i].sort) {\r\n (((itemValues, itemTitles, order) => {\r\n itemValues.map((v, i) => ({\r\n v,\r\n t: itemTitles[i]\r\n })).sort((a, b) => (a.v < b.v) ? -order : ((a.v === b.v) ? 0 : order)).forEach((v, i) => {\r\n itemValues[i] = v.v\r\n itemTitles[i] = v.t\r\n })\r\n }).bind(null, itemValues, itemTitles, this.enumSource[i].sort === 'desc' ? 1 : -1))()\r\n }\r\n\r\n selectOptions = selectOptions.concat(itemValues)\r\n selectTitles = selectTitles.concat(itemTitles)\r\n }\r\n }\r\n }\r\n\r\n selectTitles = selectTitles.map(title => this.translateProperty(title))\r\n\r\n const prevValue = this.value\r\n\r\n this.theme.setSelectOptions(this.input, selectOptions, selectTitles)\r\n this.enum_options = selectOptions\r\n this.enum_display = selectTitles\r\n this.enum_values = selectOptions\r\n\r\n /* If the previous value is still in the new select options */\r\n /* or if global option \"enum_source_value_auto_select\" is true, stick with it */\r\n if (selectOptions.includes(prevValue) || this.jsoneditor.options.enum_source_value_auto_select !== false) {\r\n this.input.value = prevValue\r\n this.value = prevValue\r\n /* Otherwise, set the value to the first select option */\r\n } else {\r\n this.input.value = selectOptions[0]\r\n this.value = this.typecast(selectOptions[0] || '')\r\n if (this.parent && !this.watchLoop) this.parent.onChildEditorChange(this)\r\n else this.jsoneditor.onChange()\r\n this.jsoneditor.notifyWatchers(this.path)\r\n }\r\n }\r\n\r\n super.onWatchedFieldChange()\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n this.input.disabled = false\r\n super.enable()\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n this.input.disabled = true\r\n super.disable(alwaysDisabled)\r\n }\r\n\r\n destroy () {\r\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\r\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\r\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\r\n\r\n super.destroy()\r\n }\r\n\r\n showValidationErrors (errors) {\r\n this.previous_error_setting = this.jsoneditor.options.show_errors\r\n\r\n const addMessage = (messages, error) => {\r\n if (error.path === this.path) {\r\n messages.push(error.message)\r\n }\r\n return messages\r\n }\r\n const messages = errors.reduce(addMessage, [])\r\n\r\n if (messages.length) {\r\n this.theme.addInputError(this.input, `${messages.join('. ')}.`)\r\n } else {\r\n this.theme.removeInputError(this.input)\r\n }\r\n }\r\n}\r\n","import { SelectEditor } from './select.js'\r\nimport { extend, hasOwnProperty } from '../utilities.js'\r\n\r\nexport class Select2Editor extends SelectEditor {\r\n setValue (value, initial) {\r\n if (this.select2_instance) {\r\n if (initial) this.is_dirty = false\r\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\r\n\r\n const sanitized = this.updateValue(value) /* Sets this.value to sanitized value */\r\n\r\n this.input.value = sanitized\r\n\r\n if (this.select2v4) this.select2_instance.val(sanitized).trigger('change')\r\n else this.select2_instance.select2('val', sanitized)\r\n\r\n this.onChange(true)\r\n } else super.setValue(value, initial)\r\n }\r\n\r\n afterInputReady () {\r\n if (window.jQuery && window.jQuery.fn && window.jQuery.fn.select2 && !this.select2_instance) {\r\n /* Get options, either global options from \"this.defaults.options.select2\" or */\r\n /* single property options from schema \"options.select2\" */\r\n const options = this.expandCallbacks('select2', extend({}, this.defaults.options.select2 || {}, this.options.select2 || {}))\r\n\r\n /* New items are allowed if option \"tags\" is true and type is \"string\" */\r\n this.newEnumAllowed = options.tags = !!options.tags && this.schema.type === 'string'\r\n\r\n this.select2_instance = window.jQuery(this.input).select2(options)\r\n this.select2v4 = hasOwnProperty(this.select2_instance.select2, 'amd')\r\n\r\n /* Create change handler */\r\n this.selectChangeHandler = () => {\r\n const value = this.select2v4 ? this.select2_instance.val() : this.select2_instance.select2('val')\r\n this.updateValue(value)\r\n this.onChange(true)\r\n }\r\n\r\n /* Add event handler. */\r\n /* Note: Must use the \"on()\" method and not addEventListener() */\r\n this.select2_instance.on('change', this.selectChangeHandler)\r\n this.select2_instance.on('select2-blur', this.selectChangeHandler)\r\n }\r\n super.afterInputReady()\r\n }\r\n\r\n updateValue (value) {\r\n let sanitized = this.enum_values[0]\r\n value = this.typecast(value || '')\r\n if (!this.enum_values.includes(value)) {\r\n if (this.newEnumAllowed) {\r\n sanitized = this.addNewOption(value) ? value : sanitized\r\n }\r\n } else sanitized = value\r\n this.value = sanitized\r\n return sanitized\r\n }\r\n\r\n addNewOption (value) {\r\n const sanitized = this.typecast(value); let res = false; let optionTag\r\n\r\n if (!this.enum_values.includes(sanitized) && sanitized !== '') {\r\n /* Add to list of valid enum values */\r\n this.enum_options.push(`${sanitized}`)\r\n this.enum_display.push(`${sanitized}`)\r\n this.enum_values.push(sanitized)\r\n /* Update Schema enum to prevent triggering error */\r\n /* \"Value must be one of the enumerated values\" */\r\n this.schema.enum.push(sanitized)\r\n\r\n optionTag = this.input.querySelector(`option[value=\"${sanitized}\"]`)\r\n if (optionTag) {\r\n /* Remove data attribute to make option tag permanent. */\r\n optionTag.removeAttribute('data-select2-tag')\r\n } else {\r\n this.input.appendChild(new Option(sanitized, sanitized, false, false)).trigger('change')\r\n }\r\n\r\n res = true\r\n }\r\n return res\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n if (this.select2_instance) {\r\n if (this.select2v4) this.select2_instance.prop('disabled', false)\r\n else this.select2_instance.select2('enable', true)\r\n }\r\n }\r\n super.enable()\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (this.select2_instance) {\r\n if (this.select2v4) this.select2_instance.prop('disabled', true)\r\n else this.select2_instance.select2('enable', false)\r\n }\r\n super.disable(alwaysDisabled)\r\n }\r\n\r\n destroy () {\r\n if (this.select2_instance) {\r\n this.select2_instance.select2('destroy')\r\n this.select2_instance = null\r\n }\r\n super.destroy()\r\n }\r\n}\r\n","import { SelectEditor } from './select.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class SelectizeEditor extends SelectEditor {\r\n setValue (value, initial) {\r\n if (this.selectize_instance) {\r\n if (initial) this.is_dirty = false\r\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\r\n\r\n const sanitized = this.updateValue(value) /* Sets this.value to sanitized value */\r\n\r\n this.input.value = sanitized\r\n\r\n this.selectize_instance.clear(true)\r\n this.selectize_instance.setValue(sanitized)\r\n\r\n this.onChange(true)\r\n } else super.setValue(value, initial)\r\n }\r\n\r\n afterInputReady () {\r\n if (window.jQuery && window.jQuery.fn && window.jQuery.fn.selectize && !this.selectize_instance) {\r\n /* Get options, either global options from \"this.defaults.options.selectize\" or */\r\n /* single property options from schema \"options.selectize\" */\r\n const options = this.expandCallbacks('selectize', extend({}, this.defaults.options.selectize || {}, this.options.selectize || {}))\r\n\r\n /* New items are allowed if option \"create\" is true and type is \"string\" */\r\n this.newEnumAllowed = options.create = !!options.create && this.schema.type === 'string'\r\n\r\n this.selectize_instance = (window.jQuery(this.input).selectize(options))[0].selectize\r\n\r\n /* Remove change handler set in parent class (src/multiselect.js) */\r\n this.control.removeEventListener('change', this.multiselectChangeHandler)\r\n\r\n /* Create a new change handler */\r\n this.multiselectChangeHandler = (value) => {\r\n /* var value = this.selectize_instance.getValue(true); */\r\n /* this.value = value; */\r\n this.updateValue(value)\r\n this.onChange(true)\r\n }\r\n\r\n /* Add new event handler. */\r\n /* Note: Must use the \"on()\" method and not addEventListener() */\r\n this.selectize_instance.on('change', this.multiselectChangeHandler)\r\n }\r\n super.afterInputReady()\r\n }\r\n\r\n updateValue (value) {\r\n let sanitized = this.enum_values[0]\r\n value = this.typecast(value || '')\r\n if (!this.enum_values.includes(value)) {\r\n if (this.newEnumAllowed) {\r\n sanitized = this.addNewOption(value) ? value : sanitized\r\n }\r\n } else sanitized = value\r\n this.value = sanitized\r\n return sanitized\r\n }\r\n\r\n addNewOption (value) {\r\n const sanitized = this.typecast(value); let res = false\r\n\r\n if (!this.enum_values.includes(sanitized) && sanitized !== '') {\r\n /* Add to list of valid enum values */\r\n this.enum_options.push(`${sanitized}`)\r\n this.enum_display.push(`${sanitized}`)\r\n this.enum_values.push(sanitized)\r\n /* Update Schema enum to prevent triggering error */\r\n /* \"Value must be one of the enumerated values\" */\r\n this.schema.enum.push(sanitized)\r\n\r\n /* Add selectize item */\r\n this.selectize_instance.addItem(sanitized)\r\n this.selectize_instance.refreshOptions(false)\r\n\r\n res = true\r\n }\r\n return res\r\n }\r\n\r\n onWatchedFieldChange () {\r\n super.onWatchedFieldChange()\r\n if (this.selectize_instance) {\r\n this.selectize_instance.clear(true) /* Clear selection */\r\n this.selectize_instance.clearOptions(true) /* Remove all options */\r\n this.enum_options.forEach((value, i) => {\r\n this.selectize_instance.addOption({ value, text: this.enum_display[i] })\r\n })\r\n this.selectize_instance.addItem(`${this.value}`, true) /* Set new selection */\r\n }\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled && this.selectize_instance) this.selectize_instance.unlock()\r\n super.enable()\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (this.selectize_instance) this.selectize_instance.lock()\r\n super.disable(alwaysDisabled)\r\n }\r\n\r\n destroy () {\r\n if (this.selectize_instance) {\r\n this.selectize_instance.destroy()\r\n this.selectize_instance = null\r\n }\r\n super.destroy()\r\n }\r\n}\r\n","/* This editor is using the signature pad editor from https://github.com/szimek/signature_pad */\r\n/* Credits for the pad itself go to https://github.com/szimek */\r\n\r\nimport { StringEditor } from './string.js'\r\n\r\nexport class SignatureEditor extends StringEditor {\r\n build () {\r\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\r\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\r\n const formname = this.formname.replace(/\\W/g, '')\r\n\r\n if (typeof SignaturePad === 'function') {\r\n /* Dynamically add the required CSS the first time this editor is used */\r\n this.input = this.theme.getFormInputField('hidden')\r\n this.container.appendChild(this.input)\r\n\r\n /* Required to keep height */\r\n const signatureContainer = document.createElement('div')\r\n signatureContainer.classList.add('signature-container')\r\n\r\n /* Create canvas for signature pad */\r\n const canvas = document.createElement('canvas')\r\n canvas.setAttribute('name', formname)\r\n canvas.classList.add('signature')\r\n signatureContainer.appendChild(canvas)\r\n\r\n this.signaturePad = new window.SignaturePad(canvas, {\r\n onEnd () {\r\n /* check if the signature is not empty before setting a value */\r\n if (!this.signaturePad.isEmpty()) {\r\n this.input.value = this.signaturePad.toDataURL()\r\n } else {\r\n this.input.value = ''\r\n }\r\n\r\n this.is_dirty = true\r\n this.refreshValue()\r\n this.watch_listener()\r\n this.jsoneditor.notifyWatchers(this.path)\r\n if (this.parent) this.parent.onChildEditorChange(this)\r\n else this.jsoneditor.onChange()\r\n }\r\n })\r\n\r\n /* create button containers and add clear signature button */\r\n const buttons = document.createElement('div')\r\n const clearButton = document.createElement('button')\r\n clearButton.classList.add('tiny', 'button')\r\n clearButton.innerHTML = 'Clear signature'\r\n buttons.appendChild(clearButton)\r\n signatureContainer.appendChild(buttons)\r\n\r\n if (this.options.compact) this.container.setAttribute('class', `${this.container.getAttribute('class')} compact`)\r\n\r\n if (this.schema.readOnly || this.schema.readonly) {\r\n this.disable(true)\r\n\r\n Array.from(this.inputs).forEach(input => {\r\n canvas.setAttribute('readOnly', 'readOnly')\r\n input.disabled = true\r\n })\r\n }\r\n /* add listener to the clear button. when clicked, trigger a canvas change after emptying the canvas */\r\n clearButton.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.signaturePad.clear()\r\n /* trigger stroke end to let signaturePad update the dataURL */\r\n this.signaturePad.strokeEnd()\r\n })\r\n\r\n this.control = this.theme.getFormControl(this.label, signatureContainer, this.description)\r\n this.container.appendChild(this.control)\r\n this.refreshValue()\r\n\r\n /* signature canvas will stretch to signatureContainer width */\r\n canvas.width = signatureContainer.offsetWidth\r\n if (this.options && this.options.canvas_height) {\r\n canvas.height = this.options.canvas_height\r\n } else {\r\n canvas.height = '300' /* Set to default height of 300px; */\r\n }\r\n } else {\r\n const message = document.createElement('p')\r\n message.innerHTML = 'Signature pad is not available, please include SignaturePad from https://github.com/szimek/signature_pad'\r\n this.container.appendChild(message)\r\n }\r\n }\r\n\r\n setValue (val) {\r\n if (typeof SignaturePad === 'function') {\r\n const sanitized = this.sanitize(val)\r\n if (this.value === sanitized) {\r\n return\r\n }\r\n this.value = sanitized\r\n this.input.value = this.value\r\n this.signaturePad.clear()\r\n /* only set contents if value != '' */\r\n if (val && val !== '') {\r\n this.signaturePad.fromDataURL(val)\r\n }\r\n this.watch_listener()\r\n this.jsoneditor.notifyWatchers(this.path)\r\n return false\r\n }\r\n }\r\n\r\n destroy () {\r\n this.signaturePad.off()\r\n delete this.signaturePad\r\n }\r\n}\r\n","import { StringEditor } from './string.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class SimplemdeEditor extends StringEditor {\r\n setValue (value, initial, fromTemplate) {\r\n const res = super.setValue(value, initial, fromTemplate)\r\n if (res !== undefined && res.changed && this.simplemde_instance) this.simplemde_instance.value(res.value)\r\n }\r\n\r\n build () {\r\n this.options.format = 'textarea' /* Force format into \"textarea\" */\r\n super.build()\r\n this.input_type = this.schema.format /* Restore original format */\r\n this.input.setAttribute('data-schemaformat', this.input_type)\r\n }\r\n\r\n afterInputReady () {\r\n let options\r\n\r\n if (window.SimpleMDE) {\r\n /* Get options, either global options from \"this.defaults.options.simplemde\" or */\r\n /* single property options from schema \"options.simplemde\" */\r\n options = this.expandCallbacks('simplemde', extend({}, {\r\n height: 300\r\n }, this.defaults.options.simplemde || {}, this.options.simplemde || {}, {\r\n element: this.input\r\n }))\r\n\r\n this.simplemde_instance = new window.SimpleMDE(options)\r\n\r\n if (this.schema.readOnly || this.schema.readonly || this.schema.template) {\r\n this.simplemde_instance.codemirror.options.readOnly = true\r\n }\r\n\r\n /* Listen for changes */\r\n this.simplemde_instance.codemirror.on('change', () => {\r\n this.value = this.simplemde_instance.value()\r\n this.is_dirty = true\r\n this.onChange(true)\r\n })\r\n\r\n /* This will prevent SimpleMDE content from being hidden until focus in Chrome */\r\n /* if SimpleMDE is not visible (Like when placed inside Tabs) */\r\n if (options.autorefresh) {\r\n this.startListening(this.simplemde_instance.codemirror, this.simplemde_instance.codemirror.state.autoRefresh = { delay: 250 })\r\n }\r\n\r\n this.theme.afterInputReady(this.input)\r\n } else super.afterInputReady() /* Library not loaded, so just treat this as a string */\r\n }\r\n\r\n getNumColumns () {\r\n return 6\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled && this.simplemde_instance) this.simplemde_instance.codemirror.options.readOnly = false\r\n super.enable()\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (this.simplemde_instance) this.simplemde_instance.codemirror.options.readOnly = true\r\n super.disable(alwaysDisabled)\r\n }\r\n\r\n destroy () {\r\n if (this.simplemde_instance) {\r\n this.simplemde_instance.toTextArea()\r\n this.simplemde_instance = null\r\n }\r\n super.destroy()\r\n }\r\n\r\n /* Ported from https://codemirror.net/addon/display/autorefresh.js */\r\n startListening (cm, state) {\r\n function check () {\r\n if (cm.display.wrapper.offsetHeight) {\r\n this.stopListening(cm, state)\r\n if (cm.display.lastWrapHeight !== cm.display.wrapper.clientHeight) {\r\n cm.refresh()\r\n }\r\n } else {\r\n state.timeout = window.setTimeout(check, state.delay)\r\n }\r\n }\r\n state.timeout = window.setTimeout(check, state.delay)\r\n state.hurry = () => {\r\n window.clearTimeout(state.timeout)\r\n state.timeout = window.setTimeout(check, 50)\r\n }\r\n cm.on(window, 'mouseup', state.hurry)\r\n cm.on(window, 'keyup', state.hurry)\r\n }\r\n\r\n stopListening (cm, state) {\r\n window.clearTimeout(state.timeout)\r\n cm.off(window, 'mouseup', state.hurry)\r\n cm.off(window, 'keyup', state.hurry)\r\n }\r\n}\r\n","/* eslint-disable */\nexport default {\".starrating\":\"direction:rtl;display:inline-block;white-space:nowrap\",\".starrating > input\":\"display:none\",\".starrating > label:before\":\"content:'%5C2606';margin:1px;font-size:18px;font-style:normal;font-weight:400;line-height:1;font-family:'Arial';display:inline-block\",\".starrating > label\":\"color:%23888;cursor:pointer;margin:8px%200%202px%200\",\".starrating > label.starrating-display-enabled\":\"margin:1px%200%200%200\",\".starrating > input:checked ~ label\":\"color:%23ffca08\",\".starrating:not(.readonly) > input:hover ~ label\":\"color:%23ffca08\",\".starrating > input:checked ~ label:before\":\"content:'%5C2605';text-shadow:0%200%201px%20rgba(0%2C20%2C20%2C1)\",\".starrating:not(.readonly) > input:hover ~ label:before\":\"content:'%5C2605';text-shadow:0%200%201px%20rgba(0%2C20%2C20%2C1)\",\".starrating .starrating-display\":\"position:relative;direction:rtl;text-align:center;font-size:10px;line-height:0px\"}\n/* eslint-enable */\n","import { StringEditor } from './string.js'\r\nimport rules from './starrating.css.js'\r\n\r\nexport class StarratingEditor extends StringEditor {\r\n build () {\r\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\r\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\r\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\r\n if (this.options.compact) this.container.classList.add('compact')\r\n\r\n this.ratingContainer = document.createElement('div')\r\n this.ratingContainer.classList.add('starrating')\r\n\r\n /* Emulate the old \"rating\" editor parameters */\r\n if (this.schema.enum === undefined) {\r\n let max = this.schema.maximum ? this.schema.maximum : 5\r\n if (this.schema.exclusiveMaximum) max--\r\n this.enum_values = []\r\n for (let k = 0; k < max; k++) this.enum_values.push(k + 1)\r\n } else this.enum_values = this.schema.enum\r\n\r\n this.radioGroup = []\r\n\r\n const radioInputEventhandler = e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.setValue(e.currentTarget.value)\r\n this.onChange(true)\r\n }\r\n\r\n for (let i = this.enum_values.length - 1; i > -1; i--) {\r\n const id = this.formname + (i + 1)\r\n\r\n /* form radio elements */\r\n const radioInput = this.theme.getFormInputField('radio')\r\n radioInput.name = `${this.formname}[starrating]`\r\n radioInput.value = this.enum_values[i]\r\n radioInput.id = id\r\n radioInput.addEventListener('change', radioInputEventhandler, false)\r\n this.radioGroup.push(radioInput)\r\n\r\n /* form-label for radio elements */\r\n const radioLabel = document.createElement('label')\r\n radioLabel.htmlFor = id\r\n radioLabel.title = this.enum_values[i]\r\n if (this.options.displayValue) {\r\n radioLabel.classList.add('starrating-display-enabled')\r\n }\r\n\r\n this.ratingContainer.appendChild(radioInput)\r\n this.ratingContainer.appendChild(radioLabel)\r\n }\r\n\r\n if (this.options.displayValue) {\r\n this.displayRating = document.createElement('div')\r\n this.displayRating.classList.add('starrating-display')\r\n this.displayRating.innerText = this.enum_values[0]\r\n this.ratingContainer.appendChild(this.displayRating)\r\n }\r\n\r\n if (this.schema.readOnly || this.schema.readonly) {\r\n this.disable(true)\r\n for (let j = 0; j < this.radioGroup.length; j++) {\r\n this.radioGroup[j].disabled = true\r\n }\r\n this.ratingContainer.classList.add('readonly')\r\n }\r\n\r\n const ratingsContainerWrapper = this.theme.getContainer()\r\n ratingsContainerWrapper.appendChild(this.ratingContainer)\r\n\r\n this.input = ratingsContainerWrapper\r\n\r\n this.control = this.theme.getFormControl(this.label, ratingsContainerWrapper, this.description, this.infoButton)\r\n this.container.appendChild(this.control)\r\n\r\n this.refreshValue()\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n for (let i = 0; i < this.radioGroup.length; i++) {\r\n this.radioGroup[i].disabled = false\r\n }\r\n this.ratingContainer.classList.remove('readonly')\r\n this.disabled = false\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n for (let i = 0; i < this.radioGroup.length; i++) {\r\n this.radioGroup[i].disabled = true\r\n }\r\n this.ratingContainer.classList.add('readonly')\r\n this.disabled = true\r\n }\r\n\r\n destroy () {\r\n if (this.ratingContainer.parentNode && this.ratingContainer.parentNode.parentNode) this.ratingContainer.parentNode.parentNode.removeChild(this.ratingContainer.parentNode)\r\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\r\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\r\n super.destroy()\r\n }\r\n\r\n getNumColumns () {\r\n return 2\r\n }\r\n\r\n getValue () {\r\n if (!this.dependenciesFulfilled) {\r\n return undefined\r\n }\r\n if (this.schema.type === 'integer') {\r\n return this.value === '' ? undefined : this.value * 1\r\n }\r\n return this.value\r\n }\r\n\r\n setValue (value) {\r\n for (let i = 0; i < this.radioGroup.length; i++) {\r\n if (this.radioGroup[i].value === `${value}`) {\r\n this.radioGroup[i].checked = true\r\n this.value = value\r\n\r\n if (this.options.displayValue) this.displayRating.innerHTML = this.value\r\n\r\n this.onChange(true)\r\n break\r\n }\r\n }\r\n }\r\n}\r\n\r\nStarratingEditor.rules = rules\r\n","import { IntegerEditor } from './integer.js'\r\n\r\nexport class StepperEditor extends IntegerEditor {\r\n build () {\r\n super.build()\r\n this.input.setAttribute('type', 'number')\r\n if (!this.input.getAttribute('step')) {\r\n this.input.setAttribute('step', '1')\r\n }\r\n const stepperButtons = this.theme.getStepperButtons(this.input)\r\n this.control.appendChild(stepperButtons)\r\n this.stepperDown = this.control.querySelector('.stepper-down')\r\n this.stepperUp = this.control.querySelector('.stepper-up')\r\n }\r\n\r\n enable () {\r\n super.enable()\r\n this.stepperDown.removeAttribute('disabled')\r\n this.stepperUp.removeAttribute('disabled')\r\n }\r\n\r\n disable () {\r\n super.disable()\r\n this.stepperDown.setAttribute('disabled', true)\r\n this.stepperUp.setAttribute('disabled', true)\r\n }\r\n}\r\n","import { AbstractEditor } from '../editor.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class StringEditor extends AbstractEditor {\r\n register () {\r\n super.register()\r\n if (!this.input) return\r\n this.input.setAttribute('name', this.formname)\r\n }\r\n\r\n unregister () {\r\n super.unregister()\r\n if (!this.input) return\r\n this.input.removeAttribute('name')\r\n }\r\n\r\n setValue (value, initial, fromTemplate) {\r\n if (this.template && !fromTemplate) return\r\n\r\n if (!this.shouldBeUnset() && (value === null || typeof value === 'undefined')) value = ''\r\n else if (typeof value === 'object') value = JSON.stringify(value)\r\n else if (!this.shouldBeUnset() && (typeof value !== 'string')) value = `${value}`\r\n\r\n if (value === this.serialized) return\r\n\r\n /* Sanitize value before setting it */\r\n const sanitized = this.sanitize(value)\r\n\r\n if (this.input.value === sanitized) return\r\n\r\n this.setValueToInputField(sanitized)\r\n\r\n if (this.format === 'range') {\r\n const output = this.control.querySelector('output')\r\n if (output) {\r\n output.value = sanitized\r\n }\r\n }\r\n\r\n const changed = fromTemplate || this.getValue() !== value\r\n\r\n this.refreshValue()\r\n\r\n if (initial) this.is_dirty = false\r\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\r\n\r\n if (this.adjust_height) this.adjust_height(this.input)\r\n\r\n /* Bubble this setValue to parents if the value changed */\r\n this.onChange(changed)\r\n\r\n /* Return object with changed state and sanitized value for use in editors that extend this */\r\n return { changed, value: sanitized }\r\n }\r\n\r\n setValueToInputField (value) {\r\n this.input.value = value === undefined ? '' : value\r\n }\r\n\r\n getNumColumns () {\r\n const min = Math.ceil(Math.max(this.getTitle().length, this.schema.maxLength || 0, this.schema.minLength || 0) / 5)\r\n let num\r\n\r\n if (this.input_type === 'textarea') num = 6\r\n else if (['text', 'email'].includes(this.input_type)) num = 4\r\n else num = 2\r\n\r\n return Math.min(12, Math.max(min, num))\r\n }\r\n\r\n build () {\r\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\r\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\r\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\r\n\r\n this.format = this.schema.format\r\n if (!this.format && this.schema.media && this.schema.media.type) {\r\n this.format = this.schema.media.type.replace(/(^(application|text)\\/(x-)?(script\\.)?)|(-source$)/g, '')\r\n }\r\n if (!this.format && this.options.default_format) {\r\n this.format = this.options.default_format\r\n }\r\n if (this.options.format) {\r\n this.format = this.options.format\r\n }\r\n\r\n /* Specific format */\r\n if (this.format) {\r\n /* Text Area */\r\n if (this.format === 'textarea') {\r\n this.input_type = 'textarea'\r\n this.input = this.theme.getTextareaInput()\r\n /* Range Input */\r\n } else if (this.format === 'range') {\r\n this.input_type = 'range'\r\n let min = this.schema.minimum || 0\r\n let max = this.schema.maximum || Math.max(100, min + 1)\r\n let step = 1\r\n if (this.schema.multipleOf) {\r\n if (min % this.schema.multipleOf) min = Math.ceil(min / this.schema.multipleOf) * this.schema.multipleOf\r\n if (max % this.schema.multipleOf) max = Math.floor(max / this.schema.multipleOf) * this.schema.multipleOf\r\n step = this.schema.multipleOf\r\n }\r\n\r\n this.input = this.theme.getRangeInput(min, max, step)\r\n /* HTML5 Input type */\r\n } else {\r\n this.input_type = 'text'\r\n if (['button', 'checkbox', 'color', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image', 'month', 'number', 'password', 'radio', 'reset', 'search', 'submit', 'tel', 'text', 'time', 'url', 'week'].includes(this.format)) {\r\n this.input_type = this.format\r\n }\r\n this.input = this.theme.getFormInputField(this.input_type)\r\n }\r\n /* Normal text input */\r\n } else {\r\n this.input_type = 'text'\r\n this.input = this.theme.getFormInputField(this.input_type)\r\n }\r\n\r\n /* minLength, maxLength, and pattern */\r\n if (typeof this.schema.maxLength !== 'undefined') this.input.setAttribute('maxlength', this.schema.maxLength)\r\n if (typeof this.schema.pattern !== 'undefined') this.input.setAttribute('pattern', this.schema.pattern)\r\n else if (typeof this.schema.minLength !== 'undefined') this.input.setAttribute('pattern', `.{${this.schema.minLength},}`)\r\n\r\n if (this.options.compact) {\r\n this.container.classList.add('compact')\r\n } else if (this.options.input_width) this.input.style.width = this.options.input_width\r\n\r\n if (this.schema.readOnly || this.schema.readonly || this.schema.template) {\r\n this.disable(true)\r\n this.input.setAttribute('readonly', 'true')\r\n }\r\n\r\n /* Set custom attributes on input element. Parameter is array of protected keys. Empty array if none. */\r\n this.setInputAttributes(['maxlength', 'pattern', 'readonly', 'min', 'max', 'step'])\r\n\r\n this.input\r\n .addEventListener('change', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n /* Don't allow changing if this field is a template */\r\n if (this.schema.template) {\r\n e.currentTarget.value = this.value\r\n return\r\n }\r\n\r\n const val = e.currentTarget.value\r\n\r\n /* sanitize value */\r\n const sanitized = this.sanitize(val)\r\n if (val !== sanitized) {\r\n e.currentTarget.value = sanitized\r\n }\r\n\r\n this.is_dirty = true\r\n\r\n this.refreshValue()\r\n this.onChange(true)\r\n })\r\n\r\n if (this.options.input_height) this.input.style.height = this.options.input_height\r\n if (this.options.expand_height) {\r\n this.adjust_height = (el) => {\r\n if (!el) return\r\n let i; let ch = el.offsetHeight\r\n /* Input too short */\r\n if (el.offsetHeight < el.scrollHeight) {\r\n i = 0\r\n while (el.offsetHeight < el.scrollHeight + 3) {\r\n if (i > 100) break\r\n i++\r\n ch++\r\n el.style.height = `${ch}px`\r\n }\r\n } else {\r\n i = 0\r\n while (el.offsetHeight >= el.scrollHeight + 3) {\r\n if (i > 100) break\r\n i++\r\n ch--\r\n el.style.height = `${ch}px`\r\n }\r\n el.style.height = `${ch + 1}px`\r\n }\r\n }\r\n\r\n this.input.addEventListener('keyup', e => {\r\n this.adjust_height(e.currentTarget)\r\n })\r\n this.input.addEventListener('change', e => {\r\n this.adjust_height(e.currentTarget)\r\n })\r\n this.adjust_height()\r\n }\r\n\r\n if (this.format) this.input.setAttribute('data-schemaformat', this.format)\r\n\r\n let { input } = this\r\n if (this.format === 'range') {\r\n input = this.theme.getRangeControl(this.input, this.theme.getRangeOutput(this.input, this.schema.default || Math.max(this.schema.minimum || 0, 0)))\r\n }\r\n\r\n this.control = this.theme.getFormControl(this.label, input, this.description, this.infoButton)\r\n this.container.appendChild(this.control)\r\n\r\n /* Any special formatting that needs to happen after the input is added to the dom */\r\n window.requestAnimationFrame(() => {\r\n /* Skip in case the input is only a temporary editor, */\r\n /* otherwise, in the case of an ace_editor creation, */\r\n /* it will generate an error trying to append it to the missing parentNode */\r\n if (this.input.parentNode) this.afterInputReady()\r\n if (this.adjust_height) this.adjust_height(this.input)\r\n })\r\n\r\n /* Compile and store the template */\r\n if (this.schema.template) {\r\n const callback = this.expandCallbacks('template', { template: this.schema.template })\r\n if (typeof callback.template === 'function') this.template = callback.template\r\n else this.template = this.jsoneditor.compileTemplate(this.schema.template, this.template_engine)\r\n this.refreshValue()\r\n } else {\r\n this.refreshValue()\r\n }\r\n }\r\n\r\n setupCleave (el) {\r\n /* Enable cleave.js support if library is loaded and config is available */\r\n const options = this.expandCallbacks('cleave', extend({}, this.defaults.options.cleave || {}, this.options.cleave || {}))\r\n if (typeof options === 'object' && Object.keys(options).length > 0) {\r\n this.cleave_instance = new window.Cleave(el, options)\r\n }\r\n }\r\n\r\n setupImask (el) {\r\n /* Enable imask.js support if library is loaded and config is available */\r\n const options = this.expandCallbacks('imask', extend({}, this.defaults.options.imask || {}, this.options.imask || {}))\r\n if (typeof options === 'object' && Object.keys(options).length > 0) {\r\n this.imask_instance = window.IMask(el, this.ajustIMaskOptions(options))\r\n }\r\n }\r\n\r\n ajustIMaskOptions (obj) {\r\n /* iMask config format is not JSON friendly, so function and regex based mask */\r\n /* properties have to be adjusted from string to the correct format */\r\n Object.keys(obj).forEach(prop => {\r\n if (obj[prop] === Object(obj[prop])) obj[prop] = this.ajustIMaskOptions(obj[prop])\r\n else if (prop === 'mask') {\r\n if (obj[prop].substr(0, 6) === 'regex:') {\r\n const regExMatch = obj[prop].match(/^regex:\\/(.*)\\/([gimsuy]*)$/)\r\n if (regExMatch !== null) {\r\n try {\r\n obj[prop] = new RegExp(regExMatch[1], regExMatch[2])\r\n } catch (e) { }\r\n }\r\n } else obj[prop] = this.getGlobalPropertyFromString(obj[prop])\r\n }\r\n })\r\n return obj\r\n }\r\n\r\n getGlobalPropertyFromString (strValue) {\r\n if (!strValue.includes('.')) {\r\n if (typeof window[strValue] !== 'undefined') {\r\n return window[strValue]\r\n }\r\n } else {\r\n const arrParts = strValue.split('.')\r\n const obj = arrParts[0]\r\n const prop = arrParts[1]\r\n\r\n if (typeof window[obj] !== 'undefined' && typeof window[obj][prop] !== 'undefined') {\r\n return window[obj][prop]\r\n }\r\n }\r\n /* just a string */\r\n return strValue\r\n }\r\n\r\n shouldBeUnset () {\r\n return !this.jsoneditor.options.use_default_values && !this.is_dirty\r\n }\r\n\r\n getValue () {\r\n const hasValueSet = !!(this.input && this.input.value)\r\n if (this.shouldBeUnset() && !hasValueSet) {\r\n return undefined\r\n }\r\n if (this.imask_instance && this.dependenciesFulfilled && this.options.imask.returnUnmasked) {\r\n return this.imask_instance.unmaskedValue\r\n } return super.getValue()\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n this.input.disabled = false\r\n super.enable()\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n this.input.disabled = true\r\n super.disable()\r\n }\r\n\r\n afterInputReady () {\r\n this.theme.afterInputReady(this.input)\r\n if (window.Cleave && !this.cleave_instance) this.setupCleave(this.input)\r\n else if (window.IMask && !this.imask_instance) this.setupImask(this.input)\r\n }\r\n\r\n refreshValue () {\r\n this.value = this.input.value\r\n if (typeof this.value !== 'string' && !this.shouldBeUnset()) this.value = ''\r\n this.serialized = this.value\r\n }\r\n\r\n destroy () {\r\n if (this.cleave_instance) this.cleave_instance.destroy()\r\n if (this.imask_instance) this.imask_instance.destroy()\r\n\r\n this.template = null\r\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\r\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\r\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\r\n\r\n super.destroy()\r\n }\r\n\r\n /**\r\n * This is overridden in derivative editors\r\n */\r\n sanitize (value) {\r\n return value\r\n }\r\n\r\n /**\r\n * Re-calculates the value if needed\r\n */\r\n onWatchedFieldChange () {\r\n let vars\r\n\r\n /* If this editor needs to be rendered by a macro template */\r\n if (this.template) {\r\n vars = this.getWatchedFieldValues()\r\n this.setValue(this.template(vars), false, true)\r\n }\r\n\r\n super.onWatchedFieldChange()\r\n }\r\n\r\n showValidationErrors (errors) {\r\n if (this.jsoneditor.options.show_errors === 'always') { } else if (!this.is_dirty && this.previous_error_setting === this.jsoneditor.options.show_errors) return\r\n\r\n this.previous_error_setting = this.jsoneditor.options.show_errors\r\n\r\n const addMessage = (messages, error) => {\r\n if (error.path === this.path) {\r\n messages.push(error.message)\r\n }\r\n return messages\r\n }\r\n const messages = errors.reduce(addMessage, [])\r\n\r\n if (messages.length) {\r\n this.theme.addInputError(this.input, `${messages.join('. ')}.`)\r\n } else {\r\n this.theme.removeInputError(this.input)\r\n }\r\n }\r\n}\r\n","import { ArrayEditor } from './array.js'\r\nimport { extend, trigger } from '../utilities.js'\r\n\r\nexport class TableEditor extends ArrayEditor {\r\n register () {\r\n super.register()\r\n if (this.rows) {\r\n for (let i = 0; i < this.rows.length; i++) {\r\n this.rows[i].register()\r\n }\r\n }\r\n }\r\n\r\n unregister () {\r\n super.unregister()\r\n if (this.rows) {\r\n for (let i = 0; i < this.rows.length; i++) {\r\n this.rows[i].unregister()\r\n }\r\n }\r\n }\r\n\r\n getNumColumns () {\r\n return Math.max(Math.min(12, this.width), 3)\r\n }\r\n\r\n preBuild () {\r\n const itemSchema = this.jsoneditor.expandRefs(this.schema.items || {})\r\n\r\n this.item_title = this.translateProperty(itemSchema.title) || 'row'\r\n this.item_default = itemSchema.default || null\r\n this.item_has_child_editors = itemSchema.properties || itemSchema.items\r\n this.width = 12\r\n this.array_controls_top = this.options.array_controls_top || this.jsoneditor.options.array_controls_top\r\n super.preBuild()\r\n }\r\n\r\n build () {\r\n this.tableContainer = this.theme.getTableContainer()\r\n this.table = this.theme.getTable()\r\n this.tableContainer.appendChild(this.table)\r\n\r\n this.container.appendChild(this.tableContainer)\r\n this.thead = this.theme.getTableHead()\r\n this.table.appendChild(this.thead)\r\n this.header_row = this.theme.getTableRow()\r\n this.thead.appendChild(this.header_row)\r\n this.row_holder = this.theme.getTableBody()\r\n this.table.appendChild(this.row_holder)\r\n\r\n /* Determine the default value of array element */\r\n const tmp = this.getElementEditor(0, true)\r\n this.item_default = tmp.getDefault()\r\n this.width = tmp.getNumColumns() + 2\r\n\r\n if (!this.options.compact) {\r\n this.header = document.createElement('label')\r\n this.header.textContent = this.getTitle()\r\n this.title = this.theme.getHeader(this.header, this.getPathDepth())\r\n this.container.appendChild(this.title)\r\n if (this.options.infoText) {\r\n this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\r\n this.container.appendChild(this.infoButton)\r\n }\r\n this.title_controls = this.theme.getHeaderButtonHolder()\r\n this.title.appendChild(this.title_controls)\r\n if (this.schema.description) {\r\n this.description = this.theme.getDescription(this.translateProperty(this.schema.description))\r\n this.container.appendChild(this.description)\r\n }\r\n if (!this.options.wb || !this.options.wb.disable_panel) {\r\n this.panel = this.theme.getIndentedPanel()\r\n } else {\r\n this.panel = document.createElement('div')\r\n }\r\n this.container.appendChild(this.panel)\r\n this.error_holder = document.createElement('div')\r\n this.panel.appendChild(this.error_holder)\r\n } else {\r\n this.panel = document.createElement('div')\r\n this.container.appendChild(this.panel)\r\n }\r\n\r\n this.panel.appendChild(this.tableContainer)\r\n this.controls = this.theme.getButtonHolder()\r\n if (this.array_controls_top) {\r\n this.title.appendChild(this.controls)\r\n } else {\r\n this.panel.appendChild(this.controls)\r\n }\r\n\r\n if (this.item_has_child_editors) {\r\n const ce = tmp.getChildEditors()\r\n const order = tmp.property_order || Object.keys(ce)\r\n for (let i = 0; i < order.length; i++) {\r\n const th = this.theme.getTableHeaderCell(ce[order[i]].getTitle())\r\n if (ce[order[i]].options.hidden) th.style.display = 'none'\r\n this.header_row.appendChild(th)\r\n }\r\n } else {\r\n this.header_row.appendChild(this.theme.getTableHeaderCell(this.item_title))\r\n }\r\n\r\n tmp.destroy()\r\n this.row_holder.innerHTML = ''\r\n\r\n /* Row Controls column */\r\n this.controls_header_cell = this.theme.getTableHeaderCell(' ')\r\n this.header_row.appendChild(this.controls_header_cell)\r\n\r\n /* Add controls */\r\n this.addControls()\r\n }\r\n\r\n onChildEditorChange (editor) {\r\n this.refreshValue()\r\n super.onChildEditorChange()\r\n }\r\n\r\n getItemDefault () {\r\n return extend({}, { default: this.item_default }).default\r\n }\r\n\r\n getItemTitle () {\r\n return this.item_title\r\n }\r\n\r\n getElementEditor (i, ignore) {\r\n const schemaCopy = extend({}, this.schema.items)\r\n const editor = this.jsoneditor.getEditorClass(schemaCopy, this.jsoneditor)\r\n const row = this.row_holder.appendChild(this.theme.getTableRow())\r\n let holder = row\r\n if (!this.item_has_child_editors) {\r\n holder = this.theme.getTableCell()\r\n row.appendChild(holder)\r\n }\r\n\r\n const ret = this.jsoneditor.createEditor(editor, {\r\n jsoneditor: this.jsoneditor,\r\n schema: schemaCopy,\r\n container: holder,\r\n path: `${this.path}.${i}`,\r\n parent: this,\r\n compact: true,\r\n table_row: true\r\n })\r\n\r\n ret.preBuild()\r\n if (!ignore) {\r\n ret.build()\r\n ret.postBuild()\r\n\r\n ret.controls_cell = row.appendChild(this.theme.getTableCell())\r\n ret.row = row\r\n ret.table_controls = this.theme.getButtonHolder()\r\n ret.controls_cell.appendChild(ret.table_controls)\r\n ret.table_controls.style.margin = 0\r\n ret.table_controls.style.padding = 0\r\n }\r\n\r\n return ret\r\n }\r\n\r\n destroy () {\r\n this.innerHTML = ''\r\n if (this.checkParent(this.title)) this.title.parentNode.removeChild(this.title)\r\n if (this.checkParent(this.description)) this.description.parentNode.removeChild(this.description)\r\n if (this.checkParent(this.row_holder)) this.row_holder.parentNode.removeChild(this.row_holder)\r\n if (this.checkParent(this.table)) this.table.parentNode.removeChild(this.table)\r\n if (this.checkParent(this.panel)) this.panel.parentNode.removeChild(this.panel)\r\n\r\n this.rows = this.title = this.description = this.row_holder = this.table = this.panel = null\r\n\r\n super.destroy()\r\n }\r\n\r\n ensureArraySize (value) {\r\n if (!(Array.isArray(value))) value = [value]\r\n\r\n if (this.schema.minItems) {\r\n while (value.length < this.schema.minItems) {\r\n value.push(this.getItemDefault())\r\n }\r\n }\r\n if (this.schema.maxItems && value.length > this.schema.maxItems) {\r\n value = value.slice(0, this.schema.maxItems)\r\n }\r\n return value\r\n }\r\n\r\n setValue (value = [], initial) {\r\n /* Make sure value has between minItems and maxItems items in it */\r\n value = this.ensureArraySize(value)\r\n\r\n const serialized = JSON.stringify(value)\r\n if (serialized === this.serialized) return\r\n\r\n let numrowsChanged = false\r\n\r\n value.forEach((val, i) => {\r\n if (this.rows[i]) {\r\n /* TODO: don't set the row's value if it hasn't changed */\r\n this.rows[i].setValue(val)\r\n } else {\r\n this.addRow(val)\r\n numrowsChanged = true\r\n }\r\n })\r\n\r\n for (let j = value.length; j < this.rows.length; j++) {\r\n const holder = this.rows[j].container\r\n if (!this.item_has_child_editors) {\r\n this.rows[j].row.parentNode.removeChild(this.rows[j].row)\r\n }\r\n this.rows[j].destroy()\r\n if (holder.parentNode) holder.parentNode.removeChild(holder)\r\n this.rows[j] = null\r\n numrowsChanged = true\r\n }\r\n this.rows = this.rows.slice(0, value.length)\r\n\r\n this.refreshValue()\r\n if (numrowsChanged || initial) this.refreshRowButtons()\r\n\r\n this.onChange()\r\n\r\n /* TODO: sortable */\r\n }\r\n\r\n refreshRowButtons () {\r\n /* If we currently have minItems items in the array */\r\n const minItems = this.schema.minItems && this.schema.minItems >= this.rows.length\r\n /* If we currently have maxItems items in the array */\r\n const maxItems = this.schema.maxItems && this.schema.maxItems <= this.rows.length\r\n\r\n const needRowButtons = []\r\n this.rows.forEach((editor, i) => {\r\n if (editor.delete_button) {\r\n /* Hide the delete button if we have minItems items */\r\n const display = !minItems\r\n this.setVisibility(editor.delete_button, display)\r\n needRowButtons.push(display)\r\n }\r\n\r\n if (editor.copy_button) {\r\n /* Hide the copy button if we have maxItems items */\r\n const display = !maxItems\r\n this.setVisibility(editor.copy_button, display)\r\n needRowButtons.push(display)\r\n }\r\n\r\n if (editor.moveup_button) {\r\n /* Hide the moveup button for the first row */\r\n const display = i !== 0\r\n this.setVisibility(editor.moveup_button, display)\r\n needRowButtons.push(display)\r\n }\r\n\r\n if (editor.movedown_button) {\r\n /* Hide the movedown button for the last row */\r\n const display = i !== this.rows.length - 1\r\n this.setVisibility(editor.movedown_button, display)\r\n needRowButtons.push(display)\r\n }\r\n })\r\n\r\n const need = needRowButtons.some(e => e)\r\n /* Show/hide controls column in table */\r\n this.rows.forEach((editor) =>\r\n this.setVisibility(editor.controls_cell, need)\r\n )\r\n this.setVisibility(this.controls_header_cell, need)\r\n\r\n this.setVisibility(this.table, this.value.length)\r\n\r\n /* If there are maxItems items in the array, or configured to hide the add_row_button button, hide the button beneath the rows */\r\n const display1 = !(maxItems || this.hide_add_button)\r\n this.setVisibility(this.add_row_button, display1)\r\n\r\n /* If there are minItems items in the array, or configured to hide the delete_last_row button, hide the button beneath the rows */\r\n const display2 = !(!this.value.length || minItems || this.hide_delete_last_row_buttons)\r\n this.setVisibility(this.delete_last_row_button, display2)\r\n\r\n /* If there are minItems items in the array, or configured to hide the remove_all_rows_button button, hide the button beneath the rows */\r\n const display3 = !(this.value.length <= 1 || minItems || this.hide_delete_all_rows_buttons)\r\n this.setVisibility(this.remove_all_rows_button, display3)\r\n\r\n const controlsNeeded = display1 || display2 || display3\r\n this.setVisibility(this.controls, controlsNeeded)\r\n }\r\n\r\n refreshValue () {\r\n this.value = []\r\n\r\n this.rows.forEach((editor, i) => {\r\n /* Get the value for this editor */\r\n this.value[i] = editor.getValue()\r\n })\r\n this.serialized = JSON.stringify(this.value)\r\n }\r\n\r\n addRow (value) {\r\n const i = this.rows.length\r\n\r\n this.rows[i] = this.getElementEditor(i)\r\n\r\n const controlsHolder = this.rows[i].table_controls\r\n\r\n /* Buttons to delete row, copy row, move row up, and move row down */\r\n if (!this.hide_delete_buttons) {\r\n this.rows[i].delete_button = this._createDeleteButton(i, controlsHolder)\r\n }\r\n\r\n if (this.show_copy_button) {\r\n this.rows[i].copy_button = this._createCopyButton(i, controlsHolder)\r\n }\r\n\r\n if (!this.hide_move_buttons) {\r\n this.rows[i].moveup_button = this._createMoveUpButton(i, controlsHolder)\r\n }\r\n\r\n if (!this.hide_move_buttons) {\r\n this.rows[i].movedown_button = this._createMoveDownButton(i, controlsHolder)\r\n }\r\n\r\n if (typeof value !== 'undefined') this.rows[i].setValue(value)\r\n }\r\n\r\n _createDeleteButton (i, holder) {\r\n const button = this.getButton('', 'delete', 'button_delete_row_title_short')\r\n button.classList.add('delete', 'json-editor-btntype-delete')\r\n button.setAttribute('data-i', i)\r\n button.addEventListener('click', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n if (!this.askConfirmation()) {\r\n return false\r\n }\r\n\r\n const j = e.currentTarget.getAttribute('data-i') * 1\r\n const value = this.getValue()\r\n\r\n value.splice(j, 1)\r\n\r\n this.setValue(value)\r\n this.onChange(true)\r\n this.jsoneditor.trigger('deleteRow', this.rows[j])\r\n })\r\n holder.appendChild(button)\r\n return button\r\n }\r\n\r\n _createCopyButton (i, holder) {\r\n const button = this.getButton('', 'copy', 'button_copy_row_title_short')\r\n button.classList.add('copy', 'json-editor-btntype-copy')\r\n button.setAttribute('data-i', i)\r\n button.addEventListener('click', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n const j = e.currentTarget.getAttribute('data-i') * 1\r\n const value = this.getValue()\r\n\r\n value.splice(j + 1, 0, value[j])\r\n\r\n this.setValue(value)\r\n this.onChange(true)\r\n this.jsoneditor.trigger('copyRow', this.rows[j + 1])\r\n })\r\n holder.appendChild(button)\r\n return button\r\n }\r\n\r\n _createMoveUpButton (i, holder) {\r\n const button = this.getButton('', 'moveup', 'button_move_up_title')\r\n button.classList.add('moveup', 'json-editor-btntype-move')\r\n button.setAttribute('data-i', i)\r\n button.addEventListener('click', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n const j = e.currentTarget.getAttribute('data-i') * 1\r\n const value = this.getValue()\r\n\r\n value.splice(j - 1, 0, value.splice(j, 1)[0])\r\n\r\n this.setValue(value)\r\n this.onChange(true)\r\n this.jsoneditor.trigger('moveRow', this.rows[j - 1])\r\n })\r\n holder.appendChild(button)\r\n return button\r\n }\r\n\r\n _createMoveDownButton (i, holder) {\r\n const button = this.getButton('', 'movedown', 'button_move_down_title')\r\n button.classList.add('movedown', 'json-editor-btntype-move')\r\n button.setAttribute('data-i', i)\r\n button.addEventListener('click', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n const j = e.currentTarget.getAttribute('data-i') * 1\r\n const value = this.getValue()\r\n\r\n value.splice(j + 1, 0, value.splice(j, 1)[0])\r\n\r\n this.setValue(value)\r\n this.onChange(true)\r\n this.jsoneditor.trigger('moveRow', this.rows[j + 1])\r\n })\r\n holder.appendChild(button)\r\n return button\r\n }\r\n\r\n addControls () {\r\n this.collapsed = false\r\n this.toggle_button = this._createToggleButton()\r\n if (this.title_controls) {\r\n this.title.insertBefore(this.toggle_button, this.title.childNodes[0])\r\n this.toggle_button.addEventListener('click', e => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n this.setVisibility(this.panel, this.collapsed)\r\n if (this.collapsed) {\r\n this.collapsed = false\r\n this.setButtonText(e.currentTarget, '', 'collapse', 'button_collapse')\r\n } else {\r\n this.collapsed = true\r\n this.setButtonText(e.currentTarget, '', 'expand', 'button_expand')\r\n }\r\n })\r\n\r\n /* If it should start collapsed */\r\n if (this.options.collapsed) {\r\n trigger(this.toggle_button, 'click')\r\n }\r\n\r\n /* Collapse button disabled */\r\n if (this.schema.options && typeof this.schema.options.disable_collapse !== 'undefined') {\r\n if (this.schema.options.disable_collapse) this.toggle_button.style.display = 'none'\r\n } else if (this.jsoneditor.options.disable_collapse) {\r\n this.toggle_button.style.display = 'none'\r\n }\r\n }\r\n\r\n /* Add \"new row\" and \"delete last\" buttons below editor */\r\n this.add_row_button = this._createAddRowButton()\r\n this.delete_last_row_button = this._createDeleteLastRowButton()\r\n this.remove_all_rows_button = this._createRemoveAllRowsButton()\r\n }\r\n\r\n _createToggleButton () {\r\n const button = this.getButton('', 'collapse', 'button_collapse')\r\n button.classList.add('json-editor-btntype-toggle')\r\n return button\r\n }\r\n\r\n _createAddRowButton () {\r\n const button = this.getButton(this.getItemTitle(), 'add', 'button_add_row_title', [this.getItemTitle()])\r\n button.classList.add('json-editor-btntype-add')\r\n button.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n const editor = this.addRow()\r\n this.refreshValue()\r\n this.refreshRowButtons()\r\n this.onChange(true)\r\n this.jsoneditor.trigger('addRow', editor)\r\n })\r\n this.controls.appendChild(button)\r\n return button\r\n }\r\n\r\n _createDeleteLastRowButton () {\r\n const button = this.getButton('button_delete_last', 'subtract', 'button_delete_last_title', [this.getItemTitle()])\r\n button.classList.add('json-editor-btntype-deletelast')\r\n button.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n if (!this.askConfirmation()) {\r\n return false\r\n }\r\n\r\n const rows = this.getValue()\r\n const editor = rows.pop()\r\n this.setValue(rows)\r\n this.onChange(true)\r\n this.jsoneditor.trigger('deleteRow', editor)\r\n })\r\n this.controls.appendChild(button)\r\n return button\r\n }\r\n\r\n _createRemoveAllRowsButton () {\r\n const button = this.getButton('button_delete_all', 'delete', 'button_delete_all_title')\r\n button.classList.add('json-editor-btntype-deleteall')\r\n button.addEventListener('click', (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n if (!this.askConfirmation()) {\r\n return false\r\n }\r\n\r\n this.setValue([])\r\n this.onChange(true)\r\n this.jsoneditor.trigger('deleteAllRows')\r\n })\r\n this.controls.appendChild(button)\r\n return button\r\n }\r\n}\r\n","import { AbstractEditor } from '../editor.js'\r\nimport { extend } from '../utilities.js'\r\n\r\nexport class UploadEditor extends AbstractEditor {\r\n getNumColumns () {\r\n return 4\r\n }\r\n\r\n build () {\r\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\r\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\r\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\r\n\r\n /* Editor options */\r\n this.options = this.expandCallbacks('upload', extend({}, {\r\n title: 'Browse',\r\n icon: '',\r\n auto_upload: false, /* Trigger file upload button automatically */\r\n hide_input: false, /* Hide the Browse button and name display (Only works if 'enable_drag_drop' is true) */\r\n enable_drag_drop: false, /* Enable Drag&Drop uploading */\r\n drop_zone_text: 'Drag & Drop file here', /* Text displayed in dropzone box */\r\n drop_zone_top: false, /* Position of dropzone. true=before button input, false=after button input */\r\n alt_drop_zone: '', /* Alternate DropZone DOM selector (Can be created inside another property) */\r\n mime_type: '', /* If set, restricts to mime type(s). Can be either a string or an array */\r\n max_upload_size: 0, /* Maximum file size allowed. 0 = no limit */\r\n upload_handler: (jseditor, type, file, cbs) => {\r\n /* Default dummy test upload handler */\r\n window.alert(`No upload_handler defined for \"${jseditor.path}\". You must create your own handler to enable upload to server`)\r\n }\r\n }, this.defaults.options.upload || {}, this.options.upload || {}))\r\n\r\n this.options.mime_type = this.options.mime_type ? [].concat(this.options.mime_type) : []\r\n\r\n /* Input that holds the base64 string */\r\n this.input = this.theme.getFormInputField('hidden')\r\n this.container.appendChild(this.input)\r\n\r\n /* Don't show uploader if this is readonly */\r\n if (!this.schema.readOnly && !this.schema.readonly) {\r\n if (typeof this.options.upload_handler !== 'function') throw new Error('Upload handler required for upload editor')\r\n\r\n /* File uploader */\r\n this.uploader = this.theme.getFormInputField('file')\r\n this.uploader.style.display = 'none'\r\n if (this.options.mime_type.length) this.uploader.setAttribute('accept', this.options.mime_type)\r\n\r\n if (!(this.options.enable_drag_drop === true && this.options.hide_input === true)) {\r\n /* Pass click to this.uploader element */\r\n this.clickHandler = (e) => {\r\n this.uploader.dispatchEvent(new window.MouseEvent('click', {\r\n view: window,\r\n bubbles: true,\r\n cancelable: false\r\n }))\r\n }\r\n\r\n /* Browse button */\r\n this.browseButton = this.getButton(this.options.title, this.options.icon, this.options.title)\r\n this.browseButton.addEventListener('click', this.clickHandler)\r\n\r\n /* Display field */\r\n this.fileDisplay = this.theme.getFormInputField('input')\r\n this.fileDisplay.setAttribute('readonly', true)\r\n this.fileDisplay.value = 'No file selected.'\r\n this.fileDisplay.addEventListener('dblclick', this.clickHandler)\r\n\r\n this.fileUploadGroup = this.theme.getInputGroup(this.fileDisplay, [this.browseButton])\r\n if (!this.fileUploadGroup) {\r\n /* Themes that doesn't support input grouping */\r\n this.fileUploadGroup = document.createElement('div')\r\n this.fileUploadGroup.appendChild(this.fileDisplay)\r\n this.fileUploadGroup.appendChild(this.browseButton)\r\n }\r\n }\r\n\r\n /* Drag&Drop upload enabled */\r\n if (this.options.enable_drag_drop === true) {\r\n /* Alternate DropZone defined */\r\n if (this.options.alt_drop_zone !== '') {\r\n this.altDropZone = document.querySelector(this.options.alt_drop_zone)\r\n if (this.altDropZone) this.dropZone = this.altDropZone\r\n else throw new Error(`Error: alt_drop_zone selector \"${this.options.alt_drop_zone}\" not found!`)\r\n } else this.dropZone = this.theme.getDropZone(this.options.drop_zone_text)\r\n\r\n if (this.dropZone) {\r\n this.dropZone.classList.add('upload-dropzone')\r\n this.dropZone.addEventListener('dblclick', this.clickHandler)\r\n }\r\n }\r\n\r\n /* Triggered after file have been selected */\r\n this.uploadHandler = (e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n const files = e.target.files || e.dataTransfer.files\r\n if (files && files.length) {\r\n if (this.options.max_upload_size !== 0 && files[0].size > this.options.max_upload_size) {\r\n this.theme.addInputError(this.uploader, `Filesize too large. Max size is ${this.options.max_upload_size}`)\r\n } else if (this.options.mime_type.length !== 0 && !this.isValidMimeType(files[0].type, this.options.mime_type)) {\r\n this.theme.addInputError(this.uploader, `Wrong file format. Allowed format(s): ${this.options.mime_type.toString()}`)\r\n } else {\r\n if (this.fileDisplay) this.fileDisplay.value = files[0].name\r\n let fr = new window.FileReader()\r\n fr.onload = (evt) => {\r\n this.preview_value = evt.target.result\r\n this.refreshPreview(files)\r\n this.onChange(true)\r\n fr = null\r\n }\r\n fr.readAsDataURL(files[0])\r\n }\r\n }\r\n }\r\n\r\n this.uploader.addEventListener('change', this.uploadHandler)\r\n\r\n /* Drag&Drop Event Handler */\r\n this.dragHandler = e => {\r\n const files = e.dataTransfer.items || e.dataTransfer.files\r\n const validType = files && files.length && (this.options.mime_type.length === 0 || this.isValidMimeType(files[0].type, this.options.mime_type))\r\n const validZone = e.currentTarget.classList && e.currentTarget.classList.contains('upload-dropzone') && validType\r\n switch ((e.currentTarget === window ? 'w_' : 'e_') + e.type) {\r\n case 'w_drop':\r\n case 'w_dragover':\r\n /* prevent default browser action if dropped outside dropzone */\r\n if (!validZone) e.dataTransfer.dropEffect = 'none'\r\n break\r\n case 'e_dragenter': {\r\n if (validZone) {\r\n this.dropZone.classList.add('valid-dropzone')\r\n e.dataTransfer.dropEffect = 'copy'\r\n } else this.dropZone.classList.add('invalid-dropzone')\r\n break\r\n }\r\n case 'e_dragover': {\r\n if (validZone) e.dataTransfer.dropEffect = 'copy'\r\n break\r\n }\r\n case 'e_dragleave':\r\n this.dropZone.classList.remove('valid-dropzone', 'invalid-dropzone')\r\n break\r\n case 'e_drop': {\r\n this.dropZone.classList.remove('valid-dropzone', 'invalid-dropzone')\r\n if (validZone) this.uploadHandler(e)\r\n break\r\n }\r\n }\r\n if (!validZone) e.preventDefault()\r\n }\r\n\r\n /* Set Drag'n'Drop handlers */\r\n if (this.options.enable_drag_drop === true) {\r\n ['dragover', 'drop'].forEach((ev) => {\r\n window.addEventListener(ev, this.dragHandler, true)\r\n });\r\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((ev) => {\r\n this.dropZone.addEventListener(ev, this.dragHandler, true)\r\n })\r\n }\r\n }\r\n\r\n this.preview = document.createElement('div')\r\n\r\n this.control = this.input.controlgroup = this.theme.getFormControl(this.label, this.uploader || this.input, this.description, this.infoButton)\r\n if (this.uploader) this.uploader.controlgroup = this.control\r\n const inputNode = this.uploader || this.input\r\n const elements = document.createElement('div')\r\n\r\n if (this.dropZone && !this.altDropZone && this.options.drop_zone_top === true) elements.appendChild(this.dropZone)\r\n if (this.fileUploadGroup) elements.appendChild(this.fileUploadGroup)\r\n if (this.dropZone && !this.altDropZone && this.options.drop_zone_top !== true) elements.appendChild(this.dropZone)\r\n elements.appendChild(this.preview)\r\n inputNode.parentNode.insertBefore(elements, inputNode.nextSibling)\r\n\r\n this.container.appendChild(this.control)\r\n\r\n /* Any special formatting that needs to happen after the input is added to the dom */\r\n window.requestAnimationFrame(() => {\r\n this.afterInputReady()\r\n })\r\n }\r\n\r\n afterInputReady () {\r\n if (this.value) {\r\n const img = document.createElement('img')\r\n img.style.maxWidth = '100%'\r\n img.style.maxHeight = '100px'\r\n img.onload = (event) => {\r\n this.preview.appendChild(img)\r\n }\r\n img.onerror = error => {\r\n // eslint-disable-next-line no-console\r\n console.error('upload error', error, error.currentTarget)\r\n }\r\n img.src = this.container.querySelector('a').href\r\n }\r\n this.theme.afterInputReady(this.input)\r\n }\r\n\r\n refreshPreview (files) {\r\n if (this.last_preview === this.preview_value) return\r\n this.last_preview = this.preview_value\r\n\r\n this.preview.innerHTML = ''\r\n\r\n if (!this.preview_value) return\r\n\r\n const file = files[0]\r\n\r\n /* mime type extracted from file data. More exact than the one in the file object */\r\n const mime = this.preview_value.match(/^data:([^;,]+)[;,]/)\r\n file.mimeType = mime ? mime[1] : 'unknown'\r\n\r\n if (file.size > 0) {\r\n /* Format bytes as KB/MB etc. with 2 decimals */\r\n const i = Math.floor(Math.log(file.size) / Math.log(1024))\r\n file.formattedSize = `${parseFloat((file.size / (1024 ** i)).toFixed(2))} ${['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'][i]}`\r\n } else file.formattedSize = '0 Bytes'\r\n\r\n const uploadButton = this.getButton('button_upload', 'upload', 'button_upload')\r\n uploadButton.addEventListener('click', (event) => {\r\n event.preventDefault()\r\n\r\n uploadButton.setAttribute('disabled', 'disabled')\r\n this.theme.removeInputError(this.uploader)\r\n\r\n if (this.theme.getProgressBar) {\r\n this.progressBar = this.theme.getProgressBar()\r\n this.preview.appendChild(this.progressBar)\r\n }\r\n\r\n this.options.upload_handler(this.path, file, {\r\n success: (url) => {\r\n this.setValue(url)\r\n\r\n if (this.parent) this.parent.onChildEditorChange(this)\r\n else this.jsoneditor.onChange()\r\n\r\n if (this.progressBar) this.preview.removeChild(this.progressBar)\r\n uploadButton.removeAttribute('disabled')\r\n },\r\n failure: (error) => {\r\n this.theme.addInputError(this.uploader, error)\r\n if (this.progressBar) this.preview.removeChild(this.progressBar)\r\n uploadButton.removeAttribute('disabled')\r\n },\r\n updateProgress: (progress) => {\r\n if (this.progressBar) {\r\n if (progress) this.theme.updateProgressBar(this.progressBar, progress)\r\n else this.theme.updateProgressBarUnknown(this.progressBar)\r\n }\r\n }\r\n })\r\n })\r\n\r\n this.preview.appendChild(this.theme.getUploadPreview(file, uploadButton, this.preview_value))\r\n\r\n if (this.options.auto_upload) {\r\n uploadButton.dispatchEvent(new window.MouseEvent('click'))\r\n this.preview.removeChild(uploadButton)\r\n }\r\n }\r\n\r\n enable () {\r\n if (!this.always_disabled) {\r\n if (this.uploader) this.uploader.disabled = false\r\n super.enable()\r\n }\r\n }\r\n\r\n disable (alwaysDisabled) {\r\n if (alwaysDisabled) this.always_disabled = true\r\n if (this.uploader) this.uploader.disabled = true\r\n super.disable()\r\n }\r\n\r\n setValue (val) {\r\n if (this.value !== val) {\r\n this.value = val\r\n this.input.value = this.value\r\n this.onChange()\r\n }\r\n }\r\n\r\n destroy () {\r\n /* Remove Drag'n'Drop handlers */\r\n if (this.options.enable_drag_drop === true) {\r\n ['dragover', 'drop'].forEach((ev) => {\r\n window.removeEventListener(ev, this.dragHandler, true)\r\n });\r\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((ev) => {\r\n this.dropZone.removeEventListener(ev, this.dragHandler, true)\r\n })\r\n this.dropZone.removeEventListener('dblclick', this.clickHandler)\r\n if (this.dropZone && this.dropZone.parentNode) this.dropZone.parentNode.removeChild(this.dropZone)\r\n }\r\n\r\n if (this.uploader && this.uploader.parentNode) {\r\n this.uploader.removeEventListener('change', this.uploadHandler)\r\n this.uploader.parentNode.removeChild(this.uploader)\r\n }\r\n if (this.browseButton && this.browseButton.parentNode) {\r\n this.browseButton.removeEventListener('click', this.clickHandler)\r\n this.browseButton.parentNode.removeChild(this.browseButton)\r\n }\r\n if (this.fileDisplay && this.fileDisplay.parentNode) {\r\n this.fileDisplay.removeEventListener('dblclick', this.clickHandler)\r\n this.fileDisplay.parentNode.removeChild(this.fileDisplay)\r\n }\r\n if (this.fileUploadGroup && this.fileUploadGroup.parentNode) this.fileUploadGroup.parentNode.removeChild(this.fileUploadGroup)\r\n if (this.preview && this.preview.parentNode) this.preview.parentNode.removeChild(this.preview)\r\n if (this.header && this.header.parentNode) this.header.parentNode.removeChild(this.header)\r\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\r\n\r\n super.destroy()\r\n }\r\n\r\n isValidMimeType (mimeType, mimeTypesList) {\r\n return mimeTypesList.reduce((a, v) => a || new RegExp(v.replace(/\\*/g, '.*'), 'gi').test(mimeType), false)\r\n }\r\n}\r\n","import { StringEditor } from './string.js'\r\n\r\nexport class UuidEditor extends StringEditor {\r\n preBuild () {\r\n super.preBuild()\r\n\r\n /* Use Schema \"default\" for setting autogenerated uuid */\r\n this.schema.default = this.uuid = this.getUuid()\r\n\r\n /* Set cleave options if no existing options is present */\r\n if (!this.schema.options) this.schema.options = {}\r\n if (!this.schema.options.cleave) {\r\n this.schema.options.cleave = {\r\n delimiters: ['-'],\r\n blocks: [8, 4, 4, 4, 12]\r\n }\r\n }\r\n }\r\n\r\n build () {\r\n super.build()\r\n /* Set field to readonly */\r\n this.disable(true)\r\n this.input.setAttribute('readonly', 'true')\r\n }\r\n\r\n sanitize (value) {\r\n if (!this.testUuid(value)) value = this.uuid\r\n return value\r\n }\r\n\r\n setValue (value, initial, fromTemplate) {\r\n if (!this.testUuid(value)) value = this.uuid\r\n this.uuid = value\r\n super.setValue(value, initial, fromTemplate)\r\n }\r\n\r\n getUuid () {\r\n /* https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript */\r\n let d = new Date().getTime()\r\n\r\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\r\n d += performance.now() /* use high-precision timer if available */\r\n }\r\n\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = (d + Math.random() * 16) % 16 | 0\r\n d = Math.floor(d / 16)\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)\r\n })\r\n }\r\n\r\n testUuid (value) {\r\n return (/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value))\r\n }\r\n}\r\n","\r\nconst defaultMapping = { collapse: '', expand: '', delete: '', edit: '', add: '', cancel: '', save: '', moveup: '', movedown: '' }\r\n\r\nexport class AbstractIconLib {\r\n constructor (iconPrefix = '', mapping = defaultMapping) {\r\n this.mapping = mapping\r\n this.icon_prefix = iconPrefix\r\n }\r\n\r\n getIconClass (key) {\r\n return this.mapping[key] ? this.icon_prefix + this.mapping[key] : null\r\n }\r\n\r\n getIcon (key) {\r\n const iconclass = this.getIconClass(key)\r\n\r\n if (!iconclass) return null\r\n\r\n const i = document.createElement('i')\r\n i.classList.add(...iconclass.split(' '))\r\n\r\n return i\r\n }\r\n}\r\n","import { AbstractIconLib } from '../iconlib.js'\r\n\r\nconst iconPrefix = 'glyphicon glyphicon-'\r\nconst mapping = {\r\n collapse: 'chevron-down',\r\n expand: 'chevron-right',\r\n delete: 'trash',\r\n edit: 'pencil',\r\n add: 'plus',\r\n subtract: 'minus',\r\n cancel: 'floppy-remove',\r\n save: 'floppy-saved',\r\n moveup: 'arrow-up',\r\n moveright: 'arrow-right',\r\n movedown: 'arrow-down',\r\n moveleft: 'arrow-left',\r\n copy: 'copy',\r\n clear: 'remove-circle',\r\n time: 'time',\r\n calendar: 'calendar',\r\n edit_properties: 'list'\r\n}\r\n\r\nexport class bootstrap3Iconlib extends AbstractIconLib {\r\n constructor () {\r\n super(iconPrefix, mapping)\r\n }\r\n}\r\n","import { AbstractIconLib } from '../iconlib.js'\r\n\r\nconst iconPrefix = 'icon-'\r\nconst mapping = {\r\n collapse: 'chevron-down',\r\n expand: 'chevron-right',\r\n delete: 'trash',\r\n edit: 'pencil',\r\n add: 'plus',\r\n subtract: 'minus',\r\n cancel: 'ban-circle',\r\n save: 'save',\r\n moveup: 'arrow-up',\r\n moveright: 'arrow-right',\r\n movedown: 'arrow-down',\r\n moveleft: 'arrow-left',\r\n copy: 'copy',\r\n clear: 'remove-circle',\r\n time: 'time',\r\n calendar: 'calendar',\r\n edit_properties: 'list'\r\n}\r\n\r\nexport class fontawesome3Iconlib extends AbstractIconLib {\r\n constructor () {\r\n super(iconPrefix, mapping)\r\n }\r\n}\r\n","import { AbstractIconLib } from '../iconlib.js'\r\n\r\nconst iconPrefix = 'fa fa-'\r\nconst mapping = {\r\n collapse: 'caret-square-o-down',\r\n expand: 'caret-square-o-right',\r\n delete: 'times',\r\n edit: 'pencil',\r\n add: 'plus',\r\n subtract: 'minus',\r\n cancel: 'ban',\r\n save: 'save',\r\n moveup: 'arrow-up',\r\n moveright: 'arrow-right',\r\n movedown: 'arrow-down',\r\n moveleft: 'arrow-left',\r\n copy: 'files-o',\r\n clear: 'times-circle-o',\r\n time: 'clock-o',\r\n calendar: 'calendar',\r\n edit_properties: 'list'\r\n}\r\n\r\nexport class fontawesome4Iconlib extends AbstractIconLib {\r\n constructor () {\r\n super(iconPrefix, mapping)\r\n }\r\n}\r\n","import { AbstractIconLib } from '../iconlib.js'\r\n\r\nconst iconPrefix = 'fas fa-'\r\nconst mapping = {\r\n collapse: 'caret-down',\r\n expand: 'caret-right',\r\n delete: 'trash',\r\n edit: 'pen',\r\n add: 'plus',\r\n subtract: 'minus',\r\n cancel: 'ban',\r\n save: 'save',\r\n moveup: 'arrow-up',\r\n moveright: 'arrow-right',\r\n movedown: 'arrow-down',\r\n moveleft: 'arrow-left',\r\n copy: 'copy',\r\n clear: 'times-circle',\r\n time: 'clock',\r\n calendar: 'calendar',\r\n edit_properties: 'list'\r\n}\r\n\r\nexport class fontawesome5Iconlib extends AbstractIconLib {\r\n constructor () {\r\n super(iconPrefix, mapping)\r\n }\r\n}\r\n","// import { bootstrap2Iconlib } from './bootstrap2.js'\r\nimport { bootstrap3Iconlib } from './bootstrap3.js'\r\nimport { fontawesome3Iconlib } from './fontawesome3.js'\r\nimport { fontawesome4Iconlib } from './fontawesome4.js'\r\nimport { fontawesome5Iconlib } from './fontawesome5.js'\r\n// import { foundation2Iconlib } from './foundation2.js'\r\n// import { foundation3Iconlib } from './foundation3.js'\r\nimport { jqueryuiIconlib } from './jqueryui.js'\r\n// import { materialiconsIconlib } from './materialicons.js'\r\nimport { openiconicIconlib } from './openiconic.js'\r\nimport { spectreIconlib } from './spectre.js'\r\n\r\nexport const iconlibs = {\r\n // bootstrap2: bootstrap2Iconlib,\r\n bootstrap3: bootstrap3Iconlib,\r\n fontawesome3: fontawesome3Iconlib,\r\n fontawesome4: fontawesome4Iconlib,\r\n fontawesome5: fontawesome5Iconlib,\r\n // foundation2: foundation2Iconlib,\r\n // foundation3: foundation3Iconlib,\r\n jqueryui: jqueryuiIconlib,\r\n // materialicons: materialiconsIconlib,\r\n openiconic: openiconicIconlib,\r\n spectre: spectreIconlib\r\n}\r\n","import { AbstractIconLib } from '../iconlib.js'\r\n\r\nconst iconPrefix = 'ui-icon ui-icon-'\r\nconst mapping = {\r\n collapse: 'triangle-1-s',\r\n expand: 'triangle-1-e',\r\n delete: 'trash',\r\n edit: 'pencil',\r\n add: 'plusthick',\r\n subtract: 'minusthick',\r\n cancel: 'closethick',\r\n save: 'disk',\r\n moveup: 'arrowthick-1-n',\r\n moveright: 'arrowthick-1-e',\r\n movedown: 'arrowthick-1-s',\r\n moveleft: 'arrowthick-1-w',\r\n copy: 'copy',\r\n clear: 'circle-close',\r\n time: 'time',\r\n calendar: 'calendar',\r\n edit_properties: 'note'\r\n}\r\n\r\nexport class jqueryuiIconlib extends AbstractIconLib {\r\n constructor () {\r\n super(iconPrefix, mapping)\r\n }\r\n}\r\n","import { AbstractIconLib } from '../iconlib.js'\r\n\r\nconst iconPrefix = 'oi oi-'\r\nconst mapping = {\r\n collapse: 'collapse-down',\r\n expand: 'expand-right',\r\n delete: 'trash',\r\n edit: 'pencil',\r\n add: 'plus',\r\n subtract: 'minus',\r\n cancel: 'ban',\r\n save: 'file',\r\n moveup: 'arrow-thick-top',\r\n moveright: 'arrow-thick-right',\r\n movedown: 'arrow-thick-bottom',\r\n moveleft: 'arrow-thick-left',\r\n copy: 'clipboard',\r\n clear: 'circle-x',\r\n time: 'clock',\r\n calendar: 'calendar',\r\n edit_properties: 'list'\r\n}\r\n\r\nexport class openiconicIconlib extends AbstractIconLib {\r\n constructor () {\r\n super(iconPrefix, mapping)\r\n }\r\n}\r\n","import { AbstractIconLib } from '../iconlib.js'\r\n\r\nconst iconPrefix = 'icon icon-'\r\nconst mapping = {\r\n collapse: 'arrow-down',\r\n expand: 'arrow-right',\r\n delete: 'delete',\r\n edit: 'edit',\r\n add: 'plus',\r\n subtract: 'minus',\r\n cancel: 'cross',\r\n save: 'check',\r\n moveup: 'upward',\r\n moveright: 'forward',\r\n movedown: 'downward',\r\n moveleft: 'back',\r\n copy: 'copy',\r\n clear: 'close',\r\n time: 'time',\r\n calendar: 'bookmark',\r\n edit_properties: 'menu'\r\n}\r\n\r\nexport class spectreIconlib extends AbstractIconLib {\r\n constructor () {\r\n super(iconPrefix, mapping)\r\n }\r\n}\r\n","/* Use \"multiple\" as a fall back for everything */\r\nconst defaultResolver = schema => typeof schema.type !== 'string' && 'multiple'\r\n\r\n/* If the type is not set but properties are defined, we can infer the type is actually object */\r\nconst object = schema => !schema.type && schema.properties && 'object'\r\n\r\n/* If the type is set and it's a basic type, use the primitive editor */\r\nconst primitive = schema => typeof schema.type === 'string' && schema.type\r\n\r\n/* Use specialized editor for signatures */\r\nconst signature = schema => schema.type === 'string' && schema.format === 'signature' && 'signature'\r\n\r\n/* Use the select editor for all boolean values */\r\nconst boolean = schema => {\r\n if (schema.type === 'boolean') {\r\n /* If explicitly set to 'checkbox', use that */\r\n if (schema.format === 'checkbox' || (schema.options && schema.options.checkbox)) return 'checkbox'\r\n /* Otherwise, default to select menu */\r\n if (schema.format === 'select2') return 'select2'\r\n if (schema.format === 'selectize') return 'selectize'\r\n if (schema.format === 'choices') return 'choices'\r\n return 'select'\r\n }\r\n}\r\n\r\n/* Use the multiple editor for schemas where the `type` is set to \"any\" */\r\nconst any = schema => schema.type === 'any' && 'multiple'\r\n\r\n/* Editor for base64 encoded files */\r\nconst base64 = schema => schema.type === 'string' && schema.media && schema.media.binaryEncoding === 'base64' && 'base64'\r\n\r\n/* Editor for uploading files */\r\nconst upload = schema => schema.type === 'string' && schema.format === 'url' && window.FileReader && schema.options && schema.options.upload === Object(schema.options.upload) && 'upload'\r\n\r\n/* Use the table editor for arrays with the format set to `table` */\r\nconst table = schema => schema.type === 'array' && schema.format === 'table' && 'table'\r\n\r\n/* Use the `select` editor for dynamic enumSource enums */\r\nconst enumSource = schema => {\r\n if (schema.enumSource) {\r\n if (schema.format === 'radio') return 'radio'\r\n if (schema.format === 'select2') return 'select2'\r\n if (schema.format === 'selectize') return 'selectize'\r\n if (schema.format === 'choices') return 'choices'\r\n return 'select'\r\n }\r\n}\r\n\r\n/* Use the `enum` or `select` editors for schemas with enumerated properties */\r\nconst enumeratedProperties = schema => {\r\n if (schema.enum) {\r\n if (schema.type === 'array' || schema.type === 'object') return 'enum'\r\n if (schema.type === 'number' || schema.type === 'integer' || schema.type === 'string') {\r\n if (schema.format === 'radio') return 'radio'\r\n if (schema.format === 'select2') return 'select2'\r\n if (schema.format === 'selectize') return 'selectize'\r\n if (schema.format === 'choices') return 'choices'\r\n return 'select'\r\n }\r\n }\r\n}\r\n\r\n/* Specialized editors for arrays of strings */\r\nconst arraysOfStrings = schema => {\r\n if (schema.type === 'array' && schema.items && !(Array.isArray(schema.items)) && ['string', 'number', 'integer'].includes(schema.items.type)) {\r\n if (schema.format === 'choices') return 'arrayChoices'\r\n if (schema.uniqueItems) {\r\n /* if 'selectize' enabled it is expected to be selectized control */\r\n if (schema.format === 'selectize') return 'arraySelectize'\r\n if (schema.format === 'select2') return 'arraySelect2'\r\n if (schema.items.enum) return 'multiselect' /* otherwise it is select */\r\n }\r\n }\r\n}\r\n\r\n/* Use the multiple editor for schemas with `oneOf` or `anyOf` set */\r\nconst oneOf = schema => (schema.oneOf || schema.anyOf) && 'multiple'\r\n\r\n/* Use the multiple editor for schemas with `if` set */\r\nconst ifThenElse = schema => (schema.if) && 'multiple'\r\n\r\n/* Specialized editor for date, time and datetime-local formats */\r\nconst date = schema => ['string', 'integer'].includes(schema.type) && ['date', 'time', 'datetime-local'].includes(schema.format) && 'datetime'\r\n\r\n/* Use a specialized editor for starratings */\r\nconst starratings = schema => ['string', 'integer'].includes(schema.type) && ['starrating', 'rating'].includes(schema.format) && 'starrating'\r\n\r\n/* Hyper-link describeBy resolver */\r\nconst describeBy = schema => {\r\n if (schema.links) {\r\n for (let i = 0; i < schema.links.length; i++) {\r\n if (schema.links[i].rel && schema.links[i].rel.toLowerCase() === 'describedby') return 'describedBy'\r\n }\r\n }\r\n}\r\n\r\n/* Use the stepper editor for schemas with type `number` or `integer` and format `stepper` */\r\nconst stepper = schema => {\r\n if ((schema.type === 'integer' || schema.type === 'number') && schema.format === 'stepper') {\r\n return 'stepper'\r\n }\r\n}\r\n\r\n/* Enable custom editor type */\r\nconst button = schema => schema.format === 'button' && 'button'\r\n\r\nconst info = schema => schema.format === 'info' && 'info'\r\n\r\nconst uuid = schema => schema.type === 'string' && schema.format === 'uuid' && 'uuid'\r\n\r\nconst autoComplete = schema => schema.type === 'string' && schema.format === 'autocomplete' && 'autocomplete'\r\n\r\nconst jodit = schema => schema.type === 'string' && schema.format === 'jodit' && 'jodit'\r\n\r\nconst markdown = schema => schema.type === 'string' && schema.format === 'markdown' && 'simplemde'\r\n\r\nconst xhtml = schema => schema.type === 'string' && ['xhtml', 'bbcode'].includes(schema.format) && 'sceditor'\r\n\r\n/* Use the ace editor for schemas with format equals any of ace editor modes */\r\nconst aceModes = ['actionscript', 'batchfile', 'c', 'c++', 'cpp', 'coffee', 'csharp', 'css', 'dart', 'django', 'ejs', 'erlang', 'golang', 'groovy', 'handlebars', 'haskell', 'haxe', 'html', 'ini', 'jade', 'java', 'javascript', 'json', 'less', 'lisp', 'lua', 'makefile', 'matlab', 'mysql', 'objectivec', 'pascal', 'perl', 'pgsql', 'php', 'python', 'r', 'ruby', 'sass', 'scala', 'scss', 'smarty', 'sql', 'sqlserver', 'stylus', 'svg', 'twig', 'vbscript', 'xml', 'yaml']\r\nconst ace = schema => schema.type === 'string' && aceModes.includes(schema.format) && 'ace'\r\n\r\nconst ip = schema => schema.type === 'string' && ['ip', 'ipv4', 'ipv6', 'hostname'].includes(schema.format) && 'ip'\r\n\r\nconst colorPicker = schema => schema.type === 'string' && schema.format === 'color' && 'colorpicker'\r\n\r\n/* Export resolvers in order of discovery, first to last */\r\nexport const resolvers = [colorPicker, ip, ace, xhtml, markdown, jodit, autoComplete, uuid, info, button, stepper, describeBy, starratings, date, oneOf, ifThenElse, arraysOfStrings, enumeratedProperties, enumSource, table, upload, base64, any, boolean, signature, primitive, object, defaultResolver]\r\n","import { extend, hasOwnProperty } from './utilities.js'\r\n\r\nexport class SchemaLoader {\r\n constructor (options) {\r\n this.options = options || {}\r\n this.refs = this.options.refs || {}\r\n this.refs_with_info = {}\r\n this.refs_prefix = '#/counter/'\r\n this.refs_counter = 1\r\n\r\n this._subSchema1 = {\r\n /* Version 3 `type` */\r\n type (schema) {\r\n if (typeof schema.type === 'object') {\r\n schema.type = this._expandSubSchema(schema.type)\r\n }\r\n },\r\n /* Version 3 `disallow` */\r\n disallow (schema) {\r\n if (typeof schema.disallow === 'object') {\r\n schema.disallow = this._expandSubSchema(schema.disallow)\r\n }\r\n },\r\n /* Version 4 `anyOf` */\r\n anyOf (schema) {\r\n Object.entries(schema.anyOf).forEach(([key, value]) => {\r\n schema.anyOf[key] = this.expandSchema(value)\r\n })\r\n },\r\n /* Version 4 `dependencies` (schema dependencies) */\r\n dependencies (schema) {\r\n Object.entries(schema.dependencies).forEach(([key, value]) => {\r\n if (typeof value === 'object' && !(Array.isArray(value))) {\r\n schema.dependencies[key] = this.expandSchema(value)\r\n }\r\n })\r\n },\r\n /* Version 4 `not` */\r\n not (schema) {\r\n schema.not = this.expandSchema(schema.not)\r\n }\r\n }\r\n\r\n this._subSchema2 = {\r\n /* allOf schemas should be merged into the parent */\r\n allOf (schema, extended) {\r\n let _extended = extend({}, extended)\r\n Object.entries(schema.allOf).forEach(([key, value]) => {\r\n schema.allOf[key] = this.expandRefs(value, true)\r\n _extended = this.extendSchemas(_extended, this.expandSchema(value))\r\n })\r\n delete _extended.allOf\r\n return _extended\r\n },\r\n /* extends schemas should be merged into parent */\r\n extends (schema, extended) {\r\n let _extended\r\n /* If extends is a schema */\r\n if (!(Array.isArray(schema.extends))) {\r\n _extended = this.extendSchemas(extended, this.expandSchema(schema.extends))\r\n } else {\r\n /* If extends is an array of schemas */\r\n _extended = schema.extends.reduce((e, s, i) => {\r\n return this.extendSchemas(e, this.expandSchema(s))\r\n }, extended)\r\n }\r\n delete _extended.extends\r\n return _extended\r\n },\r\n /* parent should be merged into oneOf schemas */\r\n oneOf (schema, extended) {\r\n const tmp = extend({}, extended)\r\n delete tmp.oneOf\r\n schema.oneOf.reduce((e, s, i) => {\r\n e.oneOf[i] = this.extendSchemas(this.expandSchema(s), tmp)\r\n return e\r\n }, extended)\r\n return extended\r\n }\r\n }\r\n }\r\n\r\n load (schema, callback, fetchUrl, location) {\r\n this._loadExternalRefs(schema, () => {\r\n this._getDefinitions(schema, `${fetchUrl}#/definitions/`)\r\n callback(this.expandRefs(schema))\r\n }, fetchUrl, this._getFileBase(location))\r\n }\r\n\r\n expandRefs (schema, recurseAllOf) {\r\n if (!schema.$ref) return schema\r\n const _schema = extend({}, schema)\r\n\r\n const refObj = this.refs_with_info[_schema.$ref]\r\n delete _schema.$ref\r\n const fetchUrl = refObj.$ref.startsWith('#')\r\n ? refObj.fetchUrl\r\n : ''\r\n const ref = this._getRef(fetchUrl, refObj)\r\n if (!this.refs[ref]) { /* if reference not found */\r\n // eslint-disable-next-line no-console\r\n console.warn(`reference:'${ref}' not found!`)\r\n } else if (recurseAllOf && hasOwnProperty(this.refs[ref], 'allOf')) {\r\n const allOf = this.refs[ref].allOf\r\n Object.keys(allOf).forEach(key => {\r\n allOf[key] = this.expandRefs(allOf[key], true)\r\n })\r\n }\r\n\r\n return this.extendSchemas(_schema, this.expandSchema(this.refs[ref]))\r\n }\r\n\r\n expandSchema (schema, fileBase) {\r\n Object.entries(this._subSchema1).forEach(([key, func]) => {\r\n if (schema[key]) {\r\n func.call(this, schema)\r\n }\r\n })\r\n\r\n let extended = extend({}, schema)\r\n\r\n Object.entries(this._subSchema2).forEach(([key, func]) => {\r\n if (schema[key]) {\r\n extended = func.call(this, schema, extended)\r\n }\r\n })\r\n\r\n return this.expandRefs(extended)\r\n }\r\n\r\n _getRef (fetchUrl, refObj) {\r\n const ref = fetchUrl + refObj\r\n\r\n return this.refs[ref] ? ref : fetchUrl + decodeURIComponent(refObj.$ref)\r\n }\r\n\r\n _expandSubSchema (subschema) {\r\n /* Array of types */\r\n if (Array.isArray(subschema)) return subschema.map(m => typeof m === 'object' ? this.expandSchema(m) : m)\r\n\r\n /* Schema */\r\n return this.expandSchema(subschema)\r\n }\r\n\r\n _getDefinitions (schema, path) {\r\n if (schema.definitions) {\r\n Object.keys(schema.definitions).forEach(i => {\r\n this.refs[path + i] = schema.definitions[i]\r\n if (schema.definitions[i].definitions) {\r\n this._getDefinitions(schema.definitions[i], `${path + i}/definitions/`)\r\n }\r\n })\r\n }\r\n }\r\n\r\n _getExternalRefs (schema, fetchUrl) {\r\n const refs = {}\r\n const mergeRefs = newrefs => Object.keys(newrefs).forEach(i => { refs[i] = true })\r\n\r\n if (schema.$ref && typeof schema.$ref !== 'object') {\r\n const refCounter = this.refs_prefix + this.refs_counter++\r\n if (schema.$ref.substr(0, 1) !== '#' && !this.refs[schema.$ref]) {\r\n refs[schema.$ref] = true\r\n }\r\n this.refs_with_info[refCounter] = { fetchUrl, $ref: schema.$ref }\r\n schema.$ref = refCounter\r\n }\r\n\r\n Object.values(schema).forEach(value => {\r\n if (!value || typeof value !== 'object') return\r\n if (Array.isArray(value)) {\r\n Object.values(value).forEach(e => {\r\n if (e && typeof e === 'object') {\r\n mergeRefs(this._getExternalRefs(e, fetchUrl))\r\n }\r\n })\r\n } else {\r\n mergeRefs(this._getExternalRefs(value, fetchUrl))\r\n }\r\n })\r\n\r\n if (schema.id && typeof schema.id === 'string' && schema.id.substr(0, 4) === 'urn:') {\r\n this.refs[schema.id] = schema\r\n } else if (schema.$id && typeof schema.$id === 'string' && schema.$id.substr(0, 4) === 'urn:') {\r\n this.refs[schema.$id] = schema\r\n }\r\n\r\n return refs\r\n }\r\n\r\n _getFileBase (location) {\r\n if (!location) return '/'\r\n\r\n const { ajaxBase } = this.options\r\n\r\n return typeof ajaxBase === 'undefined' ? this._getFileBaseFromFileLocation(location) : ajaxBase\r\n }\r\n\r\n _getFileBaseFromFileLocation (fileLocationString) {\r\n const pathItems = fileLocationString.split('/')\r\n pathItems.pop()\r\n return `${pathItems.join('/')}/`\r\n }\r\n\r\n _joinUrl (url, fileBase) {\r\n var fetchUrl = url\r\n\r\n if (url.substr(0, 7) !== 'http://' &&\r\n url.substr(0, 8) !== 'https://' &&\r\n url.substr(0, 5) !== 'blob:' &&\r\n url.substr(0, 5) !== 'data:' &&\r\n url.substr(0, 1) !== '#' &&\r\n url.substr(0, 1) !== '/'\r\n ) {\r\n fetchUrl = fileBase + url\r\n }\r\n\r\n // strip #fragment from URI, so json pointers resolve correctly #928\r\n if (fetchUrl.indexOf('#') > 0) fetchUrl = fetchUrl.substr(0, fetchUrl.indexOf('#'))\r\n\r\n return fetchUrl\r\n }\r\n\r\n _isUniformResourceName (uri) {\r\n return uri.substr(0, 4) === 'urn:'\r\n }\r\n\r\n _loadExternalRefs (schema, callback, fetchUrl, fileBase) {\r\n const refs = this._getExternalRefs(schema, fetchUrl)\r\n let done = false; let waiting = 0\r\n\r\n Object.keys(refs).forEach(uri => {\r\n if (this.refs[uri]) return\r\n\r\n if (this._isUniformResourceName(uri)) {\r\n this.refs[uri] = 'loading'\r\n waiting++\r\n\r\n const urnResolver = this.options.urn_resolver\r\n let urn = uri\r\n if (typeof urnResolver !== 'function') {\r\n // eslint-disable-next-line no-console\r\n console.log(`No \"urn_resolver\" callback defined to resolve \"${urn}\"`)\r\n throw new Error(`Must set urn_resolver option to a callback to resolve ${urn}`)\r\n }\r\n // theoretically a URN can contain a JSON pointer\r\n if (urn.indexOf('#') > 0) urn = urn.substr(0, urn.indexOf('#'))\r\n let response\r\n try {\r\n response = urnResolver(urn, responseText => {\r\n try {\r\n schema = JSON.parse(responseText)\r\n } catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.log(e)\r\n throw new Error(`Failed to parse external ref ${urn}`)\r\n }\r\n if (!(typeof schema === 'boolean' || typeof schema === 'object') || schema === null || Array.isArray(schema)) {\r\n throw new Error(`External ref does not contain a valid schema - ${urn}`)\r\n }\r\n this.refs[uri] = schema\r\n this._getDefinitions(schema, `${urn}#/definitions/`)\r\n this._loadExternalRefs(schema, () => {\r\n waiting--\r\n if (done && !waiting) {\r\n callback()\r\n }\r\n }, uri, '/')\r\n })\r\n } catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.log(e)\r\n throw new Error(`Failed to parse external ref ${urn}`)\r\n }\r\n\r\n if (typeof response !== 'boolean') {\r\n throw new Error(`External ref does not contain a valid schema - ${urn}`)\r\n } else if (response !== true) {\r\n throw new Error(`External ref did not resolve - ${urn}`)\r\n }\r\n\r\n return\r\n }\r\n\r\n if (!this.options.ajax) throw new Error(`Must set ajax option to true to load external ref ${uri}`)\r\n this.refs[uri] = 'loading'\r\n waiting++\r\n let url = this._joinUrl(uri, fileBase)\r\n\r\n const r = new XMLHttpRequest()\r\n r.overrideMimeType('application/json')\r\n r.open('GET', url, true)\r\n if (this.options.ajaxCredentials) r.withCredentials = this.options.ajaxCredentials\r\n r.onreadystatechange = () => {\r\n if (r.readyState !== 4) return\r\n /* Request succeeded */\r\n if (r.status === 200) {\r\n let schema\r\n try {\r\n schema = JSON.parse(r.responseText)\r\n } catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.log(e)\r\n throw new Error(`Failed to parse external ref ${url}`)\r\n }\r\n if (!(typeof schema === 'boolean' || typeof schema === 'object') || schema === null || Array.isArray(schema)) {\r\n throw new Error(`External ref does not contain a valid schema - ${url}`)\r\n }\r\n\r\n this.refs[uri] = schema\r\n const fileBase = this._getFileBaseFromFileLocation(url)\r\n\r\n // add leading slash\r\n if (url !== uri) {\r\n const pathItems = url.split('/')\r\n url = (uri.substr(0, 1) === '/' ? '/' : '') + pathItems.pop()\r\n }\r\n\r\n this._getDefinitions(schema, `${url}#/definitions/`)\r\n this._loadExternalRefs(schema, () => {\r\n waiting--\r\n if (done && !waiting) {\r\n callback()\r\n }\r\n }, url, fileBase)\r\n } else {\r\n /* Request failed */\r\n // eslint-disable-next-line no-console\r\n console.log(r)\r\n throw new Error(`Failed to fetch ref via ajax - ${uri}`)\r\n }\r\n }\r\n r.send()\r\n })\r\n\r\n done = true\r\n if (!waiting) {\r\n callback()\r\n }\r\n }\r\n\r\n extendSchemas (obj1, obj2) {\r\n obj1 = extend({}, obj1)\r\n obj2 = extend({}, obj2)\r\n\r\n const extended = {}\r\n const isRequiredOrDefaultProperties = (prop, val) => (prop === 'required' || prop === 'defaultProperties') && typeof val === 'object' && Array.isArray(val)\r\n const merge = (prop, val) => {\r\n /* Required and defaultProperties arrays should be unioned together */\r\n if (isRequiredOrDefaultProperties(prop, val)) {\r\n /* Union arrays and unique */\r\n extended[prop] = val.concat(obj2[prop]).reduce((p, c) => {\r\n if (!p.includes(c)) p.push(c)\r\n return p\r\n }, [])\r\n } else if (prop === 'type' && (typeof val === 'string' || Array.isArray(val))) {\r\n mergeType(val)\r\n } else if (typeof val === 'object' && !Array.isArray(val) && val !== null) {\r\n /* Objects should be recursively merged */\r\n extended[prop] = this.extendSchemas(val, obj2[prop])\r\n } else {\r\n /* Otherwise, use the first value */\r\n extended[prop] = val\r\n }\r\n }\r\n\r\n const mergeType = (val) => {\r\n /* Type should be intersected and is either an array or string */\r\n /* Make sure we're dealing with arrays */\r\n if (typeof val === 'string') val = [val]\r\n if (typeof obj2.type === 'string') obj2.type = [obj2.type]\r\n\r\n /* If type is only defined in the first schema, keep it */\r\n if (!obj2.type || !obj2.type.length) {\r\n extended.type = val\r\n } else {\r\n /* If type is defined in both schemas, do an intersect */\r\n extended.type = val.filter(n => obj2.type.includes(n))\r\n }\r\n\r\n /* If there's only 1 type and it's a primitive, use a string instead of array */\r\n if (extended.type.length === 1 && typeof extended.type[0] === 'string') {\r\n extended.type = extended.type[0]\r\n } else if (extended.type.length === 0) {\r\n /* Remove the type property if it's empty */\r\n delete extended.type\r\n }\r\n }\r\n\r\n Object.entries(obj1).forEach(([prop, val]) => {\r\n /* If this key is also defined in obj2, merge them */\r\n if (typeof obj2[prop] !== 'undefined') {\r\n merge(prop, val)\r\n } else {\r\n /* Otherwise, just use the one in obj1 */\r\n extended[prop] = val\r\n }\r\n })\r\n\r\n /* Properties in obj2 that aren't in obj1 */\r\n Object.entries(obj2).forEach(([prop, val]) => {\r\n if (typeof obj1[prop] === 'undefined') {\r\n extended[prop] = val\r\n }\r\n })\r\n return extended\r\n }\r\n}\r\n","/* eslint-disable */\nexport default {\".je-float-right-linkholder\":\"float:right;margin-left:10px\",\".je-modal\":\"background-color:white;border:1px%20solid%20black;box-shadow:3px%203px%20black;position:absolute;z-index:10\",\".je-infobutton-icon\":\"font-size:16px;font-weight:bold;padding:0.25rem;position:relative;display:inline-block\",\".je-infobutton-tooltip\":\"font-size:12px;font-weight:normal;font-family:sans-serif;visibility:hidden;background-color:rgba(50%2C%2050%2C%2050%2C%200.75);margin:0%200.25rem;color:%23fafafa;padding:0.5rem%201rem;border-radius:0.25rem;width:20rem;position:absolute\",\".je-header\":\"display:inline-block\",\".je-upload-preview img\":\"float:left;margin:0%200.5rem%200.5rem%200;max-width:100%25;max-height:5rem\",\".je-checkbox\":\"display:inline-block;width:auto\",\".je-checkbox-control--compact\":\"display:inline-block;margin-right:1rem\",\".je-radio\":\"display:inline-block;width:auto\",\".je-radio-control--compact\":\"display:inline-block;margin-right:1rem\",\".je-switcher\":\"background-color:transparent;display:inline-block;font-style:italic;font-weight:normal;height:auto;width:auto;margin-bottom:0;margin-left:5px;padding:0%200%200%203px\",\".je-textarea\":\"width:100%25;height:300px;box-sizing:border-box\",\".je-range-control\":\"text-align:center\",\".je-indented-panel\":\"padding-left:10px;margin-left:10px;border-left:1px%20solid%20%23ccc\",\".je-indented-panel--top\":\"padding-left:10px;margin-left:10px\",\".je-tabholder\":\"float:left;width:130px\",\".je-tabholder .content\":\"margin-left:120px\",\".je-tabholder--top\":\"margin-left:10px\",\".je-tabholder--clear\":\"clear:both\",\".je-tab\":\"border:1px%20solid%20%23ccc;border-width:1px%200%201px%201px;text-align:center;line-height:30px;border-radius:5px;border-bottom-right-radius:0;border-top-right-radius:0;font-weight:bold;cursor:pointer\",\".je-tab--top\":\"float:left;border:1px%20solid%20%23ccc;border-width:1px%201px%200px%201px;text-align:center;line-height:30px;border-radius:5px;padding-left:5px;padding-right:5px;border-bottom-right-radius:0;border-bottom-left-radius:0;font-weight:bold;cursor:pointer\",\".je-block-link\":\"display:block\",\".je-media\":\"width:100%25\"}\n/* eslint-enable */\n","export const defaultTemplate = () => ({\r\n compile (template) {\r\n const matches = template.match(/{{\\s*([a-zA-Z0-9\\-_ .]+)\\s*}}/g)\r\n const l = matches && matches.length\r\n\r\n /* Shortcut if the template contains no variables */\r\n if (!l) return () => template\r\n\r\n /* Pre-compute the search/replace functions */\r\n /* This drastically speeds up template execution */\r\n const replacements = []\r\n const getReplacement = (i) => {\r\n let p = matches[i].replace(/[{}]+/g, '').trim().split('.')\r\n const n = p.length\r\n let func\r\n\r\n if (n > 1) {\r\n let cur\r\n func = (vars) => {\r\n cur = vars\r\n for (i = 0; i < n; i++) {\r\n cur = cur[p[i]]\r\n if (!cur) break\r\n }\r\n return cur\r\n }\r\n } else {\r\n p = p[0]\r\n func = vars => vars[p]\r\n }\r\n\r\n replacements.push({\r\n s: matches[i],\r\n r: func\r\n })\r\n }\r\n for (var i = 0; i < l; i++) {\r\n getReplacement(i)\r\n }\r\n\r\n /* The compiled function */\r\n return (vars) => {\r\n let ret = `${template}`\r\n let r\r\n for (i = 0; i < l; i++) {\r\n r = replacements[i]\r\n ret = ret.replace(r.s, r.r(vars))\r\n }\r\n return ret\r\n }\r\n }\r\n})\r\n","export const ejsTemplate = () => {\r\n if (!window.EJS) return false\r\n\r\n return {\r\n compile (template) {\r\n const compiled = new window.EJS({\r\n text: template\r\n })\r\n\r\n return context => compiled.render(context)\r\n }\r\n }\r\n}\r\n","export const handlebarsTemplate = () => window.Handlebars\r\n","export const hoganTemplate = () => {\r\n if (!window.Hogan) return false\r\n\r\n return {\r\n compile (template) {\r\n const compiled = window.Hogan.compile(template)\r\n return context => compiled.render(context)\r\n }\r\n }\r\n}\r\n","import { defaultTemplate } from './default.js'\r\nimport { ejsTemplate } from './ejs.js'\r\nimport { handlebarsTemplate } from './handlebars.js'\r\nimport { hoganTemplate } from './hogan.js'\r\nimport { lodashTemplate } from './lodash.js'\r\nimport { markupTemplate } from './markup.js'\r\nimport { mustacheTemplate } from './mustache.js'\r\nimport { swigTemplate } from './swig.js'\r\nimport { underscoreTemplate } from './underscore.js'\r\n\r\nexport const templates = {\r\n default: defaultTemplate,\r\n ejs: ejsTemplate,\r\n handlebars: handlebarsTemplate,\r\n hogan: hoganTemplate,\r\n lodash: lodashTemplate,\r\n markup: markupTemplate,\r\n mustache: mustacheTemplate,\r\n swig: swigTemplate,\r\n underscore: underscoreTemplate\r\n}\r\n","export const lodashTemplate = () => {\r\n if (!window._) return false\r\n\r\n return {\r\n compile (template) {\r\n return context => window._.template(template)(context)\r\n }\r\n }\r\n}\r\n","export const markupTemplate = () => {\r\n if (!window.Mark || !window.Mark.up) return false\r\n\r\n return {\r\n compile (template) {\r\n return context => window.Mark.up(template, context)\r\n }\r\n }\r\n}\r\n","export const mustacheTemplate = () => {\r\n if (!window.Mustache) return false\r\n\r\n return {\r\n compile (template) {\r\n return view => window.Mustache.render(template, view)\r\n }\r\n }\r\n}\r\n","export const swigTemplate = () => window.swig\r\n","export const underscoreTemplate = () => {\r\n if (!window._) return false\r\n\r\n return {\r\n compile (template) {\r\n return context => window._.template(template)(context)\r\n }\r\n }\r\n}\r\n","import { trigger } from './utilities'\r\n\r\nconst matchKey = [\r\n 'matches',\r\n 'webkitMatchesSelector',\r\n 'mozMatchesSelector',\r\n 'msMatchesSelector',\r\n 'oMatchesSelector'].find(key => key in document.documentElement)\r\n\r\nexport class AbstractTheme {\r\n constructor (jsoneditor, options = { disable_theme_rules: false }) {\r\n this.jsoneditor = jsoneditor\r\n Object.keys(options).forEach(key => {\r\n if (typeof jsoneditor.options[key] !== 'undefined') {\r\n options[key] = jsoneditor.options[key]\r\n }\r\n })\r\n /* Theme config options that allows changing various aspects of the output */\r\n this.options = options\r\n }\r\n\r\n getContainer () {\r\n return document.createElement('div')\r\n }\r\n\r\n getFloatRightLinkHolder () {\r\n const el = document.createElement('div')\r\n el.classList.add('je-float-right-linkholder')\r\n return el\r\n }\r\n\r\n getModal () {\r\n const el = document.createElement('div')\r\n el.style.display = 'none'\r\n el.classList.add('je-modal')\r\n return el\r\n }\r\n\r\n getGridContainer () {\r\n const el = document.createElement('div')\r\n return el\r\n }\r\n\r\n getGridRow () {\r\n const el = document.createElement('div')\r\n el.classList.add('row')\r\n return el\r\n }\r\n\r\n getGridColumn () {\r\n const el = document.createElement('div')\r\n return el\r\n }\r\n\r\n setGridColumnSize (el, size) {\r\n }\r\n\r\n getLink (text) {\r\n const el = document.createElement('a')\r\n el.setAttribute('href', '#')\r\n el.appendChild(document.createTextNode(text))\r\n return el\r\n }\r\n\r\n disableHeader (header) {\r\n header.style.color = '#ccc'\r\n }\r\n\r\n disableLabel (label) {\r\n label.style.color = '#ccc'\r\n }\r\n\r\n enableHeader (header) {\r\n header.style.color = ''\r\n }\r\n\r\n enableLabel (label) {\r\n label.style.color = ''\r\n }\r\n\r\n getInfoButton (text) {\r\n const icon = document.createElement('span')\r\n icon.innerText = 'ⓘ'\r\n icon.classList.add('je-infobutton-icon')\r\n\r\n const tooltip = document.createElement('span')\r\n tooltip.classList.add('je-infobutton-tooltip')\r\n tooltip.innerText = text\r\n icon.onmouseover = () => {\r\n tooltip.style.visibility = 'visible'\r\n }\r\n icon.onmouseleave = () => {\r\n tooltip.style.visibility = 'hidden'\r\n }\r\n\r\n icon.appendChild(tooltip)\r\n\r\n return icon\r\n }\r\n\r\n getFormInputLabel (text, req) {\r\n const el = document.createElement('label')\r\n el.appendChild(document.createTextNode(text))\r\n if (req) el.classList.add('required')\r\n return el\r\n }\r\n\r\n getHeader (text, pathDepth) {\r\n const el = document.createElement('h3')\r\n if (typeof text === 'string') {\r\n el.textContent = text\r\n } else {\r\n el.appendChild(text)\r\n }\r\n el.classList.add('je-header')\r\n\r\n return el\r\n }\r\n\r\n getCheckbox () {\r\n const el = this.getFormInputField('checkbox')\r\n el.classList.add('je-checkbox')\r\n return el\r\n }\r\n\r\n getCheckboxLabel (text, req) {\r\n const el = document.createElement('label')\r\n el.appendChild(document.createTextNode(`\\u00A0${text}`))\r\n if (req) el.classList.add('required')\r\n return el\r\n }\r\n\r\n getMultiCheckboxHolder (controls, label, description, infoText) {\r\n const el = document.createElement('div')\r\n el.classList.add('control-group')\r\n\r\n if (label) {\r\n label.style.display = 'block'\r\n el.appendChild(label)\r\n if (infoText) label.appendChild(infoText)\r\n }\r\n\r\n Object.values(controls).forEach(control => {\r\n control.style.display = 'inline-block'\r\n control.style.marginRight = '20px'\r\n el.appendChild(control)\r\n })\r\n\r\n if (description) el.appendChild(description)\r\n\r\n return el\r\n }\r\n\r\n getFormCheckboxControl (label, input, compact) {\r\n const el = document.createElement('div')\r\n el.appendChild(label)\r\n input.style.width = 'auto'\r\n label.insertBefore(input, label.firstChild)\r\n if (compact) {\r\n el.classList.add('je-checkbox-control--compact')\r\n }\r\n\r\n return el\r\n }\r\n\r\n getFormRadio (attributes) {\r\n const el = this.getFormInputField('radio')\r\n Object.keys(attributes).forEach(key => el.setAttribute(key, attributes[key]))\r\n el.classList.add('je-radio')\r\n return el\r\n }\r\n\r\n getFormRadioLabel (text, req) {\r\n const el = document.createElement('label')\r\n el.appendChild(document.createTextNode(`\\u00A0${text}`))\r\n if (req) el.classList.add('required')\r\n return el\r\n }\r\n\r\n getFormRadioControl (label, input, compact) {\r\n const el = document.createElement('div')\r\n el.appendChild(label)\r\n input.style.width = 'auto'\r\n label.insertBefore(input, label.firstChild)\r\n if (compact) {\r\n el.classList.add('je-radio-control--compact')\r\n }\r\n\r\n return el\r\n }\r\n\r\n getSelectInput (options, multiple) {\r\n const select = document.createElement('select')\r\n if (options) this.setSelectOptions(select, options)\r\n return select\r\n }\r\n\r\n getSwitcher (options) {\r\n const switcher = this.getSelectInput(options, false)\r\n switcher.classList.add('je-switcher')\r\n return switcher\r\n }\r\n\r\n getSwitcherOptions (switcher) {\r\n return switcher.getElementsByTagName('option')\r\n }\r\n\r\n setSwitcherOptions (switcher, options, titles) {\r\n this.setSelectOptions(switcher, options, titles)\r\n }\r\n\r\n setSelectOptions (select, options, titles = []) {\r\n select.innerHTML = ''\r\n for (let i = 0; i < options.length; i++) {\r\n const option = document.createElement('option')\r\n option.setAttribute('value', options[i])\r\n option.textContent = titles[i] || options[i]\r\n select.appendChild(option)\r\n }\r\n }\r\n\r\n getTextareaInput () {\r\n const el = document.createElement('textarea')\r\n el.classList.add('je-textarea')\r\n return el\r\n }\r\n\r\n getRangeInput (min, max, step) {\r\n const el = this.getFormInputField('range')\r\n el.setAttribute('min', min)\r\n el.setAttribute('max', max)\r\n el.setAttribute('step', step)\r\n return el\r\n }\r\n\r\n getStepperButtons (input) {\r\n const div = document.createElement('div')\r\n\r\n const minusBtn = document.createElement('button')\r\n minusBtn.setAttribute('type', 'button')\r\n minusBtn.classList.add('stepper-down')\r\n\r\n const plusBtn = document.createElement('button')\r\n plusBtn.setAttribute('type', 'button')\r\n plusBtn.classList.add('stepper-up')\r\n\r\n const readonly = input.getAttribute('readonly')\r\n\r\n if (readonly) {\r\n minusBtn.setAttribute('disabled', true)\r\n plusBtn.setAttribute('disabled', true)\r\n }\r\n\r\n minusBtn.textContent = '-'\r\n plusBtn.textContent = '+'\r\n\r\n const initialize = (input, min) => {\r\n if (min) {\r\n input.value = Number(min)\r\n } else {\r\n input.value = Number(input.value)\r\n }\r\n input.setAttribute('initialized', '1')\r\n }\r\n\r\n const min = input.getAttribute('min')\r\n const max = input.getAttribute('max')\r\n\r\n minusBtn.addEventListener('click', () => {\r\n if (!input.getAttribute('initialized')) {\r\n initialize(input, min)\r\n } else if (min) {\r\n if (Number(input.value) > Number(min)) {\r\n input.stepDown()\r\n }\r\n } else {\r\n input.stepDown()\r\n }\r\n trigger(input, 'change')\r\n })\r\n\r\n plusBtn.addEventListener('click', () => {\r\n if (!input.getAttribute('initialized')) {\r\n initialize(input, min)\r\n } else if (max) {\r\n if (Number(input.value) < Number(max)) {\r\n input.stepUp()\r\n }\r\n } else {\r\n input.stepUp()\r\n }\r\n trigger(input, 'change')\r\n })\r\n\r\n div.appendChild(minusBtn)\r\n div.appendChild(plusBtn)\r\n return div\r\n }\r\n\r\n getRangeOutput (input, startvalue) {\r\n const output = document.createElement('output')\r\n output.value = startvalue || 0\r\n\r\n const updateOutput = e => { output.value = e.currentTarget.value }\r\n input.addEventListener('change', updateOutput, false)\r\n input.addEventListener('input', updateOutput, false)\r\n return output\r\n }\r\n\r\n getRangeControl (input, output) {\r\n const el = document.createElement('div')\r\n el.classList.add('je-range-control')\r\n if (output) el.appendChild(output)\r\n el.appendChild(input)\r\n return el\r\n }\r\n\r\n getFormInputField (type) {\r\n const el = document.createElement('input')\r\n el.setAttribute('type', type)\r\n return el\r\n }\r\n\r\n afterInputReady (input) {\r\n\r\n }\r\n\r\n getFormControl (label, input, description, infoText) {\r\n const el = document.createElement('div')\r\n el.classList.add('form-control')\r\n if (label) el.appendChild(label)\r\n if ((input.type === 'checkbox' || input.type === 'radio') && label) {\r\n input.style.width = 'auto'\r\n label.insertBefore(input, label.firstChild)\r\n if (infoText) label.appendChild(infoText)\r\n } else {\r\n if (infoText && label) label.appendChild(infoText)\r\n el.appendChild(input)\r\n }\r\n\r\n if (description) el.appendChild(description)\r\n return el\r\n }\r\n\r\n getIndentedPanel () {\r\n const el = document.createElement('div')\r\n el.classList.add('je-indented-panel')\r\n return el\r\n }\r\n\r\n getTopIndentedPanel () {\r\n const el = document.createElement('div')\r\n el.classList.add('je-indented-panel--top')\r\n return el\r\n }\r\n\r\n getChildEditorHolder () {\r\n return document.createElement('div')\r\n }\r\n\r\n getDescription (text) {\r\n const el = document.createElement('p')\r\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text)\r\n else el.textContent = this.cleanText(text)\r\n return el\r\n }\r\n\r\n getCheckboxDescription (text) {\r\n return this.getDescription(text)\r\n }\r\n\r\n getFormInputDescription (text) {\r\n return this.getDescription(text)\r\n }\r\n\r\n getButtonHolder () {\r\n return document.createElement('span')\r\n }\r\n\r\n getHeaderButtonHolder () {\r\n return this.getButtonHolder()\r\n }\r\n\r\n getFormButtonHolder (buttonAlign) {\r\n return this.getButtonHolder()\r\n }\r\n\r\n getButton (text, icon, title) {\r\n const el = document.createElement('button')\r\n el.type = 'button'\r\n this.setButtonText(el, text, icon, title)\r\n return el\r\n }\r\n\r\n getFormButton (text, icon, title) {\r\n return this.getButton(text, icon, title)\r\n }\r\n\r\n setButtonText (button, text, icon, title) {\r\n /* Clear previous contents. https://jsperf.com/innerhtml-vs-removechild/37 */\r\n while (button.firstChild) {\r\n button.removeChild(button.firstChild)\r\n }\r\n if (icon) {\r\n button.appendChild(icon)\r\n text = ` ${text}`\r\n }\r\n if (!this.jsoneditor.options.iconlib || !this.jsoneditor.options.remove_button_labels || !icon) {\r\n const spanEl = document.createElement('span')\r\n spanEl.appendChild(document.createTextNode(text))\r\n button.appendChild(spanEl)\r\n }\r\n if (title) button.setAttribute('title', title)\r\n }\r\n\r\n getTableContainer () {\r\n return document.createElement('div')\r\n }\r\n\r\n /* Table functions */\r\n getTable () {\r\n return document.createElement('table')\r\n }\r\n\r\n getTableRow () {\r\n return document.createElement('tr')\r\n }\r\n\r\n getTableHead () {\r\n return document.createElement('thead')\r\n }\r\n\r\n getTableBody () {\r\n return document.createElement('tbody')\r\n }\r\n\r\n getTableHeaderCell (text) {\r\n const el = document.createElement('th')\r\n el.textContent = text\r\n return el\r\n }\r\n\r\n getTableCell () {\r\n const el = document.createElement('td')\r\n return el\r\n }\r\n\r\n getErrorMessage (text) {\r\n const el = document.createElement('p')\r\n el.style = el.style || {}\r\n el.style.color = 'red'\r\n el.appendChild(document.createTextNode(text))\r\n return el\r\n }\r\n\r\n addInputError (input, text) {\r\n }\r\n\r\n removeInputError (input) {\r\n }\r\n\r\n addTableRowError (row) {\r\n }\r\n\r\n removeTableRowError (row) {\r\n }\r\n\r\n getTabHolder (propertyName) {\r\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\r\n const el = document.createElement('div')\r\n el.innerHTML = `<div class='je-tabholder tabs'></div><div class='content' id='${pName}'></div><div class='je-tabholder--clear'></div>`\r\n return el\r\n }\r\n\r\n getTopTabHolder (propertyName) {\r\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\r\n const el = document.createElement('div')\r\n el.innerHTML = `<div class='tabs je-tabholder--top'></div><div class='je-tabholder--clear'></div><div class='content' id='${pName}'></div>`\r\n return el\r\n }\r\n\r\n applyStyles (el, styles) {\r\n Object.keys(styles).forEach(i => (el.style[i] = styles[i]))\r\n }\r\n\r\n closest (elem, selector) {\r\n while (elem && elem !== document) {\r\n if (elem[matchKey]) {\r\n if (elem[matchKey](selector)) {\r\n return elem\r\n } else {\r\n elem = elem.parentNode\r\n }\r\n } else {\r\n return false\r\n }\r\n }\r\n return false\r\n }\r\n\r\n insertBasicTopTab (tab, newTabsHolder) {\r\n newTabsHolder.firstChild.insertBefore(tab, newTabsHolder.firstChild.firstChild)\r\n }\r\n\r\n getTab (span, tabId) {\r\n const el = document.createElement('div')\r\n el.appendChild(span)\r\n el.id = tabId\r\n el.classList.add('je-tab')\r\n return el\r\n }\r\n\r\n getTopTab (span, tabId) {\r\n const el = document.createElement('div')\r\n el.appendChild(span)\r\n el.id = tabId\r\n el.classList.add('je-tab--top')\r\n return el\r\n }\r\n\r\n getTabContentHolder (tabHolder) {\r\n return tabHolder.children[1]\r\n }\r\n\r\n getTopTabContentHolder (tabHolder) {\r\n return tabHolder.children[1]\r\n }\r\n\r\n getTabContent () {\r\n return this.getIndentedPanel()\r\n }\r\n\r\n getTopTabContent () {\r\n return this.getTopIndentedPanel()\r\n }\r\n\r\n markTabActive (row) {\r\n this.applyStyles(row.tab, {\r\n opacity: 1,\r\n background: 'white'\r\n })\r\n if (typeof row.rowPane !== 'undefined') {\r\n row.rowPane.style.display = ''\r\n } else {\r\n row.container.style.display = ''\r\n }\r\n }\r\n\r\n markTabInactive (row) {\r\n this.applyStyles(row.tab, {\r\n opacity: 0.5,\r\n background: ''\r\n })\r\n if (typeof row.rowPane !== 'undefined') {\r\n row.rowPane.style.display = 'none'\r\n } else {\r\n row.container.style.display = 'none'\r\n }\r\n }\r\n\r\n addTab (holder, tab) {\r\n holder.children[0].appendChild(tab)\r\n }\r\n\r\n addTopTab (holder, tab) {\r\n holder.children[0].appendChild(tab)\r\n }\r\n\r\n getBlockLink () {\r\n const link = document.createElement('a')\r\n link.classList.add('je-block-link')\r\n return link\r\n }\r\n\r\n getBlockLinkHolder () {\r\n const el = document.createElement('div')\r\n return el\r\n }\r\n\r\n getLinksHolder () {\r\n const el = document.createElement('div')\r\n return el\r\n }\r\n\r\n createMediaLink (holder, link, media) {\r\n holder.appendChild(link)\r\n media.classList.add('je-media')\r\n holder.appendChild(media)\r\n }\r\n\r\n createImageLink (holder, link, image) {\r\n holder.appendChild(link)\r\n link.appendChild(image)\r\n }\r\n\r\n getFirstTab (holder) {\r\n return holder.firstChild.firstChild\r\n }\r\n\r\n getInputGroup (input, buttons) {\r\n return undefined\r\n }\r\n\r\n cleanText (txt) {\r\n /* Clean out HTML tags from txt */\r\n const tmp = document.createElement('div')\r\n tmp.innerHTML = txt\r\n return (tmp.textContent || tmp.innerText)\r\n }\r\n\r\n getDropZone (text) {\r\n const el = document.createElement('div')\r\n el.setAttribute('data-text', text)\r\n el.classList.add('je-dropzone')\r\n return el\r\n }\r\n\r\n /* file is an object with properties: name, type, mimeType, size amd formattedSize */\r\n getUploadPreview (file, uploadButton, data) {\r\n const preview = document.createElement('div')\r\n preview.classList.add('je-upload-preview')\r\n\r\n if (file.mimeType.substr(0, 5) === 'image') {\r\n const img = document.createElement('img')\r\n img.src = data\r\n preview.appendChild(img)\r\n }\r\n const info = document.createElement('div')\r\n info.innerHTML += `<strong>Name:</strong> ${file.name}<br><strong>Type:</strong> ${file.type}<br><strong>Size:</strong> ${file.formattedSize}`\r\n preview.appendChild(info)\r\n\r\n preview.appendChild(uploadButton)\r\n\r\n const clear = document.createElement('div')\r\n clear.style.clear = 'left'\r\n preview.appendChild(clear)\r\n\r\n return preview\r\n }\r\n\r\n getProgressBar () {\r\n const max = 100; const start = 0\r\n\r\n const progressBar = document.createElement('progress')\r\n progressBar.setAttribute('max', max)\r\n progressBar.setAttribute('value', start)\r\n return progressBar\r\n }\r\n\r\n updateProgressBar (progressBar, progress) {\r\n if (!progressBar) return\r\n progressBar.setAttribute('value', progress)\r\n }\r\n\r\n updateProgressBarUnknown (progressBar) {\r\n if (!progressBar) return\r\n progressBar.removeAttribute('value')\r\n }\r\n}\r\n","/* eslint-disable */\nexport default {\".je-upload-preview img\":\"float:left;margin:0%200.5rem%200.5rem%200;max-width:100%25;max-height:5rem\",\".je-dropzone\":\"position:relative;margin:0.5rem%200;border:2px%20dashed%20black;width:100%25;height:60px;background:teal;transition:all%200.5s\",\".je-dropzone:before\":\"position:absolute;content:attr(data-text);color:rgba(0%2C%200%2C%200%2C%200.6);left:50%25;top:50%25;transform:translate(-50%25%2C%20-50%25)\",\".je-dropzone.valid-dropzone\":\"background:green\",\".je-dropzone.invalid-dropzone\":\"background:red\"}\n/* eslint-enable */\n","import { AbstractTheme } from '../theme.js'\r\nimport rules from './barebones.css.js'\r\n\r\nexport class barebonesTheme extends AbstractTheme {\r\n addInputError (input, text) {\r\n if (!input.errmsg) {\r\n const group = this.closest(input, '.form-control')\r\n input.errmsg = document.createElement('div')\r\n input.errmsg.setAttribute('class', 'errmsg')\r\n group.appendChild(input.errmsg)\r\n } else {\r\n input.errmsg.style.display = 'block'\r\n }\r\n\r\n input.errmsg.innerHTML = ''\r\n input.errmsg.appendChild(document.createTextNode(text))\r\n }\r\n\r\n removeInputError (input) {\r\n if (input.style) {\r\n input.style.borderColor = ''\r\n }\r\n if (input.errmsg) input.errmsg.style.display = 'none'\r\n }\r\n}\r\n\r\n/* Custom stylesheet rules. format: \"selector\" : \"CSS rules\" */\r\nbarebonesTheme.rules = rules\r\n","var api = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../node_modules/css-loader/dist/cjs.js!./bootstrap3.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","import { AbstractTheme } from '../theme.js'\r\nimport rules from './bootstrap3.css'\r\n\r\nexport class bootstrap3Theme extends AbstractTheme {\r\n constructor (jsoneditor, options) {\r\n super(jsoneditor, options)\r\n this.wm = new WeakMap()\r\n }\r\n\r\n getSelectInput (options, multiple) {\r\n const el = super.getSelectInput(options)\r\n el.classList.add('form-control')\r\n /* el.style.width = 'auto'; */\r\n return el\r\n }\r\n\r\n setGridColumnSize (el, size, offset) {\r\n el.classList.add(`col-md-${size}`)\r\n if (offset) {\r\n el.classList.add(`col-md-offset-${offset}`)\r\n }\r\n }\r\n\r\n afterInputReady (input) {\r\n if (input.controlgroup) return\r\n input.controlgroup = this.closest(input, '.form-group')\r\n if (this.closest(input, '.compact')) {\r\n input.controlgroup.style.marginBottom = 0\r\n }\r\n if (this.wm.has(input)) {\r\n const text = this.wm.get(input)\r\n this.wm.delete(input)\r\n this.addInputError(input, text)\r\n }\r\n\r\n /* TODO: use bootstrap slider */\r\n }\r\n\r\n getTextareaInput () {\r\n const el = document.createElement('textarea')\r\n el.classList.add('form-control')\r\n return el\r\n }\r\n\r\n getRangeInput (min, max, step) {\r\n /* TODO: use better slider */\r\n return super.getRangeInput(min, max, step)\r\n }\r\n\r\n getFormInputField (type) {\r\n const el = super.getFormInputField(type)\r\n if (type !== 'checkbox' && type !== 'radio') {\r\n el.classList.add('form-control')\r\n }\r\n return el\r\n }\r\n\r\n getFormControl (label, input, description, infoText) {\r\n const group = document.createElement('div')\r\n\r\n if (label && (input.type === 'checkbox' || input.type === 'radio')) {\r\n group.classList.add(input.type)\r\n label.insertBefore(input, label.firstChild)\r\n group.appendChild(label)\r\n } else {\r\n group.classList.add('form-group')\r\n if (label) {\r\n label.classList.add('control-label')\r\n group.appendChild(label)\r\n if (infoText) label.appendChild(infoText)\r\n }\r\n group.appendChild(input)\r\n }\r\n\r\n if (description) group.appendChild(description)\r\n\r\n return group\r\n }\r\n\r\n getIndentedPanel () {\r\n const el = document.createElement('div')\r\n el.classList.add('well', 'well-sm')\r\n el.style.paddingBottom = 0\r\n return el\r\n }\r\n\r\n getInfoButton (text) {\r\n const icon = document.createElement('span')\r\n icon.classList.add('glyphicon', 'glyphicon-info-sign', 'pull-right')\r\n icon.style.padding = '.25rem'\r\n icon.style.position = 'relative'\r\n icon.style.display = 'inline-block'\r\n\r\n const tooltip = document.createElement('span')\r\n tooltip.style['font-family'] = 'sans-serif'\r\n tooltip.style.visibility = 'hidden'\r\n tooltip.style['background-color'] = 'rgba(50, 50, 50, .75)'\r\n tooltip.style.margin = '0 .25rem'\r\n tooltip.style.color = '#FAFAFA'\r\n tooltip.style.padding = '.5rem 1rem'\r\n tooltip.style['border-radius'] = '.25rem'\r\n tooltip.style.width = '25rem'\r\n tooltip.style.position = 'absolute'\r\n tooltip.innerText = text\r\n icon.onmouseover = () => {\r\n tooltip.style.visibility = 'visible'\r\n }\r\n icon.onmouseleave = () => {\r\n tooltip.style.visibility = 'hidden'\r\n }\r\n\r\n icon.appendChild(tooltip)\r\n\r\n return icon\r\n }\r\n\r\n getFormInputDescription (text) {\r\n const el = document.createElement('p')\r\n el.classList.add('help-block')\r\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text)\r\n else el.textContent = this.cleanText(text)\r\n return el\r\n }\r\n\r\n getHeaderButtonHolder () {\r\n const el = this.getButtonHolder()\r\n el.style.marginLeft = '10px'\r\n return el\r\n }\r\n\r\n getButtonHolder () {\r\n const el = document.createElement('span')\r\n el.classList.add('btn-group')\r\n return el\r\n }\r\n\r\n getButton (text, icon, title) {\r\n const el = super.getButton(text, icon, title)\r\n el.classList.add('btn', 'btn-default')\r\n return el\r\n }\r\n\r\n getTableContainer () {\r\n const el = super.getTableContainer()\r\n el.classList.add('table-responsive')\r\n return el\r\n }\r\n\r\n getTable () {\r\n const el = document.createElement('table')\r\n el.classList.add('table', 'table-bordered')\r\n el.style.width = 'auto'\r\n el.style.maxWidth = 'none'\r\n return el\r\n }\r\n\r\n addInputError (input, text) {\r\n if (!input.controlgroup) {\r\n this.wm.set(input, text)\r\n return\r\n }\r\n input.controlgroup.classList.add('has-error')\r\n if (!input.errmsg) {\r\n input.errmsg = document.createElement('p')\r\n input.errmsg.classList.add('help-block', 'errormsg')\r\n input.controlgroup.appendChild(input.errmsg)\r\n } else {\r\n input.errmsg.style.display = ''\r\n }\r\n\r\n input.errmsg.textContent = text\r\n }\r\n\r\n removeInputError (input) {\r\n if (!input.controlgroup) {\r\n this.wm.delete(input)\r\n }\r\n if (!input.errmsg) return\r\n input.errmsg.style.display = 'none'\r\n input.controlgroup.classList.remove('has-error')\r\n }\r\n\r\n getTabHolder (propertyName) {\r\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\r\n const el = document.createElement('div')\r\n el.innerHTML = `<ul class='col-md-2 nav nav-pills nav-stacked' id='${pName}' role='tablist'></ul><div class='col-md-10 tab-content well well-small' id='${pName}'></div>`\r\n return el\r\n }\r\n\r\n getTopTabHolder (propertyName) {\r\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\r\n const el = document.createElement('div')\r\n el.innerHTML = `<ul class='nav nav-tabs' id='${pName}' role='tablist'></ul><div class='tab-content well well-small' id='${pName}'></div>`\r\n return el\r\n }\r\n\r\n getTab (text, tabId) {\r\n const li = document.createElement('li')\r\n li.setAttribute('role', 'presentation')\r\n const a = document.createElement('a')\r\n a.setAttribute('href', `#${tabId}`)\r\n a.appendChild(text)\r\n a.setAttribute('aria-controls', tabId)\r\n a.setAttribute('role', 'tab')\r\n a.setAttribute('data-toggle', 'tab')\r\n li.appendChild(a)\r\n return li\r\n }\r\n\r\n getTopTab (text, tabId) {\r\n const li = document.createElement('li')\r\n li.setAttribute('role', 'presentation')\r\n const a = document.createElement('a')\r\n a.setAttribute('href', `#${tabId}`)\r\n a.appendChild(text)\r\n a.setAttribute('aria-controls', tabId)\r\n a.setAttribute('role', 'tab')\r\n a.setAttribute('data-toggle', 'tab')\r\n li.appendChild(a)\r\n return li\r\n }\r\n\r\n getTabContent () {\r\n const el = document.createElement('div')\r\n el.classList.add('tab-pane')\r\n el.setAttribute('role', 'tabpanel')\r\n return el\r\n }\r\n\r\n getTopTabContent () {\r\n const el = document.createElement('div')\r\n el.classList.add('tab-pane')\r\n el.setAttribute('role', 'tabpanel')\r\n return el\r\n }\r\n\r\n markTabActive (row) {\r\n row.tab.classList.add('active')\r\n\r\n if (typeof row.rowPane !== 'undefined') {\r\n row.rowPane.classList.add('active')\r\n } else {\r\n row.container.classList.add('active')\r\n }\r\n }\r\n\r\n markTabInactive (row) {\r\n row.tab.classList.remove('active')\r\n\r\n if (typeof row.rowPane !== 'undefined') {\r\n row.rowPane.classList.remove('active')\r\n } else {\r\n row.container.classList.remove('active')\r\n }\r\n }\r\n\r\n getProgressBar () {\r\n const min = 0; const max = 100; const start = 0\r\n\r\n const container = document.createElement('div')\r\n container.classList.add('progress')\r\n\r\n const bar = document.createElement('div')\r\n bar.classList.add('progress-bar')\r\n bar.setAttribute('role', 'progressbar')\r\n bar.setAttribute('aria-valuenow', start)\r\n bar.setAttribute('aria-valuemin', min)\r\n bar.setAttribute('aria-valuenax', max)\r\n bar.innerHTML = `${start}%`\r\n container.appendChild(bar)\r\n\r\n return container\r\n }\r\n\r\n updateProgressBar (progressBar, progress) {\r\n if (!progressBar) return\r\n\r\n const bar = progressBar.firstChild\r\n const percentage = `${progress}%`\r\n bar.setAttribute('aria-valuenow', progress)\r\n bar.style.width = percentage\r\n bar.innerHTML = percentage\r\n }\r\n\r\n updateProgressBarUnknown (progressBar) {\r\n if (!progressBar) return\r\n\r\n const bar = progressBar.firstChild\r\n progressBar.classList.add('progress', 'progress-striped', 'active')\r\n bar.removeAttribute('aria-valuenow')\r\n bar.style.width = '100%'\r\n bar.innerHTML = ''\r\n }\r\n\r\n getInputGroup (input, buttons) {\r\n if (!input) return\r\n\r\n const inputGroupContainer = document.createElement('div')\r\n inputGroupContainer.classList.add('input-group')\r\n inputGroupContainer.appendChild(input)\r\n\r\n const inputGroup = document.createElement('div')\r\n inputGroup.classList.add('input-group-btn')\r\n inputGroupContainer.appendChild(inputGroup)\r\n\r\n for (let i = 0; i < buttons.length; i++) {\r\n inputGroup.appendChild(buttons[i])\r\n }\r\n\r\n return inputGroupContainer\r\n }\r\n}\r\n\r\n/* Custom stylesheet rules. format: \"selector\" : \"CSS rules\" */\r\nbootstrap3Theme.rules = rules\r\n","/* eslint-disable */\nexport default {\".jsoneditor-twbs4-text-button\":\"background:none;padding:0;border:0;color:currentColor\",\"td > .form-group\":\"margin-bottom:0\",\".json-editor-btn-upload\":\"margin-top:1rem\",\".je-noindent .card\":\"padding:0;border:0\",\".je-tooltip:hover::before\":\"display:block;position:absolute;font-size:0.8em;color:%23fff;border-radius:0.2em;content:attr(title);background-color:%23000;margin-top:-2.5em;padding:0.3em\",\".je-tooltip:hover::after\":\"display:block;position:absolute;font-size:0.8em;color:%23fff\",\".select2-container--default .select2-selection--single\":\"height:calc(1.5em%20%2B%200.75rem%20%2B%202px)\",\".select2-container--default .select2-selection--single .select2-selection__arrow\":\"height:calc(1.5em%20%2B%200.75rem%20%2B%202px)\",\".select2-container--default .select2-selection--single .select2-selection__rendered\":\"line-height:calc(1.5em%20%2B%200.75rem%20%2B%202px)\",\".selectize-control.form-control\":\"padding:0\",\".selectize-dropdown.form-control\":\"padding:0;height:auto\",\".je-upload-preview img\":\"float:left;margin:0%200.5rem%200.5rem%200;max-width:100%25;max-height:5rem\",\".je-dropzone\":\"position:relative;margin:0.5rem%200;border:2px%20dashed%20black;width:100%25;height:60px;background:teal;transition:all%200.5s\",\".je-dropzone:before\":\"position:absolute;content:attr(data-text);color:rgba(0%2C%200%2C%200%2C%200.6);left:50%25;top:50%25;transform:translate(-50%25%2C%20-50%25)\",\".je-dropzone.valid-dropzone\":\"background:green\",\".je-dropzone.invalid-dropzone\":\"background:red\"}\n/* eslint-enable */\n","import { AbstractTheme } from '../theme.js'\r\nimport rules from './bootstrap4.css.js'\r\nimport { trigger } from '../utilities'\r\n\r\n/* Theme config options that allows changing various aspects of the output */\r\nconst options = {\r\n disable_theme_rules: false,\r\n input_size: 'normal', /* Size of input and select elements. \"small\", \"normal\", \"large\" */\r\n custom_forms: false, /* use twbs custom form stylings */\r\n object_indent: true, /* Indent nested object elements (use nested .card layout) */\r\n object_background: 'bg-light', /* Bootstrap 4 card background modifier class (https://getbootstrap.com/docs/4.1/getting-started/introduction/) */\r\n object_text: '', /* Bootstrap 4 card tect color modifier class (https://getbootstrap.com/docs/4.1/getting-started/introduction/) */\r\n table_border: false, /* Add border to array \"table\" row and cells */\r\n table_zebrastyle: false, /* Add \"zebra style\" to array \"table\" rows */\r\n tooltip: 'bootstrap' /* how to display tooltips (infoText). Can be `browser` for native `title`, `css` for simple CSS Styling, or `bootstrap` for TWBS/Popper.js handling */\r\n}\r\n\r\nexport class bootstrap4Theme extends AbstractTheme {\r\n constructor (jsoneditor) {\r\n super(jsoneditor, options)\r\n }\r\n\r\n getSelectInput (options, multiple) {\r\n const el = super.getSelectInput(options)\r\n el.classList.add('form-control')\r\n\r\n if (this.options.custom_forms === false) {\r\n if (this.options.input_size === 'small') el.classList.add('form-control-sm')\r\n if (this.options.input_size === 'large') el.classList.add('form-control-lg')\r\n } else {\r\n el.classList.remove('form-control')\r\n el.classList.add('custom-select')\r\n if (this.options.input_size === 'small') el.classList.add('custom-select-sm')\r\n if (this.options.input_size === 'large') el.classList.add('custom-select-lg')\r\n }\r\n\r\n return el\r\n }\r\n\r\n getContainer () {\r\n const el = document.createElement('div')\r\n if (!this.options.object_indent) el.classList.add('je-noindent')\r\n return el\r\n }\r\n\r\n setGridColumnSize (el, size, offset) {\r\n el.classList.add(`col-md-${size}`)\r\n\r\n if (offset) {\r\n el.classList.add(`offset-md-${offset}`)\r\n }\r\n }\r\n\r\n afterInputReady (input) {\r\n if (input.controlgroup) return\r\n\r\n /* set id/for */\r\n /* is not working for: [type=file], [type=checkbox] */\r\n const id = input.name\r\n input.id = id\r\n /* 2x parentNode, b/c range input has an <div> wrapper */\r\n const label = input.parentNode.parentNode.getElementsByTagName('label')[0]\r\n if (label) {\r\n label.htmlFor = id\r\n }\r\n\r\n input.controlgroup = this.closest(input, '.form-group')\r\n }\r\n\r\n getTextareaInput () {\r\n const el = document.createElement('textarea')\r\n el.classList.add('form-control')\r\n if (this.options.input_size === 'small') el.classList.add('form-control-sm')\r\n if (this.options.input_size === 'large') el.classList.add('form-control-lg')\r\n return el\r\n }\r\n\r\n getRangeInput (min, max, step) {\r\n const el = super.getRangeInput(min, max, step)\r\n\r\n if (this.options.custom_forms === true) {\r\n el.classList.remove('form-control')\r\n el.classList.add('custom-range')\r\n }\r\n\r\n return el\r\n }\r\n\r\n getStepperButtons (input) {\r\n const inputGroup = document.createElement('div')\r\n const prepend = document.createElement('div')\r\n const append = document.createElement('div')\r\n\r\n const minusBtn = document.createElement('button')\r\n minusBtn.setAttribute('type', 'button')\r\n\r\n const plusBtn = document.createElement('button')\r\n plusBtn.setAttribute('type', 'button')\r\n\r\n inputGroup.appendChild(prepend)\r\n inputGroup.appendChild(input)\r\n inputGroup.appendChild(append)\r\n prepend.appendChild(minusBtn)\r\n append.appendChild(plusBtn)\r\n\r\n inputGroup.classList.add('input-group')\r\n prepend.classList.add('input-group-prepend')\r\n append.classList.add('input-group-append')\r\n minusBtn.classList.add('btn')\r\n minusBtn.classList.add('btn-secondary')\r\n minusBtn.classList.add('stepper-down')\r\n plusBtn.classList.add('btn')\r\n plusBtn.classList.add('btn-secondary')\r\n plusBtn.classList.add('stepper-up')\r\n\r\n const readonly = input.getAttribute('readonly')\r\n\r\n if (readonly) {\r\n minusBtn.setAttribute('disabled', true)\r\n plusBtn.setAttribute('disabled', true)\r\n }\r\n\r\n minusBtn.textContent = '-'\r\n plusBtn.textContent = '+'\r\n\r\n const initialize = (input, min) => {\r\n if (min) {\r\n input.value = Number(min)\r\n } else {\r\n input.value = Number(input.value)\r\n }\r\n input.setAttribute('initialized', '1')\r\n }\r\n\r\n const min = input.getAttribute('min')\r\n const max = input.getAttribute('max')\r\n\r\n minusBtn.addEventListener('click', () => {\r\n if (!input.getAttribute('initialized')) {\r\n initialize(input, min)\r\n } else if (min) {\r\n if (Number(input.value) > Number(min)) {\r\n input.stepDown()\r\n }\r\n } else {\r\n input.stepDown()\r\n }\r\n trigger(input, 'change')\r\n })\r\n\r\n plusBtn.addEventListener('click', () => {\r\n if (!input.getAttribute('initialized')) {\r\n initialize(input, min)\r\n } else if (max) {\r\n if (Number(input.value) < Number(max)) {\r\n input.stepUp()\r\n }\r\n } else {\r\n input.stepUp()\r\n }\r\n trigger(input, 'change')\r\n })\r\n\r\n return inputGroup\r\n }\r\n\r\n getFormInputField (type) {\r\n const el = super.getFormInputField(type)\r\n if (type !== 'checkbox' && type !== 'radio' && type !== 'file') {\r\n el.classList.add('form-control')\r\n if (this.options.input_size === 'small') el.classList.add('form-control-sm')\r\n if (this.options.input_size === 'large') el.classList.add('form-control-lg')\r\n }\r\n\r\n if (type === 'file') {\r\n /* custom_form is not used on files, would be a bit ticky since we need more */\r\n /* markup. Also it contains language strings which would need be translateable? */\r\n /* and most of all, w/o JavaScript teh name of the file can't be displayed. */\r\n el.classList.add('form-control-file')\r\n }\r\n\r\n return el\r\n }\r\n\r\n getFormControl (label, input, description, infoText) {\r\n const group = document.createElement('div')\r\n group.classList.add('form-group')\r\n\r\n if (label && (input.type === 'checkbox' || input.type === 'radio')) {\r\n const check = document.createElement('div')\r\n\r\n if (this.options.custom_forms === false) {\r\n check.classList.add('form-check')\r\n input.classList.add('form-check-input')\r\n label.classList.add('form-check-label')\r\n } else {\r\n check.classList.add('custom-control')\r\n input.classList.add('custom-control-input')\r\n label.classList.add('custom-control-label')\r\n\r\n if (input.type === 'checkbox') {\r\n check.classList.add('custom-checkbox')\r\n } else {\r\n check.classList.add('custom-radio')\r\n }\r\n }\r\n\r\n const unique = (Date.now() * Math.random()).toFixed(0)\r\n input.setAttribute('id', unique)\r\n label.setAttribute('for', unique)\r\n\r\n check.appendChild(input)\r\n check.appendChild(label)\r\n if (infoText) check.appendChild(infoText)\r\n\r\n group.appendChild(check)\r\n } else {\r\n if (label) {\r\n group.appendChild(label)\r\n\r\n if (infoText) group.appendChild(infoText)\r\n }\r\n\r\n group.appendChild(input)\r\n }\r\n\r\n if (description) {\r\n group.appendChild(description)\r\n }\r\n\r\n return group\r\n }\r\n\r\n getInfoButton (text) {\r\n const button = document.createElement('button') /* shoud be a <button> but no fitting tbws style... */\r\n button.type = 'button'\r\n button.classList.add('ml-3', 'jsoneditor-twbs4-text-button')\r\n button.setAttribute('data-toggle', 'tooltip')\r\n button.setAttribute('data-placement', 'auto')\r\n button.title = text\r\n\r\n const icon = document.createTextNode('ⓘ')\r\n button.appendChild(icon)\r\n\r\n if (this.options.tooltip === 'bootstrap') {\r\n if (window.jQuery && window.jQuery().tooltip) {\r\n window.jQuery(button).tooltip()\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.warn('Could not find popper jQuery plugin of Bootstrap.')\r\n }\r\n } else if (this.options.tooltip === 'css') {\r\n button.classList.add('je-tooltip')\r\n } /* else -> nothing todo for native [title] handling */\r\n\r\n return button\r\n }\r\n\r\n /**\r\n * Generates a checkbox...\r\n *\r\n * Overwriten from master theme to get rid of inline styles.\r\n */\r\n getCheckbox () {\r\n const el = this.getFormInputField('checkbox')\r\n return el\r\n }\r\n\r\n /**\r\n * Multiple checkboxes in a row.\r\n *\r\n */\r\n getMultiCheckboxHolder (controls, label, description, infoText) {\r\n const el = document.createElement('div')\r\n el.classList.add('form-group')\r\n\r\n if (label) {\r\n el.appendChild(label)\r\n\r\n if (infoText) {\r\n label.appendChild(infoText)\r\n }\r\n }\r\n\r\n /* for inline view we need an container so it doesnt wrap in the \"row\" of the <label> */\r\n const container = document.createElement('div')\r\n\r\n Object.values(controls).forEach(c => {\r\n /* controls are already parsed by getFormControl() so they have an .form-group */\r\n /* wrapper we need to get rid of... */\r\n const ctrl = c.firstChild\r\n\r\n /* we don't know if this should be an normal / compact view */\r\n /* if (this.options.custom_forms === false) {\r\n ctrl.classList.add('form-check-inline')\r\n } else {\r\n ctrl.classList.add('custom-control-inline')\r\n } */\r\n container.appendChild(ctrl)\r\n })\r\n\r\n el.appendChild(container)\r\n\r\n if (description) el.appendChild(description)\r\n\r\n return el\r\n }\r\n\r\n /**\r\n * Single radio element\r\n */\r\n getFormRadio (attributes) {\r\n const el = this.getFormInputField('radio')\r\n\r\n for (const key in attributes) {\r\n el.setAttribute(key, attributes[key])\r\n }\r\n\r\n if (this.options.custom_forms === false) {\r\n el.classList.add('form-check-input')\r\n } else {\r\n el.classList.add('custom-control-input')\r\n }\r\n\r\n return el\r\n }\r\n\r\n /**\r\n * Add the <label> for the single radio from getFormRadio()\r\n *\r\n */\r\n getFormRadioLabel (text, req) {\r\n const el = document.createElement('label')\r\n\r\n if (this.options.custom_forms === false) {\r\n el.classList.add('form-check-label')\r\n } else {\r\n el.classList.add('custom-control-label')\r\n }\r\n\r\n el.appendChild(document.createTextNode(text))\r\n return el\r\n }\r\n\r\n /**\r\n * Stack the radios from getFormRadio()/getFormRadioLabel()\r\n *\r\n */\r\n getFormRadioControl (label, input, compact) {\r\n const el = document.createElement('div')\r\n\r\n if (this.options.custom_forms === false) {\r\n el.classList.add('form-check')\r\n } else {\r\n el.classList.add('custom-control', 'custom-radio')\r\n }\r\n\r\n el.appendChild(input)\r\n el.appendChild(label)\r\n\r\n if (compact) {\r\n if (this.options.custom_forms === false) {\r\n el.classList.add('form-check-inline')\r\n } else {\r\n el.classList.add('custom-control-inline')\r\n }\r\n }\r\n\r\n return el\r\n }\r\n\r\n getIndentedPanel () {\r\n const el = document.createElement('div')\r\n el.classList.add('card', 'card-body', 'mb-3')\r\n\r\n if (this.options.object_background) {\r\n el.classList.add(this.options.object_background)\r\n }\r\n\r\n if (this.options.object_text) {\r\n el.classList.add(this.options.object_text)\r\n }\r\n\r\n /* for better twbs card styling we should be able to return a nested div */\r\n\r\n return el\r\n }\r\n\r\n getFormInputDescription (text) {\r\n const el = document.createElement('small')\r\n el.classList.add('form-text')\r\n\r\n if (window.DOMPurify) {\r\n el.innerHTML = window.DOMPurify.sanitize(text)\r\n } else {\r\n el.textContent = this.cleanText(text)\r\n }\r\n\r\n return el\r\n }\r\n\r\n getHeader (text, pathDepth) {\r\n /* var cardHeader = document.createElement('div') */\r\n /* cardHeader.classList.add('card-header') */\r\n\r\n const el = document.createElement('h3')\r\n el.classList.add('card-title')\r\n\r\n if (typeof text === 'string') {\r\n el.textContent = text\r\n } else {\r\n el.appendChild(text)\r\n }\r\n\r\n el.style.display = 'inline-block'\r\n\r\n /* cardHeader.appendChild(el) */\r\n\r\n return el\r\n }\r\n\r\n getHeaderButtonHolder () {\r\n const el = this.getButtonHolder()\r\n\r\n return el\r\n }\r\n\r\n getButtonHolder () {\r\n const el = document.createElement('span')\r\n el.classList.add('btn-group')\r\n return el\r\n }\r\n\r\n getFormButtonHolder (buttonAlign) {\r\n const el = this.getButtonHolder()\r\n el.classList.add('d-block')\r\n\r\n if (buttonAlign === 'center') el.classList.add('text-center')\r\n else if (buttonAlign === 'right') el.classList.add('text-right')\r\n\r\n return el\r\n }\r\n\r\n getButton (text, icon, title) {\r\n const el = super.getButton(text, icon, title)\r\n el.classList.add('btn', 'btn-secondary', 'btn-sm')\r\n return el\r\n }\r\n\r\n getTableContainer () {\r\n const el = super.getTableContainer()\r\n el.classList.add('table-responsive')\r\n return el\r\n }\r\n\r\n getTable () {\r\n const el = document.createElement('table')\r\n el.classList.add('table', 'table-sm')\r\n\r\n if (this.options.table_border) {\r\n el.classList.add('table-bordered')\r\n }\r\n\r\n if (this.options.table_zebrastyle) {\r\n el.classList.add('table-striped')\r\n }\r\n\r\n return el\r\n }\r\n\r\n getErrorMessage (text) {\r\n const el = document.createElement('div')\r\n el.classList.add('alert', 'alert-danger')\r\n el.setAttribute('role', 'alert')\r\n el.appendChild(document.createTextNode(text))\r\n return el\r\n }\r\n\r\n /**\r\n * input validation on <input>\r\n */\r\n addInputError (input, text) {\r\n if (!input.controlgroup) return\r\n\r\n input.controlgroup.classList.add('is-invalid')\r\n\r\n if (!input.errmsg) {\r\n input.errmsg = document.createElement('p')\r\n input.errmsg.classList.add('invalid-feedback')\r\n input.controlgroup.appendChild(input.errmsg)\r\n input.errmsg.style.display = 'block'\r\n }\r\n\r\n input.errmsg.style.display = 'block'\r\n input.errmsg.textContent = text\r\n }\r\n\r\n removeInputError (input) {\r\n if (!input.errmsg) return\r\n input.errmsg.style.display = 'none'\r\n input.controlgroup.classList.remove('is-invalid')\r\n }\r\n\r\n getTabHolder (propertyName) {\r\n const el = document.createElement('div')\r\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\r\n el.innerHTML = `<div class='col-md-2' id='${pName}'><ul class='nav flex-column nav-pills'></ul></div><div class='col-md-10'><div class='tab-content' id='${pName}'></div></div>`\r\n el.classList.add('row')\r\n return el\r\n }\r\n\r\n addTab (holder, tab) {\r\n holder.children[0].children[0].appendChild(tab)\r\n }\r\n\r\n getTabContentHolder (tabHolder) {\r\n return tabHolder.children[1].children[0]\r\n }\r\n\r\n getTopTabHolder (propertyName) {\r\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\r\n\r\n const el = document.createElement('div')\r\n el.classList.add('card')\r\n\r\n el.innerHTML = `<div class='card-header'><ul class='nav nav-tabs card-header-tabs' id='${pName}'></ul></div><div class='card-body'><div class='tab-content' id='${pName}'></div></div>`\r\n\r\n return el\r\n }\r\n\r\n getTab (text, tabId) {\r\n const liel = document.createElement('li')\r\n liel.classList.add('nav-item')\r\n\r\n const ael = document.createElement('a')\r\n ael.classList.add('nav-link')\r\n ael.setAttribute('href', `#${tabId}`)\r\n ael.setAttribute('data-toggle', 'tab')\r\n ael.appendChild(text)\r\n\r\n liel.appendChild(ael)\r\n\r\n return liel\r\n }\r\n\r\n getTopTab (text, tabId) {\r\n const el = document.createElement('li')\r\n el.classList.add('nav-item')\r\n\r\n const a = document.createElement('a')\r\n a.classList.add('nav-link')\r\n a.setAttribute('href', `#${tabId}`)\r\n a.setAttribute('data-toggle', 'tab')\r\n a.appendChild(text)\r\n\r\n el.appendChild(a)\r\n\r\n return el\r\n }\r\n\r\n getTabContent () {\r\n const el = document.createElement('div')\r\n el.classList.add('tab-pane')\r\n el.setAttribute('role', 'tabpanel')\r\n return el\r\n }\r\n\r\n getTopTabContent () {\r\n const el = document.createElement('div')\r\n el.classList.add('tab-pane')\r\n el.setAttribute('role', 'tabpanel')\r\n return el\r\n }\r\n\r\n markTabActive (row) {\r\n row.tab.firstChild.classList.add('active')\r\n\r\n if (typeof row.rowPane !== 'undefined') {\r\n row.rowPane.classList.add('active')\r\n } else {\r\n row.container.classList.add('active')\r\n }\r\n }\r\n\r\n markTabInactive (row) {\r\n row.tab.firstChild.classList.remove('active')\r\n\r\n if (typeof row.rowPane !== 'undefined') {\r\n row.rowPane.classList.remove('active')\r\n } else {\r\n row.container.classList.remove('active')\r\n }\r\n }\r\n\r\n insertBasicTopTab (tab, newTabsHolder) {\r\n newTabsHolder.children[0].children[0].insertBefore(tab, newTabsHolder.children[0].children[0].firstChild)\r\n }\r\n\r\n addTopTab (holder, tab) {\r\n holder.children[0].children[0].appendChild(tab)\r\n }\r\n\r\n getTopTabContentHolder (tabHolder) {\r\n return tabHolder.children[1].children[0]\r\n }\r\n\r\n getFirstTab (holder) {\r\n return holder.firstChild.firstChild.firstChild\r\n }\r\n\r\n getProgressBar () {\r\n const min = 0\r\n const max = 100\r\n const start = 0\r\n\r\n const container = document.createElement('div')\r\n container.classList.add('progress')\r\n\r\n const bar = document.createElement('div')\r\n bar.classList.add('progress-bar')\r\n bar.setAttribute('role', 'progressbar')\r\n bar.setAttribute('aria-valuenow', start)\r\n bar.setAttribute('aria-valuemin', min)\r\n bar.setAttribute('aria-valuenax', max)\r\n bar.innerHTML = `${start}%`\r\n container.appendChild(bar)\r\n\r\n return container\r\n }\r\n\r\n updateProgressBar (progressBar, progress) {\r\n if (!progressBar) return\r\n\r\n const bar = progressBar.firstChild\r\n const percentage = `${progress}%`\r\n bar.setAttribute('aria-valuenow', progress)\r\n bar.style.width = percentage\r\n bar.innerHTML = percentage\r\n }\r\n\r\n updateProgressBarUnknown (progressBar) {\r\n if (!progressBar) return\r\n\r\n const bar = progressBar.firstChild\r\n progressBar.classList.add('progress', 'progress-striped', 'active')\r\n bar.removeAttribute('aria-valuenow')\r\n bar.style.width = '100%'\r\n bar.innerHTML = ''\r\n }\r\n\r\n getBlockLink () {\r\n const link = document.createElement('a')\r\n link.classList.add('mb-3', 'd-inline-block')\r\n return link\r\n }\r\n\r\n /**\r\n * Link after successfull upload\r\n */\r\n getLinksHolder () {\r\n const el = document.createElement('div')\r\n return el\r\n }\r\n\r\n getInputGroup (input, buttons) {\r\n if (!input) return\r\n\r\n const inputGroupContainer = document.createElement('div')\r\n inputGroupContainer.classList.add('input-group')\r\n\r\n inputGroupContainer.appendChild(input)\r\n\r\n const inputGroup = document.createElement('div')\r\n inputGroup.classList.add('input-group-append')\r\n inputGroupContainer.appendChild(inputGroup)\r\n\r\n for (let i = 0; i < buttons.length; i++) {\r\n /* this uses the getButton() wrapper, so we have to remove the panel/ctrl spacing for this case */\r\n buttons[i].classList.remove('mr-2', 'btn-secondary')\r\n buttons[i].classList.add('btn-outline-secondary')\r\n\r\n inputGroup.appendChild(buttons[i])\r\n }\r\n\r\n return inputGroupContainer\r\n }\r\n}\r\n\r\n/* Custom stylesheet rules. format: \"selector\" : \"CSS rules\" */\r\nbootstrap4Theme.rules = rules\r\n","/* eslint-disable */\nexport default {\".je-form-input-label\":\"display:block;margin-bottom:3px;font-weight:bold\",\".je-form-input-description\":\"display:inline-block;margin:0;font-size:0.8em;font-style:italic\",\".je-indented-panel\":\"padding:5px;margin:10px;border-radius:3px;border:1px%20solid%20%23ddd\",\".je-child-editor-holder\":\"margin-bottom:8px\",\".je-header-button-holder\":\"display:inline-block;margin-left:10px;font-size:0.8em;vertical-align:middle\",\".je-table\":\"margin-bottom:5px;border-bottom:1px%20solid%20%23ccc\",\".je-upload-preview img\":\"float:left;margin:0%200.5rem%200.5rem%200;max-width:100%25;max-height:5rem\",\".je-dropzone\":\"position:relative;margin:0.5rem%200;border:2px%20dashed%20black;width:100%25;height:60px;background:teal;transition:all%200.5s\",\".je-dropzone:before\":\"position:absolute;content:attr(data-text);color:rgba(0%2C%200%2C%200%2C%200.6);left:50%25;top:50%25;transform:translate(-50%25%2C%20-50%25)\",\".je-dropzone.valid-dropzone\":\"background:green\",\".je-dropzone.invalid-dropzone\":\"background:red\"}\n/* eslint-enable */\n","import { AbstractTheme } from '../theme.js'\r\nimport rules from './html.css.js'\r\n\r\nexport class htmlTheme extends AbstractTheme {\r\n getFormInputLabel (text, req) {\r\n const el = super.getFormInputLabel(text, req)\r\n el.classList.add('je-form-input-label')\r\n return el\r\n }\r\n\r\n getFormInputDescription (text) {\r\n const el = super.getFormInputDescription(text)\r\n el.classList.add('je-form-input-label')\r\n return el\r\n }\r\n\r\n getIndentedPanel () {\r\n const el = super.getIndentedPanel()\r\n el.classList.add('je-indented-panel')\r\n return el\r\n }\r\n\r\n getTopIndentedPanel () {\r\n return this.getIndentedPanel()\r\n }\r\n\r\n getChildEditorHolder () {\r\n const el = super.getChildEditorHolder()\r\n el.classList.add('je-child-editor-holder')\r\n return el\r\n }\r\n\r\n getHeaderButtonHolder () {\r\n const el = this.getButtonHolder()\r\n el.classList.add('je-header-button-holder')\r\n return el\r\n }\r\n\r\n getTable () {\r\n const el = super.getTable()\r\n el.classList.add('je-table')\r\n return el\r\n }\r\n\r\n addInputError (input, text) {\r\n const group = this.closest(input, '.form-control') || input.controlgroup\r\n\r\n if (!input.errmsg) {\r\n input.errmsg = document.createElement('div')\r\n input.errmsg.setAttribute('class', 'errmsg')\r\n input.errmsg.style = input.errmsg.style || {}\r\n input.errmsg.style.color = 'red'\r\n group.appendChild(input.errmsg)\r\n } else {\r\n input.errmsg.style.display = 'block'\r\n }\r\n\r\n input.errmsg.innerHTML = ''\r\n input.errmsg.appendChild(document.createTextNode(text))\r\n }\r\n\r\n removeInputError (input) {\r\n if (input.style) {\r\n input.style.borderColor = ''\r\n }\r\n if (input.errmsg) input.errmsg.style.display = 'none'\r\n }\r\n}\r\n\r\n/* Custom stylesheet rules. format: \"selector\" : \"CSS rules\" */\r\nhtmlTheme.rules = rules\r\n","\r\nimport { htmlTheme } from './html.js'\r\n// import { bootstrap2Theme } from './bootstrap2'\r\nimport { bootstrap3Theme } from './bootstrap3.js'\r\nimport { bootstrap4Theme } from './bootstrap4.js'\r\n// import { foundationTheme, foundation3Theme, foundation4Theme, foundation5Theme, foundation6Theme } from './foundation.js'\r\nimport { jqueryuiTheme } from './jqueryui.js'\r\nimport { barebonesTheme } from './barebones.js'\r\n// import { materializeTheme } from './materialize'\r\nimport { spectreTheme } from './spectre.js'\r\nimport { tailwindTheme } from './tailwind.js'\r\n\r\nexport const themes = {\r\n html: htmlTheme,\r\n // bootstrap2: bootstrap2Theme,\r\n bootstrap3: bootstrap3Theme,\r\n bootstrap4: bootstrap4Theme,\r\n // foundation: foundationTheme,\r\n // foundation3: foundation3Theme,\r\n // foundation4: foundation4Theme,\r\n // foundation5: foundation5Theme,\r\n // foundation6: foundation6Theme,\r\n jqueryui: jqueryuiTheme,\r\n barebones: barebonesTheme,\r\n // materialize: materializeTheme,\r\n spectre: spectreTheme,\r\n tailwind: tailwindTheme\r\n}\r\n","import { AbstractTheme } from '../theme.js'\r\n\r\nexport class jqueryuiTheme extends AbstractTheme {\r\n getTable () {\r\n const el = super.getTable()\r\n el.setAttribute('cellpadding', 5)\r\n el.setAttribute('cellspacing', 0)\r\n return el\r\n }\r\n\r\n getTableHeaderCell (text) {\r\n const el = super.getTableHeaderCell(text)\r\n el.classList.add('ui-state-active')\r\n el.style.fontWeight = 'bold'\r\n return el\r\n }\r\n\r\n getTableCell () {\r\n const el = super.getTableCell()\r\n el.classList.add('ui-widget-content')\r\n return el\r\n }\r\n\r\n getHeaderButtonHolder () {\r\n const el = this.getButtonHolder()\r\n el.style.marginLeft = '10px'\r\n el.style.fontSize = '.6em'\r\n el.style.display = 'inline-block'\r\n return el\r\n }\r\n\r\n getFormInputDescription (text) {\r\n const el = this.getDescription(text)\r\n el.style.marginLeft = '10px'\r\n el.style.display = 'inline-block'\r\n return el\r\n }\r\n\r\n getFormControl (label, input, description, infoText) {\r\n const el = super.getFormControl(label, input, description, infoText)\r\n if (input.type === 'checkbox') {\r\n el.style.lineHeight = '25px'\r\n\r\n el.style.padding = '3px 0'\r\n } else {\r\n el.style.padding = '4px 0 8px 0'\r\n }\r\n return el\r\n }\r\n\r\n getDescription (text) {\r\n const el = document.createElement('span')\r\n el.style.fontSize = '.8em'\r\n el.style.fontStyle = 'italic'\r\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text)\r\n else el.textContent = this.cleanText(text)\r\n return el\r\n }\r\n\r\n getButtonHolder () {\r\n const el = document.createElement('div')\r\n el.classList.add('ui-buttonset')\r\n el.style.fontSize = '.7em'\r\n return el\r\n }\r\n\r\n getFormInputLabel (text, req) {\r\n const el = document.createElement('label')\r\n el.style.fontWeight = 'bold'\r\n el.style.display = 'block'\r\n el.textContent = text\r\n if (req) el.classList.add('required')\r\n return el\r\n }\r\n\r\n getButton (text, icon, title) {\r\n const button = document.createElement('button')\r\n button.classList.add('ui-button', 'ui-widget', 'ui-state-default', 'ui-corner-all')\r\n\r\n /* Icon only */\r\n if (icon && !text) {\r\n button.classList.add('ui-button-icon-only')\r\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary')\r\n button.appendChild(icon)\r\n /* Icon and Text */\r\n } else if (icon) {\r\n button.classList.add('ui-button-text-icon-primary')\r\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary')\r\n button.appendChild(icon)\r\n /* Text only */\r\n } else {\r\n button.classList.add('ui-button-text-only')\r\n }\r\n\r\n const el = document.createElement('span')\r\n el.classList.add('ui-button-text')\r\n el.textContent = text || title || '.'\r\n button.appendChild(el)\r\n\r\n button.setAttribute('title', title)\r\n\r\n return button\r\n }\r\n\r\n setButtonText (button, text, icon, title) {\r\n button.innerHTML = ''\r\n button.classList.add('ui-button', 'ui-widget', 'ui-state-default', 'ui-corner-all')\r\n\r\n /* Icon only */\r\n if (icon && !text) {\r\n button.classList.add('ui-button-icon-only')\r\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary')\r\n button.appendChild(icon)\r\n /* Icon and Text */\r\n } else if (icon) {\r\n button.classList.add('ui-button-text-icon-primary')\r\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary')\r\n button.appendChild(icon)\r\n /* Text only */\r\n } else {\r\n button.classList.add('ui-button-text-only')\r\n }\r\n\r\n const el = document.createElement('span')\r\n el.classList.add('ui-button-text')\r\n el.textContent = text || title || '.'\r\n button.appendChild(el)\r\n\r\n button.setAttribute('title', title)\r\n }\r\n\r\n getIndentedPanel () {\r\n const el = document.createElement('div')\r\n el.classList.add('ui-widget-content', 'ui-corner-all')\r\n el.style.padding = '1em 1.4em'\r\n el.style.marginBottom = '20px'\r\n return el\r\n }\r\n\r\n afterInputReady (input) {\r\n if (input.controls) return\r\n input.controls = this.closest(input, '.form-control')\r\n if (this.queuedInputErrorText) {\r\n const text = this.queuedInputErrorText\r\n delete this.queuedInputErrorText\r\n this.addInputError(input, text)\r\n }\r\n }\r\n\r\n addInputError (input, text) {\r\n if (!input.controls) {\r\n this.queuedInputErrorText = text\r\n return\r\n }\r\n if (!input.errmsg) {\r\n input.errmsg = document.createElement('div')\r\n input.errmsg.classList.add('ui-state-error')\r\n input.controls.appendChild(input.errmsg)\r\n } else {\r\n input.errmsg.style.display = ''\r\n }\r\n\r\n input.errmsg.textContent = text\r\n }\r\n\r\n removeInputError (input) {\r\n if (!input.controls) {\r\n delete this.queuedInputErrorText\r\n }\r\n if (!input.errmsg) return\r\n input.errmsg.style.display = 'none'\r\n }\r\n\r\n markTabActive (row) {\r\n row.tab.classList.remove('ui-widget-header')\r\n row.tab.classList.add('ui-state-active')\r\n\r\n if (typeof row.rowPane !== 'undefined') {\r\n row.rowPane.style.display = ''\r\n } else {\r\n row.container.style.display = ''\r\n }\r\n }\r\n\r\n markTabInactive (row) {\r\n row.tab.classList.add('ui-widget-header')\r\n row.tab.classList.remove('ui-state-active')\r\n\r\n if (typeof row.rowPane !== 'undefined') {\r\n row.rowPane.style.display = 'none'\r\n } else {\r\n row.container.style.display = 'none'\r\n }\r\n }\r\n}\r\n\r\n/* Custom stylesheet rules. format: \"selector\" : \"CSS rules\" */\r\njqueryuiTheme.rules = { 'div[data-schemaid=\"root\"]:after': 'position:relative;color:red;margin:10px 0;font-weight:600;display:block;width:100%;text-align:center;content:\"This is an old JSON-Editor 1.x Theme and might not display elements correctly when used with the 2.x version\"' }\r\n","/* eslint-disable */\nexport default {\"*\":\"--primary-color:%235755d9;--gray-color:%23bcc3ce;--light-color:%23fff\",\".slider:focus\":\"box-shadow:none\",\"h4 > label + .btn-group\":\"margin-left:1rem\",\".text-right > button\":\"margin-right:0%20!important\",\".text-left > button\":\"margin-left:0%20!important\",\".property-selector\":\"font-size:0.7rem;font-weight:normal;max-height:260px%20!important;width:395px%20!important\",\".property-selector .form-checkbox\":\"margin:0\",\"textarea\":\"width:100%25;min-height:2rem;resize:vertical\",\"table\":\"border-collapse:collapse\",\".table td\":\"padding:0.4rem%200.4rem\",\".mr-5\":\"margin-right:1rem%20!important\",\"div[data-schematype]:not([data-schematype='object'])\":\"transition:0.5s\",\"div[data-schematype]:not([data-schematype='object']):hover\":\"background-color:%23eee\",\".je-table-border td\":\"border:0.05rem%20solid%20%23dadee4%20!important\",\".btn-info\":\"font-size:0.5rem;font-weight:bold;height:0.8rem;padding:0.15rem%200;line-height:0.8;margin:0.3rem%200%200.3rem%200.1rem\",\".je-label + select\":\"min-width:5rem\",\".je-label\":\"font-weight:600\",\".btn-action.btn-info\":\"width:0.8rem\",\".je-border\":\"border:0.05rem%20solid%20%23dadee4\",\".je-panel\":\"padding:0.2rem;margin:0.2rem;background-color:rgba(218%2C%20222%2C%20228%2C%200.1)\",\".je-panel-top\":\"padding:0.2rem;margin:0.2rem;background-color:rgba(218%2C%20222%2C%20228%2C%200.1)\",\".required:after\":\"content:%22%20*%22;color:red;font:inherit\",\".je-align-bottom\":\"margin-top:auto\",\".je-desc\":\"font-size:smaller;margin:0.2rem%200\",\".je-upload-preview img\":\"float:left;margin:0%200.5rem%200.5rem%200;max-width:100%25;max-height:5rem;border:3px%20solid%20white;box-shadow:0px%200px%208px%20rgba(0%2C%200%2C%200%2C%200.3);box-sizing:border-box\",\".je-dropzone\":\"position:relative;margin:0.5rem%200;border:2px%20dashed%20black;width:100%25;height:60px;background:teal;transition:all%200.5s\",\".je-dropzone:before\":\"position:absolute;content:attr(data-text);color:rgba(0%2C%200%2C%200%2C%200.6);left:50%25;top:50%25;transform:translate(-50%25%2C%20-50%25)\",\".je-dropzone.valid-dropzone\":\"background:green\",\".je-dropzone.invalid-dropzone\":\"background:red\",\".columns .container.je-noindent\":\"padding-left:0;padding-right:0\",\".selectize-control.multi .item\":\"background:var(--primary-color)%20!important\",\".select2-container--default .select2-selection--single .select2-selection__arrow\":\"display:none\",\".select2-container--default .select2-selection--single\":\"border:none\",\".select2-container .select2-selection--single .select2-selection__rendered\":\"padding:0\",\".select2-container .select2-search--inline .select2-search__field\":\"margin-top:0\",\".select2-container--default.select2-container--focus .select2-selection--multiple\":\"border:0.05rem%20solid%20var(--gray-color)\",\".select2-container--default .select2-selection--multiple .select2-selection__choice\":\"margin:0.4rem%200.2rem%200.2rem%200;padding:2px%205px;background-color:var(--primary-color);color:var(--light-color)\",\".select2-container--default .select2-search--inline .select2-search__field\":\"line-height:normal\",\".choices\":\"margin-bottom:auto\",\".choices__list--multiple .choices__item\":\"border:none;background-color:var(--primary-color);color:var(--light-color)\",\".choices[data-type*='select-multiple'] .choices__button\":\"border-left:0.05rem%20solid%20%232826a6\",\".choices__inner\":\"font-size:inherit;min-height:20px;padding:4px%207.5px%204px%203.75px\",\".choices[data-type*='select-one'] .choices__inner\":\"padding-bottom:4px\",\".choices__list--dropdown .choices__item\":\"font-size:inherit\"}\n/* eslint-enable */\n","/* Spectre Theme using Spectre CSS framework. <https://picturepan2.github.io/spectre/index.html> */\r\nimport { AbstractTheme } from '../theme.js'\r\nimport rules from './spectre.css.js'\r\n\r\n/* Config options that allows changing various aspects of the output */\r\nconst options = {\r\n disable_theme_rules: false, /* Disable creation of Inline Style Rules */\r\n label_bold: true, /* Element labels bold */\r\n align_bottom: false, /* Align elements to bottom of flex container */\r\n object_indent: false, /* Indent nested object elements */\r\n object_border: false, /* Add border around object elements */\r\n table_border: false, /* Add border to array \"table\" row and cells */\r\n table_zebrastyle: false, /* Add \"zebra style\" to array \"table\" rows */\r\n input_size: 'normal' /* Size of input and select elements. \"small\", \"normal\", \"large\" */\r\n}\r\n\r\nexport class spectreTheme extends AbstractTheme {\r\n constructor (jsoneditor) {\r\n super(jsoneditor, options)\r\n }\r\n\r\n /* Functions for setting up the grid container, row and columns */\r\n setGridColumnSize (el, size, offset) {\r\n el.classList.add(`col-${size}`)\r\n if (offset) el.classList.add('col-mx-auto')\r\n }\r\n\r\n getGridContainer () {\r\n const el = document.createElement('div')\r\n el.classList.add('container')\r\n if (!this.options.object_indent) el.classList.add('je-noindent')\r\n return el\r\n }\r\n\r\n getGridRow () {\r\n const el = document.createElement('div')\r\n el.classList.add('columns')\r\n return el\r\n }\r\n\r\n getGridColumn () {\r\n const el = document.createElement('div')\r\n el.classList.add('column')\r\n if (this.options.align_bottom) el.classList.add('je-align-bottom')\r\n return el\r\n }\r\n\r\n /* Used for \"type: object\" or \"type: array\" (except if \"format: tabs-top\") */\r\n getIndentedPanel () {\r\n const el = document.createElement('div')\r\n el.classList.add('je-panel')\r\n if (this.options.object_border) el.classList.add('je-border')\r\n return el\r\n }\r\n\r\n /* Used for \"type: array\" with \"format: tabs-top\" */\r\n getTopIndentedPanel () {\r\n const el = document.createElement('div')\r\n el.classList.add('je-panel-top')\r\n if (this.options.object_border) el.classList.add('je-border')\r\n return el\r\n }\r\n\r\n /* Button functions */\r\n getHeaderButtonHolder () {\r\n const el = this.getButtonHolder()\r\n return el\r\n }\r\n\r\n /* Button holder for the buttons */\r\n getButtonHolder () {\r\n const el = super.getButtonHolder()\r\n el.classList.add('btn-group')\r\n return el\r\n }\r\n\r\n getFormButtonHolder (buttonAlign) {\r\n const el = super.getFormButtonHolder()\r\n el.classList.remove('btn-group')\r\n el.classList.add('d-block')\r\n if (buttonAlign === 'center') el.classList.add('text-center')\r\n else if (buttonAlign === 'right') el.classList.add('text-right')\r\n else el.classList.add('text-left')\r\n return el\r\n }\r\n\r\n getFormButton (text, icon, title) {\r\n const el = super.getFormButton(text, icon, title)\r\n el.classList.add('btn', 'btn-primary', 'mx-2', 'my-1')\r\n if (this.options.input_size !== 'small') el.classList.remove('btn-sm')\r\n if (this.options.input_size === 'large') el.classList.add('btn-lg')\r\n return el\r\n }\r\n\r\n getButton (text, icon, title) {\r\n const el = super.getButton(text, icon, title)\r\n el.classList.add('btn', 'btn-sm', 'btn-primary', 'mr-2', 'my-1')\r\n return el\r\n }\r\n\r\n getHeader (text, pathDepth) {\r\n const el = document.createElement('h4')\r\n if (typeof text === 'string') {\r\n el.textContent = text\r\n } else {\r\n el.appendChild(text)\r\n }\r\n\r\n el.style.display = 'inline-block'\r\n\r\n return el\r\n }\r\n\r\n getFormInputDescription (text) {\r\n const el = super.getFormInputDescription(text)\r\n el.classList.add('je-desc', 'hide-sm')\r\n return el\r\n }\r\n\r\n /* Label for all elements except checkbox and radio */\r\n getFormInputLabel (text, req) {\r\n const el = super.getFormInputLabel(text, req)\r\n if (this.options.label_bold) el.classList.add('je-label')\r\n return el\r\n }\r\n\r\n /* Checkbox elements */\r\n /* ToDo: Rename function names for consistency */\r\n getCheckbox () {\r\n const el = this.getFormInputField('checkbox')\r\n return el\r\n }\r\n\r\n getCheckboxLabel (text, req) {\r\n const el = super.getCheckboxLabel(text, req); const icon = document.createElement('i')\r\n icon.classList.add('form-icon')\r\n el.classList.add('form-checkbox', 'mr-5')\r\n el.insertBefore(icon, el.firstChild)\r\n return el\r\n }\r\n\r\n getFormCheckboxControl (label, input, compact) {\r\n label.insertBefore(input, label.firstChild) /* Move input into label element */\r\n if (compact) label.classList.add('form-inline')\r\n return label\r\n }\r\n\r\n getMultiCheckboxHolder (controls, label, description, infoText) {\r\n return super.getMultiCheckboxHolder(controls, label, description, infoText)\r\n }\r\n\r\n /* Radio elements */\r\n getFormRadio (attributes) {\r\n const el = this.getFormInputField('radio')\r\n for (const key in attributes) {\r\n el.setAttribute(key, attributes[key])\r\n }\r\n return el\r\n }\r\n\r\n getFormRadioLabel (text, req) {\r\n const el = super.getFormRadioLabel(text, req); const icon = document.createElement('i')\r\n icon.classList.add('form-icon')\r\n el.classList.add('form-radio')\r\n el.insertBefore(icon, el.firstChild)\r\n return el\r\n }\r\n\r\n getFormRadioControl (label, input, compact) {\r\n label.insertBefore(input, label.firstChild) /* Move input into label element */\r\n if (compact) label.classList.add('form-inline')\r\n return label\r\n }\r\n\r\n /* Create input field */\r\n getFormInputField (type) {\r\n const el = super.getFormInputField(type)\r\n if (!['checkbox', 'radio'].includes(type)) {\r\n el.classList.add('form-input')\r\n }\r\n return el\r\n }\r\n\r\n /* Create input field for type=\"range\" */\r\n getRangeInput (min, max, step) {\r\n const el = this.getFormInputField('range')\r\n el.classList.add('slider')\r\n el.classList.remove('form-input')\r\n el.setAttribute('oninput', 'this.setAttribute(\"value\", this.value)')\r\n el.setAttribute('min', min)\r\n el.setAttribute('max', max)\r\n el.setAttribute('step', step)\r\n return el\r\n }\r\n\r\n getRangeControl (input, output) {\r\n const el = super.getRangeControl(input, output)\r\n el.classList.add('text-center')\r\n return el\r\n }\r\n\r\n /* Create select box field */\r\n getSelectInput (options, multiple) {\r\n const el = super.getSelectInput(options)\r\n el.classList.add('form-select')\r\n return el\r\n }\r\n\r\n /* Create textarea field */\r\n getTextareaInput () {\r\n const el = document.createElement('textarea')\r\n el.classList.add('form-input')\r\n return el\r\n }\r\n\r\n getFormControl (label, input, description, infoText) {\r\n const group = document.createElement('div')\r\n group.classList.add('form-group')\r\n\r\n if (label && (input.type === 'checkbox' || input.type === 'radio')) {\r\n group.classList.add(input.type)\r\n label.insertBefore(input, label.firstChild)\r\n group.appendChild(label)\r\n } else {\r\n if (label) {\r\n label.classList.add('form-label')\r\n group.appendChild(label)\r\n if (infoText) label.appendChild(infoText)\r\n }\r\n group.appendChild(input)\r\n }\r\n\r\n if (this.options.input_size === 'small') input.classList.add('input-sm', 'select-sm')\r\n else if (this.options.input_size === 'large') input.classList.add('input-lg', 'select-lg')\r\n if (input.type !== 'checkbox') group.appendChild(input)\r\n\r\n if (description) group.appendChild(description)\r\n\r\n return group\r\n }\r\n\r\n /* Create input group (input field with buttons) */\r\n getInputGroup (input, buttons) {\r\n if (!input) return\r\n\r\n const inputGroup = document.createElement('div')\r\n inputGroup.classList.add('input-group')\r\n inputGroup.appendChild(input)\r\n for (let i = 0; i < buttons.length; i++) {\r\n buttons[i].classList.add('input-group-btn')\r\n buttons[i].classList.remove('btn-sm', 'mr-2', 'my-1')\r\n inputGroup.appendChild(buttons[i])\r\n }\r\n\r\n return inputGroup\r\n }\r\n\r\n /* Create button for displaying infotext tooltip */\r\n getInfoButton (text) {\r\n const popover = document.createElement('div')\r\n popover.classList.add('popover', 'popover-left', 'float-right')\r\n\r\n const button = document.createElement('button')\r\n button.classList.add('btn', 'btn-secondary', 'btn-info', 'btn-action', 's-circle')\r\n button.setAttribute('tabindex', '-1') /* exclude element from tab order */\r\n popover.appendChild(button)\r\n\r\n const icon = document.createTextNode('I')\r\n button.appendChild(icon)\r\n\r\n const container = document.createElement('div')\r\n container.classList.add('popover-container')\r\n popover.appendChild(container)\r\n\r\n const card = document.createElement('div')\r\n card.classList.add('card')\r\n container.appendChild(card)\r\n\r\n const cardbody = document.createElement('div')\r\n cardbody.classList.add('card-body')\r\n cardbody.innerHTML = text\r\n card.appendChild(cardbody)\r\n\r\n return popover\r\n }\r\n\r\n /* Functions for rendering array with format: \"table\" */\r\n getTable () {\r\n const el = super.getTable()\r\n el.classList.add('table', 'table-scroll')\r\n if (this.options.table_border) el.classList.add('je-table-border')\r\n if (this.options.table_zebrastyle) el.classList.add('table-striped')\r\n return el\r\n }\r\n\r\n /* Function for rendering progressbar */\r\n getProgressBar () {\r\n const progressBar = super.getProgressBar()\r\n progressBar.classList.add('progress')\r\n return progressBar\r\n }\r\n\r\n /* Containers for array with format: \"tab\" */\r\n getTabHolder (propertyName) {\r\n const pName = typeof propertyName === 'undefined' ? '' : propertyName\r\n const el = document.createElement('div')\r\n el.classList.add('columns')\r\n el.innerHTML = `<div class=\"column col-2\"></div><div class=\"column col-10 content\" id=\"${pName}\"></div>`\r\n return el\r\n }\r\n\r\n /* Containers for array with format: \"tab-top\" */\r\n getTopTabHolder (propertyName) {\r\n const pName = typeof propertyName === 'undefined' ? '' : propertyName\r\n const el = document.createElement('div')\r\n el.innerHTML = `<ul class=\"tab\"></ul><div class=\"content\" id=\"${pName}\"></div>`\r\n return el\r\n }\r\n\r\n /* Tab button for array with format: \"tab\" */\r\n getTab (span, tabId) {\r\n const el = document.createElement('a')\r\n el.classList.add('btn', 'btn-secondary', 'btn-block')\r\n el.setAttribute('href', `#${tabId}`)\r\n el.appendChild(span)\r\n return el\r\n }\r\n\r\n /* Tab button for array with format: \"tab-top\" */\r\n getTopTab (span, tabId) {\r\n const el = document.createElement('li')\r\n el.id = tabId\r\n el.classList.add('tab-item')\r\n\r\n /* Spectre needs an a tag inside the tab item, not a span */\r\n const a = document.createElement('a')\r\n a.setAttribute('href', `#${tabId}`)\r\n a.appendChild(span)\r\n\r\n el.appendChild(a)\r\n return el\r\n }\r\n\r\n markTabActive (row) {\r\n row.tab.classList.add('active')\r\n if (typeof row.rowPane !== 'undefined') row.rowPane.style.display = ''\r\n else row.container.style.display = ''\r\n }\r\n\r\n markTabInactive (row) {\r\n row.tab.classList.remove('active')\r\n if (typeof row.rowPane !== 'undefined') row.rowPane.style.display = 'none'\r\n else row.container.style.display = 'none'\r\n }\r\n\r\n afterInputReady (input) {\r\n if (input.localName === 'select') {\r\n /* Selectize adjustments */\r\n if (input.classList.contains('selectized')) {\r\n const selectized = input.nextSibling\r\n if (selectized) {\r\n /* Remove Spectre class 'form-select' as this conflicts with Selectize styling */\r\n selectized.classList.remove('form-select')\r\n Array.from(selectized.querySelectorAll('.form-select')).forEach(el => {\r\n el.classList.remove('form-select')\r\n })\r\n }\r\n /* Select2 ajustments */\r\n } else if (input.classList.contains('select2-hidden-accessible')) {\r\n const select2 = input.nextSibling\r\n const single = select2 && select2.querySelector('.select2-selection--single')\r\n /* Add Spectre 'form-select' to single-select2 elements */\r\n if (single) select2.classList.add('form-select')\r\n }\r\n }\r\n\r\n if (input.controlgroup) return\r\n input.controlgroup = this.closest(input, '.form-group')\r\n if (this.closest(input, '.compact')) {\r\n input.controlgroup.style.marginBottom = 0\r\n }\r\n }\r\n\r\n /* Controls output of errormessages displayed in form */\r\n addInputError (input, text) {\r\n if (!input.controlgroup) return\r\n input.controlgroup.classList.add('has-error')\r\n if (!input.errmsg) {\r\n input.errmsg = document.createElement('p')\r\n input.errmsg.classList.add('form-input-hint')\r\n input.controlgroup.appendChild(input.errmsg)\r\n }\r\n input.errmsg.classList.remove('d-hide')\r\n input.errmsg.textContent = text\r\n }\r\n\r\n removeInputError (input) {\r\n if (!input.errmsg) return\r\n input.errmsg.classList.add('d-hide')\r\n input.controlgroup.classList.remove('has-error')\r\n }\r\n}\r\n\r\n/* Custom stylesheet rules. (Does not support comma separated selectors) */\r\n/* Will create a stylesheet in document head with the id \"theme-spectre\" if not exists. */\r\nspectreTheme.rules = rules\r\n","/* eslint-disable */\nexport default {\".slider\":\"-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;display:block;border:none;height:1.2rem;width:100%25\",\".slider:focus\":\"box-shadow:0%200%200%200%20rgba(87%2C%2085%2C%20217%2C%200.2);outline:none\",\".slider.tooltip:not([data-tooltip])::after\":\"content:attr(value)\",\".slider::-webkit-slider-thumb\":\"-webkit-appearance:none;background:%23f17405;border-radius:100%25;height:0.6rem;margin-top:-0.25rem;transition:transform%200.2s;width:0.6rem\",\".slider:active::-webkit-slider-thumb\":\"transform:scale(1.25);outline:none\",\".slider::-webkit-slider-runnable-track\":\"background:%23b2b4b6;border-radius:0.1rem;height:0.1rem;width:100%25\",\"a.tooltips\":\"position:relative;display:inline\",\"a.tooltips span\":\"position:absolute;white-space:nowrap;width:auto;padding-left:1rem;padding-right:1rem;color:%23ffffff;background:rgba(56%2C%2056%2C%2056%2C%200.85);height:1.5rem;line-height:1.5rem;text-align:center;visibility:hidden;border-radius:3px\",\"a.tooltips span:after\":\"content:%22%22;position:absolute;top:50%25;left:100%25;margin-top:-5px;width:0;height:0;border-left:5px%20solid%20rgba(56%2C%2056%2C%2056%2C%200.85);border-top:5px%20solid%20transparent;border-bottom:5px%20solid%20transparent\",\"a:hover.tooltips span\":\"visibility:visible;opacity:0.9;font-size:0.8rem;right:100%25;top:50%25;margin-top:-12px;margin-right:10px;z-index:999\",\".json-editor-btntype-properties + div\":\"font-size:0.8rem;font-weight:normal\",\"textarea\":\"width:100%25;min-height:2rem;resize:vertical\",\"table\":\"width:100%25;border-collapse:collapse\",\".table td\":\"padding:0rem%200rem\",\"div[data-schematype]:not([data-schematype='object'])\":\"transition:0.5s\",\"div[data-schematype]:not([data-schematype='object']):hover\":\"background-color:%23e6f4fe\",\"div[data-schemaid='root']\":\"position:relative;width:inherit;display:inherit;overflow-x:hidden;z-index:10\",\"select[multiple]\":\"height:auto\",\"select[multiple].from-select\":\"height:auto\",\".je-table-zebra:nth-child(even)\":\"background-color:%23f2f2f2\",\".je-table-border\":\"border:0.5px%20solid%20black\",\".je-table-hdiv\":\"border-bottom:1px%20solid%20black\",\".je-border\":\"border:0.05rem%20solid%20%233182ce\",\".je-panel\":\"width:inherit;padding:0.2rem;margin:0.2rem;background-color:rgba(218%2C%20222%2C%20228%2C%200.1)\",\".je-panel-top\":\"width:100%25;padding:0.2rem;margin:0.2rem;background-color:rgba(218%2C%20222%2C%20228%2C%200.1)\",\".required:after\":\"content:%22%20*%22;color:red;font:inherit;font-weight:bold\",\".je-desc\":\"font-size:smaller;margin:0.2rem%200\",\".container-xl.je-noindent\":\"padding-left:0;padding-right:0\",\".json-editor-btntype-add\":\"color:white;margin:0.3rem;padding:0.3rem%200.8rem;background-color:%234299e1;box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2);-webkit-box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2);-moz-box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2)\",\".json-editor-btntype-deletelast\":\"color:white;margin:0.3rem;padding:0.3rem%200.8rem;background-color:%23e53e3e;box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2);-webkit-box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2);-moz-box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2)\",\".json-editor-btntype-deleteall\":\"color:white;margin:0.3rem;padding:0.3rem%200.8rem;background-color:%23000000;box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2);-webkit-box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2);-moz-box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2)\",\".json-editor-btn-save\":\"float:right;color:white;margin:0.3rem;padding:0.3rem%200.8rem;background-color:%232b6cb0;box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2);-webkit-box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2);-moz-box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2)\",\".json-editor-btn-back\":\"color:white;margin:0.3rem;padding:0.3rem%200.8rem;background-color:%232b6cb0;box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2);-webkit-box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2);-moz-box-shadow:3px%203px%205px%201px%20rgba(4%2C%204%2C%204%2C%200.2)\",\".json-editor-btntype-delete\":\"color:%23e53e3e;background-color:rgba(218%2C%20222%2C%20228%2C%200.1);margin:0.03rem;padding:0.1rem\",\".json-editor-btntype-move\":\"color:%23000000;background-color:rgba(218%2C%20222%2C%20228%2C%200.1);margin:0.03rem;padding:0.1rem\",\".json-editor-btn-collapse\":\"padding:0em%200.8rem;font-size:1.3rem;color:%23e53e3e;background-color:rgba(218%2C%20222%2C%20228%2C%200.1)\",\".je-upload-preview img\":\"float:left;margin:0%200.5rem%200.5rem%200;max-width:100%25;max-height:5rem\",\".je-dropzone\":\"position:relative;margin:0.5rem%200;border:2px%20dashed%20black;width:100%25;height:60px;background:teal;transition:all%200.5s\",\".je-dropzone:before\":\"position:absolute;content:attr(data-text);color:rgba(0%2C%200%2C%200%2C%200.6);left:50%25;top:50%25;transform:translate(-50%25%2C%20-50%25)\",\".je-dropzone.valid-dropzone\":\"background:green\",\".je-dropzone.invalid-dropzone\":\"background:red\"}\n/* eslint-enable */\n","import { AbstractTheme } from '../theme.js'\r\nimport rules from './tailwind.css.js'\r\n\r\nconst options = {\r\n disable_theme_rules: false, /* Disable creation of Inline Style Rules */\r\n label_bold: false, /* Element labels bold */\r\n object_panel_default: true, /* Indicates whether to use rules as default or alternate style */\r\n object_indent: true, /* Indent nested object elements */\r\n object_border: false, /* Add border around object elements */\r\n table_border: false, /* Add border to array \"table\" row and cells */\r\n table_hdiv: false, /* Add bottom-border to array \"table\" cells */\r\n table_zebrastyle: false, /* Add \"zebra style\" to array \"table\" rows */\r\n input_size: 'small', /* Size of input and select elements. \"small\", \"normal\", \"large\" */\r\n enable_compact: false\r\n}\r\n\r\nexport class tailwindTheme extends AbstractTheme {\r\n constructor (jsoneditor) {\r\n super(jsoneditor, options)\r\n }\r\n\r\n getGridContainer () {\r\n const el = document.createElement('div')\r\n el.classList.add('flex', 'flex-col', 'w-full')\r\n if (!this.options.object_indent) el.classList.add('je-noindent')\r\n return el\r\n }\r\n\r\n getGridRow () {\r\n const el = document.createElement('div')\r\n el.classList.add('flex', 'flex-wrap', 'w-full')\r\n return el\r\n }\r\n\r\n getGridColumn () {\r\n const el = document.createElement('div')\r\n el.classList.add('flex', 'flex-col')\r\n return el\r\n }\r\n\r\n setGridColumnSize (el, size, offset) {\r\n if (size > 0 && size < 12) { el.classList.add(`w-${size}/12`, 'px-1') } else el.classList.add('w-full', 'px-1')\r\n\r\n if (offset) el.style.marginLeft = `${(100 / 12) * offset}%`\r\n }\r\n\r\n getIndentedPanel () {\r\n const el = document.createElement('div')\r\n if (this.options.object_panel_default) { el.classList.add('w-full', 'p-1') } else { el.classList.add('relative', 'flex', 'flex-col', 'rounded', 'break-words', 'border', 'bg-white', 'border-0', 'border-blue-400', 'p-1', 'shadow-md') }\r\n if (this.options.object_border) el.classList.add('je-border')\r\n return el\r\n }\r\n\r\n /* Used for \"type: array\" with \"format: tabs-top\" */\r\n getTopIndentedPanel () {\r\n const el = document.createElement('div')\r\n if (this.options.object_panel_default) { el.classList.add('w-full', 'm-2') } else { el.classList.add('relative', 'flex', 'flex-col', 'rounded', 'break-words', 'border', 'bg-white', 'border-0', 'border-blue-400', 'p-1', 'shadow-md') }\r\n if (this.options.object_border) el.classList.add('je-border')\r\n return el\r\n }\r\n\r\n getTitle () {\r\n return this.translateProperty(this.schema.title)\r\n }\r\n\r\n getSelectInput (options, multiple) {\r\n const el = super.getSelectInput(options)\r\n if (multiple) el.classList.add('form-multiselect', 'block', 'py-0', 'h-auto', 'w-full', 'px-1', 'text-sm', 'text-black', 'leading-normal', 'bg-white', 'border', 'border-grey', 'rounded')\r\n else el.classList.add('form-select', 'block', 'py-0', 'h-6', 'w-full', 'px-1', 'text-sm', 'text-black', 'leading-normal', 'bg-white', 'border', 'border-grey', 'rounded')\r\n if (this.options.enable_compact) el.classList.add('compact')\r\n return el\r\n }\r\n\r\n afterInputReady (input) {\r\n if (input.controlgroup) return\r\n input.controlgroup = this.closest(input, '.form-group')\r\n if (this.closest(input, '.compact')) {\r\n input.controlgroup.style.marginBottom = 0\r\n }\r\n }\r\n\r\n getTextareaInput () {\r\n const el = super.getTextareaInput()\r\n el.classList.add('block', 'w-full', 'px-1', 'text-sm', 'leading-normal', 'bg-white', 'text-black', 'border', 'border-grey', 'rounded')\r\n if (this.options.enable_compact) el.classList.add('compact')\r\n el.style.height = 0\r\n return el\r\n }\r\n\r\n /* Create input field for type=\"range\" */\r\n getRangeInput (min, max, step) {\r\n const el = this.getFormInputField('range')\r\n el.classList.add('slider')\r\n if (this.options.enable_compact) el.classList.add('compact')\r\n el.setAttribute('oninput', 'this.setAttribute(\"value\", this.value)')\r\n el.setAttribute('min', min)\r\n el.setAttribute('max', max)\r\n el.setAttribute('step', step)\r\n return el\r\n }\r\n\r\n getRangeControl (input, output) {\r\n const el = super.getRangeControl(input, output)\r\n el.classList.add('text-center', 'text-black')\r\n return el\r\n }\r\n\r\n /* Checkbox elements */\r\n getCheckbox () {\r\n const el = this.getFormInputField('checkbox')\r\n el.classList.add('form-checkbox', 'text-red-600')\r\n return el\r\n }\r\n\r\n getCheckboxLabel (text, req) {\r\n const el = super.getCheckboxLabel(text, req)\r\n el.classList.add('inline-flex', 'items-center')\r\n return el\r\n }\r\n\r\n getFormCheckboxControl (label, input, compact) {\r\n label.insertBefore(input, label.firstChild) /* Move input into label element */\r\n if (compact) label.classList.add('inline-flex flex-row')\r\n return label\r\n }\r\n\r\n getMultiCheckboxHolder (controls, label, description, infoText) {\r\n const el = super.getMultiCheckboxHolder(controls, label, description, infoText)\r\n el.classList.add('inline-flex', 'flex-col')\r\n return el\r\n }\r\n\r\n /* Radio elements */\r\n getFormRadio (attributes) {\r\n const el = this.getFormInputField('radio')\r\n el.classList.add('form-radio', 'text-red-600')\r\n for (const key in attributes) {\r\n el.setAttribute(key, attributes[key])\r\n }\r\n return el\r\n }\r\n\r\n getFormRadioLabel (text, req) {\r\n const el = super.getFormRadioLabel(text, req)\r\n el.classList.add('inline-flex', 'items-center', 'mr-2')\r\n return el\r\n }\r\n\r\n getFormRadioControl (label, input, compact) {\r\n label.insertBefore(input, label.firstChild) /* Move input into label element */\r\n if (compact) label.classList.add('form-radio')\r\n return label\r\n }\r\n\r\n getRadioHolder (schema, controls, label, description, infoText) {\r\n const el = super.getRadioHolder(controls, label, description, infoText)\r\n if (schema.options.layout === 'h') el.classList.add('inline-flex', 'flex-row')\r\n else el.classList.add('inline-flex', 'flex-col')\r\n return el\r\n }\r\n\r\n getFormInputLabel (text, req) {\r\n const el = super.getFormInputLabel(text, req)\r\n if (this.options.label_bold) el.classList.add('font-bold')\r\n else el.classList.add('required')\r\n return el\r\n }\r\n\r\n getFormInputField (type) {\r\n const el = super.getFormInputField(type)\r\n if (!['checkbox', 'radio'].includes(type)) el.classList.add('block', 'w-full', 'px-1', 'text-black', 'text-sm', 'leading-normal', 'bg-white', 'border', 'border-grey', 'rounded')\r\n if (this.options.enable_compact) el.classList.add('compact')\r\n return el\r\n }\r\n\r\n getFormInputDescription (text) {\r\n const el = document.createElement('p')\r\n el.classList.add('block', 'mt-1', 'text-xs')\r\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text)\r\n else el.textContent = this.cleanText(text)\r\n return el\r\n }\r\n\r\n getFormControl (label, input, description, infoText) {\r\n const group = document.createElement('div')\r\n group.classList.add('form-group', 'mb-1', 'w-full')\r\n if (label) {\r\n label.classList.add('text-xs')\r\n\r\n if (input.type === 'checkbox') {\r\n input.classList.add('form-checkbox', 'text-xs', 'text-red-600', 'mr-1')\r\n label.classList.add('items-center', 'flex')\r\n label = this.getFormCheckboxControl(label, input, false, infoText)\r\n }\r\n\r\n if (input.type === 'radio') {\r\n input.classList.add('form-radio', 'text-red-600', 'mr-1')\r\n label.classList.add('items-center', 'flex')\r\n label = this.getFormRadioControl(label, input, false, infoText)\r\n }\r\n group.appendChild(label)\r\n\r\n if (!['checkbox', 'radio'].includes(input.type) && infoText) group.appendChild(infoText)\r\n }\r\n if (!['checkbox', 'radio'].includes(input.type)) {\r\n if (this.options.input_size === 'small') input.classList.add('text-xs')\r\n else if (this.options.input_size === 'normal') input.classList.add('text-base')\r\n else if (this.options.input_size === 'large') input.classList.add('text-xl')\r\n group.appendChild(input)\r\n }\r\n\r\n if (description) group.appendChild(description)\r\n\r\n return group\r\n }\r\n\r\n getHeaderButtonHolder () {\r\n const el = this.getButtonHolder()\r\n el.classList.add('text-sm')\r\n return el\r\n }\r\n\r\n getButtonHolder () {\r\n const el = document.createElement('div')\r\n el.classList.add('flex', 'relative', 'inline-flex', 'align-middle')\r\n return el\r\n }\r\n\r\n getButton (text, icon, title) {\r\n const el = super.getButton(text, icon, title)\r\n el.classList.add('inline-block', 'align-middle', 'text-center', 'text-sm', 'bg-blue-700', 'text-white', 'py-1', 'pr-1', 'm-2', 'shadow', 'select-none', 'whitespace-no-wrap', 'rounded')\r\n return el\r\n }\r\n\r\n /* Button for displaying infotext tooltip */\r\n getInfoButton (text) {\r\n const tooltip = document.createElement('a')\r\n tooltip.classList.add('tooltips', 'float-right')\r\n tooltip.innerHTML = 'ⓘ'\r\n const span = document.createElement('span')\r\n span.innerHTML = text\r\n tooltip.appendChild(span)\r\n\r\n return tooltip\r\n }\r\n\r\n getTable () {\r\n const el = super.getTable()\r\n if (this.options.table_border) el.classList.add('je-table-border')\r\n else el.classList.add('table', 'border', 'p-0')\r\n return el\r\n }\r\n\r\n getTableRow () {\r\n const el = super.getTableRow()\r\n if (this.options.table_border) el.classList.add('je-table-border')\r\n if (this.options.table_zebrastyle) el.classList.add('je-table-zebra')\r\n return el\r\n }\r\n\r\n getTableHeaderCell (text) {\r\n const el = super.getTableHeaderCell(text)\r\n if (this.options.table_border) el.classList.add('je-table-border')\r\n else if (this.options.table_hdiv) el.classList.add('je-table-hdiv')\r\n else el.classList.add('text-xs', 'border', 'p-0', 'm-0')\r\n return el\r\n }\r\n\r\n getTableCell () {\r\n const el = super.getTableCell()\r\n if (this.options.table_border) el.classList.add('je-table-border')\r\n else if (this.options.table_hdiv) el.classList.add('je-table-hdiv')\r\n else el.classList.add('border-0', 'p-0', 'm-0')\r\n return el\r\n }\r\n\r\n addInputError (input, text) {\r\n if (!input.controlgroup) return\r\n input.controlgroup.classList.add('has-error')\r\n input.classList.add('bg-red-600')\r\n if (!input.errmsg) {\r\n input.errmsg = document.createElement('p')\r\n input.errmsg.classList.add('block', 'mt-1', 'text-xs', 'text-red')\r\n input.controlgroup.appendChild(input.errmsg)\r\n } else {\r\n input.errmsg.style.display = ''\r\n }\r\n input.errmsg.textContent = text\r\n }\r\n\r\n removeInputError (input) {\r\n if (!input.errmsg) return\r\n input.errmsg.style.display = 'none'\r\n input.classList.remove('bg-red-600')\r\n input.controlgroup.classList.remove('has-error')\r\n }\r\n\r\n getTabHolder (propertyName) {\r\n const el = document.createElement('div')\r\n const pName = typeof propertyName === 'undefined' ? '' : propertyName\r\n el.innerHTML = `<div class='w-2/12' id='${pName}'><ul class='list-reset pl-0 mb-0'></ul></div><div class='w-10/12' id='${pName}'></div>`\r\n el.classList.add('flex')\r\n return el\r\n }\r\n\r\n addTab (holder, tab) {\r\n holder.children[0].children[0].appendChild(tab)\r\n }\r\n\r\n getTopTabHolder (propertyName) {\r\n const pName = typeof propertyName === 'undefined' ? '' : propertyName\r\n const el = document.createElement('div')\r\n el.innerHTML = `<ul class='nav-tabs flex list-reset pl-0 mb-0 border-b border-grey-light' id='${pName}'></ul><div class='p-6 block' id='${pName}'></div>`\r\n return el\r\n }\r\n\r\n getTab (text, tabId) {\r\n const liel = document.createElement('li')\r\n liel.classList.add('nav-item', 'flex-col', 'text-center', 'text-white', 'bg-blue-500', 'shadow-md', 'border', 'p-2', 'mb-2', 'mr-2', 'hover:bg-blue-400', 'rounded')\r\n const ael = document.createElement('a')\r\n ael.classList.add('nav-link', 'text-center')\r\n ael.setAttribute('href', `#${tabId}`)\r\n ael.setAttribute('data-toggle', 'tab')\r\n ael.appendChild(text)\r\n liel.appendChild(ael)\r\n return liel\r\n }\r\n\r\n getTopTab (text, tabId) {\r\n const el = document.createElement('li')\r\n el.classList.add('nav-item', 'flex', 'border-l', 'border-t', 'border-r')\r\n const a = document.createElement('a')\r\n a.classList.add('nav-link', '-mb-px', 'flex-row', 'text-center', 'bg-white', 'p-2', 'hover:bg-blue-400', 'rounded-t')\r\n a.setAttribute('href', `#${tabId}`)\r\n a.setAttribute('data-toggle', 'tab')\r\n a.appendChild(text)\r\n el.appendChild(a)\r\n return el\r\n }\r\n\r\n getTabContent () {\r\n const el = document.createElement('div')\r\n el.setAttribute('role', 'tabpanel')\r\n return el\r\n }\r\n\r\n getTopTabContent () {\r\n const el = document.createElement('div')\r\n el.setAttribute('role', 'tabpanel')\r\n return el\r\n }\r\n\r\n markTabActive (row) {\r\n row.tab.firstChild.classList.add('block')\r\n if (row.tab.firstChild.classList.contains('border-b') === true) {\r\n row.tab.firstChild.classList.add('border-b-0')\r\n row.tab.firstChild.classList.remove('border-b')\r\n } else {\r\n row.tab.firstChild.classList.add('border-b-0')\r\n }\r\n if (row.container.classList.contains('hidden') === true) {\r\n row.container.classList.remove('hidden')\r\n row.container.classList.add('block')\r\n } else {\r\n row.container.classList.add('block')\r\n }\r\n }\r\n\r\n markTabInactive (row) {\r\n if (row.tab.firstChild.classList.contains('border-b-0') === true) {\r\n row.tab.firstChild.classList.add('border-b')\r\n row.tab.firstChild.classList.remove('border-b-0')\r\n } else {\r\n row.tab.firstChild.classList.add('border-b')\r\n }\r\n if (row.container.classList.contains('block') === true) {\r\n row.container.classList.remove('block')\r\n row.container.classList.add('hidden')\r\n }\r\n }\r\n\r\n getProgressBar () {\r\n const min = 0\r\n const max = 100\r\n const start = 0\r\n\r\n const container = document.createElement('div')\r\n container.classList.add('progress')\r\n\r\n const bar = document.createElement('div')\r\n bar.classList.add('bg-blue', 'leading-none', 'py-1', 'text-xs', 'text-center', 'text-white')\r\n bar.setAttribute('role', 'progressbar')\r\n bar.setAttribute('aria-valuenow', start)\r\n bar.setAttribute('aria-valuemin', min)\r\n bar.setAttribute('aria-valuenax', max)\r\n bar.innerHTML = `${start}%`\r\n container.appendChild(bar)\r\n\r\n return container\r\n }\r\n\r\n updateProgressBar (progressBar, progress) {\r\n if (!progressBar) return\r\n\r\n const bar = progressBar.firstChild\r\n const percentage = `${progress}%`\r\n bar.setAttribute('aria-valuenow', progress)\r\n bar.style.width = percentage\r\n bar.innerHTML = percentage\r\n }\r\n\r\n updateProgressBarUnknown (progressBar) {\r\n if (!progressBar) return\r\n\r\n const bar = progressBar.firstChild\r\n progressBar.classList.add('progress', 'bg-blue', 'leading-none', 'py-1', 'text-xs', 'text-center', 'text-white', 'block')\r\n bar.removeAttribute('aria-valuenow')\r\n bar.classList.add('w-full')\r\n bar.innerHTML = ''\r\n }\r\n\r\n getInputGroup (input, buttons) {\r\n if (!input) return\r\n\r\n const inputGroupContainer = document.createElement('div')\r\n inputGroupContainer.classList.add('relative', 'items-stretch', 'w-full')\r\n inputGroupContainer.appendChild(input)\r\n\r\n const inputGroup = document.createElement('div')\r\n inputGroup.classList.add('-mr-1')\r\n inputGroupContainer.appendChild(inputGroup)\r\n\r\n for (let i = 0; i < buttons.length; i++) {\r\n inputGroup.appendChild(buttons[i])\r\n }\r\n\r\n return inputGroupContainer\r\n }\r\n}\r\n\r\n/* Custom stylesheet rules. (Does not support comma separated selectors) */\r\n/* Will create a stylesheet in document head with the id \"theme-spectre\" if not exists. */\r\ntailwindTheme.rules = rules\r\n","/**\r\n * Taken from jQuery 2.1.3\r\n *\r\n * #### NOTE\r\n * Not plain objects is,\r\n * - Any object or value whose internal [[Class]] property is not \"[object Object]\"\r\n * - DOM nodes\r\n * - window\r\n *\r\n * @param {Object} obj - Variable name\r\n * @returns {Boolean}\r\n */\r\nexport function isPlainObject (obj) {\r\n if (obj === null) return false\r\n\r\n if (typeof obj !== 'object' || obj.nodeType || (obj === obj.window)) return false\r\n\r\n if (obj.constructor && !hasOwnProperty(obj.constructor.prototype, 'isPrototypeOf')) return false\r\n\r\n /* Most likely |obj| is a plain object, created by {} or constructed with new Object */\r\n return true\r\n}\r\n\r\nexport function deepCopy (target) {\r\n return isPlainObject(target) ? extend({}, target) : Array.isArray(target) ? target.map(deepCopy) : target\r\n}\r\n\r\nexport function extend (destination, ...args) {\r\n args.forEach(source => {\r\n if (source) {\r\n Object.keys(source).forEach(property => {\r\n if (source[property] && isPlainObject(source[property])) {\r\n if (!hasOwnProperty(destination, property)) destination[property] = {}\r\n extend(destination[property], source[property])\r\n } else if (Array.isArray(source[property])) {\r\n destination[property] = deepCopy(source[property])\r\n } else {\r\n destination[property] = source[property]\r\n }\r\n })\r\n }\r\n })\r\n\r\n return destination\r\n}\r\n\r\nexport function trigger (el, event) {\r\n const e = document.createEvent('HTMLEvents')\r\n e.initEvent(event, true, true)\r\n el.dispatchEvent(e)\r\n}\r\n\r\n/**\r\n * Helper function to locate a shadowRoot parent if at all\r\n *\r\n * @param {Element} node - Node\r\n */\r\nexport function getShadowParent (node) {\r\n return node && (node.toString() === '[object ShadowRoot]' ? node : getShadowParent(node.parentNode))\r\n}\r\n\r\n/**\r\n * Helper function to check own property key\r\n *\r\n * @see https://eslint.org/docs/rules/no-prototype-builtins\r\n */\r\nexport function hasOwnProperty (obj, key) {\r\n return obj && Object.prototype.hasOwnProperty.call(obj, key)\r\n}\r\n\r\n// From https://github.com/angular/angular.js/blob/master/src/ng/directive/input.js\r\nconst NUMBER_REGEXP = /^\\s*(-|\\+)?(\\d+|(\\d*(\\.\\d*)))([eE][+-]?\\d+)?\\s*$/\r\n\r\nexport function isNumber (value) {\r\n if (typeof value === 'undefined' || value === null) return false\r\n const match = value.match(NUMBER_REGEXP)\r\n const v = parseFloat(value)\r\n return match !== null && !isNaN(v) && isFinite(v)\r\n}\r\n\r\nconst INTEGER_REGEXP = /^\\s*(-|\\+)?(\\d+)\\s*$/\r\n\r\nexport function isInteger (value) {\r\n if (typeof value === 'undefined' || value === null) return false\r\n const match = value.match(INTEGER_REGEXP)\r\n const v = parseInt(value)\r\n return match !== null && !isNaN(v) && isFinite(v)\r\n}\r\n\r\n/* This function generates a uuid.\r\nhttps://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\r\nTODO: It will be probably better to move to: https://www.npmjs.com/package/uuid\r\n*/\r\nexport function generateUUID () {\r\n let d = new Date().getTime()\r\n\r\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\r\n d += performance.now() /* use high-precision timer if available */\r\n }\r\n\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = (d + Math.random() * 16) % 16 | 0\r\n d = Math.floor(d / 16)\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)\r\n })\r\n}\r\n\r\nexport function isObject (item) {\r\n return (item && typeof item === 'object' && !Array.isArray(item))\r\n}\r\n\r\nexport function mergeDeep (target, ...sources) {\r\n if (!sources.length) return target\r\n const source = sources.shift()\r\n\r\n if (isObject(target) && isObject(source)) {\r\n for (const key in source) {\r\n if (isObject(source[key])) {\r\n if (!target[key]) Object.assign(target, { [key]: {} })\r\n mergeDeep(target[key], source[key])\r\n } else {\r\n Object.assign(target, { [key]: source[key] })\r\n }\r\n }\r\n }\r\n\r\n return mergeDeep(target, ...sources)\r\n}\r\n\r\nexport function overwriteExistingProperties (obj1, obj2) {\r\n Object.keys(obj2).forEach(function (key) {\r\n if (key in obj1) {\r\n obj1[key] = obj2[key]\r\n }\r\n })\r\n\r\n return obj1\r\n}\r\n","import { ipValidator } from './validators/ip-validator.js'\r\nimport { extend, hasOwnProperty } from './utilities.js'\r\n\r\nexport class Validator {\r\n constructor (jsoneditor, schema, options, defaults) {\r\n this.jsoneditor = jsoneditor\r\n /* Work on a copy of the schema */\r\n this.schema = extend({}, schema || this.jsoneditor.schema)\r\n this.options = options || {}\r\n this.translate = this.jsoneditor.translate || defaults.translate\r\n this.translateProperty = this.jsoneditor.translateProperty || defaults.translateProperty\r\n this.defaults = defaults\r\n\r\n this._validateSubSchema = {\r\n const (schema, value, path) {\r\n const valid = JSON.stringify(schema.const) === JSON.stringify(value) && !(Array.isArray(value) || typeof value === 'object')\r\n if (!valid) {\r\n return [{\r\n path,\r\n property: 'const',\r\n message: this.translate('error_const')\r\n }]\r\n }\r\n return []\r\n },\r\n enum (schema, value, path) {\r\n const stringified = JSON.stringify(value)\r\n const valid = schema.enum.some(e => stringified === JSON.stringify(e))\r\n if (!valid) {\r\n return [{\r\n path,\r\n property: 'enum',\r\n message: this.translate('error_enum')\r\n }]\r\n }\r\n return []\r\n },\r\n extends (schema, value, path) {\r\n const validate = (errors, e) => {\r\n errors.push(...this._validateSchema(e, value, path))\r\n return errors\r\n }\r\n return schema.extends.reduce(validate, [])\r\n },\r\n allOf (schema, value, path) {\r\n const validate = (errors, e) => {\r\n errors.push(...this._validateSchema(e, value, path))\r\n return errors\r\n }\r\n return schema.allOf.reduce(validate, [])\r\n },\r\n anyOf (schema, value, path) {\r\n const valid = schema.anyOf.some(e => !this._validateSchema(e, value, path).length)\r\n if (!valid) {\r\n return [{\r\n path,\r\n property: 'anyOf',\r\n message: this.translate('error_anyOf')\r\n }]\r\n }\r\n return []\r\n },\r\n oneOf (schema, value, path) {\r\n let valid = 0\r\n const oneofErrors = []\r\n schema.oneOf.forEach((o, i) => {\r\n /* Set the error paths to be path.oneOf[i].rest.of.path */\r\n const tmp = this._validateSchema(o, value, path)\r\n if (!tmp.length) {\r\n valid++\r\n }\r\n\r\n tmp.forEach(e => {\r\n e.path = `${path}.oneOf[${i}]${e.path.substr(path.length)}`\r\n })\r\n oneofErrors.push(...tmp)\r\n })\r\n const errors = []\r\n if (valid !== 1) {\r\n errors.push({\r\n path,\r\n property: 'oneOf',\r\n message: this.translate('error_oneOf', [valid])\r\n })\r\n errors.push(...oneofErrors)\r\n }\r\n return errors\r\n },\r\n not (schema, value, path) {\r\n if (!this._validateSchema(schema.not, value, path).length) {\r\n return [{\r\n path,\r\n property: 'not',\r\n message: this.translate('error_not')\r\n }]\r\n }\r\n return []\r\n },\r\n type (schema, value, path) {\r\n /* Union type */\r\n if (Array.isArray(schema.type)) {\r\n const valid = schema.type.some(e => this._checkType(e, value))\r\n if (!valid) {\r\n return [{\r\n path,\r\n property: 'type',\r\n message: this.translate('error_type_union')\r\n }]\r\n }\r\n } else {\r\n /* Simple type */\r\n if (['date', 'time', 'datetime-local'].includes(schema.format) && schema.type === 'integer') {\r\n /* Hack to get validator to validate as string even if value is integer */\r\n /* As validation of 'date', 'time', 'datetime-local' is done in separate validator */\r\n if (!this._checkType('string', `${value}`)) {\r\n return [{\r\n path,\r\n property: 'type',\r\n message: this.translate('error_type', [schema.format])\r\n }]\r\n }\r\n } else if (!this._checkType(schema.type, value)) {\r\n return [{\r\n path,\r\n property: 'type',\r\n message: this.translate('error_type', [schema.type])\r\n }]\r\n }\r\n }\r\n return []\r\n },\r\n disallow (schema, value, path) {\r\n /* Union type */\r\n if (Array.isArray(schema.disallow)) {\r\n const invalid = schema.disallow.some(e => this._checkType(e, value))\r\n if (invalid) {\r\n return [{\r\n path,\r\n property: 'disallow',\r\n message: this.translate('error_disallow_union')\r\n }]\r\n }\r\n } else {\r\n /* Simple type */\r\n if (this._checkType(schema.disallow, value)) {\r\n return [{\r\n path,\r\n property: 'disallow',\r\n message: this.translate('error_disallow', [schema.disallow])\r\n }]\r\n }\r\n }\r\n return []\r\n }\r\n }\r\n\r\n this._validateNumberSubSchema = {\r\n multipleOf (schema, value, path) { return this._validateNumberSubSchemaMultipleDivisible(schema, value, path) },\r\n divisibleBy (schema, value, path) { return this._validateNumberSubSchemaMultipleDivisible(schema, value, path) },\r\n maximum (schema, value, path) {\r\n /* Vanilla JS, prone to floating point rounding errors (e.g. .999999999999999 == 1) */\r\n let valid = schema.exclusiveMaximum ? (value < schema.maximum) : (value <= schema.maximum)\r\n\r\n /* Use math.js is available */\r\n if (window.math) {\r\n valid = window.math[schema.exclusiveMaximum ? 'smaller' : 'smallerEq'](\r\n window.math.bignumber(value),\r\n window.math.bignumber(schema.maximum)\r\n )\r\n } else if (window.Decimal) {\r\n /* Use Decimal.js if available */\r\n valid = (new window.Decimal(value))[schema.exclusiveMaximum ? 'lt' : 'lte'](new window.Decimal(schema.maximum))\r\n }\r\n\r\n if (!valid) {\r\n return [{\r\n path,\r\n property: 'maximum',\r\n message: this.translate(\r\n (schema.exclusiveMaximum ? 'error_maximum_excl' : 'error_maximum_incl'),\r\n [schema.maximum]\r\n )\r\n }]\r\n }\r\n return []\r\n },\r\n minimum (schema, value, path) {\r\n /* Vanilla JS, prone to floating point rounding errors (e.g. .999999999999999 == 1) */\r\n let valid = schema.exclusiveMinimum ? (value > schema.minimum) : (value >= schema.minimum)\r\n\r\n /* Use math.js is available */\r\n if (window.math) {\r\n valid = window.math[schema.exclusiveMinimum ? 'larger' : 'largerEq'](\r\n window.math.bignumber(value),\r\n window.math.bignumber(schema.minimum)\r\n )\r\n /* Use Decimal.js if available */\r\n } else if (window.Decimal) {\r\n valid = (new window.Decimal(value))[schema.exclusiveMinimum ? 'gt' : 'gte'](new window.Decimal(schema.minimum))\r\n }\r\n\r\n if (!valid) {\r\n return [{\r\n path,\r\n property: 'minimum',\r\n message: this.translate(\r\n (schema.exclusiveMinimum ? 'error_minimum_excl' : 'error_minimum_incl'),\r\n [schema.minimum]\r\n )\r\n }]\r\n }\r\n return []\r\n }\r\n }\r\n\r\n this._validateStringSubSchema = {\r\n maxLength (schema, value, path) {\r\n const errors = []\r\n if ((`${value}`).length > schema.maxLength) {\r\n errors.push({\r\n path,\r\n property: 'maxLength',\r\n message: this.translate('error_maxLength', [schema.maxLength])\r\n })\r\n }\r\n return errors\r\n },\r\n /* `minLength` */\r\n minLength (schema, value, path) {\r\n if ((`${value}`).length < schema.minLength) {\r\n return [{\r\n path,\r\n property: 'minLength',\r\n message: this.translate((schema.minLength === 1 ? 'error_notempty' : 'error_minLength'), [schema.minLength])\r\n }]\r\n }\r\n return []\r\n },\r\n /* `pattern` */\r\n pattern (schema, value, path) {\r\n if (!(new RegExp(schema.pattern)).test(value)) {\r\n return [{\r\n path,\r\n property: 'pattern',\r\n message: (schema.options && schema.options.patternmessage) ? this.translateProperty(schema.options.patternmessage) : this.translate('error_pattern', [schema.pattern])\r\n }]\r\n }\r\n return []\r\n }\r\n }\r\n\r\n this._validateArraySubSchema = {\r\n items (schema, value, path) {\r\n const errors = []\r\n if (Array.isArray(schema.items)) {\r\n for (let i = 0; i < value.length; i++) {\r\n /* If this item has a specific schema tied to it */\r\n /* Validate against it */\r\n if (schema.items[i]) {\r\n errors.push(...this._validateSchema(schema.items[i], value[i], `${path}.${i}`))\r\n /* If all additional items are allowed */\r\n } else if (schema.additionalItems === true) {\r\n break\r\n /* If additional items is a schema */\r\n /* TODO: Incompatibility between version 3 and 4 of the spec */\r\n } else if (schema.additionalItems) {\r\n errors.push(...this._validateSchema(schema.additionalItems, value[i], `${path}.${i}`))\r\n /* If no additional items are allowed */\r\n } else if (schema.additionalItems === false) {\r\n errors.push({\r\n path,\r\n property: 'additionalItems',\r\n message: this.translate('error_additionalItems')\r\n })\r\n break\r\n /* Default for `additionalItems` is an empty schema */\r\n } else {\r\n break\r\n }\r\n }\r\n /* `items` is a schema */\r\n } else {\r\n /* Each item in the array must validate against the schema */\r\n value.forEach((e, i) => {\r\n errors.push(...this._validateSchema(schema.items, e, `${path}.${i}`))\r\n })\r\n }\r\n return errors\r\n },\r\n maxItems (schema, value, path) {\r\n if (value.length > schema.maxItems) {\r\n return [{\r\n path,\r\n property: 'maxItems',\r\n message: this.translate('error_maxItems', [schema.maxItems])\r\n }]\r\n }\r\n return []\r\n },\r\n minItems (schema, value, path) {\r\n if (value.length < schema.minItems) {\r\n return [{\r\n path,\r\n property: 'minItems',\r\n message: this.translate('error_minItems', [schema.minItems])\r\n }]\r\n }\r\n return []\r\n },\r\n uniqueItems (schema, value, path) {\r\n const seen = {}\r\n for (let i = 0; i < value.length; i++) {\r\n const valid = JSON.stringify(value[i])\r\n if (seen[valid]) {\r\n return [{\r\n path,\r\n property: 'uniqueItems',\r\n message: this.translate('error_uniqueItems')\r\n }]\r\n }\r\n seen[valid] = true\r\n }\r\n return []\r\n }\r\n }\r\n\r\n this._validateObjectSubSchema = {\r\n maxProperties (schema, value, path) {\r\n if (Object.keys(value).length > schema.maxProperties) {\r\n return [{\r\n path,\r\n property: 'maxProperties',\r\n message: this.translate('error_maxProperties', [schema.maxProperties])\r\n }]\r\n }\r\n return []\r\n },\r\n minProperties (schema, value, path) {\r\n if (Object.keys(value).length < schema.minProperties) {\r\n return [{\r\n path,\r\n property: 'minProperties',\r\n message: this.translate('error_minProperties', [schema.minProperties])\r\n }]\r\n }\r\n return []\r\n },\r\n required (schema, value, path) {\r\n const errors = []\r\n if (Array.isArray(schema.required)) {\r\n schema.required.forEach(e => {\r\n if (typeof value[e] !== 'undefined') return\r\n const editor = this.jsoneditor.getEditor(`${path}.${e}`)\r\n /* Ignore required error if editor is of type \"button\" or \"info\" */\r\n if (editor && ['button', 'info'].includes(editor.schema.format || editor.schema.type)) return\r\n errors.push({\r\n path,\r\n property: 'required',\r\n message: this.translate('error_required', [schema && schema.properties && schema.properties[e] && schema.properties[e].title ? schema.properties[e].title : e])\r\n })\r\n })\r\n }\r\n return errors\r\n },\r\n properties (schema, value, path, validatedProperties) {\r\n const errors = []\r\n Object.entries(schema.properties).forEach(([key, prop]) => {\r\n validatedProperties[key] = true\r\n errors.push(...this._validateSchema(prop, value[key], `${path}.${key}`))\r\n })\r\n return errors\r\n },\r\n patternProperties (schema, value, path, validatedProperties) {\r\n const errors = []\r\n Object.entries(schema.patternProperties).forEach(([i, prop]) => {\r\n const regex = new RegExp(i)\r\n /* Check which properties match */\r\n Object.entries(value).forEach(([j, v]) => {\r\n if (regex.test(j)) {\r\n validatedProperties[j] = true\r\n errors.push(...this._validateSchema(prop, v, `${path}.${j}`))\r\n }\r\n })\r\n })\r\n return errors\r\n }\r\n }\r\n\r\n this._validateObjectSubSchema2 = {\r\n propertyNames (schema, value, path, validatedProperties) {\r\n const errors = []\r\n const keys = Object.keys(value)\r\n let k = null\r\n for (let i = 0; i < keys.length; i++) {\r\n let msg = ''\r\n let truthy = false\r\n k = keys[i]\r\n /* Check property names that don't match */\r\n if (typeof schema.propertyNames === 'boolean') {\r\n if (schema.propertyNames === true) {\r\n continue\r\n }\r\n errors.push({\r\n path,\r\n property: 'propertyNames',\r\n message: this.translate('error_property_names_false', [k])\r\n })\r\n break\r\n }\r\n truthy = Object.entries(schema.propertyNames).every(([j, prop]) => {\r\n let match = false\r\n let regex = null\r\n switch (j) {\r\n case 'maxLength':\r\n if (typeof prop !== 'number') {\r\n msg = 'error_property_names_maxlength'\r\n break\r\n }\r\n if (k.length > prop) {\r\n msg = 'error_property_names_exceeds_maxlength'\r\n break\r\n }\r\n return true\r\n case 'const':\r\n if (prop !== k) {\r\n msg = 'error_property_names_const_mismatch'\r\n break\r\n }\r\n return true\r\n case 'enum':\r\n if (!Array.isArray(prop)) {\r\n msg = 'error_property_names_enum'\r\n break\r\n }\r\n prop.forEach(p => {\r\n if (p === k) {\r\n match = true\r\n }\r\n })\r\n if (!match) {\r\n msg = 'error_property_names_enum_mismatch'\r\n break\r\n }\r\n return true\r\n case 'pattern':\r\n if (typeof prop !== 'string') {\r\n msg = 'error_property_names_pattern'\r\n break\r\n }\r\n regex = new RegExp(prop)\r\n if (!regex.test(k)) {\r\n msg = 'error_property_names_pattern_mismatch'\r\n break\r\n }\r\n return true\r\n default:\r\n errors.push({\r\n path,\r\n property: 'propertyNames',\r\n message: this.translate('error_property_names_unsupported', [j])\r\n })\r\n return false\r\n }\r\n errors.push({\r\n path,\r\n property: 'propertyNames',\r\n message: this.translate(msg, [k])\r\n })\r\n return false\r\n })\r\n if (!truthy) break\r\n }\r\n return errors\r\n },\r\n additionalProperties (schema, value, path, validatedProperties) {\r\n const errors = []\r\n const keys = Object.keys(value)\r\n for (let i = 0; i < keys.length; i++) {\r\n const k = keys[i]\r\n if (validatedProperties[k]) continue\r\n /* No extra properties allowed */\r\n if (!schema.additionalProperties) {\r\n errors.push({\r\n path,\r\n property: 'additionalProperties',\r\n message: this.translate('error_additional_properties', [k])\r\n })\r\n break\r\n /* Allowed */\r\n } else if (schema.additionalProperties === true) {\r\n break\r\n /* Must match schema */\r\n /* TODO: incompatibility between version 3 and 4 of the spec */\r\n } else {\r\n errors.push(...this._validateSchema(schema.additionalProperties, value[k], `${path}.${k}`))\r\n }\r\n }\r\n return errors\r\n },\r\n dependencies (schema, value, path) {\r\n const errors = []\r\n Object.entries(schema.dependencies).forEach(([i, dep]) => {\r\n /* Doesn't need to meet the dependency */\r\n if (typeof value[i] === 'undefined') return\r\n\r\n /* Property dependency */\r\n if (Array.isArray(dep)) {\r\n dep.forEach(d => {\r\n if (typeof value[d] === 'undefined') {\r\n errors.push({\r\n path,\r\n property: 'dependencies',\r\n message: this.translate('error_dependency', [d])\r\n })\r\n }\r\n })\r\n /* Schema dependency */\r\n } else {\r\n errors.push(...this._validateSchema(dep, value, path))\r\n }\r\n })\r\n return errors\r\n }\r\n }\r\n }\r\n\r\n fitTest (value, givenSchema, weight = 10000000) {\r\n const fit = { match: 0, extra: 0 }\r\n if (typeof value === 'object' && value !== null) {\r\n /* Work on a copy of the schema */\r\n const properties = this._getSchema(givenSchema).properties\r\n\r\n for (const i in properties) {\r\n if (!hasOwnProperty(properties, i)) {\r\n fit.extra += weight\r\n continue\r\n }\r\n if (typeof value[i] === 'object' && typeof properties[i] === 'object' && typeof properties[i].properties === 'object') {\r\n const result = this.fitTest(value[i], properties[i], weight / 100)\r\n fit.match += result.match\r\n fit.extra += result.extra\r\n }\r\n if (typeof value[i] !== 'undefined') {\r\n fit.match += weight\r\n }\r\n }\r\n }\r\n return fit\r\n }\r\n\r\n _getSchema (schema) {\r\n return typeof schema === 'undefined' ? extend({}, this.jsoneditor.expandRefs(this.schema)) : schema\r\n }\r\n\r\n validate (value) {\r\n return this._validateSchema(this.schema, value)\r\n }\r\n\r\n _validateSchema (schema, value, path) {\r\n const errors = []\r\n path = path || this.jsoneditor.root.formname\r\n\r\n Object.assign(schema, this.jsoneditor.expandRefs(schema))\r\n delete schema.$ref\r\n\r\n /*\r\n * Type Agnostic Validation\r\n */\r\n /* Version 3 `required` and `required_by_default` */\r\n if (typeof value === 'undefined') {\r\n return this._validateV3Required(schema, value, path)\r\n }\r\n\r\n try {\r\n /* custom validator */\r\n errors.push(...this._validateCustomValidator(schema, value, path))\r\n } catch (err) {\r\n errors.push({\r\n path: path,\r\n property: 'custom validator',\r\n message: err.message\r\n })\r\n return errors\r\n }\r\n\r\n Object.keys(schema).forEach(key => {\r\n if (this._validateSubSchema[key]) {\r\n errors.push(...this._validateSubSchema[key].call(this, schema, value, path))\r\n }\r\n })\r\n\r\n /*\r\n * Type Specific Validation\r\n */\r\n errors.push(...this._validateByValueType(schema, value, path))\r\n\r\n if (schema.links) {\r\n schema.links.forEach((s, m) => {\r\n if (s.rel && s.rel.toLowerCase() === 'describedby') {\r\n schema = this._expandSchemaLink(schema, m)\r\n errors.push(...this._validateSchema(schema, value, path, this.translate))\r\n }\r\n })\r\n }\r\n\r\n /* date, time and datetime-local validation */\r\n if (['date', 'time', 'datetime-local'].includes(schema.format)) {\r\n errors.push(...this._validateDateTimeSubSchema(schema, value, path))\r\n }\r\n\r\n /* uuid validation */\r\n if (['uuid'].includes(schema.format)) {\r\n errors.push(...this._validateUUIDSchema(schema, value, path))\r\n }\r\n\r\n /* Remove duplicate errors and add \"errorcount\" property */\r\n return this._removeDuplicateErrors(errors)\r\n }\r\n\r\n _expandSchemaLink (schema, m) {\r\n const href = schema.links[m].href\r\n const data = this.jsoneditor.root.getValue()\r\n const template = this.jsoneditor.compileTemplate(href, this.jsoneditor.template)\r\n const ref = document.location.origin + document.location.pathname + template(data)\r\n\r\n schema.links = schema.links.slice(0, m).concat(schema.links.slice(m + 1))\r\n return extend({}, schema, this.jsoneditor.refs[ref])\r\n }\r\n\r\n _validateV3Required (schema, value, path) {\r\n if (((typeof schema.required !== 'undefined' && schema.required === true) || (typeof schema.required === 'undefined' && this.jsoneditor.options.required_by_default === true)) && (schema.type !== 'info')) {\r\n return [{\r\n path,\r\n property: 'required',\r\n message: this.translate('error_notset')\r\n }]\r\n }\r\n return []\r\n }\r\n\r\n _validateByValueType (schema, value, path) {\r\n const errors = []\r\n if (value === null) return errors\r\n /* Number Specific Validation */\r\n if (typeof value === 'number') {\r\n /* `multipleOf` and `divisibleBy` */\r\n /* `maximum` */\r\n /* `minimum` */\r\n Object.keys(schema).forEach(key => {\r\n if (this._validateNumberSubSchema[key]) {\r\n errors.push(...this._validateNumberSubSchema[key].call(this, schema, value, path))\r\n }\r\n })\r\n /* String specific validation */\r\n } else if (typeof value === 'string') {\r\n /* `maxLength` */\r\n /* `minLength` */\r\n /* `pattern` */\r\n Object.keys(schema).forEach(key => {\r\n if (this._validateStringSubSchema[key]) {\r\n errors.push(...this._validateStringSubSchema[key].call(this, schema, value, path))\r\n }\r\n })\r\n /* Array specific validation */\r\n } else if (Array.isArray(value)) {\r\n /* `items` and `additionalItems`\r\n /* `maxItems`\r\n /* `minItems`\r\n /* `uniqueItems` */\r\n Object.keys(schema).forEach(key => {\r\n if (this._validateArraySubSchema[key]) {\r\n errors.push(...this._validateArraySubSchema[key].call(this, schema, value, path))\r\n }\r\n })\r\n /* Object specific validation */\r\n } else if (typeof value === 'object') {\r\n const validatedProperties = {}\r\n /* `maxProperties`\r\n /* `minProperties`\r\n /* Version 4 `required`\r\n /* `properties`\r\n /* `patternProperties` */\r\n Object.keys(schema).forEach(key => {\r\n if (this._validateObjectSubSchema[key]) {\r\n errors.push(...this._validateObjectSubSchema[key].call(this, schema, value, path, validatedProperties))\r\n }\r\n })\r\n\r\n /* The no_additional_properties option currently doesn't work with extended schemas that use oneOf or anyOf or allOf */\r\n if (typeof schema.additionalProperties === 'undefined' && this.jsoneditor.options.no_additional_properties && !schema.oneOf && !schema.anyOf && !schema.allOf) {\r\n schema.additionalProperties = false\r\n }\r\n\r\n /* `additionalProperties` */\r\n /* `dependencies` */\r\n Object.keys(schema).forEach(key => {\r\n if (typeof this._validateObjectSubSchema2[key] !== 'undefined') {\r\n errors.push(...this._validateObjectSubSchema2[key].call(this, schema, value, path, validatedProperties))\r\n }\r\n })\r\n }\r\n return errors\r\n }\r\n\r\n _validateUUIDSchema (schema, value, path) {\r\n if (!(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value))) {\r\n return [{\r\n path,\r\n property: 'format',\r\n message: this.translate('error_pattern', ['^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$'])\r\n }]\r\n }\r\n return []\r\n }\r\n\r\n _validateNumberSubSchemaMultipleDivisible (schema, value, path) {\r\n const divisor = schema.multipleOf || schema.divisibleBy\r\n /* Vanilla JS, prone to floating point rounding errors (e.g. 1.14 / .01 == 113.99999) */\r\n let valid = (value / divisor === Math.floor(value / divisor))\r\n\r\n /* Use math.js is available */\r\n if (window.math) {\r\n valid = window.math.mod(window.math.bignumber(value), window.math.bignumber(divisor)).equals(0)\r\n } else if (window.Decimal) {\r\n /* Use decimal.js is available */\r\n valid = (new window.Decimal(value)).mod(new window.Decimal(divisor)).equals(0)\r\n }\r\n\r\n if (!valid) {\r\n return [{\r\n path,\r\n property: schema.multipleOf ? 'multipleOf' : 'divisibleBy',\r\n message: this.translate('error_multipleOf', [divisor])\r\n }]\r\n }\r\n return []\r\n }\r\n\r\n _validateDateTimeSubSchema (schema, value, path) {\r\n const _validateInteger = (schema, value, path) => {\r\n /* The value is a timestamp */\r\n if (value * 1 < 1) {\r\n /* If value is less than 1, then it's an invalid epoch date before 00:00:00 UTC Thursday, 1 January 1970 */\r\n return [{\r\n path,\r\n property: 'format',\r\n message: this.translate('error_invalid_epoch')\r\n }]\r\n } else if (value !== Math.abs(parseInt(value))) {\r\n /* not much to check for, so we assume value is ok if it's a positive number */\r\n return [{\r\n path,\r\n property: 'format',\r\n message: this.translate(`error_${schema.format.replace(/-/g, '_')}`, [dateFormat])\r\n }]\r\n }\r\n return []\r\n }\r\n const _validateFlatPicker = (schema, value, path, editor) => {\r\n if (value !== '') {\r\n let compareValue\r\n if (editor.flatpickr.config.mode !== 'single') {\r\n const seperator = editor.flatpickr.config.mode === 'range' ? editor.flatpickr.l10n.rangeSeparator : ', '\r\n const selectedDates = editor.flatpickr.selectedDates.map(val =>\r\n editor.flatpickr.formatDate(val, editor.flatpickr.config.dateFormat)\r\n )\r\n compareValue = selectedDates.join(seperator)\r\n }\r\n\r\n try {\r\n if (compareValue) {\r\n /* Not the best validation method, but range and multiple mode are special */\r\n /* Optimal solution would be if it is possible to change the return format from string/integer to array */\r\n if (compareValue !== value) throw new Error(`${editor.flatpickr.config.mode} mismatch`)\r\n } else if (editor.flatpickr.formatDate(editor.flatpickr.parseDate(value, editor.flatpickr.config.dateFormat), editor.flatpickr.config.dateFormat) !== value) {\r\n throw new Error('mismatch')\r\n }\r\n } catch (err) {\r\n const errorDateFormat = editor.flatpickr.config.errorDateFormat !== undefined ? editor.flatpickr.config.errorDateFormat : editor.flatpickr.config.dateFormat\r\n return [{\r\n path,\r\n property: 'format',\r\n message: this.translate(`error_${editor.format.replace(/-/g, '_')}`, [errorDateFormat])\r\n }]\r\n }\r\n }\r\n return []\r\n }\r\n\r\n const validatorRx = {\r\n date: /^(\\d{4}\\D\\d{2}\\D\\d{2})?$/,\r\n time: /^(\\d{2}:\\d{2}(?::\\d{2})?)?$/,\r\n 'datetime-local': /^(\\d{4}\\D\\d{2}\\D\\d{2}[ T]\\d{2}:\\d{2}(?::\\d{2})?)?$/\r\n }\r\n const format = {\r\n date: '\"YYYY-MM-DD\"',\r\n time: '\"HH:MM\"',\r\n 'datetime-local': '\"YYYY-MM-DD HH:MM\"'\r\n }\r\n\r\n const editor = this.jsoneditor.getEditor(path)\r\n const dateFormat = (editor && editor.flatpickr) ? editor.flatpickr.config.dateFormat : format[schema.format]\r\n\r\n if (schema.type === 'integer') {\r\n return _validateInteger(schema, value, path)\r\n } else if (!editor || !editor.flatpickr) {\r\n /* Standard string input, without flatpickr */\r\n if (!validatorRx[schema.format].test(value)) {\r\n return [{\r\n path,\r\n property: 'format',\r\n message: this.translate(`error_${schema.format.replace(/-/g, '_')}`, [dateFormat])\r\n }]\r\n }\r\n } else if (editor) {\r\n /* Flatpickr validation */\r\n return _validateFlatPicker(schema, value, path, editor)\r\n }\r\n return []\r\n }\r\n\r\n _validateCustomValidator (schema, value, path) {\r\n const errors = []\r\n const validate = validator => {\r\n errors.push(...validator.call(this, schema, value, path))\r\n }\r\n /* Custom type validation (global) */\r\n this.defaults.custom_validators.forEach(validate)\r\n /* Custom type validation (instance specific) */\r\n if (this.options.custom_validators) {\r\n this.options.custom_validators.forEach(validate)\r\n }\r\n /* Internal validators using the custom validator format */\r\n errors.push(...ipValidator.call(this, schema, value, path, this.translate))\r\n\r\n return errors\r\n }\r\n\r\n _removeDuplicateErrors (errors) {\r\n return errors.reduce((err, obj) => {\r\n let first = true\r\n if (!err) err = []\r\n err.forEach(a => {\r\n if (a.message === obj.message && a.path === obj.path && a.property === obj.property) {\r\n a.errorcount++\r\n first = false\r\n }\r\n })\r\n if (first) {\r\n obj.errorcount = 1\r\n err.push(obj)\r\n }\r\n return err\r\n }, [])\r\n }\r\n\r\n _checkType (type, value) {\r\n const types = {\r\n string: value => typeof value === 'string',\r\n number: value => typeof value === 'number',\r\n integer: value => typeof value === 'number' && value === Math.floor(value),\r\n boolean: value => typeof value === 'boolean',\r\n array: value => Array.isArray(value),\r\n object: value => value !== null && !(Array.isArray(value)) && typeof value === 'object',\r\n null: value => value === null\r\n }\r\n /* Simple types */\r\n if (typeof type === 'string') {\r\n if (types[type]) {\r\n return types[type](value)\r\n } else return true\r\n /* Schema */\r\n } else {\r\n return !this._validateSchema(type, value).length\r\n }\r\n }\r\n}\r\n","/* Implements ipv4, ipv6 and hostname format validations as per https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-7.3.4 */\r\nconst validateIpv4 = (value) => {\r\n const parts = value.split('.')\r\n if (parts.length !== 4) {\r\n throw new Error('error_ipv4')\r\n }\r\n parts.forEach((part) => {\r\n if (isNaN(+part) || +part < 0 || +part > 255) {\r\n throw new Error('error_ipv4')\r\n }\r\n })\r\n}\r\n\r\nconst validateIpv6 = (value) => {\r\n if (!value.match(\r\n '^(?:(?:(?:[a-fA-F0-9]{1,4}:){6}|(?=(?:[a-fA-F0-9]{0,4}:){2,6}(?:[0-9]{1,3}.){3}[0-9]{1,3}$)(([0-9a-fA-F]{1,4}:){1,5}|:)((:[0-9a-fA-F]{1,4}){1,5}:|:)|::(?:[a-fA-F0-9]{1,4}:){5})(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]).){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])|(?:[a-fA-F0-9]{1,4}:){7}[a-fA-F0-9]{1,4}|(?=(?:[a-fA-F0-9]{0,4}:){0,7}[a-fA-F0-9]{0,4}$)(([0-9a-fA-F]{1,4}:){1,7}|:)((:[0-9a-fA-F]{1,4}){1,7}|:)|(?:[a-fA-F0-9]{1,4}:){7}:|:(:[a-fA-F0-9]{1,4}){7})$'\r\n )) {\r\n throw new Error('error_ipv6')\r\n }\r\n}\r\n\r\nconst validateHostname = (value) => {\r\n if (!value.match(\r\n '(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9].)+[a-zA-Z]{2,63}$)'\r\n )) {\r\n throw new Error('error_hostname')\r\n }\r\n}\r\n\r\nexport function ipValidator (schema, value, path, translate) {\r\n try {\r\n switch (schema.format) {\r\n case 'ipv4':\r\n validateIpv4(value)\r\n break\r\n case 'ipv6':\r\n validateIpv6(value)\r\n break\r\n case 'hostname':\r\n validateHostname(value)\r\n break\r\n }\r\n return []\r\n } catch (err) {\r\n return [{\r\n path,\r\n property: 'format',\r\n message: translate(err.message)\r\n }]\r\n }\r\n}\r\n"],"sourceRoot":""}
|