@angular/material
Version:
Angular Material
405 lines (403 loc) • 60.7 kB
JavaScript
import * as i0 from '@angular/core';
import { InjectionToken, inject, ElementRef, ChangeDetectorRef, NgZone, EventEmitter, HostAttributeToken, signal, booleanAttribute, forwardRef, numberAttribute, Input, ViewChild, Output, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
import { _IdGenerator } from '@angular/cdk/a11y';
import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
import { _CdkPrivateStyleLoader } from '@angular/cdk/private';
import { _MatInternalFormField } from './_internal-form-field-chunk.mjs';
import { _animationsDisabled } from './_animation-chunk.mjs';
import { _StructuralStylesLoader } from './_structural-styles-chunk.mjs';
import { MatRipple } from './_ripple-chunk.mjs';
import { BidiModule } from '@angular/cdk/bidi';
import '@angular/cdk/layout';
import '@angular/cdk/platform';
import '@angular/cdk/coercion';
const checkboxDefaults = {
color: 'accent',
clickAction: 'check-indeterminate',
disabledInteractive: false
};
const MAT_CHECKBOX_DEFAULT_OPTIONS = new InjectionToken('mat-checkbox-default-options', {
providedIn: 'root',
factory: () => checkboxDefaults
});
var TransitionCheckState;
(function (TransitionCheckState) {
TransitionCheckState[TransitionCheckState["Init"] = 0] = "Init";
TransitionCheckState[TransitionCheckState["Checked"] = 1] = "Checked";
TransitionCheckState[TransitionCheckState["Unchecked"] = 2] = "Unchecked";
TransitionCheckState[TransitionCheckState["Indeterminate"] = 3] = "Indeterminate";
})(TransitionCheckState || (TransitionCheckState = {}));
class MatCheckboxChange {
source;
checked;
}
class MatCheckbox {
_elementRef = inject(ElementRef);
_changeDetectorRef = inject(ChangeDetectorRef);
_ngZone = inject(NgZone);
_animationsDisabled = _animationsDisabled();
_options = inject(MAT_CHECKBOX_DEFAULT_OPTIONS, {
optional: true
});
focus() {
this._inputElement.nativeElement.focus();
}
_createChangeEvent(isChecked) {
const event = new MatCheckboxChange();
event.source = this;
event.checked = isChecked;
return event;
}
_getAnimationTargetElement() {
return this._inputElement?.nativeElement;
}
_animationClasses = {
uncheckedToChecked: 'mdc-checkbox--anim-unchecked-checked',
uncheckedToIndeterminate: 'mdc-checkbox--anim-unchecked-indeterminate',
checkedToUnchecked: 'mdc-checkbox--anim-checked-unchecked',
checkedToIndeterminate: 'mdc-checkbox--anim-checked-indeterminate',
indeterminateToChecked: 'mdc-checkbox--anim-indeterminate-checked',
indeterminateToUnchecked: 'mdc-checkbox--anim-indeterminate-unchecked'
};
ariaLabel = '';
ariaLabelledby = null;
ariaDescribedby;
ariaExpanded;
ariaControls;
ariaOwns;
_uniqueId;
id;
get inputId() {
return `${this.id || this._uniqueId}-input`;
}
required = false;
labelPosition = 'after';
name = null;
change = new EventEmitter();
indeterminateChange = new EventEmitter();
value;
disableRipple = false;
_inputElement;
_labelElement;
tabIndex;
color;
disabledInteractive;
_onTouched = () => {};
_currentAnimationClass = '';
_currentCheckState = TransitionCheckState.Init;
_controlValueAccessorChangeFn = () => {};
_validatorChangeFn = () => {};
constructor() {
inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);
const tabIndex = inject(new HostAttributeToken('tabindex'), {
optional: true
});
this._options = this._options || checkboxDefaults;
this.color = this._options.color || checkboxDefaults.color;
this.tabIndex = tabIndex == null ? 0 : parseInt(tabIndex) || 0;
this.id = this._uniqueId = inject(_IdGenerator).getId('mat-mdc-checkbox-');
this.disabledInteractive = this._options?.disabledInteractive ?? false;
}
ngOnChanges(changes) {
if (changes['required']) {
this._validatorChangeFn();
}
}
ngAfterViewInit() {
this._syncIndeterminate(this.indeterminate);
}
get checked() {
return this._checked;
}
set checked(value) {
if (value != this.checked) {
this._checked = value;
this._changeDetectorRef.markForCheck();
}
}
_checked = false;
get disabled() {
return this._disabled;
}
set disabled(value) {
if (value !== this.disabled) {
this._disabled = value;
this._changeDetectorRef.markForCheck();
}
}
_disabled = false;
get indeterminate() {
return this._indeterminate();
}
set indeterminate(value) {
const changed = value != this._indeterminate();
this._indeterminate.set(value);
if (changed) {
if (value) {
this._transitionCheckState(TransitionCheckState.Indeterminate);
} else {
this._transitionCheckState(this.checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);
}
this.indeterminateChange.emit(value);
}
this._syncIndeterminate(value);
}
_indeterminate = signal(false, ...(ngDevMode ? [{
debugName: "_indeterminate"
}] : []));
_isRippleDisabled() {
return this.disableRipple || this.disabled;
}
_onLabelTextChange() {
this._changeDetectorRef.detectChanges();
}
writeValue(value) {
this.checked = !!value;
}
registerOnChange(fn) {
this._controlValueAccessorChangeFn = fn;
}
registerOnTouched(fn) {
this._onTouched = fn;
}
setDisabledState(isDisabled) {
this.disabled = isDisabled;
}
validate(control) {
return this.required && control.value !== true ? {
'required': true
} : null;
}
registerOnValidatorChange(fn) {
this._validatorChangeFn = fn;
}
_transitionCheckState(newState) {
let oldState = this._currentCheckState;
let element = this._getAnimationTargetElement();
if (oldState === newState || !element) {
return;
}
if (this._currentAnimationClass) {
element.classList.remove(this._currentAnimationClass);
}
this._currentAnimationClass = this._getAnimationClassForCheckStateTransition(oldState, newState);
this._currentCheckState = newState;
if (this._currentAnimationClass.length > 0) {
element.classList.add(this._currentAnimationClass);
const animationClass = this._currentAnimationClass;
this._ngZone.runOutsideAngular(() => {
setTimeout(() => {
element.classList.remove(animationClass);
}, 1000);
});
}
}
_emitChangeEvent() {
this._controlValueAccessorChangeFn(this.checked);
this.change.emit(this._createChangeEvent(this.checked));
if (this._inputElement) {
this._inputElement.nativeElement.checked = this.checked;
}
}
toggle() {
this.checked = !this.checked;
this._controlValueAccessorChangeFn(this.checked);
}
_handleInputClick() {
const clickAction = this._options?.clickAction;
if (!this.disabled && clickAction !== 'noop') {
if (this.indeterminate && clickAction !== 'check') {
Promise.resolve().then(() => {
this._indeterminate.set(false);
this.indeterminateChange.emit(false);
});
}
this._checked = !this._checked;
this._transitionCheckState(this._checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);
this._emitChangeEvent();
} else if (this.disabled && this.disabledInteractive || !this.disabled && clickAction === 'noop') {
this._inputElement.nativeElement.checked = this.checked;
this._inputElement.nativeElement.indeterminate = this.indeterminate;
}
}
_onInteractionEvent(event) {
event.stopPropagation();
}
_onBlur() {
Promise.resolve().then(() => {
this._onTouched();
this._changeDetectorRef.markForCheck();
});
}
_getAnimationClassForCheckStateTransition(oldState, newState) {
if (this._animationsDisabled) {
return '';
}
switch (oldState) {
case TransitionCheckState.Init:
if (newState === TransitionCheckState.Checked) {
return this._animationClasses.uncheckedToChecked;
} else if (newState == TransitionCheckState.Indeterminate) {
return this._checked ? this._animationClasses.checkedToIndeterminate : this._animationClasses.uncheckedToIndeterminate;
}
break;
case TransitionCheckState.Unchecked:
return newState === TransitionCheckState.Checked ? this._animationClasses.uncheckedToChecked : this._animationClasses.uncheckedToIndeterminate;
case TransitionCheckState.Checked:
return newState === TransitionCheckState.Unchecked ? this._animationClasses.checkedToUnchecked : this._animationClasses.checkedToIndeterminate;
case TransitionCheckState.Indeterminate:
return newState === TransitionCheckState.Checked ? this._animationClasses.indeterminateToChecked : this._animationClasses.indeterminateToUnchecked;
}
return '';
}
_syncIndeterminate(value) {
const nativeCheckbox = this._inputElement;
if (nativeCheckbox) {
nativeCheckbox.nativeElement.indeterminate = value;
}
}
_onInputClick() {
this._handleInputClick();
}
_onTouchTargetClick() {
this._handleInputClick();
if (!this.disabled) {
this._inputElement.nativeElement.focus();
}
}
_preventBubblingFromLabel(event) {
if (!!event.target && this._labelElement.nativeElement.contains(event.target)) {
event.stopPropagation();
}
}
static ɵfac = i0.ɵɵngDeclareFactory({
minVersion: "12.0.0",
version: "22.0.0-next.5",
ngImport: i0,
type: MatCheckbox,
deps: [],
target: i0.ɵɵFactoryTarget.Component
});
static ɵcmp = i0.ɵɵngDeclareComponent({
minVersion: "16.1.0",
version: "22.0.0-next.5",
type: MatCheckbox,
isStandalone: true,
selector: "mat-checkbox",
inputs: {
ariaLabel: ["aria-label", "ariaLabel"],
ariaLabelledby: ["aria-labelledby", "ariaLabelledby"],
ariaDescribedby: ["aria-describedby", "ariaDescribedby"],
ariaExpanded: ["aria-expanded", "ariaExpanded", booleanAttribute],
ariaControls: ["aria-controls", "ariaControls"],
ariaOwns: ["aria-owns", "ariaOwns"],
id: "id",
required: ["required", "required", booleanAttribute],
labelPosition: "labelPosition",
name: "name",
value: "value",
disableRipple: ["disableRipple", "disableRipple", booleanAttribute],
tabIndex: ["tabIndex", "tabIndex", value => value == null ? undefined : numberAttribute(value)],
color: "color",
disabledInteractive: ["disabledInteractive", "disabledInteractive", booleanAttribute],
checked: ["checked", "checked", booleanAttribute],
disabled: ["disabled", "disabled", booleanAttribute],
indeterminate: ["indeterminate", "indeterminate", booleanAttribute]
},
outputs: {
change: "change",
indeterminateChange: "indeterminateChange"
},
host: {
properties: {
"attr.tabindex": "null",
"attr.aria-label": "null",
"attr.aria-labelledby": "null",
"class._mat-animation-noopable": "_animationsDisabled",
"class.mdc-checkbox--disabled": "disabled",
"id": "id",
"class.mat-mdc-checkbox-disabled": "disabled",
"class.mat-mdc-checkbox-checked": "checked",
"class.mat-mdc-checkbox-disabled-interactive": "disabledInteractive",
"class": "color ? \"mat-\" + color : \"mat-accent\""
},
classAttribute: "mat-mdc-checkbox"
},
providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => MatCheckbox),
multi: true
}, {
provide: NG_VALIDATORS,
useExisting: MatCheckbox,
multi: true
}],
viewQueries: [{
propertyName: "_inputElement",
first: true,
predicate: ["input"],
descendants: true
}, {
propertyName: "_labelElement",
first: true,
predicate: ["label"],
descendants: true
}],
exportAs: ["matCheckbox"],
usesOnChanges: true,
ngImport: i0,
template: "<div mat-internal-form-field [labelPosition]=\"labelPosition\" (click)=\"_preventBubblingFromLabel($event)\">\n <div #checkbox class=\"mdc-checkbox\">\n <!-- Render this element first so the input is on top. -->\n <div\n class=\"mat-mdc-checkbox-touch-target\"\n (click)=\"_onTouchTargetClick()\"\n aria-hidden=\"true\"></div>\n <input #input\n type=\"checkbox\"\n class=\"mdc-checkbox__native-control\"\n [class.mdc-checkbox--selected]=\"checked\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"indeterminate ? 'mixed' : null\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-disabled]=\"disabled && disabledInteractive ? true : null\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled && !disabledInteractive\"\n [id]=\"inputId\"\n [required]=\"required\"\n [tabIndex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\n (blur)=\"_onBlur()\"\n (click)=\"_onInputClick()\"\n (change)=\"_onInteractionEvent($event)\"/>\n <div class=\"mdc-checkbox__ripple\" aria-hidden=\"true\"></div>\n <div class=\"mdc-checkbox__background\" aria-hidden=\"true\">\n <svg class=\"mdc-checkbox__checkmark\"\n focusable=\"false\"\n viewBox=\"0 0 24 24\">\n <path class=\"mdc-checkbox__checkmark-path\"\n fill=\"none\"\n d=\"M1.73,12.91 8.1,19.28 22.79,4.59\"/>\n </svg>\n <div class=\"mdc-checkbox__mixedmark\"></div>\n </div>\n <div class=\"mat-mdc-checkbox-ripple mat-focus-indicator\"\n mat-ripple\n aria-hidden=\"true\"\n [matRippleTrigger]=\"checkbox\"\n [matRippleDisabled]=\"disableRipple || disabled\"\n [matRippleCentered]=\"true\"></div>\n </div>\n <!--\n Avoid putting a click handler on the <label/> to fix duplicate navigation stop on Talk Back\n (#14385). Putting a click handler on the <label/> caused this bug because the browser produced\n an unnecessary accessibility tree node.\n -->\n <label class=\"mdc-label\" #label [for]=\"inputId\">\n <ng-content></ng-content>\n </label>\n</div>\n",
styles: [".mdc-checkbox {\n display: inline-block;\n position: relative;\n flex: 0 0 18px;\n box-sizing: content-box;\n width: 18px;\n height: 18px;\n line-height: 0;\n white-space: nowrap;\n cursor: pointer;\n vertical-align: bottom;\n padding: calc((var(--mat-checkbox-state-layer-size, 40px) - 18px) / 2);\n margin: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);\n}\n.mdc-checkbox:hover > .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));\n background-color: var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox:hover > .mat-mdc-checkbox-ripple > .mat-ripple-element {\n background-color: var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox .mdc-checkbox__native-control:focus + .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));\n background-color: var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox .mdc-checkbox__native-control:focus ~ .mat-mdc-checkbox-ripple .mat-ripple-element {\n background-color: var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox:active > .mdc-checkbox__native-control + .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));\n background-color: var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox:active > .mdc-checkbox__native-control ~ .mat-mdc-checkbox-ripple .mat-ripple-element {\n background-color: var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox:hover > .mdc-checkbox__native-control:checked + .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));\n background-color: var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox:hover > .mdc-checkbox__native-control:checked ~ .mat-mdc-checkbox-ripple .mat-ripple-element {\n background-color: var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox .mdc-checkbox__native-control:focus:checked + .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));\n background-color: var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox .mdc-checkbox__native-control:focus:checked ~ .mat-mdc-checkbox-ripple .mat-ripple-element {\n background-color: var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox:active > .mdc-checkbox__native-control:checked + .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));\n background-color: var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox:active > .mdc-checkbox__native-control:checked ~ .mat-mdc-checkbox-ripple .mat-ripple-element {\n background-color: var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control ~ .mat-mdc-checkbox-ripple .mat-ripple-element,\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control + .mdc-checkbox__ripple {\n background-color: var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox .mdc-checkbox__native-control {\n position: absolute;\n margin: 0;\n padding: 0;\n opacity: 0;\n cursor: inherit;\n z-index: 1;\n width: var(--mat-checkbox-state-layer-size, 40px);\n height: var(--mat-checkbox-state-layer-size, 40px);\n top: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);\n right: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);\n left: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);\n}\n\n.mdc-checkbox--disabled {\n cursor: default;\n pointer-events: none;\n}\n\n.mdc-checkbox__background {\n display: inline-flex;\n position: absolute;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n border: 2px solid currentColor;\n border-radius: 2px;\n background-color: transparent;\n pointer-events: none;\n will-change: background-color, border-color;\n transition: background-color 90ms cubic-bezier(0.4, 0, 0.6, 1), border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);\n -webkit-print-color-adjust: exact;\n color-adjust: exact;\n border-color: var(--mat-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));\n top: calc((var(--mat-checkbox-state-layer-size, 40px) - 18px) / 2);\n left: calc((var(--mat-checkbox-state-layer-size, 40px) - 18px) / 2);\n}\n\n.mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background {\n border-color: var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary));\n background-color: var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary));\n}\n\n.mdc-checkbox--disabled .mdc-checkbox__background {\n border-color: var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n}\n@media (forced-colors: active) {\n .mdc-checkbox--disabled .mdc-checkbox__background {\n border-color: GrayText;\n }\n}\n\n.mdc-checkbox__native-control:disabled:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:disabled:indeterminate ~ .mdc-checkbox__background {\n background-color: var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n border-color: transparent;\n}\n@media (forced-colors: active) {\n .mdc-checkbox__native-control:disabled:checked ~ .mdc-checkbox__background,\n .mdc-checkbox__native-control:disabled:indeterminate ~ .mdc-checkbox__background {\n border-color: GrayText;\n }\n}\n\n.mdc-checkbox:hover > .mdc-checkbox__native-control:not(:checked) ~ .mdc-checkbox__background,\n.mdc-checkbox:hover > .mdc-checkbox__native-control:not(:indeterminate) ~ .mdc-checkbox__background {\n border-color: var(--mat-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));\n background-color: transparent;\n}\n\n.mdc-checkbox:hover > .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,\n.mdc-checkbox:hover > .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {\n border-color: var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary));\n background-color: var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary));\n}\n\n.mdc-checkbox__native-control:focus:focus:not(:checked) ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:focus:focus:not(:indeterminate) ~ .mdc-checkbox__background {\n border-color: var(--mat-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface));\n}\n\n.mdc-checkbox__native-control:focus:focus:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:focus:focus:indeterminate ~ .mdc-checkbox__background {\n border-color: var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary));\n background-color: var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary));\n}\n\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover > .mdc-checkbox__native-control ~ .mdc-checkbox__background,\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus ~ .mdc-checkbox__background,\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background {\n border-color: var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n}\n@media (forced-colors: active) {\n .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover > .mdc-checkbox__native-control ~ .mdc-checkbox__background,\n .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus ~ .mdc-checkbox__background,\n .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background {\n border-color: GrayText;\n }\n}\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {\n background-color: var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n border-color: transparent;\n}\n\n.mdc-checkbox__checkmark {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n opacity: 0;\n transition: opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);\n color: var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary));\n}\n@media (forced-colors: active) {\n .mdc-checkbox__checkmark {\n color: CanvasText;\n }\n}\n\n.mdc-checkbox--disabled .mdc-checkbox__checkmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark {\n color: var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface));\n}\n@media (forced-colors: active) {\n .mdc-checkbox--disabled .mdc-checkbox__checkmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark {\n color: GrayText;\n }\n}\n\n.mdc-checkbox__checkmark-path {\n transition: stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);\n stroke: currentColor;\n stroke-width: 3.12px;\n stroke-dashoffset: 29.7833385;\n stroke-dasharray: 29.7833385;\n}\n\n.mdc-checkbox__mixedmark {\n width: 100%;\n height: 0;\n transform: scaleX(0) rotate(0deg);\n border-width: 1px;\n border-style: solid;\n opacity: 0;\n transition: opacity 90ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms cubic-bezier(0.4, 0, 0.6, 1);\n border-color: var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary));\n}\n@media (forced-colors: active) {\n .mdc-checkbox__mixedmark {\n margin: 0 1px;\n }\n}\n\n.mdc-checkbox--disabled .mdc-checkbox__mixedmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark {\n border-color: var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface));\n}\n@media (forced-colors: active) {\n .mdc-checkbox--disabled .mdc-checkbox__mixedmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark {\n border-color: GrayText;\n }\n}\n\n.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,\n.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,\n.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,\n.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background {\n animation-duration: 180ms;\n animation-timing-function: linear;\n}\n\n.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path {\n animation: mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;\n transition: none;\n}\n\n.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark {\n animation: mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;\n transition: none;\n}\n\n.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path {\n animation: mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;\n transition: none;\n}\n\n.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark {\n animation: mdc-checkbox-checked-indeterminate-checkmark 90ms linear;\n transition: none;\n}\n.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark {\n animation: mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;\n transition: none;\n}\n\n.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark {\n animation: mdc-checkbox-indeterminate-checked-checkmark 500ms linear;\n transition: none;\n}\n.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark {\n animation: mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;\n transition: none;\n}\n\n.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark {\n animation: mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;\n transition: none;\n}\n\n.mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {\n transition: border-color 90ms cubic-bezier(0, 0, 0.2, 1), background-color 90ms cubic-bezier(0, 0, 0.2, 1);\n}\n.mdc-checkbox__native-control:checked ~ .mdc-checkbox__background > .mdc-checkbox__checkmark > .mdc-checkbox__checkmark-path,\n.mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background > .mdc-checkbox__checkmark > .mdc-checkbox__checkmark-path {\n stroke-dashoffset: 0;\n}\n\n.mdc-checkbox__native-control:checked ~ .mdc-checkbox__background > .mdc-checkbox__checkmark {\n transition: opacity 180ms cubic-bezier(0, 0, 0.2, 1), transform 180ms cubic-bezier(0, 0, 0.2, 1);\n opacity: 1;\n}\n.mdc-checkbox__native-control:checked ~ .mdc-checkbox__background > .mdc-checkbox__mixedmark {\n transform: scaleX(1) rotate(-45deg);\n}\n\n.mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background > .mdc-checkbox__checkmark {\n transform: rotate(45deg);\n opacity: 0;\n transition: opacity 90ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms cubic-bezier(0.4, 0, 0.6, 1);\n}\n.mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background > .mdc-checkbox__mixedmark {\n transform: scaleX(1) rotate(0deg);\n opacity: 1;\n}\n\n@keyframes mdc-checkbox-unchecked-checked-checkmark-path {\n 0%, 50% {\n stroke-dashoffset: 29.7833385;\n }\n 50% {\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n 100% {\n stroke-dashoffset: 0;\n }\n}\n@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark {\n 0%, 68.2% {\n transform: scaleX(0);\n }\n 68.2% {\n animation-timing-function: cubic-bezier(0, 0, 0, 1);\n }\n 100% {\n transform: scaleX(1);\n }\n}\n@keyframes mdc-checkbox-checked-unchecked-checkmark-path {\n from {\n animation-timing-function: cubic-bezier(0.4, 0, 1, 1);\n opacity: 1;\n stroke-dashoffset: 0;\n }\n to {\n opacity: 0;\n stroke-dashoffset: -29.7833385;\n }\n}\n@keyframes mdc-checkbox-checked-indeterminate-checkmark {\n from {\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transform: rotate(0deg);\n opacity: 1;\n }\n to {\n transform: rotate(45deg);\n opacity: 0;\n }\n}\n@keyframes mdc-checkbox-indeterminate-checked-checkmark {\n from {\n animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n transform: rotate(45deg);\n opacity: 0;\n }\n to {\n transform: rotate(360deg);\n opacity: 1;\n }\n}\n@keyframes mdc-checkbox-checked-indeterminate-mixedmark {\n from {\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transform: rotate(-45deg);\n opacity: 0;\n }\n to {\n transform: rotate(0deg);\n opacity: 1;\n }\n}\n@keyframes mdc-checkbox-indeterminate-checked-mixedmark {\n from {\n animation-timing-function: cubic-bezier(0.14, 0, 0, 1);\n transform: rotate(0deg);\n opacity: 1;\n }\n to {\n transform: rotate(315deg);\n opacity: 0;\n }\n}\n@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark {\n 0% {\n animation-timing-function: linear;\n transform: scaleX(1);\n opacity: 1;\n }\n 32.8%, 100% {\n transform: scaleX(0);\n opacity: 0;\n }\n}\n.mat-mdc-checkbox {\n display: inline-block;\n position: relative;\n -webkit-tap-highlight-color: transparent;\n}\n.mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mat-mdc-checkbox-touch-target,\n.mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__native-control,\n.mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__ripple,\n.mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mat-mdc-checkbox-ripple::before,\n.mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__background,\n.mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__background > .mdc-checkbox__checkmark,\n.mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__background > .mdc-checkbox__checkmark > .mdc-checkbox__checkmark-path,\n.mat-mdc-checkbox._mat-animation-noopable > .mat-internal-form-field > .mdc-checkbox > .mdc-checkbox__background > .mdc-checkbox__mixedmark {\n transition: none !important;\n animation: none !important;\n}\n.mat-mdc-checkbox label {\n cursor: pointer;\n}\n.mat-mdc-checkbox .mat-internal-form-field {\n color: var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));\n font-family: var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));\n line-height: var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));\n font-size: var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));\n letter-spacing: var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));\n font-weight: var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight));\n}\n.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive {\n pointer-events: auto;\n}\n.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input {\n cursor: default;\n}\n.mat-mdc-checkbox.mat-mdc-checkbox-disabled label {\n cursor: default;\n color: var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n}\n@media (forced-colors: active) {\n .mat-mdc-checkbox.mat-mdc-checkbox-disabled label {\n color: GrayText;\n }\n}\n.mat-mdc-checkbox label:empty {\n display: none;\n}\n.mat-mdc-checkbox .mdc-checkbox__ripple {\n opacity: 0;\n}\n\n.mat-mdc-checkbox .mat-mdc-checkbox-ripple,\n.mdc-checkbox__ripple {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n}\n.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),\n.mdc-checkbox__ripple:not(:empty) {\n transform: translateZ(0);\n}\n\n.mat-mdc-checkbox-ripple .mat-ripple-element {\n opacity: 0.1;\n}\n\n.mat-mdc-checkbox-touch-target {\n position: absolute;\n top: 50%;\n left: 50%;\n height: var(--mat-checkbox-touch-target-size, 48px);\n width: var(--mat-checkbox-touch-target-size, 48px);\n transform: translate(-50%, -50%);\n display: var(--mat-checkbox-touch-target-display, block);\n}\n\n.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before {\n border-radius: 50%;\n}\n\n.mdc-checkbox__native-control:focus-visible ~ .mat-focus-indicator::before {\n content: \"\";\n}\n"],
dependencies: [{
kind: "directive",
type: MatRipple,
selector: "[mat-ripple], [matRipple]",
inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"],
exportAs: ["matRipple"]
}, {
kind: "component",
type: _MatInternalFormField,
selector: "div[mat-internal-form-field]",
inputs: ["labelPosition"]
}],
changeDetection: i0.ChangeDetectionStrategy.OnPush,
encapsulation: i0.ViewEncapsulation.None
});
}
i0.ɵɵngDeclareClassMetadata({
minVersion: "12.0.0",
version: "22.0.0-next.5",
ngImport: i0,
type: MatCheckbox,
decorators: [{
type: Component,
args: [{
selector: 'mat-checkbox',
host: {
'class': 'mat-mdc-checkbox',
'[attr.tabindex]': 'null',
'[attr.aria-label]': 'null',
'[attr.aria-labelledby]': 'null',
'[class._mat-animation-noopable]': '_animationsDisabled',
'[class.mdc-checkbox--disabled]': 'disabled',
'[id]': 'id',
'[class.mat-mdc-checkbox-disabled]': 'disabled',
'[class.mat-mdc-checkbox-checked]': 'checked',
'[class.mat-mdc-checkbox-disabled-interactive]': 'disabledInteractive',
'[class]': 'color ? "mat-" + color : "mat-accent"'
},
providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => MatCheckbox),
multi: true
}, {
provide: NG_VALIDATORS,
useExisting: MatCheckbox,
multi: true
}],
exportAs: 'matCheckbox',
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [MatRipple, _MatInternalFormField],
template: "<div mat-internal-form-field [labelPosition]=\"labelPosition\" (click)=\"_preventBubblingFromLabel($event)\">\n <div #checkbox class=\"mdc-checkbox\">\n <!-- Render this element first so the input is on top. -->\n <div\n class=\"mat-mdc-checkbox-touch-target\"\n (click)=\"_onTouchTargetClick()\"\n aria-hidden=\"true\"></div>\n <input #input\n type=\"checkbox\"\n class=\"mdc-checkbox__native-control\"\n [class.mdc-checkbox--selected]=\"checked\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"indeterminate ? 'mixed' : null\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-disabled]=\"disabled && disabledInteractive ? true : null\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled && !disabledInteractive\"\n [id]=\"inputId\"\n [required]=\"required\"\n [tabIndex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\n (blur)=\"_onBlur()\"\n (click)=\"_onInputClick()\"\n (change)=\"_onInteractionEvent($event)\"/>\n <div class=\"mdc-checkbox__ripple\" aria-hidden=\"true\"></div>\n <div class=\"mdc-checkbox__background\" aria-hidden=\"true\">\n <svg class=\"mdc-checkbox__checkmark\"\n focusable=\"false\"\n viewBox=\"0 0 24 24\">\n <path class=\"mdc-checkbox__checkmark-path\"\n fill=\"none\"\n d=\"M1.73,12.91 8.1,19.28 22.79,4.59\"/>\n </svg>\n <div class=\"mdc-checkbox__mixedmark\"></div>\n </div>\n <div class=\"mat-mdc-checkbox-ripple mat-focus-indicator\"\n mat-ripple\n aria-hidden=\"true\"\n [matRippleTrigger]=\"checkbox\"\n [matRippleDisabled]=\"disableRipple || disabled\"\n [matRippleCentered]=\"true\"></div>\n </div>\n <!--\n Avoid putting a click handler on the <label/> to fix duplicate navigation stop on Talk Back\n (#14385). Putting a click handler on the <label/> caused this bug because the browser produced\n an unnecessary accessibility tree node.\n -->\n <label class=\"mdc-label\" #label [for]=\"inputId\">\n <ng-content></ng-content>\n </label>\n</div>\n",
styles: [".mdc-checkbox {\n display: inline-block;\n position: relative;\n flex: 0 0 18px;\n box-sizing: content-box;\n width: 18px;\n height: 18px;\n line-height: 0;\n white-space: nowrap;\n cursor: pointer;\n vertical-align: bottom;\n padding: calc((var(--mat-checkbox-state-layer-size, 40px) - 18px) / 2);\n margin: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);\n}\n.mdc-checkbox:hover > .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));\n background-color: var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox:hover > .mat-mdc-checkbox-ripple > .mat-ripple-element {\n background-color: var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox .mdc-checkbox__native-control:focus + .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));\n background-color: var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox .mdc-checkbox__native-control:focus ~ .mat-mdc-checkbox-ripple .mat-ripple-element {\n background-color: var(--mat-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox:active > .mdc-checkbox__native-control + .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));\n background-color: var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox:active > .mdc-checkbox__native-control ~ .mat-mdc-checkbox-ripple .mat-ripple-element {\n background-color: var(--mat-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox:hover > .mdc-checkbox__native-control:checked + .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));\n background-color: var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox:hover > .mdc-checkbox__native-control:checked ~ .mat-mdc-checkbox-ripple .mat-ripple-element {\n background-color: var(--mat-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox .mdc-checkbox__native-control:focus:checked + .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));\n background-color: var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox .mdc-checkbox__native-control:focus:checked ~ .mat-mdc-checkbox-ripple .mat-ripple-element {\n background-color: var(--mat-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary));\n}\n.mdc-checkbox:active > .mdc-checkbox__native-control:checked + .mdc-checkbox__ripple {\n opacity: var(--mat-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));\n background-color: var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox:active > .mdc-checkbox__native-control:checked ~ .mat-mdc-checkbox-ripple .mat-ripple-element {\n background-color: var(--mat-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control ~ .mat-mdc-checkbox-ripple .mat-ripple-element,\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control + .mdc-checkbox__ripple {\n background-color: var(--mat-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface));\n}\n.mdc-checkbox .mdc-checkbox__native-control {\n position: absolute;\n margin: 0;\n padding: 0;\n opacity: 0;\n cursor: inherit;\n z-index: 1;\n width: var(--mat-checkbox-state-layer-size, 40px);\n height: var(--mat-checkbox-state-layer-size, 40px);\n top: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);\n right: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);\n left: calc((var(--mat-checkbox-state-layer-size, 40px) - var(--mat-checkbox-state-layer-size, 40px)) / 2);\n}\n\n.mdc-checkbox--disabled {\n cursor: default;\n pointer-events: none;\n}\n\n.mdc-checkbox__background {\n display: inline-flex;\n position: absolute;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n border: 2px solid currentColor;\n border-radius: 2px;\n background-color: transparent;\n pointer-events: none;\n will-change: background-color, border-color;\n transition: background-color 90ms cubic-bezier(0.4, 0, 0.6, 1), border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);\n -webkit-print-color-adjust: exact;\n color-adjust: exact;\n border-color: var(--mat-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));\n top: calc((var(--mat-checkbox-state-layer-size, 40px) - 18px) / 2);\n left: calc((var(--mat-checkbox-state-layer-size, 40px) - 18px) / 2);\n}\n\n.mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background {\n border-color: var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary));\n background-color: var(--mat-checkbox-selected-icon-color, var(--mat-sys-primary));\n}\n\n.mdc-checkbox--disabled .mdc-checkbox__background {\n border-color: var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n}\n@media (forced-colors: active) {\n .mdc-checkbox--disabled .mdc-checkbox__background {\n border-color: GrayText;\n }\n}\n\n.mdc-checkbox__native-control:disabled:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:disabled:indeterminate ~ .mdc-checkbox__background {\n background-color: var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n border-color: transparent;\n}\n@media (forced-colors: active) {\n .mdc-checkbox__native-control:disabled:checked ~ .mdc-checkbox__background,\n .mdc-checkbox__native-control:disabled:indeterminate ~ .mdc-checkbox__background {\n border-color: GrayText;\n }\n}\n\n.mdc-checkbox:hover > .mdc-checkbox__native-control:not(:checked) ~ .mdc-checkbox__background,\n.mdc-checkbox:hover > .mdc-checkbox__native-control:not(:indeterminate) ~ .mdc-checkbox__background {\n border-color: var(--mat-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));\n background-color: transparent;\n}\n\n.mdc-checkbox:hover > .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,\n.mdc-checkbox:hover > .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {\n border-color: var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary));\n background-color: var(--mat-checkbox-selected-hover-icon-color, var(--mat-sys-primary));\n}\n\n.mdc-checkbox__native-control:focus:focus:not(:checked) ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:focus:focus:not(:indeterminate) ~ .mdc-checkbox__background {\n border-color: var(--mat-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface));\n}\n\n.mdc-checkbox__native-control:focus:focus:checked ~ .mdc-checkbox__background,\n.mdc-checkbox__native-control:focus:focus:indeterminate ~ .mdc-checkbox__background {\n border-color: var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary));\n background-color: var(--mat-checkbox-selected-focus-icon-color, var(--mat-sys-primary));\n}\n\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover > .mdc-checkbox__native-control ~ .mdc-checkbox__background,\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus ~ .mdc-checkbox__background,\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background {\n border-color: var(--mat-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n}\n@media (forced-colors: active) {\n .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover > .mdc-checkbox__native-control ~ .mdc-checkbox__background,\n .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus ~ .mdc-checkbox__background,\n .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background {\n border-color: GrayText;\n }\n}\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked ~ .mdc-checkbox__background,\n.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate ~ .mdc-checkbox__background {\n background-color: var(--mat-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n border-color: transparent;\n}\n\n.mdc-checkbox__checkmark {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n opacity: 0;\n transition: opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);\n color: var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary));\n}\n@media (forced-colors: active) {\n .mdc-checkbox__checkmark {\n color: CanvasText;\n }\n}\n\n.mdc-checkbox--disabled .mdc-checkbox__checkmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark {\n color: var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface));\n}\n@media (forced-colors: active) {\n .mdc-checkbox--disabled .mdc-checkbox__checkmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark {\n color: GrayText;\n }\n}\n\n.mdc-checkbox__checkmark-path {\n transition: stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);\n stroke: currentColor;\n stroke-width: 3.12px;\n stroke-dashoffset: 29.7833385;\n stroke-dasharray: 29.7833385;\n}\n\n.mdc-checkbox__mixedmark {\n width: 100%;\n height: 0;\n transform: scaleX(0) rotate(0deg);\n border-width: 1px;\n border-style: solid;\n opacity: 0;\n transition: opacity 90ms cubic-bezier(0.4, 0, 0.6, 1), transform 90ms cubic-bezier(0.4, 0, 0.6, 1);\n border-color: var(--mat-checkbox-selected-checkmark-color, var(--mat-sys-on-primary));\n}\n@media (forced-colors: active) {\n .mdc-checkbox__mixedmark {\n margin: 0 1px;\n }\n}\n\n.mdc-checkbox--disabled .mdc-checkbox__mixedmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark {\n border-color: var(--mat-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface));\n}\n@media (forced-colors: active) {\n .mdc-checkbox--disabled .mdc-checkbox__mixedmark, .mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark {\n border-color: GrayText;\n }\n}\n\n.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,\n.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,\n.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,\n.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background {\n animation-duration: 180ms;\n animation-timing-function: linear;\n}\n\n.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path {\n animation: mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;\n transition: none;\n