JET v7.1.0 Release Notes

22 July 2019

To view Release Notes from a prior release of JET, select the specific below

These release notes cover the following topics:

Things you need to know first

  • A reminder that in JET v7.0.1 the Knockout.js library was updated to v3.5.0 to address a security issue. With this new version of Knockout, the second argument in an applyBindings() call, can no longer be null. It must reference a real DOM element.

  • This release is a bug fix release. The migration from any 7.x version to this bug fix release should be drop in compatible.

  • A new alternative expression evaluator is now available for those that require an app that will run in a strict Content Security Policy environment. Read more...

  • We have started to roll out support for TypeScript in conjunction with the existing JavaScript, as part of the Cookbook. To see an example of how this looks, take a look at the NavigationList component.

New Features included in v7.1.0

New UI Components and Component Features

A new expression evaluator has been introduced that allows JET expression syntax to be evaluated in a way that is compliant with Content Security Policies that prohibit unsafe evaluations. The default remains unchanged, but applications can opt into this new behavior with some restrictions on the types of expressions that are supported. See details on creation, usage, supported expressions and limitations in the CspExpressionEvaluator documentation.

Significant JET changes since 7.0.0

This section lists significant consumer-facing changes that have been made to JET since v7.0.0. Where bugs or ERs were used to track the change, they are included below. The following list does not include changes that are internal implementations, or changes made to samples, demos, or test collateral. It is expected that application code will not need to be modified to uptake v7.1.0.

Component Changes

oj-buttonset-one and oj-buttonset-many: new labelled-by and described-by attributes

The oj-buttonset-one and oj-buttonset-many components have added the following new attributes:

  • labelled-by: used to establish a relationship between this component and another element for accessibility. A common use is to tie the oj-label and the oj-buttonset together to facilitate correct screen reader behavior.
  • described-by: used to establish a relationship between this component and another element. Typically this is not used by the application developer, but by the oj-label custom element's code. One use case is where the oj-label custom element code writes described-by on its form component for accessibility reasons. To facilitate correct screen reader behavior, the described-by attribute is copied to the aria-describedby attribute on the component's dom element.

API Changes

API changes are not permitted in minor releases of JET.

Theme Changes

No changes to theming in this release.

Framework Changes

Null default values for custom JET Web Components

A bug has been fixed where specifying null as the default value for a property of a custom JET Web Component would result in an empty Object ({}) being returned as the default value for that property at runtime. With the fix, the correct value of null will now be returned.

Library Changes

Updates to 3rd party libraries is not permitted in minor releases of JET.

Tooling Changes

Known Issues

The following table calls out specific known issues, with workarounds where available.

Category Bug # Description Workaround (if available)
JET Build N/A In some rare situations, an error is being thrown during the ojet build/serve command, reporting an issue with the svgo library.
Update the version of svgo used by the ojet-cli by following these steps:
  • Change to the /node_modules/@oracle/oraclejet-tooling/ folder of your project
  • Edit the package.json file and change the svgo entry's version number to be ~1.2.2
  • Save the file and run "npm update" in that folder.
iOS N/A JET hybrid mobile apps created using an earlier JET release may have additional spacing at the top of the page when deployed to iOS 11 devices.
Change the viewport meta tag in index.html to the following:
<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1.0, user-scalable=no"/>
iOS ios-sim 210 ios-sim version 5.1.0 may be installed locally by cordova-ios and serving the app to iOS simulator reports:
"Error: Cannot read property 'replace' of undefined"
cd hybrid/platforms/ios/cordova; npm install ios-sim@latest
iOS ios-deploy 275 Deployment to iOS device succeeds, but the app fails to launch and an error is reported in the terminal.
Upgrade to the latest version of ios-deploy (sudo npm install -g ios-deploy) and use a developer signing identity. Otherwise, launch the app manually on the device.
npm npm 16901 npm version 5 does not install the oraclejet module when scaffolding a JET hybrid app and building the app reports:
Warning: ENOENT: no such file or directory, open 'node_modules/oraclejet/package.json' Use --force to continue
[sudo] npm install -g npm@latest-4