import { by , browser , protractor } from 'protractor' ; import { GenericDialog } from '../dialog/generic-dialog' ; import { isPresentAndDisplayed , waitForStaleness , waitForPresence , isPresentAndEnabled } from '../../utilities/utils' ; import { DropDownBreadcrumb } from '../breadcrumb/dropdown-breadcrumb' ; import { DataTable } from '../data-table/data-table' ; import { BrowserActions } from '@alfresco/adf-testing' ; export class ContentNodeSelectorDialog extends GenericDialog { cancelButton = this . childElement ( by . css ( '[data-automation-id="content-node-selector-actions-cancel"]' ) ) ; copyButton = this . childElement ( by . cssContainingText ( '[data-automation-id="content-node-selector-actions-choose"]' , 'Copy' ) ) ; moveButton = this . childElement ( by . cssContainingText ( '[data-automation-id="content-node-selector-actions-choose"]' , 'Move' ) ) ; locationDropDown = this . rootElem . element ( by . id ( 'site-dropdown-container' ) ) ; locationPersonalFiles = browser . element ( by . cssContainingText ( '.mat-option .mat-option-text' , 'Personal Files' ) ) ; locationFileLibraries = browser . element ( by . cssContainingText ( '.mat-option .mat-option-text' , 'My Libraries' ) ) ; searchInput = this . rootElem . element ( by . css ( '#searchInput' ) ) ; toolbarTitle = this . rootElem . element ( by . css ( '.adf-toolbar-title' ) ) ; breadcrumb = new DropDownBreadcrumb ( ) ; dataTable = new DataTable ( '.adf-content-node-selector-dialog' ) ; constructor ( ) { super ( '.adf-content-node-selector-dialog' ) ; } get content ( ) { return this . rootElem . element ( by . css ( '.adf-content-node-selector-content' ) ) ; } async waitForDropDownToClose ( ) { await waitForStaleness ( browser . $ ( '.mat-option .mat-option-text' ) ) ; } async selectLocation ( location ) { await BrowserActions . click ( this . locationDropDown ) ; if ( location === 'Personal Files' ) { await BrowserActions . click ( this . locationPersonalFiles ) ; } else { await BrowserActions . click ( this . locationFileLibraries ) ; } await this . waitForDropDownToClose ( ) ; } async selectDestination ( folderName ) { const row = this . dataTable . getRowByName ( folderName ) ; await BrowserActions . click ( row ) ; await waitForPresence ( browser . element ( by . css ( '.adf-is-selected' ) ) ) ; } async isSelectLocationDropdownDisplayed ( ) { return isPresentAndDisplayed ( this . locationDropDown ) ; } async isCopyButtonEnabled ( ) { return isPresentAndEnabled ( this . copyButton ) ; } async isCancelButtonEnabled ( ) { return isPresentAndEnabled ( this . cancelButton ) ; } async searchFor ( text ) { await BrowserActions . clearWithBackSpace ( this . searchInput ) ; await this . searchInput . sendKeys ( text ) ; await this . searchInput . sendKeys ( protractor . Key . ENTER ) ; } async getToolbarTitle ( ) { return this . toolbarTitle . getText ( ) ; } }