mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-19 04:35:46 +01:00
[chore] TSLint cleanup
This commit is contained in:
parent
28bebeb144
commit
41fbf63f0d
@ -1,3 +1,6 @@
|
|||||||
|
/**
|
||||||
|
* Returns the input array as a comma separated string.
|
||||||
|
*/
|
||||||
export function arrayToString<T>(a: T[]) {
|
export function arrayToString<T>(a: T[]) {
|
||||||
return `[${a.join(", ")}]`;
|
return `[${a.join(", ")}]`;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
/**
|
||||||
|
* Represents the possible configuration values that can be provided when creating the progress bar text.
|
||||||
|
*/
|
||||||
interface IProgressBarConfiguration {
|
interface IProgressBarConfiguration {
|
||||||
/**
|
/**
|
||||||
* Current progress, taken as a decimal (i.e. '0.6' to represent '60%')
|
* Current progress, taken as a decimal (i.e. '0.6' to represent '60%')
|
||||||
@ -10,6 +13,9 @@ interface IProgressBarConfiguration {
|
|||||||
totalTicks?: number;
|
totalTicks?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents concrete configuration values when creating the progress bar text.
|
||||||
|
*/
|
||||||
interface IProgressBarConfigurationMaterialized extends IProgressBarConfiguration {
|
interface IProgressBarConfigurationMaterialized extends IProgressBarConfiguration {
|
||||||
progress: number;
|
progress: number;
|
||||||
totalTicks: number;
|
totalTicks: number;
|
||||||
|
@ -7,7 +7,11 @@ export function isPowerOfTwo(n: number) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (n === 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Disabiling the bitwise rule because it's honestly the most effecient way to check for this.
|
// Disabiling the bitwise rule because it's honestly the most effecient way to check for this.
|
||||||
// tslint:disable-next-line:no-bitwise
|
// tslint:disable-next-line:no-bitwise
|
||||||
return n && (n & (n - 1)) === 0;
|
return (n & (n - 1)) === 0;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
import { createElement } from "./createElement";
|
import { createElement } from "./createElement";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Possible configuration parameters when creating the accordion element.
|
||||||
|
*/
|
||||||
interface IAccordionConfigurationParameters {
|
interface IAccordionConfigurationParameters {
|
||||||
/**
|
/**
|
||||||
* The HTML to appear in the accordion header.
|
* The HTML to appear in the accordion header.
|
||||||
@ -16,6 +19,7 @@ interface IAccordionConfigurationParameters {
|
|||||||
*/
|
*/
|
||||||
panelText?: string;
|
panelText?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates both the header and panel element of an accordion and sets the click handler
|
* Creates both the header and panel element of an accordion and sets the click handler
|
||||||
* @param params The creation parameters.
|
* @param params The creation parameters.
|
||||||
@ -28,11 +32,11 @@ export function createAccordionElement(params: IAccordionConfigurationParameters
|
|||||||
const pnl: CSSStyleDeclaration = (this.nextElementSibling as HTMLDivElement).style;
|
const pnl: CSSStyleDeclaration = (this.nextElementSibling as HTMLDivElement).style;
|
||||||
pnl.display = pnl.display === "block" ? "none" : "block";
|
pnl.display = pnl.display === "block" ? "none" : "block";
|
||||||
},
|
},
|
||||||
id: params.id ? `${params.id}-hdr` : undefined,
|
id: params.id !== undefined ? `${params.id}-hdr` : undefined,
|
||||||
innerHTML: params.hdrText,
|
innerHTML: params.hdrText,
|
||||||
}) as HTMLButtonElement;
|
}) as HTMLButtonElement;
|
||||||
const panel: HTMLDivElement = createElement("div", {
|
const panel: HTMLDivElement = createElement("div", {
|
||||||
id: params.id ? `${params.id}-panel` : undefined,
|
id: params.id !== undefined ? `${params.id}-panel` : undefined,
|
||||||
innerHTML: params.panelText,
|
innerHTML: params.panelText,
|
||||||
}) as HTMLDivElement;
|
}) as HTMLDivElement;
|
||||||
|
|
||||||
|
@ -1,9 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* Options specific to creating an anchor ("<a>") element.
|
||||||
|
*/
|
||||||
interface ICreateElementAnchorOptions {
|
interface ICreateElementAnchorOptions {
|
||||||
href?: string;
|
href?: string;
|
||||||
target?: string;
|
target?: string;
|
||||||
text?: string;
|
text?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Options specific to creating an input ("<input>") element.
|
||||||
|
*/
|
||||||
interface ICreateElementInputOptions {
|
interface ICreateElementInputOptions {
|
||||||
checked?: boolean;
|
checked?: boolean;
|
||||||
maxLength?: number;
|
maxLength?: number;
|
||||||
@ -14,10 +20,16 @@ interface ICreateElementInputOptions {
|
|||||||
value?: string;
|
value?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Options specific to creating a label ("<label>") element.
|
||||||
|
*/
|
||||||
interface ICreateElementLabelOptions {
|
interface ICreateElementLabelOptions {
|
||||||
for?: string;
|
for?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Options for setting up event listeners on the element.
|
||||||
|
*/
|
||||||
interface ICreateElementListenerOptions {
|
interface ICreateElementListenerOptions {
|
||||||
changeListener?(this: HTMLElement, ev: Event): any;
|
changeListener?(this: HTMLElement, ev: Event): any;
|
||||||
clickListener?(this: HTMLElement, ev: MouseEvent): any;
|
clickListener?(this: HTMLElement, ev: MouseEvent): any;
|
||||||
@ -26,6 +38,10 @@ interface ICreateElementListenerOptions {
|
|||||||
onkeyup?(this: HTMLElement, ev: KeyboardEvent): any;
|
onkeyup?(this: HTMLElement, ev: KeyboardEvent): any;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Options for setting up the inline-styling of element.
|
||||||
|
* NOTE: Relying on CSS styling should be preferred over forcing the higher specificity via inline styles.
|
||||||
|
*/
|
||||||
interface ICreateElementStyleOptions {
|
interface ICreateElementStyleOptions {
|
||||||
backgroundColor?: string;
|
backgroundColor?: string;
|
||||||
border?: string;
|
border?: string;
|
||||||
@ -43,11 +59,17 @@ interface ICreateElementStyleOptions {
|
|||||||
width?: string;
|
width?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Options for adding an in-game tooltip to the element.
|
||||||
|
*/
|
||||||
interface ICreateElementTooltipOptions {
|
interface ICreateElementTooltipOptions {
|
||||||
tooltip?: string;
|
tooltip?: string;
|
||||||
tooltipleft?: string;
|
tooltipleft?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* All possible configuration options when creating an element.
|
||||||
|
*/
|
||||||
interface ICreateElementOptions extends
|
interface ICreateElementOptions extends
|
||||||
ICreateElementStyleOptions,
|
ICreateElementStyleOptions,
|
||||||
ICreateElementListenerOptions,
|
ICreateElementListenerOptions,
|
||||||
@ -71,118 +93,120 @@ interface ICreateElementOptions extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setElementAnchor(el: HTMLAnchorElement, params: ICreateElementAnchorOptions) {
|
function setElementAnchor(el: HTMLAnchorElement, params: ICreateElementAnchorOptions) {
|
||||||
if (params.text) {
|
if (params.text !== undefined) {
|
||||||
el.text = params.text;
|
el.text = params.text;
|
||||||
}
|
}
|
||||||
if (params.href) {
|
if (params.href !== undefined) {
|
||||||
el.href = params.href;
|
el.href = params.href;
|
||||||
}
|
}
|
||||||
if (params.target) {
|
if (params.target !== undefined) {
|
||||||
el.target = params.target;
|
el.target = params.target;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function setElementInput(el: HTMLInputElement, params: ICreateElementInputOptions) {
|
function setElementInput(el: HTMLInputElement, params: ICreateElementInputOptions) {
|
||||||
if (params.name) {
|
if (params.name !== undefined) {
|
||||||
el.name = params.name;
|
el.name = params.name;
|
||||||
}
|
}
|
||||||
if (params.value) {
|
if (params.value !== undefined) {
|
||||||
el.value = params.value;
|
el.value = params.value;
|
||||||
}
|
}
|
||||||
if (params.type) {
|
if (params.type !== undefined) {
|
||||||
el.type = params.type;
|
el.type = params.type;
|
||||||
}
|
}
|
||||||
if (params.checked) {
|
if (params.checked !== undefined) {
|
||||||
el.checked = params.checked;
|
el.checked = params.checked;
|
||||||
}
|
}
|
||||||
if (params.pattern) {
|
if (params.pattern !== undefined) {
|
||||||
el.pattern = params.pattern;
|
el.pattern = params.pattern;
|
||||||
}
|
}
|
||||||
if (params.maxLength) {
|
if (params.maxLength !== undefined) {
|
||||||
el.maxLength = params.maxLength;
|
el.maxLength = params.maxLength;
|
||||||
}
|
}
|
||||||
if (params.placeholder) {
|
if (params.placeholder !== undefined) {
|
||||||
el.placeholder = params.placeholder;
|
el.placeholder = params.placeholder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function setElementLabel(el: HTMLLabelElement, params: ICreateElementLabelOptions) {
|
function setElementLabel(el: HTMLLabelElement, params: ICreateElementLabelOptions) {
|
||||||
if (params.for) {
|
if (params.for !== undefined) {
|
||||||
el.htmlFor = params.for;
|
el.htmlFor = params.for;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function setElementListeners(el: HTMLElement, params: ICreateElementListenerOptions) {
|
function setElementListeners(el: HTMLElement, params: ICreateElementListenerOptions) {
|
||||||
if (params.clickListener) {
|
// tslint:disable:no-unbound-method
|
||||||
|
if (params.clickListener !== undefined) {
|
||||||
el.addEventListener("click", params.clickListener);
|
el.addEventListener("click", params.clickListener);
|
||||||
}
|
}
|
||||||
if (params.inputListener) {
|
if (params.inputListener !== undefined) {
|
||||||
el.addEventListener("input", params.inputListener);
|
el.addEventListener("input", params.inputListener);
|
||||||
}
|
}
|
||||||
if (params.changeListener) {
|
if (params.changeListener !== undefined) {
|
||||||
el.addEventListener("change", params.changeListener);
|
el.addEventListener("change", params.changeListener);
|
||||||
}
|
}
|
||||||
if (params.onkeyup) {
|
if (params.onkeyup !== undefined) {
|
||||||
el.addEventListener("keyup", params.onkeyup);
|
el.addEventListener("keyup", params.onkeyup);
|
||||||
}
|
}
|
||||||
if (params.onfocus) {
|
if (params.onfocus !== undefined) {
|
||||||
el.addEventListener("focus", params.onfocus);
|
el.addEventListener("focus", params.onfocus);
|
||||||
}
|
}
|
||||||
|
// tslint:enable:no-unbound-method
|
||||||
}
|
}
|
||||||
|
|
||||||
function setElementStyle(el: HTMLElement, params: ICreateElementStyleOptions) {
|
function setElementStyle(el: HTMLElement, params: ICreateElementStyleOptions) {
|
||||||
if (params.display) {
|
if (params.display !== undefined) {
|
||||||
el.style.display = params.display;
|
el.style.display = params.display;
|
||||||
}
|
}
|
||||||
if (params.visibility) {
|
if (params.visibility !== undefined) {
|
||||||
el.style.visibility = params.visibility;
|
el.style.visibility = params.visibility;
|
||||||
}
|
}
|
||||||
if (params.margin) {
|
if (params.margin !== undefined) {
|
||||||
el.style.margin = params.margin;
|
el.style.margin = params.margin;
|
||||||
}
|
}
|
||||||
if (params.marginLeft) {
|
if (params.marginLeft !== undefined) {
|
||||||
el.style.marginLeft = params.marginLeft;
|
el.style.marginLeft = params.marginLeft;
|
||||||
}
|
}
|
||||||
if (params.marginTop) {
|
if (params.marginTop !== undefined) {
|
||||||
el.style.marginTop = params.marginTop;
|
el.style.marginTop = params.marginTop;
|
||||||
}
|
}
|
||||||
if (params.padding) {
|
if (params.padding !== undefined) {
|
||||||
el.style.padding = params.padding;
|
el.style.padding = params.padding;
|
||||||
}
|
}
|
||||||
if (params.color) {
|
if (params.color !== undefined) {
|
||||||
el.style.color = params.color;
|
el.style.color = params.color;
|
||||||
}
|
}
|
||||||
if (params.border) {
|
if (params.border !== undefined) {
|
||||||
el.style.border = params.border;
|
el.style.border = params.border;
|
||||||
}
|
}
|
||||||
if (params.float) {
|
if (params.float !== undefined) {
|
||||||
el.style.cssFloat = params.float;
|
el.style.cssFloat = params.float;
|
||||||
}
|
}
|
||||||
if (params.fontSize) {
|
if (params.fontSize !== undefined) {
|
||||||
el.style.fontSize = params.fontSize;
|
el.style.fontSize = params.fontSize;
|
||||||
}
|
}
|
||||||
if (params.whiteSpace) {
|
if (params.whiteSpace !== undefined) {
|
||||||
el.style.whiteSpace = params.whiteSpace;
|
el.style.whiteSpace = params.whiteSpace;
|
||||||
}
|
}
|
||||||
if (params.width) {
|
if (params.width !== undefined) {
|
||||||
el.style.width = params.width;
|
el.style.width = params.width;
|
||||||
}
|
}
|
||||||
if (params.backgroundColor) {
|
if (params.backgroundColor !== undefined) {
|
||||||
el.style.backgroundColor = params.backgroundColor;
|
el.style.backgroundColor = params.backgroundColor;
|
||||||
}
|
}
|
||||||
if (params.position) {
|
if (params.position !== undefined) {
|
||||||
el.style.position = params.position;
|
el.style.position = params.position;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function setElementTooltip(el: HTMLElement, params: ICreateElementTooltipOptions) {
|
function setElementTooltip(el: HTMLElement, params: ICreateElementTooltipOptions) {
|
||||||
if (params.tooltip && params.tooltip !== "") {
|
if (params.tooltip !== undefined && params.tooltip !== "") {
|
||||||
el.className += " tooltip";
|
el.className += " tooltip";
|
||||||
el.appendChild(createElement("span", {
|
el.appendChild(createElement("span", {
|
||||||
class: "tooltiptext",
|
class: "tooltiptext",
|
||||||
innerHTML: params.tooltip,
|
innerHTML: params.tooltip,
|
||||||
}));
|
}));
|
||||||
} else if (params.tooltipleft) {
|
} else if (params.tooltipleft !== undefined) {
|
||||||
el.className += " tooltip";
|
el.className += " tooltip";
|
||||||
el.appendChild(createElement("span", {
|
el.appendChild(createElement("span", {
|
||||||
class: "tooltiptextleft",
|
class: "tooltiptextleft",
|
||||||
@ -191,22 +215,27 @@ function setElementTooltip(el: HTMLElement, params: ICreateElementTooltipOptions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An all-in-one-call way of creating an element to be added to the DOM at some point.
|
||||||
|
* @param tagName The HTML tag/element name
|
||||||
|
* @param params Additional parameters to set on the element
|
||||||
|
*/
|
||||||
export function createElement(tagName: string, params: ICreateElementOptions = {}) {
|
export function createElement(tagName: string, params: ICreateElementOptions = {}) {
|
||||||
const el: HTMLElement = document.createElement(tagName);
|
const el: HTMLElement = document.createElement(tagName);
|
||||||
|
|
||||||
if (params.id) {
|
if (params.id !== undefined) {
|
||||||
el.id = params.id;
|
el.id = params.id;
|
||||||
}
|
}
|
||||||
if (params.class) {
|
if (params.class !== undefined) {
|
||||||
el.className = params.class;
|
el.className = params.class;
|
||||||
}
|
}
|
||||||
if (params.innerHTML) {
|
if (params.innerHTML !== undefined) {
|
||||||
el.innerHTML = params.innerHTML;
|
el.innerHTML = params.innerHTML;
|
||||||
}
|
}
|
||||||
if (params.innerText) {
|
if (params.innerText !== undefined) {
|
||||||
el.innerText = params.innerText;
|
el.innerText = params.innerText;
|
||||||
}
|
}
|
||||||
if (params.tabIndex) {
|
if (params.tabIndex !== undefined) {
|
||||||
el.tabIndex = params.tabIndex;
|
el.tabIndex = params.tabIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
import { isString } from "../helpers/isString";
|
import { isString } from "../helpers/isString";
|
||||||
import { getElementById } from "./getElementById";
|
import { getElementById } from "./getElementById";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears out all children from the provided element.
|
||||||
|
* If a string is passed in, it will treat it as an ID and search for the element to delete all children from.
|
||||||
|
* @param el The element or ID of an element to remove all children from.
|
||||||
|
*/
|
||||||
export function removeChildrenFromElement(el: string | null | Element) {
|
export function removeChildrenFromElement(el: string | null | Element) {
|
||||||
if (el === null) {
|
if (el === null) {
|
||||||
return;
|
return;
|
||||||
@ -10,7 +15,7 @@ export function removeChildrenFromElement(el: string | null | Element) {
|
|||||||
const elem: HTMLElement | Element = (isString(el) ? getElementById(el as string) : el as Element);
|
const elem: HTMLElement | Element = (isString(el) ? getElementById(el as string) : el as Element);
|
||||||
|
|
||||||
if (elem instanceof Element) {
|
if (elem instanceof Element) {
|
||||||
while (elem.firstChild) {
|
while (elem.firstChild !== null) {
|
||||||
elem.removeChild(elem.firstChild);
|
elem.removeChild(elem.firstChild);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,11 +16,11 @@ export function removeElement(elem: Element | null) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (elem.firstChild) {
|
while (elem.firstChild !== null) {
|
||||||
elem.removeChild(elem.firstChild);
|
elem.removeChild(elem.firstChild);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (elem.parentNode) {
|
if (elem.parentNode !== null) {
|
||||||
elem.parentNode.removeChild(elem);
|
elem.parentNode.removeChild(elem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user