private byRepeaterInner()

in lib/locators.ts [255:323]


  private byRepeaterInner(exact: boolean, repeatDescriptor: string): ProtractorLocator {
    let name = 'by.' + (exact ? 'exactR' : 'r') + 'epeater';
    return {
      findElementsOverride: async(
          driver: WebDriver, using: WebElement, rootSelector: string): Promise<WebElement[]> => {
        return driver.findElements(By.js(
            clientSideScripts.findAllRepeaterRows, repeatDescriptor, exact, using, rootSelector));
      },
      toString: (): string => {
        return name + '("' + repeatDescriptor + '")';
      },
      row: (index: number): ProtractorLocator => {
        return {
          findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
              Promise<WebElement[]> => {
                return await driver.findElements(By.js(
                    clientSideScripts.findRepeaterRows, repeatDescriptor, exact, index, using,
                    rootSelector));
              },
          toString: (): string => {
            return name + '(' + repeatDescriptor + '").row("' + index + '")"';
          },
          column: (binding: string): ProtractorLocator => {
            return {
              findElementsOverride:
                  async(driver: WebDriver, using: WebElement, rootSelector: string):
                      Promise<WebElement[]> => {
                        return driver.findElements(By.js(
                            clientSideScripts.findRepeaterElement, repeatDescriptor, exact, index,
                            binding, using, rootSelector));
                      },
              toString: (): string => {
                return name + '("' + repeatDescriptor + '").row("' + index + '").column("' +
                    binding + '")';
              }
            };
          }
        };
      },
      column: (binding: string): ProtractorLocator => {
        return {
          findElementsOverride: async(driver: WebDriver, using: WebElement, rootSelector: string):
              Promise<WebElement[]> => {
                return driver.findElements(By.js(
                    clientSideScripts.findRepeaterColumn, repeatDescriptor, exact, binding, using,
                    rootSelector));
              },
          toString: (): string => {
            return name + '("' + repeatDescriptor + '").column("' + binding + '")';
          },
          row: (index: number): ProtractorLocator => {
            return {
              findElementsOverride:
                  async(driver: WebDriver, using: WebElement, rootSelector: string):
                      Promise<WebElement[]> => {
                        return driver.findElements(By.js(
                            clientSideScripts.findRepeaterElement, repeatDescriptor, exact, index,
                            binding, using, rootSelector));
                      },
              toString: (): string => {
                return name + '("' + repeatDescriptor + '").column("' + binding + '").row("' +
                    index + '")';
              }
            };
          }
        };
      }
    };
  }