@angular/material
Version:
Angular Material
1 lines • 17.6 kB
Source Map (JSON)
{"version":3,"file":"_icon-button-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/button/button-base.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/button/icon-button.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/button/icon-button.html"],"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 */\n\nimport {FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n InjectionToken,\n Input,\n NgZone,\n numberAttribute,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport {_animationsDisabled, _StructuralStylesLoader, MatRippleLoader, ThemePalette} from '../core';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\n\n/**\n * Possible appearances for a `MatButton`.\n * See https://m3.material.io/components/buttons/overview\n */\nexport type MatButtonAppearance = 'text' | 'filled' | 'elevated' | 'outlined' | 'tonal';\n\n/** Object that can be used to configure the default options for the button component. */\nexport interface MatButtonConfig {\n /** Whether disabled buttons should be interactive. */\n disabledInteractive?: boolean;\n\n /** Default palette color to apply to buttons. */\n color?: ThemePalette;\n\n /** Default appearance for plain buttons (not icon buttons or FABs). */\n defaultAppearance?: MatButtonAppearance;\n}\n\n/** Injection token that can be used to provide the default options the button component. */\nexport const MAT_BUTTON_CONFIG = new InjectionToken<MatButtonConfig>('MAT_BUTTON_CONFIG');\n\nfunction transformTabIndex(value: unknown): number | undefined {\n return value == null ? undefined : numberAttribute(value);\n}\n\n/** Base class for all buttons. */\n@Directive({\n host: {\n // Add a class that applies to all buttons. This makes it easier to target if somebody\n // wants to target all Material buttons.\n 'class': 'mat-mdc-button-base',\n '[class]': 'color ? \"mat-\" + color : \"\"',\n '[attr.disabled]': '_getDisabledAttribute()',\n '[attr.aria-disabled]': '_getAriaDisabled()',\n '[attr.tabindex]': '_getTabIndex()',\n '[class.mat-mdc-button-disabled]': 'disabled',\n '[class.mat-mdc-button-disabled-interactive]': 'disabledInteractive',\n '[class.mat-unthemed]': '!color',\n '[class._mat-animation-noopable]': '_animationsDisabled',\n },\n})\nexport class MatButtonBase implements AfterViewInit, OnDestroy {\n _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n protected _ngZone = inject(NgZone);\n protected _animationsDisabled = _animationsDisabled();\n\n protected readonly _config = inject(MAT_BUTTON_CONFIG, {optional: true});\n private readonly _focusMonitor = inject(FocusMonitor);\n private _cleanupClick: (() => void) | undefined;\n private _renderer = inject(Renderer2);\n\n /**\n * Handles the lazy creation of the MatButton ripple.\n * Used to improve initial load time of large applications.\n */\n protected _rippleLoader: MatRippleLoader = inject(MatRippleLoader);\n\n /** Whether the button is set on an anchor node. */\n protected _isAnchor: boolean;\n\n /** Whether this button is a FAB. Used to apply the correct class on the ripple. */\n protected _isFab = false;\n\n /**\n * Theme color of the button. This API is supported in M2 themes only, it has\n * no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/button/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 | null;\n\n /** Whether the ripple effect is disabled or not. */\n @Input({transform: booleanAttribute})\n get disableRipple(): boolean {\n return this._disableRipple;\n }\n set disableRipple(value: any) {\n this._disableRipple = value;\n this._updateRippleDisabled();\n }\n private _disableRipple: boolean = false;\n\n /** Whether the button is disabled. */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = value;\n this._updateRippleDisabled();\n }\n private _disabled: boolean = false;\n\n /** `aria-disabled` value of the button. */\n @Input({transform: booleanAttribute, alias: 'aria-disabled'})\n ariaDisabled: boolean | undefined;\n\n /**\n * Natively disabled buttons prevent focus and any pointer events from reaching the button.\n * In some scenarios this might not be desirable, because it can prevent users from finding out\n * why the button is disabled (e.g. via tooltip). This is also useful for buttons that may\n * become disabled when activated, which would cause focus to be transferred to the document\n * body instead of remaining on the button.\n *\n * Enabling this input will change the button so that it is styled to be disabled and will be\n * marked as `aria-disabled`, but it will allow the button to receive events and focus.\n *\n * Note that by enabling this, you need to set the `tabindex` yourself if the button isn't\n * meant to be tabbable and you have to prevent the button action (e.g. form submissions).\n */\n @Input({transform: booleanAttribute})\n disabledInteractive: boolean;\n\n /** Tab index for the button. */\n @Input({transform: transformTabIndex})\n tabIndex: number;\n\n /**\n * Backwards-compatibility input that handles pre-existing `[tabindex]` bindings.\n * @docs-private\n */\n @Input({alias: 'tabindex', transform: transformTabIndex})\n set _tabindex(value: number) {\n this.tabIndex = value;\n }\n\n constructor(...args: unknown[]);\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const element = this._elementRef.nativeElement;\n\n this._isAnchor = element.tagName === 'A';\n this.disabledInteractive = this._config?.disabledInteractive ?? false;\n this.color = this._config?.color ?? null;\n this._rippleLoader?.configureRipple(element, {className: 'mat-mdc-button-ripple'});\n }\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n\n // Some internal tests depend on the timing of this,\n // otherwise we could bind it in the constructor.\n if (this._isAnchor) {\n this._setupAsAnchor();\n }\n }\n\n ngOnDestroy() {\n this._cleanupClick?.();\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._rippleLoader?.destroyRipple(this._elementRef.nativeElement);\n }\n\n /** Focuses the button. */\n focus(origin: FocusOrigin = 'program', options?: FocusOptions): void {\n if (origin) {\n this._focusMonitor.focusVia(this._elementRef.nativeElement, origin, options);\n } else {\n this._elementRef.nativeElement.focus(options);\n }\n }\n\n protected _getAriaDisabled() {\n if (this.ariaDisabled != null) {\n return this.ariaDisabled;\n }\n\n if (this._isAnchor) {\n return this.disabled || null;\n }\n\n return this.disabled && this.disabledInteractive ? true : null;\n }\n\n protected _getDisabledAttribute() {\n return this.disabledInteractive || !this.disabled ? null : true;\n }\n\n private _updateRippleDisabled(): void {\n this._rippleLoader?.setDisabled(\n this._elementRef.nativeElement,\n this.disableRipple || this.disabled,\n );\n }\n\n protected _getTabIndex() {\n if (this._isAnchor) {\n return this.disabled && !this.disabledInteractive ? -1 : this.tabIndex;\n }\n return this.tabIndex;\n }\n\n private _setupAsAnchor() {\n this._cleanupClick = this._ngZone.runOutsideAngular(() =>\n this._renderer.listen(this._elementRef.nativeElement, 'click', (event: Event) => {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }),\n );\n }\n}\n\n// tslint:disable:variable-name\n/**\n * Anchor button base.\n */\nexport const MatAnchorBase = MatButtonBase;\nexport type MatAnchorBase = MatButtonBase;\n// tslint:enable:variable-name\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 {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {MatButtonBase} from './button-base';\n\n/**\n * Material Design icon button component. This type of button displays a single interactive icon for\n * users to perform an action.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\n@Component({\n selector: `button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]`,\n templateUrl: 'icon-button.html',\n styleUrls: ['icon-button.css', 'button-high-contrast.css'],\n host: {\n 'class': 'mdc-icon-button mat-mdc-icon-button',\n },\n exportAs: 'matButton, matAnchor',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatIconButton extends MatButtonBase {\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n this._rippleLoader.configureRipple(this._elementRef.nativeElement, {centered: true});\n }\n}\n\n// tslint:disable:variable-name\n/**\n * Material Design icon button component for anchor elements. This button displays a single\n * interaction icon that allows users to navigate across different routes or pages.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\nexport const MatIconAnchor = MatIconButton;\nexport type MatIconAnchor = MatIconButton;\n// tslint:enable:variable-name\n","<span class=\"mat-mdc-button-persistent-ripple mdc-icon-button__ripple\"></span>\n\n<ng-content></ng-content>\n\n<!--\n The indicator can't be directly on the button, because MDC uses ::before for high contrast\n indication and it can't be on the ripple, because it has a border radius and overflow: hidden.\n-->\n<span class=\"mat-focus-indicator\"></span>\n\n<span class=\"mat-mdc-button-touch-target\"></span>\n"],"names":["MAT_BUTTON_CONFIG","InjectionToken","transformTabIndex","value","undefined","numberAttribute","MatButtonBase","_elementRef","inject","ElementRef","_ngZone","NgZone","_animationsDisabled","_config","optional","_focusMonitor","FocusMonitor","_cleanupClick","_renderer","Renderer2","_rippleLoader","MatRippleLoader","_isAnchor","_isFab","color","disableRipple","_disableRipple","_updateRippleDisabled","disabled","_disabled","ariaDisabled","disabledInteractive","tabIndex","_tabindex","constructor","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","element","nativeElement","tagName","configureRipple","className","ngAfterViewInit","monitor","_setupAsAnchor","ngOnDestroy","stopMonitoring","destroyRipple","focus","origin","options","focusVia","_getAriaDisabled","_getDisabledAttribute","setDisabled","_getTabIndex","runOutsideAngular","listen","event","preventDefault","stopImmediatePropagation","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","inputs","booleanAttribute","host","properties","classAttribute","ngImport","decorators","args","Input","transform","alias","MatIconButton","centered","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","styles","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","selector","exportAs","template","MatIconAnchor"],"mappings":"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"}