New Features Described in Oracle JET's Documentation for Release 16.0.0
Here are updates to the documentation for Oracle JET to describe new features and enhancements added to Release 16.0.0.
For other changes in this release, see the product Release Notes.
Oracle JET
Documentation updates for this release of Oracle JET.
-
End-to-end testing
A new learning path describes how to use Oracle JET's Component WebElements UI automation library to write Selenium WebDriver-based test scripts to test the UI of both MVVM and virtual DOM-based Oracle JET web apps. To get started, see Set up an environment to create UI automation tests for Oracle JET web apps.
-
Function-based VComponent tutorial
A new tutorial describes how to create function-based VComponent. See Oracle JET Function-Based VComponent Tutorial.
-
TypeScript
This release of JET uses version
5.3.2
of TypeScript. For more detail about TypeScript in Oracle JET apps, see Configure Oracle JET Apps for TypeScript Development.
Migration Information
Note the following change that affect JET apps that you migrate to Release 16.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 16.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 16.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
Version 8.13.5
of the Oracle JET Audit Framework (JAF) is
included in this release of Oracle JET.
Using and Extending the Oracle JET Audit Framework has been updated in the following ways.
New and changed JAF audit features:
-
JAF includes changes to existing rules:
-
Rule: oj-html-alta-deprecated Severity: blocker¹ Message ID's: jet-0510, 5825
This rule no longer performs JET version age checks and its severity is now
blocker
. Its previous severity wasmajor
. -
Rule: oj-ts-ojcomp-deprecated Severity: major Message ID: jet-3400 Deprecated JET component classes should not be instantiated
The message produced by this rule now includes the since value to identify the release that deprecated the class, and also adds the alternative(s) to use for the deprecated class if the developer has not included a description in the metadata.
-
Extended message information for
oj-html-slot-pref-content
andoj-tsx-slot-pref-content
rulesIf the output format is non-prose, the
oj-html-slot-pref-content
andoj-tsx-slot-pref-content
rules now provide extended message information parsed from the audit diagnostic message. The extended information can be found in the output object or JSON entry as themsgEx
property. Refer to a rule description for the format ofmsgEx
for that rule. - The
jetwc-require-paths
rule now allows for the definition of anadditionalPaths
array int he configuration to supplement the standard set (JET-60512) Addition of the oj-c path for JET core pack to the standard set (JET-60499)
-
- JAF includes new rules:
-
Rules that identify anti-pattern usage for themes.
Rule: oj-html-wctag-anti-pattern Severity: info Message ID: jet-2220 Some components, or component features, may be present but are not applicable for use in all design systems and as such may be flagged as anti-patterns in the content of a particular theme. In these cases, the feature should not be used if targeting the design system in question. Rule: oj-tsx-wctag-anti-pattern Severity: info Message ID: jet-7175 Some components, or component features, may be present but are not applicable for use in all design systems and as such may be flagged as anti-patterns in the content of a particular theme. In these cases, the feature should not be used if targeting the design system in question. Rule: oj-html-prop-anti-pattern Severity: info¹ Message ID's: jet-2225, 2226 Some components, or component features, may be present but are not applicable for use in all design systems and as such may be flagged as anti-patterns in the content of a particular theme. In these cases, the feature should not be used if targeting the design system in question. ¹ Possibility of more than 1 severity since there are 2 message ID's Rule: oj-tsx-prop-anti-pattern Severity: info¹ Message ID's: jet-7180, 7181 Some components, or component features, may be present but are not applicable for use in all design systems and as such may be flagged as anti-patterns in the content of a particular theme. In these cases, the feature should not be used if targeting the design system in question. ¹ Possibility of more than 1 severity since there are 2 message ID's
-
Rules to check for actionable content in an
<oj-tree-view>
templateRule: oj-html-treeview-actionable-content Severity: blocker Message ID: jet-5835 <oj-tree-view> does not support actionable/interactive content (i.e. buttons, links, Inputs, etc) inside templated content. Rule: oj-tsx-treeview-actionable-content Severity: blocker Message ID: jet-7185 <oj-tree-view> does not support actionable/interactive content (i.e. buttons, links, Inputs, etc) inside templated content.
-
Rule to check for the usage of a slot attribute on a binding tag and to check a binding tag that is the direct child of a component with a default slot.
Rule: oj-html-binding-as-slot-child Severity: blocker¹ Message ID's: jet-5840, 5841 JET binding components such as <oj-bind-if> are not present in the final browser DOM at runtime, and as such will not function correctly when directly assigned to a slot. They should always be wrapped in another element such as a <div> or which has the slot attribute applied. ¹ Possibility of more than 1 severity since there are 2 message ID's
-
Rule: jetwco-validate-applied-audits Severity: blocker Message ID: jetwco-0050 This rule checks that any applied-audits defined by a component are actually valid in the context of the available rule-packs
-
Checks for use of a popup-type component that has a sibling. Since both Preact and the components themselves perform reparenting of the popup DOM, a conflict can occur. Popup components should be wrapped in their own wrapper element.
Rule: oj-tsx-popup-sibling Severity: major Message ID: jet-7190 Due to an integration issue between Preact and the JET popup components (such as <oj-popup>, <oj-dialog> and <oj-drawer-popup>) where both Preact and the components themselves perform reparenting of the popup DOM, the popup component should be wrapped in its own wrapper element. e.g. replace <div> <oj-dialog>Hello</oj-dialog> <oj-button>Open Popup</oj-button> </div> with: <div> <div> <oj-dialog>Hello</oj-dialog> </div> <oj-button>Open Popup</oj-button> </div>
- Checks for use of write-back
syntax
Rule: oj-html-attr-expr-writeback Severity: minor Message ID: jet-2235 An attribute expression uses write-back syntax ("{{...}}" but the attribute metadata does not support write-back. Note that although technically incorrect, functionally there is no harm incurred by using the wrong style of binding notation for a read-only property except for a theoretical performance penalty (minimal).
-
Checks description text for component metadata
Rule: jetwc-well-formed-description Severity: info Message ID: jetwc-0240 This rule checks that any description text defined as part of a components metadata is expressed as well formed sentences with a leading capital and terminating period / full stop
-
Checks for use of on-focus and on-blur events in HTML when used on a JET Core Pack component.
Rule: oj-html-event-focus-blur Severity: minor Message ID: jet-2240 JET Core-Pack components do not dispatch focus or blur events. Listen for focusin and focusout events instead.
-
Check that the default slot of <oj-c-button> is not used
Rule: ojc-html-button-defslot Severity: blocker¹ Message ID's: ojc-0010, 0011 There is no default slot for <oj-c-button>. If it has been used to label the button, the 'label' attribute should be used. Rule: ojc-tsx-button-defslot Severity: blocker¹ Message ID's: ojc-0015, 0016 <oj-c-button> does not have a default slot defined for it. (To label a button the 'label' property should be used.
-
Checks for usage of unknown events in TSX files
Rule: oj-tsx-event Severity: major Message ID: jet-7195 JSX component event attributes (e.g. "onojXxx" or onYyyChanged) must be defined events for the component.
-
Rule: oj-html-slot-default Severity: major Message ID: jet-0530 A child component is defined in a component parent's default slot, but the parent does not support default slots.
-
- JAF removed these rules:
- The
oj-html-combo-converter
andoj-tsx-combo-converter
(and their corresponding messages JET-0380 and JET-7045) have been retired. These rules alerted developers to a change in behaviour introduced in JET 9.2.0 where converter no longer formatted the labels in the drop down for the combo.
- The
Changes for rule writers:
- The Oracle JAF Issue class includes a new method,
setMsgEx()
, that you can use to add additional information to the output object. See Rule Issue Class Methods. -
New
MetaLib
methodsThe
getTagStatus()
,getPropStatus()
, andisTagStatus()
methods provide a quick check for component or property status ofdeprecated
,antiPattern
,maintenance
, orsupersedes
. See Oracle JET Audit Metadata Interface Library Metadata Methods. -
MetaLib.hasTagDynamicSlot()
This method now returns
true
for legacy JET components (oj-*
) in addition to user and JET Core Pack components. See Oracle JET Audit Metadata Interface Library Tag Methods. -
New TSX rule listener types
TsxEvent
allows a rule to listen for event properties in TSX renderable content whileTsxFunction
is called for each function declaration in the .tsx file before any of the other TsxXxx listeners are called. See Listener Types for TSX Rules. -
New
JafLib
methodsTwo new release count methods (
getMajorReleaseCount(string semver | number major)
andgetJafReleaseCount()
) return the estimated number of JET major releases. See JafLib: JAF Core Access Methods. -
JET version aging policy for deprecated web components
This policy has changed. Previously, JAF raised the severity of the emitted message to blocker if more than two major JET releases had passed since deprecation. This applied to all web components. The aging check now applies to JET components only, and not user-defined components. JAF differentiates between JET components and user-defined components. Previously some components did not adhere to this. The following rules have been updated.
oj-html-ojtag-deprecated oj-html-ojattr-deprecated oj-html-ojattr-enum-deprecated oj-html-slot-deprecated oj-tsx-ojtag-deprecated oj-tsx-slot-deprecated oj-tsx-ojattr-deprecated oj-tsx-ojattr-enum-deprecated
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 customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.
Oracle JavaScript Extension Toolkit (Oracle JET) What's New in Oracle JET, 16.0.0
F87913-02
February 2024
Copyright © 2021, 2024, Oracle and/or its affiliates.
Primary Author: Oracle Corporation