// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {CustomElement} from 'chrome://resources/js/custom_element.js';
import {getTemplate} from './mojo_timedelta.html.js';
class MojoTimeDeltaElement extends CustomElement {
static observedAttributes = ['duration'];
static override get template() {
return getTemplate();
}
attributeChangedCallback(name: string, _oldValue: string, newValue: string) {
// The "duration" attribute should be specified in microseconds.
if (name === 'duration') {
const elem = this.shadowRoot!.querySelector<HTMLElement>('#duration')!;
// TODO(b/308167671): format the microseconds duration as human-readable.
elem.textContent = newValue + ' microseconds';
}
}
}
declare global {
interface HTMLElementTagNameMap {
'mojo-timedelta': MojoTimeDeltaElement;
}
}
customElements.define('mojo-timedelta', MojoTimeDeltaElement);