UNPKG

@angular/material

Version:
1 lines 36.2 kB
{"version":3,"file":"checkbox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/checkbox/checkbox-config.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/checkbox/checkbox.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/checkbox/checkbox.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/checkbox/checkbox-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {InjectionToken} from '@angular/core';\nimport {ThemePalette} from '../core';\n\n/** Default `mat-checkbox` options that can be overridden. */\nexport interface MatCheckboxDefaultOptions {\n /**\n * Default theme color of the checkbox. This API is supported in M2 themes\n * only, it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/checkbox/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n color?: ThemePalette;\n\n /** Default checkbox click action for checkboxes. */\n clickAction?: MatCheckboxClickAction;\n\n /** Whether disabled checkboxes should be interactive. */\n disabledInteractive?: boolean;\n}\n\nexport const checkboxDefaults: MatCheckboxDefaultOptions = {\n color: 'accent',\n clickAction: 'check-indeterminate',\n disabledInteractive: false,\n};\n\n/** Injection token to be used to override the default options for `mat-checkbox`. */\nexport const MAT_CHECKBOX_DEFAULT_OPTIONS = new InjectionToken<MatCheckboxDefaultOptions>(\n 'mat-checkbox-default-options',\n {\n providedIn: 'root',\n factory: () => checkboxDefaults,\n },\n);\n\n/**\n * Checkbox click action when user click on input element.\n * noop: Do not toggle checked or indeterminate.\n * check: Only toggle checked status, ignore indeterminate.\n * check-indeterminate: Toggle checked status, set indeterminate to false. Default behavior.\n * undefined: Same as `check-indeterminate`.\n */\nexport type MatCheckboxClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {_IdGenerator, FocusableOption} from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n forwardRef,\n numberAttribute,\n inject,\n HostAttributeToken,\n signal,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport {\n MatRipple,\n _MatInternalFormField,\n _StructuralStylesLoader,\n _animationsDisabled,\n} from '../core';\nimport {\n checkboxDefaults,\n MAT_CHECKBOX_DEFAULT_OPTIONS,\n MatCheckboxDefaultOptions,\n} from './checkbox-config';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\n\n/**\n * Represents the different states that require custom transitions between them.\n * @docs-private\n */\nexport enum TransitionCheckState {\n /** The initial state of the component before any user interaction. */\n Init,\n /** The state representing the component when it's becoming checked. */\n Checked,\n /** The state representing the component when it's becoming unchecked. */\n Unchecked,\n /** The state representing the component when it's becoming indeterminate. */\n Indeterminate,\n}\n\n/** Change event object emitted by checkbox. */\nexport class MatCheckboxChange {\n /** The source checkbox of the event. */\n source!: MatCheckbox;\n /** The new `checked` value of the checkbox. */\n checked!: boolean;\n}\n\n@Component({\n selector: 'mat-checkbox',\n templateUrl: 'checkbox.html',\n styleUrl: 'checkbox.css',\n host: {\n 'class': 'mat-mdc-checkbox',\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[class._mat-animation-noopable]': '_animationsDisabled',\n '[class.mdc-checkbox--disabled]': 'disabled',\n '[id]': 'id',\n // Add classes that users can use to more easily target disabled or checked checkboxes.\n '[class.mat-mdc-checkbox-disabled]': 'disabled',\n '[class.mat-mdc-checkbox-checked]': 'checked',\n '[class.mat-mdc-checkbox-disabled-interactive]': 'disabledInteractive',\n '[class]': 'color ? \"mat-\" + color : \"mat-accent\"',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatCheckbox),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: MatCheckbox,\n multi: true,\n },\n ],\n exportAs: 'matCheckbox',\n encapsulation: ViewEncapsulation.None,\n imports: [MatRipple, _MatInternalFormField],\n})\nexport class MatCheckbox\n implements AfterViewInit, OnChanges, ControlValueAccessor, Validator, FocusableOption\n{\n _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _ngZone = inject(NgZone);\n protected _animationsDisabled = _animationsDisabled();\n private _options = inject<MatCheckboxDefaultOptions>(MAT_CHECKBOX_DEFAULT_OPTIONS, {\n optional: true,\n });\n\n /** Focuses the checkbox. */\n focus() {\n this._inputElement.nativeElement.focus();\n }\n\n /** Creates the change event that will be emitted by the checkbox. */\n protected _createChangeEvent(isChecked: boolean) {\n const event = new MatCheckboxChange();\n event.source = this;\n event.checked = isChecked;\n return event;\n }\n\n /** Gets the element on which to add the animation CSS classes. */\n protected _getAnimationTargetElement() {\n return this._inputElement?.nativeElement;\n }\n\n /** CSS classes to add when transitioning between the different checkbox states. */\n protected _animationClasses = {\n uncheckedToChecked: 'mdc-checkbox--anim-unchecked-checked',\n uncheckedToIndeterminate: 'mdc-checkbox--anim-unchecked-indeterminate',\n checkedToUnchecked: 'mdc-checkbox--anim-checked-unchecked',\n checkedToIndeterminate: 'mdc-checkbox--anim-checked-indeterminate',\n indeterminateToChecked: 'mdc-checkbox--anim-indeterminate-checked',\n indeterminateToUnchecked: 'mdc-checkbox--anim-indeterminate-unchecked',\n };\n\n /**\n * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n * take precedence so this may be omitted.\n */\n @Input('aria-label') ariaLabel: string = '';\n\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\n @Input('aria-describedby') ariaDescribedby!: string;\n\n /**\n * Users can specify the `aria-expanded` attribute which will be forwarded to the input element\n */\n @Input({alias: 'aria-expanded', transform: booleanAttribute}) ariaExpanded!: boolean;\n\n /**\n * Users can specify the `aria-controls` attribute which will be forwarded to the input element\n */\n @Input('aria-controls') ariaControls!: string;\n\n /** Users can specify the `aria-owns` attribute which will be forwarded to the input element */\n @Input('aria-owns') ariaOwns!: string;\n\n private _uniqueId: string;\n\n /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */\n @Input() id: string;\n\n /** Returns the unique id for the visual hidden input. */\n get inputId(): string {\n return `${this.id || this._uniqueId}-input`;\n }\n\n /** Whether the checkbox is required. */\n @Input({transform: booleanAttribute}) required: boolean = false;\n\n /** Whether the label should appear after or before the checkbox. Defaults to 'after' */\n @Input() labelPosition: 'before' | 'after' = 'after';\n\n /** Name value will be applied to the input element if present */\n @Input() name: string | null = null;\n\n /** Event emitted when the checkbox's `checked` value changes. */\n @Output() readonly change = new EventEmitter<MatCheckboxChange>();\n\n /** Event emitted when the checkbox's `indeterminate` value changes. */\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** The value attribute of the native input element */\n @Input() value!: string;\n\n /** Whether the checkbox has a ripple. */\n @Input({transform: booleanAttribute}) disableRipple: boolean = false;\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input') _inputElement!: ElementRef<HTMLInputElement>;\n\n /** Tabindex for the checkbox. */\n @Input({transform: (value: unknown) => (value == null ? undefined : numberAttribute(value))})\n tabIndex: number;\n\n // TODO(crisbeto): this should be a ThemePalette, but some internal apps were abusing\n // the lack of type checking previously and assigning random strings.\n /**\n * Theme color of the checkbox. This API is supported in M2 themes only, it\n * has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/checkbox/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n @Input() color: string | undefined;\n\n /** Whether the checkbox should remain interactive when it is disabled. */\n @Input({transform: booleanAttribute})\n disabledInteractive: boolean;\n\n /**\n * Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor.\n * @docs-private\n */\n _onTouched: () => any = () => {};\n\n private _currentAnimationClass: string = '';\n private _currentCheckState: TransitionCheckState = TransitionCheckState.Init;\n private _controlValueAccessorChangeFn: (value: any) => void = () => {};\n private _validatorChangeFn = () => {};\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\n this._options = this._options || checkboxDefaults;\n this.color = this._options.color || checkboxDefaults.color;\n this.tabIndex = tabIndex == null ? 0 : parseInt(tabIndex) || 0;\n this.id = this._uniqueId = inject(_IdGenerator).getId('mat-mdc-checkbox-');\n this.disabledInteractive = this._options?.disabledInteractive ?? false;\n }\n\n ngOnChanges(changes: SimpleChanges<this>) {\n if (changes['required']) {\n this._validatorChangeFn();\n }\n }\n\n ngAfterViewInit() {\n this._syncIndeterminate(this.indeterminate);\n }\n\n /** Whether the checkbox is checked. */\n @Input({transform: booleanAttribute})\n get checked(): boolean {\n return this._checked;\n }\n set checked(value: boolean) {\n if (value != this.checked) {\n this._checked = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n private _checked: boolean = false;\n\n /** Whether the checkbox is disabled. */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n this._changeDetectorRef.markForCheck();\n }\n }\n private _disabled: boolean = false;\n\n /**\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode and can be used to\n * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\n * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately\n * set to false.\n */\n @Input({transform: booleanAttribute})\n get indeterminate(): boolean {\n return this._indeterminate();\n }\n set indeterminate(value: boolean) {\n const changed = value != this._indeterminate();\n this._indeterminate.set(value);\n\n if (changed) {\n if (value) {\n this._transitionCheckState(TransitionCheckState.Indeterminate);\n } else {\n this._transitionCheckState(\n this.checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked,\n );\n }\n this.indeterminateChange.emit(value);\n }\n\n this._syncIndeterminate(value);\n }\n private _indeterminate = signal(false);\n\n _isRippleDisabled() {\n return this.disableRipple || this.disabled;\n }\n\n /** Method being called whenever the label text changes. */\n _onLabelTextChange() {\n // Since the event of the `cdkObserveContent` directive runs outside of the zone, the checkbox\n // component will be only marked for check, but no actual change detection runs automatically.\n // Instead of going back into the zone in order to trigger a change detection which causes\n // *all* components to be checked (if explicitly marked or not using OnPush), we only trigger\n // an explicit change detection for the checkbox view and its children.\n this._changeDetectorRef.detectChanges();\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this._controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this._onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n // Implemented as a part of Validator.\n validate(control: AbstractControl<boolean>): ValidationErrors | null {\n return this.required && control.value !== true ? {'required': true} : null;\n }\n\n // Implemented as a part of Validator.\n registerOnValidatorChange(fn: () => void): void {\n this._validatorChangeFn = fn;\n }\n\n private _transitionCheckState(newState: TransitionCheckState) {\n let oldState = this._currentCheckState;\n let element = this._getAnimationTargetElement();\n\n if (oldState === newState || !element) {\n return;\n }\n if (this._currentAnimationClass) {\n element.classList.remove(this._currentAnimationClass);\n }\n\n this._currentAnimationClass = this._getAnimationClassForCheckStateTransition(\n oldState,\n newState,\n );\n this._currentCheckState = newState;\n\n if (this._currentAnimationClass.length > 0) {\n element.classList.add(this._currentAnimationClass);\n\n // Remove the animation class to avoid animation when the checkbox is moved between containers\n const animationClass = this._currentAnimationClass;\n\n this._ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n element!.classList.remove(animationClass);\n }, 1000);\n });\n }\n }\n\n private _emitChangeEvent() {\n this._controlValueAccessorChangeFn(this.checked);\n this.change.emit(this._createChangeEvent(this.checked));\n\n // Assigning the value again here is redundant, but we have to do it in case it was\n // changed inside the `change` listener which will cause the input to be out of sync.\n if (this._inputElement) {\n this._inputElement.nativeElement.checked = this.checked;\n }\n }\n\n /** Toggles the `checked` state of the checkbox. */\n toggle(): void {\n this.checked = !this.checked;\n this._controlValueAccessorChangeFn(this.checked);\n }\n\n protected _handleInputClick() {\n const clickAction = this._options?.clickAction;\n\n // If resetIndeterminate is false, and the current state is indeterminate, do nothing on click\n if (!this.disabled && clickAction !== 'noop') {\n // When user manually click on the checkbox, `indeterminate` is set to false.\n if (this.indeterminate && clickAction !== 'check') {\n Promise.resolve().then(() => {\n this._indeterminate.set(false);\n this.indeterminateChange.emit(false);\n });\n }\n\n this._checked = !this._checked;\n this._transitionCheckState(\n this._checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked,\n );\n\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this._emitChangeEvent();\n } else if (\n (this.disabled && this.disabledInteractive) ||\n (!this.disabled && clickAction === 'noop')\n ) {\n // Reset native input when clicked with noop. The native checkbox becomes checked after\n // click, reset it to be align with `checked` value of `mat-checkbox`.\n this._inputElement.nativeElement.checked = this.checked;\n this._inputElement.nativeElement.indeterminate = this.indeterminate;\n }\n }\n\n _onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n _onBlur() {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state change\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve().then(() => {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private _getAnimationClassForCheckStateTransition(\n oldState: TransitionCheckState,\n newState: TransitionCheckState,\n ): string {\n // Don't transition if animations are disabled.\n if (this._animationsDisabled) {\n return '';\n }\n\n switch (oldState) {\n case TransitionCheckState.Init:\n // Handle edge case where user interacts with checkbox that does not have [(ngModel)] or\n // [checked] bound to it.\n if (newState === TransitionCheckState.Checked) {\n return this._animationClasses.uncheckedToChecked;\n } else if (newState == TransitionCheckState.Indeterminate) {\n return this._checked\n ? this._animationClasses.checkedToIndeterminate\n : this._animationClasses.uncheckedToIndeterminate;\n }\n break;\n case TransitionCheckState.Unchecked:\n return newState === TransitionCheckState.Checked\n ? this._animationClasses.uncheckedToChecked\n : this._animationClasses.uncheckedToIndeterminate;\n case TransitionCheckState.Checked:\n return newState === TransitionCheckState.Unchecked\n ? this._animationClasses.checkedToUnchecked\n : this._animationClasses.checkedToIndeterminate;\n case TransitionCheckState.Indeterminate:\n return newState === TransitionCheckState.Checked\n ? this._animationClasses.indeterminateToChecked\n : this._animationClasses.indeterminateToUnchecked;\n }\n\n return '';\n }\n\n /**\n * Syncs the indeterminate value with the checkbox DOM node.\n *\n * We sync `indeterminate` directly on the DOM node, because in Ivy the check for whether a\n * property is supported on an element boils down to `if (propName in element)`. Domino's\n * HTMLInputElement doesn't have an `indeterminate` property so Ivy will warn during\n * server-side rendering.\n */\n private _syncIndeterminate(value: boolean) {\n const nativeCheckbox = this._inputElement;\n\n if (nativeCheckbox) {\n nativeCheckbox.nativeElement.indeterminate = value;\n }\n }\n\n _onInputClick() {\n this._handleInputClick();\n }\n\n /**\n * Prevent click events that come from the `<label/>` element from bubbling. This prevents the\n * click handler on the host from triggering twice when clicking on the `<label/>` element. After\n * the click event on the `<label/>` propagates, the browsers dispatches click on the associated\n * `<input/>`. By preventing clicks on the label by bubbling, we ensure only one click event\n * bubbles when the label is clicked.\n */\n _preventBubblingFromLabel(event: MouseEvent) {\n if (event.target && this._inputElement && event.target !== this._inputElement.nativeElement) {\n event.stopPropagation();\n }\n }\n}\n","<label\n mat-internal-form-field\n [labelPosition]=\"labelPosition\"\n [for]=\"inputId\"\n (click)=\"_preventBubblingFromLabel($event)\">\n <span #checkbox class=\"mdc-checkbox\">\n <!-- Render this element first so the input is on top. -->\n <span class=\"mat-mdc-checkbox-touch-target\" aria-hidden=\"true\"></span>\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 <span class=\"mdc-checkbox__ripple\" aria-hidden=\"true\"></span>\n <span 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 <span class=\"mdc-checkbox__mixedmark\"></span>\n </span>\n <span 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\"></span>\n </span>\n\n <span #label class=\"mat-internal-form-field-label mdc-label\">\n <ng-content></ng-content>\n </span>\n</label>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {NgModule} from '@angular/core';\nimport {MatCheckbox} from './checkbox';\n\n@NgModule({\n imports: [MatCheckbox],\n exports: [MatCheckbox, BidiModule],\n})\nexport class MatCheckboxModule {}\n"],"names":[],"mappings":"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"}