@coolon/angular-ui-powerups 12.4.0-alpha.31 → 12.4.0-alpha.33
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.
- package/assets/forms/mixins.scss +6 -0
- package/assets/interaction/editor/inline-string-editor.scss +47 -0
- package/assets/interaction/input-activity.scss +12 -0
- package/bundles/coolon-angular-ui-powerups-cypress.umd.js +23 -9
- package/bundles/coolon-angular-ui-powerups-cypress.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.js +35 -5
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/cypress/coolon-angular-ui-powerups-cypress.metadata.json +1 -1
- package/cypress/package.json +1 -1
- package/cypress/page.d.ts +3 -0
- package/esm2015/cypress/page.js +23 -9
- package/esm2015/cypress/page.js.map +1 -1
- package/esm2015/cypress/page.metadata.json +1 -1
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +1 -1
- package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js.map +1 -1
- package/esm2015/lib/place/place-component.js +31 -4
- package/esm2015/lib/place/place-component.js.map +1 -1
- package/esm2015/lib/place/place-component.metadata.json +1 -1
- package/esm2015/lib/place/visit.js +5 -1
- package/esm2015/lib/place/visit.js.map +1 -1
- package/esm2015/lib/place/visit.metadata.json +1 -1
- package/fesm2015/coolon-angular-ui-powerups-cypress.js +23 -9
- package/fesm2015/coolon-angular-ui-powerups-cypress.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +36 -6
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/place/place-component.d.ts +6 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coolon-angular-ui-powerups-cypress.js","sources":["../../../../libs/angular-ui-powerups/cypress/src/element-locator.ts","../../../../libs/angular-ui-powerups/cypress/src/page-element.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command-face.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-empty-state.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-input.ts","../../../../libs/angular-ui-powerups/cypress/src/components/popup/aup-popup-menu-panel.ts","../../../../libs/angular-ui-powerups/cypress/src/components/popup/aup-abstract-popup-menu.ts","../../../../libs/angular-ui-powerups/cypress/src/components/popup/aup-more-menu.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-navigation.ts","../../../../libs/angular-ui-powerups/cypress/src/components/table/aup-table-cell.ts","../../../../libs/angular-ui-powerups/cypress/src/components/table/aup-table-column.ts","../../../../libs/angular-ui-powerups/cypress/src/components/table/aup-table-selection-column.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-abstract-table.ts","../../../../libs/angular-ui-powerups/cypress/src/components/table/aup-table-row.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-table.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-tree-table.ts","../../../../libs/angular-ui-powerups/cypress/src/components/form-element-mixin.ts","../../../../libs/angular-ui-powerups/cypress/src/components/button.ts","../../../../libs/angular-ui-powerups/cypress/src/components/mat-checkbox.ts","../../../../libs/angular-ui-powerups/cypress/src/component-builder.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-abstract-activity.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-alert.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-modal-mixin.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-alert-dialog.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-confirm.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-confirm-dialog.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-activity.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-modal-activity.ts","../../../../libs/angular-ui-powerups/cypress/src/page-builder.ts","../../../../libs/angular-ui-powerups/cypress/src/path.ts","../../../../libs/angular-ui-powerups/cypress/src/page.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command-group.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-tool-bar.ts","../../../../libs/angular-ui-powerups/cypress/src/components/popup/aup-popup-menu.ts","../../../../libs/angular-ui-powerups/cypress/src/components/table/aup-table-selection-cell.ts","../../../../libs/angular-ui-powerups/cypress/src/exports.ts","../../../../libs/angular-ui-powerups/cypress/src/coolon-angular-ui-powerups-cypress.ts"],"sourcesContent":["import { PageElement } from './page-element';\n\nexport type ElementLocator = (parent: PageElement) => Cypress.Chainable<JQuery>;\n\nexport namespace ElementLocator {\n\n export function findByCssSelector(selector: string): ElementLocator {\n return parent => parent.dom().find(selector)\n }\n\n export function findByTextContent(text: string): ElementLocator {\n return parent => parent.dom().contains(text);\n }\n\n export function findBySelectorAndTextContent(selector: string, text: string): ElementLocator {\n return parent => parent.dom().contains(selector, text);\n }\n\n}\n","/* tslint:disable:unified-signatures */\nimport Chainable = Cypress.Chainable;\nimport { Stringy } from '@coolon/typescript-utilities';\nimport * as _ from 'lodash';\nimport { ElementLocator } from './element-locator';\n\nexport class PageElement<P extends PageElement<any> = PageElement<any>> {\n\n readonly domElementLocator: ElementLocator;\n\n constructor(parent: P, selector?: string)\n constructor(parent: P, locator?: ElementLocator)\n constructor(parent: P, selectorOrLocator?: string | ElementLocator)\n constructor(readonly parent: P, selectorOrLocator?: string | ElementLocator) {\n this.domElementLocator = _.isNil(selectorOrLocator) ?\n this.getDefaultElementLocator() :\n _.isString(selectorOrLocator) ?\n ElementLocator.findByCssSelector(selectorOrLocator) :\n selectorOrLocator;\n }\n\n getDefaultElementLocator(): ElementLocator {\n return ElementLocator.findByCssSelector(this.getDefaultElementSelector());\n }\n\n getDefaultElementSelector() {\n return Stringy.from(this.constructor.name).dasherize().toString();\n }\n\n dom(): Chainable<JQuery> {\n return this.domElementLocator(this.parent);\n }\n\n find(selector: string): PageElement {\n return new PageElement(this, selector);\n }\n\n click(text?: string) {\n text ? this.dom().contains(text).click() : this.dom().click();\n }\n\n get should() {\n return this.getShoulder(this.getShouldElement());\n }\n\n getShoulder(element: Chainable<JQuery>) {\n return element.should.bind(element);\n }\n\n getShouldElement(): Chainable<JQuery> {\n return this.dom();\n }\n\n shouldBeVisible() {\n this.should('be.visible');\n }\n\n shouldNotBeVisible() {\n this.should('not.be.visible');\n }\n\n shouldExist() {\n this.dom().should('exist');\n }\n\n shouldNotExist() {\n this.dom().should('not.exist');\n }\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { Types } from './types';\n\nexport class AupCommandFace extends PageElement {\n\n constructor(parentElement: PageElement, face: Types.CommandFace) {\n super(parentElement, AupCommandFace.createElementLocator(face));\n }\n\n static createElementLocator(face: Types.CommandFace): ElementLocator {\n const locator = parent => {\n return face.text ?\n parent.dom().contains(`aup-command-face`, face.text()) :\n face.icon ?\n parent.dom().find(`aup-icon[ng-reflect-icon=${face.icon()}]`).closest('aup-command-face') :\n undefined;\n\n };\n // aot compiler doesn't like lambas\n return locator;\n }\n}\n\n","import { PageElement } from '../page-element';\nimport { AupCommandFace } from './aup-command-face';\nimport { Types } from './types';\nimport * as _ from 'lodash';\n\nexport class AupCommand extends PageElement {\n\n constructor(parent: PageElement, faceOrSelector: string | Types.CommandFace) {\n super(parent, parentElement => {\n if (_.isString(faceOrSelector)) {\n return parentElement.dom().find(faceOrSelector);\n } else {\n return AupCommandFace.createElementLocator(faceOrSelector)(parentElement).closest('aup-command');\n }\n });\n }\n\n click() {\n this.getButton().click();\n }\n\n getShouldElement(): Cypress.Chainable<JQuery> {\n return this.getButton();\n }\n\n shouldBeDisabled() {\n this.getButton().should('be.disabled');\n }\n\n shouldBeEnabled() {\n this.getButton().should('not.be.disabled');\n }\n\n private getButton() {\n return this.dom().find('button');\n }\n\n}\n\n","import { PageElement } from '../page-element';\n\nexport class AupEmptyState extends PageElement {\n\n shouldContainText(text:string) {\n this.dom().should(\"contain.text\", text)\n }\n}\n","import { PageElement } from '../page-element';\nimport Chainable = Cypress.Chainable;\n\nexport abstract class AupInput<T> extends PageElement {\n\n label() {\n return this.dom().find('label');\n }\n\n hint() {\n return this.dom().find('mat-hint');\n }\n\n error() {\n return this.dom().find('mat-error');\n }\n\n get labelShould() {\n return this.getShoulder(this.label())\n }\n\n get hintShould() {\n return this.getShoulder(this.hint());\n }\n\n get errorShould() {\n return this.getShoulder(this.error());\n }\n\n labelShouldBe(text: string) {\n return this.labelShould(\"have.text\", text);\n }\n\n hintShouldBe(text: string) {\n return this.hintShould(\"have.text\", text);\n }\n\n errorShouldBe(text: string) {\n return this.errorShould(\"have.text\", text);\n }\n\n shouldBeFocused() {\n this.input().should(\"have.focus\");\n }\n\n shouldNotBeFocused() {\n this.input().should(\"not.have.focus\");\n }\n\n type(characters:string) {\n this.input().type(characters);\n }\n\n hitEnter() {\n this.type(\"{enter}\")\n }\n\n abstract input(): Chainable<JQuery>\n abstract clear();\n abstract setValue(value: T);\n\n}\n\nexport namespace AupInput {\n export class HtmlInput<T> extends AupInput<T> {\n input() {\n return this.dom().find('input');\n }\n\n clear() {\n this.input().clear();\n }\n\n setValue(value: T) {\n const input = this.input();\n input.clear();\n input.type(`${value}`);\n this.input().should('have.value', `${value}`);\n }\n\n getShouldElement(): Cypress.Chainable<JQuery> {\n return this.input();\n }\n\n }\n\n export class TextAreaInput<T> extends AupInput<T> {\n\n getShouldElement(): Cypress.Chainable<JQuery> {\n return this.input();\n }\n\n input() {\n return this.dom().find('textarea');\n }\n\n clear() {\n this.input().clear();\n }\n\n setValue(value: T) {\n const input = this.input();\n input.clear();\n input.type(`${value}`);\n this.input().should('have.value', value);\n }\n }\n\n}\n","import { PageElement } from '../../page-element';\n\nexport class AupPopupMenuPanel extends PageElement {\n\n}\n","import { ElementLocator } from '../../element-locator';\nimport { PageElement } from '../../page-element';\nimport { AupPopupMenuPanel } from './aup-popup-menu-panel';\n\nexport class AupAbstractPopupMenu extends PageElement {\n\n private popup: AupPopupMenuPanel;\n\n constructor(parent: PageElement, locator: ElementLocator) {\n super(parent, locator);\n this.popup = new AupPopupMenuPanel(this, p => this.findPopupIn(p));\n }\n\n protected findPopupIn(p: PageElement) {\n return this.getOverlay().find('.mat-menu-panel');\n }\n\n protected getOverlay() {\n return this.dom().closest('body').find('.cdk-overlay-container');\n }\n\n protected getBackdrop() {\n return this.getOverlay().find('.cdk-overlay-backdrop');\n }\n\n openPopup(): AupPopupMenuPanel {\n this.shouldNotBeOpen();\n this.click();\n return this.popup;\n }\n\n closePopup() {\n this.shouldBeOpen();\n this.getBackdrop().click();\n }\n\n shouldBeOpen() {\n this.popup.shouldBeVisible();\n }\n\n shouldNotBeOpen() {\n this.dom().closest('body').find('.mat-menu-panel').should(\"not.exist\");\n }\n\n\n}\n","import { ElementLocator } from '../../element-locator';\nimport { PageElement } from '../../page-element';\nimport { AupAbstractPopupMenu } from './aup-abstract-popup-menu';\n\nexport class AupMoreMenu extends AupAbstractPopupMenu {\n\n static create(parent: PageElement, selector?: string) {\n return new AupMoreMenu(parent, ElementLocator.findByCssSelector(selector ?? 'aup-more-menu'));\n }\n}\n","import { PageElement } from '../page-element';\nimport { AupCommandFace } from './aup-command-face';\n\nexport class AupNavigation extends PageElement {\n\n click(label: string) {\n return super.click(label);\n }\n\n face(label: string): AupCommandFace {\n return new AupCommandFace(this, { text: () => label });\n }\n\n shouldHaveLink(label: string) {\n this.face(label).shouldBeVisible();\n }\n\n shouldNotHaveLink(label: string) {\n this.face(label).shouldNotExist();\n }\n}\n","import { PageElement } from '../../page-element';\nimport { AupAbstractTable } from '../aup-abstract-table';\nimport { AupTableRow } from './aup-table-row';\nimport Chainable = Cypress.Chainable;\n\nexport class AupTableCell<TR extends AupTableRow> extends PageElement<AupAbstractTable<TR>> {\n\n rowId(): Chainable<string> {\n return this.dom().closest('tr').invoke('attr', 'aup-row-id');\n }\n\n row(): TR {\n const self = this;\n return this.parent.createRow(parent => {\n return self.rowId().then(rowId => parent.dom().find(AupAbstractTable.cssSelectorForTableRowById(rowId)));\n });\n }\n}\n","import { PageElement } from '../../page-element';\nimport { AupAbstractTable } from '../aup-abstract-table';\nimport { AupTableCell } from './aup-table-cell';\nimport { AupTableRow } from './aup-table-row';\n\nexport class AupTableColumn<TR extends AupTableRow> extends PageElement<AupAbstractTable<TR>> {\n\n constructor(table: AupAbstractTable<any>, readonly columnId: string) {\n super(table, AupAbstractTable.cssSelectorForColumnCellRendererById(columnId));\n }\n\n cellContaining(content: string): AupTableCell<TR> {\n const self = this;\n return new AupTableCell(this.parent,parent => {\n return parent.dom().contains(AupAbstractTable.cssSelectorForColumnCellRendererById(self.columnId), content);\n });\n }\n\n rowContaining(content: string): TR {\n return this.cellContaining(content).row();\n }\n}\n","import { AupTableColumn } from './aup-table-column';\nimport { AupTableRow } from './aup-table-row';\n\nexport class AupTableSelectionColumn<TR extends AupTableRow> extends AupTableColumn<TR> {\n selectAll() {\n }\n}\n","/* tslint:disable:unified-signatures */\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport * as _ from 'lodash';\nimport { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupTableColumn } from './table/aup-table-column';\nimport { AupTableRow } from './table/aup-table-row';\nimport { AupTableSelectionColumn } from './table/aup-table-selection-column';\n\nexport abstract class AupAbstractTable<TR extends AupTableRow> extends PageElement {\n\n row(rowId: any): TR {\n return this.createRow(parent => {\n return parent.dom().find(AupAbstractTable.cssSelectorForTableRowById(rowId));\n });\n }\n\n rowNumber(rowNumber: number): TR {\n return this.createRow(parent => {\n return parent.dom().find(AupAbstractTable.cssSelectorForNthTableRow(rowNumber));\n });\n }\n\n column(columnId: string): AupTableColumn<TR> {\n return new AupTableColumn(this, columnId);\n }\n\n @Memoize()\n get selectionColumn(): AupTableSelectionColumn<TR> {\n return new AupTableSelectionColumn(this, 'selection-column');\n }\n\n abstract createRow(locator: ElementLocator): TR\n\n}\n\nexport namespace AupAbstractTable {\n\n\n export function cssSelectorForTableRowById(rowId: string) {\n return `tbody tr[aup-row-id=${rowId}]`;\n }\n\n export function cssSelectorForNthTableRow(rowNumber: number) {\n return `tbody tr:nth-child(${rowNumber})`;\n }\n\n export function cssSelectorForColumnCellRendererById(columnOrId: AupTableColumn<any> | string) {\n const columnId = _.isString(columnOrId) ? columnOrId : columnOrId.columnId;\n return `aup-table-cell-renderer[column-id=${columnId}]`;\n }\n\n export function cssSelectorForCell(rowId: string, columnOrId: string | AupTableColumn<any>) {\n return `${cssSelectorForTableRowById(rowId)} ${cssSelectorForColumnCellRendererById(columnOrId)}`;\n }\n\n}\n","/* tslint:disable:unified-signatures */\nimport { PageElement } from '../../page-element';\nimport { AupAbstractTable } from '../aup-abstract-table';\nimport { AupTableCell } from './aup-table-cell';\nimport { AupTableColumn } from './aup-table-column';\nimport { AupTableSelectionCell } from './aup-table-selection-cell';\nimport { AupTableSelectionColumn } from './aup-table-selection-column';\nimport Chainable = Cypress.Chainable;\n\nexport class AupTableRow extends PageElement<AupAbstractTable<any>> {\n\n rowId(): Chainable<string> {\n return this.dom()\n .invoke('attr', 'aup-row-id');\n }\n\n shouldHaveRowId(rowId: string) {\n this.rowId().should('eq', rowId);\n }\n\n cell(columnId: string): AupTableCell<this>\n cell(column: AupTableColumn<this>): AupTableCell<this>\n cell(column: AupTableSelectionColumn<this>): AupTableSelectionCell<this>\n cell(columnOrId: string | AupTableColumn<this>): AupTableCell<this> {\n const self = this;\n return new AupTableCell(this.parent, parent => {\n return self.rowId()\n .then(rowId => AupAbstractTable.cssSelectorForCell(rowId, columnOrId))\n .then(selector => parent.dom().find(selector));\n });\n }\n\n shouldBeSelected() {\n this.dom().should('have.class', 'aup-row-selected');\n }\n\n shouldNotBeSelected() {\n this.dom().should('not.have.class', 'aup-row-selected');\n }\n\n}\n","/* tslint:disable:unified-signatures */\nimport { ElementLocator } from '../element-locator';\nimport { AupAbstractTable } from './aup-abstract-table';\nimport { AupTableRow } from './table/aup-table-row';\n\nexport class AupTable extends AupAbstractTable<AupTableRow> {\n createRow(locator: ElementLocator): AupTableRow {\n return new AupTableRow(this, locator);\n }\n}\n","/* tslint:disable:unified-signatures */\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport { ElementLocator } from '../element-locator';\nimport { AupAbstractTable } from './aup-abstract-table';\nimport { AupTableColumn } from './table/aup-table-column';\nimport { AupTableRow } from './table/aup-table-row';\n\nexport class AupTreeTable extends AupAbstractTable<AupTreeTable.Row> {\n\n @Memoize()\n get treeControlColumn(): AupTreeTable.TreeControlColumn {\n return new AupTreeTable.TreeControlColumn(this, 'tree-label');\n }\n\n createRow(locator: ElementLocator): AupTreeTable.Row {\n return new AupTreeTable.Row(this, locator);\n }\n\n}\n\nexport namespace AupTreeTable {\n\n export class Row extends AupTableRow {\n shouldBeExpanded() {\n this.dom().should(\"not.have.class\", \"aup-node-collapsed\")\n }\n shouldBeCollapsed() {\n this.dom().should(\"have.class\", \"aup-node-collapsed\")\n }\n }\n\n export class TreeControlColumn extends AupTableColumn<Row> {\n }\n\n}\n","import { Constructable } from '@coolon/typescript-utilities';\nimport { PageElement } from '../page-element';\n\nexport function FormElementMixin<T, BC extends Constructable<PageElement>>(Base: BC) {\n return class extends Base {\n constructor(...args: any[]) {\n super(...args);\n }\n\n shouldBeDisabled() {\n this.should(\"be.disabled\");\n }\n\n };\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { FormElementMixin } from './form-element-mixin';\n\nexport class Button extends FormElementMixin(PageElement) {\n\n constructor(parentElementAccessor: PageElement, buttonText: string) {\n super(parentElementAccessor, ElementLocator.findBySelectorAndTextContent('button', buttonText));\n }\n\n}\n\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { FormElementMixin } from './form-element-mixin';\n\nexport class MatCheckbox extends FormElementMixin(PageElement) {\n\n constructor(parentElementAccessor: PageElement, text: string) {\n super(parentElementAccessor, ElementLocator.findBySelectorAndTextContent('mat-checkbox', text));\n }\n\n shouldBeChecked() {\n this.hiddenCheckBoxElement().should('be.checked');\n }\n\n shouldNotBeChecked() {\n this.hiddenCheckBoxElement().should('not.be.checked');\n }\n\n hiddenCheckBoxElement() {\n return this.dom().find('input[type=checkbox]');\n }\n\n check() {\n this.hiddenCheckBoxElement().then(el => {\n if (!el.prop('checked')) {\n this.click();\n this.shouldBeChecked();\n }\n });\n }\n\n uncheck() {\n this.hiddenCheckBoxElement().then(el => {\n if (el.prop('checked')) {\n this.click();\n this.shouldNotBeChecked();\n }\n })\n }\n\n}\n\n","import { E, T } from '@angular/cdk/keycodes';\nimport { Constructable } from '@coolon/pectin';\nimport { lang, Mixin as CreateMixin } from '@coolon/typescript-utilities';\nimport * as _ from 'lodash';\nimport { AupCommand } from './components/aup-command';\nimport { AupEmptyState } from './components/aup-empty-state';\nimport { AupInput } from './components/aup-input';\nimport { AupMoreMenu } from './components/popup/aup-more-menu';\nimport { AupNavigation } from './components/aup-navigation';\nimport { AupTable } from './components/aup-table';\nimport { AupTreeTable } from './components/aup-tree-table';\nimport { Button } from './components/button';\nimport { MatCheckbox } from './components/mat-checkbox';\nimport { Types } from './components/types';\nimport { ElementLocator } from './element-locator';\nimport { PageElement } from './page-element';\n\nexport class ComponentBuilder {\n\n constructor(readonly parentPageElement: PageElement) {\n }\n\n find(selector: string): PageElement {\n return new PageElement(this.parentPageElement, selector);\n }\n\n section<T extends object>(selector: string, builder: ComponentBuilder.ContainerCallback<T>): T & PageElement {\n return this.component(PageElement, selector, builder);\n }\n\n contains(text: string): PageElement {\n return new PageElement(this.parentPageElement, ElementLocator.findByTextContent(text));\n }\n\n button(text: string): Button {\n return new Button(this.parentPageElement, text);\n }\n\n matCheckbox(text: string): MatCheckbox {\n return new MatCheckbox(this.parentPageElement, text);\n }\n\n aupStringInput(selector?: string): AupInput<string> {\n return new AupInput.HtmlInput(this.parentPageElement, selector ?? 'aup-string-input');\n }\n\n aupTextInput(selector?: string): AupInput<string> {\n return new AupInput.TextAreaInput(this.parentPageElement, selector ?? 'aup-text-input');\n }\n\n aupPasswordInput(selector?: string): AupInput<string> {\n return new AupInput.HtmlInput(this.parentPageElement, selector ?? 'aup-password-input');\n }\n\n aupNumberInput(selector?: string): AupInput<number> {\n return new AupInput.HtmlInput(this.parentPageElement, selector ?? 'aup-number-input');\n }\n\n aupCommand(selector: string): AupCommand\n // tslint:disable-next-line:unified-signatures\n aupCommand(face: Types.CommandFace): AupCommand\n aupCommand(faceOrSelector: string | Types.CommandFace): AupCommand {\n return new AupCommand(this.parentPageElement, faceOrSelector);\n }\n\n aupTabbedNavigation<T extends object>(): AupNavigation {\n return new AupNavigation(this.parentPageElement, 'aup-tabbed-place-navigation');\n }\n\n aupSideNavigation<T extends object>(): AupNavigation {\n return new AupNavigation(this.parentPageElement, 'aup-list-place-nav');\n }\n\n aupMoreMenu<T extends object>(selector?: string): AupMoreMenu {\n return AupMoreMenu.create(this.parentPageElement, selector);\n }\n\n aupTable(selector?: string): AupTable\n aupTable<T extends object>(builder: ComponentBuilder.ContainerCallback<T, AupTable>): AupTable & T\n aupTable<T extends object>(selector: string, builder: ComponentBuilder.ContainerCallback<T, AupTable>): AupTable & T\n aupTable<T extends object>(selectorOrBuilder?: string | ComponentBuilder.ContainerCallback<T, AupTable>,\n optionalBuilder?: ComponentBuilder.ContainerCallback<T, AupTable>): AupTable & T {\n return this.component(AupTable, selectorOrBuilder, optionalBuilder);\n }\n\n aupTreeTable(selector?: string): AupTreeTable\n aupTreeTable<T extends object>(builder: ComponentBuilder.ContainerCallback<T, AupTreeTable>): AupTreeTable & T\n aupTreeTable<T extends object>(selector: string, builder: ComponentBuilder.ContainerCallback<T, AupTreeTable>): AupTreeTable & T\n aupTreeTable<T extends object>(selectorOrBuilder?: string | ComponentBuilder.ContainerCallback<T, AupTreeTable>,\n optionalBuilder?: ComponentBuilder.ContainerCallback<T, AupTreeTable>): AupTreeTable & T {\n return this.component(AupTreeTable, selectorOrBuilder, optionalBuilder);\n }\n\n aupEmptyState(selector?: string): AupEmptyState\n aupEmptyState<T extends object>(builder: ComponentBuilder.ContainerCallback<T, AupEmptyState>): AupEmptyState & T\n aupEmptyState<T extends object>(selector: string,\n builder: ComponentBuilder.ContainerCallback<T, AupEmptyState>): AupEmptyState & T\n aupEmptyState<T extends object>(selectorOrBuilder?: string | ComponentBuilder.ContainerCallback<T, AupEmptyState>,\n optionalBuilder?: ComponentBuilder.ContainerCallback<T, AupEmptyState>): AupEmptyState & T {\n return this.component(AupEmptyState, selectorOrBuilder, optionalBuilder);\n }\n\n component<E extends PageElement>(klass: Constructable<E>, selector: string): E\n component<T extends object, E extends PageElement>(klass: Constructable<E>, builder: ComponentBuilder.ContainerCallback<T, E>): E & T\n component<T extends object, E extends PageElement>(klass: Constructable<E>, selector: string, builder: ComponentBuilder.ContainerCallback<T, E>): E & T\n component<T extends object, E extends PageElement>(klass: Constructable<E>, selectorOrBuilder?: string | ComponentBuilder.ContainerCallback<T, E>, optionalBuilder?: ComponentBuilder.ContainerCallback<T, E>): E & T\n component<T extends object, E extends PageElement>(klass: Constructable<E>, selectorOrBuilder?: string | ComponentBuilder.ContainerCallback<T, E>, optionalBuilder?: ComponentBuilder.ContainerCallback<T, E>): E & T {\n\n const selector = _.isString(selectorOrBuilder) ? selectorOrBuilder : undefined;\n const builder = _.isFunction(selectorOrBuilder) ? selectorOrBuilder : optionalBuilder;\n\n const element = new klass(this.parentPageElement, selector);\n\n if (builder) {\n // create the B&E type that the builder has access to\n const decoratedElement = CreateMixin.createProxy(element, new ComponentBuilder(element));\n // create final type that has the E & T type\n return CreateMixin.createProxy(decoratedElement, builder(decoratedElement));\n } else {\n return element as E & T;\n }\n }\n\n}\n\n\nexport namespace ComponentBuilder {\n export type ElementCallback<T, E extends PageElement = PageElement> = (section: E) => T;\n export type ContainerCallback<T, E extends PageElement = PageElement, B extends ComponentBuilder = ComponentBuilder> = (section: B & E) => T;\n\n export interface HasBuilder {\n readonly builder: ComponentBuilder;\n }\n\n export function Mixin<T, BC extends Constructable<PageElement>>(Base: BC) {\n return class extends Base implements HasBuilder {\n readonly builder: ComponentBuilder;\n constructor(...args: any[]) {\n super(...args);\n this.builder = new ComponentBuilder(this);\n }\n };\n }\n\n}\n","import { ComponentBuilder } from '../component-builder';\nimport { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupCommand } from './aup-command';\n\nexport class AupAbstractActivity extends ComponentBuilder.Mixin(PageElement) {\n\n protected _confirmCommand: AupCommand;\n protected _cancelCommand: AupCommand;\n\n readonly title: PageElement;\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n // @ts-ignore\n super(parent, selector);\n this.title = this.find('aup-activity-title');\n this._confirmCommand = this.builder.aupCommand('[data-cy=confirm-command]');\n this._cancelCommand = this.builder.aupCommand('[data-cy=cancel-command]');\n }\n\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupAbstractActivity } from './aup-abstract-activity';\nimport { AupCommand } from './aup-command';\n\nexport class AupAlert extends AupAbstractActivity {\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n super(parent, selector);\n }\n\n get closeCommand(): AupCommand {\n return this._confirmCommand;\n }\n\n clickClose() {\n this.closeCommand.click();\n }\n\n}\n","import { Constructable } from '@coolon/pectin';\nimport { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\n\nexport function AupModalMixin<T, BC extends Constructable<PageElement>>(Base: BC) {\n return class extends Base {\n constructor(...args: any[]) {\n super(...args);\n }\n\n getDefaultElementLocator(): ElementLocator {\n return (parent: PageElement) => {\n return parent.dom().closest('body').find(this.getDefaultElementSelector());\n };\n }\n\n clickBackdrop() {\n this.dom()\n .closest(`.cdk-overlay-container`)\n .find(`.cdk-overlay-backdrop`).click(-50, -50, { force: true });\n }\n\n };\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupAlert } from './aup-alert';\nimport { AupModalMixin } from './aup-modal-mixin';\n\nexport class AupAlertDialog extends AupModalMixin(AupAlert) {\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n super(parent, selector);\n }\n\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupAbstractActivity } from './aup-abstract-activity';\nimport { AupCommand } from './aup-command';\n\nexport class AupConfirm extends AupAbstractActivity {\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n super(parent, selector);\n }\n\n get confirmCommand(): AupCommand {\n return this._confirmCommand;\n }\n\n clickConfirm() {\n this.confirmCommand.click();\n }\n\n get cancelCommand(): AupCommand {\n return this._cancelCommand;\n }\n\n clickCancel() {\n this.cancelCommand.click();\n }\n\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupAlert } from './aup-alert';\nimport { AupConfirm } from './aup-confirm';\nimport { AupModalMixin } from './aup-modal-mixin';\n\nexport class AupConfirmDialog extends AupModalMixin(AupConfirm) {\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n super(parent, selector);\n }\n\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupAbstractActivity } from './aup-abstract-activity';\nimport { AupCommand } from './aup-command';\n\nexport class AupActivity extends AupAbstractActivity {\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n super(parent, selector);\n }\n\n get confirmCommand(): AupCommand {\n return this._confirmCommand;\n }\n\n get cancelCommand(): AupCommand {\n return this._cancelCommand;\n }\n\n}\n","import { AupActivity } from './aup-activity';\nimport { AupModalMixin } from './aup-modal-mixin';\n\nexport class AupModalActivity extends AupModalMixin(AupActivity) {\n\n}\n","import { ComponentBuilder } from './component-builder';\nimport { AupAlertDialog } from './components/aup-alert-dialog';\nimport { AupConfirmDialog } from './components/aup-confirm-dialog';\nimport { AupModalActivity } from './components/aup-modal-activity';\n\nexport class PageBuilder extends ComponentBuilder {\n\n\n aupModalActivity<T extends object>(selector: string, builder: ComponentBuilder.ContainerCallback<T, AupModalActivity>): T & AupModalActivity {\n return this.component(AupModalActivity, selector, builder);\n }\n\n aupModalAlert<T extends object>(builder?: ComponentBuilder.ContainerCallback<T, AupAlertDialog>): T & AupAlertDialog {\n return this.component(AupAlertDialog, builder);\n }\n\n aupModelConfirm<T extends object>(builder?: ComponentBuilder.ContainerCallback<T, AupConfirmDialog>): T & AupConfirmDialog {\n return this.component(AupConfirmDialog, builder);\n }\n}\n","import { DefaultUrlSerializer, UrlSerializer } from '@angular/router';\n\nlet urlSerialiser: UrlSerializer = new DefaultUrlSerializer();\n\nexport class Path {\n\n constructor(readonly segments: Path.Segment[]) {\n }\n\n static extractVisitParameters(url: string): object {\n let result = {};\n const urlTree = urlSerialiser.parse(url);\n const urlSegments = urlTree.root.children.primary?.segments ?? [];\n urlSegments?.forEach(s => {\n result = { ...result, ...s.parameters }\n });\n return result;\n }\n\n toUrl(matrixParams: object): string {\n return this.segments.map(s => s.toUrlPart(matrixParams)).join('/');\n }\n\n}\n\nexport namespace Path {\n\n export function setUrlSerialiser(serialiser: UrlSerializer) {\n urlSerialiser = serialiser;\n }\n\n export class Segment {\n\n private routeId: string | undefined;\n private visitParams: string[];\n\n constructor(readonly path: string, params: SegmentParams = {}) {\n this.routeId = params?.routeId;\n this.visitParams = params?.visitParams ?? [];\n }\n\n toUrlPart(params: object) {\n let path: string = this.path;\n this.visitParams.forEach(p => {\n const value = params[p];\n if (value) {\n path = `${path};${p}=${value}`;\n }\n });\n if (this.routeId && params[this.routeId]) {\n path = path + '/' + params[this.routeId];\n }\n return path;\n }\n\n }\n\n export class Builder {\n\n private segments: Segment[] = [];\n\n segment(name: string, params?: SegmentParams): this {\n const builder = new Segment(name, params);\n this.segments.push(builder);\n return this;\n }\n\n getPath(): Path {\n return new Path(this.segments);\n }\n }\n\n export interface SegmentParams {\n routeId?: string;\n visitParams?: string[]\n }\n}\n","import { Mixin } from '@coolon/typescript-utilities';\nimport * as _ from 'lodash';\nimport { ComponentBuilder } from './component-builder';\nimport { PageBuilder } from './page-builder';\nimport { PageElement } from './page-element';\nimport { Path } from './path';\n\nexport class Page extends PageElement {\n\n protected rootElementSelector = 'body';\n\n constructor(readonly path: Path) {\n super(undefined, undefined);\n }\n\n dom(): Cypress.Chainable<JQuery<HTMLElement>> {\n return cy.get(this.rootElementSelector);\n }\n\n visit(visitParams?: object, queryParams?: { [key: string]: string }) {\n this.tryAndVisit(visitParams, queryParams);\n this.shouldBeActive(visitParams);\n }\n\n tryAndVisit(params?: object, queryParams?: { [key: string]: string }) {\n const path = this.path.toUrl(params ?? {});\n const queryString = queryParams ? `?${new URLSearchParams(queryParams).toString()}` : '';\n cy.visit(`/${path}${queryString}`);\n }\n\n shouldHaveActivityIds(...ids: string[]) {\n cy.location('search').should('contain', `?aup-interactions=${ids.join('--')}`);\n }\n\n shouldNotHaveActivityIds() {\n cy.location('search').should('not.contain', `?aup-interactions`);\n }\n\n shouldHaveTitle(title: string) {\n cy.title().should('eq', title);\n }\n\n shouldBeActive(withParameters?: object) {\n // Note: cy.window() doesn't return a promise... it's a chainable.\n cy['waitUntil'](() => {\n return cy.window().then(window => {\n return window['aup.PlaceRouter'] && !window['aup.PlaceRouter'].isNavigating();\n });\n });\n\n if (withParameters) {\n cy.location('pathname').then(path => {\n const urlParams = Path.extractVisitParameters(path);\n Object.keys(withParameters).forEach(param => {\n const expected = withParameters[param];\n // @ts-ignore\n expect(urlParams[param]).to.equal(expected);\n });\n });\n }\n }\n\n}\n\n\nexport namespace Page {\n\n export function create<T extends object>(path: string, builder: ComponentBuilder.ContainerCallback<T, Page, PageBuilder>): T & Page\n // tslint:disable-next-line:unified-signatures\n export function create<T extends object>(pathBuilder: ((pathBuilder: Path.Builder) => void), builder: ComponentBuilder.ContainerCallback<T, Page, PageBuilder>): T & Page\n export function create<T extends object>(pathOrPathBuilder: string | ((pathBuilder: Path.Builder) => void), builder: ComponentBuilder.ContainerCallback<T, Page, PageBuilder>): T & Page {\n const pathBuilder = new Path.Builder();\n if (_.isString(pathOrPathBuilder)) {\n pathOrPathBuilder.split('/').filter(p => !_.isEmpty(p)).forEach(p => pathBuilder.segment(p));\n } else {\n pathOrPathBuilder(pathBuilder);\n }\n const instance = new Page(pathBuilder.getPath());\n const content = builder.call(instance, new PageBuilder(instance));\n return Mixin.createProxy(content, instance) as T & Page;\n }\n}\n","import { PageElement } from '../page-element';\n\nexport class AupCommandGroup extends PageElement {\n\n}\n","\nimport { PageElement } from '../page-element';\nimport { Types } from './types';\n\nexport class AupToolBar extends PageElement {\n\n static create(parent: PageElement, face: Types.CommandFace) {\n // const findFace = AupCommandFace.createFinder(() => parent.element(), face)\n // return new AupCommandGroup(() => findFace().closest('button'));\n }\n}\n","import { lang } from '@coolon/typescript-utilities';\nimport { PageElement } from '../../page-element';\nimport { AupCommandFace } from '../aup-command-face';\nimport { Types } from '../types';\nimport { AupAbstractPopupMenu } from './aup-abstract-popup-menu';\n\nexport class AupPopupMenu extends AupAbstractPopupMenu {\n\n constructor(parentElementAccessor: PageElement, face: Types.CommandFace) {\n const locator = AupCommandFace.createElementLocator(face)\n super(parentElementAccessor, parent => locator(parent).closest('button'));\n }\n\n static create(parent: PageElement, face: Types.CommandFace) {\n return new AupPopupMenu(parent, face);\n }\n}\n","import { AupTableCell } from './aup-table-cell';\nimport { AupTableRow } from './aup-table-row';\n\nexport class AupTableSelectionCell<TR extends AupTableRow> extends AupTableCell<TR> {\n selectAll() {\n }\n}\n","/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./component-builder\";\nexport * from \"./element-locator\";\nexport * from \"./page-builder\";\nexport * from \"./page-element\";\nexport * from \"./page\";\nexport * from \"./path\";\nexport * from \"./components/aup-abstract-activity\";\nexport * from \"./components/aup-abstract-table\";\nexport * from \"./components/aup-activity\";\nexport * from \"./components/aup-alert-dialog\";\nexport * from \"./components/aup-alert\";\nexport * from \"./components/aup-command-face\";\nexport * from \"./components/aup-command-group\";\nexport * from \"./components/aup-command\";\nexport * from \"./components/aup-confirm-dialog\";\nexport * from \"./components/aup-confirm\";\nexport * from \"./components/aup-empty-state\";\nexport * from \"./components/aup-input\";\nexport * from \"./components/aup-modal-activity\";\nexport * from \"./components/aup-modal-mixin\";\nexport * from \"./components/aup-navigation\";\nexport * from \"./components/aup-table\";\nexport * from \"./components/aup-tool-bar\";\nexport * from \"./components/aup-tree-table\";\nexport * from \"./components/button\";\nexport * from \"./components/form-element-mixin\";\nexport * from \"./components/mat-checkbox\";\nexport * from \"./components/types\";\nexport * from \"./components/popup/aup-abstract-popup-menu\";\nexport * from \"./components/popup/aup-more-menu\";\nexport * from \"./components/popup/aup-popup-menu-panel\";\nexport * from \"./components/popup/aup-popup-menu\";\nexport * from \"./components/table/aup-table-cell\";\nexport * from \"./components/table/aup-table-column\";\nexport * from \"./components/table/aup-table-row\";\nexport * from \"./components/table/aup-table-selection-cell\";\nexport * from \"./components/table/aup-table-selection-column\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './exports';\n\nexport {Types as ɵa} from './components/types';"],"names":["CreateMixin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coolon-angular-ui-powerups-cypress.js","sources":["../../../../libs/angular-ui-powerups/cypress/src/element-locator.ts","../../../../libs/angular-ui-powerups/cypress/src/page-element.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command-face.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-empty-state.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-input.ts","../../../../libs/angular-ui-powerups/cypress/src/components/popup/aup-popup-menu-panel.ts","../../../../libs/angular-ui-powerups/cypress/src/components/popup/aup-abstract-popup-menu.ts","../../../../libs/angular-ui-powerups/cypress/src/components/popup/aup-more-menu.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-navigation.ts","../../../../libs/angular-ui-powerups/cypress/src/components/table/aup-table-cell.ts","../../../../libs/angular-ui-powerups/cypress/src/components/table/aup-table-column.ts","../../../../libs/angular-ui-powerups/cypress/src/components/table/aup-table-selection-column.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-abstract-table.ts","../../../../libs/angular-ui-powerups/cypress/src/components/table/aup-table-row.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-table.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-tree-table.ts","../../../../libs/angular-ui-powerups/cypress/src/components/form-element-mixin.ts","../../../../libs/angular-ui-powerups/cypress/src/components/button.ts","../../../../libs/angular-ui-powerups/cypress/src/components/mat-checkbox.ts","../../../../libs/angular-ui-powerups/cypress/src/component-builder.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-abstract-activity.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-alert.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-modal-mixin.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-alert-dialog.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-confirm.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-confirm-dialog.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-activity.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-modal-activity.ts","../../../../libs/angular-ui-powerups/cypress/src/page-builder.ts","../../../../libs/angular-ui-powerups/cypress/src/path.ts","../../../../libs/angular-ui-powerups/cypress/src/page.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command-group.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-tool-bar.ts","../../../../libs/angular-ui-powerups/cypress/src/components/popup/aup-popup-menu.ts","../../../../libs/angular-ui-powerups/cypress/src/components/table/aup-table-selection-cell.ts","../../../../libs/angular-ui-powerups/cypress/src/exports.ts","../../../../libs/angular-ui-powerups/cypress/src/coolon-angular-ui-powerups-cypress.ts"],"sourcesContent":["import { PageElement } from './page-element';\n\nexport type ElementLocator = (parent: PageElement) => Cypress.Chainable<JQuery>;\n\nexport namespace ElementLocator {\n\n export function findByCssSelector(selector: string): ElementLocator {\n return parent => parent.dom().find(selector)\n }\n\n export function findByTextContent(text: string): ElementLocator {\n return parent => parent.dom().contains(text);\n }\n\n export function findBySelectorAndTextContent(selector: string, text: string): ElementLocator {\n return parent => parent.dom().contains(selector, text);\n }\n\n}\n","/* tslint:disable:unified-signatures */\nimport Chainable = Cypress.Chainable;\nimport { Stringy } from '@coolon/typescript-utilities';\nimport * as _ from 'lodash';\nimport { ElementLocator } from './element-locator';\n\nexport class PageElement<P extends PageElement<any> = PageElement<any>> {\n\n readonly domElementLocator: ElementLocator;\n\n constructor(parent: P, selector?: string)\n constructor(parent: P, locator?: ElementLocator)\n constructor(parent: P, selectorOrLocator?: string | ElementLocator)\n constructor(readonly parent: P, selectorOrLocator?: string | ElementLocator) {\n this.domElementLocator = _.isNil(selectorOrLocator) ?\n this.getDefaultElementLocator() :\n _.isString(selectorOrLocator) ?\n ElementLocator.findByCssSelector(selectorOrLocator) :\n selectorOrLocator;\n }\n\n getDefaultElementLocator(): ElementLocator {\n return ElementLocator.findByCssSelector(this.getDefaultElementSelector());\n }\n\n getDefaultElementSelector() {\n return Stringy.from(this.constructor.name).dasherize().toString();\n }\n\n dom(): Chainable<JQuery> {\n return this.domElementLocator(this.parent);\n }\n\n find(selector: string): PageElement {\n return new PageElement(this, selector);\n }\n\n click(text?: string) {\n text ? this.dom().contains(text).click() : this.dom().click();\n }\n\n get should() {\n return this.getShoulder(this.getShouldElement());\n }\n\n getShoulder(element: Chainable<JQuery>) {\n return element.should.bind(element);\n }\n\n getShouldElement(): Chainable<JQuery> {\n return this.dom();\n }\n\n shouldBeVisible() {\n this.should('be.visible');\n }\n\n shouldNotBeVisible() {\n this.should('not.be.visible');\n }\n\n shouldExist() {\n this.dom().should('exist');\n }\n\n shouldNotExist() {\n this.dom().should('not.exist');\n }\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { Types } from './types';\n\nexport class AupCommandFace extends PageElement {\n\n constructor(parentElement: PageElement, face: Types.CommandFace) {\n super(parentElement, AupCommandFace.createElementLocator(face));\n }\n\n static createElementLocator(face: Types.CommandFace): ElementLocator {\n const locator = parent => {\n return face.text ?\n parent.dom().contains(`aup-command-face`, face.text()) :\n face.icon ?\n parent.dom().find(`aup-icon[ng-reflect-icon=${face.icon()}]`).closest('aup-command-face') :\n undefined;\n\n };\n // aot compiler doesn't like lambas\n return locator;\n }\n}\n\n","import { PageElement } from '../page-element';\nimport { AupCommandFace } from './aup-command-face';\nimport { Types } from './types';\nimport * as _ from 'lodash';\n\nexport class AupCommand extends PageElement {\n\n constructor(parent: PageElement, faceOrSelector: string | Types.CommandFace) {\n super(parent, parentElement => {\n if (_.isString(faceOrSelector)) {\n return parentElement.dom().find(faceOrSelector);\n } else {\n return AupCommandFace.createElementLocator(faceOrSelector)(parentElement).closest('aup-command');\n }\n });\n }\n\n click() {\n this.getButton().click();\n }\n\n getShouldElement(): Cypress.Chainable<JQuery> {\n return this.getButton();\n }\n\n shouldBeDisabled() {\n this.getButton().should('be.disabled');\n }\n\n shouldBeEnabled() {\n this.getButton().should('not.be.disabled');\n }\n\n private getButton() {\n return this.dom().find('button');\n }\n\n}\n\n","import { PageElement } from '../page-element';\n\nexport class AupEmptyState extends PageElement {\n\n shouldContainText(text:string) {\n this.dom().should(\"contain.text\", text)\n }\n}\n","import { PageElement } from '../page-element';\nimport Chainable = Cypress.Chainable;\n\nexport abstract class AupInput<T> extends PageElement {\n\n label() {\n return this.dom().find('label');\n }\n\n hint() {\n return this.dom().find('mat-hint');\n }\n\n error() {\n return this.dom().find('mat-error');\n }\n\n get labelShould() {\n return this.getShoulder(this.label())\n }\n\n get hintShould() {\n return this.getShoulder(this.hint());\n }\n\n get errorShould() {\n return this.getShoulder(this.error());\n }\n\n labelShouldBe(text: string) {\n return this.labelShould(\"have.text\", text);\n }\n\n hintShouldBe(text: string) {\n return this.hintShould(\"have.text\", text);\n }\n\n errorShouldBe(text: string) {\n return this.errorShould(\"have.text\", text);\n }\n\n shouldBeFocused() {\n this.input().should(\"have.focus\");\n }\n\n shouldNotBeFocused() {\n this.input().should(\"not.have.focus\");\n }\n\n type(characters:string) {\n this.input().type(characters);\n }\n\n hitEnter() {\n this.type(\"{enter}\")\n }\n\n abstract input(): Chainable<JQuery>\n abstract clear();\n abstract setValue(value: T);\n\n}\n\nexport namespace AupInput {\n export class HtmlInput<T> extends AupInput<T> {\n input() {\n return this.dom().find('input');\n }\n\n clear() {\n this.input().clear();\n }\n\n setValue(value: T) {\n const input = this.input();\n input.clear();\n input.type(`${value}`);\n this.input().should('have.value', `${value}`);\n }\n\n getShouldElement(): Cypress.Chainable<JQuery> {\n return this.input();\n }\n\n }\n\n export class TextAreaInput<T> extends AupInput<T> {\n\n getShouldElement(): Cypress.Chainable<JQuery> {\n return this.input();\n }\n\n input() {\n return this.dom().find('textarea');\n }\n\n clear() {\n this.input().clear();\n }\n\n setValue(value: T) {\n const input = this.input();\n input.clear();\n input.type(`${value}`);\n this.input().should('have.value', value);\n }\n }\n\n}\n","import { PageElement } from '../../page-element';\n\nexport class AupPopupMenuPanel extends PageElement {\n\n}\n","import { ElementLocator } from '../../element-locator';\nimport { PageElement } from '../../page-element';\nimport { AupPopupMenuPanel } from './aup-popup-menu-panel';\n\nexport class AupAbstractPopupMenu extends PageElement {\n\n private popup: AupPopupMenuPanel;\n\n constructor(parent: PageElement, locator: ElementLocator) {\n super(parent, locator);\n this.popup = new AupPopupMenuPanel(this, p => this.findPopupIn(p));\n }\n\n protected findPopupIn(p: PageElement) {\n return this.getOverlay().find('.mat-menu-panel');\n }\n\n protected getOverlay() {\n return this.dom().closest('body').find('.cdk-overlay-container');\n }\n\n protected getBackdrop() {\n return this.getOverlay().find('.cdk-overlay-backdrop');\n }\n\n openPopup(): AupPopupMenuPanel {\n this.shouldNotBeOpen();\n this.click();\n return this.popup;\n }\n\n closePopup() {\n this.shouldBeOpen();\n this.getBackdrop().click();\n }\n\n shouldBeOpen() {\n this.popup.shouldBeVisible();\n }\n\n shouldNotBeOpen() {\n this.dom().closest('body').find('.mat-menu-panel').should(\"not.exist\");\n }\n\n\n}\n","import { ElementLocator } from '../../element-locator';\nimport { PageElement } from '../../page-element';\nimport { AupAbstractPopupMenu } from './aup-abstract-popup-menu';\n\nexport class AupMoreMenu extends AupAbstractPopupMenu {\n\n static create(parent: PageElement, selector?: string) {\n return new AupMoreMenu(parent, ElementLocator.findByCssSelector(selector ?? 'aup-more-menu'));\n }\n}\n","import { PageElement } from '../page-element';\nimport { AupCommandFace } from './aup-command-face';\n\nexport class AupNavigation extends PageElement {\n\n click(label: string) {\n return super.click(label);\n }\n\n face(label: string): AupCommandFace {\n return new AupCommandFace(this, { text: () => label });\n }\n\n shouldHaveLink(label: string) {\n this.face(label).shouldBeVisible();\n }\n\n shouldNotHaveLink(label: string) {\n this.face(label).shouldNotExist();\n }\n}\n","import { PageElement } from '../../page-element';\nimport { AupAbstractTable } from '../aup-abstract-table';\nimport { AupTableRow } from './aup-table-row';\nimport Chainable = Cypress.Chainable;\n\nexport class AupTableCell<TR extends AupTableRow> extends PageElement<AupAbstractTable<TR>> {\n\n rowId(): Chainable<string> {\n return this.dom().closest('tr').invoke('attr', 'aup-row-id');\n }\n\n row(): TR {\n const self = this;\n return this.parent.createRow(parent => {\n return self.rowId().then(rowId => parent.dom().find(AupAbstractTable.cssSelectorForTableRowById(rowId)));\n });\n }\n}\n","import { PageElement } from '../../page-element';\nimport { AupAbstractTable } from '../aup-abstract-table';\nimport { AupTableCell } from './aup-table-cell';\nimport { AupTableRow } from './aup-table-row';\n\nexport class AupTableColumn<TR extends AupTableRow> extends PageElement<AupAbstractTable<TR>> {\n\n constructor(table: AupAbstractTable<any>, readonly columnId: string) {\n super(table, AupAbstractTable.cssSelectorForColumnCellRendererById(columnId));\n }\n\n cellContaining(content: string): AupTableCell<TR> {\n const self = this;\n return new AupTableCell(this.parent,parent => {\n return parent.dom().contains(AupAbstractTable.cssSelectorForColumnCellRendererById(self.columnId), content);\n });\n }\n\n rowContaining(content: string): TR {\n return this.cellContaining(content).row();\n }\n}\n","import { AupTableColumn } from './aup-table-column';\nimport { AupTableRow } from './aup-table-row';\n\nexport class AupTableSelectionColumn<TR extends AupTableRow> extends AupTableColumn<TR> {\n selectAll() {\n }\n}\n","/* tslint:disable:unified-signatures */\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport * as _ from 'lodash';\nimport { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupTableColumn } from './table/aup-table-column';\nimport { AupTableRow } from './table/aup-table-row';\nimport { AupTableSelectionColumn } from './table/aup-table-selection-column';\n\nexport abstract class AupAbstractTable<TR extends AupTableRow> extends PageElement {\n\n row(rowId: any): TR {\n return this.createRow(parent => {\n return parent.dom().find(AupAbstractTable.cssSelectorForTableRowById(rowId));\n });\n }\n\n rowNumber(rowNumber: number): TR {\n return this.createRow(parent => {\n return parent.dom().find(AupAbstractTable.cssSelectorForNthTableRow(rowNumber));\n });\n }\n\n column(columnId: string): AupTableColumn<TR> {\n return new AupTableColumn(this, columnId);\n }\n\n @Memoize()\n get selectionColumn(): AupTableSelectionColumn<TR> {\n return new AupTableSelectionColumn(this, 'selection-column');\n }\n\n abstract createRow(locator: ElementLocator): TR\n\n}\n\nexport namespace AupAbstractTable {\n\n\n export function cssSelectorForTableRowById(rowId: string) {\n return `tbody tr[aup-row-id=${rowId}]`;\n }\n\n export function cssSelectorForNthTableRow(rowNumber: number) {\n return `tbody tr:nth-child(${rowNumber})`;\n }\n\n export function cssSelectorForColumnCellRendererById(columnOrId: AupTableColumn<any> | string) {\n const columnId = _.isString(columnOrId) ? columnOrId : columnOrId.columnId;\n return `aup-table-cell-renderer[column-id=${columnId}]`;\n }\n\n export function cssSelectorForCell(rowId: string, columnOrId: string | AupTableColumn<any>) {\n return `${cssSelectorForTableRowById(rowId)} ${cssSelectorForColumnCellRendererById(columnOrId)}`;\n }\n\n}\n","/* tslint:disable:unified-signatures */\nimport { PageElement } from '../../page-element';\nimport { AupAbstractTable } from '../aup-abstract-table';\nimport { AupTableCell } from './aup-table-cell';\nimport { AupTableColumn } from './aup-table-column';\nimport { AupTableSelectionCell } from './aup-table-selection-cell';\nimport { AupTableSelectionColumn } from './aup-table-selection-column';\nimport Chainable = Cypress.Chainable;\n\nexport class AupTableRow extends PageElement<AupAbstractTable<any>> {\n\n rowId(): Chainable<string> {\n return this.dom()\n .invoke('attr', 'aup-row-id');\n }\n\n shouldHaveRowId(rowId: string) {\n this.rowId().should('eq', rowId);\n }\n\n cell(columnId: string): AupTableCell<this>\n cell(column: AupTableColumn<this>): AupTableCell<this>\n cell(column: AupTableSelectionColumn<this>): AupTableSelectionCell<this>\n cell(columnOrId: string | AupTableColumn<this>): AupTableCell<this> {\n const self = this;\n return new AupTableCell(this.parent, parent => {\n return self.rowId()\n .then(rowId => AupAbstractTable.cssSelectorForCell(rowId, columnOrId))\n .then(selector => parent.dom().find(selector));\n });\n }\n\n shouldBeSelected() {\n this.dom().should('have.class', 'aup-row-selected');\n }\n\n shouldNotBeSelected() {\n this.dom().should('not.have.class', 'aup-row-selected');\n }\n\n}\n","/* tslint:disable:unified-signatures */\nimport { ElementLocator } from '../element-locator';\nimport { AupAbstractTable } from './aup-abstract-table';\nimport { AupTableRow } from './table/aup-table-row';\n\nexport class AupTable extends AupAbstractTable<AupTableRow> {\n createRow(locator: ElementLocator): AupTableRow {\n return new AupTableRow(this, locator);\n }\n}\n","/* tslint:disable:unified-signatures */\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport { ElementLocator } from '../element-locator';\nimport { AupAbstractTable } from './aup-abstract-table';\nimport { AupTableColumn } from './table/aup-table-column';\nimport { AupTableRow } from './table/aup-table-row';\n\nexport class AupTreeTable extends AupAbstractTable<AupTreeTable.Row> {\n\n @Memoize()\n get treeControlColumn(): AupTreeTable.TreeControlColumn {\n return new AupTreeTable.TreeControlColumn(this, 'tree-label');\n }\n\n createRow(locator: ElementLocator): AupTreeTable.Row {\n return new AupTreeTable.Row(this, locator);\n }\n\n}\n\nexport namespace AupTreeTable {\n\n export class Row extends AupTableRow {\n shouldBeExpanded() {\n this.dom().should(\"not.have.class\", \"aup-node-collapsed\")\n }\n shouldBeCollapsed() {\n this.dom().should(\"have.class\", \"aup-node-collapsed\")\n }\n }\n\n export class TreeControlColumn extends AupTableColumn<Row> {\n }\n\n}\n","import { Constructable } from '@coolon/typescript-utilities';\nimport { PageElement } from '../page-element';\n\nexport function FormElementMixin<T, BC extends Constructable<PageElement>>(Base: BC) {\n return class extends Base {\n constructor(...args: any[]) {\n super(...args);\n }\n\n shouldBeDisabled() {\n this.should(\"be.disabled\");\n }\n\n };\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { FormElementMixin } from './form-element-mixin';\n\nexport class Button extends FormElementMixin(PageElement) {\n\n constructor(parentElementAccessor: PageElement, buttonText: string) {\n super(parentElementAccessor, ElementLocator.findBySelectorAndTextContent('button', buttonText));\n }\n\n}\n\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { FormElementMixin } from './form-element-mixin';\n\nexport class MatCheckbox extends FormElementMixin(PageElement) {\n\n constructor(parentElementAccessor: PageElement, text: string) {\n super(parentElementAccessor, ElementLocator.findBySelectorAndTextContent('mat-checkbox', text));\n }\n\n shouldBeChecked() {\n this.hiddenCheckBoxElement().should('be.checked');\n }\n\n shouldNotBeChecked() {\n this.hiddenCheckBoxElement().should('not.be.checked');\n }\n\n hiddenCheckBoxElement() {\n return this.dom().find('input[type=checkbox]');\n }\n\n check() {\n this.hiddenCheckBoxElement().then(el => {\n if (!el.prop('checked')) {\n this.click();\n this.shouldBeChecked();\n }\n });\n }\n\n uncheck() {\n this.hiddenCheckBoxElement().then(el => {\n if (el.prop('checked')) {\n this.click();\n this.shouldNotBeChecked();\n }\n })\n }\n\n}\n\n","import { E, T } from '@angular/cdk/keycodes';\nimport { Constructable } from '@coolon/pectin';\nimport { lang, Mixin as CreateMixin } from '@coolon/typescript-utilities';\nimport * as _ from 'lodash';\nimport { AupCommand } from './components/aup-command';\nimport { AupEmptyState } from './components/aup-empty-state';\nimport { AupInput } from './components/aup-input';\nimport { AupMoreMenu } from './components/popup/aup-more-menu';\nimport { AupNavigation } from './components/aup-navigation';\nimport { AupTable } from './components/aup-table';\nimport { AupTreeTable } from './components/aup-tree-table';\nimport { Button } from './components/button';\nimport { MatCheckbox } from './components/mat-checkbox';\nimport { Types } from './components/types';\nimport { ElementLocator } from './element-locator';\nimport { PageElement } from './page-element';\n\nexport class ComponentBuilder {\n\n constructor(readonly parentPageElement: PageElement) {\n }\n\n find(selector: string): PageElement {\n return new PageElement(this.parentPageElement, selector);\n }\n\n section<T extends object>(selector: string, builder: ComponentBuilder.ContainerCallback<T>): T & PageElement {\n return this.component(PageElement, selector, builder);\n }\n\n contains(text: string): PageElement {\n return new PageElement(this.parentPageElement, ElementLocator.findByTextContent(text));\n }\n\n button(text: string): Button {\n return new Button(this.parentPageElement, text);\n }\n\n matCheckbox(text: string): MatCheckbox {\n return new MatCheckbox(this.parentPageElement, text);\n }\n\n aupStringInput(selector?: string): AupInput<string> {\n return new AupInput.HtmlInput(this.parentPageElement, selector ?? 'aup-string-input');\n }\n\n aupTextInput(selector?: string): AupInput<string> {\n return new AupInput.TextAreaInput(this.parentPageElement, selector ?? 'aup-text-input');\n }\n\n aupPasswordInput(selector?: string): AupInput<string> {\n return new AupInput.HtmlInput(this.parentPageElement, selector ?? 'aup-password-input');\n }\n\n aupNumberInput(selector?: string): AupInput<number> {\n return new AupInput.HtmlInput(this.parentPageElement, selector ?? 'aup-number-input');\n }\n\n aupCommand(selector: string): AupCommand\n // tslint:disable-next-line:unified-signatures\n aupCommand(face: Types.CommandFace): AupCommand\n aupCommand(faceOrSelector: string | Types.CommandFace): AupCommand {\n return new AupCommand(this.parentPageElement, faceOrSelector);\n }\n\n aupTabbedNavigation<T extends object>(): AupNavigation {\n return new AupNavigation(this.parentPageElement, 'aup-tabbed-place-navigation');\n }\n\n aupSideNavigation<T extends object>(): AupNavigation {\n return new AupNavigation(this.parentPageElement, 'aup-list-place-nav');\n }\n\n aupMoreMenu<T extends object>(selector?: string): AupMoreMenu {\n return AupMoreMenu.create(this.parentPageElement, selector);\n }\n\n aupTable(selector?: string): AupTable\n aupTable<T extends object>(builder: ComponentBuilder.ContainerCallback<T, AupTable>): AupTable & T\n aupTable<T extends object>(selector: string, builder: ComponentBuilder.ContainerCallback<T, AupTable>): AupTable & T\n aupTable<T extends object>(selectorOrBuilder?: string | ComponentBuilder.ContainerCallback<T, AupTable>,\n optionalBuilder?: ComponentBuilder.ContainerCallback<T, AupTable>): AupTable & T {\n return this.component(AupTable, selectorOrBuilder, optionalBuilder);\n }\n\n aupTreeTable(selector?: string): AupTreeTable\n aupTreeTable<T extends object>(builder: ComponentBuilder.ContainerCallback<T, AupTreeTable>): AupTreeTable & T\n aupTreeTable<T extends object>(selector: string, builder: ComponentBuilder.ContainerCallback<T, AupTreeTable>): AupTreeTable & T\n aupTreeTable<T extends object>(selectorOrBuilder?: string | ComponentBuilder.ContainerCallback<T, AupTreeTable>,\n optionalBuilder?: ComponentBuilder.ContainerCallback<T, AupTreeTable>): AupTreeTable & T {\n return this.component(AupTreeTable, selectorOrBuilder, optionalBuilder);\n }\n\n aupEmptyState(selector?: string): AupEmptyState\n aupEmptyState<T extends object>(builder: ComponentBuilder.ContainerCallback<T, AupEmptyState>): AupEmptyState & T\n aupEmptyState<T extends object>(selector: string,\n builder: ComponentBuilder.ContainerCallback<T, AupEmptyState>): AupEmptyState & T\n aupEmptyState<T extends object>(selectorOrBuilder?: string | ComponentBuilder.ContainerCallback<T, AupEmptyState>,\n optionalBuilder?: ComponentBuilder.ContainerCallback<T, AupEmptyState>): AupEmptyState & T {\n return this.component(AupEmptyState, selectorOrBuilder, optionalBuilder);\n }\n\n component<E extends PageElement>(klass: Constructable<E>, selector: string): E\n component<T extends object, E extends PageElement>(klass: Constructable<E>, builder: ComponentBuilder.ContainerCallback<T, E>): E & T\n component<T extends object, E extends PageElement>(klass: Constructable<E>, selector: string, builder: ComponentBuilder.ContainerCallback<T, E>): E & T\n component<T extends object, E extends PageElement>(klass: Constructable<E>, selectorOrBuilder?: string | ComponentBuilder.ContainerCallback<T, E>, optionalBuilder?: ComponentBuilder.ContainerCallback<T, E>): E & T\n component<T extends object, E extends PageElement>(klass: Constructable<E>, selectorOrBuilder?: string | ComponentBuilder.ContainerCallback<T, E>, optionalBuilder?: ComponentBuilder.ContainerCallback<T, E>): E & T {\n\n const selector = _.isString(selectorOrBuilder) ? selectorOrBuilder : undefined;\n const builder = _.isFunction(selectorOrBuilder) ? selectorOrBuilder : optionalBuilder;\n\n const element = new klass(this.parentPageElement, selector);\n\n if (builder) {\n // create the B&E type that the builder has access to\n const decoratedElement = CreateMixin.createProxy(element, new ComponentBuilder(element));\n // create final type that has the E & T type\n return CreateMixin.createProxy(decoratedElement, builder(decoratedElement));\n } else {\n return element as E & T;\n }\n }\n\n}\n\n\nexport namespace ComponentBuilder {\n export type ElementCallback<T, E extends PageElement = PageElement> = (section: E) => T;\n export type ContainerCallback<T, E extends PageElement = PageElement, B extends ComponentBuilder = ComponentBuilder> = (section: B & E) => T;\n\n export interface HasBuilder {\n readonly builder: ComponentBuilder;\n }\n\n export function Mixin<T, BC extends Constructable<PageElement>>(Base: BC) {\n return class extends Base implements HasBuilder {\n readonly builder: ComponentBuilder;\n constructor(...args: any[]) {\n super(...args);\n this.builder = new ComponentBuilder(this);\n }\n };\n }\n\n}\n","import { ComponentBuilder } from '../component-builder';\nimport { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupCommand } from './aup-command';\n\nexport class AupAbstractActivity extends ComponentBuilder.Mixin(PageElement) {\n\n protected _confirmCommand: AupCommand;\n protected _cancelCommand: AupCommand;\n\n readonly title: PageElement;\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n // @ts-ignore\n super(parent, selector);\n this.title = this.find('aup-activity-title');\n this._confirmCommand = this.builder.aupCommand('[data-cy=confirm-command]');\n this._cancelCommand = this.builder.aupCommand('[data-cy=cancel-command]');\n }\n\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupAbstractActivity } from './aup-abstract-activity';\nimport { AupCommand } from './aup-command';\n\nexport class AupAlert extends AupAbstractActivity {\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n super(parent, selector);\n }\n\n get closeCommand(): AupCommand {\n return this._confirmCommand;\n }\n\n clickClose() {\n this.closeCommand.click();\n }\n\n}\n","import { Constructable } from '@coolon/pectin';\nimport { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\n\nexport function AupModalMixin<T, BC extends Constructable<PageElement>>(Base: BC) {\n return class extends Base {\n constructor(...args: any[]) {\n super(...args);\n }\n\n getDefaultElementLocator(): ElementLocator {\n return (parent: PageElement) => {\n return parent.dom().closest('body').find(this.getDefaultElementSelector());\n };\n }\n\n clickBackdrop() {\n this.dom()\n .closest(`.cdk-overlay-container`)\n .find(`.cdk-overlay-backdrop`).click(-50, -50, { force: true });\n }\n\n };\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupAlert } from './aup-alert';\nimport { AupModalMixin } from './aup-modal-mixin';\n\nexport class AupAlertDialog extends AupModalMixin(AupAlert) {\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n super(parent, selector);\n }\n\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupAbstractActivity } from './aup-abstract-activity';\nimport { AupCommand } from './aup-command';\n\nexport class AupConfirm extends AupAbstractActivity {\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n super(parent, selector);\n }\n\n get confirmCommand(): AupCommand {\n return this._confirmCommand;\n }\n\n clickConfirm() {\n this.confirmCommand.click();\n }\n\n get cancelCommand(): AupCommand {\n return this._cancelCommand;\n }\n\n clickCancel() {\n this.cancelCommand.click();\n }\n\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupAlert } from './aup-alert';\nimport { AupConfirm } from './aup-confirm';\nimport { AupModalMixin } from './aup-modal-mixin';\n\nexport class AupConfirmDialog extends AupModalMixin(AupConfirm) {\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n super(parent, selector);\n }\n\n}\n","import { ElementLocator } from '../element-locator';\nimport { PageElement } from '../page-element';\nimport { AupAbstractActivity } from './aup-abstract-activity';\nimport { AupCommand } from './aup-command';\n\nexport class AupActivity extends AupAbstractActivity {\n\n constructor(parent: PageElement, selector: string | ElementLocator) {\n super(parent, selector);\n }\n\n get confirmCommand(): AupCommand {\n return this._confirmCommand;\n }\n\n get cancelCommand(): AupCommand {\n return this._cancelCommand;\n }\n\n}\n","import { AupActivity } from './aup-activity';\nimport { AupModalMixin } from './aup-modal-mixin';\n\nexport class AupModalActivity extends AupModalMixin(AupActivity) {\n\n}\n","import { ComponentBuilder } from './component-builder';\nimport { AupAlertDialog } from './components/aup-alert-dialog';\nimport { AupConfirmDialog } from './components/aup-confirm-dialog';\nimport { AupModalActivity } from './components/aup-modal-activity';\n\nexport class PageBuilder extends ComponentBuilder {\n\n\n aupModalActivity<T extends object>(selector: string, builder: ComponentBuilder.ContainerCallback<T, AupModalActivity>): T & AupModalActivity {\n return this.component(AupModalActivity, selector, builder);\n }\n\n aupModalAlert<T extends object>(builder?: ComponentBuilder.ContainerCallback<T, AupAlertDialog>): T & AupAlertDialog {\n return this.component(AupAlertDialog, builder);\n }\n\n aupModelConfirm<T extends object>(builder?: ComponentBuilder.ContainerCallback<T, AupConfirmDialog>): T & AupConfirmDialog {\n return this.component(AupConfirmDialog, builder);\n }\n}\n","import { DefaultUrlSerializer, UrlSerializer } from '@angular/router';\n\nlet urlSerialiser: UrlSerializer = new DefaultUrlSerializer();\n\nexport class Path {\n\n constructor(readonly segments: Path.Segment[]) {\n }\n\n static extractVisitParameters(url: string): object {\n let result = {};\n const urlTree = urlSerialiser.parse(url);\n const urlSegments = urlTree.root.children.primary?.segments ?? [];\n urlSegments?.forEach(s => {\n result = { ...result, ...s.parameters }\n });\n return result;\n }\n\n toUrl(matrixParams: object): string {\n return this.segments.map(s => s.toUrlPart(matrixParams)).join('/');\n }\n\n}\n\nexport namespace Path {\n\n export function setUrlSerialiser(serialiser: UrlSerializer) {\n urlSerialiser = serialiser;\n }\n\n export class Segment {\n\n private routeId: string | undefined;\n private visitParams: string[];\n\n constructor(readonly path: string, params: SegmentParams = {}) {\n this.routeId = params?.routeId;\n this.visitParams = params?.visitParams ?? [];\n }\n\n toUrlPart(params: object) {\n let path: string = this.path;\n this.visitParams.forEach(p => {\n const value = params[p];\n if (value) {\n path = `${path};${p}=${value}`;\n }\n });\n if (this.routeId && params[this.routeId]) {\n path = path + '/' + params[this.routeId];\n }\n return path;\n }\n\n }\n\n export class Builder {\n\n private segments: Segment[] = [];\n\n segment(name: string, params?: SegmentParams): this {\n const builder = new Segment(name, params);\n this.segments.push(builder);\n return this;\n }\n\n getPath(): Path {\n return new Path(this.segments);\n }\n }\n\n export interface SegmentParams {\n routeId?: string;\n visitParams?: string[]\n }\n}\n","import { Mixin } from '@coolon/typescript-utilities';\nimport * as _ from 'lodash';\nimport { ComponentBuilder } from './component-builder';\nimport { PageBuilder } from './page-builder';\nimport { PageElement } from './page-element';\nimport { Path } from './path';\n\nexport class Page extends PageElement {\n\n protected rootElementSelector = 'body';\n\n constructor(readonly path: Path) {\n super(undefined, undefined);\n }\n\n dom(): Cypress.Chainable<JQuery<HTMLElement>> {\n return cy.get(this.rootElementSelector);\n }\n\n visit(visitParams?: object, queryParams?: { [key: string]: string }) {\n this.tryAndVisit(visitParams, queryParams);\n this.shouldBeActive(visitParams);\n }\n\n tryAndVisit(params?: object, queryParams?: { [key: string]: string }) {\n const path = this.path.toUrl(params ?? {});\n const queryString = queryParams ? `?${new URLSearchParams(queryParams).toString()}` : '';\n const fullPath = `/${path}${queryString}`;\n cy.log(`Visiting -> ${fullPath}`);\n cy.visit(fullPath);\n }\n\n shouldHaveActivityIds(...ids: string[]) {\n cy.location('search').should('contain', `?aup-interactions=${ids.join('--')}`);\n }\n\n shouldNotHaveActivityIds() {\n cy.location('search').should('not.contain', `?aup-interactions`);\n }\n\n shouldHaveTitle(title: string) {\n cy.title().should('eq', title);\n }\n\n shouldBeActive(withParameters?: object) {\n // Note: cy.window() doesn't return a promise... it's a chainable.\n cy['waitUntil'](() => {\n return cy.window().then(window => {\n return window['aup.PlaceRouter'] && !window['aup.PlaceRouter'].isNavigating();\n });\n });\n\n if (withParameters) {\n this.shouldIncludeParameters(withParameters);\n }\n }\n\n shouldIncludeParameters(parameters: object) {\n cy.location('pathname').then(path => {\n const urlParams = Path.extractVisitParameters(path);\n Object.keys(parameters).forEach(param => {\n const expected = parameters[param];\n const actual = urlParams[param];\n // cy.log(`${actual} - ${expected}`);\n expect(urlParams[param]).to.equal(expected);\n });\n });\n }\n\n shouldNotHaveParameter(name: string) {\n this.getUrlParameters().then(params => {\n expect(params[name]).to.be.undefined;\n });\n }\n\n getUrlParameters() {\n return cy.location('pathname').then(path => Path.extractVisitParameters(path));\n }\n\n}\n\n\nexport namespace Page {\n\n export function create<T extends object>(path: string, builder: ComponentBuilder.ContainerCallback<T, Page, PageBuilder>): T & Page\n // tslint:disable-next-line:unified-signatures\n export function create<T extends object>(pathBuilder: ((pathBuilder: Path.Builder) => void), builder: ComponentBuilder.ContainerCallback<T, Page, PageBuilder>): T & Page\n export function create<T extends object>(pathOrPathBuilder: string | ((pathBuilder: Path.Builder) => void), builder: ComponentBuilder.ContainerCallback<T, Page, PageBuilder>): T & Page {\n const pathBuilder = new Path.Builder();\n if (_.isString(pathOrPathBuilder)) {\n pathOrPathBuilder.split('/').filter(p => !_.isEmpty(p)).forEach(p => pathBuilder.segment(p));\n } else {\n pathOrPathBuilder(pathBuilder);\n }\n const instance = new Page(pathBuilder.getPath());\n const content = builder.call(instance, new PageBuilder(instance));\n return Mixin.createProxy(content, instance) as T & Page;\n }\n}\n","import { PageElement } from '../page-element';\n\nexport class AupCommandGroup extends PageElement {\n\n}\n","\nimport { PageElement } from '../page-element';\nimport { Types } from './types';\n\nexport class AupToolBar extends PageElement {\n\n static create(parent: PageElement, face: Types.CommandFace) {\n // const findFace = AupCommandFace.createFinder(() => parent.element(), face)\n // return new AupCommandGroup(() => findFace().closest('button'));\n }\n}\n","import { lang } from '@coolon/typescript-utilities';\nimport { PageElement } from '../../page-element';\nimport { AupCommandFace } from '../aup-command-face';\nimport { Types } from '../types';\nimport { AupAbstractPopupMenu } from './aup-abstract-popup-menu';\n\nexport class AupPopupMenu extends AupAbstractPopupMenu {\n\n constructor(parentElementAccessor: PageElement, face: Types.CommandFace) {\n const locator = AupCommandFace.createElementLocator(face)\n super(parentElementAccessor, parent => locator(parent).closest('button'));\n }\n\n static create(parent: PageElement, face: Types.CommandFace) {\n return new AupPopupMenu(parent, face);\n }\n}\n","import { AupTableCell } from './aup-table-cell';\nimport { AupTableRow } from './aup-table-row';\n\nexport class AupTableSelectionCell<TR extends AupTableRow> extends AupTableCell<TR> {\n selectAll() {\n }\n}\n","/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./component-builder\";\nexport * from \"./element-locator\";\nexport * from \"./page-builder\";\nexport * from \"./page-element\";\nexport * from \"./page\";\nexport * from \"./path\";\nexport * from \"./components/aup-abstract-activity\";\nexport * from \"./components/aup-abstract-table\";\nexport * from \"./components/aup-activity\";\nexport * from \"./components/aup-alert-dialog\";\nexport * from \"./components/aup-alert\";\nexport * from \"./components/aup-command-face\";\nexport * from \"./components/aup-command-group\";\nexport * from \"./components/aup-command\";\nexport * from \"./components/aup-confirm-dialog\";\nexport * from \"./components/aup-confirm\";\nexport * from \"./components/aup-empty-state\";\nexport * from \"./components/aup-input\";\nexport * from \"./components/aup-modal-activity\";\nexport * from \"./components/aup-modal-mixin\";\nexport * from \"./components/aup-navigation\";\nexport * from \"./components/aup-table\";\nexport * from \"./components/aup-tool-bar\";\nexport * from \"./components/aup-tree-table\";\nexport * from \"./components/button\";\nexport * from \"./components/form-element-mixin\";\nexport * from \"./components/mat-checkbox\";\nexport * from \"./components/types\";\nexport * from \"./components/popup/aup-abstract-popup-menu\";\nexport * from \"./components/popup/aup-more-menu\";\nexport * from \"./components/popup/aup-popup-menu-panel\";\nexport * from \"./components/popup/aup-popup-menu\";\nexport * from \"./components/table/aup-table-cell\";\nexport * from \"./components/table/aup-table-column\";\nexport * from \"./components/table/aup-table-row\";\nexport * from \"./components/table/aup-table-selection-cell\";\nexport * from \"./components/table/aup-table-selection-column\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './exports';\n\nexport {Types as ɵa} from './components/types';"],"names":["CreateMixin"],"mappings":"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"}
|
|
@@ -5801,7 +5801,7 @@ class InlineStringEditorComponent extends DisposableComponent {
|
|
|
5801
5801
|
yield this.interactionContext.startActivity(StringInputActivity, this.createInputActivityData());
|
|
5802
5802
|
}
|
|
5803
5803
|
catch (e) {
|
|
5804
|
-
// don't care, just hiding the console errors
|
|
5804
|
+
// don't care if they cancelled, just hiding the console errors
|
|
5805
5805
|
}
|
|
5806
5806
|
finally {
|
|
5807
5807
|
this.editorModel.editing.value = false;
|
|
@@ -6251,16 +6251,27 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6251
6251
|
when(this._active).becomesTruthy(() => this._notifyPlaceReady());
|
|
6252
6252
|
this.childPlaces = this.placeDefinition.children.map(d => d.component);
|
|
6253
6253
|
}
|
|
6254
|
-
// @Trace()
|
|
6255
6254
|
initialiseVisit(visit, notifyVisitChanged) {
|
|
6256
6255
|
assert.isNil(this.visitModel.value);
|
|
6257
6256
|
const { when } = Dsl.disposeWith(this);
|
|
6258
6257
|
this.visitModel.value = visit;
|
|
6259
6258
|
DebugContext.getOrCreate(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);
|
|
6260
|
-
|
|
6259
|
+
// we track if the any of the bindings updated the route. If so we remember it and update the
|
|
6260
|
+
// route in one go at the end.
|
|
6261
|
+
this.placeDefinition
|
|
6262
|
+
.getVisitParameterDefs()
|
|
6263
|
+
.forEach(parameterDef => this.installAndInitialiseBinding(visit, parameterDef));
|
|
6261
6264
|
when(this.visitModel).changes((current, previous) => {
|
|
6262
6265
|
notifyVisitChanged(current, previous);
|
|
6263
6266
|
}, { unless: this._inVisitUpdate });
|
|
6267
|
+
// TODO: this needs to do a replace url option so that the new url isn't put in the history.... for
|
|
6268
|
+
// now we're not doing it as it's a fair bit of effort and will only affect people if they're
|
|
6269
|
+
// cutting and pasting urls to each other.
|
|
6270
|
+
// // the binding process can update the visit (e.g. if a selection model has already selected during
|
|
6271
|
+
// // component construction) and there was no value specified in the route
|
|
6272
|
+
// if (visit.hasRoutingChangedFrom(this.visitModel.value)) {
|
|
6273
|
+
// notifyVisitChanged(this.visitModel.value, visit)
|
|
6274
|
+
// }
|
|
6264
6275
|
}
|
|
6265
6276
|
updateVisit(visit) {
|
|
6266
6277
|
assert.isTruthy(this.isInitialised());
|
|
@@ -6273,7 +6284,12 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6273
6284
|
return !!this.visitModel.value;
|
|
6274
6285
|
}
|
|
6275
6286
|
// @Trace()
|
|
6276
|
-
|
|
6287
|
+
/**
|
|
6288
|
+
* Initialised the component bindings. If any binding has an initial model value (e.g. a selection model
|
|
6289
|
+
* initialised during the constructor) and the route has nothing, then the visit will be udpated and this
|
|
6290
|
+
* method will return ture to nofiy the the visit has changed.
|
|
6291
|
+
*/
|
|
6292
|
+
installAndInitialiseBinding(initialVisit, parameterDef) {
|
|
6277
6293
|
const model = this[parameterDef.propertyName];
|
|
6278
6294
|
DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);
|
|
6279
6295
|
const binding = this.registerDisposable(new Binding(this.visitModel, model, {
|
|
@@ -6287,7 +6303,17 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6287
6303
|
return currentVisit.replace(parameterDef, value);
|
|
6288
6304
|
}
|
|
6289
6305
|
}));
|
|
6290
|
-
binding.
|
|
6306
|
+
// Now we need to initialise the binding direction. If we have a value in the Url then we should always push
|
|
6307
|
+
// that to the view. If we don't and the view already has a value (e.g. a selection model has already initialised in the
|
|
6308
|
+
// component constructor) then we should push that to the route.
|
|
6309
|
+
const isInVisit = !_.isNil(initialVisit.getParameterValue(parameterDef));
|
|
6310
|
+
const isInModel = !_.isNil(model.value);
|
|
6311
|
+
if (!isInVisit && isInModel) {
|
|
6312
|
+
binding.writeLeft(); // push it to the route
|
|
6313
|
+
}
|
|
6314
|
+
else {
|
|
6315
|
+
binding.writeRight(); // push it to the model
|
|
6316
|
+
}
|
|
6291
6317
|
}
|
|
6292
6318
|
get placeDefinition() {
|
|
6293
6319
|
const definition = PlaceComponent.getDefinition(this.constructor);
|
|
@@ -7407,9 +7433,13 @@ class Visit {
|
|
|
7407
7433
|
});
|
|
7408
7434
|
return new Visit(this.placeDefinition, params);
|
|
7409
7435
|
}
|
|
7436
|
+
// @Trace()
|
|
7410
7437
|
hasRoutingChangedFrom(other) {
|
|
7411
7438
|
const samePlace = other.placeDefinition === this.placeDefinition;
|
|
7412
|
-
const
|
|
7439
|
+
const currentParams = this.placeDefinition.getFormattedRouteParameters(this, true);
|
|
7440
|
+
const otherParams = this.placeDefinition.getFormattedRouteParameters(other, true);
|
|
7441
|
+
// console.log({currentParams, otherParams});
|
|
7442
|
+
const sameRouteParameters = _.isEqual(currentParams, otherParams);
|
|
7413
7443
|
return !samePlace || !sameRouteParameters;
|
|
7414
7444
|
}
|
|
7415
7445
|
hasChangedFrom(other) {
|