source: trip-planner-front/node_modules/@angular/material/fesm2015/form-field/testing.js.map@ 188ee53

Last change on this file since 188ee53 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 16.8 KB
Line 
1{"version":3,"file":"form-field__testing.js","sources":["../../../../../../src/material/form-field/testing/form-field-harness.ts","../../../../../../src/material/form-field/testing/form-field-harness-filters.ts","../../../../../../src/material/form-field/testing/public-api.ts","../../../../../../src/material/form-field/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 {\n AsyncFactoryFn,\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n HarnessQuery,\n parallel,\n TestElement\n} from '@angular/cdk/testing';\nimport {\n MatDatepickerInputHarness,\n MatDateRangeInputHarness,\n} from '@angular/material/datepicker/testing';\nimport {MatFormFieldControlHarness} from '@angular/material/form-field/testing/control';\nimport {MatInputHarness} from '@angular/material/input/testing';\nimport {MatSelectHarness} from '@angular/material/select/testing';\nimport {FormFieldHarnessFilters} from './form-field-harness-filters';\n\n// TODO(devversion): support support chip list harness\n/** Possible harnesses of controls which can be bound to a form-field. */\nexport type FormFieldControlHarness =\n MatInputHarness|MatSelectHarness|MatDatepickerInputHarness|MatDateRangeInputHarness;\n\nexport abstract class _MatFormFieldHarnessBase<ControlHarness extends MatFormFieldControlHarness>\n extends ComponentHarness {\n protected abstract _prefixContainer: AsyncFactoryFn<TestElement|null>;\n protected abstract _suffixContainer: AsyncFactoryFn<TestElement|null>;\n protected abstract _label: AsyncFactoryFn<TestElement|null>;\n protected abstract _errors: AsyncFactoryFn<TestElement[]>;\n protected abstract _hints: AsyncFactoryFn<TestElement[]>;\n protected abstract _inputControl: AsyncFactoryFn<ControlHarness|null>;\n protected abstract _selectControl: AsyncFactoryFn<ControlHarness|null>;\n protected abstract _datepickerInputControl: AsyncFactoryFn<ControlHarness|null>;\n protected abstract _dateRangeInputControl: AsyncFactoryFn<ControlHarness|null>;\n\n /** Gets the appearance of the form-field. */\n abstract getAppearance(): Promise<string>;\n\n /** Whether the label is currently floating. */\n abstract isLabelFloating(): Promise<boolean>;\n\n /** Whether the form-field has a label. */\n abstract hasLabel(): Promise<boolean>;\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<ControlHarness|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>(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>(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._errors();\n return parallel(() => errors.map(e => e.text()));\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 /**\n * Gets a reference to the container element which contains all projected\n * prefixes of the form-field.\n * @deprecated Use `getPrefixText` instead.\n * @breaking-change 11.0.0\n */\n async getHarnessLoaderForPrefix(): Promise<TestElement|null> {\n return this._prefixContainer();\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 /**\n * Gets a reference to the container element which contains all projected\n * suffixes of the form-field.\n * @deprecated Use `getSuffixText` instead.\n * @breaking-change 11.0.0\n */\n async getHarnessLoaderForSuffix(): Promise<TestElement|null> {\n return this._suffixContainer();\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] =\n await parallel(() => [hostEl.hasClass('ng-touched'), hostEl.hasClass('ng-untouched')]);\n return isTouched || isUntouched;\n }\n}\n\n/** Harness for interacting with a standard Material form-field's in tests. */\nexport class MatFormFieldHarness extends _MatFormFieldHarnessBase<FormFieldControlHarness> {\n static hostSelector = '.mat-form-field';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `MatFormFieldHarness` that meets\n * certain criteria.\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(options: FormFieldHarnessFilters = {}): HarnessPredicate<MatFormFieldHarness> {\n return new HarnessPredicate(MatFormFieldHarness, options)\n .addOption('floatingLabelText', options.floatingLabelText, async (harness, text) =>\n HarnessPredicate.stringMatches(await harness.getLabel(), text))\n .addOption('hasErrors', options.hasErrors, async (harness, hasErrors) =>\n await harness.hasErrors() === hasErrors);\n }\n\n protected _prefixContainer = this.locatorForOptional('.mat-form-field-prefix');\n protected _suffixContainer = this.locatorForOptional('.mat-form-field-suffix');\n protected _label = this.locatorForOptional('.mat-form-field-label');\n protected _errors = this.locatorForAll('.mat-error');\n protected _hints = this.locatorForAll('mat-hint, .mat-hint');\n protected _inputControl = this.locatorForOptional(MatInputHarness);\n protected _selectControl = this.locatorForOptional(MatSelectHarness);\n protected _datepickerInputControl = this.locatorForOptional(MatDatepickerInputHarness);\n protected _dateRangeInputControl = this.locatorForOptional(MatDateRangeInputHarness);\n\n /** Gets the appearance of the form-field. */\n async getAppearance(): Promise<'legacy'|'standard'|'fill'|'outline'> {\n const hostClasses = await (await this.host()).getAttribute('class');\n if (hostClasses !== null) {\n const appearanceMatch =\n hostClasses.match(/mat-form-field-appearance-(legacy|standard|fill|outline)(?:$| )/);\n if (appearanceMatch) {\n return appearanceMatch[1] as 'legacy' | 'standard' | 'fill' | 'outline';\n }\n }\n throw Error('Could not determine appearance of form-field.');\n }\n\n /** Whether the form-field has a label. */\n async hasLabel(): Promise<boolean> {\n return (await this.host()).hasClass('mat-form-field-has-label');\n }\n\n /** Whether the label is currently floating. */\n async isLabelFloating(): Promise<boolean> {\n const host = await this.host();\n const [hasLabel, shouldFloat] = await parallel(() => [\n this.hasLabel(),\n host.hasClass('mat-form-field-should-float'),\n ]);\n // If there is no label, the label conceptually can never float. The `should-float` class\n // is just always set regardless of whether the label is displayed or not.\n return hasLabel && shouldFloat;\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\nimport {BaseHarnessFilters} from '@angular/cdk/testing';\n\n/** A set of criteria that can be used to filter a list of `MatFormFieldHarness` instances. */\nexport interface FormFieldHarnessFilters extends BaseHarnessFilters {\n /** Filters based on the text of the form field's floating label. */\n floatingLabelText?: string | RegExp;\n /** Filters based on whether the form field has error messages. */\n hasErrors?: boolean;\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\n// Re-export everything from the \"form-field/testing/control\" entry-point. To avoid\n// circular dependencies, harnesses for default form-field controls (i.e. input, select)\n// need to import the base form-field control harness through a separate entry-point.\nexport * from '@angular/material/form-field/testing/control';\n\nexport * from './form-field-harness';\nexport * from './form-field-harness-filters';\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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"}
Note: See TracBrowser for help on using the repository browser.