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.

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.

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 was major.

    • 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 and oj-tsx-slot-pref-content rules

      If the output format is non-prose, the oj-html-slot-pref-content and oj-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 the msgEx property. Refer to a rule description for the format of msgEx for that rule.

    • The jetwc-require-paths rule now allows for the definition of an additionalPaths 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> template

      Rule: 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 and oj-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.

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 methods

    The getTagStatus(), getPropStatus(), and isTagStatus() methods provide a quick check for component or property status of deprecated, antiPattern, maintenance, or supersedes. 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 while TsxFunction 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 methods

    Two new release count methods (getMajorReleaseCount(string semver | number major) and getJafReleaseCount()) 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

Access to Oracle Support