Skip to content

Releases: williamtroup/JsonTree.js

JsonTree.js v4.7.0 - Convert CSV and HTML files to JSON!

10 Dec 18:39
5b12227
Compare
Choose a tag to compare

New Features:

  • Added support to import CSV files (each line will be converted to a JSON object).
  • Added support to import HTML files (will be converted to a standard object as per usual).

Configuration Options:

  • The configuration option called "text.importedText" now defaults to "{0} files imported.".
  • The configuration option called "text.dragAndDropTitleText" now defaults to "Drag and drop your files to upload.".

Improvements:

  • HTML data types now contain a new property called "$type", which states the node type of the element.
  • Added a "max-height" to the inner contents container that defaults to 700px.

Fixes:

  • Fixed a few type faults in the import files area.
  • Fixed some missing types for loops.
  • Fixed a fault that prevented the HTML data type object "@children" from being converted to JSON when editing/copying.

JsonTree.js v4.6.4 - Custom scrollbars, and fixes!

02 Dec 19:00
7a97758
Compare
Choose a tag to compare
  • Fixed a minimum width issue occurring on the Control Panel expand button.
  • Added a custom scrollbar, which will be used for all WebKit-based browsers moving forward.
  • Fixed both scroll bars being visible for X/Y on an edited name/value, and always being visible.
  • Fixed an issue that caused the vertical scrollbar to appear in the display when not required.
  • Updated the NPM packages to the latest versions.

JsonTree.js v4.6.3 - Bulk editing / paging fixes!

25 Nov 17:01
0ba9cc0
Compare
Choose a tag to compare
  • Fixed a fault that prevented bulk editing from working when paging is enabled, but no array data has been used for the JSON.
  • Fixed a script error that occurred when removing the JSON (when paging is enabled, but no array data has been used for the JSON) via the Control Buttons.
  • Fixed a fault that caused errors when calling backPage() and nextPage() when paging is enabled, but no array data has been used for the JSON.

JsonTree.js v4.6.2 - Fixed shortcut keys not working in Windows!

25 Nov 15:28
c4d159a
Compare
Choose a tag to compare
  • Fixed a fault that prevented the shortcut keys from working correctly.

JsonTree.js v4.6.1 - 12-hour format support! UI improvements and fixes!

21 Nov 21:19
66b3c2a
Compare
Choose a tag to compare
  • Fixed a fault that prevented the Control Buttons from sticking to the top-right of the JSON column.
  • Fixed a fault that caused the Control Buttons open state to be forgotten when moving columns around.
  • RGB colors that are now spaced out better for readability (for example, "rgb( 1, 1, 1 )").
  • Added "{aa}" Date/Time formatting support, which will show either AM or PM, depending on the time of day.
  • Added "{hhh}" Date/Time formatting support, which will show the hours in a 12-hour format.
  • BigInt values now show an "n" character at the end so it's clear what value they are (unless obscured by the "maximum.bigIntLength" binding option).
  • The padding used for null/undefined values in the display has been slightly decreased.

JsonTree.js v4.6.0 - Open/Close control buttons! SASS improvements! Fixes!

18 Nov 22:16
62e2f82
Compare
Choose a tag to compare

New Features:

  • Added support to open/close the control buttons in the main columns.

Binding Options:

  • Added a new binding option called "controlPanel.showOpenCloseButton" (defaults to true), which states if the open/close button is shown.

Configuration Options:

  • Added a new option called "text.openCloseSymbolText", which states the symbol text to use for the Control Buttons open/close button (defaults to "↹").

Improvements:

  • Updated the NPM packages to the latest versions.
  • SCSS files now use @use statements instead of @import (which has been deprecated).
  • The "Import" link now shows a space between the text and the ellipsis when no JSON is available to view.

Fixes:

  • Fixed a fault that caused the wrong nodes to be opened/closed when manually deleting a column.
  • Fixed a huge fault that caused errors when attempting to bulk edit the JSON in a column (or single view).

JsonTree.js v4.5.0 - More options, performance improvements, and fixes!

08 Nov 21:07
a0295f3
Compare
Choose a tag to compare

Shortcut Navigation Keys:

  • Pressing Ctrl/Command + C will copy all the JSON to the clipboard (if only one instance of JsonTree.js is used).

Binding Options:

  • Added a new binding option called "openUrlsInSameWindow" (defaults to false), which states if a URL should be opened in the same window.
  • Added a new binding option called "maximum.functionLength" (defaults to 0, state will use the full name), which states the maximum size a function can be in the display.
  • Added a new binding option called "maximum.lambdaLength" (defaults to 0, state will use the full name), which states the maximum size a lambda can be in the display.

Improvements:

  • The onscroll() method used for all columns is much faster.
  • Empty symbols are now shown as "Symbol" instead of "Symbol()".
  • Symbols that are not empty are spaced out better for readability (for example, "Symbol( id )").
  • Functions and Lambdas now show the accepted parameters.

Fixes:

  • Fixed a fault that prevented synchronized scrolling from working on all other columns except the first one.
  • Fixed a fault that didn't allow empty strings to be edited.
  • Fixed a slight misalignment of the object borders (when enabled) for the current expand icon types.
  • Fixed a fault that caused a string value that contains only whitespace characters to be treated as a float value.
  • Fixed the missing CSS variable colors from all theme files.

JsonTree.js v4.4.0 - Imported filename display support! More parsing options! Export a page! Lots of improvements and fixes!

23 Oct 21:36
c11be41
Compare
Choose a tag to compare

New Features:

  • Added filename display support! This will show the filename (in the root of the JSON) for imported files.
  • Added "Export" support to the Control Panel (shown when paging is enabled), allowing a page/column to be exported.
  • Added support to toggle the parsing of Floats and Big Ints.

Binding Options:

  • Added a new binding option called "maximum.propertyNameLength" (defaults to 0, state will use the full name), which states the maximum size a property name can be in the display.
  • Added a new binding option called "sideMenu.updateDisplayDelay" (defaults to 500 milliseconds), which states the delay that should be used before updating the UI (when something has changed).
  • Added a new binding option called "controlPanel.showExportButton" (defaults to true), which states if the export button is shown.
  • Added a new binding option called "parse.stringsToFloats" (defaults to false), which states if string values should be parsed to float values (if valid).
  • Added a new binding option called "parse.stringsToBigInts" (defaults to false), which states if string values should be parsed to big int values (if valid).

Improvements:

  • The ordinal text for a day in the Date/Time display values is now shown in a element.
  • Removed the transition effect for "padding" and "border" for items selected in the display.
  • When files are imported, they are now sorted and displayed in alphabetical order.
  • Improved the RegEx used to identify Date/Time strings (allowing for timezone adjustments) when parsing is enabled.

Fixes:

  • Fixed a fault that caused the binding option "controlPanel.enabled" to be ignored.
  • Fixed a fault that caused duplicate checks to occur for custom events when rendering JSON values.
  • Fixed a fault that caused the line numbers to re-render lots of times when rendering the JSON for the first time (causing performance issues with large JSON files).
  • Fixed a fault that prevented imported files from being loaded when another non-JSON file was selected at the same time.

JsonTree.js v4.3.0 - Custom data types! Custom expand icons! New options and fixes!

13 Oct 17:06
449294e
Compare
Choose a tag to compare

New Features:

  • 4 expand icon types are now supported by default: arrows, squares, circles, and plus/minus!
  • Added custom data types support (with editing support, and filtering support).

Binding Options:

  • BREAKING: Renamed the binding option "showArrowToggles" to "showExpandIcons".
  • Added a new binding option called "emptyStringValue" (defaults to ""), which states the display value to use for empty strings.
  • Added a new binding option called "expandIconType" (defaults to "arrow"), which states the expand icon type to use (supports "arrow", "square", "circle", and "plus-minus").
  • Added a new binding option called "id" (defaults to ""), which states the ID to use for the JsonTree.js element (if not set manually for the ID attribute).
  • Added a new binding option called "class" (defaults to ""), which states the custom classes (split up using spaces) to assign to the JsonTree.js element.

Improvements:

  • Renamed the "back" and "next" CSS classes used for the toolbar buttons to "back-page" and "next-page".

Fixes:

  • Fixed a fault that caused empty strings to appear as "unknown" types.
  • Fixed a fault that caused invalid Date() objects to show strangely in the display (when they are invalid, they now default to the current Date/Time).
  • Fixed a fault that caused the background color for editable fields to appear black (in light mode).
  • Fixed a grammar mistake in the binding option "maximumInspectionLevelsReached" default.

JsonTree.js v4.2.0 - Improving importing! Clear JSON! Lots of new options and fixes!

10 Oct 18:28
eb2d9e4
Compare
Choose a tag to compare

New Features:

  • Added support to add JSON files directly to the pages via the Control Panel (adds them to the next page index).
  • Added support to clear the JSON being displayed (via a Side Menu button).
  • Added maximum inspection levels support (to help performance).

Binding Options:

  • Added a new binding option called "controlPanel.showImportButton" (defaults to true), which states if the import button is shown.
  • Added a new binding option called "rootName" (defaults to "root"), which states the default name to use for an object/array root (if array paging is disabled).
  • Added a new binding option category called "maximum".
  • BREAKING: Moved the binding options "maximumDecimalPlaces", "maximumStringLength", "maximumUrlLength", and "maximumEmailLength" into the "maximum" category.
  • Added a new binding option called "maximum.numberLength" (defaults to 0, state will use the full number), which states the maximum size a number can be in the display.
  • Added a new binding option called "maximum.bigIntLength" (defaults to 0, which uses the full big int), which states the maximum size a big int can be in the display.
  • Added a new binding option called "maximum.inspectionLevels" (defaults to 10), which states the maximum number of inspection levels that can be shown (helps performance).
  • Added a new binding option called "sideMenu.showClearJsonButton" (defaults to true), which states if the Clear JSON button is to be shown on the side menu.

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onSelectionChange", which fires an event when the selected items in the display are changed.

Configuration Options:

  • Added a new option called "text.clearJsonSymbolText", which states the symbol text to use for the clear JSON side menu button (defaults to "⏎").
  • Added a new option called "text.clearJsonText", which states the text to use for the clear JSON side menu button (defaults to "Clear JSON").
  • Added a new option called "text.maximumInspectionLevelsReached", which states the text to show when the maximum inspection levels has been reached (defaults to "Maximum inspection levels has been reached.").

Public API Functions:

  • Added a new public function called "getSelectedJsonValues()", which will return the JSON values selected in the display.

Improvements:

  • Updated the NPM packages to the latest versions.
  • The disabled background is now rendered separately from the side menu.
  • When the main display is rendered, the CSS class "json-tree-js" is now appended (instead of set) to the elements classes, which will allow custom CSS classes to be used.
  • Added a new CSS variable called "--json-tree-js-indentation-size", which will allow you to easily change the indentation level used in the display.
  • The line numbers now stick to the left when scrolling horizontally.

Fixes:

  • Fixed a text alignment issue in the columns.
  • Fixed a fault that caused the control panel to overlap items in the display (when enabled).
  • Fixed a fault that caused the drag & drop text (in light mode) to show in the wrong color.
  • Fixed a fault that caused duplicate versions of the same color to be used everywhere.
  • Fixed a fault that caused the disabled buttons (in light mode) to not show correctly as disabled.
  • Fixed a fault that caused the title bar buttons (everywhere in light mode) to use a far too dark hover/active color.
  • Fixed a fault that prevented the CSS class "full-screen" from being removed when the public function "destroy()" is called.
  • Fixed a fault that caused the control panel to not stick to the top-right when scrolling (when moving to a different page when array paging is enabled).