| ; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| exports.formatNameParts = formatNameParts; | |
| exports.getStringCase = getStringCase; | |
| exports.orderNameParts = orderNameParts; | |
| exports.orderNamePieces = orderNamePieces; | |
| function getStringCase(string) { | |
| const a = string.toUpperCase(); | |
| const b = string.toLowerCase(); | |
| for (let i = 0; i < string.length; i++) { | |
| if (a[i] !== b[i]) { | |
| return a[i] === string[i]; | |
| } | |
| } | |
| return null; | |
| } | |
| function formatNameParts(parts) { | |
| if (parts.length === 0) { | |
| return undefined; | |
| } | |
| let piece = ''; | |
| while (parts.length > 1) { | |
| const { | |
| value, | |
| hyphenated | |
| } = parts.shift(); | |
| piece += value + (hyphenated ? '-' : ' '); | |
| } | |
| const output = piece + parts[0].value; | |
| return output[0] && output; | |
| } | |
| function orderNameParts(parts, orderGiven = true) { | |
| const given = []; | |
| const undecided = []; | |
| if (orderGiven) { | |
| while (parts.length > 1 && parts[0].upperCase !== false) { | |
| given.push(...undecided); | |
| undecided.length = 0; | |
| while (parts.length > 1 && parts[0].upperCase !== false && !parts[0].hyphenated) { | |
| given.push(parts.shift()); | |
| } | |
| while (parts.length > 0 && parts[0].upperCase !== false && parts[0].hyphenated) { | |
| undecided.push(parts.shift()); | |
| } | |
| } | |
| } | |
| const prefix = []; | |
| const family = []; | |
| while (parts.length > 1) { | |
| prefix.push(...family); | |
| family.length = 0; | |
| while (parts.length > 1 && parts[0].upperCase === false) { | |
| prefix.push(parts.shift()); | |
| } | |
| while (parts.length > 0 && parts[0].upperCase !== false) { | |
| family.push(parts.shift()); | |
| } | |
| } | |
| if (undecided.length) { | |
| family.unshift(...undecided); | |
| } | |
| if (parts.length) { | |
| family.push(parts[0]); | |
| } | |
| return [formatNameParts(given), formatNameParts(prefix), formatNameParts(family)]; | |
| } | |
| function orderNamePieces(pieces) { | |
| if (pieces[0][0].label) { | |
| const name = {}; | |
| for (const [{ | |
| value, | |
| label | |
| }] of pieces) { | |
| name[label] = value; | |
| } | |
| return name; | |
| } | |
| const name = {}; | |
| const [given, prefix, family] = orderNameParts(pieces[0], pieces.length === 1); | |
| if (family) { | |
| name.family = family; | |
| } | |
| if (prefix) { | |
| name.prefix = prefix; | |
| } | |
| if (pieces.length === 3) { | |
| name.given = formatNameParts(pieces[2]); | |
| name.suffix = formatNameParts(pieces[1]); | |
| } else if (pieces.length === 2) { | |
| name.given = formatNameParts(pieces[1]); | |
| } else if (given) { | |
| name.given = given; | |
| } | |
| return name; | |
| } |
Xet Storage Details
- Size:
- 2.51 kB
- Xet hash:
- 812c1a8ad53089a4593f5f4a62959fca5a8cd84e00b90dc68fccbce8f1b6ebda
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.