Mechanic
This library help to format the "mechanic text".
Mechanics text Supported
- 1: Ex.
20% Descuento
- 4: Ex.
$10 Antes: $100
- 13: Ex.
Por una compra sobre $100
- 11: Ex.
$10 Por una compra sobre $100
- 2: Ex.
2x3
- 7: Ex.
4 x $890
Mechanics
API The Mechanic
object format the "mechanical text".
Example:
// Format mechanics 1
let mechanics = new Mechanics();
expect(mechanics.format("1", "40")).toBe("40% Descuento");
// Format mechanics 4
let mechanics = new Mechanics();
expect(mechanics.format("4", "10*100")).toBe("$10 Antes: $100");
Constructor
Mechanics(locales, options)
Create a new Mechanics
object.
Syntax
new Mechanics(undefined, { currencyFormat: { currency: "CLP" } })
Parameters
-
locales
: A string with a BCP 47 language tag, or an array of such strings. -
options
: An object with some or all the following properties:-
style
: The formatting style to use. the default isdefault
.-
"default"
: Generic formatting. -
"mobile-alvi"
: for the app mobile formatting.
-
-
currencyFormat
: An object with the NumberFormat options. See more https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat.
-
Mechanics.prototype.format(mechanicsId, mechanicsText)
The Mechanics.prototype.format()
method format the mechanic text.
Parameters
-
mechanicsId
: Type of mechanic to format. Posible values "1
", "4
", "13
", "11
", "2
", "7
". -
mechanicsText
: Mechanic text to decompose. The format depends on the mechanic id. Ex. with the mechanic id4
the mechanic text is10*100
.
Syntax
format("4", "10*100")
Return value
A string
of the mechanic formatted.
Example
const mechanicValue = new Mechanics().format("4", "10*100")
expect(mechanicValue).toBe("$10 Antes: $100")
Mechanics.prototype.formatToParts(mechanicsId, mechanicsText)
The Mechanics.prototype.formatToParts()
method format the mechanic text and return it in parts.
Parameters
-
mechanicsId
: Type of mechanic to format. Posible values "1
", "4
", "13
", "11
", "2
", "7
". -
mechanicsText
: Mechanic text to decompose. The format depends on the mechanic id. Ex. with the mechanic id4
the mechanic text is10*100
.
Syntax
formatToParts("4", "10*100")
Return value
An Array
of objects containing the formatted in parts.
Example
[
{ "type": "offer", "value": "$10" },
{ "type": "literal", "value": " Antes: " },
{ "type": "ref", "value": "$100" },
]
Possible types are the following:
-
literal
: The string used for separating the values. -
discount
: -
discountAmount
: -
m
: -
minimumAmount
: -
nProducts
: -
offer
: -
ref
: