@umbraco/playwright-testhelpers 18.0.1 → 18.0.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"LibraryUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LibraryUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class LibraryUiHelper extends UiBaseLocators {\n private readonly elementNameTxt: Locator;\n private readonly saveAndPublishBtn: Locator;\n private readonly publishBtn: Locator;\n private readonly unpublishBtn: Locator;\n private readonly actionMenuForElementBtn: Locator;\n private readonly textstringTxt: Locator;\n private readonly infoTab: Locator;\n private readonly linkElement: Locator;\n private readonly historyItems: Locator;\n private readonly generalItem: Locator;\n private readonly elementState: Locator;\n private readonly createdDate: Locator;\n private readonly editElementTypeBtn: Locator;\n private readonly addTemplateBtn: Locator;\n private readonly id: Locator;\n private readonly cultureAndHostnamesBtn: Locator;\n private readonly cultureLanguageDropdownBox: Locator;\n private readonly addNewHostnameBtn: Locator;\n private readonly hostnameTxt: Locator;\n private readonly hostnameLanguageDropdownBox: Locator;\n private readonly deleteHostnameBtn: Locator;\n private readonly reloadChildrenThreeDotsBtn: Locator;\n private readonly elementTree: Locator;\n private readonly richTextAreaTxt: Locator;\n private readonly textAreaTxt: Locator;\n private readonly plusIconBtn: Locator;\n private readonly enterTagTxt: Locator;\n private readonly menuItemTree: Locator;\n private readonly hostnameComboBox: Locator;\n private readonly confirmToUnpublishBtn: Locator;\n private readonly saveModalBtn: Locator;\n private readonly dropdown: Locator;\n private readonly setADateTxt: Locator;\n private readonly chooseMediaPickerBtn: Locator;\n private readonly chooseMemberPickerBtn: Locator;\n private readonly numericTxt: Locator;\n private readonly resetFocalPointBtn: Locator;\n private readonly addMultiURLPickerBtn: Locator;\n private readonly linkTxt: Locator;\n private readonly anchorQuerystringTxt: Locator;\n private readonly linkTitleTxt: Locator;\n private readonly tagItems: Locator;\n private readonly removeFilesBtn: Locator;\n private readonly toggleBtn: Locator;\n private readonly toggleInput: Locator;\n private readonly elementTypeWorkspace: Locator;\n private readonly addMultipleTextStringBtn: Locator;\n private readonly multipleTextStringValueTxt: Locator;\n private readonly sliderInput: Locator;\n private readonly tabItems: Locator;\n private readonly elementWorkspace: Locator;\n private readonly selectAVariantBtn: Locator;\n private readonly variantAddModeBtn: Locator;\n private readonly saveAndCloseBtn: Locator;\n private readonly enterNameInContainerTxt: Locator;\n private readonly elementCollectionView: Locator;\n private readonly nameBtn: Locator;\n private readonly elementCollectionViewTableRow: Locator;\n private readonly publishSelectedListItems: Locator;\n private readonly unpublishSelectedListItems: Locator;\n private readonly duplicateToSelectedListItems: Locator;\n private readonly moveToSelectedListItems: Locator;\n private readonly trashSelectedListItems: Locator;\n private readonly modalElement: Locator;\n private readonly trashBtn: Locator;\n private readonly elementElementCollectionView: Locator;\n private readonly elementGridView: Locator;\n private readonly elementFolderCollectionView: Locator;\n private readonly elementTreeItem: Locator;\n private readonly elementLanguageSelect: Locator;\n private readonly elementLanguageSelectPopover: Locator;\n private readonly elementReadOnly: Locator;\n private readonly elementWorkspaceEditor: Locator;\n private readonly exactTrashBtn: Locator;\n private readonly emptyRecycleBinBtn: Locator;\n private readonly confirmEmptyRecycleBinBtn: Locator;\n private readonly duplicateToBtn: Locator;\n private readonly moveToBtn: Locator;\n private readonly duplicateBtn: Locator;\n private readonly elementTreeRefreshBtn: Locator;\n private readonly sortChildrenBtn: Locator;\n private readonly rollbackBtn: Locator;\n private readonly rollbackContainerBtn: Locator;\n private readonly publicAccessBtn: Locator;\n private readonly uuiCheckbox: Locator;\n private readonly sortBtn: Locator;\n private readonly containerSaveBtn: Locator\n private readonly groupBasedProtectionBtn: Locator;\n private readonly chooseMemberGroupBtn: Locator;\n private readonly selectLoginPageElement: Locator;\n private readonly selectErrorPageElement: Locator;\n private readonly rollbackItem: Locator;\n private readonly actionsMenu: Locator;\n private readonly linkToElementBtn: Locator;\n private readonly linkToMediaBtn: Locator;\n private readonly linkToManualBtn: Locator;\n private readonly umbElementCollection: Locator;\n private readonly elementTableColumnName: Locator;\n private readonly addBlockElementBtn: Locator;\n private readonly formValidationMessage: Locator;\n private readonly blockName: Locator;\n private readonly addBlockSettingsTabBtn: Locator;\n private readonly editBlockEntryBtn: Locator;\n private readonly copyBlockEntryBtn: Locator;\n private readonly deleteBlockEntryBtn: Locator;\n private readonly blockGridEntry: Locator;\n private readonly blockListEntry: Locator;\n private readonly tipTapPropertyEditor: Locator;\n private readonly tipTapEditor: Locator;\n private readonly uploadedSvgThumbnail: Locator;\n private readonly linkPickerModal: Locator;\n private readonly pasteFromClipboardBtn: Locator;\n private readonly pasteBtn: Locator;\n private readonly closeBtn: Locator;\n private readonly workspaceEditTab: Locator;\n private readonly workspaceEditProperties: Locator;\n private readonly exactCopyBtn: Locator;\n private readonly openActionsMenu: Locator;\n private readonly replaceExactBtn: Locator;\n private readonly clipboardEntryPicker: Locator;\n private readonly blockWorkspaceEditTab: Locator;\n private readonly insertBlockBtn: Locator;\n private readonly blockWorkspace: Locator;\n private readonly saveElementBtn: Locator;\n private readonly splitView: Locator;\n private readonly tiptapInput: Locator;\n private readonly rteBlockInline: Locator;\n private readonly modalCreateBtn: Locator;\n private readonly modalUpdateBtn: Locator;\n private readonly rteBlock: Locator;\n private readonly workspaceActionMenu: Locator;\n private readonly workspaceActionMenuItem: Locator;\n private readonly viewMoreOptionsBtn: Locator;\n private readonly schedulePublishBtn: Locator;\n private readonly schedulePublishModalBtn: Locator;\n private readonly elementScheduleModal: Locator;\n private readonly publishAtFormLayout: Locator;\n private readonly unpublishAtFormLayout: Locator;\n private readonly publishAtValidationMessage: Locator;\n private readonly unpublishAtValidationMessage: Locator;\n private readonly lastPublished: Locator;\n private readonly publishAt: Locator;\n private readonly blockGridAreasContainer: Locator;\n private readonly blockGridBlock: Locator;\n private readonly blockGridEntries: Locator;\n private readonly inlineCreateBtn: Locator;\n private readonly removeAt: Locator;\n private readonly selectAllCheckbox: Locator;\n private readonly confirmToPublishBtn: Locator;\n private readonly tiptapStatusbarWordCount: Locator;\n private readonly tiptapStatusbarElementPath: Locator;\n private readonly publishWithDescendantsBtn: Locator;\n private readonly elementPublishWithDescendantsModal: Locator;\n private readonly includeUnpublishedDescendantsToggle: Locator;\n private readonly publishWithDescendantsModalBtn: Locator;\n private readonly elementVariantLanguagePicker: Locator;\n private readonly elementVariantLanguageItem: Locator;\n private readonly styleSelectBtn: Locator;\n private readonly cascadingMenuContainer: Locator;\n private readonly modalFormValidationMessage: Locator;\n private readonly treePickerSearchTxt: Locator;\n private readonly mediaPickerSearchTxt: Locator;\n private readonly memberPickerSearchTxt: Locator;\n private readonly elementCreateOptionsModal: Locator;\n private readonly refListBlock: Locator;\n private readonly propertyActionMenu: Locator;\n private readonly elementCollectionViewCustomRows: Locator;\n private readonly collectionMenu: Locator;\n private readonly entityPickerTree: Locator;\n private readonly hostNameItem: Locator;\n private readonly languageToggle: Locator;\n private readonly elementVariantDropdown: Locator;\n private readonly blockProperty: Locator;\n private readonly linkPickerAddBtn: Locator;\n private readonly linkPickerCloseBtn: Locator;\n private readonly linkPickerTargetToggle: Locator;\n private readonly confirmToResetBtn: Locator;\n private readonly saveModal: Locator;\n private readonly expandSegmentBtn: Locator;\n private readonly elementBtn: Locator;\n private readonly elementFolderBtn: Locator;\n\n constructor(page: Page) {\n super(page);\n this.saveElementBtn = page.getByTestId('workspace-action:Umb.WorkspaceAction.Element.Save');\n this.saveAndPublishBtn = page.getByTestId('workspace-action:Umb.WorkspaceAction.Element.SaveAndPublish');\n this.closeBtn = page.getByRole('button', {name: 'Close', exact: true});\n this.linkPickerModal = page.locator('umb-link-picker-modal');\n this.elementNameTxt = page.locator('#name-input input');\n this.publishBtn = page.getByLabel(/^Publish(…)?$/);\n this.unpublishBtn = page.getByLabel(/^Unpublish(…)?$/);\n this.actionMenuForElementBtn = page.locator('#header').getByTestId('open-dropdown');\n this.textstringTxt = page.locator('umb-property-editor-ui-text-box #input');\n this.reloadChildrenThreeDotsBtn = page.getByRole('button', {name: 'Reload children…'});\n this.elementTree = page.locator('umb-tree[alias=\"Umb.Tree.Element\"]');\n this.richTextAreaTxt = page.frameLocator('iframe[title=\"Rich Text Area\"]').locator('#tinymce');\n this.textAreaTxt = page.locator('umb-property-editor-ui-textarea textarea');\n this.plusIconBtn = page.locator('#icon-add svg');\n this.enterTagTxt = page.getByPlaceholder('Enter tag');\n this.menuItemTree = page.locator('umb-menu-item-tree-default');\n this.confirmToUnpublishBtn = this.backofficeModalContainer.getByLabel('Unpublish');\n this.dropdown = page.locator('select#native');\n this.splitView = page.locator('#splitViews');\n this.setADateTxt = page.getByLabel('Set a date…');\n this.chooseMediaPickerBtn = page.locator('umb-property-editor-ui-media-picker #btn-add');\n this.chooseMemberPickerBtn = page.locator('umb-property-editor-ui-member-picker #btn-add');\n this.numericTxt = page.locator('umb-property-editor-ui-number input');\n this.addMultiURLPickerBtn = page.locator('umb-property-editor-ui-multi-url-picker #btn-add');\n this.linkTxt = page.getByTestId('input:url').locator('#input');\n this.anchorQuerystringTxt = page.getByLabel('#value or ?key=value');\n this.linkTitleTxt = this.linkPickerModal.getByLabel('Title');\n this.tagItems = page.locator('uui-tag');\n this.removeFilesBtn = page.locator('umb-input-upload-field [label=\"Clear file(s)\"]');\n this.toggleBtn = page.locator('umb-property-editor-ui-toggle #toggle');\n this.toggleInput = page.locator('umb-property-editor-ui-toggle span');\n this.elementTypeWorkspace = this.sidebarModal.locator('umb-element-type-workspace-editor');\n this.addMultipleTextStringBtn = page.locator('umb-input-multiple-text-string').getByLabel('Add');\n this.multipleTextStringValueTxt = page.locator('umb-input-multiple-text-string').getByLabel('Value');\n this.sliderInput = page.locator('umb-property-editor-ui-slider #input');\n this.tabItems = page.locator('uui-tab');\n this.elementWorkspace = page.locator('umb-element-workspace-editor');\n this.selectAVariantBtn = page.getByRole('button', {name: 'Open version selector'});\n this.variantAddModeBtn = page.locator('.switch-button.add-mode').locator('.variant-name');\n this.saveAndCloseBtn = page.getByLabel('Save and close');\n this.elementTreeItem = page.locator('umb-default-tree-item');\n this.elementLanguageSelect = page.locator('umb-app-language-select');\n this.elementLanguageSelectPopover = page.locator('umb-popover-layout');\n this.elementReadOnly = this.elementWorkspace.locator('#name-input').getByText('Read-only');\n // Info tab\n this.infoTab = page.getByTestId('workspace:view-link:Umb.WorkspaceView.Element.Info');\n this.linkElement = page.locator('umb-element-links-workspace-info-app');\n this.historyItems = page.locator('umb-history-item');\n this.generalItem = page.locator('.general-item');\n this.elementState = this.generalItem.locator('uui-tag');\n this.createdDate = this.generalItem.filter({hasText: 'Created'}).locator('umb-localize-date');\n this.editElementTypeBtn = this.generalItem.filter({hasText: 'Element Type'}).locator('#button');\n this.addTemplateBtn = this.generalItem.filter({hasText: 'Template'}).locator('#button');\n this.id = this.generalItem.filter({hasText: 'Id'}).locator('span');\n this.elementCreateOptionsModal = page.locator('umb-element-create-options-modal');\n // Culture and Hostname\n this.cultureAndHostnamesBtn = page.getByLabel(/^Culture and Hostnames(…)?$/);\n this.hostNameItem = page.locator('.hostname-item');\n this.cultureLanguageDropdownBox = this.page.locator('[label=\"Culture\"]').getByLabel('combobox-input');\n this.hostnameTxt = page.getByLabel('Hostname', {exact: true});\n this.hostnameLanguageDropdownBox = this.hostNameItem.locator('[label=\"Culture\"]').getByLabel('combobox-input');\n this.deleteHostnameBtn = this.hostNameItem.locator('[name=\"icon-trash\"] svg');\n this.hostnameComboBox = this.hostNameItem.locator('[label=\"Culture\"]').locator('uui-combobox-list-option');\n this.saveModal = page.locator('umb-element-save-modal');\n this.saveModalBtn = this.saveModal.getByLabel('Save', {exact: true});\n this.resetFocalPointBtn = page.getByLabel('Reset focal point');\n this.addNewHostnameBtn = page.locator('umb-property-layout[label=\"Hostnames\"]').locator('[label=\"Add new hostname\"]');\n // List View\n this.enterNameInContainerTxt = this.container.getByTestId('input:entity-name').locator('#input');\n this.elementCollectionView = page.locator('umb-collection-workspace-view');\n this.nameBtn = page.getByRole('button', { name: 'Name', exact: true });\n this.elementCollectionViewTableRow = this.elementCollectionView.locator('uui-table-row');\n this.publishSelectedListItems = page.locator('umb-entity-bulk-action').getByText('Publish', {exact: true});\n this.unpublishSelectedListItems = page.locator('umb-entity-bulk-action').getByText('Unpublish', {exact: true});\n this.duplicateToSelectedListItems = page.locator('umb-entity-bulk-action').getByText('Duplicate to', {exact: true});\n this.moveToSelectedListItems = page.locator('umb-entity-bulk-action').getByText('Move to', {exact: true});\n this.trashSelectedListItems = page.locator('umb-entity-bulk-action').getByText('Trash', {exact: true});\n this.modalElement = page.locator('umb-tree-picker-modal');\n this.trashBtn = page.getByLabel(/^Trash(…)?$/);\n this.exactTrashBtn = page.getByRole('button', {name: 'Trash', exact: true});\n this.elementElementCollectionView = page.locator('umb-element-table-collection-view');\n this.elementGridView = page.locator('umb-element-grid-collection-view');\n this.elementFolderCollectionView = page.locator('umb-element-folder-workspace-view-collection');\n this.elementWorkspaceEditor = page.locator('umb-workspace-editor');\n this.emptyRecycleBinBtn = page.getByTestId('entity-action:Umb.EntityAction.Element.RecycleBin.Empty').locator('#button');\n this.confirmEmptyRecycleBinBtn = page.locator('#confirm').getByLabel('Empty recycle bin', {exact: true});\n this.duplicateToBtn = page.getByRole('button', {name: 'Duplicate to'});\n this.moveToBtn = page.getByRole('button', {name: 'Move to'});\n this.duplicateBtn = page.getByLabel('Duplicate', {exact: true});\n this.elementTreeRefreshBtn = page.locator('#header').getByLabel('#actions_refreshNode');\n this.sortChildrenBtn = page.getByRole('button', {name: 'Sort children'});\n this.rollbackBtn = page.getByRole('button', { name: 'Rollback…' });\n this.rollbackContainerBtn = this.container.getByLabel('Rollback');\n this.publicAccessBtn = page.getByRole('button', {name: 'Public Access'});\n this.uuiCheckbox = page.locator('uui-checkbox');\n this.sortBtn = page.getByLabel('Sort', {exact: true});\n this.containerSaveBtn = this.container.getByLabel('Save');\n this.groupBasedProtectionBtn = page.locator('span').filter({hasText: 'Group based protection'});\n this.chooseMemberGroupBtn = page.locator('umb-input-member-group').getByLabel('Choose');\n this.selectLoginPageElement = page.locator('.select-item').filter({hasText: 'Login Page'}).locator('umb-input-element').locator('#button');\n this.selectErrorPageElement = page.locator('.select-item').filter({hasText: 'Error Page'}).locator('umb-input-element').locator('#button');\n this.rollbackItem = page.locator('.rollback-item');\n this.actionsMenu = page.locator('uui-scroll-container');\n this.linkToElementBtn = this.linkPickerModal.getByTestId('action:element').locator('#button');\n this.linkToMediaBtn = this.linkPickerModal.getByTestId('action:media').locator('#button');\n this.linkToManualBtn = this.linkPickerModal.getByTestId('action:external').locator('#button');\n this.umbElementCollection = page.locator('umb-element-collection');\n this.elementTableColumnName = this.elementCollectionView.locator('umb-element-table-column-name');\n //Block Grid - Block List\n this.addBlockElementBtn = page.locator('uui-button-group > uui-button').first().filter({has: page.locator('a#button')});\n this.formValidationMessage = page.locator('#splitViews umb-form-validation-message #messages');\n this.blockName = page.locator('#editor [slot=\"name\"]');\n this.addBlockSettingsTabBtn = page.locator('umb-body-layout').getByRole('tab', {name: 'Settings'});\n this.editBlockEntryBtn = page.locator('[label=\"edit\"] svg');\n this.copyBlockEntryBtn = page.getByLabel('Copy to clipboard');\n this.exactCopyBtn = page.getByRole('button', {name: 'Copy', exact: true});\n this.deleteBlockEntryBtn = page.locator('[label=\"delete\"] svg');\n this.blockGridEntry = page.locator('umb-block-grid-entry');\n this.blockGridBlock = page.locator('umb-block-grid-block');\n this.blockListEntry = page.locator('umb-block-list-entry');\n this.pasteFromClipboardBtn = page.getByLabel('Paste from clipboard');\n this.pasteBtn = page.getByRole('button', {name: 'Paste', exact: true});\n this.workspaceEditTab = page.locator('umb-element-workspace-view-edit-tab');\n this.blockWorkspaceEditTab = page.locator('umb-block-workspace-view-edit-tab');\n this.workspaceEditProperties = page.locator('umb-element-workspace-view-edit-properties');\n this.openActionsMenu = page.locator('#action-menu');\n this.replaceExactBtn = page.getByRole('button', {name: 'Replace', exact: true});\n this.clipboardEntryPicker = page.locator('umb-clipboard-entry-picker');\n this.blockGridAreasContainer = page.locator('umb-block-grid-areas-container');\n this.blockGridEntries = page.locator('umb-block-grid-entries');\n this.inlineCreateBtn = page.locator('uui-button-inline-create');\n this.refListBlock = page.locator('umb-ref-list-block');\n // TipTap\n this.tipTapPropertyEditor = page.locator('umb-property-editor-ui-tiptap');\n this.tipTapEditor = this.tipTapPropertyEditor.locator('#editor .tiptap');\n this.uploadedSvgThumbnail = page.locator('umb-input-upload-field-svg img');\n this.insertBlockBtn = page.getByTestId('action:tiptap-toolbar:Umb.Tiptap.Toolbar.BlockPicker');\n this.blockWorkspace = page.locator('umb-block-workspace-editor');\n this.tiptapInput = page.locator('umb-input-tiptap');\n this.rteBlockInline = page.locator('umb-rte-block-inline');\n this.modalCreateBtn = this.backofficeModalContainer.getByLabel('Create', {exact: true});\n this.modalUpdateBtn = this.backofficeModalContainer.getByLabel('Update', {exact: true});\n this.rteBlock = page.locator('umb-rte-block');\n this.tiptapStatusbarWordCount = page.locator('umb-tiptap-statusbar-word-count');\n this.tiptapStatusbarElementPath = page.locator('umb-tiptap-statusbar-element-path');\n // Scheduled Publishing\n this.workspaceActionMenu = page.locator('umb-workspace-action-menu');\n this.workspaceActionMenuItem = page.locator('umb-workspace-action-menu-item');\n this.viewMoreOptionsBtn = this.workspaceActionMenu.locator('#popover-trigger');\n this.schedulePublishBtn = this.workspaceActionMenuItem.getByLabel('Schedule publish', {exact: true});\n this.elementScheduleModal = page.locator('umb-element-schedule-modal');\n this.schedulePublishModalBtn = this.elementScheduleModal.getByLabel('Schedule publish', {exact: true});\n this.publishAtFormLayout = this.elementScheduleModal.locator('uui-form-layout-item').first();\n this.unpublishAtFormLayout = this.elementScheduleModal.locator('uui-form-layout-item').last();\n this.publishAtValidationMessage = this.publishAtFormLayout.locator('#messages');\n this.unpublishAtValidationMessage = this.unpublishAtFormLayout.locator('#messages');\n this.lastPublished = this.generalItem.filter({hasText: 'Last published'}).locator('umb-localize-date');\n this.publishAt = this.generalItem.filter({hasText: 'Publish at'}).locator('umb-localize-date');\n this.removeAt = this.generalItem.filter({hasText: 'Remove at'}).locator('umb-localize-date');\n this.selectAllCheckbox = page.locator('[label=\"Select all\"]');\n this.confirmToPublishBtn = this.backofficeModalContainer.getByLabel('Publish');\n // Publish with descendants \n this.elementPublishWithDescendantsModal = page.locator('umb-element-publish-with-descendants-modal');\n this.publishWithDescendantsBtn = this.workspaceActionMenuItem.getByLabel('Publish with descendants', {exact: true});\n this.includeUnpublishedDescendantsToggle = this.elementPublishWithDescendantsModal.locator('#includeUnpublishedDescendants');\n this.publishWithDescendantsModalBtn = this.elementPublishWithDescendantsModal.getByLabel('Publish with descendants', {exact: true});\n this.elementVariantLanguagePicker = page.locator('umb-element-variant-language-picker');\n this.elementVariantLanguageItem = this.elementVariantLanguagePicker.locator('uui-menu-item');\n // Tiptap - Style Select\n this.styleSelectBtn = page.locator('uui-button[label=\"Style Select\"]');\n this.cascadingMenuContainer = page.locator('umb-cascading-menu-popover uui-scroll-container');\n this.modalFormValidationMessage = this.sidebarModal.locator('umb-form-validation-message #messages');\n this.treePickerSearchTxt = this.page.locator('umb-tree-picker-modal #input');\n this.mediaPickerSearchTxt = this.page.locator('umb-media-picker-modal #search #input');\n this.memberPickerSearchTxt = this.page.locator('umb-member-picker-modal #input');\n // Property Actions\n this.propertyActionMenu = page.locator('#property-action-popover umb-popover-layout');\n // List view custom\n this.elementCollectionViewCustomRows = page.locator('table tbody tr');\n // Entity Data Picker\n this.collectionMenu = page.locator('umb-collection-menu');\n this.entityPickerTree = page.locator('umb-tree[alias=\"Umb.Tree.EntityDataPicker\"]');\n this.languageToggle = page.getByTestId('input:entity-name').locator('#toggle');\n this.elementVariantDropdown = page.locator('umb-workspace-split-view-variant-selector uui-popover-container #dropdown');\n this.blockProperty = page.locator('umb-block-workspace-view-edit-property');\n // Multi URL Picker\n this.linkPickerAddBtn = this.linkPickerModal.getByRole('button', {name: 'Add', exact: true});\n this.linkPickerCloseBtn = this.linkPickerModal.getByRole('button', {name: 'Close', exact: true});\n this.linkPickerTargetToggle = this.linkPickerModal.locator('[label=\"Opens the link in a new window or tab\"]').locator('#toggle');\n this.confirmToResetBtn = page.locator('#confirm').getByLabel('Reset', {exact: true});\n // Segment\n this.expandSegmentBtn = page.locator('.expand-area uui-button');\n // Element\n this.elementBtn = this.createOptionActionListModal.locator('[name=\"Element\"]');\n this.elementFolderBtn = this.createOptionActionListModal.locator('[name=\"Folder...\"]');\n }\n\n async enterElementName(name: string) {\n await this.enterText(this.elementNameTxt, name, {verify: true});\n }\n\n async clickSaveAndPublishButton() {\n await this.click(this.saveAndPublishBtn);\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async isSuccessStateVisibleForSaveAndPublishButton (isVisible: boolean = true){\n const saveAndPublishBtn = this.workspaceAction.filter({has: this.saveAndPublishBtn});\n await this.isVisible(saveAndPublishBtn.locator(this.successState), isVisible, ConstantHelper.timeout.long);\n }\n\n async clickPublishButton() {\n await this.click(this.publishBtn);\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async clickUnpublishButton() {\n await this.click(this.unpublishBtn);\n }\n\n async clickReloadChildrenThreeDotsButton() {\n await this.click(this.reloadChildrenThreeDotsBtn);\n }\n\n async clickActionsMenuAtRoot() {\n await this.click(this.actionMenuForElementBtn, {force: true});\n }\n\n async goToElementWithName(elementName: string) {\n const elementWithNameLocator = this.menuItemTree.getByText(elementName, {exact: true});\n await this.click(elementWithNameLocator, {timeout: ConstantHelper.timeout.long});\n }\n\n async clickActionsMenuForElement(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async openElementCaretButtonForName(name: string) {\n const menuItem = this.menuItemTree.filter({hasText: name}).last()\n const isCaretButtonOpen = await menuItem.getAttribute('show-children');\n\n if (isCaretButtonOpen === null) {\n await this.clickCaretButtonForElementName(name);\n }\n }\n\n async clickCaretButtonForElementName(name: string) {\n await this.click(this.menuItemTree.filter({hasText: name}).last().locator('#caret-button').last());\n }\n\n async waitForModalVisible() {\n await this.openedModal.waitFor({state: 'attached'});\n }\n\n async waitForModalHidden() {\n await this.openedModal.waitFor({state: 'hidden'});\n }\n\n async clickSaveButtonForElement() {\n await this.click(this.saveElementBtn);\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async enterTextstring(text: string) {\n await this.enterText(this.textstringTxt, text);\n }\n\n async isTextstringPropertyVisible(isVisible: boolean = true) {\n if (isVisible) {\n await expect(this.textstringTxt).toBeVisible();\n } else {\n await expect(this.textstringTxt).not.toBeVisible();\n }\n }\n\n async doesElementTreeHaveName(elementName: string) {\n await this.containsText(this.elementTree, elementName);\n }\n\n async enterRichTextArea(value: string) {\n await this.waitForVisible(this.richTextAreaTxt);\n await this.richTextAreaTxt.fill(value);\n }\n\n async enterTextArea(value: string) {\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.enterText(this.textAreaTxt, value);\n }\n\n async clickConfirmToUnpublishButton() {\n await this.click(this.confirmToUnpublishBtn);\n }\n\n // Info Tab\n async clickInfoTab() {\n await this.click(this.infoTab);\n }\n\n async doesElementHaveLink(link: string) {\n await this.containsText(this.linkElement, link);\n }\n\n async doesHistoryHaveText(text: string) {\n await this.hasText(this.historyItems, text);\n }\n\n async doesElementStateHaveText(text: string) {\n await this.hasText(this.elementState, text);\n }\n\n async doesCreatedDateHaveText(text: string) {\n await this.hasText(this.createdDate, text);\n }\n\n async doesIdHaveText(text: string) {\n await this.hasText(this.id, text);\n }\n\n async clickEditElementTypeButton() {\n await this.click(this.editElementTypeBtn);\n }\n\n async clickAddTemplateButton() {\n await this.click(this.addTemplateBtn);\n }\n\n async clickSaveButtonAndWaitForElementToBeCreated(){\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveButtonForElement(), ConstantHelper.statusCodes.created);\n }\n\n async clickSaveModalButtonAndWaitForElementToBeCreated(){\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveModalButton(), ConstantHelper.statusCodes.created);\n }\n\n async clickSaveModalButtonAndWaitForElementToBeUpdated(){\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveModalButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickSaveAndPublishButtonAndWaitForElementToBeCreated(){\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveAndPublishButton(), ConstantHelper.statusCodes.created);\n }\n\n async clickConfirmToPublishButtonAndWaitForElementToBeCreated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickConfirmToPublishButton(), ConstantHelper.statusCodes.created);\n }\n\n async clickSaveButtonAndWaitForElementToBeUpdated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveButtonForElement(), ConstantHelper.statusCodes.ok);\n }\n\n async clickSaveAndPublishButtonAndWaitForElementToBeUpdated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveAndPublishButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickSaveAndPublishButtonAndWaitForElementToBePublished() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveAndPublishButton(), ConstantHelper.statusCodes.ok);\n }\n\n private async clickContainerSaveButton() {\n await this.click(this.containerSaveBtn);\n }\n\n async clickContainerSaveButtonAndWaitForElementToBeUpdated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickContainerSaveButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickContainerSaveAndPublishButtonAndWaitForElementToBePublished() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickContainerSaveAndPublishButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickElementTypeByName(elementTypeName: string) {\n await this.click(this.page.locator(`uui-ref-node-element-type[name=\"${elementTypeName}\"]`));\n }\n\n async clickTemplateByName(templateName: string) {\n await this.click(this.page.locator(`uui-ref-node[name=\"${templateName}\"]`));\n }\n\n async isElementTypeModalVisible(elementTypeName: string) {\n await this.isVisible(this.elementTypeWorkspace.filter({hasText: elementTypeName}));\n }\n\n async isTemplateModalVisible(templateName: string) {\n await this.isVisible(this.breadcrumbsTemplateModal.getByText(templateName));\n }\n\n async clickEditTemplateByName(templateName: string) {\n await this.click(this.page.locator(`uui-ref-node[name=\"${templateName}\"]`).getByLabel('Choose'));\n }\n\n async changeTemplate(oldTemplate: string, newTemplate: string) {\n await this.clickEditTemplateByName(oldTemplate);\n await this.click(this.sidebarModal.getByLabel(newTemplate));\n await this.clickChooseModalButton();\n }\n\n async isTemplateNameDisabled(templateName: string) {\n await this.isVisible(this.sidebarModal.getByLabel(templateName));\n await this.isDisabled(this.sidebarModal.getByLabel(templateName));\n }\n\n // Culture and Hostnames\n async clickCultureAndHostnamesButton() {\n await this.click(this.cultureAndHostnamesBtn);\n }\n\n async clickAddNewHostnameButton(){\n await this.click(this.addNewHostnameBtn);\n }\n\n async selectCultureLanguageOption(option: string) {\n await this.click(this.cultureLanguageDropdownBox);\n await this.click(this.page.getByText(option, {exact: true}));\n }\n\n async selectHostnameLanguageOption(option: string, index: number = 0) {\n await this.click(this.hostnameLanguageDropdownBox.nth(index));\n await this.click(this.hostnameComboBox.getByText(option).nth(index));\n }\n\n async enterDomain(value: string, index: number = 0) {\n await this.enterText(this.hostnameTxt.nth(index), value, {verify: true});\n }\n\n async clickDeleteHostnameButton() {\n await this.click(this.deleteHostnameBtn.first());\n }\n\n async clickSaveModalButton() {\n await this.click(this.saveModalBtn);\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async chooseElementType(elementTypeName: string) {\n await this.click(this.documentTypeNode.filter({hasText: elementTypeName}));\n }\n\n // Approved Color\n async clickApprovedColorByValue(value: string) {\n await this.click(this.page.locator(`uui-color-swatch[value=\"#${value}\"] #swatch`));\n }\n\n // Checkbox list\n async chooseCheckboxListOption(optionValue: string) {\n await this.click(this.page.locator(`uui-checkbox[value=\"${optionValue}\"] svg`));\n }\n\n // Element Picker\n async addElementPicker(elementName: string) {\n await this.clickChooseButton();\n await this.click(this.sidebarModal.getByText(elementName));\n await this.click(this.chooseModalBtn);\n }\n\n async isOpenButtonVisibleInElementPicker(elementPickerName: string, isVisible: boolean = true) {\n return await this.isVisible(this.page.getByLabel('Open ' + elementPickerName), isVisible);\n }\n\n async clickElementPickerOpenButton(elementPickerName: string) {\n await this.click(this.page.getByLabel('Open ' + elementPickerName));\n }\n\n async isNodeOpenForElementPicker(elementPickerName: string) {\n return await this.isVisible(this.openedModal.getByText(elementPickerName));\n }\n\n async isElementNameVisible(elementName: string, isVisible: boolean = true) {\n return await this.isVisible(this.sidebarModal.getByText(elementName), isVisible);\n }\n\n async isElementInTreeVisible(name: string, isVisible: boolean = true) {\n await this.isVisible(this.elementTreeItem.getByLabel(name, {exact: true}).first(), isVisible);\n }\n\n async isChildElementInTreeVisible(parentName: string, childName: string, isVisible: boolean = true) {\n await this.isVisible(this.elementTreeItem.locator('[label=\"' + parentName + '\"]').locator('uui-menu-item[label=\"' + childName + '\"]'), isVisible);\n }\n\n async removeElementPicker(elementPickerName: string) {\n const elementPickerLocator = this.entityItem.filter({has: this.page.locator(`[name=\"${elementPickerName}\"]`)});\n await this.hoverAndClick(elementPickerLocator, elementPickerLocator.getByLabel('Remove'));\n await this.clickConfirmRemoveButton();\n }\n\n // Dropdown\n async chooseDropdownOption(optionValues: string[]) {\n await this.selectMultiple(this.dropdown, optionValues);\n }\n\n // Date Picker\n async enterADate(date: string) {\n await this.setADateTxt.fill(date);\n }\n\n // Media Picker\n async clickChooseMediaPickerButton() {\n await this.click(this.chooseMediaPickerBtn);\n }\n\n async clickChooseButtonAndSelectMediaWithName(mediaName: string) {\n await this.clickChooseMediaPickerButton();\n await this.selectMediaWithName(mediaName);\n }\n\n async clickChooseButtonAndSelectMediaWithKey(mediaKey: string) {\n await this.clickChooseMediaPickerButton();\n await this.selectMediaWithTestId(mediaKey);\n }\n\n async removeMediaPickerByName(mediaPickerName: string) {\n await this.click(this.page.locator(`[name=\"${mediaPickerName}\"] [label=\"Remove\"] svg`));\n await this.clickConfirmRemoveButton();\n }\n\n async isMediaNameVisible(mediaName: string, isVisible: boolean = true) {\n return await this.isVisible(this.mediaCardItems.filter({hasText: mediaName}), isVisible);\n }\n\n async clickResetFocalPointButton() {\n await this.click(this.resetFocalPointBtn);\n }\n\n async setFocalPoint(widthPercentage: number = 50, heightPercentage: number = 50) {\n await this.page.waitForTimeout(ConstantHelper.wait.medium);\n const element = await this.page.locator('#image').boundingBox();\n if (!element) {\n throw new Error('Element not found');\n }\n\n const centerX = element.x + element.width / 2;\n const centerY = element.y + element.height / 2;\n\n const x = element.x + (element.width * widthPercentage) / 100;\n const y = element.y + (element.height * heightPercentage) / 100;\n\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.page.mouse.move(centerX, centerY, {steps: 5});\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.page.mouse.down();\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.page.mouse.move(x, y);\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.page.mouse.up();\n }\n\n // Member Picker\n async clickChooseMemberPickerButton() {\n await this.click(this.chooseMemberPickerBtn);\n }\n\n async selectMemberByName(memberName: string) {\n await this.click(this.sidebarModal.getByText(memberName, {exact: true}));\n }\n\n async removeMemberPickerByName(memberName: string) {\n const mediaPickerLocator = this.entityItem.filter({has: this.page.locator(`[name=\"${memberName}\"]`)});\n await this.hoverAndClick(mediaPickerLocator, mediaPickerLocator.getByLabel('Remove'));\n await this.clickConfirmRemoveButton();\n }\n\n // Numeric\n async enterNumeric(number: number) {\n await this.enterText(this.numericTxt, number.toString());\n }\n\n // Radiobox\n async chooseRadioboxOption(optionValue: string) {\n await this.click(this.page.locator(`uui-radio[value=\"${optionValue}\"] #button`));\n }\n\n // Tags\n async clickPlusIconButton() {\n await this.click(this.plusIconBtn);\n }\n\n async enterTag(tagName: string) {\n await this.enterText(this.enterTagTxt, tagName);\n await this.pressKey(this.enterTagTxt, 'Enter');\n }\n\n async removeTagByName(tagName: string) {\n await this.click(this.tagItems.filter({hasText: tagName}).locator('svg'));\n }\n\n // Multi URL Picker\n async clickAddMultiURLPickerButton() {\n await this.click(this.addMultiURLPickerBtn);\n }\n\n async selectLinkByName(linkName: string) {\n await this.click(this.sidebarModal.getByText(linkName, {exact: true}));\n }\n\n async enterLink(value: string, toPress: boolean = false) {\n if (toPress) {\n await this.enterText(this.linkTxt, '');\n await this.pressKey(this.linkTxt, value);\n } else {\n await this.enterText(this.linkTxt, value);\n }\n }\n\n async enterAnchorOrQuerystring(value: string, toPress: boolean = false) {\n if (toPress) {\n await this.enterText(this.anchorQuerystringTxt, '');\n await this.pressKey(this.anchorQuerystringTxt, value);\n } else {\n await this.enterText(this.anchorQuerystringTxt, value);\n }\n }\n\n async enterLinkTitle(value: string, toPress: boolean = false) {\n if (toPress) {\n await this.enterText(this.linkTitleTxt, '');\n await this.pressKey(this.linkTitleTxt, value);\n } else {\n await this.enterText(this.linkTitleTxt, value);\n }\n }\n\n async removeUrlPickerByName(linkName: string) {\n await this.click(this.page.locator(`[name=\"${linkName}\"]`).getByLabel('Remove'));\n await this.clickConfirmRemoveButton();\n }\n\n async clickEditUrlPickerButtonByName(linkName: string) {\n await this.click(this.page.locator(`[name=\"${linkName}\"]`).getByLabel('Edit'));\n }\n\n // Upload\n async clickRemoveFilesButton() {\n await this.click(this.removeFilesBtn);\n }\n\n // True/false\n async clickToggleButton() {\n await this.click(this.toggleBtn, {force: true});\n }\n\n async doesToggleHaveLabel(label: string) {\n await this.hasText(this.toggleInput, label);\n }\n\n // Multiple Text String\n async clickAddMultipleTextStringButton() {\n await this.click(this.addMultipleTextStringBtn);\n }\n\n async enterMultipleTextStringValue(value: string) {\n await this.enterText(this.multipleTextStringValueTxt, value);\n }\n\n async addMultipleTextStringItem(value: string) {\n await this.clickAddMultipleTextStringButton();\n await this.enterMultipleTextStringValue(value);\n }\n\n // Code Editor\n async enterCodeEditorValue(value: string) {\n await this.enterMonacoEditorValue(value);\n }\n\n // Markdown Editor\n async enterMarkdownEditorValue(value: string) {\n await this.enterMonacoEditorValue(value);\n }\n\n // Slider\n async changeSliderValue(value: string) {\n await this.sliderInput.fill(value);\n }\n\n async isElementTypeNameVisible(elementName: string, isVisible: boolean = true) {\n return await this.isVisible(this.sidebarModal.getByText(elementName), isVisible); \n }\n\n async doesModalHaveText(text: string) {\n await this.containsText(this.openedModal, text);\n }\n\n // Collection tab\n async isTabNameVisible(tabName: string) {\n return await this.isVisible(this.tabItems.filter({hasText: tabName}));\n }\n\n async clickTabWithName(tabName: string) {\n const tabLocator = this.tabItems.filter({hasText: tabName});\n await this.click(tabLocator);\n }\n\n async doesElementHaveName(name: string) {\n await this.hasValue(this.enterAName, name);\n }\n\n async doesElementTableColumnNameValuesMatch(expectedValues: string[]) {\n await this.waitForVisible(this.elementElementCollectionView);\n return expectedValues.forEach((text, index) => {\n expect(this.elementTableColumnName.nth(index).getByLabel(text)).toBeVisible();\n });\n }\n\n async clickSelectVariantButton() {\n await this.click(this.selectAVariantBtn);\n }\n\n async clickExpendSegmentButton(elementName: string) {\n await this.page.locator('.variant.culture-variant').filter({hasText: elementName}).locator(this.expandSegmentBtn).click();\n }\n\n async clickVariantAddModeButtonForLanguageName(language: string) {\n await this.click(this.variantAddModeBtn.getByText(language));\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async clickSaveAndCloseButton() {\n await this.click(this.saveAndCloseBtn);\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n // List View\n async clickCreateElementWithName(name: string) {\n await this.click(this.page.getByLabel(`Create ${name}`));\n await this.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async enterNameInContainer(name: string) {\n await this.enterText(this.enterNameInContainerTxt, name);\n }\n\n async goToElementInElementCollectionViewWithName(elementName: string) {\n await this.click(this.elementCollectionView.getByLabel(elementName));\n }\n\n async doesElementCollectionViewHaveNoItemsInList() {\n await this.isVisible(this.elementCollectionView.filter({hasText: 'There are no items to show in the list.'}));\n }\n\n async doesElementListHaveNoItemsInList() {\n await this.isVisible(this.umbElementCollection.filter({hasText: 'No items'}));\n }\n\n async clickNameButtonInElementCollectionView() {\n await this.click(this.nameBtn);\n }\n\n async doesFirstItemInElementCollectionViewHaveName(name: string) {\n await expect(this.elementCollectionViewTableRow.first()).toContainText(name);\n }\n\n async doesElementCollectionViewContainCount(count: number) {\n await this.hasCount(this.elementCollectionViewTableRow, count);\n }\n\n async selectElementWithNameInElementCollectionView(name: string) {\n await this.click(this.elementCollectionViewTableRow.filter({hasText: name}));\n }\n\n async clickPublishSelectedListItems() {\n await this.click(this.publishSelectedListItems);\n }\n\n async clickUnpublishSelectedListItems() {\n await this.click(this.unpublishSelectedListItems);\n }\n\n async clickDuplicateToSelectedListItems() {\n // Force click is needed\n await this.click(this.duplicateToSelectedListItems, {force: true});\n }\n\n async clickMoveToSelectedListItems() {\n // Force click is needed\n await this.click(this.moveToSelectedListItems, {force: true});\n }\n\n async clickTrashSelectedListItems() {\n await this.click(this.trashSelectedListItems);\n }\n\n async selectElementWithNameAtRoot(name: string) {\n await this.openCaretButtonForName('Element');\n await this.click(this.modalElement.getByLabel(name));\n await this.clickChooseButton();\n }\n\n async clickTrashButton() {\n await this.click(this.trashBtn);\n }\n\n async clickExactTrashButton() {\n await this.click(this.exactTrashBtn);\n }\n\n async isElementElementCollectionViewVisible(isVisible: boolean = true) {\n await this.isVisible(this.elementElementCollectionView, isVisible);\n }\n\n async isElementFolderCollectionViewVisible(isVisible: boolean = true) {\n await this.isVisible(this.elementFolderCollectionView, isVisible, ConstantHelper.timeout.long);\n }\n\n async isElementGridViewVisible(isVisible: boolean = true) {\n await this.isVisible(this.elementGridView, isVisible);\n }\n\n async changeElementSectionLanguage(newLanguageName: string) {\n await this.click(this.elementLanguageSelect);\n // Force click is needed\n await this.click(this.elementLanguageSelectPopover.getByText(newLanguageName), {force: true});\n }\n\n async doesElementSectionHaveLanguageSelected(languageName: string) {\n await this.hasText(this.elementLanguageSelect, languageName);\n }\n\n async isElementReadOnly(isVisible: boolean = true) {\n await this.isVisible(this.elementReadOnly, isVisible);\n }\n\n async isElementNameInputEditable(isEditable: boolean = true) {\n await this.waitForVisible(this.elementNameTxt);\n await expect(this.elementNameTxt).toBeEditable({editable: isEditable});\n }\n\n async isActionsMenuForRecycleBinVisible(isVisible: boolean = true) {\n await this.isActionsMenuForNameVisible('Recycle Bin', isVisible);\n }\n\n async isActionsMenuForRootVisible(isVisible: boolean = true) {\n await this.isActionsMenuForNameVisible('Element', isVisible);\n }\n\n async clickEmptyRecycleBinButton() {\n await this.hoverAndClick(this.recycleBinMenuItem, this.emptyRecycleBinBtn, {force: true});\n }\n\n async clickConfirmEmptyRecycleBinButton() {\n await this.click(this.confirmEmptyRecycleBinBtn);\n }\n\n async isElementPropertyEditable(propertyName: string, isEditable: boolean = true) {\n const propertyLocator = this.elementWorkspace.locator(this.property).filter({hasText: propertyName}).locator('#input');\n await this.waitForVisible(propertyLocator);\n await expect(propertyLocator).toBeEditable({editable: isEditable});\n }\n\n async doesElementPropertyHaveValue(propertyName: string, value: string) {\n const propertyLocator = this.elementWorkspace.locator(this.property).filter({hasText: propertyName}).locator('#input');\n await this.hasValue(propertyLocator, value);\n }\n\n async clickContentTab() {\n await this.click(this.splitView.getByRole('tab', {name: 'Content'}));\n }\n\n async isElementTreeEmpty() {\n await this.hasCount(this.elementTreeItem, 0);\n }\n\n async doesElementWorkspaceContainName(name: string) {\n await expect(this.elementWorkspaceEditor.locator('#input')).toHaveValue(name);\n }\n\n async doesElementWorkspaceHaveText(text: string) {\n await this.containsText(this.elementWorkspace, text);\n }\n\n async clickDuplicateToButton() {\n await this.click(this.duplicateToBtn);\n }\n\n async clickDuplicateButton() {\n await this.click(this.duplicateBtn);\n }\n\n async clickMoveToButton() {\n await this.click(this.moveToBtn);\n }\n\n async moveToElementWithName(parentNames: string[], moveTo: string) {\n for (const elementName of parentNames) {\n await this.click(this.container.getByLabel(`Expand child items for ${elementName}`));\n }\n await this.click(this.container.getByLabel(moveTo));\n await this.clickChooseContainerButton();\n }\n\n async isCaretButtonVisibleForElementName(elementName: string, isVisible: boolean = true) {\n await this.isVisible(this.page.locator(`[label=\"${elementName}\"]`).getByLabel('Expand child items for '), isVisible);\n }\n\n async reloadElementTree() {\n // Force click is needed\n await this.click(this.elementTreeRefreshBtn, {force: true});\n }\n\n async clickSortChildrenButton() {\n await this.click(this.sortChildrenBtn);\n }\n\n async clickRollbackButton() {\n await this.click(this.rollbackBtn);\n }\n\n async clickRollbackContainerButton() {\n await this.click(this.rollbackContainerBtn);\n }\n\n async clickLatestRollBackItem() {\n await this.click(this.rollbackItem.last());\n }\n\n async clickPublicAccessButton() {\n await this.click(this.publicAccessBtn);\n }\n\n async addGroupBasedPublicAccess(memberGroupName: string, elementName: string) {\n await this.click(this.groupBasedProtectionBtn);\n await this.clickNextButton();\n await this.click(this.chooseMemberGroupBtn);\n await this.click(this.page.getByLabel(memberGroupName));\n await this.clickChooseModalButton();\n await this.click(this.selectLoginPageElement);\n await this.click(this.container.getByLabel(elementName, {exact: true}));\n await this.clickChooseModalButton();\n await this.click(this.selectErrorPageElement);\n await this.click(this.container.getByLabel(elementName, {exact: true}));\n await this.clickChooseModalButton();\n await this.click(this.containerSaveBtn);\n }\n\n async sortChildrenDragAndDrop(dragFromSelector: Locator, dragToSelector: Locator, verticalOffset: number = 0, horizontalOffset: number = 0, steps: number = 5) {\n await this.waitForVisible(dragFromSelector);\n await this.waitForVisible(dragToSelector);\n const targetLocation = await dragToSelector.boundingBox();\n const elementCenterX = targetLocation!.x + targetLocation!.width / 2;\n const elementCenterY = targetLocation!.y + targetLocation!.height / 2;\n await this.hover(dragFromSelector);\n await this.page.mouse.move(10, 10);\n await this.hover(dragFromSelector);\n await this.page.mouse.down();\n await this.page.waitForTimeout(ConstantHelper.wait.debounce);\n await this.page.mouse.move(elementCenterX + horizontalOffset, elementCenterY + verticalOffset, {steps: steps});\n await this.page.waitForTimeout(ConstantHelper.wait.debounce);\n // If we do not have this, the drag and drop will not work\n await this.hover(dragToSelector);\n await this.page.mouse.up();\n }\n\n async clickSortButton() {\n await this.click(this.sortBtn);\n }\n\n async doesIndexElementInTreeContainName(parentName: string, childName: string, index: number) {\n await expect(this.elementTreeItem.locator(`[label=\"${parentName}\"]`).locator('umb-tree-item').nth(index).locator('#label')).toHaveText(childName);\n }\n\n async selectMemberGroup(memberGroupName: string) {\n await this.click(this.uuiCheckbox.getByLabel(memberGroupName));\n }\n\n async isPermissionInActionsMenuVisible(permissionName: string, isVisible: boolean = true) {\n await this.isVisible(this.actionsMenu.getByRole('button', {\n name: permissionName,\n exact: true\n }), isVisible);\n }\n\n async clickElementLinkButton() {\n await this.click(this.linkToElementBtn);\n }\n\n async clickMediaLinkButton() {\n await this.click(this.linkToMediaBtn);\n }\n\n async clickManualLinkButton() {\n await this.click(this.linkToManualBtn);\n }\n\n // Block Grid - Block List\n async clickAddBlockElementButton() {\n await this.click(this.addBlockElementBtn);\n }\n\n async clickAddBlockWithNameButton(name: string) {\n await this.click(this.page.getByLabel(`Add ${name}`));\n }\n\n async clickCreateInModal(headline: string, options?: {waitForClose?: 'target' | 'any'}) {\n const modalLocator = this.page.locator('[headline=\"' + headline + '\"]');\n await this.click(modalLocator.getByLabel('Create'));\n\n if (options?.waitForClose === 'target') {\n await this.waitForHidden(modalLocator);\n } else if (options?.waitForClose === 'any') {\n await this.waitForHidden(this.openedModal);\n }\n }\n\n async isAddBlockElementButtonVisible(isVisible: boolean = true) {\n await this.isVisible(this.addBlockElementBtn, isVisible);\n }\n\n async isAddBlockElementButtonWithLabelVisible(blockName: string, label: string, isVisible: boolean = true) {\n await this.isVisible(this.property.filter({hasText: blockName}).locator(this.addBlockElementBtn).filter({hasText: label}), isVisible);\n }\n\n async doesFormValidationMessageContainText(text: string) {\n await this.containsText(this.formValidationMessage, text);\n }\n\n async doesBlockElementHaveName(name: string) {\n await this.containsText(this.blockName, name);\n }\n\n async clickAddBlockSettingsTabButton() {\n await this.click(this.addBlockSettingsTabBtn);\n }\n\n async clickEditBlockGridBlockButton() {\n await this.hoverAndClick(this.blockGridEntry, this.editBlockEntryBtn);\n }\n\n async clickDeleteBlockGridBlockButton() {\n await this.hoverAndClick(this.blockGridEntry, this.deleteBlockEntryBtn);\n }\n\n async clickEditBlockListBlockButton() {\n await this.hoverAndClick(this.blockListEntry, this.editBlockEntryBtn);\n }\n\n async clickDeleteBlockListBlockButton() {\n await this.hoverAndClick(this.blockListEntry, this.deleteBlockEntryBtn);\n }\n\n async clickCopyBlockListBlockButton(groupName: string, propertyName: string, blockName: string, index: number = 0) {\n const blockListBlock = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockListEntry).nth(index).filter({hasText: blockName});\n await this.hoverAndClick(blockListBlock, blockListBlock.locator(this.copyBlockEntryBtn), {force: true});\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async clickCopyBlockGridBlockButton(groupName: string, propertyName: string, blockName: string, index: number = 0) {\n const blockGridBlock = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockGridEntry).nth(index).filter({hasText: blockName});\n await this.hoverAndClick(blockGridBlock, blockGridBlock.locator(this.copyBlockEntryBtn), {force: true});\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async clickPasteFromClipboardButtonForProperty(groupName: string, propertyName: string) {\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n const property = this.workspaceEditTab.filter({hasText: groupName}).locator(this.property).filter({hasText: propertyName});\n await this.click(property.locator(this.pasteFromClipboardBtn), {force: true});\n }\n\n async clickActionsMenuForProperty(groupName: string, propertyName: string) {\n const property = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName});\n await this.hoverAndClick(property, property.locator(this.openActionsMenu), {force: true});\n }\n\n async clickAddBlockGridElementWithName(elementTypeName: string) {\n await this.click(this.page.getByRole('link', {name: `Add ${elementTypeName}`, exact: true}));\n }\n\n async clickEditBlockListEntryWithName(blockListElementName: string) {\n await this.click(this.blockListEntry.filter({hasText: blockListElementName}).getByLabel('edit'), {force: true});\n }\n\n async clickEditBlockGridEntryWithName(blockGridElementName: string) {\n const blockGridElementLocator = this.blockGridEntry.filter({hasText: blockGridElementName});\n const blockGridEditButton = blockGridElementLocator.getByLabel('edit');\n await this.hoverAndClick(blockGridElementLocator, blockGridEditButton, {force: true});\n }\n\n async goToRTEBlockWithName(groupName: string, propertyName: string, blockName: string, index: number = 0) {\n const rteProperty = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName});\n const rteBlockLocator = rteProperty.locator(this.rteBlock).filter({hasText: blockName}).nth(index);\n await this.click(rteBlockLocator);\n }\n\n async clickSelectBlockElementWithName(elementTypeName: string) {\n await this.click(this.page.getByRole('button', {name: elementTypeName, exact: true}));\n }\n\n async clickSelectBlockElementInAreaWithName(elementTypeName: string) {\n await this.click(this.container.getByRole('button', {name: elementTypeName, exact: true}));\n }\n\n async clickBlockElementWithName(elementTypeName: string) {\n await this.click(this.page.getByRole('link', {name: elementTypeName, exact: true}), {force: true});\n }\n\n async enterPropertyValue(propertyName: string, value: string) {\n const property = this.property.filter({hasText: propertyName});\n await this.enterText(property.locator('input'), value);\n }\n\n async doesBlockContainBlockInAreaWithName(blockWithAreaName: string, areaName: string, blockInAreaName: string, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const blockInArea = area.locator(this.blockGridEntry.filter({hasText: blockInAreaName}));\n await this.waitForVisible(blockInArea);\n }\n\n async doesBlockContainBlockCountInArea(blockWithAreaName: string, areaName: string, blocksInAreaCount: number, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const blocks = area.locator(this.blockGridEntry);\n await this.hasCount(blocks, blocksInAreaCount);\n }\n\n async doesBlockContainCountOfBlockInArea(blockWithAreaName: string, areaName: string, blockInAreaName: string, count: number, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const blockInArea = area.locator(this.blockGridEntry.filter({hasText: blockInAreaName}));\n await this.hasCount(blockInArea, count);\n }\n\n async getBlockAtRootDataElementKey(blockName: string, index: number = 0) {\n const blockGridEntrySelector = 'umb-block-grid-entry';\n return this.blockGridEntries.locator(`.umb-block-grid__layout-container > ${blockGridEntrySelector}`).filter({hasText: blockName}).nth(index).getAttribute('data-element-key');\n }\n\n async getBlockAreaKeyFromParentBlockDataElementKey(parentKey: string, index: number = 0) {\n const block = this.page.locator(`[data-element-key=\"${parentKey}\"]`);\n return block.locator(this.blockGridAreasContainer).locator('.umb-block-grid__area-container > umb-block-grid-entries').nth(index).getAttribute('area-key');\n }\n\n async getBlockDataElementKeyInArea(parentBlockName: string, areaName: string, blockName: string, parentIndex: number = 0, childIndex: number = 0) {\n const parentBlock = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: parentBlockName})).nth(parentIndex);\n const area = parentBlock.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const block = area.locator(this.blockGridEntry.filter({hasText: blockName})).nth(childIndex);\n return block.getAttribute('data-element-key');\n }\n\n async removeBlockFromArea(parentBlockName: string, areaName: string, blockName: string, parentIndex: number = 0, childIndex: number = 0) {\n const parentBlock = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: parentBlockName})).nth(parentIndex);\n const area = parentBlock.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const block = area.locator(this.blockGridEntry.filter({hasText: blockName})).nth(childIndex);\n await this.hoverAndClick(block, block.getByLabel('delete'), {force: true});\n }\n\n async doesBlockAreaContainColumnSpan(blockWithAreaName: string, areaName: string, columnSpan: number, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n await this.hasAttribute(area, 'data-area-col-span', columnSpan.toString());\n }\n\n async doesBlockAreaContainRowSpan(blockWithAreaName: string, areaName: string, rowSpan: number, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n await this.hasAttribute(area, 'data-area-row-span', rowSpan.toString());\n }\n\n async clickInlineAddToAreaButton(parentBlockName: string, areaName: string, parentIndex: number = 0, buttonIndex: number = 1) {\n const parentBlock = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: parentBlockName})).nth(parentIndex);\n const area = parentBlock.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n await this.click(area.locator(this.inlineCreateBtn).nth(buttonIndex));\n }\n\n async addBlockToAreasWithExistingBlock(blockWithAreaName: string, areaName: string, parentIndex: number = 0, addToIndex: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock).filter({hasText: blockWithAreaName}).nth(parentIndex);\n await this.hover(blockWithArea);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const addBlockBtn = area.locator(this.inlineCreateBtn).nth(addToIndex);\n await this.hover(addBlockBtn, {force: true});\n await this.click(addBlockBtn, {force: true});\n }\n\n async doesBlockGridBlockWithAreaContainCreateLabel(blockWithAreaName: string, createLabel: string, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n return await this.isVisible(blockWithArea.locator(this.blockGridAreasContainer).getByLabel(createLabel));\n }\n\n async doesPropertyContainValue(propertyName: string, value: string) {\n await expect(this.property.filter({hasText: propertyName}).locator('input')).toHaveValue(value);\n }\n\n async clickCreateButtonForModalWithElementTypeNameAndGroupName(headlineName: string, groupName: string) {\n await this.click(this.blockWorkspace.filter({hasText: `Add ${headlineName}`}).filter({hasText: groupName}).getByLabel('Create'));\n }\n\n async clickUpdateButtonForModalWithElementTypeNameAndGroupName(headlineName: string, groupName: string) {\n await this.click(this.blockWorkspace.filter({hasText: `Edit ${headlineName}`}).filter({hasText: groupName}).locator(this.updateBtn));\n }\n\n async clickExactCopyButton() {\n await this.click(this.exactCopyBtn);\n }\n\n async clickExactReplaceButton() {\n await this.click(this.replaceExactBtn);\n }\n\n async doesClipboardHaveCopiedBlockWithName(elementName: string, propertyName: string, blockName: string, index: number = 0) {\n await this.isVisible(this.clipboardEntryPicker.getByLabel(`${elementName} - ${propertyName} - ${blockName}`).nth(index));\n }\n\n async doesClipboardHaveCopiedBlocks(elementName: string, propertyName: string, index: number = 0) {\n await this.isVisible(this.clipboardEntryPicker.getByLabel(`${elementName} - ${propertyName}`).nth(index));\n }\n\n async doesClipboardContainCopiedBlocksCount(count: number) {\n await this.hasCount(this.clipboardEntryPicker.locator(this.menuItem), count);\n }\n\n async selectClipboardEntryWithName(elementName: string, propertyName: string, blockName: string, index: number = 0) {\n await this.doesClipboardHaveCopiedBlockWithName(elementName, propertyName, blockName, index);\n await this.click(this.clipboardEntryPicker.getByLabel(`${elementName} - ${propertyName} - ${blockName}`).nth(index));\n }\n\n async selectClipboardEntriesWithName(elementName: string, propertyName: string, index: number = 0) {\n await this.doesClipboardHaveCopiedBlocks(elementName, propertyName, index);\n await this.click(this.clipboardEntryPicker.getByLabel(`${elementName} - ${propertyName}`).nth(index));\n }\n\n async goToBlockGridBlockWithName(groupName: string, propertyName: string, blockName: string, index: number = 0) {\n const blockGridBlock = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockGridEntry).nth(index).filter({hasText: blockName});\n await this.click(blockGridBlock);\n }\n\n async goToBlockListBlockWithName(groupName: string, propertyName: string, blockName: string, index: number = 0) {\n const blocklistBlock = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockListEntry).nth(index).filter({hasText: blockName});\n await this.click(blocklistBlock);\n }\n\n async doesBlockEditorBlockWithNameContainValue(groupName: string, propertyName: string, inputType: string = ConstantHelper.inputTypes.general, value) {\n await expect(this.blockWorkspaceEditTab.filter({hasText: groupName}).locator(this.property).filter({hasText: propertyName}).locator(inputType)).toContainText(value);\n }\n\n async clickCloseButton() {\n await this.click(this.closeBtn);\n }\n\n async clickPasteButton() {\n await this.click(this.pasteBtn, {force: true});\n }\n\n async doesBlockListPropertyHaveBlockAmount(groupName: string, propertyName: string, amount: number) {\n await this.hasCount(this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockListEntry), amount);\n }\n\n async doesBlockGridPropertyHaveBlockAmount(groupName: string, propertyName: string, amount: number) {\n await this.hasCount(this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockGridEntry), amount);\n }\n\n async doesPropertyContainValidationMessage(groupName: string, propertyName: string, message: string) {\n await expect(this.blockWorkspaceEditTab.filter({hasText: groupName}).locator(this.property).filter({hasText: propertyName}).locator(this.validationMessage)).toContainText(message);\n }\n\n async clickInsertBlockButton() {\n await this.click(this.insertBlockBtn);\n }\n\n // TipTap\n async enterRTETipTapEditor(value: string) {\n await this.enterText(this.tipTapEditor, value);\n }\n \n async typeRTETipTapEditorValue(value: string, toClearFirst = false) {\n await this.typeText(this.tipTapEditor, value, {clearFirst: toClearFirst});\n }\n \n async clickCreateBlockModalButtonAndWaitForModalToClose() {\n await this.click(this.modalCreateBtn);\n await this.waitForHidden(this.backofficeModalContainer);\n }\n\n async clickUpdateBlockModalButtonAndWaitForModalToClose() {\n await this.click(this.modalUpdateBtn);\n await this.waitForHidden(this.backofficeModalContainer);\n }\n async enterRTETipTapEditorWithName(name: string , value: string){\n const tipTapEditorLocator = this.page.locator(`[data-mark=\"property:${name}\"]`).locator(this.tipTapEditor);\n await this.enterText(tipTapEditorLocator, value);\n }\n\n async clickTipTapToolbarIconWithTitle(iconTitle: string) {\n await this.click(this.tipTapPropertyEditor.getByTitle(iconTitle, {exact: true}).locator('svg'));\n }\n\n async doesUploadedSvgThumbnailHaveSrc(imageSrc: string) {\n await this.hasAttribute(this.uploadedSvgThumbnail, 'src', imageSrc);\n }\n\n async doesRichTextEditorBlockContainLabel(richTextEditorAlias: string, label: string) {\n await expect(this.page.getByTestId(`property:${richTextEditorAlias}`).locator(this.rteBlock)).toContainText(label);\n }\n\n async doesBlockEditorModalContainEditorSize(editorSize: string, elementName: string) {\n await this.isVisible(this.backofficeModalContainer.locator(`[size=\"${editorSize}\"]`).locator(`[headline=\"Add ${elementName}\"]`));\n }\n\n async doesBlockEditorModalContainInline(richTextEditorAlias: string, elementName: string) {\n await this.containsText(this.page.getByTestId(`property:${richTextEditorAlias}`).locator(this.tiptapInput).locator(this.rteBlockInline), elementName);\n }\n\n async doesBlockHaveBackgroundColor(elementName: string, backgroundColor: string) {\n await this.isVisible(this.page.locator('umb-block-type-card', {hasText: elementName}).locator(`[style=\"background-color:${backgroundColor};\"]`));\n }\n\n async doesBlockHaveIconColor(elementName: string, backgroundColor: string) {\n await this.isVisible(this.page.locator('umb-block-type-card', {hasText: elementName}).locator(`[color=\"${backgroundColor}\"]`));\n }\n\n async addElementDomain(domainName: string, languageName: string) {\n await this.clickCultureAndHostnamesButton();\n await this.clickAddNewHostnameButton();\n await this.enterDomain(domainName);\n await this.selectHostnameLanguageOption(languageName);\n await this.clickSaveModalButton();\n }\n\n // Scheduled Publishing\n async clickViewMoreOptionsButton() {\n await this.click(this.viewMoreOptionsBtn);\n }\n\n async clickSchedulePublishButton() {\n await this.click(this.schedulePublishBtn);\n }\n\n async clickSchedulePublishModalButton() {\n await this.click(this.schedulePublishModalBtn);\n }\n\n async enterPublishTime(time: string, index: number = 0) {\n const publishAtTxt = this.elementScheduleModal.locator('.publish-date').nth(index).locator('uui-form-layout-item').first().locator('#input');\n await this.enterText(publishAtTxt, time);\n }\n\n async enterUnpublishTime(time: string, index: number = 0) {\n const unpublishAtTxt = this.elementScheduleModal.locator('.publish-date').nth(index).locator('uui-form-layout-item').last().locator('#input');\n await this.enterText(unpublishAtTxt, time);\n }\n\n async doesPublishAtValidationMessageContainText(text: string) {\n await this.containsText(this.publishAtValidationMessage, text);\n }\n\n async doesUnpublishAtValidationMessageContainText(text: string) {\n await this.containsText(this.unpublishAtValidationMessage, text);\n }\n\n async doesLastPublishedContainText(text: string) {\n await this.containsText(this.lastPublished, text);\n }\n\n async doesPublishAtContainText(text: string) {\n await this.containsText(this.publishAt, text);\n }\n\n async doesRemoveAtContainText(text: string) {\n await this.containsText(this.removeAt, text);\n }\n\n async clickSelectAllCheckbox() {\n await this.click(this.selectAllCheckbox);\n }\n\n async doesSchedulePublishModalButtonContainDisabledTag(hasDisabledTag: boolean = false) {\n if (!hasDisabledTag) {\n await expect(this.schedulePublishModalBtn).not.toHaveAttribute('disabled', '');\n } else {\n await this.hasAttribute(this.schedulePublishModalBtn, 'disabled', '');\n }\n }\n\n async clickInlineBlockCaretButtonForName(blockEditorName: string, index: number = 0) {\n const caretButtonLocator = this.blockListEntry.filter({hasText: blockEditorName}).nth(index).locator('uui-symbol-expand svg');\n await this.click(caretButtonLocator);\n }\n\n async doesTiptapHaveWordCount(count: number) {\n await this.hasText(this.tiptapStatusbarWordCount, `${count} words`);\n }\n\n async doesTiptapHaveCharacterCount(count: number) {\n await this.hasText(this.tiptapStatusbarWordCount, `${count} characters`);\n }\n\n async clickTiptapWordCountButton() {\n await this.click(this.tiptapStatusbarWordCount);\n }\n\n async doesElementPathHaveText(text: string) {\n await this.hasText(this.tiptapStatusbarElementPath, text);\n }\n\n async clickConfirmToPublishButton() {\n await this.click(this.confirmToPublishBtn);\n // Extra wait to ensure publish process starts\n await this.waitForTimeout(ConstantHelper.wait.medium);\n }\n\n async clickPublishWithDescendantsButton() {\n await this.click(this.publishWithDescendantsBtn);\n }\n\n async clickIncludeUnpublishedDescendantsToggle() {\n await this.click(this.includeUnpublishedDescendantsToggle);\n }\n\n async clickPublishWithDescendantsModalButton() {\n await this.click(this.publishWithDescendantsModalBtn);\n }\n\n async doesElementVariantLanguageItemHaveCount(count: number) {\n await this.hasCount(this.elementVariantLanguageItem, count);\n }\n\n async doesElementVariantLanguageItemHaveName(name: string) {\n await this.containsText(this.elementVariantLanguagePicker, name);\n }\n\n async clickSchedulePublishLanguageButton(languageName: string) {\n await this.click(this.page.getByRole('menu').filter({hasText: languageName}));\n }\n\n async clickBlockCardWithName(name: string, toForce: boolean = false) {\n const blockWithNameLocator = this.page.locator('uui-card-block-type', {hasText: name});\n await this.click(blockWithNameLocator, {force: toForce});\n }\n\n async clickStyleSelectButton() {\n await this.click(this.styleSelectBtn);\n }\n\n async clickCascadingMenuItemWithName(name: string) {\n const menuItemLocator = this.cascadingMenuContainer.locator(`uui-menu-item[label=\"${name}\"]`);\n await this.click(menuItemLocator);\n }\n\n async hoverCascadingMenuItemWithName(name: string) {\n const menuItemLocator = this.cascadingMenuContainer.locator(`uui-menu-item[label=\"${name}\"]`);\n await this.hover(menuItemLocator);\n }\n\n async selectAllRTETipTapEditorText() {\n await this.click(this.tipTapEditor);\n await this.pressKey(this.tipTapEditor, 'Control+A');\n }\n\n async clearTipTapEditor() {\n await this.waitForVisible(this.tipTapEditor);\n // We use the middle mouse button click so we don't accidentally open a block in the RTE. This solution avoids that.\n await this.tipTapEditor.click({button: \"middle\"});\n await this.pressKey(this.tipTapEditor, 'Control+A');\n await this.pressKey(this.tipTapEditor, 'Backspace');\n }\n\n async clickBlockElementInRTEWithName(elementTypeName: string) {\n const blockElementLocator = this.page.locator('uui-ref-node umb-ufm-render').filter({hasText: elementTypeName});\n await this.click(blockElementLocator, {force: true});\n }\n\n async doesModalFormValidationMessageContainText(text: string) {\n await this.containsText(this.modalFormValidationMessage, text);\n }\n\n async enterSearchKeywordInTreePickerModal(keyword: string) {\n await this.enterText(this.treePickerSearchTxt, keyword);\n await this.pressKey(this.treePickerSearchTxt, 'Enter');\n }\n\n async enterSearchKeywordInMediaPickerModal(keyword: string) {\n await this.enterText(this.mediaPickerSearchTxt, keyword);\n await this.pressKey(this.mediaPickerSearchTxt, 'Enter');\n }\n\n async enterSearchKeywordInMemberPickerModal(keyword: string) {\n await this.enterText(this.memberPickerSearchTxt, keyword);\n await this.pressKey(this.memberPickerSearchTxt, 'Enter');\n }\n \n async isElementNameReadOnly() {\n await expect(this.elementNameTxt).toHaveAttribute('readonly');\n }\n\n // Block Custom View\n async isBlockCustomViewVisible(blockCustomViewLocator: string, isVisible: boolean = true) {\n await this.isVisible(this.page.locator(blockCustomViewLocator), isVisible);\n }\n\n async isSingleBlockElementVisible(isVisible: boolean = true) {\n const count = await this.refListBlock.count();\n if (isVisible) {\n expect(count, `Expected only one element, but found ${count}`).toBe(1);\n } else {\n expect(count, `Expected only one element, but found ${count}`).toBe(0);\n }\n await this.isVisible(this.refListBlock, isVisible);\n }\n\n async doesBlockCustomViewHaveValue(customBlockViewLocator: string, valueText: string) {\n const locator = this.page.locator(`${customBlockViewLocator} p`);\n await this.waitForVisible(locator);\n await this.hasText(locator, valueText);\n }\n\n async clickPropertyActionWithName(name: string) {\n const actionLocator = this.propertyActionMenu.locator(`umb-property-action uui-menu-item[label=\"${name}\"]`);\n await this.click(actionLocator);\n }\n \n async isElementWithNameVisibleInList(elementName: string, isVisible: boolean = true) {\n await this.isVisible(this.elementTableColumnName.filter({hasText: elementName}), isVisible);\n }\n \n async selectElementBlueprintWithName(blueprintName: string) {\n const blueprintLocator = this.elementCreateOptionsModal.locator('uui-menu-item', {hasText: blueprintName});\n await this.click(blueprintLocator);\n }\n\n async doesElementModalHaveText(text: string) {\n await this.containsText(this.elementCreateOptionsModal, text);\n }\n\n async doesElementCollectionViewItemsHaveCount(pageSize: number){\n await this.hasCount(this.elementCollectionViewCustomRows, pageSize);\n }\n\n async isElementCollectionViewItemWithNameVisible(itemName: string, index: number = 0){\n await expect(this.elementCollectionViewCustomRows.nth(index)).toContainText(itemName);\n }\n\n async clickPaginationNextButton(){\n await this.click(this.nextPaginationBtn);\n }\n\n // Entity Data Picker\n async chooseCollectionMenuItemWithName(name: string) {\n await this.clickChooseButton();\n await this.click(this.collectionMenu.locator('umb-collection-menu-item', {hasText: name}));\n await this.clickChooseContainerButton();\n await this.page.waitForTimeout(500);\n }\n\n async chooseTreeMenuItemWithName(name: string, parentNames: string[] = []) {\n await this.clickChooseButton();\n for (const itemName of parentNames) {\n await this.click(this.entityPickerTree.locator('umb-tree-item').getByLabel(`Expand child items for ${itemName}`));\n }\n await this.click(this.container.getByLabel(name));\n await this.clickChooseContainerButton();\n await this.page.waitForTimeout(500);\n }\n \n async isChooseButtonVisible(isVisible: boolean = true) {\n await this.isVisible(this.chooseBtn, isVisible);\n }\n\n async clickElementNotificationOptionWithName(name: string) {\n const notificationOptionLocator = this.page.locator(`umb-element-notifications-modal [id$=\"${name}\"]`).locator('#toggle');\n await this.click(notificationOptionLocator);\n }\n\n async switchLanguage(languageName: string) {\n await this.click(this.languageToggle);\n const languageOptionLocator = this.elementVariantDropdown.locator('.culture-variant').filter({hasText: languageName});\n await this.click(languageOptionLocator);\n await expect(languageOptionLocator).toContainClass('selected');\n }\n\n async clickAddBlockListElementWithName(blockName: string) {\n const createNewButtonLocator = this.page.getByTestId(`property:${blockName.toLowerCase()}`).getByLabel('Create new');\n await this.click(createNewButtonLocator);\n }\n\n async isAddBlockListElementWithNameDisabled(blockName: string) {\n const createNewButtonLocator = this.page.getByTestId(`property:${blockName.toLowerCase()}`).locator('uui-button[label=\"Create new\"]');\n await expect(createNewButtonLocator).toHaveAttribute('disabled');\n }\n\n async isAddBlockListElementWithNameVisible(blockName: string) {\n const createNewButtonLocator = this.page.getByTestId(`property:${blockName.toLowerCase()}`).locator('uui-button[label=\"Create new\"]');\n await this.waitForVisible(createNewButtonLocator);\n await expect(createNewButtonLocator).not.toHaveAttribute('disabled');\n }\n\n async enterBlockPropertyValue(propertyName: string, value: string) {\n const property = this.blockProperty.filter({hasText: propertyName});\n await this.enterText(property.locator('input'), value);\n }\n\n async isBlockPropertyEditable(propertyName: string, isEditable: boolean = true) {\n const propertyLocator = this.blockProperty.filter({hasText: propertyName}).locator('#input');\n await this.waitForVisible(propertyLocator);\n await expect(propertyLocator).toBeEditable({editable: isEditable});\n }\n\n async isInlineBlockPropertyVisible(propertyName: string, isVisible: boolean = true) {\n const propertyLocator = this.blockListEntry.locator(this.blockProperty).filter({hasText: propertyName});\n await this.isVisible(propertyLocator, isVisible);\n }\n\n async isInlineBlockPropertyVisibleForBlockWithName(blockName: string, propertyName: string, isVisible: boolean = true, index: number = 0) {\n const blockEntryLocator = this.blockListEntry.filter({hasText: blockName}).nth(index);\n const propertyLocator = blockEntryLocator.locator(this.blockProperty).filter({hasText: propertyName});\n await this.isVisible(propertyLocator, isVisible);\n }\n\n async enterInlineBlockPropertyValue(propertyName: string, value: string, index: number = 0) {\n const propertyLocator = this.blockListEntry.nth(index).locator(this.blockProperty).filter({hasText: propertyName});\n await this.enterText(propertyLocator.locator('input'), value);\n }\n\n async doesInlineBlockPropertyHaveValue(propertyName: string, value: string, index: number = 0) {\n const propertyLocator = this.blockListEntry.nth(index).locator(this.blockProperty).filter({hasText: propertyName}).locator('input');\n await this.hasValue(propertyLocator, value);\n }\n\n async clickConfirmTrashButtonAndWaitForElementToBeTrashed() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickConfirmTrashButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickConfirmEmptyRecycleBinButtonAndWaitForRecycleBinToBeEmptied() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.recycleBinElement, this.clickConfirmEmptyRecycleBinButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickConfirmToPublishButtonAndWaitForElementToBePublished() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickConfirmToPublishButton(), ConstantHelper.statusCodes.ok);\n }\n\n async isLinkPickerAddButtonEnabled() {\n await expect(this.linkPickerAddBtn).toBeEnabled();\n }\n\n async isLinkPickerAddButtonDisabled() {\n await expect(this.linkPickerAddBtn).toBeDisabled();\n }\n\n async clickLinkPickerCloseButton() {\n await this.click(this.linkPickerCloseBtn);\n }\n\n async clickLinkPickerAddButton() {\n await this.click(this.linkPickerAddBtn);\n }\n\n async clickLinkPickerTargetToggle() {\n await this.click(this.linkPickerTargetToggle);\n }\n\n async clickConfirmToResetButton() {\n await this.click(this.confirmToResetBtn);\n }\n\n async doesTextStringHaveExpectedValue(expectedValue: string) {\n await this.hasValue(this.textstringTxt, expectedValue);\n }\n\n async doesTextAreaHaveExpectedValue(expectedValue: string) {\n await this.hasValue(this.textAreaTxt, expectedValue);\n }\n\n async clickElementButton() {\n await this.click(this.elementBtn);\n }\n\n async clickElementFolderButton() {\n await this.click(this.elementFolderBtn);\n }\n\n async clickCreateFolderButtonAndWaitForElementFolderToBeCreated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.elementFolder, this.clickCreateFolderButton(), ConstantHelper.statusCodes.created);\n }\n\n async clickConfirmCreateFolderButtonAndWaitForElementFolderToBeCreated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.elementFolder, this.clickConfirmCreateFolderButton(), ConstantHelper.statusCodes.created);\n }\n\n async clickConfirmRenameFolderButtonAndWaitForElementFolderToBeRenamed() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.elementFolder, this.clickConfirmRenameButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickConfirmTrashButtonAndWaitForElementFolderToBeTrashed() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.elementFolder, this.clickConfirmTrashButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickConfirmToUnpublishButtonAndWaitForElementToBeUnpublished() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickConfirmToUnpublishButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickDeleteButtonForTrashedElememtWithName(elementName: string) {\n const trashedElementLocator = this.page.locator('uui-menu-item[label=\"' + elementName + '\"]');\n const deleteButtonLocator = trashedElementLocator.getByLabel('Delete', {exact: true});\n await this.hoverAndClick(trashedElementLocator, deleteButtonLocator, {force: true});\n }\n\n async clickConfirmToDeleteButtonAndWaitForElementToBeDeleted() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickConfirmToDeleteButton(), ConstantHelper.statusCodes.ok);\n }\n}"]}
1
+ {"version":3,"file":"LibraryUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/LibraryUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\nimport {ConstantHelper} from \"./ConstantHelper\";\n\nexport class LibraryUiHelper extends UiBaseLocators {\n private readonly elementNameTxt: Locator;\n private readonly saveAndPublishBtn: Locator;\n private readonly publishBtn: Locator;\n private readonly unpublishBtn: Locator;\n private readonly actionMenuForElementBtn: Locator;\n private readonly textstringTxt: Locator;\n private readonly infoTab: Locator;\n private readonly linkElement: Locator;\n private readonly historyItems: Locator;\n private readonly generalItem: Locator;\n private readonly elementState: Locator;\n private readonly createdDate: Locator;\n private readonly editElementTypeBtn: Locator;\n private readonly addTemplateBtn: Locator;\n private readonly id: Locator;\n private readonly cultureAndHostnamesBtn: Locator;\n private readonly cultureLanguageDropdownBox: Locator;\n private readonly addNewHostnameBtn: Locator;\n private readonly hostnameTxt: Locator;\n private readonly hostnameLanguageDropdownBox: Locator;\n private readonly deleteHostnameBtn: Locator;\n private readonly reloadChildrenThreeDotsBtn: Locator;\n private readonly elementTree: Locator;\n private readonly richTextAreaTxt: Locator;\n private readonly textAreaTxt: Locator;\n private readonly plusIconBtn: Locator;\n private readonly enterTagTxt: Locator;\n private readonly menuItemTree: Locator;\n private readonly hostnameComboBox: Locator;\n private readonly confirmToUnpublishBtn: Locator;\n private readonly saveModalBtn: Locator;\n private readonly dropdown: Locator;\n private readonly setADateTxt: Locator;\n private readonly chooseMediaPickerBtn: Locator;\n private readonly chooseMemberPickerBtn: Locator;\n private readonly numericTxt: Locator;\n private readonly resetFocalPointBtn: Locator;\n private readonly addMultiURLPickerBtn: Locator;\n private readonly linkTxt: Locator;\n private readonly anchorQuerystringTxt: Locator;\n private readonly linkTitleTxt: Locator;\n private readonly tagItems: Locator;\n private readonly removeFilesBtn: Locator;\n private readonly toggleBtn: Locator;\n private readonly toggleInput: Locator;\n private readonly elementTypeWorkspace: Locator;\n private readonly addMultipleTextStringBtn: Locator;\n private readonly multipleTextStringValueTxt: Locator;\n private readonly sliderInput: Locator;\n private readonly tabItems: Locator;\n private readonly elementWorkspace: Locator;\n private readonly selectAVariantBtn: Locator;\n private readonly variantAddModeBtn: Locator;\n private readonly saveAndCloseBtn: Locator;\n private readonly enterNameInContainerTxt: Locator;\n private readonly elementCollectionView: Locator;\n private readonly nameBtn: Locator;\n private readonly elementCollectionViewTableRow: Locator;\n private readonly publishSelectedListItems: Locator;\n private readonly unpublishSelectedListItems: Locator;\n private readonly duplicateToSelectedListItems: Locator;\n private readonly moveToSelectedListItems: Locator;\n private readonly trashSelectedListItems: Locator;\n private readonly modalElement: Locator;\n private readonly trashBtn: Locator;\n private readonly elementElementCollectionView: Locator;\n private readonly elementGridView: Locator;\n private readonly elementFolderCollectionView: Locator;\n private readonly elementTreeItem: Locator;\n private readonly elementLanguageSelect: Locator;\n private readonly elementLanguageSelectPopover: Locator;\n private readonly elementReadOnly: Locator;\n private readonly elementWorkspaceEditor: Locator;\n private readonly exactTrashBtn: Locator;\n private readonly emptyRecycleBinBtn: Locator;\n private readonly confirmEmptyRecycleBinBtn: Locator;\n private readonly duplicateToBtn: Locator;\n private readonly moveToBtn: Locator;\n private readonly duplicateBtn: Locator;\n private readonly elementTreeRefreshBtn: Locator;\n private readonly sortChildrenBtn: Locator;\n private readonly rollbackBtn: Locator;\n private readonly rollbackContainerBtn: Locator;\n private readonly publicAccessBtn: Locator;\n private readonly uuiCheckbox: Locator;\n private readonly sortBtn: Locator;\n private readonly containerSaveBtn: Locator\n private readonly groupBasedProtectionBtn: Locator;\n private readonly chooseMemberGroupBtn: Locator;\n private readonly selectLoginPageElement: Locator;\n private readonly selectErrorPageElement: Locator;\n private readonly rollbackItem: Locator;\n private readonly actionsMenu: Locator;\n private readonly linkToElementBtn: Locator;\n private readonly linkToMediaBtn: Locator;\n private readonly linkToManualBtn: Locator;\n private readonly umbElementCollection: Locator;\n private readonly elementTableColumnName: Locator;\n private readonly addBlockElementBtn: Locator;\n private readonly formValidationMessage: Locator;\n private readonly blockName: Locator;\n private readonly addBlockSettingsTabBtn: Locator;\n private readonly editBlockEntryBtn: Locator;\n private readonly copyBlockEntryBtn: Locator;\n private readonly deleteBlockEntryBtn: Locator;\n private readonly blockGridEntry: Locator;\n private readonly blockListEntry: Locator;\n private readonly tipTapPropertyEditor: Locator;\n private readonly tipTapEditor: Locator;\n private readonly uploadedSvgThumbnail: Locator;\n private readonly linkPickerModal: Locator;\n private readonly pasteFromClipboardBtn: Locator;\n private readonly pasteBtn: Locator;\n private readonly closeBtn: Locator;\n private readonly workspaceEditTab: Locator;\n private readonly workspaceEditProperties: Locator;\n private readonly exactCopyBtn: Locator;\n private readonly openActionsMenu: Locator;\n private readonly replaceExactBtn: Locator;\n private readonly clipboardEntryPicker: Locator;\n private readonly blockWorkspaceEditTab: Locator;\n private readonly insertBlockBtn: Locator;\n private readonly blockWorkspace: Locator;\n private readonly saveElementBtn: Locator;\n private readonly splitView: Locator;\n private readonly tiptapInput: Locator;\n private readonly rteBlockInline: Locator;\n private readonly modalCreateBtn: Locator;\n private readonly modalUpdateBtn: Locator;\n private readonly rteBlock: Locator;\n private readonly workspaceActionMenu: Locator;\n private readonly workspaceActionMenuItem: Locator;\n private readonly viewMoreOptionsBtn: Locator;\n private readonly schedulePublishBtn: Locator;\n private readonly schedulePublishModalBtn: Locator;\n private readonly elementScheduleModal: Locator;\n private readonly publishAtFormLayout: Locator;\n private readonly unpublishAtFormLayout: Locator;\n private readonly publishAtValidationMessage: Locator;\n private readonly unpublishAtValidationMessage: Locator;\n private readonly lastPublished: Locator;\n private readonly publishAt: Locator;\n private readonly blockGridAreasContainer: Locator;\n private readonly blockGridBlock: Locator;\n private readonly blockGridEntries: Locator;\n private readonly inlineCreateBtn: Locator;\n private readonly removeAt: Locator;\n private readonly selectAllCheckbox: Locator;\n private readonly confirmToPublishBtn: Locator;\n private readonly tiptapStatusbarWordCount: Locator;\n private readonly tiptapStatusbarElementPath: Locator;\n private readonly publishWithDescendantsBtn: Locator;\n private readonly elementPublishWithDescendantsModal: Locator;\n private readonly includeUnpublishedDescendantsToggle: Locator;\n private readonly publishWithDescendantsModalBtn: Locator;\n private readonly elementVariantLanguagePicker: Locator;\n private readonly elementVariantLanguageItem: Locator;\n private readonly styleSelectBtn: Locator;\n private readonly cascadingMenuContainer: Locator;\n private readonly modalFormValidationMessage: Locator;\n private readonly treePickerSearchTxt: Locator;\n private readonly mediaPickerSearchTxt: Locator;\n private readonly memberPickerSearchTxt: Locator;\n private readonly elementCreateOptionsModal: Locator;\n private readonly refListBlock: Locator;\n private readonly propertyActionMenu: Locator;\n private readonly elementCollectionViewCustomRows: Locator;\n private readonly collectionMenu: Locator;\n private readonly entityPickerTree: Locator;\n private readonly hostNameItem: Locator;\n private readonly languageToggle: Locator;\n private readonly elementVariantDropdown: Locator;\n private readonly blockProperty: Locator;\n private readonly linkPickerAddBtn: Locator;\n private readonly linkPickerCloseBtn: Locator;\n private readonly linkPickerTargetToggle: Locator;\n private readonly confirmToResetBtn: Locator;\n private readonly saveModal: Locator;\n private readonly expandSegmentBtn: Locator;\n private readonly elementBtn: Locator;\n private readonly elementFolderBtn: Locator;\n public readonly entityActionsBundle: Locator;\n\n constructor(page: Page) {\n super(page);\n this.saveElementBtn = page.getByTestId('workspace-action:Umb.WorkspaceAction.Element.Save');\n this.saveAndPublishBtn = page.getByTestId('workspace-action:Umb.WorkspaceAction.Element.SaveAndPublish');\n this.closeBtn = page.getByRole('button', {name: 'Close', exact: true});\n this.linkPickerModal = page.locator('umb-link-picker-modal');\n this.elementNameTxt = page.locator('#name-input input');\n this.publishBtn = page.getByLabel(/^Publish(…)?$/);\n this.unpublishBtn = page.getByLabel(/^Unpublish(…)?$/);\n this.actionMenuForElementBtn = page.locator('#header').getByTestId('open-dropdown');\n this.textstringTxt = page.locator('umb-property-editor-ui-text-box #input');\n this.reloadChildrenThreeDotsBtn = page.getByRole('button', {name: 'Reload children…'});\n this.elementTree = page.locator('umb-tree[alias=\"Umb.Tree.Element\"]');\n this.richTextAreaTxt = page.frameLocator('iframe[title=\"Rich Text Area\"]').locator('#tinymce');\n this.textAreaTxt = page.locator('umb-property-editor-ui-textarea textarea');\n this.plusIconBtn = page.locator('#icon-add svg');\n this.enterTagTxt = page.getByPlaceholder('Enter tag');\n this.menuItemTree = page.locator('umb-menu-item-tree-default');\n this.confirmToUnpublishBtn = this.backofficeModalContainer.getByLabel('Unpublish');\n this.dropdown = page.locator('select#native');\n this.splitView = page.locator('#splitViews');\n this.setADateTxt = page.getByLabel('Set a date…');\n this.chooseMediaPickerBtn = page.locator('umb-property-editor-ui-media-picker #btn-add');\n this.chooseMemberPickerBtn = page.locator('umb-property-editor-ui-member-picker #btn-add');\n this.numericTxt = page.locator('umb-property-editor-ui-number input');\n this.addMultiURLPickerBtn = page.locator('umb-property-editor-ui-multi-url-picker #btn-add');\n this.linkTxt = page.getByTestId('input:url').locator('#input');\n this.anchorQuerystringTxt = page.getByLabel('#value or ?key=value');\n this.linkTitleTxt = this.linkPickerModal.getByLabel('Title');\n this.tagItems = page.locator('uui-tag');\n this.removeFilesBtn = page.locator('umb-input-upload-field [label=\"Clear file(s)\"]');\n this.toggleBtn = page.locator('umb-property-editor-ui-toggle #toggle');\n this.toggleInput = page.locator('umb-property-editor-ui-toggle span');\n this.elementTypeWorkspace = this.sidebarModal.locator('umb-element-type-workspace-editor');\n this.addMultipleTextStringBtn = page.locator('umb-input-multiple-text-string').getByLabel('Add');\n this.multipleTextStringValueTxt = page.locator('umb-input-multiple-text-string').getByLabel('Value');\n this.sliderInput = page.locator('umb-property-editor-ui-slider #input');\n this.tabItems = page.locator('uui-tab');\n this.elementWorkspace = page.locator('umb-element-workspace-editor');\n this.selectAVariantBtn = page.getByRole('button', {name: 'Open version selector'});\n this.variantAddModeBtn = page.locator('.switch-button.add-mode').locator('.variant-name');\n this.saveAndCloseBtn = page.getByLabel('Save and close');\n this.elementTreeItem = page.locator('umb-default-tree-item');\n this.elementLanguageSelect = page.locator('umb-app-language-select');\n this.elementLanguageSelectPopover = page.locator('umb-popover-layout');\n this.elementReadOnly = this.elementWorkspace.locator('#name-input').getByText('Read-only');\n // Info tab\n this.infoTab = page.getByTestId('workspace:view-link:Umb.WorkspaceView.Element.Info');\n this.linkElement = page.locator('umb-element-links-workspace-info-app');\n this.historyItems = page.locator('umb-history-item');\n this.generalItem = page.locator('.general-item');\n this.elementState = this.generalItem.locator('uui-tag');\n this.createdDate = this.generalItem.filter({hasText: 'Created'}).locator('umb-localize-date');\n this.editElementTypeBtn = this.generalItem.filter({hasText: 'Element Type'}).locator('#button');\n this.addTemplateBtn = this.generalItem.filter({hasText: 'Template'}).locator('#button');\n this.id = this.generalItem.filter({hasText: 'Id'}).locator('span');\n this.elementCreateOptionsModal = page.locator('umb-element-create-options-modal');\n // Culture and Hostname\n this.cultureAndHostnamesBtn = page.getByLabel(/^Culture and Hostnames(…)?$/);\n this.hostNameItem = page.locator('.hostname-item');\n this.cultureLanguageDropdownBox = this.page.locator('[label=\"Culture\"]').getByLabel('combobox-input');\n this.hostnameTxt = page.getByLabel('Hostname', {exact: true});\n this.hostnameLanguageDropdownBox = this.hostNameItem.locator('[label=\"Culture\"]').getByLabel('combobox-input');\n this.deleteHostnameBtn = this.hostNameItem.locator('[name=\"icon-trash\"] svg');\n this.hostnameComboBox = this.hostNameItem.locator('[label=\"Culture\"]').locator('uui-combobox-list-option');\n this.saveModal = page.locator('umb-element-save-modal');\n this.saveModalBtn = this.saveModal.getByLabel('Save', {exact: true});\n this.resetFocalPointBtn = page.getByLabel('Reset focal point');\n this.addNewHostnameBtn = page.locator('umb-property-layout[label=\"Hostnames\"]').locator('[label=\"Add new hostname\"]');\n // List View\n this.enterNameInContainerTxt = this.container.getByTestId('input:entity-name').locator('#input');\n this.elementCollectionView = page.locator('umb-collection-workspace-view');\n this.nameBtn = page.getByRole('button', { name: 'Name', exact: true });\n this.elementCollectionViewTableRow = this.elementCollectionView.locator('uui-table-row');\n this.publishSelectedListItems = page.locator('umb-entity-bulk-action').getByText('Publish', {exact: true});\n this.unpublishSelectedListItems = page.locator('umb-entity-bulk-action').getByText('Unpublish', {exact: true});\n this.duplicateToSelectedListItems = page.locator('umb-entity-bulk-action').getByText('Duplicate to', {exact: true});\n this.moveToSelectedListItems = page.locator('umb-entity-bulk-action').getByText('Move to', {exact: true});\n this.trashSelectedListItems = page.locator('umb-entity-bulk-action').getByText('Trash', {exact: true});\n this.modalElement = page.locator('umb-tree-picker-modal');\n this.trashBtn = page.getByLabel(/^Trash(…)?$/);\n this.exactTrashBtn = page.getByRole('button', {name: 'Trash', exact: true});\n this.elementElementCollectionView = page.locator('umb-element-table-collection-view');\n this.elementGridView = page.locator('umb-element-grid-collection-view');\n this.elementFolderCollectionView = page.locator('umb-element-folder-workspace-view-collection');\n this.elementWorkspaceEditor = page.locator('umb-workspace-editor');\n this.emptyRecycleBinBtn = page.getByTestId('entity-action:Umb.EntityAction.Element.RecycleBin.Empty').locator('#button');\n this.confirmEmptyRecycleBinBtn = page.locator('#confirm').getByLabel('Empty recycle bin', {exact: true});\n this.duplicateToBtn = page.getByRole('button', {name: 'Duplicate to'});\n this.moveToBtn = page.getByRole('button', {name: 'Move to'});\n this.duplicateBtn = page.getByLabel('Duplicate', {exact: true});\n this.elementTreeRefreshBtn = page.locator('#header').getByLabel('#actions_refreshNode');\n this.sortChildrenBtn = page.getByRole('button', {name: 'Sort children'});\n this.rollbackBtn = page.getByRole('button', { name: 'Rollback…' });\n this.rollbackContainerBtn = this.container.getByLabel('Rollback');\n this.publicAccessBtn = page.getByRole('button', {name: 'Public Access'});\n this.uuiCheckbox = page.locator('uui-checkbox');\n this.sortBtn = page.getByLabel('Sort', {exact: true});\n this.containerSaveBtn = this.container.getByLabel('Save');\n this.groupBasedProtectionBtn = page.locator('span').filter({hasText: 'Group based protection'});\n this.chooseMemberGroupBtn = page.locator('umb-input-member-group').getByLabel('Choose');\n this.selectLoginPageElement = page.locator('.select-item').filter({hasText: 'Login Page'}).locator('umb-input-element').locator('#button');\n this.selectErrorPageElement = page.locator('.select-item').filter({hasText: 'Error Page'}).locator('umb-input-element').locator('#button');\n this.rollbackItem = page.locator('.rollback-item');\n this.actionsMenu = page.locator('uui-scroll-container');\n this.linkToElementBtn = this.linkPickerModal.getByTestId('action:element').locator('#button');\n this.linkToMediaBtn = this.linkPickerModal.getByTestId('action:media').locator('#button');\n this.linkToManualBtn = this.linkPickerModal.getByTestId('action:external').locator('#button');\n this.umbElementCollection = page.locator('umb-element-collection');\n this.elementTableColumnName = this.elementCollectionView.locator('umb-element-table-column-name');\n //Block Grid - Block List\n this.addBlockElementBtn = page.locator('uui-button-group > uui-button').first().filter({has: page.locator('a#button')});\n this.formValidationMessage = page.locator('#splitViews umb-form-validation-message #messages');\n this.blockName = page.locator('#editor [slot=\"name\"]');\n this.addBlockSettingsTabBtn = page.locator('umb-body-layout').getByRole('tab', {name: 'Settings'});\n this.editBlockEntryBtn = page.locator('[label=\"edit\"] svg');\n this.copyBlockEntryBtn = page.getByLabel('Copy to clipboard');\n this.exactCopyBtn = page.getByRole('button', {name: 'Copy', exact: true});\n this.deleteBlockEntryBtn = page.locator('[label=\"delete\"] svg');\n this.blockGridEntry = page.locator('umb-block-grid-entry');\n this.blockGridBlock = page.locator('umb-block-grid-block');\n this.blockListEntry = page.locator('umb-block-list-entry');\n this.pasteFromClipboardBtn = page.getByLabel('Paste from clipboard');\n this.pasteBtn = page.getByRole('button', {name: 'Paste', exact: true});\n this.workspaceEditTab = page.locator('umb-element-workspace-view-edit-tab');\n this.blockWorkspaceEditTab = page.locator('umb-block-workspace-view-edit-tab');\n this.workspaceEditProperties = page.locator('umb-element-workspace-view-edit-properties');\n this.openActionsMenu = page.locator('#action-menu');\n this.replaceExactBtn = page.getByRole('button', {name: 'Replace', exact: true});\n this.clipboardEntryPicker = page.locator('umb-clipboard-entry-picker');\n this.blockGridAreasContainer = page.locator('umb-block-grid-areas-container');\n this.blockGridEntries = page.locator('umb-block-grid-entries');\n this.inlineCreateBtn = page.locator('uui-button-inline-create');\n this.refListBlock = page.locator('umb-ref-list-block');\n // TipTap\n this.tipTapPropertyEditor = page.locator('umb-property-editor-ui-tiptap');\n this.tipTapEditor = this.tipTapPropertyEditor.locator('#editor .tiptap');\n this.uploadedSvgThumbnail = page.locator('umb-input-upload-field-svg img');\n this.insertBlockBtn = page.getByTestId('action:tiptap-toolbar:Umb.Tiptap.Toolbar.BlockPicker');\n this.blockWorkspace = page.locator('umb-block-workspace-editor');\n this.tiptapInput = page.locator('umb-input-tiptap');\n this.rteBlockInline = page.locator('umb-rte-block-inline');\n this.modalCreateBtn = this.backofficeModalContainer.getByLabel('Create', {exact: true});\n this.modalUpdateBtn = this.backofficeModalContainer.getByLabel('Update', {exact: true});\n this.rteBlock = page.locator('umb-rte-block');\n this.tiptapStatusbarWordCount = page.locator('umb-tiptap-statusbar-word-count');\n this.tiptapStatusbarElementPath = page.locator('umb-tiptap-statusbar-element-path');\n // Scheduled Publishing\n this.workspaceActionMenu = page.locator('umb-workspace-action-menu');\n this.workspaceActionMenuItem = page.locator('umb-workspace-action-menu-item');\n this.viewMoreOptionsBtn = this.workspaceActionMenu.locator('#popover-trigger');\n this.schedulePublishBtn = this.workspaceActionMenuItem.getByLabel('Schedule publish', {exact: true});\n this.elementScheduleModal = page.locator('umb-element-schedule-modal');\n this.schedulePublishModalBtn = this.elementScheduleModal.getByLabel('Schedule publish', {exact: true});\n this.publishAtFormLayout = this.elementScheduleModal.locator('uui-form-layout-item').first();\n this.unpublishAtFormLayout = this.elementScheduleModal.locator('uui-form-layout-item').last();\n this.publishAtValidationMessage = this.publishAtFormLayout.locator('#messages');\n this.unpublishAtValidationMessage = this.unpublishAtFormLayout.locator('#messages');\n this.lastPublished = this.generalItem.filter({hasText: 'Last published'}).locator('umb-localize-date');\n this.publishAt = this.generalItem.filter({hasText: 'Publish at'}).locator('umb-localize-date');\n this.removeAt = this.generalItem.filter({hasText: 'Remove at'}).locator('umb-localize-date');\n this.selectAllCheckbox = page.locator('[label=\"Select all\"]');\n this.confirmToPublishBtn = this.backofficeModalContainer.getByLabel('Publish');\n // Publish with descendants \n this.elementPublishWithDescendantsModal = page.locator('umb-element-publish-with-descendants-modal');\n this.publishWithDescendantsBtn = this.workspaceActionMenuItem.getByLabel('Publish with descendants', {exact: true});\n this.includeUnpublishedDescendantsToggle = this.elementPublishWithDescendantsModal.locator('#includeUnpublishedDescendants');\n this.publishWithDescendantsModalBtn = this.elementPublishWithDescendantsModal.getByLabel('Publish with descendants', {exact: true});\n this.elementVariantLanguagePicker = page.locator('umb-element-variant-language-picker');\n this.elementVariantLanguageItem = this.elementVariantLanguagePicker.locator('uui-menu-item');\n // Tiptap - Style Select\n this.styleSelectBtn = page.locator('uui-button[label=\"Style Select\"]');\n this.cascadingMenuContainer = page.locator('umb-cascading-menu-popover uui-scroll-container');\n this.modalFormValidationMessage = this.sidebarModal.locator('umb-form-validation-message #messages');\n this.treePickerSearchTxt = this.page.locator('umb-tree-picker-modal #input');\n this.mediaPickerSearchTxt = this.page.locator('umb-media-picker-modal #search #input');\n this.memberPickerSearchTxt = this.page.locator('umb-member-picker-modal #input');\n // Property Actions\n this.propertyActionMenu = page.locator('#property-action-popover umb-popover-layout');\n // List view custom\n this.elementCollectionViewCustomRows = page.locator('table tbody tr');\n // Entity Data Picker\n this.collectionMenu = page.locator('umb-collection-menu');\n this.entityPickerTree = page.locator('umb-tree[alias=\"Umb.Tree.EntityDataPicker\"]');\n this.languageToggle = page.getByTestId('input:entity-name').locator('#toggle');\n this.elementVariantDropdown = page.locator('umb-workspace-split-view-variant-selector uui-popover-container #dropdown');\n this.blockProperty = page.locator('umb-block-workspace-view-edit-property');\n // Multi URL Picker\n this.linkPickerAddBtn = this.linkPickerModal.getByRole('button', {name: 'Add', exact: true});\n this.linkPickerCloseBtn = this.linkPickerModal.getByRole('button', {name: 'Close', exact: true});\n this.linkPickerTargetToggle = this.linkPickerModal.locator('[label=\"Opens the link in a new window or tab\"]').locator('#toggle');\n this.confirmToResetBtn = page.locator('#confirm').getByLabel('Reset', {exact: true});\n // Segment\n this.expandSegmentBtn = page.locator('.expand-area uui-button');\n // Element\n this.elementBtn = this.createOptionActionListModal.locator('[name=\"Element\"]');\n this.elementFolderBtn = this.createOptionActionListModal.locator('[name=\"Folder...\"]');\n this.entityActionsBundle = page.locator('umb-entity-actions-bundle');\n }\n\n async enterElementName(name: string) {\n await this.enterText(this.elementNameTxt, name, {verify: true});\n }\n\n async clickSaveAndPublishButton() {\n await this.click(this.saveAndPublishBtn);\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async isSuccessStateVisibleForSaveAndPublishButton (isVisible: boolean = true){\n const saveAndPublishBtn = this.workspaceAction.filter({has: this.saveAndPublishBtn});\n await this.isVisible(saveAndPublishBtn.locator(this.successState), isVisible, ConstantHelper.timeout.long);\n }\n\n async clickPublishButton() {\n await this.click(this.publishBtn);\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async clickUnpublishButton() {\n await this.click(this.unpublishBtn);\n }\n\n async clickReloadChildrenThreeDotsButton() {\n await this.click(this.reloadChildrenThreeDotsBtn);\n }\n\n async clickActionsMenuAtRoot() {\n await this.click(this.actionMenuForElementBtn, {force: true});\n }\n\n async goToElementWithName(elementName: string) {\n const elementWithNameLocator = this.menuItemTree.getByText(elementName, {exact: true});\n await this.click(elementWithNameLocator, {timeout: ConstantHelper.timeout.long});\n }\n\n async clickActionsMenuForElement(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async openElementCaretButtonForName(name: string) {\n const menuItem = this.menuItemTree.filter({hasText: name}).last()\n const isCaretButtonOpen = await menuItem.getAttribute('show-children');\n\n if (isCaretButtonOpen === null) {\n await this.clickCaretButtonForElementName(name);\n }\n }\n\n async clickCaretButtonForElementName(name: string) {\n await this.click(this.menuItemTree.filter({hasText: name}).last().locator('#caret-button').last());\n }\n\n async waitForModalVisible() {\n await this.openedModal.waitFor({state: 'attached'});\n }\n\n async waitForModalHidden() {\n await this.openedModal.waitFor({state: 'hidden'});\n }\n\n async clickSaveButtonForElement() {\n await this.click(this.saveElementBtn);\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async enterTextstring(text: string) {\n await this.enterText(this.textstringTxt, text);\n }\n\n async isTextstringPropertyVisible(isVisible: boolean = true) {\n if (isVisible) {\n await expect(this.textstringTxt).toBeVisible();\n } else {\n await expect(this.textstringTxt).not.toBeVisible();\n }\n }\n\n async doesElementTreeHaveName(elementName: string) {\n await this.containsText(this.elementTree, elementName);\n }\n\n async enterRichTextArea(value: string) {\n await this.waitForVisible(this.richTextAreaTxt);\n await this.richTextAreaTxt.fill(value);\n }\n\n async enterTextArea(value: string) {\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.enterText(this.textAreaTxt, value);\n }\n\n async clickConfirmToUnpublishButton() {\n await this.click(this.confirmToUnpublishBtn);\n }\n\n // Info Tab\n async clickInfoTab() {\n await this.click(this.infoTab);\n }\n\n async doesElementHaveLink(link: string) {\n await this.containsText(this.linkElement, link);\n }\n\n async doesHistoryHaveText(text: string) {\n await this.hasText(this.historyItems, text);\n }\n\n async doesElementStateHaveText(text: string) {\n await this.hasText(this.elementState, text);\n }\n\n async doesCreatedDateHaveText(text: string) {\n await this.hasText(this.createdDate, text);\n }\n\n async doesIdHaveText(text: string) {\n await this.hasText(this.id, text);\n }\n\n async clickEditElementTypeButton() {\n await this.click(this.editElementTypeBtn);\n }\n\n async clickAddTemplateButton() {\n await this.click(this.addTemplateBtn);\n }\n\n async clickSaveButtonAndWaitForElementToBeCreated(){\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveButtonForElement(), ConstantHelper.statusCodes.created);\n }\n\n async clickSaveModalButtonAndWaitForElementToBeCreated(){\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveModalButton(), ConstantHelper.statusCodes.created);\n }\n\n async clickSaveModalButtonAndWaitForElementToBeUpdated(){\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveModalButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickSaveAndPublishButtonAndWaitForElementToBeCreated(){\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveAndPublishButton(), ConstantHelper.statusCodes.created);\n }\n\n async clickConfirmToPublishButtonAndWaitForElementToBeCreated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickConfirmToPublishButton(), ConstantHelper.statusCodes.created);\n }\n\n async clickSaveButtonAndWaitForElementToBeUpdated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveButtonForElement(), ConstantHelper.statusCodes.ok);\n }\n\n async clickSaveAndPublishButtonAndWaitForElementToBeUpdated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveAndPublishButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickSaveAndPublishButtonAndWaitForElementToBePublished() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickSaveAndPublishButton(), ConstantHelper.statusCodes.ok);\n }\n\n private async clickContainerSaveButton() {\n await this.click(this.containerSaveBtn);\n }\n\n async clickContainerSaveButtonAndWaitForElementToBeUpdated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickContainerSaveButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickContainerSaveAndPublishButtonAndWaitForElementToBePublished() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickContainerSaveAndPublishButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickElementTypeByName(elementTypeName: string) {\n await this.click(this.page.locator(`uui-ref-node-element-type[name=\"${elementTypeName}\"]`));\n }\n\n async clickTemplateByName(templateName: string) {\n await this.click(this.page.locator(`uui-ref-node[name=\"${templateName}\"]`));\n }\n\n async isElementTypeModalVisible(elementTypeName: string) {\n await this.isVisible(this.elementTypeWorkspace.filter({hasText: elementTypeName}));\n }\n\n async isTemplateModalVisible(templateName: string) {\n await this.isVisible(this.breadcrumbsTemplateModal.getByText(templateName));\n }\n\n async clickEditTemplateByName(templateName: string) {\n await this.click(this.page.locator(`uui-ref-node[name=\"${templateName}\"]`).getByLabel('Choose'));\n }\n\n async changeTemplate(oldTemplate: string, newTemplate: string) {\n await this.clickEditTemplateByName(oldTemplate);\n await this.click(this.sidebarModal.getByLabel(newTemplate));\n await this.clickChooseModalButton();\n }\n\n async isTemplateNameDisabled(templateName: string) {\n await this.isVisible(this.sidebarModal.getByLabel(templateName));\n await this.isDisabled(this.sidebarModal.getByLabel(templateName));\n }\n\n // Culture and Hostnames\n async clickCultureAndHostnamesButton() {\n await this.click(this.cultureAndHostnamesBtn);\n }\n\n async clickAddNewHostnameButton(){\n await this.click(this.addNewHostnameBtn);\n }\n\n async selectCultureLanguageOption(option: string) {\n await this.click(this.cultureLanguageDropdownBox);\n await this.click(this.page.getByText(option, {exact: true}));\n }\n\n async selectHostnameLanguageOption(option: string, index: number = 0) {\n await this.click(this.hostnameLanguageDropdownBox.nth(index));\n await this.click(this.hostnameComboBox.getByText(option).nth(index));\n }\n\n async enterDomain(value: string, index: number = 0) {\n await this.enterText(this.hostnameTxt.nth(index), value, {verify: true});\n }\n\n async clickDeleteHostnameButton() {\n await this.click(this.deleteHostnameBtn.first());\n }\n\n async clickSaveModalButton() {\n await this.click(this.saveModalBtn);\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async chooseElementType(elementTypeName: string) {\n await this.click(this.documentTypeNode.filter({hasText: elementTypeName}));\n }\n\n // Approved Color\n async clickApprovedColorByValue(value: string) {\n await this.click(this.page.locator(`uui-color-swatch[value=\"#${value}\"] #swatch`));\n }\n\n // Checkbox list\n async chooseCheckboxListOption(optionValue: string) {\n await this.click(this.page.locator(`uui-checkbox[value=\"${optionValue}\"] svg`));\n }\n\n // Element Picker\n async addElementPicker(elementName: string) {\n await this.clickChooseButton();\n await this.click(this.sidebarModal.getByText(elementName));\n await this.click(this.chooseModalBtn);\n }\n\n async isOpenButtonVisibleInElementPicker(elementPickerName: string, isVisible: boolean = true) {\n return await this.isVisible(this.page.getByLabel('Open ' + elementPickerName), isVisible);\n }\n\n async clickElementPickerOpenButton(elementPickerName: string) {\n await this.click(this.page.getByLabel('Open ' + elementPickerName));\n }\n\n async isNodeOpenForElementPicker(elementPickerName: string) {\n return await this.isVisible(this.openedModal.getByText(elementPickerName));\n }\n\n async isElementNameVisible(elementName: string, isVisible: boolean = true) {\n return await this.isVisible(this.sidebarModal.getByText(elementName), isVisible);\n }\n\n async isElementInTreeVisible(name: string, isVisible: boolean = true) {\n await this.isVisible(this.elementTreeItem.getByLabel(name, {exact: true}).first(), isVisible);\n }\n\n async isChildElementInTreeVisible(parentName: string, childName: string, isVisible: boolean = true) {\n await this.isVisible(this.elementTreeItem.locator('[label=\"' + parentName + '\"]').locator('uui-menu-item[label=\"' + childName + '\"]'), isVisible);\n }\n\n async removeElementPicker(elementPickerName: string) {\n const elementPickerLocator = this.entityItem.filter({has: this.page.locator(`[name=\"${elementPickerName}\"]`)});\n await this.hoverAndClick(elementPickerLocator, elementPickerLocator.getByLabel('Remove'));\n await this.clickConfirmRemoveButton();\n }\n\n // Dropdown\n async chooseDropdownOption(optionValues: string[]) {\n await this.selectMultiple(this.dropdown, optionValues);\n }\n\n // Date Picker\n async enterADate(date: string) {\n await this.setADateTxt.fill(date);\n }\n\n // Media Picker\n async clickChooseMediaPickerButton() {\n await this.click(this.chooseMediaPickerBtn);\n }\n\n async clickChooseButtonAndSelectMediaWithName(mediaName: string) {\n await this.clickChooseMediaPickerButton();\n await this.selectMediaWithName(mediaName);\n }\n\n async clickChooseButtonAndSelectMediaWithKey(mediaKey: string) {\n await this.clickChooseMediaPickerButton();\n await this.selectMediaWithTestId(mediaKey);\n }\n\n async removeMediaPickerByName(mediaPickerName: string) {\n await this.click(this.page.locator(`[name=\"${mediaPickerName}\"] [label=\"Remove\"] svg`));\n await this.clickConfirmRemoveButton();\n }\n\n async isMediaNameVisible(mediaName: string, isVisible: boolean = true) {\n return await this.isVisible(this.mediaCardItems.filter({hasText: mediaName}), isVisible);\n }\n\n async clickResetFocalPointButton() {\n await this.click(this.resetFocalPointBtn);\n }\n\n async setFocalPoint(widthPercentage: number = 50, heightPercentage: number = 50) {\n await this.page.waitForTimeout(ConstantHelper.wait.medium);\n const element = await this.page.locator('#image').boundingBox();\n if (!element) {\n throw new Error('Element not found');\n }\n\n const centerX = element.x + element.width / 2;\n const centerY = element.y + element.height / 2;\n\n const x = element.x + (element.width * widthPercentage) / 100;\n const y = element.y + (element.height * heightPercentage) / 100;\n\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.page.mouse.move(centerX, centerY, {steps: 5});\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.page.mouse.down();\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.page.mouse.move(x, y);\n await this.page.waitForTimeout(ConstantHelper.wait.minimal);\n await this.page.mouse.up();\n }\n\n // Member Picker\n async clickChooseMemberPickerButton() {\n await this.click(this.chooseMemberPickerBtn);\n }\n\n async selectMemberByName(memberName: string) {\n await this.click(this.sidebarModal.getByText(memberName, {exact: true}));\n }\n\n async removeMemberPickerByName(memberName: string) {\n const mediaPickerLocator = this.entityItem.filter({has: this.page.locator(`[name=\"${memberName}\"]`)});\n await this.hoverAndClick(mediaPickerLocator, mediaPickerLocator.getByLabel('Remove'));\n await this.clickConfirmRemoveButton();\n }\n\n // Numeric\n async enterNumeric(number: number) {\n await this.enterText(this.numericTxt, number.toString());\n }\n\n // Radiobox\n async chooseRadioboxOption(optionValue: string) {\n await this.click(this.page.locator(`uui-radio[value=\"${optionValue}\"] #button`));\n }\n\n // Tags\n async clickPlusIconButton() {\n await this.click(this.plusIconBtn);\n }\n\n async enterTag(tagName: string) {\n await this.enterText(this.enterTagTxt, tagName);\n await this.pressKey(this.enterTagTxt, 'Enter');\n }\n\n async removeTagByName(tagName: string) {\n await this.click(this.tagItems.filter({hasText: tagName}).locator('svg'));\n }\n\n // Multi URL Picker\n async clickAddMultiURLPickerButton() {\n await this.click(this.addMultiURLPickerBtn);\n }\n\n async selectLinkByName(linkName: string) {\n await this.click(this.sidebarModal.getByText(linkName, {exact: true}));\n }\n\n async enterLink(value: string, toPress: boolean = false) {\n if (toPress) {\n await this.enterText(this.linkTxt, '');\n await this.pressKey(this.linkTxt, value);\n } else {\n await this.enterText(this.linkTxt, value);\n }\n }\n\n async enterAnchorOrQuerystring(value: string, toPress: boolean = false) {\n if (toPress) {\n await this.enterText(this.anchorQuerystringTxt, '');\n await this.pressKey(this.anchorQuerystringTxt, value);\n } else {\n await this.enterText(this.anchorQuerystringTxt, value);\n }\n }\n\n async enterLinkTitle(value: string, toPress: boolean = false) {\n if (toPress) {\n await this.enterText(this.linkTitleTxt, '');\n await this.pressKey(this.linkTitleTxt, value);\n } else {\n await this.enterText(this.linkTitleTxt, value);\n }\n }\n\n async removeUrlPickerByName(linkName: string) {\n await this.click(this.page.locator(`[name=\"${linkName}\"]`).getByLabel('Remove'));\n await this.clickConfirmRemoveButton();\n }\n\n async clickEditUrlPickerButtonByName(linkName: string) {\n await this.click(this.page.locator(`[name=\"${linkName}\"]`).getByLabel('Edit'));\n }\n\n // Upload\n async clickRemoveFilesButton() {\n await this.click(this.removeFilesBtn);\n }\n\n // True/false\n async clickToggleButton() {\n await this.click(this.toggleBtn, {force: true});\n }\n\n async doesToggleHaveLabel(label: string) {\n await this.hasText(this.toggleInput, label);\n }\n\n // Multiple Text String\n async clickAddMultipleTextStringButton() {\n await this.click(this.addMultipleTextStringBtn);\n }\n\n async enterMultipleTextStringValue(value: string) {\n await this.enterText(this.multipleTextStringValueTxt, value);\n }\n\n async addMultipleTextStringItem(value: string) {\n await this.clickAddMultipleTextStringButton();\n await this.enterMultipleTextStringValue(value);\n }\n\n // Code Editor\n async enterCodeEditorValue(value: string) {\n await this.enterMonacoEditorValue(value);\n }\n\n // Markdown Editor\n async enterMarkdownEditorValue(value: string) {\n await this.enterMonacoEditorValue(value);\n }\n\n // Slider\n async changeSliderValue(value: string) {\n await this.sliderInput.fill(value);\n }\n\n async isElementTypeNameVisible(elementName: string, isVisible: boolean = true) {\n return await this.isVisible(this.sidebarModal.getByText(elementName), isVisible); \n }\n\n async doesModalHaveText(text: string) {\n await this.containsText(this.openedModal, text);\n }\n\n // Collection tab\n async isTabNameVisible(tabName: string) {\n return await this.isVisible(this.tabItems.filter({hasText: tabName}));\n }\n\n async clickTabWithName(tabName: string) {\n const tabLocator = this.tabItems.filter({hasText: tabName});\n await this.click(tabLocator);\n }\n\n async doesElementHaveName(name: string) {\n await this.hasValue(this.enterAName, name);\n }\n\n async doesElementTableColumnNameValuesMatch(expectedValues: string[]) {\n await this.waitForVisible(this.elementElementCollectionView);\n return expectedValues.forEach((text, index) => {\n expect(this.elementTableColumnName.nth(index).getByLabel(text)).toBeVisible();\n });\n }\n\n async clickSelectVariantButton() {\n await this.click(this.selectAVariantBtn);\n }\n\n async clickExpendSegmentButton(elementName: string) {\n await this.page.locator('.variant.culture-variant').filter({hasText: elementName}).locator(this.expandSegmentBtn).click();\n }\n\n async clickVariantAddModeButtonForLanguageName(language: string) {\n await this.click(this.variantAddModeBtn.getByText(language));\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async clickSaveAndCloseButton() {\n await this.click(this.saveAndCloseBtn);\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n // List View\n async clickCreateElementWithName(name: string) {\n await this.click(this.page.getByLabel(`Create ${name}`));\n await this.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async enterNameInContainer(name: string) {\n await this.enterText(this.enterNameInContainerTxt, name);\n }\n\n async goToElementInElementCollectionViewWithName(elementName: string) {\n await this.click(this.elementCollectionView.getByLabel(elementName));\n }\n\n async doesElementCollectionViewHaveNoItemsInList() {\n await this.isVisible(this.elementCollectionView.filter({hasText: 'There are no items to show in the list.'}));\n }\n\n async doesElementListHaveNoItemsInList() {\n await this.isVisible(this.umbElementCollection.filter({hasText: 'No items'}));\n }\n\n async clickNameButtonInElementCollectionView() {\n await this.click(this.nameBtn);\n }\n\n async doesFirstItemInElementCollectionViewHaveName(name: string) {\n await expect(this.elementCollectionViewTableRow.first()).toContainText(name);\n }\n\n async doesElementCollectionViewContainCount(count: number) {\n await this.hasCount(this.elementCollectionViewTableRow, count);\n }\n\n async selectElementWithNameInElementCollectionView(name: string) {\n await this.click(this.elementCollectionViewTableRow.filter({hasText: name}));\n }\n\n async clickPublishSelectedListItems() {\n await this.click(this.publishSelectedListItems);\n }\n\n async clickUnpublishSelectedListItems() {\n await this.click(this.unpublishSelectedListItems);\n }\n\n async clickDuplicateToSelectedListItems() {\n // Force click is needed\n await this.click(this.duplicateToSelectedListItems, {force: true});\n }\n\n async clickMoveToSelectedListItems() {\n // Force click is needed\n await this.click(this.moveToSelectedListItems, {force: true});\n }\n\n async clickTrashSelectedListItems() {\n await this.click(this.trashSelectedListItems);\n }\n\n async selectElementWithNameAtRoot(name: string) {\n await this.openCaretButtonForName('Element');\n await this.click(this.modalElement.getByLabel(name));\n await this.clickChooseButton();\n }\n\n async clickTrashButton() {\n await this.click(this.trashBtn);\n }\n\n async clickExactTrashButton() {\n await this.click(this.exactTrashBtn);\n }\n\n async isElementElementCollectionViewVisible(isVisible: boolean = true) {\n await this.isVisible(this.elementElementCollectionView, isVisible);\n }\n\n async isElementFolderCollectionViewVisible(isVisible: boolean = true) {\n await this.isVisible(this.elementFolderCollectionView, isVisible, ConstantHelper.timeout.long);\n }\n\n async isElementGridViewVisible(isVisible: boolean = true) {\n await this.isVisible(this.elementGridView, isVisible);\n }\n\n async changeElementSectionLanguage(newLanguageName: string) {\n await this.click(this.elementLanguageSelect);\n // Force click is needed\n await this.click(this.elementLanguageSelectPopover.getByText(newLanguageName), {force: true});\n }\n\n async doesElementSectionHaveLanguageSelected(languageName: string) {\n await this.hasText(this.elementLanguageSelect, languageName);\n }\n\n async isElementReadOnly(isVisible: boolean = true) {\n await this.isVisible(this.elementReadOnly, isVisible);\n }\n\n async isElementNameInputEditable(isEditable: boolean = true) {\n await this.waitForVisible(this.elementNameTxt);\n await expect(this.elementNameTxt).toBeEditable({editable: isEditable});\n }\n\n async isActionsMenuForRecycleBinVisible(isVisible: boolean = true) {\n await this.isActionsMenuForNameVisible('Recycle Bin', isVisible);\n }\n\n async isActionsMenuForRootVisible(isVisible: boolean = true) {\n await this.isActionsMenuForNameVisible('Element', isVisible);\n }\n\n async clickEmptyRecycleBinButton() {\n await this.hoverAndClick(this.recycleBinMenuItem, this.emptyRecycleBinBtn, {force: true});\n }\n\n async clickConfirmEmptyRecycleBinButton() {\n await this.click(this.confirmEmptyRecycleBinBtn);\n }\n\n async isElementPropertyEditable(propertyName: string, isEditable: boolean = true) {\n const propertyLocator = this.elementWorkspace.locator(this.property).filter({hasText: propertyName}).locator('#input');\n await this.waitForVisible(propertyLocator);\n await expect(propertyLocator).toBeEditable({editable: isEditable});\n }\n\n async doesElementPropertyHaveValue(propertyName: string, value: string) {\n const propertyLocator = this.elementWorkspace.locator(this.property).filter({hasText: propertyName}).locator('#input');\n await this.hasValue(propertyLocator, value);\n }\n\n async clickContentTab() {\n await this.click(this.splitView.getByRole('tab', {name: 'Content'}));\n }\n\n async isElementTreeEmpty() {\n await this.hasCount(this.elementTreeItem, 0);\n }\n\n async doesElementWorkspaceContainName(name: string) {\n await expect(this.elementWorkspaceEditor.locator('#input')).toHaveValue(name);\n }\n\n async doesElementWorkspaceHaveText(text: string) {\n await this.containsText(this.elementWorkspace, text);\n }\n\n async clickDuplicateToButton() {\n await this.click(this.duplicateToBtn);\n }\n\n async clickDuplicateButton() {\n await this.click(this.duplicateBtn);\n }\n\n async clickMoveToButton() {\n await this.click(this.moveToBtn);\n }\n\n async moveToElementWithName(parentNames: string[], moveTo: string) {\n for (const elementName of parentNames) {\n await this.click(this.container.getByLabel(`Expand child items for ${elementName}`));\n }\n await this.click(this.container.getByLabel(moveTo));\n await this.clickChooseContainerButton();\n }\n\n async isCaretButtonVisibleForElementName(elementName: string, isVisible: boolean = true) {\n await this.isVisible(this.page.locator(`[label=\"${elementName}\"]`).getByLabel('Expand child items for '), isVisible);\n }\n\n async reloadElementTree() {\n // Force click is needed\n await this.click(this.elementTreeRefreshBtn, {force: true});\n }\n\n async clickSortChildrenButton() {\n await this.click(this.sortChildrenBtn);\n }\n\n async clickRollbackButton() {\n await this.click(this.rollbackBtn);\n }\n\n async clickRollbackContainerButton() {\n await this.click(this.rollbackContainerBtn);\n }\n\n async clickLatestRollBackItem() {\n await this.click(this.rollbackItem.last());\n }\n\n async clickPublicAccessButton() {\n await this.click(this.publicAccessBtn);\n }\n\n async addGroupBasedPublicAccess(memberGroupName: string, elementName: string) {\n await this.click(this.groupBasedProtectionBtn);\n await this.clickNextButton();\n await this.click(this.chooseMemberGroupBtn);\n await this.click(this.page.getByLabel(memberGroupName));\n await this.clickChooseModalButton();\n await this.click(this.selectLoginPageElement);\n await this.click(this.container.getByLabel(elementName, {exact: true}));\n await this.clickChooseModalButton();\n await this.click(this.selectErrorPageElement);\n await this.click(this.container.getByLabel(elementName, {exact: true}));\n await this.clickChooseModalButton();\n await this.click(this.containerSaveBtn);\n }\n\n async sortChildrenDragAndDrop(dragFromSelector: Locator, dragToSelector: Locator, verticalOffset: number = 0, horizontalOffset: number = 0, steps: number = 5) {\n await this.waitForVisible(dragFromSelector);\n await this.waitForVisible(dragToSelector);\n const targetLocation = await dragToSelector.boundingBox();\n const elementCenterX = targetLocation!.x + targetLocation!.width / 2;\n const elementCenterY = targetLocation!.y + targetLocation!.height / 2;\n await this.hover(dragFromSelector);\n await this.page.mouse.move(10, 10);\n await this.hover(dragFromSelector);\n await this.page.mouse.down();\n await this.page.waitForTimeout(ConstantHelper.wait.debounce);\n await this.page.mouse.move(elementCenterX + horizontalOffset, elementCenterY + verticalOffset, {steps: steps});\n await this.page.waitForTimeout(ConstantHelper.wait.debounce);\n // If we do not have this, the drag and drop will not work\n await this.hover(dragToSelector);\n await this.page.mouse.up();\n }\n\n async clickSortButton() {\n await this.click(this.sortBtn);\n }\n\n async doesIndexElementInTreeContainName(parentName: string, childName: string, index: number) {\n await expect(this.elementTreeItem.locator(`[label=\"${parentName}\"]`).locator('umb-tree-item').nth(index).locator('#label')).toHaveText(childName);\n }\n\n async selectMemberGroup(memberGroupName: string) {\n await this.click(this.uuiCheckbox.getByLabel(memberGroupName));\n }\n\n async isPermissionInActionsMenuVisible(permissionName: string, isVisible: boolean = true) {\n await this.isVisible(this.actionsMenu.getByRole('button', {\n name: permissionName,\n exact: true\n }), isVisible);\n }\n\n async clickElementLinkButton() {\n await this.click(this.linkToElementBtn);\n }\n\n async clickMediaLinkButton() {\n await this.click(this.linkToMediaBtn);\n }\n\n async clickManualLinkButton() {\n await this.click(this.linkToManualBtn);\n }\n\n // Block Grid - Block List\n async clickAddBlockElementButton() {\n await this.click(this.addBlockElementBtn);\n }\n\n async clickAddBlockWithNameButton(name: string) {\n await this.click(this.page.getByLabel(`Add ${name}`));\n }\n\n async clickCreateInModal(headline: string, options?: {waitForClose?: 'target' | 'any'}) {\n const modalLocator = this.page.locator('[headline=\"' + headline + '\"]');\n await this.click(modalLocator.getByLabel('Create'));\n\n if (options?.waitForClose === 'target') {\n await this.waitForHidden(modalLocator);\n } else if (options?.waitForClose === 'any') {\n await this.waitForHidden(this.openedModal);\n }\n }\n\n async isAddBlockElementButtonVisible(isVisible: boolean = true) {\n await this.isVisible(this.addBlockElementBtn, isVisible);\n }\n\n async isAddBlockElementButtonWithLabelVisible(blockName: string, label: string, isVisible: boolean = true) {\n await this.isVisible(this.property.filter({hasText: blockName}).locator(this.addBlockElementBtn).filter({hasText: label}), isVisible);\n }\n\n async doesFormValidationMessageContainText(text: string) {\n await this.containsText(this.formValidationMessage, text);\n }\n\n async doesBlockElementHaveName(name: string) {\n await this.containsText(this.blockName, name);\n }\n\n async clickAddBlockSettingsTabButton() {\n await this.click(this.addBlockSettingsTabBtn);\n }\n\n async clickEditBlockGridBlockButton() {\n await this.hoverAndClick(this.blockGridEntry, this.editBlockEntryBtn);\n }\n\n async clickDeleteBlockGridBlockButton() {\n await this.hoverAndClick(this.blockGridEntry, this.deleteBlockEntryBtn);\n }\n\n async clickEditBlockListBlockButton() {\n await this.hoverAndClick(this.blockListEntry, this.editBlockEntryBtn);\n }\n\n async clickDeleteBlockListBlockButton() {\n await this.hoverAndClick(this.blockListEntry, this.deleteBlockEntryBtn);\n }\n\n async clickCopyBlockListBlockButton(groupName: string, propertyName: string, blockName: string, index: number = 0) {\n const blockListBlock = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockListEntry).nth(index).filter({hasText: blockName});\n await this.hoverAndClick(blockListBlock, blockListBlock.locator(this.copyBlockEntryBtn), {force: true});\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async clickCopyBlockGridBlockButton(groupName: string, propertyName: string, blockName: string, index: number = 0) {\n const blockGridBlock = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockGridEntry).nth(index).filter({hasText: blockName});\n await this.hoverAndClick(blockGridBlock, blockGridBlock.locator(this.copyBlockEntryBtn), {force: true});\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n }\n\n async clickPasteFromClipboardButtonForProperty(groupName: string, propertyName: string) {\n await this.page.waitForTimeout(ConstantHelper.wait.short);\n const property = this.workspaceEditTab.filter({hasText: groupName}).locator(this.property).filter({hasText: propertyName});\n await this.click(property.locator(this.pasteFromClipboardBtn), {force: true});\n }\n\n async clickActionsMenuForProperty(groupName: string, propertyName: string) {\n const property = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName});\n await this.hoverAndClick(property, property.locator(this.openActionsMenu), {force: true});\n }\n\n async clickAddBlockGridElementWithName(elementTypeName: string) {\n await this.click(this.page.getByRole('link', {name: `Add ${elementTypeName}`, exact: true}));\n }\n\n async clickEditBlockListEntryWithName(blockListElementName: string) {\n await this.click(this.blockListEntry.filter({hasText: blockListElementName}).getByLabel('edit'), {force: true});\n }\n\n async clickEditBlockGridEntryWithName(blockGridElementName: string) {\n const blockGridElementLocator = this.blockGridEntry.filter({hasText: blockGridElementName});\n const blockGridEditButton = blockGridElementLocator.getByLabel('edit');\n await this.hoverAndClick(blockGridElementLocator, blockGridEditButton, {force: true});\n }\n\n async goToRTEBlockWithName(groupName: string, propertyName: string, blockName: string, index: number = 0) {\n const rteProperty = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName});\n const rteBlockLocator = rteProperty.locator(this.rteBlock).filter({hasText: blockName}).nth(index);\n await this.click(rteBlockLocator);\n }\n\n async clickSelectBlockElementWithName(elementTypeName: string) {\n await this.click(this.page.getByRole('button', {name: elementTypeName, exact: true}));\n }\n\n async clickSelectBlockElementInAreaWithName(elementTypeName: string) {\n await this.click(this.container.getByRole('button', {name: elementTypeName, exact: true}));\n }\n\n async clickBlockElementWithName(elementTypeName: string) {\n await this.click(this.page.getByRole('link', {name: elementTypeName, exact: true}), {force: true});\n }\n\n async enterPropertyValue(propertyName: string, value: string) {\n const property = this.property.filter({hasText: propertyName});\n await this.enterText(property.locator('input'), value);\n }\n\n async doesBlockContainBlockInAreaWithName(blockWithAreaName: string, areaName: string, blockInAreaName: string, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const blockInArea = area.locator(this.blockGridEntry.filter({hasText: blockInAreaName}));\n await this.waitForVisible(blockInArea);\n }\n\n async doesBlockContainBlockCountInArea(blockWithAreaName: string, areaName: string, blocksInAreaCount: number, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const blocks = area.locator(this.blockGridEntry);\n await this.hasCount(blocks, blocksInAreaCount);\n }\n\n async doesBlockContainCountOfBlockInArea(blockWithAreaName: string, areaName: string, blockInAreaName: string, count: number, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const blockInArea = area.locator(this.blockGridEntry.filter({hasText: blockInAreaName}));\n await this.hasCount(blockInArea, count);\n }\n\n async getBlockAtRootDataElementKey(blockName: string, index: number = 0) {\n const blockGridEntrySelector = 'umb-block-grid-entry';\n return this.blockGridEntries.locator(`.umb-block-grid__layout-container > ${blockGridEntrySelector}`).filter({hasText: blockName}).nth(index).getAttribute('data-element-key');\n }\n\n async getBlockAreaKeyFromParentBlockDataElementKey(parentKey: string, index: number = 0) {\n const block = this.page.locator(`[data-element-key=\"${parentKey}\"]`);\n return block.locator(this.blockGridAreasContainer).locator('.umb-block-grid__area-container > umb-block-grid-entries').nth(index).getAttribute('area-key');\n }\n\n async getBlockDataElementKeyInArea(parentBlockName: string, areaName: string, blockName: string, parentIndex: number = 0, childIndex: number = 0) {\n const parentBlock = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: parentBlockName})).nth(parentIndex);\n const area = parentBlock.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const block = area.locator(this.blockGridEntry.filter({hasText: blockName})).nth(childIndex);\n return block.getAttribute('data-element-key');\n }\n\n async removeBlockFromArea(parentBlockName: string, areaName: string, blockName: string, parentIndex: number = 0, childIndex: number = 0) {\n const parentBlock = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: parentBlockName})).nth(parentIndex);\n const area = parentBlock.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const block = area.locator(this.blockGridEntry.filter({hasText: blockName})).nth(childIndex);\n await this.hoverAndClick(block, block.getByLabel('delete'), {force: true});\n }\n\n async doesBlockAreaContainColumnSpan(blockWithAreaName: string, areaName: string, columnSpan: number, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n await this.hasAttribute(area, 'data-area-col-span', columnSpan.toString());\n }\n\n async doesBlockAreaContainRowSpan(blockWithAreaName: string, areaName: string, rowSpan: number, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n await this.hasAttribute(area, 'data-area-row-span', rowSpan.toString());\n }\n\n async clickInlineAddToAreaButton(parentBlockName: string, areaName: string, parentIndex: number = 0, buttonIndex: number = 1) {\n const parentBlock = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: parentBlockName})).nth(parentIndex);\n const area = parentBlock.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n await this.click(area.locator(this.inlineCreateBtn).nth(buttonIndex));\n }\n\n async addBlockToAreasWithExistingBlock(blockWithAreaName: string, areaName: string, parentIndex: number = 0, addToIndex: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock).filter({hasText: blockWithAreaName}).nth(parentIndex);\n await this.hover(blockWithArea);\n const area = blockWithArea.locator(this.blockGridAreasContainer).locator(`[data-area-alias=\"${areaName}\"]`);\n const addBlockBtn = area.locator(this.inlineCreateBtn).nth(addToIndex);\n await this.hover(addBlockBtn, {force: true});\n await this.click(addBlockBtn, {force: true});\n }\n\n async doesBlockGridBlockWithAreaContainCreateLabel(blockWithAreaName: string, createLabel: string, index: number = 0) {\n const blockWithArea = this.blockGridEntry.locator(this.blockGridBlock.filter({hasText: blockWithAreaName})).nth(index);\n return await this.isVisible(blockWithArea.locator(this.blockGridAreasContainer).getByLabel(createLabel));\n }\n\n async doesPropertyContainValue(propertyName: string, value: string) {\n await expect(this.property.filter({hasText: propertyName}).locator('input')).toHaveValue(value);\n }\n\n async clickCreateButtonForModalWithElementTypeNameAndGroupName(headlineName: string, groupName: string) {\n await this.click(this.blockWorkspace.filter({hasText: `Add ${headlineName}`}).filter({hasText: groupName}).getByLabel('Create'));\n }\n\n async clickUpdateButtonForModalWithElementTypeNameAndGroupName(headlineName: string, groupName: string) {\n await this.click(this.blockWorkspace.filter({hasText: `Edit ${headlineName}`}).filter({hasText: groupName}).locator(this.updateBtn));\n }\n\n async clickExactCopyButton() {\n await this.click(this.exactCopyBtn);\n }\n\n async clickExactReplaceButton() {\n await this.click(this.replaceExactBtn);\n }\n\n async doesClipboardHaveCopiedBlockWithName(elementName: string, propertyName: string, blockName: string, index: number = 0) {\n await this.isVisible(this.clipboardEntryPicker.getByLabel(`${elementName} - ${propertyName} - ${blockName}`).nth(index));\n }\n\n async doesClipboardHaveCopiedBlocks(elementName: string, propertyName: string, index: number = 0) {\n await this.isVisible(this.clipboardEntryPicker.getByLabel(`${elementName} - ${propertyName}`).nth(index));\n }\n\n async doesClipboardContainCopiedBlocksCount(count: number) {\n await this.hasCount(this.clipboardEntryPicker.locator(this.menuItem), count);\n }\n\n async selectClipboardEntryWithName(elementName: string, propertyName: string, blockName: string, index: number = 0) {\n await this.doesClipboardHaveCopiedBlockWithName(elementName, propertyName, blockName, index);\n await this.click(this.clipboardEntryPicker.getByLabel(`${elementName} - ${propertyName} - ${blockName}`).nth(index));\n }\n\n async selectClipboardEntriesWithName(elementName: string, propertyName: string, index: number = 0) {\n await this.doesClipboardHaveCopiedBlocks(elementName, propertyName, index);\n await this.click(this.clipboardEntryPicker.getByLabel(`${elementName} - ${propertyName}`).nth(index));\n }\n\n async goToBlockGridBlockWithName(groupName: string, propertyName: string, blockName: string, index: number = 0) {\n const blockGridBlock = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockGridEntry).nth(index).filter({hasText: blockName});\n await this.click(blockGridBlock);\n }\n\n async goToBlockListBlockWithName(groupName: string, propertyName: string, blockName: string, index: number = 0) {\n const blocklistBlock = this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockListEntry).nth(index).filter({hasText: blockName});\n await this.click(blocklistBlock);\n }\n\n async doesBlockEditorBlockWithNameContainValue(groupName: string, propertyName: string, inputType: string = ConstantHelper.inputTypes.general, value) {\n await expect(this.blockWorkspaceEditTab.filter({hasText: groupName}).locator(this.property).filter({hasText: propertyName}).locator(inputType)).toContainText(value);\n }\n\n async clickCloseButton() {\n await this.click(this.closeBtn);\n }\n\n async clickPasteButton() {\n await this.click(this.pasteBtn, {force: true});\n }\n\n async doesBlockListPropertyHaveBlockAmount(groupName: string, propertyName: string, amount: number) {\n await this.hasCount(this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockListEntry), amount);\n }\n\n async doesBlockGridPropertyHaveBlockAmount(groupName: string, propertyName: string, amount: number) {\n await this.hasCount(this.workspaceEditTab.filter({hasText: groupName}).locator(this.workspaceEditProperties).filter({hasText: propertyName}).locator(this.blockGridEntry), amount);\n }\n\n async doesPropertyContainValidationMessage(groupName: string, propertyName: string, message: string) {\n await expect(this.blockWorkspaceEditTab.filter({hasText: groupName}).locator(this.property).filter({hasText: propertyName}).locator(this.validationMessage)).toContainText(message);\n }\n\n async clickInsertBlockButton() {\n await this.click(this.insertBlockBtn);\n }\n\n // TipTap\n async enterRTETipTapEditor(value: string) {\n await this.enterText(this.tipTapEditor, value);\n }\n \n async typeRTETipTapEditorValue(value: string, toClearFirst = false) {\n await this.typeText(this.tipTapEditor, value, {clearFirst: toClearFirst});\n }\n \n async clickCreateBlockModalButtonAndWaitForModalToClose() {\n await this.click(this.modalCreateBtn);\n await this.waitForHidden(this.backofficeModalContainer);\n }\n\n async clickUpdateBlockModalButtonAndWaitForModalToClose() {\n await this.click(this.modalUpdateBtn);\n await this.waitForHidden(this.backofficeModalContainer);\n }\n async enterRTETipTapEditorWithName(name: string , value: string){\n const tipTapEditorLocator = this.page.locator(`[data-mark=\"property:${name}\"]`).locator(this.tipTapEditor);\n await this.enterText(tipTapEditorLocator, value);\n }\n\n async clickTipTapToolbarIconWithTitle(iconTitle: string) {\n await this.click(this.tipTapPropertyEditor.getByTitle(iconTitle, {exact: true}).locator('svg'));\n }\n\n async doesUploadedSvgThumbnailHaveSrc(imageSrc: string) {\n await this.hasAttribute(this.uploadedSvgThumbnail, 'src', imageSrc);\n }\n\n async doesRichTextEditorBlockContainLabel(richTextEditorAlias: string, label: string) {\n await expect(this.page.getByTestId(`property:${richTextEditorAlias}`).locator(this.rteBlock)).toContainText(label);\n }\n\n async doesBlockEditorModalContainEditorSize(editorSize: string, elementName: string) {\n await this.isVisible(this.backofficeModalContainer.locator(`[size=\"${editorSize}\"]`).locator(`[headline=\"Add ${elementName}\"]`));\n }\n\n async doesBlockEditorModalContainInline(richTextEditorAlias: string, elementName: string) {\n await this.containsText(this.page.getByTestId(`property:${richTextEditorAlias}`).locator(this.tiptapInput).locator(this.rteBlockInline), elementName);\n }\n\n async doesBlockHaveBackgroundColor(elementName: string, backgroundColor: string) {\n await this.isVisible(this.page.locator('umb-block-type-card', {hasText: elementName}).locator(`[style=\"background-color:${backgroundColor};\"]`));\n }\n\n async doesBlockHaveIconColor(elementName: string, backgroundColor: string) {\n await this.isVisible(this.page.locator('umb-block-type-card', {hasText: elementName}).locator(`[color=\"${backgroundColor}\"]`));\n }\n\n async addElementDomain(domainName: string, languageName: string) {\n await this.clickCultureAndHostnamesButton();\n await this.clickAddNewHostnameButton();\n await this.enterDomain(domainName);\n await this.selectHostnameLanguageOption(languageName);\n await this.clickSaveModalButton();\n }\n\n // Scheduled Publishing\n async clickViewMoreOptionsButton() {\n await this.click(this.viewMoreOptionsBtn);\n }\n\n async clickSchedulePublishButton() {\n await this.click(this.schedulePublishBtn);\n }\n\n async clickSchedulePublishModalButton() {\n await this.click(this.schedulePublishModalBtn);\n }\n\n async enterPublishTime(time: string, index: number = 0) {\n const publishAtTxt = this.elementScheduleModal.locator('.publish-date').nth(index).locator('uui-form-layout-item').first().locator('#input');\n await this.enterText(publishAtTxt, time);\n }\n\n async enterUnpublishTime(time: string, index: number = 0) {\n const unpublishAtTxt = this.elementScheduleModal.locator('.publish-date').nth(index).locator('uui-form-layout-item').last().locator('#input');\n await this.enterText(unpublishAtTxt, time);\n }\n\n async doesPublishAtValidationMessageContainText(text: string) {\n await this.containsText(this.publishAtValidationMessage, text);\n }\n\n async doesUnpublishAtValidationMessageContainText(text: string) {\n await this.containsText(this.unpublishAtValidationMessage, text);\n }\n\n async doesLastPublishedContainText(text: string) {\n await this.containsText(this.lastPublished, text);\n }\n\n async doesPublishAtContainText(text: string) {\n await this.containsText(this.publishAt, text);\n }\n\n async doesRemoveAtContainText(text: string) {\n await this.containsText(this.removeAt, text);\n }\n\n async clickSelectAllCheckbox() {\n await this.click(this.selectAllCheckbox);\n }\n\n async doesSchedulePublishModalButtonContainDisabledTag(hasDisabledTag: boolean = false) {\n if (!hasDisabledTag) {\n await expect(this.schedulePublishModalBtn).not.toHaveAttribute('disabled', '');\n } else {\n await this.hasAttribute(this.schedulePublishModalBtn, 'disabled', '');\n }\n }\n\n async clickInlineBlockCaretButtonForName(blockEditorName: string, index: number = 0) {\n const caretButtonLocator = this.blockListEntry.filter({hasText: blockEditorName}).nth(index).locator('uui-symbol-expand svg');\n await this.click(caretButtonLocator);\n }\n\n async doesTiptapHaveWordCount(count: number) {\n await this.hasText(this.tiptapStatusbarWordCount, `${count} words`);\n }\n\n async doesTiptapHaveCharacterCount(count: number) {\n await this.hasText(this.tiptapStatusbarWordCount, `${count} characters`);\n }\n\n async clickTiptapWordCountButton() {\n await this.click(this.tiptapStatusbarWordCount);\n }\n\n async doesElementPathHaveText(text: string) {\n await this.hasText(this.tiptapStatusbarElementPath, text);\n }\n\n async clickConfirmToPublishButton() {\n await this.click(this.confirmToPublishBtn);\n // Extra wait to ensure publish process starts\n await this.waitForTimeout(ConstantHelper.wait.medium);\n }\n\n async clickPublishWithDescendantsButton() {\n await this.click(this.publishWithDescendantsBtn);\n }\n\n async clickIncludeUnpublishedDescendantsToggle() {\n await this.click(this.includeUnpublishedDescendantsToggle);\n }\n\n async clickPublishWithDescendantsModalButton() {\n await this.click(this.publishWithDescendantsModalBtn);\n }\n\n async doesElementVariantLanguageItemHaveCount(count: number) {\n await this.hasCount(this.elementVariantLanguageItem, count);\n }\n\n async doesElementVariantLanguageItemHaveName(name: string) {\n await this.containsText(this.elementVariantLanguagePicker, name);\n }\n\n async clickSchedulePublishLanguageButton(languageName: string) {\n await this.click(this.page.getByRole('menu').filter({hasText: languageName}));\n }\n\n async clickBlockCardWithName(name: string, toForce: boolean = false) {\n const blockWithNameLocator = this.page.locator('uui-card-block-type', {hasText: name});\n await this.click(blockWithNameLocator, {force: toForce});\n }\n\n async clickStyleSelectButton() {\n await this.click(this.styleSelectBtn);\n }\n\n async clickCascadingMenuItemWithName(name: string) {\n const menuItemLocator = this.cascadingMenuContainer.locator(`uui-menu-item[label=\"${name}\"]`);\n await this.click(menuItemLocator);\n }\n\n async hoverCascadingMenuItemWithName(name: string) {\n const menuItemLocator = this.cascadingMenuContainer.locator(`uui-menu-item[label=\"${name}\"]`);\n await this.hover(menuItemLocator);\n }\n\n async selectAllRTETipTapEditorText() {\n await this.click(this.tipTapEditor);\n await this.pressKey(this.tipTapEditor, 'Control+A');\n }\n\n async clearTipTapEditor() {\n await this.waitForVisible(this.tipTapEditor);\n // We use the middle mouse button click so we don't accidentally open a block in the RTE. This solution avoids that.\n await this.tipTapEditor.click({button: \"middle\"});\n await this.pressKey(this.tipTapEditor, 'Control+A');\n await this.pressKey(this.tipTapEditor, 'Backspace');\n }\n\n async clickBlockElementInRTEWithName(elementTypeName: string) {\n const blockElementLocator = this.page.locator('uui-ref-node umb-ufm-render').filter({hasText: elementTypeName});\n await this.click(blockElementLocator, {force: true});\n }\n\n async doesModalFormValidationMessageContainText(text: string) {\n await this.containsText(this.modalFormValidationMessage, text);\n }\n\n async enterSearchKeywordInTreePickerModal(keyword: string) {\n await this.enterText(this.treePickerSearchTxt, keyword);\n await this.pressKey(this.treePickerSearchTxt, 'Enter');\n }\n\n async enterSearchKeywordInMediaPickerModal(keyword: string) {\n await this.enterText(this.mediaPickerSearchTxt, keyword);\n await this.pressKey(this.mediaPickerSearchTxt, 'Enter');\n }\n\n async enterSearchKeywordInMemberPickerModal(keyword: string) {\n await this.enterText(this.memberPickerSearchTxt, keyword);\n await this.pressKey(this.memberPickerSearchTxt, 'Enter');\n }\n \n async isElementNameReadOnly() {\n await expect(this.elementNameTxt).toHaveAttribute('readonly');\n }\n\n // Block Custom View\n async isBlockCustomViewVisible(blockCustomViewLocator: string, isVisible: boolean = true) {\n await this.isVisible(this.page.locator(blockCustomViewLocator), isVisible);\n }\n\n async isSingleBlockElementVisible(isVisible: boolean = true) {\n const count = await this.refListBlock.count();\n if (isVisible) {\n expect(count, `Expected only one element, but found ${count}`).toBe(1);\n } else {\n expect(count, `Expected only one element, but found ${count}`).toBe(0);\n }\n await this.isVisible(this.refListBlock, isVisible);\n }\n\n async doesBlockCustomViewHaveValue(customBlockViewLocator: string, valueText: string) {\n const locator = this.page.locator(`${customBlockViewLocator} p`);\n await this.waitForVisible(locator);\n await this.hasText(locator, valueText);\n }\n\n async clickPropertyActionWithName(name: string) {\n const actionLocator = this.propertyActionMenu.locator(`umb-property-action uui-menu-item[label=\"${name}\"]`);\n await this.click(actionLocator);\n }\n \n async isElementWithNameVisibleInList(elementName: string, isVisible: boolean = true) {\n await this.isVisible(this.elementTableColumnName.filter({hasText: elementName}), isVisible);\n }\n \n async selectElementBlueprintWithName(blueprintName: string) {\n const blueprintLocator = this.elementCreateOptionsModal.locator('uui-menu-item', {hasText: blueprintName});\n await this.click(blueprintLocator);\n }\n\n async doesElementModalHaveText(text: string) {\n await this.containsText(this.elementCreateOptionsModal, text);\n }\n\n async doesElementCollectionViewItemsHaveCount(pageSize: number){\n await this.hasCount(this.elementCollectionViewCustomRows, pageSize);\n }\n\n async isElementCollectionViewItemWithNameVisible(itemName: string, index: number = 0){\n await expect(this.elementCollectionViewCustomRows.nth(index)).toContainText(itemName);\n }\n\n async clickPaginationNextButton(){\n await this.click(this.nextPaginationBtn);\n }\n\n // Entity Data Picker\n async chooseCollectionMenuItemWithName(name: string) {\n await this.clickChooseButton();\n await this.click(this.collectionMenu.locator('umb-collection-menu-item', {hasText: name}));\n await this.clickChooseContainerButton();\n await this.page.waitForTimeout(500);\n }\n\n async chooseTreeMenuItemWithName(name: string, parentNames: string[] = []) {\n await this.clickChooseButton();\n for (const itemName of parentNames) {\n await this.click(this.entityPickerTree.locator('umb-tree-item').getByLabel(`Expand child items for ${itemName}`));\n }\n await this.click(this.container.getByLabel(name));\n await this.clickChooseContainerButton();\n await this.page.waitForTimeout(500);\n }\n \n async isChooseButtonVisible(isVisible: boolean = true) {\n await this.isVisible(this.chooseBtn, isVisible);\n }\n\n async clickElementNotificationOptionWithName(name: string) {\n const notificationOptionLocator = this.page.locator(`umb-element-notifications-modal [id$=\"${name}\"]`).locator('#toggle');\n await this.click(notificationOptionLocator);\n }\n\n async switchLanguage(languageName: string) {\n await this.click(this.languageToggle);\n const languageOptionLocator = this.elementVariantDropdown.locator('.culture-variant').filter({hasText: languageName});\n await this.click(languageOptionLocator);\n await expect(languageOptionLocator).toContainClass('selected');\n }\n\n async clickAddBlockListElementWithName(blockName: string) {\n const createNewButtonLocator = this.page.getByTestId(`property:${blockName.toLowerCase()}`).getByLabel('Create new');\n await this.click(createNewButtonLocator);\n }\n\n async isAddBlockListElementWithNameDisabled(blockName: string) {\n const createNewButtonLocator = this.page.getByTestId(`property:${blockName.toLowerCase()}`).locator('uui-button[label=\"Create new\"]');\n await expect(createNewButtonLocator).toHaveAttribute('disabled');\n }\n\n async isAddBlockListElementWithNameVisible(blockName: string) {\n const createNewButtonLocator = this.page.getByTestId(`property:${blockName.toLowerCase()}`).locator('uui-button[label=\"Create new\"]');\n await this.waitForVisible(createNewButtonLocator);\n await expect(createNewButtonLocator).not.toHaveAttribute('disabled');\n }\n\n async enterBlockPropertyValue(propertyName: string, value: string) {\n const property = this.blockProperty.filter({hasText: propertyName});\n await this.enterText(property.locator('input'), value);\n }\n\n async isBlockPropertyEditable(propertyName: string, isEditable: boolean = true) {\n const propertyLocator = this.blockProperty.filter({hasText: propertyName}).locator('#input');\n await this.waitForVisible(propertyLocator);\n await expect(propertyLocator).toBeEditable({editable: isEditable});\n }\n\n async isInlineBlockPropertyVisible(propertyName: string, isVisible: boolean = true) {\n const propertyLocator = this.blockListEntry.locator(this.blockProperty).filter({hasText: propertyName});\n await this.isVisible(propertyLocator, isVisible);\n }\n\n async isInlineBlockPropertyVisibleForBlockWithName(blockName: string, propertyName: string, isVisible: boolean = true, index: number = 0) {\n const blockEntryLocator = this.blockListEntry.filter({hasText: blockName}).nth(index);\n const propertyLocator = blockEntryLocator.locator(this.blockProperty).filter({hasText: propertyName});\n await this.isVisible(propertyLocator, isVisible);\n }\n\n async enterInlineBlockPropertyValue(propertyName: string, value: string, index: number = 0) {\n const propertyLocator = this.blockListEntry.nth(index).locator(this.blockProperty).filter({hasText: propertyName});\n await this.enterText(propertyLocator.locator('input'), value);\n }\n\n async doesInlineBlockPropertyHaveValue(propertyName: string, value: string, index: number = 0) {\n const propertyLocator = this.blockListEntry.nth(index).locator(this.blockProperty).filter({hasText: propertyName}).locator('input');\n await this.hasValue(propertyLocator, value);\n }\n\n async clickConfirmTrashButtonAndWaitForElementToBeTrashed() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickConfirmTrashButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickConfirmEmptyRecycleBinButtonAndWaitForRecycleBinToBeEmptied() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.recycleBinElement, this.clickConfirmEmptyRecycleBinButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickConfirmToPublishButtonAndWaitForElementToBePublished() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickConfirmToPublishButton(), ConstantHelper.statusCodes.ok);\n }\n\n async isLinkPickerAddButtonEnabled() {\n await expect(this.linkPickerAddBtn).toBeEnabled();\n }\n\n async isLinkPickerAddButtonDisabled() {\n await expect(this.linkPickerAddBtn).toBeDisabled();\n }\n\n async clickLinkPickerCloseButton() {\n await this.click(this.linkPickerCloseBtn);\n }\n\n async clickLinkPickerAddButton() {\n await this.click(this.linkPickerAddBtn);\n }\n\n async clickLinkPickerTargetToggle() {\n await this.click(this.linkPickerTargetToggle);\n }\n\n async clickConfirmToResetButton() {\n await this.click(this.confirmToResetBtn);\n }\n\n async doesTextStringHaveExpectedValue(expectedValue: string) {\n await this.hasValue(this.textstringTxt, expectedValue);\n }\n\n async doesTextAreaHaveExpectedValue(expectedValue: string) {\n await this.hasValue(this.textAreaTxt, expectedValue);\n }\n\n async clickElementButton() {\n await this.click(this.elementBtn);\n }\n\n async clickElementFolderButton() {\n await this.click(this.elementFolderBtn);\n }\n\n async clickCreateFolderButtonAndWaitForElementFolderToBeCreated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.elementFolder, this.clickCreateFolderButton(), ConstantHelper.statusCodes.created);\n }\n\n async clickConfirmCreateFolderButtonAndWaitForElementFolderToBeCreated() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.elementFolder, this.clickConfirmCreateFolderButton(), ConstantHelper.statusCodes.created);\n }\n\n async clickConfirmRenameFolderButtonAndWaitForElementFolderToBeRenamed() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.elementFolder, this.clickConfirmRenameButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickConfirmTrashButtonAndWaitForElementFolderToBeTrashed() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.elementFolder, this.clickConfirmTrashButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickConfirmToUnpublishButtonAndWaitForElementToBeUnpublished() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickConfirmToUnpublishButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickDeleteButtonForTrashedElememtWithName(elementName: string) {\n const trashedElementLocator = this.page.locator('uui-menu-item[label=\"' + elementName + '\"]');\n const deleteButtonLocator = trashedElementLocator.getByLabel('Delete', {exact: true});\n await this.hoverAndClick(trashedElementLocator, deleteButtonLocator, {force: true});\n }\n\n async clickConfirmToDeleteButtonAndWaitForElementToBeDeleted() {\n return await this.waitForResponseAfterExecutingPromise(ConstantHelper.apiEndpoints.element, this.clickConfirmToDeleteButton(), ConstantHelper.statusCodes.ok);\n }\n\n async clickEntityActionOnElementWithName(elementName: string) {\n const elementLocator = this.page.locator('uui-menu-item[label=\"' + elementName + '\"]');\n const firstEntityActionButton = elementLocator.locator(this.entityActionsBundle).locator('uui-button #button');\n await this.hoverAndClick(elementLocator, firstEntityActionButton, {force: true});\n }\n \n async isEntityActionForElementWithNameHidden(elementName: string) {\n const elementLocator = this.page.locator('uui-menu-item[label=\"' + elementName + '\"]');\n const entityActionLocator = elementLocator.locator(this.entityActionsBundle);\n expect(entityActionLocator).toBeHidden();\n }\n}"]}