UNPKG

@angular/material

Version:
16 lines 14.5 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("@angular/material/core"),require("tslib"),require("@angular/cdk/a11y"),require("@angular/cdk/coercion"),require("@angular/cdk/collections"),require("@angular/forms"),require("@angular/platform-browser/animations")):"function"==typeof define&&define.amd?define("@angular/material/radio",["exports","@angular/common","@angular/core","@angular/material/core","tslib","@angular/cdk/a11y","@angular/cdk/coercion","@angular/cdk/collections","@angular/forms","@angular/platform-browser/animations"],t):t(((e=e||self).ng=e.ng||{},e.ng.material=e.ng.material||{},e.ng.material.radio={}),e.ng.common,e.ng.core,e.ng.material.core,e.tslib,e.ng.cdk.a11y,e.ng.cdk.coercion,e.ng.cdk.collections,e.ng.forms,e.ng.platformBrowser.animations)}(this,(function(e,t,i,o,r,a,n,s,l,c){"use strict"; /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */var d=new i.InjectionToken("mat-radio-default-options",{providedIn:"root",factory:u});function u(){return{color:"accent"}}var p=0,h={provide:l.NG_VALUE_ACCESSOR,useExisting:i.forwardRef((function(){return b})),multi:!0},m=function m(e,t){this.source=e,this.value=t},b=function(){function e(e){this._changeDetector=e,this._value=null,this._name="mat-radio-group-"+p++,this._selected=null,this._isInitialized=!1,this._labelPosition="after",this._disabled=!1,this._required=!1,this._controlValueAccessorChangeFn=function(){},this.onTouched=function(){},this.change=new i.EventEmitter}return Object.defineProperty(e.prototype,"name",{get:function(){return this._name},set:function(e){this._name=e,this._updateRadioButtonNames()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"labelPosition",{get:function(){return this._labelPosition},set:function(e){this._labelPosition="before"===e?"before":"after",this._markRadiosForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(e){this._value!==e&&(this._value=e,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())},enumerable:!0,configurable:!0}),e.prototype._checkSelectedRadioButton=function(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)},Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=e,this.value=e?e.value:null,this._checkSelectedRadioButton()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disabled",{get:function(){return this._disabled},set:function(e){this._disabled=n.coerceBooleanProperty(e),this._markRadiosForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"required",{get:function(){return this._required},set:function(e){this._required=n.coerceBooleanProperty(e),this._markRadiosForCheck()},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){this._isInitialized=!0},e.prototype._touch=function(){this.onTouched&&this.onTouched()},e.prototype._updateRadioButtonNames=function(){var e=this;this._radios&&this._radios.forEach((function(t){t.name=e.name,t._markForCheck()}))},e.prototype._updateSelectedRadioFromValue=function(){var e=this;this._radios&&(null===this._selected||this._selected.value!==this._value)&&(this._selected=null,this._radios.forEach((function(t){t.checked=e.value===t.value,t.checked&&(e._selected=t)})))},e.prototype._emitChangeEvent=function(){this._isInitialized&&this.change.emit(new m(this._selected,this._value))},e.prototype._markRadiosForCheck=function(){this._radios&&this._radios.forEach((function(e){return e._markForCheck()}))},e.prototype.writeValue=function(e){this.value=e,this._changeDetector.markForCheck()},e.prototype.registerOnChange=function(e){this._controlValueAccessorChangeFn=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this.disabled=e,this._changeDetector.markForCheck()},e.decorators=[{type:i.Directive,args:[{selector:"mat-radio-group",exportAs:"matRadioGroup",providers:[h],host:{role:"radiogroup",class:"mat-radio-group"}}]}],e.ctorParameters=function(){return[{type:i.ChangeDetectorRef}]},e.propDecorators={change:[{type:i.Output}],_radios:[{type:i.ContentChildren,args:[i.forwardRef((function(){return f})),{descendants:!0}]}],color:[{type:i.Input}],name:[{type:i.Input}],labelPosition:[{type:i.Input}],value:[{type:i.Input}],selected:[{type:i.Input}],disabled:[{type:i.Input}],required:[{type:i.Input}]},e}(),f=function(e){function t(t,o,r,a,n,s,l){var c=e.call(this,o)||this;return c._changeDetector=r,c._focusMonitor=a,c._radioDispatcher=n,c._animationMode=s,c._providerOverride=l,c._uniqueId="mat-radio-"+ ++p,c.id=c._uniqueId,c.change=new i.EventEmitter,c._checked=!1,c._value=null,c._removeUniqueSelectionListener=function(){},c.radioGroup=t,c._removeUniqueSelectionListener=n.listen((function(e,t){e!==c.id&&t===c.name&&(c.checked=!1)})),c}return r.__extends(t,e),Object.defineProperty(t.prototype,"checked",{get:function(){return this._checked},set:function(e){var t=n.coerceBooleanProperty(e);this._checked!==t&&(this._checked=t,t&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!t&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),t&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this._value},set:function(e){this._value!==e&&(this._value=e,null!==this.radioGroup&&(this.checked||(this.checked=this.radioGroup.value===e),this.checked&&(this.radioGroup.selected=this)))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"labelPosition",{get:function(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"},set:function(e){this._labelPosition=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this._disabled||null!==this.radioGroup&&this.radioGroup.disabled},set:function(e){var t=n.coerceBooleanProperty(e);this._disabled!==t&&(this._disabled=t,this._changeDetector.markForCheck())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"required",{get:function(){return this._required||this.radioGroup&&this.radioGroup.required},set:function(e){this._required=n.coerceBooleanProperty(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"color",{get:function(){return this._color||this.radioGroup&&this.radioGroup.color||this._providerOverride&&this._providerOverride.color||"accent"},set:function(e){this._color=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"inputId",{get:function(){return(this.id||this._uniqueId)+"-input"},enumerable:!0,configurable:!0}),t.prototype.focus=function(e){this._focusMonitor.focusVia(this._inputElement,"keyboard",e)},t.prototype._markForCheck=function(){this._changeDetector.markForCheck()},t.prototype.ngOnInit=function(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.name=this.radioGroup.name)},t.prototype.ngAfterViewInit=function(){var e=this;this._focusMonitor.monitor(this._elementRef,!0).subscribe((function(t){!t&&e.radioGroup&&e.radioGroup._touch()}))},t.prototype.ngOnDestroy=function(){this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()},t.prototype._emitChangeEvent=function(){this.change.emit(new m(this,this._value))},t.prototype._isRippleDisabled=function(){return this.disableRipple||this.disabled},t.prototype._onInputClick=function(e){e.stopPropagation()},t.prototype._onInputChange=function(e){e.stopPropagation();var t=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),t&&this.radioGroup._emitChangeEvent())},t.decorators=[{type:i.Component,args:[{selector:"mat-radio-button",template:'\x3c!-- TODO(jelbourn): render the radio on either side of the content --\x3e\n\x3c!-- TODO(mtlin): Evaluate trade-offs of using native radio vs. cost of additional bindings. --\x3e\n<label [attr.for]="inputId" class="mat-radio-label" #label>\n \x3c!-- The actual \'radio\' part of the control. --\x3e\n <div class="mat-radio-container">\n <div class="mat-radio-outer-circle"></div>\n <div class="mat-radio-inner-circle"></div>\n <div mat-ripple class="mat-radio-ripple"\n [matRippleTrigger]="label"\n [matRippleDisabled]="_isRippleDisabled()"\n [matRippleCentered]="true"\n [matRippleRadius]="20"\n [matRippleAnimation]="{enterDuration: 150}">\n\n <div class="mat-ripple-element mat-radio-persistent-ripple"></div>\n </div>\n\n <input #input class="mat-radio-input cdk-visually-hidden" type="radio"\n [id]="inputId"\n [checked]="checked"\n [disabled]="disabled"\n [tabIndex]="tabIndex"\n [attr.name]="name"\n [attr.value]="value"\n [required]="required"\n [attr.aria-label]="ariaLabel"\n [attr.aria-labelledby]="ariaLabelledby"\n [attr.aria-describedby]="ariaDescribedby"\n (change)="_onInputChange($event)"\n (click)="_onInputClick($event)">\n </div>\n\n \x3c!-- The label content for radio control. --\x3e\n <div class="mat-radio-label-content" [class.mat-radio-label-before]="labelPosition == \'before\'">\n \x3c!-- Add an invisible span so JAWS can read the label --\x3e\n <span style="display:none">&nbsp;</span>\n <ng-content></ng-content>\n </div>\n</label>\n',inputs:["disableRipple","tabIndex"],encapsulation:i.ViewEncapsulation.None,exportAs:"matRadioButton",host:{class:"mat-radio-button","[class.mat-radio-checked]":"checked","[class.mat-radio-disabled]":"disabled","[class._mat-animation-noopable]":'_animationMode === "NoopAnimations"',"[class.mat-primary]":'color === "primary"',"[class.mat-accent]":'color === "accent"',"[class.mat-warn]":'color === "warn"',"[attr.tabindex]":"-1","[attr.id]":"id","[attr.aria-label]":"null","[attr.aria-labelledby]":"null","[attr.aria-describedby]":"null","(focus)":"_inputElement.nativeElement.focus()"},changeDetection:i.ChangeDetectionStrategy.OnPush,styles:[".mat-radio-button{display:inline-block;-webkit-tap-highlight-color:transparent;outline:0}.mat-radio-label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;vertical-align:middle;width:100%}.mat-radio-container{box-sizing:border-box;display:inline-block;position:relative;width:20px;height:20px;flex-shrink:0}.mat-radio-outer-circle{box-sizing:border-box;height:20px;left:0;position:absolute;top:0;transition:border-color ease 280ms;width:20px;border-width:2px;border-style:solid;border-radius:50%}._mat-animation-noopable .mat-radio-outer-circle{transition:none}.mat-radio-inner-circle{border-radius:50%;box-sizing:border-box;height:20px;left:0;position:absolute;top:0;transition:transform ease 280ms,background-color ease 280ms;width:20px;transform:scale(0.001)}._mat-animation-noopable .mat-radio-inner-circle{transition:none}.mat-radio-checked .mat-radio-inner-circle{transform:scale(0.5)}.cdk-high-contrast-active .mat-radio-checked .mat-radio-inner-circle{border:solid 10px}.mat-radio-label-content{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto;display:inline-block;order:0;line-height:inherit;padding-left:8px;padding-right:0}[dir=rtl] .mat-radio-label-content{padding-right:8px;padding-left:0}.mat-radio-label-content.mat-radio-label-before{order:-1;padding-left:0;padding-right:8px}[dir=rtl] .mat-radio-label-content.mat-radio-label-before{padding-right:0;padding-left:8px}.mat-radio-disabled,.mat-radio-disabled .mat-radio-label{cursor:default}.mat-radio-button .mat-radio-ripple{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-radio-button .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple){opacity:.16}.mat-radio-persistent-ripple{width:100%;height:100%;transform:none}.mat-radio-container:hover .mat-radio-persistent-ripple{opacity:.04}.mat-radio-button:not(.mat-radio-disabled).cdk-keyboard-focused .mat-radio-persistent-ripple,.mat-radio-button:not(.mat-radio-disabled).cdk-program-focused .mat-radio-persistent-ripple{opacity:.12}.mat-radio-persistent-ripple,.mat-radio-disabled .mat-radio-container:hover .mat-radio-persistent-ripple{opacity:0}@media(hover: none){.mat-radio-container:hover .mat-radio-persistent-ripple{display:none}}.mat-radio-input{bottom:0;left:50%}.cdk-high-contrast-active .mat-radio-disabled{opacity:.5}\n"]}]}],t.ctorParameters=function(){return[{type:b,decorators:[{type:i.Optional}]},{type:i.ElementRef},{type:i.ChangeDetectorRef},{type:a.FocusMonitor},{type:s.UniqueSelectionDispatcher},{type:String,decorators:[{type:i.Optional},{type:i.Inject,args:[c.ANIMATION_MODULE_TYPE]}]},{type:void 0,decorators:[{type:i.Optional},{type:i.Inject,args:[d]}]}]},t.propDecorators={id:[{type:i.Input}],name:[{type:i.Input}],ariaLabel:[{type:i.Input,args:["aria-label"]}],ariaLabelledby:[{type:i.Input,args:["aria-labelledby"]}],ariaDescribedby:[{type:i.Input,args:["aria-describedby"]}],checked:[{type:i.Input}],value:[{type:i.Input}],labelPosition:[{type:i.Input}],disabled:[{type:i.Input}],required:[{type:i.Input}],color:[{type:i.Input}],change:[{type:i.Output}],_inputElement:[{type:i.ViewChild,args:["input"]}]},t}(o.mixinDisableRipple(o.mixinTabIndex((function g(e){this._elementRef=e})))),_=function(){function e(){}return e.decorators=[{type:i.NgModule,args:[{imports:[t.CommonModule,o.MatRippleModule,o.MatCommonModule],exports:[b,f,o.MatCommonModule],declarations:[b,f]}]}],e}(); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ e.MAT_RADIO_DEFAULT_OPTIONS=d,e.MAT_RADIO_DEFAULT_OPTIONS_FACTORY=u,e.MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR=h,e.MatRadioButton=f,e.MatRadioChange=m,e.MatRadioGroup=b,e.MatRadioModule=_,Object.defineProperty(e,"__esModule",{value:!0})}));