Skip to content

Commit 2f2fea5

Browse files
authored
Merge branch 'master' into master
2 parents ba68271 + c1d5c59 commit 2f2fea5

26 files changed

+1627
-3891
lines changed

.eslintrc.json

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,37 +20,37 @@
2020
"plugin:@angular-eslint/template/process-inline-templates"
2121
],
2222
"rules": {
23-
"jsdoc/newline-after-description": "off",
24-
"@angular-eslint/no-output-rename": "off",
25-
"@angular-eslint/no-output-native": "off",
26-
"@angular-eslint/prefer-standalone": "warn",
27-
"@angular-eslint/component-selector": [
28-
"error",
29-
{
30-
"prefix": "ng",
31-
"style": "kebab-case",
32-
"type": "element"
33-
}
34-
],
35-
"@angular-eslint/directive-selector": [
36-
"error",
37-
{
38-
"prefix": "ng",
39-
"style": "camelCase",
40-
"type": "attribute"
41-
}
42-
],
43-
"@typescript-eslint/consistent-type-assertions": "off",
44-
"@typescript-eslint/member-delimiter-style": "off",
45-
"@typescript-eslint/member-ordering": "off",
46-
"@typescript-eslint/naming-convention": "off",
47-
"@typescript-eslint/semi": "off",
48-
"indent": "off",
49-
"no-underscore-dangle": "off",
50-
"prefer-arrow/prefer-arrow-functions": "off",
51-
"spaced-comment": "error",
52-
"quote-props": "off"
53-
}
23+
"jsdoc/newline-after-description": "off",
24+
"@angular-eslint/no-output-rename": "off",
25+
"@angular-eslint/no-output-native": "off",
26+
"@angular-eslint/prefer-standalone": "off",
27+
"@angular-eslint/component-selector": [
28+
"error",
29+
{
30+
"prefix": "ng",
31+
"style": "kebab-case",
32+
"type": "element"
33+
}
34+
],
35+
"@angular-eslint/directive-selector": [
36+
"error",
37+
{
38+
"prefix": "ng",
39+
"style": "camelCase",
40+
"type": "attribute"
41+
}
42+
],
43+
"@typescript-eslint/consistent-type-assertions": "off",
44+
"@typescript-eslint/member-delimiter-style": "off",
45+
"@typescript-eslint/member-ordering": "off",
46+
"@typescript-eslint/naming-convention": "off",
47+
"@typescript-eslint/semi": "off",
48+
"indent": "off",
49+
"no-underscore-dangle": "off",
50+
"prefer-arrow/prefer-arrow-functions": "off",
51+
"spaced-comment": "error",
52+
"quote-props": "off"
53+
}
5454
},
5555
{
5656
"files": [

.github/copilot-instructions.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Copilot Instructions for Angular Projects
2+
3+
1. **Use the Latest Angular and TypeScript**
4+
- Always use the latest stable version of Angular (currently v20) and TypeScript.
5+
- Code examples must reference Angular 20+ APIs and features.
6+
- If unsure about a feature or API, refer to the [Angular Docs](https://angular.dev/).
7+
8+
2. **Modern Angular Features Only**
9+
- Always prefer Angular control flow syntax over legacy structural directives.
10+
- Use Angular signals for state management and reactivity.
11+
- Prefer input signals and output signals for component communication. See: [inputs](https://angular.dev/reference/api/core/InputSignal), [outputs](https://angular.dev/reference/api/core/OutputSignal).
12+
13+
3. **No Legacy Decorators**
14+
- Do not use or recommend `@Input` and `@Output` decorators in new examples.
15+
- Use signals and Angular's latest patterns for data flow and events.
16+
17+
4. **Template Syntax & Style**
18+
- Use the latest template syntax and best practices, such as `@for`, `@if`, `@switch` (Angular's new control flow).
19+
- Always use `<ng-container>` for structural grouping when needed.
20+
21+
5. **Component Architecture**
22+
- Prefer standalone components wherever possible (avoid NgModules for new features unless there’s a clear need).
23+
- Encourage use of feature encapsulation with self-contained, reusable components.
24+
25+
6. **Type Safety & Strictness**
26+
- Enable `"strict": true` in `tsconfig.json` for all projects.
27+
- Always provide explicit types for function signatures, variables, and observables.
28+
29+
7. **Dependency Injection**
30+
- Use `@Injectable({providedIn: 'root'})` for services unless there's a reason for a different scope.
31+
- Always prefer Angular DI patterns over manual instantiation or singleton hacks.
32+
33+
8. **API Communication**
34+
- Use Angular’s `HttpClient` for all HTTP/API interactions.
35+
- Prefer typed HTTP responses and error handling using RxJS.
36+
37+
9. **State Management**
38+
- For component-level state, use signals.
39+
- For app-wide state, recommend using signals-based libraries or lightweight solutions compatible with Angular 20+ (e.g., SignalStore, Akita signals, etc.), but avoid heavy, legacy state libraries like NgRx unless necessary.
40+
41+
10. **Testing**
42+
- All code examples should include unit test snippets where applicable.
43+
- Use Angular’s karma, jasmine testing APIs.
44+
45+
11. **Accessibility**
46+
- Ensure all code examples follow WCAG guidelines and Angular’s accessibility best practices.
47+
48+
12. **Documentation and Comments**
49+
- Comment public APIs, inputs, and outputs in all examples.
50+
- Reference Angular style guide for structure and naming conventions.
51+
52+
13. **No Deprecated APIs**
53+
- Never recommend deprecated Angular APIs, patterns, or features.
54+
- Double-check breaking changes or removals for each new Angular version [here](https://update.angular.io/).

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
run: yarn build:demo
3333

3434
- name: Coveralls
35-
uses: coverallsapp/github-action@v1
35+
uses: coverallsapp/github-action@v2
3636
with:
3737
github-token: ${{ secrets.GITHUB_TOKEN }}
3838
path-to-lcov: ./coverage/ng-select/lcov.info

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ See [Demo](https://ng-select.github.io/ng-select) page.
1616

1717
| Angular | ng-select |
1818
|------------------|:---------:|
19+
| >=20.0.0 <21.0.0 | v15.x |
1920
| >=19.0.0 <20.0.0 | v14.x |
2021
| >=18.0.0 <19.0.0 | v13.x |
2122
| >=17.0.0 <18.0.0 | v12.x |

0 commit comments

Comments
 (0)