import { Component, importProvidersFrom } from "@angular/core"; import { RouterModule } from "@angular/router"; import { Meta, StoryObj, applicationConfig, moduleMetadata } from "@storybook/angular"; import { IconButtonModule } from "../icon-button"; import { LinkModule } from "../link"; import { MenuModule } from "../menu"; import { BreadcrumbComponent } from "./breadcrumb.component"; import { BreadcrumbsComponent } from "./breadcrumbs.component"; interface Breadcrumb { icon?: string; name: string; route: string; } @Component({ template: "", }) class EmptyComponent {} export default { title: "Component Library/Breadcrumbs", component: BreadcrumbsComponent, decorators: [ moduleMetadata({ declarations: [BreadcrumbComponent], imports: [LinkModule, MenuModule, IconButtonModule, RouterModule], }), applicationConfig({ providers: [ importProvidersFrom( RouterModule.forRoot([{ path: "**", component: EmptyComponent }], { useHash: true }) ), ], }), ], args: { items: [], show: 3, }, argTypes: { breadcrumbs: { table: { disable: true }, }, click: { action: "clicked" }, }, } as Meta; type Story = StoryObj; export const TopLevel: Story = { render: (args) => ({ props: args, template: `

Router links

{{item.name}}

Click emit

{{item.name}}

`, }), args: { items: [{ icon: "bwi-star", name: "Top Level" }] as Breadcrumb[], }, }; export const SecondLevel: Story = { ...TopLevel, args: { items: [ { name: "Acme Vault", route: "/" }, { icon: "bwi-collection", name: "Collection", route: "collection" }, ] as Breadcrumb[], }, }; export const Overflow: Story = { ...TopLevel, args: { items: [ { name: "Acme Vault", route: "" }, { icon: "bwi-collection", name: "Collection", route: "collection" }, { icon: "bwi-collection", name: "Middle-Collection 1", route: "middle-collection-1" }, { icon: "bwi-collection", name: "Middle-Collection 2", route: "middle-collection-2" }, { icon: "bwi-collection", name: "Middle-Collection 3", route: "middle-collection-3" }, { icon: "bwi-collection", name: "Middle-Collection 4", route: "middle-collection-4" }, { icon: "bwi-collection", name: "End Collection", route: "end-collection" }, ] as Breadcrumb[], }, };