1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- "use strict";
- exports.buildLocalizeFn = buildLocalizeFn;
- /**
- * The localize function argument callback which allows to convert raw value to
- * the actual type.
- *
- * @param value - The value to convert
- *
- * @returns The converted value
- */
- /**
- * The map of localized values for each width.
- */
- /**
- * The index type of the locale unit value. It types conversion of units of
- * values that don't start at 0 (i.e. quarters).
- */
- /**
- * Converts the unit value to the tuple of values.
- */
- /**
- * The tuple of localized era values. The first element represents BC,
- * the second element represents AD.
- */
- /**
- * The tuple of localized quarter values. The first element represents Q1.
- */
- /**
- * The tuple of localized day values. The first element represents Sunday.
- */
- /**
- * The tuple of localized month values. The first element represents January.
- */
- function buildLocalizeFn(args) {
- return (value, options) => {
- const context = options?.context ? String(options.context) : "standalone";
- let valuesArray;
- if (context === "formatting" && args.formattingValues) {
- const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
- const width = options?.width ? String(options.width) : defaultWidth;
- valuesArray =
- args.formattingValues[width] || args.formattingValues[defaultWidth];
- } else {
- const defaultWidth = args.defaultWidth;
- const width = options?.width ? String(options.width) : args.defaultWidth;
- valuesArray = args.values[width] || args.values[defaultWidth];
- }
- const index = args.argumentCallback ? args.argumentCallback(value) : value;
- // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!
- return valuesArray[index];
- };
- }
|