manan-data 0.0.0

inventyv tikv datalayer
Documentation
import isUnicodeSupported from 'is-unicode-supported';

const common = {
	circleQuestionMark: '(?)',
	questionMarkPrefix: '(?)',
	square: '',
	squareDarkShade: '',
	squareMediumShade: '',
	squareLightShade: '',
	squareTop: '',
	squareBottom: '',
	squareLeft: '',
	squareRight: '',
	squareCenter: '',
	bullet: '',
	dot: '',
	ellipsis: '',
	pointerSmall: '',
	triangleUp: '',
	triangleUpSmall: '',
	triangleDown: '',
	triangleDownSmall: '',
	triangleLeftSmall: '',
	triangleRightSmall: '',
	home: '',
	heart: '',
	musicNote: '',
	musicNoteBeamed: '',
	arrowUp: '',
	arrowDown: '',
	arrowLeft: '',
	arrowRight: '',
	arrowLeftRight: '',
	arrowUpDown: '',
	almostEqual: '',
	notEqual: '',
	lessOrEqual: '',
	greaterOrEqual: '',
	identical: '',
	infinity: '',
	subscriptZero: '',
	subscriptOne: '',
	subscriptTwo: '',
	subscriptThree: '',
	subscriptFour: '',
	subscriptFive: '',
	subscriptSix: '',
	subscriptSeven: '',
	subscriptEight: '',
	subscriptNine: '',
	oneHalf: '½',
	oneThird: '',
	oneQuarter: '¼',
	oneFifth: '',
	oneSixth: '',
	oneEighth: '',
	twoThirds: '',
	twoFifths: '',
	threeQuarters: '¾',
	threeFifths: '',
	threeEighths: '',
	fourFifths: '',
	fiveSixths: '',
	fiveEighths: '',
	sevenEighths: '',
	line: '',
	lineBold: '',
	lineDouble: '',
	lineDashed0: '',
	lineDashed1: '',
	lineDashed2: '',
	lineDashed3: '',
	lineDashed4: '',
	lineDashed5: '',
	lineDashed6: '',
	lineDashed7: '',
	lineDashed8: '',
	lineDashed9: '',
	lineDashed10: '',
	lineDashed11: '',
	lineDashed12: '',
	lineDashed13: '',
	lineDashed14: '',
	lineDashed15: '',
	lineVertical: '',
	lineVerticalBold: '',
	lineVerticalDouble: '',
	lineVerticalDashed0: '',
	lineVerticalDashed1: '',
	lineVerticalDashed2: '',
	lineVerticalDashed3: '',
	lineVerticalDashed4: '',
	lineVerticalDashed5: '',
	lineVerticalDashed6: '',
	lineVerticalDashed7: '',
	lineVerticalDashed8: '',
	lineVerticalDashed9: '',
	lineVerticalDashed10: '',
	lineVerticalDashed11: '',
	lineDownLeft: '',
	lineDownLeftArc: '',
	lineDownBoldLeftBold: '',
	lineDownBoldLeft: '',
	lineDownLeftBold: '',
	lineDownDoubleLeftDouble: '',
	lineDownDoubleLeft: '',
	lineDownLeftDouble: '',
	lineDownRight: '',
	lineDownRightArc: '',
	lineDownBoldRightBold: '',
	lineDownBoldRight: '',
	lineDownRightBold: '',
	lineDownDoubleRightDouble: '',
	lineDownDoubleRight: '',
	lineDownRightDouble: '',
	lineUpLeft: '',
	lineUpLeftArc: '',
	lineUpBoldLeftBold: '',
	lineUpBoldLeft: '',
	lineUpLeftBold: '',
	lineUpDoubleLeftDouble: '',
	lineUpDoubleLeft: '',
	lineUpLeftDouble: '',
	lineUpRight: '',
	lineUpRightArc: '',
	lineUpBoldRightBold: '',
	lineUpBoldRight: '',
	lineUpRightBold: '',
	lineUpDoubleRightDouble: '',
	lineUpDoubleRight: '',
	lineUpRightDouble: '',
	lineUpDownLeft: '',
	lineUpBoldDownBoldLeftBold: '',
	lineUpBoldDownBoldLeft: '',
	lineUpDownLeftBold: '',
	lineUpBoldDownLeftBold: '',
	lineUpDownBoldLeftBold: '',
	lineUpDownBoldLeft: '',
	lineUpBoldDownLeft: '',
	lineUpDoubleDownDoubleLeftDouble: '',
	lineUpDoubleDownDoubleLeft: '',
	lineUpDownLeftDouble: '',
	lineUpDownRight: '',
	lineUpBoldDownBoldRightBold: '',
	lineUpBoldDownBoldRight: '',
	lineUpDownRightBold: '',
	lineUpBoldDownRightBold: '',
	lineUpDownBoldRightBold: '',
	lineUpDownBoldRight: '',
	lineUpBoldDownRight: '',
	lineUpDoubleDownDoubleRightDouble: '',
	lineUpDoubleDownDoubleRight: '',
	lineUpDownRightDouble: '',
	lineDownLeftRight: '',
	lineDownBoldLeftBoldRightBold: '',
	lineDownLeftBoldRightBold: '',
	lineDownBoldLeftRight: '',
	lineDownBoldLeftBoldRight: '',
	lineDownBoldLeftRightBold: '',
	lineDownLeftRightBold: '',
	lineDownLeftBoldRight: '',
	lineDownDoubleLeftDoubleRightDouble: '',
	lineDownDoubleLeftRight: '',
	lineDownLeftDoubleRightDouble: '',
	lineUpLeftRight: '',
	lineUpBoldLeftBoldRightBold: '',
	lineUpLeftBoldRightBold: '',
	lineUpBoldLeftRight: '',
	lineUpBoldLeftBoldRight: '',
	lineUpBoldLeftRightBold: '',
	lineUpLeftRightBold: '',
	lineUpLeftBoldRight: '',
	lineUpDoubleLeftDoubleRightDouble: '',
	lineUpDoubleLeftRight: '',
	lineUpLeftDoubleRightDouble: '',
	lineUpDownLeftRight: '',
	lineUpBoldDownBoldLeftBoldRightBold: '',
	lineUpDownBoldLeftBoldRightBold: '',
	lineUpBoldDownLeftBoldRightBold: '',
	lineUpBoldDownBoldLeftRightBold: '',
	lineUpBoldDownBoldLeftBoldRight: '',
	lineUpBoldDownLeftRight: '',
	lineUpDownBoldLeftRight: '',
	lineUpDownLeftBoldRight: '',
	lineUpDownLeftRightBold: '',
	lineUpBoldDownBoldLeftRight: '',
	lineUpDownLeftBoldRightBold: '',
	lineUpBoldDownLeftBoldRight: '',
	lineUpBoldDownLeftRightBold: '',
	lineUpDownBoldLeftBoldRight: '',
	lineUpDownBoldLeftRightBold: '',
	lineUpDoubleDownDoubleLeftDoubleRightDouble: '',
	lineUpDoubleDownDoubleLeftRight: '',
	lineUpDownLeftDoubleRightDouble: '',
	lineCross: '',
	lineBackslash: '',
	lineSlash: '',
};

const specialMainSymbols = {
	tick: '',
	info: '',
	warning: '',
	cross: '',
	squareSmall: '',
	squareSmallFilled: '',
	circle: '',
	circleFilled: '',
	circleDotted: '',
	circleDouble: '',
	circleCircle: '',
	circleCross: '',
	circlePipe: '',
	radioOn: '',
	radioOff: '',
	checkboxOn: '',
	checkboxOff: '',
	checkboxCircleOn: '',
	checkboxCircleOff: '',
	pointer: '',
	triangleUpOutline: '',
	triangleLeft: '',
	triangleRight: '',
	lozenge: '',
	lozengeOutline: '',
	hamburger: '',
	smiley: '',
	mustache: '',
	star: '',
	play: '',
	nodejs: '',
	oneSeventh: '',
	oneNinth: '',
	oneTenth: '',
};

const specialFallbackSymbols = {
	tick: '',
	info: 'i',
	warning: '',
	cross: '×',
	squareSmall: '',
	squareSmallFilled: '',
	circle: '( )',
	circleFilled: '(*)',
	circleDotted: '( )',
	circleDouble: '( )',
	circleCircle: '(○)',
	circleCross: '(×)',
	circlePipe: '(│)',
	radioOn: '(*)',
	radioOff: '( )',
	checkboxOn: '[×]',
	checkboxOff: '[ ]',
	checkboxCircleOn: '(×)',
	checkboxCircleOff: '( )',
	pointer: '>',
	triangleUpOutline: '',
	triangleLeft: '',
	triangleRight: '',
	lozenge: '',
	lozengeOutline: '',
	hamburger: '',
	smiley: '',
	mustache: '┌─┐',
	star: '',
	play: '',
	nodejs: '',
	oneSeventh: '1/7',
	oneNinth: '1/9',
	oneTenth: '1/10',
};

export const mainSymbols = {...common, ...specialMainSymbols};
export const fallbackSymbols = {...common, ...specialFallbackSymbols};

const shouldUseMain = isUnicodeSupported();
const figures = shouldUseMain ? mainSymbols : fallbackSymbols;
export default figures;

const replacements = Object.entries(specialMainSymbols);

// On terminals which do not support Unicode symbols, substitute them to other symbols
export const replaceSymbols = (string, {useFallback = !shouldUseMain} = {}) => {
	if (useFallback) {
		for (const [key, mainSymbol] of replacements) {
			string = string.replaceAll(mainSymbol, fallbackSymbols[key]);
		}
	}

	return string;
};