Skip to content

Commit b0d259f

Browse files
Add stories for the ng-wireframe components
1 parent 8683ddd commit b0d259f

31 files changed

Lines changed: 1098 additions & 0 deletions
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import { Meta, moduleMetadata, StoryObj } from '@storybook/angular'
2+
import { CommonModule } from '@angular/common'
3+
import { LeftSidenavComponent } from './left-sidenav.component'
4+
import { NavigationItem } from '../navigation-item/navigation-item.model'
5+
6+
const meta: Meta<LeftSidenavComponent> = {
7+
title: 'Components/LeftSidenav',
8+
component: LeftSidenavComponent,
9+
tags: ['autodocs'],
10+
decorators: [
11+
moduleMetadata({
12+
imports: [CommonModule]
13+
})
14+
]
15+
}
16+
17+
export default meta
18+
type Story = StoryObj<LeftSidenavComponent>
19+
20+
const navigationItems: Array<NavigationItem> = [
21+
{
22+
label: 'Dashboard',
23+
icon: 'fa-solid fa-house',
24+
fullRouterPath: '/dashboard'
25+
},
26+
{
27+
label: 'Settings',
28+
icon: 'fa-solid fa-gear',
29+
children: [
30+
{
31+
label: 'Profile',
32+
icon: 'fa-solid fa-user',
33+
fullRouterPath: '/settings/profile'
34+
},
35+
{
36+
label: 'Security',
37+
icon: 'fa-solid fa-lock',
38+
fullRouterPath: '/settings/security'
39+
}
40+
]
41+
},
42+
{
43+
label: 'External Link',
44+
icon: 'fa-solid fa-globe',
45+
fullRouterPath: 'https://storybook.js.org',
46+
isExternalLink: true
47+
}
48+
]
49+
50+
export const Default: Story = {
51+
args: {
52+
navigationItems,
53+
showMenuCloseButton: true,
54+
logoUrl: 'https://ppwcode.org/assets/ppwcode_logo.png',
55+
logoHeight: 40,
56+
logoWidth: 150,
57+
centerLogo: true
58+
}
59+
}
60+
61+
export const NoLogo: Story = {
62+
args: {
63+
navigationItems,
64+
showMenuCloseButton: true
65+
}
66+
}
67+
68+
export const ManyItems: Story = {
69+
args: {
70+
navigationItems: [...navigationItems, ...navigationItems, ...navigationItems],
71+
showMenuCloseButton: true
72+
}
73+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { Meta, StoryObj } from '@storybook/angular'
2+
import { createPagedEntitiesMock } from '@ppwcode/ng-async'
3+
import { PaginationBarComponent } from './pagination-bar.component'
4+
5+
const meta: Meta<PaginationBarComponent> = {
6+
title: 'Components/PaginationBar',
7+
component: PaginationBarComponent,
8+
tags: ['autodocs'],
9+
render: (args) => ({
10+
props: args
11+
})
12+
}
13+
14+
export default meta
15+
type Story = StoryObj<PaginationBarComponent>
16+
17+
const mockEntities = createPagedEntitiesMock(new Array(100).fill({}))
18+
mockEntities.pageSize = 10
19+
mockEntities.pageIndex = 1
20+
mockEntities.page = 1
21+
mockEntities.totalCount = 100
22+
23+
export const Default: Story = {
24+
args: {
25+
pagedAsyncResult: mockEntities,
26+
hidePageSize: false,
27+
showFirstLastButtons: true,
28+
pageSizeOptions: [5, 10, 25, 50]
29+
}
30+
}
31+
32+
export const HidePageSize: Story = {
33+
args: {
34+
pagedAsyncResult: mockEntities,
35+
hidePageSize: true
36+
}
37+
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import { Meta, moduleMetadata, StoryObj } from '@storybook/angular'
2+
import { ToolbarComponent } from './toolbar.component'
3+
import { Router } from '@angular/router'
4+
import { of } from 'rxjs'
5+
6+
const meta: Meta<ToolbarComponent> = {
7+
title: 'Components/Toolbar',
8+
component: ToolbarComponent,
9+
tags: ['autodocs'],
10+
decorators: [
11+
moduleMetadata({
12+
providers: [
13+
{
14+
provide: Router,
15+
useValue: {
16+
events: of(),
17+
routerState: {
18+
snapshot: {
19+
root: {
20+
firstChild: null,
21+
title: 'Page Title'
22+
}
23+
}
24+
}
25+
}
26+
}
27+
]
28+
})
29+
]
30+
}
31+
32+
export default meta
33+
type Story = StoryObj<ToolbarComponent>
34+
35+
export const Default: Story = {
36+
args: {
37+
showMenuToggle: true,
38+
isSidenavOpen: true,
39+
showPageTitle: true,
40+
toolbarHeightPx: 64
41+
}
42+
}
43+
44+
export const SidenavClosed: Story = {
45+
args: {
46+
showMenuToggle: true,
47+
isSidenavOpen: false,
48+
showPageTitle: true
49+
}
50+
}
51+
52+
export const NoTitle: Story = {
53+
args: {
54+
showMenuToggle: true,
55+
isSidenavOpen: true,
56+
showPageTitle: false
57+
}
58+
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
import { Meta, moduleMetadata, StoryObj } from '@storybook/angular'
2+
import { WireframeComponent } from './wireframe.component'
3+
import { ActivatedRoute, Router, RouterLink, RouterOutlet } from '@angular/router'
4+
import { of } from 'rxjs'
5+
import { BREADCRUMB_PROVIDER_OPTIONS, BreadcrumbService } from '@ppwcode/ng-router'
6+
import { CommonModule } from '@angular/common'
7+
import { MatSidenavModule } from '@angular/material/sidenav'
8+
import { MatIconModule } from '@angular/material/icon'
9+
import { LeftSidenavComponent } from '../left-sidenav/left-sidenav.component'
10+
import { ToolbarComponent } from '../toolbar/toolbar.component'
11+
import { signal } from '@angular/core'
12+
13+
const meta: Meta<WireframeComponent> = {
14+
title: 'Components/Wireframe',
15+
component: WireframeComponent,
16+
tags: ['autodocs'],
17+
decorators: [
18+
moduleMetadata({
19+
imports: [
20+
CommonModule,
21+
MatSidenavModule,
22+
MatIconModule,
23+
RouterLink,
24+
RouterOutlet,
25+
LeftSidenavComponent,
26+
ToolbarComponent
27+
],
28+
providers: [
29+
{
30+
provide: Router,
31+
useValue: {
32+
events: of(),
33+
routerState: {
34+
snapshot: {
35+
root: {
36+
firstChild: null,
37+
data: { showWireframe: true },
38+
url: [],
39+
pathFromRoot: []
40+
}
41+
}
42+
}
43+
}
44+
},
45+
{
46+
provide: ActivatedRoute,
47+
useValue: {
48+
snapshot: {
49+
data: { showWireframe: true }
50+
}
51+
}
52+
},
53+
{
54+
provide: BreadcrumbService,
55+
useValue: {
56+
breadcrumbs: signal([])
57+
}
58+
},
59+
{
60+
provide: BREADCRUMB_PROVIDER_OPTIONS,
61+
useValue: { preferLabelFromRouteData: false, enableAnimations: true }
62+
}
63+
]
64+
})
65+
]
66+
}
67+
68+
export default meta
69+
type Story = StoryObj<WireframeComponent>
70+
71+
const navigationItems = [
72+
{
73+
label: 'Dashboard',
74+
icon: 'fa-solid fa-house',
75+
fullRouterPath: '/dashboard'
76+
},
77+
{
78+
label: 'Users',
79+
icon: 'fa-solid fa-users',
80+
fullRouterPath: '/users'
81+
}
82+
]
83+
84+
export const Default: Story = {
85+
args: {
86+
navigationItems,
87+
sidebarOptions: {
88+
logoUrl: 'https://ppwcode.org/assets/ppwcode_logo.png',
89+
logoHeight: 40,
90+
logoWidth: 150,
91+
showPageTitle: true
92+
},
93+
toolbarHeightPx: 64,
94+
showBreadcrumb: true
95+
}
96+
}
97+
98+
export const NoNavigation: Story = {
99+
args: {
100+
navigationItems: [],
101+
hideSidenavWhenNoNavigationItems: true,
102+
sidebarOptions: {
103+
showPageTitle: true
104+
},
105+
showBreadcrumb: true
106+
}
107+
}

0 commit comments

Comments
 (0)