1 | import { Component, ViewEncapsulation, ChangeDetectionStrategy, ElementRef, Optional, Inject, ViewChild, Input, NgModule } from '@angular/core';
|
---|
2 | import { mixinColor, mixinDisabled, mixinDisableRipple, MatRipple, MatRippleModule, MatCommonModule } from '@angular/material/core';
|
---|
3 | import { FocusMonitor } from '@angular/cdk/a11y';
|
---|
4 | import { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';
|
---|
5 |
|
---|
6 | /**
|
---|
7 | * @license
|
---|
8 | * Copyright Google LLC All Rights Reserved.
|
---|
9 | *
|
---|
10 | * Use of this source code is governed by an MIT-style license that can be
|
---|
11 | * found in the LICENSE file at https://angular.io/license
|
---|
12 | */
|
---|
13 | /** Default color palette for round buttons (mat-fab and mat-mini-fab) */
|
---|
14 | import * as ɵngcc0 from '@angular/core';
|
---|
15 | import * as ɵngcc1 from '@angular/cdk/a11y';
|
---|
16 | import * as ɵngcc2 from '@angular/material/core';
|
---|
17 |
|
---|
18 | const _c0 = ["mat-button", ""];
|
---|
19 | const _c1 = ["*"];
|
---|
20 | const _c2 = ".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}._mat-animation-noopable.mat-raised-button{transition:none;animation:none}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-fab{transition:none;animation:none}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-mini-fab{transition:none;animation:none}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.cdk-high-contrast-active .mat-button-base.cdk-keyboard-focused,.cdk-high-contrast-active .mat-button-base.cdk-program-focused{outline:solid 3px}\n";
|
---|
21 | const DEFAULT_ROUND_BUTTON_COLOR = 'accent';
|
---|
22 | /**
|
---|
23 | * List of classes to add to MatButton instances based on host attributes to
|
---|
24 | * style as different variants.
|
---|
25 | */
|
---|
26 | const BUTTON_HOST_ATTRIBUTES = [
|
---|
27 | 'mat-button',
|
---|
28 | 'mat-flat-button',
|
---|
29 | 'mat-icon-button',
|
---|
30 | 'mat-raised-button',
|
---|
31 | 'mat-stroked-button',
|
---|
32 | 'mat-mini-fab',
|
---|
33 | 'mat-fab',
|
---|
34 | ];
|
---|
35 | // Boilerplate for applying mixins to MatButton.
|
---|
36 | const _MatButtonBase = mixinColor(mixinDisabled(mixinDisableRipple(class {
|
---|
37 | constructor(_elementRef) {
|
---|
38 | this._elementRef = _elementRef;
|
---|
39 | }
|
---|
40 | })));
|
---|
41 | /**
|
---|
42 | * Material design button.
|
---|
43 | */
|
---|
44 | class MatButton extends _MatButtonBase {
|
---|
45 | constructor(elementRef, _focusMonitor, _animationMode) {
|
---|
46 | super(elementRef);
|
---|
47 | this._focusMonitor = _focusMonitor;
|
---|
48 | this._animationMode = _animationMode;
|
---|
49 | /** Whether the button is round. */
|
---|
50 | this.isRoundButton = this._hasHostAttributes('mat-fab', 'mat-mini-fab');
|
---|
51 | /** Whether the button is icon button. */
|
---|
52 | this.isIconButton = this._hasHostAttributes('mat-icon-button');
|
---|
53 | // For each of the variant selectors that is present in the button's host
|
---|
54 | // attributes, add the correct corresponding class.
|
---|
55 | for (const attr of BUTTON_HOST_ATTRIBUTES) {
|
---|
56 | if (this._hasHostAttributes(attr)) {
|
---|
57 | this._getHostElement().classList.add(attr);
|
---|
58 | }
|
---|
59 | }
|
---|
60 | // Add a class that applies to all buttons. This makes it easier to target if somebody
|
---|
61 | // wants to target all Material buttons. We do it here rather than `host` to ensure that
|
---|
62 | // the class is applied to derived classes.
|
---|
63 | elementRef.nativeElement.classList.add('mat-button-base');
|
---|
64 | if (this.isRoundButton) {
|
---|
65 | this.color = DEFAULT_ROUND_BUTTON_COLOR;
|
---|
66 | }
|
---|
67 | }
|
---|
68 | ngAfterViewInit() {
|
---|
69 | this._focusMonitor.monitor(this._elementRef, true);
|
---|
70 | }
|
---|
71 | ngOnDestroy() {
|
---|
72 | this._focusMonitor.stopMonitoring(this._elementRef);
|
---|
73 | }
|
---|
74 | /** Focuses the button. */
|
---|
75 | focus(origin, options) {
|
---|
76 | if (origin) {
|
---|
77 | this._focusMonitor.focusVia(this._getHostElement(), origin, options);
|
---|
78 | }
|
---|
79 | else {
|
---|
80 | this._getHostElement().focus(options);
|
---|
81 | }
|
---|
82 | }
|
---|
83 | _getHostElement() {
|
---|
84 | return this._elementRef.nativeElement;
|
---|
85 | }
|
---|
86 | _isRippleDisabled() {
|
---|
87 | return this.disableRipple || this.disabled;
|
---|
88 | }
|
---|
89 | /** Gets whether the button has one of the given attributes. */
|
---|
90 | _hasHostAttributes(...attributes) {
|
---|
91 | return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));
|
---|
92 | }
|
---|
93 | }
|
---|
94 | MatButton.ɵfac = function MatButton_Factory(t) { return new (t || MatButton)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc1.FocusMonitor), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };
|
---|
95 | MatButton.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatButton, selectors: [["button", "mat-button", ""], ["button", "mat-raised-button", ""], ["button", "mat-icon-button", ""], ["button", "mat-fab", ""], ["button", "mat-mini-fab", ""], ["button", "mat-stroked-button", ""], ["button", "mat-flat-button", ""]], viewQuery: function MatButton_Query(rf, ctx) { if (rf & 1) {
|
---|
96 | ɵngcc0.ɵɵviewQuery(MatRipple, 5);
|
---|
97 | } if (rf & 2) {
|
---|
98 | let _t;
|
---|
99 | ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.ripple = _t.first);
|
---|
100 | } }, hostAttrs: [1, "mat-focus-indicator"], hostVars: 5, hostBindings: function MatButton_HostBindings(rf, ctx) { if (rf & 2) {
|
---|
101 | ɵngcc0.ɵɵattribute("disabled", ctx.disabled || null);
|
---|
102 | ɵngcc0.ɵɵclassProp("_mat-animation-noopable", ctx._animationMode === "NoopAnimations")("mat-button-disabled", ctx.disabled);
|
---|
103 | } }, inputs: { disabled: "disabled", disableRipple: "disableRipple", color: "color" }, exportAs: ["matButton"], features: [ɵngcc0.ɵɵInheritDefinitionFeature], attrs: _c0, ngContentSelectors: _c1, decls: 4, vars: 5, consts: [[1, "mat-button-wrapper"], ["matRipple", "", 1, "mat-button-ripple", 3, "matRippleDisabled", "matRippleCentered", "matRippleTrigger"], [1, "mat-button-focus-overlay"]], template: function MatButton_Template(rf, ctx) { if (rf & 1) {
|
---|
104 | ɵngcc0.ɵɵprojectionDef();
|
---|
105 | ɵngcc0.ɵɵelementStart(0, "span", 0);
|
---|
106 | ɵngcc0.ɵɵprojection(1);
|
---|
107 | ɵngcc0.ɵɵelementEnd();
|
---|
108 | ɵngcc0.ɵɵelement(2, "span", 1);
|
---|
109 | ɵngcc0.ɵɵelement(3, "span", 2);
|
---|
110 | } if (rf & 2) {
|
---|
111 | ɵngcc0.ɵɵadvance(2);
|
---|
112 | ɵngcc0.ɵɵclassProp("mat-button-ripple-round", ctx.isRoundButton || ctx.isIconButton);
|
---|
113 | ɵngcc0.ɵɵproperty("matRippleDisabled", ctx._isRippleDisabled())("matRippleCentered", ctx.isIconButton)("matRippleTrigger", ctx._getHostElement());
|
---|
114 | } }, directives: [ɵngcc2.MatRipple], styles: [_c2], encapsulation: 2, changeDetection: 0 });
|
---|
115 | MatButton.ctorParameters = () => [
|
---|
116 | { type: ElementRef },
|
---|
117 | { type: FocusMonitor },
|
---|
118 | { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }
|
---|
119 | ];
|
---|
120 | MatButton.propDecorators = {
|
---|
121 | ripple: [{ type: ViewChild, args: [MatRipple,] }]
|
---|
122 | };
|
---|
123 | (function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatButton, [{
|
---|
124 | type: Component,
|
---|
125 | args: [{
|
---|
126 | selector: `button[mat-button], button[mat-raised-button], button[mat-icon-button],
|
---|
127 | button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],
|
---|
128 | button[mat-flat-button]`,
|
---|
129 | exportAs: 'matButton',
|
---|
130 | host: {
|
---|
131 | '[attr.disabled]': 'disabled || null',
|
---|
132 | '[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"',
|
---|
133 | // Add a class for disabled button styling instead of the using attribute
|
---|
134 | // selector or pseudo-selector. This allows users to create focusabled
|
---|
135 | // disabled buttons without recreating the styles.
|
---|
136 | '[class.mat-button-disabled]': 'disabled',
|
---|
137 | 'class': 'mat-focus-indicator'
|
---|
138 | },
|
---|
139 | template: "<span class=\"mat-button-wrapper\"><ng-content></ng-content></span>\n<span matRipple class=\"mat-button-ripple\"\n [class.mat-button-ripple-round]=\"isRoundButton || isIconButton\"\n [matRippleDisabled]=\"_isRippleDisabled()\"\n [matRippleCentered]=\"isIconButton\"\n [matRippleTrigger]=\"_getHostElement()\"></span>\n<span class=\"mat-button-focus-overlay\"></span>\n",
|
---|
140 | inputs: ['disabled', 'disableRipple', 'color'],
|
---|
141 | encapsulation: ViewEncapsulation.None,
|
---|
142 | changeDetection: ChangeDetectionStrategy.OnPush,
|
---|
143 | styles: [".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}._mat-animation-noopable.mat-raised-button{transition:none;animation:none}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-fab{transition:none;animation:none}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-mini-fab{transition:none;animation:none}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.cdk-high-contrast-active .mat-button-base.cdk-keyboard-focused,.cdk-high-contrast-active .mat-button-base.cdk-program-focused{outline:solid 3px}\n"]
|
---|
144 | }]
|
---|
145 | }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc1.FocusMonitor }, { type: String, decorators: [{
|
---|
146 | type: Optional
|
---|
147 | }, {
|
---|
148 | type: Inject,
|
---|
149 | args: [ANIMATION_MODULE_TYPE]
|
---|
150 | }] }]; }, { ripple: [{
|
---|
151 | type: ViewChild,
|
---|
152 | args: [MatRipple]
|
---|
153 | }] }); })();
|
---|
154 | /**
|
---|
155 | * Material design anchor button.
|
---|
156 | */
|
---|
157 | class MatAnchor extends MatButton {
|
---|
158 | constructor(focusMonitor, elementRef, animationMode) {
|
---|
159 | super(elementRef, focusMonitor, animationMode);
|
---|
160 | }
|
---|
161 | _haltDisabledEvents(event) {
|
---|
162 | // A disabled button shouldn't apply any actions
|
---|
163 | if (this.disabled) {
|
---|
164 | event.preventDefault();
|
---|
165 | event.stopImmediatePropagation();
|
---|
166 | }
|
---|
167 | }
|
---|
168 | }
|
---|
169 | MatAnchor.ɵfac = function MatAnchor_Factory(t) { return new (t || MatAnchor)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.FocusMonitor), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8)); };
|
---|
170 | MatAnchor.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatAnchor, selectors: [["a", "mat-button", ""], ["a", "mat-raised-button", ""], ["a", "mat-icon-button", ""], ["a", "mat-fab", ""], ["a", "mat-mini-fab", ""], ["a", "mat-stroked-button", ""], ["a", "mat-flat-button", ""]], hostAttrs: [1, "mat-focus-indicator"], hostVars: 7, hostBindings: function MatAnchor_HostBindings(rf, ctx) { if (rf & 1) {
|
---|
171 | ɵngcc0.ɵɵlistener("click", function MatAnchor_click_HostBindingHandler($event) { return ctx._haltDisabledEvents($event); });
|
---|
172 | } if (rf & 2) {
|
---|
173 | ɵngcc0.ɵɵattribute("tabindex", ctx.disabled ? -1 : ctx.tabIndex || 0)("disabled", ctx.disabled || null)("aria-disabled", ctx.disabled.toString());
|
---|
174 | ɵngcc0.ɵɵclassProp("_mat-animation-noopable", ctx._animationMode === "NoopAnimations")("mat-button-disabled", ctx.disabled);
|
---|
175 | } }, inputs: { disabled: "disabled", disableRipple: "disableRipple", color: "color", tabIndex: "tabIndex" }, exportAs: ["matButton", "matAnchor"], features: [ɵngcc0.ɵɵInheritDefinitionFeature], attrs: _c0, ngContentSelectors: _c1, decls: 4, vars: 5, consts: [[1, "mat-button-wrapper"], ["matRipple", "", 1, "mat-button-ripple", 3, "matRippleDisabled", "matRippleCentered", "matRippleTrigger"], [1, "mat-button-focus-overlay"]], template: function MatAnchor_Template(rf, ctx) { if (rf & 1) {
|
---|
176 | ɵngcc0.ɵɵprojectionDef();
|
---|
177 | ɵngcc0.ɵɵelementStart(0, "span", 0);
|
---|
178 | ɵngcc0.ɵɵprojection(1);
|
---|
179 | ɵngcc0.ɵɵelementEnd();
|
---|
180 | ɵngcc0.ɵɵelement(2, "span", 1);
|
---|
181 | ɵngcc0.ɵɵelement(3, "span", 2);
|
---|
182 | } if (rf & 2) {
|
---|
183 | ɵngcc0.ɵɵadvance(2);
|
---|
184 | ɵngcc0.ɵɵclassProp("mat-button-ripple-round", ctx.isRoundButton || ctx.isIconButton);
|
---|
185 | ɵngcc0.ɵɵproperty("matRippleDisabled", ctx._isRippleDisabled())("matRippleCentered", ctx.isIconButton)("matRippleTrigger", ctx._getHostElement());
|
---|
186 | } }, directives: [ɵngcc2.MatRipple], styles: [_c2], encapsulation: 2, changeDetection: 0 });
|
---|
187 | MatAnchor.ctorParameters = () => [
|
---|
188 | { type: FocusMonitor },
|
---|
189 | { type: ElementRef },
|
---|
190 | { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }
|
---|
191 | ];
|
---|
192 | MatAnchor.propDecorators = {
|
---|
193 | tabIndex: [{ type: Input }]
|
---|
194 | };
|
---|
195 | (function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatAnchor, [{
|
---|
196 | type: Component,
|
---|
197 | args: [{
|
---|
198 | selector: `a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab],
|
---|
199 | a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]`,
|
---|
200 | exportAs: 'matButton, matAnchor',
|
---|
201 | host: {
|
---|
202 | // Note that we ignore the user-specified tabindex when it's disabled for
|
---|
203 | // consistency with the `mat-button` applied on native buttons where even
|
---|
204 | // though they have an index, they're not tabbable.
|
---|
205 | '[attr.tabindex]': 'disabled ? -1 : (tabIndex || 0)',
|
---|
206 | '[attr.disabled]': 'disabled || null',
|
---|
207 | '[attr.aria-disabled]': 'disabled.toString()',
|
---|
208 | '(click)': '_haltDisabledEvents($event)',
|
---|
209 | '[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"',
|
---|
210 | '[class.mat-button-disabled]': 'disabled',
|
---|
211 | 'class': 'mat-focus-indicator'
|
---|
212 | },
|
---|
213 | inputs: ['disabled', 'disableRipple', 'color'],
|
---|
214 | template: "<span class=\"mat-button-wrapper\"><ng-content></ng-content></span>\n<span matRipple class=\"mat-button-ripple\"\n [class.mat-button-ripple-round]=\"isRoundButton || isIconButton\"\n [matRippleDisabled]=\"_isRippleDisabled()\"\n [matRippleCentered]=\"isIconButton\"\n [matRippleTrigger]=\"_getHostElement()\"></span>\n<span class=\"mat-button-focus-overlay\"></span>\n",
|
---|
215 | encapsulation: ViewEncapsulation.None,
|
---|
216 | changeDetection: ChangeDetectionStrategy.OnPush,
|
---|
217 | styles: [".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}._mat-animation-noopable.mat-raised-button{transition:none;animation:none}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-fab{transition:none;animation:none}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}._mat-animation-noopable.mat-mini-fab{transition:none;animation:none}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.cdk-high-contrast-active .mat-button-base.cdk-keyboard-focused,.cdk-high-contrast-active .mat-button-base.cdk-program-focused{outline:solid 3px}\n"]
|
---|
218 | }]
|
---|
219 | }], function () { return [{ type: ɵngcc1.FocusMonitor }, { type: ɵngcc0.ElementRef }, { type: String, decorators: [{
|
---|
220 | type: Optional
|
---|
221 | }, {
|
---|
222 | type: Inject,
|
---|
223 | args: [ANIMATION_MODULE_TYPE]
|
---|
224 | }] }]; }, { tabIndex: [{
|
---|
225 | type: Input
|
---|
226 | }] }); })();
|
---|
227 |
|
---|
228 | /**
|
---|
229 | * @license
|
---|
230 | * Copyright Google LLC All Rights Reserved.
|
---|
231 | *
|
---|
232 | * Use of this source code is governed by an MIT-style license that can be
|
---|
233 | * found in the LICENSE file at https://angular.io/license
|
---|
234 | */
|
---|
235 | class MatButtonModule {
|
---|
236 | }
|
---|
237 | MatButtonModule.ɵfac = function MatButtonModule_Factory(t) { return new (t || MatButtonModule)(); };
|
---|
238 | MatButtonModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MatButtonModule });
|
---|
239 | MatButtonModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[
|
---|
240 | MatRippleModule,
|
---|
241 | MatCommonModule,
|
---|
242 | ], MatCommonModule] });
|
---|
243 | (function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatButtonModule, [{
|
---|
244 | type: NgModule,
|
---|
245 | args: [{
|
---|
246 | imports: [
|
---|
247 | MatRippleModule,
|
---|
248 | MatCommonModule,
|
---|
249 | ],
|
---|
250 | exports: [
|
---|
251 | MatButton,
|
---|
252 | MatAnchor,
|
---|
253 | MatCommonModule,
|
---|
254 | ],
|
---|
255 | declarations: [
|
---|
256 | MatButton,
|
---|
257 | MatAnchor,
|
---|
258 | ]
|
---|
259 | }]
|
---|
260 | }], null, null); })();
|
---|
261 | (function () { (typeof ngJitMode === "undefined" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MatButtonModule, { declarations: function () { return [MatButton, MatAnchor]; }, imports: function () { return [MatRippleModule,
|
---|
262 | MatCommonModule]; }, exports: function () { return [MatButton, MatAnchor, MatCommonModule]; } }); })();
|
---|
263 |
|
---|
264 | /**
|
---|
265 | * @license
|
---|
266 | * Copyright Google LLC All Rights Reserved.
|
---|
267 | *
|
---|
268 | * Use of this source code is governed by an MIT-style license that can be
|
---|
269 | * found in the LICENSE file at https://angular.io/license
|
---|
270 | */
|
---|
271 |
|
---|
272 | /**
|
---|
273 | * Generated bundle index. Do not edit.
|
---|
274 | */
|
---|
275 |
|
---|
276 | export { MatAnchor, MatButton, MatButtonModule };
|
---|
277 |
|
---|
278 | //# sourceMappingURL=button.js.map |
---|