async domCreateCarouselSlideSummary()

in source/webapp/src/lib/js/videoPreview.js [538:604]


  async domCreateCarouselSlideSummary(card, active = '') {
    const items = [];
    let data;
    let keys;

    const svg = BasePreview.createSvgImage('Summary', {
      height: 800,
    });

    data = card.getVideoAnalysis();
    keys = Object.keys(data || {});
    while (keys.length) {
      const key = keys.shift();
      const elapsed = BasePreview.readableDuration(data[key].endTime - data[key].startTime);
      const url = VideoCard.signedUrl(SO0050.Proxy.Bucket, data[key].output);
      items.push(BasePreview.carouselLead(`${BasePreview.capitalize(key)} (Rekogntion)`));
      items.push('<dl class="row text-left">');
      items.push(`<dt class="col-sm-3">Elapsed</dt><dd class="col-sm-9">${elapsed}</dd>`);
      items.push(`<dt class="col-sm-3">Job Id</dt><dd class="col-sm-9">${data[key].id || '--'}</dd>`);
      items.push(`<dt class="col-sm-3">JSON File</dt><dd class="col-sm-9"><a href="${url}">download here</a></dd>`);
      items.push('</dl>');
    }

    data = card.getComprehendAnalysis();
    keys = Object.keys(data || {});
    while (keys.length) {
      const key = keys.shift();
      const elapsed = BasePreview.readableDuration(data[key].endTime - data[key].startTime);
      const url = VideoCard.signedUrl(SO0050.Proxy.Bucket, data[key].output);
      items.push(BasePreview.carouselLead(`${BasePreview.capitalize(key)} (Comprehend)`));
      items.push('<dl class="row text-left">');
      items.push(`<dt class="col-sm-3">Elapsed</dt><dd class="col-sm-9">${elapsed}</dd>`);
      items.push(`<dt class="col-sm-3">Job Id</dt><dd class="col-sm-9">${data[key].id || '--'}</dd>`);
      items.push(`<dt class="col-sm-3">JSON File</dt><dd class="col-sm-9"><a href="${url}">download here</a></dd>`);
      items.push('</dl>');
    }

    data = card.getTranscribeAnalysis();
    if ((data || {}).name) {
      const elapsed = BasePreview.readableDuration(data.endTime - data.startTime);
      const url = VideoCard.signedUrl(SO0050.Proxy.Bucket, data.output);
      items.push(BasePreview.carouselLead('Transcription (Transcribe)'));
      items.push('<dl class="row text-left">');
      items.push(`<dt class="col-sm-3">Elapsed</dt><dd class="col-sm-9">${elapsed}</dd>`);
      items.push(`<dt class="col-sm-3">Job Id</dt><dd class="col-sm-9">${data.name || '--'}</dd>`);
      items.push(`<dt class="col-sm-3">Text File</dt><dd class="col-sm-9"><a href="${url}">download here</a></dd>`);
      items.push('</dl>');
    }

    if (!items.length) {
      items.push('No data');
    }

    const element = `
    <div class="carousel-item ${active}" id="carousel-summary">
      <img class="d-block w-100" src="${svg}" alt="Summary">
      <div class="carousel-content d-none d-md-block">
        <div class="container">
          ${items.join('\n')}
        </div>
        <div class="mb-5"></div>
      </div>
    </div>
    `;

    return element;
  }