Skip to content

Demos

Locale based numbers

When you use asNumber or asPercent (and asCurrency see below) it will create a mask for you and inherit the locale from the Eufemia Provider, if the locale property is not given.

You can still define extra mask parameters with numberMask or maskOptions, as the second input example shows (e.g. decimalLimit).

Code Editor
<Provider
  formElement={{
    labelDirection: 'vertical',
  }}
>
  <Flex.Vertical>
    <InputMasked
      label="Number"
      asNumber
      maskOptions={{
        allowNegative: false,
      }}
      value="1234.50"
      onChange={({ numberValue }) => {
        console.log(numberValue)
      }}
    />
    <InputMasked
      label="Number (decimal limit)"
      asNumber
      numberMask={{
        decimalLimit: 2,
      }}
      value="1234.016"
      onChange={({ numberValue }) => {
        console.log(numberValue)
      }}
    />
    <InputMasked
      label="Percentage"
      asPercent
      numberMask={{
        decimalLimit: 1,
      }}
      value="1234.016"
      onChange={({ numberValue }) => {
        console.log(numberValue)
      }}
    />
  </Flex.Vertical>
</Provider>

Locale based asCurrency

When you use asCurrency it will create a mask for you and inherit the locale from the Eufemia Provider, if the locale property is not given.

Code Editor
<Provider
  formElement={{
    labelDirection: 'vertical',
  }}
>
  <Flex.Vertical>
    <InputMasked
      label="Currency"
      asCurrency="EUR"
      value="1234.50"
      onChange={({ numberValue }) => {
        console.log(numberValue)
      }}
    />
    <Provider
      locale="en-GB"
      InputMasked={{
        currencyMask: {
          decimalLimit: 3,
        },
      }}
    >
      <InputMasked
        label="Currency"
        asCurrency="USD"
        value="1234.567"
        onChange={({ numberValue }) => {
          console.log(numberValue)
        }}
      />
    </Provider>
  </Flex.Vertical>
</Provider>

Define the currencyMask manually

Code Editor
<Provider
  formElement={{
    labelDirection: 'vertical',
  }}
>
  <Flex.Vertical>
    <InputMasked
      label="Left aligned (default)"
      showMask
      currencyMask="kr"
      onChange={({ numberValue }) => {
        console.log(numberValue)
      }}
    />
    <InputMasked
      label="Right aligned"
      showMask
      currencyMask={{
        currency: 'NOK',
      }}
      align="right"
      onChange={({ numberValue }) => {
        console.log(numberValue)
      }}
    />
  </Flex.Vertical>
</Provider>

Customize the number mask

Code Editor
<InputMasked
  label="Masked amount"
  showMask
  numberMask={{
    suffix: ' kr',
    allowDecimal: true,
  }}
  onChange={({ numberValue }) => {
    console.log(numberValue)
  }}
/>

Using the numberMask with a combined suffix

kr
Code Editor
<InputMasked
  label="Masked input"
  value="1000000"
  numberMask={{
    suffix: ',-',
    allowDecimal: false,
  }}
  suffix="kr"
  onChange={({ numberValue }) => {
    console.log(numberValue)
  }}
/>

Using the numberMask and a prefix

Code Editor
<InputMasked
  label="Masked input"
  numberMask={{
    prefix: 'NOK ',
  }}
  stretch={true}
  placeholder="Enter a number"
  onChange={({ numberValue }) => {
    console.log(numberValue)
  }}
/>