Format Plugin

FormatPlugin lägger till stöd för formaterings-direktivet v-format. Direktivet används för att formatera data som ska presenteras. Utöver formateringen förhindras även radbrytning av data. Val av formaterare görs via direktivets argument och följande format stöds:

  • bankgiro
  • datum
  • nummer
  • organisationsnummer
  • personnummer
  • plusgiro
  • postnummer
  • text.

Konfiguration

Du initialiserar FormatPlugin på nedan sätt (bör göras så tidigt i applikationen som möjligt, till exempel main.ts )

import { createApp } from "vue";
import { FormatPlugin } from "@fkui/vue";

const app = createApp(App);
app.use(FormatPlugin);
app.mount("#app");

Bankgiro

Värdet ska vara av typen string.

Formaterar värdet enligt:

  • NNN-NNNN om längden är sju tecken
  • NNNN-NNNN om längden är åtta tecken.
<script setup>
const bankgiro = "1234566";
</script>

<template>
    <p v-format:bankgiro="bankgiro"></p>
</template>

Datum

Datumformateraren stödjer fyra olika format:

  • v-format:date: "2022-05-04"
  • v-format:date-long: "4 maj 2022"
  • v-format:date-full: "onsdag 4 maj 2022"
  • v-format:date-range: "2022-05-04 – 2022-08-01"

Värdet kan antingen vara av typen string, FDate eller DateRange.

export type DateRange =
    | {
          from: string;
          to: string;
      }
    | {
          from: FDate;
          to: FDate;
      };
<script setup>
import { FDate } from "@fkui/date";

const myDate = "20250408";
const dateRange = {
    from: "20250101",
    to: "20251231",
};

const myFDate = FDate.fromIso("2025-01-01");
const myFDateRange = {
    from: myFDate,
    to: myFDate.addDays(100),
};
</script>

<template>
    <p v-format:date="myDate"></p>
    <p v-format:date-long="myDate"></p>
    <p v-format:date-full="myDate"></p>
    <p v-format:date-range="dateRange"></p>
    <p v-format:date-full="myFDate"></p>
    <p v-format:date-range="myFDateRange"></p>
</template>

Nummer

Formaterar värdet som ett nummer enligt:

  • tar bort inledande nollor
  • sätter tusenavdelare
  • konverterar punkt till komma.

Värdet kan antingen vara av typen string,number eller NumberFormat om man vill precisera antalet decimaler.

export interface NumberFormat {
    number: number | string;
    decimals: number;
}
<script setup>
const number = 123456789.1234;
const stringNumber = "123456789.1234";
const precisionNumber = {
    number: 123456789.1234,
    decimals: 2,
};
</script>

<template>
    <p v-format:number="number"></p>
    <p v-format:number="stringNumber"></p>
    <p v-format:number="precisionNumber"></p>
</template>

Organisationsnummer

Formaterar värdet enligt formatet NNNNNN-NNNN. Värdet ska vara av typen string.

<script setup>
const orgnr = "9999999999";
</script>

<template>
    <p v-format:orgnr="orgnr"></p>
</template>

Personnummer

Formaterar värdet enligt formatet ååååmmdd-nnnn. Värdet ska vara av typen string.

<script setup>
const pnr = "189001019802";
</script>

<template>
    <p v-format:pnr="pnr"></p>
</template>

Plusgiro

Formaterar värdet enligt:

  • bindestreck mellan näst sista och sista siffran
  • grupper med två siffror till vänster om bindestreck.

Vid udda antal siffror till vänster kommer första gruppen innehålla en siffra. Vid jämnt antal siffror till vänster kommer alla grupper innehåll två siffror.

Exempel

  • N-N
  • NN-N
  • N NN-N
  • NN NN-N
  • N NN NN-N

Värdet ska vara av typen string.

<script setup>
const plusgiro = "11111119";
</script>

<template>
    <p v-format:plusgiro="plusgiro"></p>
</template>

Postnummer

Formaterar värdet enligt formatet NNN NN. Värdet ska vara av typen string.

<script setup>
const postnummer = "37332";
</script>

<template>
    <p v-format:postnummer="postnummer"></p>
</template>

Text

Formateraren för text ser till att texten inte radbryts.

<script setup>
const myText = "24 december";
</script>

<template>
    <span>Julafton inträffar den <span v-format:text="myText" class="red"></span> varje år.</span>
</template>
<style>
.red {
    color: red;
}
</style>

Esc för att stänga Pil upp/ner för att navigera Enter för att välja