1import { 2 MatPseudoCheckbox, 3 SelectionModel 4} from "./chunk-PMEVESUG.js"; 5import { 6 DOWN_ARROW, 7 ENTER, 8 FocusMonitor, 9 LEFT_ARROW, 10 MatCommonModule, 11 MatRipple, 12 MatRippleModule, 13 RIGHT_ARROW, 14 SPACE, 15 UP_ARROW, 16 _CdkPrivateStyleLoader, 17 _IdGenerator, 18 _StructuralStylesLoader 19} from "./chunk-XVJVOIUG.js"; 20import { 21 Directionality 22} from "./chunk-X25WEEDB.js"; 23import { 24 NG_VALUE_ACCESSOR 25} from "./chunk-4BWSLYHL.js"; 26import { 27 ANIMATION_MODULE_TYPE, 28 ChangeDetectionStrategy, 29 ChangeDetectorRef, 30 Component, 31 ContentChildren, 32 Directive, 33 ElementRef, 34 EventEmitter, 35 HostAttributeToken, 36 InjectionToken, 37 Input, 38 NgModule, 39 Output, 40 ViewChild, 41 ViewEncapsulation, 42 booleanAttribute, 43 forwardRef, 44 inject, 45 setClassMetadata, 46 ɵɵProvidersFeature, 47 ɵɵadvance, 48 ɵɵattribute, 49 ɵɵclassProp, 50 ɵɵconditional, 51 ɵɵcontentQuery, 52 ɵɵdefineComponent, 53 ɵɵdefineDirective, 54 ɵɵdefineInjector, 55 ɵɵdefineNgModule, 56 ɵɵelement, 57 ɵɵelementEnd, 58 ɵɵelementStart, 59 ɵɵgetCurrentView, 60 ɵɵlistener, 61 ɵɵloadQuery, 62 ɵɵnextContext, 63 ɵɵprojection, 64 ɵɵprojectionDef, 65 ɵɵproperty, 66 ɵɵqueryRefresh, 67 ɵɵreference, 68 ɵɵresetView, 69 ɵɵrestoreView, 70 ɵɵtemplate, 71 ɵɵviewQuery 72} from "./chunk-6GJQIPT2.js"; 73 74// node_modules/@angular/material/fesm2022/button-toggle.mjs 75var _c0 = ["button"]; 76var _c1 = ["*"]; 77function MatButtonToggle_Conditional_2_Template(rf, ctx) { 78 if (rf & 1) { 79 \u0275\u0275elementStart(0, "div", 2); 80 \u0275\u0275element(1, "mat-pseudo-checkbox", 6); 81 \u0275\u0275elementEnd(); 82 } 83 if (rf & 2) { 84 const ctx_r1 = \u0275\u0275nextContext(); 85 \u0275\u0275advance(); 86 \u0275\u0275property("disabled", ctx_r1.disabled); 87 } 88} 89var MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS = new InjectionToken("MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS", { 90 providedIn: "root", 91 factory: MAT_BUTTON_TOGGLE_GROUP_DEFAULT_OPTIONS_FACTORY 92}); 93function MAT_BUTTON_TOGGLE_GROUP_DEFAULT_OPTIONS_FACTORY() { 94 return { 95 hideSingleSelectionIndicator: false, 96 hideMultipleSelectionIndicator: false, 97 disabledInteractive: false 98 }; 99} 100var MAT_BUTTON_TOGGLE_GROUP = new InjectionToken("MatButtonToggleGroup"); 101var MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR = { 102 provide: NG_VALUE_ACCESSOR, 103 useExisting: forwardRef(() => MatButtonToggleGroup), 104 multi: true 105}; 106var MatButtonToggleChange = class { 107 source; 108 value; 109 constructor(source, value) { 110 this.source = source; 111 this.value = value; 112 } 113}; 114var MatButtonToggleGroup = class _MatButtonToggleGroup { 115 _changeDetector = inject(ChangeDetectorRef); 116 _dir = inject(Directionality, { 117 optional: true 118 }); 119 _multiple = false; 120 _disabled = false; 121 _disabledInteractive = false; 122 _selectionModel; 123 /** 124 * Reference to the raw value that the consumer tried to assign. The real 125 * value will exclude any values from this one that don't correspond to a 126 * toggle. Useful for the cases where the value is assigned before the toggles 127 * have been initialized or at the same that they're being swapped out. 128 */ 129 _rawValue; 130 /** 131 * The method to be called in order to update ngModel. 132 * Now `ngModel` binding is not supported in multiple selection mode. 133 */ 134 _controlValueAccessorChangeFn = () => { 135 }; 136 /** onTouch function registered via registerOnTouch (ControlValueAccessor). */ 137 _onTouched = () => { 138 }; 139 /** Child button toggle buttons. */ 140 _buttonToggles; 141 /** The appearance for all the buttons in the group. */ 142 appearance; 143 /** `name` attribute for the underlying `input` element. */ 144 get name() { 145 return this._name; 146 } 147 set name(value) { 148 this._name = value; 149 this._markButtonsForCheck(); 150 } 151 _name = inject(_IdGenerator).getId("mat-button-toggle-group-"); 152 /** Whether the toggle group is vertical. */ 153 vertical; 154 /** Value of the toggle group. */ 155 get value() { 156 const selected = this._selectionModel ? this._selectionModel.selected : []; 157 if (this.multiple) { 158 return selected.map((toggle) => toggle.value); 159 } 160 return selected[0] ? selected[0].value : void 0; 161 } 162 set value(newValue) { 163 this._setSelectionByValue(newValue); 164 this.valueChange.emit(this.value); 165 } 166 /** 167 * Event that emits whenever the value of the group changes. 168 * Used to facilitate two-way data binding. 169 * @docs-private 170 */ 171 valueChange = new EventEmitter(); 172 /** Selected button toggles in the group. */ 173 get selected() { 174 const selected = this._selectionModel ? this._selectionModel.selected : []; 175 return this.multiple ? selected : selected[0] || null; 176 } 177 /** Whether multiple button toggles can be selected. */ 178 get multiple() { 179 return this._multiple; 180 } 181 set multiple(value) { 182 this._multiple = value; 183 this._markButtonsForCheck(); 184 } 185 /** Whether multiple button toggle group is disabled. */ 186 get disabled() { 187 return this._disabled; 188 } 189 set disabled(value) { 190 this._disabled = value; 191 this._markButtonsForCheck(); 192 } 193 /** Whether buttons in the group should be interactive while they're disabled. */ 194 get disabledInteractive() { 195 return this._disabledInteractive; 196 } 197 set disabledInteractive(value) { 198 this._disabledInteractive = value; 199 this._markButtonsForCheck(); 200 } 201 /** The layout direction of the toggle button group. */ 202 get dir() { 203 return this._dir && this._dir.value === "rtl" ? "rtl" : "ltr"; 204 } 205 /** Event emitted when the group's value changes. */ 206 change = new EventEmitter(); 207 /** Whether checkmark indicator for single-selection button toggle groups is hidden. */ 208 get hideSingleSelectionIndicator() { 209 return this._hideSingleSelectionIndicator; 210 } 211 set hideSingleSelectionIndicator(value) { 212 this._hideSingleSelectionIndicator = value; 213 this._markButtonsForCheck(); 214 } 215 _hideSingleSelectionIndicator; 216 /** Whether checkmark indicator for multiple-selection button toggle groups is hidden. */ 217 get hideMultipleSelectionIndicator() { 218 return this._hideMultipleSelectionIndicator; 219 } 220 set hideMultipleSelectionIndicator(value) { 221 this._hideMultipleSelectionIndicator = value; 222 this._markButtonsForCheck(); 223 } 224 _hideMultipleSelectionIndicator; 225 constructor() { 226 const defaultOptions = inject(MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS, { 227 optional: true 228 }); 229 this.appearance = defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : "standard";
230 this.hideSingleSelectionIndicator = defaultOptions?.hideSingleSelectionIndicator ?? false; 231 this.hideMultipleSelectionIndicator = defaultOptions?.hideMultipleSelectionIndicator ?? false; 232 } 233 ngOnInit() { 234 this._selectionModel = new SelectionModel(this.multiple, void 0, false); 235 } 236 ngAfterContentInit() { 237 this._selectionModel.select(...this._buttonToggles.filter((toggle) => toggle.checked)); 238 if (!this.multiple) { 239 this._initializeTabIndex(); 240 } 241 } 242 /** 243 * Sets the model value. Implemented as part of ControlValueAccessor. 244 * @param value Value to be set to the model. 245 */ 246 writeValue(value) { 247 this.value = value; 248 this._changeDetector.markForCheck(); 249 } 250 // Implemented as part of ControlValueAccessor. 251 registerOnChange(fn) { 252 this._controlValueAccessorChangeFn = fn; 253 } 254 // Implemented as part of ControlValueAccessor. 255 registerOnTouched(fn) { 256 this._onTouched = fn; 257 } 258 // Implemented as part of ControlValueAccessor. 259 setDisabledState(isDisabled) { 260 this.disabled = isDisabled; 261 } 262 /** Handle keydown event calling to single-select button toggle. */ 263 _keydown(event) { 264 if (this.multiple || this.disabled) { 265 return; 266 } 267 const target = event.target; 268 const buttonId = target.id; 269 const index = this._buttonToggles.toArray().findIndex((toggle) => { 270 return toggle.buttonId === buttonId; 271 }); 272 let nextButton = null; 273 switch (event.keyCode) { 274 case SPACE: 275 case ENTER: 276 nextButton = this._buttonToggles.get(index) || null; 277 break; 278 case UP_ARROW: 279 nextButton = this._getNextButton(index, -1); 280 break; 281 case LEFT_ARROW: 282 nextButton = this._getNextButton(index, this.dir === "ltr" ? -1 : 1); 283 break; 284 case DOWN_ARROW: 285 nextButton = this._getNextButton(index, 1); 286 break; 287 case RIGHT_ARROW: 288 nextButton = this._getNextButton(index, this.dir === "ltr" ? 1 : -1); 289 break; 290 default: 291 return; 292 } 293 if (nextButton) { 294 event.preventDefault(); 295 nextButton._onButtonClick(); 296 nextButton.focus(); 297 } 298 } 299 /** Dispatch change event with current selection and group value. */ 300 _emitChangeEvent(toggle) { 301 const event = new MatButtonToggleChange(toggle, this.value); 302 this._rawValue = event.value; 303 this._controlValueAccessorChangeFn(event.value); 304 this.change.emit(event); 305 } 306 /** 307 * Syncs a button toggle's selected state with the model value. 308 * @param toggle Toggle to be synced. 309 * @param select Whether the toggle should be selected. 310 * @param isUserInput Whether the change was a result of a user interaction. 311 * @param deferEvents Whether to defer emitting the change events. 312 */ 313 _syncButtonToggle(toggle, select, isUserInput = false, deferEvents = false) { 314 if (!this.multiple && this.selected && !toggle.checked) { 315 this.selected.checked = false; 316 } 317 if (this._selectionModel) { 318 if (select) { 319 this._selectionModel.select(toggle); 320 } else { 321 this._selectionModel.deselect(toggle); 322 } 323 } else { 324 deferEvents = true; 325 } 326 if (deferEvents) { 327 Promise.resolve().then(() => this._updateModelValue(toggle, isUserInput)); 328 } else { 329 this._updateModelValue(toggle, isUserInput); 330 } 331 } 332 /** Checks whether a button toggle is selected. */ 333 _isSelected(toggle) { 334 return this._selectionModel && this._selectionModel.isSelected(toggle); 335 } 336 /** Determines whether a button toggle should be checked on init. */ 337 _isPrechecked(toggle) { 338 if (typeof this._rawValue === "undefined") { 339 return false; 340 } 341 if (this.multiple && Array.isArray(this._rawValue)) { 342 return this._rawValue.some((value) => toggle.value != null && value === toggle.value); 343 } 344 return toggle.value === this._rawValue; 345 } 346 /** Initializes the tabindex attribute using the radio pattern. */ 347 _initializeTabIndex() { 348 this._buttonToggles.forEach((toggle) => { 349 toggle.tabIndex = -1; 350 }); 351 if (this.selected) { 352 this.selected.tabIndex = 0; 353 } else { 354 for (let i = 0; i < this._buttonToggles.length; i++) { 355 const toggle = this._buttonToggles.get(i); 356 if (!toggle.disabled) { 357 toggle.tabIndex = 0; 358 break; 359 } 360 } 361 } 362 this._markButtonsForCheck(); 363 } 364 /** Obtain the subsequent toggle to which the focus shifts. */ 365 _getNextButton(startIndex, offset) { 366 const items = this._buttonToggles; 367 for (let i = 1; i <= items.length; i++) { 368 const index = (startIndex + offset * i + items.length) % items.length; 369 const item = items.get(index); 370 if (item && !item.disabled) { 371 return item; 372 } 373 } 374 return null; 375 } 376 /** Updates the selection state of the toggles in the group based on a value. */ 377 _setSelectionByValue(value) { 378 this._rawValue = value; 379 if (!this._buttonToggles) { 380 return; 381 } 382 const toggles = this._buttonToggles.toArray(); 383 if (this.multiple && value) { 384 if (!Array.isArray(value) && (typeof ngDevMode === "undefined" || ngDevMode)) { 385 throw Error("Value must be an array in multiple-selection mode."); 386 } 387 this._clearSelection(); 388 value.forEach((currentValue) => this._selectValue(currentValue, toggles)); 389 } else { 390 this._clearSelection(); 391 this._selectValue(value, toggles); 392 } 393 if (!this.multiple && toggles.every((toggle) => toggle.tabIndex === -1)) { 394 for (const toggle of toggles) { 395 if (!toggle.disabled) { 396 toggle.tabIndex = 0; 397 break; 398 } 399 } 400 } 401 } 402 /** Clears the selected toggles. */ 403 _clearSelection() { 404 this._selectionModel.clear();
405 this._buttonToggles.forEach((toggle) => { 406 toggle.checked = false; 407 if (!this.multiple) { 408 toggle.tabIndex = -1; 409 } 410 }); 411 } 412 /** Selects a value if there's a toggle that corresponds to it. */ 413 _selectValue(value, toggles) { 414 for (const toggle of toggles) { 415 if (toggle.value === value) { 416 toggle.checked = true; 417 this._selectionModel.select(toggle); 418 if (!this.multiple) { 419 toggle.tabIndex = 0; 420 } 421 break; 422 } 423 } 424 } 425 /** Syncs up the group's value with the model and emits the change event. */ 426 _updateModelValue(toggle, isUserInput) { 427 if (isUserInput) { 428 this._emitChangeEvent(toggle); 429 } 430 this.valueChange.emit(this.value); 431 } 432 /** Marks all of the child button toggles to be checked. */ 433 _markButtonsForCheck() { 434 this._buttonToggles?.forEach((toggle) => toggle._markForCheck()); 435 } 436 static \u0275fac = function MatButtonToggleGroup_Factory(__ngFactoryType__) { 437 return new (__ngFactoryType__ || _MatButtonToggleGroup)(); 438 }; 439 static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ 440 type: _MatButtonToggleGroup, 441 selectors: [["mat-button-toggle-group"]], 442 contentQueries: function MatButtonToggleGroup_ContentQueries(rf, ctx, dirIndex) { 443 if (rf & 1) { 444 \u0275\u0275contentQuery(dirIndex, MatButtonToggle, 5); 445 } 446 if (rf & 2) { 447 let _t; 448 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._buttonToggles = _t); 449 } 450 }, 451 hostAttrs: [1, "mat-button-toggle-group"], 452 hostVars: 6, 453 hostBindings: function MatButtonToggleGroup_HostBindings(rf, ctx) { 454 if (rf & 1) { 455 \u0275\u0275listener("keydown", function MatButtonToggleGroup_keydown_HostBindingHandler($event) { 456 return ctx._keydown($event); 457 }); 458 } 459 if (rf & 2) { 460 \u0275\u0275attribute("role", ctx.multiple ? "group" : "radiogroup")("aria-disabled", ctx.disabled); 461 \u0275\u0275classProp("mat-button-toggle-vertical", ctx.vertical)("mat-button-toggle-group-appearance-standard", ctx.appearance === "standard"); 462 } 463 }, 464 inputs: { 465 appearance: "appearance", 466 name: "name", 467 vertical: [2, "vertical", "vertical", booleanAttribute], 468 value: "value", 469 multiple: [2, "multiple", "multiple", booleanAttribute], 470 disabled: [2, "disabled", "disabled", booleanAttribute], 471 disabledInteractive: [2, "disabledInteractive", "disabledInteractive", booleanAttribute], 472 hideSingleSelectionIndicator: [2, "hideSingleSelectionIndicator", "hideSingleSelectionIndicator", booleanAttribute], 473 hideMultipleSelectionIndicator: [2, "hideMultipleSelectionIndicator", "hideMultipleSelectionIndicator", booleanAttribute] 474 }, 475 outputs: { 476 valueChange: "valueChange", 477 change: "change" 478 }, 479 exportAs: ["matButtonToggleGroup"], 480 features: [\u0275\u0275ProvidersFeature([MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, { 481 provide: MAT_BUTTON_TOGGLE_GROUP, 482 useExisting: _MatButtonToggleGroup 483 }])] 484 }); 485}; 486(() => { 487 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatButtonToggleGroup, [{ 488 type: Directive, 489 args: [{ 490 selector: "mat-button-toggle-group", 491 providers: [MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, { 492 provide: MAT_BUTTON_TOGGLE_GROUP, 493 useExisting: MatButtonToggleGroup 494 }], 495 host: { 496 "class": "mat-button-toggle-group", 497 "(keydown)": "_keydown($event)", 498 "[attr.role]": "multiple ? 'group' : 'radiogroup'", 499 "[attr.aria-disabled]": "disabled", 500 "[class.mat-button-toggle-vertical]": "vertical", 501 "[class.mat-button-toggle-group-appearance-standard]": 'appearance === "standard"' 502 }, 503 exportAs: "matButtonToggleGroup" 504 }] 505 }], () => [], { 506 _buttonToggles: [{ 507 type: ContentChildren, 508 args: [forwardRef(() => MatButtonToggle), { 509 // Note that this would technically pick up toggles 510 // from nested groups, but that's not a case that we support. 511 descendants: true 512 }] 513 }], 514 appearance: [{ 515 type: Input 516 }], 517 name: [{ 518 type: Input 519 }], 520 vertical: [{ 521 type: Input, 522 args: [{ 523 transform: booleanAttribute 524 }] 525 }], 526 value: [{ 527 type: Input 528 }], 529 valueChange: [{ 530 type: Output 531 }], 532 multiple: [{ 533 type: Input, 534 args: [{ 535 transform: booleanAttribute 536 }] 537 }], 538 disabled: [{ 539 type: Input, 540 args: [{ 541 transform: booleanAttribute 542 }] 543 }], 544 disabledInteractive: [{ 545 type: Input, 546 args: [{ 547 transform: booleanAttribute 548 }] 549 }], 550 change: [{ 551 type: Output 552 }], 553 hideSingleSelectionIndicator: [{ 554 type: Input, 555 args: [{ 556 transform: booleanAttribute 557 }] 558 }], 559 hideMultipleSelectionIndicator: [{ 560 type: Input, 561 args: [{ 562 transform: booleanAttribute 563 }] 564 }] 565 }); 566})(); 567var MatButtonToggle = class _MatButtonToggle { 568 _changeDetectorRef = inject(ChangeDetectorRef); 569 _elementRef = inject(ElementRef); 570 _focusMonitor = inject(FocusMonitor); 571 _idGenerator = inject(_IdGenerator); 572 _animationMode = inject(ANIMATION_MODULE_TYPE, { 573 optional: true 574 }); 575 _checked = false;
576 /** 577 * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will 578 * take precedence so this may be omitted. 579 */ 580 ariaLabel; 581 /** 582 * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element 583 */ 584 ariaLabelledby = null; 585 /** Underlying native `button` element. */ 586 _buttonElement; 587 /** The parent button toggle group (exclusive selection). Optional. */ 588 buttonToggleGroup; 589 /** Unique ID for the underlying `button` element. */ 590 get buttonId() { 591 return `${this.id}-button`; 592 } 593 /** The unique ID for this button toggle. */ 594 id; 595 /** HTML's 'name' attribute used to group radios for unique selection. */ 596 name; 597 /** MatButtonToggleGroup reads this to assign its own value. */ 598 value; 599 /** Tabindex of the toggle. */ 600 get tabIndex() { 601 return this._tabIndex; 602 } 603 set tabIndex(value) { 604 if (value !== this._tabIndex) { 605 this._tabIndex = value; 606 this._markForCheck(); 607 } 608 } 609 _tabIndex; 610 /** Whether ripples are disabled on the button toggle. */ 611 disableRipple; 612 /** The appearance style of the button. */ 613 get appearance() { 614 return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance; 615 } 616 set appearance(value) { 617 this._appearance = value; 618 } 619 _appearance; 620 /** Whether the button is checked. */ 621 get checked() { 622 return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked; 623 } 624 set checked(value) { 625 if (value !== this._checked) { 626 this._checked = value; 627 if (this.buttonToggleGroup) { 628 this.buttonToggleGroup._syncButtonToggle(this, this._checked); 629 } 630 this._changeDetectorRef.markForCheck(); 631 } 632 } 633 /** Whether the button is disabled. */ 634 get disabled() { 635 return this._disabled || this.buttonToggleGroup && this.buttonToggleGroup.disabled; 636 } 637 set disabled(value) { 638 this._disabled = value; 639 } 640 _disabled = false; 641 /** Whether the button should remain interactive when it is disabled. */ 642 get disabledInteractive() { 643 return this._disabledInteractive || this.buttonToggleGroup !== null && this.buttonToggleGroup.disabledInteractive; 644 } 645 set disabledInteractive(value) { 646 this._disabledInteractive = value; 647 } 648 _disabledInteractive; 649 /** Event emitted when the group value changes. */ 650 change = new EventEmitter(); 651 constructor() { 652 inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader); 653 const toggleGroup = inject(MAT_BUTTON_TOGGLE_GROUP, { 654 optional: true 655 }); 656 const defaultTabIndex = inject(new HostAttributeToken("tabindex"), { 657 optional: true 658 }) || ""; 659 const defaultOptions = inject(MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS, { 660 optional: true 661 }); 662 this._tabIndex = parseInt(defaultTabIndex) || 0; 663 this.buttonToggleGroup = toggleGroup; 664 this.appearance = defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : "standard"; 665 this.disabledInteractive = defaultOptions?.disabledInteractive ?? false; 666 } 667 ngOnInit() { 668 const group = this.buttonToggleGroup; 669 this.id = this.id || this._idGenerator.getId("mat-button-toggle-"); 670 if (group) { 671 if (group._isPrechecked(this)) { 672 this.checked = true; 673 } else if (group._isSelected(this) !== this._checked) { 674 group._syncButtonToggle(this, this._checked); 675 } 676 } 677 } 678 ngAfterViewInit() { 679 if (this._animationMode !== "NoopAnimations") { 680 this._elementRef.nativeElement.classList.add("mat-button-toggle-animations-enabled"); 681 } 682 this._focusMonitor.monitor(this._elementRef, true); 683 } 684 ngOnDestroy() { 685 const group = this.buttonToggleGroup; 686 this._focusMonitor.stopMonitoring(this._elementRef); 687 if (group && group._isSelected(this)) { 688 group._syncButtonToggle(this, false, false, true); 689 } 690 } 691 /** Focuses the button. */ 692 focus(options) { 693 this._buttonElement.nativeElement.focus(options); 694 } 695 /** Checks the button toggle due to an interaction with the underlying native button. */ 696 _onButtonClick() { 697 if (this.disabled) { 698 return; 699 } 700 const newChecked = this.isSingleSelector() ? true : !this._checked; 701 if (newChecked !== this._checked) { 702 this._checked = newChecked; 703 if (this.buttonToggleGroup) { 704 this.buttonToggleGroup._syncButtonToggle(this, this._checked, true); 705 this.buttonToggleGroup._onTouched(); 706 } 707 } 708 if (this.isSingleSelector()) { 709 const focusable = this.buttonToggleGroup._buttonToggles.find((toggle) => { 710 return toggle.tabIndex === 0; 711 }); 712 if (focusable) { 713 focusable.tabIndex = -1; 714 } 715 this.tabIndex = 0; 716 } 717 this.change.emit(new MatButtonToggleChange(this, this.value)); 718 } 719 /** 720 * Marks the button toggle as needing checking for change detection. 721 * This method is exposed because the parent button toggle group will directly 722 * update bound properties of the radio button. 723 */ 724 _markForCheck() { 725 this._changeDetectorRef.markForCheck(); 726 } 727 /** Gets the name that should be assigned to the inner DOM node. */ 728 _getButtonName() { 729 if (this.isSingleSelector()) { 730 return this.buttonToggleGroup.name; 731 } 732 return this.name || null; 733 } 734 /** Whether the toggle is in single selection mode. */ 735 isSingleSelector() { 736 return this.buttonToggleGroup && !this.buttonToggleGroup.multiple; 737 } 738 static \u0275fac = function MatButtonToggle_Factory(__ngFactoryType__) { 739 return new (__ngFactoryType__ || _MatButtonToggle)(); 740 }; 741 static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ 742 type: _MatButtonToggle, 743 selectors: [["mat-button-toggle"]], 744 viewQuery: function MatButtonToggle_Query(rf, ctx) { 745 if (rf & 1) { 746 \u0275\u0275viewQuery(_c0, 5); 747 } 748 if (rf & 2) { 749 let _t; 750 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._buttonElement = _t.first); 751 } 752 }, 753 hostAttrs: ["role", "presentation", 1, "mat-button-toggle"], 754 hostVars: 14, 755 hostBindings: function MatButtonToggle_HostBindings(rf, ctx) { 756 if (rf & 1) { 757 \u0275\u0275listener("focus", function MatButtonToggle_focus_HostBindingHandler() { 758 return ctx.focus(); 759 }); 760 } 761 if (rf & 2) { 762 \u0275\u0275attribute("aria-label", null)("aria-labelledby", null)("id", ctx.id)("name", null); 763 \u0275\u0275classProp("mat-button-toggle-standalone", !ctx.buttonToggleGroup)("mat-button-toggle-checked", ctx.checked)("mat-button-toggle-disabled", ctx.disabled)("mat-button-toggle-disabled-interactive", ctx.disabledInteractive)("mat-button-toggle-appearance-standard", ctx.appearance === "standard"); 764 } 765 }, 766 inputs: { 767 ariaLabel: [0, "aria-label", "ariaLabel"], 768 ariaLabelledby: [0, "aria-labelledby", "ariaLabelledby"], 769 id: "id", 770 name: "name", 771 value: "value", 772 tabIndex: "tabIndex", 773 disableRipple: [2, "disableRipple", "disableRipple", booleanAttribute], 774 appearance: "appearance", 775 checked: [2, "checked", "checked", booleanAttribute], 776 disabled: [2, "disabled", "disabled", booleanAttribute], 777 disabledInteractive: [2, "disabledInteractive", "disabledInteractive", booleanAttribute] 778 }, 779 outputs: { 780 change: "change" 781 }, 782 exportAs: ["matButtonToggle"], 783 ngContentSelectors: _c1, 784 decls: 7, 785 vars: 13, 786 consts: [["button", ""], ["type", "button", 1, "mat-button-toggle-button", "mat-focus-indicator", 3, "click", "id", "disabled"], [1, "mat-button-toggle-checkbox-wrapper"], [1, "mat-button-toggle-label-content"], [1, "mat-button-toggle-focus-overlay"], ["matRipple", "", 1, "mat-button-toggle-ripple", 3, "matRippleTrigger", "matRippleDisabled"], ["state", "checked", "aria-hidden", "true", "appearance", "minimal", 3, "disabled"]], 787 template: function MatButtonToggle_Template(rf, ctx) { 788 if (rf & 1) { 789 const _r1 = \u0275\u0275getCurrentView(); 790 \u0275\u0275projectionDef(); 791 \u0275\u0275elementStart(0, "button", 1, 0); 792 \u0275\u0275listener("click", function MatButtonToggle_Template_button_click_0_listener() { 793 \u0275\u0275restoreView(_r1);
794 return \u0275\u0275resetView(ctx._onButtonClick()); 795 }); 796 \u0275\u0275template(2, MatButtonToggle_Conditional_2_Template, 2, 1, "div", 2); 797 \u0275\u0275elementStart(3, "span", 3); 798 \u0275\u0275projection(4); 799 \u0275\u0275elementEnd()(); 800 \u0275\u0275element(5, "span", 4)(6, "span", 5); 801 } 802 if (rf & 2) { 803 const button_r3 = \u0275\u0275reference(1); 804 \u0275\u0275property("id", ctx.buttonId)("disabled", ctx.disabled && !ctx.disabledInteractive || null); 805 \u0275\u0275attribute("role", ctx.isSingleSelector() ? "radio" : "button")("tabindex", ctx.disabled && !ctx.disabledInteractive ? -1 : ctx.tabIndex)("aria-pressed", !ctx.isSingleSelector() ? ctx.checked : null)("aria-checked", ctx.isSingleSelector() ? ctx.checked : null)("name", ctx._getButtonName())("aria-label", ctx.ariaLabel)("aria-labelledby", ctx.ariaLabelledby)("aria-disabled", ctx.disabled && ctx.disabledInteractive ? "true" : null); 806 \u0275\u0275advance(2); 807 \u0275\u0275conditional(ctx.buttonToggleGroup && (!ctx.buttonToggleGroup.multiple && !ctx.buttonToggleGroup.hideSingleSelectionIndicator || ctx.buttonToggleGroup.multiple && !ctx.buttonToggleGroup.hideMultipleSelectionIndicator) ? 2 : -1); 808 \u0275\u0275advance(4); 809 \u0275\u0275property("matRippleTrigger", button_r3)("matRippleDisabled", ctx.disableRipple || ctx.disabled); 810 } 811 }, 812 dependencies: [MatRipple, MatPseudoCheckbox], 813 styles: [".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-legacy-button-toggle-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}
813[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-legacy-button-toggle-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-standard-button-toggle-background-color, transparent);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}
813.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large));border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large))}\n"], 814 encapsulation: 2, 815 changeDetection: 0 816 }); 817}; 818(() => { 819 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatButtonToggle, [{ 820 type: Component, 821 args: [{ 822 selector: "mat-button-toggle", 823 encapsulation: ViewEncapsulation.None, 824 exportAs: "matButtonToggle", 825 changeDetection: ChangeDetectionStrategy.OnPush, 826 host: { 827 "[class.mat-button-toggle-standalone]": "!buttonToggleGroup", 828 "[class.mat-button-toggle-checked]": "checked", 829 "[class.mat-button-toggle-disabled]": "disabled", 830 "[class.mat-button-toggle-disabled-interactive]": "disabledInteractive", 831 "[class.mat-button-toggle-appearance-standard]": 'appearance === "standard"', 832 "class": "mat-button-toggle", 833 "[attr.aria-label]": "null", 834 "[attr.aria-labelledby]": "null", 835 "[attr.id]": "id", 836 "[attr.name]": "null", 837 "(focus)": "focus()", 838 "role": "presentation" 839 }, 840 imports: [MatRipple, MatPseudoCheckbox], 841 template: `<button #button class="mat-button-toggle-button mat-focus-indicator" 842 type="button" 843 [id]="buttonId" 844 [attr.role]="isSingleSelector() ? 'radio' : 'button'" 845 [attr.tabindex]="disabled && !disabledInteractive ? -1 : tabIndex" 846 [attr.aria-pressed]="!isSingleSelector() ? checked : null" 847 [attr.aria-checked]="isSingleSelector() ? checked : null" 848 [disabled]="(disabled && !disabledInteractive) || null" 849 [attr.name]="_getButtonName()" 850 [attr.aria-label]="ariaLabel" 851 [attr.aria-labelledby]="ariaLabelledby" 852 [attr.aria-disabled]="disabled && disabledInteractive ? 'true' : null" 853 (click)="_onButtonClick()"> 854 @if (buttonToggleGroup && ( 855 !buttonToggleGroup.multiple && !buttonToggleGroup.hideSingleSelectionIndicator || 856 buttonToggleGroup.multiple && !buttonToggleGroup.hideMultipleSelectionIndicator) 857 ) { 858 <div class="mat-button-toggle-checkbox-wrapper"> 859 <mat-pseudo-checkbox 860 [disabled]="disabled" 861 state="checked" 862 aria-hidden="true" 863 appearance="minimal"/> 864 </div> 865 } 866 867 <span class="mat-button-toggle-label-content"> 868 <ng-content></ng-content> 869 </span> 870</button> 871 872<span class="mat-button-toggle-focus-overlay"></span> 873<span class="mat-button-toggle-ripple" matRipple 874 [matRippleTrigger]="button" 875 [matRippleDisabled]="this.disableRipple || this.disabled"> 876</span> 877`, 878 styles: [".mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);transform:translateZ(0);border-radius:var(--mat-legacy-button-toggle-shape)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large));border:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-legacy-button-toggle-text-color);font-family:var(--mat-legacy-button-toggle-label-text-font);font-size:var(--mat-legacy-button-toggle-label-text-size);line-height:var(--mat-legacy-button-toggle-label-text-line-height);font-weight:var(--mat-legacy-button-toggle-label-text-weight);letter-spacing:var(--mat-legacy-button-toggle-label-text-tracking);--mat-minimal-pseudo-checkbox-selected-checkmark-color: var(--mat-legacy-button-toggle-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-legacy-button-toggle-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}
878[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-legacy-button-toggle-selected-state-text-color);background-color:var(--mat-legacy-button-toggle-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-legacy-button-toggle-disabled-state-text-color);background-color:var(--mat-legacy-button-toggle-disabled-state-background-color);--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-legacy-button-toggle-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-legacy-button-toggle-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-standard-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-standard-button-toggle-background-color, transparent);font-family:var(--mat-standard-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-standard-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-standard-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-standard-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-standard-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-standard-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-standard-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-standard-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-minimal-pseudo-checkbox-disabled-selected-checkmark-color: var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-standard-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-standard-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-standard-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-standard-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-legacy-button-toggle-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-standard-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-legacy-button-toggle-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}
878.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large));border-top-left-radius:var(--mat-standard-button-toggle-shape, var(--mat-sys-corner-extra-large))}\n"] 879 }] 880 }], () => [], { 881 ariaLabel: [{ 882 type: Input, 883 args: ["aria-label"] 884 }], 885 ariaLabelledby: [{ 886 type: Input, 887 args: ["aria-labelledby"] 888 }], 889 _buttonElement: [{ 890 type: ViewChild, 891 args: ["button"] 892 }], 893 id: [{ 894 type: Input 895 }], 896 name: [{ 897 type: Input 898 }], 899 value: [{ 900 type: Input 901 }], 902 tabIndex: [{ 903 type: Input 904 }], 905 disableRipple: [{ 906 type: Input, 907 args: [{ 908 transform: booleanAttribute 909 }] 910 }], 911 appearance: [{ 912 type: Input 913 }], 914 checked: [{ 915 type: Input, 916 args: [{ 917 transform: booleanAttribute 918 }] 919 }], 920 disabled: [{ 921 type: Input, 922 args: [{ 923 transform: booleanAttribute 924 }] 925 }], 926 disabledInteractive: [{ 927 type: Input, 928 args: [{ 929 transform: booleanAttribute 930 }] 931 }], 932 change: [{ 933 type: Output 934 }] 935 }); 936})(); 937var MatButtonToggleModule = class _MatButtonToggleModule { 938 static \u0275fac = function MatButtonToggleModule_Factory(__ngFactoryType__) { 939 return new (__ngFactoryType__ || _MatButtonToggleModule)(); 940 }; 941 static \u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({ 942 type: _MatButtonToggleModule, 943 imports: [MatCommonModule, MatRippleModule, MatButtonToggleGroup, MatButtonToggle], 944 exports: [MatCommonModule, MatButtonToggleGroup, MatButtonToggle] 945 }); 946 static \u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({ 947 imports: [MatCommonModule, MatRippleModule, MatButtonToggle, MatCommonModule] 948 }); 949}; 950(() => { 951 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatButtonToggleModule, [{ 952 type: NgModule, 953 args: [{ 954 imports: [MatCommonModule, MatRippleModule, MatButtonToggleGroup, MatButtonToggle], 955 exports: [MatCommonModule, MatButtonToggleGroup, MatButtonToggle] 956 }] 957 }], null, null); 958})(); 959 960export { 961 MatButtonToggleGroup, 962 MatButtonToggle, 963 MatButtonToggleModule 964}; 965//# sourceMappingURL=chunk-Z2CZPR4G.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.