@json-editor/json-editor 2.9.0-beta.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/README.md +16 -7
  3. package/dist/jsoneditor.js +2 -2
  4. package/dist/jsoneditor.js.LICENSE.txt +15 -0
  5. package/dist/jsoneditor.js.map +1 -0
  6. package/dist/nonmin/jsoneditor.js +989 -127
  7. package/dist/nonmin/jsoneditor.js.map +1 -1
  8. package/docs/index.html +22 -10
  9. package/docs/meta_schema.json +3 -2
  10. package/docs/starrating.html +2 -6
  11. package/package.json +4 -2
  12. package/src/defaults.js +9 -1
  13. package/src/editor.js +17 -3
  14. package/src/editors/array.js +7 -4
  15. package/src/editors/multiselect.js +1 -0
  16. package/src/editors/object.css +3 -3
  17. package/src/editors/object.css.js +1 -1
  18. package/src/editors/object.js +5 -2
  19. package/src/editors/table.js +11 -4
  20. package/src/editors/upload.js +3 -2
  21. package/src/themes/barebones.js +3 -1
  22. package/src/themes/bootstrap5.css +97 -0
  23. package/src/themes/bootstrap5.css.js +3 -0
  24. package/src/themes/bootstrap5.js +623 -0
  25. package/src/themes/index.js +2 -0
  26. package/src/themes/tailwind.js +2 -2
  27. package/tests/codeceptjs/core_test.js +107 -17
  28. package/tests/codeceptjs/editors/array_test.js +6 -5
  29. package/tests/codeceptjs/editors/button_test.js +7 -6
  30. package/tests/codeceptjs/editors/checkbox_test.js +3 -2
  31. package/tests/codeceptjs/editors/integer_test.js +3 -2
  32. package/tests/codeceptjs/editors/issues/issue-gh-1158_test.js +10 -0
  33. package/tests/codeceptjs/editors/issues/issue-gh-1257_test.js +13 -0
  34. package/tests/codeceptjs/editors/number_test.js +2 -1
  35. package/tests/codeceptjs/editors/object_test.js +39 -38
  36. package/tests/codeceptjs/editors/option-no_default_values_test.js +1 -1
  37. package/tests/codeceptjs/editors/programmatic-changes_test.js +3 -2
  38. package/tests/codeceptjs/editors/tabs_test.js +5 -3
  39. package/tests/codeceptjs/editors/validation_test.js +3 -1
  40. package/tests/codeceptjs/meta-schema_test.js +72 -4
  41. package/tests/codeceptjs/schemaloader_test.js +2 -1
  42. package/tests/codeceptjs/test-config.js +3 -0
  43. package/tests/codeceptjs/themes_test.js +14 -0
  44. package/tests/pages/anyof-2.html +90 -0
  45. package/tests/pages/anyof.html +1 -1
  46. package/tests/pages/container-attributes.html +50 -0
  47. package/tests/pages/issues/issue-gh-1158.html +50 -0
  48. package/tests/pages/issues/issue-gh-1233-failing.html +46 -0
  49. package/tests/pages/issues/issue-gh-1233-passing.html +49 -0
  50. package/tests/pages/issues/issue-gh-1257.html +77 -0
  51. package/tests/pages/meta-schema.html +747 -0
  52. package/tests/pages/meta_schema.json +3 -16
  53. package/tests/pages/oneof-2.html +90 -0
  54. package/tests/pages/per-editor-options.html +44 -0
  55. package/tests/pages/stepper.html +2 -2
  56. package/tests/pages/themes.html +2 -0
  57. /package/tests/pages/{table-move-events.html → array-events-table.html} +0 -0
  58. /package/tests/pages/{array-move-events.html → array-events.html} +0 -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/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/date-to-iso-string.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-browser.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.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/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/host-report-errors.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-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/microtask.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.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/new-promise-capability.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/perform.js","webpack:///./node_modules/core-js/internals/promise-resolve.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-pad.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/task.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-iso-string.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.promise.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/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:///./node_modules/regenerator-runtime/runtime.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.js","webpack:///./src/themes/bootstrap4.css.js","webpack:///./src/themes/bootstrap4.js","webpack:///./src/themes/bootstrap5.css.js","webpack:///./src/themes/bootstrap5.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","classList","add","remove","rules","styleRules","getEditorsRules","addRules","shadowRoot","addNewStyleRulesToShadowRoot","addNewStyleRules","disable_theme_rules","getShadowParent","iconClass","iconlibs","iconlib","root_container","getContainer","appendChild","promise","load","fetchUrl","document","location","origin","pathname","toString","loader","SchemaLoader","expandSchema","expandRefs","fileBase","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","upload_max_size","upload_wrong_file_format","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","button_properties","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","schemaMessages","error_messages","lang","string","replace","RegExp","text","use_name_attributes","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","setContainerAttributes","header","addEventListener","isActive","deactivate","activate","globalOptIn","show_opt_in","parentOptInDefined","parentOptInEnabled","parentOptInDisabled","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","inc","inputAttribute","inputAttributes","protectedAttributes","input","containerAttributes","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","infoText","infoButton","getInfoButton","title_controls","getHeaderButtonHolder","getDescription","error_holder","controls","getTopTabHolder","getValidId","getItemTitle","row_holder","getTopTabContentHolder","active_tab","getTabHolder","getTabContentHolder","panel","getIndentedPanel","getButtonHolder","addControls","refreshTabs","item_title","items","additionalItems","getItemSchema","item_info","stringified","child_editors","properties","itemInfo","getTopTabContent","getTabContent","getChildEditorHolder","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","editorValue","generateUUID","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","onSubmit","blur","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","setInputAttributes","getFormButtonHolder","changeHandler","off","CheckboxEditor","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","refs","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","currentValue","keep_values","refreshHeaderText","types","switcher_options","validators","keep_oneof_values","anyOf","disallow","allowedTypes","display_text","getDisplayText","getSwitcherOptions","displayText","prevType","fitTestVal","extra","validVal","fitTestResult","fitTest","finalI","typeChanged","checkPart","check","filterError","newErrors","newError","longestText","option_enum","itemsSchema","oe","t","d","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","onOutsideModalClickListener","onOutsideModalClick","getGridContainer","getGridColumn","singleRowContainer","row_container_basic","collapse_control","toggleEditJSON","disable_edit_json","toggleAddProperty","refreshAddProperties","deactivateNonRequiredProperties","layoutEditors","editorOptInDefined","editorOptInEnabled","editorOptInDisabled","hideAddProperty","left","offsetLeft","top","offsetTop","editing_json","ta","body","execCommand","json","parse","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","errorcount","addTableRowError","removeTableRowError","RadioEditor","radioContainer","radioGroup","radioInputEventhandler","attributes","getFormRadio","radioLabel","getFormRadioLabel","getFormRadioControl","radioContainerWrapper","dataset","containerFor","ScEditor","sceditor_instance","emoticonsEnabled","instance","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","ceil","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","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","defaultMapping","collapse","expand","cancel","save","moveup","movedown","iconPrefix","mapping","icon_prefix","iconclass","getIconClass","subtract","moveright","moveleft","copy","calendar","edit_properties","bootstrap3Iconlib","fontawesome3Iconlib","fontawesome4Iconlib","fontawesome5Iconlib","bootstrap3","fontawesome3","fontawesome4","fontawesome5","jqueryui","jqueryuiIconlib","openiconic","openiconicIconlib","spectre","spectreIconlib","defaultResolver","primitive","boolean","any","binaryEncoding","enumeratedProperties","arraysOfStrings","uniqueItems","starratings","describeBy","autoComplete","markdown","xhtml","aceModes","colorPicker","refs_with_info","refs_prefix","refs_counter","_subSchema1","_expandSubSchema","not","_subSchema2","extended","_extended","extendSchemas","s","_asyncloadExternalRefs","_getFileBase","recurseAllOf","_schema","$ref","refWithPointerSplit","sub","expandRecursivePointer","refObj","_getRef","warn","pointer","subschema","$refs","func","call","m","firstIteration","_manageRecursivePointer","mergeRefs","newrefs","refBase","refCounter","refPointer","_getExternalRefs","$id","ajaxBase","_getFileBaseFromFileLocation","fileLocationString","pathItems","uri","waiting","_isUniformResourceName","urnResolver","urn_resolver","urn","response","externalSchema","ajax","_joinUrl","ajax_cache_responses","schemaFromCache","cacheGet","Promise","resolve","r","XMLHttpRequest","ajaxCredentials","withCredentials","overrideMimeType","open","send","responseText","cacheSet","newfileBase","obj1","obj2","isRequiredOrDefaultProperties","merge","p","c","mergeType","n","ajax_cache_buster","toISOString","localStorage","setItem","getCacheKey","cacheBuster","getCacheBuster","resultRaw","getItem","resultDecoded","cacheDelete","removeItem","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","getElementsByTagName","titles","div","minusBtn","plusBtn","initialize","Number","stepDown","stepUp","startvalue","updateOutput","formName","buttonAlign","remove_button_labels","spanEl","propertyName","pName","styles","span","tabId","getTopIndentedPanel","applyStyles","opacity","background","start","barebonesTheme","errmsg","group","borderColor","bootstrap3Theme","queuedInputErrorText","marginLeft","li","bar","percentage","inputGroupContainer","inputGroup","input_size","custom_forms","object_indent","object_background","object_text","table_border","table_zebrastyle","bootstrap4Theme","prepend","append","unique","now","random","ctrl","liel","ael","bootstrap5Theme","htmlTheme","bootstrap4","bootstrap5","jqueryuiTheme","barebones","spectreTheme","tailwind","tailwindTheme","fontWeight","fontSize","lineHeight","fontStyle","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","performance","_validateSubSchema","valid","_validateSchema","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","bestFit","subSchema","subFit","_validateV3Required","_validateByValueType","_expandSchemaLink","_validateDateTimeSubSchema","_validateUUIDSchema","_validateCustomValidator","_removeDuplicateErrors","divisor","mod","equals","_validateInteger","abs","dateFormat","_validateFlatPicker","compareValue","config","seperator","l10n","rangeSeparator","selectedDates","formatDate","parseDate","err","errorDateFormat","validatorRx","ipValidator","validateIpv4","parts","part","validateIpv6","validateHostname"],"mappings":"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;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;;;;;;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;AACA;AACA;AACA;;;;;;;;;;;;AC3BA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,YAAY,mBAAO,CAAC,qEAAoB;AACxC,WAAW,mBAAO,CAAC,qGAAoC;AACvD,WAAW,mBAAO,CAAC,mEAAmB;AACtC,oBAAoB,mBAAO,CAAC,yGAAsC;AAClE,aAAa,mBAAO,CAAC,qFAA4B;AACjD,cAAc,mBAAO,CAAC,uFAA6B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;AC1GA,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;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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;AAC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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,YAAY,EAAE;AACzE;AACA,sBAAsB,cAAc,eAAe,cAAc;AACjE;AACA;AACA;AACA,0CAA0C,cAAc;AACxD;AACA;AACA;AACA,CAAC;;AAED;AACA,yDAAyD,cAAc;AACvE,CAAC;;AAED;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;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO,GAAG,eAAe;;AAEzB;AACA,uFAAuF,eAAe;AACtG;;AAEA;AACA;AACA;AACA,KAAK,gBAAgB;;AAErB;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG,2CAA2C;AAC9C;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA,GAAG,8CAA8C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,GAAG,yDAAyD;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,GAAG,2DAA2D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACvYD,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,aAAa,mBAAO,CAAC,qFAA4B;AACjD,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,YAAY,mBAAO,CAAC,qEAAoB;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,wCAAwC,cAAc;AACtD,CAAC;AACD;AACA,+BAA+B,cAAc;AAC7C,CAAC;AACD;;AAEA,GAAG,8DAA8D;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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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;A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6FAAgC;AAC9D,mCAAmC,mBAAO,CAAC,6GAAwC;AACnF,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,qBAAqB,mBAAO,CAAC,6FAAgC;AAC7D,0BAA0B,mBAAO,CAAC,uFAA6B;AAC/D,eAAe,mBAAO,CAAC,yFAA8B;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mDAAmD;AACnD,sBAAsB,yCAAyC,WAAW,IAAI;AAC9E,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF;AACA,KAAK;AACL;AACA,mDAAmD,iDAAiD;AACpG,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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,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;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA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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","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 fails = require('../internals/fails');\nvar padStart = require('../internals/string-pad').start;\n\nvar abs = Math.abs;\nvar DatePrototype = Date.prototype;\nvar getTime = DatePrototype.getTime;\nvar nativeDateToISOString = DatePrototype.toISOString;\n\n// `Date.prototype.toISOString` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit fails here:\nmodule.exports = (fails(function () {\n return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n nativeDateToISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var date = this;\n var year = date.getUTCFullYear();\n var milliseconds = date.getUTCMilliseconds();\n var sign = year < 0 ? '-' : year > 9999 ? '+' : '';\n return sign + padStart(abs(year), sign ? 6 : 4, 0) +\n '-' + padStart(date.getUTCMonth() + 1, 2, 0) +\n '-' + padStart(date.getUTCDate(), 2, 0) +\n 'T' + padStart(date.getUTCHours(), 2, 0) +\n ':' + padStart(date.getUTCMinutes(), 2, 0) +\n ':' + padStart(date.getUTCSeconds(), 2, 0) +\n '.' + padStart(milliseconds, 3, 0) +\n 'Z';\n} : nativeDateToISOString;\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","module.exports = typeof window == 'object';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\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 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 global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\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 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","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\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","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\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","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\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","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = String(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: 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 global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\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 $ = require('../internals/export');\nvar toISOString = require('../internals/date-to-iso-string');\n\n// `Date.prototype.toISOString` method\n// https://tc39.es/ecma262/#sec-date.prototype.toisostring\n// PhantomJS / old WebKit has a broken implementations\n$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {\n toISOString: toISOString\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","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromiseConstructorPrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructorPrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromiseConstructorPrototype = PromiseConstructor.prototype;\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructorPrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromiseConstructorPrototype['catch'], { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromiseConstructorPrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\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","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","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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'\nimport { Validator } from './validator.js'\nimport { SchemaLoader } from './schemaloader.js'\nimport { editors } from './editors/index.js'\nimport { templates } from './templates/index.js'\nimport { iconlibs } from './iconlibs/index.js'\nimport { themes } from './themes/index.js'\nimport { extend, getShadowParent, hasOwnProperty } from './utilities.js'\nimport { AbstractEditor } from './editor'\nimport { AbstractTheme } from './theme'\nimport { AbstractIconLib } from './iconlib'\nimport styleRules from './style.css.js'\n\nexport class JSONEditor {\n constructor (element, options = {}) {\n if (!(element instanceof Element)) throw new Error('element should be an instance of Element')\n\n this.element = element\n this.options = extend({}, JSONEditor.defaults.options, options)\n this.ready = false\n this.copyClipboard = null\n this.schema = this.options.schema\n this.template = this.options.template\n this.translate = this.options.translate || JSONEditor.defaults.translate\n this.translateProperty = this.options.translateProperty || JSONEditor.defaults.translateProperty\n this.uuid = 0\n this.__data = {}\n const themeName = this.options.theme || JSONEditor.defaults.theme\n const themeClass = JSONEditor.defaults.themes[themeName]\n\n /* Load editors and selected theme style rules */\n if (!themeClass) throw new Error(`Unknown theme ${themeName}`)\n this.element.setAttribute('data-theme', themeName)\n this.element.classList.add('je-not-loaded')\n this.element.classList.remove('je-ready')\n // eslint-disable-next-line new-cap\n this.theme = new themeClass(this)\n const rules = extend(styleRules, this.getEditorsRules())\n\n /* Call addNewStyleRulesToShadowRoot if shadowRoot is found, otherwise call addNewStyleRules */\n const addRules = (themeName, rules, shadowRoot) => shadowRoot\n ? this.addNewStyleRulesToShadowRoot(themeName, rules, shadowRoot)\n : this.addNewStyleRules(themeName, rules)\n\n if (!this.theme.options.disable_theme_rules) {\n /* Attempt to locate a shadowRoot parent (i.e. in Web Components) */\n const shadowRoot = getShadowParent(this.element)\n addRules('default', rules, shadowRoot)\n if (typeof themeClass.rules !== 'undefined') {\n addRules(themeName, themeClass.rules, shadowRoot)\n }\n }\n\n /* Init icon class */\n const iconClass = JSONEditor.defaults.iconlibs[this.options.iconlib || JSONEditor.defaults.iconlib]\n // eslint-disable-next-line new-cap\n if (iconClass) this.iconlib = new iconClass()\n\n this.root_container = this.theme.getContainer()\n this.element.appendChild(this.root_container)\n this.promise = this.load()\n }\n\n async load () {\n const fetchUrl = document.location.origin + document.location.pathname.toString()\n const loader = new SchemaLoader(this.options)\n this.expandSchema = (schema) => loader.expandSchema(schema)\n this.expandRefs = (schema, fileBase) => loader.expandRefs(schema, fileBase)\n const location = document.location.toString()\n const schema = await loader.load(this.schema, fetchUrl, location)\n const validatorOptions = this.options.custom_validators ? { custom_validators: this.options.custom_validators } : {}\n this.validator = new Validator(this, null, validatorOptions, JSONEditor.defaults)\n const editorClass = this.getEditorClass(schema)\n this.root = this.createEditor(editorClass, {\n jsoneditor: this,\n schema,\n required: true,\n container: this.root_container\n })\n\n this.root.preBuild()\n this.root.build()\n this.root.postBuild()\n\n /* Starting data */\n if (hasOwnProperty(this.options, 'startval')) this.root.setValue(this.options.startval)\n\n this.validation_results = this.validator.validate(this.root.getValue())\n this.root.showValidationErrors(this.validation_results)\n this.ready = true\n this.element.classList.remove('je-not-loaded')\n this.element.classList.add('je-ready')\n\n /* Fire ready event asynchronously */\n window.requestAnimationFrame(() => {\n if (!this.ready) return\n this.validation_results = this.validator.validate(this.root.getValue())\n this.root.showValidationErrors(this.validation_results)\n this.trigger('ready')\n this.trigger('change')\n })\n }\n\n getValue () {\n if (!this.ready) throw new Error('JSON Editor not ready yet. Make sure the load method is complete')\n\n return this.root.getValue()\n }\n\n setValue (value) {\n if (!this.ready) throw new Error('JSON Editor not ready yet. Make sure the load method is complete')\n\n this.root.setValue(value)\n return this\n }\n\n validate (value) {\n if (!this.ready) throw new Error('JSON Editor not ready yet. Make sure the load method is complete')\n\n /* Custom value */\n if (arguments.length === 1) {\n return this.validator.validate(value)\n /* Current value (use cached result) */\n } else {\n return this.validation_results\n }\n }\n\n destroy () {\n if (this.destroyed) return\n if (!this.ready) return\n\n this.schema = null\n this.options = null\n this.root.destroy()\n this.root = null\n this.root_container = null\n this.validator = null\n this.validation_results = null\n this.theme = null\n this.iconlib = null\n this.template = null\n this.__data = null\n this.ready = false\n this.element.innerHTML = ''\n this.element.removeAttribute('data-theme')\n this.destroyed = true\n }\n\n on (event, callback) {\n this.callbacks = this.callbacks || {}\n this.callbacks[event] = this.callbacks[event] || []\n this.callbacks[event].push(callback)\n\n return this\n }\n\n off (event, callback) {\n /* Specific callback */\n if (event && callback) {\n this.callbacks = this.callbacks || {}\n this.callbacks[event] = this.callbacks[event] || []\n const newcallbacks = []\n for (let i = 0; i < this.callbacks[event].length; i++) {\n if (this.callbacks[event][i] === callback) continue\n newcallbacks.push(this.callbacks[event][i])\n }\n this.callbacks[event] = newcallbacks\n } else if (event) {\n /* All callbacks for a specific event */\n this.callbacks = this.callbacks || {}\n this.callbacks[event] = []\n } else {\n /* All callbacks for all events */\n this.callbacks = {}\n }\n\n return this\n }\n\n trigger (event, editor) {\n if (this.callbacks && this.callbacks[event] && this.callbacks[event].length) {\n for (let i = 0; i < this.callbacks[event].length; i++) {\n this.callbacks[event][i].apply(this, [editor])\n }\n }\n\n return this\n }\n\n setOption (option, value) {\n if (option === 'show_errors') {\n this.options.show_errors = value\n this.onChange()\n } else {\n /* Only the `show_errors` option is supported for now */\n throw new Error(`Option ${option} must be set during instantiation and cannot be changed later`)\n }\n\n return this\n }\n\n getEditorsRules () {\n const extendRule = (rules, editorClass) => editorClass.rules ? extend(rules, editorClass.rules) : rules\n return Object.values(JSONEditor.defaults.editors).reduce(extendRule, {})\n }\n\n getEditorClass (schema) {\n let classname\n\n schema = this.expandSchema(schema)\n\n JSONEditor.defaults.resolvers.find(resolver => {\n classname = resolver(schema)\n return classname && JSONEditor.defaults.editors[classname]\n })\n if (!classname) throw new Error(`Unknown editor for schema ${JSON.stringify(schema)}`)\n if (!JSONEditor.defaults.editors[classname]) throw new Error(`Unknown editor ${classname}`)\n return JSONEditor.defaults.editors[classname]\n }\n\n createEditor (editorClass, options, depthCounter = 1) {\n options = extend({}, editorClass.options || {}, options)\n // eslint-disable-next-line new-cap\n return new editorClass(options, JSONEditor.defaults, depthCounter)\n }\n\n onChange () {\n if (!this.ready) return\n\n if (this.firing_change) return\n this.firing_change = true\n\n window.requestAnimationFrame(() => {\n this.firing_change = false\n if (!this.ready) return\n\n /* Validate and cache results */\n this.validation_results = this.validator.validate(this.root.getValue())\n\n if (this.options.show_errors !== 'never') {\n this.root.showValidationErrors(this.validation_results)\n } else {\n this.root.showValidationErrors([])\n }\n\n /* Fire change event */\n this.trigger('change')\n })\n\n return this\n }\n\n compileTemplate (template, name = JSONEditor.defaults.template) {\n let engine\n\n /* Specifying a preset engine */\n if (typeof name === 'string') {\n if (!JSONEditor.defaults.templates[name]) throw new Error(`Unknown template engine ${name}`)\n engine = JSONEditor.defaults.templates[name]()\n\n if (!engine) throw new Error(`Template engine ${name} missing required library.`)\n } else {\n /* Specifying a custom engine */\n engine = name\n }\n\n if (!engine) throw new Error('No template engine set')\n if (!engine.compile) throw new Error('Invalid template engine set')\n\n return engine.compile(template)\n }\n\n _data (el, key, value) {\n /* Setting data */\n if (arguments.length === 3) {\n let uuid\n if (el.hasAttribute(`data-jsoneditor-${key}`)) {\n uuid = el.getAttribute(`data-jsoneditor-${key}`)\n } else {\n uuid = this.uuid++\n el.setAttribute(`data-jsoneditor-${key}`, uuid)\n }\n\n this.__data[uuid] = value\n } else {\n /* Getting data */\n /* No data stored */\n if (!el.hasAttribute(`data-jsoneditor-${key}`)) return null\n\n return this.__data[el.getAttribute(`data-jsoneditor-${key}`)]\n }\n }\n\n registerEditor (editor) {\n this.editors = this.editors || {}\n this.editors[editor.path] = editor\n return this\n }\n\n unregisterEditor (editor) {\n this.editors = this.editors || {}\n this.editors[editor.path] = null\n return this\n }\n\n getEditor (path) {\n if (!this.editors) return\n return this.editors[path]\n }\n\n watch (path, callback) {\n this.watchlist = this.watchlist || {}\n this.watchlist[path] = this.watchlist[path] || []\n this.watchlist[path].push(callback)\n\n return this\n }\n\n unwatch (path, callback) {\n if (!this.watchlist || !this.watchlist[path]) return this\n /* If removing all callbacks for a path */\n if (!callback) {\n this.watchlist[path] = null\n return this\n }\n\n const newlist = []\n for (let i = 0; i < this.watchlist[path].length; i++) {\n if (this.watchlist[path][i] === callback) continue\n else newlist.push(this.watchlist[path][i])\n }\n this.watchlist[path] = newlist.length ? newlist : null\n return this\n }\n\n notifyWatchers (path) {\n if (!this.watchlist || !this.watchlist[path]) return this\n for (let i = 0; i < this.watchlist[path].length; i++) {\n this.watchlist[path][i]()\n }\n }\n\n isEnabled () {\n return !this.root || this.root.isEnabled()\n }\n\n enable () {\n this.root.enable()\n }\n\n disable () {\n this.root.disable()\n }\n\n setCopyClipboardContents (value) {\n this.copyClipboard = value\n }\n\n getCopyClipboardContents () {\n return this.copyClipboard\n }\n\n addNewStyleRules (themeName, rules) {\n let styleTag = document.querySelector(`#theme-${themeName}`)\n\n if (!styleTag) {\n styleTag = document.createElement('style')\n styleTag.setAttribute('id', `theme-${themeName}`)\n styleTag.appendChild(document.createTextNode(''))\n document.head.appendChild(styleTag)\n }\n\n const sheet = styleTag.sheet ? styleTag.sheet : styleTag.styleSheet\n const qualifier = this.element.nodeName.toLowerCase()\n while (sheet.cssRules.length > 0) {\n sheet.deleteRule(0)\n }\n Object.keys(rules).forEach(selector => {\n const sel = themeName === 'default' ? selector : `${qualifier}[data-theme=\"${themeName}\"] ${selector}`\n\n // all browsers, except IE before version 9\n if (sheet.insertRule) sheet.insertRule(sel + ' {' + decodeURIComponent(rules[selector]) + '}', 0)\n // Internet Explorer before version 9\n else if (sheet.addRule) sheet.addRule(sel, decodeURIComponent(rules[selector]), 0)\n })\n }\n\n addNewStyleRulesToShadowRoot (themeName, rules, shadowRoot) {\n const qualifier = this.element.nodeName.toLowerCase()\n let cssText = ''\n\n Object.keys(rules).forEach(selector => {\n const sel = themeName === 'default' ? selector : `${qualifier}[data-theme=\"${themeName}\"] ${selector}`\n cssText += sel + ' {' + decodeURIComponent(rules[selector]) + '}' + '\\n'\n })\n const styleSheet = new CSSStyleSheet()\n styleSheet.replaceSync(cssText)\n shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, styleSheet]\n }\n}\n\nJSONEditor.defaults = defaults\nJSONEditor.AbstractEditor = AbstractEditor\nJSONEditor.AbstractTheme = AbstractTheme\nJSONEditor.AbstractIconLib = AbstractIconLib\n\nObject.assign(JSONEditor.defaults.themes, themes)\nObject.assign(JSONEditor.defaults.editors, editors)\nObject.assign(JSONEditor.defaults.templates, templates)\nObject.assign(JSONEditor.defaults.iconlibs, iconlibs)\n","import { resolvers } from './resolvers.js'\nimport { editors } from './editors/index.js'\n\n/* default theme */\nconst theme = 'html'\n\n/* default template engine */\nconst template = 'default'\n\n/* Global callback list */\nconst callbacks = {}\n\nconst themes = {}\nconst templates = {}\nconst iconlibs = {}\nconst languages = {}\n// eslint-disable-next-line camelcase\nconst custom_validators = []\n\n/* Translation strings and default languages */\n// eslint-disable-next-line camelcase\nconst default_language = 'en'\n// eslint-disable-next-line camelcase\nconst language = default_language\n\nlanguages.en = {\n /**\n * When a property is not set\n */\n error_notset: 'Property must be set',\n /**\n * When a string must not be empty\n */\n error_notempty: 'Value required',\n /**\n * When a value is not one of the enumerated values\n */\n error_enum: 'Value must be one of the enumerated values',\n /**\n * When a value is not equal to the constant\n */\n error_const: 'Value must be the constant value',\n /**\n * When a value doesn't validate any schema of a 'anyOf' combination\n */\n error_anyOf: 'Value must validate against at least one of the provided schemas',\n /**\n * When a value doesn't validate\n * @variables This key takes one variable: The number of schemas the value does not validate\n */\n error_oneOf: 'Value must validate against exactly one of the provided schemas. It currently validates against {{0}} of the schemas.',\n /**\n * When a value does not validate a 'not' schema\n */\n error_not: 'Value must not validate against the provided schema',\n /**\n * When a value does not match any of the provided types\n */\n error_type_union: 'Value must be one of the provided types',\n /**\n * When a value does not match the given type\n * @variables This key takes one variable: The type the value should be of\n */\n error_type: 'Value must be of type {{0}}',\n /**\n * When the value validates one of the disallowed types\n */\n error_disallow_union: 'Value must not be one of the provided disallowed types',\n /**\n * When the value validates a disallowed type\n * @variables This key takes one variable: The type the value should not be of\n */\n error_disallow: 'Value must not be of type {{0}}',\n /**\n * When a value is not a multiple of or divisible by a given number\n * @variables This key takes one variable: The number mentioned above\n */\n error_multipleOf: 'Value must be a multiple of {{0}}',\n /**\n * When a value is greater than it's supposed to be (exclusive)\n * @variables This key takes one variable: The maximum\n */\n error_maximum_excl: 'Value must be less than {{0}}',\n /**\n * When a value is greater than it's supposed to be (inclusive\n * @variables This key takes one variable: The maximum\n */\n error_maximum_incl: 'Value must be at most {{0}}',\n /**\n * When a value is lesser than it's supposed to be (exclusive)\n * @variables This key takes one variable: The minimum\n */\n error_minimum_excl: 'Value must be greater than {{0}}',\n /**\n * When a value is lesser than it's supposed to be (inclusive)\n * @variables This key takes one variable: The minimum\n */\n error_minimum_incl: 'Value must be at least {{0}}',\n /**\n * When a value have too many characters\n * @variables This key takes one variable: The maximum character count\n */\n error_maxLength: 'Value must be at most {{0}} characters long',\n /**\n * When a value does not have enough characters\n * @variables This key takes one variable: The minimum character count\n */\n error_minLength: 'Value must be at least {{0}} characters long',\n /**\n * When a value does not match a given pattern\n */\n error_pattern: 'Value must match the pattern {{0}}',\n /**\n * When an array has additional items whereas it is not supposed to\n */\n error_additionalItems: 'No additional items allowed in this array',\n /**\n * When there are to many items in an array\n * @variables This key takes one variable: The maximum item count\n */\n error_maxItems: 'Value must have at most {{0}} items',\n /**\n * When there are not enough items in an array\n * @variables This key takes one variable: The minimum item count\n */\n error_minItems: 'Value must have at least {{0}} items',\n /**\n * When an array is supposed to have unique items but has duplicates\n */\n error_uniqueItems: 'Array must have unique items',\n /**\n * When there are too many properties in an object\n * @variables This key takes one variable: The maximum property count\n */\n error_maxProperties: 'Object must have at most {{0}} properties',\n /**\n * When there are not enough properties in an object\n * @variables This key takes one variable: The minimum property count\n */\n error_minProperties: 'Object must have at least {{0}} properties',\n /**\n * When a required property is not defined\n * @variables This key takes one variable: The name of the missing property\n */\n error_required: \"Object is missing the required property '{{0}}'\",\n /**\n * When there is an additional property is set whereas there should be none\n * @variables This key takes one variable: The name of the additional property\n */\n error_additional_properties: 'No additional properties allowed, but property {{0}} is set',\n /**\n * When there is a propertyName that sets a max length and a property name exceeds the max length\n * @variables This key takes one variable: The name of the invalid property\n */\n error_property_names_exceeds_maxlength: 'Property name {{0}} exceeds maxLength',\n /**\n * When there is a propertyName that sets an enum and a property name matches none of the possible enum\n * @variables This key takes one variable: The name of the invalid property\n */\n error_property_names_enum_mismatch: 'Property name {{0}} does not match any enum values',\n /**\n * When there is a propertyName that sets a const and a property does not match the const value\n * @variables This key takes one variable: The name of the invalid property\n */\n error_property_names_const_mismatch: 'Property name {{0}} does not match the const value',\n /**\n * When there is a propertyName that sets a pattern and a property name does not match the pattern\n * @variables This key takes one variable: The name of the invalid property\n */\n error_property_names_pattern_mismatch: 'Property name {{0}} does not match pattern',\n /**\n * When the propertyName is set to false and there is at least one property\n * @variables This key takes one variable: The name of the invalid property\n */\n error_property_names_false: 'Property name {{0}} fails when propertyName is false',\n /**\n * When the propertyName specifies a maxLength that is not a number\n * @variables This key takes one variable: The name of the current property\n */\n error_property_names_maxlength: 'Property name {{0}} cannot match invalid maxLength',\n /**\n * When the propertyName specifies an enum that is not an array\n * @variables This key takes one variable: The name of the current property\n */\n error_property_names_enum: 'Property name {{0}} cannot match invalid enum',\n /**\n * When the propertyName specifies a pattern that is not a string\n * @variables This key takes one variable: The name of the current property\n */\n error_property_names_pattern: 'Property name {{0}} cannot match invalid pattern',\n /**\n * When the propertyName is unsupported\n * @variables This key takes one variable: The name of the invalid propertyName\n */\n error_property_names_unsupported: 'Unsupported propertyName {{0}}',\n /**\n * When a dependency is not resolved\n * @variables This key takes one variable: The name of the missing property for the dependency\n */\n error_dependency: 'Must have property {{0}}',\n /**\n * When a date is in incorrect format\n * @variables This key takes one variable: The valid format\n */\n error_date: 'Date must be in the format {{0}}',\n /**\n * When a time is in incorrect format\n * @variables This key takes one variable: The valid format\n */\n error_time: 'Time must be in the format {{0}}',\n /**\n * When a datetime-local is in incorrect format\n * @variables This key takes one variable: The valid format\n */\n error_datetime_local: 'Datetime must be in the format {{0}}',\n /**\n * When a integer date is less than 1 January 1970\n */\n error_invalid_epoch: 'Date must be greater than 1 January 1970',\n /**\n * When an IPv4 is in incorrect format\n */\n error_ipv4: 'Value must be a valid IPv4 address in the form of 4 numbers between 0 and 255, separated by dots',\n /**\n * When an IPv6 is in incorrect format\n */\n error_ipv6: 'Value must be a valid IPv6 address',\n /**\n * When a hostname is in incorrect format\n */\n error_hostname: 'The hostname has the wrong format',\n /**\n * When uploads max size limit is exceeded\n */\n upload_max_size: 'Filesize too large. Max size is ',\n /**\n * When the mime type does not match the type of the file\n */\n upload_wrong_file_format: 'Wrong file format. Allowed format(s): ',\n /**\n * Text/Title on Save button\n */\n button_save: 'Save',\n /**\n * Text/Title on Copy button\n */\n button_copy: 'Copy',\n /**\n * Text/Title on Cancel button\n */\n button_cancel: 'Cancel',\n /**\n * Text/Title on Add button\n */\n button_add: 'Add',\n /**\n * Text on Delete All buttons\n */\n button_delete_all: 'All',\n /**\n * Title on Delete All buttons\n */\n button_delete_all_title: 'Delete All',\n /**\n * Text on Delete Last buttons\n * @variable This key takes one variable: The title of object to delete\n */\n button_delete_last: 'Last {{0}}',\n /**\n * Title on Delete Last buttons\n * @variable This key takes one variable: The title of object to delete\n */\n button_delete_last_title: 'Delete Last {{0}}',\n /**\n * Title on Add Row buttons\n * @variable This key takes one variable: The title of object to add\n */\n button_add_row_title: 'Add {{0}}',\n /**\n * Title on Move Down buttons\n */\n button_move_down_title: 'Move down',\n /**\n * Title on Move Up buttons\n */\n button_move_up_title: 'Move up',\n /**\n * Text on Object Properties buttons\n */\n button_properties: 'Properties',\n /**\n * Title on Object Properties buttons\n */\n button_object_properties: 'Object Properties',\n /**\n * Title on Copy Row button\n * @variable This key takes one variable: The title of object to delete\n */\n button_copy_row_title: 'Copy {{0}}',\n /**\n * Title on Delete Row buttons\n * @variable This key takes one variable: The title of object to delete\n */\n button_delete_row_title: 'Delete {{0}}',\n /**\n * Title on Delete Row buttons, short version (no parameter with the object title)\n */\n button_delete_row_title_short: 'Delete',\n /**\n * Title on Copy Row buttons, short version (no parameter with the object title)\n */\n button_copy_row_title_short: 'Copy',\n /**\n * Title on Collapse buttons\n */\n button_collapse: 'Collapse',\n /**\n * Title on Expand buttons\n */\n button_expand: 'Expand',\n /**\n * Title on Edit JSON buttons\n */\n button_edit_json: 'Edit JSON',\n /**\n * Text/Title on Upload buttons\n */\n button_upload: 'Upload',\n /**\n * Title on Flatpickr toggle buttons\n */\n flatpickr_toggle_button: 'Toggle',\n /**\n * Title on Flatpickr clear buttons\n */\n flatpickr_clear_button: 'Clear',\n /**\n * Choices input field placeholder text\n */\n choices_placeholder_text: 'Start typing to add value',\n /**\n * Default title for array items\n */\n default_array_item_title: 'item',\n /**\n * Warning when deleting a node\n */\n button_delete_node_warning: 'Are you sure you want to remove this node?'\n}\n\n/* Default per-editor options */\nObject.entries(editors).forEach(([i, editor]) => { editors[i].options = editor.options || {} })\n\n/* Default upload handler */\nfunction upload (type, file, cbs) {\n // eslint-disable-next-line no-console\n console.log('Upload handler required for upload editor')\n}\n\n/* String translate function */\nfunction translate (key, variables, schema) {\n let schemaMessages = {}\n\n if (schema && schema.options && schema.options.error_messages && schema.options.error_messages[defaults.language]) {\n schemaMessages = schema.options.error_messages[defaults.language]\n }\n\n const lang = defaults.languages[defaults.language]\n\n if (!lang) throw new Error(`Unknown language ${defaults.language}`)\n\n let string = schemaMessages[key] || lang[key] || defaults.languages[default_language][key] || key\n\n if (variables) {\n for (let i = 0; i < variables.length; i++) {\n string = string.replace(new RegExp(`\\\\{\\\\{${i}}}`, 'g'), variables[i])\n }\n }\n\n return string\n}\n\n/* Text element translate function */\n\nfunction translateProperty (text, variables) {\n return text\n}\n\n/* Default options when initializing JSON Editor */\nconst options = {\n upload,\n use_name_attributes: true,\n prompt_before_delete: true,\n use_default_values: true,\n max_depth: 0\n}\n\n/* This assignment was previously in index.js but makes more sense here */\nexport const defaults = {\n options,\n theme,\n template,\n themes,\n callbacks,\n templates,\n iconlibs,\n editors,\n languages,\n resolvers,\n custom_validators,\n default_language,\n language,\n translate,\n translateProperty\n}\n","import { extend, hasOwnProperty } from './utilities.js'\n\n/**\n * All editors should extend from this class\n */\nexport class AbstractEditor {\n constructor (options, defaults) {\n this.defaults = defaults\n this.jsoneditor = options.jsoneditor\n this.theme = this.jsoneditor.theme\n this.template_engine = this.jsoneditor.template\n this.iconlib = this.jsoneditor.iconlib\n this.translate = this.jsoneditor.translate || this.defaults.translate\n this.translateProperty = this.jsoneditor.translateProperty || this.defaults.translateProperty\n this.original_schema = options.schema\n this.schema = this.jsoneditor.expandSchema(this.original_schema)\n this.active = true\n this.options = extend({}, (this.options || {}), (this.schema.options || {}), (options.schema.options || {}), options)\n\n this.formname = this.jsoneditor.options.form_name_root || 'root'\n\n if (!options.path && !this.schema.id) this.schema.id = this.formname\n this.path = options.path || this.formname\n this.formname = options.formname || this.path.replace(/\\.([^.]+)/g, '[$1]')\n\n this.parent = options.parent\n this.key = this.parent !== undefined ? this.path.split('.').slice(this.parent.path.split('.').length).join('.') : this.path\n\n this.link_watchers = []\n this.watchLoop = false\n\n if (options.container) this.setContainer(options.container)\n this.registerDependencies()\n }\n\n onChildEditorChange (editor) {\n this.onChange(true)\n }\n\n notify () {\n if (this.path) this.jsoneditor.notifyWatchers(this.path)\n }\n\n change () {\n if (this.parent) this.parent.onChildEditorChange(this)\n else if (this.jsoneditor) this.jsoneditor.onChange()\n }\n\n onChange (bubble) {\n this.notify()\n if (this.watch_listener) this.watch_listener()\n if (bubble) this.change()\n }\n\n register () {\n this.jsoneditor.registerEditor(this)\n this.onChange()\n }\n\n unregister () {\n if (!this.jsoneditor) return\n this.jsoneditor.unregisterEditor(this)\n }\n\n getNumColumns () {\n return 12\n }\n\n isActive () {\n return this.active\n }\n\n activate () {\n this.active = true\n this.optInCheckbox.checked = true\n this.enable()\n this.change()\n }\n\n deactivate () {\n /* only non required properties can be deactivated. */\n if (!this.isRequired()) {\n this.active = false\n this.optInCheckbox.checked = false\n this.disable()\n this.change()\n }\n }\n\n registerDependencies () {\n this.dependenciesFulfilled = true\n const deps = this.options.dependencies\n if (!deps) {\n return\n }\n\n Object.keys(deps).forEach(dependency => {\n let path = this.path.split('.')\n path[path.length - 1] = dependency\n path = path.join('.')\n this.jsoneditor.watch(path, () => {\n this.evaluateDependencies()\n })\n })\n }\n\n evaluateDependencies () {\n const wrapper = this.container || this.control\n if (!wrapper || this.jsoneditor === null) {\n return\n }\n\n const deps = this.options.dependencies\n if (!deps) {\n return\n }\n // Assume true and set to false if any unmet dependencies are found\n const previousStatus = this.dependenciesFulfilled\n this.dependenciesFulfilled = true\n\n Object.keys(deps).forEach(dependency => {\n let path = this.path.split('.')\n path[path.length - 1] = dependency\n path = path.join('.')\n const choices = deps[dependency]\n this.checkDependency(path, choices)\n })\n\n if (this.dependenciesFulfilled !== previousStatus) {\n this.notify()\n }\n\n let displayMode = this.dependenciesFulfilled ? 'block' : 'none'\n\n if (this.options.hidden) {\n displayMode = 'none'\n }\n\n if (wrapper.tagName === 'TD') {\n Object.keys(wrapper.childNodes).forEach(child => (wrapper.childNodes[child].style.display = displayMode))\n } else wrapper.style.display = displayMode\n }\n\n checkDependency (path, choices) {\n if (this.path === path || this.jsoneditor === null) {\n return\n }\n\n const editor = this.jsoneditor.getEditor(path)\n const value = editor ? editor.getValue() : undefined\n\n if (!editor || !editor.dependenciesFulfilled) {\n this.dependenciesFulfilled = false\n } else if (Array.isArray(choices)) {\n this.dependenciesFulfilled = choices.some(choice => {\n if (JSON.stringify(value) === JSON.stringify(choice)) {\n return true\n }\n })\n } else if (typeof choices === 'object') {\n if (typeof value !== 'object') {\n this.dependenciesFulfilled = choices === value\n } else {\n Object.keys(choices).some(key => {\n if (!hasOwnProperty(choices, key)) {\n return false\n }\n if (!hasOwnProperty(value, key) || choices[key] !== value[key]) {\n this.dependenciesFulfilled = false\n return true\n }\n })\n }\n } else if (typeof choices === 'string' || typeof choices === 'number') {\n this.dependenciesFulfilled = this.dependenciesFulfilled && value === choices\n } else if (typeof choices === 'boolean') {\n if (choices) {\n this.dependenciesFulfilled = this.dependenciesFulfilled && (value || value.length > 0)\n } else {\n this.dependenciesFulfilled = this.dependenciesFulfilled && (!value || value.length === 0)\n }\n }\n }\n\n setContainer (container) {\n this.container = container\n this.setContainerAttributes()\n if (this.schema.id) this.container.setAttribute('data-schemaid', this.schema.id)\n if (this.schema.type && typeof this.schema.type === 'string') this.container.setAttribute('data-schematype', this.schema.type)\n this.container.setAttribute('data-schemapath', this.path)\n }\n\n setOptInCheckbox (header) {\n /* the active/deactive checbox control. */\n\n this.optInCheckbox = document.createElement('input')\n this.optInCheckbox.setAttribute('type', 'checkbox')\n this.optInCheckbox.setAttribute('style', 'margin: 0 10px 0 0;')\n this.optInCheckbox.classList.add('json-editor-opt-in')\n\n this.optInCheckbox.addEventListener('click', () => {\n if (this.isActive()) {\n this.deactivate()\n } else {\n this.activate()\n }\n })\n\n /* append active/deactive checkbox if show_opt_in is true */\n const globalOptIn = this.jsoneditor.options.show_opt_in\n const parentOptInDefined = (typeof this.parent.options.show_opt_in !== 'undefined')\n const parentOptInEnabled = (parentOptInDefined && this.parent.options.show_opt_in === true)\n const parentOptInDisabled = (parentOptInDefined && this.parent.options.show_opt_in === false)\n if (parentOptInEnabled || (!parentOptInDisabled && globalOptIn) || (!parentOptInDefined && globalOptIn)) {\n /* and control to type object editors if they are not required */\n if (this.parent && this.parent.schema.type === 'object' && !this.isRequired() && this.header) {\n this.header.appendChild(this.optInCheckbox)\n this.header.insertBefore(this.optInCheckbox, this.header.firstChild)\n }\n }\n }\n\n preBuild () {\n\n }\n\n build () {\n\n }\n\n postBuild () {\n this.setupWatchListeners()\n this.addLinks()\n this.setValue(this.getDefault(), true)\n this.updateHeaderText()\n this.register()\n this.onWatchedFieldChange()\n }\n\n setupWatchListeners () {\n /* Watched fields */\n this.watched = {}\n if (this.schema.vars) this.schema.watch = this.schema.vars\n this.watched_values = {}\n this.watch_listener = () => {\n if (this.refreshWatchedFieldValues()) {\n this.onWatchedFieldChange()\n }\n }\n\n if (hasOwnProperty(this.schema, 'watch')) {\n let path; let pathParts; let first; let root; let adjustedPath\n const myPath = this.container.getAttribute('data-schemapath')\n\n Object.keys(this.schema.watch).forEach(name => {\n path = this.schema.watch[name]\n if (Array.isArray(path)) {\n if (path.length < 2) return\n pathParts = [path[0]].concat(path[1].split('.'))\n } else {\n pathParts = path.split('.')\n if (!this.theme.closest(this.container, `[data-schemaid=\"${pathParts[0]}\"]`)) pathParts.unshift('#')\n }\n first = pathParts.shift()\n\n if (first === '#') first = this.jsoneditor.schema.id || this.jsoneditor.root.formname\n\n /* Find the root node for this template variable */\n root = this.theme.closest(this.container, `[data-schemaid=\"${first}\"]`)\n if (!root) throw new Error(`Could not find ancestor node with id ${first}`)\n\n /* Keep track of the root node and path for use when rendering the template */\n adjustedPath = `${root.getAttribute('data-schemapath')}.${pathParts.join('.')}`\n\n if (myPath.startsWith(adjustedPath)) this.watchLoop = true\n this.jsoneditor.watch(adjustedPath, this.watch_listener)\n\n this.watched[name] = adjustedPath\n })\n }\n\n /* Dynamic header */\n if (this.schema.headerTemplate) {\n this.header_template = this.jsoneditor.compileTemplate(this.schema.headerTemplate, this.template_engine)\n }\n }\n\n addLinks () {\n /* Add links */\n if (!this.no_link_holder) {\n this.link_holder = this.theme.getLinksHolder()\n /* if description element exists, insert the link before */\n if (typeof this.description !== 'undefined') this.description.parentNode.insertBefore(this.link_holder, this.description)\n /* otherwise just insert link at bottom of container */\n else this.container.appendChild(this.link_holder)\n if (this.schema.links) {\n for (let i = 0; i < this.schema.links.length; i++) {\n this.addLink(this.getLink(this.schema.links[i]))\n }\n }\n }\n }\n\n onMove () {}\n\n getButton (text, icon, title, args = []) {\n const btnClass = `json-editor-btn-${icon}`\n if (!this.iconlib) icon = null\n else icon = this.iconlib.getIcon(icon)\n\n text = this.translate(text, args)\n title = this.translate(title, args)\n\n if (!icon && title) {\n text = title\n title = null\n }\n\n const btn = this.theme.getButton(text, icon, title)\n btn.classList.add(btnClass)\n return btn\n }\n\n setButtonText (button, text, icon, title, args = []) {\n if (!this.iconlib) icon = null\n else icon = this.iconlib.getIcon(icon)\n\n text = this.translate(text, args)\n title = this.translate(title, args)\n\n if (!icon && title) {\n text = title\n title = null\n }\n\n return this.theme.setButtonText(button, text, icon, title)\n }\n\n addLink (link) {\n if (this.link_holder) this.link_holder.appendChild(link)\n }\n\n getLink (data) {\n let holder\n let link\n\n /* Get mime type of the link */\n const mime = data.mediaType || 'application/javascript'\n const type = mime.split('/')[0]\n\n /* Template to generate the link href */\n const href = this.jsoneditor.compileTemplate(data.href, this.template_engine)\n const relTemplate = this.jsoneditor.compileTemplate(data.rel ? data.rel : data.href, this.template_engine)\n\n /* Template to generate the link's download attribute */\n let download = null\n if (data.download) download = data.download\n\n if (download && download !== true) {\n download = this.jsoneditor.compileTemplate(download, this.template_engine)\n }\n\n /* Image links */\n if (type === 'image') {\n holder = this.theme.getBlockLinkHolder()\n link = document.createElement('a')\n link.setAttribute('target', '_blank')\n const image = document.createElement('img')\n\n this.theme.createImageLink(holder, link, image)\n\n /* When a watched field changes, update the url */\n this.link_watchers.push(vars => {\n const url = href(vars)\n const rel = relTemplate(vars)\n link.setAttribute('href', url)\n link.setAttribute('title', rel || url)\n image.setAttribute('src', url)\n })\n /* Audio/Video links */\n } else if (['audio', 'video'].includes(type)) {\n holder = this.theme.getBlockLinkHolder()\n\n link = this.theme.getBlockLink()\n link.setAttribute('target', '_blank')\n\n const media = document.createElement(type)\n media.setAttribute('controls', 'controls')\n\n this.theme.createMediaLink(holder, link, media)\n\n /* When a watched field changes, update the url */\n this.link_watchers.push(vars => {\n const url = href(vars)\n const rel = relTemplate(vars)\n link.setAttribute('href', url)\n link.textContent = rel || url\n media.setAttribute('src', url)\n })\n /* Text links or blank link */\n } else {\n link = holder = this.theme.getBlockLink()\n holder.setAttribute('target', '_blank')\n holder.textContent = data.rel\n holder.style.display = 'none' /* Prevent blank links from showing up when using custom view */\n\n /* When a watched field changes, update the url */\n this.link_watchers.push(vars => {\n const url = href(vars)\n const rel = relTemplate(vars)\n if (url) holder.style.display = ''\n holder.setAttribute('href', url)\n holder.textContent = rel || url\n })\n }\n\n if (download && link) {\n if (download === true) {\n link.setAttribute('download', '')\n } else {\n this.link_watchers.push(vars => {\n link.setAttribute('download', download(vars))\n })\n }\n }\n\n if (data.class) link.classList.add(data.class)\n\n return holder\n }\n\n refreshWatchedFieldValues () {\n if (!this.watched_values) return\n const watched = {}\n let changed = false\n\n if (this.watched) {\n Object.keys(this.watched).forEach(name => {\n const editor = this.jsoneditor.getEditor(this.watched[name])\n const val = editor ? editor.getValue() : null\n if (this.watched_values[name] !== val) changed = true\n watched[name] = val\n })\n }\n\n watched.self = this.getValue()\n if (this.watched_values.self !== watched.self) changed = true\n\n this.watched_values = watched\n\n return changed\n }\n\n getWatchedFieldValues () {\n return this.watched_values\n }\n\n updateHeaderText () {\n if (this.header) {\n const headerText = this.getHeaderText()\n /* If the header has children, only update the text node's value */\n if (this.header.children.length) {\n for (let i = 0; i < this.header.childNodes.length; i++) {\n if (this.header.childNodes[i].nodeType === 3) {\n this.header.childNodes[i].nodeValue = this.cleanText(headerText)\n break\n }\n }\n /* Otherwise, just update the entire node */\n } else {\n if (window.DOMPurify) this.header.innerHTML = window.DOMPurify.sanitize(headerText)\n else this.header.textContent = this.cleanText(headerText)\n }\n }\n }\n\n getHeaderText (titleOnly) {\n if (this.header_text) return this.header_text\n else if (titleOnly) return this.translateProperty(this.schema.title)\n else return this.getTitle()\n }\n\n getPathDepth () {\n return this.path.split('.').length\n }\n\n cleanText (txt) {\n /* Clean out HTML tags from txt */\n const tmp = document.createElement('div')\n tmp.innerHTML = txt\n return (tmp.textContent || tmp.innerText)\n }\n\n onWatchedFieldChange () {\n let vars\n if (this.header_template) {\n vars = extend(this.getWatchedFieldValues(), {\n key: this.key,\n i: this.key,\n i0: (this.key * 1),\n i1: (this.key * 1 + 1),\n title: this.getTitle()\n })\n const headerText = this.header_template(vars)\n\n if (headerText !== this.header_text) {\n this.header_text = headerText\n this.updateHeaderText()\n this.notify()\n /* this.fireChangeHeaderEvent(); */\n }\n }\n if (this.link_watchers.length) {\n vars = this.getWatchedFieldValues()\n for (let i = 0; i < this.link_watchers.length; i++) {\n this.link_watchers[i](vars)\n }\n }\n }\n\n setValue (value) {\n this.value = value\n }\n\n getValue () {\n if (!this.dependenciesFulfilled) {\n return undefined\n }\n return this.value\n }\n\n refreshValue () {\n\n }\n\n getChildEditors () {\n return false\n }\n\n destroy () {\n this.unregister(this)\n if (this.watched) {\n Object.values(this.watched).forEach(adjustedPath => this.jsoneditor.unwatch(adjustedPath, this.watch_listener))\n }\n\n this.watched = null\n this.watched_values = null\n this.watch_listener = null\n this.header_text = null\n this.header_template = null\n this.value = null\n if (this.container && this.container.parentNode) this.container.parentNode.removeChild(this.container)\n this.container = null\n this.jsoneditor = null\n this.schema = null\n this.path = null\n this.key = null\n this.parent = null\n }\n\n isDefaultRequired () {\n return this.isRequired() || !!this.jsoneditor.options.use_default_values\n }\n\n getDefault () {\n if (typeof this.schema.default !== 'undefined') {\n return this.schema.default\n }\n\n if (typeof this.schema.enum !== 'undefined') {\n return this.schema.enum[0]\n }\n\n let type = this.schema.type || this.schema.oneOf\n if (type && Array.isArray(type)) type = type[0]\n if (type && typeof type === 'object') type = type.type\n if (type && Array.isArray(type)) type = type[0]\n\n if (typeof type === 'string') {\n if (type === 'number') return this.isDefaultRequired() ? 0.0 : undefined\n if (type === 'boolean') return this.isDefaultRequired() ? false : undefined\n if (type === 'integer') return this.isDefaultRequired() ? 0 : undefined\n if (type === 'string') return this.isDefaultRequired() ? '' : undefined\n if (type === 'null') return null\n if (type === 'object') return {}\n if (type === 'array') return []\n }\n\n return undefined\n }\n\n getTitle () {\n return this.translateProperty(this.schema.title || this.key)\n }\n\n enable () {\n this.disabled = false\n }\n\n disable () {\n this.disabled = true\n }\n\n isEnabled () {\n return !this.disabled\n }\n\n isRequired () {\n if (typeof this.schema.required === 'boolean') return this.schema.required\n else if (this.parent && this.parent.schema && Array.isArray(this.parent.schema.required)) return this.parent.schema.required.includes(this.key)\n else if (this.jsoneditor.options.required_by_default) return true\n else return false\n }\n\n getDisplayText (arr) {\n const disp = []\n const used = {}\n\n /* Determine how many times each attribute name is used. */\n /* This helps us pick the most distinct display text for the schemas. */\n arr.forEach(el => {\n if (el.title) {\n used[el.title] = used[el.title] || 0\n used[el.title]++\n }\n if (el.description) {\n used[el.description] = used[el.description] || 0\n used[el.description]++\n }\n if (el.format) {\n used[el.format] = used[el.format] || 0\n used[el.format]++\n }\n if (el.type) {\n used[el.type] = used[el.type] || 0\n used[el.type]++\n }\n })\n\n /* Determine display text for each element of the array */\n arr.forEach(el => {\n let name\n\n /* If it's a simple string */\n if (typeof el === 'string') name = el\n /* Object */\n else if (el.title && used[el.title] <= 1) name = el.title\n else if (el.format && used[el.format] <= 1) name = el.format\n else if (el.type && used[el.type] <= 1) name = el.type\n else if (el.description && used[el.description] <= 1) name = el.description\n else if (el.title) name = el.title\n else if (el.format) name = el.format\n else if (el.type) name = el.type\n else if (el.description) name = el.description\n else if (JSON.stringify(el).length < 500) name = JSON.stringify(el)\n else name = 'type'\n\n disp.push(name)\n })\n\n /* Replace identical display text with \"text 1\", \"text 2\", etc. */\n const inc = {}\n disp.forEach((name, i) => {\n inc[name] = inc[name] || 0\n inc[name]++\n\n if (used[name] > 1) disp[i] = `${name} ${inc[name]}`\n })\n\n return disp\n }\n\n /* Replace space(s) with \"-\" to create valid id value */\n getValidId (id) {\n id = id === undefined ? '' : id.toString()\n return id.replace(/\\s+/g, '-')\n }\n\n setInputAttributes (inputAttribute) {\n if (this.schema.options && this.schema.options.inputAttributes) {\n const inputAttributes = this.schema.options.inputAttributes\n const protectedAttributes = ['name', 'type'].concat(inputAttribute)\n Object.keys(inputAttributes).forEach(key => {\n if (!protectedAttributes.includes(key.toLowerCase())) {\n this.input.setAttribute(key, inputAttributes[key])\n }\n })\n }\n }\n\n setContainerAttributes () {\n if (this.schema.options && this.schema.options.containerAttributes) {\n const containerAttributes = this.schema.options.containerAttributes\n const protectedAttributes = ['data-schemapath', 'data-schematype', 'data-schemaid']\n Object.keys(containerAttributes).forEach(key => {\n if (!protectedAttributes.includes(key.toLowerCase())) {\n this.container.setAttribute(key, containerAttributes[key])\n }\n })\n }\n }\n\n expandCallbacks (scope, options) {\n const callback = this.defaults.callbacks[scope]\n Object.entries(options).forEach(([key, value]) => {\n if (value === Object(value)) {\n options[key] = this.expandCallbacks(scope, value)\n } else if (typeof value === 'string' &&\n typeof callback === 'object' &&\n typeof callback[value] === 'function') {\n options[key] = callback[value].bind(null, this)\n }\n })\n return options\n }\n\n showValidationErrors (errors) {\n\n }\n}\n","import { StringEditor } from './string.js'\nimport { extend } from '../utilities.js'\n\nexport class AceEditor extends StringEditor {\n setValue (value, initial, fromTemplate) {\n const res = super.setValue(value, initial, fromTemplate)\n if (res !== undefined && res.changed && this.ace_editor_instance) {\n this.ace_editor_instance.setValue(res.value)\n this.ace_editor_instance.session.getSelection().clearSelection()\n this.ace_editor_instance.resize()\n }\n }\n\n build () {\n this.options.format = 'textarea' /* Force format into \"textarea\" */\n super.build()\n this.input_type = this.schema.format /* Restore original format */\n this.input.setAttribute('data-schemaformat', this.input_type)\n }\n\n afterInputReady () {\n let options\n\n if (window.ace) {\n let mode = this.input_type\n /* aliases for c/cpp */\n if (mode === 'cpp' || mode === 'c++' || mode === 'c') mode = 'c_cpp'\n\n /* Get options, either global options from \"this.defaults.options.ace\" or */\n /* single property options from schema \"options.ace\" */\n options = this.expandCallbacks('ace', extend({}, {\n selectionStyle: 'text',\n minLines: 30,\n maxLines: 30\n }, this.defaults.options.ace || {}, this.options.ace || {}, {\n mode: `ace/mode/${mode}`\n }))\n\n this.ace_container = document.createElement('div')\n this.ace_container.style.width = '100%'\n this.ace_container.style.position = 'relative'\n /* this.ace_container.style.height = '400px'; */\n this.input.parentNode.insertBefore(this.ace_container, this.input)\n this.input.style.display = 'none'\n\n this.ace_editor_instance = window.ace.edit(this.ace_container, options)\n\n this.ace_editor_instance.setValue(this.getValue())\n this.ace_editor_instance.session.getSelection().clearSelection()\n this.ace_editor_instance.resize()\n\n if (this.schema.readOnly || this.schema.readonly || this.schema.template) {\n this.ace_editor_instance.setReadOnly(true)\n }\n\n /* Listen for changes */\n this.ace_editor_instance.on('change', () => {\n this.input.value = this.ace_editor_instance.getValue()\n this.refreshValue()\n this.is_dirty = true\n this.onChange(true)\n })\n\n this.theme.afterInputReady(this.input)\n } else super.afterInputReady() /* Library not loaded, so just treat this as a string */\n }\n\n getNumColumns () {\n return 6\n }\n\n enable () {\n if (!this.always_disabled && this.ace_editor_instance) this.ace_editor_instance.setReadOnly(false)\n super.enable()\n }\n\n disable (alwaysDisabled) {\n if (this.ace_editor_instance) this.ace_editor_instance.setReadOnly(true)\n super.disable(alwaysDisabled)\n }\n\n destroy () {\n if (this.ace_editor_instance) {\n this.ace_editor_instance.destroy()\n this.ace_editor_instance = null\n }\n super.destroy()\n }\n}\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'\nimport { extend, generateUUID, trigger } from '../utilities.js'\nimport rules from './array.css.js'\n\nexport class ArrayEditor extends AbstractEditor {\n askConfirmation () {\n if (this.jsoneditor.options.prompt_before_delete === true) {\n if (window.confirm(this.translate('button_delete_node_warning')) === false) {\n return false\n }\n }\n return true\n }\n\n getDefault () {\n return this.schema.default || []\n }\n\n register () {\n super.register()\n if (this.rows) {\n this.rows.forEach(row => row.register())\n }\n }\n\n unregister () {\n super.unregister()\n if (this.rows) {\n this.rows.forEach(row => row.unregister())\n }\n }\n\n getNumColumns () {\n const info = this.getItemInfo(0)\n /* Tabs require extra horizontal space */\n if (this.tabs_holder && this.schema.format !== 'tabs-top') {\n return Math.max(Math.min(12, info.width + 2), 4)\n }\n return info.width\n }\n\n enable () {\n if (!this.always_disabled) {\n this.setAvailability(this, false)\n\n if (this.rows) {\n this.rows.forEach(row => {\n row.enable()\n this.setAvailability(row, false)\n })\n }\n super.enable()\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n this.setAvailability(this, true)\n\n if (this.rows) {\n this.rows.forEach(row => {\n row.disable(alwaysDisabled)\n this.setAvailability(row, true)\n })\n }\n super.disable()\n }\n\n setAvailability (element, val) {\n if (element.add_row_button) element.add_row_button.disabled = val\n if (element.remove_all_rows_button) element.remove_all_rows_button.disabled = val\n if (element.delete_last_row_button) element.delete_last_row_button.disabled = val\n if (element.copy_button) element.copy_button.disabled = val\n if (element.delete_button) element.delete_button.disabled = val\n if (element.moveup_button) element.moveup_button.disabled = val\n if (element.movedown_button) element.movedown_button.disabled = val\n }\n\n preBuild () {\n super.preBuild()\n\n this.rows = []\n this.row_cache = []\n\n this.hide_delete_buttons = this.options.disable_array_delete || this.jsoneditor.options.disable_array_delete\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\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\n this.hide_move_buttons = this.options.disable_array_reorder || this.jsoneditor.options.disable_array_reorder\n this.hide_add_button = this.options.disable_array_add || this.jsoneditor.options.disable_array_add\n this.show_copy_button = this.options.enable_array_copy || this.jsoneditor.options.enable_array_copy\n this.array_controls_top = this.options.array_controls_top || this.jsoneditor.options.array_controls_top\n }\n\n build () {\n if (!this.options.compact) {\n this.header = document.createElement('label')\n this.header.textContent = this.getTitle()\n this.title = this.theme.getHeader(this.header, this.getPathDepth())\n this.container.appendChild(this.title)\n if (this.options.infoText) {\n this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\n this.container.appendChild(this.infoButton)\n }\n this.title_controls = this.theme.getHeaderButtonHolder()\n this.title.appendChild(this.title_controls)\n if (this.schema.description) {\n this.description = this.theme.getDescription(this.translateProperty(this.schema.description))\n this.container.appendChild(this.description)\n }\n this.error_holder = document.createElement('div')\n this.container.appendChild(this.error_holder)\n\n if (this.schema.format === 'tabs-top') {\n this.controls = this.theme.getHeaderButtonHolder()\n this.title.appendChild(this.controls)\n this.tabs_holder = this.theme.getTopTabHolder(this.getValidId(this.getItemTitle()))\n this.container.appendChild(this.tabs_holder)\n this.row_holder = this.theme.getTopTabContentHolder(this.tabs_holder)\n\n this.active_tab = null\n } else if (this.schema.format === 'tabs') {\n this.controls = this.theme.getHeaderButtonHolder()\n this.title.appendChild(this.controls)\n this.tabs_holder = this.theme.getTabHolder(this.getValidId(this.getItemTitle()))\n this.container.appendChild(this.tabs_holder)\n this.row_holder = this.theme.getTabContentHolder(this.tabs_holder)\n\n this.active_tab = null\n } else {\n this.panel = this.theme.getIndentedPanel()\n this.container.appendChild(this.panel)\n this.row_holder = document.createElement('div')\n this.panel.appendChild(this.row_holder)\n this.controls = this.theme.getButtonHolder()\n if (this.array_controls_top) {\n this.title.appendChild(this.controls)\n } else {\n this.panel.appendChild(this.controls)\n }\n }\n } else {\n /* compact mode */\n this.title = this.theme.getHeader('', this.getPathDepth())\n this.container.appendChild(this.title)\n this.panel = this.theme.getIndentedPanel()\n this.container.appendChild(this.panel)\n this.title_controls = this.theme.getHeaderButtonHolder()\n this.title.appendChild(this.title_controls)\n this.controls = this.theme.getHeaderButtonHolder()\n this.title.appendChild(this.controls)\n this.row_holder = document.createElement('div')\n this.panel.appendChild(this.row_holder)\n }\n\n /* Add controls */\n this.addControls()\n }\n\n onChildEditorChange (editor) {\n this.refreshValue()\n this.refreshTabs(true)\n super.onChildEditorChange(editor)\n }\n\n getItemTitle () {\n if (!this.item_title) {\n if (this.schema.items && !Array.isArray(this.schema.items)) {\n const tmp = this.jsoneditor.expandRefs(this.schema.items)\n this.item_title = this.translateProperty(tmp.title) || this.translate('default_array_item_title')\n } else {\n this.item_title = this.translate('default_array_item_title')\n }\n }\n return this.cleanText(this.item_title)\n }\n\n getItemSchema (i) {\n if (Array.isArray(this.schema.items)) {\n if (i >= this.schema.items.length) {\n if (this.schema.additionalItems === true) {\n return {}\n } else if (this.schema.additionalItems) {\n return extend({}, this.schema.additionalItems)\n }\n } else {\n return extend({}, this.schema.items[i])\n }\n } else if (this.schema.items) {\n return extend({}, this.schema.items)\n } else {\n return {}\n }\n }\n\n getItemInfo (i) {\n let schema = this.getItemSchema(i)\n\n /* Check if it's cached */\n this.item_info = this.item_info || {}\n const stringified = JSON.stringify(schema)\n if (typeof this.item_info[stringified] !== 'undefined') return this.item_info[stringified]\n\n /* Get the schema for this item */\n schema = this.jsoneditor.expandRefs(schema)\n\n this.item_info[stringified] = {\n title: this.translateProperty(schema.title) || this.translate('default_array_item_title'),\n default: schema.default,\n width: 12,\n child_editors: schema.properties || schema.items\n }\n\n return this.item_info[stringified]\n }\n\n getElementEditor (i) {\n const itemInfo = this.getItemInfo(i)\n let schema = this.getItemSchema(i)\n schema = this.jsoneditor.expandRefs(schema)\n schema.title = `${itemInfo.title} ${i + 1}`\n\n const editor = this.jsoneditor.getEditorClass(schema)\n\n let holder\n if (this.tabs_holder) {\n if (this.schema.format === 'tabs-top') {\n holder = this.theme.getTopTabContent()\n } else {\n holder = this.theme.getTabContent()\n }\n holder.id = `${this.path}.${i}`\n } else if (itemInfo.child_editors) {\n holder = this.theme.getChildEditorHolder()\n } else {\n holder = this.theme.getIndentedPanel()\n }\n\n this.row_holder.appendChild(holder)\n\n const ret = this.jsoneditor.createEditor(editor, {\n jsoneditor: this.jsoneditor,\n schema,\n container: holder,\n path: `${this.path}.${i}`,\n parent: this,\n required: true\n })\n ret.preBuild()\n ret.build()\n ret.postBuild()\n\n if (!ret.title_controls) {\n ret.array_controls = this.theme.getButtonHolder()\n holder.appendChild(ret.array_controls)\n }\n\n return ret\n }\n\n checkParent (elem) {\n return elem && elem.parentNode\n }\n\n destroy () {\n this.empty(true)\n if (this.checkParent(this.title)) this.title.parentNode.removeChild(this.title)\n if (this.checkParent(this.description)) this.description.parentNode.removeChild(this.description)\n if (this.checkParent(this.row_holder)) this.row_holder.parentNode.removeChild(this.row_holder)\n if (this.checkParent(this.controls)) this.controls.parentNode.removeChild(this.controls)\n if (this.checkParent(this.panel)) this.panel.parentNode.removeChild(this.panel)\n\n this.rows = this.row_cache = this.title = this.description = this.row_holder = this.panel = this.controls = null\n\n super.destroy()\n }\n\n empty (hard) {\n if (!this.rows) return\n\n this.rows.forEach((row, i) => {\n if (hard) {\n if (this.checkParent(row.tab)) row.tab.parentNode.removeChild(row.tab)\n this.destroyRow(row, true)\n this.row_cache[i] = null\n }\n this.rows[i] = null\n })\n this.rows = []\n if (hard) this.row_cache = []\n }\n\n destroyRow (row, hard) {\n const holder = row.container\n if (hard) {\n row.destroy()\n if (holder.parentNode) holder.parentNode.removeChild(holder)\n if (this.checkParent(row.tab)) row.tab.parentNode.removeChild(row.tab)\n } else {\n if (row.tab) row.tab.style.display = 'none'\n holder.style.display = 'none'\n row.unregister()\n }\n }\n\n getMax () {\n if ((Array.isArray(this.schema.items)) && this.schema.additionalItems === false) {\n return Math.min(this.schema.items.length, this.schema.maxItems || Infinity)\n }\n return this.schema.maxItems || Infinity\n }\n\n refreshTabs (refreshHeaders) {\n this.rows.forEach(row => {\n if (!row.tab) return\n\n if (refreshHeaders) {\n row.tab_text.textContent = row.getHeaderText()\n } else if (row.tab === this.active_tab) {\n this.theme.markTabActive(row)\n } else {\n this.theme.markTabInactive(row)\n }\n })\n }\n\n ensureArraySize (value) {\n if (!(Array.isArray(value))) value = [value]\n\n if (this.schema.minItems) {\n while (value.length < this.schema.minItems) {\n value.push(this.getItemInfo(value.length).default)\n }\n }\n if (this.getMax() && value.length > this.getMax()) {\n value = value.slice(0, this.getMax())\n }\n return value\n }\n\n setValue (value = [], initial) {\n /* Make sure value has between minItems and maxItems items in it */\n value = this.ensureArraySize(value)\n\n const serialized = JSON.stringify(value)\n if (serialized === this.serialized) return\n\n value.forEach((val, i) => {\n if (this.rows[i]) {\n /* TODO: don't set the row's value if it hasn't changed */\n this.rows[i].setValue(val, initial)\n } else if (this.row_cache[i]) {\n this.rows[i] = this.row_cache[i]\n this.rows[i].setValue(val, initial)\n this.rows[i].container.style.display = ''\n if (this.rows[i].tab) this.rows[i].tab.style.display = ''\n this.rows[i].register()\n this.jsoneditor.trigger('addRow', this.rows[i])\n } else {\n const editor = this.addRow(val, initial)\n this.jsoneditor.trigger('addRow', editor)\n }\n })\n\n for (let j = value.length; j < this.rows.length; j++) {\n this.destroyRow(this.rows[j])\n this.rows[j] = null\n }\n this.rows = this.rows.slice(0, value.length)\n\n /* Set the active tab */\n const row = this.rows.find(row => row.tab === this.active_tab)\n let newActiveTab = typeof row !== 'undefined' ? row.tab : null\n if (!newActiveTab && this.rows.length) newActiveTab = this.rows[0].tab\n\n this.active_tab = newActiveTab\n\n this.refreshValue(initial)\n this.refreshTabs(true)\n this.refreshTabs()\n\n this.onChange()\n\n /* TODO: sortable */\n }\n\n setVisibility (element, display) {\n element.style.display = display ? '' : 'none'\n }\n\n setupButtons (minItems) {\n const controlsNeeded = []\n\n if (!this.value.length) {\n this.delete_last_row_button.style.display = 'none'\n this.remove_all_rows_button.style.display = 'none'\n } else if (this.value.length === 1) {\n this.remove_all_rows_button.style.display = 'none'\n\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 */\n const display = !(minItems || this.hide_delete_last_row_buttons)\n this.setVisibility(this.delete_last_row_button, display)\n controlsNeeded.push(display)\n } else {\n const display1 = !(minItems || this.hide_delete_last_row_buttons)\n this.setVisibility(this.delete_last_row_button, display1)\n controlsNeeded.push(display1)\n\n const display2 = !(minItems || this.hide_delete_all_rows_buttons)\n this.setVisibility(this.remove_all_rows_button, display2)\n controlsNeeded.push(display2)\n }\n\n /* If there are maxItems in the array, hide the add button beneath the rows */\n const display = !((this.getMax() && this.getMax() <= this.rows.length) || this.hide_add_button)\n this.setVisibility(this.add_row_button, display)\n controlsNeeded.push(display)\n\n return controlsNeeded.some(e => e)\n }\n\n refreshValue (force) {\n const oldi = this.value ? this.value.length : 0\n /* Get the value for this editor */\n this.value = this.rows.map(editor => editor.getValue())\n\n if (oldi !== this.value.length || force) {\n /* If we currently have minItems items in the array */\n const minItems = this.schema.minItems && this.schema.minItems >= this.rows.length\n\n this.rows.forEach((editor, i) => {\n /* Hide the move down button for the last row */\n if (editor.movedown_button) {\n const display = (i !== this.rows.length - 1)\n this.setVisibility(editor.movedown_button, display)\n }\n\n /* Hide the delete button if we have minItems items */\n if (editor.delete_button) {\n this.setVisibility(editor.delete_button, !minItems)\n }\n\n /* Get the value for this editor */\n this.value[i] = editor.getValue()\n })\n\n if (!this.collapsed && this.setupButtons(minItems)) {\n this.controls.style.display = 'inline-block'\n } else {\n this.controls.style.display = 'none'\n }\n }\n this.serialized = JSON.stringify(this.value)\n }\n\n addRow (value, initial) {\n const i = this.rows.length\n\n this.rows[i] = this.getElementEditor(i)\n this.row_cache[i] = this.rows[i]\n\n if (this.tabs_holder) {\n this.rows[i].tab_text = document.createElement('span')\n this.rows[i].tab_text.textContent = this.rows[i].getHeaderText()\n if (this.schema.format === 'tabs-top') {\n this.rows[i].tab = this.theme.getTopTab(this.rows[i].tab_text, this.getValidId(this.rows[i].path))\n this.theme.addTopTab(this.tabs_holder, this.rows[i].tab)\n } else {\n this.rows[i].tab = this.theme.getTab(this.rows[i].tab_text, this.getValidId(this.rows[i].path))\n this.theme.addTab(this.tabs_holder, this.rows[i].tab)\n }\n this.rows[i].tab.addEventListener('click', (e) => {\n this.active_tab = this.rows[i].tab\n this.refreshTabs()\n e.preventDefault()\n e.stopPropagation()\n })\n }\n\n const controlsHolder = this.rows[i].title_controls || this.rows[i].array_controls\n\n /* Buttons to delete row, move row up, and move row down */\n if (!this.hide_delete_buttons) {\n this.rows[i].delete_button = this._createDeleteButton(i, controlsHolder)\n }\n\n /* Button to copy an array element and add it as last element */\n if (this.show_copy_button) {\n this.rows[i].copy_button = this._createCopyButton(i, controlsHolder)\n }\n\n if (i && !this.hide_move_buttons) {\n this.rows[i].moveup_button = this._createMoveUpButton(i, controlsHolder)\n }\n\n if (!this.hide_move_buttons) {\n this.rows[i].movedown_button = this._createMoveDownButton(i, controlsHolder)\n }\n\n if (typeof value !== 'undefined') this.rows[i].setValue(value, initial)\n this.refreshTabs()\n\n return this.rows[i]\n }\n\n _createDeleteButton (i, holder) {\n const button = this.getButton(this.getItemTitle(), 'delete', 'button_delete_row_title', [this.getItemTitle()])\n button.classList.add('delete', 'json-editor-btntype-delete')\n button.setAttribute('data-i', i)\n button.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n\n if (!this.askConfirmation()) {\n return false\n }\n\n const i = e.currentTarget.getAttribute('data-i') * 1\n const newval = this.getValue().filter((row, j) => j !== i)\n let newActiveTab = null\n\n const editor = this.rows[i]\n const editorValue = editor.getValue()\n\n this.setValue(newval)\n\n if (this.rows[i]) {\n newActiveTab = this.rows[i].tab\n } else if (this.rows[i - 1]) {\n newActiveTab = this.rows[i - 1].tab\n }\n\n if (newActiveTab) {\n this.active_tab = newActiveTab\n this.refreshTabs()\n }\n\n this.onChange(true)\n this.jsoneditor.trigger('deleteRow', editorValue)\n })\n\n if (holder) {\n holder.appendChild(button)\n }\n return button\n }\n\n _createCopyButton (i, holder) {\n const button = this.getButton(this.getItemTitle(), 'copy', 'button_copy_row_title', [this.getItemTitle()])\n const schema = this.schema\n button.classList.add('copy', 'json-editor-btntype-copy')\n button.setAttribute('data-i', i)\n button.addEventListener('click', e => {\n const value = this.getValue()\n e.preventDefault()\n e.stopPropagation()\n const i = e.currentTarget.getAttribute('data-i') * 1\n\n value.forEach((row, j) => {\n if (j === i) {\n /* Force generation of new UUID if the item has been cloned. */\n if (schema.items.type === 'string' && schema.items.format === 'uuid') {\n row = generateUUID()\n } else if (schema.items.type === 'object' && schema.items.properties) {\n for (const key of Object.keys(row)) {\n if (schema.items.properties && schema.items.properties[key] && schema.items.properties[key].format === 'uuid') {\n row[key] = generateUUID()\n }\n }\n }\n value.push(row)\n }\n })\n\n this.setValue(value)\n this.refreshValue(true)\n this.onChange(true)\n })\n\n holder.appendChild(button)\n return button\n }\n\n _createMoveUpButton (i, holder) {\n const button = this.getButton('', (this.schema.format === 'tabs-top' ? 'moveleft' : 'moveup'), 'button_move_up_title')\n button.classList.add('moveup', 'json-editor-btntype-move')\n button.setAttribute('data-i', i)\n button.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n const i = e.currentTarget.getAttribute('data-i') * 1\n\n if (i <= 0) return\n const rows = this.getValue()\n const tmp = rows[i - 1]\n rows[i - 1] = rows[i]\n rows[i] = tmp\n\n this.setValue(rows)\n this.active_tab = this.rows[i - 1].tab\n this.refreshTabs()\n\n this.onChange(true)\n\n this.jsoneditor.trigger('moveRow', this.rows[i - 1])\n })\n\n if (holder) {\n holder.appendChild(button)\n }\n return button\n }\n\n _createMoveDownButton (i, holder) {\n const button = this.getButton('', (this.schema.format === 'tabs-top' ? 'moveright' : 'movedown'), 'button_move_down_title')\n button.classList.add('movedown', 'json-editor-btntype-move')\n button.setAttribute('data-i', i)\n button.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n const i = e.currentTarget.getAttribute('data-i') * 1\n\n const rows = this.getValue()\n if (i >= rows.length - 1) return\n const tmp = rows[i + 1]\n rows[i + 1] = rows[i]\n rows[i] = tmp\n\n this.setValue(rows)\n this.active_tab = this.rows[i + 1].tab\n this.refreshTabs()\n this.onChange(true)\n\n this.jsoneditor.trigger('moveRow', this.rows[i + 1])\n })\n\n if (holder) {\n holder.appendChild(button)\n }\n return button\n }\n\n addControls () {\n this.collapsed = false\n this.toggle_button = this._createToggleButton()\n\n /* If it should start collapsed */\n if (this.options.collapsed) {\n trigger(this.toggle_button, 'click')\n }\n\n /* Collapse button disabled */\n if (this.schema.options && typeof this.schema.options.disable_collapse !== 'undefined') {\n if (this.schema.options.disable_collapse) this.toggle_button.style.display = 'none'\n } else if (this.jsoneditor.options.disable_collapse) {\n this.toggle_button.style.display = 'none'\n }\n\n /* Add \"new row\" and \"delete last\" buttons below editor */\n this.add_row_button = this._createAddRowButton()\n this.delete_last_row_button = this._createDeleteLastRowButton()\n this.remove_all_rows_button = this._createRemoveAllRowsButton()\n\n if (this.tabs) {\n this.add_row_button.classList.add('je-array-control-btn')\n this.delete_last_row_button.classList.add('je-array-control-btn')\n this.remove_all_rows_button.classList.add('je-array-control-btn')\n }\n }\n\n _createToggleButton () {\n const button = this.getButton('', 'collapse', 'button_collapse')\n button.classList.add('json-editor-btntype-toggle')\n this.title.insertBefore(button, this.title.childNodes[0])\n\n const rowHolderDisplay = this.row_holder.style.display\n const controlsDisplay = this.controls.style.display\n button.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n if (this.panel) this.setVisibility(this.panel, this.collapsed)\n if (this.tabs_holder) this.setVisibility(this.tabs_holder, this.collapsed)\n if (this.collapsed) {\n this.collapsed = false\n this.row_holder.style.display = rowHolderDisplay\n this.controls.style.display = controlsDisplay\n this.setButtonText(e.currentTarget, '', 'collapse', 'button_collapse')\n } else {\n this.collapsed = true\n this.row_holder.style.display = 'none'\n this.controls.style.display = 'none'\n this.setButtonText(e.currentTarget, '', 'expand', 'button_expand')\n }\n })\n return button\n }\n\n _createAddRowButton () {\n const button = this.getButton(this.getItemTitle(), 'add', 'button_add_row_title', [this.getItemTitle()])\n button.classList.add('json-editor-btntype-add')\n button.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n const i = this.rows.length\n let editor\n if (this.row_cache[i]) {\n editor = this.rows[i] = this.row_cache[i]\n this.rows[i].setValue(this.rows[i].getDefault(), true)\n this.rows[i].container.style.display = ''\n if (this.rows[i].tab) this.rows[i].tab.style.display = ''\n this.rows[i].register()\n } else {\n editor = this.addRow()\n }\n this.active_tab = this.rows[i].tab\n this.refreshTabs()\n this.refreshValue()\n this.onChange(true)\n this.jsoneditor.trigger('addRow', editor)\n })\n this.controls.appendChild(button)\n return button\n }\n\n _createDeleteLastRowButton () {\n const button = this.getButton('button_delete_last', 'subtract', 'button_delete_last_title', [this.getItemTitle()])\n button.classList.add('json-editor-btntype-deletelast')\n button.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (!this.askConfirmation()) {\n return false\n }\n\n const rows = this.getValue()\n let newActiveTab = null\n\n const editorValue = rows.pop()\n\n this.setValue(rows)\n\n if (this.rows[this.rows.length - 1]) {\n newActiveTab = this.rows[this.rows.length - 1].tab\n }\n\n if (newActiveTab) {\n this.active_tab = newActiveTab\n this.refreshTabs()\n }\n\n this.onChange(true)\n this.jsoneditor.trigger('deleteRow', editorValue)\n })\n this.controls.appendChild(button)\n return button\n }\n\n _createRemoveAllRowsButton () {\n const button = this.getButton('button_delete_all', 'delete', 'button_delete_all_title')\n button.classList.add('json-editor-btntype-deleteall')\n button.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (!this.askConfirmation()) {\n return false\n }\n\n const values = this.getValue()\n\n this.empty(true)\n this.setValue([])\n this.onChange(true)\n this.jsoneditor.trigger('deleteAllRows', values)\n })\n this.controls.appendChild(button)\n return button\n }\n\n showValidationErrors (errors) {\n /* Get all the errors that pertain to this editor */\n const myErrors = []\n const otherErrors = []\n errors.forEach(error => {\n if (error.path === this.path) {\n myErrors.push(error)\n } else {\n otherErrors.push(error)\n }\n })\n\n /* Show errors for this editor */\n if (this.error_holder) {\n if (myErrors.length) {\n this.error_holder.innerHTML = ''\n this.error_holder.style.display = ''\n myErrors.forEach(error => {\n this.error_holder.appendChild(this.theme.getErrorMessage(error.message))\n })\n /* Hide error area */\n } else {\n this.error_holder.style.display = 'none'\n }\n }\n\n /* Show errors for child editors */\n this.rows.forEach(row =>\n row.showValidationErrors(otherErrors)\n )\n }\n}\nArrayEditor.rules = rules\n","import { MultiSelectEditor } from '../multiselect.js'\nimport { extend } from '../../utilities.js'\n\nexport class ArrayChoicesEditor extends MultiSelectEditor {\n setValue (value, initial) {\n if (this.choices_instance) {\n /* Make sure we are dealing with an array of strings so we can check for strict equality */\n value = [].concat(value).map(e => `${e}`)\n\n this.updateValue(value) /* Sets this.value to sanitized value */\n\n this.choices_instance.removeActiveItems() /* Remove existing selection */\n this.choices_instance.setChoiceByValue(this.value) /* Set new selection */\n\n this.onChange(true)\n } else super.setValue(value, initial)\n }\n\n afterInputReady () {\n if (window.Choices && !this.choices_instance) {\n /* Get options, either global options from \"this.defaults.options.choices\" or */\n /* single property options from schema \"options.choices\" */\n const options = this.expandCallbacks('choices', extend({}, {\n removeItems: true,\n removeItemButton: true\n }, this.defaults.options.choices || {}, this.options.choices || {}, {\n addItems: true,\n editItems: false,\n duplicateItemsAllowed: false\n }))\n\n /* New items are allowed if option \"addItems\" is true and items type is \"string\" */\n /* this.newEnumAllowed = options.addItems = !!options.addItems && this.schema.items && this.schema.items.type == 'string'; */\n\n /* Choices doesn't support adding new items to select type input */\n this.newEnumAllowed = false\n\n this.choices_instance = new window.Choices(this.input, options)\n\n /* Remove change handler set in parent class (src/multiselect.js) */\n this.control.removeEventListener('change', this.multiselectChangeHandler)\n\n /* Create a new change handler */\n this.multiselectChangeHandler = e => {\n const value = this.choices_instance.getValue(true)\n this.updateValue(value)\n this.onChange(true)\n }\n this.control.addEventListener('change', this.multiselectChangeHandler, false)\n }\n super.afterInputReady()\n }\n\n updateValue (value) {\n value = [].concat(value)\n let changed = false; const newValue = []\n for (let i = 0; i < value.length; i++) {\n if (!this.select_values[`${value[i]}`]) {\n changed = true\n if (this.newEnumAllowed) {\n if (!this.addNewOption(value[i])) continue\n } else continue\n }\n const sanitized = this.sanitize(this.select_values[value[i]])\n newValue.push(sanitized)\n if (sanitized !== value[i]) changed = true\n }\n this.value = newValue\n\n return changed\n }\n\n addNewOption (value) {\n /* Add new value and label */\n this.option_keys.push(`${value}`)\n this.option_titles.push(`${value}`)\n this.select_values[`${value}`] = value\n /* Update Schema enum to prevent triggering \"Value must be one of the enumerated values\" */\n this.schema.items.enum.push(value)\n /* Add new value and label to choices */\n this.choices_instance.setChoices([{ value: `${value}`, label: `${value}` }], 'value', 'label', false)\n\n return true\n }\n\n enable () {\n if (!this.always_disabled && this.choices_instance) this.choices_instance.enable()\n super.enable()\n }\n\n disable (alwaysDisabled) {\n if (this.choices_instance) this.choices_instance.disable()\n super.disable(alwaysDisabled)\n }\n\n destroy () {\n if (this.choices_instance) {\n this.choices_instance.destroy()\n this.choices_instance = null\n }\n super.destroy()\n }\n}\n","import { MultiSelectEditor } from '../multiselect.js'\nimport { extend, hasOwnProperty } from '../../utilities.js'\n\nexport class ArraySelect2Editor extends MultiSelectEditor {\n setValue (value, initial) {\n if (this.select2_instance) {\n /* Make sure we are dealing with an array of strings so we can check for strict equality */\n value = [].concat(value).map(e => `${e}`)\n\n this.updateValue(value) /* Sets this.value to sanitized value */\n\n if (this.select2v4) this.select2_instance.val(this.value).change()\n else this.select2_instance.select2('val', this.value)\n\n this.onChange(true)\n } else super.setValue(value, initial)\n }\n\n afterInputReady () {\n let options\n\n if (window.jQuery && window.jQuery.fn && window.jQuery.fn.select2 && !this.select2_instance) {\n /* Get options, either global options from \"this.defaults.options.select2\" or */\n /* single property options from schema \"options.select2\" */\n options = this.expandCallbacks('select2', extend({}, {\n tags: true,\n width: '100%'\n }, this.defaults.options.select2 || {}, this.options.select2 || {}))\n\n /* New items are allowed if option \"tags\" is true and items type is \"string\" */\n this.newEnumAllowed = options.tags = !!options.tags && this.schema.items && this.schema.items.type === 'string'\n\n this.select2_instance = window.jQuery(this.input).select2(options)\n this.select2v4 = hasOwnProperty(this.select2_instance.select2, 'amd')\n\n this.selectChangeHandler = () => {\n const value = this.select2v4 ? this.select2_instance.val() : this.select2_instance.select2('val')\n this.updateValue(value)\n this.onChange(true)\n }\n\n /* Add event handler. */\n /* Note: Must use the \"on()\" method and not addEventListener() */\n this.select2_instance.on('select2-blur', this.selectChangeHandler)\n this.select2_instance.on('change', this.selectChangeHandler)\n }\n super.afterInputReady()\n }\n\n updateValue (value) {\n value = [].concat(value)\n let changed = false; const newValue = []\n for (let i = 0; i < value.length; i++) {\n /* if (!this.select_options[value[i]+'']) { */\n if (!this.select_values[`${value[i]}`]) {\n changed = true\n if (this.newEnumAllowed) {\n if (!this.addNewOption(value[i])) continue\n } else continue\n }\n const sanitized = this.sanitize(this.select_values[value[i]])\n newValue.push(sanitized)\n if (sanitized !== value[i]) changed = true\n }\n this.value = newValue\n\n return changed\n }\n\n addNewOption (value) {\n /* Add new value and label */\n this.option_keys.push(`${value}`)\n this.option_titles.push(`${value}`)\n this.select_values[`${value}`] = value\n /* Update Schema enum to prevent triggering \"Value must be one of the enumerated values\" */\n this.schema.items.enum.push(value)\n\n const optionTag = this.input.querySelector(`option[value=\"${value}\"]`)\n /* Remove data attribute to make option tag permanent. (user input) */\n if (optionTag) optionTag.removeAttribute('data-select2-tag')\n /* Create new option tag (setValue) */\n else this.input.appendChild(new Option(value, value, false, false)).trigger('change')\n\n return true\n }\n\n enable () {\n if (!this.always_disabled && this.select2_instance) {\n if (this.select2v4) this.select2_instance.prop('disabled', false)\n else this.select2_instance.select2('enable', true)\n }\n super.enable()\n }\n\n disable (alwaysDisabled) {\n if (this.select2_instance) {\n if (this.select2v4) this.select2_instance.prop('disabled', true)\n else this.select2_instance.select2('enable', false)\n }\n super.disable()\n }\n\n destroy () {\n if (this.select2_instance) {\n this.select2_instance.select2('destroy')\n this.select2_instance = null\n }\n super.destroy()\n }\n}\n","import { MultiSelectEditor } from '../multiselect.js'\nimport { extend } from '../../utilities.js'\n\nexport class ArraySelectizeEditor extends MultiSelectEditor {\n setValue (value, initial) {\n if (this.selectize_instance) {\n /* Make sure we are dealing with an array of strings so we can check for strict equality */\n value = [].concat(value).map(e => `${e}`)\n\n this.updateValue(value) /* Sets this.value to sanitized value */\n\n this.selectize_instance.setValue(this.value)\n\n this.onChange(true)\n } else super.setValue(value, initial)\n }\n\n afterInputReady () {\n let options\n\n if (window.jQuery && window.jQuery.fn && window.jQuery.fn.selectize && !this.selectize_instance) {\n /* Get options, either global options from \"this.defaults.options.selectize\" or */\n /* single property options from schema \"options.selectize\" */\n options = this.expandCallbacks('selectize', extend({}, {\n plugins: ['remove_button'],\n delimiter: false,\n createOnBlur: true,\n create: true\n }, this.defaults.options.selectize || {}, this.options.selectize || {}))\n\n /* New items are allowed if option \"create\" is true and items type is \"string\" */\n this.newEnumAllowed = options.create = !!options.create && this.schema.items && this.schema.items.type === 'string'\n\n this.selectize_instance = (window.jQuery(this.input).selectize(options))[0].selectize\n\n /* Remove change handler set in parent class (src/multiselect.js) */\n this.control.removeEventListener('change', this.multiselectChangeHandler)\n\n /* Create a new change handler */\n this.multiselectChangeHandler = e => {\n const value = this.selectize_instance.getValue()\n this.updateValue(value)\n this.onChange(true)\n }\n\n /* Add new event handler. */\n /* Note: Must use the \"on()\" method and not addEventListener() */\n this.selectize_instance.on('change', this.multiselectChangeHandler)\n }\n super.afterInputReady()\n }\n\n updateValue (value) {\n value = [].concat(value)\n let changed = false; const newValue = []\n for (let i = 0; i < value.length; i++) {\n /* if (!this.select_options[value[i]+'']) { */\n if (!this.select_values[`${value[i]}`]) {\n changed = true\n if (this.newEnumAllowed) {\n if (!this.addNewOption(value[i])) continue\n } else continue\n }\n const sanitized = this.sanitize(this.select_values[value[i]])\n newValue.push(sanitized)\n if (sanitized !== value[i]) changed = true\n }\n this.value = newValue\n\n return changed\n }\n\n addNewOption (value) {\n /* Add new value and label */\n this.option_keys.push(`${value}`)\n this.option_titles.push(`${value}`)\n this.select_values[`${value}`] = value\n /* Update Schema enum to prevent triggering \"Value must be one of the enumerated values\" */\n this.schema.items.enum.push(value)\n /* Add new value and label to selectize */\n this.selectize_instance.addOption({ text: value, value })\n\n return true\n }\n\n enable () {\n if (!this.always_disabled && this.selectize_instance) this.selectize_instance.unlock()\n super.enable()\n }\n\n disable (alwaysDisabled) {\n if (this.selectize_instance) this.selectize_instance.lock()\n super.disable(alwaysDisabled)\n }\n\n destroy () {\n if (this.selectize_instance) {\n this.selectize_instance.destroy()\n this.selectize_instance = null\n }\n super.destroy()\n }\n}\n","import { StringEditor } from './string.js'\nimport { extend } from '../utilities.js'\n\nexport class AutocompleteEditor extends StringEditor {\n postBuild () {\n if (window.Autocomplete) {\n /* create wrapper container */\n this.autocomplete_wrapper = document.createElement('div')\n\n /* insert wrapper after this.input in the DOM tree */\n this.input.parentNode.insertBefore(this.autocomplete_wrapper, this.input.nextSibling)\n\n /* move this.input into wrapper */\n this.autocomplete_wrapper.appendChild(this.input)\n\n /* create dropdown container */\n this.autocomplete_dropdown = document.createElement('ul')\n\n /* insert dropdown after this.input in the DOM tree */\n this.input.parentNode.insertBefore(this.autocomplete_dropdown, this.input.nextSibling)\n }\n super.postBuild()\n }\n\n afterInputReady () {\n let options\n\n if (window.Autocomplete && !this.autocomplete_instance) {\n /* Get options, either global options from \"this.defaults.options.autocomplete\" or */\n /* single property options from schema \"options.autocomplete\" */\n options = this.expandCallbacks('autocomplete', extend({}, {\n search: (jseditor) => {\n // eslint-disable-next-line no-console\n console.log(`No \"search\" callback defined for autocomplete in property \"${jseditor.key}\"`)\n return []\n },\n onSubmit: () => {\n this.input.blur()\n },\n baseClass: 'autocomplete'\n }, this.defaults.options.autocomplete || {}, this.options.autocomplete || {}))\n\n this.autocomplete_wrapper.classList.add(options.baseClass)\n this.autocomplete_dropdown.classList.add(`${options.baseClass}-result-list`)\n this.autocomplete_instance = new window.Autocomplete(this.autocomplete_wrapper, options)\n }\n super.afterInputReady()\n }\n\n destroy () {\n if (this.autocomplete_instance) {\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\n if (this.autocomplete_dropdown && this.autocomplete_dropdown.parentNode) this.autocomplete_dropdown.parentNode.removeChild(this.autocomplete_dropdown)\n if (this.autocomplete_wrapper && this.autocomplete_wrapper.parentNode) this.autocomplete_wrapper.parentNode.removeChild(this.autocomplete_wrapper)\n this.autocomplete_instance = null\n }\n super.destroy()\n }\n}\n","import { AbstractEditor } from '../editor.js'\n\nexport class Base64Editor extends AbstractEditor {\n getNumColumns () {\n return 4\n }\n\n setFileReaderListener (frMultiple) {\n frMultiple.addEventListener('load', (event) => {\n if (this.count === this.current_item_index) {\n /* Overwrite existing file by default, leave other properties unchanged */\n this.value[this.count][this.key] = event.target.result\n } else {\n const tempObject = {}\n /* Create empty object */\n for (const key in this.parent.schema.properties) {\n tempObject[key] = ''\n }\n /* Set object media file */\n tempObject[this.key] = event.target.result\n this.value.splice(this.count, 0, tempObject) /* insert new file object */\n }\n\n /* Increment using the listener and not the 'for' loop as the listener will be processed asynchronously */\n this.count += 1\n /* When all files have been processed, update the value of the editor */\n if (this.count === (this.total + this.current_item_index)) {\n this.arrayEditor.setValue(this.value)\n }\n })\n }\n\n build () {\n if (!this.options.compact) this.title = this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\n\n /* Input that holds the base64 string */\n this.input = this.theme.getFormInputField('hidden')\n this.container.appendChild(this.input)\n\n /* Don't show uploader if this is readonly */\n if (!this.schema.readOnly && !this.schema.readonly) {\n if (!window.FileReader) throw new Error('FileReader required for base64 editor')\n\n /* File uploader */\n this.uploader = this.theme.getFormInputField('file')\n\n /* Set attribute of file input field to 'multiple' if: */\n /* 'multiple' key has been set to 'true' in the schema */\n /* and the parent object is of type 'object' */\n /* and the parent of the parent type has been set to 'array' */\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') {\n this.uploader.setAttribute('multiple', '')\n }\n\n this.uploader.addEventListener('change', e => {\n e.preventDefault()\n e.stopPropagation()\n\n if (e.currentTarget.files && e.currentTarget.files.length) {\n /* Check the amount of files uploaded. */\n /* If 1, use the regular upload, otherwise use the multiple upload method */\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') {\n /* Load editor of parent.parent to get the array */\n this.arrayEditor = this.jsoneditor.getEditor(this.parent.parent.path)\n /* Check the current value of this editor */\n this.value = this.arrayEditor.getValue()\n /* Set variables for amount of files, index of current array item and */\n /* count value containing current status of processed files */\n this.total = e.currentTarget.files.length\n this.current_item_index = parseInt(this.parent.key)\n this.count = this.current_item_index\n\n for (let i = 0; i < this.total; i++) {\n const frMultiple = new FileReader()\n this.setFileReaderListener(frMultiple)\n frMultiple.readAsDataURL(e.currentTarget.files[i])\n }\n } else {\n let fr = new FileReader()\n fr.onload = (evt) => {\n this.value = evt.target.result\n this.refreshPreview()\n this.onChange(true)\n fr = null\n }\n fr.readAsDataURL(e.currentTarget.files[0])\n }\n }\n })\n }\n\n this.preview = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\n this.container.appendChild(this.preview)\n\n this.control = this.theme.getFormControl(this.label, this.uploader || this.input, this.preview, this.infoButton)\n this.container.appendChild(this.control)\n }\n\n refreshPreview () {\n if (this.last_preview === this.value) return\n this.last_preview = this.value\n\n this.preview.innerHTML = ''\n\n if (!this.value) return\n\n let mime = this.value.match(/^data:([^;,]+)[;,]/)\n if (mime) mime = mime[1]\n\n if (!mime) {\n this.preview.innerHTML = '<em>Invalid data URI</em>'\n } else {\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`\n if (mime.substr(0, 5) === 'image') {\n this.preview.innerHTML += '<br>'\n const img = document.createElement('img')\n img.style.maxWidth = '100%'\n img.style.maxHeight = '100px'\n img.src = this.value\n this.preview.appendChild(img)\n }\n }\n }\n\n enable () {\n if (!this.always_disabled) {\n if (this.uploader) this.uploader.disabled = false\n super.enable()\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n if (this.uploader) this.uploader.disabled = true\n super.disable()\n }\n\n setValue (val) {\n if (this.value !== val) {\n if (this.schema.readOnly && this.schema.enum && !this.schema.enum.includes(val)) this.value = this.schema.enum[0]\n else this.value = val\n this.input.value = this.value\n this.refreshPreview()\n this.onChange()\n }\n }\n\n destroy () {\n if (this.preview && this.preview.parentNode) this.preview.parentNode.removeChild(this.preview)\n if (this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title)\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\n if (this.uploader && this.uploader.parentNode) this.uploader.parentNode.removeChild(this.uploader)\n\n super.destroy()\n }\n}\n","/* Non-Active editor for displaying buttons in form */\nimport { AbstractEditor } from '../editor.js'\nimport { extend } from '../utilities.js'\n\nexport class ButtonEditor extends AbstractEditor {\n constructor (options, defaults) {\n super(options, defaults)\n this.active = false\n\n /* Set field to required in schema otherwise it will not be displayed */\n if (this.parent && this.parent.schema) {\n if (Array.isArray(this.parent.schema.required)) {\n if (!this.parent.schema.required.includes(this.key)) {\n this.parent.schema.required.push(this.key)\n }\n } else {\n this.parent.schema.required = [this.key]\n }\n }\n }\n\n build () {\n this.options.compact = true\n\n /* Get options, either global options from \"this.defaults.options.button\" or */\n /* single property options from schema \"options.button\" */\n const title = this.translateProperty(this.schema.title) || this.key\n const options = this.expandCallbacks('button', extend({}, {\n icon: '',\n validated: false,\n align: 'left',\n action: (jseditor, e) => {\n window.alert(`No button action defined for \"${jseditor.path}\"`)\n }\n }, this.defaults.options.button || {}, this.options.button || {}))\n\n this.input = this.getButton(title, options.icon, title)\n this.input.addEventListener('click', options.action, false)\n\n if (this.schema.readOnly || this.schema.readonly || this.schema.template) {\n this.disable(true)\n this.input.setAttribute('readonly', 'true')\n }\n\n /* Set custom attributes on input element. Parameter is array of protected keys. Empty array if none. */\n this.setInputAttributes(['readonly'])\n\n this.control = this.theme.getFormButtonHolder(options.align)\n this.control.appendChild(this.input)\n\n this.container.appendChild(this.control)\n\n this.changeHandler = () => {\n if (this.jsoneditor.validate(this.jsoneditor.getValue()).length > 0) this.disable()\n else this.enable()\n }\n\n /* Enable/disable the button depending on form validation */\n if (options.validated) this.jsoneditor.on('change', this.changeHandler)\n }\n\n enable () {\n if (!this.always_disabled) {\n this.input.disabled = false\n super.enable()\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n this.input.disabled = true\n super.disable()\n }\n\n getNumColumns () {\n return 2\n }\n\n activate () {\n this.active = false\n this.enable()\n }\n\n deactivate () {\n /* only non required properties can be deactivated. */\n if (!this.isRequired()) {\n this.active = false\n this.disable()\n }\n }\n\n destroy () {\n this.jsoneditor.off('change', this.changeHandler)\n this.changeHandler = null\n super.destroy()\n }\n}\n","import { AbstractEditor } from '../editor.js'\n\nexport class CheckboxEditor extends AbstractEditor {\n setValue (value, initial) {\n value = !!value\n const changed = this.getValue() !== value\n this.value = value\n this.input.checked = this.value\n this.onChange(changed)\n }\n\n register () {\n super.register()\n if (!this.input) return\n if (this.jsoneditor.options.use_name_attributes) {\n this.input.setAttribute('name', this.formname)\n }\n }\n\n unregister () {\n super.unregister()\n if (!this.input) return\n this.input.removeAttribute('name')\n }\n\n getNumColumns () {\n return Math.min(12, Math.max(this.getTitle().length / 7, 2))\n }\n\n build () {\n if (!this.parent.options.table_row) {\n this.label = this.header = this.theme.getCheckboxLabel(this.getTitle(), this.isRequired())\n this.label.htmlFor = this.formname\n }\n\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\n if (this.options.infoText && !this.options.compact) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\n if (this.options.compact) this.container.classList.add('compact')\n\n this.input = this.theme.getCheckbox()\n this.input.id = this.formname\n this.control = this.theme.getFormControl(this.label, this.input, this.description, this.infoButton)\n\n if (this.schema.readOnly || this.schema.readonly) {\n this.disable(true)\n this.input.disabled = true\n }\n\n this.input.addEventListener('change', e => {\n e.preventDefault()\n e.stopPropagation()\n this.value = e.currentTarget.checked\n this.onChange(true)\n })\n\n this.container.appendChild(this.control)\n }\n\n enable () {\n if (!this.always_disabled) {\n this.input.disabled = false\n super.enable()\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n this.input.disabled = true\n super.disable()\n }\n\n destroy () {\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\n super.destroy()\n }\n\n showValidationErrors (errors) {\n this.previous_error_setting = this.jsoneditor.options.show_errors\n\n const addMessage = (messages, error) => {\n if (error.path === this.path) {\n messages.push(error.message)\n }\n return messages\n }\n const messages = errors.reduce(addMessage, [])\n this.input.controlgroup = this.control\n\n if (messages.length) {\n this.theme.addInputError(this.input, `${messages.join('. ')}.`)\n } else {\n this.theme.removeInputError(this.input)\n }\n }\n}\n","/* eslint-disable */\nexport default {\".choices > *\":\"box-sizing:border-box\"}\n/* eslint-enable */\n","import { SelectEditor } from './select.js'\nimport { extend } from '../utilities.js'\nimport rules from './choices.css.js'\n\nexport class ChoicesEditor extends SelectEditor {\n setValue (value, initial) {\n if (this.choices_instance) {\n /* Sanitize value before setting it */\n let sanitized = this.typecast(value || '')\n\n if (!this.enum_values.includes(sanitized)) sanitized = this.enum_values[0]\n\n if (this.value === sanitized) return\n\n if (initial) this.is_dirty = false\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\n\n this.input.value = this.enum_options[this.enum_values.indexOf(sanitized)]\n\n this.choices_instance.setChoiceByValue(this.input.value)\n\n this.value = sanitized\n this.onChange()\n } else super.setValue(value, initial)\n }\n\n afterInputReady () {\n if (window.Choices && !this.choices_instance) {\n /* Get options, either global options from \"this.defaults.options.choices\" or */\n /* single property options from schema \"options.choices\" */\n const options = this.expandCallbacks('choices', extend({}, this.defaults.options.choices || {}, this.options.choices || {}))\n\n this.choices_instance = new window.Choices(this.input, options)\n }\n super.afterInputReady()\n }\n\n onWatchedFieldChange () {\n super.onWatchedFieldChange()\n if (this.choices_instance) {\n const choicesList = this.enum_options.map((v, i) => ({\n value: v,\n label: this.enum_display[i]\n }))\n this.choices_instance.setChoices(choicesList, 'value', 'label', true)\n this.choices_instance.setChoiceByValue(`${this.value}`) /* Set new selection */\n }\n }\n\n enable () {\n if (!this.always_disabled && this.choices_instance) this.choices_instance.enable()\n super.enable()\n }\n\n disable (alwaysDisabled) {\n if (this.choices_instance) this.choices_instance.disable()\n super.disable(alwaysDisabled)\n }\n\n destroy () {\n if (this.choices_instance) {\n this.choices_instance.destroy()\n this.choices_instance = null\n }\n super.destroy()\n }\n}\n\nChoicesEditor.rules = rules\n","/*\n\nEdtended handling of oolor type fields.\n\nHas optional support for using https://github.com/Sphinxxxx/vanilla-picker.\n\n*/\nimport { StringEditor } from './string.js'\nimport { extend } from '../utilities.js'\n\nexport class ColorEditor extends StringEditor {\n postBuild () {\n if (window.Picker) {\n this.input.type = 'text'\n }\n this.input.style.padding = '3px'\n }\n\n setValue (value, initial, fromTemplate) {\n const res = super.setValue(value, initial, fromTemplate)\n if (this.picker_instance && this.picker_instance.domElement && res && res.changed) {\n this.picker_instance.setColor(res.value, true)\n }\n return res\n }\n\n getNumColumns () {\n return 2\n }\n\n afterInputReady () {\n super.afterInputReady()\n this.createPicker(true)\n }\n\n disable () {\n super.disable()\n if (this.picker_instance && this.picker_instance.domElement) {\n /* Disable picker cursor dragging */\n this.picker_instance.domElement.style.pointerEvents = 'none'\n /* Disable picker buttons */\n const buttons = this.picker_instance.domElement.querySelectorAll('button')\n for (let i = 0; i < buttons.length; i++) {\n buttons[i].disabled = true\n }\n }\n }\n\n enable () {\n super.enable()\n if (this.picker_instance && this.picker_instance.domElement) {\n /* Enable picker cursor dragging */\n this.picker_instance.domElement.style.pointerEvents = 'auto'\n /* Enable picker buttons */\n const buttons = this.picker_instance.domElement.querySelectorAll('button')\n for (let i = 0; i < buttons.length; i++) {\n buttons[i].disabled = false\n }\n }\n }\n\n destroy () {\n this.createPicker(false)\n super.destroy()\n }\n\n /* helper functions */\n createPicker (create) {\n if (create) { /* create vanilla-picker */\n if (window.Picker && !this.picker_instance) { /* do when vanilla-picker loaded */\n const options = this.expandCallbacks('colorpicker', extend({}, {\n editor: false, /* default no editor */\n alpha: false, /* default no alpha */\n color: this.value,\n popup: 'bottom' /* show in the bottom */\n }, this.defaults.options.colorpicker || {}, this.options.colorpicker || {}, {\n parent: this.container\n }))\n\n const updateHandler = color => {\n const format = this.picker_instance.settings.editorFormat\n const isAlpha = this.picker_instance.settings.alpha\n this.setValue(format === 'hex' ? (isAlpha ? color.hex : color.hex.slice(0, 7)) : color[`${format + (isAlpha ? 'a' : '')}String`])\n }\n if (!options.popup && typeof options.onChange !== 'function') options.onChange = updateHandler\n else if (options.popup && typeof options.onDone !== 'function') options.onDone = updateHandler\n\n this.picker_instance = new window.Picker(options)\n /* this.picker_instance.openHandler() */\n if (!options.popup) { /* use inline colorPicker */\n this.input.style.display = 'none'\n this.theme.afterInputReady(this.picker_instance.domElement)\n }\n }\n } else { /* destroy vanilla-picker */\n if (this.picker_instance) {\n this.picker_instance.destroy()\n this.picker_instance = null\n this.input.style.display = ''\n }\n }\n }\n}\n","/*\n\nEdtended handling of date, time and datetime-local type fields.\n\nWorks with both string and integer data types. (default only support string type)\n\nHas optional support for using flatpickr datepicker.\nAll flatpickr options is supported with a few minor differences.\n- \"enableTime\" and \"noCalendar\" are set automatically, based on the data type.\n- Extra config option \"errorDateFormat\". If this is set, it will replace the format displayed in error messages.\n- It is not possible to use \"inline\" and \"wrap\" options together.\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)\n- When using the \"inline\" option, an extra boolean option (\"inlineHideInput\") is available to hide the original input field.\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.\n\nToDo:\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)\n\n*/\nimport { StringEditor } from './string.js'\n\nexport class DatetimeEditor extends StringEditor {\n build () {\n super.build()\n if (!this.input) {\n return\n }\n\n if (this.schema.max && typeof this.schema.max === 'string') {\n this.input.setAttribute('max', this.schema.max)\n }\n\n if (this.schema.min && typeof this.schema.max === 'string') {\n this.input.setAttribute('min', this.schema.min)\n }\n\n if (window.flatpickr && typeof this.options.flatpickr === 'object') {\n /* Make sure that flatpickr settings matches the input type */\n this.options.flatpickr.enableTime = this.schema.format !== 'date'\n this.options.flatpickr.noCalendar = this.schema.format === 'time'\n\n /* Curently only string can contain range or multiple values */\n if (this.schema.type === 'integer') this.options.flatpickr.mode = 'single'\n\n /* Attribute for flatpicker */\n this.input.setAttribute('data-input', '')\n\n let { input } = this\n\n if (this.options.flatpickr.wrap === true) {\n /* Create buttons for input group */\n const buttons = []\n if (this.options.flatpickr.showToggleButton !== false) {\n const toggleButton = this.getButton('', this.schema.format === 'time' ? 'time' : 'calendar', 'flatpickr_toggle_button')\n /* Attribute for flatpicker */\n toggleButton.setAttribute('data-toggle', '')\n buttons.push(toggleButton)\n }\n if (this.options.flatpickr.showClearButton !== false) {\n const clearButton = this.getButton('', 'clear', 'flatpickr_clear_button')\n /* Attribute for flatpicker */\n clearButton.setAttribute('data-clear', '')\n buttons.push(clearButton)\n }\n\n /* Save position of input field */\n const { parentNode } = this.input; const { nextSibling } = this.input\n\n const buttonContainer = this.theme.getInputGroup(this.input, buttons)\n if (buttonContainer !== undefined) {\n /* Make sure \"inline\" option is turned off */\n this.options.flatpickr.inline = false\n\n /* Insert container at same position as input field */\n parentNode.insertBefore(buttonContainer, nextSibling)\n\n input = buttonContainer\n } else {\n this.options.flatpickr.wrap = false\n }\n }\n\n this.flatpickr = window.flatpickr(input, this.options.flatpickr)\n\n if (this.options.flatpickr.inline === true && this.options.flatpickr.inlineHideInput === true) {\n this.input.setAttribute('type', 'hidden')\n }\n }\n }\n\n getValue () {\n if (!this.dependenciesFulfilled) {\n return undefined\n }\n if (this.schema.type === 'string') {\n return this.value\n }\n if (this.value === '' || this.value === undefined) {\n return undefined\n }\n\n const value = this.schema.format === 'time' ? `1970-01-01 ${this.value}` : this.value\n return parseInt(new Date(value).getTime() / 1000)\n }\n\n setValue (value, initial, fromTemplate) {\n if (this.schema.type === 'string') {\n super.setValue(value, initial, fromTemplate)\n if (this.flatpickr) this.flatpickr.setDate(value)\n } else if (value > 0) {\n const dateObj = new Date(value * 1000)\n const year = dateObj.getFullYear()\n const month = this.zeroPad(dateObj.getMonth() + 1)\n const day = this.zeroPad(dateObj.getDate())\n const hour = this.zeroPad(dateObj.getHours())\n const min = this.zeroPad(dateObj.getMinutes())\n const sec = this.zeroPad(dateObj.getSeconds())\n const date = [year, month, day].join('-')\n const time = [hour, min, sec].join(':')\n let dateValue = `${date}T${time}`\n\n if (this.schema.format === 'date') dateValue = date\n else if (this.schema.format === 'time') dateValue = time\n\n this.input.value = dateValue\n this.refreshValue()\n if (this.flatpickr) this.flatpickr.setDate(dateValue)\n }\n }\n\n destroy () {\n if (this.flatpickr) this.flatpickr.destroy()\n this.flatpickr = null\n super.destroy()\n }\n\n /* helper function */\n zeroPad (value) {\n return (`0${value}`).slice(-2)\n }\n}\n","/* hyper-link describeBy Editor */\nimport { AbstractEditor } from '../editor.js'\nimport { extend } from '../utilities.js'\n\nexport class DescribedByEditor extends AbstractEditor {\n register () {\n if (this.editors) {\n for (let i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue\n this.editors[i].unregister()\n }\n\n if (this.editors[this.currentEditor]) this.editors[this.currentEditor].register()\n }\n\n super.register()\n }\n\n unregister () {\n super.unregister()\n\n if (this.editors) {\n for (let i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue\n this.editors[i].unregister()\n }\n }\n }\n\n getNumColumns () {\n if (!this.editors[this.currentEditor]) return 4\n return Math.max(this.editors[this.currentEditor].getNumColumns(), 4)\n }\n\n enable () {\n if (this.editors) {\n for (let i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue\n this.editors[i].enable()\n }\n }\n\n super.enable()\n }\n\n disable () {\n if (this.editors) {\n for (let i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue\n this.editors[i].disable()\n }\n }\n\n super.disable()\n }\n\n switchEditor () {\n const vars = this.getWatchedFieldValues()\n\n if (!vars) return\n\n /* var ref = this.template.fillFromObject(vars); */\n /* var ref = this.template(vars); */\n const ref = document.location.origin + document.location.pathname + this.template(vars)\n\n if (!this.editors[this.refs[ref]]) {\n this.buildChildEditor(ref)\n }\n\n this.currentEditor = this.refs[ref]\n\n this.register()\n\n this.editors.forEach((editor, ref) => {\n if (!editor) return\n if (this.currentEditor === ref) {\n editor.container.style.display = ''\n } else {\n editor.container.style.display = 'none'\n }\n })\n\n this.refreshValue()\n this.onChange(true)\n }\n\n buildChildEditor (ref) {\n this.refs[ref] = this.editors.length\n\n const holder = this.theme.getChildEditorHolder()\n this.editor_holder.appendChild(holder)\n\n const schema = extend({}, this.schema, this.jsoneditor.refs[ref])\n\n const editorClass = this.jsoneditor.getEditorClass(schema, this.jsoneditor)\n\n const editor = this.jsoneditor.createEditor(editorClass, {\n jsoneditor: this.jsoneditor,\n schema,\n container: holder,\n path: this.path,\n parent: this,\n required: true\n }\n )\n\n this.editors.push(editor)\n\n editor.preBuild()\n editor.build()\n editor.postBuild()\n }\n\n preBuild () {\n this.refs = {}\n this.editors = []\n this.currentEditor = ''\n let i\n for (i = 0; i < this.schema.links.length; i++) {\n if (this.schema.links[i].rel.toLowerCase() === 'describedby') {\n /* this.template = new UriTemplate(this.schema.links[i].href); */\n this.template = this.jsoneditor.compileTemplate(this.schema.links[i].href, this.template_engine)\n break\n }\n }\n\n /* this.template.fill(function(varName) {\n this.schema.watch = this.schema.watch || {};\n this.schema.watch[varName] = varName;\n return '';\n }); */\n\n this.schema.links = this.schema.links.slice(0, i).concat(this.schema.links.slice(i + 1))\n if (this.schema.links.length === 0) delete this.schema.links\n this.baseSchema = extend({}, this.schema)\n }\n\n build () {\n this.editor_holder = document.createElement('div')\n this.container.appendChild(this.editor_holder)\n this.switchEditor()\n }\n\n onWatchedFieldChange () {\n this.switchEditor()\n }\n\n onChildEditorChange (editor) {\n if (this.editors[this.currentEditor]) {\n this.refreshValue()\n }\n\n super.onChildEditorChange(editor)\n }\n\n refreshValue () {\n if (this.editors[this.currentEditor]) {\n this.value = this.editors[this.currentEditor].getValue()\n }\n }\n\n setValue (val, initial) {\n if (this.editors[this.currentEditor]) {\n this.editors[this.currentEditor].setValue(val, initial)\n this.refreshValue()\n this.onChange()\n }\n }\n\n destroy () {\n this.editors.forEach(editor => {\n if (editor) editor.destroy()\n })\n\n if (this.editor_holder && this.editor_holder.parentNode) {\n this.editor_holder.parentNode.removeChild(this.editor_holder)\n }\n\n super.destroy()\n }\n\n showValidationErrors (errors) {\n this.editors.forEach(editor => {\n if (!editor) return\n editor.showValidationErrors(errors)\n })\n }\n}\n","/* Enum Editor (used for objects and arrays with enumerated values) */\nimport { AbstractEditor } from '../editor.js'\n\nexport class EnumEditor extends AbstractEditor {\n getNumColumns () {\n return 4\n }\n\n build () {\n this.title = this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\n this.container.appendChild(this.title)\n\n this.options.enum_titles = this.options.enum_titles || []\n\n this.enum = this.schema.enum\n this.selected = 0\n this.select_options = []\n this.html_values = []\n\n for (let i = 0; i < this.enum.length; i++) {\n this.select_options[i] = this.options.enum_titles[i] || `Value ${i + 1}`\n this.html_values[i] = this.getHTML(this.enum[i])\n }\n\n /* Switcher */\n this.switcher = this.theme.getSwitcher(this.select_options)\n this.container.appendChild(this.switcher)\n\n /* Display area */\n this.display_area = this.theme.getIndentedPanel()\n this.container.appendChild(this.display_area)\n\n if (this.options.hide_display) this.display_area.style.display = 'none'\n\n this.switcher.addEventListener('change', e => {\n this.selected = this.select_options.indexOf(e.currentTarget.value)\n this.value = this.enum[this.selected]\n this.refreshValue()\n this.onChange(true)\n })\n this.value = this.enum[0]\n this.refreshValue()\n\n if (this.enum.length === 1) this.switcher.style.display = 'none'\n }\n\n refreshValue () {\n this.selected = -1\n const stringified = JSON.stringify(this.value)\n this.enum.forEach((el, i) => {\n if (stringified === JSON.stringify(el)) {\n this.selected = i\n return false\n }\n })\n\n if (this.selected < 0) {\n this.setValue(this.enum[0])\n return\n }\n\n this.switcher.value = this.select_options[this.selected]\n this.display_area.innerHTML = this.html_values[this.selected]\n }\n\n enable () {\n if (!this.always_disabled) {\n this.switcher.disabled = false\n super.enable()\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n this.switcher.disabled = true\n super.disable()\n }\n\n getHTML (el) {\n const each = (obj, callback) => {\n if (Array.isArray(obj) || (typeof obj.length === 'number' && obj.length > 0 && (obj.length - 1) in obj)) {\n Array.from(obj).forEach((e, i) => callback(i, e))\n } else {\n Object.entries(obj).forEach(([key, value]) => callback(key, value))\n }\n }\n\n if (el === null) {\n return '<em>null</em>'\n /* Array or Object */\n } else if (typeof el === 'object') {\n /* TODO: use theme */\n let ret = ''\n const callback = (i, child) => {\n let html = this.getHTML(child)\n /* Add the keys to object children */\n if (!(Array.isArray(el))) {\n /* TODO: use theme */\n html = `<div><em>${i}</em>: ${html}</div>`\n }\n /* TODO: use theme */\n ret += `<li>${html}</li>`\n }\n each(el, callback)\n\n if (Array.isArray(el)) ret = `<ol>${ret}</ol>`\n else ret = `<ul style='margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;'>${ret}</ul>`\n\n return ret\n /* Boolean */\n } else if (typeof el === 'boolean') {\n return el ? 'true' : 'false'\n /* String */\n } else if (typeof el === 'string') {\n return el.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')\n /* Number */\n }\n return el\n }\n\n setValue (val) {\n if (this.value !== val) {\n this.value = val\n this.refreshValue()\n this.onChange()\n }\n }\n\n destroy () {\n if (this.display_area && this.display_area.parentNode) this.display_area.parentNode.removeChild(this.display_area)\n if (this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title)\n if (this.switcher && this.switcher.parentNode) this.switcher.parentNode.removeChild(this.switcher)\n\n super.destroy()\n }\n}\n","/**\n * Created by Mehmet Baker on 12.04.2017\n */\nimport { AbstractEditor } from '../editor.js'\n\nexport class HiddenEditor extends AbstractEditor {\n register () {\n super.register()\n if (!this.input) return\n if (this.jsoneditor.options.use_name_attributes) {\n this.input.setAttribute('name', this.formname)\n }\n }\n\n unregister () {\n super.unregister()\n if (!this.input) return\n this.input.removeAttribute('name')\n }\n\n setValue (value, initial, fromTemplate) {\n if (this.template && !fromTemplate) {\n return\n }\n\n if (value === null || typeof value === 'undefined') value = ''\n else if (typeof value === 'object') value = JSON.stringify(value)\n else if (typeof value !== 'string') value = `${value}`\n\n if (value === this.serialized) return\n\n /* Sanitize value before setting it */\n const sanitized = this.sanitize(value)\n\n if (this.input.value === sanitized) {\n return\n }\n\n this.input.value = sanitized\n\n const changed = fromTemplate || this.getValue() !== value\n\n this.refreshValue()\n\n if (initial) this.is_dirty = false\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\n\n if (this.adjust_height) this.adjust_height(this.input)\n\n /* Bubble this setValue to parents if the value changed */\n this.onChange(changed)\n }\n\n getNumColumns () {\n return 2\n }\n\n enable () {\n super.enable()\n }\n\n disable () {\n super.disable()\n }\n\n refreshValue () {\n this.value = this.input.value\n if (typeof this.value !== 'string') this.value = ''\n this.serialized = this.value\n }\n\n destroy () {\n this.template = null\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\n\n super.destroy()\n }\n\n /**\n * This is overridden in derivative editors\n */\n sanitize (value) {\n return value\n }\n\n /**\n * Re-calculates the value if needed\n */\n onWatchedFieldChange () {\n let vars\n\n /* If this editor needs to be rendered by a macro template */\n if (this.template) {\n vars = this.getWatchedFieldValues()\n this.setValue(this.template(vars), false, true)\n }\n\n super.onWatchedFieldChange()\n }\n\n build () {\n this.format = this.schema.format\n if (!this.format && this.options.default_format) {\n this.format = this.options.default_format\n }\n if (this.options.format) {\n this.format = this.options.format\n }\n\n this.input_type = 'hidden'\n this.input = this.theme.getFormInputField(this.input_type)\n\n if (this.format) this.input.setAttribute('data-schemaformat', this.format)\n\n this.container.appendChild(this.input)\n\n /* Compile and store the template */\n if (this.schema.template) {\n const callback = this.expandCallbacks('template', { template: this.schema.template })\n if (typeof callback.template === 'function') this.template = callback.template\n else this.template = this.jsoneditor.compileTemplate(this.schema.template, this.template_engine)\n this.refreshValue()\n } else {\n this.refreshValue()\n }\n }\n}\n","/* Internal helper function called only here so we won't export as part of class */\n/* Previously the assignment to the JSONEditor.defaults.editors was done in each of the editor */\n/* files but doing it this way removes each of the editors' dependency on JSONEditor */\n\nimport { AceEditor as ace } from './ace.js'\nimport { ArrayEditor as array } from './array.js'\nimport { ArrayChoicesEditor as arrayChoices } from './array/choices.js'\nimport { ArraySelect2Editor as arraySelect2 } from './array/select2.js'\nimport { ArraySelectizeEditor as arraySelectize } from './array/selectize.js'\nimport { AutocompleteEditor as autocomplete } from './autocomplete.js'\nimport { Base64Editor as base64 } from './base64.js'\nimport { ButtonEditor as button } from './button.js'\nimport { CheckboxEditor as checkbox } from './checkbox.js'\nimport { ChoicesEditor as choices } from './choices.js'\nimport { DatetimeEditor as datetime } from './datetime.js'\nimport { DescribedByEditor as describedBy } from './describedby.js'\nimport { EnumEditor } from './enum.js'\nimport { HiddenEditor as hidden } from './hidden.js'\nimport { InfoEditor as info } from './info.js'\nimport { IntegerEditor as integer } from './integer.js'\nimport { IpEditor as ip } from './ip.js'\nimport { JoditEditor as jodit } from './jodit.js'\nimport { MultipleEditor as multiple } from './multiple.js'\nimport { MultiSelectEditor as multiselect } from './multiselect.js'\nimport { NullEditor } from './null.js'\nimport { NumberEditor as number } from './number.js'\nimport { ObjectEditor as object } from './object.js'\nimport { RadioEditor as radio } from './radio.js'\nimport { ScEditor as sceditor } from './sceditor.js'\nimport { SelectEditor as select } from './select.js'\nimport { Select2Editor as select2 } from './select2.js'\nimport { SelectizeEditor as selectize } from './selectize.js'\nimport { SignatureEditor as signature } from './signature.js'\nimport { SimplemdeEditor as simplemde } from './simplemde.js'\nimport { StarratingEditor as starrating } from './starrating.js'\nimport { StepperEditor as stepper } from './stepper.js'\nimport { StringEditor as string } from './string.js'\nimport { TableEditor as table } from './table.js'\nimport { UploadEditor as upload } from './upload.js'\nimport { UuidEditor as uuid } from './uuid.js'\nimport { ColorEditor as colorpicker } from './colorpicker.js'\n\nexport const editors = {\n ace,\n array,\n arrayChoices,\n arraySelect2,\n arraySelectize,\n autocomplete,\n base64,\n button,\n checkbox,\n choices,\n datetime,\n describedBy,\n enum: EnumEditor,\n hidden,\n info,\n integer,\n ip,\n jodit,\n multiple,\n multiselect,\n null: NullEditor,\n number,\n object,\n radio,\n sceditor,\n select,\n select2,\n selectize,\n signature,\n simplemde,\n starrating,\n stepper,\n string,\n table,\n upload,\n uuid,\n colorpicker\n}\n","/* Non-Active editor for displaying text blocks in form */\nimport { ButtonEditor } from './button.js'\n\nexport class InfoEditor extends ButtonEditor {\n build () {\n this.options.compact = false\n this.header = this.label = this.theme.getFormInputLabel(this.getTitle())\n this.description = this.theme.getDescription(this.schema.description || '')\n this.control = this.theme.getFormControl(this.label, this.description, null)\n this.container.appendChild(this.control)\n }\n\n getTitle () {\n return this.translateProperty(this.schema.title)\n }\n\n getNumColumns () {\n return 12\n }\n}\n","import { NumberEditor } from './number.js'\nimport { isInteger } from '../utilities.js'\n\nexport class IntegerEditor extends NumberEditor {\n getNumColumns () {\n return 2\n }\n\n getValue () {\n if (!this.dependenciesFulfilled) {\n return undefined\n }\n const value = isInteger(this.value) ? parseInt(this.value) : this.value\n if (!this.jsoneditor.options.use_default_values && value === '') {\n return undefined\n }\n return value\n }\n}\n","import { StringEditor } from './string.js'\nimport { extend } from '../utilities.js'\n\nexport class IpEditor extends StringEditor {\n preBuild () {\n super.preBuild()\n\n /* Create schema options object if deesn't exist */\n if (!this.schema.options) {\n this.schema.options = {}\n }\n\n /* Create cleave options if they don't exist */\n if (!this.schema.options.cleave) {\n switch (this.format) {\n case 'ipv6':\n this.schema.options.cleave = {\n delimiters: [':'],\n blocks: [4, 4, 4, 4, 4, 4, 4, 4],\n uppercase: true\n }\n break\n case 'ipv4':\n this.schema.options.cleave = {\n delimiters: ['.'],\n blocks: [3, 3, 3, 3],\n numericOnly: true\n }\n break\n }\n }\n\n /* Update options object */\n this.options = extend(this.options, this.schema.options || {})\n }\n}\n","import { StringEditor } from './string.js'\nimport { extend } from '../utilities.js'\n\nexport class JoditEditor extends StringEditor {\n setValue (value, initial, fromTemplate) {\n const res = super.setValue(value, initial, fromTemplate)\n if (res !== undefined && res.changed && this.jodit_instance) this.jodit_instance.setEditorValue(res.value)\n }\n\n build () {\n this.options.format = 'textarea' /* Force format into \"textarea\" */\n super.build()\n this.input_type = this.schema.format /* Restore original format */\n this.input.setAttribute('data-schemaformat', this.input_type)\n }\n\n afterInputReady () {\n let options\n\n if (window.Jodit) {\n /* Get options, either global options from \"this.defaults.options.jodit\" or */\n /* single property options from schema \"options.jodit\" */\n options = this.expandCallbacks('jodit', extend({}, {\n height: 300\n }, this.defaults.options.jodit || {}, this.options.jodit || {}))\n\n this.jodit_instance = new window.Jodit(this.input, options)\n\n if (this.schema.readOnly || this.schema.readonly || this.schema.template) {\n this.jodit_instance.setReadOnly(true)\n }\n\n this.jodit_instance.events.on('change', () => {\n this.value = this.jodit_instance.getEditorValue()\n this.is_dirty = true\n this.onChange(true)\n })\n\n this.theme.afterInputReady(this.input)\n } else super.afterInputReady() /* Library not loaded, so just treat this as a string */\n }\n\n getNumColumns () {\n return 6\n }\n\n enable () {\n if (!this.always_disabled && this.jodit_instance) this.jodit_instance.setReadOnly(false)\n super.enable()\n }\n\n disable (alwaysDisabled) {\n if (this.jodit_instance) this.jodit_instance.setReadOnly(true)\n super.disable(alwaysDisabled)\n }\n\n destroy () {\n if (this.jodit_instance) {\n this.jodit_instance.destruct()\n this.jodit_instance = null\n }\n super.destroy()\n }\n}\n","/* Multiple Editor (for when `type` is an array, also when `oneOf` is present) */\nimport { AbstractEditor } from '../editor.js'\nimport { Validator } from '../validator.js'\nimport { extend } from '../utilities.js'\n\nexport class MultipleEditor extends AbstractEditor {\n register () {\n if (this.editors) {\n for (let i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue\n this.editors[i].unregister()\n }\n if (this.editors[this.type]) this.editors[this.type].register()\n }\n super.register()\n }\n\n unregister () {\n super.unregister()\n if (this.editors) {\n for (let i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue\n this.editors[i].unregister()\n }\n }\n }\n\n getNumColumns () {\n if (!this.editors[this.type]) return 4\n return Math.max(this.editors[this.type].getNumColumns(), 4)\n }\n\n enable () {\n if (!this.always_disabled) {\n if (this.editors) {\n for (let i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue\n this.editors[i].enable()\n }\n }\n this.switcher.disabled = false\n super.enable()\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n if (this.editors) {\n for (let i = 0; i < this.editors.length; i++) {\n if (!this.editors[i]) continue\n this.editors[i].disable(alwaysDisabled)\n }\n }\n this.switcher.disabled = true\n super.disable()\n }\n\n switchEditor (i) {\n if (!this.editors[i]) {\n this.buildChildEditor(i)\n }\n\n const currentValue = this.getValue()\n\n this.type = i\n\n this.register()\n\n this.editors.forEach((editor, type) => {\n if (!editor) return\n if (this.type === type) {\n if (this.keep_values) editor.setValue(currentValue, true)\n editor.container.style.display = ''\n } else editor.container.style.display = 'none'\n })\n this.refreshValue()\n this.refreshHeaderText()\n }\n\n buildChildEditor (i) {\n const type = this.types[i]\n const holder = this.theme.getChildEditorHolder()\n this.editor_holder.appendChild(holder)\n\n let schema\n\n if (typeof type === 'string') {\n schema = extend({}, this.schema)\n schema.type = type\n } else {\n schema = extend({}, this.schema, type)\n schema = this.jsoneditor.expandRefs(schema)\n\n /* If we need to merge `required` arrays */\n if (type && type.required && Array.isArray(type.required) && this.schema.required && Array.isArray(this.schema.required)) {\n schema.required = this.schema.required.concat(type.required)\n }\n }\n\n const editor = this.jsoneditor.getEditorClass(schema)\n\n this.editors[i] = this.jsoneditor.createEditor(editor, {\n jsoneditor: this.jsoneditor,\n schema,\n container: holder,\n path: this.path,\n parent: this,\n required: true\n })\n this.editors[i].preBuild()\n this.editors[i].build()\n this.editors[i].postBuild()\n\n if (this.editors[i].header) this.editors[i].header.style.display = 'none'\n\n this.editors[i].option = this.switcher_options[i]\n\n holder.addEventListener('change_header_text', () => {\n this.refreshHeaderText()\n })\n\n if (i !== this.type) holder.style.display = 'none'\n }\n\n preBuild () {\n this.types = []\n this.type = 0\n this.editors = []\n this.validators = []\n\n this.keep_values = true\n if (typeof this.jsoneditor.options.keep_oneof_values !== 'undefined') this.keep_values = this.jsoneditor.options.keep_oneof_values\n if (typeof this.options.keep_oneof_values !== 'undefined') this.keep_values = this.options.keep_oneof_values\n\n if (this.schema.oneOf) {\n this.oneOf = true\n this.types = this.schema.oneOf\n delete this.schema.oneOf\n } else if (this.schema.anyOf) {\n this.anyOf = true\n this.types = this.schema.anyOf\n delete this.schema.anyOf\n } else {\n if (!this.schema.type || this.schema.type === 'any') {\n this.types = ['string', 'number', 'integer', 'boolean', 'object', 'array', 'null']\n\n /* If any of these primitive types are disallowed */\n if (this.schema.disallow) {\n let { disallow } = this.schema\n if (typeof disallow !== 'object' || !(Array.isArray(disallow))) {\n disallow = [disallow]\n }\n const allowedTypes = []\n this.types.forEach(type => {\n if (!disallow.includes(type)) allowedTypes.push(type)\n })\n this.types = allowedTypes\n }\n } else if (Array.isArray(this.schema.type)) {\n this.types = this.schema.type\n } else {\n this.types = [this.schema.type]\n }\n delete this.schema.type\n }\n\n this.display_text = this.getDisplayText(this.types)\n }\n\n build () {\n const { container } = this\n\n this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\n this.container.appendChild(this.header)\n\n this.switcher = this.theme.getSwitcher(this.display_text)\n container.appendChild(this.switcher)\n this.switcher.addEventListener('change', e => {\n e.preventDefault()\n e.stopPropagation()\n\n this.switchEditor(this.display_text.indexOf(e.currentTarget.value))\n this.onChange(true)\n })\n\n this.editor_holder = document.createElement('div')\n container.appendChild(this.editor_holder)\n\n const validatorOptions = {}\n if (this.jsoneditor.options.custom_validators) {\n validatorOptions.custom_validators = this.jsoneditor.options.custom_validators\n }\n\n this.switcher_options = this.theme.getSwitcherOptions(this.switcher)\n this.types.forEach((type, i) => {\n this.editors[i] = false\n\n let schema\n\n if (typeof type === 'string') {\n schema = extend({}, this.schema)\n schema.type = type\n } else {\n schema = extend({}, this.schema, type)\n\n /* If we need to merge `required` arrays */\n if (type.required && Array.isArray(type.required) && this.schema.required && Array.isArray(this.schema.required)) {\n schema.required = this.schema.required.concat(type.required)\n }\n }\n this.validators[i] = new Validator(this.jsoneditor, schema, validatorOptions, this.defaults)\n })\n\n this.switchEditor(0)\n }\n\n onChildEditorChange (editor) {\n if (this.editors[this.type]) {\n this.refreshValue()\n this.refreshHeaderText()\n }\n\n super.onChildEditorChange()\n }\n\n refreshHeaderText () {\n const displayText = this.getDisplayText(this.types)\n Array.from(this.switcher_options).forEach((option, i) => {\n option.textContent = displayText[i]\n })\n }\n\n refreshValue () {\n this.value = this.editors[this.type].getValue()\n }\n\n setValue (val, initial) {\n /* Determine type by getting the first one that validates */\n\n const prevType = this.type\n /* find the best match one */\n let fitTestVal = {\n match: 0,\n extra: 0,\n i: this.type\n }\n const validVal = {\n match: 0,\n i: null\n }\n this.validators.forEach((validator, i) => {\n let fitTestResult = null\n if (typeof this.anyOf !== 'undefined' && this.anyOf) {\n fitTestResult = validator.fitTest(val)\n if (fitTestVal.match < fitTestResult.match) {\n fitTestVal = fitTestResult\n fitTestVal.i = i\n } else if (fitTestVal.match === fitTestResult.match) {\n if (fitTestVal.extra > fitTestResult.extra) {\n fitTestVal = fitTestResult\n fitTestVal.i = i\n }\n }\n }\n if (!validator.validate(val).length && validVal.i === null) {\n validVal.i = i\n if (fitTestResult !== null) {\n validVal.match = fitTestResult.match\n }\n } else {\n fitTestVal = validVal\n }\n })\n let finalI = validVal.i\n /* if the best fit schema has more match properties, then use the best fit schema. */\n /* usually the value could be */\n if (typeof this.anyOf !== 'undefined' && this.anyOf) {\n if (validVal.match < fitTestVal.match) {\n finalI = fitTestVal.i\n }\n }\n if (finalI === null) {\n finalI = this.type\n }\n this.type = finalI\n this.switcher.value = this.display_text[finalI]\n\n const typeChanged = this.type !== prevType\n if (typeChanged) {\n this.switchEditor(this.type)\n }\n\n this.editors[this.type].setValue(val, initial)\n\n this.refreshValue()\n this.onChange(typeChanged)\n }\n\n destroy () {\n this.editors.forEach(editor => {\n if (editor) editor.destroy()\n })\n if (this.editor_holder && this.editor_holder.parentNode) this.editor_holder.parentNode.removeChild(this.editor_holder)\n if (this.switcher && this.switcher.parentNode) this.switcher.parentNode.removeChild(this.switcher)\n super.destroy()\n }\n\n showValidationErrors (errors) {\n /* oneOf and anyOf error paths need to remove the oneOf[i] part before passing to child editors */\n if (this.oneOf || this.anyOf) {\n const checkPart = this.oneOf ? 'oneOf' : 'anyOf'\n this.editors.forEach((editor, i) => {\n if (!editor) return\n const check = `${this.path}.${checkPart}[${i}]`\n const filterError = (newErrors, error) => {\n if (error.path.startsWith(check) || error.path === check.substr(0, error.path.length)) {\n const newError = extend({}, error)\n\n if (error.path.startsWith(check)) {\n newError.path = this.path + newError.path.substr(check.length)\n }\n\n newErrors.push(newError)\n }\n return newErrors\n }\n editor.showValidationErrors(errors.reduce(filterError, []))\n })\n } else {\n this.editors.forEach(editor => {\n if (!editor) return\n editor.showValidationErrors(errors)\n })\n }\n }\n\n addLinks () {\n // multiple editor itself don't create links\n }\n}\n","import { AbstractEditor } from '../editor.js'\n\nexport class MultiSelectEditor extends AbstractEditor {\n onInputChange () {\n this.value = this.input.value\n this.onChange(true)\n }\n\n register () {\n super.register()\n if (!this.input) return\n if (this.jsoneditor.options.use_name_attributes) {\n this.input.setAttribute('name', this.formname)\n }\n }\n\n unregister () {\n super.unregister()\n if (!this.input) return\n this.input.removeAttribute('name')\n }\n\n getNumColumns () {\n let longestText = this.getTitle().length\n Object.keys(this.select_values).forEach(i => (longestText = Math.max(longestText, (`${this.select_values[i]}`).length + 4)))\n\n return Math.min(12, Math.max(longestText / 7, 2))\n }\n\n preBuild () {\n super.preBuild()\n\n this.select_options = {}\n this.select_values = {}\n this.option_titles = []\n this.option_keys = []\n this.option_enum = []\n\n let i\n const itemsSchema = this.jsoneditor.expandRefs(this.schema.items || {})\n const e = itemsSchema.enum || []\n const oe = itemsSchema.options ? itemsSchema.options.enum || [] : []\n /* fallback to enum_titles, when options.enum is not present */\n const t = itemsSchema.options ? itemsSchema.options.enum_titles || [] : []\n\n for (i = 0; i < e.length; i++) {\n /* If the sanitized value is different from the enum value, don't include it */\n if (this.sanitize(e[i]) !== e[i]) continue\n\n const d = oe[i] || {}\n if (!('title' in d)) d.title = `${t[i] || e[i]}`\n\n this.option_keys.push(`${e[i]}`)\n this.option_enum.push(d)\n this.select_values[`${e[i]}`] = e[i]\n }\n }\n\n build () {\n let i\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\n if (this.options.compact) this.container.classList.add('compact')\n\n if ((!this.schema.format && this.option_keys.length < 8) || this.schema.format === 'checkbox') {\n this.input_type = 'checkboxes'\n\n this.inputs = {}\n this.controls = {}\n for (i = 0; i < this.option_keys.length; i++) {\n const id = this.formname + i.toString()\n this.inputs[this.option_keys[i]] = this.theme.getCheckbox()\n this.inputs[this.option_keys[i]].id = id\n this.select_options[this.option_keys[i]] = this.inputs[this.option_keys[i]]\n const label = this.theme.getCheckboxLabel(this.option_enum[i].title)\n label.htmlFor = id\n if (this.option_enum[i].infoText) {\n const infoButton = this.theme.getInfoButton(this.translateProperty(this.option_enum[i].infoText))\n label.appendChild(infoButton)\n }\n this.controls['_' + this.option_keys[i]] = this.theme.getFormControl(label, this.inputs[this.option_keys[i]])\n }\n\n this.control = this.theme.getMultiCheckboxHolder(this.controls, this.label, this.description, this.infoButton)\n this.inputs.controlgroup = this.inputs.controls = this.control /* Enable error messages for checkboxes */\n } else {\n this.input_type = 'select'\n this.input = this.theme.getSelectInput(this.option_keys, true)\n this.theme.setSelectOptions(this.input, this.option_keys, this.option_enum.map(e => e.title))\n /* this.input.multiple = true; */\n this.input.setAttribute('multiple', 'multiple')\n this.input.size = Math.min(10, this.option_keys.length)\n for (i = 0; i < this.option_keys.length; i++) {\n this.select_options[this.option_keys[i]] = this.input.children[i]\n }\n\n this.control = this.theme.getFormControl(this.label, this.input, this.description, this.infoButton)\n }\n\n if (this.schema.readOnly || this.schema.readonly) {\n this.disable(true)\n }\n\n this.container.appendChild(this.control)\n\n this.multiselectChangeHandler = (e) => {\n const newValue = []\n for (i = 0; i < this.option_keys.length; i++) {\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]])\n }\n this.updateValue(newValue)\n this.onChange(true)\n }\n\n this.control.addEventListener('change', this.multiselectChangeHandler, false)\n\n /* Any special formatting that needs to happen after the input is added to the dom */\n window.requestAnimationFrame(() => {\n this.afterInputReady()\n })\n }\n\n postBuild () {\n super.postBuild()\n /* this.theme.afterInputReady(this.input || this.inputs); */\n }\n\n afterInputReady () {\n this.theme.afterInputReady(this.input || this.inputs)\n }\n\n setValue (value, initial) {\n value = value || []\n if (!(Array.isArray(value))) value = [value]\n\n /* Make sure we are dealing with an array of strings so we can check for strict equality */\n value = value.map(e => `${e}`)\n\n /* Update selected status of options */\n Object.keys(this.select_options).forEach(i => {\n this.select_options[i][this.input_type === 'select' ? 'selected' : 'checked'] = (value.includes(i))\n })\n\n this.updateValue(value)\n this.onChange(true)\n }\n\n removeValue (value) {\n /* Remove from existing value(s) */\n value = [].concat(value)\n this.setValue(this.getValue().filter(item => !value.includes(item)))\n }\n\n addValue (value) {\n /* Add to existing value(s) */\n this.setValue(this.getValue().concat(value))\n }\n\n updateValue (value) {\n let changed = false\n const newValue = []\n for (let i = 0; i < value.length; i++) {\n if (!this.select_options[`${value[i]}`]) {\n changed = true\n continue\n }\n const sanitized = this.sanitize(this.select_values[value[i]])\n newValue.push(sanitized)\n if (sanitized !== value[i]) changed = true\n }\n this.value = newValue\n\n return changed\n }\n\n sanitize (value) {\n if (this.schema.items.type === 'boolean') return !!value\n else if (this.schema.items.type === 'number') return 1 * value || 0\n else if (this.schema.items.type === 'integer') return Math.floor(value * 1 || 0)\n return `${value}`\n }\n\n enable () {\n if (!this.always_disabled) {\n if (this.input) {\n this.input.disabled = false\n } else if (this.inputs) {\n Object.keys(this.inputs).forEach(i => (this.inputs[i].disabled = false))\n }\n super.enable()\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n if (this.input) {\n this.input.disabled = true\n } else if (this.inputs) {\n Object.keys(this.inputs).forEach(i => (this.inputs[i].disabled = true))\n }\n super.disable()\n }\n\n destroy () {\n super.destroy()\n }\n\n escapeRegExp (string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n }\n\n showValidationErrors (errors) {\n const regexPath = new RegExp(`^${this.escapeRegExp(this.path)}(\\\\.\\\\d+)?$`)\n const addMessage = (messages, error) => {\n if (error.path.match(regexPath)) {\n messages.push(error.message)\n }\n return messages\n }\n\n const messages = errors.reduce(addMessage, [])\n\n if (messages.length) {\n this.theme.addInputError(this.input || this.inputs, `${messages.join('. ')}.`)\n } else {\n this.theme.removeInputError(this.input || this.inputs)\n }\n }\n}\n","import { AbstractEditor } from '../editor.js'\n\nexport class NullEditor extends AbstractEditor {\n getValue () {\n if (!this.dependenciesFulfilled) {\n return undefined\n }\n return null\n }\n\n setValue () {\n this.onChange()\n }\n\n getNumColumns () {\n return 2\n }\n}\n","import { StringEditor } from './string.js'\nimport { isNumber } from '../utilities'\n\nexport class NumberEditor extends StringEditor {\n build () {\n super.build()\n\n if (typeof this.schema.minimum !== 'undefined') {\n let { minimum } = this.schema\n\n if (typeof this.schema.exclusiveMinimum !== 'undefined') {\n minimum += 1\n }\n\n this.input.setAttribute('min', minimum)\n }\n\n if (typeof this.schema.maximum !== 'undefined') {\n let { maximum } = this.schema\n\n if (typeof this.schema.exclusiveMaximum !== 'undefined') {\n maximum -= 1\n }\n\n this.input.setAttribute('max', maximum)\n }\n\n if (typeof this.schema.step !== 'undefined') {\n const step = this.schema.step || 1\n this.input.setAttribute('step', step)\n }\n\n /* Set custom attributes on input element. Parameter is array of protected keys. Empty array if none. */\n this.setInputAttributes(['maxlength', 'pattern', 'readonly', 'min', 'max', 'step'])\n }\n\n getNumColumns () {\n return 2\n }\n\n getValue () {\n if (!this.dependenciesFulfilled) {\n return undefined\n }\n const value = isNumber(this.value) ? parseFloat(this.value) : this.value\n if (!this.jsoneditor.options.use_default_values && value === '') {\n return undefined\n }\n return value\n }\n}\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;width:300px;display:block\"}\n/* eslint-enable */\n","import { AbstractEditor } from '../editor.js'\nimport { extend, hasOwnProperty, trigger } from '../utilities.js'\nimport rules from './object.css.js'\n\nexport class ObjectEditor extends AbstractEditor {\n constructor (options, defaults, depth) {\n super(options, defaults)\n this.currentDepth = depth\n }\n\n getDefault () {\n return extend({}, this.schema.default || {})\n }\n\n getChildEditors () {\n return this.editors\n }\n\n register () {\n super.register()\n if (this.editors) {\n Object.values(this.editors).forEach(e => e.register())\n }\n }\n\n unregister () {\n super.unregister()\n if (this.editors) {\n Object.values(this.editors).forEach(e => e.unregister())\n }\n }\n\n getNumColumns () {\n return Math.max(Math.min(12, this.maxwidth), 3)\n }\n\n enable () {\n if (!this.always_disabled) {\n if (this.editjson_control) this.editjson_control.disabled = false\n if (this.addproperty_button) this.addproperty_button.disabled = false\n\n super.enable()\n if (this.editors) {\n Object.values(this.editors).forEach(e => {\n if (e.isActive()) {\n e.enable()\n }\n e.optInCheckbox.disabled = false\n })\n }\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n if (this.editjson_control) this.editjson_control.disabled = true\n if (this.addproperty_button) this.addproperty_button.disabled = true\n this.hideEditJSON()\n\n super.disable()\n if (this.editors) {\n Object.values(this.editors).forEach(e => {\n if (e.isActive()) {\n e.disable(alwaysDisabled)\n }\n e.optInCheckbox.disabled = true\n })\n }\n }\n\n layoutEditors () {\n let i; let j\n\n if (!this.row_container) return\n\n /* Sort editors by propertyOrder */\n this.property_order = Object.keys(this.editors)\n this.property_order = this.property_order.sort((a, b) => {\n let ordera = this.editors[a].schema.propertyOrder\n let orderb = this.editors[b].schema.propertyOrder\n if (typeof ordera !== 'number') ordera = 1000\n if (typeof orderb !== 'number') orderb = 1000\n\n return ordera - orderb\n })\n\n let container\n const isCategoriesFormat = (this.format === 'categories')\n const rows = []\n let key = null\n let editor = null\n let row\n\n if (this.format === 'grid-strict') {\n let rowIndex = 0\n row = []\n\n this.property_order.forEach(key => {\n const editor = this.editors[key]\n if (editor.property_removed) {\n return\n }\n const width = editor.options.hidden ? 0 : (editor.options.grid_columns || editor.getNumColumns())\n const offset = editor.options.hidden ? 0 : (editor.options.grid_offset || 0)\n const gridBreak = editor.options.hidden ? false : (editor.options.grid_break || false)\n const height = editor.options.hidden ? 0 : editor.container.offsetHeight\n\n const column = {\n key,\n width,\n offset,\n height\n }\n\n row.push(column)\n\n rows[rowIndex] = row\n\n if (gridBreak) {\n rowIndex++\n row = []\n }\n })\n\n /* layout hasn't changed */\n if (this.layout === JSON.stringify(rows)) return false\n this.layout = JSON.stringify(rows)\n\n /* Layout the form */\n container = document.createElement('div')\n for (i = 0; i < rows.length; i++) {\n row = this.theme.getGridRow()\n container.appendChild(row)\n for (j = 0; j < rows[i].length; j++) {\n key = rows[i][j].key\n editor = this.editors[key]\n if (editor.options.hidden) {\n editor.container.style.display = 'none'\n } else {\n this.theme.setGridColumnSize(editor.container, rows[i][j].width, rows[i][j].offset)\n }\n row.appendChild(editor.container)\n }\n }\n } else if (this.format === 'grid') {\n this.property_order.forEach(key => {\n const editor = this.editors[key]\n if (editor.property_removed) return\n let found = false\n const width = editor.options.hidden ? 0 : (editor.options.grid_columns || editor.getNumColumns())\n const height = editor.options.hidden ? 0 : editor.container.offsetHeight\n /* See if the editor will fit in any of the existing rows first */\n for (let i = 0; i < rows.length; i++) {\n /* If the editor will fit in the row horizontally */\n if (rows[i].width + width <= 12) {\n /* If the editor is close to the other elements in height */\n /* i.e. Don't put a really tall editor in an otherwise short row or vice versa */\n if (!height || (rows[i].minh * 0.5 < height && rows[i].maxh * 2 > height)) {\n found = i\n }\n }\n }\n\n /* If there isn't a spot in any of the existing rows, start a new row */\n if (found === false) {\n rows.push({\n width: 0,\n minh: 999999,\n maxh: 0,\n editors: []\n })\n found = rows.length - 1\n }\n\n rows[found].editors.push({\n key,\n /* editor: editor, */\n width,\n height\n })\n rows[found].width += width\n rows[found].minh = Math.min(rows[found].minh, height)\n rows[found].maxh = Math.max(rows[found].maxh, height)\n })\n\n /* Make almost full rows width 12 */\n /* Do this by increasing all editors' sizes proprotionately */\n /* Any left over space goes to the biggest editor */\n /* Don't touch rows with a width of 6 or less */\n for (i = 0; i < rows.length; i++) {\n if (rows[i].width < 12) {\n let biggest = false\n let newWidth = 0\n for (j = 0; j < rows[i].editors.length; j++) {\n if (biggest === false) biggest = j\n else if (rows[i].editors[j].width > rows[i].editors[biggest].width) biggest = j\n rows[i].editors[j].width *= 12 / rows[i].width\n rows[i].editors[j].width = Math.floor(rows[i].editors[j].width)\n newWidth += rows[i].editors[j].width\n }\n if (newWidth < 12) rows[i].editors[biggest].width += 12 - newWidth\n rows[i].width = 12\n }\n }\n\n /* layout hasn't changed */\n if (this.layout === JSON.stringify(rows)) return false\n this.layout = JSON.stringify(rows)\n\n /* Layout the form */\n container = document.createElement('div')\n for (i = 0; i < rows.length; i++) {\n row = this.theme.getGridRow()\n container.appendChild(row)\n for (j = 0; j < rows[i].editors.length; j++) {\n key = rows[i].editors[j].key\n editor = this.editors[key]\n\n if (editor.options.hidden) editor.container.style.display = 'none'\n else this.theme.setGridColumnSize(editor.container, rows[i].editors[j].width)\n row.appendChild(editor.container)\n }\n }\n /* Normal layout */\n } else {\n container = document.createElement('div')\n\n if (isCategoriesFormat) {\n /* A container for properties not object nor arrays */\n const containerSimple = document.createElement('div')\n /* This will be the place to (re)build tabs and panes */\n /* tabs_holder has 2 childs, [0]: ul.nav.nav-tabs and [1]: div.tab-content */\n const newTabsHolder = this.theme.getTopTabHolder(this.translateProperty(this.schema.title))\n /* child [1] of previous, stores panes */\n const newTabPanesContainer = this.theme.getTopTabContentHolder(newTabsHolder)\n\n this.property_order.forEach(key => {\n const editor = this.editors[key]\n if (editor.property_removed) return\n const aPane = this.theme.getTabContent()\n const isObjOrArray = editor.schema && (editor.schema.type === 'object' || editor.schema.type === 'array')\n /* mark the pane */\n aPane.isObjOrArray = isObjOrArray\n const gridRow = this.theme.getGridRow()\n\n /* this happens with added properties, they don't have a tab */\n if (!editor.tab) {\n /* Pass the pane which holds the editor */\n if (typeof this.basicPane === 'undefined') {\n /* There is no basicPane yet, so aPane will be it */\n this.addRow(editor, newTabsHolder, aPane)\n } else {\n this.addRow(editor, newTabsHolder, this.basicPane)\n }\n }\n\n aPane.id = this.getValidId(editor.tab_text.textContent)\n\n /* For simple properties, add them on the same panel (Basic) */\n if (!isObjOrArray) {\n containerSimple.appendChild(gridRow)\n /* There are already some panes */\n if (newTabPanesContainer.childElementCount > 0) {\n /* If first pane is object or array, insert before a simple pane */\n if (newTabPanesContainer.firstChild.isObjOrArray) {\n /* Append pane for simple properties */\n aPane.appendChild(containerSimple)\n newTabPanesContainer.insertBefore(aPane, newTabPanesContainer.firstChild)\n /* Add \"Basic\" tab */\n this.theme.insertBasicTopTab(editor.tab, newTabsHolder)\n /* newTabs_holder.firstChild.insertBefore(editor.tab,newTabs_holder.firstChild.firstChild); */\n /* Update the basicPane */\n editor.basicPane = aPane\n } else {\n /* We already have a first \"Basic\" pane, just add the new property to it, so */\n /* do nothing; */\n }\n /* There is no pane, so add the first (simple) pane */\n } else {\n /* Append pane for simple properties */\n aPane.appendChild(containerSimple)\n newTabPanesContainer.appendChild(aPane)\n /* Add \"Basic\" tab */\n /* newTabs_holder.firstChild.appendChild(editor.tab); */\n this.theme.addTopTab(newTabsHolder, editor.tab)\n /* Update the basicPane */\n editor.basicPane = aPane\n }\n /* Objects and arrays earn their own panes */\n } else {\n aPane.appendChild(gridRow)\n newTabPanesContainer.appendChild(aPane)\n /* newTabs_holder.firstChild.appendChild(editor.tab); */\n this.theme.addTopTab(newTabsHolder, editor.tab)\n }\n\n if (editor.options.hidden) editor.container.style.display = 'none'\n else this.theme.setGridColumnSize(editor.container, 12)\n /* Now, add the property editor to the row */\n gridRow.appendChild(editor.container)\n /* Update the rowPane (same as this.rows[x].rowPane) */\n editor.rowPane = aPane\n })\n\n /* Erase old panes */\n while (this.tabPanesContainer.firstChild) {\n this.tabPanesContainer.removeChild(this.tabPanesContainer.firstChild)\n }\n\n /* Erase old tabs and set the new ones */\n const parentTabsHolder = this.tabs_holder.parentNode\n parentTabsHolder.removeChild(parentTabsHolder.firstChild)\n parentTabsHolder.appendChild(newTabsHolder)\n\n this.tabPanesContainer = newTabPanesContainer\n this.tabs_holder = newTabsHolder\n\n /* Activate the first tab */\n const firstTab = this.theme.getFirstTab(this.tabs_holder)\n if (firstTab) {\n trigger(firstTab, 'click')\n }\n return\n /* Normal layout */\n }\n this.property_order.forEach(key => {\n const editor = this.editors[key]\n if (editor.property_removed) return\n row = this.theme.getGridRow()\n container.appendChild(row)\n\n if (editor.options.hidden) editor.container.style.display = 'none'\n else this.theme.setGridColumnSize(editor.container, 12)\n row.appendChild(editor.container)\n })\n }\n /* for grid and normal layout */\n while (this.row_container.firstChild) {\n this.row_container.removeChild(this.row_container.firstChild)\n }\n this.row_container.appendChild(container)\n }\n\n getPropertySchema (key) {\n /* Schema declared directly in properties */\n let schema = this.schema.properties[key] || {}\n schema = extend({}, schema)\n let matched = !!this.schema.properties[key]\n\n /* Any matching patternProperties should be merged in */\n if (this.schema.patternProperties) {\n Object.keys(this.schema.patternProperties).forEach(i => {\n const regex = new RegExp(i)\n if (regex.test(key)) {\n schema.allOf = schema.allOf || []\n schema.allOf.push(this.schema.patternProperties[i])\n matched = true\n }\n })\n }\n\n /* Hasn't matched other rules, use additionalProperties schema */\n if (!matched && this.schema.additionalProperties && typeof this.schema.additionalProperties === 'object') {\n schema = extend({}, this.schema.additionalProperties)\n }\n\n return schema\n }\n\n preBuild () {\n super.preBuild()\n\n this.editors = {}\n this.cached_editors = {}\n\n this.format = this.options.layout || this.options.object_layout || this.schema.format || this.jsoneditor.options.object_layout || 'normal'\n\n this.schema.properties = this.schema.properties || {}\n\n this.minwidth = 0\n this.maxwidth = 0\n\n /* If the object should be rendered as a table row */\n if (this.options.table_row) {\n Object.entries(this.schema.properties).forEach(([key, schema]) => {\n const editor = this.jsoneditor.getEditorClass(schema)\n this.editors[key] = this.jsoneditor.createEditor(editor, {\n jsoneditor: this.jsoneditor,\n schema,\n path: `${this.path}.${key}`,\n parent: this,\n compact: true,\n required: true\n }, this.currentDepth + 1)\n this.editors[key].preBuild()\n\n const width = this.editors[key].options.hidden ? 0 : (this.editors[key].options.grid_columns || this.editors[key].getNumColumns())\n\n this.minwidth += width\n this.maxwidth += width\n })\n this.no_link_holder = true\n /* If the object should be rendered as a table */\n } else if (this.options.table) {\n /* TODO: table display format */\n throw new Error('Not supported yet')\n /* If the object should be rendered as a div */\n } else {\n if (!this.schema.defaultProperties) {\n if (this.jsoneditor.options.display_required_only || this.options.display_required_only) {\n this.schema.defaultProperties = Object.keys(this.schema.properties).filter(k => this.isRequiredObject({ key: k, schema: this.schema.properties[k] }))\n } else {\n this.schema.defaultProperties = Object.keys(this.schema.properties)\n }\n }\n\n /* Increase the grid width to account for padding */\n this.maxwidth += 1\n\n /* Check for array (eg. meta-schema options is an object) */\n if (Array.isArray(this.schema.defaultProperties)) {\n this.schema.defaultProperties.forEach(key => {\n this.addObjectProperty(key, true)\n\n if (this.editors[key]) {\n this.minwidth = Math.max(this.minwidth, (this.editors[key].options.grid_columns || this.editors[key].getNumColumns()))\n this.maxwidth += (this.editors[key].options.grid_columns || this.editors[key].getNumColumns())\n }\n })\n }\n }\n\n /* Sort editors by propertyOrder */\n this.property_order = Object.keys(this.editors)\n this.property_order = this.property_order.sort((a, b) => {\n let ordera = this.editors[a].schema.propertyOrder\n let orderb = this.editors[b].schema.propertyOrder\n if (typeof ordera !== 'number') ordera = 1000\n if (typeof orderb !== 'number') orderb = 1000\n\n return ordera - orderb\n })\n }\n\n /* \"Borrow\" from arrays code */\n addTab (idx) {\n const isObjOrArray = this.rows[idx].schema && (this.rows[idx].schema.type === 'object' || this.rows[idx].schema.type === 'array')\n if (this.tabs_holder) {\n this.rows[idx].tab_text = document.createElement('span')\n\n if (!isObjOrArray) {\n this.rows[idx].tab_text.textContent = (typeof this.schema.basicCategoryTitle === 'undefined') ? 'Basic' : this.schema.basicCategoryTitle\n } else {\n this.rows[idx].tab_text.textContent = this.rows[idx].getHeaderText()\n }\n this.rows[idx].tab = this.theme.getTopTab(this.rows[idx].tab_text, this.getValidId(this.rows[idx].tab_text.textContent))\n this.rows[idx].tab.addEventListener('click', (e) => {\n this.active_tab = this.rows[idx].tab\n this.refreshTabs()\n e.preventDefault()\n e.stopPropagation()\n })\n }\n }\n\n addRow (editor, tabHolder, aPane) {\n const rowsLen = this.rows.length\n const isObjOrArray = editor.schema.type === 'object' || editor.schema.type === 'array'\n\n /* Add a row */\n this.rows[rowsLen] = editor\n /* rowPane stores the editor corresponding pane to set the display style when refreshing Tabs */\n this.rows[rowsLen].rowPane = aPane\n\n if (!isObjOrArray) {\n /* This is the first simple property to be added, */\n /* add a (\"Basic\") tab for it and save it's row number */\n if (typeof this.basicTab === 'undefined') {\n this.addTab(rowsLen)\n /* Store the index row of the first simple property added */\n this.basicTab = rowsLen\n this.basicPane = aPane\n this.theme.addTopTab(tabHolder, this.rows[rowsLen].tab)\n } else {\n /* Any other simple property gets the same tab (and the same pane) as the first one, */\n /* so, when 'click' event is fired from a row, it gets the correct (\"Basic\") tab */\n this.rows[rowsLen].tab = this.rows[this.basicTab].tab\n this.rows[rowsLen].tab_text = this.rows[this.basicTab].tab_text\n this.rows[rowsLen].rowPane = this.rows[this.basicTab].rowPane\n }\n } else {\n this.addTab(rowsLen)\n this.theme.addTopTab(tabHolder, this.rows[rowsLen].tab)\n }\n }\n\n /* Mark the active tab and make visible the corresponding pane, hide others */\n refreshTabs (refreshHeaders) {\n const basicTabPresent = typeof this.basicTab !== 'undefined'\n let basicTabRefreshed = false\n\n this.rows.forEach(row => {\n /* If it's an orphan row (some property which has been deleted), return */\n if (!row.tab || !row.rowPane || !row.rowPane.parentNode) return\n\n if (basicTabPresent && row.tab === this.rows[this.basicTab].tab && basicTabRefreshed) return\n\n if (refreshHeaders) {\n row.tab_text.textContent = row.getHeaderText()\n } else {\n /* All rows of simple properties point to the same tab, so refresh just once */\n if (basicTabPresent && row.tab === this.rows[this.basicTab].tab) basicTabRefreshed = true\n\n if (row.tab === this.active_tab) {\n this.theme.markTabActive(row)\n } else {\n this.theme.markTabInactive(row)\n }\n }\n })\n }\n\n build () {\n const isCategoriesFormat = (this.format === 'categories')\n this.rows = []\n this.active_tab = null\n\n /* If the object should be rendered as a table row */\n if (this.options.table_row) {\n this.editor_holder = this.container\n Object.entries(this.editors).forEach(([key, editor]) => {\n const holder = this.theme.getTableCell()\n this.editor_holder.appendChild(holder)\n\n editor.setContainer(holder)\n editor.build()\n editor.postBuild()\n editor.setOptInCheckbox(editor.header)\n\n editor.setValue(editor.getDefault(), true)\n\n if (this.editors[key].options.hidden) {\n holder.style.display = 'none'\n }\n if (this.editors[key].options.input_width) {\n holder.style.width = this.editors[key].options.input_width\n }\n })\n /* If the object should be rendered as a table */\n } else if (this.options.table) {\n /* TODO: table display format */\n throw new Error('Not supported yet')\n /* If the object should be rendered as a div */\n } else {\n this.header = ''\n if (!this.options.compact) {\n this.header = document.createElement('label')\n this.header.textContent = this.getTitle()\n }\n this.title = this.theme.getHeader(this.header, this.getPathDepth())\n this.title.classList.add('je-object__title')\n this.controls = this.theme.getButtonHolder()\n this.controls.classList.add('je-object__controls')\n\n this.container.appendChild(this.title)\n this.container.appendChild(this.controls)\n this.container.classList.add('je-object__container')\n\n /* Edit JSON modal */\n this.editjson_holder = this.theme.getModal()\n this.editjson_textarea = this.theme.getTextareaInput()\n this.editjson_textarea.classList.add('je-edit-json--textarea')\n this.editjson_save = this.getButton('button_save', 'save', 'button_save')\n this.editjson_save.classList.add('json-editor-btntype-save')\n this.editjson_save.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n this.saveJSON()\n })\n this.editjson_copy = this.getButton('button_copy', 'copy', 'button_copy')\n this.editjson_copy.classList.add('json-editor-btntype-copy')\n this.editjson_copy.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n this.copyJSON()\n })\n this.editjson_cancel = this.getButton('button_cancel', 'cancel', 'button_cancel')\n this.editjson_cancel.classList.add('json-editor-btntype-cancel')\n this.editjson_cancel.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n this.hideEditJSON()\n })\n this.editjson_holder.appendChild(this.editjson_textarea)\n this.editjson_holder.appendChild(this.editjson_save)\n this.editjson_holder.appendChild(this.editjson_copy)\n this.editjson_holder.appendChild(this.editjson_cancel)\n\n /* Manage Properties modal */\n this.addproperty_holder = this.theme.getModal()\n this.addproperty_list = document.createElement('div')\n this.addproperty_list.classList.add('property-selector')\n this.addproperty_add = this.getButton('button_add', 'add', 'button_add')\n this.addproperty_add.classList.add('json-editor-btntype-add')\n\n this.addproperty_input = this.theme.getFormInputField('text')\n this.addproperty_input.setAttribute('placeholder', 'Property name...')\n this.addproperty_input.classList.add('property-selector-input')\n this.addproperty_add.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n if (this.addproperty_input.value) {\n if (this.editors[this.addproperty_input.value]) {\n window.alert('there is already a property with that name')\n return\n }\n\n this.addObjectProperty(this.addproperty_input.value)\n if (this.editors[this.addproperty_input.value]) {\n this.editors[this.addproperty_input.value].disable()\n }\n this.onChange(true)\n }\n })\n this.addproperty_input.addEventListener('input', (e) => {\n e.target.previousSibling.childNodes.forEach((value) => {\n if (value.innerText.includes(e.target.value)) {\n value.style.display = ''\n } else {\n value.style.display = 'none'\n }\n })\n })\n this.addproperty_holder.appendChild(this.addproperty_list)\n this.addproperty_holder.appendChild(this.addproperty_input)\n this.addproperty_holder.appendChild(this.addproperty_add)\n const spacer = document.createElement('div')\n spacer.style.clear = 'both'\n this.addproperty_holder.appendChild(spacer)\n\n /* Close properties modal if clicked outside modal */\n this.onOutsideModalClickListener = this.onOutsideModalClick.bind(this)\n document.addEventListener('click', this.onOutsideModalClickListener, true)\n\n /* Description */\n if (this.schema.description) {\n this.description = this.theme.getDescription(this.translateProperty(this.schema.description))\n this.container.appendChild(this.description)\n }\n\n /* Validation error placeholder area */\n this.error_holder = document.createElement('div')\n this.container.appendChild(this.error_holder)\n\n /* Container for child editor area */\n this.editor_holder = this.theme.getIndentedPanel()\n this.container.appendChild(this.editor_holder)\n\n /* Container for rows of child editors */\n this.row_container = this.theme.getGridContainer()\n\n if (isCategoriesFormat) {\n this.tabs_holder = this.theme.getTopTabHolder(this.getValidId(this.translateProperty(this.schema.title)))\n this.tabPanesContainer = this.theme.getTopTabContentHolder(this.tabs_holder)\n this.editor_holder.appendChild(this.tabs_holder)\n } else {\n this.tabs_holder = this.theme.getTabHolder(this.getValidId(this.translateProperty(this.schema.title)))\n this.tabPanesContainer = this.theme.getTabContentHolder(this.tabs_holder)\n this.editor_holder.appendChild(this.row_container)\n }\n\n Object.values(this.editors).forEach(editor => {\n const aPane = this.theme.getTabContent()\n const holder = this.theme.getGridColumn()\n const isObjOrArray = !!((editor.schema && (editor.schema.type === 'object' || editor.schema.type === 'array')))\n aPane.isObjOrArray = isObjOrArray\n\n if (isCategoriesFormat) {\n if (isObjOrArray) {\n const singleRowContainer = this.theme.getGridContainer()\n singleRowContainer.appendChild(holder)\n aPane.appendChild(singleRowContainer)\n this.tabPanesContainer.appendChild(aPane)\n this.row_container = singleRowContainer\n } else {\n if (typeof this.row_container_basic === 'undefined') {\n this.row_container_basic = this.theme.getGridContainer()\n aPane.appendChild(this.row_container_basic)\n if (this.tabPanesContainer.childElementCount === 0) {\n this.tabPanesContainer.appendChild(aPane)\n } else {\n this.tabPanesContainer.insertBefore(aPane, this.tabPanesContainer.childNodes[1])\n }\n }\n this.row_container_basic.appendChild(holder)\n }\n\n this.addRow(editor, this.tabs_holder, aPane)\n\n aPane.id = this.getValidId(editor.schema.title) /* editor.schema.path//tab_text.textContent */\n } else {\n this.row_container.appendChild(holder)\n }\n\n editor.setContainer(holder)\n editor.build()\n editor.postBuild()\n editor.setOptInCheckbox(editor.header)\n })\n\n if (this.rows[0]) {\n trigger(this.rows[0].tab, 'click')\n }\n\n /* Show/Hide button */\n this.collapsed = false\n this.collapse_control = this.getButton('', 'collapse', 'button_collapse')\n this.collapse_control.classList.add('json-editor-btntype-toggle')\n this.title.insertBefore(this.collapse_control, this.title.childNodes[0])\n\n this.collapse_control.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n if (this.collapsed) {\n this.editor_holder.style.display = ''\n this.collapsed = false\n this.setButtonText(this.collapse_control, '', 'collapse', 'button_collapse')\n } else {\n this.editor_holder.style.display = 'none'\n this.collapsed = true\n this.setButtonText(this.collapse_control, '', 'expand', 'button_expand')\n }\n })\n\n /* If it should start collapsed */\n if (this.options.collapsed) {\n trigger(this.collapse_control, 'click')\n }\n\n /* Collapse button disabled */\n if (this.schema.options && typeof this.schema.options.disable_collapse !== 'undefined') {\n if (this.schema.options.disable_collapse) this.collapse_control.style.display = 'none'\n } else if (this.jsoneditor.options.disable_collapse) {\n this.collapse_control.style.display = 'none'\n }\n\n /* Edit JSON Button */\n this.editjson_control = this.getButton('JSON', 'edit', 'button_edit_json')\n this.editjson_control.classList.add('json-editor-btntype-editjson')\n this.editjson_control.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n this.toggleEditJSON()\n })\n this.controls.appendChild(this.editjson_control)\n this.controls.insertBefore(this.editjson_holder, this.controls.childNodes[0])\n\n /* Edit JSON Buttton disabled */\n if (this.schema.options && typeof this.schema.options.disable_edit_json !== 'undefined') {\n if (this.schema.options.disable_edit_json) this.editjson_control.style.display = 'none'\n } else if (this.jsoneditor.options.disable_edit_json) {\n this.editjson_control.style.display = 'none'\n }\n\n /* Object Properties Button */\n this.addproperty_button = this.getButton('properties', 'edit_properties', 'button_object_properties')\n this.addproperty_button.classList.add('json-editor-btntype-properties')\n this.addproperty_button.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n this.toggleAddProperty()\n })\n this.controls.appendChild(this.addproperty_button)\n this.controls.insertBefore(this.addproperty_holder, this.controls.childNodes[1])\n\n this.refreshAddProperties()\n\n /* non required properties start deactivated */\n this.deactivateNonRequiredProperties()\n }\n\n /* Fix table cell ordering */\n if (this.options.table_row) {\n this.editor_holder = this.container\n this.property_order.forEach(key => {\n this.editor_holder.appendChild(this.editors[key].container)\n })\n /* Layout object editors in grid if needed */\n } else {\n /* Initial layout */\n this.layoutEditors()\n /* Do it again now that we know the approximate heights of elements */\n this.layoutEditors()\n }\n }\n\n deactivateNonRequiredProperties () {\n /* the show_opt_in editor option is for backward compatibility */\n const globalOptIn = this.jsoneditor.options.show_opt_in\n const editorOptInDefined = (typeof this.options.show_opt_in !== 'undefined')\n const editorOptInEnabled = (editorOptInDefined && this.options.show_opt_in === true)\n const editorOptInDisabled = (editorOptInDefined && this.options.show_opt_in === false)\n if (editorOptInEnabled || (!editorOptInDisabled && globalOptIn) || (!editorOptInDefined && globalOptIn)) {\n Object.entries(this.editors).forEach(([key, editor]) => {\n if (!this.isRequiredObject(editor)) {\n this.editors[key].deactivate()\n }\n })\n }\n }\n\n showEditJSON () {\n if (!this.editjson_holder) return\n this.hideAddProperty()\n\n /* Position the form directly beneath the button */\n /* TODO: edge detection */\n this.editjson_holder.style.left = `${this.editjson_control.offsetLeft}px`\n this.editjson_holder.style.top = `${this.editjson_control.offsetTop + this.editjson_control.offsetHeight}px`\n\n /* Start the textarea with the current value */\n this.editjson_textarea.value = JSON.stringify(this.getValue(), null, 2)\n\n /* Disable the rest of the form while editing JSON */\n this.disable()\n\n this.editjson_holder.style.display = ''\n this.editjson_control.disabled = false\n this.editing_json = true\n }\n\n hideEditJSON () {\n if (!this.editjson_holder) return\n if (!this.editing_json) return\n\n this.editjson_holder.style.display = 'none'\n this.enable()\n this.editing_json = false\n }\n\n copyJSON () {\n if (!this.editjson_holder) return\n const ta = document.createElement('textarea')\n ta.value = this.editjson_textarea.value\n ta.setAttribute('readonly', '')\n ta.style.position = 'absolute'\n ta.style.left = '-9999px'\n document.body.appendChild(ta)\n ta.select()\n document.execCommand('copy')\n document.body.removeChild(ta)\n }\n\n saveJSON () {\n if (!this.editjson_holder) return\n\n try {\n const json = JSON.parse(this.editjson_textarea.value)\n this.setValue(json)\n this.hideEditJSON()\n this.onChange(true)\n } catch (e) {\n window.alert('invalid JSON')\n throw e\n }\n }\n\n toggleEditJSON () {\n if (this.editing_json) this.hideEditJSON()\n else this.showEditJSON()\n }\n\n insertPropertyControlUsingPropertyOrder (property, control, container) {\n let propertyOrder\n if (this.schema.properties[property]) { propertyOrder = this.schema.properties[property].propertyOrder }\n if (typeof propertyOrder !== 'number') propertyOrder = 1000\n control.propertyOrder = propertyOrder\n\n for (let i = 0; i < container.childNodes.length; i++) {\n const child = container.childNodes[i]\n if (control.propertyOrder < child.propertyOrder) {\n this.addproperty_list.insertBefore(control, child)\n control = null\n break\n }\n }\n if (control) {\n this.addproperty_list.appendChild(control)\n }\n }\n\n addPropertyCheckbox (key) {\n let labelText\n\n const checkbox = this.theme.getCheckbox()\n checkbox.style.width = 'auto'\n\n if (this.schema.properties[key] && this.schema.properties[key].title) { labelText = this.schema.properties[key].title } else { labelText = key }\n\n const label = this.theme.getCheckboxLabel(labelText)\n\n const control = this.theme.getFormControl(label, checkbox)\n control.style.paddingBottom = control.style.marginBottom = control.style.paddingTop = control.style.marginTop = 0\n control.style.height = 'auto'\n /* control.style.overflowY = 'hidden'; */\n\n this.insertPropertyControlUsingPropertyOrder(key, control, this.addproperty_list)\n\n checkbox.checked = key in this.editors\n checkbox.addEventListener('change', () => {\n if (checkbox.checked) {\n this.addObjectProperty(key)\n } else {\n this.removeObjectProperty(key)\n }\n this.onChange(true)\n })\n this.addproperty_checkboxes[key] = checkbox\n\n return checkbox\n }\n\n showAddProperty () {\n if (!this.addproperty_holder) return\n this.hideEditJSON()\n\n /* Position the form directly beneath the button */\n /* TODO: edge detection */\n this.addproperty_holder.style.left = `${this.addproperty_button.offsetLeft}px`\n this.addproperty_holder.style.top = `${this.addproperty_button.offsetTop + this.addproperty_button.offsetHeight}px`\n\n /* Disable the rest of the form while editing JSON */\n this.disable()\n\n this.adding_property = true\n this.addproperty_button.disabled = false\n this.addproperty_holder.style.display = ''\n this.refreshAddProperties()\n }\n\n hideAddProperty () {\n if (!this.addproperty_holder) return\n if (!this.adding_property) return\n\n this.addproperty_holder.style.display = 'none'\n this.enable()\n\n this.adding_property = false\n }\n\n toggleAddProperty () {\n if (this.adding_property) this.hideAddProperty()\n else this.showAddProperty()\n }\n\n removeObjectProperty (property) {\n if (this.editors[property]) {\n this.editors[property].unregister()\n delete this.editors[property]\n\n this.refreshValue()\n this.layoutEditors()\n }\n }\n\n getSchemaOnMaxDepth (schema) {\n return Object.keys(schema).reduce((acc, key) => {\n switch (key) {\n case '$ref':\n return acc\n case 'properties':\n case 'items':\n return {\n ...acc,\n [key]: {}\n }\n case 'additionalProperties':\n case 'propertyNames':\n return {\n ...acc,\n [key]: true\n }\n default:\n return {\n ...acc,\n [key]: schema[key]\n }\n }\n }, {})\n }\n\n addObjectProperty (name, prebuildOnly) {\n /* Property is already added */\n if (this.editors[name]) return\n\n /* Property was added before and is cached */\n if (this.cached_editors[name]) {\n this.editors[name] = this.cached_editors[name]\n if (prebuildOnly) return\n this.editors[name].register()\n /* New property */\n } else {\n if (!this.canHaveAdditionalProperties() && (!this.schema.properties || !this.schema.properties[name]) &&\n (!this.schema.patternProperties || !(Object.keys(this.schema.patternProperties).find(i => new RegExp(i).test(name))))) {\n return\n }\n\n const schema = this.getPropertySchema(name)\n if (typeof schema.propertyOrder !== 'number') {\n /* if the propertyOrder undefined, then set a smart default value. */\n schema.propertyOrder = Object.keys(this.editors).length + 1000\n }\n\n /* Add the property */\n const editor = this.jsoneditor.getEditorClass(schema)\n\n const { max_depth: maxDepth } = this.jsoneditor.options\n\n this.editors[name] = this.jsoneditor.createEditor(editor, {\n jsoneditor: this.jsoneditor,\n schema: !!maxDepth && this.currentDepth >= maxDepth ? this.getSchemaOnMaxDepth(schema) : schema,\n path: `${this.path}.${name}`,\n parent: this\n }, this.currentDepth + 1)\n this.editors[name].preBuild()\n\n if (!prebuildOnly) {\n const holder = this.theme.getChildEditorHolder()\n this.editor_holder.appendChild(holder)\n this.editors[name].setContainer(holder)\n this.editors[name].build()\n this.editors[name].postBuild()\n this.editors[name].setOptInCheckbox(editor.header)\n this.editors[name].activate()\n }\n\n this.cached_editors[name] = this.editors[name]\n }\n\n /* If we're only prebuilding the editors, don't refresh values */\n if (!prebuildOnly) {\n this.refreshValue()\n this.layoutEditors()\n }\n }\n\n onOutsideModalClick (e) {\n const path = e.path || (e.composedPath && e.composedPath())\n if (this.addproperty_holder && !this.addproperty_holder.contains(path[0]) && this.adding_property) {\n e.preventDefault()\n e.stopPropagation()\n this.toggleAddProperty()\n }\n }\n\n onChildEditorChange (editor) {\n this.refreshValue()\n super.onChildEditorChange(editor)\n }\n\n canHaveAdditionalProperties () {\n if (typeof this.schema.additionalProperties === 'boolean') {\n return this.schema.additionalProperties\n }\n return !this.jsoneditor.options.no_additional_properties\n }\n\n destroy () {\n Object.values(this.cached_editors).forEach(el => el.destroy())\n if (this.editor_holder) this.editor_holder.innerHTML = ''\n if (this.title && this.title.parentNode) this.title.parentNode.removeChild(this.title)\n if (this.error_holder && this.error_holder.parentNode) this.error_holder.parentNode.removeChild(this.error_holder)\n\n this.editors = null\n this.cached_editors = null\n if (this.editor_holder && this.editor_holder.parentNode) this.editor_holder.parentNode.removeChild(this.editor_holder)\n this.editor_holder = null\n document.removeEventListener('click', this.onOutsideModalClickListener, true)\n\n super.destroy()\n }\n\n getValue () {\n if (!this.dependenciesFulfilled) {\n return undefined\n }\n const result = super.getValue()\n const isEmpty = obj => typeof obj === 'undefined' || obj === '' ||\n (\n obj === Object(obj) &&\n Object.keys(obj).length === 0 &&\n obj.constructor === Object\n )\n if (result && (this.jsoneditor.options.remove_empty_properties || this.options.remove_empty_properties)) {\n Object.keys(result).forEach(key => {\n if (isEmpty(result[key])) {\n delete result[key]\n }\n })\n }\n return result\n }\n\n refreshValue () {\n this.value = {}\n\n if (!this.editors) {\n return\n }\n\n Object.keys(this.editors).forEach(i => {\n if (this.editors[i].isActive()) {\n this.value[i] = this.editors[i].getValue()\n }\n })\n\n if (this.adding_property) this.refreshAddProperties()\n }\n\n refreshAddProperties () {\n if (this.options.disable_properties || (this.options.disable_properties !== false && this.jsoneditor.options.disable_properties)) {\n this.addproperty_button.style.display = 'none'\n return\n }\n\n let canAdd = false; let numProps = 0; let showModal = false\n\n /* Get number of editors */\n Object.keys(this.editors).forEach(i => numProps++)\n\n /* Determine if we can add back removed properties */\n canAdd = this.canHaveAdditionalProperties() && !(typeof this.schema.maxProperties !== 'undefined' && numProps >= this.schema.maxProperties)\n\n if (this.addproperty_checkboxes) {\n this.addproperty_list.innerHTML = ''\n }\n this.addproperty_checkboxes = {}\n\n /* Check for which editors can't be removed or added back */\n Object.keys(this.cached_editors).forEach(i => {\n this.addPropertyCheckbox(i)\n\n if (this.isRequiredObject(this.cached_editors[i]) && i in this.editors) {\n this.addproperty_checkboxes[i].disabled = true\n }\n\n if (typeof this.schema.minProperties !== 'undefined' && numProps <= this.schema.minProperties) {\n this.addproperty_checkboxes[i].disabled = this.addproperty_checkboxes[i].checked\n if (!this.addproperty_checkboxes[i].checked) showModal = true\n } else if (!(i in this.editors)) {\n if (!canAdd && !hasOwnProperty(this.schema.properties, i)) {\n this.addproperty_checkboxes[i].disabled = true\n } else {\n this.addproperty_checkboxes[i].disabled = false\n showModal = true\n }\n } else {\n showModal = true\n }\n })\n\n if (this.canHaveAdditionalProperties()) {\n showModal = true\n }\n\n /* Additional addproperty checkboxes not tied to a current editor */\n Object.keys(this.schema.properties).forEach(i => {\n if (this.cached_editors[i]) return\n showModal = true\n this.addPropertyCheckbox(i)\n })\n\n /* If no editors can be added or removed, hide the modal button */\n if (!showModal) {\n this.hideAddProperty()\n this.addproperty_button.style.display = 'none'\n /* If additional properties are disabled */\n } else if (!this.canHaveAdditionalProperties()) {\n this.addproperty_add.style.display = 'none'\n this.addproperty_input.style.display = 'none'\n /* If no new properties can be added */\n } else if (!canAdd) {\n this.addproperty_add.disabled = true\n /* If new properties can be added */\n } else {\n this.addproperty_add.disabled = false\n }\n }\n\n isRequiredObject (editor) {\n if (!editor) {\n return\n }\n if (typeof editor.schema.required === 'boolean') return editor.schema.required\n else if (Array.isArray(this.schema.required)) return this.schema.required.includes(editor.key)\n else if (this.jsoneditor.options.required_by_default) return true\n return false\n }\n\n setValue (value, initial) {\n value = value || {}\n\n if (typeof value !== 'object' || Array.isArray(value)) value = {}\n\n /* First, set the values for all of the defined properties */\n Object.entries(this.cached_editors).forEach(([i, editor]) => {\n /* Value explicitly set */\n if (typeof value[i] !== 'undefined') {\n this.addObjectProperty(i)\n editor.setValue(value[i], initial)\n editor.activate()\n /* Otherwise, remove value unless this is the initial set or it's required */\n } else if (!initial && !this.isRequiredObject(editor)) {\n if (this.jsoneditor.options.show_opt_in || this.options.show_opt_in) {\n editor.deactivate()\n } else {\n this.removeObjectProperty(i)\n }\n /* Otherwise, set the value to the default */\n } else {\n editor.setValue(editor.getDefault(), initial)\n }\n })\n\n Object.entries(value).forEach(([i, val]) => {\n if (!this.cached_editors[i]) {\n this.addObjectProperty(i)\n if (this.editors[i]) this.editors[i].setValue(val, initial, !!this.editors[i].template)\n }\n })\n\n this.refreshValue()\n this.layoutEditors()\n this.onChange()\n }\n\n showValidationErrors (errors) {\n /* Get all the errors that pertain to this editor */\n const myErrors = []\n const otherErrors = []\n errors.forEach(error => {\n if (error.path === this.path) {\n myErrors.push(error)\n } else {\n otherErrors.push(error)\n }\n })\n\n /* Show errors for this editor */\n if (this.error_holder) {\n if (myErrors.length) {\n this.error_holder.innerHTML = ''\n this.error_holder.style.display = ''\n myErrors.forEach(error => {\n if (error.errorcount && error.errorcount > 1) error.message += ` (${error.errorcount} errors)`\n this.error_holder.appendChild(this.theme.getErrorMessage(error.message))\n })\n /* Hide error area */\n } else {\n this.error_holder.style.display = 'none'\n }\n }\n\n /* Show error for the table row if this is inside a table */\n if (this.options.table_row) {\n if (myErrors.length) {\n this.theme.addTableRowError(this.container)\n } else {\n this.theme.removeTableRowError(this.container)\n }\n }\n\n /* Show errors for child editors */\n Object.values(this.editors).forEach(editor => {\n editor.showValidationErrors(otherErrors)\n })\n }\n}\n\nObjectEditor.rules = rules\n","import { SelectEditor } from './select.js'\n\nexport class RadioEditor extends SelectEditor {\n preBuild () {\n super.preBuild()\n }\n\n build () {\n this.label = ''\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\n if (this.options.compact) this.container.classList.add('compact')\n\n this.radioContainer = document.createElement('div')\n\n this.radioGroup = []\n\n const radioInputEventhandler = e => {\n this.setValue(e.currentTarget.value)\n this.onChange(true)\n }\n\n if (!this.isRequired()) {\n this.enum_display.shift()\n this.enum_options.shift()\n this.enum_values.shift()\n }\n\n for (let i = 0; i < this.enum_values.length; i++) {\n /* form radio elements */\n const attributes = {\n id: `${this.formname}[${i}]`,\n value: this.enum_values[i]\n }\n\n if (this.jsoneditor.options.use_name_attributes) {\n attributes.name = this.formname\n }\n\n this.input = this.theme.getFormRadio(attributes)\n\n /* Set custom attributes on input element. Parameter is array of protected keys. Empty array if none. */\n this.setInputAttributes(['id', 'value', 'name'])\n\n this.input.addEventListener('change', radioInputEventhandler, false)\n this.radioGroup.push(this.input)\n\n /* form-label for radio elements */\n const radioLabel = this.theme.getFormRadioLabel(this.enum_display[i])\n radioLabel.htmlFor = this.input.id\n\n const control = this.theme.getFormRadioControl(radioLabel, this.input, !!(this.options.layout === 'horizontal' || this.options.compact))\n\n this.radioContainer.appendChild(control)\n }\n\n if (this.schema.readOnly || this.schema.readonly) {\n this.disable(true)\n for (let j = 0; j < this.radioGroup.length; j++) {\n this.radioGroup[j].disabled = true\n }\n this.radioContainer.classList.add('readonly')\n }\n\n const radioContainerWrapper = this.theme.getContainer()\n radioContainerWrapper.appendChild(this.radioContainer)\n radioContainerWrapper.dataset.containerFor = 'radio'\n\n this.input = radioContainerWrapper\n\n this.control = this.theme.getFormControl(this.label, radioContainerWrapper, this.description, this.infoButton)\n this.container.appendChild(this.control)\n\n /* Any special formatting that needs to happen after the input is added to the dom */\n window.requestAnimationFrame(() => {\n if (this.input.parentNode) this.afterInputReady()\n })\n }\n\n enable () {\n if (!this.always_disabled) {\n for (let i = 0; i < this.radioGroup.length; i++) {\n this.radioGroup[i].disabled = false\n }\n this.radioContainer.classList.remove('readonly')\n super.enable()\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n for (let i = 0; i < this.radioGroup.length; i++) {\n this.radioGroup[i].disabled = true\n }\n this.radioContainer.classList.add('readonly')\n super.disable()\n }\n\n destroy () {\n if (this.radioContainer.parentNode && this.radioContainer.parentNode.parentNode) this.radioContainer.parentNode.parentNode.removeChild(this.radioContainer.parentNode)\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\n super.destroy()\n }\n\n getNumColumns () {\n return 2\n }\n\n setValue (val) {\n for (let i = 0; i < this.radioGroup.length; i++) {\n if (this.radioGroup[i].value === val) {\n this.radioGroup[i].checked = true\n this.value = val\n this.onChange()\n break\n }\n }\n }\n}\n","import { StringEditor } from './string.js'\nimport { extend } from '../utilities.js'\n\nexport class ScEditor extends StringEditor {\n setValue (value, initial, fromTemplate) {\n const res = super.setValue(value, initial, fromTemplate)\n if (res !== undefined && res.changed && this.sceditor_instance) this.sceditor_instance.val(res.value)\n }\n\n build () {\n this.options.format = 'textarea' /* Force format into \"textarea\" */\n super.build()\n this.input_type = this.schema.format /* Restore original format */\n this.input.setAttribute('data-schemaformat', this.input_type)\n }\n\n afterInputReady () {\n if (window.sceditor) {\n /* Get options, either global options from \"this.defaults.options.sceditor\" or */\n /* single property options from schema \"options.sceditor\" */\n const options = this.expandCallbacks('sceditor', extend({}, {\n format: this.input_type,\n emoticonsEnabled: false,\n width: '100%',\n height: 300,\n readOnly: this.schema.readOnly || this.schema.readonly || this.schema.template\n }, this.defaults.options.sceditor || {}, this.options.sceditor || {}, {\n element: this.input\n }))\n\n const instance = window.sceditor.instance(this.input)\n\n if (instance === undefined) {\n window.sceditor.create(this.input, options) /* Create doesn't return instance. */\n }\n\n this.sceditor_instance = instance || window.sceditor.instance(this.input)\n\n /* Listen for changes */\n this.sceditor_instance.blur(() => {\n this.value = this.sceditor_instance.val()\n this.sceditor_instance.updateOriginal()\n this.is_dirty = true\n this.onChange(true)\n })\n\n this.theme.afterInputReady(this.input)\n } else super.afterInputReady() /* Library not loaded, so just treat this as a string */\n }\n\n getNumColumns () {\n return 6\n }\n\n enable () {\n if (!this.always_disabled && this.sceditor_instance) this.sceditor_instance.readOnly(false)\n super.enable()\n }\n\n disable (alwaysDisabled) {\n if (this.sceditor_instance) this.sceditor_instance.readOnly(true)\n super.disable(alwaysDisabled)\n }\n\n destroy () {\n if (this.sceditor_instance) {\n this.sceditor_instance.destroy()\n this.sceditor_instance = null\n }\n super.destroy()\n }\n}\n","import { AbstractEditor } from '../editor.js'\nimport { extend } from '../utilities.js'\n\nexport class SelectEditor extends AbstractEditor {\n setValue (value, initial) {\n /* Sanitize value before setting it */\n let sanitized = this.typecast(value)\n\n const haveToUseDefaultValue = !!this.jsoneditor.options.use_default_values || typeof this.schema.default !== 'undefined'\n\n if (\n (this.enum_options.length > 0 && !this.enum_values.includes(sanitized)) ||\n (initial && !this.isRequired() && !haveToUseDefaultValue)\n ) {\n sanitized = this.enum_values[0]\n }\n\n if (this.value === sanitized) return\n\n if (initial) this.is_dirty = false\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\n\n this.input.value = this.enum_options[this.enum_values.indexOf(sanitized)]\n\n this.value = sanitized\n this.onChange()\n this.change()\n }\n\n register () {\n super.register()\n if (!this.input) return\n if (this.jsoneditor.options.use_name_attributes) {\n this.input.setAttribute('name', this.formname)\n }\n }\n\n unregister () {\n super.unregister()\n if (!this.input) return\n this.input.removeAttribute('name')\n }\n\n getNumColumns () {\n if (!this.enum_options) return 3\n let longestText = this.getTitle().length\n for (let i = 0; i < this.enum_options.length; i++) {\n longestText = Math.max(longestText, this.enum_options[i].length + 4)\n }\n return Math.min(12, Math.max(longestText / 7, 2))\n }\n\n typecast (value) {\n if (this.schema.type === 'boolean') return value === 'undefined' || value === undefined ? undefined : !!value\n else if (this.schema.type === 'number') return 1 * value || 0\n else if (this.schema.type === 'integer') return Math.floor(value * 1 || 0)\n else if (this.schema.enum && value === undefined) return undefined\n return `${value}`\n }\n\n getValue () {\n if (!this.dependenciesFulfilled) {\n return undefined\n }\n return this.typecast(this.value)\n }\n\n preBuild () {\n this.input_type = 'select'\n this.enum_options = []\n this.enum_values = []\n this.enum_display = []\n let i\n let callback\n\n /* Enum options enumerated */\n if (this.schema.enum) {\n const display = (this.schema.options && this.schema.options.enum_titles) || []\n\n this.schema.enum.forEach((option, i) => {\n this.enum_options[i] = `${option}`\n this.enum_display[i] = `${this.translateProperty(display[i]) || option}`\n this.enum_values[i] = this.typecast(option)\n })\n\n if (!this.isRequired()) {\n this.enum_display.unshift(' ')\n this.enum_options.unshift('undefined')\n this.enum_values.unshift(undefined)\n }\n /* Boolean */\n } else if (this.schema.type === 'boolean') {\n this.enum_display = (this.schema.options && this.schema.options.enum_titles) || ['true', 'false']\n this.enum_options = ['1', '']\n this.enum_values = [true, false]\n\n if (!this.isRequired()) {\n this.enum_display.unshift(' ')\n this.enum_options.unshift('undefined')\n this.enum_values.unshift(undefined)\n }\n /* Dynamic Enum */\n } else if (this.schema.enumSource) {\n this.enumSource = []\n this.enum_display = []\n this.enum_options = []\n this.enum_values = []\n\n /* Shortcut declaration for using a single array */\n if (!(Array.isArray(this.schema.enumSource))) {\n if (this.schema.enumValue) {\n this.enumSource = [\n {\n source: this.schema.enumSource,\n value: this.schema.enumValue\n }\n ]\n } else {\n this.enumSource = [\n {\n source: this.schema.enumSource\n }\n ]\n }\n } else {\n for (i = 0; i < this.schema.enumSource.length; i++) {\n /* Shorthand for watched variable */\n if (typeof this.schema.enumSource[i] === 'string') {\n this.enumSource[i] = {\n source: this.schema.enumSource[i]\n }\n /* Make a copy of the schema */\n } else if (!(Array.isArray(this.schema.enumSource[i]))) {\n this.enumSource[i] = extend({}, this.schema.enumSource[i])\n } else {\n this.enumSource[i] = this.schema.enumSource[i]\n }\n }\n }\n /* Now, enumSource is an array of sources */\n /* Walk through this array and fix up the values */\n for (i = 0; i < this.enumSource.length; i++) {\n if (this.enumSource[i].value) {\n callback = this.expandCallbacks('template', { template: this.enumSource[i].value })\n if (typeof callback.template === 'function') this.enumSource[i].value = callback.template\n else this.enumSource[i].value = this.jsoneditor.compileTemplate(this.enumSource[i].value, this.template_engine)\n }\n if (this.enumSource[i].title) {\n callback = this.expandCallbacks('template', { template: this.enumSource[i].title })\n if (typeof callback.template === 'function') this.enumSource[i].title = callback.template\n else this.enumSource[i].title = this.jsoneditor.compileTemplate(this.enumSource[i].title, this.template_engine)\n }\n if (this.enumSource[i].filter && this.enumSource[i].value) {\n callback = this.expandCallbacks('template', { template: this.enumSource[i].filter })\n if (typeof callback.template === 'function') this.enumSource[i].filter = callback.template\n else this.enumSource[i].filter = this.jsoneditor.compileTemplate(this.enumSource[i].filter, this.template_engine)\n }\n }\n /* Other, not supported */\n } else {\n throw new Error(\"'select' editor requires the enum property to be set.\")\n }\n }\n\n build () {\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\n if (this.options.compact) this.container.classList.add('compact')\n\n this.input = this.theme.getSelectInput(this.enum_options, false)\n this.theme.setSelectOptions(this.input, this.enum_options, this.enum_display)\n\n if (this.schema.readOnly || this.schema.readonly) {\n this.disable(true)\n this.input.disabled = true\n }\n\n /* Set custom attributes on input element. Parameter is array of protected keys. Empty array if none. */\n this.setInputAttributes([])\n\n this.input.addEventListener('change', (e) => {\n e.preventDefault()\n e.stopPropagation()\n this.onInputChange()\n })\n\n this.control = this.theme.getFormControl(this.label, this.input, this.description, this.infoButton)\n this.container.appendChild(this.control)\n\n this.value = this.enum_values[0]\n\n /* Any special formatting that needs to happen after the input is added to the dom */\n window.requestAnimationFrame(() => {\n if (this.input.parentNode) this.afterInputReady()\n })\n }\n\n afterInputReady () {\n this.theme.afterInputReady(this.input)\n }\n\n onInputChange () {\n const val = this.typecast(this.input.value)\n\n let newVal\n /* Invalid option, use first option instead */\n if (!this.enum_values.includes(val)) {\n newVal = this.enum_values[0]\n } else {\n newVal = this.enum_values[this.enum_values.indexOf(val)]\n }\n\n /* If valid hasn't changed */\n if (newVal === this.value) return\n\n this.is_dirty = true\n\n /* Store new value and propogate change event */\n this.value = newVal\n this.onChange(true)\n }\n\n onWatchedFieldChange () {\n let vars; let j\n let selectOptions = []; let selectTitles = []\n\n /* If this editor uses a dynamic select box */\n if (this.enumSource) {\n vars = this.getWatchedFieldValues()\n\n for (let i = 0; i < this.enumSource.length; i++) {\n /* Constant values */\n if (Array.isArray(this.enumSource[i])) {\n selectOptions = selectOptions.concat(this.enumSource[i])\n selectTitles = selectTitles.concat(this.enumSource[i])\n } else {\n let items = []\n /* Static list of items */\n if (Array.isArray(this.enumSource[i].source)) {\n items = this.enumSource[i].source\n /* A watched field */\n } else {\n items = vars[this.enumSource[i].source]\n }\n\n if (items) {\n /* Only use a predefined part of the array */\n if (this.enumSource[i].slice) {\n items = Array.prototype.slice.apply(items, this.enumSource[i].slice)\n }\n /* Filter the items */\n if (this.enumSource[i].filter) {\n const newItems = []\n for (j = 0; j < items.length; j++) {\n if (this.enumSource[i].filter({ i: j, item: items[j], watched: vars })) newItems.push(items[j])\n }\n items = newItems\n }\n\n const itemTitles = []\n const itemValues = []\n for (j = 0; j < items.length; j++) {\n const item = items[j]\n\n /* Rendered value */\n if (this.enumSource[i].value) {\n itemValues[j] = this.typecast(this.enumSource[i].value({\n i: j,\n item\n }))\n /* Use value directly */\n } else {\n itemValues[j] = items[j]\n }\n\n /* Rendered title */\n if (this.enumSource[i].title) {\n itemTitles[j] = this.enumSource[i].title({\n i: j,\n item\n })\n /* Use value as the title also */\n } else {\n itemTitles[j] = itemValues[j]\n }\n }\n\n if (this.enumSource[i].sort) {\n (((itemValues, itemTitles, order) => {\n itemValues.map((v, i) => ({\n v,\n t: itemTitles[i]\n })).sort((a, b) => (a.v < b.v) ? -order : ((a.v === b.v) ? 0 : order)).forEach((v, i) => {\n itemValues[i] = v.v\n itemTitles[i] = v.t\n })\n }).bind(null, itemValues, itemTitles, this.enumSource[i].sort === 'desc' ? 1 : -1))()\n }\n\n selectOptions = selectOptions.concat(itemValues)\n selectTitles = selectTitles.concat(itemTitles)\n }\n }\n }\n\n const prevValue = this.value\n\n this.theme.setSelectOptions(this.input, selectOptions, selectTitles)\n this.enum_options = selectOptions\n this.enum_display = selectTitles\n this.enum_values = selectOptions\n\n /* If the previous value is still in the new select options */\n /* or if global option \"enum_source_value_auto_select\" is true, stick with it */\n if (selectOptions.includes(prevValue) || this.jsoneditor.options.enum_source_value_auto_select !== false) {\n this.input.value = prevValue\n this.value = prevValue\n /* Otherwise, set the value to the first select option */\n } else {\n this.input.value = selectOptions[0]\n this.value = this.typecast(selectOptions[0] || '')\n if (this.parent && !this.watchLoop) this.parent.onChildEditorChange(this)\n else this.jsoneditor.onChange()\n this.jsoneditor.notifyWatchers(this.path)\n }\n }\n\n super.onWatchedFieldChange()\n }\n\n enable () {\n if (!this.always_disabled) {\n this.input.disabled = false\n super.enable()\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n this.input.disabled = true\n super.disable(alwaysDisabled)\n }\n\n destroy () {\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\n\n super.destroy()\n }\n\n showValidationErrors (errors) {\n this.previous_error_setting = this.jsoneditor.options.show_errors\n\n const addMessage = (messages, error) => {\n if (error.path === this.path) {\n messages.push(error.message)\n }\n return messages\n }\n const messages = errors.reduce(addMessage, [])\n\n if (messages.length) {\n this.theme.addInputError(this.input, `${messages.join('. ')}.`)\n } else {\n this.theme.removeInputError(this.input)\n }\n }\n}\n","import { SelectEditor } from './select.js'\nimport { extend, hasOwnProperty } from '../utilities.js'\n\nexport class Select2Editor extends SelectEditor {\n setValue (value, initial) {\n if (this.select2_instance) {\n if (initial) this.is_dirty = false\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\n\n const sanitized = this.updateValue(value) /* Sets this.value to sanitized value */\n\n this.input.value = sanitized\n\n if (this.select2v4) this.select2_instance.val(sanitized).trigger('change')\n else this.select2_instance.select2('val', sanitized)\n\n this.onChange(true)\n } else super.setValue(value, initial)\n }\n\n afterInputReady () {\n if (window.jQuery && window.jQuery.fn && window.jQuery.fn.select2 && !this.select2_instance) {\n /* Get options, either global options from \"this.defaults.options.select2\" or */\n /* single property options from schema \"options.select2\" */\n const options = this.expandCallbacks('select2', extend({}, this.defaults.options.select2 || {}, this.options.select2 || {}))\n\n /* New items are allowed if option \"tags\" is true and type is \"string\" */\n this.newEnumAllowed = options.tags = !!options.tags && this.schema.type === 'string'\n\n this.select2_instance = window.jQuery(this.input).select2(options)\n this.select2v4 = hasOwnProperty(this.select2_instance.select2, 'amd')\n\n /* Create change handler */\n this.selectChangeHandler = () => {\n const value = this.select2v4 ? this.select2_instance.val() : this.select2_instance.select2('val')\n this.updateValue(value)\n this.onChange(true)\n }\n\n /* Add event handler. */\n /* Note: Must use the \"on()\" method and not addEventListener() */\n this.select2_instance.on('change', this.selectChangeHandler)\n this.select2_instance.on('select2-blur', this.selectChangeHandler)\n }\n super.afterInputReady()\n }\n\n updateValue (value) {\n let sanitized = this.enum_values[0]\n value = this.typecast(value || '')\n if (!this.enum_values.includes(value)) {\n if (this.newEnumAllowed) {\n sanitized = this.addNewOption(value) ? value : sanitized\n }\n } else sanitized = value\n this.value = sanitized\n return sanitized\n }\n\n addNewOption (value) {\n const sanitized = this.typecast(value); let res = false; let optionTag\n\n if (!this.enum_values.includes(sanitized) && sanitized !== '') {\n /* Add to list of valid enum values */\n this.enum_options.push(`${sanitized}`)\n this.enum_display.push(`${sanitized}`)\n this.enum_values.push(sanitized)\n /* Update Schema enum to prevent triggering error */\n /* \"Value must be one of the enumerated values\" */\n this.schema.enum.push(sanitized)\n\n optionTag = this.input.querySelector(`option[value=\"${sanitized}\"]`)\n if (optionTag) {\n /* Remove data attribute to make option tag permanent. */\n optionTag.removeAttribute('data-select2-tag')\n } else {\n this.input.appendChild(new Option(sanitized, sanitized, false, false)).trigger('change')\n }\n\n res = true\n }\n return res\n }\n\n enable () {\n if (!this.always_disabled) {\n if (this.select2_instance) {\n if (this.select2v4) this.select2_instance.prop('disabled', false)\n else this.select2_instance.select2('enable', true)\n }\n }\n super.enable()\n }\n\n disable (alwaysDisabled) {\n if (this.select2_instance) {\n if (this.select2v4) this.select2_instance.prop('disabled', true)\n else this.select2_instance.select2('enable', false)\n }\n super.disable(alwaysDisabled)\n }\n\n destroy () {\n if (this.select2_instance) {\n this.select2_instance.select2('destroy')\n this.select2_instance = null\n }\n super.destroy()\n }\n}\n","import { SelectEditor } from './select.js'\nimport { extend } from '../utilities.js'\n\nexport class SelectizeEditor extends SelectEditor {\n setValue (value, initial) {\n if (this.selectize_instance) {\n if (initial) this.is_dirty = false\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\n\n const sanitized = this.updateValue(value) /* Sets this.value to sanitized value */\n\n this.input.value = sanitized\n\n this.selectize_instance.clear(true)\n this.selectize_instance.setValue(sanitized)\n\n this.onChange(true)\n } else super.setValue(value, initial)\n }\n\n afterInputReady () {\n if (window.jQuery && window.jQuery.fn && window.jQuery.fn.selectize && !this.selectize_instance) {\n /* Get options, either global options from \"this.defaults.options.selectize\" or */\n /* single property options from schema \"options.selectize\" */\n const options = this.expandCallbacks('selectize', extend({}, this.defaults.options.selectize || {}, this.options.selectize || {}))\n\n /* New items are allowed if option \"create\" is true and type is \"string\" */\n this.newEnumAllowed = options.create = !!options.create && this.schema.type === 'string'\n\n this.selectize_instance = (window.jQuery(this.input).selectize(options))[0].selectize\n\n /* Remove change handler set in parent class (src/multiselect.js) */\n this.control.removeEventListener('change', this.multiselectChangeHandler)\n\n /* Create a new change handler */\n this.multiselectChangeHandler = (value) => {\n /* var value = this.selectize_instance.getValue(true); */\n /* this.value = value; */\n this.updateValue(value)\n this.onChange(true)\n }\n\n /* Add new event handler. */\n /* Note: Must use the \"on()\" method and not addEventListener() */\n this.selectize_instance.on('change', this.multiselectChangeHandler)\n }\n super.afterInputReady()\n }\n\n updateValue (value) {\n let sanitized = this.enum_values[0]\n value = this.typecast(value || '')\n if (!this.enum_values.includes(value)) {\n if (this.newEnumAllowed) {\n sanitized = this.addNewOption(value) ? value : sanitized\n }\n } else sanitized = value\n this.value = sanitized\n return sanitized\n }\n\n addNewOption (value) {\n const sanitized = this.typecast(value); let res = false\n\n if (!this.enum_values.includes(sanitized) && sanitized !== '') {\n /* Add to list of valid enum values */\n this.enum_options.push(`${sanitized}`)\n this.enum_display.push(`${sanitized}`)\n this.enum_values.push(sanitized)\n /* Update Schema enum to prevent triggering error */\n /* \"Value must be one of the enumerated values\" */\n this.schema.enum.push(sanitized)\n\n /* Add selectize item */\n this.selectize_instance.addItem(sanitized)\n this.selectize_instance.refreshOptions(false)\n\n res = true\n }\n return res\n }\n\n onWatchedFieldChange () {\n super.onWatchedFieldChange()\n if (this.selectize_instance) {\n this.selectize_instance.clear(true) /* Clear selection */\n this.selectize_instance.clearOptions(true) /* Remove all options */\n this.enum_options.forEach((value, i) => {\n this.selectize_instance.addOption({ value, text: this.enum_display[i] })\n })\n this.selectize_instance.addItem(`${this.value}`, true) /* Set new selection */\n }\n }\n\n enable () {\n if (!this.always_disabled && this.selectize_instance) this.selectize_instance.unlock()\n super.enable()\n }\n\n disable (alwaysDisabled) {\n if (this.selectize_instance) this.selectize_instance.lock()\n super.disable(alwaysDisabled)\n }\n\n destroy () {\n if (this.selectize_instance) {\n this.selectize_instance.destroy()\n this.selectize_instance = null\n }\n super.destroy()\n }\n}\n","/* This editor is using the signature pad editor from https://github.com/szimek/signature_pad */\n/* Credits for the pad itself go to https://github.com/szimek */\n\nimport { StringEditor } from './string.js'\n\nexport class SignatureEditor extends StringEditor {\n build () {\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\n const formname = this.formname.replace(/\\W/g, '')\n\n if (typeof SignaturePad === 'function') {\n /* Dynamically add the required CSS the first time this editor is used */\n this.input = this.theme.getFormInputField('hidden')\n this.container.appendChild(this.input)\n\n /* Required to keep height */\n const signatureContainer = document.createElement('div')\n signatureContainer.classList.add('signature-container')\n\n /* Create canvas for signature pad */\n const canvas = document.createElement('canvas')\n if (this.jsoneditor.options.use_name_attributes) {\n canvas.setAttribute('name', formname)\n }\n canvas.classList.add('signature')\n signatureContainer.appendChild(canvas)\n\n this.signaturePad = new window.SignaturePad(canvas, {\n onEnd () {\n /* check if the signature is not empty before setting a value */\n if (!this.signaturePad.isEmpty()) {\n this.input.value = this.signaturePad.toDataURL()\n } else {\n this.input.value = ''\n }\n\n this.is_dirty = true\n this.refreshValue()\n this.watch_listener()\n this.jsoneditor.notifyWatchers(this.path)\n if (this.parent) this.parent.onChildEditorChange(this)\n else this.jsoneditor.onChange()\n }\n })\n\n /* create button containers and add clear signature button */\n const buttons = document.createElement('div')\n const clearButton = document.createElement('button')\n clearButton.classList.add('tiny', 'button')\n clearButton.innerHTML = 'Clear signature'\n buttons.appendChild(clearButton)\n signatureContainer.appendChild(buttons)\n\n if (this.options.compact) this.container.setAttribute('class', `${this.container.getAttribute('class')} compact`)\n\n if (this.schema.readOnly || this.schema.readonly) {\n this.disable(true)\n\n Array.from(this.inputs).forEach(input => {\n canvas.setAttribute('readOnly', 'readOnly')\n input.disabled = true\n })\n }\n /* add listener to the clear button. when clicked, trigger a canvas change after emptying the canvas */\n clearButton.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n this.signaturePad.clear()\n /* trigger stroke end to let signaturePad update the dataURL */\n this.signaturePad.strokeEnd()\n })\n\n this.control = this.theme.getFormControl(this.label, signatureContainer, this.description)\n this.container.appendChild(this.control)\n this.refreshValue()\n\n /* signature canvas will stretch to signatureContainer width */\n canvas.width = signatureContainer.offsetWidth\n if (this.options && this.options.canvas_height) {\n canvas.height = this.options.canvas_height\n } else {\n canvas.height = '300' /* Set to default height of 300px; */\n }\n } else {\n const message = document.createElement('p')\n message.innerHTML = 'Signature pad is not available, please include SignaturePad from https://github.com/szimek/signature_pad'\n this.container.appendChild(message)\n }\n }\n\n setValue (val) {\n if (typeof SignaturePad === 'function') {\n const sanitized = this.sanitize(val)\n if (this.value === sanitized) {\n return\n }\n this.value = sanitized\n this.input.value = this.value\n this.signaturePad.clear()\n /* only set contents if value != '' */\n if (val && val !== '') {\n this.signaturePad.fromDataURL(val)\n }\n this.watch_listener()\n this.jsoneditor.notifyWatchers(this.path)\n return false\n }\n }\n\n destroy () {\n this.signaturePad.off()\n delete this.signaturePad\n }\n}\n","import { StringEditor } from './string.js'\nimport { extend } from '../utilities.js'\n\nexport class SimplemdeEditor extends StringEditor {\n setValue (value, initial, fromTemplate) {\n const res = super.setValue(value, initial, fromTemplate)\n if (res !== undefined && res.changed && this.simplemde_instance) this.simplemde_instance.value(res.value)\n }\n\n build () {\n this.options.format = 'textarea' /* Force format into \"textarea\" */\n super.build()\n this.input_type = this.schema.format /* Restore original format */\n this.input.setAttribute('data-schemaformat', this.input_type)\n }\n\n afterInputReady () {\n let options\n\n if (window.SimpleMDE) {\n /* Get options, either global options from \"this.defaults.options.simplemde\" or */\n /* single property options from schema \"options.simplemde\" */\n options = this.expandCallbacks('simplemde', extend({}, {\n height: 300\n }, this.defaults.options.simplemde || {}, this.options.simplemde || {}, {\n element: this.input\n }))\n\n this.simplemde_instance = new window.SimpleMDE(options)\n\n if (this.schema.readOnly || this.schema.readonly || this.schema.template) {\n this.simplemde_instance.codemirror.options.readOnly = true\n }\n\n /* Listen for changes */\n this.simplemde_instance.codemirror.on('change', () => {\n this.value = this.simplemde_instance.value()\n this.is_dirty = true\n this.onChange(true)\n })\n\n /* This will prevent SimpleMDE content from being hidden until focus in Chrome */\n /* if SimpleMDE is not visible (Like when placed inside Tabs) */\n if (options.autorefresh) {\n this.startListening(this.simplemde_instance.codemirror, this.simplemde_instance.codemirror.state.autoRefresh = { delay: 250 })\n }\n\n this.theme.afterInputReady(this.input)\n } else super.afterInputReady() /* Library not loaded, so just treat this as a string */\n }\n\n getNumColumns () {\n return 6\n }\n\n enable () {\n if (!this.always_disabled && this.simplemde_instance) this.simplemde_instance.codemirror.options.readOnly = false\n super.enable()\n }\n\n disable (alwaysDisabled) {\n if (this.simplemde_instance) this.simplemde_instance.codemirror.options.readOnly = true\n super.disable(alwaysDisabled)\n }\n\n destroy () {\n if (this.simplemde_instance) {\n this.simplemde_instance.toTextArea()\n this.simplemde_instance = null\n }\n super.destroy()\n }\n\n /* Ported from https://codemirror.net/addon/display/autorefresh.js */\n startListening (cm, state) {\n function check () {\n if (cm.display.wrapper.offsetHeight) {\n this.stopListening(cm, state)\n if (cm.display.lastWrapHeight !== cm.display.wrapper.clientHeight) {\n cm.refresh()\n }\n } else {\n state.timeout = window.setTimeout(check, state.delay)\n }\n }\n state.timeout = window.setTimeout(check, state.delay)\n state.hurry = () => {\n window.clearTimeout(state.timeout)\n state.timeout = window.setTimeout(check, 50)\n }\n cm.on(window, 'mouseup', state.hurry)\n cm.on(window, 'keyup', state.hurry)\n }\n\n stopListening (cm, state) {\n window.clearTimeout(state.timeout)\n cm.off(window, 'mouseup', state.hurry)\n cm.off(window, 'keyup', state.hurry)\n }\n}\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'\nimport rules from './starrating.css.js'\n\nexport class StarratingEditor extends StringEditor {\n build () {\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\n if (this.options.compact) this.container.classList.add('compact')\n\n this.ratingContainer = document.createElement('div')\n this.ratingContainer.classList.add('starrating')\n\n /* Emulate the old \"rating\" editor parameters */\n if (this.schema.enum === undefined) {\n let max = this.schema.maximum ? this.schema.maximum : 5\n if (this.schema.exclusiveMaximum) max--\n this.enum_values = []\n for (let k = 0; k < max; k++) this.enum_values.push(k + 1)\n } else this.enum_values = this.schema.enum\n\n this.radioGroup = []\n\n const radioInputEventhandler = e => {\n e.preventDefault()\n e.stopPropagation()\n this.setValue(e.currentTarget.value)\n this.onChange(true)\n }\n\n for (let i = this.enum_values.length - 1; i > -1; i--) {\n const id = this.formname + (i + 1)\n\n /* form radio elements */\n const radioInput = this.theme.getFormInputField('radio')\n radioInput.name = `${this.formname}[starrating]`\n radioInput.value = this.enum_values[i]\n radioInput.id = id\n radioInput.addEventListener('change', radioInputEventhandler, false)\n this.radioGroup.push(radioInput)\n\n /* form-label for radio elements */\n const radioLabel = document.createElement('label')\n radioLabel.htmlFor = id\n radioLabel.title = this.enum_values[i]\n if (this.options.displayValue) {\n radioLabel.classList.add('starrating-display-enabled')\n }\n\n this.ratingContainer.appendChild(radioInput)\n this.ratingContainer.appendChild(radioLabel)\n }\n\n if (this.options.displayValue) {\n this.displayRating = document.createElement('div')\n this.displayRating.classList.add('starrating-display')\n this.displayRating.innerText = this.enum_values[0]\n this.ratingContainer.appendChild(this.displayRating)\n }\n\n if (this.schema.readOnly || this.schema.readonly) {\n this.disable(true)\n for (let j = 0; j < this.radioGroup.length; j++) {\n this.radioGroup[j].disabled = true\n }\n this.ratingContainer.classList.add('readonly')\n }\n\n const ratingsContainerWrapper = this.theme.getContainer()\n ratingsContainerWrapper.appendChild(this.ratingContainer)\n\n this.input = ratingsContainerWrapper\n\n this.control = this.theme.getFormControl(this.label, ratingsContainerWrapper, this.description, this.infoButton)\n this.container.appendChild(this.control)\n\n this.refreshValue()\n }\n\n enable () {\n if (!this.always_disabled) {\n for (let i = 0; i < this.radioGroup.length; i++) {\n this.radioGroup[i].disabled = false\n }\n this.ratingContainer.classList.remove('readonly')\n this.disabled = false\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n for (let i = 0; i < this.radioGroup.length; i++) {\n this.radioGroup[i].disabled = true\n }\n this.ratingContainer.classList.add('readonly')\n this.disabled = true\n }\n\n destroy () {\n if (this.ratingContainer.parentNode && this.ratingContainer.parentNode.parentNode) this.ratingContainer.parentNode.parentNode.removeChild(this.ratingContainer.parentNode)\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\n super.destroy()\n }\n\n getNumColumns () {\n return 2\n }\n\n getValue () {\n if (!this.dependenciesFulfilled) {\n return undefined\n }\n if (this.schema.type === 'integer') {\n return this.value === '' ? undefined : this.value * 1\n }\n return this.value\n }\n\n setValue (value) {\n for (let i = 0; i < this.radioGroup.length; i++) {\n if (this.radioGroup[i].value === `${value}`) {\n this.radioGroup[i].checked = true\n this.value = value\n\n if (this.options.displayValue) this.displayRating.innerHTML = this.value\n\n this.onChange(true)\n break\n }\n }\n }\n}\n\nStarratingEditor.rules = rules\n","import { IntegerEditor } from './integer.js'\n\nexport class StepperEditor extends IntegerEditor {\n build () {\n super.build()\n this.input.setAttribute('type', 'number')\n if (!this.input.getAttribute('step')) {\n this.input.setAttribute('step', '1')\n }\n const stepperButtons = this.theme.getStepperButtons(this.input)\n this.control.appendChild(stepperButtons)\n this.stepperDown = this.control.querySelector('.stepper-down')\n this.stepperUp = this.control.querySelector('.stepper-up')\n }\n\n enable () {\n super.enable()\n this.stepperDown.removeAttribute('disabled')\n this.stepperUp.removeAttribute('disabled')\n }\n\n disable () {\n super.disable()\n this.stepperDown.setAttribute('disabled', true)\n this.stepperUp.setAttribute('disabled', true)\n }\n}\n","import { AbstractEditor } from '../editor.js'\nimport { extend } from '../utilities.js'\n\nexport class StringEditor extends AbstractEditor {\n register () {\n super.register()\n if (!this.input) return\n if (this.jsoneditor.options.use_name_attributes) {\n this.input.setAttribute('name', this.formname)\n }\n this.input.setAttribute('aria-label', this.formname)\n }\n\n unregister () {\n super.unregister()\n if (!this.input) return\n this.input.removeAttribute('name')\n this.input.removeAttribute('aria-label')\n }\n\n setValue (value, initial, fromTemplate) {\n if (this.template && !fromTemplate) return\n\n if (!this.shouldBeUnset() && (value === null || typeof value === 'undefined')) value = ''\n else if (typeof value === 'object') value = JSON.stringify(value)\n else if (!this.shouldBeUnset() && (typeof value !== 'string')) value = `${value}`\n\n if (value === this.serialized) return\n\n /* Sanitize value before setting it */\n const sanitized = this.sanitize(value)\n\n if (this.input.value === sanitized) return\n\n this.setValueToInputField(sanitized)\n\n if (this.format === 'range') {\n const output = this.control.querySelector('output')\n if (output) {\n output.value = sanitized\n }\n }\n\n const changed = fromTemplate || this.getValue() !== value\n\n this.refreshValue()\n\n if (initial) this.is_dirty = false\n else if (this.jsoneditor.options.show_errors === 'change') this.is_dirty = true\n\n if (this.adjust_height) this.adjust_height(this.input)\n\n /* Bubble this setValue to parents if the value changed */\n this.onChange(changed)\n\n /* Return object with changed state and sanitized value for use in editors that extend this */\n return { changed, value: sanitized }\n }\n\n setValueToInputField (value) {\n this.input.value = value === undefined ? '' : value\n }\n\n getNumColumns () {\n const min = Math.ceil(Math.max(this.getTitle().length, this.schema.maxLength || 0, this.schema.minLength || 0) / 5)\n let num\n\n if (this.input_type === 'textarea') num = 6\n else if (['text', 'email'].includes(this.input_type)) num = 4\n else num = 2\n\n return Math.min(12, Math.max(min, num))\n }\n\n build () {\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\n\n this.format = this.schema.format\n if (!this.format && this.schema.media && this.schema.media.type) {\n this.format = this.schema.media.type.replace(/(^(application|text)\\/(x-)?(script\\.)?)|(-source$)/g, '')\n }\n if (!this.format && this.options.default_format) {\n this.format = this.options.default_format\n }\n if (this.options.format) {\n this.format = this.options.format\n }\n\n /* Specific format */\n if (this.format) {\n /* Text Area */\n if (this.format === 'textarea') {\n this.input_type = 'textarea'\n this.input = this.theme.getTextareaInput()\n /* Range Input */\n } else if (this.format === 'range') {\n this.input_type = 'range'\n let min = this.schema.minimum || 0\n let max = this.schema.maximum || Math.max(100, min + 1)\n let step = 1\n if (this.schema.multipleOf) {\n if (min % this.schema.multipleOf) min = Math.ceil(min / this.schema.multipleOf) * this.schema.multipleOf\n if (max % this.schema.multipleOf) max = Math.floor(max / this.schema.multipleOf) * this.schema.multipleOf\n step = this.schema.multipleOf\n }\n\n this.input = this.theme.getRangeInput(min, max, step)\n /* HTML5 Input type */\n } else {\n this.input_type = 'text'\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)) {\n this.input_type = this.format\n }\n this.input = this.theme.getFormInputField(this.input_type)\n }\n /* Normal text input */\n } else {\n this.input_type = 'text'\n this.input = this.theme.getFormInputField(this.input_type)\n }\n\n /* minLength, maxLength, and pattern */\n if (typeof this.schema.maxLength !== 'undefined') this.input.setAttribute('maxlength', this.schema.maxLength)\n if (typeof this.schema.pattern !== 'undefined') this.input.setAttribute('pattern', this.schema.pattern)\n else if (typeof this.schema.minLength !== 'undefined') this.input.setAttribute('pattern', `.{${this.schema.minLength},}`)\n\n if (this.options.compact) {\n this.container.classList.add('compact')\n } else if (this.options.input_width) this.input.style.width = this.options.input_width\n\n if (this.schema.readOnly || this.schema.readonly || this.schema.template) {\n this.disable(true)\n this.input.setAttribute('readonly', 'true')\n }\n\n /* Set custom attributes on input element. Parameter is array of protected keys. Empty array if none. */\n this.setInputAttributes(['maxlength', 'pattern', 'readonly', 'min', 'max', 'step'])\n\n this.input\n .addEventListener('change', e => {\n e.preventDefault()\n e.stopPropagation()\n\n /* Don't allow changing if this field is a template */\n if (this.schema.template) {\n e.currentTarget.value = this.value\n return\n }\n\n const val = e.currentTarget.value\n\n /* sanitize value */\n const sanitized = this.sanitize(val)\n if (val !== sanitized) {\n e.currentTarget.value = sanitized\n }\n\n this.is_dirty = true\n\n this.refreshValue()\n this.onChange(true)\n })\n\n if (this.options.input_height) this.input.style.height = this.options.input_height\n if (this.options.expand_height) {\n this.adjust_height = (el) => {\n if (!el) return\n let i; let ch = el.offsetHeight\n /* Input too short */\n if (el.offsetHeight < el.scrollHeight) {\n i = 0\n while (el.offsetHeight < el.scrollHeight + 3) {\n if (i > 100) break\n i++\n ch++\n el.style.height = `${ch}px`\n }\n } else {\n i = 0\n while (el.offsetHeight >= el.scrollHeight + 3) {\n if (i > 100) break\n i++\n ch--\n el.style.height = `${ch}px`\n }\n el.style.height = `${ch + 1}px`\n }\n }\n\n this.input.addEventListener('keyup', e => {\n this.adjust_height(e.currentTarget)\n })\n this.input.addEventListener('change', e => {\n this.adjust_height(e.currentTarget)\n })\n this.adjust_height()\n }\n\n if (this.format) this.input.setAttribute('data-schemaformat', this.format)\n\n let { input } = this\n if (this.format === 'range') {\n input = this.theme.getRangeControl(this.input, this.theme.getRangeOutput(this.input, this.schema.default || Math.max(this.schema.minimum || 0, 0)))\n }\n\n this.control = this.theme.getFormControl(this.label, input, this.description, this.infoButton, this.formname)\n this.container.appendChild(this.control)\n\n /* Any special formatting that needs to happen after the input is added to the dom */\n window.requestAnimationFrame(() => {\n /* Skip in case the input is only a temporary editor, */\n /* otherwise, in the case of an ace_editor creation, */\n /* it will generate an error trying to append it to the missing parentNode */\n if (this.input.parentNode) this.afterInputReady()\n if (this.adjust_height) this.adjust_height(this.input)\n if (this.format === 'range') {\n const output = this.control.querySelector('output')\n output.value = this.input.value\n }\n })\n\n /* Compile and store the template */\n if (this.schema.template) {\n const callback = this.expandCallbacks('template', { template: this.schema.template })\n if (typeof callback.template === 'function') this.template = callback.template\n else this.template = this.jsoneditor.compileTemplate(this.schema.template, this.template_engine)\n this.refreshValue()\n } else {\n this.refreshValue()\n }\n }\n\n setupCleave (el) {\n /* Enable cleave.js support if library is loaded and config is available */\n const options = this.expandCallbacks('cleave', extend({}, this.defaults.options.cleave || {}, this.options.cleave || {}))\n if (typeof options === 'object' && Object.keys(options).length > 0) {\n this.cleave_instance = new window.Cleave(el, options)\n }\n }\n\n setupImask (el) {\n /* Enable imask.js support if library is loaded and config is available */\n const options = this.expandCallbacks('imask', extend({}, this.defaults.options.imask || {}, this.options.imask || {}))\n if (typeof options === 'object' && Object.keys(options).length > 0) {\n this.imask_instance = window.IMask(el, this.ajustIMaskOptions(options))\n }\n }\n\n ajustIMaskOptions (obj) {\n /* iMask config format is not JSON friendly, so function and regex based mask */\n /* properties have to be adjusted from string to the correct format */\n Object.keys(obj).forEach(prop => {\n if (obj[prop] === Object(obj[prop])) obj[prop] = this.ajustIMaskOptions(obj[prop])\n else if (prop === 'mask') {\n if (obj[prop].substr(0, 6) === 'regex:') {\n const regExMatch = obj[prop].match(/^regex:\\/(.*)\\/([gimsuy]*)$/)\n if (regExMatch !== null) {\n try {\n obj[prop] = new RegExp(regExMatch[1], regExMatch[2])\n } catch (e) { }\n }\n } else obj[prop] = this.getGlobalPropertyFromString(obj[prop])\n }\n })\n return obj\n }\n\n getGlobalPropertyFromString (strValue) {\n if (!strValue.includes('.')) {\n if (typeof window[strValue] !== 'undefined') {\n return window[strValue]\n }\n } else {\n const arrParts = strValue.split('.')\n const obj = arrParts[0]\n const prop = arrParts[1]\n\n if (typeof window[obj] !== 'undefined' && typeof window[obj][prop] !== 'undefined') {\n return window[obj][prop]\n }\n }\n /* just a string */\n return strValue\n }\n\n shouldBeUnset () {\n return !this.jsoneditor.options.use_default_values && !this.is_dirty\n }\n\n getValue () {\n const hasValueSet = !!(this.input && this.input.value)\n if (this.shouldBeUnset() && !hasValueSet) {\n return undefined\n }\n if (this.imask_instance && this.dependenciesFulfilled && this.options.imask.returnUnmasked) {\n return this.imask_instance.unmaskedValue\n } return super.getValue()\n }\n\n enable () {\n if (!this.always_disabled) {\n this.input.disabled = false\n super.enable()\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n this.input.disabled = true\n super.disable()\n }\n\n afterInputReady () {\n this.theme.afterInputReady(this.input)\n if (window.Cleave && !this.cleave_instance) this.setupCleave(this.input)\n else if (window.IMask && !this.imask_instance) this.setupImask(this.input)\n }\n\n refreshValue () {\n this.value = this.input.value\n if (typeof this.value !== 'string' && !this.shouldBeUnset()) this.value = ''\n this.serialized = this.value\n }\n\n destroy () {\n if (this.cleave_instance) this.cleave_instance.destroy()\n if (this.imask_instance) this.imask_instance.destroy()\n\n this.template = null\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\n if (this.label && this.label.parentNode) this.label.parentNode.removeChild(this.label)\n if (this.description && this.description.parentNode) this.description.parentNode.removeChild(this.description)\n\n super.destroy()\n }\n\n /**\n * This is overridden in derivative editors\n */\n sanitize (value) {\n return value\n }\n\n /**\n * Re-calculates the value if needed\n */\n onWatchedFieldChange () {\n let vars\n\n /* If this editor needs to be rendered by a macro template */\n if (this.template) {\n vars = this.getWatchedFieldValues()\n this.setValue(this.template(vars), false, true)\n }\n\n super.onWatchedFieldChange()\n }\n\n showValidationErrors (errors) {\n if (this.jsoneditor.options.show_errors === 'always') { } else if (!this.is_dirty && this.previous_error_setting === this.jsoneditor.options.show_errors) return\n\n this.previous_error_setting = this.jsoneditor.options.show_errors\n\n const addMessage = (messages, error) => {\n if (error.path === this.path) {\n messages.push(error.message)\n }\n return messages\n }\n const messages = errors.reduce(addMessage, [])\n\n if (messages.length) {\n this.theme.addInputError(this.input, `${messages.join('. ')}.`)\n } else {\n this.theme.removeInputError(this.input)\n }\n }\n}\n","import { ArrayEditor } from './array.js'\nimport { extend, generateUUID, trigger } from '../utilities.js'\n\nexport class TableEditor extends ArrayEditor {\n register () {\n super.register()\n if (this.rows) {\n for (let i = 0; i < this.rows.length; i++) {\n this.rows[i].register()\n }\n }\n }\n\n unregister () {\n super.unregister()\n if (this.rows) {\n for (let i = 0; i < this.rows.length; i++) {\n this.rows[i].unregister()\n }\n }\n }\n\n getNumColumns () {\n return Math.max(Math.min(12, this.width), 3)\n }\n\n preBuild () {\n const itemSchema = this.jsoneditor.expandRefs(this.schema.items || {})\n\n this.item_title = itemSchema.title || 'row'\n this.item_default = itemSchema.default || null\n this.item_has_child_editors = itemSchema.properties || itemSchema.items\n this.width = 12\n this.array_controls_top = this.options.array_controls_top || this.jsoneditor.options.array_controls_top\n super.preBuild()\n }\n\n build () {\n this.table = this.theme.getTable()\n this.container.appendChild(this.table)\n this.thead = this.theme.getTableHead()\n this.table.appendChild(this.thead)\n this.header_row = this.theme.getTableRow()\n this.thead.appendChild(this.header_row)\n this.row_holder = this.theme.getTableBody()\n this.table.appendChild(this.row_holder)\n\n /* Determine the default value of array element */\n const tmp = this.getElementEditor(0, true)\n this.item_default = tmp.getDefault()\n this.width = tmp.getNumColumns() + 2\n\n if (!this.options.compact) {\n this.header = document.createElement('label')\n this.header.textContent = this.getTitle()\n this.title = this.theme.getHeader(this.header, this.getPathDepth())\n this.container.appendChild(this.title)\n if (this.options.infoText) {\n this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\n this.container.appendChild(this.infoButton)\n }\n this.title_controls = this.theme.getHeaderButtonHolder()\n this.title.appendChild(this.title_controls)\n if (this.schema.description) {\n this.description = this.theme.getDescription(this.translateProperty(this.schema.description))\n this.container.appendChild(this.description)\n }\n this.panel = this.theme.getIndentedPanel()\n this.container.appendChild(this.panel)\n this.error_holder = document.createElement('div')\n this.panel.appendChild(this.error_holder)\n } else {\n this.panel = document.createElement('div')\n this.container.appendChild(this.panel)\n }\n\n this.panel.appendChild(this.table)\n this.controls = this.theme.getButtonHolder()\n if (this.array_controls_top) {\n this.title.appendChild(this.controls)\n } else {\n this.panel.appendChild(this.controls)\n }\n\n if (this.item_has_child_editors) {\n const ce = tmp.getChildEditors()\n const order = tmp.property_order || Object.keys(ce)\n for (let i = 0; i < order.length; i++) {\n const th = this.theme.getTableHeaderCell(ce[order[i]].getTitle())\n if (ce[order[i]].options.hidden) th.style.display = 'none'\n this.header_row.appendChild(th)\n }\n } else {\n this.header_row.appendChild(this.theme.getTableHeaderCell(this.item_title))\n }\n\n tmp.destroy()\n this.row_holder.innerHTML = ''\n\n /* Row Controls column */\n this.controls_header_cell = this.theme.getTableHeaderCell(' ')\n this.controls_header_cell.setAttribute('aria-hidden', 'true')\n this.header_row.appendChild(this.controls_header_cell)\n\n /* Add controls */\n this.addControls()\n }\n\n onChildEditorChange (editor) {\n this.refreshValue()\n super.onChildEditorChange()\n }\n\n getItemDefault () {\n return extend({}, { default: this.item_default }).default\n }\n\n getItemTitle () {\n return this.item_title\n }\n\n getElementEditor (i, ignore) {\n const schemaCopy = extend({}, this.schema.items)\n const editor = this.jsoneditor.getEditorClass(schemaCopy, this.jsoneditor)\n const row = this.row_holder.appendChild(this.theme.getTableRow())\n let holder = row\n if (!this.item_has_child_editors) {\n holder = this.theme.getTableCell()\n row.appendChild(holder)\n }\n\n const ret = this.jsoneditor.createEditor(editor, {\n jsoneditor: this.jsoneditor,\n schema: schemaCopy,\n container: holder,\n path: `${this.path}.${i}`,\n parent: this,\n compact: true,\n table_row: true\n })\n\n ret.preBuild()\n if (!ignore) {\n ret.build()\n ret.postBuild()\n\n ret.controls_cell = row.appendChild(this.theme.getTableCell())\n ret.row = row\n ret.table_controls = this.theme.getButtonHolder()\n ret.controls_cell.appendChild(ret.table_controls)\n ret.table_controls.style.margin = 0\n ret.table_controls.style.padding = 0\n }\n\n return ret\n }\n\n destroy () {\n this.innerHTML = ''\n if (this.checkParent(this.title)) this.title.parentNode.removeChild(this.title)\n if (this.checkParent(this.description)) this.description.parentNode.removeChild(this.description)\n if (this.checkParent(this.row_holder)) this.row_holder.parentNode.removeChild(this.row_holder)\n if (this.checkParent(this.table)) this.table.parentNode.removeChild(this.table)\n if (this.checkParent(this.panel)) this.panel.parentNode.removeChild(this.panel)\n\n this.rows = this.title = this.description = this.row_holder = this.table = this.panel = null\n\n super.destroy()\n }\n\n ensureArraySize (value) {\n if (!(Array.isArray(value))) value = [value]\n\n if (this.schema.minItems) {\n while (value.length < this.schema.minItems) {\n value.push(this.getItemDefault())\n }\n }\n if (this.schema.maxItems && value.length > this.schema.maxItems) {\n value = value.slice(0, this.schema.maxItems)\n }\n return value\n }\n\n setValue (value = [], initial) {\n /* Make sure value has between minItems and maxItems items in it */\n value = this.ensureArraySize(value)\n\n const serialized = JSON.stringify(value)\n if (serialized === this.serialized) return\n\n let numrowsChanged = false\n\n value.forEach((val, i) => {\n if (this.rows[i]) {\n /* TODO: don't set the row's value if it hasn't changed */\n this.rows[i].setValue(val)\n } else {\n this.addRow(val)\n numrowsChanged = true\n }\n })\n\n for (let j = value.length; j < this.rows.length; j++) {\n const holder = this.rows[j].container\n if (!this.item_has_child_editors) {\n this.rows[j].row.parentNode.removeChild(this.rows[j].row)\n }\n this.rows[j].destroy()\n if (holder.parentNode) holder.parentNode.removeChild(holder)\n this.rows[j] = null\n numrowsChanged = true\n }\n this.rows = this.rows.slice(0, value.length)\n\n this.refreshValue()\n if (numrowsChanged || initial) this.refreshRowButtons()\n\n this.onChange()\n\n /* TODO: sortable */\n }\n\n refreshRowButtons () {\n /* If we currently have minItems items in the array */\n const minItems = this.schema.minItems && this.schema.minItems >= this.rows.length\n /* If we currently have maxItems items in the array */\n const maxItems = this.schema.maxItems && this.schema.maxItems <= this.rows.length\n\n const needRowButtons = []\n this.rows.forEach((editor, i) => {\n if (editor.delete_button) {\n /* Hide the delete button if we have minItems items */\n const display = !minItems\n this.setVisibility(editor.delete_button, display)\n needRowButtons.push(display)\n }\n\n if (editor.copy_button) {\n /* Hide the copy button if we have maxItems items */\n const display = !maxItems\n this.setVisibility(editor.copy_button, display)\n needRowButtons.push(display)\n }\n\n if (editor.moveup_button) {\n /* Hide the moveup button for the first row */\n const display = i !== 0\n this.setVisibility(editor.moveup_button, display)\n needRowButtons.push(display)\n }\n\n if (editor.movedown_button) {\n /* Hide the movedown button for the last row */\n const display = i !== this.rows.length - 1\n this.setVisibility(editor.movedown_button, display)\n needRowButtons.push(display)\n }\n })\n\n const need = needRowButtons.some(e => e)\n /* Show/hide controls column in table */\n this.rows.forEach((editor) =>\n this.setVisibility(editor.controls_cell, need)\n )\n this.setVisibility(this.controls_header_cell, need)\n\n this.setVisibility(this.table, this.value.length)\n\n /* If there are maxItems items in the array, or configured to hide the add_row_button button, hide the button beneath the rows */\n const display1 = !(maxItems || this.hide_add_button)\n this.setVisibility(this.add_row_button, display1)\n\n /* If there are minItems items in the array, or configured to hide the delete_last_row button, hide the button beneath the rows */\n const display2 = !(!this.value.length || minItems || this.hide_delete_last_row_buttons)\n this.setVisibility(this.delete_last_row_button, display2)\n\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 */\n const display3 = !(this.value.length <= 1 || minItems || this.hide_delete_all_rows_buttons)\n this.setVisibility(this.remove_all_rows_button, display3)\n\n const controlsNeeded = display1 || display2 || display3\n this.setVisibility(this.controls, controlsNeeded)\n }\n\n refreshValue () {\n this.value = []\n\n this.rows.forEach((editor, i) => {\n /* Get the value for this editor */\n this.value[i] = editor.getValue()\n })\n this.serialized = JSON.stringify(this.value)\n }\n\n addRow (value) {\n const i = this.rows.length\n\n this.rows[i] = this.getElementEditor(i)\n\n const controlsHolder = this.rows[i].table_controls\n\n /* Buttons to delete row, copy row, move row up, and move row down */\n if (!this.hide_delete_buttons) {\n this.rows[i].delete_button = this._createDeleteButton(i, controlsHolder)\n }\n\n if (this.show_copy_button) {\n this.rows[i].copy_button = this._createCopyButton(i, controlsHolder)\n }\n\n if (!this.hide_move_buttons) {\n this.rows[i].moveup_button = this._createMoveUpButton(i, controlsHolder)\n }\n\n if (!this.hide_move_buttons) {\n this.rows[i].movedown_button = this._createMoveDownButton(i, controlsHolder)\n }\n\n if (typeof value !== 'undefined') this.rows[i].setValue(value)\n\n return this.rows[i]\n }\n\n _createDeleteButton (i, holder) {\n const button = this.getButton('', 'delete', 'button_delete_row_title_short')\n button.classList.add('delete', 'json-editor-btntype-delete')\n button.setAttribute('data-i', i)\n button.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n\n if (!this.askConfirmation()) {\n return false\n }\n\n const j = e.currentTarget.getAttribute('data-i') * 1\n const value = this.getValue()\n\n const rows = this.getValue()\n const editorValue = rows[j]\n\n value.splice(j, 1)\n\n this.setValue(value)\n this.onChange(true)\n this.jsoneditor.trigger('deleteRow', editorValue)\n })\n holder.appendChild(button)\n return button\n }\n\n _createCopyButton (i, holder) {\n const button = this.getButton('', 'copy', 'button_copy_row_title_short')\n const schema = this.schema\n button.classList.add('copy', 'json-editor-btntype-copy')\n button.setAttribute('data-i', i)\n button.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n const j = e.currentTarget.getAttribute('data-i') * 1\n const value = this.getValue()\n\n let newValue = value[j]\n\n /* On copy, recreate uuid if needed. */\n if (schema.items.type === 'string' && schema.items.format === 'uuid') {\n newValue = generateUUID()\n } else if (schema.items.type === 'object' && schema.items.properties) {\n value.forEach((row, i) => {\n if (j === i) {\n for (const key of Object.keys(row)) {\n if (schema.items.properties && schema.items.properties[key] && schema.items.properties[key].format === 'uuid') {\n newValue = Object.assign({}, value[j])\n newValue[key] = generateUUID()\n }\n }\n }\n })\n }\n\n value.splice(j + 1, 0, newValue)\n this.setValue(value)\n this.onChange(true)\n this.jsoneditor.trigger('copyRow', this.rows[j + 1])\n })\n holder.appendChild(button)\n return button\n }\n\n _createMoveUpButton (i, holder) {\n const button = this.getButton('', 'moveup', 'button_move_up_title')\n button.classList.add('moveup', 'json-editor-btntype-move')\n button.setAttribute('data-i', i)\n button.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n\n const j = e.currentTarget.getAttribute('data-i') * 1\n const value = this.getValue()\n\n value.splice(j - 1, 0, value.splice(j, 1)[0])\n\n this.setValue(value)\n this.onChange(true)\n this.jsoneditor.trigger('moveRow', this.rows[j - 1])\n })\n holder.appendChild(button)\n return button\n }\n\n _createMoveDownButton (i, holder) {\n const button = this.getButton('', 'movedown', 'button_move_down_title')\n button.classList.add('movedown', 'json-editor-btntype-move')\n button.setAttribute('data-i', i)\n button.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n\n const j = e.currentTarget.getAttribute('data-i') * 1\n const value = this.getValue()\n\n value.splice(j + 1, 0, value.splice(j, 1)[0])\n\n this.setValue(value)\n this.onChange(true)\n this.jsoneditor.trigger('moveRow', this.rows[j + 1])\n })\n holder.appendChild(button)\n return button\n }\n\n addControls () {\n this.collapsed = false\n this.toggle_button = this._createToggleButton()\n if (this.title_controls) {\n this.title.insertBefore(this.toggle_button, this.title.childNodes[0])\n this.toggle_button.addEventListener('click', e => {\n e.preventDefault()\n e.stopPropagation()\n\n this.setVisibility(this.panel, this.collapsed)\n if (this.collapsed) {\n this.collapsed = false\n this.setButtonText(e.currentTarget, '', 'collapse', 'button_collapse')\n } else {\n this.collapsed = true\n this.setButtonText(e.currentTarget, '', 'expand', 'button_expand')\n }\n })\n\n /* If it should start collapsed */\n if (this.options.collapsed) {\n trigger(this.toggle_button, 'click')\n }\n\n /* Collapse button disabled */\n if (this.schema.options && typeof this.schema.options.disable_collapse !== 'undefined') {\n if (this.schema.options.disable_collapse) this.toggle_button.style.display = 'none'\n } else if (this.jsoneditor.options.disable_collapse) {\n this.toggle_button.style.display = 'none'\n }\n }\n\n /* Add \"new row\" and \"delete last\" buttons below editor */\n this.add_row_button = this._createAddRowButton()\n this.delete_last_row_button = this._createDeleteLastRowButton()\n this.remove_all_rows_button = this._createRemoveAllRowsButton()\n }\n\n _createToggleButton () {\n const button = this.getButton('', 'collapse', 'button_collapse')\n button.classList.add('json-editor-btntype-toggle')\n return button\n }\n\n _createAddRowButton () {\n const button = this.getButton(this.getItemTitle(), 'add', 'button_add_row_title', [this.getItemTitle()])\n button.classList.add('json-editor-btntype-add')\n button.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n const editor = this.addRow()\n this.refreshValue()\n this.refreshRowButtons()\n this.onChange(true)\n this.jsoneditor.trigger('addRow', editor)\n })\n this.controls.appendChild(button)\n return button\n }\n\n _createDeleteLastRowButton () {\n const button = this.getButton('button_delete_last', 'subtract', 'button_delete_last_title', [this.getItemTitle()])\n button.classList.add('json-editor-btntype-deletelast')\n button.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (!this.askConfirmation()) {\n return false\n }\n\n const rows = this.getValue()\n const editorValue = rows.pop()\n this.setValue(rows)\n this.onChange(true)\n this.jsoneditor.trigger('deleteRow', editorValue)\n })\n this.controls.appendChild(button)\n return button\n }\n\n _createRemoveAllRowsButton () {\n const button = this.getButton('button_delete_all', 'delete', 'button_delete_all_title')\n button.classList.add('json-editor-btntype-deleteall')\n button.addEventListener('click', (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (!this.askConfirmation()) {\n return false\n }\n\n const values = this.getValue()\n\n this.setValue([])\n this.onChange(true)\n this.jsoneditor.trigger('deleteAllRows', values)\n })\n this.controls.appendChild(button)\n return button\n }\n}\n","import { AbstractEditor } from '../editor.js'\nimport { extend } from '../utilities.js'\n\nexport class UploadEditor extends AbstractEditor {\n getNumColumns () {\n return 4\n }\n\n build () {\n if (!this.options.compact) this.header = this.label = this.theme.getFormInputLabel(this.getTitle(), this.isRequired())\n if (this.schema.description) this.description = this.theme.getFormInputDescription(this.translateProperty(this.schema.description))\n if (this.options.infoText) this.infoButton = this.theme.getInfoButton(this.translateProperty(this.options.infoText))\n if (this.options.hidden) this.container.style.display = 'none'\n\n /* Editor options */\n this.options = this.expandCallbacks('upload', extend({}, {\n title: 'Browse',\n icon: '',\n auto_upload: false, /* Trigger file upload button automatically */\n hide_input: false, /* Hide the Browse button and name display (Only works if 'enable_drag_drop' is true) */\n enable_drag_drop: false, /* Enable Drag&Drop uploading */\n drop_zone_text: 'Drag & Drop file here', /* Text displayed in dropzone box */\n drop_zone_top: false, /* Position of dropzone. true=before button input, false=after button input */\n alt_drop_zone: '', /* Alternate DropZone DOM selector (Can be created inside another property) */\n mime_type: '', /* If set, restricts to mime type(s). Can be either a string or an array */\n max_upload_size: 0, /* Maximum file size allowed. 0 = no limit */\n upload_handler: (jseditor, type, file, cbs) => {\n /* Default dummy test upload handler */\n window.alert(`No upload_handler defined for \"${jseditor.path}\". You must create your own handler to enable upload to server`)\n }\n }, this.defaults.options.upload || {}, this.options.upload || {}))\n\n this.options.mime_type = this.options.mime_type ? [].concat(this.options.mime_type) : []\n\n /* Input that holds the base64 string */\n this.input = this.theme.getFormInputField('hidden')\n this.container.appendChild(this.input)\n\n /* Don't show uploader if this is readonly */\n if (!this.schema.readOnly && !this.schema.readonly) {\n if (typeof this.options.upload_handler !== 'function') throw new Error('Upload handler required for upload editor')\n\n /* File uploader */\n this.uploader = this.theme.getFormInputField('file')\n this.uploader.style.display = 'none'\n if (this.options.mime_type.length) this.uploader.setAttribute('accept', this.options.mime_type)\n\n if (!(this.options.enable_drag_drop === true && this.options.hide_input === true)) {\n /* Pass click to this.uploader element */\n this.clickHandler = (e) => {\n this.uploader.dispatchEvent(new window.MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: false\n }))\n }\n\n /* Browse button */\n this.browseButton = this.getButton(this.options.title, this.options.icon, this.options.title)\n this.browseButton.addEventListener('click', this.clickHandler)\n\n /* Display field */\n this.fileDisplay = this.theme.getFormInputField('input')\n this.fileDisplay.setAttribute('readonly', true)\n this.fileDisplay.value = 'No file selected.'\n this.fileDisplay.addEventListener('dblclick', this.clickHandler)\n\n this.fileUploadGroup = this.theme.getInputGroup(this.fileDisplay, [this.browseButton])\n if (!this.fileUploadGroup) {\n /* Themes that doesn't support input grouping */\n this.fileUploadGroup = document.createElement('div')\n this.fileUploadGroup.appendChild(this.fileDisplay)\n this.fileUploadGroup.appendChild(this.browseButton)\n }\n }\n\n /* Drag&Drop upload enabled */\n if (this.options.enable_drag_drop === true) {\n /* Alternate DropZone defined */\n if (this.options.alt_drop_zone !== '') {\n this.altDropZone = document.querySelector(this.options.alt_drop_zone)\n if (this.altDropZone) this.dropZone = this.altDropZone\n else throw new Error(`Error: alt_drop_zone selector \"${this.options.alt_drop_zone}\" not found!`)\n } else this.dropZone = this.theme.getDropZone(this.options.drop_zone_text)\n\n if (this.dropZone) {\n this.dropZone.classList.add('upload-dropzone')\n this.dropZone.addEventListener('dblclick', this.clickHandler)\n }\n }\n\n /* Triggered after file have been selected */\n this.uploadHandler = (e) => {\n e.preventDefault()\n e.stopPropagation()\n const files = e.target.files || e.dataTransfer.files\n if (files && files.length) {\n if (this.options.max_upload_size !== 0 && files[0].size > this.options.max_upload_size) {\n this.theme.addInputError(this.uploader, `${this.translate('upload_max_size')} ${this.options.max_upload_size}`)\n } else if (this.options.mime_type.length !== 0 && !this.isValidMimeType(files[0].type, this.options.mime_type)) {\n this.theme.addInputError(this.uploader, `${this.translate('upload_wrong_file_format')} ${this.options.mime_type.toString()}`)\n } else {\n if (this.fileDisplay) this.fileDisplay.value = files[0].name\n let fr = new window.FileReader()\n fr.onload = (evt) => {\n this.preview_value = evt.target.result\n this.refreshPreview(files)\n this.onChange(true)\n fr = null\n }\n fr.readAsDataURL(files[0])\n }\n }\n }\n\n this.uploader.addEventListener('change', this.uploadHandler)\n\n /* Drag&Drop Event Handler */\n this.dragHandler = e => {\n const files = e.dataTransfer.items || e.dataTransfer.files\n const validType = files && files.length && (this.options.mime_type.length === 0 || this.isValidMimeType(files[0].type, this.options.mime_type))\n const validZone = e.currentTarget.classList && e.currentTarget.classList.contains('upload-dropzone') && validType\n switch ((e.currentTarget === window ? 'w_' : 'e_') + e.type) {\n case 'w_drop':\n case 'w_dragover':\n /* prevent default browser action if dropped outside dropzone */\n if (!validZone) e.dataTransfer.dropEffect = 'none'\n break\n case 'e_dragenter': {\n if (validZone) {\n this.dropZone.classList.add('valid-dropzone')\n e.dataTransfer.dropEffect = 'copy'\n } else this.dropZone.classList.add('invalid-dropzone')\n break\n }\n case 'e_dragover': {\n if (validZone) e.dataTransfer.dropEffect = 'copy'\n break\n }\n case 'e_dragleave':\n this.dropZone.classList.remove('valid-dropzone', 'invalid-dropzone')\n break\n case 'e_drop': {\n this.dropZone.classList.remove('valid-dropzone', 'invalid-dropzone')\n if (validZone) this.uploadHandler(e)\n break\n }\n }\n if (!validZone) e.preventDefault()\n }\n\n /* Set Drag'n'Drop handlers */\n if (this.options.enable_drag_drop === true) {\n ['dragover', 'drop'].forEach((ev) => {\n window.addEventListener(ev, this.dragHandler, true)\n });\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((ev) => {\n this.dropZone.addEventListener(ev, this.dragHandler, true)\n })\n }\n }\n\n this.preview = document.createElement('div')\n\n this.control = this.input.controlgroup = this.theme.getFormControl(this.label, this.uploader || this.input, this.description, this.infoButton)\n if (this.uploader) this.uploader.controlgroup = this.control\n const inputNode = this.uploader || this.input\n const elements = document.createElement('div')\n\n if (this.dropZone && !this.altDropZone && this.options.drop_zone_top === true) elements.appendChild(this.dropZone)\n if (this.fileUploadGroup) elements.appendChild(this.fileUploadGroup)\n if (this.dropZone && !this.altDropZone && this.options.drop_zone_top !== true) elements.appendChild(this.dropZone)\n elements.appendChild(this.preview)\n inputNode.parentNode.insertBefore(elements, inputNode.nextSibling)\n\n this.container.appendChild(this.control)\n\n /* Any special formatting that needs to happen after the input is added to the dom */\n window.requestAnimationFrame(() => {\n this.afterInputReady()\n })\n }\n\n afterInputReady () {\n if (this.value) {\n const img = document.createElement('img')\n img.style.maxWidth = '100%'\n img.style.maxHeight = '100px'\n img.onload = (event) => {\n this.preview.appendChild(img)\n }\n img.onerror = error => {\n // eslint-disable-next-line no-console\n console.error('upload error', error, error.currentTarget)\n }\n img.src = this.container.querySelector('a').href\n }\n this.theme.afterInputReady(this.input)\n }\n\n refreshPreview (files) {\n if (this.last_preview === this.preview_value) return\n this.last_preview = this.preview_value\n\n this.preview.innerHTML = ''\n\n if (!this.preview_value) return\n\n const file = files[0]\n\n /* mime type extracted from file data. More exact than the one in the file object */\n const mime = this.preview_value.match(/^data:([^;,]+)[;,]/)\n file.mimeType = mime ? mime[1] : 'unknown'\n\n if (file.size > 0) {\n /* Format bytes as KB/MB etc. with 2 decimals */\n const i = Math.floor(Math.log(file.size) / Math.log(1024))\n file.formattedSize = `${parseFloat((file.size / (1024 ** i)).toFixed(2))} ${['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'][i]}`\n } else file.formattedSize = '0 Bytes'\n\n const uploadButton = this.getButton('button_upload', 'upload', 'button_upload')\n uploadButton.addEventListener('click', (event) => {\n event.preventDefault()\n\n uploadButton.setAttribute('disabled', 'disabled')\n this.theme.removeInputError(this.uploader)\n\n if (this.theme.getProgressBar) {\n this.progressBar = this.theme.getProgressBar()\n this.preview.appendChild(this.progressBar)\n }\n\n this.options.upload_handler(this.path, file, {\n success: (url) => {\n this.setValue(url)\n\n if (this.parent) this.parent.onChildEditorChange(this)\n else this.jsoneditor.onChange()\n\n if (this.progressBar) this.preview.removeChild(this.progressBar)\n uploadButton.removeAttribute('disabled')\n },\n failure: (error) => {\n this.theme.addInputError(this.uploader, error)\n if (this.progressBar) this.preview.removeChild(this.progressBar)\n uploadButton.removeAttribute('disabled')\n },\n updateProgress: (progress) => {\n if (this.progressBar) {\n if (progress) this.theme.updateProgressBar(this.progressBar, progress)\n else this.theme.updateProgressBarUnknown(this.progressBar)\n }\n }\n })\n })\n\n this.preview.appendChild(this.theme.getUploadPreview(file, uploadButton, this.preview_value))\n\n if (this.options.auto_upload) {\n uploadButton.dispatchEvent(new window.MouseEvent('click'))\n uploadButton.parentNode.removeChild(uploadButton)\n }\n }\n\n enable () {\n if (!this.always_disabled) {\n if (this.uploader) this.uploader.disabled = false\n super.enable()\n }\n }\n\n disable (alwaysDisabled) {\n if (alwaysDisabled) this.always_disabled = true\n if (this.uploader) this.uploader.disabled = true\n super.disable()\n }\n\n setValue (val) {\n if (this.value !== val) {\n this.value = val\n this.input.value = this.value\n this.onChange()\n }\n }\n\n destroy () {\n /* Remove Drag'n'Drop handlers */\n if (this.options.enable_drag_drop === true) {\n ['dragover', 'drop'].forEach((ev) => {\n window.removeEventListener(ev, this.dragHandler, true)\n });\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((ev) => {\n this.dropZone.removeEventListener(ev, this.dragHandler, true)\n })\n this.dropZone.removeEventListener('dblclick', this.clickHandler)\n if (this.dropZone && this.dropZone.parentNode) this.dropZone.parentNode.removeChild(this.dropZone)\n }\n\n if (this.uploader && this.uploader.parentNode) {\n this.uploader.removeEventListener('change', this.uploadHandler)\n this.uploader.parentNode.removeChild(this.uploader)\n }\n if (this.browseButton && this.browseButton.parentNode) {\n this.browseButton.removeEventListener('click', this.clickHandler)\n this.browseButton.parentNode.removeChild(this.browseButton)\n }\n if (this.fileDisplay && this.fileDisplay.parentNode) {\n this.fileDisplay.removeEventListener('dblclick', this.clickHandler)\n this.fileDisplay.parentNode.removeChild(this.fileDisplay)\n }\n if (this.fileUploadGroup && this.fileUploadGroup.parentNode) this.fileUploadGroup.parentNode.removeChild(this.fileUploadGroup)\n if (this.preview && this.preview.parentNode) this.preview.parentNode.removeChild(this.preview)\n if (this.header && this.header.parentNode) this.header.parentNode.removeChild(this.header)\n if (this.input && this.input.parentNode) this.input.parentNode.removeChild(this.input)\n\n super.destroy()\n }\n\n isValidMimeType (mimeType, mimeTypesList) {\n return mimeTypesList.reduce((a, v) => a || new RegExp(v.replace(/\\*/g, '.*'), 'gi').test(mimeType), false)\n }\n}\n","import { generateUUID } from '../utilities.js'\nimport { StringEditor } from './string.js'\n\nexport class UuidEditor extends StringEditor {\n preBuild () {\n super.preBuild()\n\n /* Use Schema \"default\" for setting autogenerated uuid */\n this.schema.default = this.uuid = this.getUuid()\n\n /* Set cleave options if no existing options is present */\n if (!this.schema.options) this.schema.options = {}\n if (!this.schema.options.cleave) {\n this.schema.options.cleave = {\n delimiters: ['-'],\n blocks: [8, 4, 4, 4, 12]\n }\n }\n }\n\n build () {\n super.build()\n /* Set field to readonly */\n this.disable(true)\n this.input.setAttribute('readonly', 'true')\n }\n\n sanitize (value) {\n if (!this.testUuid(value)) value = this.uuid\n return value\n }\n\n setValue (value, initial, fromTemplate) {\n if (!this.testUuid(value)) value = this.uuid\n this.uuid = value\n super.setValue(value, initial, fromTemplate)\n }\n\n getUuid () {\n return generateUUID()\n }\n\n testUuid (value) {\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))\n }\n}\n","\nconst defaultMapping = { collapse: '', expand: '', delete: '', edit: '', add: '', cancel: '', save: '', moveup: '', movedown: '' }\n\nexport class AbstractIconLib {\n constructor (iconPrefix = '', mapping = defaultMapping) {\n this.mapping = mapping\n this.icon_prefix = iconPrefix\n }\n\n getIconClass (key) {\n return this.mapping[key] ? this.icon_prefix + this.mapping[key] : this.icon_prefix + key\n }\n\n getIcon (key) {\n const iconclass = this.getIconClass(key)\n\n if (!iconclass) return null\n\n const i = document.createElement('i')\n i.classList.add(...iconclass.split(' '))\n\n return i\n }\n}\n","import { AbstractIconLib } from '../iconlib.js'\n\nconst iconPrefix = 'glyphicon glyphicon-'\nconst mapping = {\n collapse: 'chevron-down',\n expand: 'chevron-right',\n delete: 'trash',\n edit: 'pencil',\n add: 'plus',\n subtract: 'minus',\n cancel: 'floppy-remove',\n save: 'floppy-saved',\n moveup: 'arrow-up',\n moveright: 'arrow-right',\n movedown: 'arrow-down',\n moveleft: 'arrow-left',\n copy: 'copy',\n clear: 'remove-circle',\n time: 'time',\n calendar: 'calendar',\n edit_properties: 'list'\n}\n\nexport class bootstrap3Iconlib extends AbstractIconLib {\n constructor () {\n super(iconPrefix, mapping)\n }\n}\n","import { AbstractIconLib } from '../iconlib.js'\n\nconst iconPrefix = 'icon-'\nconst mapping = {\n collapse: 'chevron-down',\n expand: 'chevron-right',\n delete: 'trash',\n edit: 'pencil',\n add: 'plus',\n subtract: 'minus',\n cancel: 'ban-circle',\n save: 'save',\n moveup: 'arrow-up',\n moveright: 'arrow-right',\n movedown: 'arrow-down',\n moveleft: 'arrow-left',\n copy: 'copy',\n clear: 'remove-circle',\n time: 'time',\n calendar: 'calendar',\n edit_properties: 'list'\n}\n\nexport class fontawesome3Iconlib extends AbstractIconLib {\n constructor () {\n super(iconPrefix, mapping)\n }\n}\n","import { AbstractIconLib } from '../iconlib.js'\n\nconst iconPrefix = 'fa fa-'\nconst mapping = {\n collapse: 'caret-square-o-down',\n expand: 'caret-square-o-right',\n delete: 'times',\n edit: 'pencil',\n add: 'plus',\n subtract: 'minus',\n cancel: 'ban',\n save: 'save',\n moveup: 'arrow-up',\n moveright: 'arrow-right',\n movedown: 'arrow-down',\n moveleft: 'arrow-left',\n copy: 'files-o',\n clear: 'times-circle-o',\n time: 'clock-o',\n calendar: 'calendar',\n edit_properties: 'list'\n}\n\nexport class fontawesome4Iconlib extends AbstractIconLib {\n constructor () {\n super(iconPrefix, mapping)\n }\n}\n","import { AbstractIconLib } from '../iconlib.js'\n\nconst iconPrefix = 'fas fa-'\nconst mapping = {\n collapse: 'caret-down',\n expand: 'caret-right',\n delete: 'trash',\n edit: 'pen',\n add: 'plus',\n subtract: 'minus',\n cancel: 'ban',\n save: 'save',\n moveup: 'arrow-up',\n moveright: 'arrow-right',\n movedown: 'arrow-down',\n moveleft: 'arrow-left',\n copy: 'copy',\n clear: 'times-circle',\n time: 'clock',\n calendar: 'calendar',\n edit_properties: 'list'\n}\n\nexport class fontawesome5Iconlib extends AbstractIconLib {\n constructor () {\n super(iconPrefix, mapping)\n }\n}\n","// import { bootstrap2Iconlib } from './bootstrap2.js'\nimport { bootstrap3Iconlib } from './bootstrap3.js'\nimport { fontawesome3Iconlib } from './fontawesome3.js'\nimport { fontawesome4Iconlib } from './fontawesome4.js'\nimport { fontawesome5Iconlib } from './fontawesome5.js'\n// import { foundation2Iconlib } from './foundation2.js'\n// import { foundation3Iconlib } from './foundation3.js'\nimport { jqueryuiIconlib } from './jqueryui.js'\n// import { materialiconsIconlib } from './materialicons.js'\nimport { openiconicIconlib } from './openiconic.js'\nimport { spectreIconlib } from './spectre.js'\n\nexport const iconlibs = {\n // bootstrap2: bootstrap2Iconlib,\n bootstrap3: bootstrap3Iconlib,\n fontawesome3: fontawesome3Iconlib,\n fontawesome4: fontawesome4Iconlib,\n fontawesome5: fontawesome5Iconlib,\n // foundation2: foundation2Iconlib,\n // foundation3: foundation3Iconlib,\n jqueryui: jqueryuiIconlib,\n // materialicons: materialiconsIconlib,\n openiconic: openiconicIconlib,\n spectre: spectreIconlib\n}\n","import { AbstractIconLib } from '../iconlib.js'\n\nconst iconPrefix = 'ui-icon ui-icon-'\nconst mapping = {\n collapse: 'triangle-1-s',\n expand: 'triangle-1-e',\n delete: 'trash',\n edit: 'pencil',\n add: 'plusthick',\n subtract: 'minusthick',\n cancel: 'closethick',\n save: 'disk',\n moveup: 'arrowthick-1-n',\n moveright: 'arrowthick-1-e',\n movedown: 'arrowthick-1-s',\n moveleft: 'arrowthick-1-w',\n copy: 'copy',\n clear: 'circle-close',\n time: 'time',\n calendar: 'calendar',\n edit_properties: 'note'\n}\n\nexport class jqueryuiIconlib extends AbstractIconLib {\n constructor () {\n super(iconPrefix, mapping)\n }\n}\n","import { AbstractIconLib } from '../iconlib.js'\n\nconst iconPrefix = 'oi oi-'\nconst mapping = {\n collapse: 'collapse-down',\n expand: 'expand-right',\n delete: 'trash',\n edit: 'pencil',\n add: 'plus',\n subtract: 'minus',\n cancel: 'ban',\n save: 'file',\n moveup: 'arrow-thick-top',\n moveright: 'arrow-thick-right',\n movedown: 'arrow-thick-bottom',\n moveleft: 'arrow-thick-left',\n copy: 'clipboard',\n clear: 'circle-x',\n time: 'clock',\n calendar: 'calendar',\n edit_properties: 'list'\n}\n\nexport class openiconicIconlib extends AbstractIconLib {\n constructor () {\n super(iconPrefix, mapping)\n }\n}\n","import { AbstractIconLib } from '../iconlib.js'\n\nconst iconPrefix = 'icon icon-'\nconst mapping = {\n collapse: 'arrow-down',\n expand: 'arrow-right',\n delete: 'delete',\n edit: 'edit',\n add: 'plus',\n subtract: 'minus',\n cancel: 'cross',\n save: 'check',\n moveup: 'upward',\n moveright: 'forward',\n movedown: 'downward',\n moveleft: 'back',\n copy: 'copy',\n clear: 'close',\n time: 'time',\n calendar: 'bookmark',\n edit_properties: 'menu'\n}\n\nexport class spectreIconlib extends AbstractIconLib {\n constructor () {\n super(iconPrefix, mapping)\n }\n}\n","/* Use \"multiple\" as a fall back for everything */\nconst defaultResolver = schema => typeof schema.type !== 'string' && 'multiple'\n\n/* If the type is not set but properties are defined, we can infer the type is actually object */\nconst object = schema => !schema.type && schema.properties && 'object'\n\n/* If the type is set and it's a basic type, use the primitive editor */\nconst primitive = schema => typeof schema.type === 'string' && schema.type\n\n/* Use specialized editor for signatures */\nconst signature = schema => schema.type === 'string' && schema.format === 'signature' && 'signature'\n\n/* Use the select editor for all boolean values */\nconst boolean = schema => {\n if (schema.type === 'boolean') {\n /* If explicitly set to 'checkbox', use that */\n if (schema.format === 'checkbox' || (schema.options && schema.options.checkbox)) return 'checkbox'\n /* Otherwise, default to select menu */\n if (schema.format === 'select2') return 'select2'\n if (schema.format === 'selectize') return 'selectize'\n if (schema.format === 'choices') return 'choices'\n return 'select'\n }\n}\n\n/* Use the multiple editor for schemas where the `type` is set to \"any\" */\nconst any = schema => schema.type === 'any' && 'multiple'\n\n/* Editor for base64 encoded files */\nconst base64 = schema => schema.type === 'string' && schema.media && schema.media.binaryEncoding === 'base64' && 'base64'\n\n/* Editor for uploading files */\nconst upload = schema => schema.type === 'string' && schema.format === 'url' && window.FileReader && schema.options && schema.options.upload === Object(schema.options.upload) && 'upload'\n\n/* Use the table editor for arrays with the format set to `table` */\nconst table = schema => schema.type === 'array' && schema.format === 'table' && 'table'\n\n/* Use the `select` editor for dynamic enumSource enums */\nconst enumSource = schema => {\n if (schema.enumSource) {\n if (schema.format === 'radio') return 'radio'\n if (schema.format === 'select2') return 'select2'\n if (schema.format === 'selectize') return 'selectize'\n if (schema.format === 'choices') return 'choices'\n return 'select'\n }\n}\n\n/* Use the `enum` or `select` editors for schemas with enumerated properties */\nconst enumeratedProperties = schema => {\n if (schema.enum) {\n if (schema.type === 'array' || schema.type === 'object') return 'enum'\n if (schema.type === 'number' || schema.type === 'integer' || schema.type === 'string') {\n if (schema.format === 'radio') return 'radio'\n if (schema.format === 'select2') return 'select2'\n if (schema.format === 'selectize') return 'selectize'\n if (schema.format === 'choices') return 'choices'\n return 'select'\n }\n }\n}\n\n/* Specialized editors for arrays of strings */\nconst arraysOfStrings = schema => {\n if (schema.type === 'array' && schema.items && !(Array.isArray(schema.items)) && ['string', 'number', 'integer'].includes(schema.items.type)) {\n if (schema.format === 'choices') return 'arrayChoices'\n if (schema.uniqueItems) {\n /* if 'selectize' enabled it is expected to be selectized control */\n if (schema.format === 'selectize') return 'arraySelectize'\n if (schema.format === 'select2') return 'arraySelect2'\n if (schema.items.enum) return 'multiselect' /* otherwise it is select */\n }\n }\n}\n\n/* Use the multiple editor for schemas with `oneOf` or `anyOf` set */\nconst oneOf = schema => (schema.oneOf || schema.anyOf) && 'multiple'\n\n/* Specialized editor for date, time and datetime-local formats */\nconst date = schema => ['string', 'integer'].includes(schema.type) && ['date', 'time', 'datetime-local'].includes(schema.format) && 'datetime'\n\n/* Use a specialized editor for starratings */\nconst starratings = schema => ['string', 'integer'].includes(schema.type) && ['starrating', 'rating'].includes(schema.format) && 'starrating'\n\n/* Hyper-link describeBy resolver */\nconst describeBy = schema => {\n if (schema.links) {\n for (let i = 0; i < schema.links.length; i++) {\n if (schema.links[i].rel && schema.links[i].rel.toLowerCase() === 'describedby') return 'describedBy'\n }\n }\n}\n\n/* Use the stepper editor for schemas with type `number` or `integer` and format `stepper` */\nconst stepper = schema => {\n if ((schema.type === 'integer' || schema.type === 'number') && schema.format === 'stepper') {\n return 'stepper'\n }\n}\n\n/* Enable custom editor type */\nconst button = schema => schema.format === 'button' && 'button'\n\nconst info = schema => schema.format === 'info' && 'info'\n\nconst uuid = schema => schema.type === 'string' && schema.format === 'uuid' && 'uuid'\n\nconst autoComplete = schema => schema.type === 'string' && schema.format === 'autocomplete' && 'autocomplete'\n\nconst jodit = schema => schema.type === 'string' && schema.format === 'jodit' && 'jodit'\n\nconst markdown = schema => schema.type === 'string' && schema.format === 'markdown' && 'simplemde'\n\nconst xhtml = schema => schema.type === 'string' && ['xhtml', 'bbcode'].includes(schema.format) && 'sceditor'\n\n/* Use the ace editor for schemas with format equals any of ace editor modes */\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']\nconst ace = schema => schema.type === 'string' && aceModes.includes(schema.format) && 'ace'\n\nconst ip = schema => schema.type === 'string' && ['ip', 'ipv4', 'ipv6', 'hostname'].includes(schema.format) && 'ip'\n\nconst colorPicker = schema => schema.type === 'string' && schema.format === 'color' && 'colorpicker'\n\n/* Export resolvers in order of discovery, first to last */\nexport const resolvers = [colorPicker, ip, ace, xhtml, markdown, jodit, autoComplete, uuid, info, button, stepper, describeBy, starratings, date, oneOf, arraysOfStrings, enumeratedProperties, enumSource, table, upload, base64, any, boolean, signature, primitive, object, defaultResolver]\n","import { extend, hasOwnProperty } from './utilities.js'\n\n/**\n * Handles loading Schema and tracking references.\n */\nexport class SchemaLoader {\n constructor (options) {\n /**\n * @prop {object}\n * Options of the schema. @see readme.\n */\n this.options = options || {}\n\n /**\n * @prop {object}\n * The orginial schema to load\n */\n this.schema = {}\n\n /**\n * @prop {object}\n * Storage of External ref. Exemple :\n * refs = {\n * \"fully/realized/path/to/schema.json\": { ... }\n * \"mylocalschema.json\": { ... }\n * }\n */\n this.refs = this.options.refs || {}\n\n /**\n * @prop {object}\n * Mapping between the schema and ref. Exemple:\n * refs_with_info = {\n * \"#/counter/1\": \"fully/realized/path/to/schema.json\"\n * \"#/counter/2\": \"mylocalschema.json\"\n * }\n */\n this.refs_with_info = {}\n\n /**\n * @prop {string}\n * String to eewrite external ref with.\n */\n this.refs_prefix = '#/counter/'\n\n /**\n * @prop {int}\n * Counter of ref\n */\n this.refs_counter = 1\n\n this._subSchema1 = {\n /* Version 3 `type` */\n type (schema) {\n if (typeof schema.type === 'object') {\n schema.type = this._expandSubSchema(schema.type)\n }\n },\n /* Version 3 `disallow` */\n disallow (schema) {\n if (typeof schema.disallow === 'object') {\n schema.disallow = this._expandSubSchema(schema.disallow)\n }\n },\n /* Version 4 `anyOf` */\n anyOf (schema) {\n Object.entries(schema.anyOf).forEach(([key, value]) => {\n schema.anyOf[key] = this.expandSchema(value)\n })\n },\n /* Version 4 `dependencies` (schema dependencies) */\n dependencies (schema) {\n Object.entries(schema.dependencies).forEach(([key, value]) => {\n if (typeof value === 'object' && !(Array.isArray(value))) {\n schema.dependencies[key] = this.expandSchema(value)\n }\n })\n },\n /* Version 4 `not` */\n not (schema) {\n schema.not = this.expandSchema(schema.not)\n }\n }\n\n this._subSchema2 = {\n /* allOf schemas should be merged into the parent */\n allOf (schema, extended) {\n let _extended = extend({}, extended)\n Object.entries(schema.allOf).forEach(([key, value]) => {\n schema.allOf[key] = this.expandRefs(value, true)\n _extended = this.extendSchemas(_extended, this.expandSchema(value))\n })\n delete _extended.allOf\n return _extended\n },\n /* extends schemas should be merged into parent */\n extends (schema, extended) {\n let _extended\n /* If extends is a schema */\n if (!(Array.isArray(schema.extends))) {\n _extended = this.extendSchemas(extended, this.expandSchema(schema.extends))\n } else {\n /* If extends is an array of schemas */\n _extended = schema.extends.reduce((e, s, i) => {\n return this.extendSchemas(e, this.expandSchema(s))\n }, extended)\n }\n delete _extended.extends\n return _extended\n },\n /* parent should be merged into oneOf schemas */\n oneOf (schema, extended) {\n const tmp = extend({}, extended)\n delete tmp.oneOf\n schema.oneOf.reduce((e, s, i) => {\n e.oneOf[i] = this.extendSchemas(this.expandSchema(s), tmp)\n return e\n }, extended)\n return extended\n }\n }\n }\n\n /**\n * Fully loads and expands JSON schema for a provided schema object and URL.\n *\n * The callback receives a expanded JSON Schema object with references\n * replaced with loaded schemas.\n *\n * @param {object} schema - A JSON Schema.\n * @param {string} fetchUrl - Base path from which to store the definitions.\n * Typically the URI of the schema.\n * @param {*} location - The base URL from which to load relative paths.\n * @returns {object} A JSON Schema with references expanded.\n */\n async load (schema, fetchUrl, location) {\n this.schema = schema\n await this._asyncloadExternalRefs(schema, fetchUrl, this._getFileBase(location), true)\n return this.expandRefs(schema)\n }\n\n /**\n * Recursively expands loaded references in a provided schema.\n *\n * @param {object} schema - A JSON Schema with references already loaded.\n * @param {boolean} recurseAllOf - Set true to recurse allOf properties.\n * @returns {object} A JSON Schema with references expanded.\n */\n expandRefs (schema, recurseAllOf) {\n const _schema = extend({}, schema)\n\n if (!_schema.$ref) return _schema\n // This split the ref to get the Json point if it exists\n // exemple #/counter/1#/definition/address +\n // [1] -> /counter/1\n // [2] -> /definition/address\n const refWithPointerSplit = _schema.$ref.split('#')\n // If local ref\n if (refWithPointerSplit.length === 2 && !this.refs_with_info[_schema.$ref]) {\n const sub = this.expandRecursivePointer(this.schema, refWithPointerSplit[1])\n return this.extendSchemas(_schema, this.expandSchema(sub))\n }\n const refObj = (refWithPointerSplit.length > 2)\n ? this.refs_with_info['#' + refWithPointerSplit[1]]\n : this.refs_with_info[_schema.$ref]\n delete _schema.$ref\n const fetchUrl = refObj.$ref.startsWith('#')\n ? refObj.fetchUrl\n : ''\n const ref = this._getRef(fetchUrl, refObj)\n\n if (!this.refs[ref]) { /* if reference not found */\n // eslint-disable-next-line no-console\n console.warn(`reference:'${ref}' not found!`)\n } else if (recurseAllOf && hasOwnProperty(this.refs[ref], 'allOf')) {\n const allOf = this.refs[ref].allOf\n Object.keys(allOf).forEach(key => {\n allOf[key] = this.expandRefs(allOf[key], true)\n })\n }\n if (refWithPointerSplit.length > 2) {\n return this.extendSchemas(_schema, this.expandSchema(this.expandRecursivePointer(this.refs[ref], refWithPointerSplit[2])))\n } else {\n return this.extendSchemas(_schema, this.expandSchema(this.refs[ref]))\n }\n }\n\n /**\n * Returns a subschema based on a JSON Pointer path.\n * @param {object} schema - Schema too into\n * @param {string} pointer - path to look for\n * @param {object} original_schema - the Original schema\n * @returns the subschema pointed to by the path\n */\n expandRecursivePointer (schema, pointer) {\n let subschema = schema\n pointer.split('/').slice(1).forEach(i => {\n if (subschema[i]) {\n subschema = subschema[i]\n }\n })\n // If the result is a pointer, let's go for another turn\n if (subschema.$refs && subschema.$refs.startsWith('#')) {\n return this.expandRecursivePointer(schema, subschema.$refs)\n }\n return subschema\n }\n\n /**\n * Expands a JSON schema and its references.\n *\n * @param {object} schema - A JSON Schema with references already loaded.\n * @returns {object} A JSON Schema with references expanded.\n */\n expandSchema (schema) {\n Object.entries(this._subSchema1).forEach(([key, func]) => {\n if (schema[key]) {\n func.call(this, schema)\n }\n })\n\n let extended = extend({}, schema)\n\n Object.entries(this._subSchema2).forEach(([key, func]) => {\n if (schema[key]) {\n extended = func.call(this, schema, extended)\n }\n })\n\n return this.expandRefs(extended)\n }\n\n _getRef (fetchUrl, refObj) {\n const ref = fetchUrl + refObj\n\n return this.refs[ref] ? ref : fetchUrl + decodeURIComponent(refObj.$ref)\n }\n\n _expandSubSchema (subschema) {\n /* Array of types */\n if (Array.isArray(subschema)) return subschema.map(m => typeof m === 'object' ? this.expandSchema(m) : m)\n\n /* Schema */\n return this.expandSchema(subschema)\n }\n\n /**\n * Rewrite the passed schema's JSON pointers to prepend with the current reference's path, so that it will be converted to a reference \"counter\".\n *\n * @example\n * In file \"../otherreferencedfile.json\", referenced from \"schema.json\":\n *\n * \"$ref\": \"#/definitions/myschema\" => \"$ref\": \"../path/to/my/referenced/schemafile.json#/definitions/myschema\"\n * ...which will then be parsed later in loadExternalReferences() to \"$ref\": \"#/counter/1#/definitions/myschema\"\n *\n * @param {object} schema - A JSON Schema with the definitions key present.\n * @param {string} path - Base path from which to store the definitions in refs. (exemple ../path/to/my/referenced/schemafile.json)\n * Typically the URI of the schema.\n */\n _manageRecursivePointer (schema, path) {\n Object.keys(schema).forEach(i => {\n if (schema[i].$ref && schema[i].$ref.indexOf('#') === 0) {\n schema[i].$ref = path + schema[i].$ref\n }\n })\n }\n\n /**\n * Recursively parse a (sub)schema to populate loader reference info.\n *\n * @param {object} schema - A JSON Schema\n * @param {string} fetchUrl - Base path from which to store the definitions.\n * @param {boolean} firstIteration - Is it the first time we load this function? Help making difference between external ref vs internal pointer\n * @returns {array} Refs in the format of uri => true if external.\n */\n _getExternalRefs (schema, fetchUrl, firstIteration = false) {\n if (!firstIteration) this._manageRecursivePointer(schema, fetchUrl)\n const refs = {}\n const mergeRefs = newrefs => Object.keys(newrefs).forEach(i => { refs[i] = true })\n if (schema.$ref && typeof schema.$ref !== 'object' && !(schema.$ref.indexOf('#') === 0 && firstIteration)) {\n let refBase = schema.$ref\n let pointer = ''\n // Strip any JSON pointers found for external refs.\n if (refBase.indexOf('#') > 0) refBase = refBase.substr(0, refBase.indexOf('#'))\n if (refBase !== schema.$ref) pointer = schema.$ref.substr(schema.$ref.indexOf('#'))\n // We use a fragment idenfier to track json pointer in top of our pointer\n const refCounter = this.refs_prefix + this.refs_counter++\n const refPointer = refCounter + pointer\n if (schema.$ref.substr(0, 1) !== '#' && !this.refs[schema.$ref]) {\n refs[refBase] = true\n }\n this.refs_with_info[refCounter] = { fetchUrl, $ref: refBase }\n schema.$ref = refPointer\n }\n\n Object.values(schema).forEach(value => {\n if (!value || typeof value !== 'object') return\n if (Array.isArray(value)) {\n Object.values(value).forEach(e => {\n if (e && typeof e === 'object') {\n mergeRefs(this._getExternalRefs(e, fetchUrl, firstIteration))\n }\n })\n } else {\n // Merge Ref if it's not a Pointer\n if (!value.$ref || !(typeof value.$ref === 'string' && value.$ref.startsWith('#'))) {\n mergeRefs(this._getExternalRefs(value, fetchUrl, firstIteration))\n }\n }\n })\n\n if (schema.id && typeof schema.id === 'string' && schema.id.substr(0, 4) === 'urn:') {\n this.refs[schema.id] = schema\n } else if (schema.$id && typeof schema.$id === 'string' && schema.$id.substr(0, 4) === 'urn:') {\n this.refs[schema.$id] = schema\n }\n return refs\n }\n\n _getFileBase (location) {\n if (!location) return '/'\n\n const { ajaxBase } = this.options\n\n return typeof ajaxBase === 'undefined' ? this._getFileBaseFromFileLocation(location) : ajaxBase\n }\n\n _getFileBaseFromFileLocation (fileLocationString) {\n const pathItems = fileLocationString.split('/')\n pathItems.pop()\n return `${pathItems.join('/')}/`\n }\n\n _joinUrl (url, fileBase) {\n var fetchUrl = url\n\n if (url.substr(0, 7) !== 'http://' &&\n url.substr(0, 8) !== 'https://' &&\n url.substr(0, 5) !== 'blob:' &&\n url.substr(0, 5) !== 'data:' &&\n url.substr(0, 1) !== '#' &&\n url.substr(0, 1) !== '/'\n ) {\n fetchUrl = fileBase + url\n }\n\n // strip #fragment from URI, so json pointers resolve correctly #928\n if (fetchUrl.indexOf('#') > 0) fetchUrl = fetchUrl.substr(0, fetchUrl.indexOf('#'))\n\n return fetchUrl\n }\n\n _isUniformResourceName (uri) {\n return uri.substr(0, 4) === 'urn:'\n }\n\n /**\n * Loads external references via AJAX.\n *\n * Will fail if this.options.ajax is not set to true.\n *\n * @param {object} schema - JSON Schema with external references.\n * @param {string} fetchUrl - Base path from which to store the definitions.\n * Typically the URI of the schema.\n * @param {string} fileBase - The base URL from which to load relative paths.\n * Typically the URI of the schema minus filename, with trailing slash.\n * @param {boolean} firstIteration - Is it the first time we load this function? Help making difference between external ref vs internal pointer\n *\n * @return {boolean}\n * @throws Error\n */\n async _asyncloadExternalRefs (schema, fetchUrl, fileBase, firstIteration = false) {\n const refs = this._getExternalRefs(schema, fetchUrl, firstIteration)\n let waiting = 0\n // Loop into all schema references\n for (const uri of Object.keys(refs)) {\n if (typeof uri === 'undefined') continue\n if (this.refs[uri]) continue\n if (this._isUniformResourceName(uri)) {\n this.refs[uri] = 'loading'\n waiting++\n const urnResolver = this.options.urn_resolver\n let urn = uri\n if (typeof urnResolver !== 'function') {\n // eslint-disable-next-line no-console\n console.log(`No \"urn_resolver\" callback defined to resolve \"${urn}\"`)\n throw new Error(`Must set urn_resolver option to a callback to resolve ${urn}`)\n }\n // theoretically a URN can contain a JSON pointer\n if (urn.indexOf('#') > 0) urn = urn.substr(0, urn.indexOf('#'))\n let response\n try {\n let externalSchema\n response = await urnResolver(urn)\n try {\n externalSchema = JSON.parse(response)\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e)\n throw new Error(`Failed to parse external ref ${urn}`)\n }\n if (!(typeof externalSchema === 'boolean' || typeof externalSchema === 'object') || externalSchema === null || Array.isArray(externalSchema)) {\n throw new Error(`External ref does not contain a valid schema - ${urn}`)\n }\n\n this.refs[uri] = externalSchema\n\n await this._asyncloadExternalRefs(externalSchema, uri, fileBase)\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e)\n throw new Error(`Failed to parse external ref ${urn}`)\n }\n\n if (typeof response === 'boolean') {\n throw new Error(`External ref does not contain a valid schema - ${urn}`)\n }\n continue\n }\n if (!this.options.ajax) throw new Error(`Must set ajax option to true to load external ref ${uri}`)\n waiting++\n\n let url = this._joinUrl(uri, fileBase)\n\n let externalSchema\n if (this.options.ajax_cache_responses) {\n const schemaFromCache = this.cacheGet(url)\n if (schemaFromCache) {\n externalSchema = schemaFromCache\n }\n }\n\n if (!externalSchema) {\n const response = await new Promise(resolve => {\n const r = new XMLHttpRequest()\n if (this.options.ajaxCredentials) r.withCredentials = this.options.ajaxCredentials\n r.overrideMimeType('application/json')\n r.open('GET', url, true)\n r.onload = () => {\n resolve(r)\n }\n r.onerror = (e) => {\n resolve(undefined)\n }\n r.send()\n })\n if (typeof response === 'undefined') throw new Error(`Failed to fetch ref via ajax - ${uri}`)\n try {\n externalSchema = JSON.parse(response.responseText)\n if (this.options.ajax_cache_responses) {\n this.cacheSet(url, externalSchema)\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e)\n throw new Error(`Failed to parse external ref ${url}`)\n }\n }\n\n if (!(typeof externalSchema === 'boolean' || typeof externalSchema === 'object') || externalSchema === null || Array.isArray(externalSchema)) {\n throw new Error(`External ref does not contain a valid schema - ${url}`)\n }\n this.refs[uri] = externalSchema\n const newfileBase = this._getFileBaseFromFileLocation(url)\n\n // Add leading slash.\n if (url !== uri) {\n const pathItems = url.split('/')\n url = (uri.substr(0, 1) === '/' ? '/' : '') + pathItems.pop()\n }\n await this._asyncloadExternalRefs(externalSchema, url, newfileBase)\n }\n if (!waiting) {\n return true\n }\n }\n\n extendSchemas (obj1, obj2) {\n obj1 = extend({}, obj1)\n obj2 = extend({}, obj2)\n\n const extended = {}\n const isRequiredOrDefaultProperties = (prop, val) => (prop === 'required' || prop === 'defaultProperties') && typeof val === 'object' && Array.isArray(val)\n const merge = (prop, val) => {\n /* Required and defaultProperties arrays should be unioned together */\n if (isRequiredOrDefaultProperties(prop, val)) {\n /* Union arrays and unique */\n extended[prop] = val.concat(obj2[prop]).reduce((p, c) => {\n if (!p.includes(c)) p.push(c)\n return p\n }, [])\n } else if (prop === 'type' && (typeof val === 'string' || Array.isArray(val))) {\n mergeType(val)\n } else if (typeof val === 'object' && !Array.isArray(val) && val !== null) {\n /* Objects should be recursively merged */\n extended[prop] = this.extendSchemas(val, obj2[prop])\n } else {\n /* Otherwise, use the first value */\n extended[prop] = val\n }\n }\n\n const mergeType = (val) => {\n /* Type should be intersected and is either an array or string */\n /* Make sure we're dealing with arrays */\n if (typeof val === 'string') val = [val]\n if (typeof obj2.type === 'string') obj2.type = [obj2.type]\n\n /* If type is only defined in the first schema, keep it */\n if (!obj2.type || !obj2.type.length) {\n extended.type = val\n } else {\n /* If type is defined in both schemas, do an intersect */\n extended.type = val.filter(n => obj2.type.includes(n))\n }\n\n /* If there's only 1 type and it's a primitive, use a string instead of array */\n if (extended.type.length === 1 && typeof extended.type[0] === 'string') {\n extended.type = extended.type[0]\n } else if (extended.type.length === 0) {\n /* Remove the type property if it's empty */\n delete extended.type\n }\n }\n\n Object.entries(obj1).forEach(([prop, val]) => {\n /* If this key is also defined in obj2, merge them */\n if (typeof obj2[prop] !== 'undefined') {\n merge(prop, val)\n } else {\n /* Otherwise, just use the one in obj1 */\n extended[prop] = val\n }\n })\n\n /* Properties in obj2 that aren't in obj1 */\n Object.entries(obj2).forEach(([prop, val]) => {\n if (typeof obj1[prop] === 'undefined') {\n extended[prop] = val\n }\n })\n return extended\n }\n\n /**\n * Gets a cache key namespaced for JSON Editor.\n *\n * @param {*} key\n * The schema's key, e.g., URL.\n * @returns {string}\n * A namespaced cache key, by prefixing \"je-cache::\".\n */\n getCacheKey (key) {\n return ['je-cache', key].join('::')\n }\n\n /**\n * Returns the schema cache buster from JSON Editor settings.\n *\n * @returns {string}\n * The configured cache buster, if any. Otherwise, returns the current date\n * in ISO 8601 simplified format (e.g., 2011-10-05 for October 5, 2011).\n */\n getCacheBuster () {\n return this.options.ajax_cache_buster || new Date().toISOString().slice(0, 10)\n }\n\n /**\n * Sets a schema into localStorage cache.\n *\n * @param {string} key\n * The schema's key, e.g., URL.\n * @param {mixed} data\n * The schema to store. Can be any data type.\n */\n cacheSet (key, data) {\n try {\n window.localStorage.setItem(this.getCacheKey(key), JSON.stringify({\n cacheBuster: this.getCacheBuster(),\n schema: data\n }))\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e)\n }\n }\n\n /**\n * Fetches a schema from localStorage cache.\n *\n * @param {string} key\n * The schema's key, e.g., URL.\n *\n * @returns {mixed}\n * If found, returns the schema.\n */\n cacheGet (key) {\n try {\n const resultRaw = window.localStorage.getItem(this.getCacheKey(key))\n if (resultRaw) {\n const resultDecoded = JSON.parse(resultRaw)\n if (resultDecoded.cacheBuster && resultDecoded.schema) {\n if (resultDecoded.cacheBuster === this.getCacheBuster()) {\n return resultDecoded.schema\n }\n }\n this.cacheDelete(key)\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e)\n }\n }\n\n /**\n * Deletes a schema from localStorage cache.\n *\n * @param {string} key\n * The schema's key, e.g., URL.\n */\n cacheDelete (key) {\n window.localStorage.removeItem(this.getCacheKey(key))\n }\n}\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-not-loaded\":\"pointer-events:none\",\".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 = () => ({\n compile (template) {\n const matches = template.match(/{{\\s*([a-zA-Z0-9\\-_ .]+)\\s*}}/g)\n const l = matches && matches.length\n\n /* Shortcut if the template contains no variables */\n if (!l) return () => template\n\n /* Pre-compute the search/replace functions */\n /* This drastically speeds up template execution */\n const replacements = []\n const getReplacement = (i) => {\n let p = matches[i].replace(/[{}]+/g, '').trim().split('.')\n const n = p.length\n let func\n\n if (n > 1) {\n let cur\n func = (vars) => {\n cur = vars\n for (i = 0; i < n; i++) {\n cur = cur[p[i]]\n if (!cur) break\n }\n return cur\n }\n } else {\n p = p[0]\n func = vars => vars[p]\n }\n\n replacements.push({\n s: matches[i],\n r: func\n })\n }\n for (var i = 0; i < l; i++) {\n getReplacement(i)\n }\n\n /* The compiled function */\n return (vars) => {\n let ret = `${template}`\n let r\n for (i = 0; i < l; i++) {\n r = replacements[i]\n ret = ret.replace(r.s, r.r(vars))\n }\n return ret\n }\n }\n})\n","export const ejsTemplate = () => {\n if (!window.EJS) return false\n\n return {\n compile (template) {\n const compiled = new window.EJS({\n text: template\n })\n\n return context => compiled.render(context)\n }\n }\n}\n","export const handlebarsTemplate = () => window.Handlebars\n","export const hoganTemplate = () => {\n if (!window.Hogan) return false\n\n return {\n compile (template) {\n const compiled = window.Hogan.compile(template)\n return context => compiled.render(context)\n }\n }\n}\n","import { defaultTemplate } from './default.js'\nimport { ejsTemplate } from './ejs.js'\nimport { handlebarsTemplate } from './handlebars.js'\nimport { hoganTemplate } from './hogan.js'\nimport { lodashTemplate } from './lodash.js'\nimport { markupTemplate } from './markup.js'\nimport { mustacheTemplate } from './mustache.js'\nimport { swigTemplate } from './swig.js'\nimport { underscoreTemplate } from './underscore.js'\n\nexport const templates = {\n default: defaultTemplate,\n ejs: ejsTemplate,\n handlebars: handlebarsTemplate,\n hogan: hoganTemplate,\n lodash: lodashTemplate,\n markup: markupTemplate,\n mustache: mustacheTemplate,\n swig: swigTemplate,\n underscore: underscoreTemplate\n}\n","export const lodashTemplate = () => {\n if (!window._) return false\n\n return {\n compile (template) {\n return context => window._.template(template)(context)\n }\n }\n}\n","export const markupTemplate = () => {\n if (!window.Mark || !window.Mark.up) return false\n\n return {\n compile (template) {\n return context => window.Mark.up(template, context)\n }\n }\n}\n","export const mustacheTemplate = () => {\n if (!window.Mustache) return false\n\n return {\n compile (template) {\n return view => window.Mustache.render(template, view)\n }\n }\n}\n","export const swigTemplate = () => window.swig\n","export const underscoreTemplate = () => {\n if (!window._) return false\n\n return {\n compile (template) {\n return context => window._.template(template)(context)\n }\n }\n}\n","import { trigger } from './utilities'\n\nconst matchKey = [\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector',\n 'oMatchesSelector'].find(key => key in document.documentElement)\n\nexport class AbstractTheme {\n constructor (jsoneditor, options = { disable_theme_rules: false }) {\n this.jsoneditor = jsoneditor\n Object.keys(options).forEach(key => {\n if (typeof jsoneditor.options[key] !== 'undefined') {\n options[key] = jsoneditor.options[key]\n }\n })\n /* Theme config options that allows changing various aspects of the output */\n this.options = options\n }\n\n getContainer () {\n return document.createElement('div')\n }\n\n getFloatRightLinkHolder () {\n const el = document.createElement('div')\n el.classList.add('je-float-right-linkholder')\n return el\n }\n\n getModal () {\n const el = document.createElement('div')\n el.style.display = 'none'\n el.classList.add('je-modal')\n return el\n }\n\n getGridContainer () {\n const el = document.createElement('div')\n return el\n }\n\n getGridRow () {\n const el = document.createElement('div')\n el.classList.add('row')\n return el\n }\n\n getGridColumn () {\n const el = document.createElement('div')\n return el\n }\n\n setGridColumnSize (el, size) {\n }\n\n getLink (text) {\n const el = document.createElement('a')\n el.setAttribute('href', '#')\n el.appendChild(document.createTextNode(text))\n return el\n }\n\n disableHeader (header) {\n header.style.color = '#ccc'\n }\n\n disableLabel (label) {\n label.style.color = '#ccc'\n }\n\n enableHeader (header) {\n header.style.color = ''\n }\n\n enableLabel (label) {\n label.style.color = ''\n }\n\n getInfoButton (text) {\n const icon = document.createElement('span')\n icon.innerText = 'ⓘ'\n icon.classList.add('je-infobutton-icon')\n\n const tooltip = document.createElement('span')\n tooltip.classList.add('je-infobutton-tooltip')\n tooltip.innerText = text\n icon.onmouseover = () => {\n tooltip.style.visibility = 'visible'\n }\n icon.onmouseleave = () => {\n tooltip.style.visibility = 'hidden'\n }\n\n icon.appendChild(tooltip)\n\n return icon\n }\n\n getFormInputLabel (text, req) {\n const el = document.createElement('label')\n el.appendChild(document.createTextNode(text))\n if (req) el.classList.add('required')\n return el\n }\n\n getHeader (text, pathDepth) {\n const el = document.createElement('h3')\n if (typeof text === 'string') {\n el.textContent = text\n } else {\n el.appendChild(text)\n }\n el.classList.add('je-header')\n\n return el\n }\n\n getCheckbox () {\n const el = this.getFormInputField('checkbox')\n el.classList.add('je-checkbox')\n return el\n }\n\n getCheckboxLabel (text, req) {\n const el = document.createElement('label')\n el.appendChild(document.createTextNode(`\\u00A0${text}`))\n if (req) el.classList.add('required')\n return el\n }\n\n getMultiCheckboxHolder (controls, label, description, infoText) {\n const el = document.createElement('div')\n el.classList.add('control-group')\n\n if (label) {\n label.style.display = 'block'\n el.appendChild(label)\n if (infoText) label.appendChild(infoText)\n }\n\n Object.values(controls).forEach(control => {\n control.style.display = 'inline-block'\n control.style.marginRight = '20px'\n el.appendChild(control)\n })\n\n if (description) el.appendChild(description)\n\n return el\n }\n\n getFormCheckboxControl (label, input, compact) {\n const el = document.createElement('div')\n el.appendChild(label)\n input.style.width = 'auto'\n label.insertBefore(input, label.firstChild)\n if (compact) {\n el.classList.add('je-checkbox-control--compact')\n }\n\n return el\n }\n\n getFormRadio (attributes) {\n const el = this.getFormInputField('radio')\n Object.keys(attributes).forEach(key => el.setAttribute(key, attributes[key]))\n el.classList.add('je-radio')\n return el\n }\n\n getFormRadioLabel (text, req) {\n const el = document.createElement('label')\n el.appendChild(document.createTextNode(`\\u00A0${text}`))\n if (req) el.classList.add('required')\n return el\n }\n\n getFormRadioControl (label, input, compact) {\n const el = document.createElement('div')\n el.appendChild(label)\n input.style.width = 'auto'\n label.insertBefore(input, label.firstChild)\n if (compact) {\n el.classList.add('je-radio-control--compact')\n }\n\n return el\n }\n\n getSelectInput (options, multiple) {\n const select = document.createElement('select')\n if (options) this.setSelectOptions(select, options)\n return select\n }\n\n getSwitcher (options) {\n const switcher = this.getSelectInput(options, false)\n switcher.classList.add('je-switcher')\n return switcher\n }\n\n getSwitcherOptions (switcher) {\n return switcher.getElementsByTagName('option')\n }\n\n setSwitcherOptions (switcher, options, titles) {\n this.setSelectOptions(switcher, options, titles)\n }\n\n setSelectOptions (select, options, titles = []) {\n select.innerHTML = ''\n for (let i = 0; i < options.length; i++) {\n const option = document.createElement('option')\n option.setAttribute('value', options[i])\n option.textContent = titles[i] || options[i]\n select.appendChild(option)\n }\n }\n\n getTextareaInput () {\n const el = document.createElement('textarea')\n el.classList.add('je-textarea')\n return el\n }\n\n getRangeInput (min, max, step) {\n const el = this.getFormInputField('range')\n el.setAttribute('min', min)\n el.setAttribute('max', max)\n el.setAttribute('step', step)\n return el\n }\n\n getStepperButtons (input) {\n const div = document.createElement('div')\n\n const minusBtn = document.createElement('button')\n minusBtn.setAttribute('type', 'button')\n minusBtn.classList.add('stepper-down')\n\n const plusBtn = document.createElement('button')\n plusBtn.setAttribute('type', 'button')\n plusBtn.classList.add('stepper-up')\n\n const readonly = input.getAttribute('readonly')\n\n if (readonly) {\n minusBtn.setAttribute('disabled', true)\n plusBtn.setAttribute('disabled', true)\n }\n\n minusBtn.textContent = '-'\n plusBtn.textContent = '+'\n\n const initialize = (input, min) => {\n if (min) {\n input.value = Number(min)\n } else {\n input.value = Number(input.value)\n }\n input.setAttribute('initialized', '1')\n }\n\n const min = input.getAttribute('min')\n const max = input.getAttribute('max')\n\n minusBtn.addEventListener('click', () => {\n if (!input.getAttribute('initialized')) {\n initialize(input, min)\n } else if (min) {\n if (Number(input.value) > Number(min)) {\n input.stepDown()\n }\n } else {\n input.stepDown()\n }\n trigger(input, 'change')\n })\n\n plusBtn.addEventListener('click', () => {\n if (!input.getAttribute('initialized')) {\n initialize(input, min)\n } else if (max) {\n if (Number(input.value) < Number(max)) {\n input.stepUp()\n }\n } else {\n input.stepUp()\n }\n trigger(input, 'change')\n })\n\n div.appendChild(minusBtn)\n div.appendChild(plusBtn)\n return div\n }\n\n getRangeOutput (input, startvalue) {\n const output = document.createElement('output')\n const updateOutput = e => { output.value = e.currentTarget.value }\n input.addEventListener('change', updateOutput, false)\n input.addEventListener('input', updateOutput, false)\n return output\n }\n\n getRangeControl (input, output) {\n const el = document.createElement('div')\n el.classList.add('je-range-control')\n if (output) el.appendChild(output)\n el.appendChild(input)\n return el\n }\n\n getFormInputField (type) {\n const el = document.createElement('input')\n el.setAttribute('type', type)\n return el\n }\n\n afterInputReady (input) {\n\n }\n\n getFormControl (label, input, description, infoText, formName) {\n const el = document.createElement('div')\n el.classList.add('form-control')\n if (label) {\n el.appendChild(label)\n if (formName) label.setAttribute('for', formName)\n }\n if ((input.type === 'checkbox' || input.type === 'radio') && label) {\n input.style.width = 'auto'\n label.insertBefore(input, label.firstChild)\n if (infoText) label.appendChild(infoText)\n } else {\n if (infoText && label) label.appendChild(infoText)\n el.appendChild(input)\n }\n\n if (description) el.appendChild(description)\n return el\n }\n\n getIndentedPanel () {\n const el = document.createElement('div')\n el.classList.add('je-indented-panel')\n return el\n }\n\n getTopIndentedPanel () {\n const el = document.createElement('div')\n el.classList.add('je-indented-panel--top')\n return el\n }\n\n getChildEditorHolder () {\n return document.createElement('div')\n }\n\n getDescription (text) {\n const el = document.createElement('p')\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text)\n else el.textContent = this.cleanText(text)\n return el\n }\n\n getCheckboxDescription (text) {\n return this.getDescription(text)\n }\n\n getFormInputDescription (text) {\n return this.getDescription(text)\n }\n\n getButtonHolder () {\n return document.createElement('span')\n }\n\n getHeaderButtonHolder () {\n return this.getButtonHolder()\n }\n\n getFormButtonHolder (buttonAlign) {\n return this.getButtonHolder()\n }\n\n getButton (text, icon, title) {\n const el = document.createElement('button')\n el.type = 'button'\n this.setButtonText(el, text, icon, title)\n return el\n }\n\n getFormButton (text, icon, title) {\n return this.getButton(text, icon, title)\n }\n\n setButtonText (button, text, icon, title) {\n /* Clear previous contents. https://jsperf.com/innerhtml-vs-removechild/37 */\n while (button.firstChild) {\n button.removeChild(button.firstChild)\n }\n if (icon) {\n button.appendChild(icon)\n text = ` ${text}`\n }\n if (!this.jsoneditor.options.iconlib || !this.jsoneditor.options.remove_button_labels || !icon) {\n const spanEl = document.createElement('span')\n spanEl.appendChild(document.createTextNode(text))\n button.appendChild(spanEl)\n }\n if (title) button.setAttribute('title', title)\n }\n\n /* Table functions */\n getTable () {\n return document.createElement('table')\n }\n\n getTableRow () {\n return document.createElement('tr')\n }\n\n getTableHead () {\n return document.createElement('thead')\n }\n\n getTableBody () {\n return document.createElement('tbody')\n }\n\n getTableHeaderCell (text) {\n const el = document.createElement('th')\n el.textContent = text\n return el\n }\n\n getTableCell () {\n const el = document.createElement('td')\n return el\n }\n\n getErrorMessage (text) {\n const el = document.createElement('p')\n el.style = el.style || {}\n el.style.color = 'red'\n el.appendChild(document.createTextNode(text))\n return el\n }\n\n addInputError (input, text) {\n }\n\n removeInputError (input) {\n }\n\n addTableRowError (row) {\n }\n\n removeTableRowError (row) {\n }\n\n getTabHolder (propertyName) {\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\n const el = document.createElement('div')\n el.innerHTML = `<div class='je-tabholder tabs'></div><div class='content' id='${pName}'></div><div class='je-tabholder--clear'></div>`\n return el\n }\n\n getTopTabHolder (propertyName) {\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\n const el = document.createElement('div')\n el.innerHTML = `<div class='tabs je-tabholder--top'></div><div class='je-tabholder--clear'></div><div class='content' id='${pName}'></div>`\n return el\n }\n\n applyStyles (el, styles) {\n Object.keys(styles).forEach(i => (el.style[i] = styles[i]))\n }\n\n closest (elem, selector) {\n while (elem && elem !== document) {\n if (elem[matchKey]) {\n if (elem[matchKey](selector)) {\n return elem\n } else {\n elem = elem.parentNode\n }\n } else {\n return false\n }\n }\n return false\n }\n\n insertBasicTopTab (tab, newTabsHolder) {\n newTabsHolder.firstChild.insertBefore(tab, newTabsHolder.firstChild.firstChild)\n }\n\n getTab (span, tabId) {\n const el = document.createElement('div')\n el.appendChild(span)\n el.id = tabId\n el.classList.add('je-tab')\n return el\n }\n\n getTopTab (span, tabId) {\n const el = document.createElement('div')\n el.appendChild(span)\n el.id = tabId\n el.classList.add('je-tab--top')\n return el\n }\n\n getTabContentHolder (tabHolder) {\n return tabHolder.children[1]\n }\n\n getTopTabContentHolder (tabHolder) {\n return tabHolder.children[1]\n }\n\n getTabContent () {\n return this.getIndentedPanel()\n }\n\n getTopTabContent () {\n return this.getTopIndentedPanel()\n }\n\n markTabActive (row) {\n this.applyStyles(row.tab, {\n opacity: 1,\n background: 'white'\n })\n if (typeof row.rowPane !== 'undefined') {\n row.rowPane.style.display = ''\n } else {\n row.container.style.display = ''\n }\n }\n\n markTabInactive (row) {\n this.applyStyles(row.tab, {\n opacity: 0.5,\n background: ''\n })\n if (typeof row.rowPane !== 'undefined') {\n row.rowPane.style.display = 'none'\n } else {\n row.container.style.display = 'none'\n }\n }\n\n addTab (holder, tab) {\n holder.children[0].appendChild(tab)\n }\n\n addTopTab (holder, tab) {\n holder.children[0].appendChild(tab)\n }\n\n getBlockLink () {\n const link = document.createElement('a')\n link.classList.add('je-block-link')\n return link\n }\n\n getBlockLinkHolder () {\n const el = document.createElement('div')\n return el\n }\n\n getLinksHolder () {\n const el = document.createElement('div')\n return el\n }\n\n createMediaLink (holder, link, media) {\n holder.appendChild(link)\n media.classList.add('je-media')\n holder.appendChild(media)\n }\n\n createImageLink (holder, link, image) {\n holder.appendChild(link)\n link.appendChild(image)\n }\n\n getFirstTab (holder) {\n return holder.firstChild.firstChild\n }\n\n getInputGroup (input, buttons) {\n return undefined\n }\n\n cleanText (txt) {\n /* Clean out HTML tags from txt */\n const tmp = document.createElement('div')\n tmp.innerHTML = txt\n return (tmp.textContent || tmp.innerText)\n }\n\n getDropZone (text) {\n const el = document.createElement('div')\n el.setAttribute('data-text', text)\n el.classList.add('je-dropzone')\n return el\n }\n\n /* file is an object with properties: name, type, mimeType, size amd formattedSize */\n getUploadPreview (file, uploadButton, data) {\n const preview = document.createElement('div')\n preview.classList.add('je-upload-preview')\n\n if (file.mimeType.substr(0, 5) === 'image') {\n const img = document.createElement('img')\n img.src = data\n preview.appendChild(img)\n }\n const info = document.createElement('div')\n info.innerHTML += `<strong>Name:</strong> ${file.name}<br><strong>Type:</strong> ${file.type}<br><strong>Size:</strong> ${file.formattedSize}`\n preview.appendChild(info)\n\n preview.appendChild(uploadButton)\n\n const clear = document.createElement('div')\n clear.style.clear = 'left'\n preview.appendChild(clear)\n\n return preview\n }\n\n getProgressBar () {\n const max = 100; const start = 0\n\n const progressBar = document.createElement('progress')\n progressBar.setAttribute('max', max)\n progressBar.setAttribute('value', start)\n return progressBar\n }\n\n updateProgressBar (progressBar, progress) {\n if (!progressBar) return\n progressBar.setAttribute('value', progress)\n }\n\n updateProgressBarUnknown (progressBar) {\n if (!progressBar) return\n progressBar.removeAttribute('value')\n }\n}\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'\nimport rules from './barebones.css.js'\n\nexport class barebonesTheme extends AbstractTheme {\n addInputError (input, text) {\n if (!input.errmsg) {\n const group = this.closest(input, '.form-control')\n input.errmsg = document.createElement('div')\n input.errmsg.setAttribute('class', 'errmsg')\n if (group.nodeName) {\n group.appendChild(input.errmsg)\n }\n } else {\n input.errmsg.style.display = 'block'\n }\n\n input.errmsg.innerHTML = ''\n input.errmsg.appendChild(document.createTextNode(text))\n }\n\n removeInputError (input) {\n if (input.style) {\n input.style.borderColor = ''\n }\n if (input.errmsg) input.errmsg.style.display = 'none'\n }\n}\n\n/* Custom stylesheet rules. format: \"selector\" : \"CSS rules\" */\nbarebonesTheme.rules = rules\n","import { AbstractTheme } from '../theme.js'\nimport rules from './bootstrap3.css'\n\nexport class bootstrap3Theme extends AbstractTheme {\n getSelectInput (options, multiple) {\n const el = super.getSelectInput(options)\n el.classList.add('form-control')\n /* el.style.width = 'auto'; */\n return el\n }\n\n setGridColumnSize (el, size, offset) {\n el.classList.add(`col-md-${size}`)\n if (offset) {\n el.classList.add(`col-md-offset-${offset}`)\n }\n }\n\n afterInputReady (input) {\n if (input.controlgroup) return\n input.controlgroup = this.closest(input, '.form-group')\n if (this.closest(input, '.compact')) {\n input.controlgroup.style.marginBottom = 0\n }\n if (this.queuedInputErrorText) {\n const text = this.queuedInputErrorText\n delete this.queuedInputErrorText\n this.addInputError(input, text)\n }\n\n /* TODO: use bootstrap slider */\n }\n\n getTextareaInput () {\n const el = document.createElement('textarea')\n el.classList.add('form-control')\n return el\n }\n\n getRangeInput (min, max, step) {\n /* TODO: use better slider */\n return super.getRangeInput(min, max, step)\n }\n\n getFormInputField (type) {\n const el = super.getFormInputField(type)\n if (type !== 'checkbox' && type !== 'radio') {\n el.classList.add('form-control')\n }\n return el\n }\n\n getFormControl (label, input, description, infoText) {\n const group = document.createElement('div')\n\n if (label && (input.type === 'checkbox' || input.type === 'radio')) {\n group.classList.add(input.type)\n if (infoText) label.appendChild(infoText)\n label.insertBefore(input, label.firstChild)\n group.appendChild(label)\n } else {\n group.classList.add('form-group')\n if (label) {\n label.classList.add('control-label')\n group.appendChild(label)\n if (infoText) label.appendChild(infoText)\n }\n group.appendChild(input)\n }\n\n if (description) group.appendChild(description)\n\n return group\n }\n\n getIndentedPanel () {\n const el = document.createElement('div')\n el.classList.add('well', 'well-sm')\n el.style.paddingBottom = 0\n return el\n }\n\n getInfoButton (text) {\n const icon = document.createElement('span')\n icon.classList.add('glyphicon', 'glyphicon-info-sign', 'pull-right')\n icon.style.padding = '.25rem'\n icon.style.position = 'relative'\n icon.style.display = 'inline-block'\n\n const tooltip = document.createElement('span')\n tooltip.style['font-family'] = 'sans-serif'\n tooltip.style.visibility = 'hidden'\n tooltip.style['background-color'] = 'rgba(50, 50, 50, .75)'\n tooltip.style.margin = '0 .25rem'\n tooltip.style.color = '#FAFAFA'\n tooltip.style.padding = '.5rem 1rem'\n tooltip.style['border-radius'] = '.25rem'\n tooltip.style.width = '25rem'\n tooltip.style.position = 'absolute'\n tooltip.innerText = text\n icon.onmouseover = () => {\n tooltip.style.visibility = 'visible'\n }\n icon.onmouseleave = () => {\n tooltip.style.visibility = 'hidden'\n }\n\n icon.appendChild(tooltip)\n\n return icon\n }\n\n getFormInputDescription (text) {\n const el = document.createElement('p')\n el.classList.add('help-block')\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text)\n else el.textContent = this.cleanText(text)\n return el\n }\n\n getHeaderButtonHolder () {\n const el = this.getButtonHolder()\n el.style.marginLeft = '10px'\n return el\n }\n\n getButtonHolder () {\n const el = document.createElement('span')\n el.classList.add('btn-group')\n return el\n }\n\n getButton (text, icon, title) {\n const el = super.getButton(text, icon, title)\n el.classList.add('btn', 'btn-default')\n return el\n }\n\n getTable () {\n const el = document.createElement('table')\n el.classList.add('table', 'table-bordered')\n el.style.width = 'auto'\n el.style.maxWidth = 'none'\n return el\n }\n\n addInputError (input, text) {\n if (!input.controlgroup) {\n this.queuedInputErrorText = text\n return\n }\n input.controlgroup.classList.add('has-error')\n if (!input.errmsg) {\n input.errmsg = document.createElement('p')\n input.errmsg.classList.add('help-block', 'errormsg')\n input.controlgroup.appendChild(input.errmsg)\n } else {\n input.errmsg.style.display = ''\n }\n\n input.errmsg.textContent = text\n }\n\n removeInputError (input) {\n if (!input.controlgroup) {\n delete this.queuedInputErrorText\n }\n if (!input.errmsg) return\n input.errmsg.style.display = 'none'\n input.controlgroup.classList.remove('has-error')\n }\n\n getTabHolder (propertyName) {\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\n const el = document.createElement('div')\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 active well well-small' id='${pName}'></div>`\n return el\n }\n\n getTopTabHolder (propertyName) {\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\n const el = document.createElement('div')\n el.innerHTML = `<ul class='nav nav-tabs' id='${pName}' role='tablist'></ul><div class='tab-content active well well-small' id='${pName}'></div>`\n return el\n }\n\n getTab (text, tabId) {\n const li = document.createElement('li')\n li.setAttribute('role', 'presentation')\n const a = document.createElement('a')\n a.setAttribute('href', `#${tabId}`)\n a.appendChild(text)\n a.setAttribute('aria-controls', tabId)\n a.setAttribute('role', 'tab')\n a.setAttribute('data-toggle', 'tab')\n li.appendChild(a)\n return li\n }\n\n getTopTab (text, tabId) {\n const li = document.createElement('li')\n li.setAttribute('role', 'presentation')\n const a = document.createElement('a')\n a.setAttribute('href', `#${tabId}`)\n a.appendChild(text)\n a.setAttribute('aria-controls', tabId)\n a.setAttribute('role', 'tab')\n a.setAttribute('data-toggle', 'tab')\n li.appendChild(a)\n return li\n }\n\n getTabContent () {\n const el = document.createElement('div')\n el.classList.add('tab-pane')\n el.setAttribute('role', 'tabpanel')\n return el\n }\n\n getTopTabContent () {\n const el = document.createElement('div')\n el.classList.add('tab-pane')\n el.setAttribute('role', 'tabpanel')\n return el\n }\n\n markTabActive (row) {\n row.tab.classList.add('active')\n\n if (typeof row.rowPane !== 'undefined') {\n row.rowPane.classList.add('active')\n } else {\n row.container.classList.add('active')\n }\n }\n\n markTabInactive (row) {\n row.tab.classList.remove('active')\n\n if (typeof row.rowPane !== 'undefined') {\n row.rowPane.classList.remove('active')\n } else {\n row.container.classList.remove('active')\n }\n }\n\n getProgressBar () {\n const min = 0; const max = 100; const start = 0\n\n const container = document.createElement('div')\n container.classList.add('progress')\n\n const bar = document.createElement('div')\n bar.classList.add('progress-bar')\n bar.setAttribute('role', 'progressbar')\n bar.setAttribute('aria-valuenow', start)\n bar.setAttribute('aria-valuemin', min)\n bar.setAttribute('aria-valuenax', max)\n bar.innerHTML = `${start}%`\n container.appendChild(bar)\n\n return container\n }\n\n updateProgressBar (progressBar, progress) {\n if (!progressBar) return\n\n const bar = progressBar.firstChild\n const percentage = `${progress}%`\n bar.setAttribute('aria-valuenow', progress)\n bar.style.width = percentage\n bar.innerHTML = percentage\n }\n\n updateProgressBarUnknown (progressBar) {\n if (!progressBar) return\n\n const bar = progressBar.firstChild\n progressBar.classList.add('progress', 'progress-striped', 'active')\n bar.removeAttribute('aria-valuenow')\n bar.style.width = '100%'\n bar.innerHTML = ''\n }\n\n getInputGroup (input, buttons) {\n if (!input) return\n\n const inputGroupContainer = document.createElement('div')\n inputGroupContainer.classList.add('input-group')\n inputGroupContainer.appendChild(input)\n\n const inputGroup = document.createElement('div')\n inputGroup.classList.add('input-group-btn')\n inputGroupContainer.appendChild(inputGroup)\n\n for (let i = 0; i < buttons.length; i++) {\n inputGroup.appendChild(buttons[i])\n }\n\n return inputGroupContainer\n }\n}\n\n/* Custom stylesheet rules. format: \"selector\" : \"CSS rules\" */\nbootstrap3Theme.rules = rules\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'\nimport rules from './bootstrap4.css.js'\nimport { trigger } from '../utilities'\n\n/* Theme config options that allows changing various aspects of the output */\nconst options = {\n disable_theme_rules: false,\n input_size: 'normal', /* Size of input and select elements. \"small\", \"normal\", \"large\" */\n custom_forms: false, /* use twbs custom form stylings */\n object_indent: true, /* Indent nested object elements (use nested .card layout) */\n object_background: 'bg-light', /* Bootstrap 4 card background modifier class (https://getbootstrap.com/docs/4.1/getting-started/introduction/) */\n object_text: '', /* Bootstrap 4 card tect color modifier class (https://getbootstrap.com/docs/4.1/getting-started/introduction/) */\n table_border: false, /* Add border to array \"table\" row and cells */\n table_zebrastyle: false, /* Add \"zebra style\" to array \"table\" rows */\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 */\n}\n\nexport class bootstrap4Theme extends AbstractTheme {\n constructor (jsoneditor) {\n super(jsoneditor, options)\n }\n\n getSelectInput (options, multiple) {\n const el = super.getSelectInput(options)\n el.classList.add('form-control')\n\n if (this.options.custom_forms === false) {\n if (this.options.input_size === 'small') el.classList.add('form-control-sm')\n if (this.options.input_size === 'large') el.classList.add('form-control-lg')\n } else {\n el.classList.remove('form-control')\n el.classList.add('custom-select')\n if (this.options.input_size === 'small') el.classList.add('custom-select-sm')\n if (this.options.input_size === 'large') el.classList.add('custom-select-lg')\n }\n\n return el\n }\n\n getContainer () {\n const el = document.createElement('div')\n if (!this.options.object_indent) el.classList.add('je-noindent')\n return el\n }\n\n setGridColumnSize (el, size, offset) {\n el.classList.add(`col-md-${size}`)\n\n if (offset) {\n el.classList.add(`offset-md-${offset}`)\n }\n }\n\n afterInputReady (input) {\n if (input.controlgroup) return\n\n /* set id/for */\n /* is not working for: [type=file], [type=checkbox] */\n const id = input.name\n input.id = id\n /* 2x parentNode, b/c range input has an <div> wrapper */\n const label = input.parentNode.parentNode.getElementsByTagName('label')[0]\n if (label) {\n label.htmlFor = id\n }\n\n input.controlgroup = this.closest(input, '.form-group')\n }\n\n getTextareaInput () {\n const el = document.createElement('textarea')\n el.classList.add('form-control')\n if (this.options.input_size === 'small') el.classList.add('form-control-sm')\n if (this.options.input_size === 'large') el.classList.add('form-control-lg')\n return el\n }\n\n getRangeInput (min, max, step) {\n const el = super.getRangeInput(min, max, step)\n\n if (this.options.custom_forms === true) {\n el.classList.remove('form-control')\n el.classList.add('custom-range')\n }\n\n return el\n }\n\n getStepperButtons (input) {\n const inputGroup = document.createElement('div')\n const prepend = document.createElement('div')\n const append = document.createElement('div')\n\n const minusBtn = document.createElement('button')\n minusBtn.setAttribute('type', 'button')\n\n const plusBtn = document.createElement('button')\n plusBtn.setAttribute('type', 'button')\n\n inputGroup.appendChild(prepend)\n inputGroup.appendChild(input)\n inputGroup.appendChild(append)\n prepend.appendChild(minusBtn)\n append.appendChild(plusBtn)\n\n inputGroup.classList.add('input-group')\n prepend.classList.add('input-group-prepend')\n append.classList.add('input-group-append')\n minusBtn.classList.add('btn')\n minusBtn.classList.add('btn-secondary')\n minusBtn.classList.add('stepper-down')\n plusBtn.classList.add('btn')\n plusBtn.classList.add('btn-secondary')\n plusBtn.classList.add('stepper-up')\n\n const readonly = input.getAttribute('readonly')\n\n if (readonly) {\n minusBtn.setAttribute('disabled', true)\n plusBtn.setAttribute('disabled', true)\n }\n\n minusBtn.textContent = '-'\n plusBtn.textContent = '+'\n\n const initialize = (input, min) => {\n if (min) {\n input.value = Number(min)\n } else {\n input.value = Number(input.value)\n }\n input.setAttribute('initialized', '1')\n }\n\n const min = input.getAttribute('min')\n const max = input.getAttribute('max')\n\n input.addEventListener('change', () => {\n if (!input.getAttribute('initialized')) {\n input.setAttribute('initialized', '1')\n }\n })\n\n minusBtn.addEventListener('click', () => {\n if (!input.getAttribute('initialized')) {\n initialize(input, min)\n } else if (min) {\n if (Number(input.value) > Number(min)) {\n input.stepDown()\n }\n } else {\n input.stepDown()\n }\n trigger(input, 'change')\n })\n\n plusBtn.addEventListener('click', () => {\n if (!input.getAttribute('initialized')) {\n initialize(input, min)\n } else if (max) {\n if (Number(input.value) < Number(max)) {\n input.stepUp()\n }\n } else {\n input.stepUp()\n }\n trigger(input, 'change')\n })\n\n return inputGroup\n }\n\n getFormInputField (type) {\n const el = super.getFormInputField(type)\n if (type !== 'checkbox' && type !== 'radio' && type !== 'file') {\n el.classList.add('form-control')\n if (this.options.input_size === 'small') el.classList.add('form-control-sm')\n if (this.options.input_size === 'large') el.classList.add('form-control-lg')\n }\n\n if (type === 'file') {\n /* custom_form is not used on files, would be a bit ticky since we need more */\n /* markup. Also it contains language strings which would need be translateable? */\n /* and most of all, w/o JavaScript teh name of the file can't be displayed. */\n el.classList.add('form-control-file')\n }\n\n return el\n }\n\n getFormControl (label, input, description, infoText) {\n const group = document.createElement('div')\n group.classList.add('form-group')\n\n if (label && (input.type === 'checkbox' || input.type === 'radio')) {\n const check = document.createElement('div')\n\n if (this.options.custom_forms === false) {\n check.classList.add('form-check')\n input.classList.add('form-check-input')\n label.classList.add('form-check-label')\n } else {\n check.classList.add('custom-control')\n input.classList.add('custom-control-input')\n label.classList.add('custom-control-label')\n\n if (input.type === 'checkbox') {\n check.classList.add('custom-checkbox')\n } else {\n check.classList.add('custom-radio')\n }\n }\n\n const unique = (Date.now() * Math.random()).toFixed(0)\n input.setAttribute('id', unique)\n label.setAttribute('for', unique)\n\n check.appendChild(input)\n check.appendChild(label)\n if (infoText) check.appendChild(infoText)\n\n group.appendChild(check)\n } else {\n if (label) {\n group.appendChild(label)\n\n if (infoText) group.appendChild(infoText)\n }\n\n group.appendChild(input)\n }\n\n if (description) {\n group.appendChild(description)\n }\n\n return group\n }\n\n getInfoButton (text) {\n const button = document.createElement('button') /* shoud be a <button> but no fitting tbws style... */\n button.type = 'button'\n button.classList.add('ml-3', 'jsoneditor-twbs4-text-button')\n button.setAttribute('data-toggle', 'tooltip')\n button.setAttribute('data-placement', 'auto')\n button.title = text\n\n const icon = document.createTextNode('ⓘ')\n button.appendChild(icon)\n\n if (this.options.tooltip === 'bootstrap') {\n if (window.jQuery && window.jQuery().tooltip) {\n window.jQuery(button).tooltip()\n } else {\n // eslint-disable-next-line no-console\n console.warn('Could not find popper jQuery plugin of Bootstrap.')\n }\n } else if (this.options.tooltip === 'css') {\n button.classList.add('je-tooltip')\n } /* else -> nothing todo for native [title] handling */\n\n return button\n }\n\n /**\n * Generates a checkbox...\n *\n * Overwriten from master theme to get rid of inline styles.\n */\n getCheckbox () {\n const el = this.getFormInputField('checkbox')\n return el\n }\n\n /**\n * Multiple checkboxes in a row.\n *\n */\n getMultiCheckboxHolder (controls, label, description, infoText) {\n const el = document.createElement('div')\n el.classList.add('form-group')\n\n if (label) {\n el.appendChild(label)\n\n if (infoText) {\n label.appendChild(infoText)\n }\n }\n\n /* for inline view we need an container so it doesnt wrap in the \"row\" of the <label> */\n const container = document.createElement('div')\n\n Object.values(controls).forEach(c => {\n /* controls are already parsed by getFormControl() so they have an .form-group */\n /* wrapper we need to get rid of... */\n const ctrl = c.firstChild\n\n /* we don't know if this should be an normal / compact view */\n /* if (this.options.custom_forms === false) {\n ctrl.classList.add('form-check-inline')\n } else {\n ctrl.classList.add('custom-control-inline')\n } */\n container.appendChild(ctrl)\n })\n\n el.appendChild(container)\n\n if (description) el.appendChild(description)\n\n return el\n }\n\n /**\n * Single radio element\n */\n getFormRadio (attributes) {\n const el = this.getFormInputField('radio')\n\n for (const key in attributes) {\n el.setAttribute(key, attributes[key])\n }\n\n if (this.options.custom_forms === false) {\n el.classList.add('form-check-input')\n } else {\n el.classList.add('custom-control-input')\n }\n\n return el\n }\n\n /**\n * Add the <label> for the single radio from getFormRadio()\n *\n */\n getFormRadioLabel (text, req) {\n const el = document.createElement('label')\n\n if (this.options.custom_forms === false) {\n el.classList.add('form-check-label')\n } else {\n el.classList.add('custom-control-label')\n }\n\n el.appendChild(document.createTextNode(text))\n return el\n }\n\n /**\n * Stack the radios from getFormRadio()/getFormRadioLabel()\n *\n */\n getFormRadioControl (label, input, compact) {\n const el = document.createElement('div')\n\n if (this.options.custom_forms === false) {\n el.classList.add('form-check')\n } else {\n el.classList.add('custom-control', 'custom-radio')\n }\n\n el.appendChild(input)\n el.appendChild(label)\n\n if (compact) {\n if (this.options.custom_forms === false) {\n el.classList.add('form-check-inline')\n } else {\n el.classList.add('custom-control-inline')\n }\n }\n\n return el\n }\n\n getIndentedPanel () {\n const el = document.createElement('div')\n el.classList.add('card', 'card-body', 'mb-3')\n\n if (this.options.object_background) {\n el.classList.add(this.options.object_background)\n }\n\n if (this.options.object_text) {\n el.classList.add(this.options.object_text)\n }\n\n /* for better twbs card styling we should be able to return a nested div */\n\n return el\n }\n\n getFormInputDescription (text) {\n const el = document.createElement('small')\n el.classList.add('form-text')\n\n if (window.DOMPurify) {\n el.innerHTML = window.DOMPurify.sanitize(text)\n } else {\n el.textContent = this.cleanText(text)\n }\n\n return el\n }\n\n getHeader (text, pathDepth) {\n /* var cardHeader = document.createElement('div') */\n /* cardHeader.classList.add('card-header') */\n\n const el = document.createElement('h3')\n el.classList.add('card-title')\n el.classList.add('level-' + pathDepth)\n\n if (typeof text === 'string') {\n el.textContent = text\n } else {\n el.appendChild(text)\n }\n\n el.style.display = 'inline-block'\n\n /* cardHeader.appendChild(el) */\n\n return el\n }\n\n getHeaderButtonHolder () {\n const el = this.getButtonHolder()\n\n return el\n }\n\n getButtonHolder () {\n const el = document.createElement('span')\n el.classList.add('btn-group')\n return el\n }\n\n getFormButtonHolder (buttonAlign) {\n const el = this.getButtonHolder()\n el.classList.add('d-block')\n\n if (buttonAlign === 'center') el.classList.add('text-center')\n else if (buttonAlign === 'right') el.classList.add('text-right')\n\n return el\n }\n\n getButton (text, icon, title) {\n const el = super.getButton(text, icon, title)\n el.classList.add('btn', 'btn-secondary', 'btn-sm')\n return el\n }\n\n getTable () {\n const el = document.createElement('table')\n el.classList.add('table', 'table-sm')\n\n if (this.options.table_border) {\n el.classList.add('table-bordered')\n }\n\n if (this.options.table_zebrastyle) {\n el.classList.add('table-striped')\n }\n\n return el\n }\n\n getErrorMessage (text) {\n const el = document.createElement('div')\n el.classList.add('alert', 'alert-danger')\n el.setAttribute('role', 'alert')\n el.appendChild(document.createTextNode(text))\n return el\n }\n\n /**\n * input validation on <input>\n */\n addInputError (input, text) {\n if (!input.controlgroup) return\n\n input.controlgroup.classList.add('is-invalid')\n\n if (!input.errmsg) {\n input.errmsg = document.createElement('p')\n input.errmsg.classList.add('invalid-feedback')\n input.controlgroup.appendChild(input.errmsg)\n input.errmsg.style.display = 'block'\n }\n\n input.errmsg.style.display = 'block'\n input.errmsg.textContent = text\n }\n\n removeInputError (input) {\n if (!input.errmsg) return\n input.errmsg.style.display = 'none'\n input.controlgroup.classList.remove('is-invalid')\n }\n\n getTabHolder (propertyName) {\n const el = document.createElement('div')\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\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>`\n el.classList.add('row')\n return el\n }\n\n addTab (holder, tab) {\n holder.children[0].children[0].appendChild(tab)\n }\n\n getTabContentHolder (tabHolder) {\n return tabHolder.children[1].children[0]\n }\n\n getTopTabHolder (propertyName) {\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\n\n const el = document.createElement('div')\n el.classList.add('card')\n\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>`\n\n return el\n }\n\n getTab (text, tabId) {\n const liel = document.createElement('li')\n liel.classList.add('nav-item')\n\n const ael = document.createElement('a')\n ael.classList.add('nav-link')\n ael.setAttribute('href', `#${tabId}`)\n ael.setAttribute('data-toggle', 'tab')\n ael.appendChild(text)\n\n liel.appendChild(ael)\n\n return liel\n }\n\n getTopTab (text, tabId) {\n const el = document.createElement('li')\n el.classList.add('nav-item')\n\n const a = document.createElement('a')\n a.classList.add('nav-link')\n a.setAttribute('href', `#${tabId}`)\n a.setAttribute('data-toggle', 'tab')\n a.appendChild(text)\n\n el.appendChild(a)\n\n return el\n }\n\n getTabContent () {\n const el = document.createElement('div')\n el.classList.add('tab-pane')\n el.setAttribute('role', 'tabpanel')\n return el\n }\n\n getTopTabContent () {\n const el = document.createElement('div')\n el.classList.add('tab-pane')\n el.setAttribute('role', 'tabpanel')\n return el\n }\n\n markTabActive (row) {\n row.tab.firstChild.classList.add('active')\n\n if (typeof row.rowPane !== 'undefined') {\n row.rowPane.classList.add('active')\n } else {\n row.container.classList.add('active')\n }\n }\n\n markTabInactive (row) {\n row.tab.firstChild.classList.remove('active')\n\n if (typeof row.rowPane !== 'undefined') {\n row.rowPane.classList.remove('active')\n } else {\n row.container.classList.remove('active')\n }\n }\n\n insertBasicTopTab (tab, newTabsHolder) {\n newTabsHolder.children[0].children[0].insertBefore(tab, newTabsHolder.children[0].children[0].firstChild)\n }\n\n addTopTab (holder, tab) {\n holder.children[0].children[0].appendChild(tab)\n }\n\n getTopTabContentHolder (tabHolder) {\n return tabHolder.children[1].children[0]\n }\n\n getFirstTab (holder) {\n return holder.firstChild.firstChild.firstChild\n }\n\n getProgressBar () {\n const min = 0\n const max = 100\n const start = 0\n\n const container = document.createElement('div')\n container.classList.add('progress')\n\n const bar = document.createElement('div')\n bar.classList.add('progress-bar')\n bar.setAttribute('role', 'progressbar')\n bar.setAttribute('aria-valuenow', start)\n bar.setAttribute('aria-valuemin', min)\n bar.setAttribute('aria-valuenax', max)\n bar.innerHTML = `${start}%`\n container.appendChild(bar)\n\n return container\n }\n\n updateProgressBar (progressBar, progress) {\n if (!progressBar) return\n\n const bar = progressBar.firstChild\n const percentage = `${progress}%`\n bar.setAttribute('aria-valuenow', progress)\n bar.style.width = percentage\n bar.innerHTML = percentage\n }\n\n updateProgressBarUnknown (progressBar) {\n if (!progressBar) return\n\n const bar = progressBar.firstChild\n progressBar.classList.add('progress', 'progress-striped', 'active')\n bar.removeAttribute('aria-valuenow')\n bar.style.width = '100%'\n bar.innerHTML = ''\n }\n\n getBlockLink () {\n const link = document.createElement('a')\n link.classList.add('mb-3', 'd-inline-block')\n return link\n }\n\n /**\n * Link after successfull upload\n */\n getLinksHolder () {\n const el = document.createElement('div')\n return el\n }\n\n getInputGroup (input, buttons) {\n if (!input) return\n\n const inputGroupContainer = document.createElement('div')\n inputGroupContainer.classList.add('input-group')\n\n inputGroupContainer.appendChild(input)\n\n const inputGroup = document.createElement('div')\n inputGroup.classList.add('input-group-append')\n inputGroupContainer.appendChild(inputGroup)\n\n for (let i = 0; i < buttons.length; i++) {\n /* this uses the getButton() wrapper, so we have to remove the panel/ctrl spacing for this case */\n buttons[i].classList.remove('mr-2', 'btn-secondary')\n buttons[i].classList.add('btn-outline-secondary')\n\n inputGroup.appendChild(buttons[i])\n }\n\n return inputGroupContainer\n }\n}\n\n/* Custom stylesheet rules. format: \"selector\" : \"CSS rules\" */\nbootstrap4Theme.rules = rules\n","/* eslint-disable */\nexport default {\".form-group\":\"margin-bottom:1rem\",\".form-text\":\"display:block\",\".jsoneditor-twbs5-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'\nimport rules from './bootstrap5.css.js'\nimport { trigger } from '../utilities'\n\n/* Theme config options that allows changing various aspects of the output */\nconst options = {\n disable_theme_rules: false,\n input_size: 'normal', /* Size of input and select elements. \"small\", \"normal\", \"large\" */\n object_indent: true, /* Indent nested object elements (use nested .card layout) */\n object_background: 'bg-light', /* Bootstrap 4 card background modifier class */\n object_text: '', /* Bootstrap 5 card text color modifier class */\n table_border: false, /* Add border to array \"table\" row and cells */\n table_zebrastyle: false, /* Add \"zebra style\" to array \"table\" rows */\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 */\n}\n\nexport class bootstrap5Theme extends AbstractTheme {\n constructor (jsoneditor) {\n super(jsoneditor, options)\n }\n\n getSelectInput (options, multiple) {\n const el = super.getSelectInput(options)\n el.classList.add('form-control')\n el.classList.add('form-select')\n if (this.options.input_size === 'small') el.classList.add('form-control-sm')\n if (this.options.input_size === 'large') el.classList.add('form-control-lg')\n\n return el\n }\n\n getContainer () {\n const el = document.createElement('div')\n if (!this.options.object_indent) el.classList.add('je-noindent')\n return el\n }\n\n setGridColumnSize (el, size, offset) {\n el.classList.add(`col-md-${size}`)\n\n if (offset) {\n el.classList.add(`offset-md-${offset}`)\n }\n }\n\n afterInputReady (input) {\n if (input.controlgroup) return\n\n /* set id/for */\n /* is not working for: [type=file], [type=checkbox] */\n const id = input.name\n input.id = id\n /* 2x parentNode, b/c range input has an <div> wrapper */\n const label = input.parentNode.parentNode.getElementsByTagName('label')[0]\n if (label) {\n label.classList.add('form-label')\n label.htmlFor = id\n }\n\n input.controlgroup = this.closest(input, '.form-group')\n }\n\n getTextareaInput () {\n const el = document.createElement('textarea')\n el.classList.add('form-control')\n if (this.options.input_size === 'small') el.classList.add('form-control-sm')\n if (this.options.input_size === 'large') el.classList.add('form-control-lg')\n return el\n }\n\n getRangeInput (min, max, step) {\n const el = super.getRangeInput(min, max, step)\n el.classList.remove('form-control')\n el.classList.add('form-range')\n return el\n }\n\n getStepperButtons (input) {\n const inputGroup = document.createElement('div')\n\n const minusBtn = document.createElement('button')\n minusBtn.setAttribute('type', 'button')\n\n const plusBtn = document.createElement('button')\n plusBtn.setAttribute('type', 'button')\n\n inputGroup.appendChild(minusBtn)\n inputGroup.appendChild(input)\n inputGroup.appendChild(plusBtn)\n\n inputGroup.classList.add('input-group')\n minusBtn.classList.add('btn')\n minusBtn.classList.add('btn-secondary')\n minusBtn.classList.add('stepper-down')\n plusBtn.classList.add('btn')\n plusBtn.classList.add('btn-secondary')\n plusBtn.classList.add('stepper-up')\n\n const readonly = input.getAttribute('readonly')\n\n if (readonly) {\n minusBtn.setAttribute('disabled', true)\n plusBtn.setAttribute('disabled', true)\n }\n\n minusBtn.textContent = '-'\n plusBtn.textContent = '+'\n\n const initialize = (input, min) => {\n if (min) {\n input.value = Number(min)\n } else {\n input.value = Number(input.value)\n }\n input.setAttribute('initialized', '1')\n }\n\n const min = input.getAttribute('min')\n const max = input.getAttribute('max')\n\n input.addEventListener('change', () => {\n if (!input.getAttribute('initialized')) {\n input.setAttribute('initialized', '1')\n }\n })\n\n minusBtn.addEventListener('click', () => {\n if (!input.getAttribute('initialized')) {\n initialize(input, min)\n } else if (min) {\n if (Number(input.value) > Number(min)) {\n input.stepDown()\n }\n } else {\n input.stepDown()\n }\n trigger(input, 'change')\n })\n\n plusBtn.addEventListener('click', () => {\n if (!input.getAttribute('initialized')) {\n initialize(input, min)\n } else if (max) {\n if (Number(input.value) < Number(max)) {\n input.stepUp()\n }\n } else {\n input.stepUp()\n }\n trigger(input, 'change')\n })\n\n return inputGroup\n }\n\n getFormInputField (type) {\n const el = super.getFormInputField(type)\n if (type !== 'checkbox' && type !== 'radio') {\n el.classList.add('form-control')\n if (this.options.input_size === 'small') el.classList.add('form-control-sm')\n if (this.options.input_size === 'large') el.classList.add('form-control-lg')\n }\n return el\n }\n\n getFormControl (label, input, description, infoText) {\n const group = document.createElement('div')\n group.classList.add('form-group')\n\n if (label && (input.type === 'checkbox' || input.type === 'radio')) {\n const check = document.createElement('div')\n\n check.classList.add('form-check')\n input.classList.add('form-check-input')\n label.classList.add('form-check-label')\n\n const unique = (Date.now() * Math.random()).toFixed(0)\n input.setAttribute('id', unique)\n label.setAttribute('for', unique)\n\n check.appendChild(input)\n check.appendChild(label)\n if (infoText) check.appendChild(infoText)\n\n group.appendChild(check)\n } else {\n if (label) {\n label.classList.add('form-label')\n group.appendChild(label)\n\n if (infoText) group.appendChild(infoText)\n }\n\n group.appendChild(input)\n }\n\n if (description) {\n group.appendChild(description)\n }\n\n return group\n }\n\n getInfoButton (text) {\n const button = document.createElement('button') /* shoud be a <button> but no fitting tbws style... */\n button.type = 'button'\n button.classList.add('ms-3', 'jsoneditor-twbs5-text-button')\n button.setAttribute('data-toggle', 'tooltip')\n button.setAttribute('data-placement', 'auto')\n button.title = text\n\n const icon = document.createTextNode('ⓘ')\n button.appendChild(icon)\n\n if (this.options.tooltip === 'bootstrap') {\n if (window.jQuery && window.jQuery().tooltip) {\n window.jQuery(button).tooltip()\n } else {\n // eslint-disable-next-line no-console\n console.warn('Could not find popper jQuery plugin of Bootstrap.')\n }\n } else if (this.options.tooltip === 'css') {\n button.classList.add('je-tooltip')\n } /* else -> nothing todo for native [title] handling */\n\n return button\n }\n\n /**\n * Generates a checkbox...\n *\n * Overwriten from master theme to get rid of inline styles.\n */\n getCheckbox () {\n const el = this.getFormInputField('checkbox')\n return el\n }\n\n /**\n * Multiple checkboxes in a row.\n *\n */\n getMultiCheckboxHolder (controls, label, description, infoText) {\n const el = document.createElement('div')\n el.classList.add('form-group')\n\n if (label) {\n el.appendChild(label)\n\n if (infoText) {\n label.appendChild(infoText)\n }\n }\n\n /* for inline view we need an container so it doesnt wrap in the \"row\" of the <label> */\n const container = document.createElement('div')\n\n Object.values(controls).forEach(c => {\n /* controls are already parsed by getFormControl() so they have an .form-group */\n /* wrapper we need to get rid of... */\n const ctrl = c.firstChild\n\n container.appendChild(ctrl)\n })\n\n el.appendChild(container)\n\n if (description) el.appendChild(description)\n\n return el\n }\n\n /**\n * Single radio element\n */\n getFormRadio (attributes) {\n const el = this.getFormInputField('radio')\n\n for (const key in attributes) {\n el.setAttribute(key, attributes[key])\n }\n el.classList.add('form-check-input')\n\n return el\n }\n\n /**\n * Add the <label> for the single radio from getFormRadio()\n *\n */\n getFormRadioLabel (text, req) {\n const el = document.createElement('label')\n\n el.classList.add('form-check-label')\n el.appendChild(document.createTextNode(text))\n return el\n }\n\n /**\n * Stack the radios from getFormRadio()/getFormRadioLabel()\n *\n */\n getFormRadioControl (label, input, compact) {\n const el = document.createElement('div')\n\n el.classList.add('form-check')\n\n el.appendChild(input)\n el.appendChild(label)\n\n if (compact) {\n el.classList.add('form-check-inline')\n }\n\n return el\n }\n\n getIndentedPanel () {\n const el = document.createElement('div')\n el.classList.add('card', 'card-body', 'my-3')\n\n if (this.options.object_background) {\n el.classList.add(this.options.object_background)\n }\n\n if (this.options.object_text) {\n el.classList.add(this.options.object_text)\n }\n\n /* for better twbs card styling we should be able to return a nested div */\n\n return el\n }\n\n getFormInputDescription (text) {\n const el = document.createElement('small')\n el.classList.add('form-text')\n el.classList.add('d-block')\n\n if (window.DOMPurify) {\n el.innerHTML = window.DOMPurify.sanitize(text)\n } else {\n el.textContent = this.cleanText(text)\n }\n\n return el\n }\n\n getHeader (text, pathDepth) {\n const el = document.createElement('h3')\n el.classList.add('card-title')\n el.classList.add('level-' + pathDepth)\n\n if (typeof text === 'string') {\n el.textContent = text\n } else {\n el.appendChild(text)\n }\n\n el.style.display = 'inline-block'\n\n return el\n }\n\n getHeaderButtonHolder () {\n const el = this.getButtonHolder()\n\n return el\n }\n\n getButtonHolder () {\n const el = document.createElement('span')\n el.classList.add('btn-group')\n return el\n }\n\n getFormButtonHolder (buttonAlign) {\n const el = this.getButtonHolder()\n el.classList.add('d-block')\n\n if (buttonAlign === 'center') el.classList.add('text-center')\n else if (buttonAlign === 'right') el.classList.add('text-end')\n\n return el\n }\n\n getButton (text, icon, title) {\n const el = super.getButton(text, icon, title)\n el.classList.add('btn', 'btn-secondary', 'btn-sm')\n return el\n }\n\n getTable () {\n const el = document.createElement('table')\n el.classList.add('table', 'table-sm')\n\n if (this.options.table_border) {\n el.classList.add('table-bordered')\n }\n\n if (this.options.table_zebrastyle) {\n el.classList.add('table-striped')\n }\n\n return el\n }\n\n getErrorMessage (text) {\n const el = document.createElement('div')\n el.classList.add('alert', 'alert-danger')\n el.setAttribute('role', 'alert')\n el.appendChild(document.createTextNode(text))\n return el\n }\n\n /**\n * input validation on <input>\n */\n addInputError (input, text) {\n if (!input.controlgroup) return\n\n input.controlgroup.classList.add('is-invalid')\n\n if (!input.errmsg) {\n input.errmsg = document.createElement('p')\n input.errmsg.classList.add('invalid-feedback')\n input.controlgroup.appendChild(input.errmsg)\n input.errmsg.style.display = 'block'\n }\n\n input.errmsg.style.display = 'block'\n input.errmsg.textContent = text\n }\n\n removeInputError (input) {\n if (!input.errmsg) return\n input.errmsg.style.display = 'none'\n input.controlgroup.classList.remove('is-invalid')\n }\n\n getTabHolder (propertyName) {\n const el = document.createElement('div')\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\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>`\n el.classList.add('row')\n return el\n }\n\n addTab (holder, tab) {\n holder.children[0].children[0].appendChild(tab)\n }\n\n getTabContentHolder (tabHolder) {\n return tabHolder.children[1].children[0]\n }\n\n getTopTabHolder (propertyName) {\n const pName = (typeof propertyName === 'undefined') ? '' : propertyName\n\n const el = document.createElement('div')\n el.classList.add('card')\n\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>`\n\n return el\n }\n\n getTab (text, tabId) {\n const liel = document.createElement('li')\n liel.classList.add('nav-item')\n\n const ael = document.createElement('a')\n ael.classList.add('nav-link')\n ael.setAttribute('href', `#${tabId}`)\n ael.setAttribute('data-toggle', 'tab')\n ael.appendChild(text)\n\n liel.appendChild(ael)\n\n return liel\n }\n\n getTopTab (text, tabId) {\n const el = document.createElement('li')\n el.classList.add('nav-item')\n\n const a = document.createElement('a')\n a.classList.add('nav-link')\n a.setAttribute('href', `#${tabId}`)\n a.setAttribute('data-toggle', 'tab')\n a.appendChild(text)\n\n el.appendChild(a)\n\n return el\n }\n\n getTabContent () {\n const el = document.createElement('div')\n el.classList.add('tab-pane')\n el.setAttribute('role', 'tabpanel')\n return el\n }\n\n getTopTabContent () {\n const el = document.createElement('div')\n el.classList.add('tab-pane')\n el.setAttribute('role', 'tabpanel')\n return el\n }\n\n markTabActive (row) {\n row.tab.firstChild.classList.add('active')\n\n if (typeof row.rowPane !== 'undefined') {\n row.rowPane.classList.add('active')\n } else {\n row.container.classList.add('active')\n }\n }\n\n markTabInactive (row) {\n row.tab.firstChild.classList.remove('active')\n\n if (typeof row.rowPane !== 'undefined') {\n row.rowPane.classList.remove('active')\n } else {\n row.container.classList.remove('active')\n }\n }\n\n insertBasicTopTab (tab, newTabsHolder) {\n newTabsHolder.children[0].children[0].insertBefore(tab, newTabsHolder.children[0].children[0].firstChild)\n }\n\n addTopTab (holder, tab) {\n holder.children[0].children[0].appendChild(tab)\n }\n\n getTopTabContentHolder (tabHolder) {\n return tabHolder.children[1].children[0]\n }\n\n getFirstTab (holder) {\n return holder.firstChild.firstChild.firstChild\n }\n\n getProgressBar () {\n const min = 0\n const max = 100\n const start = 0\n\n const container = document.createElement('div')\n container.classList.add('progress')\n\n const bar = document.createElement('div')\n bar.classList.add('progress-bar')\n bar.setAttribute('role', 'progressbar')\n bar.setAttribute('aria-valuenow', start)\n bar.setAttribute('aria-valuemin', min)\n bar.setAttribute('aria-valuenax', max)\n bar.innerHTML = `${start}%`\n container.appendChild(bar)\n\n return container\n }\n\n updateProgressBar (progressBar, progress) {\n if (!progressBar) return\n\n const bar = progressBar.firstChild\n const percentage = `${progress}%`\n bar.setAttribute('aria-valuenow', progress)\n bar.style.width = percentage\n bar.innerHTML = percentage\n }\n\n updateProgressBarUnknown (progressBar) {\n if (!progressBar) return\n\n const bar = progressBar.firstChild\n progressBar.classList.add('progress', 'progress-striped', 'active')\n bar.removeAttribute('aria-valuenow')\n bar.style.width = '100%'\n bar.innerHTML = ''\n }\n\n getBlockLink () {\n const link = document.createElement('a')\n link.classList.add('mb-3', 'd-inline-block')\n return link\n }\n\n /**\n * Link after successfull upload\n */\n getLinksHolder () {\n const el = document.createElement('div')\n return el\n }\n\n getInputGroup (input, buttons) {\n if (!input) return\n\n const inputGroupContainer = document.createElement('div')\n inputGroupContainer.classList.add('input-group')\n\n inputGroupContainer.appendChild(input)\n\n for (let i = 0; i < buttons.length; i++) {\n /* this uses the getButton() wrapper, so we have to remove the panel/ctrl spacing for this case */\n buttons[i].classList.remove('me-2', 'btn-secondary')\n buttons[i].classList.add('btn-outline-secondary')\n\n inputGroupContainer.appendChild(buttons[i])\n }\n\n return inputGroupContainer\n }\n}\n\n/* Custom stylesheet rules. format: \"selector\" : \"CSS rules\" */\nbootstrap5Theme.rules = rules\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'\nimport rules from './html.css.js'\n\nexport class htmlTheme extends AbstractTheme {\n getFormInputLabel (text, req) {\n const el = super.getFormInputLabel(text, req)\n el.classList.add('je-form-input-label')\n return el\n }\n\n getFormInputDescription (text) {\n const el = super.getFormInputDescription(text)\n el.classList.add('je-form-input-label')\n return el\n }\n\n getIndentedPanel () {\n const el = super.getIndentedPanel()\n el.classList.add('je-indented-panel')\n return el\n }\n\n getTopIndentedPanel () {\n return this.getIndentedPanel()\n }\n\n getChildEditorHolder () {\n const el = super.getChildEditorHolder()\n el.classList.add('je-child-editor-holder')\n return el\n }\n\n getHeaderButtonHolder () {\n const el = this.getButtonHolder()\n el.classList.add('je-header-button-holder')\n return el\n }\n\n getTable () {\n const el = super.getTable()\n el.classList.add('je-table')\n return el\n }\n\n addInputError (input, text) {\n const group = this.closest(input, '.form-control') || input.controlgroup\n\n if (!input.errmsg) {\n input.errmsg = document.createElement('div')\n input.errmsg.setAttribute('class', 'errmsg')\n input.errmsg.style = input.errmsg.style || {}\n input.errmsg.style.color = 'red'\n group.appendChild(input.errmsg)\n } else {\n input.errmsg.style.display = 'block'\n }\n\n input.errmsg.innerHTML = ''\n input.errmsg.appendChild(document.createTextNode(text))\n }\n\n removeInputError (input) {\n if (input.style) {\n input.style.borderColor = ''\n }\n if (input.errmsg) input.errmsg.style.display = 'none'\n }\n}\n\n/* Custom stylesheet rules. format: \"selector\" : \"CSS rules\" */\nhtmlTheme.rules = rules\n","\nimport { htmlTheme } from './html.js'\n// import { bootstrap2Theme } from './bootstrap2'\nimport { bootstrap3Theme } from './bootstrap3.js'\nimport { bootstrap4Theme } from './bootstrap4.js'\nimport { bootstrap5Theme } from './bootstrap5.js'\n// import { foundationTheme, foundation3Theme, foundation4Theme, foundation5Theme, foundation6Theme } from './foundation.js'\nimport { jqueryuiTheme } from './jqueryui.js'\nimport { barebonesTheme } from './barebones.js'\n// import { materializeTheme } from './materialize'\nimport { spectreTheme } from './spectre.js'\nimport { tailwindTheme } from './tailwind.js'\n\nexport const themes = {\n html: htmlTheme,\n // bootstrap2: bootstrap2Theme,\n bootstrap3: bootstrap3Theme,\n bootstrap4: bootstrap4Theme,\n bootstrap5: bootstrap5Theme,\n // foundation: foundationTheme,\n // foundation3: foundation3Theme,\n // foundation4: foundation4Theme,\n // foundation5: foundation5Theme,\n // foundation6: foundation6Theme,\n jqueryui: jqueryuiTheme,\n barebones: barebonesTheme,\n // materialize: materializeTheme,\n spectre: spectreTheme,\n tailwind: tailwindTheme\n}\n","import { AbstractTheme } from '../theme.js'\n\nexport class jqueryuiTheme extends AbstractTheme {\n getTable () {\n const el = super.getTable()\n el.setAttribute('cellpadding', 5)\n el.setAttribute('cellspacing', 0)\n return el\n }\n\n getTableHeaderCell (text) {\n const el = super.getTableHeaderCell(text)\n el.classList.add('ui-state-active')\n el.style.fontWeight = 'bold'\n return el\n }\n\n getTableCell () {\n const el = super.getTableCell()\n el.classList.add('ui-widget-content')\n return el\n }\n\n getHeaderButtonHolder () {\n const el = this.getButtonHolder()\n el.style.marginLeft = '10px'\n el.style.fontSize = '.6em'\n el.style.display = 'inline-block'\n return el\n }\n\n getFormInputDescription (text) {\n const el = this.getDescription(text)\n el.style.marginLeft = '10px'\n el.style.display = 'inline-block'\n return el\n }\n\n getFormControl (label, input, description, infoText) {\n const el = super.getFormControl(label, input, description, infoText)\n if (input.type === 'checkbox') {\n el.style.lineHeight = '25px'\n\n el.style.padding = '3px 0'\n } else {\n el.style.padding = '4px 0 8px 0'\n }\n return el\n }\n\n getDescription (text) {\n const el = document.createElement('span')\n el.style.fontSize = '.8em'\n el.style.fontStyle = 'italic'\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text)\n else el.textContent = this.cleanText(text)\n return el\n }\n\n getButtonHolder () {\n const el = document.createElement('div')\n el.classList.add('ui-buttonset')\n el.style.fontSize = '.7em'\n return el\n }\n\n getFormInputLabel (text, req) {\n const el = document.createElement('label')\n el.style.fontWeight = 'bold'\n el.style.display = 'block'\n el.textContent = text\n if (req) el.classList.add('required')\n return el\n }\n\n getButton (text, icon, title) {\n const button = document.createElement('button')\n button.classList.add('ui-button', 'ui-widget', 'ui-state-default', 'ui-corner-all')\n\n /* Icon only */\n if (icon && !text) {\n button.classList.add('ui-button-icon-only')\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary')\n button.appendChild(icon)\n /* Icon and Text */\n } else if (icon) {\n button.classList.add('ui-button-text-icon-primary')\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary')\n button.appendChild(icon)\n /* Text only */\n } else {\n button.classList.add('ui-button-text-only')\n }\n\n const el = document.createElement('span')\n el.classList.add('ui-button-text')\n el.textContent = text || title || '.'\n button.appendChild(el)\n\n button.setAttribute('title', title)\n\n return button\n }\n\n setButtonText (button, text, icon, title) {\n button.innerHTML = ''\n button.classList.add('ui-button', 'ui-widget', 'ui-state-default', 'ui-corner-all')\n\n /* Icon only */\n if (icon && !text) {\n button.classList.add('ui-button-icon-only')\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary')\n button.appendChild(icon)\n /* Icon and Text */\n } else if (icon) {\n button.classList.add('ui-button-text-icon-primary')\n icon.classList.add('ui-button-icon-primary', 'ui-icon-primary')\n button.appendChild(icon)\n /* Text only */\n } else {\n button.classList.add('ui-button-text-only')\n }\n\n const el = document.createElement('span')\n el.classList.add('ui-button-text')\n el.textContent = text || title || '.'\n button.appendChild(el)\n\n button.setAttribute('title', title)\n }\n\n getIndentedPanel () {\n const el = document.createElement('div')\n el.classList.add('ui-widget-content', 'ui-corner-all')\n el.style.padding = '1em 1.4em'\n el.style.marginBottom = '20px'\n return el\n }\n\n afterInputReady (input) {\n if (input.controls) return\n input.controls = this.closest(input, '.form-control')\n if (this.queuedInputErrorText) {\n const text = this.queuedInputErrorText\n delete this.queuedInputErrorText\n this.addInputError(input, text)\n }\n }\n\n addInputError (input, text) {\n if (!input.controls) {\n this.queuedInputErrorText = text\n return\n }\n if (!input.errmsg) {\n input.errmsg = document.createElement('div')\n input.errmsg.classList.add('ui-state-error')\n input.controls.appendChild(input.errmsg)\n } else {\n input.errmsg.style.display = ''\n }\n\n input.errmsg.textContent = text\n }\n\n removeInputError (input) {\n if (!input.controls) {\n delete this.queuedInputErrorText\n }\n if (!input.errmsg) return\n input.errmsg.style.display = 'none'\n }\n\n markTabActive (row) {\n row.tab.classList.remove('ui-widget-header')\n row.tab.classList.add('ui-state-active')\n\n if (typeof row.rowPane !== 'undefined') {\n row.rowPane.style.display = ''\n } else {\n row.container.style.display = ''\n }\n }\n\n markTabInactive (row) {\n row.tab.classList.add('ui-widget-header')\n row.tab.classList.remove('ui-state-active')\n\n if (typeof row.rowPane !== 'undefined') {\n row.rowPane.style.display = 'none'\n } else {\n row.container.style.display = 'none'\n }\n }\n}\n\n/* Custom stylesheet rules. format: \"selector\" : \"CSS rules\" */\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\"' }\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> */\nimport { AbstractTheme } from '../theme.js'\nimport rules from './spectre.css.js'\n\n/* Config options that allows changing various aspects of the output */\nconst options = {\n disable_theme_rules: false, /* Disable creation of Inline Style Rules */\n label_bold: true, /* Element labels bold */\n align_bottom: false, /* Align elements to bottom of flex container */\n object_indent: false, /* Indent nested object elements */\n object_border: false, /* Add border around object elements */\n table_border: false, /* Add border to array \"table\" row and cells */\n table_zebrastyle: false, /* Add \"zebra style\" to array \"table\" rows */\n input_size: 'normal' /* Size of input and select elements. \"small\", \"normal\", \"large\" */\n}\n\nexport class spectreTheme extends AbstractTheme {\n constructor (jsoneditor) {\n super(jsoneditor, options)\n }\n\n /* Functions for setting up the grid container, row and columns */\n setGridColumnSize (el, size, offset) {\n el.classList.add(`col-${size}`)\n if (offset) el.classList.add('col-mx-auto')\n }\n\n getGridContainer () {\n const el = document.createElement('div')\n el.classList.add('container')\n if (!this.options.object_indent) el.classList.add('je-noindent')\n return el\n }\n\n getGridRow () {\n const el = document.createElement('div')\n el.classList.add('columns')\n return el\n }\n\n getGridColumn () {\n const el = document.createElement('div')\n el.classList.add('column')\n if (this.options.align_bottom) el.classList.add('je-align-bottom')\n return el\n }\n\n /* Used for \"type: object\" or \"type: array\" (except if \"format: tabs-top\") */\n getIndentedPanel () {\n const el = document.createElement('div')\n el.classList.add('je-panel')\n if (this.options.object_border) el.classList.add('je-border')\n return el\n }\n\n /* Used for \"type: array\" with \"format: tabs-top\" */\n getTopIndentedPanel () {\n const el = document.createElement('div')\n el.classList.add('je-panel-top')\n if (this.options.object_border) el.classList.add('je-border')\n return el\n }\n\n /* Button functions */\n getHeaderButtonHolder () {\n const el = this.getButtonHolder()\n return el\n }\n\n /* Button holder for the buttons */\n getButtonHolder () {\n const el = super.getButtonHolder()\n el.classList.add('btn-group')\n return el\n }\n\n getFormButtonHolder (buttonAlign) {\n const el = super.getFormButtonHolder()\n el.classList.remove('btn-group')\n el.classList.add('d-block')\n if (buttonAlign === 'center') el.classList.add('text-center')\n else if (buttonAlign === 'right') el.classList.add('text-right')\n else el.classList.add('text-left')\n return el\n }\n\n getFormButton (text, icon, title) {\n const el = super.getFormButton(text, icon, title)\n el.classList.add('btn', 'btn-primary', 'mx-2', 'my-1')\n if (this.options.input_size !== 'small') el.classList.remove('btn-sm')\n if (this.options.input_size === 'large') el.classList.add('btn-lg')\n return el\n }\n\n getButton (text, icon, title) {\n const el = super.getButton(text, icon, title)\n el.classList.add('btn', 'btn-sm', 'btn-primary', 'mr-2', 'my-1')\n return el\n }\n\n getHeader (text, pathDepth) {\n const el = document.createElement('h4')\n if (typeof text === 'string') {\n el.textContent = text\n } else {\n el.appendChild(text)\n }\n\n el.style.display = 'inline-block'\n\n return el\n }\n\n getFormInputDescription (text) {\n const el = super.getFormInputDescription(text)\n el.classList.add('je-desc', 'hide-sm')\n return el\n }\n\n /* Label for all elements except checkbox and radio */\n getFormInputLabel (text, req) {\n const el = super.getFormInputLabel(text, req)\n if (this.options.label_bold) el.classList.add('je-label')\n return el\n }\n\n /* Checkbox elements */\n /* ToDo: Rename function names for consistency */\n getCheckbox () {\n const el = this.getFormInputField('checkbox')\n return el\n }\n\n getCheckboxLabel (text, req) {\n const el = super.getCheckboxLabel(text, req); const icon = document.createElement('i')\n icon.classList.add('form-icon')\n el.classList.add('form-checkbox', 'pr-0')\n el.insertBefore(icon, el.firstChild)\n return el\n }\n\n getFormCheckboxControl (label, input, compact) {\n label.insertBefore(input, label.firstChild) /* Move input into label element */\n if (compact) label.classList.add('form-inline')\n return label\n }\n\n getMultiCheckboxHolder (controls, label, description, infoText) {\n return super.getMultiCheckboxHolder(controls, label, description, infoText)\n }\n\n /* Radio elements */\n getFormRadio (attributes) {\n const el = this.getFormInputField('radio')\n for (const key in attributes) {\n el.setAttribute(key, attributes[key])\n }\n return el\n }\n\n getFormRadioLabel (text, req) {\n const el = super.getFormRadioLabel(text, req); const icon = document.createElement('i')\n icon.classList.add('form-icon')\n el.classList.add('form-radio')\n el.insertBefore(icon, el.firstChild)\n return el\n }\n\n getFormRadioControl (label, input, compact) {\n label.insertBefore(input, label.firstChild) /* Move input into label element */\n if (compact) label.classList.add('form-inline')\n return label\n }\n\n /* Create input field */\n getFormInputField (type) {\n const el = super.getFormInputField(type)\n if (!['checkbox', 'radio'].includes(type)) {\n el.classList.add('form-input')\n }\n return el\n }\n\n /* Create input field for type=\"range\" */\n getRangeInput (min, max, step) {\n const el = this.getFormInputField('range')\n el.classList.add('slider')\n el.classList.remove('form-input')\n el.setAttribute('oninput', 'this.setAttribute(\"value\", this.value)')\n el.setAttribute('min', min)\n el.setAttribute('max', max)\n el.setAttribute('step', step)\n return el\n }\n\n getRangeControl (input, output) {\n const el = super.getRangeControl(input, output)\n el.classList.add('text-center')\n return el\n }\n\n /* Create select box field */\n getSelectInput (options, multiple) {\n const el = super.getSelectInput(options)\n el.classList.add('form-select')\n return el\n }\n\n /* Create textarea field */\n getTextareaInput () {\n const el = document.createElement('textarea')\n el.classList.add('form-input')\n return el\n }\n\n getFormControl (label, input, description, infoText) {\n const group = document.createElement('div')\n group.classList.add('form-group')\n\n if (label && (input.type === 'checkbox' || input.type === 'radio')) {\n group.classList.add(input.type)\n if (infoText) label.appendChild(infoText)\n label.insertBefore(input, label.firstChild)\n group.appendChild(label)\n } else {\n if (label) {\n label.classList.add('form-label')\n group.appendChild(label)\n if (infoText) label.appendChild(infoText)\n }\n group.appendChild(input)\n }\n\n if (this.options.input_size === 'small') input.classList.add('input-sm', 'select-sm')\n else if (this.options.input_size === 'large') input.classList.add('input-lg', 'select-lg')\n if (input.type !== 'checkbox') group.appendChild(input)\n\n if (description) group.appendChild(description)\n\n return group\n }\n\n /* Create input group (input field with buttons) */\n getInputGroup (input, buttons) {\n if (!input) return\n\n const inputGroup = document.createElement('div')\n inputGroup.classList.add('input-group')\n inputGroup.appendChild(input)\n for (let i = 0; i < buttons.length; i++) {\n buttons[i].classList.add('input-group-btn')\n buttons[i].classList.remove('btn-sm', 'mr-2', 'my-1')\n inputGroup.appendChild(buttons[i])\n }\n\n return inputGroup\n }\n\n /* Create button for displaying infotext tooltip */\n getInfoButton (text) {\n const popover = document.createElement('div')\n popover.classList.add('popover', 'popover-left', 'float-right')\n\n const button = document.createElement('button')\n button.classList.add('btn', 'btn-secondary', 'btn-info', 'btn-action', 's-circle')\n button.setAttribute('tabindex', '-1') /* exclude element from tab order */\n popover.appendChild(button)\n\n const icon = document.createTextNode('I')\n button.appendChild(icon)\n\n const container = document.createElement('div')\n container.classList.add('popover-container')\n popover.appendChild(container)\n\n const card = document.createElement('div')\n card.classList.add('card')\n container.appendChild(card)\n\n const cardbody = document.createElement('div')\n cardbody.classList.add('card-body')\n cardbody.innerHTML = text\n card.appendChild(cardbody)\n\n return popover\n }\n\n /* Functions for rendering array with format: \"table\" */\n getTable () {\n const el = super.getTable()\n el.classList.add('table', 'table-scroll')\n if (this.options.table_border) el.classList.add('je-table-border')\n if (this.options.table_zebrastyle) el.classList.add('table-striped')\n return el\n }\n\n /* Function for rendering progressbar */\n getProgressBar () {\n const progressBar = super.getProgressBar()\n progressBar.classList.add('progress')\n return progressBar\n }\n\n /* Containers for array with format: \"tab\" */\n getTabHolder (propertyName) {\n const pName = typeof propertyName === 'undefined' ? '' : propertyName\n const el = document.createElement('div')\n el.classList.add('columns')\n el.innerHTML = `<div class=\"column col-2\"></div><div class=\"column col-10 content\" id=\"${pName}\"></div>`\n return el\n }\n\n /* Containers for array with format: \"tab-top\" */\n getTopTabHolder (propertyName) {\n const pName = typeof propertyName === 'undefined' ? '' : propertyName\n const el = document.createElement('div')\n el.innerHTML = `<ul class=\"tab\"></ul><div class=\"content\" id=\"${pName}\"></div>`\n return el\n }\n\n /* Tab button for array with format: \"tab\" */\n getTab (span, tabId) {\n const el = document.createElement('a')\n el.classList.add('btn', 'btn-secondary', 'btn-block')\n el.setAttribute('href', `#${tabId}`)\n el.appendChild(span)\n return el\n }\n\n /* Tab button for array with format: \"tab-top\" */\n getTopTab (span, tabId) {\n const el = document.createElement('li')\n el.id = tabId\n el.classList.add('tab-item')\n\n /* Spectre needs an a tag inside the tab item, not a span */\n const a = document.createElement('a')\n a.setAttribute('href', `#${tabId}`)\n a.appendChild(span)\n\n el.appendChild(a)\n return el\n }\n\n markTabActive (row) {\n row.tab.classList.add('active')\n if (typeof row.rowPane !== 'undefined') row.rowPane.style.display = ''\n else row.container.style.display = ''\n }\n\n markTabInactive (row) {\n row.tab.classList.remove('active')\n if (typeof row.rowPane !== 'undefined') row.rowPane.style.display = 'none'\n else row.container.style.display = 'none'\n }\n\n afterInputReady (input) {\n if (input.localName === 'select') {\n /* Selectize adjustments */\n if (input.classList.contains('selectized')) {\n const selectized = input.nextSibling\n if (selectized) {\n /* Remove Spectre class 'form-select' as this conflicts with Selectize styling */\n selectized.classList.remove('form-select')\n Array.from(selectized.querySelectorAll('.form-select')).forEach(el => {\n el.classList.remove('form-select')\n })\n }\n /* Select2 ajustments */\n } else if (input.classList.contains('select2-hidden-accessible')) {\n const select2 = input.nextSibling\n const single = select2 && select2.querySelector('.select2-selection--single')\n /* Add Spectre 'form-select' to single-select2 elements */\n if (single) select2.classList.add('form-select')\n }\n }\n\n if (input.controlgroup) return\n input.controlgroup = this.closest(input, '.form-group')\n if (this.closest(input, '.compact')) {\n input.controlgroup.style.marginBottom = 0\n }\n }\n\n /* Controls output of errormessages displayed in form */\n addInputError (input, text) {\n if (!input.controlgroup) return\n input.controlgroup.classList.add('has-error')\n if (!input.errmsg) {\n input.errmsg = document.createElement('p')\n input.errmsg.classList.add('form-input-hint')\n input.controlgroup.appendChild(input.errmsg)\n }\n input.errmsg.classList.remove('d-hide')\n input.errmsg.textContent = text\n }\n\n removeInputError (input) {\n if (!input.errmsg) return\n input.errmsg.classList.add('d-hide')\n input.controlgroup.classList.remove('has-error')\n }\n}\n\n/* Custom stylesheet rules. (Does not support comma separated selectors) */\n/* Will create a stylesheet in document head with the id \"theme-spectre\" if not exists. */\nspectreTheme.rules = rules\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'\nimport rules from './tailwind.css.js'\n\nconst options = {\n disable_theme_rules: false, /* Disable creation of Inline Style Rules */\n label_bold: false, /* Element labels bold */\n object_panel_default: true, /* Indicates whether to use rules as default or alternate style */\n object_indent: true, /* Indent nested object elements */\n object_border: false, /* Add border around object elements */\n table_border: false, /* Add border to array \"table\" row and cells */\n table_hdiv: false, /* Add bottom-border to array \"table\" cells */\n table_zebrastyle: false, /* Add \"zebra style\" to array \"table\" rows */\n input_size: 'small', /* Size of input and select elements. \"small\", \"normal\", \"large\" */\n enable_compact: false\n}\n\nexport class tailwindTheme extends AbstractTheme {\n constructor (jsoneditor) {\n super(jsoneditor, options)\n }\n\n getGridContainer () {\n const el = document.createElement('div')\n el.classList.add('flex', 'flex-col', 'w-full')\n if (!this.options.object_indent) el.classList.add('je-noindent')\n return el\n }\n\n getGridRow () {\n const el = document.createElement('div')\n el.classList.add('flex', 'flex-wrap', 'w-full')\n return el\n }\n\n getGridColumn () {\n const el = document.createElement('div')\n el.classList.add('flex', 'flex-col')\n return el\n }\n\n setGridColumnSize (el, size, offset) {\n if (size > 0 && size < 12) { el.classList.add(`w-${size}/12`, 'px-1') } else el.classList.add('w-full', 'px-1')\n\n if (offset) el.style.marginLeft = `${(100 / 12) * offset}%`\n }\n\n getIndentedPanel () {\n const el = document.createElement('div')\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') }\n if (this.options.object_border) el.classList.add('je-border')\n return el\n }\n\n /* Used for \"type: array\" with \"format: tabs-top\" */\n getTopIndentedPanel () {\n const el = document.createElement('div')\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') }\n if (this.options.object_border) el.classList.add('je-border')\n return el\n }\n\n getTitle () {\n return this.translateProperty(this.schema.title)\n }\n\n getSelectInput (options, multiple) {\n const el = super.getSelectInput(options)\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')\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')\n if (this.options.enable_compact) el.classList.add('compact')\n return el\n }\n\n afterInputReady (input) {\n if (input.controlgroup) return\n input.controlgroup = this.closest(input, '.form-group')\n if (this.closest(input, '.compact')) {\n input.controlgroup.style.marginBottom = 0\n }\n }\n\n getTextareaInput () {\n const el = super.getTextareaInput()\n el.classList.add('block', 'w-full', 'px-1', 'text-sm', 'leading-normal', 'bg-white', 'text-black', 'border', 'border-grey', 'rounded')\n if (this.options.enable_compact) el.classList.add('compact')\n el.style.height = 0\n return el\n }\n\n /* Create input field for type=\"range\" */\n getRangeInput (min, max, step) {\n const el = this.getFormInputField('range')\n el.classList.add('slider')\n if (this.options.enable_compact) el.classList.add('compact')\n el.setAttribute('oninput', 'this.setAttribute(\"value\", this.value)')\n el.setAttribute('min', min)\n el.setAttribute('max', max)\n el.setAttribute('step', step)\n return el\n }\n\n getRangeControl (input, output) {\n const el = super.getRangeControl(input, output)\n el.classList.add('text-center', 'text-black')\n return el\n }\n\n /* Checkbox elements */\n getCheckbox () {\n const el = this.getFormInputField('checkbox')\n el.classList.add('form-checkbox', 'text-red-600')\n return el\n }\n\n getCheckboxLabel (text, req) {\n const el = super.getCheckboxLabel(text, req)\n el.classList.add('inline-flex', 'items-center')\n return el\n }\n\n getFormCheckboxControl (label, input, compact) {\n label.insertBefore(input, label.firstChild) /* Move input into label element */\n if (compact) label.classList.add('inline-flex flex-row')\n return label\n }\n\n getMultiCheckboxHolder (controls, label, description, infoText) {\n const el = super.getMultiCheckboxHolder(controls, label, description, infoText)\n el.classList.add('inline-flex', 'flex-col')\n return el\n }\n\n /* Radio elements */\n getFormRadio (attributes) {\n const el = this.getFormInputField('radio')\n el.classList.add('form-radio', 'text-red-600')\n for (const key in attributes) {\n el.setAttribute(key, attributes[key])\n }\n return el\n }\n\n getFormRadioLabel (text, req) {\n const el = super.getFormRadioLabel(text, req)\n el.classList.add('inline-flex', 'items-center', 'mr-2')\n return el\n }\n\n getFormRadioControl (label, input, compact) {\n label.insertBefore(input, label.firstChild) /* Move input into label element */\n if (compact) label.classList.add('form-radio')\n return label\n }\n\n getRadioHolder (schema, controls, label, description, infoText) {\n const el = super.getRadioHolder(controls, label, description, infoText)\n if (schema.options.layout === 'h') el.classList.add('inline-flex', 'flex-row')\n else el.classList.add('inline-flex', 'flex-col')\n return el\n }\n\n getFormInputLabel (text, req) {\n const el = super.getFormInputLabel(text, req)\n if (this.options.label_bold) el.classList.add('font-bold')\n else el.classList.add('required')\n return el\n }\n\n getFormInputField (type) {\n const el = super.getFormInputField(type)\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')\n if (this.options.enable_compact) el.classList.add('compact')\n return el\n }\n\n getFormInputDescription (text) {\n const el = document.createElement('p')\n el.classList.add('block', 'mt-1', 'text-xs')\n if (window.DOMPurify) el.innerHTML = window.DOMPurify.sanitize(text)\n else el.textContent = this.cleanText(text)\n return el\n }\n\n getFormControl (label, input, description, infoText) {\n const group = document.createElement('div')\n group.classList.add('form-group', 'mb-1', 'w-full')\n if (label) {\n label.classList.add('text-xs')\n\n if (input.type === 'checkbox') {\n input.classList.add('form-checkbox', 'text-xs', 'text-red-600', 'mr-1')\n label.classList.add('items-center', 'flex')\n label = this.getFormCheckboxControl(label, input, false, infoText)\n }\n\n if (input.type === 'radio') {\n input.classList.add('form-radio', 'text-red-600', 'mr-1')\n label.classList.add('items-center', 'flex')\n label = this.getFormRadioControl(label, input, false, infoText)\n }\n group.appendChild(label)\n\n if (!['checkbox', 'radio'].includes(input.type) && infoText) group.appendChild(infoText)\n }\n if (!['checkbox', 'radio'].includes(input.type)) {\n if (this.options.input_size === 'small') input.classList.add('text-xs')\n else if (this.options.input_size === 'normal') input.classList.add('text-base')\n else if (this.options.input_size === 'large') input.classList.add('text-xl')\n group.appendChild(input)\n }\n\n if (description) group.appendChild(description)\n\n return group\n }\n\n getHeaderButtonHolder () {\n const el = this.getButtonHolder()\n el.classList.add('text-sm')\n return el\n }\n\n getButtonHolder () {\n const el = document.createElement('div')\n el.classList.add('flex', 'relative', 'inline-flex', 'align-middle')\n return el\n }\n\n getButton (text, icon, title) {\n const el = super.getButton(text, icon, title)\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')\n return el\n }\n\n /* Button for displaying infotext tooltip */\n getInfoButton (text) {\n const tooltip = document.createElement('a')\n tooltip.classList.add('tooltips', 'float-right')\n tooltip.innerHTML = 'ⓘ'\n const span = document.createElement('span')\n span.innerHTML = text\n tooltip.appendChild(span)\n\n return tooltip\n }\n\n getTable () {\n const el = super.getTable()\n if (this.options.table_border) el.classList.add('je-table-border')\n else el.classList.add('table', 'border', 'p-0')\n return el\n }\n\n getTableRow () {\n const el = super.getTableRow()\n if (this.options.table_border) el.classList.add('je-table-border')\n if (this.options.table_zebrastyle) el.classList.add('je-table-zebra')\n return el\n }\n\n getTableHeaderCell (text) {\n const el = super.getTableHeaderCell(text)\n if (this.options.table_border) el.classList.add('je-table-border')\n else if (this.options.table_hdiv) el.classList.add('je-table-hdiv')\n else el.classList.add('text-xs', 'border', 'p-0', 'm-0')\n return el\n }\n\n getTableCell () {\n const el = super.getTableCell()\n if (this.options.table_border) el.classList.add('je-table-border')\n else if (this.options.table_hdiv) el.classList.add('je-table-hdiv')\n else el.classList.add('border-0', 'p-0', 'm-0')\n return el\n }\n\n addInputError (input, text) {\n if (!input.controlgroup) return\n input.controlgroup.classList.add('has-error')\n input.controlgroup.classList.add('text-red-600')\n if (!input.errmsg) {\n input.errmsg = document.createElement('p')\n input.errmsg.classList.add('block', 'mt-1', 'text-xs', 'text-red')\n input.controlgroup.appendChild(input.errmsg)\n } else {\n input.errmsg.style.display = ''\n }\n input.errmsg.textContent = text\n }\n\n removeInputError (input) {\n if (!input.errmsg) return\n input.errmsg.style.display = 'none'\n input.controlgroup.classList.remove('text-red-600')\n input.controlgroup.classList.remove('has-error')\n }\n\n getTabHolder (propertyName) {\n const el = document.createElement('div')\n const pName = typeof propertyName === 'undefined' ? '' : propertyName\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>`\n el.classList.add('flex')\n return el\n }\n\n addTab (holder, tab) {\n holder.children[0].children[0].appendChild(tab)\n }\n\n getTopTabHolder (propertyName) {\n const pName = typeof propertyName === 'undefined' ? '' : propertyName\n const el = document.createElement('div')\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>`\n return el\n }\n\n getTab (text, tabId) {\n const liel = document.createElement('li')\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')\n const ael = document.createElement('a')\n ael.classList.add('nav-link', 'text-center')\n ael.setAttribute('href', `#${tabId}`)\n ael.setAttribute('data-toggle', 'tab')\n ael.appendChild(text)\n liel.appendChild(ael)\n return liel\n }\n\n getTopTab (text, tabId) {\n const el = document.createElement('li')\n el.classList.add('nav-item', 'flex', 'border-l', 'border-t', 'border-r')\n const a = document.createElement('a')\n a.classList.add('nav-link', '-mb-px', 'flex-row', 'text-center', 'bg-white', 'p-2', 'hover:bg-blue-400', 'rounded-t')\n a.setAttribute('href', `#${tabId}`)\n a.setAttribute('data-toggle', 'tab')\n a.appendChild(text)\n el.appendChild(a)\n return el\n }\n\n getTabContent () {\n const el = document.createElement('div')\n el.setAttribute('role', 'tabpanel')\n return el\n }\n\n getTopTabContent () {\n const el = document.createElement('div')\n el.setAttribute('role', 'tabpanel')\n return el\n }\n\n markTabActive (row) {\n row.tab.firstChild.classList.add('block')\n if (row.tab.firstChild.classList.contains('border-b') === true) {\n row.tab.firstChild.classList.add('border-b-0')\n row.tab.firstChild.classList.remove('border-b')\n } else {\n row.tab.firstChild.classList.add('border-b-0')\n }\n if (row.container.classList.contains('hidden') === true) {\n row.container.classList.remove('hidden')\n row.container.classList.add('block')\n } else {\n row.container.classList.add('block')\n }\n }\n\n markTabInactive (row) {\n if (row.tab.firstChild.classList.contains('border-b-0') === true) {\n row.tab.firstChild.classList.add('border-b')\n row.tab.firstChild.classList.remove('border-b-0')\n } else {\n row.tab.firstChild.classList.add('border-b')\n }\n if (row.container.classList.contains('block') === true) {\n row.container.classList.remove('block')\n row.container.classList.add('hidden')\n }\n }\n\n getProgressBar () {\n const min = 0\n const max = 100\n const start = 0\n\n const container = document.createElement('div')\n container.classList.add('progress')\n\n const bar = document.createElement('div')\n bar.classList.add('bg-blue', 'leading-none', 'py-1', 'text-xs', 'text-center', 'text-white')\n bar.setAttribute('role', 'progressbar')\n bar.setAttribute('aria-valuenow', start)\n bar.setAttribute('aria-valuemin', min)\n bar.setAttribute('aria-valuenax', max)\n bar.innerHTML = `${start}%`\n container.appendChild(bar)\n\n return container\n }\n\n updateProgressBar (progressBar, progress) {\n if (!progressBar) return\n\n const bar = progressBar.firstChild\n const percentage = `${progress}%`\n bar.setAttribute('aria-valuenow', progress)\n bar.style.width = percentage\n bar.innerHTML = percentage\n }\n\n updateProgressBarUnknown (progressBar) {\n if (!progressBar) return\n\n const bar = progressBar.firstChild\n progressBar.classList.add('progress', 'bg-blue', 'leading-none', 'py-1', 'text-xs', 'text-center', 'text-white', 'block')\n bar.removeAttribute('aria-valuenow')\n bar.classList.add('w-full')\n bar.innerHTML = ''\n }\n\n getInputGroup (input, buttons) {\n if (!input) return\n\n const inputGroupContainer = document.createElement('div')\n inputGroupContainer.classList.add('relative', 'items-stretch', 'w-full')\n inputGroupContainer.appendChild(input)\n\n const inputGroup = document.createElement('div')\n inputGroup.classList.add('-mr-1')\n inputGroupContainer.appendChild(inputGroup)\n\n for (let i = 0; i < buttons.length; i++) {\n inputGroup.appendChild(buttons[i])\n }\n\n return inputGroupContainer\n }\n}\n\n/* Custom stylesheet rules. (Does not support comma separated selectors) */\n/* Will create a stylesheet in document head with the id \"theme-spectre\" if not exists. */\ntailwindTheme.rules = rules\n","/**\n * Taken from jQuery 2.1.3\n *\n * #### NOTE\n * Not plain objects is,\n * - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n * - DOM nodes\n * - window\n *\n * @param {Object} obj - Variable name\n * @returns {Boolean}\n */\nexport function isPlainObject (obj) {\n if (obj === null) return false\n\n if (typeof obj !== 'object' || obj.nodeType || (obj === obj.window)) return false\n\n if (obj.constructor && !hasOwnProperty(obj.constructor.prototype, 'isPrototypeOf')) return false\n\n /* Most likely |obj| is a plain object, created by {} or constructed with new Object */\n return true\n}\n\nexport function deepCopy (target) {\n return isPlainObject(target) ? extend({}, target) : Array.isArray(target) ? target.map(deepCopy) : target\n}\n\nexport function extend (destination, ...args) {\n args.forEach(source => {\n if (source) {\n Object.keys(source).forEach(property => {\n if (source[property] && isPlainObject(source[property])) {\n if (!hasOwnProperty(destination, property)) destination[property] = {}\n extend(destination[property], source[property])\n } else if (Array.isArray(source[property])) {\n destination[property] = deepCopy(source[property])\n } else {\n destination[property] = source[property]\n }\n })\n }\n })\n\n return destination\n}\n\nexport function trigger (el, event) {\n const e = document.createEvent('HTMLEvents')\n e.initEvent(event, true, true)\n el.dispatchEvent(e)\n}\n\n/**\n * Helper function to locate a shadowRoot parent if at all\n *\n * @param {Element} node - Node\n */\nexport function getShadowParent (node) {\n return node && (node.toString() === '[object ShadowRoot]' ? node : getShadowParent(node.parentNode))\n}\n\n/**\n * Helper function to check own property key\n *\n * @see https://eslint.org/docs/rules/no-prototype-builtins\n */\nexport function hasOwnProperty (obj, key) {\n return obj && Object.prototype.hasOwnProperty.call(obj, key)\n}\n\n// From https://github.com/angular/angular.js/blob/master/src/ng/directive/input.js\nconst NUMBER_REGEXP = /^\\s*(-|\\+)?(\\d+|(\\d*(\\.\\d*)))([eE][+-]?\\d+)?\\s*$/\n\nexport function isNumber (value) {\n if (typeof value === 'undefined' || value === null) return false\n const match = value.match(NUMBER_REGEXP)\n const v = parseFloat(value)\n return match !== null && !isNaN(v) && isFinite(v)\n}\n\nconst INTEGER_REGEXP = /^\\s*(-|\\+)?(\\d+)\\s*$/\n\nexport function isInteger (value) {\n if (typeof value === 'undefined' || value === null) return false\n const match = value.match(INTEGER_REGEXP)\n const v = parseInt(value)\n return match !== null && !isNaN(v) && isFinite(v)\n}\n\n/* This function generates a uuid.\nhttps://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\nTODO: It will be probably better to move to: https://www.npmjs.com/package/uuid\n*/\nexport function generateUUID () {\n let d = new Date().getTime()\n\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n d += performance.now() /* use high-precision timer if available */\n }\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (d + Math.random() * 16) % 16 | 0\n d = Math.floor(d / 16)\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)\n })\n}\n","import { ipValidator } from './validators/ip-validator.js'\nimport { extend, hasOwnProperty } from './utilities.js'\n\nexport class Validator {\n constructor (jsoneditor, schema, options, defaults) {\n this.jsoneditor = jsoneditor\n this.schema = schema || this.jsoneditor.schema\n this.options = options || {}\n this.translate = this.jsoneditor.translate || defaults.translate\n this.translateProperty = this.jsoneditor.translateProperty || defaults.translateProperty\n this.defaults = defaults\n\n this._validateSubSchema = {\n const (schema, value, path) {\n const valid = JSON.stringify(schema.const) === JSON.stringify(value) && !(Array.isArray(value) || typeof value === 'object')\n if (!valid) {\n return [{\n path,\n property: 'const',\n message: this.translate('error_const', null, schema)\n }]\n }\n return []\n },\n enum (schema, value, path) {\n const stringified = JSON.stringify(value)\n const valid = schema.enum.some(e => stringified === JSON.stringify(e))\n if (!valid) {\n return [{\n path,\n property: 'enum',\n message: this.translate('error_enum', null, schema)\n }]\n }\n return []\n },\n extends (schema, value, path) {\n const validate = (errors, e) => {\n errors.push(...this._validateSchema(e, value, path))\n return errors\n }\n return schema.extends.reduce(validate, [])\n },\n allOf (schema, value, path) {\n const validate = (errors, e) => {\n errors.push(...this._validateSchema(e, value, path))\n return errors\n }\n return schema.allOf.reduce(validate, [])\n },\n anyOf (schema, value, path) {\n const valid = schema.anyOf.some(e => !this._validateSchema(e, value, path).length)\n if (!valid) {\n return [{\n path,\n property: 'anyOf',\n message: this.translate('error_anyOf', null, schema)\n }]\n }\n return []\n },\n oneOf (schema, value, path) {\n let valid = 0\n const oneofErrors = []\n schema.oneOf.forEach((o, i) => {\n /* Set the error paths to be path.oneOf[i].rest.of.path */\n const tmp = this._validateSchema(o, value, path)\n if (!tmp.length) {\n valid++\n }\n\n tmp.forEach(e => {\n e.path = `${path}.oneOf[${i}]${e.path.substr(path.length)}`\n })\n oneofErrors.push(...tmp)\n })\n const errors = []\n if (valid !== 1) {\n errors.push({\n path,\n property: 'oneOf',\n message: this.translate('error_oneOf', [valid], schema)\n })\n errors.push(...oneofErrors)\n }\n return errors\n },\n not (schema, value, path) {\n if (!this._validateSchema(schema.not, value, path).length) {\n return [{\n path,\n property: 'not',\n message: this.translate('error_not', null, schema)\n }]\n }\n return []\n },\n type (schema, value, path) {\n /* Union type */\n if (Array.isArray(schema.type)) {\n const valid = schema.type.some(e => this._checkType(e, value))\n if (!valid) {\n return [{\n path,\n property: 'type',\n message: this.translate('error_type_union', null, schema)\n }]\n }\n } else {\n /* Simple type */\n if (['date', 'time', 'datetime-local'].includes(schema.format) && schema.type === 'integer') {\n /* Hack to get validator to validate as string even if value is integer */\n /* As validation of 'date', 'time', 'datetime-local' is done in separate validator */\n if (!this._checkType('string', `${value}`)) {\n return [{\n path,\n property: 'type',\n message: this.translate('error_type', [schema.format], schema)\n }]\n }\n } else if (!this._checkType(schema.type, value)) {\n return [{\n path,\n property: 'type',\n message: this.translate('error_type', [schema.type], schema)\n }]\n }\n }\n return []\n },\n disallow (schema, value, path) {\n /* Union type */\n if (Array.isArray(schema.disallow)) {\n const invalid = schema.disallow.some(e => this._checkType(e, value))\n if (invalid) {\n return [{\n path,\n property: 'disallow',\n message: this.translate('error_disallow_union', null, schema)\n }]\n }\n } else {\n /* Simple type */\n if (this._checkType(schema.disallow, value)) {\n return [{\n path,\n property: 'disallow',\n message: this.translate('error_disallow', [schema.disallow], schema)\n }]\n }\n }\n return []\n }\n }\n\n this._validateNumberSubSchema = {\n multipleOf (schema, value, path) { return this._validateNumberSubSchemaMultipleDivisible(schema, value, path) },\n divisibleBy (schema, value, path) { return this._validateNumberSubSchemaMultipleDivisible(schema, value, path) },\n maximum (schema, value, path) {\n /* Vanilla JS, prone to floating point rounding errors (e.g. .999999999999999 == 1) */\n let valid = schema.exclusiveMaximum ? (value < schema.maximum) : (value <= schema.maximum)\n\n /* Use math.js is available */\n if (window.math) {\n valid = window.math[schema.exclusiveMaximum ? 'smaller' : 'smallerEq'](\n window.math.bignumber(value),\n window.math.bignumber(schema.maximum)\n )\n } else if (window.Decimal) {\n /* Use Decimal.js if available */\n valid = (new window.Decimal(value))[schema.exclusiveMaximum ? 'lt' : 'lte'](new window.Decimal(schema.maximum))\n }\n\n if (!valid) {\n return [{\n path,\n property: 'maximum',\n message: this.translate(\n (schema.exclusiveMaximum ? 'error_maximum_excl' : 'error_maximum_incl'),\n [schema.maximum],\n schema\n )\n }]\n }\n return []\n },\n minimum (schema, value, path) {\n /* Vanilla JS, prone to floating point rounding errors (e.g. .999999999999999 == 1) */\n let valid = schema.exclusiveMinimum ? (value > schema.minimum) : (value >= schema.minimum)\n\n /* Use math.js is available */\n if (window.math) {\n valid = window.math[schema.exclusiveMinimum ? 'larger' : 'largerEq'](\n window.math.bignumber(value),\n window.math.bignumber(schema.minimum)\n )\n /* Use Decimal.js if available */\n } else if (window.Decimal) {\n valid = (new window.Decimal(value))[schema.exclusiveMinimum ? 'gt' : 'gte'](new window.Decimal(schema.minimum))\n }\n\n if (!valid) {\n return [{\n path,\n property: 'minimum',\n message: this.translate(\n (schema.exclusiveMinimum ? 'error_minimum_excl' : 'error_minimum_incl'),\n [schema.minimum],\n schema\n )\n }]\n }\n return []\n }\n }\n\n this._validateStringSubSchema = {\n maxLength (schema, value, path) {\n const errors = []\n if ((`${value}`).length > schema.maxLength) {\n errors.push({\n path,\n property: 'maxLength',\n message: this.translate('error_maxLength', [schema.maxLength], schema)\n })\n }\n return errors\n },\n /* `minLength` */\n minLength (schema, value, path) {\n if ((`${value}`).length < schema.minLength) {\n return [{\n path,\n property: 'minLength',\n message: this.translate((schema.minLength === 1 ? 'error_notempty' : 'error_minLength'), [schema.minLength], schema)\n }]\n }\n return []\n },\n /* `pattern` */\n pattern (schema, value, path) {\n if (!(new RegExp(schema.pattern)).test(value)) {\n return [{\n path,\n property: 'pattern',\n message: (schema.options && schema.options.patternmessage) ? schema.options.patternmessage : this.translate('error_pattern', [schema.pattern], schema)\n }]\n }\n return []\n }\n }\n\n this._validateArraySubSchema = {\n items (schema, value, path) {\n const errors = []\n if (Array.isArray(schema.items)) {\n for (let i = 0; i < value.length; i++) {\n /* If this item has a specific schema tied to it */\n /* Validate against it */\n if (schema.items[i]) {\n errors.push(...this._validateSchema(schema.items[i], value[i], `${path}.${i}`))\n /* If all additional items are allowed */\n } else if (schema.additionalItems === true) {\n break\n /* If additional items is a schema */\n /* TODO: Incompatibility between version 3 and 4 of the spec */\n } else if (schema.additionalItems) {\n errors.push(...this._validateSchema(schema.additionalItems, value[i], `${path}.${i}`))\n /* If no additional items are allowed */\n } else if (schema.additionalItems === false) {\n errors.push({\n path,\n property: 'additionalItems',\n message: this.translate('error_additionalItems', null, schema)\n })\n break\n /* Default for `additionalItems` is an empty schema */\n } else {\n break\n }\n }\n /* `items` is a schema */\n } else {\n /* Each item in the array must validate against the schema */\n value.forEach((e, i) => {\n errors.push(...this._validateSchema(schema.items, e, `${path}.${i}`))\n })\n }\n return errors\n },\n maxItems (schema, value, path) {\n if (value.length > schema.maxItems) {\n return [{\n path,\n property: 'maxItems',\n message: this.translate('error_maxItems', [schema.maxItems], schema)\n }]\n }\n return []\n },\n minItems (schema, value, path) {\n if (value.length < schema.minItems) {\n return [{\n path,\n property: 'minItems',\n message: this.translate('error_minItems', [schema.minItems], schema)\n }]\n }\n return []\n },\n uniqueItems (schema, value, path) {\n const seen = {}\n for (let i = 0; i < value.length; i++) {\n const valid = JSON.stringify(value[i])\n if (seen[valid]) {\n return [{\n path,\n property: 'uniqueItems',\n message: this.translate('error_uniqueItems', null, schema)\n }]\n }\n seen[valid] = true\n }\n return []\n }\n }\n\n this._validateObjectSubSchema = {\n maxProperties (schema, value, path) {\n if (Object.keys(value).length > schema.maxProperties) {\n return [{\n path,\n property: 'maxProperties',\n message: this.translate('error_maxProperties', [schema.maxProperties], schema)\n }]\n }\n return []\n },\n minProperties (schema, value, path) {\n if (Object.keys(value).length < schema.minProperties) {\n return [{\n path,\n property: 'minProperties',\n message: this.translate('error_minProperties', [schema.minProperties], schema)\n }]\n }\n return []\n },\n required (schema, value, path) {\n const errors = []\n if (Array.isArray(schema.required)) {\n schema.required.forEach(e => {\n if (typeof value[e] !== 'undefined') return\n const editor = this.jsoneditor.getEditor(`${path}.${e}`)\n if (editor && editor.dependenciesFulfilled === false) return\n /* Ignore required error if editor is of type \"button\" or \"info\" */\n if (editor && ['button', 'info'].includes(editor.schema.format || editor.schema.type)) return\n errors.push({\n path,\n property: 'required',\n message: this.translate('error_required', [schema && schema.properties && schema.properties[e] && schema.properties[e].title ? schema.properties[e].title : e], schema)\n })\n })\n }\n return errors\n },\n properties (schema, value, path, validatedProperties) {\n const errors = []\n Object.entries(schema.properties).forEach(([key, prop]) => {\n validatedProperties[key] = true\n errors.push(...this._validateSchema(prop, value[key], `${path}.${key}`))\n })\n return errors\n },\n patternProperties (schema, value, path, validatedProperties) {\n const errors = []\n Object.entries(schema.patternProperties).forEach(([i, prop]) => {\n const regex = new RegExp(i)\n /* Check which properties match */\n Object.entries(value).forEach(([j, v]) => {\n if (regex.test(j)) {\n validatedProperties[j] = true\n errors.push(...this._validateSchema(prop, v, `${path}.${j}`))\n }\n })\n })\n return errors\n }\n }\n\n this._validateObjectSubSchema2 = {\n propertyNames (schema, value, path, validatedProperties) {\n const errors = []\n const keys = Object.keys(value)\n let k = null\n for (let i = 0; i < keys.length; i++) {\n let msg = ''\n let truthy = false\n k = keys[i]\n /* Check property names that don't match */\n if (typeof schema.propertyNames === 'boolean') {\n if (schema.propertyNames === true) {\n continue\n }\n errors.push({\n path,\n property: 'propertyNames',\n message: this.translate('error_property_names_false', [k], schema)\n })\n break\n }\n truthy = Object.entries(schema.propertyNames).every(([j, prop]) => {\n let match = false\n let regex = null\n switch (j) {\n case 'maxLength':\n if (typeof prop !== 'number') {\n msg = 'error_property_names_maxlength'\n break\n }\n if (k.length > prop) {\n msg = 'error_property_names_exceeds_maxlength'\n break\n }\n return true\n case 'const':\n if (prop !== k) {\n msg = 'error_property_names_const_mismatch'\n break\n }\n return true\n case 'enum':\n if (!Array.isArray(prop)) {\n msg = 'error_property_names_enum'\n break\n }\n prop.forEach(p => {\n if (p === k) {\n match = true\n }\n })\n if (!match) {\n msg = 'error_property_names_enum_mismatch'\n break\n }\n return true\n case 'pattern':\n if (typeof prop !== 'string') {\n msg = 'error_property_names_pattern'\n break\n }\n regex = new RegExp(prop)\n if (!regex.test(k)) {\n msg = 'error_property_names_pattern_mismatch'\n break\n }\n return true\n default:\n errors.push({\n path,\n property: 'propertyNames',\n message: this.translate('error_property_names_unsupported', [j], schema)\n })\n return false\n }\n errors.push({\n path,\n property: 'propertyNames',\n message: this.translate(msg, [k], schema)\n })\n return false\n })\n if (!truthy) break\n }\n return errors\n },\n additionalProperties (schema, value, path, validatedProperties) {\n const errors = []\n const keys = Object.keys(value)\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i]\n if (validatedProperties[k]) continue\n /* No extra properties allowed */\n if (!schema.additionalProperties) {\n errors.push({\n path,\n property: 'additionalProperties',\n message: this.translate('error_additional_properties', [k], schema)\n })\n break\n /* Allowed */\n } else if (schema.additionalProperties === true) {\n break\n /* Must match schema */\n /* TODO: incompatibility between version 3 and 4 of the spec */\n } else {\n errors.push(...this._validateSchema(schema.additionalProperties, value[k], `${path}.${k}`))\n }\n }\n return errors\n },\n dependencies (schema, value, path) {\n const errors = []\n Object.entries(schema.dependencies).forEach(([i, dep]) => {\n /* Doesn't need to meet the dependency */\n if (typeof value[i] === 'undefined') return\n\n /* Property dependency */\n if (Array.isArray(dep)) {\n dep.forEach(d => {\n if (typeof value[d] === 'undefined') {\n errors.push({\n path,\n property: 'dependencies',\n message: this.translate('error_dependency', [d], schema)\n })\n }\n })\n /* Schema dependency */\n } else {\n errors.push(...this._validateSchema(dep, value, path))\n }\n })\n return errors\n }\n }\n }\n\n fitTest (value, givenSchema, weight = 10000000) {\n const fit = { match: 0, extra: 0 }\n if (typeof value === 'object' && value !== null) {\n /* Work on a copy of the schema */\n const schema = this._getSchema(givenSchema)\n /* If the schema is an anyOf declaration, do use the properties of the allowed sub schemata instead.\n Of these sub schemata, the best fit is selected */\n if (schema.anyOf) {\n let bestFit = { ...fit }\n for (const subSchema of schema.anyOf) {\n const subFit = this.fitTest(value, subSchema, weight)\n /* The best fit is the one with the best value for match. If there are multiple results\n with the same match value, use the one with the least number of extra properties */\n if ((subFit.match > bestFit.match) || (subFit.match === bestFit.match && subFit.extra < bestFit.extra)) {\n bestFit = subFit\n }\n }\n return bestFit\n } else {\n const properties = this._getSchema(givenSchema).properties\n for (const i in properties) {\n if (!hasOwnProperty(properties, i)) {\n fit.extra += weight\n continue\n }\n if (typeof value[i] === 'object' && typeof properties[i] === 'object' && typeof properties[i].properties === 'object') {\n const result = this.fitTest(value[i], properties[i], weight / 100)\n fit.match += result.match\n fit.extra += result.extra\n }\n if (typeof value[i] !== 'undefined') {\n fit.match += weight\n }\n }\n }\n }\n return fit\n }\n\n _getSchema (schema) {\n return typeof schema === 'undefined' ? extend({}, this.jsoneditor.expandRefs(this.schema)) : schema\n }\n\n validate (value) {\n return this._validateSchema(this.schema, value)\n }\n\n _validateSchema (schema, value, path) {\n const errors = []\n path = path || this.jsoneditor.root.formname\n\n /* Work on a copy of the schema */\n schema = extend({}, this.jsoneditor.expandRefs(schema))\n\n /*\n * Type Agnostic Validation\n */\n /* Version 3 `required` and `required_by_default` */\n if (typeof value === 'undefined') {\n return this._validateV3Required(schema, value, path)\n }\n\n Object.keys(schema).forEach(key => {\n if (this._validateSubSchema[key]) {\n errors.push(...this._validateSubSchema[key].call(this, schema, value, path))\n }\n })\n\n /*\n * Type Specific Validation\n */\n errors.push(...this._validateByValueType(schema, value, path))\n\n if (schema.links) {\n schema.links.forEach((s, m) => {\n if (s.rel && s.rel.toLowerCase() === 'describedby') {\n schema = this._expandSchemaLink(schema, m)\n errors.push(...this._validateSchema(schema, value, path, this.translate))\n }\n })\n }\n\n /* date, time and datetime-local validation */\n if (['date', 'time', 'datetime-local'].includes(schema.format)) {\n errors.push(...this._validateDateTimeSubSchema(schema, value, path))\n }\n\n /* uuid validation */\n if (['uuid'].includes(schema.format)) {\n errors.push(...this._validateUUIDSchema(schema, value, path))\n }\n\n /* custom validator */\n errors.push(...this._validateCustomValidator(schema, value, path))\n\n /* Remove duplicate errors and add \"errorcount\" property */\n return this._removeDuplicateErrors(errors)\n }\n\n _expandSchemaLink (schema, m) {\n const href = schema.links[m].href\n const data = this.jsoneditor.root.getValue()\n const template = this.jsoneditor.compileTemplate(href, this.jsoneditor.template)\n const ref = document.location.origin + document.location.pathname + template(data)\n\n schema.links = schema.links.slice(0, m).concat(schema.links.slice(m + 1))\n return extend({}, schema, this.jsoneditor.refs[ref])\n }\n\n _validateV3Required (schema, value, path) {\n if (((typeof schema.required !== 'undefined' && schema.required === true) || (typeof schema.required === 'undefined' && this.jsoneditor.options.required_by_default === true)) && (schema.type !== 'info')) {\n return [{\n path,\n property: 'required',\n message: this.translate('error_notset', null, schema)\n }]\n }\n return []\n }\n\n _validateByValueType (schema, value, path) {\n const errors = []\n if (value === null) return errors\n /* Number Specific Validation */\n if (typeof value === 'number') {\n /* `multipleOf` and `divisibleBy` */\n /* `maximum` */\n /* `minimum` */\n Object.keys(schema).forEach(key => {\n if (this._validateNumberSubSchema[key]) {\n errors.push(...this._validateNumberSubSchema[key].call(this, schema, value, path))\n }\n })\n /* String specific validation */\n } else if (typeof value === 'string') {\n /* `maxLength` */\n /* `minLength` */\n /* `pattern` */\n Object.keys(schema).forEach(key => {\n if (this._validateStringSubSchema[key]) {\n errors.push(...this._validateStringSubSchema[key].call(this, schema, value, path))\n }\n })\n /* Array specific validation */\n } else if (Array.isArray(value)) {\n /* `items` and `additionalItems`\n /* `maxItems`\n /* `minItems`\n /* `uniqueItems` */\n Object.keys(schema).forEach(key => {\n if (this._validateArraySubSchema[key]) {\n errors.push(...this._validateArraySubSchema[key].call(this, schema, value, path))\n }\n })\n /* Object specific validation */\n } else if (typeof value === 'object') {\n const validatedProperties = {}\n /* `maxProperties`\n /* `minProperties`\n /* Version 4 `required`\n /* `properties`\n /* `patternProperties` */\n Object.keys(schema).forEach(key => {\n if (this._validateObjectSubSchema[key]) {\n errors.push(...this._validateObjectSubSchema[key].call(this, schema, value, path, validatedProperties))\n }\n })\n\n /* The no_additional_properties option currently doesn't work with extended schemas that use oneOf or anyOf or allOf */\n if (typeof schema.additionalProperties === 'undefined' && this.jsoneditor.options.no_additional_properties && !schema.oneOf && !schema.anyOf && !schema.allOf) {\n schema.additionalProperties = false\n }\n\n /* `additionalProperties` */\n /* `dependencies` */\n Object.keys(schema).forEach(key => {\n if (typeof this._validateObjectSubSchema2[key] !== 'undefined') {\n errors.push(...this._validateObjectSubSchema2[key].call(this, schema, value, path, validatedProperties))\n }\n })\n }\n return errors\n }\n\n _validateUUIDSchema (schema, value, path) {\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))) {\n return [{\n path,\n property: 'format',\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}$'], schema)\n }]\n }\n return []\n }\n\n _validateNumberSubSchemaMultipleDivisible (schema, value, path) {\n const divisor = schema.multipleOf || schema.divisibleBy\n /* Vanilla JS, prone to floating point rounding errors (e.g. 1.14 / .01 == 113.99999) */\n let valid = (value / divisor === Math.floor(value / divisor))\n\n /* Use math.js is available */\n if (window.math) {\n valid = window.math.mod(window.math.bignumber(value), window.math.bignumber(divisor)).equals(0)\n } else if (window.Decimal) {\n /* Use decimal.js is available */\n valid = (new window.Decimal(value)).mod(new window.Decimal(divisor)).equals(0)\n }\n\n if (!valid) {\n return [{\n path,\n property: schema.multipleOf ? 'multipleOf' : 'divisibleBy',\n message: this.translate('error_multipleOf', [divisor], schema)\n }]\n }\n return []\n }\n\n _validateDateTimeSubSchema (schema, value, path) {\n const _validateInteger = (schema, value, path) => {\n /* The value is a timestamp */\n if (value * 1 < 1) {\n /* If value is less than 1, then it's an invalid epoch date before 00:00:00 UTC Thursday, 1 January 1970 */\n return [{\n path,\n property: 'format',\n message: this.translate('error_invalid_epoch', null, schema)\n }]\n } else if (value !== Math.abs(parseInt(value))) {\n /* not much to check for, so we assume value is ok if it's a positive number */\n return [{\n path,\n property: 'format',\n message: this.translate(`error_${schema.format.replace(/-/g, '_')}`, [dateFormat], schema)\n }]\n }\n return []\n }\n const _validateFlatPicker = (schema, value, path, editor) => {\n if (value !== '') {\n let compareValue\n if (editor.flatpickr.config.mode !== 'single') {\n const seperator = editor.flatpickr.config.mode === 'range' ? editor.flatpickr.l10n.rangeSeparator : ', '\n const selectedDates = editor.flatpickr.selectedDates.map(val =>\n editor.flatpickr.formatDate(val, editor.flatpickr.config.dateFormat)\n )\n compareValue = selectedDates.join(seperator)\n }\n\n try {\n if (compareValue) {\n /* Not the best validation method, but range and multiple mode are special */\n /* Optimal solution would be if it is possible to change the return format from string/integer to array */\n if (compareValue !== value) throw new Error(`${editor.flatpickr.config.mode} mismatch`)\n } else if (editor.flatpickr.formatDate(editor.flatpickr.parseDate(value, editor.flatpickr.config.dateFormat), editor.flatpickr.config.dateFormat) !== value) {\n throw new Error('mismatch')\n }\n } catch (err) {\n const errorDateFormat = editor.flatpickr.config.errorDateFormat !== undefined ? editor.flatpickr.config.errorDateFormat : editor.flatpickr.config.dateFormat\n return [{\n path,\n property: 'format',\n message: this.translate(`error_${editor.format.replace(/-/g, '_')}`, [errorDateFormat], schema)\n }]\n }\n }\n return []\n }\n\n const validatorRx = {\n date: /^(\\d{4}\\D\\d{2}\\D\\d{2})?$/,\n time: /^(\\d{2}:\\d{2}(?::\\d{2})?)?$/,\n 'datetime-local': /^(\\d{4}\\D\\d{2}\\D\\d{2}[ T]\\d{2}:\\d{2}(?::\\d{2})?)?$/\n }\n const format = {\n date: '\"YYYY-MM-DD\"',\n time: '\"HH:MM\"',\n 'datetime-local': '\"YYYY-MM-DD HH:MM\"'\n }\n\n const editor = this.jsoneditor.getEditor(path)\n const dateFormat = (editor && editor.flatpickr) ? editor.flatpickr.config.dateFormat : format[schema.format]\n\n if (schema.type === 'integer') {\n return _validateInteger(schema, value, path)\n } else if (!editor || !editor.flatpickr) {\n /* Standard string input, without flatpickr */\n if (!validatorRx[schema.format].test(value)) {\n return [{\n path,\n property: 'format',\n message: this.translate(`error_${schema.format.replace(/-/g, '_')}`, [dateFormat], schema)\n }]\n }\n } else if (editor) {\n /* Flatpickr validation */\n return _validateFlatPicker(schema, value, path, editor)\n }\n return []\n }\n\n _validateCustomValidator (schema, value, path) {\n const errors = []\n /* Internal validators using the custom validator format */\n errors.push(...ipValidator.call(this, schema, value, path, this.translate))\n\n const validate = validator => {\n errors.push(...validator.call(this, schema, value, path))\n }\n /* Custom type validation (global) */\n this.defaults.custom_validators.forEach(validate)\n /* Custom type validation (instance specific) */\n if (this.options.custom_validators) {\n this.options.custom_validators.forEach(validate)\n }\n return errors\n }\n\n _removeDuplicateErrors (errors) {\n return errors.reduce((err, obj) => {\n let first = true\n if (!err) err = []\n err.forEach(a => {\n if (a.message === obj.message && a.path === obj.path && a.property === obj.property) {\n a.errorcount++\n first = false\n }\n })\n if (first) {\n obj.errorcount = 1\n err.push(obj)\n }\n return err\n }, [])\n }\n\n _checkType (type, value) {\n const types = {\n string: value => typeof value === 'string',\n number: value => typeof value === 'number',\n integer: value => typeof value === 'number' && value === Math.floor(value),\n boolean: value => typeof value === 'boolean',\n array: value => Array.isArray(value),\n object: value => value !== null && !(Array.isArray(value)) && typeof value === 'object',\n null: value => value === null\n }\n /* Simple types */\n if (typeof type === 'string') {\n if (types[type]) {\n return types[type](value)\n } else return true\n /* Schema */\n } else {\n return !this._validateSchema(type, value).length\n }\n }\n}\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 */\nconst validateIpv4 = (value) => {\n const parts = value.split('.')\n if (parts.length !== 4) {\n throw new Error('error_ipv4')\n }\n parts.forEach((part) => {\n if (isNaN(+part) || +part < 0 || +part > 255) {\n throw new Error('error_ipv4')\n }\n })\n}\n\nconst validateIpv6 = (value) => {\n if (!value.match(\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})$'\n )) {\n throw new Error('error_ipv6')\n }\n}\n\nconst validateHostname = (value) => {\n if (!value.match(\n '(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9].)+[a-zA-Z]{2,63}$)'\n )) {\n throw new Error('error_hostname')\n }\n}\n\nexport function ipValidator (schema, value, path, translate) {\n try {\n switch (schema.format) {\n case 'ipv4':\n validateIpv4(value)\n break\n case 'ipv6':\n validateIpv6(value)\n break\n case 'hostname':\n validateHostname(value)\n break\n }\n return []\n } catch (err) {\n return [{\n path,\n property: 'format',\n message: translate(err.message)\n }]\n }\n}\n"],"sourceRoot":""}