import { strings } from '@angular-devkit/core'; import { E2eHarnessConfig } from './generate-component'; function classes(name: string, suffixes: readonly string[]): string[] { const base = strings.classify(name); return suffixes.map((suffix) => `${base}${suffix}`); } function camel(name: string): string { return strings.camelize(name); } export const accordionE2eHarness: E2eHarnessConfig = { imports: (name) => classes(name, ['', 'Header', 'Panel']), template: (name) => { const attribute = camel(name); return `

First panel

Second panel

Disabled panel
`; }, }; export const breadcrumbE2eHarness: E2eHarnessConfig = { imports: (name) => classes(name, ['', 'Item']), template: (name) => { const attribute = camel(name); return `
`; }, }; export const listGroupE2eHarness: E2eHarnessConfig = { imports: (name) => classes(name, ['', 'Item']), template: (name) => { const attribute = camel(name); return ``; }, }; export const menuButtonE2eHarness: E2eHarnessConfig = { imports: (name) => classes(name, ['', 'Trigger', 'Menu', 'Item']), template: (name) => { const attribute = camel(name); return `
`; }, }; export const navbarE2eHarness: E2eHarnessConfig = { imports: (name) => classes(name, ['', 'Item', 'Toggle', 'Menu']), template: (name) => { const attribute = camel(name); return ``; }, }; export const paginationE2eHarness: E2eHarnessConfig = { imports: (name) => classes(name, ['', 'Item']), coreImports: ['signal'], template: (name) => { const attribute = camel(name); return ``; }, classBody: () => ` readonly pages = [1, 2, 3]; readonly currentPage = signal(1); previous(): void { this.currentPage.update((page) => Math.max(1, page - 1)); } next(): void { this.currentPage.update((page) => Math.min(this.pages.length, page + 1)); }`, }; export const tabsE2eHarness: E2eHarnessConfig = { imports: (name) => classes(name, ['', 'List', 'Tab', 'Panel']), template: (name) => { const attribute = camel(name); return `
Profile panel
Settings panel
Disabled panel
`; }, }; export const toolbarE2eHarness: E2eHarnessConfig = { imports: (name) => classes(name, ['', 'Item']), template: (name) => { const attribute = camel(name); return `
`; }, }; export const treeViewE2eHarness: E2eHarnessConfig = { imports: (name) => classes(name, ['', 'Item', 'Group']), template: (name) => { const attribute = camel(name); return ``; }, }; export const interactiveRatingE2eHarness: E2eHarnessConfig = { template: (_name, selector) => `<${selector} [readonly]="false" />`, }; export const interactiveStepsE2eHarness: E2eHarnessConfig = { template: (_name, selector) => `<${selector} interactive />`, };