Skip to content
Snippets Groups Projects
Commit 72dc5a5b authored by Arkerthan's avatar Arkerthan
Browse files

add App.UI.DOM.arrayToList

parent aca2d6a7
Branches
Tags
1 merge request!6266Convert penthouse slave listing to DOM
...@@ -259,6 +259,34 @@ App.UI.DOM.includeDOM = function(node, uniqueID, tag = "span") { ...@@ -259,6 +259,34 @@ App.UI.DOM.includeDOM = function(node, uniqueID, tag = "span") {
return `<${tag} id='inclDOM${uniqueID}'></${tag}>`; return `<${tag} id='inclDOM${uniqueID}'></${tag}>`;
}; };
/**
* Concats an array of DOM nodes or strings into a human readable list.
*
* @param {Array<Node|string>} content
* @param {string} [delimiter]
* @param {string} [lastDelimiter]
* @returns {Node|string}
*/
App.UI.DOM.arrayToList = function(content, delimiter = ", ", lastDelimiter = " and ") {
if (content.length === 0) {
return "none";
}
if (this.length === 1) {
return content[0];
}
const fragment = document.createDocumentFragment();
const last = content.pop();
for (let i = 0; i < content.length; i++) {
fragment.append(content[i]);
if (i < content.length - 1) {
fragment.append(delimiter);
}
}
content.push(last); // don't leave the array modified
fragment.append(lastDelimiter, last);
return fragment;
};
/** /**
* @param {string} text * @param {string} text
* @returns {HTMLElement} * @returns {HTMLElement}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment