JsonTree.js - Documentation - Recent Changes

Below is a list of the most recent changes made in the JsonTree.js versions released.

Download Now

v3.1.0 - 7th Sep 2024
Versions

Version 3.1.0:

New Features:

  • Added URL support for the "data" binding option!
  • Added URL/Email opening support!

Configuration Options:

  • Added a new option called "text.propertyColonCharacter", which states the character to use to split up the property name/index and value (defaults to ":").

Binding Options:

  • The binding option "ignore.emptyObjects" now defaults to false.
  • The binding option "data" will now accept a URL to a JSON file.
  • Added a new binding option called "showUrlOpenButtons" (defaults to true), which states if a URL can be opened in a new window.
  • Added a new binding option called "showEmailOpenButtons" (defaults to true), which states if an Email can be opened in the default email editor.

UI Improvements:

  • Undefined and Null values now appear more clearly when "showValueColors" is turned on.
  • When a value is a function and has a name, the text "function" is now shown at the start of the value.
  • When the binding option "ignore.emptyObjects" is set to false, objects that are empty show a zero count, and a new notice text label is shown under the header.

Configuration Options:

  • Added a new option called "text.noPropertiesText", which states the text to show when no properties are available for an object/map (defaults to "There are no properties to view.").
  • Added a new option called "text.openText", which states the open button text to show next to a URL/Email (defaults to "open").
  • Added a new option called "text.openSymbolText", which states the open button symbol text to show next to a URL/Email (defaults to "⤤").

Improvements:

  • Updates to the README files to make the features stand out.

Fixes:

  • Fixed a CSS fault that caused the checkboxes to be centred in the Side Menu.


Version 3.0.0:

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.


Version 2.9.0:

New Features:

  • Added RegExp type support!
  • Added Map/WeakMap type support!
  • Added Set/WeakSet type support!
  • Added multiple file-dropping support!

Binding Options:

  • Added a new binding option called "ignore.regExpValues" (defaults to false), which states if RegExp values should be ignored.
  • Added a new binding option called "ignore.mapValues" (defaults to false), which states if Map values should be ignored.
  • Added a new binding option called "ignore.setValues" (defaults to false), which states if Map values should be ignored.
  • The binding option "allowEditing" can now accept a boolean again to enable/disable all supported editable types (you can still pass them individually if required).
  • Added {fff} (milliseconds padded to 3 places) and {ff} (milliseconds padded to 2 places) support for the "dateTimeFormat" option.

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onRegExpRender", which fires an event when a RegExp value is rendered (allow element render overrides).

Configuration Options:

  • Added a new option called "text.mapText", which states the text to use for the map types (defaults to "map").
  • Added a new option called "text.setText", which states the text to use for the set types (defaults to "set").

UI Improvements:

  • The property name now also shows a tooltip, if available via the "valueToolTips" binding option.
  • The label "There is currently no JSON to view." is now centred in the screen when full-screen mode is turned on.

General Improvements:

  • Added an ignore path for ".DS_Store" files when packing the NuGet package.
  • Updated to the latest version of the NPM packages.

Fixes:

  • Fixed a fault that prevented NPM packages from being updated correctly.
  • Fixed the "Frisian" translation file missing some text.
  • Fixed a fault that caused the wrong type to be passed when clicking an Array type (when shown as the main object).
  • Fixed a fault that caused the closing symbols to show in the wrong position when the binding option "showArrowToggles" is set to false.
  • Fixed a fault that prevented the Open/Close All buttons from working when the binding option "showArrowToggles" is set to false.
  • Fixed a fault that caused zero padding to be used for the contents at the top when the title bar was not visible.
  • Fixed a fault that caused the title bar text to be centred when no data was available to be shown.
  • Fixed the title bar buttons not using the correct spacing.
  • Fixed the title bar text not using the correct margins when no data is available to be shown.
  • Fixed a missing space that is not being shown for the paging object index title.
  • Fixed a fault that caused the title bar buttons to appear in different sizes (if the default font is not available).
  • Fixed the missing colors in the theme files.
  • Fixed a fault that prevented additional margins for the last items in the display from being removed.


Version 2.8.1:

Binding Options:

  • Added a new binding option called "tooltip.offset" (defaults to 0), which states the additional offset to use for the tooltip position.
  • Added a new binding option called "editingValueClickDelay" (defaults to 500), which states how long an editable value should wait after being clicked to trigger the custom event.

General Improvements:

  • The value tooltips now take the "useZeroIndexingForArrays" binding option into account when mapping the path.
  • Added "..\" support for tooltip values, which will allow specific names/indexes to be ignored so that the same tooltip can be set for multiple array object properties.
  • Tooltips shown for JSON values now use a new CSS class called "jsontree-js-tooltip-value" (by default, it looks like the regular tooltip).

Fixes:

  • When "destroy()" is called, the tooltip element is removed from the DOM.


Version 2.8.0:

New Features:

  • Added value tooltip support (property names cannot be edited with this set)!

Binding Options:

  • Added a new binding option called "valueToolTips" (defaults to {}), which states the JSON paths to set tooltips for the values.
  • Added a new binding option called "allowEditing.propertyNames" (defaults to true), which states the JSON property named can be edited.

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onJsonEdit", which fires when a JSON property name/value is edited.

Fixes:

  • Fixed a fault that caused parsing values to render in the wrong type!
  • Fixed a fault that caused some of the new editing values to be ignored.


Version 2.7.0:

New Features:

  • Added GUID type support!
  • Color type support is now implemented fully!
  • Allow editing can now be set for specific object types, instead of all of them!
  • Added navigation shortcut key support (when only one instance is created in the UI)!
  • Added full-screen support!

Navigation Shortcut Keys:

  • Added "Left" key support, which will move back a page (if arrays are paged).
  • Added "Right" key support, which will move a page forward (if arrays are paged).
  • I added "Down" key support, which will open all the nodes on the display.
  • Added "Up" key support, which will close all the nodes on the display.

Binding Options:

  • Added a new binding option called "ignore.guidValues" (defaults to false), which states if GUID values should be ignored.
  • Added a new binding option called "ignore.colorValues" (defaults to false), which states if color values should be ignored.
  • Removed the binding option "showStringHexColors" (not needed anymore).
  • BREAKING: The binding option "allowEditing" now allows you to state which object types you can edit (for example, allowEditing.booleanValues).
  • Added a new binding option called "allowEditing.booleanValues" (defaults to true), which states if boolean values can be edited.
  • Added a new binding option called "allowEditing.decimalValues" (defaults to true), which states if decimal values can be edited.
  • Added a new binding option called "allowEditing.numberValues" (defaults to true), which states if number values can be edited.
  • Added a new binding option called "allowEditing.stringValues" (defaults to true), which states if string values can be edited.
  • Added a new binding option called "allowEditing.dateValues" (defaults to true), which states if date values can be edited.
  • Added a new binding option called "allowEditing.bigIntValues" (defaults to true), which states if big int values can be edited.
  • Added a new binding option called "allowEditing.guidValues" (defaults to true), which states if GUID values can be edited.
  • Added a new binding option called "allowEditing.colorValues" (defaults to true), which states if color values can be edited.
  • Added a new binding option called "includeTimeZoneInDateTimeEditing" (defaults to true), which states if editing a date/time should include the timezone information.
  • Added a new binding option called "openInFullScreenMode" (defaults to false), which states if the UI should be shown in full-screen mode.
  • Added a new binding option called "enableFullScreenToggling" (defaults to true), which states if full-screen toggling is enabled (double-clicking the title bar).

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onGuidRender", which fires an event when a GUID value is rendered (allow element render overrides).
  • Added a new binding option custom trigger called "onColorRender", which fires an event when a color value is rendered (allow element render overrides).

UI Improvements:

  • The title bar now has a new style, which helps to separate it from the rest of the control.

General Improvements:

  • The GUIDs generated now used the "crypto.randomUUID()" instead of the custom-built one (this is now RFC4122-compliant).
  • Improved the event assignments, which are now single lines.


Version 2.6.0:

New Features:

  • Added editing support! You can now edit property names and values while clearing the data will remove the item.

Binding Options:

  • Added a new binding option called "allowEditing" (defaults to true), which states if property name/value editing is allowed.

Binding Options - Custom Triggers:

  • When "onValueClick" is set, all HEX/RGB colors are now passed using a type of "color".

UI Improvements:

  • Strings that are RGB or RGBA colors are now shown as colors in the display (as with hex colors).
  • String HEX/RGB colors are now shown without the string quotes (if enabled).
  • Removed spacing around the fields and improved the margins.
  • The Array/Object contents opened/closed in the display are now remembered when switching between array pages (if turned on).

General Improvements:

  • Moved from ES2016 to ES2020.
  • Moved more code into the shared files.
  • When an ID is set for an element, it is removed when "destroy()" is called.
  • When an element is destroyed, if no classes are left on the element, the "class" attribute is now removed.


Version 2.5.0:

New Features:

  • Added lambda display support.
  • Added value-clicking support for Objects and Arrays!
  • Added translation support! A new folder called "translations" under "dist" has been added, with support for the following languages:
    1. af Afrikaans
    2. ar Arabic
    3. hy Armenian
    4. be Belarusian
    5. bn Bengali
    6. bg Bulgarian
    7. ca Catalan
    8. zh Chinese (simplified)
    9. da Danish
    10. nl Dutch
    11. en English (default)
    12. eo Esperanto
    13. et Estonian
    14. fa Farsi
    15. fi Finnish
    16. fr French
    17. fy Frisian
    18. gl Galician
    19. ka Georgian
    20. de German
    21. el Greek
    22. he Hebrew
    23. hi Hindi
    24. hu Hungarian
    25. is Icelandic
    26. id Indonesian
    27. ga Irish
    28. it Italian
    29. ja Japanese
    30. ko Korean
    31. lv Latvian
    32. lt Lithuanian
    33. lb Luxembourgish
    34. ms Malay
    35. ne Nepali
    36. no Norwegian
    37. pl Polish
    38. pt Portuguese
    39. ro Romanian
    40. si Sinhalese
    41. sk Slovak
    42. sl Slovenian
    43. es Spanish
    44. sv Swedish
    45. tl Tagalog
    46. ta Tamil
    47. zh-tw Taiwanese
    48. te Telugu
    49. th Thai
    50. tr Turkish
    51. uk Ukrainian

Configuration Options:

  • Added a new option called "text.functionText", which states the default text to show for a function (if using a lambda, defaults to "function").

UI Improvements:

  • Added a transition that is used for the contents when switching pages.
  • When "showValueColors" is set to false, the same font weights, and styles, are still applied to the titles and values.
  • When "showValueColors" is set to false, if a value click event is set, the hover effect for the values is now shown.


Version 2.4.0:

New Features:

  • Added undefined type support (shown instead of null, or unknown)!
  • Added two themes, the default, and a new light theme, under the "dist/themes".

Binding Options:

  • Added a new binding option called "showOpeningClosingCurlyBraces" (defaults to false), which states if opening/closing curly braces should be shown.
  • Added a new binding option called "showOpeningClosingSquaredBrackets" (defaults to false), which states if opening/closing curly brackets should be shown.
  • Added {ff} (milliseconds padded) and {f} (milliseconds) support for the "dateTimeFormat" binding option.

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onCopyJsonReplacer", which fires an event and gets the result that should be used for values when copying the JSON to the clipboard.

General Improvements:

  • Increased the font weight of the navigation buttons in the title bar (so they stand out more).
  • Minor refactoring of function names.
  • Huge improvements to the HTML testing files.
  • Updated the project to the latest NPM packages.


Version 2.3.0:

New Features:

  • Added custom tooltip support!
  • Added bigint type support!
  • Added symbol type support!
  • Added ignore empty objects support!
  • Added more parsing options!

Binding Options:

  • Added a new binding option called "tooltip.delay" (defaults to 750), which states how long to wait before showing a tooltip (in milliseconds).
  • Added a new binding option called "ignore.bigIntValues" (defaults to false), which states if bigint values should be ignored.
  • Added a new binding option called "ignore.symbolValues" (defaults to false), which states if symbol values should be ignored.
  • Added a new binding option called "ignore.emptyObjects" (defaults to true), which states if empty objects should be ignored.
  • Added a new binding option called "showArrayIndexBrackets" (defaults to true), which states if the array index brackets should be shown.
  • Moved to "parseStringsToDates" to "parse.stringsToDates".
  • Added a new binding option called "parse.stringsToBooleans" (defaults to false), which states if string values should be parsed to boolean values (if valid).
  • Added a new binding option called "parse.stringsToNumbers" (defaults to false), which states if string values should be parsed to number values (if valid).

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onBigIntRender", which fires an event when a bigint value is rendered (allow element render overrides).
  • Added a new binding option custom trigger called "onSymbolRender", which fires an event when a symbol value is rendered (allow element render overrides).

General Improvements:

  • Massively improved the sorting of object property names (now uses a collator to sort them correctly).
  • Added a new export enum called "DataType", which states all of the type names that will be returned when clicking a value.
  • Null values can now be clicked (if an event is available).
  • The "There is currently no JSON to view." text is now shown in a different color.
  • The "Copy" button will now ensure that functions, and other types, are included (they are converted to strings).

Fixes:

  • Fixed a fault that caused the wrong tooltips to be assigned to the title bar buttons.


Version 2.2.0:

New Features:

  • Added JSON file-dropping support! Simply drag and drop your JSON file onto the main display and watch it render!
  • Added string to Date() parsing!

Binding Options:

  • Added a new binding option called "fileDroppingEnabled" (defaults to true), which states if JSON files can be dropped onto the main display and shown.
  • Added a new binding option called "parseStringsToDates" (defaults to false), which states if string values should be parsed to Date() objects (if valid).
  • Added a new binding option called "copyIndentSpaces" (defaults to 2), which states the total spaces that should be used for the indentation when the JSON is copied.

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onBackPage", which fires an event when moving back a page (when showing arrays as pages).
  • Added a new binding option custom trigger called "onNextPage", which fires an event when moving forward a page (when showing arrays as pages).
  • Added a new binding option custom trigger called "onSetJson", which fires an event when the JSON data is changed.

Configuration Options:

  • Added a new option called "text.noJsonToViewText", which states the text to show when no JSON is available to view (defaults to "There is currently no JSON to view.").

Public API Functions:

  • Added a new public function called "setJSON()", which will set the display using the JSON object/string you pass.
  • Added a new public function called "getJSON()", which will return the JSON that is currently being displayed.

UI Improvements:

  • The contents (everything under the title bar) are now in their own container.
  • Added scrolling support for large content data.
  • The buttons in the title bar will no longer wrap to the next line when a smaller screen is used.

General Improvements:

  • Added configuration settings to force types to be declared.
  • Added missing type declarations.
  • Updated the project to the latest NPM packages.


Version 2.1.0:

New Features:

  • Added data array paging (with new Back/Next buttons in the title bar), which will allow you to show base data array items on separate pages.
  • The title bar buttons now use symbols instead of text (to free up space), and use tooltips that use existing configuration settings.

Binding Options:

  • The binding option "title.showCopyButton" now defaults to true.
  • Added a new binding option called "showArrayItemsAsSeparateObjects" (defaults to false), which states if base data array items should be shown on separate pages.
  • Added a new binding option called "copyOnlyCurrentPage" (defaults to false), which states if the current page of JSON should be copied, instead of everything (when "showArrayItemsAsSeparateObjects" is true).

Configuration Options:

  • BREAKING: All text-based configuration options are now under a new section called "text".
  • Added a new option called "text.closeAllButtonSymbolText", which states the symbol text to use for the "Open All" button (defaults to "↓").
  • Added a new option called "text.openAllButtonSymbolText", which states the symbol text to use for the "Close All" button (defaults to "↑").
  • Added a new option called "text.copyAllButtonSymbolText", which states the symbol text to use for the "Copy All" button (defaults to "❐").
  • Added a new option called "text.backButtonText", which states the symbol text to use for the "Back" button (defaults to "Back").
  • Added a new option called "text.nextButtonText", which states the symbol text to use for the "Next" button (defaults to "Next").
  • Added a new option called "text.backButtonSymbolText", which states the symbol text to use for the "Back" button (defaults to "←").
  • Added a new option called "text.nextButtonSymbolText", which states the symbol text to use for the "Next" button (defaults to "→").

General Improvements:

  • Fixed the nuspec file causing very large NuGet packages to be created.
  • Fixed missing return types for private functions.
  • Massive code reorganization (.ts files moved into separate folders).
  • NPM package updates.
  • Moved all string concatenations to use string templates.
  • When "Copy All" is pressed, the JSON copied to the clipboard is now in a friendly format.
  • Array value indexes are now shown inside [] characters (helps to show it's an index).

Fixes:

  • Fixed an issue that caused the buttons in the display to use the wrong font.


Version 2.0.0:

Language Shift:

  • The entire project has been rewritten in TypeScript, allowing all components to be exported, which allows better support for libraries such as React, Angular, etc.
  • The TypeScript code is compiled to ES2016 instead of ES5 (older browsers, such as IE, are no longer supported).

Building:

  • You can now run separate builds to produce CJS, ESM, and Minimized project versions.
  • All files not required for the NPM packages have now been excluded.

Testing:

  • Removed the "src" and "dist" folders under "test". Only the dist versions remain, removing duplication.
  • Added "BUILD_INSTRUCTIONS.md" to help first-time users set up their dev environments.


Version 1.1.2:

  • Added CDN link support, and updated documentation.


Version 1.1.1:

  • Added export support for the global "$jsontree" object, which can now be imported as "jsontree.js".


Version 1.1.0:

New Features:

  • Added ignore all value types support!

Binding Options:

  • BREAKING: All binding ignore options are now available under a new area called "ignore".
  • Added a new binding option called "ignore.booleanValues" (defaults to false), which states if boolean values should be ignored.
  • Added a new binding option called "ignore.decimalValues" (defaults to false), which states if decimal values should be ignored.
  • Added a new binding option called "ignore.numberValues" (defaults to false), which states if number values should be ignored.
  • Added a new binding option called "ignore.stringValues" (defaults to false), which states if string values should be ignored.
  • Added a new binding option called "ignore.dateValues" (defaults to false), which states if date values should be ignored.
  • Added a new binding option called "ignore.objectValues" (defaults to false), which states if object values should be ignored.
  • Added a new binding option called "ignore.arrayValues" (defaults to false), which states if array values should be ignored.
  • Added a new binding option called "showStringHexColors" (defaults to false), which states if HEX color only string values should show the color in the display.

Binding Options - Custom Triggers:

  • The custom trigger "onValueClick" has a new parameter called "type", which states the value type that was clicked ("string", "boolean", etc).
  • The custom trigger "onValueClick" is no longer assigned to null values.


Version 1.0.0:

New Features:

  • Added full date and time rendering support! This can be adjusted for the display using the binding option "dateTimeFormat".

Binding Options:

  • BREAKING: Renamed the binding attribute "data-jsontree-options" to "data-jsontree-js".
  • BREAKING: All binding option events are now available under a new area called "events".
  • BREAKING: All title bar binding options are now available under a new area called "title" (with renames).
  • The binding option "dateTimeFormat" now defaults to "{dd}{o} {mmmm} {yyyy} {hh}:{MM}:{ss}" and now supports "{mmmm}", "{mmm}", "{dddd}", and "{ddd}" (see documentation).
  • Added a new binding option called "maximumStringLength" (defaults to 0, state will use the full string), which states the maximum size a string can be in the display.

Configuration Options:

  • Added new configuration option "stText" (defaults to "st"), which states the day ordinal for the first day.
  • Added new configuration option "ndText" (defaults to "nd"), which states the day ordinal for the second day.
  • Added new configuration option "rdText" (defaults to "rd"), which states the day ordinal for the third day.
  • Added new configuration option "thText" (defaults to "th"), which states the day ordinal for the other days.
  • Added new configuration option "dayNames" (defaults to all day names starting from Monday), which states all the full-day names.
  • Added new configuration option "dayNamesAbbreviated" (defaults to all day names starting from Mon), which states all the abbreviated day names.
  • Added new configuration option "monthNames" (defaults to all month names starting from January), which states all the full month names.
  • Added new configuration option "monthNamesAbbreviated" (defaults to all month names starting from Jan), which states all the abbreviated month names.
  • Added new configuration option "ellipsisText" (defaults to "..."), which states the ellipsis text to use for areas that are too long.

Fixes & Improvements:

  • All text translations now allow empty text to be passed (which will prevent them from defaulting to the English version).


Version 0.8.0:

Configuration Options:

  • Added new configuration option "objectErrorText", which states the error text that should be shown when an object error is detected (defaults to "Errors in object: {{error_1}}, {{error_2}}").
  • Added a new configuration option called "attributeNotValidErrorText", which states the error text that should be shown when a binding object isn't valid (defaults to "The attribute '{{attribute_name}}' is not a valid object.").
  • Added a new configuration option called "attributeNotSetErrorText", which states the error text that should be shown when a binding attribute isn't set (defaults to "The attribute '{{attribute_name}}' has not been set correctly.").

Fixes & Improvements:

  • Added "use strict" support internally and updated all public functions to use the new scope.


Version 0.7.0:

New Features:

  • Added custom value rendering support! This allows custom triggers to be used to render the values for specific types how you choose!

Binding Options:

  • Added a new binding option called "ignoreUnknownValues", which states if UNKNOWN values should be ignored and not rendered (defaults to false).

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onBooleanRender", which states an event that should be triggered when a boolean value is rendered.
  • Added a new binding option custom trigger called "onDecimalRender", which states an event that should be triggered when a decimal value is rendered.
  • Added a new binding option custom trigger called "onNumberRender", which states an event that should be triggered when a number value is rendered.
  • Added a new binding option custom trigger called "onStringRender", which states an event that should be triggered when a string value is rendered.
  • Added a new binding option custom trigger called "onDateRender", which states an event that should be triggered when a date value is rendered.
  • Added a new binding option custom trigger called "onFunctionRender", which states an event that should be triggered when a function value is rendered.
  • Added a new binding option custom trigger called "onNullRender", which states an event that should be triggered when a null value is rendered.
  • Added a new binding option custom trigger called "onUnknownRender", which states an event that should be triggered when an unknown value is rendered.

Fixes & Improvements:

  • Internal code cleanups to make things easier to read.
  • Fixed the CSS class "unknown" having a hover effect.


Version 0.6.0:

Binding Options:

  • Added a new binding option called "maximumDecimalPlaces", which states how many decimal places should be used for decimal values (defaults to 2).

Fixes & Improvements:

  • Fixed a minor formatting issue in the "package.json" file.
  • Fixed a fault that prevented the date formatter "{dd}" from showing a padded number.


Version 0.5.1:

  • Fixed the README files containing invalid characters.
  • Fixed the spacing around the Object/Array nodes.


Version 0.5.0:

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onDestroy", which states an event that should be triggered when an element is destroyed.

Public Functions:

  • Added a new public function "openAll()", which will open all the nodes for a specific DOM element.
  • Added a new public function "closeAll()", which will close all the nodes for a specific DOM element.
  • Added a new public function "destroy()", which will revert a rendered DOM element to its original state.
  • Added a new public function "destroyAll()", which will revert all rendered DOM elements to their original state.
  • Added a new public function "getIds()", which will return all the IDs for the elements that have been rendered.


Version 0.4.0:

Binding Options:

  • Added a new binding option called "showTitleCopyButton", which states if the copy all button should be shown in the title bar (defaults to false).
  • Added a new binding option called "showValueColors", which states if the colors for the values should be shown (defaults to true).

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onCopyAll", which states an event that should be triggered when the JSON is copied to the clipboard.
  • Added a new binding option custom trigger called "onOpenAll", which states an event that should be triggered when all the JSON nodes are opened.
  • Added a new binding option custom trigger called "onCloseAll", which states an event that should be triggered when all the JSON nodes are closed.

Configuration Options:

  • Added a new binding option called "copyAllButtonText", which states the text that should be shown for the "Copy All" button text.

Fixes:

  • Fixed the font being overridden for the display.


Version 0.3.0:

Binding Options:

  • Added a new binding option called "ignoreNullValues", which states if NULL values should be ignored and not rendered (defaults to false).
  • Added a new binding option called "ignoreFunctionValues", which states if FUNCTION values should be ignored and not rendered (defaults to false).
  • Added a new binding option called "reverseArrayValues", which states if the values from an array should be shown in reverse order (defaults to false).
  • Added a new binding option called "addArrayIndexPadding", which states if the indexes shown for an array should be padded (defaults to false).
  • Updated the default value for the binding option "dateTimeFormat" to "{dd}/{mm}/{yyyy} {hh}:{MM}:{ss}".

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onRefresh", which states an event that should be triggered when a rendered element is refreshed.

Public Functions:

  • Added a new public function "refresh()", which refreshes the UI for a specific element.
  • Added a new public function "refreshAll()", which will refresh all the rendered elements.

UI Improvements:

  • Added "unknown" property type support! This will use a new CSS class called "unknown".
  • Added "decimal" property type support! This will use a new CSS class called "decimal".

General Improvements:

  • All data is now tracked internally, allowing for future improvements.

Documentation:

  • Fixed the badge links in the README files pointing to the wrong project.


Version 0.2.0:

Binding Options:

  • Added a new binding option called "sortPropertyNamesInAlphabeticalOrder", which states if the sorted property names for an object should be in alphabetical order (defaults to true).
  • Added a new binding option called "showCommas", which states if commas should be shown at the end of each line (defaults to false).

Public Functions:

  • Added new public function "render()", which will render a specific DOM element using the options you specify.
  • Added new public function "renderAll()", which will find all new DOM elements with the "data-jsontree-options" attribute and render them.

UI Improvements:

  • The spacing used for the title bar buttons is now smaller when viewed on a mobile.

Documentation:

  • Fixed some spelling and grammar mistakes in the documentation.
  • Minor improvements to the documentation layout.


Version 0.1.0:

  • Everything :)