import components from './components_selectors.js';

export default {
    globalItems: {
        applicationsMenuButton: '#apps',
        applicationsMenuVisible: 'vn-main-menu [vn-id="apps-menu"] ul',
        clientsButton: 'vn-main-menu [vn-id="apps-menu"] ul > li[ui-sref="client.index"]',
        itemsButton: 'vn-main-menu [vn-id="apps-menu"] ul > li[ui-sref="item.index"]',
        ticketsButton: 'vn-main-menu [vn-id="apps-menu"] ul > li[ui-sref="ticket.index"]',
        invoiceOutButton: 'vn-main-menu [vn-id="apps-menu"] ul > li[ui-sref="invoiceOut.index"]',
        claimsButton: 'vn-main-menu [vn-id="apps-menu"] ul > li[ui-sref="claim.index"]',
        returnToModuleIndexButton: 'a[ui-sref="order.index"]',
        userMenuButton: 'vn-topbar #user',
        userLocalWarehouse: 'vn-topbar vn-popover vn-autocomplete[field="$ctrl.localWarehouseFk"]',
        userLocalBank: 'vn-topbar vn-popover vn-autocomplete[field="$ctrl.localBankFk"]',
        userLocalCompany: 'vn-topbar vn-popover vn-autocomplete[field="$ctrl.localCompanyFk"]',
        userWarehouse: 'vn-topbar vn-popover vn-autocomplete[field="$ctrl.warehouseFk"]',
        userCompany: 'vn-topbar vn-popover vn-autocomplete[field="$ctrl.companyFk"]',
        userConfigFirstAutocompleteClear: '#localWarehouse > div > div > div > vn-icon.clear',
        userConfigSecondAutocompleteClear: '#localBank > div > div > div > vn-icon.clear',
        userConfigThirdAutocompleteClear: '#localCompany > div > div > div > vn-icon.clear',
        acceptButton: 'vn-confirm button[response=ACCEPT]'
    },
    clientsIndex: {
        searchClientInput: `${components.vnTextfield}`,
        searchButton: 'vn-searchbar vn-icon[icon="search"]',
        searchResult: 'vn-client-index .vn-list-item',
        createClientButton: `${components.vnFloatButton}`,
        othersButton: 'vn-left-menu li[name="Others"] > a'
    },
    createClientView: {
        name: `${components.vnTextfield}[name="name"]`,
        taxNumber: `${components.vnTextfield}[name="fi"]`,
        socialName: `${components.vnTextfield}[name="socialName"]`,
        street: `${components.vnTextfield}[name="street"]`,
        postcode: `vn-autocomplete[field="$ctrl.client.postcode"]`,
        city: `vn-autocomplete[field="$ctrl.client.city"]`,
        province: `vn-autocomplete[field="$ctrl.client.provinceFk"]`,
        country: `vn-autocomplete[field="$ctrl.client.countryFk"]`,
        userName: `${components.vnTextfield}[name="userName"]`,
        email: `${components.vnTextfield}[name="email"]`,
        salesPersonAutocomplete: `vn-autocomplete[field="$ctrl.client.salesPersonFk"]`,
        createButton: `${components.vnSubmit}`,
        cancelButton: 'vn-button[href="#!/client/index"]'
    },
    clientDescriptor: {
        moreMenu: 'vn-client-descriptor vn-icon-menu > div > vn-icon',
        simpleTicketButton: 'vn-client-descriptor vn-popover > div > div.content > div > div.list > ul > li'
    },
    clientBasicData: {
        basicDataButton: 'vn-left-menu a[ui-sref="client.card.basicData"]',
        nameInput: 'vn-textfield[field="$ctrl.client.name"] input',
        contactInput: 'vn-textfield[field="$ctrl.client.contact"] input',
        phoneInput: 'vn-textfield[field="$ctrl.client.phone"] input',
        mobileInput: 'vn-textfield[field="$ctrl.client.mobile"] input',
        emailInput: 'vn-textfield[field="$ctrl.client.email"] input',
        salesPersonAutocomplete: 'vn-autocomplete[field="$ctrl.client.salesPersonFk"]',
        channelAutocomplete: 'vn-autocomplete[field="$ctrl.client.contactChannelFk"]',
        saveButton: `${components.vnSubmit}`
    },
    clientFiscalData: {
        fiscalDataButton: 'vn-left-menu a[ui-sref="client.card.fiscalData"]',
        socialNameInput: `${components.vnTextfield}[name="socialName"]`,
        fiscalIdInput: `${components.vnTextfield}[name="fi"]`,
        equalizationTaxCheckbox: 'vn-check[label="Is equalizated"] md-checkbox',
        acceptPropagationButton: 'vn-client-fiscal-data > vn-confirm button[response=ACCEPT]',
        addressInput: `${components.vnTextfield}[name="street"]`,
        postcodeAutocomplete: `vn-autocomplete[field="$ctrl.client.postcode"]`,
        cityAutocomplete: `vn-autocomplete[field="$ctrl.client.city"]`,
        provinceAutocomplete: 'vn-autocomplete[field="$ctrl.client.provinceFk"]',
        countryAutocomplete: 'vn-autocomplete[field="$ctrl.client.countryFk"]',
        activeCheckbox: 'vn-check[label="Active"] md-checkbox',
        frozenCheckbox: 'vn-check[label="Frozen"] md-checkbox',
        invoiceByAddressCheckbox: 'vn-check[label="Invoice by address"] md-checkbox',
        verifiedDataCheckbox: 'vn-check[label="Verified data"] md-checkbox',
        hasToInvoiceCheckbox: 'vn-check[label="Has to invoice"] md-checkbox',
        invoiceByMailCheckbox: 'vn-check[label="Invoice by mail"] md-checkbox',
        viesCheckbox: 'vn-check[label="Vies"] md-checkbox',
        saveButton: `${components.vnSubmit}`
    },
    clientBillingData: {
        payMethodAutocomplete: 'vn-autocomplete[field="$ctrl.client.payMethodFk"]',
        IBANInput: `${components.vnTextfield}[name="iban"]`,
        dueDayInput: `${components.vnInputNumber}[name="dueDay"]`,
        receivedCoreLCRCheckbox: 'vn-check[label="Received LCR"] md-checkbox',
        receivedCoreVNLCheckbox: 'vn-check[label="Received core VNL"] md-checkbox',
        receivedB2BVNLCheckbox: 'vn-check[label="Received B2B VNL"] md-checkbox',
        swiftBicAutocomplete: 'vn-client-billing-data vn-autocomplete[field="$ctrl.client.bankEntityFk"]',
        clearswiftBicButton: 'vn-client-billing-data vn-autocomplete[field="$ctrl.client.bankEntityFk"] > div > div > div > vn-icon > i',
        newBankEntityButton: 'vn-client-billing-data vn-icon-button[vn-tooltip="New bank entity"] > button',
        newBankEntityName: 'vn-client-billing-data > vn-dialog vn-textfield[label="Name"] input',
        newBankEntityBIC: 'vn-client-billing-data > vn-dialog vn-textfield[label="Swift / BIC"] input',
        newBankEntityCode: 'vn-client-billing-data > vn-dialog vn-textfield[label="Entity Code"] input',
        acceptBankEntityButton: 'vn-client-billing-data > vn-dialog button[response="ACCEPT"]',
        saveButton: `${components.vnSubmit}`
    },
    clientAddresses: {
        addressesButton: 'vn-left-menu a[ui-sref="client.card.address.index"]',
        createAddress: `vn-client-address-index ${components.vnFloatButton}`,
        defaultCheckboxInput: 'vn-check[label="Default"] md-checkbox',
        consigneeInput: `${components.vnTextfield}[name="nickname"]`,
        streetAddressInput: `${components.vnTextfield}[name="street"]`,
        postcodeAutocomplete: `vn-autocomplete[field="$ctrl.address.postalCode"]`,
        cityAutocomplete: `vn-autocomplete[field="$ctrl.address.city"]`,
        provinceAutocomplete: 'vn-autocomplete[field="$ctrl.address.provinceFk"]',
        agencyAutocomplete: 'vn-autocomplete[field="$ctrl.address.agencyModeFk"]',
        phoneInput: `${components.vnTextfield}[name="phone"]`,
        mobileInput: `${components.vnTextfield}[name="mobile"]`,
        defaultAddress: 'vn-client-address-index vn-horizontal:nth-child(1) div[name="street"]',
        secondMakeDefaultStar: 'vn-client-address-index vn-card vn-horizontal:nth-child(2) vn-icon-button[icon="star_border"]',
        firstEditButton: 'vn-client-address-index vn-icon-button[icon="edit"]',
        secondEditButton: 'vn-client-address-index vn-horizontal:nth-child(2) vn-icon-button[icon="edit"]',
        activeCheckbox: 'vn-check[label="Enabled"] md-checkbox',
        equalizationTaxCheckbox: 'vn-client-address-edit vn-check[label="Is equalizated"] md-checkbox',
        firstObservationTypeAutocomplete: 'vn-client-address-edit [name=observations] :nth-child(1) [field="observation.observationTypeFk"]',
        firstObservationDescriptionInput: 'vn-client-address-edit [name=observations] :nth-child(1) [model="observation.description"] input',
        secondObservationTypeAutocomplete: 'vn-client-address-edit [name=observations] :nth-child(2) [field="observation.observationTypeFk"]',
        secondObservationDescriptionInput: 'vn-client-address-edit [name=observations] :nth-child(2) [model="observation.description"] input',
        addObservationButton: 'vn-client-address-edit div[name="observations"] vn-icon-button[icon="add_circle"]',
        saveButton: `${components.vnSubmit}`,
        cancelCreateAddressButton: 'button[ui-sref="client.card.address.index"]',
        cancelEditAddressButton: 'vn-client-address-edit > form > vn-button-bar > vn-button > button'
    },
    clientWebAccess: {
        webAccessButton: 'vn-left-menu a[ui-sref="client.card.webAccess"]',
        enableWebAccessCheckbox: 'vn-check[label="Enable web access"] md-checkbox',
        userNameInput: `${components.vnTextfield}[name="name"]`,
        saveButton: `${components.vnSubmit}`
    },
    clientNotes: {
        addNoteFloatButton: `${components.vnFloatButton}`,
        noteInput: 'vn-textarea[label="Note"]',
        saveButton: `${components.vnSubmit}`,
        firstNoteText: 'vn-client-note .text'
    },
    clientCredit: {
        addCreditFloatButton: `${components.vnFloatButton}`,
        creditInput: `${components.vnInputNumber}[name="credit"]`,
        saveButton: `${components.vnSubmit}`,
        firstCreditText: 'vn-client-credit-index vn-card > div vn-table vn-tbody > vn-tr'
    },
    clientGreuge: {
        addGreugeFloatButton: `${components.vnFloatButton}`,
        amountInput: `${components.vnInputNumber}[name="amount"]`,
        descriptionInput: `${components.vnTextfield}[name="description"]`,
        typeAutocomplete: 'vn-autocomplete[field="$ctrl.greuge.greugeTypeFk"]',
        saveButton: `${components.vnSubmit}`,
        firstGreugeText: 'vn-client-greuge-index vn-card > div vn-table vn-tbody > vn-tr'
    },
    clientMandate: {
        firstMandateText: 'vn-client-mandate vn-card > div vn-table vn-tbody > vn-tr'
    },
    clientInvoices: {
        firstInvoiceText: 'vn-client-invoice vn-card > div vn-table vn-tbody > vn-tr'
    },
    clientLog: {
        logButton: 'vn-left-menu a[ui-sref="client.card.log"]',
        lastModificationDate: 'vn-client-log > vn-log vn-table vn-tbody > vn-tr > vn-td:nth-child(1)',
        lastModificationPreviousValue: 'vn-client-log vn-table vn-td.before',
        lastModificationCurrentValue: 'vn-client-log vn-table vn-td.after'

    },
    clientBalance: {
        balanceButton: 'vn-left-menu a[ui-sref="client.card.balance.index"]',
        companyAutocomplete: 'vn-client-balance-index vn-autocomplete[field="$ctrl.companyFk"]',
        newPaymentButton: `${components.vnFloatButton}`,
        newPaymentBank: 'vn-client-balance-create vn-autocomplete[field="$ctrl.receipt.bankFk"]',
        newPaymentAmountInput: 'vn-client-balance-create vn-input-number[field="$ctrl.receipt.amountPaid"] input',
        saveButton: 'vn-client-balance-create vn-button[label="Save"]',
        firstBalanceLine: 'vn-client-balance-index vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(8)'

    },
    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"][aria-hidden="false"]'
    },
    itemsIndex: {
        searchIcon: 'vn-item-index vn-searchbar vn-icon[icon="search"]',
        createItemButton: `${components.vnFloatButton}`,
        searchResult: 'vn-item-index a.vn-tr',
        searchResultPreviewButton: 'vn-item-index .buttons > [icon="desktop_windows"]',
        searchResultCloneButton: 'vn-item-index .buttons > [icon="icon-clone"]',
        acceptClonationAlertButton: 'vn-item-index [vn-id="clone"] [response="ACCEPT"]',
        searchItemInput: 'vn-searchbar vn-textfield input',
        searchButton: 'vn-searchbar vn-icon[icon="search"]',
        closeItemSummaryPreview: 'vn-item-index [vn-id="preview"] button.close',
        fieldsToShowButton: 'vn-item-index vn-table > div.ng-scope > div > vn-icon-button[icon="menu"]',
        fieldsToShowForm: 'vn-item-index > div > vn-card > div > vn-table > div.ng-scope > div > vn-dialog > div > form',
        firstItemImage: 'vn-item-index vn-tbody > a:nth-child(1) > vn-td:nth-child(1)',
        firstItemId: 'vn-item-index vn-tbody > a:nth-child(1) > vn-td:nth-child(2)',
        idCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(2) > vn-check > md-checkbox',
        stemsCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(3) > vn-check > md-checkbox',
        sizeCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(4) > vn-check > md-checkbox',
        nicheCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(5) > vn-check > md-checkbox',
        typeCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(6) > vn-check > md-checkbox',
        categoryCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(7) > vn-check > md-checkbox',
        intrastadCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(8) > vn-check > md-checkbox',
        originCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(9) > vn-check > md-checkbox',
        buyerCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(10) > vn-check > md-checkbox',
        destinyCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(11) > vn-check > md-checkbox',
        taxClassCheckbox: 'vn-item-index vn-dialog form vn-horizontal:nth-child(12) > vn-check > md-checkbox',
        saveFieldsButton: 'vn-item-index vn-dialog vn-horizontal:nth-child(16) > vn-button > button'
    },
    itemCreateView: {
        temporalName: `${components.vnTextfield}[name="provisionalName"]`,
        typeAutocomplete: 'vn-autocomplete[field="$ctrl.item.typeFk"]',
        intrastatAutocomplete: 'vn-autocomplete[field="$ctrl.item.intrastatFk"]',
        originAutocomplete: 'vn-autocomplete[field="$ctrl.item.originFk"]',
        createButton: `${components.vnSubmit}`,
        cancelButton: 'button[ui-sref="item.index"]'
    },
    itemDescriptor: {
        goBackToModuleIndexButton: 'vn-item-descriptor a[href="#!/item/index"]',
        moreMenu: 'vn-item-descriptor vn-icon-menu > div > vn-icon',
        moreMenuRegularizeButton: 'vn-item-descriptor vn-drop-down > vn-popover ul > li[name="Regularize stock"]',
        regularizeQuantityInput: 'vn-item-descriptor > vn-dialog > div > form > div.body > tpl-body > div > vn-textfield > div > div > div.infix > input',
        regularizeWarehouseAutocomplete: 'vn-item-descriptor vn-dialog vn-autocomplete[field="$ctrl.warehouseFk"]',
        editButton: 'vn-item-card vn-item-descriptor vn-float-button[icon="edit"]',
        regularizeSaveButton: 'vn-item-descriptor > vn-dialog > div > form > div.buttons > tpl-buttons > button',
        inactiveIcon: 'vn-item-descriptor vn-icon[icon="icon-unavailable"]',
        navigateBackToIndex: 'vn-item-descriptor vn-icon[icon="chevron_left"]'
    },
    itemBasicData: {
        basicDataButton: 'vn-left-menu a[ui-sref="item.card.basicData"]',
        goToItemIndexButton: 'vn-item-descriptor [ui-sref="item.index"]',
        typeAutocomplete: 'vn-autocomplete[field="$ctrl.item.typeFk"]',
        intrastatAutocomplete: 'vn-autocomplete[field="$ctrl.item.intrastatFk"]',
        nameInput: 'vn-textfield[label="Name"] input',
        relevancyInput: 'vn-input-number[label="Relevancy"] input',
        originAutocomplete: 'vn-autocomplete[field="$ctrl.item.originFk"]',
        expenceAutocomplete: 'vn-autocomplete[field="$ctrl.item.expenceFk"]',
        longNameInput: 'vn-textfield[field="$ctrl.item.longName"] input',
        isActiveCheckbox: 'vn-check[label="Active"] md-checkbox',
        submitBasicDataButton: `${components.vnSubmit}`
    },
    itemTags: {
        goToItemIndexButton: 'vn-item-descriptor [ui-sref="item.index"]',
        tagsButton: 'vn-left-menu a[ui-sref="item.card.tags"]',
        fourthTagAutocomplete: 'vn-item-tags vn-horizontal:nth-child(4) > vn-autocomplete[field="itemTag.tagFk"]',
        fourthValueInput: 'vn-item-tags vn-horizontal:nth-child(4) > vn-textfield[label="Value"] input',
        fourthRelevancyInput: 'vn-item-tags vn-horizontal:nth-child(4) > vn-textfield[label="Relevancy"] input',
        fourthRemoveTagButton: 'vn-item-tags vn-horizontal:nth-child(4) vn-icon-button[icon="delete"]',
        fifthTagAutocomplete: 'vn-item-tags vn-horizontal:nth-child(5) > vn-autocomplete[field="itemTag.tagFk"]',
        fifthValueInput: 'vn-item-tags vn-horizontal:nth-child(5) > vn-textfield[label="Value"] input',
        fifthRelevancyInput: 'vn-item-tags vn-horizontal:nth-child(5) > vn-textfield[label="Relevancy"] input',
        sixthTagAutocomplete: 'vn-item-tags vn-horizontal:nth-child(6) > vn-autocomplete[field="itemTag.tagFk"]',
        sixthValueInput: 'vn-item-tags vn-horizontal:nth-child(6) > vn-textfield[label="Value"] input',
        sixthRelevancyInput: 'vn-item-tags vn-horizontal:nth-child(6) > vn-textfield[label="Relevancy"] input',
        seventhTagAutocomplete: 'vn-item-tags vn-horizontal:nth-child(7) > vn-autocomplete[field="itemTag.tagFk"]',
        seventhValueInput: 'vn-item-tags vn-horizontal:nth-child(7) > vn-textfield[label="Value"] input',
        seventhRelevancyInput: 'vn-item-tags vn-horizontal:nth-child(7) > vn-textfield[label="Relevancy"] input',
        addItemTagButton: 'vn-item-tags vn-icon-button[icon="add_circle"]',
        submitItemTagsButton: `vn-item-tags ${components.vnSubmit}`
    },
    itemTax: {
        firstClassAutocomplete: 'vn-item-tax vn-horizontal:nth-child(1) > vn-autocomplete[field="tax.taxClassFk"]',
        secondClassAutocomplete: 'vn-item-tax vn-horizontal:nth-child(2) > vn-autocomplete[field="tax.taxClassFk"]',
        thirdClassAutocomplete: 'vn-item-tax vn-horizontal:nth-child(3) > vn-autocomplete[field="tax.taxClassFk"]',
        submitTaxButton: `vn-item-tax ${components.vnSubmit}`
    },
    itemBarcodes: {
        addBarcodeButton: 'vn-item-barcode vn-icon[icon="add_circle"]',
        thirdCodeInput: `vn-item-barcode vn-horizontal:nth-child(3) > ${components.vnTextfield}`,
        submitBarcodesButton: `vn-item-barcode ${components.vnSubmit}`,
        firstCodeRemoveButton: 'vn-item-barcode vn-horizontal vn-none vn-icon[icon="delete"]'
    },
    itemNiches: {
        addNicheButton: 'vn-item-niche vn-icon[icon="add_circle"]',
        firstWarehouseAutocomplete: 'vn-item-niche vn-autocomplete[field="niche.warehouseFk"]',
        firstCodeInput: 'vn-item-niche vn-horizontal:nth-child(1) > vn-textfield[label="Code"] input',
        secondWarehouseAutocomplete: 'vn-item-niche vn-horizontal:nth-child(2) > vn-autocomplete[field="niche.warehouseFk"]',
        secondCodeInput: 'vn-item-niche vn-horizontal:nth-child(2) > vn-textfield[label="Code"] input',
        secondNicheRemoveButton: 'vn-item-niche vn-horizontal:nth-child(2) > vn-none > vn-icon-button[icon="delete"]',
        thirdWarehouseAutocomplete: 'vn-item-niche vn-horizontal:nth-child(3) > vn-autocomplete[field="niche.warehouseFk"]',
        thirdCodeInput: 'vn-item-niche vn-horizontal:nth-child(3) > vn-textfield[label="Code"] input',
        submitNichesButton: `vn-item-niche ${components.vnSubmit}`
    },
    itemBotanical: {
        botanicalInput: `vn-item-botanical vn-horizontal:nth-child(1) > ${components.vnTextfield}`,
        genusAutocomplete: 'vn-item-botanical vn-autocomplete[field="$ctrl.botanical.genusFk"]',
        speciesAutocomplete: 'vn-item-botanical vn-autocomplete[field="$ctrl.botanical.specieFk"]',
        submitBotanicalButton: `vn-item-botanical ${components.vnSubmit}`
    },
    itemSummary: {
        basicData: 'vn-item-summary [name="basicData"]',
        vat: 'vn-item-summary [name="tax"]',
        tags: 'vn-item-summary [name="tags"]',
        niche: 'vn-item-summary [name="niche"]',
        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',
        firstBalance: 'vn-item-diary vn-tbody > vn-tr:nth-child(1) > vn-td.balance',
        fourthBalance: 'vn-item-diary vn-tbody > vn-tr:nth-child(4) > vn-td.balance',
        warehouseAutocomplete: 'vn-item-diary vn-autocomplete[field="$ctrl.warehouseFk"]',
    },
    itemLog: {
        anyLineCreated: 'vn-item-log > vn-log vn-tbody > vn-tr',
        fifthLineCreatedProperty: 'vn-item-log > vn-log vn-tbody > vn-tr:nth-child(5) > vn-td > vn-one:nth-child(3) > div span:nth-child(3)',
    },
    ticketSummary: {
        header: 'vn-ticket-summary > vn-card > div > h5',
        state: 'vn-ticket-summary vn-label-value[label="State"] > section > span',
        route: 'vn-ticket-summary vn-label-value[label="Route"] > section > 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 > div > vn-tbody > vn-tr > vn-td:nth-child(2) > span',
        firstSaleDescriptorImage: 'vn-ticket-summary vn-item-descriptor-popover > vn-popover vn-item-descriptor img',
        itemDescriptorPopover: 'vn-ticket-summary vn-item-descriptor-popover > vn-popover',
        itemDescriptorPopoverItemDiaryButton: 'vn-ticket-summary > vn-item-descriptor-popover a[href="#!/item/2/diary?warehouseFk=5&ticketFk=20"]',
        popoverDiaryButton: 'vn-ticket-summary vn-item-descriptor-popover 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(3)',
        firstSaleDiscount: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(6)',
        invoiceOutRef: 'vn-ticket-summary > vn-card > div > vn-horizontal > vn-one:nth-child(1) > vn-label-value:nth-child(6) > section > span',
        setOk: 'vn-ticket-summary vn-button[label="SET OK"] > button'
    },
    ticketsIndex: {
        openAdvancedSearchButton: 'vn-ticket-index vn-searchbar t-right-icons > vn-icon[icon="keyboard_arrow_down"]',
        advancedSearchInvoiceOut: 'vn-ticket-index vn-searchbar vn-ticket-search-panel vn-textfield[model="filter.refFk"] input',
        newTicketButton: 'vn-ticket-index > a',
        searchResult: 'vn-ticket-index vn-card > div > vn-table > div > vn-tbody > a.vn-tr',
        searchResultDate: 'vn-ticket-index vn-table vn-tbody > a:nth-child(1) > vn-td:nth-child(5)',
        searchTicketInput: `vn-ticket-index ${components.vnTextfield}`,
        advancedSearchButton: 'vn-ticket-index vn-searchbar > vn-popover vn-ticket-search-panel vn-submit[label="Search"] input',
        searchButton: 'vn-ticket-index vn-searchbar vn-icon[icon="search"]',
        moreMenu: 'vn-ticket-index vn-icon-menu[vn-id="more-button"] > div > vn-icon',
        moreMenuWeeklyTickets: 'vn-ticket-index vn-icon-menu vn-drop-down > vn-popover li:nth-child(2)',
        sixthWeeklyTicket: 'vn-ticket-weekly-index vn-table vn-tr:nth-child(6) vn-autocomplete[field="weekly.weekDay"] input',
        weeklyTicket: 'vn-ticket-weekly-index vn-table > div > vn-tbody > vn-tr',
        sixthWeeklyTicketDeleteIcon: 'vn-ticket-weekly-index vn-tr:nth-child(6) vn-icon-button[icon="delete"]',
        acceptDeleteTurn: 'vn-ticket-weekly-index > vn-confirm[vn-id="deleteWeekly"] button[response="ACCEPT"]'
    },
    createTicketView: {
        clientAutocomplete: 'vn-ticket-create vn-autocomplete[field="$ctrl.clientFk"]',
        addressAutocomplete: 'vn-ticket-create vn-autocomplete[field="$ctrl.addressFk"]',
        deliveryDateInput: 'vn-ticket-create > div > div > vn-card > div > vn-ticket-create-card > vn-date-picker > div > input',
        warehouseAutocomplete: 'vn-ticket-create vn-autocomplete[field="$ctrl.warehouseFk"]',
        agencyAutocomplete: 'vn-ticket-create vn-autocomplete[field="$ctrl.ticket.agencyModeFk"]',
        createButton: `${components.vnSubmit}`
    },
    ticketDescriptor: {
        idLabelValue: 'vn-ticket-descriptor vn-label-value[label="Id"]',
        stateLabelValue: 'vn-ticket-descriptor vn-label-value[label="State"]',
        goBackToModuleIndexButton: 'vn-ticket-descriptor a[ui-sref="ticket.index"]',
        moreMenu: 'vn-ticket-descriptor vn-icon-menu > div > vn-icon',
        moreMenuAddStowaway: 'vn-ticket-descriptor vn-drop-down > vn-popover ul > li[name="Add stowaway"]',
        moreMenuDeleteStowawayButton: 'vn-ticket-descriptor vn-drop-down > vn-popover ul > li[name="Remove stowaway"]',
        moreMenuAddToTurn: 'vn-ticket-descriptor vn-drop-down > vn-popover ul > li[name="Add turn"]',
        moreMenuDeleteTicket: 'vn-ticket-descriptor vn-drop-down > vn-popover ul > li[name="Delete ticket"]',
        moreMenuMakeInvoice: 'vn-ticket-descriptor vn-drop-down > vn-popover ul > li[name="Make invoice"]',
        addStowawayDialogFirstTicket: 'vn-ticket-descriptor > vn-add-stowaway > vn-dialog vn-table vn-tbody vn-tr',
        shipButton: 'vn-ticket-descriptor > div > div.body > div.quicklinks vn-icon[icon="icon-stowaway"]',
        thursdayButton: 'vn-ticket-descriptor > vn-dialog > div > form > div.body > tpl-body > div > vn-tool-bar > vn-button:nth-child(4)',
        saturdayButton: 'vn-ticket-descriptor > vn-dialog > div > form > div.body > tpl-body > div > vn-tool-bar > vn-button:nth-child(6)',
        closeStowawayDialog: 'vn-ticket-descriptor > vn-add-stowaway > vn-dialog > div > button[class="close"]',
        acceptDeleteButton: 'vn-ticket-descriptor button[response="ACCEPT"]',
        acceptInvoiceOutButton: 'vn-ticket-descriptor vn-confirm[vn-id="makeInvoiceConfirmation"] button[response="ACCEPT"]',
        acceptDeleteStowawayButton: 'vn-ticket-descriptor > vn-remove-stowaway button[response="ACCEPT"]'
    },
    ticketNotes: {
        firstNoteRemoveButton: 'vn-icon[icon="delete"]',
        addNoteButton: 'vn-icon[icon="add_circle"]',
        firstNoteTypeAutocomplete: 'vn-autocomplete[field="observation.observationTypeFk"]',
        firstDescriptionInput: 'vn-textfield[label="Description"] input',
        submitNotesButton: `${components.vnSubmit}`
    },
    ticketExpedition: {
        expeditionButton: 'vn-left-menu a[ui-sref="ticket.card.expedition"]',
        secondExpeditionRemoveButton: 'vn-ticket-expedition vn-table div > vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(1) > vn-icon-button[icon="delete"]',
        acceptDeleteRowButton: 'vn-ticket-expedition > vn-confirm[vn-id="delete-expedition"] button[response=ACCEPT]',
        expeditionRow: 'vn-ticket-expedition vn-table vn-tbody > vn-tr'
    },
    ticketPackages: {
        packagesButton: 'vn-left-menu a[ui-sref="ticket.card.package"]',
        firstPackageAutocomplete: 'vn-autocomplete[label="Package"]',
        firstQuantityInput: 'vn-input-number[label="Quantity"] input',
        firstRemovePackageButton: 'vn-icon-button[vn-tooltip="Remove package"]',
        addPackageButton: 'vn-icon-button[vn-tooltip="Add package"]',
        clearPackageAutocompleteButton: 'vn-autocomplete[label="Package"] > div > div > div > vn-icon > i',
        savePackagesButton: `${components.vnSubmit}`
    },
    ticketSales: {
        saleButton: 'vn-left-menu a[ui-sref="ticket.card.sale"]',
        saleLine: 'vn-table div > vn-tbody > vn-tr',
        saleDescriptorPopover: 'vn-ticket-sale vn-item-descriptor-popover > vn-popover',
        saleDescriptorPopoverSummaryButton: 'vn-item-descriptor-popover a[ui-sref="item.card.summary({id: $ctrl.item.id})"]',
        descriptorItemDiaryButton: 'vn-item-descriptor .quicklinks.ng-scope > vn-horizontal > a > vn-icon > i',
        newItemButton: 'vn-float-button[icon="add"]',
        moreMenu: 'vn-ticket-sale vn-tool-bar > vn-button-menu[vn-id="more-button"] > div > button',
        moreMenuCreateClaim: 'vn-ticket-sale vn-tool-bar > vn-button-menu[vn-id="more-button"] vn-drop-down > vn-popover ul > li[name="Add claim"]',
        moreMenuReserve: 'vn-ticket-sale vn-tool-bar > vn-button-menu[vn-id="more-button"] vn-drop-down > vn-popover ul > li[name="Mark as reserved"]',
        moreMenuUnmarkReseved: 'vn-ticket-sale vn-tool-bar > vn-button-menu[vn-id="more-button"] vn-drop-down > vn-popover ul > li[name="Unmark as reserved"]',
        moreMenuUpdateDiscount: 'vn-ticket-sale vn-tool-bar > vn-button-menu[vn-id="more-button"] vn-drop-down > vn-popover ul > li[name="Update discount"]',
        moreMenuUpdateDiscountInput: 'vn-ticket-sale vn-dialog form vn-ticket-sale-edit-discount vn-input-number[model="$ctrl.newDiscount"] input',
        firstSaleClaimIcon: 'vn-ticket-sale vn-table vn-tbody > vn-tr:nth-child(1) vn-icon[icon="icon-claims"]',
        firstSaleDescriptorImage: 'vn-ticket-sale vn-item-descriptor-popover > vn-popover vn-item-descriptor img',
        firstSaleText: 'vn-table div > vn-tbody > vn-tr:nth-child(1)',
        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-input-number[model="sale.quantity"]:nth-child(1) input',
        firstSaleQuantityCell: 'vn-ticket-sale vn-tr:nth-child(1) > vn-td-editable:nth-child(5)',
        firstSaleQuantityClearInput: 'vn-textfield[model="sale.quantity"] div.suffix > i',
        firstSaleID: 'vn-ticket-sale:nth-child(1) vn-td-editable:nth-child(4) text > span',
        firstSalePrice: 'vn-ticket-sale:nth-child(1) vn-tr:nth-child(1) > vn-td:nth-child(7)',
        firstSalePriceInput: 'vn-ticket-sale:nth-child(1) vn-popover.edit.dialog-summary.ng-isolate-scope.vn-popover.shown vn-input-number input',
        firstSaleDiscount: 'vn-ticket-sale:nth-child(1) vn-td:nth-child(8)',
        firstSaleDiscountInput: 'vn-ticket-sale:nth-child(1) vn-ticket-sale-edit-discount vn-input-number input',
        firstSaleImport: 'vn-ticket-sale:nth-child(1) vn-td:nth-child(9)',
        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-td-editable:nth-child(6) section:nth-child(1)',
        firstSaleLength: 'vn-ticket-sale vn-tr:nth-child(1) vn-td-editable:nth-child(6) section:nth-child(3)',
        firstSaleCheckbox: 'vn-ticket-sale vn-tr:nth-child(1) vn-check[field="sale.checked"] md-checkbox',
        secondSaleColour: 'vn-ticket-sale vn-tr:nth-child(2) vn-td:nth-child(6) section:nth-child(5)',
        secondSalePrice: 'vn-ticket-sale vn-tr:nth-child(2) vn-td:nth-child(7) > span',
        secondSaleDiscount: 'vn-ticket-sale vn-tr:nth-child(2) vn-td:nth-child(8)',
        secondSaleImport: 'vn-ticket-sale vn-tr:nth-child(2) vn-td:nth-child(9)',
        secondSaleText: 'vn-table div > vn-tbody > vn-tr:nth-child(2)',
        totalImport: 'vn-ticket-sale > vn-vertical > vn-card > div > vn-vertical > vn-horizontal > vn-one > p:nth-child(3) > strong',
        selectAllSalesCheckbox: 'vn-ticket-sale vn-thead vn-check md-checkbox',
        secondSaleCheckbox: 'vn-ticket-sale vn-tr:nth-child(2) vn-check[field="sale.checked"] md-checkbox',
        thirdSaleCheckbox: 'vn-ticket-sale vn-tr:nth-child(3) vn-check[field="sale.checked"] md-checkbox',
        deleteSaleButton: 'vn-ticket-sale vn-tool-bar > vn-button[icon="delete"]',
        transferSaleButton: 'vn-ticket-sale vn-tool-bar > vn-button[icon="call_split"]',
        moveToTicketInput: 'vn-ticket-sale vn-popover.transfer vn-textfield[model="$ctrl.receiverTicketId"] input',
        moveToTicketInputClearButton: 'vn-popover.shown i[title="Clear"]',
        moveToTicketButton: 'vn-ticket-sale vn-popover.transfer vn-icon[icon="arrow_forward_ios"]',
        moveToNewTicketButton: 'vn-ticket-sale vn-popover.transfer vn-button[label="New ticket"]',
        acceptDeleteLineButton: 'vn-ticket-sale > vn-confirm[vn-id="delete-lines"] button[response=ACCEPT]',
        acceptDeleteTicketButton: 'vn-ticket-sale > vn-confirm[vn-id="delete-ticket"] button[response=ACCEPT]',
        stateMenuButton: 'vn-ticket-sale vn-tool-bar > vn-button-menu[label="State"]'
    },
    ticketTracking: {
        trackingButton: 'vn-left-menu a[ui-sref="ticket.card.tracking.index"]',
        createStateButton: `${components.vnFloatButton}`,
        stateAutocomplete: 'vn-ticket-tracking-edit vn-autocomplete[field="$ctrl.stateFk"]',
        saveButton: `${components.vnSubmit}`,
        cancelButton: 'vn-ticket-tracking-edit vn-button[ui-sref="ticket.card.tracking.index"]'
    },
    ticketBasicData: {
        basicDataButton: 'vn-left-menu a[ui-sref="ticket.card.basicData.stepOne"]',
        clientAutocomplete: 'vn-autocomplete[field="$ctrl.clientFk"]',
        addressAutocomplete: 'vn-autocomplete[field="$ctrl.ticket.addressFk"]',
        agencyAutocomplete: 'vn-autocomplete[field="$ctrl.agencyModeId"]',
        zoneAutocomplete: 'vn-autocomplete[field="$ctrl.zoneId"]',
        nextStepButton: 'vn-step-control > section > section.buttons > section:nth-child(2) > vn-button',
        finalizeButton: 'vn-step-control > section > section.buttons > section:nth-child(2) > vn-submit',
        stepTwoTotalPriceDif: 'vn-ticket-basic-data-step-two > form > vn-card > div > vn-horizontal > table > tfoot > tr > td:nth-child(4)',
        chargesReasonAutocomplete: 'vn-autocomplete[field="$ctrl.ticket.option"]',
    },
    ticketComponents: {
        base: 'vn-ticket-components tfoot > tr:nth-child(1) > td',
        margin: 'vn-ticket-components tfoot > tr:nth-child(2) > td',
        total: 'vn-ticket-components tfoot > tr:nth-child(3) > td'
    },
    ticketRequests: {
        addRequestButton: 'vn-ticket-request-index > a > vn-float-button > button',
        request: 'vn-ticket-request-index > form > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr',
        descriptionInput: 'vn-ticket-request-create > form > div > vn-card > div > vn-horizontal:nth-child(1) > vn-textfield > div > div > div.infix > input',
        atenderAutocomplete: 'vn-ticket-request-create vn-autocomplete[field="$ctrl.ticketRequest.atenderFk"]',
        quantityInput: 'vn-ticket-request-create > form > div > vn-card > div > vn-horizontal:nth-child(2) > vn-input-number:nth-child(1) > div > div > div.infix > input',
        priceInput: 'vn-ticket-request-create > form > div > vn-card > div > vn-horizontal:nth-child(2) > vn-input-number:nth-child(2) > div > div > div.infix > input',
        firstRemoveRequestButton: 'vn-ticket-request-index vn-icon[icon="delete"]:nth-child(1)',
        saveButton: 'vn-ticket-request-create > form > div > vn-button-bar > vn-submit[label="Create"] input',
        firstDescription: 'vn-ticket-request-index > form > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(2)',

    },
    ticketLog: {
        logButton: 'vn-left-menu a[ui-sref="ticket.card.log"]',
        changedBy: 'vn-ticket-log > vn-log > vn-vertical > vn-card > div > vn-vertical > vn-table > div > vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(2) > span',
        actionTaken: 'vn-ticket-log > vn-log > vn-vertical > vn-card > div > vn-vertical > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(1) > div > div:nth-child(3) > span.value.ng-scope.ng-binding',
        id: 'vn-ticket-log > vn-log > vn-vertical > vn-card > div > vn-vertical > vn-table > div > vn-tbody > vn-tr > vn-td.before > vn-one:nth-child(1) > div > span.value.ng-scope.ng-binding'
    },
    ticketService: {
        addServiceButton: 'vn-ticket-service vn-icon-button[vn-tooltip="Add service"] > button',
        firstAddDescriptionButton: 'vn-ticket-service vn-icon-button[vn-tooltip="New service type"] > button',
        firstDescriptionAutocomplete: 'vn-ticket-service vn-autocomplete[field="service.description"]',
        firstQuantityInput: 'vn-ticket-service vn-input-number[label="Quantity"] input',
        firstPriceInput: 'vn-ticket-service vn-input-number[label="Price"] input',
        firstVatTypeAutocomplete: 'vn-ticket-service vn-autocomplete[label="Tax class"]',
        fistDeleteServiceButton: 'vn-ticket-card > vn-main-block > div.content-block.ng-scope > vn-ticket-service > form > vn-card > div > vn-one:nth-child(1) > vn-horizontal:nth-child(1) > vn-auto > vn-icon-button[icon="delete"]',
        newDescriptionInput: 'vn-ticket-service > vn-dialog vn-textfield[model="$ctrl.newServiceType.name"] input',
        serviceLine: 'vn-ticket-service > form > vn-card > div > vn-one:nth-child(2) > vn-horizontal',
        saveServiceButton: `${components.vnSubmit}`,
        saveDescriptionButton: 'vn-ticket-service > vn-dialog[vn-id="createServiceTypeDialog"] > div > form > div.buttons > tpl-buttons > button'
    },
    createStateView: {
        stateAutocomplete: 'vn-autocomplete[field="$ctrl.stateFk"]',
        workerAutocomplete: 'vn-autocomplete[field="$ctrl.workerFk"]',
        clearStateInputButton: 'vn-autocomplete[field="$ctrl.stateFk"] > div > div > div > vn-icon > i',
        saveStateButton: `${components.vnSubmit}`
    },
    claimsIndex: {
        searchClaimInput: `vn-claim-index ${components.vnTextfield}`,
        searchResult: 'vn-claim-index vn-card > div > vn-table > div > vn-tbody > a',
        searchButton: 'vn-claim-index vn-searchbar vn-icon[icon="search"]'
    },
    claimDescriptor: {
        moreMenu: 'vn-claim-descriptor vn-icon-menu[vn-id="more-button"]',
        moreMenuDeleteClaim: 'vn-claim-descriptor vn-icon-menu vn-drop-down li[name="Delete claim"]',
        acceptDeleteClaim: 'vn-claim-descriptor > vn-confirm[vn-id="confirm-delete-claim"] button[response="ACCEPT"]'
    },
    claimSummary: {
        header: 'vn-claim-summary > vn-card > div > h5',
        state: 'vn-claim-summary vn-label-value[label="State"] > section > span',
        observation: 'vn-claim-summary vn-textarea[model="$ctrl.summary.claim.observation"] > div > textarea',
        firstSaleItemId: 'vn-claim-summary vn-horizontal > vn-auto:nth-child(4) > vn-table > div > vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(1) > span',
        firstSaleDescriptorImage: 'vn-claim-summary vn-item-descriptor-popover > vn-popover vn-item-descriptor img',
        itemDescriptorPopover: 'vn-claim-summary vn-item-descriptor-popover > vn-popover',
        itemDescriptorPopoverItemDiaryButton: 'vn-claim-summary > vn-item-descriptor-popover a[href="#!/item/2/diary"]',
        firstDevelopmentWorker: 'vn-claim-summary vn-horizontal > vn-auto:nth-child(5) > vn-table > div > vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(4) > span',
        firstDevelopmentWorkerGoToClientButton: 'vn-claim-summary > vn-worker-descriptor-popover > vn-popover vn-worker-descriptor div.quicklinks > a[href="#!/client/21/summary"]',
        firstActionTicketId: 'vn-claim-summary > vn-card > div > vn-horizontal > vn-auto:nth-child(6) > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(2) > span',
        firstActionTicketDescriptor: 'vn-claim-summary > vn-ticket-descriptor-popover > vn-popover > div > div.content > vn-ticket-descriptor'
    },
    claimBasicData: {
        claimStateAutocomplete: 'vn-claim-basic-data vn-autocomplete[field="$ctrl.claim.claimStateFk"]',
        responsabilityInputRange: 'vn-input-range',
        observationInput: 'vn-textarea[field="$ctrl.claim.observation"] textarea',
        saveButton: `${components.vnSubmit}`
    },
    claimDetail: {
        secondItemDiscount: 'vn-claim-detail > vn-vertical > vn-card > div > vn-vertical > vn-table > div > vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(7) > span',
        discountInput: 'vn-claim-detail vn-popover vn-input-number[model="$ctrl.newDiscount"] > div > div > div.infix > input',
        discoutPopoverMana: 'vn-claim-detail > vn-popover > div > div.content > div > vn-horizontal > h5',
        addItemButton: 'vn-claim-detail a vn-float-button',
        firstClaimableSaleFromTicket: 'vn-claim-detail > vn-dialog vn-tbody > vn-tr',
        claimDetailLine: 'vn-claim-detail > vn-vertical > vn-card > div > vn-vertical > vn-table > div > vn-tbody > vn-tr',
        firstItemQuantityInput: 'vn-claim-detail vn-tr:nth-child(1) vn-input-number[model="saleClaimed.quantity"] input',
        totalClaimed: 'vn-claim-detail > vn-vertical > vn-card > div > vn-vertical > vn-horizontal > div > vn-label-value:nth-child(2) > section > span',
        secondItemDeleteButton: 'vn-claim-detail > vn-vertical > vn-card > div > vn-vertical > vn-table > div > vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(9) > vn-icon-button > button > vn-icon > i'
    },
    claimDevelopment: {
        addDevelopmentButton: 'vn-claim-development > vn-vertical > vn-card > div > vn-vertical > vn-one > vn-icon-button > button > vn-icon',
        firstDeleteDevelopmentButton: 'vn-claim-development > vn-vertical > vn-card > div > vn-vertical > form > vn-horizontal:nth-child(2) > vn-icon-button > button > vn-icon',
        firstClaimReasonAutocomplete: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[field="claimDevelopment.claimReasonFk"]',
        firstClaimResultAutocomplete: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[field="claimDevelopment.claimResultFk"]',
        firstClaimResponsibleAutocomplete: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[field="claimDevelopment.claimResponsibleFk"]',
        firstClaimWorkerAutocomplete: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[field="claimDevelopment.workerFk"]',
        firstClaimRedeliveryAutocomplete: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[field="claimDevelopment.claimRedeliveryFk"]',
        secondClaimReasonAutocomplete: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[field="claimDevelopment.claimReasonFk"]',
        secondClaimResultAutocomplete: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[field="claimDevelopment.claimResultFk"]',
        secondClaimResponsibleAutocomplete: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[field="claimDevelopment.claimResponsibleFk"]',
        secondClaimWorkerAutocomplete: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[field="claimDevelopment.workerFk"]',
        secondClaimRedeliveryAutocomplete: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[field="claimDevelopment.claimRedeliveryFk"]',
        saveDevelopmentButton: `${components.vnSubmit}`
    },
    claimAction: {
        importClaimButton: 'vn-claim-action vn-button[label="Import claim"]',
        importTicketButton: 'vn-claim-action vn-button[label="Import ticket"]',
        secondImportableTicket: 'vn-claim-action > vn-vertical > vn-popover > div > div.content > div > vn-table > div > vn-tbody > vn-tr:nth-child(2)',
        firstLineDestination: 'vn-claim-action vn-tr:nth-child(1) vn-autocomplete[field="saleClaimed.claimDestinationFk"]',
        secondLineDestination: 'vn-claim-action vn-tr:nth-child(2) vn-autocomplete[field="saleClaimed.claimDestinationFk"]',
        firstDeleteLine: 'vn-claim-action vn-tr:nth-child(1) vn-icon-button[icon="delete"]',
        isPaidWithManaCheckbox: 'vn-check[field="$ctrl.claim.isChargedToMana"] md-checkbox'
    },
    ordersIndex: {
        searchResult: 'vn-order-index vn-card > div > vn-table > div > vn-tbody > a.vn-tr',
        searchResultDate: 'vn-order-index vn-table vn-tbody > a:nth-child(1) > vn-td:nth-child(4)',
        searchResultAddress: 'vn-order-index vn-table vn-tbody > a:nth-child(1) > vn-td:nth-child(6)',
        searchOrderInput: `vn-order-index ${components.vnTextfield}`,
        searchButton: 'vn-order-index vn-searchbar vn-icon[icon="search"]',
        createOrderButton: `${components.vnFloatButton}`,
    },
    createOrderView: {
        clientAutocomplete: 'vn-autocomplete[label="Client"]',
        addressAutocomplete: 'vn-autocomplete[label="Address"]',
        agencyAutocomplete: 'vn-autocomplete[label="Agency"]',
        landedDatePicker: 'vn-date-picker[label="Landed"] input',
        createButton: `${components.vnSubmit}`,
        cancelButton: 'vn-button[href="#!/client/index"]'
    },
    orderCatalog: {
        orderByAutocomplete: 'vn-autocomplete[label="Order by"]',
        plantRealmButton: 'vn-order-catalog > vn-side-menu vn-icon[icon="icon-plant"]',
        typeAutocomplete: 'vn-autocomplete[data="$ctrl.itemTypes"]',
        itemIdInput: 'vn-order-catalog > vn-side-menu vn-catalog-filter vn-textfield[model="$ctrl.itemFk"] input',
        itemTagValueInput: 'vn-order-catalog > vn-side-menu vn-catalog-filter vn-textfield[model="$ctrl.value"] input',
        openTagSearch: 'vn-order-catalog > vn-side-menu > div > vn-catalog-filter > div > vn-vertical > vn-textfield[model="$ctrl.value"] > div > div > div.rightIcons > t-right-icons > i',
        tagAutocomplete: 'vn-order-catalog > vn-side-menu vn-catalog-filter vn-popover vn-order-catalog-search-panel vn-autocomplete[field="filter.tagFk"]',
        tagValueInput: 'vn-order-catalog > vn-side-menu vn-catalog-filter vn-popover vn-order-catalog-search-panel vn-textfield[model="filter.value"] input',
        searchTagButton: 'vn-order-catalog > vn-side-menu vn-catalog-filter vn-popover vn-order-catalog-search-panel > div > form > vn-horizontal:nth-child(3) > vn-submit > input',
        thirdFilterRemoveButton: 'vn-order-catalog > vn-side-menu vn-catalog-filter > div > vn-horizontal.chips > vn-chip:nth-child(3) button',
        fourthFilterRemoveButton: 'vn-order-catalog > vn-side-menu vn-catalog-filter > div > vn-horizontal.chips > vn-chip:nth-child(4) button',
    },
    orderBasicData: {
        clientAutocomplete: 'vn-autocomplete[label="Client"]',
        addressAutocomplete: 'vn-autocomplete[label="Address"]',
        agencyAutocomplete: 'vn-autocomplete[label="Agency"]',
        observationInput: 'vn-textarea[label="Observation"] textarea',
        saveButton: `${components.vnSubmit}`
    },
    orderLine: {
        orderSubtotal: 'vn-order-line vn-horizontal.header p:nth-child(1)',
        firstLineDeleteButton: 'vn-order-line vn-tbody > vn-tr:nth-child(1) vn-icon[icon="delete"]',
        confirmOrder: 'vn-order-line > vn-vertical > vn-button-bar > vn-button > button',
        confirmButton: 'vn-order-line > vn-confirm button[response="ACCEPT"]',
    },
    routeIndex: {
        addNewRouteButton: 'vn-route-index > a[ui-sref="route.create"]'
    },
    createRouteView: {
        workerAutocomplete: 'vn-route-create vn-autocomplete[field="$ctrl.route.workerFk"]',
        createdDatePicker: 'vn-route-create vn-date-picker[model="$ctrl.route.created"] > div > input',
        vehicleAutoComplete: 'vn-route-create vn-autocomplete[field="$ctrl.route.vehicleFk"]',
        agencyAutoComplete: 'vn-route-create vn-autocomplete[field="$ctrl.route.agencyModeFk"]',
        descriptionInput: 'vn-route-create vn-textfield[field="$ctrl.route.description"] input',
        submitButton: 'vn-route-create vn-submit > input[type="submit"]'
    },
    routeDescriptor: {
        volume: 'vn-route-descriptor vn-label-value[label="Volume"] > section > span'
    },
    routeSummary: {
        routeId: 'vn-route-summary > vn-card > div > vn-horizontal > vn-one:nth-child(1) > vn-label-value:nth-child(1) > section > span'
    },
    routeBasicData: {
        workerAutoComplete: 'vn-route-basic-data vn-autocomplete[field="$ctrl.route.workerFk"]',
        vehicleAutoComplete: 'vn-route-basic-data vn-autocomplete[field="$ctrl.route.vehicleFk"]',
        agencyAutoComplete: 'vn-route-basic-data vn-autocomplete[field="$ctrl.route.agencyModeFk"]',
        kmStartInput: 'vn-route-basic-data vn-input-number[field="$ctrl.route.kmStart"] input',
        kmEndInput: 'vn-route-basic-data vn-input-number[model="$ctrl.route.kmEnd"] input',
        createdDateInput: 'vn-route-basic-data vn-date-picker[model="$ctrl.route.created"] > div > input',
        startedDateInput: 'vn-route-basic-data vn-date-picker[model="$ctrl.route.started"] > div > input',
        finishedDateInput: 'vn-route-basic-data vn-date-picker[model="$ctrl.route.finished"] > div > input',
        saveButton: 'vn-route-basic-data vn-submit[label="Save"] input'
    },
    routeTickets: {
        firstTicketPriority: 'vn-route-tickets vn-tr:nth-child(1) vn-textfield[model="ticket.priority"] input',
        secondTicketPriority: 'vn-route-tickets vn-tr:nth-child(2) vn-textfield[model="ticket.priority"] input',
        thirdTicketPriority: 'vn-route-tickets vn-tr:nth-child(3) vn-textfield[model="ticket.priority"] input',
        fourthTicketPriority: 'vn-route-tickets vn-tr:nth-child(4) vn-textfield[model="ticket.priority"] input',
        eleventhTicketPriority: 'vn-route-tickets vn-tr:nth-child(11) vn-textfield[model="ticket.priority"] input',
        firstTicketCheckbox: 'vn-route-tickets vn-tr:nth-child(1) vn-check md-checkbox',
        buscamanButton: 'vn-route-tickets vn-button[icon="icon-buscaman"]',
        firstTicketDeleteButton: 'vn-route-tickets vn-tr:nth-child(1) vn-icon[icon="delete"]',
        confirmButton: 'vn-route-tickets > vn-confirm button[response="ACCEPT"]'
    },
    workerPbx: {
        extensionInput: 'vn-worker-pbx vn-textfield[model="$ctrl.worker.sip.extension"] input',
        saveButton: 'vn-worker-pbx vn-submit[label="Save"] input'
    },
    workerTimeControl: {
        timeDialogInput: 'vn-worker-time-control > vn-dialog input',
        mondayAddTimeButton: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(2) > vn-td:nth-child(1) > vn-icon-button > button > vn-icon',
        tuesdayAddTimeButton: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(2) > vn-td:nth-child(2) > vn-icon-button > button > vn-icon',
        wednesdayAddTimeButton: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(2) > vn-td:nth-child(3) > vn-icon-button > button > vn-icon',
        thursdayAddTimeButton: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(2) > vn-td:nth-child(4) > vn-icon-button > button > vn-icon',
        fridayAddTimeButton: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(2) > vn-td:nth-child(5) > vn-icon-button > button > vn-icon',
        saturdayAddTimeButton: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(2) > vn-td:nth-child(6) > vn-icon-button > button > vn-icon',
        sundayAddTimeButton: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(2) > vn-td:nth-child(7) > vn-icon-button > button > vn-icon',
        confirmButton: 'vn-worker-time-control > vn-dialog > div > form > div.buttons > tpl-buttons > button',
        firstEntryOfMonday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(1) > section:nth-child(1) > span',
        firstEntryOfTuesday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(2) > section:nth-child(1) > span',
        firstEntryOfWednesday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(3) > section:nth-child(1) > span',
        firstEntryOfThursday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(4) > section:nth-child(1) > span',
        firstEntryOfFriday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(5) > section:nth-child(1) > span',
        firstEntryOfSaturday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(6) > section:nth-child(1) > span',
        firstEntryOfSunday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(7) > section:nth-child(1) > span',
        secondEntryOfMonday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(1) > section:nth-child(2) > span',
        secondEntryOfTuesday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(2) > section:nth-child(2) > span',
        secondEntryOfWednesday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(3) > section:nth-child(2) > span',
        secondEntryOfThursday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(4) > section:nth-child(2) > span',
        secondEntryOfFriday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(5) > section:nth-child(2) > span',
        secondEntryOfSaturday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(6) > section:nth-child(2) > span',
        secondEntryOfSunday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(7) > section:nth-child(2) > span',
        thirdEntryOfMonday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(1) > section:nth-child(3) > span',
        thirdEntryOfTuesday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(2) > section:nth-child(3) > span',
        thirdEntryOfWednesday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(3) > section:nth-child(3) > span',
        thirdEntryOfThursday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(4) > section:nth-child(3) > span',
        thirdEntryOfFriday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(5) > section:nth-child(3) > span',
        thirdEntryOfSaturday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(6) > section:nth-child(3) > span',
        thirdEntryOfSunday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(7) > section:nth-child(3) > span',
        fourthEntryOfMonday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(1) > section:nth-child(4) > span',
        fourthEntryOfTuesday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(2) > section:nth-child(4) > span',
        fourthEntryOfWednesday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(3) > section:nth-child(4) > span',
        fourthEntryOfThursday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(4) > section:nth-child(4) > span',
        fourthEntryOfFriday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(5) > section:nth-child(4) > span',
        fourthEntryOfSaturday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(6) > section:nth-child(4) > span',
        fourthEntryOfSunday: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(7) > section:nth-child(4) > span',
        mondayWorkedHours: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(1) > vn-td:nth-child(1)',
        tuesdayWorkedHours: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(1) > vn-td:nth-child(2)',
        wednesdayWorkedHours: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(1) > vn-td:nth-child(3)',
        thursdayWorkedHours: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(1) > vn-td:nth-child(4)',
        fridayWorkedHours: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(1) > vn-td:nth-child(5)',
        saturdayWorkedHours: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(1) > vn-td:nth-child(6)',
        sundayWorkedHours: 'vn-worker-time-control > div > vn-card > div > vn-horizontal > vn-table > div > vn-tfoot > vn-tr:nth-child(1) > vn-td:nth-child(7)',
        weekWorkedHours: 'vn-worker-time-control > div > vn-side-menu > div > vn-vertical > vn-vertical > vn-label-value > section > span',
        nextMonthButton: 'vn-worker-time-control > div > vn-side-menu > div > vn-calendar > div > vn-horizontal > vn-auto:nth-child(3) > vn-icon',
        navigateBackToIndex: 'vn-worker-descriptor vn-icon[icon="chevron_left"]'
    },
    invoiceOutIndex: {
        searchInvoiceOutInput: `vn-invoice-out-index ${components.vnTextfield}`,
        searchButton: 'vn-invoice-out-index vn-searchbar vn-icon[icon="search"]',
        searchResult: 'vn-invoice-out-index vn-card > div > vn-table > div > vn-tbody > a.vn-tr',
    },
    invoiceOutDescriptor: {
        moreMenu: 'vn-invoice-out-descriptor vn-icon-menu[vn-id="more-button"]',
        moreMenuDeleteInvoiceOut: 'vn-invoice-out-descriptor vn-popover li[name="Delete Invoice"]',
        moreMenuBookInvoiceOut: 'vn-invoice-out-descriptor vn-popover li[name="Book invoice"]',
        moreMenuShowInvoiceOutPdf: 'vn-invoice-out-descriptor vn-popover li[name="Show invoice PDF"]',
        acceptDeleteButton: 'vn-invoice-out-descriptor > vn-confirm[vn-id="deleteConfirmation"] button[response="ACCEPT"]',
        acceptBookingButton: 'vn-invoice-out-descriptor > vn-confirm[vn-id="bookConfirmation"] button[response="ACCEPT"]'
    },
    invoiceOutSummary: {
        bookedLabel: 'vn-invoice-out-summary > vn-card > div > vn-horizontal > vn-one > vn-label-value:nth-child(4) > section > span'
    }
};