Files
SkyArtShop/backend/node_modules/wide-align/align.js
Local Server 8bb6430a70 Website restoration: Node.js backend, restored design, GitHub sync disabled
- Replaced broken .NET backend with Node.js/Express
- Restored original website design with purple gradient hero
- Updated homepage and shop pages with Bootstrap 5 responsive design
- Disabled GitHub remote sync - all code now stored locally only
- Created backup scripts and documentation
- All changes saved on Ubuntu server at /var/www/SkyArtShop
2025-12-13 17:53:34 -06:00

66 lines
1.4 KiB
JavaScript
Executable File

'use strict'
var stringWidth = require('string-width')
exports.center = alignCenter
exports.left = alignLeft
exports.right = alignRight
// lodash's way of generating pad characters.
function createPadding (width) {
var result = ''
var string = ' '
var n = width
do {
if (n % 2) {
result += string;
}
n = Math.floor(n / 2);
string += string;
} while (n);
return result;
}
function alignLeft (str, width) {
var trimmed = str.trimRight()
if (trimmed.length === 0 && str.length >= width) return str
var padding = ''
var strWidth = stringWidth(trimmed)
if (strWidth < width) {
padding = createPadding(width - strWidth)
}
return trimmed + padding
}
function alignRight (str, width) {
var trimmed = str.trimLeft()
if (trimmed.length === 0 && str.length >= width) return str
var padding = ''
var strWidth = stringWidth(trimmed)
if (strWidth < width) {
padding = createPadding(width - strWidth)
}
return padding + trimmed
}
function alignCenter (str, width) {
var trimmed = str.trim()
if (trimmed.length === 0 && str.length >= width) return str
var padLeft = ''
var padRight = ''
var strWidth = stringWidth(trimmed)
if (strWidth < width) {
var padLeftBy = parseInt((width - strWidth) / 2, 10)
padLeft = createPadding(padLeftBy)
padRight = createPadding(width - (strWidth + padLeftBy))
}
return padLeft + trimmed + padRight
}