@dbg-riskit/angular-testing 9999.9999.9999-rc.63199 → 9999.9999.9999-rc.6693152

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/docs/README.md +5 -6
  2. package/{fesm2015 → fesm2022}/dbg-riskit-angular-testing.mjs +306 -444
  3. package/fesm2022/dbg-riskit-angular-testing.mjs.map +1 -0
  4. package/index.d.ts +469 -0
  5. package/package.json +20 -29
  6. package/dbg-riskit-angular-testing.d.ts +0 -5
  7. package/esm2020/dbg-riskit-angular-testing.mjs +0 -5
  8. package/esm2020/lib/by.util.mjs +0 -19
  9. package/esm2020/lib/definitions/data.table.definition.mjs +0 -556
  10. package/esm2020/lib/definitions/download.menu.page.mjs +0 -90
  11. package/esm2020/lib/definitions/highlighter.directive.page.mjs +0 -36
  12. package/esm2020/lib/definitions/layout.component.page.mjs +0 -93
  13. package/esm2020/lib/definitions/link.definition.mjs +0 -19
  14. package/esm2020/lib/definitions/link.only.page.mjs +0 -13
  15. package/esm2020/lib/definitions/login.menu.page.mjs +0 -25
  16. package/esm2020/lib/definitions/login.page.mjs +0 -51
  17. package/esm2020/lib/definitions/message.def.mjs +0 -15
  18. package/esm2020/lib/definitions/message.page.mjs +0 -68
  19. package/esm2020/lib/definitions/page.base.mjs +0 -64
  20. package/esm2020/lib/environment.mjs +0 -23
  21. package/esm2020/lib/events.mjs +0 -60
  22. package/esm2020/lib/stubs/auth/auth.routing.flow.service.stub.mjs +0 -37
  23. package/esm2020/lib/stubs/auth/auth.service.stub.mjs +0 -40
  24. package/esm2020/lib/stubs/auth/well.known.service.stub.mjs +0 -22
  25. package/esm2020/lib/stubs/http.service.stub.mjs +0 -54
  26. package/esm2020/lib/stubs/login.menu.stub.component.mjs +0 -19
  27. package/esm2020/lib/stubs/router/activated.route.stub.mjs +0 -29
  28. package/esm2020/lib/stubs/router/router.link.stub.mjs +0 -46
  29. package/esm2020/lib/stubs/router/router.module.stub.mjs +0 -45
  30. package/esm2020/lib/stubs/router/router.outlet.stub.component.mjs +0 -16
  31. package/esm2020/lib/stubs/router/router.stub.mjs +0 -79
  32. package/esm2020/lib/testing.module.mjs +0 -52
  33. package/esm2020/lib/utils.mjs +0 -48
  34. package/esm2020/public_api.mjs +0 -48
  35. package/fesm2015/dbg-riskit-angular-testing.mjs.map +0 -1
  36. package/fesm2020/dbg-riskit-angular-testing.mjs +0 -1546
  37. package/fesm2020/dbg-riskit-angular-testing.mjs.map +0 -1
  38. package/lib/by.util.d.ts +0 -6
  39. package/lib/definitions/data.table.definition.d.ts +0 -176
  40. package/lib/definitions/download.menu.page.d.ts +0 -38
  41. package/lib/definitions/highlighter.directive.page.d.ts +0 -22
  42. package/lib/definitions/layout.component.page.d.ts +0 -28
  43. package/lib/definitions/link.definition.d.ts +0 -11
  44. package/lib/definitions/link.only.page.d.ts +0 -7
  45. package/lib/definitions/login.menu.page.d.ts +0 -11
  46. package/lib/definitions/login.page.d.ts +0 -17
  47. package/lib/definitions/message.def.d.ts +0 -6
  48. package/lib/definitions/message.page.d.ts +0 -20
  49. package/lib/definitions/page.base.d.ts +0 -21
  50. package/lib/environment.d.ts +0 -4
  51. package/lib/events.d.ts +0 -22
  52. package/lib/stubs/auth/auth.routing.flow.service.stub.d.ts +0 -16
  53. package/lib/stubs/auth/auth.service.stub.d.ts +0 -16
  54. package/lib/stubs/auth/well.known.service.stub.d.ts +0 -9
  55. package/lib/stubs/http.service.stub.d.ts +0 -25
  56. package/lib/stubs/login.menu.stub.component.d.ts +0 -6
  57. package/lib/stubs/router/activated.route.stub.d.ts +0 -14
  58. package/lib/stubs/router/router.link.stub.d.ts +0 -15
  59. package/lib/stubs/router/router.module.stub.d.ts +0 -3
  60. package/lib/stubs/router/router.outlet.stub.component.d.ts +0 -5
  61. package/lib/stubs/router/router.stub.d.ts +0 -27
  62. package/lib/testing.module.d.ts +0 -17
  63. package/lib/utils.d.ts +0 -3
  64. package/public_api.d.ts +0 -27
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbg-riskit-angular-testing.mjs","sources":["../../../../pkg/dbg-riskit/angular-testing/src/lib/environment.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/events.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/stubs/http.service.stub.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/definitions/message.def.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/definitions/page.base.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/definitions/download.menu.page.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/definitions/data.table.definition.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/definitions/highlighter.directive.page.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/by.util.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/definitions/layout.component.page.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/definitions/link.definition.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/definitions/link.only.page.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/definitions/login.menu.page.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/definitions/login.page.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/definitions/message.page.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/stubs/auth/auth.routing.flow.service.stub.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/stubs/auth/auth.service.stub.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/stubs/auth/well.known.service.stub.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/stubs/router.stub.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/stubs/login.menu.stub.component.ts","../../../../pkg/dbg-riskit/angular-testing/src/lib/utils.ts","../../../../pkg/dbg-riskit/angular-testing/src/public_api.ts","../../../../pkg/dbg-riskit/angular-testing/src/dbg-riskit-angular-testing.ts"],"sourcesContent":["// Has to be first in this order\nimport '@dbg-riskit/angular-polyfill';\n\n// Other modules follow\nimport {getTestBed} from '@angular/core/testing';\nimport {BrowserDynamicTestingModule, platformBrowserDynamicTesting} from '@angular/platform-browser-dynamic/testing';\n\nexport const COMPILE_TIMEOUT_INTERVAL = Math.pow(2, 31) - 1;\n\nexport function initTestEnvironment() {\n Error.stackTraceLimit = 10;\n\n jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000;\n\n // TODO: Quick fix for memory leaks\n window.addEventListener = () => {\n return;\n };\n window.document.addEventListener = () => {\n return;\n };\n\n // First, initialize the Angular testing environment.\n getTestBed().initTestEnvironment(\n BrowserDynamicTestingModule,\n platformBrowserDynamicTesting(), {\n teardown: {destroyAfterEach: false}\n }\n );\n}\n","import {DebugElement} from '@angular/core';\n\nimport {tick} from '@angular/core/testing';\n\n/** Button events to pass to `DebugElement.triggerEventHandler` for RouterLink event handler */\nexport const BUTTON_CLICK_EVENTS = {\n left : {button: 0},\n right: {button: 2}\n};\n\n/** Simulate element click. Defaults to mouse left-button click event. */\nexport function click(el: DebugElement | HTMLElement, eventObj: any = BUTTON_CLICK_EVENTS.left): void {\n if (el instanceof HTMLElement) {\n el.click();\n } else {\n el.triggerEventHandler('click', eventObj);\n }\n}\n\nexport function setNgModelValue(element: DebugElement, value: string, realAsync = false): void {\n if (!(element.nativeElement instanceof HTMLInputElement)) {\n throw new Error('Not an instance of HTMLInputElement');\n }\n const input: HTMLInputElement = element.nativeElement;\n input.value = value;\n\n dispatchEvent(input, 'input'); // tell Angular\n if (!realAsync) {\n tick();\n }\n}\n\nexport function setNgModelSelectValue(element: DebugElement, selectedIndex: number, realAsync = false): void {\n if (!(element.nativeElement instanceof HTMLSelectElement)) {\n throw new Error('Not an instance of HTMLInputElement');\n }\n const input: HTMLSelectElement = element.nativeElement;\n input.selectedIndex = selectedIndex;\n\n dispatchEvent(input, 'change'); // tell Angular\n if (!realAsync) {\n tick();\n }\n}\n\nexport function dispatchEvent(element: DebugElement | HTMLElement | Window, eventName: string): void {\n if (element instanceof HTMLElement) {\n element.dispatchEvent(newEvent(eventName));\n } else if (element instanceof Window) {\n element.dispatchEvent(newEvent(eventName));\n } else {\n element.nativeElement.dispatchEvent(newEvent(eventName));\n }\n}\n\n/**\n * Create custom DOM event the old fashioned way\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Event/initEvent\n * Although officially deprecated, some browsers (phantom) don't accept the preferred \"new Event(eventName)\"\n */\nexport function newEvent(eventName: string, bubbles = false, cancelable = false): CustomEvent {\n const evt = document.createEvent('CustomEvent'); // MUST be 'CustomEvent'\n evt.initCustomEvent(eventName, bubbles, cancelable, null);\n return evt;\n}\n","import {EventEmitter, Injectable} from '@angular/core';\nimport {Request, RequestWithData} from '@dbg-riskit/angular-common';\nimport {ErrorMessage} from '@dbg-riskit/common';\nimport {Observable, of, throwError as _throwError, timer} from 'rxjs';\nimport {switchMap} from 'rxjs/operators';\n\nexport const FAKE_HTTP_ASYNC_TIMEOUT = 1000;\n\n@Injectable()\nexport class HttpServiceStub<T> {\n\n private value: T[] = [];\n private error: ErrorMessage[] = [];\n\n public unauthorized: EventEmitter<ErrorMessage> = new EventEmitter();\n\n public returnValue(value: T) {\n this.value.push(value);\n }\n\n public popReturnValue(): T | undefined {\n return this.value.pop();\n }\n\n public shiftReturnValue(): T | undefined {\n return this.value.shift();\n }\n\n public throwError(value: ErrorMessage) {\n this.error.push(value);\n }\n\n public get(request: Request<T>): Observable<T | undefined> {\n if (this.error.length) {\n const error = this.error.shift();\n return _throwError(error);\n }\n const value: T | undefined = this.value.shift();\n return of(value);\n }\n\n public post(request: RequestWithData<T>): Observable<T | undefined> {\n return this.get(request);\n }\n}\n\n@Injectable()\nexport class HttpAsyncServiceStub<T> extends HttpServiceStub<T> {\n\n public get(request: Request<T>, auth = true): Observable<T | undefined> {\n return timer(FAKE_HTTP_ASYNC_TIMEOUT).pipe(\n switchMap(() => super.get(request))\n );\n }\n\n public post(request: RequestWithData<T>): Observable<T | undefined> {\n return this.get(request);\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {MatCard} from '@angular/material/card';\nimport {By} from '@angular/platform-browser';\n\nexport class RiskMessageComponentDef {\n\n public constructor(public debugElement: DebugElement) {\n if (debugElement == null) {\n throw new Error('Debug element not found!');\n }\n }\n\n public get text(): string {\n return this.debugElement.query(By.directive(MatCard)).nativeElement.textContent.replace(/\\n\\s*/g, ' ')\n .replace(/\\r\\s*/g, ' ').trim();\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture, discardPeriodicTasks, tick} from '@angular/core/testing';\nimport {By} from '@angular/platform-browser';\nimport {RISK_INITIAL_LOAD_SELECTOR, RISK_NO_DATA_SELECTOR} from '@dbg-riskit/angular-view';\nimport {FAKE_HTTP_ASYNC_TIMEOUT} from '../stubs/http.service.stub';\nimport {RiskMessageComponentDef} from './message.def';\n\nexport class Page<T> {\n\n public debugElement: DebugElement;\n public component: T;\n private _timeOffset = 0;\n\n public constructor(protected fixture: ComponentFixture<T>) {\n this.debugElement = fixture.debugElement;\n this.component = this.debugElement.componentInstance;\n }\n\n public detectChanges(millis = 0): void {\n this.fixture.detectChanges();\n tick(millis);\n this._timeOffset += millis;\n }\n\n public advanceAndDetectChanges(millis = 0): void {\n tick(millis);\n this._timeOffset += millis;\n this.detectChanges();\n }\n\n public advanceHTTP(): void {\n this.advanceAndDetectChanges(FAKE_HTTP_ASYNC_TIMEOUT);\n }\n\n public advanceAndDetectChangesUsingOffset(millis: number): void {\n this.advanceAndDetectChanges(millis - this._timeOffset);\n this.resetTimeOffset();\n }\n\n public resetTimeOffset(): void {\n this._timeOffset = 0;\n }\n\n public destroy() {\n this.fixture.destroy();\n try {\n // Move a lot into fututre ;)\n tick(60 * 60 * 1000);\n discardPeriodicTasks();\n } catch (ignore) {\n // Nothing to do...\n }\n }\n\n public setInput(inputName: string, value: unknown): void {\n this.fixture.componentRef.setInput(inputName, value);\n this.detectChanges();\n }\n}\n\nexport class PageWithLoading<T> extends Page<T> {\n\n public constructor(fixture: ComponentFixture<T>) {\n super(fixture);\n }\n\n public get initialLoadComponent(): RiskMessageComponentDef | null {\n const element = this.debugElement.query(By.css(RISK_INITIAL_LOAD_SELECTOR));\n if (element) {\n return new RiskMessageComponentDef(element);\n }\n return null;\n }\n\n public get noDataComponent(): RiskMessageComponentDef | null {\n const element = this.debugElement.query(By.css(RISK_NO_DATA_SELECTOR));\n if (element) {\n return new RiskMessageComponentDef(element);\n }\n return null;\n }\n}\n","import {Component, DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {MatMenuItem, MatMenuTrigger} from '@angular/material/menu';\nimport {By} from '@angular/platform-browser';\nimport {\n AbstractRiskFileDownloadDirective,\n RiskCSVDownloadMenuComponent,\n RiskCSVFileDownloadDirective,\n RiskFileDownloadDirective\n} from '@dbg-riskit/angular-file';\nimport 'file-saver';\nimport {Observable} from 'rxjs';\nimport {click} from '../events';\nimport {Page} from './page.base';\nimport Spy = jasmine.Spy;\n\nexport class RiskCSVDownloadMenuPage extends Page<RiskCSVDownloadMenuComponent> {\n\n public constructor(fixture: ComponentFixture<RiskCSVDownloadMenuComponent>) {\n super(fixture);\n }\n\n public get downloadWindowsLink(): DownloadLink {\n // Open the menu first\n click(this.debugElement.query(By.directive(MatMenuTrigger)));\n this.detectChanges(500);\n\n return new DownloadLink(this.debugElement.queryAll(By.directive(MatMenuItem))[0], this);\n }\n\n public get downloadUnixLink(): DownloadLink {\n // Open the menu first\n click(this.debugElement.query(By.directive(MatMenuTrigger)));\n this.detectChanges(500);\n\n return new DownloadLink(this.debugElement.queryAll(By.directive(MatMenuItem))[1], this);\n }\n}\n\nexport class DownloadLink {\n private _saveBlobSpy?: jasmine.Spy;\n\n public constructor(public element: DebugElement, private page: { detectChanges: () => void }) {\n }\n\n private _blobSpy?: jasmine.Spy;\n\n public get blobSpy(): Spy {\n this.setupBlobConstructorSpy();\n return this._blobSpy!;\n }\n\n public get saveSpy(): Spy {\n this.setupSaveBlobSpy();\n return this._saveBlobSpy!;\n }\n\n public click(): void {\n this.setupBlobConstructorSpy();\n this.setupSaveBlobSpy();\n click(this.element);\n this.page.detectChanges();\n }\n\n private setupBlobConstructorSpy() {\n if (!this._blobSpy) {\n let downloadDirective: AbstractRiskFileDownloadDirective<unknown>;\n try {\n downloadDirective = this.element.injector.get(RiskCSVFileDownloadDirective);\n } catch (_) {\n downloadDirective = this.element.injector.get(RiskFileDownloadDirective);\n }\n this._blobSpy = spyOn(downloadDirective, 'createBlob').and.callThrough();\n }\n }\n\n private setupSaveBlobSpy() {\n if (!this._saveBlobSpy) {\n this._saveBlobSpy = spyOn(window, 'saveAs');\n }\n }\n}\n\n@Component({\n template: `\n <a [risk-download]=\"data\"\n [risk-download-content-type]=\"contentType\"\n [risk-download-filename]=\"filename\">Download</a>\n `,\n imports : [RiskFileDownloadDirective]\n})\nexport class DownloadTestComponent {\n public data: any | Observable<any>;\n\n public contentType?: string;\n\n public filename?: string;\n}\n\nexport class DownloadTestComponentPage extends Page<DownloadTestComponent> {\n\n public constructor(fixture: ComponentFixture<DownloadTestComponent>) {\n super(fixture);\n }\n\n public get downloadLink(): DownloadLink {\n return new DownloadLink(this.debugElement.query(By.directive(RiskFileDownloadDirective)), this);\n }\n}\n","import {Component, DebugElement, DebugNode, input, signal} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {MatIconAnchor, MatIconButton} from '@angular/material/button';\nimport {MatButtonToggle} from '@angular/material/button-toggle';\nimport {MatIcon} from '@angular/material/icon';\nimport {MatTooltip} from '@angular/material/tooltip';\nimport {By} from '@angular/platform-browser';\nimport {\n HIGHLIGHTER_CLASS,\n OrderingCriteria,\n RiskDataTableColumnCellDirective,\n RiskDataTableColumnDirective,\n RiskDataTableColumnFooterDirective,\n RiskDataTableColumnGroupDirective,\n RiskDataTableComponent,\n RiskDataTablePagingComponent,\n RiskDataTableRowDetailDirective,\n RiskDataTableRowDetailExpanderComponent\n} from '@dbg-riskit/angular-datatable';\nimport {secureRandom, ValueGetter} from '@dbg-riskit/common';\nimport {click} from '../events';\nimport {Page} from './page.base';\n\nexport class RiskDataTableDefinition {\n\n public constructor(public debugElement: DebugElement,\n private page: { detectChanges: () => void, advanceAndDetectChanges: () => void }) {\n }\n\n public get component(): RiskDataTableComponent<unknown, unknown> {\n return this.debugElement.componentInstance;\n }\n\n public get data(): any[] {\n return this.component.plainData;\n }\n\n public get element(): DebugElement {\n return this.debugElement.query(By.css('.risk-data-table-wrapper > table'));\n }\n\n public get header(): TableHeader {\n return new TableHeader(this.debugElement.query((de) => de.references.mainHeader), this.page);\n }\n\n public get sorting(): TableSorting {\n return new TableSorting(this, this.page);\n }\n\n public get body(): TableBody {\n return new TableBody(this.debugElement.query((de) => de.references.mainBody), this.page);\n }\n\n public get footer(): TableFooter {\n return new TableFooter(this.debugElement.query((de) => de.references.mainFooter));\n }\n\n public get recordsCount(): RecordsCount {\n return new RecordsCount(this.debugElement.query(By.css('.risk-data-table-page-count')));\n }\n\n public get pager(): Pager {\n return new Pager(this.debugElement.query(By.directive(RiskDataTablePagingComponent)), this.page);\n }\n}\n\n// <editor-fold defaultstate=\"collapsed\" desc=\"Table header\">\n\nexport class TableHeader {\n\n public constructor(public element: DebugElement, private page: { detectChanges: () => void }) {\n }\n\n public get rows(): TableHeaderRow[] {\n return this.element.queryAll(By.css('tr')).map((element: DebugElement) => {\n return new TableHeaderRow(element, this.page);\n });\n }\n\n public get cells(): TableHeaderCell[] {\n return this.element.queryAll(By.css('th')).map((element: DebugElement) => {\n return new TableHeaderCell(element, this.page);\n });\n }\n\n}\n\nexport class TableHeaderRow {\n public constructor(public element: DebugElement, private page: { detectChanges: () => void }) {\n }\n\n public get cells(): TableHeaderCell[] {\n return this.element.queryAll(By.css('th')).map((element: DebugElement) => {\n return new TableHeaderCell(element, this.page);\n });\n }\n}\n\nexport class TableHeaderCell {\n\n public constructor(public element: DebugElement, private page: { detectChanges: () => void }) {\n }\n\n public get sortingHandle(): SortingHandle | null {\n const handle = this.element.query(By.directive(MatIconButton));\n if (handle) {\n return new SortingHandle(this.page, handle);\n }\n return null;\n }\n\n public get tooltip(): string | null {\n const handle = this.element.query(By.directive(MatTooltip));\n if (handle) {\n return handle.injector.get(MatTooltip).message;\n }\n return null;\n }\n\n public get title(): string {\n const textNode = this.element.childNodes.find((node: DebugNode) => node.nativeNode.nodeType === Node.TEXT_NODE);\n if (textNode != null) {\n return textNode\n .nativeNode.textContent.trim();\n }\n return '';\n }\n\n public get colspan(): number {\n return this.element.nativeElement.colspan;\n }\n\n public get rowspan(): number {\n return this.element.nativeElement.rowspan;\n }\n\n}\n\n// <editor-fold defaultstate=\"collapsed\" desc=\"Sorting\">\n\nexport class TableSorting {\n\n public constructor(private table: RiskDataTableDefinition, private page: { detectChanges: () => void }) {\n }\n\n public get handles(): SortingHandle[] {\n const handles = this.table.debugElement.query((de) => de.references.mainHeader)\n .queryAll(By.directive(MatIconButton));\n if (!handles) {\n return [];\n }\n return handles.map((handle: DebugElement) => {\n return new SortingHandle(this.page, handle);\n });\n }\n\n public get detailRowHandles(): SortingHandle[] | null {\n const handles = this.table.debugElement.query(By.css('.risk-data-table-detail')).query(By.css('thead'))\n .queryAll(By.directive(MatIconButton));\n if (!handles) {\n return null;\n }\n return handles.map((handle: DebugElement) => {\n return new SortingHandle(this.page, handle);\n });\n }\n\n public get currentOrdering(): Array<OrderingCriteria<any>> {\n return (this.table.component as any).ordering();\n }\n\n public checkSorting(firstNRows: number = this.table.component.rows.length,\n criterium?: OrderingCriteria<any>): void {\n // WARN: call data once as it calls .map on all table rows\n const data = this.table.data;\n\n let ordering: Array<OrderingCriteria<any>>;\n if (criterium) {\n ordering = [criterium].concat((this.table.component as any)._defaultOrdering());\n } else {\n ordering = this.currentOrdering;\n }\n for (let i = 1; i < Math.min(data.length, firstNRows); i++) {\n ordering.some((criteria: OrderingCriteria<any>) => {\n //noinspection EqualityComparisonWithCoercionJS\n const valueA: any = criteria.get(data[i - 1]);\n const valueB: any = criteria.get(data[i]);\n if (valueA == null && valueB == null) {\n return false;\n }\n expect(valueA).not.toBeNull();\n expect(valueA).not.toBeUndefined();\n if (valueB != null) {\n if (criteria.descending) {\n expect(valueA >= valueB)\n .toBeTruthy('Expect: ' + valueA + ' >= '\n + valueB);\n } else {\n expect(valueA <= valueB)\n .toBeTruthy('Expect: ' + valueA + ' <= '\n + valueB);\n }\n }\n return valueA !== valueB;\n });\n }\n }\n}\n\nexport class SortingHandle {\n\n public constructor(private page: { detectChanges: () => void }, private handle: DebugElement) {\n }\n\n public click() {\n click(this.handle);\n this.page.detectChanges();\n }\n}\n\n// </editor-fold>\n\n// </editor-fold>\n\n// <editor-fold defaultstate=\"collapsed\" desc=\"Table body\">\n\nexport class TableBody {\n\n public constructor(public element: DebugElement, private page: { detectChanges: () => void }) {\n }\n\n public get rows(): TableBodyRow[] {\n return this.element.queryAll((de) => de.references.masterRow).map((element: DebugElement) => {\n return new TableBodyRow(element, this.page);\n });\n }\n\n public get cells(): TableBodyCell[] {\n let cells: TableBodyCell[] = [];\n this.element.queryAll((de) => de.references.masterRow).forEach((row: DebugElement) => {\n cells = cells.concat(row.queryAll(By.css('td')).map((cell: DebugElement) => {\n return new TableBodyCell(cell);\n }));\n });\n return cells;\n }\n}\n\nexport class TableBodyRow {\n\n public constructor(public element: DebugElement, private page: { detectChanges: () => void }) {\n }\n\n public get expander(): RowExpander {\n return new RowExpander(\n this.element.query(By.directive(RiskDataTableRowDetailExpanderComponent))\n .query(By.directive(MatIconAnchor)));\n }\n\n public get cells(): TableBodyCell[] {\n return this.element.queryAll(By.css('td')).map((element: DebugElement) => {\n return new TableBodyCell(element);\n });\n }\n\n public get rowDetail(): TableBodyDetail | null {\n const parent = this.element.parent;\n if (parent != null) {\n const next = parent.children[parent.children.indexOf(this.element) + 1];\n if (next && !next.references.masterRow) {\n return new TableBodyDetail(next, this.page);\n }\n }\n return null;\n }\n\n public get highlighted(): boolean {\n return this.element.nativeElement.classList.contains(HIGHLIGHTER_CLASS);\n }\n\n public expandRow(): void {\n click(this.element);\n this.page.detectChanges();\n }\n}\n\nexport class RowExpander {\n public constructor(public element: DebugElement) {\n }\n\n public get icon(): string {\n return this.element.query(By.directive(MatIcon)).nativeElement.textContent.trim();\n }\n\n public get opened(): boolean {\n return this.icon === 'expand_less';\n }\n\n public get closed(): boolean {\n return this.icon === 'expand_more';\n }\n}\n\nexport class TableBodyCell {\n\n public constructor(public element: DebugElement) {\n }\n\n public get colspan(): number {\n return this.element.nativeElement.colspan;\n }\n\n public get rowspan(): number {\n return this.element.nativeElement.rowspan;\n }\n}\n\n// <editor-fold defaultstate=\"collapsed\" desc=\"Row detail\">\n\nexport class TableBodyDetail {\n\n public constructor(public element: DebugElement, private page: { detectChanges: () => void }) {\n }\n\n public get body(): TableBodyDetailBody {\n return new TableBodyDetailBody(this.element.query(By.css('tbody')));\n }\n\n public get highlighted(): boolean {\n return this.element.nativeElement.classList.contains(HIGHLIGHTER_CLASS);\n }\n\n public get colspan(): number {\n return this.element.children[0].nativeElement.colspan;\n }\n\n public header(): TableHeader {\n return new TableHeader(this.element.query(By.css('thead')), this.page);\n }\n}\n\nexport class TableBodyDetailBody {\n\n public constructor(public element: DebugElement) {\n }\n\n public get rows(): TableBodyDetailRow[] {\n return this.element.queryAll(By.css('tr')).map((element: DebugElement) => {\n return new TableBodyDetailRow(element);\n });\n }\n\n public get cells(): TableBodyCell[] {\n let cells: TableBodyCell[] = [];\n this.element.queryAll(By.css('tr')).forEach((row: DebugElement) => {\n cells = cells.concat(row.queryAll(By.css('td')).map((cell: DebugElement) => {\n return new TableBodyCell(cell);\n }));\n });\n return cells;\n }\n}\n\nexport class TableBodyDetailRow {\n\n public constructor(public element: DebugElement) {\n }\n\n public get cells(): TableBodyCell[] {\n return this.element.queryAll(By.css('td')).map((element: DebugElement) => {\n return new TableBodyCell(element);\n });\n }\n}\n\n// </editor-fold>\n\n// </editor-fold>\n\n// <editor-fold defaultstate=\"collapsed\" desc=\"Table footer\">\n\nexport class TableFooter {\n\n public constructor(public element: DebugElement) {\n }\n\n public get rows(): TableFooterRow[] {\n return this.element.queryAll(By.css('tr')).map((element: DebugElement) => {\n return new TableFooterRow(element);\n });\n }\n\n public get cells(): TableBodyCell[] {\n let cells: TableBodyCell[] = [];\n this.element.queryAll(By.css('tr')).forEach((row: DebugElement) => {\n cells = cells.concat(row.queryAll(By.css('th')).map((cell: DebugElement) => {\n return new TableBodyCell(cell);\n }));\n });\n return cells;\n }\n}\n\nexport class TableFooterRow {\n\n public constructor(public element: DebugElement) {\n }\n\n public get cells(): TableBodyCell[] {\n return this.element.queryAll(By.css('th')).map((element: DebugElement) => {\n return new TableBodyCell(element);\n });\n }\n}\n\n// </editor-fold>\n\nexport class RecordsCount {\n\n public constructor(public element: DebugElement) {\n }\n\n public get message(): string {\n return this.element.nativeElement.textContent;\n }\n}\n\nexport class Pager {\n\n public constructor(public element: DebugElement,\n private page: { detectChanges: () => void, advanceAndDetectChanges: () => void }) {\n }\n\n public get pageButtons(): DebugElement[] {\n return this.element.queryAll(By.directive(MatButtonToggle));\n }\n\n public expectLeadingButtonsDisabled() {\n for (let i = 0; i < 2; i++) {\n expect(this.pageButtons[i].classes['mat-button-toggle-disabled'])\n .toBe(true, 'First two are disabled.');\n }\n }\n\n public expectLeadingButtonsNotDisabled() {\n for (let i = 0; i < 2; i++) {\n expect(this.pageButtons[i].classes['mat-button-toggle-disabled'])\n .not.toBe(true, 'First two are not disabled.');\n }\n }\n\n public expectTrailingButtonsDisabled() {\n for (let i = this.pageButtons.length - 1; i > this.pageButtons.length - 3; i--) {\n expect(this.pageButtons[i].classes['mat-button-toggle-disabled'])\n .toBe(true, 'Last two are disabled.');\n }\n }\n\n public expectTrailingButtonsNotDisabled() {\n for (let i = this.pageButtons.length - 1; i > this.pageButtons.length - 3; i--) {\n expect(this.pageButtons[i].classes['mat-button-toggle-disabled'])\n .not.toBe(true, 'Last two are not disabled.');\n }\n }\n\n public expectButtonNumbers(numbers: number[]) {\n for (let i = 0; i < numbers.length; i++) {\n expect(this.pageButtons[i + 2].query(By.css('.mat-button-toggle-label-content'))\n .nativeElement.textContent.trim())\n .toEqual(numbers[i] + '', 'Button numbers are correct');\n }\n }\n\n public expectButtonActive(index: number) {\n expect(this.pageButtons[index].classes['mat-button-toggle-checked'])\n .toBe(true, 'Button is active.');\n }\n\n public click(index: number) {\n click(this.pageButtons[index].query(By.css('.mat-button-toggle-label-content')).nativeElement);\n this.page.detectChanges();\n this.page.advanceAndDetectChanges();\n }\n}\n\nexport function chceckSorting(page: { detectChanges: () => void, dataTable: RiskDataTableDefinition },\n criteria: Array<ValueGetter<any>>) {\n page.dataTable.sorting.checkSorting(150);\n\n page.dataTable.sorting.handles.forEach((handle: SortingHandle, index: number) => {\n // Tigger sort based on a handle\n handle.click();\n page.detectChanges();\n\n // Check the sorting\n page.dataTable.sorting.checkSorting(150, {\n get: criteria[index]\n });\n\n // Tigger sort based on a handle\n handle.click();\n page.detectChanges();\n\n // Check the sorting\n page.dataTable.sorting.checkSorting(150, {\n get : criteria[index],\n descending: true\n });\n });\n}\n\nexport class DataTableDefinitionHosted extends Page<TestDataTableHostComponent> {\n\n public constructor(fixture: ComponentFixture<TestDataTableHostComponent>) {\n super(fixture);\n }\n\n public get dataTable(): RiskDataTableDefinition {\n return new RiskDataTableDefinition(this.debugElement.query(By.directive(RiskDataTableComponent)), this);\n }\n\n public setData(data: any): void {\n this.fixture.componentRef.setInput('data', data);\n this.detectChanges();\n }\n\n public setPageSize(size: number): void {\n this.fixture.componentRef.setInput('pageSize', size);\n this.detectChanges();\n }\n}\n\n@Component({\n template: `\n <risk-data-table [data]=\"data()\"\n [footer]=\"footer()\"\n [pageSize]=\"pageSize()\"\n [defaultOrdering]=\"defaultOrdering\"\n [striped]=\"true\">\n <risk-data-table-column title=\"Test Column 1\"\n [sortingKey]=\"valueGetter\">\n <ng-template let-record=\"row\" risk-data-table-cell>\n {{ record.value1 }}\n </ng-template>\n </risk-data-table-column>\n <risk-data-table-column>\n <ng-template risk-data-table-cell let-record=\"row\" let-expanded=\"expanded\">\n <risk-data-table-detail-expander [expanded]=\"expanded\"/>\n </ng-template>\n <ng-template risk-data-table-footer-cell let-footer=\"footer\">\n {{ footer.value1 }}\n </ng-template>\n </risk-data-table-column>\n <!-- Sub detail -->\n <risk-data-table-detail-row>\n <risk-data-table-column-group>\n <risk-data-table-column title=\"Test Detail Column 1\"\n [sortingKey]=\"valueGetter\">\n <ng-template risk-data-table-cell let-record=\"row\">\n {{ record.value1 }}\n </ng-template>\n </risk-data-table-column>\n </risk-data-table-column-group>\n <risk-data-table-column-group>\n <risk-data-table-column title=\"Test Detail Column 2\">\n <ng-template risk-data-table-cell let-record=\"row\">\n {{ record.value2 }}\n </ng-template>\n </risk-data-table-column>\n <risk-data-table-column title=\"Test Detail Column 3\">\n <ng-template risk-data-table-cell let-record=\"row\">\n {{ record.value3 }}\n </ng-template>\n </risk-data-table-column>\n </risk-data-table-column-group>\n <risk-data-table-column-group/>\n </risk-data-table-detail-row>\n </risk-data-table>`,\n imports : [\n RiskDataTableColumnCellDirective,\n RiskDataTableColumnDirective,\n RiskDataTableColumnFooterDirective,\n RiskDataTableColumnGroupDirective,\n RiskDataTableComponent,\n RiskDataTableRowDetailDirective,\n RiskDataTableRowDetailExpanderComponent\n ]\n})\nexport class TestDataTableHostComponent {\n private static readonly defaultData: any[] = (() => {\n const data = [];\n for (let i = 0; i < 500; i++) {\n data.push({\n value1: Math.floor(secureRandom() * 20) + ' - value 1',\n value2: Math.floor(secureRandom() * 20) + ' - value 2',\n value3: Math.floor(secureRandom() * 20) + ' - value 3'\n });\n }\n return data;\n })();\n\n public readonly data = input<any[]>(TestDataTableHostComponent.defaultData);\n public readonly pageSize = input(20);\n public readonly footer = signal<any>(TestDataTableHostComponent.defaultData[0]);\n\n public readonly defaultOrdering = [\n {\n get : (record: any) => {\n return record.value3;\n },\n descending: true\n },\n (record: any) => {\n return record.value2;\n }\n ];\n\n public readonly valueGetter = (record: any) => {\n return record.value1;\n };\n}\n","import {Component, DebugElement} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {By} from '@angular/platform-browser';\nimport {RiskHighlighterDirective, Row} from '@dbg-riskit/angular-datatable';\nimport {Page} from './page.base';\n\n@Component({\n template: `\n <div [risk-data-table-highlighter]=\"trackBy\" [risk-data-table-highlighter-context]=\"context\"></div>`,\n imports : [RiskHighlighterDirective]\n})\nexport class RiskHighLighterDirectiveTestComponent {\n\n public context?: { row: any, storage?: any, index: number, enabled: boolean };\n\n public trackBy(index: number, row: Row<any>): any {\n return row.rowData;\n }\n}\n\nexport class HighLighterDirectivePage extends Page<RiskHighLighterDirectiveTestComponent> {\n\n public constructor(fixture: ComponentFixture<RiskHighLighterDirectiveTestComponent>) {\n super(fixture);\n }\n\n public get highlightedElement(): DebugElement {\n return this.debugElement.query(By.directive(RiskHighlighterDirective));\n }\n\n public get classList(): DOMTokenList {\n return this.highlightedElement.nativeElement.classList;\n }\n\n public get highlighter(): RiskHighlighterDirective<unknown> {\n return this.highlightedElement.injector.get(RiskHighlighterDirective);\n }\n}\n","import {Predicate} from '@angular/core';\n\n// @dynamic\nexport class ByUtil {\n\n public static and<T>(...predicates: Array<Predicate<T>>): Predicate<T> {\n return (val: T) => {\n return predicates.every((predicate: Predicate<T>) => predicate(val));\n };\n }\n\n public static or<T>(...predicates: Array<Predicate<T>>): Predicate<T> {\n return (val: T) => {\n return predicates.some((predicate: Predicate<T>) => predicate(val));\n };\n }\n\n public static not<T>(predicate: Predicate<T>): Predicate<T> {\n return (val: T) => {\n return !predicate(val);\n };\n }\n}\n","import {Component, DebugElement} from '@angular/core';\nimport {MatSidenav, MatSidenavContainer} from '@angular/material/sidenav';\nimport {MatToolbar} from '@angular/material/toolbar';\nimport {By} from '@angular/platform-browser';\nimport {\n RiskLayoutComponent,\n RiskLayoutHorizontalDirective,\n RiskLayoutVerticalDirective\n} from '@dbg-riskit/angular-view';\nimport {ByUtil} from '../by.util';\nimport {Page} from './page.base';\n\nexport class RiskLayoutComponentDefinition {\n\n public constructor(public debugElement: DebugElement,\n private page: { advanceAndDetectChanges: (milis?: number) => void }) {\n }\n\n public get component(): RiskLayoutComponent {\n return this.debugElement.componentInstance;\n }\n\n public get headToolbar(): DebugElement {\n return this.debugElement.query(ByUtil.and(By.directive(MatToolbar), By.css('.mat-elevation-z2')));\n }\n\n public get logo(): DebugElement {\n return this.headToolbar.query(By.css('.risk-layout-logo'));\n }\n\n public get menu(): DebugElement[] {\n return this.headToolbar.queryAll(ByUtil.or(\n By.css('[menu-horizontal]'),\n By.css('risk-layout-horizontal')));\n }\n\n public get sideNavContainer(): DebugElement {\n return this.debugElement.query(By.directive(MatSidenavContainer));\n }\n\n public get sideNav(): DebugElement {\n return this.sideNavContainer.query(By.directive(MatSidenav));\n }\n\n public get sideNavMenu(): DebugElement[] {\n return this.sideNav.queryAll(ByUtil.or(\n By.css('[menu-vertical]'),\n By.css('risk-layout-vertical')));\n }\n\n public get content(): DebugElement {\n return this.sideNavContainer.query(By.css('.risk-layout-content'));\n }\n\n public openSideNav(): void {\n (this.sideNav.componentInstance as MatSidenav).open();\n this.page.advanceAndDetectChanges();\n }\n\n public closeSideNav(): void {\n (this.sideNav.componentInstance as MatSidenav).close();\n this.page.advanceAndDetectChanges(1);\n }\n\n}\n\nexport class RiskLayoutTestComponentHostPage extends Page<RiskLayoutTestHostComponent> {\n\n public get layoutComponent(): RiskLayoutComponentDefinition {\n return new RiskLayoutComponentDefinition(this.debugElement.query(By.directive(RiskLayoutComponent)), this);\n }\n}\n\n@Component({\n template: `\n <risk-layout>\n <!-- menu-horizontal -->\n <risk-layout-horizontal>\n HorizontalMenu\n </risk-layout-horizontal>\n <!-- menu-horizontal -->\n\n <!-- menu-vertical -->\n <risk-layout-vertical>\n Vertical menu\n </risk-layout-vertical>\n\n <span>Content</span>\n </risk-layout>\n `,\n imports : [\n RiskLayoutComponent,\n RiskLayoutHorizontalDirective,\n RiskLayoutVerticalDirective\n ]\n})\nexport class RiskLayoutTestHostComponent {\n\n}\n","import {DebugElement} from '@angular/core';\nimport {RouterLink} from '@angular/router';\nimport {click} from '../events';\nimport {Page} from './page.base';\n\nexport class LinkDefinition {\n\n public constructor(private page: Page<any>, public link: DebugElement) {\n }\n\n public get stub(): RouterLink {\n return this.link.injector.get(RouterLink);\n }\n\n public get text(): string {\n return this.link.nativeElement.textContent.trim();\n }\n\n public click() {\n click(this.link.nativeElement);\n this.page.advanceAndDetectChanges();\n }\n}\n","import {ComponentFixture} from '@angular/core/testing';\nimport {By} from '@angular/platform-browser';\nimport {RouterLink} from '@angular/router';\nimport {LinkDefinition} from './link.definition';\nimport {Page} from './page.base';\n\nexport class LinkOnlyPage<T> extends Page<T> {\n\n public constructor(fixture: ComponentFixture<T>) {\n super(fixture);\n }\n\n public get link(): LinkDefinition {\n return new LinkDefinition(this, this.debugElement.query(By.directive(RouterLink)));\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {MatMenuItem, MatMenuTrigger} from '@angular/material/menu';\nimport {By} from '@angular/platform-browser';\nimport {RiskLoginMenuComponent} from '@dbg-riskit/angular-login';\nimport {ByUtil} from '../by.util';\nimport {click} from '../events';\nimport {LinkDefinition} from './link.definition';\nimport {Page} from './page.base';\n\nexport class LoginMenuPage extends Page<RiskLoginMenuComponent> {\n\n public get menuTrigger(): DebugElement {\n return this.debugElement.query(By.directive(MatMenuTrigger));\n }\n\n public clickMenuTrigger(): void {\n click(this.menuTrigger);\n this.waitForMenu();\n }\n\n public waitForMenu(): void {\n this.detectChanges(500);\n }\n\n public get loginLink(): LinkDefinition {\n return new LinkDefinition(this, this.debugElement.query(\n ByUtil.and(\n By.directive(MatMenuItem),\n (value: DebugElement) => value.nativeElement.textContent.trim().endsWith('Login'))));\n }\n\n public get logoutLink(): LinkDefinition {\n return new LinkDefinition(this, this.debugElement.query(\n ByUtil.and(\n By.directive(MatMenuItem),\n (value: DebugElement) => value.nativeElement.textContent.trim().endsWith('Logout'))));\n }\n}\n","import {DebugElement} from '@angular/core';\nimport {ComponentFixture, tick} from '@angular/core/testing';\nimport {MatButton} from '@angular/material/button';\nimport {By} from '@angular/platform-browser';\nimport {RiskLoginComponent} from '@dbg-riskit/angular-login';\nimport {RISK_ERROR_SELECTOR, RISK_GOOD_SELECTOR, RiskMessageComponent} from '@dbg-riskit/angular-view';\nimport {ByUtil} from '../by.util';\nimport {click, setNgModelValue} from '../events';\nimport {RiskMessageComponentDef} from './message.def';\nimport {Page} from './page.base';\n\nexport class RiskLoginPage extends Page<RiskLoginComponent> {\n\n public constructor(fixture: ComponentFixture<RiskLoginComponent>) {\n super(fixture);\n }\n\n public get formElement(): DebugElement {\n return this.debugElement.query(By.css('form'));\n }\n\n public get usernameElement(): DebugElement {\n return this.formElement.query(By.css('input[name=username]'));\n }\n\n public set username(username: string) {\n setNgModelValue(this.usernameElement, username);\n this.fixture.detectChanges();\n }\n\n public get passwordElement(): DebugElement {\n return this.formElement.query(By.css('input[name=password]'));\n }\n\n public set password(password: string) {\n setNgModelValue(this.passwordElement, password);\n this.fixture.detectChanges();\n }\n\n public get loginButtonElement(): DebugElement {\n return this.formElement.query(By.directive(MatButton));\n }\n\n public get successMessage(): RiskMessageComponentDef | null {\n const debugElement = this.debugElement.query(\n ByUtil.and(\n By.directive(RiskMessageComponent),\n By.css(RISK_GOOD_SELECTOR)));\n if (!debugElement) {\n return null;\n }\n return new RiskMessageComponentDef(debugElement);\n }\n\n public get errorMessage(): RiskMessageComponentDef | null {\n const debugElement = this.debugElement.query(\n ByUtil.or(\n ByUtil.and(\n By.directive(RiskMessageComponent),\n By.css(RISK_ERROR_SELECTOR)),\n By.css('h3')));\n if (!debugElement) {\n return null;\n }\n return new RiskMessageComponentDef(debugElement);\n }\n\n public clickLogin() {\n click(this.loginButtonElement.nativeElement);\n tick();\n this.detectChanges();\n }\n}\n","import {Component} from '@angular/core';\nimport {ComponentFixture} from '@angular/core/testing';\nimport {By} from '@angular/platform-browser';\nimport {\n RISK_ERROR_SELECTOR,\n RISK_GOOD_SELECTOR,\n RISK_INFO_SELECTOR,\n RISK_INITIAL_LOAD_SELECTOR,\n RISK_MESSAGE_SELECTOR,\n RISK_NO_DATA_SELECTOR,\n RISK_UPDATE_FAILED_SELECTOR,\n RISK_WARN_SELECTOR,\n RiskMessageComponent\n} from '@dbg-riskit/angular-view';\nimport {RiskMessageComponentDef} from './message.def';\nimport {Page} from './page.base';\n\n@Component({\n template: `\n <risk-error [message]=\"message\"/>\n <risk-good [message]=\"message\"/>\n <risk-info [message]=\"message\"/>\n <risk-message [message]=\"message\"/>\n <risk-warn [message]=\"message\"/>\n <risk-initial-load [message]=\"message\"/>\n <risk-update-failed [message]=\"message\"/>\n <risk-no-data [message]=\"message\"/>\n `,\n imports: [\n RiskMessageComponent\n ]\n})\nexport class TestMessageHostComponent {\n public message = 'custom message';\n}\n\nexport class MessageHostedPage extends Page<TestMessageHostComponent> {\n\n public constructor(fixture: ComponentFixture<TestMessageHostComponent>) {\n super(fixture);\n }\n\n public get error(): RiskMessageComponentDef {\n return new RiskMessageComponentDef(this.debugElement.query(By.css(RISK_ERROR_SELECTOR)));\n }\n\n public get good(): RiskMessageComponentDef {\n return new RiskMessageComponentDef(this.debugElement.query(By.css(RISK_GOOD_SELECTOR)));\n }\n\n public get info(): RiskMessageComponentDef {\n return new RiskMessageComponentDef(this.debugElement.query(By.css(RISK_INFO_SELECTOR)));\n }\n\n public get message(): RiskMessageComponentDef {\n return new RiskMessageComponentDef(this.debugElement.query(By.css(RISK_MESSAGE_SELECTOR)));\n }\n\n public get warn(): RiskMessageComponentDef {\n return new RiskMessageComponentDef(this.debugElement.query(By.css(RISK_WARN_SELECTOR)));\n }\n\n public get initialLoad(): RiskMessageComponentDef {\n return new RiskMessageComponentDef(this.debugElement.query(By.css(RISK_INITIAL_LOAD_SELECTOR)));\n }\n\n public get noData(): RiskMessageComponentDef {\n return new RiskMessageComponentDef(this.debugElement.query(By.css(RISK_NO_DATA_SELECTOR)));\n }\n\n public get updateFailed(): RiskMessageComponentDef {\n return new RiskMessageComponentDef(this.debugElement.query(By.css(RISK_UPDATE_FAILED_SELECTOR)));\n }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {RouterStateSnapshot} from '@angular/router';\n\nimport {AUTH_CONFIG, AuthConfig, AuthFlow, AuthService} from '@dbg-riskit/angular-auth';\nimport {AUTH_PROVIDER} from '@dbg-riskit/angular-common';\n\nimport {Observable} from 'rxjs';\nimport {defaultIfEmpty, map} from 'rxjs/operators';\n\nexport const storage: { authRequestedPath: string | null; }\n = {authRequestedPath: null};\n\n@Injectable()\nexport class AuthRoutingFlowServiceStub {\n private authServiceStub = inject<AuthService>(AUTH_PROVIDER);\n private readonly authConfig = inject<AuthConfig>(AUTH_CONFIG);\n\n public constructor() {\n // cleanup\n storage.authRequestedPath = null;\n }\n\n public get authFlow(): AuthFlow {\n return this.authConfig.flow;\n }\n\n public get authorizationCodeFlow(): boolean {\n return this.authFlow === AuthFlow.AUTHORIZATION_CODE;\n }\n\n public get implicitFlow(): boolean {\n return this.authFlow === AuthFlow.IMPLICIT;\n }\n\n public get hybridFlow(): boolean {\n return this.authFlow === AuthFlow.HYBRID;\n }\n\n public get directFlow(): boolean {\n return this.authFlow === AuthFlow.DIRECT;\n }\n\n public logout(): Observable<boolean> {\n return this.authServiceStub.logout().pipe(\n defaultIfEmpty(0),\n map(() => true));\n }\n\n public login(username?: string, password?: string): Observable<boolean> {\n return this.authServiceStub.directLogin(username as any, password as any);\n }\n\n public loginViaService(): Observable<boolean> {\n return this.authServiceStub.loginViaAuthService();\n }\n\n public storeRequestedPath(state?: RouterStateSnapshot): void {\n storage.authRequestedPath = state?.url || null;\n }\n}\n","import {Injectable} from '@angular/core';\nimport {AuthProvider, ReplaySubjectExt, UserInfo} from '@dbg-riskit/common';\nimport {defer, EMPTY, Observable, of} from 'rxjs';\n\n@Injectable()\nexport class AuthServiceStub implements AuthProvider {\n private user?: string;\n\n private readonly _loggedInStream: ReplaySubjectExt<boolean> = new ReplaySubjectExt<boolean>(1);\n\n public get loggedIn(): Observable<boolean> {\n return defer(() => of(!!this.user));\n }\n\n public get userProfile(): Observable<UserInfo | undefined> {\n return defer(() => of(this.user ? {\n name: this.user\n } : undefined));\n }\n\n public get loggedInStream(): Observable<boolean> {\n return this._loggedInStream.asObservable();\n }\n\n public loginViaAuthService(): Observable<boolean> {\n return of(true);\n }\n\n public checkLocationForLoginData(): Observable<boolean> {\n return of(true);\n }\n\n public directLogin(username: string, password: string): Observable<boolean> {\n this.user = username;\n this.emitLoginStatusChange(true);\n return of(true);\n }\n\n public logout(): Observable<never> {\n this.emitLoginStatusChange(false);\n delete this.user;\n return EMPTY;\n }\n\n public emitLoginStatusChange(status: boolean) {\n if (this._loggedInStream.lastValue !== status) {\n this._loggedInStream.next(status);\n }\n }\n\n public refreshToken() {\n }\n}\n","import {Injectable} from '@angular/core';\n\nimport {WellKnown} from '@dbg-riskit/angular-auth';\n\nimport {Observable, of} from 'rxjs';\n\nexport const WELL_KNOWN: WellKnown = {\n endpoints: {\n auth : '/auth',\n token : '/token',\n logout: '/logout'\n },\n issuer : 'risk-auth'\n};\n\n@Injectable()\nexport class WellKnownServiceStub {\n public get wellKnown(): Observable<WellKnown> {\n return of(WELL_KNOWN);\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {Event as RouterEvent, NavigationExtras, RouterState, UrlTree} from '@angular/router';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n/**\n * A lightweight Router stub for testing that doesn't require actual routing infrastructure.\n * Use this when you want complete isolation from the Router and only need to verify navigation calls.\n */\n@Injectable()\nexport class RouterStub {\n private _url = '/';\n private _events$ = new BehaviorSubject<RouterEvent | null>(null);\n\n public get url(): string {\n return this._url;\n }\n\n public get events(): Observable<RouterEvent | null> {\n return this._events$.asObservable();\n }\n\n public get routerState(): RouterState {\n return {\n snapshot: {\n url: this._url,\n root: {} as any\n }\n } as RouterState;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public navigate(commands: unknown[], _extras?: NavigationExtras): Promise<boolean> {\n this._url = commands.join('/');\n return Promise.resolve(true);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public navigateByUrl(url: string | UrlTree, _extras?: NavigationExtras): Promise<boolean> {\n this._url = typeof url === 'string' ? url : url.toString();\n return Promise.resolve(true);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public createUrlTree(_commands: unknown[], _navigationExtras?: NavigationExtras): UrlTree {\n return {} as UrlTree;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public serializeUrl(_url: UrlTree): string {\n return '';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public parseUrl(_url: string): UrlTree {\n return {} as UrlTree;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public isActive(_url: string | UrlTree, _exact: boolean): boolean {\n return false;\n }\n}\n","import {ChangeDetectionStrategy, Component, input} from '@angular/core';\n\n@Component({\n selector: 'risk-login-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ''\n})\nexport class RiskLoginMenuStubComponent {\n public readonly orientation = input<'row' | 'column'>('row');\n}\n","import {COMPILE_TIMEOUT_INTERVAL} from './environment';\n\nexport function compileTestBed(compileFunction: () => Promise<any>, destroyFunction?: () => void,\n stubMatchMedia = true) {\n let matchMedia: any;\n beforeEach((done: DoneFn) => {\n if (stubMatchMedia) {\n matchMedia = window.matchMedia;\n window.matchMedia = fakeMatchMedia();\n }\n\n compileFunction()\n .then(done)\n .catch((err: any) => {\n done.fail(err);\n });\n }, COMPILE_TIMEOUT_INTERVAL);\n\n afterEach(() => {\n if (destroyFunction) {\n destroyFunction();\n }\n\n if (stubMatchMedia) {\n window.matchMedia = matchMedia;\n }\n }, COMPILE_TIMEOUT_INTERVAL);\n}\n\nfunction fakeMatchMedia(matches = false) {\n return (mediaQuery: string): MediaQueryList => ({\n matches,\n media : mediaQuery,\n onchange : () => null as any,\n addListener : () => null as any,\n addEventListener : () => null as any,\n removeListener : () => null as any,\n removeEventListener: () => null as any,\n dispatchEvent : () => true\n });\n}\n","// WARNING: Do not change order in this file!!! Environment has to be first as it includes polyfills\nexport * from './lib/environment';\n\nexport * from './lib/definitions/download.menu.page';\nexport * from './lib/definitions/data.table.definition';\nexport * from './lib/definitions/highlighter.directive.page';\nexport * from './lib/definitions/layout.component.page';\nexport * from './lib/definitions/link.definition';\nexport * from './lib/definitions/link.only.page';\nexport * from './lib/definitions/login.menu.page';\nexport * from './lib/definitions/login.page';\nexport * from './lib/definitions/message.def';\nexport * from './lib/definitions/message.page';\nexport * from './lib/definitions/page.base';\n\nexport * from './lib/stubs/auth/auth.routing.flow.service.stub';\nexport * from './lib/stubs/auth/auth.service.stub';\nexport * from './lib/stubs/auth/well.known.service.stub';\n\nexport * from './lib/stubs/http.service.stub';\nexport * from './lib/stubs/router.stub';\nexport * from './lib/stubs/login.menu.stub.component';\n\nexport * from './lib/by.util';\nexport * from './lib/events';\nexport * from './lib/utils';\n\nexport {\n RiskLayoutComponent\n} from '@dbg-riskit/angular-view';\n\nimport {globalScope} from '@dbg-riskit/common';\n\n// Add CachedResourceProviderImpl to compiler configuration\nif ('beforeEach' in globalScope && globalScope.beforeEach) {\n globalScope.beforeEach(() => {\n // Disable logging in Safari as the Selenium WebDriver is not working there correctly....\n if ('navigator' in globalScope) {\n const ua = globalScope.navigator.userAgent.toLowerCase();\n if ('spyOn' in globalScope && globalScope.spyOn\n && ua.indexOf('safari') > -1\n && ua.indexOf('chrome') === -1) {\n globalScope.spyOn(console, 'log').and.stub();\n globalScope.spyOn(console, 'info').and.stub();\n globalScope.spyOn(console, 'warn').and.stub();\n globalScope.spyOn(console, 'debug').and.stub();\n globalScope.spyOn(console, 'error').and.stub();\n }\n }\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_throwError"],"mappings":"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"}