/* eslint max-len: ["error", { "ignoreStrings": true }]*/

export default {
    globalItems: {
        applicationsMenuButton: '#apps',
        userMenuButton: '#user',
        logoutButton: '#logout',
        applicationsMenuVisible: '.modules-menu',
        clientsButton: '.modules-menu [ui-sref="client.index"]',
        itemsButton: '.modules-menu [ui-sref="item.index"]',
        ticketsButton: '.modules-menu [ui-sref="ticket.index"]',
        invoiceOutButton: '.modules-menu [ui-sref="invoiceOut.index"]',
        claimsButton: '.modules-menu [ui-sref="claim.index"]',
        returnToModuleIndexButton: 'a[name="goToModuleIndex"]',
        homeButton: 'vn-topbar > div.side.start > a',
        userLocalWarehouse: '.user-popover vn-autocomplete[ng-model="$ctrl.localWarehouseFk"]',
        userLocalBank: '.user-popover vn-autocomplete[ng-model="$ctrl.localBankFk"]',
        userLocalCompany: '.user-popover vn-autocomplete[ng-model="$ctrl.localCompanyFk"]',
        userWarehouse: '.user-popover vn-autocomplete[ng-model="$ctrl.warehouseFk"]',
        userCompany: '.user-popover vn-autocomplete[ng-model="$ctrl.companyFk"]',
        userConfigFirstAutocomplete: '#localWarehouse',
        userConfigSecondAutocomplete: '#localBank',
        userConfigThirdAutocomplete: '#localCompany',
        acceptButton: '.vn-confirm.shown button[response=accept]',
        cancelButton: '.vn-confirm.shown input[response=cancel]',
        searchButton: 'vn-searchbar vn-icon[icon="search"]'
    },
    moduleIndex: {
        anyStarredModule: 'vn-home > div:nth-child(1) > div.modules > a',
        firstModulePinIcon: 'vn-home a:nth-child(1) vn-icon[icon="push_pin"]',
        firstModuleRemovePinIcon: 'vn-home a:nth-child(1) vn-icon[icon="remove_circle"]'
    },
    recoverPassword: {
        recoverPasswordButton: 'vn-login a[ui-sref="recover-password"]',
        email: 'vn-recover-password vn-textfield[ng-model="$ctrl.user"]',
        sendEmailButton: 'vn-recover-password vn-submit',
    },
    accountIndex: {
        addAccount: 'vn-user-index button vn-icon[icon="add"]',
        newName: 'vn-user-create vn-textfield[ng-model="$ctrl.user.name"]',
        newNickname: 'vn-user-create vn-textfield[ng-model="$ctrl.user.nickname"]',
        newEmail: 'vn-user-create vn-textfield[ng-model="$ctrl.user.email"]',
        newRole: 'vn-user-create vn-autocomplete[ng-model="$ctrl.user.roleFk"]',
        newPassword: 'vn-user-create vn-textfield[ng-model="$ctrl.user.password"]',
        createAccountButton: 'vn-user-create button[type="submit"]',
    },
    accountBasicData: {
        name: 'vn-user-basic-data vn-textfield[ng-model="$ctrl.user.name"]',
        nickname: 'vn-user-basic-data vn-textfield[ng-model="$ctrl.user.nickname"]',
        email: 'vn-user-basic-data vn-textfield[ng-model="$ctrl.user.email"]',
        language: 'vn-user-basic-data vn-autocomplete[ng-model="$ctrl.user.lang"]',
        save: 'vn-user-basic-data button[type="submit"]'
    },
    accountRoles: {
        anyResult: 'vn-user-roles > vn-data-viewer vn-list > a'
    },
    accountDescriptor: {
        menuButton: 'vn-user-descriptor vn-icon-button[icon="more_vert"]',
        deleteAccount: '.vn-menu [name="deleteUser"]',
        setPassword: '.vn-menu [name="setPassword"]',
        activateAccount: '.vn-menu [name="enableAccount"]',
        disableAccount: '.vn-menu [name="disableAccount"]',
        activateUser: '.vn-menu [name="activateUser"]',
        deactivateUser: '.vn-menu [name="deactivateUser"]',
        newPassword: 'vn-textfield[ng-model="$ctrl.newPassword"]',
        repeatPassword: 'vn-textfield[ng-model="$ctrl.repeatPassword"]',
        activeAccountIcon: 'vn-icon[icon="contact_mail"]',
        activeUserIcon: 'vn-icon[icon="icon-disabled"]',
        acceptButton: 'button[response="accept"]',
    },
    accountAliasIndex: {
        addAlias: 'vn-alias-index button vn-icon[icon="add"]',
        newName: 'vn-alias-create vn-textfield[ng-model="$ctrl.alias.alias"]',
        newDescription: 'vn-alias-create vn-textfield[ng-model="$ctrl.alias.description"]',
        createAliasButton: 'vn-alias-create button[type="submit"]',
    },
    accountAliasBasicData: {
        name: 'vn-alias-basic-data vn-textfield[ng-model="$ctrl.alias.alias"]',
        description: 'vn-alias-basic-data vn-textfield[ng-model="$ctrl.alias.description"]',
        save: 'vn-alias-basic-data button[type="submit"]'
    },
    accountAliasUsers: {
        anyResult: 'vn-alias-users > vn-data-viewer vn-tr'
    },
    accountRoleIndex: {
        addRole: 'vn-role-index button vn-icon[icon="add"]',
        newName: 'vn-role-create vn-textfield[ng-model="$ctrl.role.name"]',
        newDescription: 'vn-role-create vn-textfield[ng-model="$ctrl.role.description"]',
        createRoleButton: 'vn-role-create button[type="submit"]',
    },
    accountRoleBasicData: {
        name: 'vn-role-basic-data vn-textfield[ng-model="$ctrl.role.name"]',
        description: 'vn-role-basic-data vn-textfield[ng-model="$ctrl.role.description"]',
        save: 'vn-role-basic-data button[type="submit"]'
    },
    accountSubroles: {
        addSubrole: 'vn-role-subroles button vn-icon[icon="add"]',
        role: 'vn-autocomplete[ng-model="$ctrl.addData.inheritsFrom"]',
        save: 'button[response="accept"]',
        anyResult: 'vn-role-subroles > vn-data-viewer > div > div > vn-card > vn-list > a'
    },
    accountRoleInheritance: {
        anyResult: 'vn-role-inherited > vn-data-viewer > div > div > vn-card > vn-list > a'
    },
    accountMailForwarding: {
        mailForwardingCheckbox: 'vn-user-mail-forwarding vn-check[ng-model="watcher.hasData"]',
        email: 'vn-user-mail-forwarding vn-textfield[ng-model="data.forwardTo"]',
        save: 'vn-user-mail-forwarding vn-submit'
    },
    accountAcl: {
        addAcl: 'vn-acl-index button vn-icon[icon="add"]',
        thirdAcl: 'vn-acl-index vn-list> a:nth-child(3)',
        deleteThirdAcl: 'vn-acl-index vn-list > a:nth-child(3) > vn-item-section > vn-icon-button[icon="delete"]',
        role: 'vn-acl-create vn-autocomplete[ng-model="$ctrl.acl.principalId"]',
        model: 'vn-acl-create vn-autocomplete[ng-model="$ctrl.acl.model"]',
        property: 'vn-acl-create vn-autocomplete[ng-model="$ctrl.acl.property"]',
        accessType: 'vn-acl-create vn-autocomplete[ng-model="$ctrl.acl.accessType"]',
        permission: 'vn-acl-create vn-autocomplete[ng-model="$ctrl.acl.permission"]',
        save: 'vn-acl-create vn-submit'
    },
    accountConnections: {
        firstConnection: 'vn-connections vn-list > a:nth-child(1)',
        deleteFirstConnection: 'vn-connections vn-list > a:nth-child(1) > vn-item-section > vn-icon-button[icon="exit_to_app"]'
    },
    accountAccounts: {
        syncRoles: 'vn-account-accounts vn-button[label="Synchronize roles"]',
        syncUser: 'vn-account-accounts vn-button[label="Synchronize user"]',
        syncAll: 'vn-account-accounts vn-button[label="Synchronize all"]',
        syncUserName: 'vn-textfield[ng-model="$ctrl.syncUser"]',
        syncUserPassword: 'vn-textfield[ng-model="$ctrl.syncPassword"]',
        buttonAccept: 'button[response="accept"]'
    },
    accountLdap: {
        checkEnable: 'vn-account-ldap vn-check[ng-model="watcher.hasData"]',
        server: 'vn-account-ldap vn-textfield[ng-model="$ctrl.config.server"]',
        rdn: 'vn-account-ldap vn-textfield[ng-model="$ctrl.config.rdn"]',
        password: 'vn-account-ldap vn-textfield[ng-model="$ctrl.config.password"]',
        userDn: 'vn-account-ldap vn-textfield[ng-model="$ctrl.config.userDn"]',
        groupDn: 'vn-account-ldap vn-textfield[ng-model="$ctrl.config.groupDn"]',
        save: 'vn-account-ldap vn-submit'
    },
    accountSamba: {
        checkEnable: 'vn-account-samba vn-check[ng-model="watcher.hasData"]',
        adDomain: 'vn-account-samba vn-textfield[ng-model="$ctrl.config.adDomain"]',
        adController: 'vn-account-samba vn-textfield[ng-model="$ctrl.config.adController"]',
        adUser: 'vn-account-samba vn-textfield[ng-model="$ctrl.config.adUser"]',
        adPassword: 'vn-account-samba vn-textfield[ng-model="$ctrl.config.adPassword"]',
        userDn: 'vn-account-samba vn-textfield[ng-model="$ctrl.config.userDn"]',
        verifyCert: 'vn-account-samba vn-check[ng-model="$ctrl.config.verifyCert"]',
        save: 'vn-account-samba vn-submit'
    },
    accountPrivileges: {
        checkHasGrant: 'vn-user-privileges vn-check[ng-model="$ctrl.user.hasGrant"]',
        role: 'vn-user-privileges vn-autocomplete[ng-model="$ctrl.user.roleFk"]',
        save: 'vn-user-privileges vn-submit'
    },
    clientsIndex: {
        createClientButton: `vn-float-button`
    },
    clientSummary: {
        header: 'vn-client-summary > vn-card > h5',
        email: 'vn-client-summary vn-label-value[label="Email"]',
        street: 'vn-client-summary vn-label-value[label="Street"]',
        verifiedData: 'vn-client-summary > vn-card > vn-horizontal vn-check[ng-model="$ctrl.summary.isTaxDataChecked"]',
        payMethod: 'vn-client-summary vn-label-value[label="Pay method"]',
        defaultAdressName: 'vn-client-summary vn-label-value[label="Name"]',
        userName: 'vn-client-summary vn-label-value[label="User"]',
        rate: 'vn-client-summary vn-label-value[label="Rate"]',
        credit: 'vn-client-summary vn-label-value[label="Credit"]',
    },
    createClientView: {
        name: 'vn-client-create vn-textfield[ng-model="$ctrl.client.name"]',
        taxNumber: 'vn-client-create vn-textfield[ng-model="$ctrl.client.fi"]',
        socialName: 'vn-client-create vn-textfield[ng-model="$ctrl.client.socialName"]',
        businessType: 'vn-client-create vn-autocomplete[ng-model="$ctrl.client.businessTypeFk"]',
        street: 'vn-client-create vn-textfield[ng-model="$ctrl.client.street"]',
        addPostCode: 'vn-client-create vn-datalist[ng-model="$ctrl.client.postcode"] vn-icon-button[icon="add_circle"]',
        addProvince: 'vn-autocomplete[ng-model="$ctrl.location.provinceFk"] vn-icon-button[icon="add_circle"]',
        addCity: 'vn-autocomplete[ng-model="$ctrl.location.townFk"] vn-icon-button[icon="add_circle"]',
        newProvinceName: 'vn-textfield[ng-model="$ctrl.province.name"]',
        newProvinceAutonomy: 'vn-autocomplete[ng-model="$ctrl.province.autonomyFk"]',
        newCityName: 'vn-textfield[ng-model="$ctrl.city.name"]',
        newCityProvince: 'vn-autocomplete[ng-model="$ctrl.city.provinceFk"]',
        newPostcode: 'vn-textfield[ng-model="$ctrl.location.code"]',
        postcode: 'vn-client-create vn-datalist[ng-model="$ctrl.client.postcode"]',
        city: 'vn-client-create vn-datalist[ng-model="$ctrl.client.city"]',
        province: 'vn-autocomplete[ng-model="$ctrl.client.provinceFk"]',
        country: 'vn-client-create vn-autocomplete[ng-model="$ctrl.client.countryFk"]',
        userName: 'vn-client-create vn-textfield[ng-model="$ctrl.client.userName"]',
        email: 'vn-client-create vn-textfield[ng-model="$ctrl.client.email"]',
        salesPerson: 'vn-client-create vn-worker-autocomplete[ng-model="$ctrl.client.salesPersonFk"]',
        saveNewProvicenButton: '#saveProvince',
        saveNewCityButton: '#saveCity',
        saveNewPoscode: '#savePostcode',
        createButton: 'vn-client-create button[type=submit]'
    },
    clientBasicData: {
        name: 'vn-client-basic-data vn-textfield[ng-model="$ctrl.client.name"]',
        contact: 'vn-client-basic-data vn-textfield[ng-model="$ctrl.client.contact"]',
        email: 'vn-client-basic-data vn-textfield[ng-model="$ctrl.client.email"]',
        phone: 'vn-client-basic-data vn-textfield[ng-model="$ctrl.client.phone"]',
        mobile: 'vn-client-basic-data vn-textfield[ng-model="$ctrl.client.mobile"]',
        salesPerson: 'vn-client-basic-data vn-worker-autocomplete[ng-model="$ctrl.client.salesPersonFk"]',
        channel: 'vn-client-basic-data vn-autocomplete[ng-model="$ctrl.client.contactChannelFk"]',
        transferor: 'vn-client-basic-data vn-autocomplete[ng-model="$ctrl.client.transferorFk"]',
        businessType: 'vn-client-basic-data vn-autocomplete[ng-model="$ctrl.client.businessTypeFk"]',
        saveButton: 'vn-client-basic-data button[type=submit]'
    },
    clientFiscalData: {
        fiscalDataButton: 'vn-left-menu a[ui-sref="client.card.fiscalData"]',
        socialName: 'vn-client-fiscal-data vn-textfield[ng-model="$ctrl.client.socialName"]',
        fiscalId: 'vn-client-fiscal-data vn-textfield[ng-model="$ctrl.client.fi"]',
        equalizationTaxCheckbox: 'vn-client-fiscal-data vn-check[ng-model="$ctrl.client.isEqualizated"]',
        address: 'vn-client-fiscal-data vn-textfield[ng-model="$ctrl.client.street"]',
        postcode: 'vn-client-fiscal-data vn-datalist[ng-model="$ctrl.client.postcode"]',
        sageTax: 'vn-client-fiscal-data vn-autocomplete[ng-model="$ctrl.client.sageTaxTypeFk"]',
        sageTransaction: 'vn-client-fiscal-data vn-autocomplete[ng-model="$ctrl.client.sageTransactionTypeFk"]',
        city: 'vn-client-fiscal-data vn-datalist[ng-model="$ctrl.client.city"]',
        province: 'vn-client-fiscal-data vn-autocomplete[ng-model="$ctrl.client.provinceFk"]',
        country: 'vn-client-fiscal-data vn-autocomplete[ng-model="$ctrl.client.countryFk"]',
        activeCheckbox: 'vn-client-fiscal-data vn-check[label="Active"]',
        frozenCheckbox: 'vn-client-fiscal-data vn-check[label="Frozen"]',
        invoiceByAddressCheckbox: 'vn-client-fiscal-data vn-check[label="Invoice by address"]',
        verifiedDataCheckbox: 'vn-client-fiscal-data vn-check[label="Verified data"]',
        hasToInvoiceCheckbox: 'vn-client-fiscal-data vn-check[label="Has to invoice"]',
        notifyByMailCheckbox: 'vn-client-fiscal-data vn-check[label="Notify by email"]',
        viesCheckbox: 'vn-client-fiscal-data vn-check[label="Vies"]',
        saveButton: 'button[type=submit]',
        watcher: 'vn-client-fiscal-data vn-watcher'
    },
    clientAddresses: {
        addressesButton: 'vn-left-menu a[ui-sref="client.card.address.index"]',
        createAddress: 'vn-client-address-index vn-float-button',
        defaultCheckbox: 'vn-check[label="Default"]',
        consignee: 'vn-textfield[ng-model="$ctrl.address.nickname"]',
        streetAddress: 'vn-textfield[ng-model="$ctrl.address.street"]',
        postcode: 'vn-datalist[ng-model="$ctrl.address.postalCode"]',
        city: 'vn-datalist[ng-model="$ctrl.address.city"]',
        province: 'vn-autocomplete[ng-model="$ctrl.address.provinceFk"]',
        agency: 'vn-autocomplete[ng-model="$ctrl.address.agencyModeFk"]',
        phone: 'vn-textfield[ng-model="$ctrl.address.phone"]',
        mobileInput: 'vn-textfield[ng-model="$ctrl.address.mobile"]',
        defaultAddress: 'vn-client-address-index div:nth-child(1) div[name="street"]',
        incoterms: 'vn-autocomplete[ng-model="$ctrl.address.incotermsFk"]',
        addNewCustomsAgent: 'vn-client-address-create vn-autocomplete[ng-model="$ctrl.address.customsAgentFk"] vn-icon-button[icon="add_circle"]',
        newCustomsAgentFiscalID: 'vn-textfield[ng-model="$ctrl.newCustomsAgent.nif"]',
        newCustomsAgentFiscalName: 'vn-textfield[ng-model="$ctrl.newCustomsAgent.fiscalName"]',
        newCustomsAgentStreet: 'vn-textfield[ng-model="$ctrl.newCustomsAgent.street"]',
        newCustomsAgentPhone: 'vn-textfield[ng-model="$ctrl.newCustomsAgent.phone"]',
        saveNewCustomsAgentButton: 'button[response="accept"]',
        customsAgent: 'vn-autocomplete[ng-model="$ctrl.address.customsAgentFk"]',
        secondMakeDefaultStar: 'vn-client-address-index vn-card div:nth-child(2) vn-icon-button[icon="star_border"]',
        firstEditAddress: 'vn-client-address-index div:nth-child(1) > a',
        secondEditAddress: 'vn-client-address-index div:nth-child(2) > a',
        activeCheckbox: 'vn-check[label="Enabled"]',
        equalizationTaxCheckbox: 'vn-client-address-edit vn-check[label="Is equalizated"]',
        firstObservationType: 'vn-client-address-edit [name=observations] vn-horizontal:nth-child(1) vn-autocomplete[ng-model="observation.observationTypeFk"]',
        firstObservationDescription: 'vn-client-address-edit [name=observations] vn-horizontal:nth-child(1) vn-textfield[ng-model="observation.description"]',
        secondObservationType: 'vn-client-address-edit [name=observations] vn-horizontal:nth-child(2) vn-autocomplete[ng-model="observation.observationTypeFk"]',
        secondObservationDescription: 'vn-client-address-edit [name=observations] vn-horizontal:nth-child(2) vn-textfield[ng-model="observation.description"]',
        addObservationButton: 'vn-client-address-edit div[name="observations"] vn-icon-button[icon="add_circle"]',
        saveButton: 'button[type=submit]',
        cancelEditAddressButton: 'vn-client-address-edit > form > vn-button-bar > vn-button > button',
        watcher: 'vn-client-address-edit vn-watcher'
    },
    clientNotes: {
        addNoteFloatButton: 'vn-float-button',
        note: 'vn-textarea[ng-model="$ctrl.note.text"]',
        saveButton: 'button[type=submit]',
        firstNoteText: 'vn-client-note .text'
    },
    clientCredit: {
        addCreditFloatButton: 'vn-float-button',
        credit: 'vn-client-credit-create vn-input-number[ng-model="$ctrl.client.credit"]',
        firstCreditText: 'vn-client-credit-index vn-card vn-table vn-tbody > vn-tr',
        saveButton: 'button[type=submit]'
    },
    clientGreuge: {
        addGreugeFloatButton: 'vn-float-button',
        amount: 'vn-client-greuge-create vn-input-number[ng-model="$ctrl.greuge.amount"]',
        description: 'vn-client-greuge-create vn-textfield[ng-model="$ctrl.greuge.description"]',
        type: 'vn-autocomplete[ng-model="$ctrl.greuge.greugeTypeFk"]',
        saveButton: 'button[type=submit]',
        firstGreugeText: 'vn-client-greuge-index vn-card vn-table vn-tbody > vn-tr'
    },
    clientMandate: {
        firstMandateText: 'vn-client-mandate vn-card vn-table vn-tbody > vn-tr'
    },
    webPayment: {
        confirmFirstPaymentButton: 'vn-client-web-payment vn-tr:nth-child(1) vn-icon-button[icon="done_all"]',
        firstPaymentConfirmed: 'vn-client-web-payment vn-tr:nth-child(1) vn-icon[icon="check"]'
    },
    dms: {
        deleteFileButton: 'vn-client-dms-index vn-tr:nth-child(1) vn-icon-button[icon="delete"]',
        firstDocWorker: 'vn-client-dms-index vn-td:nth-child(8) > span',
        firstDocWorkerDescriptor: '.vn-popover.shown vn-worker-descriptor'
    },
    clientCreditInsurance: {
        addNewContract: 'vn-client-credit-insurance-index vn-float-button[ui-sref="client.card.creditInsurance.create"]',
        newCreditClassification: 'vn-client-credit-insurance-create vn-input-number[ng-model="$ctrl.creditClassification.credit"]',
        newInsuranceCredit: 'vn-client-credit-insurance-insurance-create vn-input-number[ng-model="$ctrl.insurance.credit"]',
        newClassificationGrade: 'vn-client-credit-insurance-create vn-input-number[ng-model="$ctrl.creditClassification.grade"]',
        newInsuranceGrade: 'vn-client-credit-insurance-insurance-create vn-input-number[ng-model="$ctrl.insurance.grade"]',
        newClassificationStartingDate: 'vn-client-credit-insurance-create vn-date-picker[ng-model="$ctrl.creditClassification.started"]',
        newInsuranceStartingDate: 'vn-client-credit-insurance-insurance-create vn-date-picker[ng-model="$ctrl.insurance.created"]',
        endCurrentContract: 'vn-client-credit-insurance-index vn-icon-button[icon="lock"]',
        firstContratViewCreditButton: 'vn-client-credit-insurance-index vn-card > vn-horizontal:nth-child(1) vn-icon-button[icon="preview"]',
        addNewCredit: 'vn-client-credit-insurance-insurance-index vn-float-button vn-icon[icon="add"]',
        saveNewContract: 'vn-client-credit-insurance-create vn-submit',
        saveNewInsuranceCredit: 'vn-client-credit-insurance-insurance-create button[type="submit"]',
        anyCreditInsuranceLine: 'vn-client-credit-insurance-insurance-index vn-tbody > vn-tr',
    },
    clientDefaulter: {
        anyClient: 'vn-client-defaulter tbody > tr',
        firstClientName: 'vn-client-defaulter tbody > tr:nth-child(2) > td:nth-child(2) > span',
        firstSalesPersonName: 'vn-client-defaulter tbody > tr:nth-child(2) > td:nth-child(4) > span',
        firstObservation: 'vn-client-defaulter tbody > tr:nth-child(2) > td:nth-child(9) > vn-textarea[ng-model="defaulter.observation"]',
        allDefaulterCheckbox: 'vn-client-defaulter thead vn-multi-check',
        addObservationButton: 'vn-client-defaulter vn-button[icon="icon-notes"]',
        observation: '.vn-dialog.shown vn-textarea[ng-model="$ctrl.defaulter.observation"]',
        saveButton: 'button[response="accept"]'
    },
    clientContacts: {
        addContactButton: 'vn-client-contact vn-icon[icon="add_circle"]',
        name: 'vn-client-contact vn-textfield[ng-model="contact.name"]',
        phone: 'vn-client-contact vn-textfield[ng-model="contact.phone"]',
        deleteFirstPhone: 'vn-client-contact vn-icon[icon="delete"]',
        saveButton: 'button[type=submit]'
    },
    clientUnpaid: {
        hasDataCheckBox: 'vn-client-unpaid vn-check[ng-model="watcher.hasData"]',
        dated: 'vn-client-unpaid vn-date-picker[ng-model="$ctrl.clientUnpaid.dated"]',
        amount: 'vn-client-unpaid vn-input-number[ng-model="$ctrl.clientUnpaid.amount"]',
        saveButton: 'vn-submit[label="Save"]'
    },
    itemsIndex: {
        createItemButton: `vn-float-button`,
        firstSearchResult: 'vn-item-index tbody tr:nth-child(2)',
        searchResult: 'vn-item-index tbody tr:not(.empty-rows)',
        firstResultPreviewButton: 'vn-item-index tbody > :nth-child(2) .buttons > [icon="preview"]',
        searchResultCloneButton: 'vn-item-index .buttons > [icon="icon-clone"]',
        acceptClonationAlertButton: '.vn-confirm.shown [response="accept"]',
        closeItemSummaryPreview: '.vn-popup.shown',
        shownColumns: 'vn-item-index vn-button[id="shownColumns"]',
        shownColumnsList: '.vn-popover.shown .content',
        firstItemImage: 'vn-item-index tbody > tr:nth-child(2) > td:nth-child(1) > img',
        firstItemImageTd: 'vn-item-index smart-table tr:nth-child(1) td:nth-child(1)',
        firstItemId: 'vn-item-index tbody > tr:nth-child(1) > td:nth-child(2)',
        idCheckbox: '.vn-popover.shown vn-horizontal:nth-child(3) > vn-check[label="Identifier"]',
        stemsCheckbox: '.vn-popover.shown vn-horizontal:nth-child(3) > vn-check[label="Stems"]',
        sizeCheckbox: '.vn-popover.shown vn-horizontal:nth-child(3) > vn-check[label="Size"]',
        typeCheckbox: '.vn-popover.shown vn-horizontal:nth-child(3) > vn-check[label="Type"]',
        categoryCheckbox: '.vn-popover.shown vn-horizontal:nth-child(3) > vn-check[label="Category"]',
        intrastadCheckbox: '.vn-popover.shown vn-horizontal:nth-child(3) > vn-check[label="Intrastat"]',
        originCheckbox: '.vn-popover.shown vn-horizontal:nth-child(3) > vn-check[label="Origin"]',
        buyerCheckbox: '.vn-popover.shown vn-horizontal:nth-child(3) > vn-check[label="Buyer"]',
        densityCheckbox: '.vn-popover.shown vn-horizontal:nth-child(3) > vn-check[label="Density"]',
        openAdvancedSearchButton: 'vn-searchbar .append vn-icon[icon="arrow_drop_down"]',
        advancedSearchItemType: 'vn-item-search-panel vn-autocomplete[ng-model="filter.typeFk"]',
        advancedSearchButton: 'vn-item-search-panel button[type=submit]',
        advancedSmartTableButton: 'vn-item-index vn-button[icon="search"]',
        advancedSmartTableGrouping: 'vn-item-index vn-textfield[name=grouping]',
        weightByPieceCheckbox: '.vn-popover.shown vn-horizontal:nth-child(3) > vn-check[label="Weight/Piece"]',
        saveFieldsButton: '.vn-popover.shown vn-button[label="Save"] > button'
    },
    itemFixedPrice: {
        add: 'vn-fixed-price vn-icon-button[vn-tooltip="Add fixed price"]',
        firstItemID: 'vn-fixed-price tr:nth-child(2) vn-autocomplete[ng-model="price.itemFk"]',
        fourthFixedPrice: 'vn-fixed-price tr:nth-child(5)',
        fourthItemID: 'vn-fixed-price tr:nth-child(5) vn-autocomplete[ng-model="price.itemFk"]',
        fourthWarehouse: 'vn-fixed-price tr:nth-child(5) vn-autocomplete[ng-model="price.warehouseFk"]',
        fourthGroupingPrice: 'vn-fixed-price tr:nth-child(5) >  td:nth-child(4)',
        fourthPackingPrice: 'vn-fixed-price tr:nth-child(5) > td:nth-child(5)',
        fourthHasMinPrice: 'vn-fixed-price tr:nth-child(5) > td:nth-child(6) > vn-check[ng-model="price.hasMinPrice"]',
        fourthMinPrice: 'vn-fixed-price tr:nth-child(5) >  td:nth-child(6) > vn-input-number[ng-model="price.minPrice"]',
        fourthStarted: 'vn-fixed-price tr:nth-child(5) vn-date-picker[ng-model="price.started"]',
        fourthEnded: 'vn-fixed-price tr:nth-child(5) vn-date-picker[ng-model="price.ended"]',
        fourthDeleteIcon: 'vn-fixed-price tr:nth-child(5) > td:nth-child(9) > vn-icon-button[icon="delete"]',
        orderColumnId: 'vn-fixed-price th[field="itemFk"]',
        removeWarehouseFilter: 'vn-searchbar > form > vn-textfield > div.container > div.prepend > prepend > div > span:nth-child(1) > vn-icon > i',
        generalSearchFilter: 'vn-fixed-price-search-panel vn-textfield[ng-model="$ctrl.filter.search"]',
        reignFilter: 'vn-fixed-price-search-panel vn-horizontal.item-category vn-one',
        typeFilter: 'vn-fixed-price-search-panel vn-autocomplete[ng-model="$ctrl.filter.typeFk"]',
        buyerFilter: 'vn-fixed-price-search-panel vn-autocomplete[ng-model="$ctrl.filter.buyerFk"]',
        warehouseFilter: 'vn-fixed-price-search-panel vn-autocomplete[ng-model="$ctrl.filter.warehouseFk"]',
        mineFilter: 'vn-fixed-price-search-panel vn-check[ng-model="$ctrl.filter.mine"]',
        hasMinPriceFilter: 'vn-fixed-price-search-panel vn-check[ng-model="$ctrl.filter.hasMinPrice"]',
        addTag: 'vn-fixed-price-search-panel vn-icon-button[icon="add_circle"]',
        tagFilter: 'vn-fixed-price-search-panel vn-autocomplete[ng-model="itemTag.tagFk"]',
        tagValueFilter: 'vn-fixed-price-search-panel vn-autocomplete[ng-model="itemTag.value"]',
        chip: 'vn-fixed-price-search-panel vn-chip > vn-icon'
    },
    itemCreateView: {
        temporalName: 'vn-item-create vn-textfield[ng-model="$ctrl.item.provisionalName"]',
        priority: 'vn-autocomplete[ng-model="$ctrl.item.priority"]',
        type: 'vn-autocomplete[ng-model="$ctrl.item.typeFk"]',
        intrastat: 'vn-autocomplete[ng-model="$ctrl.item.intrastatFk"]',
        origin: 'vn-autocomplete[ng-model="$ctrl.item.originFk"]',
        createButton: 'button[type=submit]',
        cancelButton: 'vn-button[ui-sref="item.index"]'
    },
    itemDescriptor: {
        goBackToModuleIndexButton: 'vn-item-descriptor a[href="#!/item/index"]',
        moreMenu: 'vn-item-descriptor vn-icon-button[icon=more_vert]',
        moreMenuRegularizeButton: '.vn-menu [name="regularizeStock"]',
        regularizeQuantity: '.vn-dialog.shown vn-textfield[ng-model="$ctrl.quantity"]',
        regularizeWarehouse: '.vn-dialog.shown vn-autocomplete[ng-model="$ctrl.warehouseFk"]',
        editButton: 'vn-item-descriptor vn-float-button[icon="edit"]',
        regularizeSaveButton: '.vn-dialog.shown tpl-buttons > button',
        inactiveIcon: 'vn-item-descriptor vn-icon[icon="icon-unavailable"]'
    },
    itemRequest: {
        firstRequestItemID: 'vn-item-request vn-tbody > vn-tr:nth-child(1) > vn-td-editable:nth-child(8)',
        firstRequestQuantity: 'vn-item-request vn-tbody > vn-tr:nth-child(1) > vn-td-editable:nth-child(9)',
        firstRequestConcept: 'vn-item-request vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(10)',
        firstRequestStatus: 'vn-item-request vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(11)',
        secondRequestStatus: 'vn-item-request vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(11)',
        secondRequestDecline: 'vn-item-request vn-tr:nth-child(2) vn-icon-button[icon="thumb_down"]',
        declineReason: 'vn-textarea[ng-model="$ctrl.denyObservation"]'
    },
    itemBasicData: {
        goToItemIndexButton: 'vn-item-descriptor [ui-sref="item.index"]',
        type: 'vn-autocomplete[ng-model="$ctrl.item.typeFk"]',
        intrastat: 'vn-autocomplete[ng-model="$ctrl.item.intrastatFk"]',
        name: 'vn-item-basic-data vn-textfield[ng-model="$ctrl.item.name"]',
        relevancy: 'vn-item-basic-data vn-input-number[ng-model="$ctrl.item.relevancy"]',
        origin: 'vn-autocomplete[ng-model="$ctrl.item.originFk"]',
        generic: 'vn-autocomplete[ng-model="$ctrl.item.genericFk"]',
        isFragile: 'vn-check[ng-model="$ctrl.item.isFragile"]',
        longName: 'vn-textfield[ng-model="$ctrl.item.longName"]',
        packingOut: 'vn-input-number[ng-model="$ctrl.item.packingOut"]',
        isActiveCheckbox: 'vn-check[label="Active"]',
        priceInKgCheckbox: 'vn-check[label="Price in kg"]',
        submitBasicDataButton: `button[type=submit]`
    },
    itemTags: {
        fourthTag: 'vn-item-tags vn-horizontal:nth-child(4) > vn-autocomplete[ng-model="itemTag.tagFk"]',
        fourthValue: 'vn-item-tags vn-horizontal:nth-child(4) vn-textfield[ng-model="itemTag.value"]',
        fourthRelevancy: 'vn-item-tags vn-horizontal:nth-child(4) [ng-model="itemTag.priority"]',
        fourthRemoveTagButton: 'vn-item-tags vn-horizontal:nth-child(4) vn-icon-button[icon="delete"]',
        fifthTag: 'vn-item-tags vn-horizontal:nth-child(5) > vn-autocomplete[ng-model="itemTag.tagFk"]',
        fifthValue: 'vn-item-tags vn-horizontal:nth-child(5) vn-autocomplete[ng-model="itemTag.value"]',
        fifthRelevancy: 'vn-item-tags vn-horizontal:nth-child(5) vn-input-number[ng-model="itemTag.priority"]',
        sixthTag: 'vn-item-tags vn-horizontal:nth-child(6) > vn-autocomplete[ng-model="itemTag.tagFk"]',
        sixthValue: 'vn-item-tags vn-horizontal:nth-child(6) vn-textfield[ng-model="itemTag.value"]',
        sixthRelevancy: 'vn-item-tags vn-horizontal:nth-child(6) vn-input-number[ng-model="itemTag.priority"]',
        seventhTag: 'vn-item-tags vn-horizontal:nth-child(7) > vn-autocomplete[ng-model="itemTag.tagFk"]',
        seventhValue: 'vn-item-tags vn-horizontal:nth-child(7) vn-textfield[ng-model="itemTag.value"]',
        seventhRelevancy: 'vn-item-tags vn-horizontal:nth-child(7) vn-input-number[ng-model="itemTag.priority"]',
        addItemTagButton: 'vn-item-tags vn-icon-button[icon="add_circle"]',
        submitItemTagsButton: 'vn-item-tags button[type=submit]'
    },
    itemTax: {
        undoChangesButton: 'vn-item-tax vn-button-bar > vn-button[label="Undo changes"]',
        firstClass: 'vn-item-tax vn-horizontal:nth-child(1) > vn-autocomplete[ng-model="tax.taxClassFk"]',
        secondClass: 'vn-item-tax vn-horizontal:nth-child(2) > vn-autocomplete[ng-model="tax.taxClassFk"]',
        thirdClass: 'vn-item-tax vn-horizontal:nth-child(3) > vn-autocomplete[ng-model="tax.taxClassFk"]',
        submitTaxButton: 'vn-item-tax button[type=submit]'
    },
    itemBarcodes: {
        addBarcodeButton: 'vn-item-barcode vn-icon[icon="add_circle"]',
        thirdCode: 'vn-item-barcode vn-horizontal:nth-child(3) vn-textfield[ng-model="barcode.code"]',
        submitBarcodesButton: 'vn-item-barcode button[type=submit]',
        firstCodeRemoveButton: 'vn-item-barcode vn-horizontal:nth-child(1) vn-icon[icon="delete"]'
    },
    itemBotanical: {
        genus: 'vn-item-botanical vn-autocomplete[ng-model="$ctrl.botanical.genusFk"]',
        species: 'vn-item-botanical vn-autocomplete[ng-model="$ctrl.botanical.specieFk"]',
        submitBotanicalButton: `vn-item-botanical button[type=submit]`
    },
    itemSummary: {
        basicData: 'vn-item-summary [name="basicData"]',
        vat: 'vn-item-summary [name="tax"]',
        tags: 'vn-item-summary [name="tags"]',
        botanical: 'vn-item-summary [name="botanical"]',
        barcode: 'vn-item-summary [name="barcode"]'
    },
    itemDiary: {
        secondTicketId: 'vn-item-diary vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(2) > span',
        fourthBalance: 'vn-item-diary vn-tbody > vn-tr:nth-child(4) > vn-td.balance  > span',
        firstBalance: 'vn-item-diary vn-tbody > vn-tr:nth-child(1) > vn-td.balance'
    },
    ticketSummary: {
        header: 'vn-ticket-summary > vn-card > h5',
        state: 'vn-ticket-summary vn-label-value[label="State"] > section > span',
        route: 'vn-ticket-summary vn-label-value[label="Route"] > section > span > span',
        total: 'vn-ticket-summary vn-one.taxes > p:nth-child(3) > strong',
        sale: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr',
        firstSaleItemId: 'vn-ticket-summary [name="sales"] vn-table vn-tbody > :nth-child(1) > vn-td:nth-child(2) > span',
        firstSaleDescriptorImage: '.vn-popover.shown vn-item-descriptor img',
        itemDescriptorPopover: '.vn-popover.shown vn-item-descriptor',
        itemDescriptorPopoverItemDiaryButton: 'vn-item-descriptor a[href="#!/item/2/diary?warehouseFk=5&lineFk=16"]',
        popoverDiaryButton: '.vn-popover.shown vn-item-descriptor vn-icon[icon="icon-transaction"]',
        firstSaleQuantity: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(5)',
        firstSaleDiscount: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(8)',
        invoiceOutRef: 'vn-ticket-summary > vn-card > vn-horizontal > vn-one:nth-child(1) > vn-label-value:nth-child(7) > section > span',
        stateButton: 'vn-ticket-summary vn-button-menu > button ',
        stateAutocomplete: 'div.filter.ng-scope > vn-textfield > div.container > div.infix > div.control',
        descriptorTicketId: 'vn-ticket-descriptor > vn-descriptor-content > div > div.body > div.top > div'
    },
    ticketsIndex: {
        anySearchResult: 'vn-ticket-index vn-tbody > a',
        openAdvancedSearchButton: 'vn-searchbar .append vn-icon[icon="arrow_drop_down"]',
        advancedSearchInvoiceOut: 'vn-ticket-search-panel vn-textfield[ng-model="filter.refFk"]',
        advancedSearchDaysOnward: 'vn-ticket-search-panel vn-input-number[ng-model="filter.scopeDays"]',
        advancedSearchClient: 'vn-ticket-search-panel vn-textfield[ng-model="filter.clientFk"]',
        advancedSearchButton: 'vn-ticket-search-panel button[type=submit]',
        newTicketButton: 'vn-ticket-index vn-button[icon="add"]',
        searchResult: 'vn-ticket-index vn-card > vn-table > div > vn-tbody > a.vn-tr',
        firstTicketCheckbox: 'vn-ticket-index vn-tbody > a:nth-child(1) > vn-td:nth-child(1) > vn-check',
        secondTicketCheckbox: 'vn-ticket-index vn-tbody > a:nth-child(2) > vn-td:nth-child(1) > vn-check',
        thirdTicketCheckbox: 'vn-ticket-index vn-tbody > a:nth-child(3) > vn-td:nth-child(1) > vn-check',
        fifthTicketCheckbox: 'vn-ticket-index vn-tbody > a:nth-child(5) > vn-td:nth-child(1) > vn-check',
        sixthTicketCheckbox: 'vn-ticket-index vn-tbody > a:nth-child(6) > vn-td:nth-child(1) > vn-check',
        payoutButton: 'vn-ticket-index vn-button[icon="icon-recovery"]',
        payoutCompany: '.vn-dialog vn-autocomplete[ng-model="$ctrl.companyFk"]',
        payoutBank: '.vn-dialog vn-autocomplete[ng-model="$ctrl.bankFk"]',
        payoutDescription: 'vn-textfield[ng-model="$ctrl.receipt.description"]',
        submitPayout: '.vn-dialog button[response="accept"]',
        searchWeeklyResult: 'vn-ticket-weekly-index vn-card smart-table slot-table table tbody tr',
        searchResultDate: 'vn-ticket-summary [label=Landed] span',
        topbarSearch: 'vn-searchbar',
        moreMenu: 'vn-ticket-index vn-icon-button[icon=more_vert]',
        thirdWeeklyTicket: 'vn-ticket-weekly-index vn-card smart-table slot-table tr:nth-child(4)',
        weeklyTicket: 'vn-ticket-weekly-index vn-card smart-table slot-table table tbody tr',
        firstWeeklyTicketDeleteIcon: 'vn-ticket-weekly-index vn-card smart-table slot-table tr:nth-child(2) vn-icon-button[icon="delete"]',
        firstWeeklyTicketAgency: 'vn-ticket-weekly-index vn-card smart-table slot-table tr:nth-child(2) [ng-model="weekly.agencyModeFk"]',
        acceptDeleteTurn: '.vn-confirm.shown button[response="accept"]'
    },
    createTicketView: {
        client: 'vn-ticket-create vn-autocomplete[ng-model="$ctrl.clientId"]',
        address: 'vn-ticket-create vn-autocomplete[ng-model="$ctrl.addressId"]',
        deliveryDate: 'vn-ticket-create vn-date-picker[ng-model="$ctrl.landed"]',
        warehouse: 'vn-ticket-create vn-autocomplete[ng-model="$ctrl.warehouseId"]',
        agency: 'vn-ticket-create vn-autocomplete[ng-model="$ctrl.agencyModeId"]',
        createButton: `button[type=submit]`
    },
    ticketDescriptor: {
        id: 'vn-descriptor-content div.top > div',
        stateLabelValue: 'vn-ticket-descriptor vn-label-value[label="State"]',
        isDeletedIcon: 'vn-ticket-descriptor vn-icon[icon="icon-deletedTicket"]',
        goBackToModuleIndexButton: 'vn-ticket-descriptor a[ui-sref="ticket.index"]',
        moreMenu: 'vn-ticket-descriptor vn-ticket-descriptor-menu > vn-icon-button[icon=more_vert]',
        moreMenuAddToTurn: '.vn-menu [name="addTurn"]',
        moreMenuDeleteTicket: '.vn-menu [name="deleteTicket"]',
        moreMenuRestoreTicket: '.vn-menu [name="restoreTicket"]',
        moreMenuMakeInvoice: '.vn-menu [name="makeInvoice"]',
        moreMenuRegenerateInvoice: '.vn-menu [name="regenerateInvoice"]',
        moreMenuChangeShippedHour: '.vn-menu [name="changeShipped"]',
        moreMenuSMSOptions: '.vn-menu [name="smsOptions"]',
        moreMenuPaymentSMS: '.vn-menu [name="sendPaymentSms"]',
        moreMenuSendImportSms: '.vn-menu [name="sendImportSms"]',
        SMStext: 'textarea[name="message"]',
        sendSMSbutton: 'button[response="accept"]',
        changeShippedHourDialog: '.vn-dialog.shown',
        changeShippedHour: '.vn-dialog.shown vn-input-time[ng-model="$ctrl.newShipped"]',
        thursdayButton: '.vn-popup.shown vn-tool-bar > vn-button:nth-child(4)',
        saturdayButton: '.vn-popup.shown vn-tool-bar > vn-button:nth-child(6)',
        acceptDialog: '.vn-dialog.shown button[response="accept"]',
        acceptChangeHourButton: '.vn-dialog.shown button[response="accept"]',
        descriptorDeliveryDate: 'vn-ticket-descriptor slot-body > .attributes > vn-label-value:nth-child(4) > section > span',
        descriptorDeliveryAgency: 'vn-ticket-descriptor slot-body > .attributes > vn-label-value:nth-child(5) > section > span',
        acceptInvoiceOutButton: '.vn-confirm.shown button[response="accept"]',
    },
    ticketNotes: {
        firstNoteRemoveButton: 'vn-icon[icon="delete"]',
        addNoteButton: 'vn-icon[icon="add_circle"]',
        firstNoteType: 'vn-autocomplete[ng-model="observation.observationTypeFk"]',
        firstDescription: 'vn-ticket-observation vn-textfield[ng-model="observation.description"]',
        submitNotesButton: 'button[type=submit]'
    },
    ticketExpedition: {
        firstSaleCheckbox: 'vn-ticket-expedition tr:nth-child(2) vn-check[ng-model="expedition.checked"]',
        thirdSaleCheckbox: 'vn-ticket-expedition tr:nth-child(4) vn-check[ng-model="expedition.checked"]',
        deleteExpeditionButton: 'vn-ticket-expedition slot-actions > vn-button[icon="delete"]',
        moveExpeditionButton: 'vn-ticket-expedition slot-actions > vn-button[icon="keyboard_arrow_down"]',
        moreMenuWithoutRoute: 'vn-item[name="withoutRoute"]',
        moreMenuWithRoute: 'vn-item[name="withRoute"]',
        newRouteId: '.vn-dialog.shown vn-textfield[ng-model="$ctrl.newRoute"]',
        saveButton: '.vn-dialog.shown [response="accept"]',
        expeditionRow: 'vn-ticket-expedition table tbody > tr'
    },
    ticketSales: {
        setOk: 'vn-ticket-sale vn-tool-bar > vn-button[label="Ok"] > button',
        saleLine: 'vn-table div > vn-tbody > vn-tr vn-check',
        saleDescriptorPopover: '.vn-popover.shown vn-item-descriptor',
        saleDescriptorPopoverSummaryButton: '.vn-popover.shown vn-item-descriptor a[ui-sref="item.card.summary({id: $ctrl.descriptor.id})"]',
        newItemButton: 'vn-ticket-sale vn-card vn-icon-button[icon="add_circle"]',
        moreMenu: 'vn-ticket-sale vn-button[label="More"]',
        moreMenuCreateClaim: 'vn-item[name="claim"]',
        moreMenuReserve: 'vn-item[name="reserve"]',
        moreMenuUnmarkReseved: 'vn-item[name="unreserve"]',
        moreMenuUpdateDiscount: 'vn-item[name="discount"]',
        moreMenuRecalculatePrice: 'vn-item[name="calculatePrice"]',
        moreMenuRefund: 'vn-item[name="refund"]',
        refundWithWarehouse: 'vn-item[name="refundWithWarehouse"]',
        refundWithoutWarehouse: 'vn-item[name="refundWithoutWarehouse"]',
        moreMenuUpdateDiscountInput: 'vn-input-number[ng-model="$ctrl.edit.discount"] input',
        transferQuantityInput: '.vn-popover.shown vn-table > div > vn-tbody > vn-tr > vn-td-editable > span > text',
        transferQuantityCell: '.vn-popover.shown vn-table > div > vn-tbody > vn-tr > vn-td-editable',
        firstSaleId: 'vn-ticket-sale vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(6) > span',
        firstSaleClaimIcon: 'vn-ticket-sale vn-table vn-tbody > vn-tr:nth-child(1) vn-icon[icon="icon-claims"]',
        firstSaleDescriptorImage: '.vn-popover.shown vn-item-descriptor img',
        firstSaleThumbnailImage: 'vn-ticket-sale:nth-child(1) vn-tr:nth-child(1) vn-td:nth-child(3) > img',
        firstSaleZoomedImage: 'body > div > div > img',
        firstSaleQuantity: 'vn-ticket-sale [ng-model="sale.quantity"]',
        firstSaleQuantityCell: 'vn-ticket-sale vn-tr:nth-child(1) > vn-td-editable:nth-child(7)',
        firstSalePrice: 'vn-ticket-sale vn-table vn-tr:nth-child(1) > vn-td:nth-child(9) > span',
        firstSalePriceInput: '.vn-popover.shown input[ng-model="$ctrl.field"]',
        firstSaleDiscount: 'vn-ticket-sale vn-table vn-tr:nth-child(1) > vn-td:nth-child(10) > span',
        firstSaleDiscountInput: '.vn-popover.shown [ng-model="$ctrl.field"]',
        saveSaleDiscountButton: '.vn-popover.shown vn-button[label="Save"]',
        firstSaleImport: 'vn-ticket-sale:nth-child(1) vn-td:nth-child(11)',
        firstSaleReservedIcon: 'vn-ticket-sale vn-tr:nth-child(1) > vn-td:nth-child(2) > vn-icon:nth-child(3)',
        firstSaleColour: 'vn-ticket-sale vn-tr:nth-child(1) vn-fetched-tags section',
        firstSaleCheckbox: 'vn-ticket-sale vn-tr:nth-child(1) vn-check[ng-model="sale.checked"]',
        secondSaleText: 'vn-table div > vn-tbody > vn-tr:nth-child(2)',
        secondSaleId: 'vn-ticket-sale:nth-child(2) vn-td-editable:nth-child(4) text > span',
        secondSaleIdAutocomplete: 'vn-ticket-sale vn-tr:nth-child(2) vn-autocomplete[ng-model="sale.itemFk"]',
        secondSaleQuantity: 'vn-ticket-sale vn-table vn-tr:nth-child(2) vn-input-number',
        secondSaleQuantityCell: 'vn-ticket-sale > div > vn-card > vn-table > div > vn-tbody > vn-tr:nth-child(2) > vn-td-editable:nth-child(7)',
        secondSaleConceptCell: 'vn-ticket-sale vn-tbody > :nth-child(2) > :nth-child(8)',
        secondSaleConceptInput: 'vn-ticket-sale vn-tbody > :nth-child(2) > vn-td-editable.ng-isolate-scope.selected vn-textfield',
        totalImport: 'vn-ticket-sale vn-one.taxes > p:nth-child(3) > strong',
        selectAllSalesCheckbox: 'vn-ticket-sale vn-thead vn-check',
        secondSaleCheckbox: 'vn-ticket-sale vn-tr:nth-child(2) vn-check[ng-model="sale.checked"]',
        thirdSaleCheckbox: 'vn-ticket-sale vn-tr:nth-child(3) vn-check[ng-model="sale.checked"]',
        fourthSaleCheckbox: 'vn-ticket-sale vn-tr:nth-child(4) vn-check[ng-model="sale.checked"]',
        deleteSaleButton: 'vn-ticket-sale vn-tool-bar > vn-button[icon="delete"]',
        transferSaleButton: 'vn-ticket-sale vn-tool-bar > vn-button[icon="call_split"]',
        moveToTicketInput: 'form vn-input-number[ng-model="$ctrl.transfer.ticketId"] input',
        moveToTicketButton: '.vn-popover.shown vn-icon[icon="arrow_forward_ios"]',
        moveToNewTicketButton: '.vn-popover.shown vn-button[label="New ticket"]',
        stateMenuButton: 'vn-ticket-sale vn-tool-bar > vn-button-menu[label="State"]',
        moreMenuState: 'body > div > div > div.content > div.filter.ng-scope > vn-textfield',
        firstSaleHistoryButton: 'vn-ticket-sale vn-tr:nth-child(1) vn-icon-button[icon="history"]',
        firstSaleHistory: 'form vn-table div > vn-tbody > vn-tr',
        closeHistory: 'div.window vn-button[icon="clear"]'
    },
    ticketTracking: {
        createStateButton: 'vn-float-button'
    },
    ticketBasicData: {
        agency: 'vn-autocomplete[ng-model="$ctrl.agencyModeId"]',
        zone: 'vn-autocomplete[ng-model="$ctrl.zoneId"]',
        shipped: 'vn-date-picker[ng-model="$ctrl.shipped"]',
        nextStepButton: 'vn-step-control .buttons > section:last-child vn-button',
        finalizeButton: 'vn-step-control .buttons > section:last-child button[type=submit]',
        stepTwoTotalPriceDif: 'vn-ticket-basic-data-step-two > vn-side-menu div:nth-child(4)',
        chargesReason: 'vn-ticket-basic-data-step-two div:nth-child(3) > vn-radio',
        withoutNegatives: 'vn-check[ng-model="$ctrl.ticket.withoutNegatives"]',
    },
    ticketComponents: {
        base: 'vn-ticket-components > vn-side-menu div:nth-child(1) > div:nth-child(2)'
    },
    ticketRequests: {
        addRequestButton: 'vn-ticket-request-index > a > vn-float-button > button',
        descriptionInput: 'vn-ticket-request-create [ng-model="$ctrl.ticketRequest.description"]',
        atender: 'vn-ticket-request-create vn-autocomplete[ng-model="$ctrl.ticketRequest.attenderFk"]',
        quantity: 'vn-ticket-request-create vn-input-number[ng-model="$ctrl.ticketRequest.quantity"]',
        price: 'vn-ticket-request-create vn-input-number[ng-model="$ctrl.ticketRequest.price"]',
        firstRequestQuantity: 'vn-ticket-request-index vn-table vn-tr:nth-child(1) > vn-td:nth-child(6) vn-input-number',
        secondRequestQuantity: 'vn-ticket-request-index vn-table vn-tr:nth-child(2) > vn-td:nth-child(6) vn-input-number',
        thirdDescription: 'vn-ticket-request-index vn-table vn-tr:nth-child(3) > vn-td:nth-child(2) vn-textfield',
        thirdRemoveRequestButton: 'vn-ticket-request-index vn-tr:nth-child(3) vn-icon[icon="delete"]',
        thirdRequestQuantity: 'vn-ticket-request-index vn-table vn-tr:nth-child(3) > vn-td:nth-child(6) vn-input-number',
        saveButton: 'vn-ticket-request-create button[type=submit]',
    },
    ticketService: {
        addServiceButton: 'vn-ticket-service vn-icon-button[vn-tooltip="Add service"] > button',
        firstAddServiceTypeButton: 'vn-ticket-service vn-icon-button[vn-tooltip="New service type"]',
        firstServiceType: 'vn-ticket-service vn-autocomplete[ng-model="service.ticketServiceTypeFk"]',
        firstQuantity: 'vn-ticket-service vn-input-number[ng-model="service.quantity"]',
        firstPrice: 'vn-ticket-service vn-horizontal:nth-child(2) vn-input-number[ng-model="service.price"]',
        fistDeleteServiceButton: 'vn-ticket-service form vn-horizontal:nth-child(2) vn-icon-button[icon="delete"]',
        newServiceTypeName: '.vn-dialog.shown vn-textfield[ng-model="newServiceType.name"]',
        serviceLine: 'vn-ticket-service > form > vn-card > vn-one:nth-child(2) > vn-horizontal',
        saveServiceButton: 'button[type=submit]',
        saveServiceTypeButton: '.vn-dialog.shown tpl-buttons > button'
    },
    ticketDms: {
        import: 'vn-ticket-dms-index vn-button[icon="file_copy"]',
        document: 'vn-autocomplete[ng-model="$ctrl.dmsId"]',
        saveImport: 'button[response="accept"]',
        anyDocument: 'vn-ticket-dms-index > vn-data-viewer vn-tbody vn-tr'
    },
    ticketFuture: {
        searchResult: 'vn-ticket-future tbody tr',
        openAdvancedSearchButton: 'vn-searchbar .append vn-icon[icon="arrow_drop_down"]',
        originDated: 'vn-date-picker[label="Origin date"]',
        futureDated: 'vn-date-picker[label="Destination date"]',
        linesMax: 'vn-textfield[label="Max Lines"]',
        litersMax: 'vn-textfield[label="Max Liters"]',
        ipt: 'vn-autocomplete[label="Origin IPT"]',
        futureIpt: 'vn-autocomplete[label="Destination IPT"]',
        tableIpt: 'vn-autocomplete[name="ipt"]',
        tableFutureIpt: 'vn-autocomplete[name="futureIpt"]',
        state: 'vn-autocomplete[label="Origin Grouped State"]',
        futureState: 'vn-autocomplete[label="Destination Grouped State"]',
        warehouseFk: 'vn-autocomplete[label="Warehouse"]',
        problems: 'vn-check[label="With problems"]',
        tableButtonSearch: 'vn-button[vn-tooltip="Search"]',
        moveButton: 'vn-button[vn-tooltip="Future tickets"]',
        firstCheck: 'tbody > tr:nth-child(2) > td > vn-check',
        multiCheck: 'vn-multi-check',
        tableId: 'vn-textfield[name="id"]',
        tableFutureId: 'vn-textfield[name="futureId"]',
        tableLiters: 'vn-textfield[name="liters"]',
        tableLines: 'vn-textfield[name="lines"]',
        submit: 'vn-submit[label="Search"]',
        table: 'tbody > tr:not(.empty-rows)'
    },
    ticketAdvance: {
        openAdvancedSearchButton: 'vn-searchbar .append vn-icon[icon="arrow_drop_down"]',
        dateFuture: 'vn-date-picker[label="Origin date"]',
        dateToAdvance: 'vn-date-picker[label="Destination date"]',
        linesMax: 'vn-textfield[label="Max Lines"]',
        litersMax: 'vn-textfield[label="Max Liters"]',
        futureIpt: 'vn-autocomplete[label="Origin IPT"]',
        ipt: 'vn-autocomplete[label="Destination IPT"]',
        tableIpt: 'vn-autocomplete[name="ipt"]',
        tableFutureIpt: 'vn-autocomplete[name="futureIpt"]',
        isFullMovable: 'vn-check[ng-model="filter.isFullMovable"]',
        warehouseFk: 'vn-autocomplete[label="Warehouse"]',
        tableButtonSearch: 'vn-button[vn-tooltip="Search"]',
        moveButton: 'vn-button[vn-tooltip="Advance tickets with negatives"]',
        acceptButton: '.vn-confirm.shown button[response="accept"]',
        firstCheck: 'tbody > tr:nth-child(2) > td > vn-check',
        tableId: 'vn-textfield[name="id"]',
        tableFutureId: 'vn-textfield[name="futureId"]',
        tableLiters: 'vn-textfield[name="liters"]',
        tableLines: 'vn-textfield[name="lines"]',
        submit: 'vn-submit[label="Search"]',
        table: 'tbody > tr:not(.empty-rows)'
    },
    createStateView: {
        state: 'vn-autocomplete[ng-model="$ctrl.stateFk"]',
        worker: 'vn-worker-autocomplete[ng-model="$ctrl.userFk"]',
        saveStateButton: `button[type=submit]`
    },
    claimsIndex: {
        searchResult: 'vn-claim-index vn-card > vn-table > div > vn-tbody > a'
    },
    claimDescriptor: {
        moreMenu: 'vn-claim-descriptor vn-icon-button[icon=more_vert]',
        moreMenuDeleteClaim: '.vn-menu [name="deleteClaim"]',
        acceptDeleteClaim: '.vn-confirm.shown button[response="accept"]'
    },
    claimSummary: {
        header: 'vn-claim-summary > vn-card > h5',
        state: 'vn-claim-summary vn-label-value[label="State"] > section > span',
        observation: 'vn-claim-summary vn-horizontal.text',
        firstSaleItemId: 'vn-claim-summary vn-horizontal > vn-auto:nth-child(5) vn-table > div > vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(1) > span',
        firstSaleDescriptorImage: '.vn-popover.shown vn-item-descriptor img',
        itemDescriptorPopover: '.vn-popover.shown vn-item-descriptor',
        itemDescriptorPopoverItemDiaryButton: '.vn-popover vn-item-descriptor vn-quick-link[icon="icon-transaction"] > a',
        firstDevelopmentWorker: 'vn-claim-summary vn-horizontal > vn-auto:nth-child(4) vn-table > div > vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(4) > span',
        firstDevelopmentWorkerGoToClientButton: '.vn-popover vn-worker-descriptor vn-quick-link[icon="person"] > a',
        firstActionTicketId: 'vn-claim-summary > vn-card > vn-horizontal > vn-auto:nth-child(5) vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(2) > span',
        firstActionTicketDescriptor: '.vn-popover.shown vn-ticket-descriptor'
    },
    claimBasicData: {
        claimState: 'vn-claim-basic-data vn-autocomplete[ng-model="$ctrl.claim.claimStateFk"]',
        packages: 'vn-input-number[ng-model="$ctrl.claim.packages"]',
        saveButton: `button[type=submit]`
    },
    claimDetail: {
        secondItemDiscount: 'vn-claim-detail > vn-vertical > vn-card > vn-vertical > vn-table > div > vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(6) > span',
        discount: '.vn-popover.shown vn-input-number[ng-model="$ctrl.newDiscount"]',
        discoutPopoverMana: '.vn-popover.shown .content > div > vn-horizontal > h5',
        addItemButton: 'vn-claim-detail a vn-float-button',
        firstClaimableSaleFromTicket: '.vn-dialog.shown vn-tbody > vn-tr',
        claimDetailLine: 'vn-claim-detail > vn-vertical > vn-card > vn-vertical > vn-table > div > vn-tbody > vn-tr',
        totalClaimed: 'vn-claim-detail > vn-vertical > vn-card > vn-vertical > vn-horizontal > div > vn-label-value:nth-child(2) > section > span',
        secondItemDeleteButton: 'vn-claim-detail > vn-vertical > vn-card > vn-vertical > vn-table > div > vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(8) > vn-icon-button > button > vn-icon > i'
    },
    claimDevelopment: {
        addDevelopmentButton: 'vn-claim-development > vn-vertical > vn-card > vn-vertical > vn-one > vn-icon-button > button > vn-icon',
        firstDeleteDevelopmentButton: 'vn-claim-development > vn-vertical > vn-card > vn-vertical > form > vn-horizontal:nth-child(2) > vn-icon-button > button > vn-icon',
        firstClaimReason: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[ng-model="claimDevelopment.claimReasonFk"]',
        firstClaimResult: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[ng-model="claimDevelopment.claimResultFk"]',
        firstClaimResponsible: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[ng-model="claimDevelopment.claimResponsibleFk"]',
        firstClaimWorker: 'vn-claim-development vn-horizontal:nth-child(1) vn-worker-autocomplete[ng-model="claimDevelopment.workerFk"]',
        firstClaimRedelivery: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[ng-model="claimDevelopment.claimRedeliveryFk"]',
        secondClaimReason: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[ng-model="claimDevelopment.claimReasonFk"]',
        secondClaimResult: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[ng-model="claimDevelopment.claimResultFk"]',
        secondClaimResponsible: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[ng-model="claimDevelopment.claimResponsibleFk"]',
        secondClaimWorker: 'vn-claim-development vn-horizontal:nth-child(2) vn-worker-autocomplete[ng-model="claimDevelopment.workerFk"]',
        secondClaimRedelivery: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[ng-model="claimDevelopment.claimRedeliveryFk"]',
        saveDevelopmentButton: 'button[type=submit]'
    },
    claimNote: {
        addNoteFloatButton: 'vn-float-button',
        note: 'vn-textarea[ng-model="$ctrl.note.text"]',
        saveButton: 'button[type=submit]',
        firstNoteText: 'vn-claim-note .text'
    },
    claimAction: {
        importClaimButton: 'vn-claim-action vn-button[label="Import claim"]',
        anyLine: 'vn-claim-action vn-tbody > vn-tr',
        firstDeleteLine: 'vn-claim-action tr:nth-child(2) vn-icon-button[icon="delete"]',
        isPaidWithManaCheckbox: 'vn-claim-action vn-check[ng-model="$ctrl.claim.isChargedToMana"]'
    },
    ordersIndex: {
        secondSearchResultTotal: 'vn-order-index vn-card > vn-table > div > vn-tbody .vn-tr:nth-child(2) vn-td:nth-child(9)',
        advancedSearchButton: 'vn-order-search-panel vn-submit[label="Search"]',
        openAdvancedSearch: 'vn-searchbar vn-icon[icon="arrow_drop_down"]',
        advancedSearchShowEmptyCheckbox: 'vn-order-search-panel vn-check[label="Show empty"]',
        createOrderButton: 'vn-float-button',
    },
    orderDescriptor: {
        returnToModuleIndexButton: 'vn-order-descriptor a[ui-sref="order.index"]'
    },
    createOrderView: {
        client: 'vn-autocomplete[label="Client"]',
        agency: 'vn-autocomplete[label="Agency"]',
        landedDatePicker: 'vn-date-picker[label="Landed"]',
        createButton: 'button[type=submit]'
    },
    orderCatalog: {
        plantRealmButton: 'vn-order-catalog > vn-side-menu vn-icon[icon="icon-plant"]',
        type: 'vn-order-catalog vn-autocomplete[data="$ctrl.itemTypes"]',
        itemTagValue: 'vn-order-catalog vn-textfield[vn-id="search"]',
        openTagSearch: 'vn-order-catalog vn-vertical:nth-child(4) append > vn-icon > i',
        tag: 'vn-order-catalog-search-panel vn-autocomplete[ng-model="filter.tagFk"]',
        firstTagAutocomplete: 'vn-order-catalog-search-panel vn-horizontal:nth-child(2) vn-autocomplete[ng-model="tagValue.value"]',
        secondTagAutocomplete: 'vn-order-catalog-search-panel vn-horizontal:nth-child(3) vn-autocomplete[ng-model="tagValue.value"]',
        firstTagValue: 'vn-order-catalog-search-panel vn-horizontal:nth-child(2) vn-textfield[ng-model="tagValue.value"]',
        secondTagValue: 'vn-order-catalog-search-panel vn-horizontal:nth-child(3) vn-textfield[ng-model="tagValue.value"]',
        addTagButton: 'vn-order-catalog-search-panel vn-icon-button[icon="add_circle"]',
        searchTagButton: 'vn-order-catalog-search-panel button[type=submit]',
        thirdFilterRemoveButton: 'vn-order-catalog > vn-side-menu .chips > vn-chip:nth-child(3) vn-icon[icon=cancel]',
        fourthFilterRemoveButton: 'vn-order-catalog > vn-side-menu .chips > vn-chip:nth-child(4) vn-icon[icon=cancel]',
        fifthFilterRemoveButton: 'vn-order-catalog > vn-side-menu .chips > vn-chip:nth-child(5) vn-icon[icon=cancel]',
        sixthFilterRemoveButton: 'vn-order-catalog > vn-side-menu .chips > vn-chip:nth-child(6) vn-icon[icon=cancel]',
    },
    orderLine: {
        orderSubtotal: 'vn-order-line .header :first-child',
        firstLineDeleteButton: 'vn-order-line vn-tbody > vn-tr:nth-child(1) vn-icon[icon="delete"]',
        confirmOrder: 'vn-order-line vn-float-button',
        confirmButton: '.vn-confirm.shown button[response="accept"]',
    },
    routeIndex: {
        anyResult: 'vn-route-index tbody > tr',
        firstRouteCheckbox: 'vn-route-index tbody > tr:nth-child(1) > td:nth-child(1) > vn-check',
        addNewRouteButton: 'vn-route-index a[ui-sref="route.create"]',
        cloneButton: 'vn-route-index button > vn-icon[icon="icon-clone"]',
        submitClonationButton: 'tpl-buttons > button[response="accept"]',
        openAdvancedSearchButton: 'vn-searchbar .append vn-icon[icon="arrow_drop_down"]',
        searchAgencyAutocomlete: 'vn-route-search-panel vn-autocomplete[ng-model="filter.agencyModeFk"]',
        advancedSearchButton: 'vn-route-search-panel button[type=submit]',
        previewButton: 'vn-route-index tbody > tr:nth-child(7) > td:nth-child(11) > vn-icon-button[icon="preview"]',

    },
    createRouteView: {
        worker: 'vn-route-create vn-worker-autocomplete[ng-model="$ctrl.route.workerFk"]',
        createdDatePicker: 'vn-route-create vn-date-picker[ng-model="$ctrl.route.created"]',
        vehicleAuto: 'vn-route-create vn-autocomplete[ng-model="$ctrl.route.vehicleFk"]',
        agency: 'vn-route-create vn-autocomplete[ng-model="$ctrl.route.agencyModeFk"]',
        description: 'vn-route-create [ng-model="$ctrl.route.description"]',
        submitButton: 'vn-route-create button[type=submit]'
    },
    routeDescriptor: {
        volume: 'vn-route-descriptor vn-label-value[label="Volume"] > section > span'
    },
    routeSummary: {
        header: 'vn-route-summary > vn-card > h5',
        cost: 'vn-route-summary vn-label-value[label="Cost"]',
        firstTicketID: 'vn-route-summary vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(10) > span',
        firstTicketDescriptor: '.vn-popover.shown vn-ticket-descriptor',
        firstAlias: 'vn-route-summary vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(5) > span',
        firstClientDescriptor: '.vn-popover.shown vn-client-descriptor',
        goToRouteSummaryButton: 'vn-route-summary > vn-card > h5 > a',

    },
    routeTickets: {
        firstTicketPriority: 'vn-route-tickets vn-tr:nth-child(1) vn-td-editable',
        firstTicketCheckbox: 'vn-route-tickets vn-tr:nth-child(1) vn-check',
        buscamanButton: 'vn-route-tickets vn-button[icon="icon-buscaman"]',
        firstTicketDeleteButton: 'vn-route-tickets vn-tr:nth-child(1) vn-icon[icon="delete"]',
        anyTicket: 'vn-route-tickets vn-tbody > vn-tr',
        confirmButton: '.vn-confirm.shown button[response="accept"]'
    },
    workerSummary: {
        summaryIcon: 'vn-worker-descriptor a[title="Go to module summary"]',
        header: 'vn-worker-summary h5',
        id: 'vn-worker-summary vn-one:nth-child(1) > vn-label-value:nth-child(3) > section > span',
        email: 'vn-worker-summary vn-one:nth-child(1) > vn-label-value:nth-child(4) > section > span',
        department: 'vn-worker-summary vn-one:nth-child(1) > vn-label-value:nth-child(5) > section > span',
        locker: 'vn-worker-summary vn-one:nth-child(1) > vn-label-value:nth-child(10) > section > span',
        userId: 'vn-worker-summary vn-one:nth-child(2) > vn-label-value:nth-child(2) > section > span',
        userName: 'vn-worker-summary vn-one:nth-child(2) > vn-label-value:nth-child(3) > section > span',
        role: 'vn-worker-summary vn-one:nth-child(2) > vn-label-value:nth-child(4) > section > span',
        extension: 'vn-worker-summary vn-one:nth-child(2) > vn-label-value:nth-child(5) > section > span',

    },
    department: {
        firstDepartment: 'vn-worker-department-index vn-card > vn-treeview vn-treeview-childs vn-treeview-childs vn-treeview-childs a'
    },
    departmentSummary: {
        header: 'vn-worker-department-summary h5',
        name: 'vn-worker-department-summary vn-horizontal > vn-one > vn-vertical > vn-label-value:nth-child(1) > section > span',
        code: 'vn-worker-department-summary vn-horizontal > vn-one > vn-vertical > vn-label-value:nth-child(2) > section > span',
        chat: 'vn-worker-department-summary vn-horizontal > vn-one > vn-vertical > vn-label-value:nth-child(3) > section > span',
        bossDepartment: 'vn-worker-department-summary vn-horizontal > vn-one > vn-vertical > vn-label-value:nth-child(4) > section > span',
        email: 'vn-worker-department-summary vn-horizontal > vn-one > vn-vertical > vn-label-value:nth-child(5) > section > span',
        clientFk: 'vn-worker-department-summary vn-horizontal > vn-one > vn-vertical > vn-label-value:nth-child(6) > section > span',
    },
    workerBasicData: {
        name: 'vn-worker-basic-data vn-textfield[ng-model="$ctrl.worker.firstName"]',
        surname: 'vn-worker-basic-data vn-textfield[ng-model="$ctrl.worker.lastName"]',
        phone: 'vn-worker-basic-data vn-textfield[ng-model="$ctrl.worker.phone"]',
        locker: 'vn-worker-basic-data vn-input-number[ng-model="$ctrl.worker.locker"]',
        saveButton: 'vn-worker-basic-data button[type=submit]'
    },
    departmentBasicData: {
        Name: 'vn-worker-department-basic-data vn-textfield[ng-model="$ctrl.department.name"]',
        Code: 'vn-worker-department-basic-data vn-textfield[ng-model="$ctrl.department.code"]',
        Chat: 'vn-worker-department-basic-data vn-textfield[ng-model="$ctrl.department.chat"]',
        Email: 'vn-worker-department-basic-data vn-textfield[ng-model="$ctrl.department.notificationEmail"]',
        saveButton: 'vn-worker-department-basic-data button[type=submit]'
    },
    workerNotes: {
        addNoteFloatButton: 'vn-worker-note vn-icon[icon="add"]',
        note: 'vn-note-worker-create vn-textarea[ng-model="$ctrl.note.text"]',
        saveButton: 'vn-note-worker-create button[type=submit]',
        firstNoteText: 'vn-worker-note .text'
    },
    workerPbx: {
        extension: 'vn-worker-pbx vn-textfield[ng-model="$ctrl.worker.sip.extension"]',
        saveButton: 'vn-worker-pbx button[type=submit]'
    },
    workerTimeControl: {
        dialogTimeInput: '.vn-dialog.shown vn-input-time[ng-model="$ctrl.newTimeEntry.timed"]',
        dialogTimeDirection: '.vn-dialog.shown vn-autocomplete[ng-model="$ctrl.newTimeEntry.direction"]',
        mondayAddTimeButton: 'vn-worker-time-control vn-table > div > vn-tfoot > vn-tr:nth-child(2) > vn-td:nth-child(1) > vn-icon-button',
        firstEntryOfMonday: 'vn-worker-time-control vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(1) > section:nth-child(1) > vn-chip > div:nth-child(2)',
        firstEntryOfMondayDelete: 'vn-worker-time-control vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(1) > section:nth-child(1) > vn-chip > vn-icon[icon="cancel"]',
        secondEntryOfMonday: 'vn-worker-time-control vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(1) > section:nth-child(2) > vn-chip > div:nth-child(2)',
        mondayWorkedHours: 'vn-worker-time-control vn-table > div > vn-tfoot > vn-tr:nth-child(1) > vn-td:nth-child(1)',
        weekWorkedHours: 'vn-worker-time-control vn-side-menu vn-label-value > section > span',
        nextMonthButton: 'vn-worker-time-control vn-side-menu vn-calendar vn-button[icon=keyboard_arrow_right]',
        previousMonthButton: 'vn-worker-time-control vn-side-menu vn-calendar vn-button[icon=keyboard_arrow_left]',
        monthName: 'vn-worker-time-control vn-side-menu vn-calendar div > .title',
        secondWeekDay: 'vn-worker-time-control vn-side-menu vn-calendar .day:nth-child(8) > .day-number',
        thrirdWeekDay: 'vn-worker-time-control vn-side-menu vn-calendar .day:nth-child(15) > .day-number',
        navigateBackToIndex: 'vn-worker-descriptor [name="goToModuleIndex"]'
    },
    workerCalendar: {
        year: 'vn-worker-calendar vn-autocomplete[ng-model="$ctrl.year"]',
        totalHolidaysUsed: 'vn-worker-calendar div.totalBox:first-child > div',
        penultimateMondayOfJanuary: 'vn-worker-calendar vn-calendar:nth-child(2) section:nth-child(22) > div',
        lastMondayOfMarch: 'vn-worker-calendar vn-calendar:nth-child(4) section:nth-child(29) > div',
        fistMondayOfMay: 'vn-worker-calendar vn-calendar:nth-child(6) section:nth-child(8) > div',
        secondFridayOfJun: 'vn-worker-calendar vn-calendar:nth-child(7) section:nth-child(12) > div',
        secondTuesdayOfMay: 'vn-worker-calendar vn-calendar:nth-child(6) section:nth-child(16) > div',
        secondWednesdayOfMay: 'vn-worker-calendar vn-calendar:nth-child(6) section:nth-child(17) > div',
        secondThursdayOfMay: 'vn-worker-calendar vn-calendar:nth-child(6) section:nth-child(18) > div',
        holidays: 'vn-worker-calendar > vn-side-menu [name="absenceTypes"] > vn-chip:nth-child(1)',
        absence: 'vn-worker-calendar > vn-side-menu [name="absenceTypes"] > vn-chip:nth-child(2)',
        halfHoliday: 'vn-worker-calendar > vn-side-menu [name="absenceTypes"] > vn-chip:nth-child(3)',
        furlough: 'vn-worker-calendar > vn-side-menu [name="absenceTypes"] > vn-chip:nth-child(4)',
        halfFurlough: 'vn-worker-calendar > vn-side-menu [name="absenceTypes"] > vn-chip:nth-child(5)',
    },
    workerCreate: {
        newWorkerButton: 'vn-worker-index a[ui-sref="worker.create"]',
        firstname: 'vn-worker-create vn-textfield[ng-model="$ctrl.worker.firstName"]',
        lastname: 'vn-worker-create vn-textfield[ng-model="$ctrl.worker.lastNames"]',
        birth: 'vn-worker-create vn-date-picker[ng-model="$ctrl.worker.birth"]',
        fi: 'vn-worker-create vn-textfield[ng-model="$ctrl.worker.fi"]',
        code: 'vn-worker-create vn-textfield[ng-model="$ctrl.worker.code"]',
        phone: 'vn-worker-create vn-textfield[ng-model="$ctrl.worker.phone"]',
        city: 'vn-worker-create vn-textfield[ng-model="$ctrl.worker.city"]',
        postcode: 'vn-worker-create vn-datalist[ng-model="$ctrl.worker.postcode"]',
        street: 'vn-worker-create vn-textfield[ng-model="$ctrl.worker.street"]',
        user: 'vn-worker-create vn-textfield[ng-model="$ctrl.worker.name"]',
        email: 'vn-worker-create vn-textfield[ng-model="$ctrl.worker.email"]',
        boss: 'vn-worker-create vn-worker-autocomplete[ng-model="$ctrl.worker.bossFk"]',
        role: 'vn-worker-create vn-autocomplete[ng-model="$ctrl.worker.roleFk"]',
        iban: 'vn-worker-create vn-textfield[ng-model="$ctrl.worker.iban"]',
        createButton: 'vn-worker-create vn-submit[label="Create"]',
    },
    workerPda: {
        currentPDA: 'vn-worker-pda vn-textfield[ng-model="$ctrl.currentPDA.description"]',
        newPDA: 'vn-worker-pda vn-autocomplete[ng-model="$ctrl.newPDA"]',
        delete: 'vn-worker-pda vn-icon-button[icon=delete]',
        submit: 'vn-worker-pda vn-submit[label="Assign"]',
    },
    invoiceOutIndex: {
        topbarSearch: 'vn-searchbar',
        searchResult: 'vn-invoice-out-index vn-card > vn-table > div > vn-tbody > a.vn-tr',
        createInvoice: 'vn-invoice-out-index > div > vn-button > button vn-icon[icon="add"]',
        manualInvoiceForm: '.vn-invoice-out-manual',
        manualInvoiceTicket: 'vn-autocomplete[ng-model="$ctrl.invoice.ticketFk"]',
        manualInvoiceClient: 'vn-autocomplete[ng-model="$ctrl.invoice.clientFk"]',
        manualInvoiceSerial: 'vn-autocomplete[ng-model="$ctrl.invoice.serial"]',
        manualInvoiceTaxArea: 'vn-autocomplete[ng-model="$ctrl.invoice.taxArea"]',
        saveInvoice: 'button[response="accept"]'
    },
    invoiceOutGlobalInvoicing: {
        oneClient: 'vn-invoice-out-global-invoicing vn-side-menu form > vn-vertical > vn-vertical > vn-radio[val="one"]',
        allClients: 'vn-invoice-out-global-invoicing vn-side-menu form > vn-vertical > vn-vertical > vn-radio[val="all"]',
        clientId: 'vn-invoice-out-global-invoicing vn-side-menu form > vn-vertical > vn-autocomplete[ng-model="$ctrl.clientId"]',
        printer: 'vn-invoice-out-global-invoicing vn-side-menu form > vn-vertical > vn-autocomplete[ng-model="$ctrl.printerFk"]',
        makeInvoice: 'vn-invoice-out-global-invoicing vn-side-menu form > vn-vertical > vn-submit',
        invoiceDate: 'vn-invoice-out-global-invoicing vn-side-menu form > vn-vertical > vn-date-picker[ng-model="$ctrl.invoiceDate"]',
        maxShipped: 'vn-invoice-out-global-invoicing vn-side-menu form > vn-vertical > vn-date-picker[ng-model="$ctrl.maxShipped"]'
    },
    invoiceOutDescriptor: {
        moreMenu: 'vn-invoice-out-descriptor vn-icon-button[icon=more_vert]',
        moreMenuDeleteInvoiceOut: '.vn-menu [name="deleteInvoice"]',
        moreMenuBookInvoiceOut: '.vn-menu [name="bookInvoice"]',
        moreMenuShowInvoiceOutPdf: '.vn-menu [name="showInvoicePdf"]',
        acceptDeleteButton: '.vn-confirm.shown button[response="accept"]',
        acceptBookingButton: '.vn-confirm.shown button[response="accept"]'
    },
    invoiceOutSummary: {
        bookedLabel: 'vn-invoice-out-summary > vn-card > vn-horizontal > vn-one > vn-label-value:nth-child(4) > section > span',
        company: 'vn-invoice-out-summary vn-label-value[label="Company"]',
        taxOne: 'vn-invoice-out-summary > vn-card > vn-horizontal > vn-two > vn-table > div > vn-tbody > vn-tr:nth-child(1)',
        taxTwo: 'vn-invoice-out-summary > vn-card > vn-horizontal > vn-two > vn-table > div > vn-tbody > vn-tr:nth-child(2)',
        ticketOne: 'vn-invoice-out-summary > vn-card > vn-horizontal > vn-auto > vn-table > div > vn-tbody > vn-tr:nth-child(1)',
        ticketTwo: 'vn-invoice-out-summary > vn-card > vn-horizontal > vn-auto > vn-table > div > vn-tbody > vn-tr:nth-child(2)'
    },
    invoiceInSummary: {
        totalTaxableBase: 'vn-invoice-in-summary > vn-card > vn-horizontal > vn-auto > vn-horizontal > vn-one.taxes > span',
        supplierRef: 'vn-invoice-in-summary vn-label-value:nth-child(2) > section > span'
    },
    invoiceInDescriptor: {
        summaryIcon: 'vn-invoice-in-descriptor a[title="Go to module summary"]',
        moreMenu: 'vn-invoice-in-descriptor vn-icon-button[icon=more_vert]',
        moreMenuDeleteInvoiceIn: '.vn-menu [name="deleteInvoice"]',
        moreMenuCloneInvoiceIn: '.vn-menu [name="cloneInvoice"]',
        acceptButton: '.vn-confirm.shown button[response="accept"]'
    },
    invoiceInBasicData: {
        issued: 'vn-invoice-in-basic-data vn-date-picker[ng-model="$ctrl.invoiceIn.issued"]',
        operated: 'vn-invoice-in-basic-data vn-date-picker[ng-model="$ctrl.invoiceIn.operated"]',
        supplier: 'vn-invoice-in-basic-data vn-autocomplete[ng-model="$ctrl.invoiceIn.supplierFk"]',
        supplierRef: 'vn-invoice-in-basic-data vn-textfield[ng-model="$ctrl.invoiceIn.supplierRef"]',
        bookEntried: 'vn-invoice-in-basic-data vn-date-picker[ng-model="$ctrl.invoiceIn.bookEntried"]',
        booked: 'vn-invoice-in-basic-data vn-date-picker[ng-model="$ctrl.invoiceIn.booked"]',
        currency: 'vn-invoice-in-basic-data vn-autocomplete[ng-model="$ctrl.invoiceIn.currencyFk"]',
        company: 'vn-invoice-in-basic-data vn-autocomplete[ng-model="$ctrl.invoiceIn.companyFk"]',
        dms: 'vn-invoice-in-basic-data vn-textfield[ng-model="$ctrl.invoiceIn.dmsFk"]',
        download: 'vn-invoice-in-basic-data vn-textfield[ng-model="$ctrl.invoiceIn.dmsFk"] > div.container > div.prepend > prepend > vn-icon-button',
        edit: 'vn-invoice-in-basic-data vn-textfield[ng-model="$ctrl.invoiceIn.dmsFk"] > div.container > div.append > append > vn-icon-button[icon="edit"]',
        create: 'vn-invoice-in-basic-data vn-textfield[ng-model="$ctrl.invoiceIn.dmsFk"] > div.container > div.append > append > vn-icon-button[icon="add_circle"]',
        reference: 'vn-textfield[ng-model="$ctrl.dms.reference"]',
        companyId: 'vn-autocomplete[ng-model="$ctrl.dms.companyId"]',
        warehouseId: 'vn-autocomplete[ng-model="$ctrl.dms.warehouseId"]',
        dmsTypeId: 'vn-autocomplete[ng-model="$ctrl.dms.dmsTypeId"]',
        description: 'vn-textarea[ng-model="$ctrl.dms.description"]',
        inputFile: 'vn-input-file[ng-model="$ctrl.dms.files"]',
        confirm: 'button[response="accept"]',
        save: 'vn-invoice-in-basic-data button[type=submit]'
    },
    invoiceInTax: {
        addTaxButton: 'vn-invoice-in-tax vn-icon-button[vn-tooltip="Add tax"]',
        thirdExpense: 'vn-invoice-in-tax vn-horizontal:nth-child(3) > vn-autocomplete[ng-model="invoiceInTax.expenseFk"]',
        thirdTaxableBase: 'vn-invoice-in-tax vn-horizontal:nth-child(3) > vn-input-number[ng-model="invoiceInTax.taxableBase"]',
        thirdTaxType: 'vn-invoice-in-tax vn-horizontal:nth-child(3) > vn-autocomplete[ng-model="invoiceInTax.taxTypeSageFk"]',
        thirdTransactionType: 'vn-invoice-in-tax vn-horizontal:nth-child(3) > vn-autocomplete[ng-model="invoiceInTax.transactionTypeSageFk"]',
        thirdRate: 'vn-invoice-in-tax > form > vn-card > vn-horizontal:nth-child(3) > vn-textfield',
        thirdDeleteButton: 'vn-invoice-in-tax vn-horizontal:nth-child(3) vn-icon[icon="delete"]',
        saveButton: 'vn-invoice-in-tax vn-submit',

    },
    invoiceInIndex: {
        topbarSearchParams: 'vn-searchbar div.search-params > span',
    },
    invoiceInSerial: {
        daysAgo: 'vn-invoice-in-serial-search-panel vn-input-number[ng-model="$ctrl.filter.daysAgo"]',
        serial: 'vn-invoice-in-serial-search-panel vn-textfield[ng-model="$ctrl.filter.serial"]',
        chip: 'vn-chip > vn-icon',
        goToIndex: 'vn-invoice-in-serial vn-icon-button[icon="icon-invoice-in"]',
    },
    travelIndex: {
        anySearchResult: 'vn-travel-index vn-tbody > a',
        firstSearchResult: 'vn-travel-index vn-tbody > a:nth-child(1)',
        firstTravelAddEntryButton: 'vn-travel-index a:nth-child(1) vn-icon[icon="icon-ticket"]',
        newTravelButton: 'vn-travel-index button vn-icon[icon="add"]',
        reference: 'vn-travel-create vn-textfield[ng-model="$ctrl.travel.ref"]',
        agency: 'vn-travel-create vn-autocomplete[ng-model="$ctrl.travel.agencyModeFk"]',
        shipDate: 'vn-travel-create vn-date-picker[ng-model="$ctrl.travel.shipped"]',
        landingDate: 'vn-travel-create vn-date-picker[ng-model="$ctrl.travel.landed"]',
        warehouseOut: 'vn-travel-create vn-autocomplete[ng-model="$ctrl.travel.warehouseOutFk"]',
        warehouseIn: 'vn-travel-create vn-autocomplete[ng-model="$ctrl.travel.warehouseInFk"]',
        save: 'vn-travel-create vn-submit > button',
        generalSearchFilter: 'vn-travel-search-panel vn-textfield[ng-model="$ctrl.search"]',
        agencyFilter: 'vn-travel-search-panel vn-autocomplete[ng-model="$ctrl.filter.agencyModeFk"]',
        warehouseOutFilter: 'vn-travel-search-panel vn-autocomplete[ng-model="$ctrl.filter.warehouseOutFk"]',
        warehouseInFilter: 'vn-travel-search-panel vn-autocomplete[ng-model="$ctrl.filter.warehouseInFk"]',
        scopeDaysFilter: 'vn-travel-search-panel vn-input-number[ng-model="$ctrl.filter.scopeDays"]',
        continentFilter: 'vn-travel-search-panel vn-autocomplete[ng-model="$ctrl.filter.continent"]',
        totalEntriesFilter: 'vn-travel-search-panel vn-input-number[ng-model="$ctrl.totalEntries"]',
        chip: 'vn-travel-search-panel vn-chip > vn-icon',

    },
    travelExtraCommunity: {
        anySearchResult: 'vn-travel-extra-community > vn-card div > tbody > tr[ng-attr-id="{{::travel.id}}"]',
        firstTravelReference: 'vn-travel-extra-community tbody:nth-child(2) vn-td-editable[name="reference"]',
        firstTravelLockedKg: 'vn-travel-extra-community tbody:nth-child(2) vn-td-editable[name="lockedKg"]',
        removeContinentFilter: 'vn-searchbar > form > vn-textfield > div.container > div.prepend > prepend > div > span:nth-child(3) > vn-icon > i'
    },
    travelBasicData: {
        reference: 'vn-travel-basic-data vn-textfield[ng-model="$ctrl.travel.ref"]',
        agency: 'vn-travel-basic-data vn-autocomplete[ng-model="$ctrl.travel.agencyModeFk"]',
        shippedDate: 'vn-travel-basic-data vn-date-picker[ng-model="$ctrl.travel.shipped"]',
        deliveryDate: 'vn-travel-basic-data vn-date-picker[ng-model="$ctrl.travel.landed"]',
        outputWarehouse: 'vn-travel-basic-data vn-autocomplete[ng-model="$ctrl.travel.warehouseOutFk"]',
        inputWarehouse: 'vn-travel-basic-data vn-autocomplete[ng-model="$ctrl.travel.warehouseInFk"]',
        delivered: 'vn-travel-basic-data vn-check[ng-model="$ctrl.travel.isDelivered"]',
        received: 'vn-travel-basic-data vn-check[ng-model="$ctrl.travel.isReceived"]',
        save: 'vn-travel-basic-data vn-submit[label="Save"]',
        undoChanges: 'vn-travel-basic-data vn-button[label="Undo changes"]'
    },
    travelLog: {
        firstLogFirstTD: 'vn-travel-log vn-tbody > vn-tr > vn-td:nth-child(5)'
    },
    travelThermograph: {
        add: 'vn-travel-thermograph-index vn-float-button[icon="add"]',
        addThermographIcon: 'vn-travel-thermograph-create vn-autocomplete vn-icon[icon="add_circle"]',
        newThermographId: 'vn-textfield[ng-model="$ctrl.newThermograph.thermographId"]',
        newThermographModel: 'vn-autocomplete[ng-model="$ctrl.newThermograph.model"]',
        newThermographWarehouse: 'vn-autocomplete[ng-model="$ctrl.newThermograph.warehouseId"]',
        newThermographTemperature: 'vn-autocomplete[ng-model="$ctrl.newThermograph.temperatureFk"]',
        createThermographButton: 'form button[response="accept"]',
        uploadIcon: 'vn-travel-thermograph-create vn-icon[icon="icon-attach"]',
        createdThermograph: 'vn-travel-thermograph-index vn-tbody > vn-tr',
        upload: 'vn-travel-thermograph-create button[type=submit]'
    },
    travelDescriptor: {
        filterByAgencyButton: 'vn-descriptor-content .quicklinks > div:nth-child(1) > vn-quick-link > a[vn-tooltip="All travels with current agency"]',
        dotMenu: 'vn-travel-descriptor vn-icon-button[icon="more_vert"]',
        dotMenuClone: '#clone',
        dotMenuCloneWithEntries: '#cloneWithEntries',
        dotMenuAddEntry: '[name="addEntry"]',
        acceptClonation: 'tpl-buttons > button[response="accept"]'
    },
    travelCreate: {
        reference: 'vn-travel-create vn-textfield[ng-model="$ctrl.travel.ref"]',
        agency: 'vn-travel-create vn-autocomplete[ng-model="$ctrl.travel.agencyModeFk"]',
        shipped: 'vn-travel-create vn-date-picker[ng-model="$ctrl.travel.shipped"]',
        landed: 'vn-travel-create vn-date-picker[ng-model="$ctrl.travel.landed"]',
        warehouseOut: 'vn-travel-create vn-autocomplete[ng-model="$ctrl.travel.warehouseOutFk"]',
        warehouseIn: 'vn-travel-create vn-autocomplete[ng-model="$ctrl.travel.warehouseInFk"]',
        saveButton: 'vn-travel-create vn-submit[label="Save"]'
    },
    zoneIndex: {
        searchResult: 'vn-zone-index a.vn-tr',
    },
    zoneDescriptor: {
        menu: 'vn-zone-descriptor vn-icon-button[vn-popover="menu"]',
        deleteZone: 'slot-menu vn-item[ng-click="$ctrl.onDelete()"]'
    },
    zoneBasicData: {
        name: 'vn-zone-basic-data vn-textfield[ng-model="$ctrl.zone.name"]',
        agency: 'vn-zone-basic-data vn-autocomplete[ng-model="$ctrl.zone.agencyModeFk"]',
        maxVolume: 'vn-zone-basic-data vn-input-number[ng-model="$ctrl.zone.itemMaxSize"]',
        travelingDays: 'vn-zone-basic-data vn-input-number[ng-model="$ctrl.zone.travelingDays"]',
        closing: 'vn-zone-basic-data vn-input-time[ng-model="$ctrl.zone.hour"]',
        price: 'vn-zone-basic-data vn-input-number[ng-model="$ctrl.zone.price"]',
        bonus: 'vn-zone-basic-data vn-input-number[ng-model="$ctrl.zone.bonus"]',
        inflation: 'vn-zone-basic-data vn-input-number[ng-model="$ctrl.zone.inflation"]',
        volumetric: 'vn-zone-basic-data vn-check[ng-model="$ctrl.zone.isVolumetric"]',
        saveButton: 'vn-zone-basic-data vn-submit > button',
    },
    entryCreate: {
        travel: 'vn-entry-create vn-autocomplete[ng-model="$ctrl.entry.travelFk"]',
        company: 'vn-entry-create vn-autocomplete[ng-model="$ctrl.entry.companyFk"]'
    },
    entrySummary: {
        header: 'vn-entry-summary > vn-card > h5',
        reference: 'vn-entry-summary vn-label-value[label="Reference"]',
        confirmed: 'vn-entry-summary vn-check[label="Confirmed"]',
        anyBuyLine: 'vn-entry-summary tr.dark-row'
    },
    entryDescriptor: {
        agency: 'vn-entry-descriptor div.body vn-label-value:nth-child(1) span',
        travelsQuicklink: 'vn-entry-descriptor vn-quick-link[icon="local_airport"] > a',
        entriesQuicklink: 'vn-entry-descriptor vn-quick-link[icon="icon-entry"] > a'
    },
    entryBuys: {
        anyBuyLine: 'vn-entry-buy-index tr.dark-row',
        allBuyCheckbox: 'vn-entry-buy-index thead vn-check',
        firstBuyCheckbox: 'vn-entry-buy-index tbody:nth-child(2) vn-check',
        deleteBuysButton: 'vn-entry-buy-index vn-button[icon="delete"]',
        secondBuyGroupingPrice: 'vn-entry-buy-index tbody:nth-child(3) > tr:nth-child(1) vn-input-number[ng-model="buy.price2"]',
        secondBuyPrice: 'vn-entry-buy-index tbody:nth-child(3) > tr:nth-child(1) vn-input-number[ng-model="buy.buyingValue"]',
        secondBuyGrouping: 'vn-entry-buy-index tbody:nth-child(3) > tr:nth-child(1) vn-input-number[ng-model="buy.grouping"]',
        secondBuyPacking: 'vn-entry-buy-index tbody:nth-child(3) > tr:nth-child(1) vn-input-number[ng-model="buy.packing"]',
        secondBuyWeight: 'vn-entry-buy-index tbody:nth-child(3) > tr:nth-child(1) vn-input-number[ng-model="buy.weight"]',
        secondBuyStickers: 'vn-entry-buy-index tbody:nth-child(3) > tr:nth-child(1) vn-input-number[ng-model="buy.stickers"]',
        secondBuyPackage: 'vn-entry-buy-index tbody:nth-child(3) > tr:nth-child(1) vn-autocomplete[ng-model="buy.packagingFk"]',
        secondBuyQuantity: 'vn-entry-buy-index tbody:nth-child(3) > tr:nth-child(1) vn-input-number[ng-model="buy.quantity"]',
        secondBuyItem: 'vn-entry-buy-index tbody:nth-child(3) > tr:nth-child(1) vn-autocomplete[ng-model="buy.itemFk"]',
        importButton: 'vn-entry-buy-index vn-icon[icon="publish"]',
        ref: 'vn-entry-buy-import vn-textfield[ng-model="$ctrl.import.ref"]',
        observation: 'vn-entry-buy-import vn-textarea[ng-model="$ctrl.import.observation"]',
        file: 'vn-entry-buy-import vn-input-file[ng-model="$ctrl.import.file"]',
        firstImportedItem: 'vn-entry-buy-import tbody:nth-child(2) vn-autocomplete[ng-model="buy.itemFk"]',
        secondImportedItem: 'vn-entry-buy-import tbody:nth-child(3) vn-autocomplete[ng-model="buy.itemFk"]',
        thirdImportedItem: 'vn-entry-buy-import tbody:nth-child(4) vn-autocomplete[ng-model="buy.itemFk"]',
        fourthImportedItem: 'vn-entry-buy-import tbody:nth-child(5) vn-autocomplete[ng-model="buy.itemFk"]',
        importBuysButton: 'vn-entry-buy-import button[type="submit"]'
    },
    entryLatestBuys: {
        table: 'tbody > tr:not(.empty-rows)',
        chip: 'vn-chip > vn-icon',
        generalSearchInput: 'vn-textfield[ng-model="$ctrl.filter.search"]',
        firstReignIcon: 'vn-horizontal.item-category  vn-one',
        typeInput: 'vn-autocomplete[ng-model="$ctrl.filter.typeFk"]',
        salesPersonInput: 'vn-autocomplete[ng-model="$ctrl.filter.salesPersonFk"]',
        supplierInput: 'vn-autocomplete[ng-model="$ctrl.filter.supplierFk"]',
        fromInput: 'vn-date-picker[ng-model="$ctrl.filter.from"]',
        toInput: 'vn-date-picker[ng-model="$ctrl.filter.to"]',
        activeCheck: 'vn-check[ng-model="$ctrl.filter.active"]',
        floramondoCheck: 'vn-check[ng-model="$ctrl.filter.floramondo"]',
        visibleCheck: 'vn-check[ng-model="$ctrl.filter.visible"]',
        addTagButton: 'vn-icon-button[vn-tooltip="Add tag"]',
        itemTagInput: 'vn-autocomplete[ng-model="itemTag.tagFk"]',
        itemTagValueInput: 'vn-autocomplete[ng-model="itemTag.value"]',
        firstBuy: 'vn-entry-latest-buys tbody > tr:nth-child(2)',
        allBuysCheckBox: 'vn-entry-latest-buys thead vn-check',
        secondBuyCheckBox: 'vn-entry-latest-buys tbody tr:nth-child(2) vn-check[ng-model="buy.checked"]',
        editBuysButton: 'vn-entry-latest-buys vn-button[icon="edit"]',
        fieldAutocomplete: 'vn-autocomplete[ng-model="$ctrl.editedColumn.field"]',
        newValueInput: 'vn-textfield[ng-model="$ctrl.editedColumn.newValue"]',
        latestBuysSectionButton: 'a[ui-sref="entry.latestBuys"]',
        acceptEditBuysDialog: 'button[response="accept"]'
    },
    entryIndex: {
        createEntryButton: 'vn-entry-index vn-button[icon="add"]',
        newEntrySupplier: 'vn-entry-create vn-autocomplete[ng-model="$ctrl.entry.supplierFk"]',
        newEntryTravel: 'vn-entry-create vn-autocomplete[ng-model="$ctrl.entry.travelFk"]',
        newEntryCompany: 'vn-entry-create vn-autocomplete[ng-model="$ctrl.entry.companyFk"]',
        saveNewEntry: 'vn-entry-create button[type="submit"]'
    },
    entryObservations: {
        addNewObservation: 'vn-entry-observation vn-icon-button[icon="add_circle"]',
        firstObservationType: 'vn-entry-observation vn-horizontal:nth-child(1) > vn-autocomplete[ng-model="observation.observationTypeFk"]',
        secondObservationType: 'vn-entry-observation vn-horizontal:nth-child(2) > vn-autocomplete[ng-model="observation.observationTypeFk"]',
        firstObservationDescription: 'vn-entry-observation vn-horizontal:nth-child(1) > vn-textfield[ng-model="observation.description"]',
        secondObservationDescription: 'vn-entry-observation vn-horizontal:nth-child(2) > vn-textfield[ng-model="observation.description"]',
        saveObservationsButton: 'vn-entry-observation vn-submit > button'
    },
    supplierSummary: {
        header: 'vn-supplier-summary > vn-card > h5',
        basicDataId: 'vn-supplier-summary vn-label-value[label="Id"]',
        fiscalAddressTaxNumber: 'vn-supplier-summary vn-label-value[label="Tax number"]',
        billingDataPayMethod: 'vn-supplier-summary vn-label-value[label="Pay method"]'
    },
    supplierDescriptor: {
        alias: 'vn-supplier-descriptor vn-label-value[label="Alias"]',
        clientButton: 'vn-supplier-descriptor vn-icon[icon="person"]',
        entriesButton: 'vn-supplier-descriptor vn-icon[icon="icon-entry"]',
    },
    supplierBasicData: {
        alias: 'vn-supplier-basic-data vn-textfield[ng-model="$ctrl.supplier.nickname"]',
        isReal: 'vn-supplier-basic-data vn-check[ng-model="$ctrl.supplier.isReal"]',
        isActive: 'vn-supplier-basic-data vn-check[ng-model="$ctrl.supplier.isActive"]',
        isPayMethodChecked: 'vn-supplier-basic-data vn-check[ng-model="$ctrl.supplier.isPayMethodChecked"]',
        notes: 'vn-supplier-basic-data vn-textarea[ng-model="$ctrl.supplier.note"]',
        saveButton: 'vn-supplier-basic-data button[type="submit"]',
    },
    supplierBillingData: {
        payMethod: 'vn-supplier-billing-data vn-autocomplete[ng-model="$ctrl.supplier.payMethodFk"]',
        payDem: 'vn-supplier-billing-data vn-autocomplete[ng-model="$ctrl.supplier.payDemFk"]',
        payDay: 'vn-supplier-billing-data vn-input-number[ng-model="$ctrl.supplier.payDay"]',
        saveButton: 'vn-supplier-billing-data button[type=submit]'
    },
    supplierAddress: {
        anyAddress: 'vn-supplier-address-index a',
        thirdAddress: 'vn-supplier-address-index vn-card > div:nth-child(3) > a',
        newAddress: 'vn-supplier-address-index vn-float-button[icon="add"]',
        newNickname: 'vn-supplier-address-create vn-textfield[ng-model="$ctrl.address.nickname"]',
        newStreet: 'vn-supplier-address-create vn-textfield[ng-model="$ctrl.address.street"]',
        newPostcode: 'vn-supplier-address-create vn-datalist[ng-model="$ctrl.address.postalCode"]',
        newCity: 'vn-supplier-address-create vn-datalist[ng-model="$ctrl.address.city"]',
        newProvince: 'vn-supplier-address-create vn-autocomplete[ng-model="$ctrl.address.provinceFk"]',
        newPhone: 'vn-supplier-address-create vn-textfield[ng-model="$ctrl.address.phone"]',
        newMobile: 'vn-supplier-address-create vn-textfield[ng-model="$ctrl.address.mobile"]',
        editNickname: 'vn-supplier-address-edit vn-textfield[ng-model="$ctrl.address.nickname"]',
        editStreet: 'vn-supplier-address-edit vn-textfield[ng-model="$ctrl.address.street"]',
        editPostcode: 'vn-supplier-address-edit vn-datalist[ng-model="$ctrl.address.postalCode"]',
        editCity: 'vn-supplier-address-edit vn-datalist[ng-model="$ctrl.address.city"]',
        editProvince: 'vn-supplier-address-edit vn-autocomplete[ng-model="$ctrl.address.provinceFk"]',
        editPhone: 'vn-supplier-address-edit vn-textfield[ng-model="$ctrl.address.phone"]',
        editMobile: 'vn-supplier-address-edit vn-textfield[ng-model="$ctrl.address.mobile"]',
        saveButton: 'button[type="submit"]'
    },
    supplierContact: {
        anyContact: 'vn-supplier-contact > form > vn-card > div',
        addNewContact: 'vn-supplier-contact vn-icon[icon="add_circle"]',
        thirdContactName: 'vn-supplier-contact div:nth-child(3) vn-textfield[ng-model="contact.name"]',
        thirdContactPhone: 'vn-supplier-contact div:nth-child(3) vn-textfield[ng-model="contact.phone"]',
        thirdContactMobile: 'vn-supplier-contact div:nth-child(3) vn-textfield[ng-model="contact.mobile"]',
        thirdContactEmail: 'vn-supplier-contact div:nth-child(3) vn-textfield[ng-model="contact.email"]',
        thirdContactNotes: 'vn-supplier-contact div:nth-child(3) vn-textfield[ng-model="contact.observation"]',
        saveButton: 'vn-supplier-contact button[type="submit"]',
        thirdContactDeleteButton: 'vn-supplier-contact div:nth-child(3) vn-icon-button[icon="delete"]'
    },
};