Skip to content

JsonTree.js v3.0.0 - New side menu! New types! New display options! Bulk editing! Lots of improvements and fixes!

Compare
Choose a tag to compare
@william-troup william-troup released this 31 Aug 18:40
· 21 commits to main since this release
daafb9f

New Features:

  • BREAKING: The type "decimal" has been renamed to "float" (including supporting binding options).
  • Added URL, Image and Email type support!
  • Added support to show the object types in the UI (next to the property name/array index, off by default)!
  • Added support to show speech marks around the property names (off by default).
  • Added support to show object/array contents opened borders (on by default).
  • Added a new Side Menu (opened from the title bar, on by default), which allows the ignore configuration to be changed for the display.
  • Added a new button (to the side menu, on by default) that will allow you to import a list of JSON files.
  • Added a new button (to the side menu, on by default) that will allow you to export all the JSON being viewed to a file.
  • Added a new title bar button that will allow you to quickly toggle the full-screen mode (on by default).
  • Added array index editing support!
  • Added a massively improved drag-and-drop UI!
  • Added bulk JSON editing support!
  • Added property name and array index parent color support (on by default).
  • Added auto-close data types by size support (supports Objects, Arrays, Maps, and Set).

Shortcut Navigation Keys:

  • Pressing Ctrl/Command + F11 will toggle the full-screen mode.

Binding Options:

  • BREAKING: Removed the binding option "title.show", as "title.text" will now accept an empty string instead.
  • BREAKING: Moved the binding option "enableFullScreenToggling" to "title.enableFullScreenToggling".
  • BREAKING: Renamed the new binding option "copyIndentSpaces" to "jsonIndentSpaces" (now defaults to 8).
  • Added a new binding option called "ignore.urlValues" (defaults to false), which states if URL values should be ignored.
  • Added a new binding option called "ignore.imageValues" (defaults to false), which states if Image values should be ignored.
  • Added a new binding option called "ignore.emailValues" (defaults to false), which states if Email values should be ignored.
  • Added a new binding option called "allowEditing.urlValues" (defaults to true), which states if URL values can be edited.
  • Added a new binding option called "allowEditing.emailValues" (defaults to true), which states if Email values can be edited.
  • Added a new binding option called "showTypes" (defaults to false), which states if the type of each object should be shown in the display.
  • Added a new binding option called "logJsonValueToolTipPaths" (defaults to false), which states if the JSON value tooltips paths should be logged to the console.
  • Added a new binding option called "sideMenu.enabled" (defaults to true), which states if the side menu should be shown.
  • Added a new binding option called "sideMenu.showImportButton" (defaults to true), which states if the import button is shown.
  • Added a new binding option called "sideMenu.showExportButton" (defaults to true), which states if the export button is shown.
  • Added a new binding option called "sideMenu.titleText" (defaults to "JsonTree.js"), which states the side menu title bar text to use (can be blank, if required).
  • Added a new binding option called "title.showFullScreenButton" (defaults to true), which states if the full-screen button is shown.
  • Added a new binding option called "allowEditing.bulk" (defaults to true), which states if bulk editing (editing the whole JSON) is enabled.
  • The binding option called "openInFullScreenMode" will now force the UI to open in full-screen mode (even if "title.enableFullScreenToggling" is set to false).
  • Added a new binding option called "exportFilenameFormat" (defaults to "JsonTree_{dd}-{mm}-{yyyy}_{hh}-{MM}-{ss}.json"), which states the export filename format.
  • Added a new binding option called "showPropertyNameQuotes" (defaults to false), which states if speech marks should be shown around the property names.
  • Added a new binding option called "showOpenedObjectArrayBorders" (defaults to true), which states if the object/array contents should show the opened borders.
  • Added a new binding option called "showPropertyNameAndIndexColors" (defaults to true), which states if the object/array names/index should show the parent's color.
  • Added a new binding option called "autoClose.objectSize" (defaults to 0), which states the size an object has to be before it's closed on the first load.
  • Added a new binding option called "autoClose.arraySize" (defaults to 0), which states the size an array has to be before it's closed on the first load.
  • Added a new binding option called "autoClose.mapSize" (defaults to 0), which states the size a map has to be before it's closed on the first load.
  • Added a new binding option called "autoClose.setSize" (defaults to 0), which states the size a set has to be before it's closed on the first load.

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onUrlRender", which fires an event when a URL value is rendered (allow element render overrides).
  • Added a new binding option custom trigger called "onImageRender", which fires an event when an Image value is rendered (allow element render overrides).
  • Added a new binding option custom trigger called "onEmailRender", which fires an event when an Email value is rendered (allow element render overrides).
  • Added a new binding option custom trigger called "onExport", which fires an event when the JSON is exported.

Configuration Options:

  • Added a new option called "text.sideMenuButtonSymbolText", which states the symbol text to use for the side menu button (defaults to "☰").
  • Added a new option called "text.sideMenuButtonText", which states the text to use for the side menu button (defaults to "Show Menu").
  • Added a new option called "text.closeButtonSymbolText", which states the symbol text to use for the close button (defaults to "✕").
  • Added a new option called "text.closeButtonText", which states the text to use for the close button (defaults to "Close").
  • Added a new option called "text.showTypesText", which states the text to use for the show types header (defaults to "Show Types").
  • Added a new option called "text.selectAllText", which states the text to use for the select all button (defaults to "Select All").
  • Added a new option called "text.selectNoneText", which states the text to use for the select none button (defaults to "Select None").
  • Added a new option called "text.importButtonSymbolText", which states the symbol text to use for the import button (defaults to "↑").
  • Added a new option called "text.importButtonText", which states the text to use for the import button (defaults to "Import").
  • Added a new option called "text.fullScreenOnButtonSymbolText", which states the symbol text to use for the toggle full-screen on button (defaults to "↗").
  • Added a new option called "text.fullScreenOffButtonSymbolText", which states the symbol text to use for the toggle full-screen off button (defaults to "↙").
  • Added a new option called "text.fullScreenButtonText", which states the text to use for the toggle full-screen button (defaults to "Toggle Full-Screen").
  • Changed the default value of the option "text.closeAllButtonSymbolText" to "⇈".
  • Changed the default value of the option "text.openAllButtonSymbolText" to "⇊".
  • Added a new option called "text.copyButtonText", which states the text to use for the copy button (defaults to "Copy").
  • Added a new option called "text.dragAndDropSymbolText", which states the symbol text to use for the drag & drop title (defaults to "⇪").
  • Added a new option called "text.dragAndDropTitleText", which states the text to use for the drag & drop title (defaults to "Drag and drop your JSON files to upload").
  • Added a new option called "text.dragAndDropDescriptionText", which states the text to use for the drag & drop description (defaults to "Multiple files will be joined as an array").
  • Added a new option called "text.exportButtonSymbolText", which states the symbol text to use for the export button (defaults to "↓").
  • Added a new option called "text.exportButtonText", which states the text to use for the export button (defaults to "Export").

UI Improvements:

  • When there is no content to view due to the ignore rules, the "There is currently no JSON to view." message is now shown.

Fixes:

  • Fixed a fault that caused the Back/Next buttons to not be visible in the title bar when everything else is turned off.
  • Fixed a fault that prevented the border from being removed from the container when full-screen mode was on.
  • Fixed a fault that caused the UI to move to the previous/next page when using the arrow keys in an editable box.
  • Fixed the documentation that listed the wrong type names.
  • Fixed a fault that caused Maps, Weak Maps, Sets, Weak Sets, and RegExp values to be excluded when pressing the "Copy" button.
  • Fixed a global result fault to occur when removing the squared brackets from a number.
  • Fixed the binding option "addArrayIndexPadding" not working when set to true.