All Versions
81
Latest Version
Avg Release Cycle
31 days
Latest Release
735 days ago

Changelog History
Page 6

  • v4.2.1 Changes

    June 17, 2020
    • js/DataFormsJS.js
      • Improvements for Vue 2 so that long running tasks can still run in the background after a user goes to a new page in an SPA.
      • New setting added app.settings.clearVue2WatchersOnRouteUnload which defaults to false.
      • Originally Vue 2 Instances View Models were converted back to plain JavaScript objects on route changes to reduce the number of watchers that exist in memory when a models was not for the active page.
      • By default this will result in more Vue watchers being created on SPA's that have many pages, however for pages that have long running functions in the background that update the model the results are more predictable for the user because when they go back to the original page it will show the updates.
      • In general this has a minimal performance impact for most apps but if needed watchers can still be cleared using the new setting.
      • To see how this works try this example: https://www.dataformsjs.com/examples/image-classification-vue.htm
      • When using Vue 2 upload several images then quickly move to another tab while the images are still uploading.
      • After you have clicked off the main page type app.models into DevTools and you can see that the model for the main page is a Vue Model.
      • Once you come back to the original page then the prediction should be displayed for each image.
      • Then from DevTools execute app.settings.clearVue2WatchersOnRouteUnload = true and try the same steps.
      • If you type app.models into DevTools from another page you will now see that the original model is a plain JavaScript object.
      • Once you come back to the original page the images will still show Loading ... however there will be fewer Vue watchers for the app.
      • This does not affect Vue 3 or other view engines such as Handlebars because the original model reference is still kept in memory at app.models.
    • ๐Ÿ”Œ js/plugins/filter.js
      • Updated anonymous functions on event handlers to used named function expressions which makes it easier to find the source code from Browser DevTools.
      • Updated code comments in onRouteUnload() with more details on how it works with Vue 3 compared to other plugins.
    • โœ… Started including version number in code comments of several minimized files. This makes it clear which version is being used if referencing the latest version (rather than a specific version) from a CDN. For example: https://cdn.jsdelivr.net/npm/dataformsjs@latest/js/DataFormsJS.min.js
      • js/DataFormsJS.min.js
      • js/react/jsxLoader.min.js
      • js/react/es5/DataFormsJS.min.js
      • js/web-components/json-data.min.js
      • js/web-components/url-hash-router.min.js
  • v4.2.0 Changes

    June 16, 2020
    • โž• Added Support for Vue 3 (Beta 15) to the main DataFormsJS Framework, updated files:
      • js/DataFormsJS.js
      • js/controls/json-data.js
      • js/extensions/vue-directives.js
      • js/plugins/filter.js
      • js/plugins/i18n.js
    • For all example pages and the Code Playground Templates Vue 2 can simply be swapped out with Vue 3 and the pages/apps will work as expected.
    • ๐Ÿš€ Vue 3 is still in Beta so additional updates may be required before or after the final release of Vue 3.
    • ๐Ÿ’… Vue 2 - Improved support for the v-cloak directive to hide the view while it is rendering. Previously this was set on individual elements in the template however for compatibility with both Vue 2 and Vue 3 this is now handled automatically by DataFormsJS on the main view element. By default DataFormsJS adds required CSS for v-clock from the properties app.vueCss and vueStyleId.
    • ๐Ÿ‘ Vue 2 - Added support for computed properties to be defined directly on the page object. Previously computed properties had to be defined on the controller object which made it harder to define computed properties since controllers are typically setup in HTML rather than JavaScript. Also works with Vue 3. Example usage: examples/template-files-vue.htm
    • โž• Added support to allow model properties the filter.js attributes data-filter-results-text-all and data-filter-results-text-filtered, example usage: examples/html/regions-vue.htm and examples/html/regions-hbs.htm
  • v4.1.0 Changes

    May 21, 2020
  • v4.0.1 Changes

    March 12, 2020
    • ๐Ÿ“œ jsxLoader.js - Fix for incorrect parsing of JavaScript comments nested with-in elements
  • v4.0.0 Changes

    March 12, 2020
    • ๐Ÿ’ฅ Breaking Changes - Relatively minor but they are breaking so a new major release number is being used:
      • Removed previously depreciated PolyfillService Component/Class.
      • Removed support for I18n without the use of a fetch polyfill for legacy browsers.
      • Both of these items are no longer needed due to creation of jsxLoader.js and for build tools create-react-app, etc Polyfills can be bundled.
    • jsxLoader.js - General improvements for additional JSX Syntax

      • Fixed issue where links https:// were being partially parsed as single-line comments inside of an element
      • Improved loop syntax elements needed to be enclosed in a () in certain situtations ```jsx
        // Before {props.data && props.data.categories && props.data.categories.map(category => { return () })}

      // After {props.data && props.data.categories && props.data.categories.map(category => { return })}

      * Fixed issue where some characters such as '>' were being parsed within prop strings:
      ```jsx
      <InputFilter filter-selector="section.category ul > li" />
      
      • Added Array.prototype.find to Polyfill Bundle for Legacy Browsers
    • โž• Added new JavaScript class Cache for simple state caching and re-use with React and Preact Apps.

    • React InputFilter Component

      • Added a new afterFilter property to allow applications to define a custom events once data is filtered
      • Previously if using a label to show filter results from [filter-results-selector] both [filter-results-text-all] and [filter-results-text-filtered] were required; now only one property is required.
    • DataFormsJS Framework Object DataFormsJS.js

      • Added app.settings.lazyLoadingViewSelector to allow for loading screens between page views when using app.lazyLoad. In most cases loading logic is used on actual page content however this helps with the user experince to indicate page change on slow mobile devices and scripts are being loaded.
      • Added Array.prototype.find to Polyfill Bundle for Legacy Browsers
  • v3.6.2 Changes

    February 25, 2020
    • jsxLoader.js
      • Added support for Shorthand React.Fragment Syntax <>
      • Switched Babel Standalone from Version 6 to Version 7.8.4
      • Switched eval code syntax to use new Function('"use strict";' + jsxLoader.evalCode)(); instead of eval(jsxLoader.evalCode);
      • Load additional Polyfills from polyfill.io service and added jsxLoader.addAdditionalPolyfills() function.
      • Added additional Unit Tests
  • v3.6.1 Changes

    February 20, 2020
    • ๐Ÿ› Bug fix <LazyLoad> so that it works with Safari on iOS 9 when using Dynamic Components in the isLoaded prop.
  • v3.6.0 Changes

    February 20, 2020
    • โž• Added Web Based Compiler for React/JSX jsxLoader.js.
      • For use as an alternative to Babel, webpack, etc
      • Also works for React alternatives including Preact and Alibaba Rax
      • All React Demos on the main web site and repository now use jsxLoader.js
      • Added additional demos to the main site for React and initial demos for Preact and Rax
    • โž• Added new LazyLoad React Component for code splitting of JSX code on large apps and lazy loading of JavaScript and CSS files.
    • โž• Added Initial Unit Testing for React Components and the JSX Loader
    • JsonData Component
      • Added GraphQL Support with new properties:
      • graphQL={true}
      • query="{query}"
      • querySrc="{url}"
      • variables={}
    • โž• Added js/scripts/polyfills.js using feature detection to polyfill trimStart(), trimEnd(), trimLeft(), and trimRight()
    • ๐Ÿš€ With the new features this PolyfillService Component/Class is being depreciated and will be removed in a future release. A console warning is provided if using the class. A console warning is also included in the I18n class which currently uses either fetch or XMLHttpRequest.
  • v3.5.4 Changes

    February 20, 2020
    • ๐Ÿ’ป DataFormsJS - Added pollyfill check and support if Promise.prototype.finally is missing. This was found to affect the UC Browser.
    • JsonData Component
      • Added support for missing isLoaded elements so that JsonData can be used to ping the server without displaying data. For example <JsonData url="https://www.dataformsjs.com/data/geonames/countries" />
      • Update for onViewUpdated event so that is called on the initial loading state before data is fetched. Previously it was only called after data has downloaded or if there was an error downloading data.
      • Added Error Handling for custom onViewUpdated events. The prevents issues from display data when an error occurs in third-party or app code.
    • ๐Ÿ‘Œ Improved Support for Preact when using React Components
      • React Components ES5 Build Version will detect if preact is being used instead of React and work automatically
      • InputFilter will detect if preact is being used as an alias in a web page for React and then use onInput instead of onChange
  • v3.5.3 Changes

    February 02, 2020
    • ๐Ÿ‘Œ Improvements for IE 11
      • Bug fix for when template elements were used that included embedded HTML. IE doesn't support the template element so DataFormsJS converts them to script type="text/x-template" elements when the page is loaded. Previously it simply hide the template elements but an edge case error was found when Framework JavaScript controls were used in the embedded templates.
      • Added Cache Busting for IE when app.fetch() is called with cache = no-cache|no-store. Earlier pre-release versions of DataFormsJS used this but it was removed once the GitHub fetch Polyfill was used.
    • ๐Ÿš€ Updated Unit Tests so that they work with Firefox and IE 11. Originally Unit Testing occurred in all Browsers but changed to Webkit only prior to the initial release due to time constrains.
    • โšก๏ธ Updates for React Components - Removed the requirement for custom import and exports definitions when using babel-standalone from a browser.