@angular-eslint/eslint-plugin-template 15.2.2-alpha.8 → 16.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/configs/README.md +10 -0
- package/dist/configs/accessibility.json +17 -0
- package/dist/configs/all.json +10 -10
- package/dist/configs/recommended.json +2 -1
- package/dist/index.js +95 -1
- package/dist/processors.js +210 -0
- package/dist/rules/alt-text.js +131 -0
- package/dist/rules/attributes-order.js +233 -0
- package/dist/rules/banana-in-box.js +47 -0
- package/dist/rules/button-has-type.js +76 -0
- package/dist/rules/click-events-have-key-events.js +57 -0
- package/dist/rules/conditional-complexity.js +107 -0
- package/dist/rules/cyclomatic-complexity.js +50 -0
- package/dist/rules/elements-content.js +70 -0
- package/dist/rules/eqeqeq.js +99 -0
- package/dist/rules/i18n.js +368 -0
- package/dist/rules/interactive-supports-focus.js +64 -0
- package/dist/rules/label-has-associated-control.js +103 -0
- package/dist/rules/mouse-events-have-key-events.js +40 -0
- package/dist/rules/no-any.js +59 -0
- package/dist/rules/no-autofocus.js +41 -0
- package/dist/rules/no-call-expression.js +68 -0
- package/dist/rules/no-distracting-elements.js +36 -0
- package/dist/rules/no-duplicate-attributes.js +97 -0
- package/dist/rules/no-inline-styles.js +104 -0
- package/dist/rules/no-interpolation-in-attributes.js +36 -0
- package/dist/rules/no-negated-async.js +60 -0
- package/dist/rules/no-positive-tabindex.js +43 -0
- package/dist/rules/role-has-required-aria.js +73 -0
- package/dist/rules/table-scope.js +41 -0
- package/dist/rules/use-track-by-function.js +56 -0
- package/dist/rules/valid-aria.js +126 -0
- package/dist/utils/attributes-comparator.js +19 -0
- package/dist/utils/constants.js +11 -0
- package/dist/utils/create-eslint-rule.js +26 -0
- package/dist/utils/get-attribute-value.js +39 -0
- package/dist/utils/get-dom-elements.js +9 -0
- package/dist/utils/get-nearest-node-from.js +17 -0
- package/dist/utils/get-original-attribute-name.js +29 -0
- package/dist/utils/is-child-node-of.js +12 -0
- package/dist/utils/is-content-editable.js +14 -0
- package/dist/utils/is-disabled-element.js +20 -0
- package/dist/utils/is-hidden-from-screen-reader.js +97 -0
- package/dist/utils/is-interactive-element/get-interactive-element-ax-object-schemas.js +27 -0
- package/dist/utils/is-interactive-element/get-interactive-element-role-schemas.js +38 -0
- package/dist/utils/is-interactive-element/get-non-interactive-element-role-schemas.js +44 -0
- package/dist/utils/is-interactive-element/index.js +45 -0
- package/dist/utils/is-presentation-role.js +14 -0
- package/dist/utils/is-semantic-role-element.js +36 -0
- package/dist/utils/to-pattern.js +7 -0
- package/package.json +4 -4
- package/dist/configs/base.json +0 -4
- package/dist/eslint-plugin-template/src/index.d.ts +0 -133
- package/dist/eslint-plugin-template/src/processors.d.ts +0 -37
- package/dist/eslint-plugin-template/src/rules/accessibility-alt-text.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/accessibility-elements-content.d.ts +0 -9
- package/dist/eslint-plugin-template/src/rules/accessibility-interactive-supports-focus.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/accessibility-label-for.d.ts +0 -11
- package/dist/eslint-plugin-template/src/rules/accessibility-label-has-associated-control.d.ts +0 -14
- package/dist/eslint-plugin-template/src/rules/accessibility-role-has-required-aria.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/accessibility-table-scope.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/accessibility-valid-aria.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/attributes-order.d.ts +0 -18
- package/dist/eslint-plugin-template/src/rules/banana-in-box.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/button-has-type.d.ts +0 -5
- package/dist/eslint-plugin-template/src/rules/click-events-have-key-events.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/conditional-complexity.d.ts +0 -7
- package/dist/eslint-plugin-template/src/rules/cyclomatic-complexity.d.ts +0 -7
- package/dist/eslint-plugin-template/src/rules/eqeqeq.d.ts +0 -8
- package/dist/eslint-plugin-template/src/rules/i18n.d.ts +0 -18
- package/dist/eslint-plugin-template/src/rules/mouse-events-have-key-events.d.ts +0 -5
- package/dist/eslint-plugin-template/src/rules/no-any.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/no-autofocus.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/no-call-expression.d.ts +0 -9
- package/dist/eslint-plugin-template/src/rules/no-distracting-elements.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/no-duplicate-attributes.d.ts +0 -10
- package/dist/eslint-plugin-template/src/rules/no-inline-styles.d.ts +0 -10
- package/dist/eslint-plugin-template/src/rules/no-interpolation-in-attributes.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/no-negated-async.d.ts +0 -7
- package/dist/eslint-plugin-template/src/rules/no-positive-tabindex.d.ts +0 -4
- package/dist/eslint-plugin-template/src/rules/use-track-by-function.d.ts +0 -4
- package/dist/eslint-plugin-template/src/utils/attributes-comparator.d.ts +0 -3
- package/dist/eslint-plugin-template/src/utils/constants.d.ts +0 -8
- package/dist/eslint-plugin-template/src/utils/create-eslint-rule.d.ts +0 -2
- package/dist/eslint-plugin-template/src/utils/get-attribute-value.d.ts +0 -12
- package/dist/eslint-plugin-template/src/utils/get-dom-elements.d.ts +0 -1
- package/dist/eslint-plugin-template/src/utils/get-nearest-node-from.d.ts +0 -6
- package/dist/eslint-plugin-template/src/utils/get-original-attribute-name.d.ts +0 -13
- package/dist/eslint-plugin-template/src/utils/is-child-node-of.d.ts +0 -2
- package/dist/eslint-plugin-template/src/utils/is-content-editable.d.ts +0 -2
- package/dist/eslint-plugin-template/src/utils/is-disabled-element.d.ts +0 -2
- package/dist/eslint-plugin-template/src/utils/is-hidden-from-screen-reader.d.ts +0 -9
- package/dist/eslint-plugin-template/src/utils/is-interactive-element/get-interactive-element-ax-object-schemas.d.ts +0 -9
- package/dist/eslint-plugin-template/src/utils/is-interactive-element/get-interactive-element-role-schemas.d.ts +0 -2
- package/dist/eslint-plugin-template/src/utils/is-interactive-element/get-non-interactive-element-role-schemas.d.ts +0 -3
- package/dist/eslint-plugin-template/src/utils/is-interactive-element/index.d.ts +0 -9
- package/dist/eslint-plugin-template/src/utils/is-presentation-role.d.ts +0 -2
- package/dist/eslint-plugin-template/src/utils/is-semantic-role-element.d.ts +0 -2
- package/dist/eslint-plugin-template/src/utils/to-pattern.d.ts +0 -1
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
type Options = [
|
|
2
|
-
{
|
|
3
|
-
readonly allowTwoWayDataBinding?: boolean;
|
|
4
|
-
readonly ignore?: readonly string[];
|
|
5
|
-
}
|
|
6
|
-
];
|
|
7
|
-
export type MessageIds = 'noDuplicateAttributes' | 'suggestRemoveAttribute';
|
|
8
|
-
export declare const RULE_NAME = "no-duplicate-attributes";
|
|
9
|
-
declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<MessageIds, Options, import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>;
|
|
10
|
-
export default _default;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
type Options = [
|
|
2
|
-
{
|
|
3
|
-
readonly allowNgStyle?: boolean;
|
|
4
|
-
readonly allowBindToStyle?: boolean;
|
|
5
|
-
}
|
|
6
|
-
];
|
|
7
|
-
export type MessageIds = 'noInlineStyles';
|
|
8
|
-
export declare const RULE_NAME = "no-inline-styles";
|
|
9
|
-
declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"noInlineStyles", Options, import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>;
|
|
10
|
-
export default _default;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare const MESSAGE_ID = "noInterpolationInAttributes";
|
|
2
|
-
export declare const RULE_NAME = "no-interpolation-in-attributes";
|
|
3
|
-
declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"noInterpolationInAttributes", [], import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>;
|
|
4
|
-
export default _default;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export type MessageIds = 'noNegatedAsync' | 'suggestFalseComparison' | 'suggestNullComparison' | 'suggestUndefinedComparison';
|
|
2
|
-
export declare const RULE_NAME = "no-negated-async";
|
|
3
|
-
declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<MessageIds, [], import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>;
|
|
4
|
-
export default _default;
|
|
5
|
-
export declare const RULE_DOCS_EXTENSION: {
|
|
6
|
-
rationale: string;
|
|
7
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export type MessageIds = 'noPositiveTabindex' | 'suggestNonNegativeTabindex';
|
|
2
|
-
export declare const RULE_NAME = "no-positive-tabindex";
|
|
3
|
-
declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<MessageIds, [], import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>;
|
|
4
|
-
export default _default;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export type MessageIds = 'useTrackByFunction';
|
|
2
|
-
export declare const RULE_NAME = "use-track-by-function";
|
|
3
|
-
declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<"useTrackByFunction", [], import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>;
|
|
4
|
-
export default _default;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { TmplAstElement } from '@angular-eslint/bundled-angular-compiler';
|
|
2
|
-
import type { ARIARoleRelationConceptAttribute } from 'aria-query';
|
|
3
|
-
export declare function attributesComparator(ariaRoleRelationConceptAttributes: readonly ARIARoleRelationConceptAttribute[], node: TmplAstElement): boolean;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { ESLintUtils } from '@typescript-eslint/utils';
|
|
2
|
-
export declare const createESLintRule: <TOptions extends readonly unknown[], TMessageIds extends string, TRuleListener extends import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener = import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>({ name, meta, ...rule }: Readonly<ESLintUtils.RuleWithMetaAndName<TOptions, TMessageIds, TRuleListener>>) => import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<TMessageIds, TOptions, TRuleListener>;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { TmplAstElement } from '@angular-eslint/bundled-angular-compiler';
|
|
2
|
-
/**
|
|
3
|
-
* Extracts the attribute value.
|
|
4
|
-
* @example
|
|
5
|
-
* ```ts
|
|
6
|
-
* getAttributeValue(Element(`<div property="test"></div>`), 'nonExistent'); // null
|
|
7
|
-
* getAttributeValue(Element(`<div aria-role="none"></div>`), 'role'); // 'none'
|
|
8
|
-
* getAttributeValue(Element(`<div [attr.aria-checked]="true"></div>`), 'aria-checked'); // true
|
|
9
|
-
* getAttributeValue(Element(`<button [variant]="variant"></button>`), 'variant'); // PROPERTY
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
export declare function getAttributeValue({ attributes, inputs }: TmplAstElement, attributeName: string): unknown;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getDomElements(): ReadonlySet<string>;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { AST, TmplAstNode } from '@angular-eslint/bundled-angular-compiler';
|
|
2
|
-
type ASTOrNodeWithParent = (AST | TmplAstNode) & {
|
|
3
|
-
parent?: ASTOrNodeWithParent;
|
|
4
|
-
};
|
|
5
|
-
export declare function getNearestNodeFrom<T extends ASTOrNodeWithParent>({ parent }: ASTOrNodeWithParent, predicate: (parent: ASTOrNodeWithParent) => parent is T): T | null;
|
|
6
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { TmplAstBoundAttribute, TmplAstTextAttribute } from '@angular-eslint/bundled-angular-compiler';
|
|
2
|
-
import { TmplAstBoundEvent } from '@angular-eslint/bundled-angular-compiler';
|
|
3
|
-
/**
|
|
4
|
-
* Returns the original attribute name.
|
|
5
|
-
* @example
|
|
6
|
-
* ```html
|
|
7
|
-
* <div [style.display.none]="test"></div> <!-- Instead of "display", "style.display.none" -->
|
|
8
|
-
* <div [attr.role]="'none'"></div> <!-- Instead of "attr.role", "role" -->
|
|
9
|
-
* <div ([ngModel])="test"></div> <!-- Instead of "ngModel", "ngModelChange" -->
|
|
10
|
-
* <div (@fade.start)="handle()"></div> <!-- Instead of "fade", "@fade.start" -->
|
|
11
|
-
* ```
|
|
12
|
-
*/
|
|
13
|
-
export declare function getOriginalAttributeName(attribute: TmplAstBoundAttribute | TmplAstBoundEvent | TmplAstTextAttribute): string;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { TmplAstElement } from '@angular-eslint/bundled-angular-compiler';
|
|
2
|
-
/**
|
|
3
|
-
* Whether an element content cannot be read by a screen reader. It can happen in the following situations:
|
|
4
|
-
* - It has `display: none` or `visibility: hidden` style;
|
|
5
|
-
* - It has `aria-hidden` or `hidden` attribute;
|
|
6
|
-
* - It's an `<input type="hidden">`;
|
|
7
|
-
* - One of its ancestors met one of the following situations above.
|
|
8
|
-
*/
|
|
9
|
-
export declare function isHiddenFromScreenReader(node: TmplAstElement): boolean;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { TmplAstElement } from '@angular-eslint/bundled-angular-compiler';
|
|
2
|
-
/**
|
|
3
|
-
* Returns boolean indicating whether the given element is
|
|
4
|
-
* interactive on the DOM or not. Usually used when an element
|
|
5
|
-
* has a dynamic handler on it and we need to discern whether or not
|
|
6
|
-
* it's intention is to be interacted with on the DOM.
|
|
7
|
-
*/
|
|
8
|
-
export declare function isInteractiveElement(node: TmplAstElement): boolean;
|
|
9
|
-
export declare function isNonInteractiveRole(node: TmplAstElement): boolean;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function toPattern(value: readonly unknown[]): RegExp;
|