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 `
-
Documents
- Resume.pdf
- Cover Letter.docx
`;
},
};
export const interactiveRatingE2eHarness: E2eHarnessConfig = {
template: (_name, selector) => `<${selector} [readonly]="false" />`,
};
export const interactiveStepsE2eHarness: E2eHarnessConfig = {
template: (_name, selector) => `<${selector} interactive />`,
};