{"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/legacy-button/testing/button-harness.ts","../../../../../../../src/material/legacy-button/testing/public-api.ts","../../../../../../../src/material/legacy-button/testing/index.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.io/license\n */\n\nimport {ContentContainerComponentHarness, HarnessPredicate} from '@angular/cdk/testing';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {ButtonHarnessFilters, ButtonVariant} from '@angular/material/button/testing';\n\n/**\n * Harness for interacting with a standard mat-button in tests.\n * @deprecated Use `MatButtonHarness` from `@angular/material/button/testing` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nexport class MatLegacyButtonHarness extends ContentContainerComponentHarness {\n  // TODO(jelbourn) use a single class, like `.mat-button-base`\n  /** The selector for the host element of a button instance. */\n  static hostSelector = `[mat-button], [mat-raised-button], [mat-flat-button], [mat-icon-button],\n                         [mat-stroked-button], [mat-fab], [mat-mini-fab]`;\n\n  /**\n   * Gets a `HarnessPredicate` that can be used to search for a button harness that meets\n   * certain criteria.\n   * @param options Options for filtering which button instances are considered a match.\n   * @return a `HarnessPredicate` configured with the given options.\n   */\n  static with(options: ButtonHarnessFilters = {}): HarnessPredicate<MatLegacyButtonHarness> {\n    return new HarnessPredicate(MatLegacyButtonHarness, options)\n      .addOption('text', options.text, (harness, text) =>\n        HarnessPredicate.stringMatches(harness.getText(), text),\n      )\n      .addOption('variant', options.variant, (harness, variant) =>\n        HarnessPredicate.stringMatches(harness.getVariant(), variant),\n      )\n      .addOption('disabled', options.disabled, async (harness, disabled) => {\n        return (await harness.isDisabled()) === disabled;\n      });\n  }\n\n  /**\n   * Clicks the button at the given position relative to its top-left.\n   * @param relativeX The relative x position of the click.\n   * @param relativeY The relative y position of the click.\n   */\n  click(relativeX: number, relativeY: number): Promise<void>;\n  /** Clicks the button at its center. */\n  click(location: 'center'): Promise<void>;\n  /** Clicks the button. */\n  click(): Promise<void>;\n  async click(...args: [] | ['center'] | [number, number]): Promise<void> {\n    return (await this.host()).click(...(args as []));\n  }\n\n  /** Whether the button is disabled. */\n  async isDisabled(): Promise<boolean> {\n    const disabled = (await this.host()).getAttribute('disabled');\n    return coerceBooleanProperty(await disabled);\n  }\n\n  /** Gets the button's label text. */\n  async getText(): Promise<string> {\n    return (await this.host()).text();\n  }\n\n  /** Focuses the button. */\n  async focus(): Promise<void> {\n    return (await this.host()).focus();\n  }\n\n  /** Blurs the button. */\n  async blur(): Promise<void> {\n    return (await this.host()).blur();\n  }\n\n  /** Whether the button is focused. */\n  async isFocused(): Promise<boolean> {\n    return (await this.host()).isFocused();\n  }\n\n  /** Gets the variant of the button. */\n  async getVariant(): Promise<ButtonVariant> {\n    const host = await this.host();\n\n    if ((await host.getAttribute('mat-raised-button')) != null) {\n      return 'raised';\n    } else if ((await host.getAttribute('mat-flat-button')) != null) {\n      return 'flat';\n    } else if ((await host.getAttribute('mat-icon-button')) != null) {\n      return 'icon';\n    } else if ((await host.getAttribute('mat-stroked-button')) != null) {\n      return 'stroked';\n    } else if ((await host.getAttribute('mat-fab')) != null) {\n      return 'fab';\n    } else if ((await host.getAttribute('mat-mini-fab')) != null) {\n      return 'mini-fab';\n    }\n\n    return 'basic';\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.io/license\n */\n\nexport {MatLegacyButtonHarness} from './button-harness';\nexport {\n  ButtonHarnessFilters as LegacyButtonHarnessFilters,\n  ButtonVariant as LegacyButtonVariant,\n} from '@angular/material/button/testing';\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.io/license\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}