{"version":3,"file":"ng-flex-layout-_private-utils-testing.mjs","sources":["../../../../projects/libs/flex-layout/_private-utils/testing/dom-tools.ts","../../../../projects/libs/flex-layout/_private-utils/testing/custom-matchers.ts","../../../../projects/libs/flex-layout/_private-utils/testing/helpers.ts","../../../../projects/libs/flex-layout/_private-utils/testing/index.ts","../../../../projects/libs/flex-layout/_private-utils/testing/ng-flex-layout-_private-utils-testing.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\n/**\n * Exported DOM accessor utility functions\n */\nexport const _dom = {\n    hasStyle,\n    getDistributedNodes,\n    getShadowRoot,\n    getText,\n    getStyle,\n    childNodes,\n    childNodesAsList,\n    hasClass,\n    hasAttribute,\n    getAttribute,\n    hasShadowRoot,\n    isCommentNode,\n    isElementNode,\n    isPresent,\n    isShadowRoot,\n    tagName,\n    lastElementChild\n};\n\n// ******************************************************************************************\n// These functions are cloned from\n//  *  @angular/platform-browser/src/browser/GenericBrowserDomAdapter\n// and are to be used ONLY internally in custom-matchers.ts and Unit Tests\n// ******************************************************************************************\n\nfunction getStyle(element: any, stylename: string): string {\n    return element.style[stylename];\n}\n\nfunction hasStyle(element: any,\n    styleName: string,\n    styleValue: string = '',\n    inlineOnly = true): boolean {\n    let value = getStyle(element, styleName) || '';\n    if (!value && !inlineOnly) {\n    // Search stylesheets\n        value = typeof getComputedStyle === 'function' &&\n      getComputedStyle(element).getPropertyValue(styleName) || '';\n    }\n    return styleValue ? value == styleValue : value.length > 0;\n}\n\nfunction getDistributedNodes(el: HTMLElement): Node[] {\n    return (<any>el).getDistributedNodes();\n}\n\nfunction getShadowRoot(el: HTMLElement): DocumentFragment {\n    return (<any>el).shadowRoot;\n}\n\nfunction getText(el: Node): string {\n    return el.textContent || '';\n}\n\nfunction childNodesAsList(el: Node): any[] {\n    const list = el.childNodes;\n    const res = new Array(list.length);\n    for (let i = 0; i < list.length; i++) {\n        res[i] = list[i];\n    }\n    return res;\n}\n\nfunction hasClass(element: any, className: string): boolean {\n    return element.classList.contains(className);\n}\n\nfunction hasAttribute(element: any, attributeName: string): boolean {\n    return element.hasAttribute(attributeName);\n}\n\nfunction getAttribute(element: any, attributeName: string): string {\n    return element.getAttribute(attributeName);\n}\n\nfunction childNodes(el: any): Node[] {\n    return el.childNodes;\n}\n\nfunction hasShadowRoot(node: any): boolean {\n    return isPresent(node.shadowRoot) && node instanceof HTMLElement;\n}\n\nfunction isCommentNode(node: Node): boolean {\n    return node.nodeType === Node.COMMENT_NODE;\n}\n\nfunction isElementNode(node: Node): boolean {\n    return node.nodeType === Node.ELEMENT_NODE;\n}\n\nfunction isShadowRoot(node: any): boolean {\n    return node instanceof DocumentFragment;\n}\n\nfunction isPresent(obj: any): boolean {\n    return obj != null;\n}\n\nfunction tagName(element: any): string {\n    return element.tagName;\n}\n\n// ******************************************************************************************\n// These functions are part of the DOM API\n// and are to be used ONLY internally in custom-matchers.ts and Unit Tests\n// ******************************************************************************************\n\nfunction lastElementChild(element: any): Node|null {\n    return element.lastElementChild;\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 */\ndeclare let global: any;\nconst _global = <any>(typeof window === 'undefined' ? global : window);\n\nimport { _dom as _ } from './dom-tools';\n\nimport { applyCssPrefixes, extendObject, } from 'ng-flex-layout/_private-utils';\nimport { StyleUtils } from 'ng-flex-layout/core';\nimport { expect } from 'vitest';\n\nexpect.extend({\n    toHaveText(received: any, expectedText: string) {\n        const actualText = elementText(received);\n        const pass = actualText === expectedText;\n        return {\n            pass,\n            message: () =>\n                `Expected element text ${actualText} to ${pass ? 'not ' : ''}equal ${expectedText}`,\n        };\n    },\n\n    toHaveCssClass(received: any, className: string) {\n        const pass = _.hasClass(received, className);\n        return {\n            pass,\n            message: () =>\n                `Expected element ${received.outerHTML} ${pass ? 'not ' : ''}to have class \"${className}\"`,\n        };\n    },\n\n    toHaveMap(received: { [key: string]: string }, expected: { [key: string]: string }) {\n        const allPassed = Object.entries(expected).every(([k, v]) => received[k] === v);\n        return {\n            pass: allPassed,\n            message: () =>\n                `Expected map ${JSON.stringify(received)} ${allPassed ? 'not ' : ''}to match ${JSON.stringify(expected)}`,\n        };\n    },\n\n    toHaveAttributes(received: HTMLElement, expected: { [key: string]: string }) {\n        const allPassed = Object.entries(expected).every(\n            ([name, value]) => _.hasAttribute(received, name) && _.getAttribute(received, name) === value\n        );\n        return {\n            pass: allPassed,\n            message: () =>\n                `Expected element ${received.outerHTML} ${allPassed ? 'not ' : ''}to have attributes ${JSON.stringify(expected)}`,\n        };\n    },\n\n    toHaveStyle(received: HTMLElement, styles: { [k: string]: string } | string, styler: StyleUtils) {\n        return buildCompareStyleFunction(true)(received, styles, styler);\n    },\n\n    toHaveCSS(received: HTMLElement, styles: { [k: string]: string } | string, styler: StyleUtils) {\n        return buildCompareStyleFunction(false)(received, styles, styler);\n    },\n});\n\nfunction buildCompareStyleFunction(inlineOnly = true) {\n    return function (\n        actual: any,\n        styles: { [k: string]: string } | string,\n        styler: StyleUtils\n    ) {\n        const found = {};\n        const styleMap: { [k: string]: string } = {};\n\n        if (typeof styles === 'string') {\n            styleMap[styles] = '';\n        } else {\n            Object.assign(styleMap, styles);\n        }\n\n        let allPassed = Object.keys(styleMap).length !== 0;\n        Object.keys(styleMap).forEach(prop => {\n            const { elHasStyle, current } = hasPrefixedStyles(\n                actual,\n                prop,\n                styleMap[prop],\n                inlineOnly,\n                styler\n            );\n            allPassed = allPassed && elHasStyle;\n            if (!elHasStyle) {\n                extendObject(found, current);\n            }\n        });\n\n        return {\n            pass: allPassed,\n            message: () => {\n                const expectedValueStr =\n                    typeof styles === 'string'\n                        ? styleMap\n                        : JSON.stringify(styleMap, null, 2);\n                const foundValueStr = inlineOnly\n                    ? actual.outerHTML\n                    : JSON.stringify(found);\n\n                return `Expected ${foundValueStr}${!allPassed ? '' : ' not'} to contain the CSS ${typeof styles === 'string' ? 'property' : 'styles'\n                    } '${expectedValueStr}'`;\n            }\n        };\n    };\n}\n\n\n/**\n * Validate presence of requested style or use fallback\n * to possible `prefixed` styles. Useful when some browsers\n * (Safari, IE, etc) will use prefixed style instead of defaults.\n */\nfunction hasPrefixedStyles(actual: HTMLElement,\n    key: string,\n    value: string,\n    inlineOnly: boolean,\n    styler: StyleUtils) {\n    const current = {};\n\n    if (value === '*') {\n        return { elHasStyle: styler.lookupStyle(actual, key, inlineOnly) !== '', current };\n    }\n\n    value = value.trim();\n    let elHasStyle = styler.lookupStyle(actual, key, inlineOnly) === value;\n    if (!elHasStyle) {\n        let prefixedStyles = applyCssPrefixes({ [key]: value });\n        Object.keys(prefixedStyles).forEach(prop => {\n            // Search for optional prefixed values\n            elHasStyle = elHasStyle ||\n                styler.lookupStyle(actual, prop, inlineOnly) === prefixedStyles[prop];\n        });\n    }\n    // Return BOTH confirmation and current computed key values (if confirmation == false)\n    return { elHasStyle, current };\n}\n\nfunction elementText(n: any): string {\n    const hasNodes = (m: any) => {\n        const children = _.childNodes(m);\n        return children && children['length'];\n    };\n\n    if (n instanceof Array) {\n        return n.map(elementText).join('');\n    }\n\n    if (_.isCommentNode(n)) {\n        return '';\n    }\n\n    if (_.isElementNode(n) && _.tagName(n) == 'CONTENT') {\n        return elementText(Array.prototype.slice.apply(_.getDistributedNodes(n)));\n    }\n\n    if (_.hasShadowRoot(n)) {\n        return elementText(_.childNodesAsList(_.getShadowRoot(n)));\n    }\n\n    if (hasNodes(n)) {\n        return elementText(_.childNodesAsList(n));\n    }\n\n    return _.getText(n);\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 */\nimport { Type, DebugElement } from '@angular/core';\nimport { ComponentFixture, TestBed } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { extendObject } from 'ng-flex-layout/_private-utils';\nimport { expect } from 'vitest';\n\nexport type ComponentClazzFn = () => Type<any>;\n\n/**\n * Function generator that captures a Component Type accessor and enables\n * `createTestComponent()` to be reusable for *any* captured Component class.\n */\nexport function makeCreateTestComponent(getClass: ComponentClazzFn) {\n    let componentAny: Type<any>;\n\n    // Return actual `createTestComponent()` function\n    return function createTestComponent(template: string, styles?: any): ComponentFixture<any> {\n        if (!componentAny) {\n            // Defer access to Component class to enable metadata to be configured properly...\n            componentAny = getClass();\n        }\n        return TestBed\n            .overrideComponent(componentAny, {\n                set: {\n                    template: template,\n                    styles: styles || [],\n                }\n            })\n            .createComponent(componentAny);\n    };\n}\n\n/**\n *\n */\nexport function expectNativeEl(fixture: ComponentFixture<any>, instanceOptions?: any): any {\n    extendObject(fixture.componentInstance, instanceOptions || {});\n    fixture.detectChanges();\n    return expect(fixture.debugElement.children[0].nativeElement);\n}\n\n/**\n *\n */\nexport function expectEl(debugEl: DebugElement): any {\n    return expect(debugEl.nativeElement);\n}\n\n\nexport function queryFor(fixture: ComponentFixture<any>, selector: string): DebugElement[] {\n    return fixture.debugElement.queryAll(By.css(selector));\n}\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 * from './custom-matchers';\nexport * from './dom-tools';\nexport * from './helpers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_"],"mappings":"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"}