{"version":3,"file":"fundamental-ngx-core-tests.mjs","sources":["../../../../libs/core/tests/element-ref-mock.class.ts","../../../../libs/core/tests/event-objects.ts","../../../../libs/core/tests/injection-tokens.ts","../../../../libs/core/tests/mobile-mode-view-elements.ts","../../../../libs/core/tests/when-stable.ts","../../../../libs/core/tests/fundamental-ngx-core-tests.ts"],"sourcesContent":["import { ElementRef } from '@angular/core';\n\nexport class MockElementRef extends ElementRef {\n    /** @hidden */\n    constructor() {\n        super(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.io/license\n */\n\nimport { ModifierKeys } from '@angular/cdk/testing';\n\n/**\n * Dispatches a keydown event from an element.\n * @docs-private\n */\nexport function createKeyboardEvent(\n    type: string,\n    keyCode: number = 0,\n    key: string = '',\n    target?: Element,\n    modifiers: ModifierKeys = {}\n): KeyboardEvent {\n    const event = document.createEvent('KeyboardEvent') as any;\n    const originalPreventDefault = event.preventDefault;\n\n    // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n    if (event.initKeyEvent) {\n        event.initKeyEvent(\n            type,\n            true,\n            true,\n            window,\n            modifiers.control,\n            modifiers.alt,\n            modifiers.shift,\n            modifiers.meta,\n            keyCode\n        );\n    } else {\n        // `initKeyboardEvent` expects to receive modifiers as a whitespace-delimited string\n        // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent\n        let modifiersList = '';\n\n        if (modifiers.control) {\n            modifiersList += 'Control ';\n        }\n\n        if (modifiers.alt) {\n            modifiersList += 'Alt ';\n        }\n\n        if (modifiers.shift) {\n            modifiersList += 'Shift ';\n        }\n\n        if (modifiers.meta) {\n            modifiersList += 'Meta ';\n        }\n\n        event.initKeyboardEvent(\n            type,\n            true /* canBubble */,\n            true /* cancelable */,\n            window /* view */,\n            0 /* char */,\n            key /* key */,\n            0 /* location */,\n            modifiersList.trim() /* modifiersList */,\n            false /* repeat */\n        );\n    }\n\n    // Webkit Browsers don't set the keyCode when calling the init function.\n    // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n    Object.defineProperties(event, {\n        keyCode: { get: () => keyCode },\n        key: { get: () => key },\n        target: { get: () => target },\n        ctrlKey: { get: () => !!modifiers.control },\n        altKey: { get: () => !!modifiers.alt },\n        shiftKey: { get: () => !!modifiers.shift },\n        metaKey: { get: () => !!modifiers.meta }\n    });\n\n    // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n    event.preventDefault = function (): Event {\n        Object.defineProperty(event, 'defaultPrevented', { get: () => true, configurable: true });\n        // eslint-disable-next-line prefer-rest-params\n        return originalPreventDefault.apply(this, arguments);\n    };\n\n    return event;\n}\n\n/**\n * Creates a browser MouseEvent with the specified options.\n * @docs-private\n */\nexport function createMouseEvent(type: string, x = 0, y = 0, button = 0): MouseEvent {\n    const event = document.createEvent('MouseEvent');\n    const originalPreventDefault = event.preventDefault.bind(event);\n\n    event.initMouseEvent(\n        type,\n        true /* canBubble */,\n        true /* cancelable */,\n        window /* view */,\n        0 /* detail */,\n        x /* screenX */,\n        y /* screenY */,\n        x /* clientX */,\n        y /* clientY */,\n        false /* ctrlKey */,\n        false /* altKey */,\n        false /* shiftKey */,\n        false /* metaKey */,\n        button /* button */,\n        null /* relatedTarget */\n    );\n\n    // `initMouseEvent` doesn't allow us to pass the `buttons` and\n    // defaults it to 0 which looks like a fake event.\n    Object.defineProperty(event, 'buttons', { get: () => 1 });\n\n    // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n    event.preventDefault = function (): void {\n        Object.defineProperty(event, 'defaultPrevented', { get: () => true, configurable: true });\n        return originalPreventDefault();\n    };\n\n    return event;\n}\n","import { InjectionToken } from '@angular/core';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\n\nexport const MOBILE_CONFIG_TEST_TOKEN = new InjectionToken<MobileModeConfig>('TEST PURPOSES ONLY');\n","import { ComponentFixture } from '@angular/core/testing';\n\ninterface MobileElements {\n    dialogTitle: HTMLElement;\n    dialogFooter: HTMLElement;\n    footerButtons: HTMLElement[];\n    dialogCloseBtn: HTMLElement;\n}\n/**\n * @returns Set of HTML references to configurable elements of MobileMode dialog view\n * */\nexport function getMobileModeViewElements(fixture: ComponentFixture<any>): MobileElements {\n    return {\n        dialogTitle: fixture.nativeElement.querySelector('[fd-title]'),\n        dialogFooter: fixture.nativeElement.querySelector('fd-dialog-footer'),\n        dialogCloseBtn: fixture.nativeElement.querySelector('[fd-dialog-close-button]'),\n        footerButtons: fixture.nativeElement.querySelectorAll('fd-button-bar')\n    };\n}\n","import { ComponentFixture } from '@angular/core/testing';\n\n/** Waits for the fixture to be stable, i.e. for async tasks to complete. */\nexport async function whenStable(fixture: ComponentFixture<any>): Promise<void> {\n    try {\n        fixture.changeDetectorRef.markForCheck();\n        fixture.detectChanges();\n    } catch (error) {\n        // avoiding \"ExpressionChangedAfterItHasBeenCheckedError\"\n        if (error?.code !== -100) {\n            throw error;\n        }\n    }\n    await fixture.whenStable();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}