An open API service indexing awesome lists of open source software.

https://github.com/bepo65/mat-tristate-checkbox

3-state checkbox for Angular Material as library component with demo project
https://github.com/bepo65/mat-tristate-checkbox

angular

Last synced: about 1 year ago
JSON representation

3-state checkbox for Angular Material as library component with demo project

Awesome Lists containing this project

README

          

# mat-tristate-checkbox
![Version](https://img.shields.io/badge/version-17.0.7-blue.svg?cacheSeconds=2592000)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/kefranabg/readme-md-generator/blob/master/LICENSE)
![Angular version](https://img.shields.io/github/package-json/dependency-version/bepo65/mat-tristate-checkbox/@angular/core?color=red&label=Angular&logo=angular&logoColor=red)
![GitHub package.json dependency version (prod)](https://img.shields.io/github/package-json/dependency-version/bepo65/mat-tristate-checkbox/@angular/material?color=red&label=Angular-Material&logo=angular&logoColor=red)

> <mat-tristate-checkbox> provides the same functionality as the Angular Material checkbox enhanced with 3 states. This repository contains the checkbox component and a demo project.

## Prerequisites

The package can be used in Angular apps with Angular Material installed. This Version requires Angular 16.

## Installation of checkbox

```sh
npm install mat-tristate-checkbox
```

## Sample usage of checkbox

Now you can use the mat-tristate-checkbox component in your app components, for example in app.module.ts:
```javascript
import { MatTristateCheckboxComponent } from 'mat-tristate-checkbox';
...
@NgModule({
declarations: [
AppComponent
],
imports: [
...
MatTristateCheckboxComponent
],
...
})
export class AppModule { }
```
And in template file app.component.html:
```html

remember me

```

## Demo project

Try out the [demo page](https://bepo65.github.io/mat-tristate-checkbox/).

![Screenshot](assets/screenshot.jpg "Screenshot of the demo page")

## Properties of checkbox

| Name | Description |
|------|-------------|
| @Input()
color: ThemePalette | Theme color palette for the component. Defaults to 'accent' |
| @Input()
disabled: any | Whether the checkbox is disabled. |
| @Input()
labelPosition: 'before' | 'after' | Whether the label should appear after or before the checkbox. Defaults to 'after' |

## Values of checkbox
The value aof the checkbox cycle through these values:
```
undefined > false > true
```

## Usage of demo project

```sh
npm install
npm run start
```

## Run all tests

```sh
npm run test
```

## Changelog
For list of changes and bugfixes, see [CHANGELOG.md](CHANGELOG.md).

## Release hints
Starting with version 16 the generated package on npm is unscoped (i.e. is named 'mat-image-overflow' not '@bepo65/mat-image-overflow').

## Contributing

## Changelog
The project uses 'standard-version' to create the changelog. To enable this system, commit messages are linted before commits are executed by git.

**The structure of commit messages is**:
```





```

**header**
```
():
```

type and scope
- build: Changes that affect the build system or external dependencies (example scope: npm)
- docs: Documentation only changes
- feat: A new feature
- fix: A bug fix
- perf: A code change that improves performance
- refactor: A code change that neither fixes a bug nor adds a feature
- test: Adding missing tests or correcting existing tests (example scopes: demo, lib, e2e)

**footer**
```
BREAKING CHANGE: ... (requires MAJOR in Semantic Versioning)
```

For details of the commit messages format see [Contributing to Angular](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit).

## License

Copyright © 2024 [Bernhard Pottler](https://github.com/BePo65).

Distributed under the MIT License. See `LICENSE` for more information.

This project uses the fonts '[Roboto](https://fonts.google.com/specimen/Roboto/about)' and '[Material Icons](https://github.com/google/material-design-icons)' from the [Google Fonts Library](https://fonts.google.com/) that are licensed under the [Apache License Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt).

## Hints
As `eslint` V9 is not supported by angular@17 and also requires a fundamental change to the configuration files, the update will be done in a later version.

As a consequence the package `eslint-plugin-cypress` cannot be updated to a version 4.x (as this version has a peerDependency of eslint >= 9).