New Features Described in Oracle JET's Documentation for Release 17.0.0
Here are updates to the documentation for Oracle JET to describe new features and enhancements added to Release 17.0.0.
For other changes in this release, see the product Release Notes.
Oracle JET
Documentation updates for this release of Oracle JET.
-
Progressive Web App support
Progressive Web App support for Oracle JET web apps has been enhanced with the inclusion of an
assets
folder with a range of image files for splash screens and app launcher icons. See Add Progressive Web App Support to Web Apps. -
TypeScript
This release of JET uses version
5.4.5
of TypeScript. For more detail about TypeScript in Oracle JET apps, see Configure Oracle JET Apps for TypeScript Development. -
Omit component version number from the output directory path
The
oraclejetconfig.json
file now includes anunversioned
property. When set totrue
, Oracle JET generates components in a directory path without the component version number when you run the Oracle JET commands that output components (build
,serve
). For example, with"unversioned": true
, the output path for components in an Oracle JET app is as shown in the following snippet of the terminal console:runAllComponentHooks for component: web\components\my-component-pack\component.json finished
Without the
unversioned
property in theoraclejetconfig.json
file, use of the Oracle JET--omit-component-version
command-line argument with thebuild
orserve
command generates components in a directory path without the component version number.If the
oraclejetconfig.json
file includes"unversioned": false
, Oracle JET generates components in a directory path with the component version number when you run thebuild
orserve
command, even if you use the--omit-component-version
command-line argument. For example:runAllComponentHooks for component: web\components\my-component-pack\1.0.0\component.json finished
In other words, setting
"unversioned"
totrue
orfalse
in theoraclejetconfig.json
file takes precedence over the command-line argument. See Properties in the oraclejetconfig.json File. -
Path mapping
This release provides an expanded explanation of the path mapping process and its available configuration options. It now includes more information on using the path mapping configuration file to add third-party tools and libraries to your apps. See Add Third-Party Tools or Libraries to Your Oracle JET App and Understand the Path Mapping Script File and Configuration Options.
Migration Information
Note the following change that affect JET apps that you migrate to Release 17.0.0:
See the following sections for step-by-step information about migrating your app to this release of Oracle JET.
- Migrate Alta-themed Applications from Releases Prior to 8.3.0 to Release 17.0.0 describes migration steps from releases prior to release 8.3.0 that allow migrating apps to the latest release.
- Migrate to the Redwood Theme CSS updated to describe how to migrate an Alta-themed app to the Redwood theme. As the topic describes, starting in release 9.0.0 it is possible to migrate to the Redwood theme.
- Migrate Redwood-themed Apps from Releases 9.x.0 or Later to Release 17.0.0 describes migration steps for Oracle JET app sources from version 9.x.0 or newer to the latest release.
Oracle JET Audit Framework
Using and Extending the Oracle JET Audit Framework has been updated in the following ways.
An important change for rule writers to note is that JAF now enforces the rule
that any custom configuration properties that you define for your audits must be defined under
the customOpts
rule property. Please scan your rules for direct access of
custom options from <context>.ruleOpts
,
<context>.rulePack.getRuleOptions()
or
<context>.rulePack.getRuleOption()
and amend to use the relevant
custom option API. For example,
<context>.rulePack.getRuleCustomOptions()
. See Define the Runtime Properties of Custom Audit Rules.
New and changed JAF audit features:
-
JAF includes changes to existing rules:
- The
best-practice
andredwoood-strict
profiles increased the severity frommajor
toblocker
for theoj-html-style-bp-font-family
andoj-css-style-bp-font-family
rules with message IDs ofJET-5040
andJET-6035
. - The
oj-html-style-bp-margin-padding
rule uses the newstylemember
registered listener type to reduce its invocation overhead. - The following rules now additionally check for style attribute members, such as
style.borderColor="xxx"
andstyle.minHeight="xxx"
.oj-html-style-abs-units oj-html-style-bp-color oj-html-style-bp-display oj-html-style-bp-font oj-html-style-bp-font-family
- The following rules have been updated to support the new
<oj-if>
element.oj-html-bindif-test oj-html-binding-as-slot-child oj-html-form-bindif oj-slot-pref-content oj-tsx-form-bindif
And the following rules now recommend use of
oj-if
rather than oj-bind-if
:oj-css-style-bp-display oj-html-ko_databind oj-html-ko-comment oj-html-style-display
- The
- JAF includes new rules:
-
Rule: oj-html-bp-button-xs-chroming Severity: major Message ID: jet-5135 Rule: oj-tsx-bp-button-xs-chroming Severity: major Message ID: jet-7220 For <oj-button> and <oj-c-button> property size="xs" is only supported using ghost chroming and icon display mode. For size="xs": 1) chroming="ghost" is required, and: 2) display="icons" is required.
-
Rule: oj-html-bp-title-to-tooltip Severity: major Message ID: jet-5140 Rule: oj-tsx-bp-title-to-tooltip Severity: major Message ID: jet-7230 The 'tooltip' attribute matches the Redwood specification, but 'title' does not. Additionally, there are accessibility issues with 'title' that are solved using 'tooltip'. Action: replace attribute 'title' with 'tooltip'.
-
Rule: oj-acc-button-label Severity: blocker Message ID: jet-2185 Rule: oj-tsx-acc-button-label Severity: blocker Message ID: jet-7225 For button accessibility, the 'label' attribute should be applied to the following button components: <oj-c-button>, <oj-c-menu-button> and <oj-c-split-menu-button>.
-
Rule: oj-tsx-style-bp-margin-padding Severity: major¹ Message ID's: jet-7200, 7201, 7202 Rule: oj-html-style-bp-margin-padding Severity: major¹ Message ID's: jet-5120, 5121, 5122 For best practices, margin/padding classes such as 'oj-sm-margin-4x' and 'oj-sm-padding-4x' are preferred over numeric values. See the Margins & Padding demo category in the JET cookbook under the Framework Utility CSS category. Negative values are not supported. The currently supported values are 4px - 48px, 0.25rem - 12rem, and 0.25em - 12em. ¹ Possibility of more than 1 severity since there are 3 message ID's
-
Rule: oj-tsx-button-size-chroming Severity: major¹ Message ID's: jet-7215, 7216 Rule: oj-html-button-size-chroming Severity: major¹ Message ID's: jet-5130, 5131 The Redwood input designs require the use of small buttons. Please update the button attributes in the 'start' or 'end' slot: 1) For <oj-button>, use class="oj-button-sm" 2) For <oj-c-button>, set size="sm" and chroming="ghost" ¹ Possibility of more than 1 severity since there are 2 message ID's
-
Rule: oj-tsx-style-abs-units Severity: major¹ Message ID's: jet-7210, 7211, 7212 In general it is preferable to use relative length units in place of absolute units. Specifically, 'rem' units are recommended because they proportionately adjust to the root font size. 'rem' can be used for anything that takes a length unit - e.g. font-size, line-height, width, height, padding, margin, etc. However, there are cases where absolute units are required. This project is configured to allow absolute units in selector names that include one of the following terms: 'image, and 'picture'. ¹ Possibility of more than 1 severity since there are 3 message ID's
-
The following new rules are only active if the configuration file inherits from the
redwood-strict
profile using theextends
configuration property.Rule: oj-html-redwood-clear-icon Severity: blocker Message ID: jet-0535 For JET components <oj-input-text>, <oj-c-input-text>, <oj-c-input-password>, and <oj-c-input-sensitive>, the 'clear-icon' attribute value 'always' is not permitted using the 'redwood-strict' profile'. Only Typing, Focus, and Selection states can show the Clear button. Other states don't show the Clear button since there is no active value to clear or delete. The value 'always' would keep the icon showing at all times, while 'conditional' behaves in the manner above. Rule: oj-tsx-redwood-clear-icon Severity: blocker Message ID: jet-8000 For JET components <oj-input-text>, <oj-c-input-text>, <oj-c-input-password>, and <oj-c-input-sensitive>, the 'clear-icon' attribute value 'always' is not permitted using the 'redwood-strict' profile'. Only Typing, Focus, and Selection states can show the Clear button. Other states don't show the Clear button since there is no active value to clear/delete. The value 'always' would keep the icon showing at all times, while 'conditional' behaves in the manner above.
-
Changes for rule writers:
-
New utility library
context.utils.configUtils
which contains configuration convenience methods. For example, thegetExtendsProfileName()
method returns the profile name from which the current active configuration was extended. See ConfigLib: Configuration Library. - New rule registration listener type,
stylemember
. Listeners of this type fire when a style attribute and a member reference are declared. For example,style.marginTop="4px"
. - Walkthrough of a Sample Virtual DOM TSX Audit Rule has been added to illustrate how to write audit rules for the TSX files of an Oracle JET virtual DOM app.
- Fixed failure in
metaLib.getPropStatus()
if the specified user component has no properties.
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.
Access to Oracle Support
Oracle customer access to and use of Oracle support services will be pursuant to the terms and conditions specified in their Oracle order for the applicable services.
Oracle JavaScript Extension Toolkit (Oracle JET) What's New in Oracle JET, 17.0.0
F96382-01
August 2024
Primary Author: Oracle Corporation