Skip to content

Releases: github/relative-time-element

v4.0.0

29 Nov 15:00
424db49
Compare
Choose a tag to compare

What's Changed

The following features have been removed:

  • The package name has changed from @github/time-elements to @github/relative-time-element
  • The local-time element has been removed.
  • The time-ago element has been removed.
  • The time-until element has been removed.
  • getFormattedTitle is now only private.
  • getFormattedDate is now only private.
  • format no longer accepts a strftime compatible format. Instead, any value other than 'micro', 'elapsed' will revert to the string 'auto'
  • the Intl.DateTimeFormat constructor is not ponyfilled, and so in environments without this constructor, the
    element will fall back to provided text.
  • the Intl.RelativeTimeFormat constructor will not be ponyfilled, and so in environments without this constructor, the element will fall back to provided text.

Migrating package name change.

You should remove the old @github/time-elements package to avoid conflicts (npm rm @github/time-elements) and install the new version (npm i @github/[email protected]).

Migrating local-time to relative-time.

local-time was a configuration of relative-time. You can replicate the behaviour of local-time with the following relative-time tag:

<relative-time threshold="PT0S" day="numeric" month="short" year="numeric" datetime="$DATE">$DATE</relative-time>

Migrating time-ago to relative-time.

time-ago was a configuration of relative-time with a fixed tense. You can replicate the behaviour of time-ago with the following relative-time tag:

<relative-time tense="future" datetime="$DATE">$DATE</relative-time>

Migrating time-until to relative-time.

time-until was a configuration of relative-time with a fixed tense. You can replicate the behaviour of time-until with the following relative-time tag:

<relative-time tense="future" datetime="$DATE">$DATE</relative-time>

Migrating getFormattedTitle.

getFormattedTitle is now a private function. It is not possible to override this function, nor call it manually.

If you intend to subclass RelativeTimeElement, you can override the update() method which calls getFormattedTitle.

If you wanted to call getFormattedTitle() to retrieve the value, then this can be replaced with getAttribute('title').

Migrating getFormattedDate.

getFormattedDate is now a private function. It is not possible to override this function, nor call it manually.

If you intend to subclass RelativeTimeElement, you can override the update() method which calls getFormattedDate.

If you wanted to call getFormattedDate() to retrieve the value, then this can be replaced with shadowRoot.textContent.

Migrating strftime formatted format.

Using strftime style format strings has been removed. It is not possible to supply custom formatted dates in this way to relative-time.

strftime formatting was not locale aware, in that the position of segments was fixed by the format string - despite it being locale dependant.

Customisation of the date formatting is still possible using the day, month, year, weekday, hour, minute, second proprties. Please refer to the documentation on how to do this.

Migratting Intl.DateTimeFormat & Intl.RelativeTimeFormat ponyfills

This element no longer emulates the Intl.DateTimeFormat and Intl.RelativeTimeFormat classes if they do not exist. On browsers where these do not exist, the element will act as if it were inert, that is the title will not be set and the contents of the element will be whatever was rendered server side.

Intl.DateTimeFormat is supported natively by Chrome (24+), Edge (12+), Safari (10+), Firefox (29+), Opera (15+).
Intl.RelativeTimeFormat is supported natively by Chrome (71+), Edge (79+), Safari (14+), Firefox (65+), Opera (58+).

If you still wish to support older browsers, then please install polyfills for both of these constructors.

Full Changelog: v3.6.0...v4.0.

v4.0.0-pre

29 Nov 12:14
ba0405c
Compare
Choose a tag to compare
v4.0.0-pre Pre-release
Pre-release

What's Changed

  • Warn on use of deprecated elements, functions and properties by @keithamus in #217

BREAKING CHANGES

This PR is a BREAKING CHANGE, in which we console.warn on all deprecated features, which we plan to remove in the next version, v4.0.0.

The following features are to be deprecated in v4.0.0:

  • The local-time element will be removed.
  • The time-ago element will be removed.
  • The time-until element will be removed.
  • getFormattedTitle will be private.
  • getFormattedDate will be private.
  • format will no longer accept a strftime compatible format. Instead, any value other than 'micro', 'elapsed' will revert to the string 'auto'
  • the Intl.DateTimeFormat constructor will not be ponyfilled, and so in environments without this constructor, the
    element will fall back to provided text.
  • the Intl.RelativeTimeFormat constructor will not be ponyfilled, and so in environments without this constructor, the element will fall back to provided text.

v4.0.0-pre maintains compatibility with Version 3 but will console.warn on the use of any of these deprecated features. Additionally the typescript definitions have changed which means integrators will need to alter their code for typescript.

v4.0.0-pre will allow integrators to install a version and ship it to production in a backwards-compatible way with v3.x, while refactoring out any uses of deprecated APIs, before finally installing v4.0.0.

Full Changelog: v3.6.0...v4.0.0-pre

v3.6.0

28 Nov 09:40
f35461a
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.5.2...v3.6.0

v3.5.2

28 Nov 09:35
223bc5d
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.5.1...v3.5.2

v3.5.1

23 Nov 18:57
b643852
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.5.0...v3.5.1

v3.5.0

23 Nov 16:14
cc5096d
Compare
Choose a tag to compare

What's Changed

This release moves define calls into separate files, allowing import of each element without triggering the custom element definition. In addition it attempts to safely use globals so that it can be imported into NodeJS without error.

  • move customElements define calls to index.js and refactor by @keithamus in #209
  • Ensure HTMLElement exists in all contexts by @keithamus in #211
  • add define export for custom element registration by @keithamus in #210

Full Changelog: v3.4.1...v3.5.0

v3.4.1

22 Nov 17:57
265a9db
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.4.0...v3.4.1

v3.4.0

21 Nov 12:47
82f9512
Compare
Choose a tag to compare

What's Changed

(Thanks @brunoprietog for the bug report!)

Full Changelog: v3.3.0...v3.4.0

v3.3.0

16 Nov 18:15
7b4c668
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.2.5...v3.3.0

v3.2.5

15 Nov 10:16
30138d7
Compare
Choose a tag to compare

What's Changed

  • ensure invalid dates fallback to lightdom textcontent by @keithamus in #203

Full Changelog: v3.2.4...v3.2.5