Source code

Revision control

Copy as Markdown

Other Tools

/* 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/. */
"use strict";
const {
getFormatStr,
getStr,
} = require("resource://devtools/client/inspector/changes/utils/l10n.js");
/**
* Get a human-friendly style source path to display in the Changes panel.
* For element inline styles, return a string indicating that.
* For inline stylesheets, return a string indicating that plus the stylesheet's index.
* For URLs, return just the stylesheet filename.
*
* @param {Object} source
* Information about the style source. Contains:
* - type: {String} One of "element" or "stylesheet"
* - href: {String|null} Stylesheet URL or document URL for elmeent inline styles
* - index: {Number} Position of the stylesheet in its document's stylesheet list.
* @return {String}
*/
function getSourceForDisplay(source) {
let href;
switch (source.type) {
case "element":
href = getStr("changes.elementStyleLabel");
break;
case "inline":
href = getFormatStr("changes.inlineStyleSheetLabel", `#${source.index}`);
break;
case "stylesheet":
const url = new URL(source.href);
href = url.pathname.substring(url.pathname.lastIndexOf("/") + 1);
break;
}
return href;
}
module.exports.getSourceForDisplay = getSourceForDisplay;