UNPKG

@angular/material

Version:
1 lines 24.2 kB
{"version":3,"file":"slide-toggle.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/slide-toggle/slide-toggle-config.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/slide-toggle/slide-toggle.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/slide-toggle/slide-toggle.html","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/slide-toggle/slide-toggle-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-slide-toggle` options that can be overridden. */\nexport interface MatSlideToggleDefaultOptions {\n /** Whether toggle action triggers value changes in slide toggle. */\n disableToggleValue?: boolean;\n\n /**\n * Default theme color of the slide toggle. This API is supported in M2 themes only,\n * it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/slide-toggle/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 /** Whether to hide the icon inside the slide toggle. */\n hideIcon?: boolean;\n\n /** Whether disabled slide toggles should remain interactive. */\n disabledInteractive?: boolean;\n}\n\n/** Injection token to be used to override the default options for `mat-slide-toggle`. */\nexport const MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS = new InjectionToken<MatSlideToggleDefaultOptions>(\n 'mat-slide-toggle-default-options',\n {\n providedIn: 'root',\n factory: () => ({disableToggleValue: false, hideIcon: false, disabledInteractive: false}),\n },\n);\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 {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n numberAttribute,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n inject,\n HostAttributeToken,\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 {_IdGenerator, FocusMonitor} from '@angular/cdk/a11y';\nimport {\n MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS,\n MatSlideToggleDefaultOptions,\n} from './slide-toggle-config';\nimport {\n _animationsDisabled,\n _MatInternalFormField,\n _StructuralStylesLoader,\n MatRipple,\n} from '../core';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\n\n/** Change event object emitted by a slide toggle. */\nexport class MatSlideToggleChange {\n constructor(\n /** The source slide toggle of the event. */\n public source: MatSlideToggle,\n /** The new `checked` value of the slide toggle. */\n public checked: boolean,\n ) {}\n}\n\n@Component({\n selector: 'mat-slide-toggle',\n templateUrl: 'slide-toggle.html',\n styleUrl: 'slide-toggle.css',\n host: {\n 'class': 'mat-mdc-slide-toggle',\n '[id]': 'id',\n // Needs to be removed since it causes some a11y issues (see #21266).\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.name]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[class.mat-mdc-slide-toggle-focused]': '_focused',\n '[class.mat-mdc-slide-toggle-checked]': 'checked',\n '[class.mat-slide-toggle-full-width]': 'fullWidth',\n '[class._mat-animation-noopable]': '_noopAnimations',\n '[class]': 'color ? \"mat-\" + color : \"\"',\n },\n exportAs: 'matSlideToggle',\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatSlideToggle),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: MatSlideToggle,\n multi: true,\n },\n ],\n imports: [MatRipple, _MatInternalFormField],\n})\nexport class MatSlideToggle\n implements OnDestroy, AfterContentInit, OnChanges, ControlValueAccessor, Validator\n{\n private _elementRef = inject(ElementRef);\n protected _focusMonitor = inject(FocusMonitor);\n protected _changeDetectorRef = inject(ChangeDetectorRef);\n defaults = inject<MatSlideToggleDefaultOptions>(MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS);\n\n private _onChange = (_: any) => {};\n private _onTouched = () => {};\n private _validatorOnChange = () => {};\n\n private _uniqueId: string;\n private _checked: boolean = false;\n\n private _createChangeEvent(isChecked: boolean) {\n return new MatSlideToggleChange(this, isChecked);\n }\n\n /** Unique ID for the label element. */\n _labelId: string;\n\n /** Returns the unique id for the visual hidden button. */\n get buttonId(): string {\n return `${this.id || this._uniqueId}-button`;\n }\n\n /** Reference to the MDC switch element. */\n @ViewChild('switch') _switchElement!: ElementRef<HTMLElement>;\n\n /** Focuses the slide-toggle. */\n focus(): void {\n this._switchElement.nativeElement.focus();\n }\n /** Whether noop animations are enabled. */\n _noopAnimations = _animationsDisabled();\n\n /** Whether the slide toggle is currently focused. */\n _focused = false;\n\n /** Name value will be applied to the input element if present. */\n @Input() name: string | null = null;\n\n /** A unique id for the slide-toggle input. If none is supplied, it will be auto-generated. */\n @Input() id: string;\n\n /** Whether the label should appear after or before the slide-toggle. Defaults to 'after'. */\n @Input() labelPosition: 'before' | 'after' = 'after';\n\n /** Used to set the aria-label attribute on the underlying input element. */\n @Input('aria-label') ariaLabel: string | null = null;\n\n /** Used to set the aria-labelledby attribute on the underlying input element. */\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n /** Used to set the aria-describedby attribute on the underlying input element. */\n @Input('aria-describedby') ariaDescribedby!: string;\n\n /** Whether the slide-toggle is required. */\n @Input({transform: booleanAttribute}) required: boolean = false;\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 slide toggle. This API is supported in M2 themes only,\n * it has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/slide-toggle/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 slide toggle is disabled. */\n @Input({transform: booleanAttribute}) disabled: boolean = false;\n\n /** Whether the slide toggle should be full width. */\n @Input({transform: booleanAttribute}) fullWidth: boolean = false;\n\n /** Whether the slide toggle has a ripple. */\n @Input({transform: booleanAttribute}) disableRipple: boolean = false;\n\n /** Tabindex of slide toggle. */\n @Input({transform: (value: unknown) => (value == null ? 0 : numberAttribute(value))})\n tabIndex: number = 0;\n\n /** Whether the slide-toggle element is checked or not. */\n @Input({transform: booleanAttribute})\n get checked(): boolean {\n return this._checked;\n }\n set checked(value: boolean) {\n this._checked = value;\n this._changeDetectorRef.markForCheck();\n }\n\n /** Whether to hide the icon inside of the slide toggle. */\n @Input({transform: booleanAttribute}) hideIcon: boolean;\n\n /** Whether the slide toggle should remain interactive when it is disabled. */\n @Input({transform: booleanAttribute}) disabledInteractive: boolean;\n\n /** An event will be dispatched each time the slide-toggle changes its value. */\n @Output() readonly change = new EventEmitter<MatSlideToggleChange>();\n\n /**\n * An event will be dispatched each time the slide-toggle input is toggled.\n * This event is always emitted when the user toggles the slide toggle, but this does not mean\n * the slide toggle's value has changed.\n */\n @Output() readonly toggleChange: EventEmitter<void> = new EventEmitter<void>();\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 constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\n const defaults = this.defaults;\n\n this.tabIndex = tabIndex == null ? 0 : parseInt(tabIndex) || 0;\n this.color = defaults.color || 'accent';\n this.id = this._uniqueId = inject(_IdGenerator).getId('mat-mdc-slide-toggle-');\n this.hideIcon = defaults.hideIcon ?? false;\n this.disabledInteractive = defaults.disabledInteractive ?? false;\n this._labelId = this._uniqueId + '-label';\n }\n\n ngAfterContentInit() {\n this._focusMonitor.monitor(this._elementRef, true).subscribe(focusOrigin => {\n if (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n this._focused = true;\n this._changeDetectorRef.markForCheck();\n } else if (!focusOrigin) {\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\n // change (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._focused = false;\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n });\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes['required']) {\n this._validatorOnChange();\n }\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n\n /** Implemented as part of ControlValueAccessor. */\n writeValue(value: any): void {\n this.checked = !!value;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n /** Implemented as part of ControlValueAccessor. */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\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._validatorOnChange = fn;\n }\n\n /** Implemented as a part of ControlValueAccessor. */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n }\n\n /** Toggles the checked state of the slide-toggle. */\n toggle(): void {\n this.checked = !this.checked;\n this._onChange(this.checked);\n }\n\n /**\n * Emits a change event on the `change` output. Also notifies the FormControl about the change.\n */\n protected _emitChangeEvent() {\n this._onChange(this.checked);\n this.change.emit(this._createChangeEvent(this.checked));\n }\n\n /** Method being called whenever the underlying button is clicked. */\n _handleClick() {\n if (!this.disabled) {\n this.toggleChange.emit();\n\n if (!this.defaults.disableToggleValue) {\n this.checked = !this.checked;\n this._onChange(this.checked);\n this.change.emit(new MatSlideToggleChange(this, this.checked));\n }\n }\n }\n\n _getAriaLabelledBy() {\n if (this.ariaLabelledby) {\n return this.ariaLabelledby;\n }\n\n // Even though we have a `label` element with a `for` pointing to the button, we need the\n // `aria-labelledby`, because the button gets flagged as not having a label by tools like axe.\n return this.ariaLabel ? null : this._labelId;\n }\n}\n","<div mat-internal-form-field [labelPosition]=\"labelPosition\">\n <button\n class=\"mdc-switch\"\n role=\"switch\"\n type=\"button\"\n [class.mdc-switch--selected]=\"checked\"\n [class.mdc-switch--unselected]=\"!checked\"\n [class.mdc-switch--checked]=\"checked\"\n [class.mdc-switch--disabled]=\"disabled\"\n [class.mat-mdc-slide-toggle-disabled-interactive]=\"disabledInteractive\"\n [tabIndex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\n [disabled]=\"disabled && !disabledInteractive\"\n [attr.id]=\"buttonId\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getAriaLabelledBy()\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-required]=\"required || null\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-disabled]=\"disabled && disabledInteractive ? 'true' : null\"\n (click)=\"_handleClick()\"\n #switch>\n <div class=\"mat-mdc-slide-toggle-touch-target\"></div>\n <span class=\"mdc-switch__track\"></span>\n <span class=\"mdc-switch__handle-track\">\n <span class=\"mdc-switch__handle\">\n <span class=\"mdc-switch__shadow\">\n <span class=\"mdc-elevation-overlay\"></span>\n </span>\n <span class=\"mdc-switch__ripple\">\n <span class=\"mat-mdc-slide-toggle-ripple mat-focus-indicator\" mat-ripple\n [matRippleTrigger]=\"switch\"\n [matRippleDisabled]=\"disableRipple || disabled\"\n [matRippleCentered]=\"true\"></span>\n </span>\n @if (!hideIcon) {\n <span class=\"mdc-switch__icons\">\n <svg\n class=\"mdc-switch__icon mdc-switch__icon--on\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <path d=\"M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z\" />\n </svg>\n <svg\n class=\"mdc-switch__icon mdc-switch__icon--off\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <path d=\"M20 13H4v-2h16v2z\" />\n </svg>\n </span>\n }\n </span>\n </span>\n </button>\n\n <!--\n Clicking on the label will trigger another click event from the button.\n Stop propagation here so other listeners further up in the DOM don't execute twice.\n -->\n <label class=\"mdc-label\" [for]=\"buttonId\" [attr.id]=\"_labelId\" (click)=\"$event.stopPropagation()\">\n <ng-content></ng-content>\n </label>\n</div>\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 {MatSlideToggle} from './slide-toggle';\n\n@NgModule({\n imports: [MatSlideToggle],\n exports: [MatSlideToggle, BidiModule],\n})\nexport class MatSlideToggleModule {}\n"],"names":[],"mappings":"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"}