mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
* Ported flow types * Fix example from readme * Add type tests for elementRoles and roleElements * Fix lint issues
29 lines
1.3 KiB
TypeScript
29 lines
1.3 KiB
TypeScript
import { elementRoles, roleElements, roles, ARIARoleDefintionKey, ARIARoleRelation } from 'aria-query';
|
|
|
|
function prettRole(roleName: ARIARoleDefintionKey) {
|
|
const role = roles.get(roleName)!;
|
|
console.log(`required props: ${Object.keys(role.requiredProps).join(', ')}`);
|
|
console.log(`props: ${Object.keys(role.props).join(', ')}`);
|
|
console.log(`Is ${!role.abstract ? 'not abstract' : 'abstract'}`);
|
|
console.log(
|
|
`${role.childrenPresentational ? 'Has Child Presentational characteristics' : 'No special cahracteristics'}`,
|
|
);
|
|
console.log('baseConcepts:');
|
|
role.baseConcepts.forEach(prettyRoleRelation);
|
|
console.log('relatedConcepts:');
|
|
role.relatedConcepts.forEach(prettyRoleRelation);
|
|
}
|
|
|
|
function prettyRoleRelation(relation: ARIARoleRelation): void {
|
|
console.log(`module: ${relation.module}`);
|
|
console.log(`concept: ${relation.concept !== undefined ? relation.concept.name : 'none'}`);
|
|
if (relation.concept !== undefined) {
|
|
console.log(
|
|
`attributes: ${(relation.concept.attributes || []).map(({ name, value }) => `name=${value}`).join(', ')}`,
|
|
);
|
|
}
|
|
}
|
|
|
|
const [selectElement] = Array.from(roleElements.get('combobox')!);
|
|
const selectRoles: string[] = Array.from(elementRoles.get(selectElement)!);
|