New Features Described in Oracle JET's Documentation for Release 15.0.0

Here are updates to the documentation for Oracle JET to describe new features and enhancements added to Release 15.0.0.

For other changes in this release, see the product Release Notes.

Oracle JET

Documentation updates for this release of Oracle JET.

  • ojet add testing

    The Oracle JET CLI includes a new command, ojet add testing, that facilitates the testing of your Oracle JET apps. See Configure Oracle JET Apps for Testing.

  • API documentation for VComponents

    The Oracle JET CLI includes a new command, ojet add docgen, that facilitates the generation of API documentation for VComponent-based web components. See Generate API Documentation for VComponent-based Web Components.

  • Relocate TypeScript configuration file

    You can relocate your project's TypeScript configuration file by setting the optional paths.source.tsconfig subproperty in the oraclejetconfig.json file. See Properties in the oraclejetconfig.json File.

  • Format translated string

    You can format strings in your translation bundle using tags such as the <i> tag and render this formatting in the HTML of your Oracle JET app using the oj-bind-dom element. See About Oracle JET Translation Bundles.

Migration Information

Note the following change that affect JET apps that you migrate to Release 15.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

Using and Extending the Oracle JET Audit Framework has been updated in the following ways.

New and changed JAF audit features:

  • Audit support for TSX renderable JSX content is now available.

    This support includes new rules that are TSX versions of their HTML counterparts (See the complete list below). To disable these rules, add the following entry to the JAF configuration file:

    "ruleMods" : { "disable" : ["jet-tsx"] }

  • You can now configure a newer version of ECMAScript (ES14) for the ecmaVer property in the oraclejafconfig.json file. See Audit with Specific JET and ECMA Script Versions.
  • Improved issue reporting for component audits that cross reference multiple source files to determine an error. Previously, these had not reported a specific file name in association with the error, just the name of the component, but now they associate the error with the most appropriate file based on the nature of that particular audit:

    jetwc-deprecated-lifecycle
    jetwc-methods
    jetwc-property-changed
    jetwc-unused-events
    jetwc-unused-slots
    jetwc-vcomponent-loader
  • Display components in maintenance status

    Use the newly-introduced --maintenance command line argument (ojaf --maintenance or ojaf -mnt) that has been introduced to display a list of the components that are in maintenance status along with the newer components that supersede these components.

  • ruleMods configuration property

    The severity of a rule overridden by the ruleMods configuration property now correctly overrides any severity set by a rule during its execution. Prior to this fix, any severity set by a rule at runtime to override the rule's default severity was incorrectly applied, thereby negating the severity set by ruleMods. For more information about the ruleMods configuration property, see Configure Audit Rule Runtime Properties.

  • JAF includes changes to existing rules
    • The following rules that target specific components have been updated to target their Core Pack component counterparts (oj-c-*)

      oj-acc-select-aria-label
      oj-acc-input-aria-label 
      oj-acc-avatar-aria-role 
      oj-html-redwood-bp-endslot
      oj-html-form-noflex 
    • oj-acc-button-onclick

      This rule has been updated to include handling of the oj-c-split-menu-button component.

    • oj-html-cdn

      This updated rule now has a corrected CDN path.

    • oj-html-slot-prof-content

      This rule has been extended to include default slot usage.

    • jetwc-property-translatable

      This property can now be configured with expressions to match property names rather than requiring exact property name matches

    • oj-html-ojtag-ns

      This rule has been updated to catch all usage of tags with an unregistered namespace if the tag does not start with prefixes oj- or ns-.

    • oj-html-form-bindif

      The rule is now enabled by default.

    • jetwco-license-info

      This rule for custom components now looks for license information in the component metadata as well as, or instead of, the physical LICENSE.txt file. That is, having either or both allows the audit to pass. Furthermore, the rule can be configured with an array of valid license URLs to validate the value used in the component metadata.

    • jetwco-component-api-controlled-changes

      The typeMapping override capability for this rule has been enhanced to allow for a specific type used in an API to transition to more than one valid type.

    • jetwco-component-api-controlled-changes

      This rule now ignores trivial capitalization differences where an API type has been corrected from, for example, "String" → "string".

    • oj-html-wctag-maintence

      This rule has been corrected to provide details of the replacement component(s) for which a component in maintenance mode has been superseded. Note that this rule disabled by default.

    • oj-html-wctag-nested and oj-tsx-wctag-nested

      When a nested oj-table or oj-list-view is used in the context of a collectionTemplate of an oj-select-single, no audit diagnostic is issued. The rules are now extended to also ignore the case where a component implementing interface SelectSingleElement is used in place of oj-select-single.

  • JAF includes new rules:
    • jetwc-status-since

      Severity: blocker¹ Message ID's: jetwc-0210, 0211, 0212

      This rule checks that the since metadata associated with deprecations and maintanence mode specifies a production version of the component as opposed to a pre-production version which is not valid

    • oj-html-attr-expr-delims

      Severity: major Message ID: jet-2211

      Unmatched attribute expression delimiters are not permitted.

    • csp-json-unsafe-expr

      Severity: blocker¹ Message ID's: csp-1045, 1046

      A JSON member value contains an expression that violates the Content Security Policy, and is not supported. Execution of the expression will be blocked.

    • oj-html-slot-pref-content

      A <div> element declaring a slot is now treated in the same way as <template> or <oj-defer> elements. That is, the <div> is ignored , and immediate children are used as preferred content.

    • oj-html-rating-gauge-track-resize

      Severity: major Message ID: jet-0525

      The use of the <oj-rating-gauge> 'track-resize' attribute is a Redwood theme anti-pattern. This attribute is only needed if the 'size' attribute is set to 'fit', however, 'fit' is a Redwood theme anti-pattern.

    • oj-js-numconv-pattern

      Severity: major Message ID: jet-5830

      Applications should not use the deprecated 'pattern' option of IntlNumberConverter because it is not locale sensitive. Use other options instead like formatType, dateFormat and timeFormat, and if needed, set the locale to be the preferred locale.

    • oj-ts-numconv-pattern

      Severity: major Message ID: jet-3470

      Applications should not use the deprecated 'pattern' option of IntlNumberConverter because it is not locale sensitive. Use other options instead like formatType, dateFormat and timeFormat, and if needed, set the locale to be the preferred locale.

    • jetwc-reference-npm-path

      Severity: major Message ID: jetwc-0220

      In order to be usable in local deployment mode, reference components must have npm path mappings defined as well as CDN path mappings

    • oj-html-tabbar-edge

      Severity: major¹ Message ID's: jet-2215, 2216

      Vertical support in <oj-tab-bar> is deprecated in JET 15.0.0. Use <oj-navigation-list> instead. Use of edge property values start or end (or omitting edge) is not recommended, and the values top or bottom should be used.

    • jetwc-css-pack-load-path

      Severity: blocker Message ID: jetwc-0230

      Components in a JET Pack should always use the canonical path for that pack when using the css! or ojcss! plugins rather than relative (./) addressing.

    • New rules to audit TSX renderable JSX content:

      oj-tsx-5-tag-obs
      oj-tsx-acc-avatar-aria-role
      oj-tsx-acc-button-onclick
      oj-tsx-aria-ojselector-labelledby
      oj-tsx-aria-prop
      oj-tsx-attr-req
      oj-tsx-cca-tagname
      oj-tsx-combo-converter
      oj-tsx-databind-all
      oj-tsx-dlg-title
      oj-tsx-form-bindif
      oj-tsx-form-noflex
      oj-tsx-input-isodate
      oj-tsx-ojattr-deprecated
      oj-tsx-ojattr-value
      oj-tsx-ojattr
      oj-tsx-ojtag-deprecated
      oj-tsx-ojtag-ns
      oj-tsx-pageopts-type
      oj-tsx-picker-attrs
      oj-tsx-prop-inline-definition
      oj-tsx-rating-gauge-size
      oj-tsx-rating-gauge-track-resize
      oj-tsx-slot-deprecated
      oj-tsx-slot-pref-content
      oj-tsx-tabbar-edge
      oj-tsx-unsup-theme
      oj-tsx-wctag-maintenance
      oj-tsx-wctag-nested
      oj-tsx-wctag-packprivate
  • JAF deprecated these rules and methods:
    • oj-html-wctag-id

      This rule has been deprecated and will be removed in a future release.

      Note:

      Deprecated rules may be displayed using ojaf -dpl
    • The method getTagPropType() is now deprecated. Use the getTagAttrType() method instead. See Oracle JET Audit Metadata Interface Library Tag Methods.
  • JAF removed this rule:
    • oj-html-cspexpr

      Message ID: JET-2210

      The functionality is now available in the csp-html-unsafe-expr rule. The feature that checked attribute expression delimiters is now available in the new rule, oj-html-attr-expr-delims, with the JET-2211 message ID.

Changes for rule writers:

  • Oracle JAF now supports listener types specific to TSX files. See Listener Types for TSX Rules.
  • Oracle JAF includes a new utility library, TsxUtils. See TsxUtils: TSX Utility Functions.
  • The Oracle JAF rule pack manager has a new method, getRuleCustomOption(). See Rule Pack Class Methods.
  • A new HTML listener type, notglob, listens for all HTML tags that are not common HTML elements or SVG tags. See Listener Types for HTML and JSON Rules.
  • Two new listener types complement webcomp. Use the jetcomp listener for JET components (legacy or core pack components) and extcomp for external (that is, non-JET) components. See Listener Types for HTML and JSON Rules.
  • New MetaLib APIs:

    • hasTagDefaultSlot() to test if a component has a default slot.
    • hasTagDynamicSlot() to test if the component supports dynamic slots.
    • isInterfaceImplemented() to determine if the specified interface name is implemented by the tagName component.
    • getTagPropertyFromEvent() to return a property name from a tag event attribute.
    • getTagSlotMetadata() to return the slot object from component metadata.
  • MetaLib API's isTagSlotName() and getPreferredSlotContent() now support "" to represent the default slot as their second argument. See Oracle JET Audit Metadata Interface Library Tag Methods.
  • New FsUtils API walkDirSync() which walks a directory tree applying a function to each file and sub-directory. See FsUtils: File System Functions.
  • For rule writers who use TypeScript to author their rules, JAF types have been enhanced to support registering listeners for named elements in the <component attrname=> format.

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.