Releases: williamtroup/JsonTree.js
Releases · williamtroup/JsonTree.js
JsonTree.js v4.6.3 - Bulk editing / paging fixes!
- 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!
- Fixed a fault that prevented the shortcut keys from working correctly.
JsonTree.js v4.6.1 - 12-hour format support! UI improvements and fixes!
- 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!
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!
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!
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!
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!
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).
JsonTree.js v4.1.0 - Line numbers! Side-by-side comparisons! Context menus for values! Item selections! Lots of fixes!
New Features:
- Added item selection support!
- Added context menu support for all values, which will allow you to quickly Edit and Copy (values only), and Remove items (or copy multiple items).
- Added support to remove array items when editing them (clearing the value, then pressing enter).
- Added support to convert HTML objects to JSON when the Copy, Copy All, or the Export button is pressed.
- Added line numbers support (one by default), with additional options!
- Added property name comparison support (in paging mode with columns enabled)!
- Added support to show just primitive types in the display (they are added to a new object so they can be viewed).
Binding Options:
- BREAKING: Renamed the binding option "includeTimeZoneInDateTimeEditing" to "includeTimeZoneInDates";
- Added a new binding option called "parse.stringsToSymbols" (defaults to false), which states if string values should be parsed to symbol values (if valid).
- Added a new binding option category called "lineNumbers".
- Added a new binding option called "lineNumbers.enabled" (defaults to true), which states if line numbers should be shown.
- Added a new binding option called "lineNumbers.padNumbers" (defaults to false), which states if line numbers should be padded.
- Added a new binding option called "lineNumbers.addDots" (defaults to true), which states if line numbers should show a dot after the number.
- Added a new binding option called "showClosedArraySquaredBrackets" (defaults to true), which states if the closed squared symbols ([ ... ] text) should be shown.
- Added a new binding option called "showClosedObjectCurlyBraces" (defaults to true), which states if the closed curly braces ({ ... } text) should be shown.
- Added a new binding option called "paging.allowComparisons" (defaults to false), which states if side-by-side property name comparisons can be shown in the display.
- Added a new binding option called "convertClickedValuesToString" (defaults to false), which states if the values click (when an event is assigned) should be converted to strings.
Improvements:
- Updated the NPM packages to the latest versions.
- Added a new CSS variable called "--json-tree-js-spacing-title-bar", which states the spacing to use for the title bars and panels (and containing buttons).
- Clicking on the "[ ... ]" or "{ ... }" closed symbols text will now open the object/array/set/map/html.
- The Binding Options and Configuration Options are now loaded using less memory (less overwrites).
- Renamed the CSS classes "span.type-color" and "span.type" to "span.data-type-color" and "span.data-type".
- The binding option "includeTimeZoneInDates" setting is now used when bulk editing, or copying JSON values!
- Undefined Values are now treated as nulls when exporting, copying, or bulk editing.
- If any binding option under "allowEditing" is set to false, then "allowEditing.bulk" is set to false as an override (so that manual overriding editing cannot be done).
- Renamed all shorthand variable names so they are easier to read in code reviews.
Fixes:
- Fixed some strange spacing issues around the title bar/panel buttons.
- Fixed some missing semi-colons in the SASS.
- Fixed some missing semi-colons in the TypeScript.
- Fixed a fault that caused the binding option "showOpeningClosingSquaredBrackets" to be ignored.
- Fixed a fault that caused the data type label to be shown next to the "There are no properties to view." text.
- Fixed some missing data types, and incorrect variable types.
- Fixed a fault that caused the array paging system to fail when showing data obtained from a URL source.
JsonTree.js v4.0.0 - Side-by-side paging columns! Footer! Control buttons! More types! Tons of fixes!
New Features:
- Added paging column support! This will allow you to view multiple array pages on one page, with column reordering reordering support!
- Added HTML type support (shown as an object, and can be viewed as a parent/array item)!
- Added Lambda type support (this still shows as a function, but the type is now different, allowing additional filtering)!
- Enter support in bulk editing! This will allow new entries to be added (you must use CTRL/CMD + Enter instead to confirm the changes)!
- Added a footer bar! This will show the current page information, value sizes (in B, KB, MB, etc) and additional information (only shown in full-screen mode).
- Added support to delete array pages (when enabled) via bulk editing!
- Added a new contents control panel! This sits in the top-right, and allows quick access to moving, removing, bulk editing, etc.
- Added new public functions that will allow the binding options for instances to be updated!
- RegExp, Symbol, and Image values can now be edited!
- Added support to filter only on data types available, along with showing the total count of each kind on the display.
- Added Vietnamese language translation support.
Binding Options:
- BREAKING: Renamed the binding option "showCounts" to "showObjectSizes".
- BREAKING: Renamed the binding option "showTypes" to "showDataTypes".
- BREAKING: Renamed the binding option "title.showTreeControls" to "title.showCloseOpenAllButtons".
- BREAKING: Removed the binding option "copyOnlyCurrentPage".
- Added a new binding option category called "paging".
- Added a new binding option called "paging.enabled" (defaults to false), which states if paging is enabled (replaces "showArrayItemsAsSeparateObjects").
- Added a new binding option called "paging.columnsPerPage" (defaults to 1, maximum of 6), which states how page columns (array items) to show for each page.
- Added a new binding option called "paging.startPage" (defaults to 1), which states which page to start on when array paging is enabled.
- Added a new binding option called "paging.synchronizeScrolling" (defaults to false), which states if the paging columns should synchronize their scroll positions.
- Added a new binding option called "paging.allowColumnReordering" (defaults to true), which states if the columns can be reordered when editing is enabled.
- Added a new binding option category called "footer".
- Added a new binding option called "footer.enabled" (defaults to true), which states if the footer bar should be shown (in full-screen mode).
- Added a new binding option called "footer.showDataTypes" (defaults to true), which states if the footer bar should show the value data types.
- Added a new binding option called "footer.showLengths" (defaults to true), which states if the footer bar should show the key/value length.
- Added a new binding option called "footer.showSizes" (defaults to true), which states if the footer bar should show the key/value sizes.
- Added a new binding option called "footer.showPageOf" (defaults to true), which states if the footer bar should show the "Page x of y" text.
- Added a new binding option called "footer.statusResetDelay" (defaults to 5000 milliseconds), which states how long the status notification text should be visible for.
- Added a new binding option category called "controlPanel".
- Added a new binding option called "controlPanel.enabled" (defaults to true), which states if the panel is enabled.
- Added a new binding option called "controlPanel.showCopyButton" (defaults to true), which states if the copy button should be visible.
- Added a new binding option called "controlPanel.showMovingButtons" (defaults to true), which states if the moving buttons should be visible.
- Added a new binding option called "controlPanel.showRemoveButton" (defaults to false), which states if the remove button should be visible.
- Added a new binding option called "controlPanel.showEditButton" (defaults to true), which states if the edit button should be visible.
- Added a new binding option called "controlPanel.showCloseOpenAllButtons" (defaults to true), which states if the open/close all buttons should be visible.
- Added a new binding option called "controlPanel.showSwitchToPagesButton" (defaults to true), which states if the switch to pages buttons should be visible.
- Added a new binding option called "autoClose.htmlSize" (defaults to 0), which states the size an HTML object has to be before it's closed on the first load.
- Added a new binding option called "sideMenu.showAvailableDataTypeCounts" (defaults to true), which shows the total count for each data item on display next to the checkbox text.
- Added a new binding option called "sideMenu.showOnlyDataTypesAvailable" (defaults to false), which states that only the data types on display should be shown as filter checkboxes.
- Added a new binding option called "maximumUrlLength" (defaults to 0, state will use the full Url), which states the maximum size a Url can be in the display.
- Added a new binding option called "maximumEmailLength" (defaults to 0, state will use the full Email), which states the maximum size an Email can be in the display.
- Added a new binding option called "minimumArrayIndexPadding" (defaults to 0), which states the minimum number of padding zeros that should be used on array indexes.
- Added a new binding option called "arrayIndexPaddingCharacter" (defaults to "0"), which states the padding character that should be used for array indexes.
- Added a new binding option called "ignore.htmlValues" (defaults to false), which states if HTML values should be ignored.
- Added a new binding option called "ignore.lambdaValues" (defaults to false), which states if lambda values should be ignored.
- The binding option "sideMenu.titleText" now defaults to whatever "title.text" is set to (will prevent having to set this twice).
- Added a new binding option called "showCssStylesForHtmlObjects" (defaults to false), which states if the CSS styles should be shown for an HTML object.
- Added a new binding option called "jsonPathAny" (defaults to ".."), which states the characters that should be used to define an "any" path.
- Added a new binding option called "jsonPathSeparator" (defaults to ""), which states the separator to use for JSON paths.
- Added a new binding option called "showChildIndexes" (defaults to true), which states if the child array/set indexes should be shown.
- The binding option "showCommas" now defaults to true.
- Added a new binding option called "allowEditing.regExpValues" (defaults to true), which states if RegExp values can be edited.
- Added a new binding option called "allowEditing.symbolValues" (defaults to true), which states if Symbol values can be edited.
- Added a new binding option called "allowEditing.imageValues" (defaults to true), which states if Image values can be edited.
Binding Options - Custom Triggers:
- BREAKING: Every custom trigger must now accept the main JsonTree.js element as the first parameter, so you can identify which element the event came from.
- Added a new binding option custom trigger called "onLambdaRender", which fires an event when a lambda value is rendered (allow element render overrides).
- Added a new binding option custom trigger called "onFullScreenChange", which fires an event when the full-screen mode is changed (passes a flag to state if it's on).
Configuration Options:
- BREAKING: Renamed "text.copyAllButtonSymbolText" to "text.copyButtonSymbolText".
- Changed the EN default for the option "text.showTypesText" to "Show Data Types", and renamed it to "text.showDataTypesText".
- Added a new option called "text.htmlText", which states the text to use for the html types (defaults to "html").
- Added a new option called "text.waitingText", which states the text to use in the footer main status area when waiting (defaults to "Waiting...").
- Added a new option called "text.pageOfText", which states the text to use in the footer for the array page index (defaults to "Page {0} of {1}").
- Added a new option called "text.sizeText", which states the text to use in the footer for the value size (defaults to "Size: {0}").
- Added a new option called "text.copiedText", which states the status text to use in the footer when the JSON is copied (defaults to "JSON copied to clipboard.").
- Added a new option called "text.exportedText", which states the status text to use in the footer when the JSON is exported (defaults to "JSON exported.").
- Added a new option called "text.importedText", which states the status text to use in the footer when JSON files are imported (defaults to "{0} JSON files imported.").
- Added a new option called "text.ignoreDataTypesUpdated", which states the status text to use in the ignore data types is updated (defaults to "Ignore data types updated.").
- Added a new option called "text.lengthText", which states the text to use in the footer for the length of the value (defaults to "Length: {0}").
- Added a new option called "text.valueUpdatedText", which states the status text to use when a value is updated (defaults to "Value updated.").
- Added a new option called "text.jsonUpdatedText", which states the status text to use when the JSON is updated (defaults to "JSON updated.").
- Added a new option called "text.nameUpdatedText", which states the status text to use when a property name is updated (defaults to "Property name updated.").
- Added a new option called "text.indexUpdatedText", which states the status text to use when an array index is updated (defaults to "Array index updated.").
- Added a new option called "text.itemDeletedText", which states the status text to use when an item is deleted (defaults to "Item deleted.").
- Added a new option called "text.arrayJsonItemDeleted", which states the status text to use when a JSON page is deleted (defaults to "Array JSON it...