{"version":3,"file":"aposin-ng-aquila-input-testing.mjs","sources":["../../../projects/ng-aquila/src/input/testing/nx-input-harness.ts","../../../projects/ng-aquila/src/input/testing/aposin-ng-aquila-input-testing.ts"],"sourcesContent":["import { type BaseHarnessFilters, HarnessPredicate } from '@angular/cdk/testing';\nimport { NxFormfieldControlHarness } from '@aposin/ng-aquila/formfield/testing/control';\n\nexport interface NxInputHarnessFilters extends BaseHarnessFilters {\n    value?: string | RegExp;\n    placeholder?: string | RegExp;\n}\n\nexport class NxInputHarness extends NxFormfieldControlHarness {\n    static hostSelector = '[nxInput]';\n\n    static with(options: NxInputHarnessFilters = {}): HarnessPredicate<NxInputHarness> {\n        return new HarnessPredicate(NxInputHarness, options)\n            .addOption('value', options.value, (harness, value) => HarnessPredicate.stringMatches(harness.getValue(), value))\n            .addOption('placeholder', options.placeholder, (harness, placeholder) => HarnessPredicate.stringMatches(harness.getPlaceholder(), placeholder));\n    }\n\n    async getId(): Promise<string> {\n        // An id is automatically provided if none is set explicitly\n        return (await this.host()).getProperty<string>('id');\n    }\n\n    /**\n     * Return the type of input\n     *\n     * The string 'textarea' is returned for the HTML element textarea\n     */\n    async getType(): Promise<string> {\n        const host = await this.host();\n        if (await host.matchesSelector('textarea')) {\n            return 'textarea';\n        }\n        return host.getProperty<string>('type');\n    }\n\n    async isDisabled(): Promise<boolean> {\n        return (await this.host()).getProperty<boolean>('disabled');\n    }\n\n    async isFocused(): Promise<boolean> {\n        return (await this.host()).isFocused();\n    }\n\n    async focus(): Promise<void> {\n        return (await this.host()).focus();\n    }\n\n    async blur(): Promise<void> {\n        return (await this.host()).blur();\n    }\n\n    async getPlaceholder(): Promise<string> {\n        return (await this.host()).getProperty<string>('placeholder');\n    }\n\n    async getValue(): Promise<string> {\n        return (await this.host()).getProperty<string>('value');\n    }\n\n    /**\n     * Set the value of the input using keypress simulation.\n     */\n    async setValue(value: string) {\n        const hostElement = await this.host();\n        await hostElement.clear();\n\n        if (value.length > 0) {\n            await hostElement.sendKeys(value);\n        }\n\n        /**\n         * Some input types don't respond to key presses, so also set the property after keyboard sequence\n         */\n        await hostElement.setInputValue(value);\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAQM,MAAO,cAAe,SAAQ,yBAAyB,CAAA;aAClD,IAAY,CAAA,YAAA,GAAG,WAAW,CAAC;AAElC,IAAA,OAAO,IAAI,CAAC,OAAA,GAAiC,EAAE,EAAA;AAC3C,QAAA,OAAO,IAAI,gBAAgB,CAAC,cAAc,EAAE,OAAO;aAC9C,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,KAAK,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC;aAC/G,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,WAAW,CAAC,CAAC;;AAGvJ,IAAA,MAAM,KAAK,GAAA;;AAEP,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,CAAS,IAAI,CAAC;;AAGxD;;;;AAIG;AACH,IAAA,MAAM,OAAO,GAAA;AACT,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;QAC9B,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE;AACxC,YAAA,OAAO,UAAU;;AAErB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAS,MAAM,CAAC;;AAG3C,IAAA,MAAM,UAAU,GAAA;AACZ,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,CAAU,UAAU,CAAC;;AAG/D,IAAA,MAAM,SAAS,GAAA;QACX,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE;;AAG1C,IAAA,MAAM,KAAK,GAAA;QACP,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE;;AAGtC,IAAA,MAAM,IAAI,GAAA;QACN,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;;AAGrC,IAAA,MAAM,cAAc,GAAA;AAChB,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,CAAS,aAAa,CAAC;;AAGjE,IAAA,MAAM,QAAQ,GAAA;AACV,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,CAAS,OAAO,CAAC;;AAG3D;;AAEG;IACH,MAAM,QAAQ,CAAC,KAAa,EAAA;AACxB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;AACrC,QAAA,MAAM,WAAW,CAAC,KAAK,EAAE;AAEzB,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,YAAA,MAAM,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAGrC;;AAEG;AACH,QAAA,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC;;;;ACzE9C;;AAEG;;;;"}