Skip to content

Commit 7a220a6

Browse files
committed
Merge branch 'main' into v20
2 parents 256dfcb + 955d0d6 commit 7a220a6

File tree

4 files changed

+321
-41
lines changed

4 files changed

+321
-41
lines changed

.eslintrc.json

Lines changed: 304 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,304 @@
1+
{
2+
"$schema": "https://json.schemastore.org/eslintrc",
3+
"root": true,
4+
"ignorePatterns": ["projects/**/*"],
5+
"overrides": [
6+
{
7+
"files": ["src/**/*.ts"],
8+
"parserOptions": {
9+
"project": ["tsconfig.json"],
10+
"createDefaultProgram": true
11+
},
12+
"extends": [
13+
"eslint:recommended",
14+
"plugin:import/recommended",
15+
"plugin:import/typescript",
16+
"plugin:rxjs/recommended",
17+
"plugin:@typescript-eslint/recommended",
18+
"plugin:@angular-eslint/recommended",
19+
"plugin:@angular-eslint/template/process-inline-templates",
20+
"prettier"
21+
],
22+
"plugins": ["jsdoc", "rxjs-angular", "unicorn"],
23+
"rules": {
24+
// Component selectors should follow given naming rules.
25+
// @see http://codelyzer.com/rules/component-selector/
26+
"@angular-eslint/component-selector": [
27+
"error",
28+
{
29+
"type": "element",
30+
"prefix": "ngx",
31+
"style": "kebab-case"
32+
}
33+
],
34+
// Directive selectors should follow given naming rules.
35+
// @see http://codelyzer.com/rules/directive-selector/
36+
"@angular-eslint/directive-selector": [
37+
"error",
38+
{
39+
"type": "attribute",
40+
"prefix": "ngx",
41+
"style": "camelCase"
42+
}
43+
],
44+
// Disallows usage of the host metadata property.
45+
// @see http://codelyzer.com/rules/no-host-metadata-property/
46+
"@angular-eslint/no-host-metadata-property": [
47+
"error",
48+
{ "allowStatic": true }
49+
],
50+
// Prefer to declare @Output as readonly since they are not supposed
51+
// to be reassigned.
52+
// @see http://codelyzer.com/rules/prefer-output-readonly/
53+
"@angular-eslint/prefer-output-readonly": ["error"],
54+
// Enforce use of component selector rules.
55+
// @see http://codelyzer.com/rules/component-selector/
56+
"@angular-eslint/use-component-selector": ["error"],
57+
// Disallows using ViewEncapsulation.None.
58+
// @see http://codelyzer.com/rules/use-component-view-encapsulation/
59+
"@angular-eslint/use-component-view-encapsulation": ["error"],
60+
// Ensure that components implement life cycle interfaces if they use
61+
// them.
62+
// @see http://codelyzer.com/rules/use-life-cycle-interface/
63+
"@angular-eslint/use-lifecycle-interface": ["error"],
64+
// Require consistently using either T[] or Array<T> for arrays.
65+
// @see https://typescript-eslint.io/rules/array-type/
66+
"@typescript-eslint/array-type": [
67+
"error",
68+
{ "default": "array-simple" }
69+
],
70+
// Enforce consistent usage of type assertions.
71+
// @see https://typescript-eslint.io/rules/consistent-type-assertions/
72+
"@typescript-eslint/consistent-type-assertions": [
73+
"error",
74+
{
75+
"assertionStyle": "as",
76+
"objectLiteralTypeAssertions": "never"
77+
}
78+
],
79+
// Enforce type definitions to consistently use either interface or type.
80+
// @see https://typescript-eslint.io/rules/consistent-type-definitions/
81+
"@typescript-eslint/consistent-type-definitions": "error",
82+
// Require explicit return types on functions and class methods.
83+
// @see https://typescript-eslint.io/rules/explicit-function-return-type/
84+
"@typescript-eslint/explicit-function-return-type": [
85+
"error",
86+
{ "allowExpressions": true }
87+
],
88+
// Require explicit accessibility modifiers on class properties and methods.
89+
// @see https://typescript-eslint.io/rules/explicit-member-accessibility/
90+
"@typescript-eslint/explicit-member-accessibility": [
91+
"error",
92+
{ "accessibility": "explicit" }
93+
],
94+
// Require explicit return and argument types on exported functions' and
95+
// classes' public class methods.
96+
// @see https://typescript-eslint.io/rules/explicit-module-boundary-types/
97+
"@typescript-eslint/explicit-module-boundary-types": "error",
98+
// Require a consistent member declaration order.
99+
// @see https://typescript-eslint.io/rules/member-ordering/
100+
"@typescript-eslint/member-ordering": [
101+
"error",
102+
{
103+
"default": [
104+
"constructor",
105+
"static-field",
106+
"instance-field",
107+
"static-method",
108+
"instance-method"
109+
]
110+
}
111+
],
112+
// Enforce naming conventions for everything across a codebase.
113+
// @see https://typescript-eslint.io/rules/naming-convention/
114+
"@typescript-eslint/naming-convention": [
115+
"error",
116+
{
117+
"selector": "classProperty",
118+
"format": ["PascalCase", "camelCase"],
119+
"modifiers": ["public"]
120+
},
121+
{
122+
"selector": "function",
123+
"format": ["camelCase"]
124+
},
125+
{
126+
"selector": "interface",
127+
"format": ["PascalCase"],
128+
"custom": {
129+
"regex": "^I[A-Z]",
130+
"match": false
131+
}
132+
},
133+
{
134+
"selector": "enumMember",
135+
"format": ["UPPER_CASE"]
136+
}
137+
],
138+
// Disallow empty functions.
139+
// @see https://typescript-eslint.io/rules/no-empty-function/
140+
"@typescript-eslint/no-empty-function": "error",
141+
// Disallow the declaration of empty interfaces.
142+
// @see https://typescript-eslint.io/rules/no-empty-interface/
143+
"@typescript-eslint/no-empty-interface": "off",
144+
// Disallow the any type.
145+
// @see https://typescript-eslint.io/rules/no-explicit-any/
146+
"@typescript-eslint/no-explicit-any": "error",
147+
// Disallow TypeScript namespaces.
148+
// @see https://typescript-eslint.io/rules/no-namespace/
149+
"@typescript-eslint/no-namespace": [
150+
"error",
151+
{ "allowDeclarations": true }
152+
],
153+
// Disallow unused expressions.
154+
// @see https://typescript-eslint.io/rules/no-unused-expressions/
155+
"@typescript-eslint/no-unused-expressions": "error",
156+
// Disallow unused variables.
157+
// @see https://typescript-eslint.io/rules/no-unused-vars/
158+
"@typescript-eslint/no-unused-vars": [
159+
"error",
160+
{
161+
"argsIgnorePattern": "^_",
162+
"ignoreRestSiblings": true,
163+
"varsIgnorePattern": "^_"
164+
}
165+
],
166+
// Enforce the use of for-of loop over the standard for loop where
167+
// possible.
168+
// @see https://typescript-eslint.io/rules/prefer-for-of/
169+
"@typescript-eslint/prefer-for-of": ["warn"],
170+
// Enforce using function types instead of interfaces with call
171+
// signatures.
172+
// @see https://typescript-eslint.io/rules/prefer-function-type/
173+
"@typescript-eslint/prefer-function-type": ["warn"],
174+
// Require private members to be marked as readonly if they're never
175+
// modified outside of the constructor.
176+
// @see https://typescript-eslint.io/rules/prefer-readonly/
177+
"@typescript-eslint/prefer-readonly": "error",
178+
// Disallow two overloads that could be unified into one with a union
179+
// or an optional/rest parameter.
180+
// @see https://typescript-eslint.io/rules/unified-signatures/
181+
"@typescript-eslint/unified-signatures": "warn",
182+
// Require the use of === and !==
183+
// @see https://eslint.org/docs/latest/rules/eqeqeq
184+
"eqeqeq": ["error"],
185+
// Require for-in loops to include an if statement
186+
// @see https://eslint.org/docs/latest/rules/guard-for-in
187+
"guard-for-in": ["error"],
188+
// Prohibit default exports.
189+
// @see https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-default-export.md
190+
"import/no-default-export": ["error"],
191+
// Reports use of a deprecated name, as indicated by a JSDoc block
192+
// with a @deprecated tag or TomDoc Deprecated: comment.
193+
// @see https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-deprecated.md
194+
"import/no-deprecated": "off",
195+
// Ensures an imported module can be resolved to a module on the local
196+
// filesystem.
197+
// @see https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-unresolved.md
198+
"import/no-unresolved": "off",
199+
// Reports invalid alignment of JSDoc block asterisks.
200+
// @see https://github.com/gajus/eslint-plugin-jsdoc/blob/master/.README/rules/check-alignment.md
201+
"jsdoc/check-alignment": ["error"],
202+
// Reports invalid padding inside JSDoc blocks.
203+
// @see https://github.com/gajus/eslint-plugin-jsdoc/blob/master/.README/rules/check-indentation.md
204+
"jsdoc/check-indentation": ["error"],
205+
// Disallow bitwise operators
206+
// @see https://eslint.org/docs/latest/rules/no-bitwise
207+
"no-bitwise": ["error"],
208+
// Disallow the use of arguments.caller or arguments.callee
209+
// @see https://eslint.org/docs/latest/rules/no-caller
210+
"no-caller": ["error"],
211+
// Disallow the use of console
212+
// @see https://eslint.org/docs/latest/rules/no-console
213+
"no-console": ["error", { "allow": ["warn", "error"] }],
214+
// Disallow duplicate module imports
215+
// @see https://eslint.org/docs/latest/rules/no-duplicate-imports
216+
"no-duplicate-imports": ["error"],
217+
// Disallow empty block statements
218+
// @see https://eslint.org/docs/latest/rules/no-empty
219+
"no-empty": "error",
220+
// Disallow the use of eval()
221+
// @see https://eslint.org/docs/latest/rules/no-eval
222+
"no-eval": ["error"],
223+
// Disallow new operators with the String, Number, and Boolean objects
224+
// @see https://eslint.org/docs/latest/rules/no-new-wrappers
225+
"no-new-wrappers": ["error"],
226+
// Disallow throwing literals as exceptions
227+
// @see https://eslint.org/docs/latest/rules/no-throw-literal
228+
"no-throw-literal": ["error"],
229+
// Require let or const instead of var
230+
// @see https://eslint.org/docs/latest/rules/no-var
231+
"no-var": ["error"],
232+
// Require or disallow method and property shorthand syntax for object
233+
// literals
234+
// @see https://eslint.org/docs/latest/rules/object-shorthand
235+
"object-shorthand": ["error"],
236+
// Enforce variables to be declared either together or separately in
237+
// functions
238+
// @see https://eslint.org/docs/latest/rules/one-var
239+
"one-var": ["error", "never"],
240+
// Require using arrow functions for callbacks
241+
// @see https://eslint.org/docs/latest/rules/prefer-arrow-callback
242+
"prefer-arrow/prefer-arrow-functions": "off",
243+
// Require const declarations for variables that are never reassigned
244+
// after declared
245+
// @see https://eslint.org/docs/latest/rules/prefer-const
246+
"prefer-const": ["error"],
247+
// Enforce the consistent use of the radix argument when using
248+
// parseInt()
249+
// @see https://eslint.org/docs/latest/rules/radix
250+
"radix": ["error"],
251+
// This rule effects failures if subscribe is called within a component
252+
// and the takeUntil-destroyed pattern is not used.
253+
// @see https://github.com/cartant/eslint-plugin-rxjs-angular/blob/main/docs/rules/prefer-takeuntil.md
254+
"rxjs-angular/prefer-takeuntil": [
255+
"error",
256+
{ "alias": ["untilDestroyed"] }
257+
],
258+
// This rule effects failures if async functions are passed to
259+
// subscribe.
260+
// @see https://github.com/cartant/eslint-plugin-rxjs/blob/main/docs/rules/no-async-subscribe.md
261+
"rxjs/no-async-subscribe": "off",
262+
// This rule prevents the public or protected subjects. Developers
263+
// should instead expose observables via the subjects' toObservable
264+
// method.
265+
// @see https://github.com/cartant/eslint-plugin-rxjs/blob/main/docs/rules/no-exposed-subjects.md
266+
"rxjs/no-exposed-subjects": ["error"],
267+
// This rule prevents the use of Finnish notation.
268+
// @see https://github.com/cartant/eslint-plugin-rxjs/blob/main/docs/rules/no-finnish.md
269+
"rxjs/no-finnish": ["error"],
270+
// This rule effects failures if the buffer size of a replay buffer is
271+
// not explicitly specified.
272+
// @see https://github.com/cartant/eslint-plugin-rxjs/blob/main/docs/rules/no-ignored-replay-buffer.md
273+
"rxjs/no-ignored-replay-buffer": ["error"],
274+
// This rule effects failures if the shareReplay operator is used.
275+
// @see https://github.com/cartant/eslint-plugin-rxjs/blob/main/docs/rules/no-sharereplay.md
276+
"rxjs/no-sharereplay": "off",
277+
// This rule effects failures if the tap operator is used.
278+
// @see https://github.com/cartant/eslint-plugin-rxjs/blob/main/docs/rules/no-tap.md
279+
"rxjs/no-tap": ["error"],
280+
// This rule effects failures whenever takeUntil is used in observable
281+
// compositions that can leak subscriptions.
282+
// @see https://github.com/cartant/eslint-plugin-rxjs/blob/main/docs/rules/no-unsafe-takeuntil.md
283+
"rxjs/no-unsafe-takeuntil": ["error", { "alias": ["untilDestroyed"] }],
284+
// Enforce consistent spacing after the // or /* in a comment
285+
// @see https://eslint.org/docs/latest/rules/spaced-comment
286+
"spaced-comment": [
287+
"error",
288+
"always",
289+
{ "block": { "balanced": true } }
290+
],
291+
// Enforces all linted files to have their names in a certain case
292+
// style and lowercase file extension.
293+
// @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/filename-case.md
294+
"unicorn/filename-case": ["error", { "case": "kebabCase" }]
295+
}
296+
},
297+
{
298+
"files": ["src/**/*.html"],
299+
"parser": "@angular-eslint/template-parser",
300+
"extends": ["plugin:@angular-eslint/template/recommended"],
301+
"rules": {}
302+
}
303+
]
304+
}

README.md

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -152,17 +152,22 @@ Customization with optional inputs and icon
152152

153153
## Compatibility <a name="compatibility"></a>
154154

155-
| Angular version | @proangular/ngx-scroll-top | Install |
156-
| --------------- | -------------------------- | ------------------------------------------- |
157-
| v20 | v20.0.0 | `ng add @proangular/ngx-scroll-top@^20.0.0` |
158-
| v19 | v19.0.0 | `ng add @proangular/ngx-scroll-top@^19.0.0` |
159-
| v18 | ------ | Untested |
160-
| v17 | ------ | Untested |
161-
| v16 | ------ | Untested |
162-
| v15 | ------ | Untested |
163-
| v14 | v1.x.x | `ng add @proangular/ngx-scroll-top@1.1.8` |
164-
| v13 | v1.x.x | `ng add @proangular/ngx-scroll-top@1.1.8` |
165-
| v12 | v1.x.x | `ng add @proangular/ngx-scroll-top@1.1.8` |
155+
| <<<<<<< HEAD | Angular version | @proangular/ngx-scroll-top | Install | |
156+
| ------------------------------------------- | --------------- | ----------------------------------------- | --------------- | ---------- | ---------- | ---------- | --- | ------ | -------- | --- |
157+
| ------------------------------------------- | | v20 | v20.0.0 |
158+
| `ng add @proangular/ngx-scroll-top@^20.0.0` | | v19 | v19.0.0 |
159+
| `ng add @proangular/ngx-scroll-top@^19.0.0` | | v18 | ------ | Untested | | v17 |
160+
| ------ | Untested | | v16 | ------ | Untested | | v15 | ------ | Untested | |
161+
| v14 | v1.x.x | `ng add @proangular/ngx-scroll-top@1.1.8` | | v13 | v1.x.x |
162+
| `ng add @proangular/ngx-scroll-top@1.1.8` | | v12 | v1.x.x |
163+
| `ng add @proangular/ngx-scroll-top@1.1.8` | ======= | Angular version |
164+
| @proangular/ngx-scroll-top | Status | | --------------- |
165+
| -------------------------- | ---------- | | v19 | v19.0.0 | Compatible | | v18 |
166+
| ------ | Untested | | v17 | ------ | Untested | | v16 | ------ | Untested | |
167+
| v15 | ------ | Untested | | v14 | v1.x.x | Compatible | | v13 | v1.x.x |
168+
| Compatible | | v12 | v1.x.x | Compatible |
169+
170+
> > > > > > > main
166171
167172
<p align="right">[ <a href="#index">Index</a> ]</p>
168173

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/app/app.component.spec.ts

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)