{"version":3,"file":"radio.es5.js","sources":["../../packages/material/esm5/radio/radio.js","../../packages/material/esm5/radio/radio-module.js","../../packages/material/esm5/radio/index.js"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. 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.io/license\n */\nimport * as tslib_1 from \"tslib\";\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, Directive, ElementRef, EventEmitter, forwardRef, Input, Optional, Output, Renderer2, ViewChild, ViewEncapsulation, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatRipple, mixinColor, mixinDisabled, mixinDisableRipple, } from '@angular/material/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { FocusMonitor } from '@angular/cdk/a11y';\n// Increasing integer for generating unique ids for radio components.\nvar /** @type {?} */ nextUniqueId = 0;\n/**\n * Provider Expression that allows mat-radio-group to register as a ControlValueAccessor. This\n * allows it to support [(ngModel)] and ngControl.\n * \\@docs-private\n */\nexport var MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(function () { return MatRadioGroup; }),\n multi: true\n};\n/**\n * Change event object emitted by MatRadio and MatRadioGroup.\n */\nvar MatRadioChange = (function () {\n function MatRadioChange() {\n }\n return MatRadioChange;\n}());\nexport { MatRadioChange };\nfunction MatRadioChange_tsickle_Closure_declarations() {\n /**\n * The MatRadioButton that emits the change event.\n * @type {?}\n */\n MatRadioChange.prototype.source;\n /**\n * The value of the MatRadioButton.\n * @type {?}\n */\n MatRadioChange.prototype.value;\n}\n/**\n * \\@docs-private\n */\nvar MatRadioGroupBase = (function () {\n function MatRadioGroupBase() {\n }\n return MatRadioGroupBase;\n}());\nexport { MatRadioGroupBase };\nexport var /** @type {?} */ _MatRadioGroupMixinBase = mixinDisabled(MatRadioGroupBase);\n/**\n * A group of radio buttons. May contain one or more `` elements.\n */\nvar MatRadioGroup = (function (_super) {\n tslib_1.__extends(MatRadioGroup, _super);\n /**\n * @param {?} _changeDetector\n */\n function MatRadioGroup(_changeDetector) {\n var _this = _super.call(this) || this;\n _this._changeDetector = _changeDetector;\n /**\n * Selected value for group. Should equal the value of the selected radio button if there *is*\n * a corresponding radio button with a matching value. If there is *not* such a corresponding\n * radio button, this value persists to be applied in case a new radio button is added with a\n * matching value.\n */\n _this._value = null;\n /**\n * The HTML name attribute applied to radio buttons in this group.\n */\n _this._name = \"mat-radio-group-\" + nextUniqueId++;\n /**\n * The currently selected radio button. Should match value.\n */\n _this._selected = null;\n /**\n * Whether the `value` has been set to its initial value.\n */\n _this._isInitialized = false;\n /**\n * Whether the labels should appear after or before the radio-buttons. Defaults to 'after'\n */\n _this._labelPosition = 'after';\n /**\n * Whether the radio group is disabled.\n */\n _this._disabled = false;\n /**\n * Whether the radio group is required.\n */\n _this._required = false;\n /**\n * The method to be called in order to update ngModel\n */\n _this._controlValueAccessorChangeFn = function () { };\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n * \\@docs-private\n */\n _this.onTouched = function () { };\n /**\n * Event emitted when the group value changes.\n * Change events are only emitted when the value changes due to user interaction with\n * a radio button (the same behavior as ``).\n */\n _this.change = new EventEmitter();\n return _this;\n }\n Object.defineProperty(MatRadioGroup.prototype, \"name\", {\n /**\n * Name of the radio button group. All radio buttons inside this group will use this name.\n * @return {?}\n */\n get: function () { return this._name; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._name = value;\n this._updateRadioButtonNames();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatRadioGroup.prototype, \"align\", {\n /**\n * Alignment of the radio-buttons relative to their labels. Can be 'before' or 'after'.\n * @deprecated\n * @return {?}\n */\n get: function () {\n // align refers to the checkbox relative to the label, while labelPosition refers to the\n // label relative to the checkbox. As such, they are inverted.\n return this.labelPosition == 'after' ? 'start' : 'end';\n },\n /**\n * @param {?} v\n * @return {?}\n */\n set: function (v) {\n this.labelPosition = (v == 'start') ? 'after' : 'before';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatRadioGroup.prototype, \"labelPosition\", {\n /**\n * Whether the labels should appear after or before the radio-buttons. Defaults to 'after'\n * @return {?}\n */\n get: function () {\n return this._labelPosition;\n },\n /**\n * @param {?} v\n * @return {?}\n */\n set: function (v) {\n this._labelPosition = (v == 'before') ? 'before' : 'after';\n this._markRadiosForCheck();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatRadioGroup.prototype, \"value\", {\n /**\n * Value of the radio button.\n * @return {?}\n */\n get: function () { return this._value; },\n /**\n * @param {?} newValue\n * @return {?}\n */\n set: function (newValue) {\n if (this._value != newValue) {\n // Set this before proceeding to ensure no circular loop occurs with selection.\n this._value = newValue;\n this._updateSelectedRadioFromValue();\n this._checkSelectedRadioButton();\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatRadioGroup.prototype._checkSelectedRadioButton = function () {\n if (this._selected && !this._selected.checked) {\n this._selected.checked = true;\n }\n };\n Object.defineProperty(MatRadioGroup.prototype, \"selected\", {\n /**\n * Whether the radio button is selected.\n * @return {?}\n */\n get: function () { return this._selected; },\n /**\n * @param {?} selected\n * @return {?}\n */\n set: function (selected) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this._checkSelectedRadioButton();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatRadioGroup.prototype, \"disabled\", {\n /**\n * Whether the radio group is disabled\n * @return {?}\n */\n get: function () { return this._disabled; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._disabled = coerceBooleanProperty(value);\n this._markRadiosForCheck();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatRadioGroup.prototype, \"required\", {\n /**\n * Whether the radio group is required\n * @return {?}\n */\n get: function () { return this._required; },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._required = coerceBooleanProperty(value);\n this._markRadiosForCheck();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Initialize properties once content children are available.\n * This allows us to propagate relevant attributes to associated buttons.\n * @return {?}\n */\n MatRadioGroup.prototype.ngAfterContentInit = function () {\n // Mark this component as initialized in AfterContentInit because the initial value can\n // possibly be set by NgModel on MatRadioGroup, and it is possible that the OnInit of the\n // NgModel occurs *after* the OnInit of the MatRadioGroup.\n this._isInitialized = true;\n };\n /**\n * Mark this group as being \"touched\" (for ngModel). Meant to be called by the contained\n * radio buttons upon their blur.\n * @return {?}\n */\n MatRadioGroup.prototype._touch = function () {\n if (this.onTouched) {\n this.onTouched();\n }\n };\n /**\n * @return {?}\n */\n MatRadioGroup.prototype._updateRadioButtonNames = function () {\n var _this = this;\n if (this._radios) {\n this._radios.forEach(function (radio) {\n radio.name = _this.name;\n });\n }\n };\n /**\n * Updates the `selected` radio button from the internal _value state.\n * @return {?}\n */\n MatRadioGroup.prototype._updateSelectedRadioFromValue = function () {\n var _this = this;\n // If the value already matches the selected radio, do nothing.\n var /** @type {?} */ isAlreadySelected = this._selected != null && this._selected.value == this._value;\n if (this._radios != null && !isAlreadySelected) {\n this._selected = null;\n this._radios.forEach(function (radio) {\n radio.checked = _this.value == radio.value;\n if (radio.checked) {\n _this._selected = radio;\n }\n });\n }\n };\n /**\n * Dispatch change event with current selection and group value.\n * @return {?}\n */\n MatRadioGroup.prototype._emitChangeEvent = function () {\n if (this._isInitialized) {\n var /** @type {?} */ event_1 = new MatRadioChange();\n event_1.source = this._selected;\n event_1.value = this._value;\n this.change.emit(event_1);\n }\n };\n /**\n * @return {?}\n */\n MatRadioGroup.prototype._markRadiosForCheck = function () {\n if (this._radios) {\n this._radios.forEach(function (radio) { return radio._markForCheck(); });\n }\n };\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param {?} value\n * @return {?}\n */\n MatRadioGroup.prototype.writeValue = function (value) {\n this.value = value;\n this._changeDetector.markForCheck();\n };\n /**\n * Registers a callback to be triggered when the model value changes.\n * Implemented as part of ControlValueAccessor.\n * @param {?} fn Callback to be registered.\n * @return {?}\n */\n MatRadioGroup.prototype.registerOnChange = function (fn) {\n this._controlValueAccessorChangeFn = fn;\n };\n /**\n * Registers a callback to be triggered when the control is touched.\n * Implemented as part of ControlValueAccessor.\n * @param {?} fn Callback to be registered.\n * @return {?}\n */\n MatRadioGroup.prototype.registerOnTouched = function (fn) {\n this.onTouched = fn;\n };\n /**\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n * @param {?} isDisabled Whether the control should be disabled.\n * @return {?}\n */\n MatRadioGroup.prototype.setDisabledState = function (isDisabled) {\n this.disabled = isDisabled;\n this._changeDetector.markForCheck();\n };\n MatRadioGroup.decorators = [\n { type: Directive, args: [{\n selector: 'mat-radio-group',\n exportAs: 'matRadioGroup',\n providers: [MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR],\n host: {\n 'role': 'radiogroup',\n 'class': 'mat-radio-group',\n },\n inputs: ['disabled'],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatRadioGroup.ctorParameters = function () { return [\n { type: ChangeDetectorRef, },\n ]; };\n MatRadioGroup.propDecorators = {\n 'change': [{ type: Output },],\n '_radios': [{ type: ContentChildren, args: [forwardRef(function () { return MatRadioButton; }),] },],\n 'name': [{ type: Input },],\n 'align': [{ type: Input },],\n 'labelPosition': [{ type: Input },],\n 'value': [{ type: Input },],\n 'selected': [{ type: Input },],\n 'disabled': [{ type: Input },],\n 'required': [{ type: Input },],\n };\n return MatRadioGroup;\n}(_MatRadioGroupMixinBase));\nexport { MatRadioGroup };\nfunction MatRadioGroup_tsickle_Closure_declarations() {\n /** @type {?} */\n MatRadioGroup.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatRadioGroup.ctorParameters;\n /** @type {?} */\n MatRadioGroup.propDecorators;\n /**\n * Selected value for group. Should equal the value of the selected radio button if there *is*\n * a corresponding radio button with a matching value. If there is *not* such a corresponding\n * radio button, this value persists to be applied in case a new radio button is added with a\n * matching value.\n * @type {?}\n */\n MatRadioGroup.prototype._value;\n /**\n * The HTML name attribute applied to radio buttons in this group.\n * @type {?}\n */\n MatRadioGroup.prototype._name;\n /**\n * The currently selected radio button. Should match value.\n * @type {?}\n */\n MatRadioGroup.prototype._selected;\n /**\n * Whether the `value` has been set to its initial value.\n * @type {?}\n */\n MatRadioGroup.prototype._isInitialized;\n /**\n * Whether the labels should appear after or before the radio-buttons. Defaults to 'after'\n * @type {?}\n */\n MatRadioGroup.prototype._labelPosition;\n /**\n * Whether the radio group is disabled.\n * @type {?}\n */\n MatRadioGroup.prototype._disabled;\n /**\n * Whether the radio group is required.\n * @type {?}\n */\n MatRadioGroup.prototype._required;\n /**\n * The method to be called in order to update ngModel\n * @type {?}\n */\n MatRadioGroup.prototype._controlValueAccessorChangeFn;\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n * \\@docs-private\n * @type {?}\n */\n MatRadioGroup.prototype.onTouched;\n /**\n * Event emitted when the group value changes.\n * Change events are only emitted when the value changes due to user interaction with\n * a radio button (the same behavior as ``).\n * @type {?}\n */\n MatRadioGroup.prototype.change;\n /**\n * Child radio buttons.\n * @type {?}\n */\n MatRadioGroup.prototype._radios;\n /** @type {?} */\n MatRadioGroup.prototype._changeDetector;\n}\n/**\n * \\@docs-private\n */\nvar MatRadioButtonBase = (function () {\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\n function MatRadioButtonBase(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n }\n return MatRadioButtonBase;\n}());\nexport { MatRadioButtonBase };\nfunction MatRadioButtonBase_tsickle_Closure_declarations() {\n /** @type {?} */\n MatRadioButtonBase.prototype._renderer;\n /** @type {?} */\n MatRadioButtonBase.prototype._elementRef;\n}\n// As per Material design specifications the selection control radio should use the accent color\n// palette by default. https://material.io/guidelines/components/selection-controls.html\nexport var /** @type {?} */ _MatRadioButtonMixinBase = mixinColor(mixinDisableRipple(MatRadioButtonBase), 'accent');\n/**\n * A radio-button. May be inside of\n */\nvar MatRadioButton = (function (_super) {\n tslib_1.__extends(MatRadioButton, _super);\n /**\n * @param {?} radioGroup\n * @param {?} elementRef\n * @param {?} renderer\n * @param {?} _changeDetector\n * @param {?} _focusMonitor\n * @param {?} _radioDispatcher\n */\n function MatRadioButton(radioGroup, elementRef, renderer, _changeDetector, _focusMonitor, _radioDispatcher) {\n var _this = _super.call(this, renderer, elementRef) || this;\n _this._changeDetector = _changeDetector;\n _this._focusMonitor = _focusMonitor;\n _this._radioDispatcher = _radioDispatcher;\n _this._uniqueId = \"mat-radio-\" + ++nextUniqueId;\n /**\n * The unique ID for the radio button.\n */\n _this.id = _this._uniqueId;\n /**\n * Event emitted when the checked state of this radio button changes.\n * Change events are only emitted when the value changes due to user interaction with\n * the radio button (the same behavior as ``).\n */\n _this.change = new EventEmitter();\n /**\n * Whether this radio is checked.\n */\n _this._checked = false;\n /**\n * Value assigned to this radio.\n */\n _this._value = null;\n /**\n * Unregister function for _radioDispatcher *\n */\n _this._removeUniqueSelectionListener = function () { };\n // Assertions. Ideally these should be stripped out by the compiler.\n // TODO(jelbourn): Assert that there's no name binding AND a parent radio group.\n _this.radioGroup = radioGroup;\n _this._removeUniqueSelectionListener =\n _radioDispatcher.listen(function (id, name) {\n if (id != _this.id && name == _this.name) {\n _this.checked = false;\n }\n });\n return _this;\n }\n Object.defineProperty(MatRadioButton.prototype, \"checked\", {\n /**\n * Whether this radio button is checked.\n * @return {?}\n */\n get: function () {\n return this._checked;\n },\n /**\n * @param {?} newCheckedState\n * @return {?}\n */\n set: function (newCheckedState) {\n if (this._checked != newCheckedState) {\n this._checked = newCheckedState;\n if (newCheckedState && this.radioGroup && this.radioGroup.value != this.value) {\n this.radioGroup.selected = this;\n }\n else if (!newCheckedState && this.radioGroup && this.radioGroup.value == this.value) {\n // When unchecking the selected radio button, update the selected radio\n // property on the group.\n this.radioGroup.selected = null;\n }\n if (newCheckedState) {\n // Notify all radio buttons with the same name to un-check.\n this._radioDispatcher.notify(this.id, this.name);\n }\n this._changeDetector.markForCheck();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatRadioButton.prototype, \"value\", {\n /**\n * The value of this radio button.\n * @return {?}\n */\n get: function () {\n return this._value;\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n if (this._value != value) {\n this._value = value;\n if (this.radioGroup != null) {\n if (!this.checked) {\n // Update checked when the value changed to match the radio group's value\n this.checked = this.radioGroup.value == value;\n }\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatRadioButton.prototype, \"align\", {\n /**\n * Whether or not the radio-button should appear before or after the label.\n * @deprecated\n * @return {?}\n */\n get: function () {\n // align refers to the checkbox relative to the label, while labelPosition refers to the\n // label relative to the checkbox. As such, they are inverted.\n return this.labelPosition == 'after' ? 'start' : 'end';\n },\n /**\n * @param {?} v\n * @return {?}\n */\n set: function (v) {\n this.labelPosition = (v == 'start') ? 'after' : 'before';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatRadioButton.prototype, \"labelPosition\", {\n /**\n * Whether the label should appear after or before the radio button. Defaults to 'after'\n * @return {?}\n */\n get: function () {\n return this._labelPosition || (this.radioGroup && this.radioGroup.labelPosition) || 'after';\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._labelPosition = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatRadioButton.prototype, \"disabled\", {\n /**\n * Whether the radio button is disabled.\n * @return {?}\n */\n get: function () {\n return this._disabled || (this.radioGroup != null && this.radioGroup.disabled);\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._disabled = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatRadioButton.prototype, \"required\", {\n /**\n * Whether the radio button is required.\n * @return {?}\n */\n get: function () {\n return this._required || (this.radioGroup && this.radioGroup.required);\n },\n /**\n * @param {?} value\n * @return {?}\n */\n set: function (value) {\n this._required = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatRadioButton.prototype, \"inputId\", {\n /**\n * ID of the native input element inside ``\n * @return {?}\n */\n get: function () { return (this.id || this._uniqueId) + \"-input\"; },\n enumerable: true,\n configurable: true\n });\n /**\n * Focuses the radio button.\n * @return {?}\n */\n MatRadioButton.prototype.focus = function () {\n this._focusMonitor.focusVia(this._inputElement.nativeElement, 'keyboard');\n };\n /**\n * Marks the radio button as needing checking for change detection.\n * This method is exposed because the parent radio group will directly\n * update bound properties of the radio button.\n * @return {?}\n */\n MatRadioButton.prototype._markForCheck = function () {\n // When group value changes, the button will not be notified. Use `markForCheck` to explicit\n // update radio button's status\n this._changeDetector.markForCheck();\n };\n /**\n * @return {?}\n */\n MatRadioButton.prototype.ngOnInit = function () {\n if (this.radioGroup) {\n // If the radio is inside a radio group, determine if it should be checked\n this.checked = this.radioGroup.value === this._value;\n // Copy name from parent radio group\n this.name = this.radioGroup.name;\n }\n };\n /**\n * @return {?}\n */\n MatRadioButton.prototype.ngAfterViewInit = function () {\n var _this = this;\n this._focusMonitor\n .monitor(this._inputElement.nativeElement, this._renderer, false)\n .subscribe(function (focusOrigin) { return _this._onInputFocusChange(focusOrigin); });\n };\n /**\n * @return {?}\n */\n MatRadioButton.prototype.ngOnDestroy = function () {\n this._focusMonitor.stopMonitoring(this._inputElement.nativeElement);\n this._removeUniqueSelectionListener();\n };\n /**\n * Dispatch change event with current value.\n * @return {?}\n */\n MatRadioButton.prototype._emitChangeEvent = function () {\n var /** @type {?} */ event = new MatRadioChange();\n event.source = this;\n event.value = this._value;\n this.change.emit(event);\n };\n /**\n * @return {?}\n */\n MatRadioButton.prototype._isRippleDisabled = function () {\n return this.disableRipple || this.disabled;\n };\n /**\n * @param {?} event\n * @return {?}\n */\n MatRadioButton.prototype._onInputClick = function (event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `radio-button` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n };\n /**\n * Triggered when the radio button received a click or the input recognized any change.\n * Clicking on a label element, will trigger a change event on the associated input.\n * @param {?} event\n * @return {?}\n */\n MatRadioButton.prototype._onInputChange = function (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 var /** @type {?} */ groupValueChanged = this.radioGroup && this.value != this.radioGroup.value;\n this.checked = true;\n this._emitChangeEvent();\n if (this.radioGroup) {\n this.radioGroup._controlValueAccessorChangeFn(this.value);\n this.radioGroup._touch();\n if (groupValueChanged) {\n this.radioGroup._emitChangeEvent();\n }\n }\n };\n /**\n * Function is called whenever the focus changes for the input element.\n * @param {?} focusOrigin\n * @return {?}\n */\n MatRadioButton.prototype._onInputFocusChange = function (focusOrigin) {\n if (!this._focusRipple && focusOrigin === 'keyboard') {\n this._focusRipple = this._ripple.launch(0, 0, { persistent: true, centered: true });\n }\n else if (!focusOrigin) {\n if (this.radioGroup) {\n this.radioGroup._touch();\n }\n if (this._focusRipple) {\n this._focusRipple.fadeOut();\n this._focusRipple = null;\n }\n }\n };\n MatRadioButton.decorators = [\n { type: Component, args: [{selector: 'mat-radio-button',\n template: \"\",\n styles: [\".mat-radio-button{display:inline-block}.mat-radio-label{cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;vertical-align:middle}.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-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(.001)}.mat-radio-checked .mat-radio-inner-circle{transform:scale(.5)}.mat-radio-label-content{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-ripple{position:absolute;left:-15px;top:-15px;right:-15px;bottom:-15px;border-radius:50%;z-index:1;pointer-events:none}\"],\n inputs: ['color', 'disableRipple'],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n exportAs: 'matRadioButton',\n host: {\n 'class': 'mat-radio-button',\n '[class.mat-radio-checked]': 'checked',\n '[class.mat-radio-disabled]': 'disabled',\n '[attr.id]': 'id',\n // Note: under normal conditions focus shouldn't land on this element, however it may be\n // programmatically set, for example inside of a focus trap, in this case we want to forward\n // the focus to the native element.\n '(focus)': '_inputElement.nativeElement.focus()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /**\n * @nocollapse\n */\n MatRadioButton.ctorParameters = function () { return [\n { type: MatRadioGroup, decorators: [{ type: Optional },] },\n { type: ElementRef, },\n { type: Renderer2, },\n { type: ChangeDetectorRef, },\n { type: FocusMonitor, },\n { type: UniqueSelectionDispatcher, },\n ]; };\n MatRadioButton.propDecorators = {\n 'id': [{ type: Input },],\n 'name': [{ type: Input },],\n 'ariaLabel': [{ type: Input, args: ['aria-label',] },],\n 'ariaLabelledby': [{ type: Input, args: ['aria-labelledby',] },],\n 'checked': [{ type: Input },],\n 'value': [{ type: Input },],\n 'align': [{ type: Input },],\n 'labelPosition': [{ type: Input },],\n 'disabled': [{ type: Input },],\n 'required': [{ type: Input },],\n 'change': [{ type: Output },],\n '_ripple': [{ type: ViewChild, args: [MatRipple,] },],\n '_inputElement': [{ type: ViewChild, args: ['input',] },],\n };\n return MatRadioButton;\n}(_MatRadioButtonMixinBase));\nexport { MatRadioButton };\nfunction MatRadioButton_tsickle_Closure_declarations() {\n /** @type {?} */\n MatRadioButton.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatRadioButton.ctorParameters;\n /** @type {?} */\n MatRadioButton.propDecorators;\n /** @type {?} */\n MatRadioButton.prototype._uniqueId;\n /**\n * The unique ID for the radio button.\n * @type {?}\n */\n MatRadioButton.prototype.id;\n /**\n * Analog to HTML 'name' attribute used to group radios for unique selection.\n * @type {?}\n */\n MatRadioButton.prototype.name;\n /**\n * Used to set the 'aria-label' attribute on the underlying input element.\n * @type {?}\n */\n MatRadioButton.prototype.ariaLabel;\n /**\n * The 'aria-labelledby' attribute takes precedence as the element's text alternative.\n * @type {?}\n */\n MatRadioButton.prototype.ariaLabelledby;\n /** @type {?} */\n MatRadioButton.prototype._labelPosition;\n /**\n * Event emitted when the checked state of this radio button changes.\n * Change events are only emitted when the value changes due to user interaction with\n * the radio button (the same behavior as ``).\n * @type {?}\n */\n MatRadioButton.prototype.change;\n /**\n * The parent radio group. May or may not be present.\n * @type {?}\n */\n MatRadioButton.prototype.radioGroup;\n /**\n * Whether this radio is checked.\n * @type {?}\n */\n MatRadioButton.prototype._checked;\n /**\n * Whether this radio is disabled.\n * @type {?}\n */\n MatRadioButton.prototype._disabled;\n /**\n * Whether this radio is required.\n * @type {?}\n */\n MatRadioButton.prototype._required;\n /**\n * Value assigned to this radio.\n * @type {?}\n */\n MatRadioButton.prototype._value;\n /**\n * The child ripple instance.\n * @type {?}\n */\n MatRadioButton.prototype._ripple;\n /**\n * Reference to the current focus ripple.\n * @type {?}\n */\n MatRadioButton.prototype._focusRipple;\n /**\n * Unregister function for _radioDispatcher *\n * @type {?}\n */\n MatRadioButton.prototype._removeUniqueSelectionListener;\n /**\n * The native `` element\n * @type {?}\n */\n MatRadioButton.prototype._inputElement;\n /** @type {?} */\n MatRadioButton.prototype._changeDetector;\n /** @type {?} */\n MatRadioButton.prototype._focusMonitor;\n /** @type {?} */\n MatRadioButton.prototype._radioDispatcher;\n}\n//# sourceMappingURL=radio.js.map","/**\n * @license\n * Copyright Google Inc. 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.io/license\n */\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VIEWPORT_RULER_PROVIDER } from '@angular/cdk/overlay';\nimport { MatRippleModule, MatCommonModule, } from '@angular/material/core';\nimport { MatRadioGroup, MatRadioButton } from './radio';\nimport { UNIQUE_SELECTION_DISPATCHER_PROVIDER } from '@angular/cdk/collections';\nimport { A11yModule } from '@angular/cdk/a11y';\nvar MatRadioModule = (function () {\n function MatRadioModule() {\n }\n MatRadioModule.decorators = [\n { type: NgModule, args: [{\n imports: [CommonModule, MatRippleModule, MatCommonModule, A11yModule],\n exports: [MatRadioGroup, MatRadioButton, MatCommonModule],\n providers: [UNIQUE_SELECTION_DISPATCHER_PROVIDER, VIEWPORT_RULER_PROVIDER],\n declarations: [MatRadioGroup, MatRadioButton],\n },] },\n ];\n /**\n * @nocollapse\n */\n MatRadioModule.ctorParameters = function () { return []; };\n return MatRadioModule;\n}());\nexport { MatRadioModule };\nfunction MatRadioModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatRadioModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatRadioModule.ctorParameters;\n}\n//# sourceMappingURL=radio-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { MatRadioModule, MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, MatRadioChange, MatRadioGroupBase, _MatRadioGroupMixinBase, MatRadioGroup, MatRadioButtonBase, _MatRadioButtonMixinBase, MatRadioButton } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["tslib_1.__extends"],"mappings":";;;;;;;;;;;;;;;;;;AAcA;AACA,IAAqB,YAAY,GAAG,CAAC,CAAC;;;;;;AAMtC,AAAO,IAAI,sCAAsC,GAAG;IAChD,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,UAAU,CAAC,YAAY,EAAE,OAAO,aAAa,CAAC,EAAE,CAAC;IAC9D,KAAK,EAAE,IAAI;CACd,CAAC;;;;AAIF,IAAI,cAAc,IAAI,YAAY;IAC9B,SAAS,cAAc,GAAG;KACzB;IACD,OAAO,cAAc,CAAC;CACzB,EAAE,CAAC,CAAC;AACL,AACA,AAYA;;;AAGA,IAAI,iBAAiB,IAAI,YAAY;IACjC,SAAS,iBAAiB,GAAG;KAC5B;IACD,OAAO,iBAAiB,CAAC;CAC5B,EAAE,CAAC,CAAC;AACL,AACA,AAAO,IAAqB,uBAAuB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;;;;AAIvF,IAAI,aAAa,IAAI,UAAU,MAAM,EAAE;IACnCA,SAAiB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;;;;IAIzC,SAAS,aAAa,CAAC,eAAe,EAAE;QACpC,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACtC,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;;;;;;;QAOxC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;;;QAIpB,KAAK,CAAC,KAAK,GAAG,kBAAkB,GAAG,YAAY,EAAE,CAAC;;;;QAIlD,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;;;;QAIvB,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;;;;QAI7B,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;;;;QAI/B,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;;;;QAIxB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;;;;QAIxB,KAAK,CAAC,6BAA6B,GAAG,YAAY,GAAG,CAAC;;;;;QAKtD,KAAK,CAAC,SAAS,GAAG,YAAY,GAAG,CAAC;;;;;;QAMlC,KAAK,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;KAChB;IACD,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE;;;;;QAKnD,GAAG,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE;;;;;QAKvC,GAAG,EAAE,UAAU,KAAK,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAClC;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE;;;;;;QAMpD,GAAG,EAAE,YAAY;;;YAGb,OAAO,IAAI,CAAC,aAAa,IAAI,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;SAC1D;;;;;QAKD,GAAG,EAAE,UAAU,CAAC,EAAE;YACd,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,OAAO,IAAI,OAAO,GAAG,QAAQ,CAAC;SAC5D;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,eAAe,EAAE;;;;;QAK5D,GAAG,EAAE,YAAY;YACb,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;;;;;QAKD,GAAG,EAAE,UAAU,CAAC,EAAE;YACd,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,QAAQ,IAAI,QAAQ,GAAG,OAAO,CAAC;YAC3D,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE;;;;;QAKpD,GAAG,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE;;;;;QAKxC,GAAG,EAAE,UAAU,QAAQ,EAAE;YACrB,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE;;gBAEzB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBACrC,IAAI,CAAC,yBAAyB,EAAE,CAAC;aACpC;SACJ;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;;;;IAIH,aAAa,CAAC,SAAS,CAAC,yBAAyB,GAAG,YAAY;QAC5D,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;SACjC;KACJ,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE;;;;;QAKvD,GAAG,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE;;;;;QAK3C,GAAG,EAAE,UAAU,QAAQ,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;YAC9C,IAAI,CAAC,yBAAyB,EAAE,CAAC;SACpC;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE;;;;;QAKvD,GAAG,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE;;;;;QAK3C,GAAG,EAAE,UAAU,KAAK,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE;;;;;QAKvD,GAAG,EAAE,YAAY,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE;;;;;QAK3C,GAAG,EAAE,UAAU,KAAK,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;;;;;;IAMH,aAAa,CAAC,SAAS,CAAC,kBAAkB,GAAG,YAAY;;;;QAIrD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC9B,CAAC;;;;;;IAMF,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;QACzC,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;KACJ,CAAC;;;;IAIF,aAAa,CAAC,SAAS,CAAC,uBAAuB,GAAG,YAAY;QAC1D,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;gBAClC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;SACN;KACJ,CAAC;;;;;IAKF,aAAa,CAAC,SAAS,CAAC,6BAA6B,GAAG,YAAY;QAChE,IAAI,KAAK,GAAG,IAAI,CAAC;;QAEjB,qBAAqB,iBAAiB,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;QACvG,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;gBAClC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;gBAC3C,IAAI,KAAK,CAAC,OAAO,EAAE;oBACf,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;iBAC3B;aACJ,CAAC,CAAC;SACN;KACJ,CAAC;;;;;IAKF,aAAa,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAY;QACnD,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,qBAAqB,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;YACpD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC7B;KACJ,CAAC;;;;IAIF,aAAa,CAAC,SAAS,CAAC,mBAAmB,GAAG,YAAY;QACtD,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE,EAAE,OAAO,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;SAC5E;KACJ,CAAC;;;;;;IAMF,aAAa,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE;QAClD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;KACvC,CAAC;;;;;;;IAOF,aAAa,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,EAAE,EAAE;QACrD,IAAI,CAAC,6BAA6B,GAAG,EAAE,CAAC;KAC3C,CAAC;;;;;;;IAOF,aAAa,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,EAAE,EAAE;QACtD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB,CAAC;;;;;;IAMF,aAAa,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,UAAU,EAAE;QAC7D,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;KACvC,CAAC;IACF,aAAa,CAAC,UAAU,GAAG;QACvB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;oBACd,QAAQ,EAAE,iBAAiB;oBAC3B,QAAQ,EAAE,eAAe;oBACzB,SAAS,EAAE,CAAC,sCAAsC,CAAC;oBACnD,IAAI,EAAE;wBACF,MAAM,EAAE,YAAY;wBACpB,OAAO,EAAE,iBAAiB;qBAC7B;oBACD,MAAM,EAAE,CAAC,UAAU,CAAC;iBACvB,EAAE,EAAE;KAChB,CAAC;;;;IAIF,aAAa,CAAC,cAAc,GAAG,YAAY,EAAE,OAAO;QAChD,EAAE,IAAI,EAAE,iBAAiB,GAAG;KAC/B,CAAC,EAAE,CAAC;IACL,aAAa,CAAC,cAAc,GAAG;QAC3B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC7B,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;QACpG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC1B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACnC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9B,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9B,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;KACjC,CAAC;IACF,OAAO,aAAa,CAAC;CACxB,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAC5B,AACA,AA0EA;;;AAGA,IAAI,kBAAkB,IAAI,YAAY;;;;;IAKlC,SAAS,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE;QAChD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAClC;IACD,OAAO,kBAAkB,CAAC;CAC7B,EAAE,CAAC,CAAC;AACL,AACA,AAMA;;AAEA,AAAO,IAAqB,wBAAwB,GAAG,UAAU,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,CAAC;;;;AAIpH,IAAI,cAAc,IAAI,UAAU,MAAM,EAAE;IACpCA,SAAiB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;;;;;;;;;IAS1C,SAAS,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE;QACxG,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC;QAC5D,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;QACxC,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;QACpC,KAAK,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC1C,KAAK,CAAC,SAAS,GAAG,YAAY,GAAG,EAAE,YAAY,CAAC;;;;QAIhD,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;;;;;;QAM3B,KAAK,CAAC,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;;;;QAIlC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;;;;QAIvB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;;;;QAIpB,KAAK,CAAC,8BAA8B,GAAG,YAAY,GAAG,CAAC;;;QAGvD,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC9B,KAAK,CAAC,8BAA8B;YAChC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE;gBACxC,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE;oBACtC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;iBACzB;aACJ,CAAC,CAAC;QACP,OAAO,KAAK,CAAC;KAChB;IACD,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE;;;;;QAKvD,GAAG,EAAE,YAAY;YACb,OAAO,IAAI,CAAC,QAAQ,CAAC;SACxB;;;;;QAKD,GAAG,EAAE,UAAU,eAAe,EAAE;YAC5B,IAAI,IAAI,CAAC,QAAQ,IAAI,eAAe,EAAE;gBAClC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;gBAChC,IAAI,eAAe,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;oBAC3E,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACnC;qBACI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;;;oBAGjF,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACnC;gBACD,IAAI,eAAe,EAAE;;oBAEjB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpD;gBACD,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;aACvC;SACJ;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE;;;;;QAKrD,GAAG,EAAE,YAAY;YACb,OAAO,IAAI,CAAC,MAAM,CAAC;SACtB;;;;;QAKD,GAAG,EAAE,UAAU,KAAK,EAAE;YAClB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;gBACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;oBACzB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;;wBAEf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC;qBACjD;oBACD,IAAI,IAAI,CAAC,OAAO,EAAE;wBACd,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;qBACnC;iBACJ;aACJ;SACJ;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE;;;;;;QAMrD,GAAG,EAAE,YAAY;;;YAGb,OAAO,IAAI,CAAC,aAAa,IAAI,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;SAC1D;;;;;QAKD,GAAG,EAAE,UAAU,CAAC,EAAE;YACd,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,OAAO,IAAI,OAAO,GAAG,QAAQ,CAAC;SAC5D;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE;;;;;QAK7D,GAAG,EAAE,YAAY;YACb,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC;SAC/F;;;;;QAKD,GAAG,EAAE,UAAU,KAAK,EAAE;YAClB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC/B;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE;;;;;QAKxD,GAAG,EAAE,YAAY;YACb,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAClF;;;;;QAKD,GAAG,EAAE,UAAU,KAAK,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;SACjD;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE;;;;;QAKxD,GAAG,EAAE,YAAY;YACb,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAC1E;;;;;QAKD,GAAG,EAAE,UAAU,KAAK,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;SACjD;QACD,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE;;;;;QAKvD,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE;QACnE,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;;;;;IAKH,cAAc,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;QACzC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;KAC7E,CAAC;;;;;;;IAOF,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;;;QAGjD,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;KACvC,CAAC;;;;IAIF,cAAc,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;QAC5C,IAAI,IAAI,CAAC,UAAU,EAAE;;YAEjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC;;YAErD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;SACpC;KACJ,CAAC;;;;IAIF,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,YAAY;QACnD,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa;aACb,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;aAChE,SAAS,CAAC,UAAU,WAAW,EAAE,EAAE,OAAO,KAAK,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;KAC7F,CAAC;;;;IAIF,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;QAC/C,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACpE,IAAI,CAAC,8BAA8B,EAAE,CAAC;KACzC,CAAC;;;;;IAKF,cAAc,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAY;QACpD,qBAAqB,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC;QAClD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B,CAAC;;;;IAIF,cAAc,CAAC,SAAS,CAAC,iBAAiB,GAAG,YAAY;QACrD,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC;KAC9C,CAAC;;;;;IAKF,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE;;;;;;;;QAQtD,KAAK,CAAC,eAAe,EAAE,CAAC;KAC3B,CAAC;;;;;;;IAOF,cAAc,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,KAAK,EAAE;;;;QAIvD,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,qBAAqB,iBAAiB,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAChG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,iBAAiB,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;aACtC;SACJ;KACJ,CAAC;;;;;;IAMF,cAAc,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,WAAW,EAAE;QAClE,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,WAAW,KAAK,UAAU,EAAE;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;SACvF;aACI,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aAC5B;YACD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC5B;SACJ;KACJ,CAAC;IACF,cAAc,CAAC,UAAU,GAAG;QACxB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,kBAAkB;oBAC3C,QAAQ,EAAE,q1BAAq1B;oBAC/1B,MAAM,EAAE,CAAC,kwCAAkwC,CAAC;oBAC5wC,MAAM,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC;oBAClC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,mBAAmB,EAAE,KAAK;oBAC1B,QAAQ,EAAE,gBAAgB;oBAC1B,IAAI,EAAE;wBACF,OAAO,EAAE,kBAAkB;wBAC3B,2BAA2B,EAAE,SAAS;wBACtC,4BAA4B,EAAE,UAAU;wBACxC,WAAW,EAAE,IAAI;;;;wBAIjB,SAAS,EAAE,qCAAqC;qBACnD;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD,EAAE,EAAE;KAChB,CAAC;;;;IAIF,cAAc,CAAC,cAAc,GAAG,YAAY,EAAE,OAAO;QACjD,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1D,EAAE,IAAI,EAAE,UAAU,GAAG;QACrB,EAAE,IAAI,EAAE,SAAS,GAAG;QACpB,EAAE,IAAI,EAAE,iBAAiB,GAAG;QAC5B,EAAE,IAAI,EAAE,YAAY,GAAG;QACvB,EAAE,IAAI,EAAE,yBAAyB,GAAG;KACvC,CAAC,EAAE,CAAC;IACL,cAAc,CAAC,cAAc,GAAG;QAC5B,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACxB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC1B,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE;QACtD,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE;QAChE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC7B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACnC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9B,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC7B,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE;QACrD,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE;KAC5D,CAAC;IACF,OAAO,cAAc,CAAC;CACzB,CAAC,wBAAwB,CAAC,CAAC,CAAC,AAC7B,AACA,AA4FC,AACD;;ACr6BA,IAAI,cAAc,IAAI,YAAY;IAC9B,SAAS,cAAc,GAAG;KACzB;IACD,cAAc,CAAC,UAAU,GAAG;QACxB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oBACb,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,CAAC;oBACrE,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC;oBACzD,SAAS,EAAE,CAAC,oCAAoC,EAAE,uBAAuB,CAAC;oBAC1E,YAAY,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;iBAChD,EAAE,EAAE;KAChB,CAAC;;;;IAIF,cAAc,CAAC,cAAc,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC3D,OAAO,cAAc,CAAC;CACzB,EAAE,CAAC,CAAC,AACL,AACA,AAQC,AACD;;ACzCA;;GAEG,AACH,AAA+N,AAC/N;;"}