@angular/material 21.0.0-rc.1 → 21.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/fesm2022/_animation-chunk.mjs.map +1 -1
  2. package/fesm2022/_date-formats-chunk.mjs.map +1 -1
  3. package/fesm2022/_date-range-input-harness-chunk.mjs.map +1 -1
  4. package/fesm2022/_error-options-chunk.mjs.map +1 -1
  5. package/fesm2022/_error-state-chunk.mjs.map +1 -1
  6. package/fesm2022/_form-field-chunk.mjs.map +1 -1
  7. package/fesm2022/_icon-button-chunk.mjs.map +1 -1
  8. package/fesm2022/_icon-registry-chunk.mjs.map +1 -1
  9. package/fesm2022/_input-harness-chunk.mjs.map +1 -1
  10. package/fesm2022/_input-value-accessor-chunk.mjs.map +1 -1
  11. package/fesm2022/_internal-form-field-chunk.mjs.map +1 -1
  12. package/fesm2022/_line-chunk.mjs.map +1 -1
  13. package/fesm2022/_option-chunk.mjs.map +1 -1
  14. package/fesm2022/_option-harness-chunk.mjs.map +1 -1
  15. package/fesm2022/_option-module-chunk.mjs.map +1 -1
  16. package/fesm2022/_pseudo-checkbox-chunk.mjs.map +1 -1
  17. package/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +1 -1
  18. package/fesm2022/_public-api-chunk.mjs.map +1 -1
  19. package/fesm2022/_ripple-chunk.mjs.map +1 -1
  20. package/fesm2022/_ripple-loader-chunk.mjs.map +1 -1
  21. package/fesm2022/_ripple-module-chunk.mjs.map +1 -1
  22. package/fesm2022/_structural-styles-chunk.mjs.map +1 -1
  23. package/fesm2022/_tooltip-chunk.mjs.map +1 -1
  24. package/fesm2022/autocomplete-testing.mjs.map +1 -1
  25. package/fesm2022/autocomplete.mjs.map +1 -1
  26. package/fesm2022/badge-testing.mjs.map +1 -1
  27. package/fesm2022/badge.mjs.map +1 -1
  28. package/fesm2022/bottom-sheet-testing.mjs.map +1 -1
  29. package/fesm2022/bottom-sheet.mjs.map +1 -1
  30. package/fesm2022/button-testing.mjs.map +1 -1
  31. package/fesm2022/button-toggle-testing.mjs.map +1 -1
  32. package/fesm2022/button-toggle.mjs.map +1 -1
  33. package/fesm2022/button.mjs.map +1 -1
  34. package/fesm2022/card-testing.mjs.map +1 -1
  35. package/fesm2022/card.mjs.map +1 -1
  36. package/fesm2022/checkbox-testing.mjs.map +1 -1
  37. package/fesm2022/checkbox.mjs.map +1 -1
  38. package/fesm2022/chips-testing.mjs.map +1 -1
  39. package/fesm2022/chips.mjs +6 -6
  40. package/fesm2022/chips.mjs.map +1 -1
  41. package/fesm2022/core-testing.mjs.map +1 -1
  42. package/fesm2022/core.mjs +1 -1
  43. package/fesm2022/core.mjs.map +1 -1
  44. package/fesm2022/datepicker-testing.mjs.map +1 -1
  45. package/fesm2022/datepicker.mjs.map +1 -1
  46. package/fesm2022/dialog-testing.mjs.map +1 -1
  47. package/fesm2022/dialog.mjs.map +1 -1
  48. package/fesm2022/divider-testing.mjs.map +1 -1
  49. package/fesm2022/divider.mjs.map +1 -1
  50. package/fesm2022/expansion-testing.mjs.map +1 -1
  51. package/fesm2022/expansion.mjs.map +1 -1
  52. package/fesm2022/form-field-testing-control.mjs.map +1 -1
  53. package/fesm2022/form-field-testing.mjs.map +1 -1
  54. package/fesm2022/form-field.mjs.map +1 -1
  55. package/fesm2022/grid-list-testing.mjs.map +1 -1
  56. package/fesm2022/grid-list.mjs.map +1 -1
  57. package/fesm2022/icon-testing.mjs.map +1 -1
  58. package/fesm2022/icon.mjs.map +1 -1
  59. package/fesm2022/input-testing.mjs.map +1 -1
  60. package/fesm2022/input.mjs.map +1 -1
  61. package/fesm2022/list-testing.mjs.map +1 -1
  62. package/fesm2022/list.mjs.map +1 -1
  63. package/fesm2022/material.mjs.map +1 -1
  64. package/fesm2022/menu-testing.mjs.map +1 -1
  65. package/fesm2022/menu.mjs.map +1 -1
  66. package/fesm2022/paginator-testing.mjs.map +1 -1
  67. package/fesm2022/paginator.mjs.map +1 -1
  68. package/fesm2022/progress-bar-testing.mjs.map +1 -1
  69. package/fesm2022/progress-bar.mjs.map +1 -1
  70. package/fesm2022/progress-spinner-testing.mjs.map +1 -1
  71. package/fesm2022/progress-spinner.mjs.map +1 -1
  72. package/fesm2022/radio-testing.mjs.map +1 -1
  73. package/fesm2022/radio.mjs.map +1 -1
  74. package/fesm2022/select-testing.mjs.map +1 -1
  75. package/fesm2022/select.mjs.map +1 -1
  76. package/fesm2022/sidenav-testing.mjs.map +1 -1
  77. package/fesm2022/sidenav.mjs.map +1 -1
  78. package/fesm2022/slide-toggle-testing.mjs.map +1 -1
  79. package/fesm2022/slide-toggle.mjs.map +1 -1
  80. package/fesm2022/slider-testing.mjs.map +1 -1
  81. package/fesm2022/slider.mjs.map +1 -1
  82. package/fesm2022/snack-bar-testing.mjs.map +1 -1
  83. package/fesm2022/snack-bar.mjs.map +1 -1
  84. package/fesm2022/sort-testing.mjs.map +1 -1
  85. package/fesm2022/sort.mjs.map +1 -1
  86. package/fesm2022/stepper-testing.mjs.map +1 -1
  87. package/fesm2022/stepper.mjs.map +1 -1
  88. package/fesm2022/table-testing.mjs.map +1 -1
  89. package/fesm2022/table.mjs.map +1 -1
  90. package/fesm2022/tabs-testing.mjs.map +1 -1
  91. package/fesm2022/tabs.mjs.map +1 -1
  92. package/fesm2022/timepicker-testing.mjs.map +1 -1
  93. package/fesm2022/timepicker.mjs +1 -1
  94. package/fesm2022/timepicker.mjs.map +1 -1
  95. package/fesm2022/toolbar-testing.mjs.map +1 -1
  96. package/fesm2022/toolbar.mjs.map +1 -1
  97. package/fesm2022/tooltip-testing.mjs.map +1 -1
  98. package/fesm2022/tooltip.mjs.map +1 -1
  99. package/fesm2022/tree-testing.mjs.map +1 -1
  100. package/fesm2022/tree.mjs.map +1 -1
  101. package/package.json +2 -2
  102. package/schematics/ng-add/index.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"expansion.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/accordion-base.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel-base.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel-content.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel.html","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel-header.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel-header.html","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/accordion.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CdkAccordion} from '@angular/cdk/accordion';\n\n/** MatAccordion's display modes. */\nexport type MatAccordionDisplayMode = 'default' | 'flat';\n\n/** MatAccordion's toggle positions. */\nexport type MatAccordionTogglePosition = 'before' | 'after';\n\n/**\n * Base interface for a `MatAccordion`.\n * @docs-private\n */\nexport interface MatAccordionBase extends CdkAccordion {\n /** Whether the expansion indicator should be hidden. */\n hideToggle: boolean;\n\n /** Display mode used for all expansion panels in the accordion. */\n displayMode: MatAccordionDisplayMode;\n\n /** The position of the expansion indicator. */\n togglePosition: MatAccordionTogglePosition;\n\n /** Handles keyboard events coming in from the panel headers. */\n _handleHeaderKeydown: (event: KeyboardEvent) => void;\n\n /** Handles focus events on the panel headers. */\n _handleHeaderFocus: (header: any) => void;\n}\n\n/**\n * Token used to provide a `MatAccordion` to `MatExpansionPanel`.\n * Used primarily to avoid circular imports between `MatAccordion` and `MatExpansionPanel`.\n */\nexport const MAT_ACCORDION = new InjectionToken<MatAccordionBase>('MAT_ACCORDION');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\n\n/**\n * Base interface for a `MatExpansionPanel`.\n * @docs-private\n */\nexport interface MatExpansionPanelBase extends CdkAccordionItem {\n /** Whether the toggle indicator should be hidden. */\n hideToggle: boolean;\n}\n\n/**\n * Token used to provide a `MatExpansionPanel` to `MatExpansionPanelContent`.\n * Used to avoid circular imports between `MatExpansionPanel` and `MatExpansionPanelContent`.\n */\nexport const MAT_EXPANSION_PANEL = new InjectionToken<MatExpansionPanelBase>('MAT_EXPANSION_PANEL');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, TemplateRef, inject} from '@angular/core';\nimport {MAT_EXPANSION_PANEL, MatExpansionPanelBase} from './expansion-panel-base';\n\n/**\n * Expansion panel content that will be rendered lazily\n * after the panel is opened for the first time.\n */\n@Directive({\n selector: 'ng-template[matExpansionPanelContent]',\n})\nexport class MatExpansionPanelContent {\n _template = inject<TemplateRef<any>>(TemplateRef);\n _expansionPanel = inject<MatExpansionPanelBase>(MAT_EXPANSION_PANEL, {optional: true});\n\n constructor(...args: unknown[]);\n constructor() {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\nimport {UniqueSelectionDispatcher} from '@angular/cdk/collections';\nimport {CdkPortalOutlet, TemplatePortal} from '@angular/cdk/portal';\n\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n NgZone,\n Renderer2,\n DOCUMENT,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Subject} from 'rxjs';\nimport {filter, startWith, take} from 'rxjs/operators';\nimport {MatAccordionBase, MatAccordionTogglePosition, MAT_ACCORDION} from './accordion-base';\nimport {MAT_EXPANSION_PANEL} from './expansion-panel-base';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\nimport {_animationsDisabled} from '../core';\n\n/** MatExpansionPanel's states. */\nexport type MatExpansionPanelState = 'expanded' | 'collapsed';\n\n/**\n * Object that can be used to override the default options\n * for all of the expansion panels in a module.\n */\nexport interface MatExpansionPanelDefaultOptions {\n /** Height of the header while the panel is expanded. */\n expandedHeight: string;\n\n /** Height of the header while the panel is collapsed. */\n collapsedHeight: string;\n\n /** Whether the toggle indicator should be hidden. */\n hideToggle: boolean;\n}\n\n/**\n * Injection token that can be used to configure the default\n * options for the expansion panel component.\n */\nexport const MAT_EXPANSION_PANEL_DEFAULT_OPTIONS =\n new InjectionToken<MatExpansionPanelDefaultOptions>('MAT_EXPANSION_PANEL_DEFAULT_OPTIONS');\n\n/**\n * This component can be used as a single element to show expandable content, or as one of\n * multiple children of an element with the MatAccordion directive attached.\n */\n@Component({\n styleUrl: 'expansion-panel.css',\n selector: 'mat-expansion-panel',\n exportAs: 'matExpansionPanel',\n templateUrl: 'expansion-panel.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n // Provide MatAccordion as undefined to prevent nested expansion panels from registering\n // to the same accordion.\n {provide: MAT_ACCORDION, useValue: undefined},\n {provide: MAT_EXPANSION_PANEL, useExisting: MatExpansionPanel},\n ],\n host: {\n 'class': 'mat-expansion-panel',\n '[class.mat-expanded]': 'expanded',\n '[class.mat-expansion-panel-spacing]': '_hasSpacing()',\n },\n imports: [CdkPortalOutlet],\n})\nexport class MatExpansionPanel\n extends CdkAccordionItem\n implements AfterContentInit, OnChanges, OnDestroy\n{\n private _viewContainerRef = inject(ViewContainerRef);\n private readonly _animationsDisabled = _animationsDisabled();\n private _document = inject(DOCUMENT);\n private _ngZone = inject(NgZone);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _renderer = inject(Renderer2);\n private _cleanupTransitionEnd: (() => void) | undefined;\n\n /** Whether the toggle indicator should be hidden. */\n @Input({transform: booleanAttribute})\n get hideToggle(): boolean {\n return this._hideToggle || (this.accordion && this.accordion.hideToggle);\n }\n set hideToggle(value: boolean) {\n this._hideToggle = value;\n }\n private _hideToggle = false;\n\n /** The position of the expansion indicator. */\n @Input()\n get togglePosition(): MatAccordionTogglePosition {\n return this._togglePosition || (this.accordion && this.accordion.togglePosition);\n }\n set togglePosition(value: MatAccordionTogglePosition) {\n this._togglePosition = value;\n }\n private _togglePosition: MatAccordionTogglePosition;\n\n /** An event emitted after the body's expansion animation happens. */\n @Output() readonly afterExpand = new EventEmitter<void>();\n\n /** An event emitted after the body's collapse animation happens. */\n @Output() readonly afterCollapse = new EventEmitter<void>();\n\n /** Stream that emits for changes in `@Input` properties. */\n readonly _inputChanges = new Subject<SimpleChanges>();\n\n /** Optionally defined accordion the expansion panel belongs to. */\n override accordion = inject<MatAccordionBase>(MAT_ACCORDION, {optional: true, skipSelf: true})!;\n\n /** Content that will be rendered lazily. */\n @ContentChild(MatExpansionPanelContent) _lazyContent: MatExpansionPanelContent;\n\n /** Element containing the panel's user-provided content. */\n @ViewChild('body') _body: ElementRef<HTMLElement>;\n\n /** Element wrapping the panel body. */\n @ViewChild('bodyWrapper')\n protected _bodyWrapper: ElementRef<HTMLElement> | undefined;\n\n /** Portal holding the user's content. */\n _portal: TemplatePortal;\n\n /** ID for the associated header element. Used for a11y labelling. */\n _headerId: string = inject(_IdGenerator).getId('mat-expansion-panel-header-');\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const defaultOptions = inject<MatExpansionPanelDefaultOptions>(\n MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\n {optional: true},\n );\n\n this._expansionDispatcher = inject(UniqueSelectionDispatcher);\n\n if (defaultOptions) {\n this.hideToggle = defaultOptions.hideToggle;\n }\n }\n\n /** Determines whether the expansion panel should have spacing between it and its siblings. */\n _hasSpacing(): boolean {\n if (this.accordion) {\n return this.expanded && this.accordion.displayMode === 'default';\n }\n return false;\n }\n\n /** Gets the expanded state string. */\n _getExpandedState(): MatExpansionPanelState {\n return this.expanded ? 'expanded' : 'collapsed';\n }\n\n /** Toggles the expanded state of the expansion panel. */\n override toggle(): void {\n this.expanded = !this.expanded;\n }\n\n /** Sets the expanded state of the expansion panel to false. */\n override close(): void {\n this.expanded = false;\n }\n\n /** Sets the expanded state of the expansion panel to true. */\n override open(): void {\n this.expanded = true;\n }\n\n ngAfterContentInit() {\n if (this._lazyContent && this._lazyContent._expansionPanel === this) {\n // Render the content as soon as the panel becomes open.\n this.opened\n .pipe(\n startWith(null),\n filter(() => this.expanded && !this._portal),\n take(1),\n )\n .subscribe(() => {\n this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);\n });\n }\n\n this._setupAnimationEvents();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this._inputChanges.next(changes);\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this._cleanupTransitionEnd?.();\n this._inputChanges.complete();\n }\n\n /** Checks whether the expansion panel's content contains the currently-focused element. */\n _containsFocus(): boolean {\n if (this._body) {\n const focusedElement = this._document.activeElement;\n const bodyElement = this._body.nativeElement;\n return focusedElement === bodyElement || bodyElement.contains(focusedElement);\n }\n\n return false;\n }\n\n private _transitionEndListener = ({target, propertyName}: TransitionEvent) => {\n if (target === this._bodyWrapper?.nativeElement && propertyName === 'grid-template-rows') {\n this._ngZone.run(() => {\n if (this.expanded) {\n this.afterExpand.emit();\n } else {\n this.afterCollapse.emit();\n }\n });\n }\n };\n\n protected _setupAnimationEvents() {\n // This method is defined separately, because we need to\n // disable this logic in some internal components.\n this._ngZone.runOutsideAngular(() => {\n if (this._animationsDisabled) {\n this.opened.subscribe(() => this._ngZone.run(() => this.afterExpand.emit()));\n this.closed.subscribe(() => this._ngZone.run(() => this.afterCollapse.emit()));\n } else {\n setTimeout(() => {\n const element = this._elementRef.nativeElement;\n this._cleanupTransitionEnd = this._renderer.listen(\n element,\n 'transitionend',\n this._transitionEndListener,\n );\n element.classList.add('mat-expansion-panel-animations-enabled');\n }, 200);\n }\n });\n }\n}\n\n/**\n * Actions of a `<mat-expansion-panel>`.\n */\n@Directive({\n selector: 'mat-action-row',\n host: {\n class: 'mat-action-row',\n },\n})\nexport class MatExpansionPanelActionRow {}\n","<ng-content select=\"mat-expansion-panel-header\"></ng-content>\n<div class=\"mat-expansion-panel-content-wrapper\" [attr.inert]=\"expanded ? null : ''\" #bodyWrapper>\n <div class=\"mat-expansion-panel-content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_headerId\"\n [id]=\"id\"\n #body>\n <div class=\"mat-expansion-panel-body\">\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n </div>\n <ng-content select=\"mat-action-row\"></ng-content>\n </div>\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {FocusableOption, FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {ENTER, hasModifierKey, SPACE} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n numberAttribute,\n OnDestroy,\n ViewEncapsulation,\n inject,\n HostAttributeToken,\n} from '@angular/core';\nimport {EMPTY, merge, Subscription} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {MatAccordionTogglePosition} from './accordion-base';\nimport {\n MatExpansionPanel,\n MatExpansionPanelDefaultOptions,\n MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\n} from './expansion-panel';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\nimport {_StructuralStylesLoader} from '../core';\n\n/**\n * Header element of a `<mat-expansion-panel>`.\n */\n@Component({\n selector: 'mat-expansion-panel-header',\n styleUrl: 'expansion-panel-header.css',\n templateUrl: 'expansion-panel-header.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-expansion-panel-header mat-focus-indicator',\n 'role': 'button',\n '[attr.id]': 'panel._headerId',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '[attr.aria-controls]': '_getPanelId()',\n '[attr.aria-expanded]': '_isExpanded()',\n '[attr.aria-disabled]': 'panel.disabled',\n '[class.mat-expanded]': '_isExpanded()',\n '[class.mat-expansion-toggle-indicator-after]': `_getTogglePosition() === 'after'`,\n '[class.mat-expansion-toggle-indicator-before]': `_getTogglePosition() === 'before'`,\n '[style.height]': '_getHeaderHeight()',\n '(click)': '_toggle()',\n '(keydown)': '_keydown($event)',\n },\n})\nexport class MatExpansionPanelHeader implements AfterViewInit, OnDestroy, FocusableOption {\n panel = inject(MatExpansionPanel, {host: true});\n private _element = inject(ElementRef);\n private _focusMonitor = inject(FocusMonitor);\n private _changeDetectorRef = inject(ChangeDetectorRef);\n\n private _parentChangeSubscription = Subscription.EMPTY;\n\n constructor(...args: unknown[]);\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const panel = this.panel;\n const defaultOptions = inject<MatExpansionPanelDefaultOptions>(\n MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\n {optional: true},\n );\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\n\n const accordionHideToggleChange = panel.accordion\n ? panel.accordion._stateChanges.pipe(\n filter(changes => !!(changes['hideToggle'] || changes['togglePosition'])),\n )\n : EMPTY;\n this.tabIndex = parseInt(tabIndex || '') || 0;\n\n // Since the toggle state depends on an @Input on the panel, we\n // need to subscribe and trigger change detection manually.\n this._parentChangeSubscription = merge(\n panel.opened,\n panel.closed,\n accordionHideToggleChange,\n panel._inputChanges.pipe(\n filter(changes => {\n return !!(changes['hideToggle'] || changes['disabled'] || changes['togglePosition']);\n }),\n ),\n ).subscribe(() => this._changeDetectorRef.markForCheck());\n\n // Avoids focus being lost if the panel contained the focused element and was closed.\n panel.closed\n .pipe(filter(() => panel._containsFocus()))\n .subscribe(() => this._focusMonitor.focusVia(this._element, 'program'));\n\n if (defaultOptions) {\n this.expandedHeight = defaultOptions.expandedHeight;\n this.collapsedHeight = defaultOptions.collapsedHeight;\n }\n }\n\n /** Height of the header while the panel is expanded. */\n @Input() expandedHeight: string;\n\n /** Height of the header while the panel is collapsed. */\n @Input() collapsedHeight: string;\n\n /** Tab index of the header. */\n @Input({\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n })\n tabIndex: number = 0;\n\n /**\n * Whether the associated panel is disabled. Implemented as a part of `FocusableOption`.\n * @docs-private\n */\n get disabled(): boolean {\n return this.panel.disabled;\n }\n\n /** Toggles the expanded state of the panel. */\n _toggle(): void {\n if (!this.disabled) {\n this.panel.toggle();\n }\n }\n\n /** Gets whether the panel is expanded. */\n _isExpanded(): boolean {\n return this.panel.expanded;\n }\n\n /** Gets the expanded state string of the panel. */\n _getExpandedState(): string {\n return this.panel._getExpandedState();\n }\n\n /** Gets the panel id. */\n _getPanelId(): string {\n return this.panel.id;\n }\n\n /** Gets the toggle position for the header. */\n _getTogglePosition(): MatAccordionTogglePosition {\n return this.panel.togglePosition;\n }\n\n /** Gets whether the expand indicator should be shown. */\n _showToggle(): boolean {\n return !this.panel.hideToggle && !this.panel.disabled;\n }\n\n /**\n * Gets the current height of the header. Null if no custom height has been\n * specified, and if the default height from the stylesheet should be used.\n */\n _getHeaderHeight(): string | null {\n const isExpanded = this._isExpanded();\n if (isExpanded && this.expandedHeight) {\n return this.expandedHeight;\n } else if (!isExpanded && this.collapsedHeight) {\n return this.collapsedHeight;\n }\n return null;\n }\n\n /** Handle keydown event calling to toggle() if appropriate. */\n _keydown(event: KeyboardEvent) {\n switch (event.keyCode) {\n // Toggle for space and enter keys.\n case SPACE:\n case ENTER:\n if (!hasModifierKey(event)) {\n event.preventDefault();\n this._toggle();\n }\n\n break;\n default:\n if (this.panel.accordion) {\n this.panel.accordion._handleHeaderKeydown(event);\n }\n\n return;\n }\n }\n\n /**\n * Focuses the panel header. Implemented as a part of `FocusableOption`.\n * @param origin Origin of the action that triggered the focus.\n * @docs-private\n */\n focus(origin?: FocusOrigin, options?: FocusOptions) {\n if (origin) {\n this._focusMonitor.focusVia(this._element, origin, options);\n } else {\n this._element.nativeElement.focus(options);\n }\n }\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._element).subscribe(origin => {\n if (origin && this.panel.accordion) {\n this.panel.accordion._handleHeaderFocus(this);\n }\n });\n }\n\n ngOnDestroy() {\n this._parentChangeSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._element);\n }\n}\n\n/**\n * Description element of a `<mat-expansion-panel-header>`.\n */\n@Directive({\n selector: 'mat-panel-description',\n host: {\n class: 'mat-expansion-panel-header-description',\n },\n})\nexport class MatExpansionPanelDescription {}\n\n/**\n * Title element of a `<mat-expansion-panel-header>`.\n */\n@Directive({\n selector: 'mat-panel-title',\n host: {\n class: 'mat-expansion-panel-header-title',\n },\n})\nexport class MatExpansionPanelTitle {}\n","<span class=\"mat-content\" [class.mat-content-hide-toggle]=\"!_showToggle()\">\n <ng-content select=\"mat-panel-title\"></ng-content>\n <ng-content select=\"mat-panel-description\"></ng-content>\n <ng-content></ng-content>\n</span>\n\n@if (_showToggle()) {\n <span class=\"mat-expansion-indicator\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n aria-hidden=\"true\"\n focusable=\"false\">\n <path d=\"M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z\"/>\n </svg>\n </span>\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n Input,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnDestroy,\n booleanAttribute,\n} from '@angular/core';\nimport {CdkAccordion} from '@angular/cdk/accordion';\nimport {FocusKeyManager} from '@angular/cdk/a11y';\nimport {startWith} from 'rxjs/operators';\nimport {\n MAT_ACCORDION,\n MatAccordionBase,\n MatAccordionDisplayMode,\n MatAccordionTogglePosition,\n} from './accordion-base';\nimport {MatExpansionPanelHeader} from './expansion-panel-header';\n\n/**\n * Directive for a Material Design Accordion.\n */\n@Directive({\n selector: 'mat-accordion',\n exportAs: 'matAccordion',\n providers: [\n {\n provide: MAT_ACCORDION,\n useExisting: MatAccordion,\n },\n ],\n host: {\n class: 'mat-accordion',\n // Class binding which is only used by the test harness as there is no other\n // way for the harness to detect if multiple panel support is enabled.\n '[class.mat-accordion-multi]': 'this.multi',\n },\n})\nexport class MatAccordion\n extends CdkAccordion\n implements MatAccordionBase, AfterContentInit, OnDestroy\n{\n private _keyManager: FocusKeyManager<MatExpansionPanelHeader>;\n\n /** Headers belonging to this accordion. */\n private _ownHeaders = new QueryList<MatExpansionPanelHeader>();\n\n /** All headers inside the accordion. Includes headers inside nested accordions. */\n @ContentChildren(MatExpansionPanelHeader, {descendants: true})\n _headers: QueryList<MatExpansionPanelHeader>;\n\n /** Whether the expansion indicator should be hidden. */\n @Input({transform: booleanAttribute})\n hideToggle: boolean = false;\n\n /**\n * Display mode used for all expansion panels in the accordion. Currently two display\n * modes exist:\n * default - a gutter-like spacing is placed around any expanded panel, placing the expanded\n * panel at a different elevation from the rest of the accordion.\n * flat - no spacing is placed around expanded panels, showing all panels at the same\n * elevation.\n */\n @Input() displayMode: MatAccordionDisplayMode = 'default';\n\n /** The position of the expansion indicator. */\n @Input() togglePosition: MatAccordionTogglePosition = 'after';\n\n ngAfterContentInit() {\n this._headers.changes\n .pipe(startWith(this._headers))\n .subscribe((headers: QueryList<MatExpansionPanelHeader>) => {\n this._ownHeaders.reset(headers.filter(header => header.panel.accordion === this));\n this._ownHeaders.notifyOnChanges();\n });\n\n this._keyManager = new FocusKeyManager(this._ownHeaders).withWrap().withHomeAndEnd();\n }\n\n /** Handles keyboard events coming in from the panel headers. */\n _handleHeaderKeydown(event: KeyboardEvent) {\n this._keyManager.onKeydown(event);\n }\n\n _handleHeaderFocus(header: MatExpansionPanelHeader) {\n this._keyManager.updateActiveItem(header);\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this._keyManager?.destroy();\n this._ownHeaders.destroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {CdkAccordionModule} from '@angular/cdk/accordion';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {NgModule} from '@angular/core';\nimport {MatAccordion} from './accordion';\nimport {MatExpansionPanel, MatExpansionPanelActionRow} from './expansion-panel';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\nimport {\n MatExpansionPanelDescription,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n} from './expansion-panel-header';\n\n@NgModule({\n imports: [\n CdkAccordionModule,\n PortalModule,\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n exports: [\n BidiModule,\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n})\nexport class MatExpansionModule {}\n"],"names":["MAT_ACCORDION","InjectionToken","MAT_EXPANSION_PANEL","MatExpansionPanelContent","_template","inject","TemplateRef","_expansionPanel","optional","constructor","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","ngImport","decorators","args","MAT_EXPANSION_PANEL_DEFAULT_OPTIONS","MatExpansionPanel","CdkAccordionItem","_viewContainerRef","ViewContainerRef","_animationsDisabled","_document","DOCUMENT","_ngZone","NgZone","_elementRef","ElementRef","_renderer","Renderer2","_cleanupTransitionEnd","hideToggle","_hideToggle","accordion","value","togglePosition","_togglePosition","afterExpand","EventEmitter","afterCollapse","_inputChanges","Subject","skipSelf","_lazyContent","_body","_bodyWrapper","_portal","_headerId","_IdGenerator","getId","defaultOptions","_expansionDispatcher","UniqueSelectionDispatcher","_hasSpacing","expanded","displayMode","_getExpandedState","toggle","close","open","ngAfterContentInit","opened","pipe","startWith","filter","take","subscribe","TemplatePortal","_setupAnimationEvents","ngOnChanges","changes","next","ngOnDestroy","complete","_containsFocus","focusedElement","activeElement","bodyElement","nativeElement","contains","_transitionEndListener","propertyName","run","emit","runOutsideAngular","closed","setTimeout","element","listen","classList","add","Component","inputs","booleanAttribute","outputs","host","properties","classAttribute","providers","provide","useValue","undefined","useExisting","queries","first","predicate","descendants","viewQueries","exportAs","usesInheritance","usesOnChanges","template","styles","dependencies","kind","type","CdkPortalOutlet","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","imports","Input","transform","Output","ContentChild","ViewChild","MatExpansionPanelActionRow","class","MatExpansionPanelHeader","panel","_element","_focusMonitor","FocusMonitor","_changeDetectorRef","ChangeDetectorRef","_parentChangeSubscription","Subscription","EMPTY","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","tabIndex","HostAttributeToken","accordionHideToggleChange","_stateChanges","parseInt","merge","markForCheck","focusVia","expandedHeight","collapsedHeight","disabled","_toggle","_isExpanded","_getPanelId","id","_getTogglePosition","_showToggle","_getHeaderHeight","isExpanded","_keydown","event","keyCode","SPACE","ENTER","hasModifierKey","preventDefault","_handleHeaderKeydown","focus","origin","options","ngAfterViewInit","monitor","_handleHeaderFocus","unsubscribe","stopMonitoring","numberAttribute","attributes","listeners","MatExpansionPanelDescription","MatExpansionPanelTitle","MatAccordion","CdkAccordion","_keyManager","_ownHeaders","QueryList","_headers","headers","reset","header","notifyOnChanges","FocusKeyManager","withWrap","withHomeAndEnd","onKeydown","updateActiveItem","destroy","ContentChildren","MatExpansionModule","NgModule","ɵmod","ɵɵngDeclareNgModule","minVersion","version","CdkAccordionModule","PortalModule","BidiModule","ɵinj","ɵɵngDeclareInjector","exports"],"mappings":"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"}
1
+ {"version":3,"file":"expansion.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/accordion-base.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel-base.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel-content.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel.html","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel-header.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-panel-header.html","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/accordion.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/expansion/expansion-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CdkAccordion} from '@angular/cdk/accordion';\n\n/** MatAccordion's display modes. */\nexport type MatAccordionDisplayMode = 'default' | 'flat';\n\n/** MatAccordion's toggle positions. */\nexport type MatAccordionTogglePosition = 'before' | 'after';\n\n/**\n * Base interface for a `MatAccordion`.\n * @docs-private\n */\nexport interface MatAccordionBase extends CdkAccordion {\n /** Whether the expansion indicator should be hidden. */\n hideToggle: boolean;\n\n /** Display mode used for all expansion panels in the accordion. */\n displayMode: MatAccordionDisplayMode;\n\n /** The position of the expansion indicator. */\n togglePosition: MatAccordionTogglePosition;\n\n /** Handles keyboard events coming in from the panel headers. */\n _handleHeaderKeydown: (event: KeyboardEvent) => void;\n\n /** Handles focus events on the panel headers. */\n _handleHeaderFocus: (header: any) => void;\n}\n\n/**\n * Token used to provide a `MatAccordion` to `MatExpansionPanel`.\n * Used primarily to avoid circular imports between `MatAccordion` and `MatExpansionPanel`.\n */\nexport const MAT_ACCORDION = new InjectionToken<MatAccordionBase>('MAT_ACCORDION');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\n\n/**\n * Base interface for a `MatExpansionPanel`.\n * @docs-private\n */\nexport interface MatExpansionPanelBase extends CdkAccordionItem {\n /** Whether the toggle indicator should be hidden. */\n hideToggle: boolean;\n}\n\n/**\n * Token used to provide a `MatExpansionPanel` to `MatExpansionPanelContent`.\n * Used to avoid circular imports between `MatExpansionPanel` and `MatExpansionPanelContent`.\n */\nexport const MAT_EXPANSION_PANEL = new InjectionToken<MatExpansionPanelBase>('MAT_EXPANSION_PANEL');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, TemplateRef, inject} from '@angular/core';\nimport {MAT_EXPANSION_PANEL, MatExpansionPanelBase} from './expansion-panel-base';\n\n/**\n * Expansion panel content that will be rendered lazily\n * after the panel is opened for the first time.\n */\n@Directive({\n selector: 'ng-template[matExpansionPanelContent]',\n})\nexport class MatExpansionPanelContent {\n _template = inject<TemplateRef<any>>(TemplateRef);\n _expansionPanel = inject<MatExpansionPanelBase>(MAT_EXPANSION_PANEL, {optional: true});\n\n constructor(...args: unknown[]);\n constructor() {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {CdkAccordionItem} from '@angular/cdk/accordion';\nimport {UniqueSelectionDispatcher} from '@angular/cdk/collections';\nimport {CdkPortalOutlet, TemplatePortal} from '@angular/cdk/portal';\n\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n NgZone,\n Renderer2,\n DOCUMENT,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Subject} from 'rxjs';\nimport {filter, startWith, take} from 'rxjs/operators';\nimport {MatAccordionBase, MatAccordionTogglePosition, MAT_ACCORDION} from './accordion-base';\nimport {MAT_EXPANSION_PANEL} from './expansion-panel-base';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\nimport {_animationsDisabled} from '../core';\n\n/** MatExpansionPanel's states. */\nexport type MatExpansionPanelState = 'expanded' | 'collapsed';\n\n/**\n * Object that can be used to override the default options\n * for all of the expansion panels in a module.\n */\nexport interface MatExpansionPanelDefaultOptions {\n /** Height of the header while the panel is expanded. */\n expandedHeight: string;\n\n /** Height of the header while the panel is collapsed. */\n collapsedHeight: string;\n\n /** Whether the toggle indicator should be hidden. */\n hideToggle: boolean;\n}\n\n/**\n * Injection token that can be used to configure the default\n * options for the expansion panel component.\n */\nexport const MAT_EXPANSION_PANEL_DEFAULT_OPTIONS =\n new InjectionToken<MatExpansionPanelDefaultOptions>('MAT_EXPANSION_PANEL_DEFAULT_OPTIONS');\n\n/**\n * This component can be used as a single element to show expandable content, or as one of\n * multiple children of an element with the MatAccordion directive attached.\n */\n@Component({\n styleUrl: 'expansion-panel.css',\n selector: 'mat-expansion-panel',\n exportAs: 'matExpansionPanel',\n templateUrl: 'expansion-panel.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n // Provide MatAccordion as undefined to prevent nested expansion panels from registering\n // to the same accordion.\n {provide: MAT_ACCORDION, useValue: undefined},\n {provide: MAT_EXPANSION_PANEL, useExisting: MatExpansionPanel},\n ],\n host: {\n 'class': 'mat-expansion-panel',\n '[class.mat-expanded]': 'expanded',\n '[class.mat-expansion-panel-spacing]': '_hasSpacing()',\n },\n imports: [CdkPortalOutlet],\n})\nexport class MatExpansionPanel\n extends CdkAccordionItem\n implements AfterContentInit, OnChanges, OnDestroy\n{\n private _viewContainerRef = inject(ViewContainerRef);\n private readonly _animationsDisabled = _animationsDisabled();\n private _document = inject(DOCUMENT);\n private _ngZone = inject(NgZone);\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _renderer = inject(Renderer2);\n private _cleanupTransitionEnd: (() => void) | undefined;\n\n /** Whether the toggle indicator should be hidden. */\n @Input({transform: booleanAttribute})\n get hideToggle(): boolean {\n return this._hideToggle || (this.accordion && this.accordion.hideToggle);\n }\n set hideToggle(value: boolean) {\n this._hideToggle = value;\n }\n private _hideToggle = false;\n\n /** The position of the expansion indicator. */\n @Input()\n get togglePosition(): MatAccordionTogglePosition {\n return this._togglePosition || (this.accordion && this.accordion.togglePosition);\n }\n set togglePosition(value: MatAccordionTogglePosition) {\n this._togglePosition = value;\n }\n private _togglePosition: MatAccordionTogglePosition;\n\n /** An event emitted after the body's expansion animation happens. */\n @Output() readonly afterExpand = new EventEmitter<void>();\n\n /** An event emitted after the body's collapse animation happens. */\n @Output() readonly afterCollapse = new EventEmitter<void>();\n\n /** Stream that emits for changes in `@Input` properties. */\n readonly _inputChanges = new Subject<SimpleChanges>();\n\n /** Optionally defined accordion the expansion panel belongs to. */\n override accordion = inject<MatAccordionBase>(MAT_ACCORDION, {optional: true, skipSelf: true})!;\n\n /** Content that will be rendered lazily. */\n @ContentChild(MatExpansionPanelContent) _lazyContent: MatExpansionPanelContent;\n\n /** Element containing the panel's user-provided content. */\n @ViewChild('body') _body: ElementRef<HTMLElement>;\n\n /** Element wrapping the panel body. */\n @ViewChild('bodyWrapper')\n protected _bodyWrapper: ElementRef<HTMLElement> | undefined;\n\n /** Portal holding the user's content. */\n _portal: TemplatePortal;\n\n /** ID for the associated header element. Used for a11y labelling. */\n _headerId: string = inject(_IdGenerator).getId('mat-expansion-panel-header-');\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n\n const defaultOptions = inject<MatExpansionPanelDefaultOptions>(\n MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\n {optional: true},\n );\n\n this._expansionDispatcher = inject(UniqueSelectionDispatcher);\n\n if (defaultOptions) {\n this.hideToggle = defaultOptions.hideToggle;\n }\n }\n\n /** Determines whether the expansion panel should have spacing between it and its siblings. */\n _hasSpacing(): boolean {\n if (this.accordion) {\n return this.expanded && this.accordion.displayMode === 'default';\n }\n return false;\n }\n\n /** Gets the expanded state string. */\n _getExpandedState(): MatExpansionPanelState {\n return this.expanded ? 'expanded' : 'collapsed';\n }\n\n /** Toggles the expanded state of the expansion panel. */\n override toggle(): void {\n this.expanded = !this.expanded;\n }\n\n /** Sets the expanded state of the expansion panel to false. */\n override close(): void {\n this.expanded = false;\n }\n\n /** Sets the expanded state of the expansion panel to true. */\n override open(): void {\n this.expanded = true;\n }\n\n ngAfterContentInit() {\n if (this._lazyContent && this._lazyContent._expansionPanel === this) {\n // Render the content as soon as the panel becomes open.\n this.opened\n .pipe(\n startWith(null),\n filter(() => this.expanded && !this._portal),\n take(1),\n )\n .subscribe(() => {\n this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);\n });\n }\n\n this._setupAnimationEvents();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this._inputChanges.next(changes);\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this._cleanupTransitionEnd?.();\n this._inputChanges.complete();\n }\n\n /** Checks whether the expansion panel's content contains the currently-focused element. */\n _containsFocus(): boolean {\n if (this._body) {\n const focusedElement = this._document.activeElement;\n const bodyElement = this._body.nativeElement;\n return focusedElement === bodyElement || bodyElement.contains(focusedElement);\n }\n\n return false;\n }\n\n private _transitionEndListener = ({target, propertyName}: TransitionEvent) => {\n if (target === this._bodyWrapper?.nativeElement && propertyName === 'grid-template-rows') {\n this._ngZone.run(() => {\n if (this.expanded) {\n this.afterExpand.emit();\n } else {\n this.afterCollapse.emit();\n }\n });\n }\n };\n\n protected _setupAnimationEvents() {\n // This method is defined separately, because we need to\n // disable this logic in some internal components.\n this._ngZone.runOutsideAngular(() => {\n if (this._animationsDisabled) {\n this.opened.subscribe(() => this._ngZone.run(() => this.afterExpand.emit()));\n this.closed.subscribe(() => this._ngZone.run(() => this.afterCollapse.emit()));\n } else {\n setTimeout(() => {\n const element = this._elementRef.nativeElement;\n this._cleanupTransitionEnd = this._renderer.listen(\n element,\n 'transitionend',\n this._transitionEndListener,\n );\n element.classList.add('mat-expansion-panel-animations-enabled');\n }, 200);\n }\n });\n }\n}\n\n/**\n * Actions of a `<mat-expansion-panel>`.\n */\n@Directive({\n selector: 'mat-action-row',\n host: {\n class: 'mat-action-row',\n },\n})\nexport class MatExpansionPanelActionRow {}\n","<ng-content select=\"mat-expansion-panel-header\"></ng-content>\n<div class=\"mat-expansion-panel-content-wrapper\" [attr.inert]=\"expanded ? null : ''\" #bodyWrapper>\n <div class=\"mat-expansion-panel-content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_headerId\"\n [id]=\"id\"\n #body>\n <div class=\"mat-expansion-panel-body\">\n <ng-content></ng-content>\n <ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n </div>\n <ng-content select=\"mat-action-row\"></ng-content>\n </div>\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {FocusableOption, FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {ENTER, hasModifierKey, SPACE} from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n numberAttribute,\n OnDestroy,\n ViewEncapsulation,\n inject,\n HostAttributeToken,\n} from '@angular/core';\nimport {EMPTY, merge, Subscription} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {MatAccordionTogglePosition} from './accordion-base';\nimport {\n MatExpansionPanel,\n MatExpansionPanelDefaultOptions,\n MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\n} from './expansion-panel';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\nimport {_StructuralStylesLoader} from '../core';\n\n/**\n * Header element of a `<mat-expansion-panel>`.\n */\n@Component({\n selector: 'mat-expansion-panel-header',\n styleUrl: 'expansion-panel-header.css',\n templateUrl: 'expansion-panel-header.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-expansion-panel-header mat-focus-indicator',\n 'role': 'button',\n '[attr.id]': 'panel._headerId',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '[attr.aria-controls]': '_getPanelId()',\n '[attr.aria-expanded]': '_isExpanded()',\n '[attr.aria-disabled]': 'panel.disabled',\n '[class.mat-expanded]': '_isExpanded()',\n '[class.mat-expansion-toggle-indicator-after]': `_getTogglePosition() === 'after'`,\n '[class.mat-expansion-toggle-indicator-before]': `_getTogglePosition() === 'before'`,\n '[style.height]': '_getHeaderHeight()',\n '(click)': '_toggle()',\n '(keydown)': '_keydown($event)',\n },\n})\nexport class MatExpansionPanelHeader implements AfterViewInit, OnDestroy, FocusableOption {\n panel = inject(MatExpansionPanel, {host: true});\n private _element = inject(ElementRef);\n private _focusMonitor = inject(FocusMonitor);\n private _changeDetectorRef = inject(ChangeDetectorRef);\n\n private _parentChangeSubscription = Subscription.EMPTY;\n\n constructor(...args: unknown[]);\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const panel = this.panel;\n const defaultOptions = inject<MatExpansionPanelDefaultOptions>(\n MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\n {optional: true},\n );\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\n\n const accordionHideToggleChange = panel.accordion\n ? panel.accordion._stateChanges.pipe(\n filter(changes => !!(changes['hideToggle'] || changes['togglePosition'])),\n )\n : EMPTY;\n this.tabIndex = parseInt(tabIndex || '') || 0;\n\n // Since the toggle state depends on an @Input on the panel, we\n // need to subscribe and trigger change detection manually.\n this._parentChangeSubscription = merge(\n panel.opened,\n panel.closed,\n accordionHideToggleChange,\n panel._inputChanges.pipe(\n filter(changes => {\n return !!(changes['hideToggle'] || changes['disabled'] || changes['togglePosition']);\n }),\n ),\n ).subscribe(() => this._changeDetectorRef.markForCheck());\n\n // Avoids focus being lost if the panel contained the focused element and was closed.\n panel.closed\n .pipe(filter(() => panel._containsFocus()))\n .subscribe(() => this._focusMonitor.focusVia(this._element, 'program'));\n\n if (defaultOptions) {\n this.expandedHeight = defaultOptions.expandedHeight;\n this.collapsedHeight = defaultOptions.collapsedHeight;\n }\n }\n\n /** Height of the header while the panel is expanded. */\n @Input() expandedHeight: string;\n\n /** Height of the header while the panel is collapsed. */\n @Input() collapsedHeight: string;\n\n /** Tab index of the header. */\n @Input({\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n })\n tabIndex: number = 0;\n\n /**\n * Whether the associated panel is disabled. Implemented as a part of `FocusableOption`.\n * @docs-private\n */\n get disabled(): boolean {\n return this.panel.disabled;\n }\n\n /** Toggles the expanded state of the panel. */\n _toggle(): void {\n if (!this.disabled) {\n this.panel.toggle();\n }\n }\n\n /** Gets whether the panel is expanded. */\n _isExpanded(): boolean {\n return this.panel.expanded;\n }\n\n /** Gets the expanded state string of the panel. */\n _getExpandedState(): string {\n return this.panel._getExpandedState();\n }\n\n /** Gets the panel id. */\n _getPanelId(): string {\n return this.panel.id;\n }\n\n /** Gets the toggle position for the header. */\n _getTogglePosition(): MatAccordionTogglePosition {\n return this.panel.togglePosition;\n }\n\n /** Gets whether the expand indicator should be shown. */\n _showToggle(): boolean {\n return !this.panel.hideToggle && !this.panel.disabled;\n }\n\n /**\n * Gets the current height of the header. Null if no custom height has been\n * specified, and if the default height from the stylesheet should be used.\n */\n _getHeaderHeight(): string | null {\n const isExpanded = this._isExpanded();\n if (isExpanded && this.expandedHeight) {\n return this.expandedHeight;\n } else if (!isExpanded && this.collapsedHeight) {\n return this.collapsedHeight;\n }\n return null;\n }\n\n /** Handle keydown event calling to toggle() if appropriate. */\n _keydown(event: KeyboardEvent) {\n switch (event.keyCode) {\n // Toggle for space and enter keys.\n case SPACE:\n case ENTER:\n if (!hasModifierKey(event)) {\n event.preventDefault();\n this._toggle();\n }\n\n break;\n default:\n if (this.panel.accordion) {\n this.panel.accordion._handleHeaderKeydown(event);\n }\n\n return;\n }\n }\n\n /**\n * Focuses the panel header. Implemented as a part of `FocusableOption`.\n * @param origin Origin of the action that triggered the focus.\n * @docs-private\n */\n focus(origin?: FocusOrigin, options?: FocusOptions) {\n if (origin) {\n this._focusMonitor.focusVia(this._element, origin, options);\n } else {\n this._element.nativeElement.focus(options);\n }\n }\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._element).subscribe(origin => {\n if (origin && this.panel.accordion) {\n this.panel.accordion._handleHeaderFocus(this);\n }\n });\n }\n\n ngOnDestroy() {\n this._parentChangeSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._element);\n }\n}\n\n/**\n * Description element of a `<mat-expansion-panel-header>`.\n */\n@Directive({\n selector: 'mat-panel-description',\n host: {\n class: 'mat-expansion-panel-header-description',\n },\n})\nexport class MatExpansionPanelDescription {}\n\n/**\n * Title element of a `<mat-expansion-panel-header>`.\n */\n@Directive({\n selector: 'mat-panel-title',\n host: {\n class: 'mat-expansion-panel-header-title',\n },\n})\nexport class MatExpansionPanelTitle {}\n","<span class=\"mat-content\" [class.mat-content-hide-toggle]=\"!_showToggle()\">\n <ng-content select=\"mat-panel-title\"></ng-content>\n <ng-content select=\"mat-panel-description\"></ng-content>\n <ng-content></ng-content>\n</span>\n\n@if (_showToggle()) {\n <span class=\"mat-expansion-indicator\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n aria-hidden=\"true\"\n focusable=\"false\">\n <path d=\"M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z\"/>\n </svg>\n </span>\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n Input,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnDestroy,\n booleanAttribute,\n} from '@angular/core';\nimport {CdkAccordion} from '@angular/cdk/accordion';\nimport {FocusKeyManager} from '@angular/cdk/a11y';\nimport {startWith} from 'rxjs/operators';\nimport {\n MAT_ACCORDION,\n MatAccordionBase,\n MatAccordionDisplayMode,\n MatAccordionTogglePosition,\n} from './accordion-base';\nimport {MatExpansionPanelHeader} from './expansion-panel-header';\n\n/**\n * Directive for a Material Design Accordion.\n */\n@Directive({\n selector: 'mat-accordion',\n exportAs: 'matAccordion',\n providers: [\n {\n provide: MAT_ACCORDION,\n useExisting: MatAccordion,\n },\n ],\n host: {\n class: 'mat-accordion',\n // Class binding which is only used by the test harness as there is no other\n // way for the harness to detect if multiple panel support is enabled.\n '[class.mat-accordion-multi]': 'this.multi',\n },\n})\nexport class MatAccordion\n extends CdkAccordion\n implements MatAccordionBase, AfterContentInit, OnDestroy\n{\n private _keyManager: FocusKeyManager<MatExpansionPanelHeader>;\n\n /** Headers belonging to this accordion. */\n private _ownHeaders = new QueryList<MatExpansionPanelHeader>();\n\n /** All headers inside the accordion. Includes headers inside nested accordions. */\n @ContentChildren(MatExpansionPanelHeader, {descendants: true})\n _headers: QueryList<MatExpansionPanelHeader>;\n\n /** Whether the expansion indicator should be hidden. */\n @Input({transform: booleanAttribute})\n hideToggle: boolean = false;\n\n /**\n * Display mode used for all expansion panels in the accordion. Currently two display\n * modes exist:\n * default - a gutter-like spacing is placed around any expanded panel, placing the expanded\n * panel at a different elevation from the rest of the accordion.\n * flat - no spacing is placed around expanded panels, showing all panels at the same\n * elevation.\n */\n @Input() displayMode: MatAccordionDisplayMode = 'default';\n\n /** The position of the expansion indicator. */\n @Input() togglePosition: MatAccordionTogglePosition = 'after';\n\n ngAfterContentInit() {\n this._headers.changes\n .pipe(startWith(this._headers))\n .subscribe((headers: QueryList<MatExpansionPanelHeader>) => {\n this._ownHeaders.reset(headers.filter(header => header.panel.accordion === this));\n this._ownHeaders.notifyOnChanges();\n });\n\n this._keyManager = new FocusKeyManager(this._ownHeaders).withWrap().withHomeAndEnd();\n }\n\n /** Handles keyboard events coming in from the panel headers. */\n _handleHeaderKeydown(event: KeyboardEvent) {\n this._keyManager.onKeydown(event);\n }\n\n _handleHeaderFocus(header: MatExpansionPanelHeader) {\n this._keyManager.updateActiveItem(header);\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n this._keyManager?.destroy();\n this._ownHeaders.destroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {CdkAccordionModule} from '@angular/cdk/accordion';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {NgModule} from '@angular/core';\nimport {MatAccordion} from './accordion';\nimport {MatExpansionPanel, MatExpansionPanelActionRow} from './expansion-panel';\nimport {MatExpansionPanelContent} from './expansion-panel-content';\nimport {\n MatExpansionPanelDescription,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n} from './expansion-panel-header';\n\n@NgModule({\n imports: [\n CdkAccordionModule,\n PortalModule,\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n exports: [\n BidiModule,\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n})\nexport class MatExpansionModule {}\n"],"names":["MAT_ACCORDION","InjectionToken","MAT_EXPANSION_PANEL","MatExpansionPanelContent","_template","inject","TemplateRef","_expansionPanel","optional","constructor","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","ngImport","decorators","args","MAT_EXPANSION_PANEL_DEFAULT_OPTIONS","MatExpansionPanel","CdkAccordionItem","_viewContainerRef","ViewContainerRef","_animationsDisabled","_document","DOCUMENT","_ngZone","NgZone","_elementRef","ElementRef","_renderer","Renderer2","_cleanupTransitionEnd","hideToggle","_hideToggle","accordion","value","togglePosition","_togglePosition","afterExpand","EventEmitter","afterCollapse","_inputChanges","Subject","skipSelf","_lazyContent","_body","_bodyWrapper","_portal","_headerId","_IdGenerator","getId","defaultOptions","_expansionDispatcher","UniqueSelectionDispatcher","_hasSpacing","expanded","displayMode","_getExpandedState","toggle","close","open","ngAfterContentInit","opened","pipe","startWith","filter","take","subscribe","TemplatePortal","_setupAnimationEvents","ngOnChanges","changes","next","ngOnDestroy","complete","_containsFocus","focusedElement","activeElement","bodyElement","nativeElement","contains","_transitionEndListener","propertyName","run","emit","runOutsideAngular","closed","setTimeout","element","listen","classList","add","Component","inputs","booleanAttribute","outputs","host","properties","classAttribute","providers","provide","useValue","undefined","useExisting","queries","first","predicate","descendants","viewQueries","exportAs","usesInheritance","usesOnChanges","template","styles","dependencies","kind","type","CdkPortalOutlet","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","imports","Input","transform","Output","ContentChild","ViewChild","MatExpansionPanelActionRow","class","MatExpansionPanelHeader","panel","_element","_focusMonitor","FocusMonitor","_changeDetectorRef","ChangeDetectorRef","_parentChangeSubscription","Subscription","EMPTY","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","tabIndex","HostAttributeToken","accordionHideToggleChange","_stateChanges","parseInt","merge","markForCheck","focusVia","expandedHeight","collapsedHeight","disabled","_toggle","_isExpanded","_getPanelId","id","_getTogglePosition","_showToggle","_getHeaderHeight","isExpanded","_keydown","event","keyCode","SPACE","ENTER","hasModifierKey","preventDefault","_handleHeaderKeydown","focus","origin","options","ngAfterViewInit","monitor","_handleHeaderFocus","unsubscribe","stopMonitoring","numberAttribute","attributes","listeners","MatExpansionPanelDescription","MatExpansionPanelTitle","MatAccordion","CdkAccordion","_keyManager","_ownHeaders","QueryList","_headers","headers","reset","header","notifyOnChanges","FocusKeyManager","withWrap","withHomeAndEnd","onKeydown","updateActiveItem","destroy","ContentChildren","MatExpansionModule","NgModule","ɵmod","ɵɵngDeclareNgModule","minVersion","version","CdkAccordionModule","PortalModule","BidiModule","ɵinj","ɵɵngDeclareInjector","exports"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-field-testing-control.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/form-field/testing/control/form-field-control-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness} from '@angular/cdk/testing';\n\n/**\n * Base class for custom form-field control harnesses. Harnesses for\n * custom controls with form-fields need to implement this interface.\n */\nexport abstract class MatFormFieldControlHarness extends ComponentHarness {}\n\n/**\n * Shared behavior for `MatFormFieldControlHarness` implementations\n */\nexport abstract class MatFormFieldControlHarnessBase extends MatFormFieldControlHarness {\n /**\n * Gets the label for the control, if it exists. This might be provided by a label element or by\n * the `aria-label` attribute.\n */\n async getLabel(): Promise<string | null> {\n const documentRootLocator = this.documentRootLocatorFactory();\n const labelId = await (await this.host()).getAttribute('aria-labelledby');\n const labelText = await (await this.host()).getAttribute('aria-label');\n const hostId = await (await this.host()).getAttribute('id');\n\n if (labelId) {\n // First, try to find the label by following [aria-labelledby]\n const labelEl = await documentRootLocator.locatorForOptional(`[id=\"${labelId}\"]`)();\n return labelEl ? labelEl.text() : null;\n } else if (labelText) {\n // If that doesn't work, return [aria-label] if it exists\n return labelText;\n } else if (hostId) {\n // Finally, search the DOM for a label that points to the host element\n const labelEl = await documentRootLocator.locatorForOptional(`[for=\"${hostId}\"]`)();\n return labelEl ? labelEl.text() : null;\n }\n return null;\n }\n}\n"],"names":["MatFormFieldControlHarness","ComponentHarness","MatFormFieldControlHarnessBase","getLabel","documentRootLocator","documentRootLocatorFactory","labelId","host","getAttribute","labelText","hostId","labelEl","locatorForOptional","text"],"mappings":";;AAcM,MAAgBA,0BAA2B,SAAQC,gBAAgB,CAAA;AAKnE,MAAgBC,8BAA+B,SAAQF,0BAA0B,CAAA;EAKrF,MAAMG,QAAQA,GAAA;AACZ,IAAA,MAAMC,mBAAmB,GAAG,IAAI,CAACC,0BAA0B,EAAE;AAC7D,IAAA,MAAMC,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,CAACC,IAAI,EAAE,EAAEC,YAAY,CAAC,iBAAiB,CAAC;AACzE,IAAA,MAAMC,SAAS,GAAG,MAAM,CAAC,MAAM,IAAI,CAACF,IAAI,EAAE,EAAEC,YAAY,CAAC,YAAY,CAAC;AACtE,IAAA,MAAME,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAACH,IAAI,EAAE,EAAEC,YAAY,CAAC,IAAI,CAAC;AAE3D,IAAA,IAAIF,OAAO,EAAE;AAEX,MAAA,MAAMK,OAAO,GAAG,MAAMP,mBAAmB,CAACQ,kBAAkB,CAAC,CAAA,KAAA,EAAQN,OAAO,CAAA,EAAA,CAAI,CAAC,EAAE;MACnF,OAAOK,OAAO,GAAGA,OAAO,CAACE,IAAI,EAAE,GAAG,IAAI;KACxC,MAAO,IAAIJ,SAAS,EAAE;AAEpB,MAAA,OAAOA,SAAS;KAClB,MAAO,IAAIC,MAAM,EAAE;AAEjB,MAAA,MAAMC,OAAO,GAAG,MAAMP,mBAAmB,CAACQ,kBAAkB,CAAC,CAAA,MAAA,EAASF,MAAM,CAAA,EAAA,CAAI,CAAC,EAAE;MACnF,OAAOC,OAAO,GAAGA,OAAO,CAACE,IAAI,EAAE,GAAG,IAAI;AACxC;AACA,IAAA,OAAO,IAAI;AACb;AACD;;;;"}
1
+ {"version":3,"file":"form-field-testing-control.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/form-field/testing/control/form-field-control-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness} from '@angular/cdk/testing';\n\n/**\n * Base class for custom form-field control harnesses. Harnesses for\n * custom controls with form-fields need to implement this interface.\n */\nexport abstract class MatFormFieldControlHarness extends ComponentHarness {}\n\n/**\n * Shared behavior for `MatFormFieldControlHarness` implementations\n */\nexport abstract class MatFormFieldControlHarnessBase extends MatFormFieldControlHarness {\n /**\n * Gets the label for the control, if it exists. This might be provided by a label element or by\n * the `aria-label` attribute.\n */\n async getLabel(): Promise<string | null> {\n const documentRootLocator = this.documentRootLocatorFactory();\n const labelId = await (await this.host()).getAttribute('aria-labelledby');\n const labelText = await (await this.host()).getAttribute('aria-label');\n const hostId = await (await this.host()).getAttribute('id');\n\n if (labelId) {\n // First, try to find the label by following [aria-labelledby]\n const labelEl = await documentRootLocator.locatorForOptional(`[id=\"${labelId}\"]`)();\n return labelEl ? labelEl.text() : null;\n } else if (labelText) {\n // If that doesn't work, return [aria-label] if it exists\n return labelText;\n } else if (hostId) {\n // Finally, search the DOM for a label that points to the host element\n const labelEl = await documentRootLocator.locatorForOptional(`[for=\"${hostId}\"]`)();\n return labelEl ? labelEl.text() : null;\n }\n return null;\n }\n}\n"],"names":["MatFormFieldControlHarness","ComponentHarness","MatFormFieldControlHarnessBase","getLabel","documentRootLocator","documentRootLocatorFactory","labelId","host","getAttribute","labelText","hostId","labelEl","locatorForOptional","text"],"mappings":";;AAcM,MAAgBA,0BAA2B,SAAQC,gBAAgB,CAAA;AAKnE,MAAgBC,8BAA+B,SAAQF,0BAA0B,CAAA;EAKrF,MAAMG,QAAQA,GAAA;AACZ,IAAA,MAAMC,mBAAmB,GAAG,IAAI,CAACC,0BAA0B,EAAE;AAC7D,IAAA,MAAMC,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,CAACC,IAAI,EAAE,EAAEC,YAAY,CAAC,iBAAiB,CAAC;AACzE,IAAA,MAAMC,SAAS,GAAG,MAAM,CAAC,MAAM,IAAI,CAACF,IAAI,EAAE,EAAEC,YAAY,CAAC,YAAY,CAAC;AACtE,IAAA,MAAME,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAACH,IAAI,EAAE,EAAEC,YAAY,CAAC,IAAI,CAAC;AAE3D,IAAA,IAAIF,OAAO,EAAE;AAEX,MAAA,MAAMK,OAAO,GAAG,MAAMP,mBAAmB,CAACQ,kBAAkB,CAAC,CAAA,KAAA,EAAQN,OAAO,CAAA,EAAA,CAAI,CAAC,EAAE;MACnF,OAAOK,OAAO,GAAGA,OAAO,CAACE,IAAI,EAAE,GAAG,IAAI;KACxC,MAAO,IAAIJ,SAAS,EAAE;AAEpB,MAAA,OAAOA,SAAS;KAClB,MAAO,IAAIC,MAAM,EAAE;AAEjB,MAAA,MAAMC,OAAO,GAAG,MAAMP,mBAAmB,CAACQ,kBAAkB,CAAC,CAAA,MAAA,EAASF,MAAM,CAAA,EAAA,CAAI,CAAC,EAAE;MACnF,OAAOC,OAAO,GAAGA,OAAO,CAACE,IAAI,EAAE,GAAG,IAAI;AACxC;AACA,IAAA,OAAO,IAAI;AACb;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-field-testing.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/form-field/testing/error-harness.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/form-field/testing/form-field-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n BaseHarnessFilters,\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\n/** A set of criteria that can be used to filter a list of error harness instances. */\nexport interface ErrorHarnessFilters extends BaseHarnessFilters {\n /** Only find instances whose text matches the given value. */\n text?: string | RegExp;\n}\n\n/** Harness for interacting with a `mat-error` in tests. */\nexport class MatErrorHarness extends ComponentHarness {\n static hostSelector = '.mat-mdc-form-field-error';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for an error with specific\n * attributes.\n * @param options Options for filtering which error instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatErrorHarness>(\n this: ComponentHarnessConstructor<T>,\n options: ErrorHarnessFilters = {},\n ): HarnessPredicate<T> {\n return MatErrorHarness._getErrorPredicate(this, options);\n }\n\n protected static _getErrorPredicate<T extends MatErrorHarness>(\n type: ComponentHarnessConstructor<T>,\n options: ErrorHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(type, options).addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n );\n }\n\n /** Gets a promise for the error's label text. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n HarnessQuery,\n parallel,\n} from '@angular/cdk/testing';\nimport {ErrorHarnessFilters, MatErrorHarness} from './error-harness';\nimport {MatInputHarness} from '../../input/testing';\nimport {MatFormFieldControlHarness} from './control';\nimport {MatSelectHarness} from '../../select/testing';\nimport {MatDatepickerInputHarness, MatDateRangeInputHarness} from '../../datepicker/testing';\nimport {FormFieldHarnessFilters} from './form-field-harness-filters';\n\n/** Possible harnesses of controls which can be bound to a form-field. */\nexport type FormFieldControlHarness =\n | MatInputHarness\n | MatSelectHarness\n | MatDatepickerInputHarness\n | MatDateRangeInputHarness;\n\nexport class MatFormFieldHarness extends ComponentHarness {\n private _prefixContainer = this.locatorForOptional('.mat-mdc-form-field-text-prefix');\n private _suffixContainer = this.locatorForOptional('.mat-mdc-form-field-text-suffix');\n private _label = this.locatorForOptional('.mdc-floating-label');\n private _hints = this.locatorForAll('.mat-mdc-form-field-hint');\n private _inputControl = this.locatorForOptional(MatInputHarness);\n private _selectControl = this.locatorForOptional(MatSelectHarness);\n private _datepickerInputControl = this.locatorForOptional(MatDatepickerInputHarness);\n private _dateRangeInputControl = this.locatorForOptional(MatDateRangeInputHarness);\n private _textField = this.locatorFor('.mat-mdc-text-field-wrapper');\n private _errorHarness = MatErrorHarness;\n\n static hostSelector = '.mat-mdc-form-field';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a form field with specific\n * attributes.\n * @param options Options for filtering which form field instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatFormFieldHarness>(\n this: ComponentHarnessConstructor<T>,\n options: FormFieldHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('floatingLabelText', options.floatingLabelText, async (harness, text) =>\n HarnessPredicate.stringMatches(await harness.getLabel(), text),\n )\n .addOption(\n 'hasErrors',\n options.hasErrors,\n async (harness, hasErrors) => (await harness.hasErrors()) === hasErrors,\n )\n .addOption(\n 'isValid',\n options.isValid,\n async (harness, isValid) => (await harness.isControlValid()) === isValid,\n );\n }\n\n /** Gets the appearance of the form-field. */\n async getAppearance(): Promise<'fill' | 'outline'> {\n const textFieldEl = await this._textField();\n if (await textFieldEl.hasClass('mdc-text-field--outlined')) {\n return 'outline';\n }\n return 'fill';\n }\n\n /** Whether the form-field has a label. */\n async hasLabel(): Promise<boolean> {\n return (await this._label()) !== null;\n }\n\n /** Whether the label is currently floating. */\n async isLabelFloating(): Promise<boolean> {\n const labelEl = await this._label();\n return labelEl !== null ? await labelEl.hasClass('mdc-floating-label--float-above') : false;\n }\n\n /** Gets the label of the form-field. */\n async getLabel(): Promise<string | null> {\n const labelEl = await this._label();\n return labelEl ? labelEl.text() : null;\n }\n\n /** Whether the form-field has errors. */\n async hasErrors(): Promise<boolean> {\n return (await this.getTextErrors()).length > 0;\n }\n\n /** Whether the form-field is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass('mat-form-field-disabled');\n }\n\n /** Whether the form-field is currently autofilled. */\n async isAutofilled(): Promise<boolean> {\n return (await this.host()).hasClass('mat-form-field-autofilled');\n }\n\n /**\n * Gets the harness of the control that is bound to the form-field. Only\n * default controls such as \"MatInputHarness\" and \"MatSelectHarness\" are\n * supported.\n */\n async getControl(): Promise<FormFieldControlHarness | null>;\n\n /**\n * Gets the harness of the control that is bound to the form-field. Searches\n * for a control that matches the specified harness type.\n */\n async getControl<X extends MatFormFieldControlHarness>(\n type: ComponentHarnessConstructor<X>,\n ): Promise<X | null>;\n\n /**\n * Gets the harness of the control that is bound to the form-field. Searches\n * for a control that matches the specified harness predicate.\n */\n async getControl<X extends MatFormFieldControlHarness>(\n type: HarnessPredicate<X>,\n ): Promise<X | null>;\n\n // Implementation of the \"getControl\" method overload signatures.\n async getControl<X extends MatFormFieldControlHarness>(type?: HarnessQuery<X>) {\n if (type) {\n return this.locatorForOptional(type)();\n }\n const [select, input, datepickerInput, dateRangeInput] = await parallel(() => [\n this._selectControl(),\n this._inputControl(),\n this._datepickerInputControl(),\n this._dateRangeInputControl(),\n ]);\n\n // Match the datepicker inputs first since they can also have a `MatInput`.\n return datepickerInput || dateRangeInput || select || input;\n }\n\n /** Gets the theme color of the form-field. */\n async getThemeColor(): Promise<'primary' | 'accent' | 'warn'> {\n const hostEl = await this.host();\n const [isAccent, isWarn] = await parallel(() => {\n return [hostEl.hasClass('mat-accent'), hostEl.hasClass('mat-warn')];\n });\n if (isAccent) {\n return 'accent';\n } else if (isWarn) {\n return 'warn';\n }\n return 'primary';\n }\n\n /** Gets error messages which are currently displayed in the form-field. */\n async getTextErrors(): Promise<string[]> {\n const errors = await this.getErrors();\n return parallel(() => errors.map(e => e.getText()));\n }\n\n /** Gets all of the error harnesses in the form field. */\n async getErrors(filter: ErrorHarnessFilters = {}): Promise<MatErrorHarness[]> {\n return this.locatorForAll(this._errorHarness.with(filter))();\n }\n\n /** Gets hint messages which are currently displayed in the form-field. */\n async getTextHints(): Promise<string[]> {\n const hints = await this._hints();\n return parallel(() => hints.map(e => e.text()));\n }\n\n /** Gets the text inside the prefix element. */\n async getPrefixText(): Promise<string> {\n const prefix = await this._prefixContainer();\n return prefix ? prefix.text() : '';\n }\n\n /** Gets the text inside the suffix element. */\n async getSuffixText(): Promise<string> {\n const suffix = await this._suffixContainer();\n return suffix ? suffix.text() : '';\n }\n\n /**\n * Whether the form control has been touched. Returns \"null\"\n * if no form control is set up.\n */\n async isControlTouched(): Promise<boolean | null> {\n if (!(await this._hasFormControl())) {\n return null;\n }\n return (await this.host()).hasClass('ng-touched');\n }\n\n /**\n * Whether the form control is dirty. Returns \"null\"\n * if no form control is set up.\n */\n async isControlDirty(): Promise<boolean | null> {\n if (!(await this._hasFormControl())) {\n return null;\n }\n return (await this.host()).hasClass('ng-dirty');\n }\n\n /**\n * Whether the form control is valid. Returns \"null\"\n * if no form control is set up.\n */\n async isControlValid(): Promise<boolean | null> {\n if (!(await this._hasFormControl())) {\n return null;\n }\n return (await this.host()).hasClass('ng-valid');\n }\n\n /**\n * Whether the form control is pending validation. Returns \"null\"\n * if no form control is set up.\n */\n async isControlPending(): Promise<boolean | null> {\n if (!(await this._hasFormControl())) {\n return null;\n }\n return (await this.host()).hasClass('ng-pending');\n }\n\n /** Checks whether the form-field control has set up a form control. */\n private async _hasFormControl(): Promise<boolean> {\n const hostEl = await this.host();\n // If no form \"NgControl\" is bound to the form-field control, the form-field\n // is not able to forward any control status classes. Therefore if either the\n // \"ng-touched\" or \"ng-untouched\" class is set, we know that it has a form control\n const [isTouched, isUntouched] = await parallel(() => [\n hostEl.hasClass('ng-touched'),\n hostEl.hasClass('ng-untouched'),\n ]);\n return isTouched || isUntouched;\n }\n}\n"],"names":["MatErrorHarness","ComponentHarness","hostSelector","with","options","_getErrorPredicate","type","HarnessPredicate","addOption","text","harness","stringMatches","getText","host","MatFormFieldHarness","_prefixContainer","locatorForOptional","_suffixContainer","_label","_hints","locatorForAll","_inputControl","MatInputHarness","_selectControl","MatSelectHarness","_datepickerInputControl","MatDatepickerInputHarness","_dateRangeInputControl","MatDateRangeInputHarness","_textField","locatorFor","_errorHarness","floatingLabelText","getLabel","hasErrors","isValid","isControlValid","getAppearance","textFieldEl","hasClass","hasLabel","isLabelFloating","labelEl","getTextErrors","length","isDisabled","isAutofilled","getControl","select","input","datepickerInput","dateRangeInput","parallel","getThemeColor","hostEl","isAccent","isWarn","errors","getErrors","map","e","filter","getTextHints","hints","getPrefixText","prefix","getSuffixText","suffix","isControlTouched","_hasFormControl","isControlDirty","isControlPending","isTouched","isUntouched"],"mappings":"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"}
1
+ {"version":3,"file":"form-field-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/form-field/testing/error-harness.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/form-field/testing/form-field-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n BaseHarnessFilters,\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\n/** A set of criteria that can be used to filter a list of error harness instances. */\nexport interface ErrorHarnessFilters extends BaseHarnessFilters {\n /** Only find instances whose text matches the given value. */\n text?: string | RegExp;\n}\n\n/** Harness for interacting with a `mat-error` in tests. */\nexport class MatErrorHarness extends ComponentHarness {\n static hostSelector = '.mat-mdc-form-field-error';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for an error with specific\n * attributes.\n * @param options Options for filtering which error instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatErrorHarness>(\n this: ComponentHarnessConstructor<T>,\n options: ErrorHarnessFilters = {},\n ): HarnessPredicate<T> {\n return MatErrorHarness._getErrorPredicate(this, options);\n }\n\n protected static _getErrorPredicate<T extends MatErrorHarness>(\n type: ComponentHarnessConstructor<T>,\n options: ErrorHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(type, options).addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n );\n }\n\n /** Gets a promise for the error's label text. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n HarnessQuery,\n parallel,\n} from '@angular/cdk/testing';\nimport {ErrorHarnessFilters, MatErrorHarness} from './error-harness';\nimport {MatInputHarness} from '../../input/testing';\nimport {MatFormFieldControlHarness} from './control';\nimport {MatSelectHarness} from '../../select/testing';\nimport {MatDatepickerInputHarness, MatDateRangeInputHarness} from '../../datepicker/testing';\nimport {FormFieldHarnessFilters} from './form-field-harness-filters';\n\n/** Possible harnesses of controls which can be bound to a form-field. */\nexport type FormFieldControlHarness =\n | MatInputHarness\n | MatSelectHarness\n | MatDatepickerInputHarness\n | MatDateRangeInputHarness;\n\nexport class MatFormFieldHarness extends ComponentHarness {\n private _prefixContainer = this.locatorForOptional('.mat-mdc-form-field-text-prefix');\n private _suffixContainer = this.locatorForOptional('.mat-mdc-form-field-text-suffix');\n private _label = this.locatorForOptional('.mdc-floating-label');\n private _hints = this.locatorForAll('.mat-mdc-form-field-hint');\n private _inputControl = this.locatorForOptional(MatInputHarness);\n private _selectControl = this.locatorForOptional(MatSelectHarness);\n private _datepickerInputControl = this.locatorForOptional(MatDatepickerInputHarness);\n private _dateRangeInputControl = this.locatorForOptional(MatDateRangeInputHarness);\n private _textField = this.locatorFor('.mat-mdc-text-field-wrapper');\n private _errorHarness = MatErrorHarness;\n\n static hostSelector = '.mat-mdc-form-field';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a form field with specific\n * attributes.\n * @param options Options for filtering which form field instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatFormFieldHarness>(\n this: ComponentHarnessConstructor<T>,\n options: FormFieldHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('floatingLabelText', options.floatingLabelText, async (harness, text) =>\n HarnessPredicate.stringMatches(await harness.getLabel(), text),\n )\n .addOption(\n 'hasErrors',\n options.hasErrors,\n async (harness, hasErrors) => (await harness.hasErrors()) === hasErrors,\n )\n .addOption(\n 'isValid',\n options.isValid,\n async (harness, isValid) => (await harness.isControlValid()) === isValid,\n );\n }\n\n /** Gets the appearance of the form-field. */\n async getAppearance(): Promise<'fill' | 'outline'> {\n const textFieldEl = await this._textField();\n if (await textFieldEl.hasClass('mdc-text-field--outlined')) {\n return 'outline';\n }\n return 'fill';\n }\n\n /** Whether the form-field has a label. */\n async hasLabel(): Promise<boolean> {\n return (await this._label()) !== null;\n }\n\n /** Whether the label is currently floating. */\n async isLabelFloating(): Promise<boolean> {\n const labelEl = await this._label();\n return labelEl !== null ? await labelEl.hasClass('mdc-floating-label--float-above') : false;\n }\n\n /** Gets the label of the form-field. */\n async getLabel(): Promise<string | null> {\n const labelEl = await this._label();\n return labelEl ? labelEl.text() : null;\n }\n\n /** Whether the form-field has errors. */\n async hasErrors(): Promise<boolean> {\n return (await this.getTextErrors()).length > 0;\n }\n\n /** Whether the form-field is disabled. */\n async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass('mat-form-field-disabled');\n }\n\n /** Whether the form-field is currently autofilled. */\n async isAutofilled(): Promise<boolean> {\n return (await this.host()).hasClass('mat-form-field-autofilled');\n }\n\n /**\n * Gets the harness of the control that is bound to the form-field. Only\n * default controls such as \"MatInputHarness\" and \"MatSelectHarness\" are\n * supported.\n */\n async getControl(): Promise<FormFieldControlHarness | null>;\n\n /**\n * Gets the harness of the control that is bound to the form-field. Searches\n * for a control that matches the specified harness type.\n */\n async getControl<X extends MatFormFieldControlHarness>(\n type: ComponentHarnessConstructor<X>,\n ): Promise<X | null>;\n\n /**\n * Gets the harness of the control that is bound to the form-field. Searches\n * for a control that matches the specified harness predicate.\n */\n async getControl<X extends MatFormFieldControlHarness>(\n type: HarnessPredicate<X>,\n ): Promise<X | null>;\n\n // Implementation of the \"getControl\" method overload signatures.\n async getControl<X extends MatFormFieldControlHarness>(type?: HarnessQuery<X>) {\n if (type) {\n return this.locatorForOptional(type)();\n }\n const [select, input, datepickerInput, dateRangeInput] = await parallel(() => [\n this._selectControl(),\n this._inputControl(),\n this._datepickerInputControl(),\n this._dateRangeInputControl(),\n ]);\n\n // Match the datepicker inputs first since they can also have a `MatInput`.\n return datepickerInput || dateRangeInput || select || input;\n }\n\n /** Gets the theme color of the form-field. */\n async getThemeColor(): Promise<'primary' | 'accent' | 'warn'> {\n const hostEl = await this.host();\n const [isAccent, isWarn] = await parallel(() => {\n return [hostEl.hasClass('mat-accent'), hostEl.hasClass('mat-warn')];\n });\n if (isAccent) {\n return 'accent';\n } else if (isWarn) {\n return 'warn';\n }\n return 'primary';\n }\n\n /** Gets error messages which are currently displayed in the form-field. */\n async getTextErrors(): Promise<string[]> {\n const errors = await this.getErrors();\n return parallel(() => errors.map(e => e.getText()));\n }\n\n /** Gets all of the error harnesses in the form field. */\n async getErrors(filter: ErrorHarnessFilters = {}): Promise<MatErrorHarness[]> {\n return this.locatorForAll(this._errorHarness.with(filter))();\n }\n\n /** Gets hint messages which are currently displayed in the form-field. */\n async getTextHints(): Promise<string[]> {\n const hints = await this._hints();\n return parallel(() => hints.map(e => e.text()));\n }\n\n /** Gets the text inside the prefix element. */\n async getPrefixText(): Promise<string> {\n const prefix = await this._prefixContainer();\n return prefix ? prefix.text() : '';\n }\n\n /** Gets the text inside the suffix element. */\n async getSuffixText(): Promise<string> {\n const suffix = await this._suffixContainer();\n return suffix ? suffix.text() : '';\n }\n\n /**\n * Whether the form control has been touched. Returns \"null\"\n * if no form control is set up.\n */\n async isControlTouched(): Promise<boolean | null> {\n if (!(await this._hasFormControl())) {\n return null;\n }\n return (await this.host()).hasClass('ng-touched');\n }\n\n /**\n * Whether the form control is dirty. Returns \"null\"\n * if no form control is set up.\n */\n async isControlDirty(): Promise<boolean | null> {\n if (!(await this._hasFormControl())) {\n return null;\n }\n return (await this.host()).hasClass('ng-dirty');\n }\n\n /**\n * Whether the form control is valid. Returns \"null\"\n * if no form control is set up.\n */\n async isControlValid(): Promise<boolean | null> {\n if (!(await this._hasFormControl())) {\n return null;\n }\n return (await this.host()).hasClass('ng-valid');\n }\n\n /**\n * Whether the form control is pending validation. Returns \"null\"\n * if no form control is set up.\n */\n async isControlPending(): Promise<boolean | null> {\n if (!(await this._hasFormControl())) {\n return null;\n }\n return (await this.host()).hasClass('ng-pending');\n }\n\n /** Checks whether the form-field control has set up a form control. */\n private async _hasFormControl(): Promise<boolean> {\n const hostEl = await this.host();\n // If no form \"NgControl\" is bound to the form-field control, the form-field\n // is not able to forward any control status classes. Therefore if either the\n // \"ng-touched\" or \"ng-untouched\" class is set, we know that it has a form control\n const [isTouched, isUntouched] = await parallel(() => [\n hostEl.hasClass('ng-touched'),\n hostEl.hasClass('ng-untouched'),\n ]);\n return isTouched || isUntouched;\n }\n}\n"],"names":["MatErrorHarness","ComponentHarness","hostSelector","with","options","_getErrorPredicate","type","HarnessPredicate","addOption","text","harness","stringMatches","getText","host","MatFormFieldHarness","_prefixContainer","locatorForOptional","_suffixContainer","_label","_hints","locatorForAll","_inputControl","MatInputHarness","_selectControl","MatSelectHarness","_datepickerInputControl","MatDatepickerInputHarness","_dateRangeInputControl","MatDateRangeInputHarness","_textField","locatorFor","_errorHarness","floatingLabelText","getLabel","hasErrors","isValid","isControlValid","getAppearance","textFieldEl","hasClass","hasLabel","isLabelFloating","labelEl","getTextErrors","length","isDisabled","isAutofilled","getControl","select","input","datepickerInput","dateRangeInput","parallel","getThemeColor","hostEl","isAccent","isWarn","errors","getErrors","map","e","filter","getTextHints","hints","getPrefixText","prefix","getSuffixText","suffix","isControlTouched","_hasFormControl","isControlDirty","isControlPending","isTouched","isUntouched"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/form-field/form-field-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {NgModule} from '@angular/core';\nimport {MatError} from './directives/error';\nimport {MatHint} from './directives/hint';\nimport {MatLabel} from './directives/label';\nimport {MatPrefix} from './directives/prefix';\nimport {MatSuffix} from './directives/suffix';\nimport {MatFormField} from './form-field';\n\n@NgModule({\n imports: [ObserversModule, MatFormField, MatLabel, MatError, MatHint, MatPrefix, MatSuffix],\n exports: [MatFormField, MatLabel, MatHint, MatError, MatPrefix, MatSuffix, BidiModule],\n})\nexport class MatFormFieldModule {}\n"],"names":["MatFormFieldModule","deps","target","i0","ɵɵFactoryTarget","NgModule","imports","ObserversModule","MatFormField","MatLabel","MatError","MatHint","MatPrefix","MatSuffix","exports","BidiModule","ɵinj","ɵɵngDeclareInjector","minVersion","version","ngImport","type","decorators","args"],"mappings":";;;;;;;;;;;;;;;;MAsBaA,kBAAkB,CAAA;;;;;UAAlBA,kBAAkB;AAAAC,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAAlBL,kBAAkB;AAAAM,IAAAA,OAAA,EAAA,CAHnBC,eAAe,EAAEC,YAAY,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,SAAS,EAAEC,SAAS,CAAA;AAAAC,IAAAA,OAAA,EAAA,CAChFN,YAAY,EAAEC,QAAQ,EAAEE,OAAO,EAAED,QAAQ,EAAEE,SAAS,EAAEC,SAAS,EAAEE,UAAU;AAAA,GAAA,CAAA;AAE1E,EAAA,OAAAC,IAAA,GAAAb,EAAA,CAAAc,mBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,eAAA;AAAAC,IAAAA,QAAA,EAAAjB,EAAA;AAAAkB,IAAAA,IAAA,EAAArB,kBAAkB;AAHnBM,IAAAA,OAAA,EAAA,CAAAC,eAAe,EAAEC,YAAY,EACoCO,UAAU;AAAA,GAAA,CAAA;;;;;;QAE1Ef,kBAAkB;AAAAsB,EAAAA,UAAA,EAAA,CAAA;UAJ9BjB,QAAQ;AAACkB,IAAAA,IAAA,EAAA,CAAA;AACRjB,MAAAA,OAAO,EAAE,CAACC,eAAe,EAAEC,YAAY,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,SAAS,EAAEC,SAAS,CAAC;AAC3FC,MAAAA,OAAO,EAAE,CAACN,YAAY,EAAEC,QAAQ,EAAEE,OAAO,EAAED,QAAQ,EAAEE,SAAS,EAAEC,SAAS,EAAEE,UAAU;KACtF;;;;;;"}
1
+ {"version":3,"file":"form-field.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/form-field/form-field-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {NgModule} from '@angular/core';\nimport {MatError} from './directives/error';\nimport {MatHint} from './directives/hint';\nimport {MatLabel} from './directives/label';\nimport {MatPrefix} from './directives/prefix';\nimport {MatSuffix} from './directives/suffix';\nimport {MatFormField} from './form-field';\n\n@NgModule({\n imports: [ObserversModule, MatFormField, MatLabel, MatError, MatHint, MatPrefix, MatSuffix],\n exports: [MatFormField, MatLabel, MatHint, MatError, MatPrefix, MatSuffix, BidiModule],\n})\nexport class MatFormFieldModule {}\n"],"names":["MatFormFieldModule","deps","target","i0","ɵɵFactoryTarget","NgModule","imports","ObserversModule","MatFormField","MatLabel","MatError","MatHint","MatPrefix","MatSuffix","exports","BidiModule","ɵinj","ɵɵngDeclareInjector","minVersion","version","ngImport","type","decorators","args"],"mappings":";;;;;;;;;;;;;;;;MAsBaA,kBAAkB,CAAA;;;;;UAAlBA,kBAAkB;AAAAC,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAAlBL,kBAAkB;AAAAM,IAAAA,OAAA,EAAA,CAHnBC,eAAe,EAAEC,YAAY,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,SAAS,EAAEC,SAAS,CAAA;AAAAC,IAAAA,OAAA,EAAA,CAChFN,YAAY,EAAEC,QAAQ,EAAEE,OAAO,EAAED,QAAQ,EAAEE,SAAS,EAAEC,SAAS,EAAEE,UAAU;AAAA,GAAA,CAAA;AAE1E,EAAA,OAAAC,IAAA,GAAAb,EAAA,CAAAc,mBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,eAAA;AAAAC,IAAAA,QAAA,EAAAjB,EAAA;AAAAkB,IAAAA,IAAA,EAAArB,kBAAkB;AAHnBM,IAAAA,OAAA,EAAA,CAAAC,eAAe,EAAEC,YAAY,EACoCO,UAAU;AAAA,GAAA,CAAA;;;;;;QAE1Ef,kBAAkB;AAAAsB,EAAAA,UAAA,EAAA,CAAA;UAJ9BjB,QAAQ;AAACkB,IAAAA,IAAA,EAAA,CAAA;AACRjB,MAAAA,OAAO,EAAE,CAACC,eAAe,EAAEC,YAAY,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,SAAS,EAAEC,SAAS,CAAC;AAC3FC,MAAAA,OAAO,EAAE,CAACN,YAAY,EAAEC,QAAQ,EAAEE,OAAO,EAAED,QAAQ,EAAEE,SAAS,EAAEC,SAAS,EAAEE,UAAU;KACtF;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"grid-list-testing.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/grid-list/testing/grid-tile-harness.ts","../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/material/grid-list/testing/grid-list-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ContentContainerComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {GridTileHarnessFilters} from './grid-list-harness-filters';\n\n/** Selectors for the various `mat-grid-tile` sections that may contain user content. */\nexport enum MatGridTileSection {\n HEADER = '.mat-grid-tile-header',\n FOOTER = '.mat-grid-tile-footer',\n}\n\n/** Harness for interacting with a standard `MatGridTitle` in tests. */\nexport class MatGridTileHarness extends ContentContainerComponentHarness<MatGridTileSection> {\n /** The selector for the host element of a `MatGridTile` instance. */\n static hostSelector = '.mat-grid-tile';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatGridTileHarness`\n * that meets certain criteria.\n * @param options Options for filtering which dialog instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: GridTileHarnessFilters = {}): HarnessPredicate<MatGridTileHarness> {\n return new HarnessPredicate(MatGridTileHarness, options)\n .addOption('headerText', options.headerText, (harness, pattern) =>\n HarnessPredicate.stringMatches(harness.getHeaderText(), pattern),\n )\n .addOption('footerText', options.footerText, (harness, pattern) =>\n HarnessPredicate.stringMatches(harness.getFooterText(), pattern),\n );\n }\n\n private _header = this.locatorForOptional(MatGridTileSection.HEADER);\n private _footer = this.locatorForOptional(MatGridTileSection.FOOTER);\n private _avatar = this.locatorForOptional('.mat-grid-avatar');\n\n /** Gets the amount of rows that the grid-tile takes up. */\n async getRowspan(): Promise<number> {\n return Number(await (await this.host()).getAttribute('rowspan'));\n }\n\n /** Gets the amount of columns that the grid-tile takes up. */\n async getColspan(): Promise<number> {\n return Number(await (await this.host()).getAttribute('colspan'));\n }\n\n /** Whether the grid-tile has a header. */\n async hasHeader(): Promise<boolean> {\n return (await this._header()) !== null;\n }\n\n /** Whether the grid-tile has a footer. */\n async hasFooter(): Promise<boolean> {\n return (await this._footer()) !== null;\n }\n\n /** Whether the grid-tile has an avatar. */\n async hasAvatar(): Promise<boolean> {\n return (await this._avatar()) !== null;\n }\n\n /** Gets the text of the header if present. */\n async getHeaderText(): Promise<string | null> {\n // For performance reasons, we do not use \"hasHeader\" as\n // we would then need to query twice for the header.\n const headerEl = await this._header();\n return headerEl ? headerEl.text() : null;\n }\n\n /** Gets the text of the footer if present. */\n async getFooterText(): Promise<string | null> {\n // For performance reasons, we do not use \"hasFooter\" as\n // we would then need to query twice for the footer.\n const headerEl = await this._footer();\n return headerEl ? headerEl.text() : null;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate, parallel} from '@angular/cdk/testing';\nimport {ɵTileCoordinator as TileCoordinator} from '../../grid-list';\nimport {GridListHarnessFilters, GridTileHarnessFilters} from './grid-list-harness-filters';\nimport {MatGridTileHarness} from './grid-tile-harness';\n\n/** Harness for interacting with a standard `MatGridList` in tests. */\nexport class MatGridListHarness extends ComponentHarness {\n /** The selector for the host element of a `MatGridList` instance. */\n static hostSelector = '.mat-grid-list';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatGridListHarness`\n * that meets certain criteria.\n * @param options Options for filtering which dialog instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: GridListHarnessFilters = {}): HarnessPredicate<MatGridListHarness> {\n return new HarnessPredicate(MatGridListHarness, options);\n }\n\n /**\n * Tile coordinator that is used by the \"MatGridList\" for computing\n * positions of tiles. We leverage the coordinator to provide an API\n * for retrieving tiles based on visual tile positions.\n */\n private _tileCoordinator = new TileCoordinator();\n\n /** Gets all tiles of the grid-list. */\n async getTiles(filters: GridTileHarnessFilters = {}): Promise<MatGridTileHarness[]> {\n return await this.locatorForAll(MatGridTileHarness.with(filters))();\n }\n\n /** Gets the amount of columns of the grid-list. */\n async getColumns(): Promise<number> {\n return Number(await (await this.host()).getAttribute('cols'));\n }\n\n /**\n * Gets a tile of the grid-list that is located at the given location.\n * @param row Zero-based row index.\n * @param column Zero-based column index.\n */\n async getTileAtPosition({\n row,\n column,\n }: {\n row: number;\n column: number;\n }): Promise<MatGridTileHarness> {\n const [tileHarnesses, columns] = await parallel(() => [this.getTiles(), this.getColumns()]);\n const tileSpans = tileHarnesses.map(t => parallel(() => [t.getColspan(), t.getRowspan()]));\n const tiles = (await parallel(() => tileSpans)).map(([colspan, rowspan]) => ({\n colspan,\n rowspan,\n }));\n // Update the tile coordinator to reflect the current column amount and\n // rendered tiles. We update upon every call of this method since we do not\n // know if tiles have been added, removed or updated (in terms of rowspan/colspan).\n this._tileCoordinator.update(columns, tiles);\n // The tile coordinator respects the colspan and rowspan for calculating the positions\n // of tiles, but it does not create multiple position entries if a tile spans over multiple\n // columns or rows. We want to provide an API where developers can retrieve a tile based on\n // any position that lies within the visual tile boundaries. For example: If a tile spans\n // over two columns, then the same tile should be returned for either column indices.\n for (let i = 0; i < this._tileCoordinator.positions.length; i++) {\n const position = this._tileCoordinator.positions[i];\n const {rowspan, colspan} = tiles[i];\n // Return the tile harness if the given position visually resolves to the tile.\n if (\n column >= position.col &&\n column <= position.col + colspan - 1 &&\n row >= position.row &&\n row <= position.row + rowspan - 1\n ) {\n return tileHarnesses[i];\n }\n }\n throw Error('Could not find tile at given position.');\n }\n}\n"],"names":["MatGridTileSection","MatGridTileHarness","ContentContainerComponentHarness","hostSelector","with","options","HarnessPredicate","addOption","headerText","harness","pattern","stringMatches","getHeaderText","footerText","getFooterText","_header","locatorForOptional","HEADER","_footer","FOOTER","_avatar","getRowspan","Number","host","getAttribute","getColspan","hasHeader","hasFooter","hasAvatar","headerEl","text","MatGridListHarness","ComponentHarness","_tileCoordinator","TileCoordinator","getTiles","filters","locatorForAll","getColumns","getTileAtPosition","row","column","tileHarnesses","columns","parallel","tileSpans","map","t","tiles","colspan","rowspan","update","i","positions","length","position","col","Error"],"mappings":"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"}
1
+ {"version":3,"file":"grid-list-testing.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/grid-list/testing/grid-tile-harness.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/material/grid-list/testing/grid-list-harness.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ContentContainerComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {GridTileHarnessFilters} from './grid-list-harness-filters';\n\n/** Selectors for the various `mat-grid-tile` sections that may contain user content. */\nexport enum MatGridTileSection {\n HEADER = '.mat-grid-tile-header',\n FOOTER = '.mat-grid-tile-footer',\n}\n\n/** Harness for interacting with a standard `MatGridTitle` in tests. */\nexport class MatGridTileHarness extends ContentContainerComponentHarness<MatGridTileSection> {\n /** The selector for the host element of a `MatGridTile` instance. */\n static hostSelector = '.mat-grid-tile';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatGridTileHarness`\n * that meets certain criteria.\n * @param options Options for filtering which dialog instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: GridTileHarnessFilters = {}): HarnessPredicate<MatGridTileHarness> {\n return new HarnessPredicate(MatGridTileHarness, options)\n .addOption('headerText', options.headerText, (harness, pattern) =>\n HarnessPredicate.stringMatches(harness.getHeaderText(), pattern),\n )\n .addOption('footerText', options.footerText, (harness, pattern) =>\n HarnessPredicate.stringMatches(harness.getFooterText(), pattern),\n );\n }\n\n private _header = this.locatorForOptional(MatGridTileSection.HEADER);\n private _footer = this.locatorForOptional(MatGridTileSection.FOOTER);\n private _avatar = this.locatorForOptional('.mat-grid-avatar');\n\n /** Gets the amount of rows that the grid-tile takes up. */\n async getRowspan(): Promise<number> {\n return Number(await (await this.host()).getAttribute('rowspan'));\n }\n\n /** Gets the amount of columns that the grid-tile takes up. */\n async getColspan(): Promise<number> {\n return Number(await (await this.host()).getAttribute('colspan'));\n }\n\n /** Whether the grid-tile has a header. */\n async hasHeader(): Promise<boolean> {\n return (await this._header()) !== null;\n }\n\n /** Whether the grid-tile has a footer. */\n async hasFooter(): Promise<boolean> {\n return (await this._footer()) !== null;\n }\n\n /** Whether the grid-tile has an avatar. */\n async hasAvatar(): Promise<boolean> {\n return (await this._avatar()) !== null;\n }\n\n /** Gets the text of the header if present. */\n async getHeaderText(): Promise<string | null> {\n // For performance reasons, we do not use \"hasHeader\" as\n // we would then need to query twice for the header.\n const headerEl = await this._header();\n return headerEl ? headerEl.text() : null;\n }\n\n /** Gets the text of the footer if present. */\n async getFooterText(): Promise<string | null> {\n // For performance reasons, we do not use \"hasFooter\" as\n // we would then need to query twice for the footer.\n const headerEl = await this._footer();\n return headerEl ? headerEl.text() : null;\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ComponentHarness, HarnessPredicate, parallel} from '@angular/cdk/testing';\nimport {ɵTileCoordinator as TileCoordinator} from '../../grid-list';\nimport {GridListHarnessFilters, GridTileHarnessFilters} from './grid-list-harness-filters';\nimport {MatGridTileHarness} from './grid-tile-harness';\n\n/** Harness for interacting with a standard `MatGridList` in tests. */\nexport class MatGridListHarness extends ComponentHarness {\n /** The selector for the host element of a `MatGridList` instance. */\n static hostSelector = '.mat-grid-list';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatGridListHarness`\n * that meets certain criteria.\n * @param options Options for filtering which dialog instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: GridListHarnessFilters = {}): HarnessPredicate<MatGridListHarness> {\n return new HarnessPredicate(MatGridListHarness, options);\n }\n\n /**\n * Tile coordinator that is used by the \"MatGridList\" for computing\n * positions of tiles. We leverage the coordinator to provide an API\n * for retrieving tiles based on visual tile positions.\n */\n private _tileCoordinator = new TileCoordinator();\n\n /** Gets all tiles of the grid-list. */\n async getTiles(filters: GridTileHarnessFilters = {}): Promise<MatGridTileHarness[]> {\n return await this.locatorForAll(MatGridTileHarness.with(filters))();\n }\n\n /** Gets the amount of columns of the grid-list. */\n async getColumns(): Promise<number> {\n return Number(await (await this.host()).getAttribute('cols'));\n }\n\n /**\n * Gets a tile of the grid-list that is located at the given location.\n * @param row Zero-based row index.\n * @param column Zero-based column index.\n */\n async getTileAtPosition({\n row,\n column,\n }: {\n row: number;\n column: number;\n }): Promise<MatGridTileHarness> {\n const [tileHarnesses, columns] = await parallel(() => [this.getTiles(), this.getColumns()]);\n const tileSpans = tileHarnesses.map(t => parallel(() => [t.getColspan(), t.getRowspan()]));\n const tiles = (await parallel(() => tileSpans)).map(([colspan, rowspan]) => ({\n colspan,\n rowspan,\n }));\n // Update the tile coordinator to reflect the current column amount and\n // rendered tiles. We update upon every call of this method since we do not\n // know if tiles have been added, removed or updated (in terms of rowspan/colspan).\n this._tileCoordinator.update(columns, tiles);\n // The tile coordinator respects the colspan and rowspan for calculating the positions\n // of tiles, but it does not create multiple position entries if a tile spans over multiple\n // columns or rows. We want to provide an API where developers can retrieve a tile based on\n // any position that lies within the visual tile boundaries. For example: If a tile spans\n // over two columns, then the same tile should be returned for either column indices.\n for (let i = 0; i < this._tileCoordinator.positions.length; i++) {\n const position = this._tileCoordinator.positions[i];\n const {rowspan, colspan} = tiles[i];\n // Return the tile harness if the given position visually resolves to the tile.\n if (\n column >= position.col &&\n column <= position.col + colspan - 1 &&\n row >= position.row &&\n row <= position.row + rowspan - 1\n ) {\n return tileHarnesses[i];\n }\n }\n throw Error('Could not find tile at given position.');\n }\n}\n"],"names":["MatGridTileSection","MatGridTileHarness","ContentContainerComponentHarness","hostSelector","with","options","HarnessPredicate","addOption","headerText","harness","pattern","stringMatches","getHeaderText","footerText","getFooterText","_header","locatorForOptional","HEADER","_footer","FOOTER","_avatar","getRowspan","Number","host","getAttribute","getColspan","hasHeader","hasFooter","hasAvatar","headerEl","text","MatGridListHarness","ComponentHarness","_tileCoordinator","TileCoordinator","getTiles","filters","locatorForAll","getColumns","getTileAtPosition","row","column","tileHarnesses","columns","parallel","tileSpans","map","t","tiles","colspan","rowspan","update","i","positions","length","position","col","Error"],"mappings":"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"}