/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import { styleMap, classMap, html, } from "chrome://global/content/vendor/lit.all.mjs"; import { MozLitElement } from "chrome://global/content/lit-utils.mjs"; export default class Timeline extends MozLitElement { static get properties() { return { history: { type: Array }, }; } constructor() { super(); this.history = []; } render() { this.history = this.history.filter(historyPoint => historyPoint.time); this.history.sort((a, b) => a.time - b.time); let columns = "auto"; // Add each history event to the timeline let points = this.history.map((entry, index) => { if (index > 0) { // add a gap between previous point and current one columns += ` ${entry.time - this.history[index - 1].time}fr auto`; } let columnNumber = 2 * index + 1; let styles = styleMap({ gridColumn: columnNumber }); return html`
`; }); return html`
${points}
`; } } customElements.define("login-timeline", Timeline);