Vi använder kakor (cookies) för att webbplatsen ska fungera så bra som möjligt för dig.
Vi använder också kakor för webbanalys för att göra webbplatsen bättre.
Godkänner du att vi också använder kakor för webbanalys?
För att använda ikoner måste du aktivt i din applikation ladda in den spritesheet med ikoner som du vill använda.
FKUI-komponenterna är beroende utav att ett ikon-paket är inladdat.
Placera följande i din kod:
import"@fkui/icon-lib-default/dist/f";
Exemplet ovan använder standardpaketet för ikoner från FKUI, @fkui/icon-lib-default.
För att använda ett annat ikon-paket, ersätt med namnet på det paketet.
Som standard är ikonen gömd för skärmläsare.
Om du istället vill skapa en informationsbärande ikon kan du använda slot som i nedan exempel, eller sätta beskrivande text med aria-attribut på komponenten.
<template><f-data-table:rows="allIcons":striped="true"key-attribute="id"><template #caption><span> Ikoner </span></template><template #default="{ row }"><f-table-columnname="ikon"title="Ikon"type="text"><f-icon:name="row.namn":library="row.library"></f-icon></f-table-column><f-table-columnname="namn"title="Ikonnamn"type="text">
{{ row.namn }}
</f-table-column><f-table-columnname="library"title="Ikon-bibliotek"type="text">
{{ row.library }}
</f-table-column></template></f-data-table></template><scriptlang="ts">import { defineComponent } from"vue";
import { type IconPackage } from"@fkui/icon-lib-default";
import { FDataTable, FTableColumn, FIcon } from"@fkui/vue";
interface IconEntry {
id: string;
namn: string;
library: string;
}
function importDefault<T extends object>(m: { default: T } | T): T {
return"default"in m ? m.default : m;
}
asyncfunctionimportIcons(): Promise<IconPackage> {
/* @ts-expect-error technical debt: the module target supports this in practice but it seems to pick up the wrong config, need to investigate further */returnimportDefault(awaitimport(process.env.DOCS_ICON_LIB)); // eslint-disable-line no-undef -- for similar reasons, this script is primarly for browser but `process.env` will be available during compilation
}
functiondecamelize(value: string): string {
return value.replace(/([A-Z])/g, (_, ch) =>`-${ch.toLowerCase()}`);
}
const iconsPromise = importIcons();
exportdefaultdefineComponent({
name: "FIconAll",
components: { FDataTable, FTableColumn, FIcon },
data() {
return {
allIcons: [] asIconEntry[],
};
},
asyncmounted() {
/*
FKUI supports rendering of an icon package other than `@fkui/icon-lib-default`.
The icon package must be based on `@fkui/icon-lib-builder`.
Set env variable `DOCS_ICON_LIB` to desired icon package and make sure that the package is installed during build.
This is typically done in your CI/CD setup.
The imported icon package libraries are returned as:
f
fSocial
fFiletypes
...
But needs to be converted to the format of "f", "f-social", "f-filetypes".
*/const icons = await iconsPromise;
this.allIcons = Object.entries(icons).flatMap(([name, entry]) => {
const library = decamelize(name);
return entry.metadata.map((icon) => ({
id: icon.key,
namn: icon.name,
library,
}));
});
},
});
</script>