22 lines
1.1 KiB
JavaScript
22 lines
1.1 KiB
JavaScript
|
export default function buildLocalizeFn(args) {
|
||
|
return function (dirtyIndex, options) {
|
||
|
var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';
|
||
|
var valuesArray;
|
||
|
|
||
|
if (context === 'formatting' && args.formattingValues) {
|
||
|
var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
|
||
|
var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;
|
||
|
valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
|
||
|
} else {
|
||
|
var _defaultWidth = args.defaultWidth;
|
||
|
|
||
|
var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;
|
||
|
|
||
|
valuesArray = args.values[_width] || args.values[_defaultWidth];
|
||
|
}
|
||
|
|
||
|
var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: 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];
|
||
|
};
|
||
|
}
|