Time Warp Roadmap — Feb 2022

Goodbye Sirius. Hello Luyten.

Dave Norris
5 min readDec 14, 2021

Time Warp is an open source interactive timeline for the Salesforce platform available on the Salesforce AppExchange here.

The next release of Time Warp is planned for Feb 2022. We’re calling it Luyten — a release naming system based on stars. We pick a new star every release based on their ever increasing distances from Earth.

Here are the planned features and bug fixes getting included.

Time Warp

New Features

API Versions

API numbers will be incremented on all metadata. The API version moves from 52.0 to 53.0.

Language Support

It’s always been a goal of the Time Warp component to be fully globalised. We already have default translations for French, Spanish, Portuguese, Chinese (Simplified), Chinese (Traditional), Thai, German and Hindi. In the Luyten release we will be adding support for right-to-left languages.

This has required some re-engineering of the code base to make sure that we provide the best experience possible. Here’s a sneak peak at the user experience.

  • The text next to each record flows appropriately from right to left with the tooltip that appears when you hover also following suit.
  • The filter panel appears on the left
  • Default translations have been applied to get users up and running quickly in Hebrew and Arabic.
Support for right-to-left languages

Lightning Web Security Support

The biggest change in Luyten is support for Lighting Web Security (LWS).

Lightning Web Security (LWS) is a new client-side security architecture for Lightning Web Components (LWC) that replaces Lightning Locker. LWS is defined by fewer restrictions while preserving the same strong security capabilities of Lightning Locker, such as blocking or modifying behaviour of APIs that aren’t secure. Check it out in the Winter ’22 Release Notes here.

If you would like to assess the impact of LWS in a sandbox then you can turn it on (and off) using the Session Settings section in the Setup menu.

In testing the Time Warp component it became clear that our use of the moment.js library was causing some issues. LWS is currently in beta and will begin rolling out in Spring ‘22.

If you’re using a current version of Time Warp and you activate the LWS beta then the start and end dates do not correctly get calculated. In the screenshot below you can see the component loads successfully but the start and end dates appear to be the same.

This means that as soon as you filter or refresh the component the zoom section at the bottom collapses and needs to be manually expanded again.

Whilst LWS is in beta and this issue might ultimately be fixed we decided to go ahead and remove all references to the JavaScript dependency moment.js. This wasn’t done only because of the impending LWS changes - but also because the creators of moment.js acknowledge that better alternatives now exist.

This is a quote from their documentation.

We recognize that many existing projects may continue to use Moment, but we would like to discourage Moment from being used in new projects going forward.

Alternatives like Luxon, Day.js, date-fns and js-Joda exist but we decided to use no library. Yep, that’s right, the next version of Time Warp is moving to using JavaScripts Date object. This has the added benefit that we remove a 30kb file from getting downloaded and speeds up our components load time.

Bug Fixes

Ghost Tooltips

In version 1.9 and below the tooltip can take some time to load. Currently the tooltip hover appears as a blank panel until the data has been retrieved. This looked slightly odd. Instead in the Luyten release we will display a spinner that makes things look like they’re ticking along.

New support for spinners whilst you wait for your data to load.

BEM Notation with Double Dashes Is Being Deprecated

The BEM notation with double dashes ( — ) in Lightning Design System will be deprecated in Summer ’21 and replaced by the single underscore notation (_). To mitigate this upcoming change due in June 2022 we will be amending all css references to be compliant.

Specifically we’ll use the SLDS Validator to check for violations to the rule.

Specifying a custom field in Drilldown_Id_Field throws an error

In version 1.5 a bug was introduced that didn’t include the API name in the SOQL query being executed. Subsequently, when the value is accessed a runtime error thrown. We’re going to fix it.

SObject row was retrieved via SOQL without querying the requested field

Upgrading from a Previous Version

Luyten will be a minor release. We plan for the upgrade path to be seamless. Time Warp upgrades are pull not push. You decide when, and if, to upgrade. When a new version is available you install the upgrade in the same way you would install any other package from the AppExchange. Just come back to the package listing in AppExchange and click ‘Get it Now’. The first page of the install wizard lists the current version you have installed, the version you’re about to install, and a list of additional components included in the new version.

We will be recommending that all users of Time Warp upgrade to the latest version in February ‘22.

Contributing

The best thing about the trailblazer community is contributions. Timeline needs lots of help and will need people to contribute who have a diversity of skills. Here’s a link to the open source repo. All contributions welcome.

--

--

Dave Norris
Dave Norris

Written by Dave Norris

Developer Advocate @ Salesforce || Interested in solving unique challenges using different cloud service providers || All opinions are mine.

No responses yet