8000 Merge pull request #257 from github/add-define-static-method · github/relative-time-element@a3f2192 · GitHub
[go: up one dir, main page]

Skip to content

Commit a3f2192

Browse files
authored
Merge pull request #257 from github/add-define-static-method
add define static method
2 parents c000266 + 8be4134 commit a3f2192

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

src/relative-time-element-define.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import RelativeTimeElement from './relative-time-element.js'
1+
import {RelativeTimeElement} from './relative-time-element.js'
22

33
const root = (typeof globalThis !== 'undefined' ? globalThis : window) as typeof window
44
try {
5-
customElements.define('relative-time', RelativeTimeElement)
6-
root.RelativeTimeElement = RelativeTimeElement
5+
root.RelativeTimeElement = RelativeTimeElement.define()
76
} catch (e: unknown) {
87
if (
98
!(root.DOMException && e instanceof DOMException && e.name === 'NotSupportedError') &&

src/relative-time-element.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import {Duration, elapsedTime, getRelativeTimeUnit, isDuration, roundToSingleUnit, Unit, unitNames} from './duration.js'
2-
const root = (typeof globalThis !== 'undefined' ? globalThis : window) as typeof window
3-
const HTMLElement = root.HTMLElement || (null as unknown as typeof window['HTMLElement'])
2+
const HTMLElement = globalThis.HTMLElement || (null as unknown as typeof window['HTMLElement'])
43

54
export type DeprecatedFormat = 'auto' | 'micro' | 'elapsed'
65
export type ResolvedFormat = 'duration' | 'relative' | 'datetime'
@@ -73,7 +72,12 @@ const dateObserver = new (class {
7372
}
7473
})()
7574

76-
export default class RelativeTimeElement extends HTMLElement implements Intl.DateTimeFormatOptions {
75+
export class RelativeTimeElement extends HTMLElement implements Intl.DateTimeFormatOptions {
76+
static define(tag = 'relative-time', registry = customElements) {
77+
registry.define(tag, this)
78+
return this
79+
}
80+
7781
#customTitle = false
7882
#updating: false | Promise<void> = false
7983

@@ -462,3 +466,5 @@ export default class RelativeTimeElement extends HTMLElement implements Intl.Dat
462466
this.#updating = false
463467
}
464468
}
469+
470+
export default RelativeTimeElement

0 commit comments

Comments
 (0)
0