docs: function (videoId, canvaId, outputOptions) {
      let editorVideo;
      const domElement = document.getElementById(videoId);
  
      if (domElement !== null) {
          editorVideo = new Video(domElement);
      }
      const store = new Store();
  
      function getCanva() {
          return document.getElementById(canvaId);
      }
  
      outputOptions = outputOptions || {};
  
      function setAltCanvas() {
          let domElements = [];
          let altCanvas = outputOptions.altCanvas;
          if (altCanvas.length > 0) {
              for (let i = 0; i < altCanvas.length; i++) {
                  domElements.push({
                      el: new Canva(altCanvas[i]),
                      width: altCanvas[i].getAttribute('data-width'),
                      name: altCanvas[i].getAttribute('data-name')
                  });
              }
          }
          return domElements;
      }
  
      return {
          isSupported: function () {
              const elem = document.createElement('canvas');
  
              return !!document.getElementById(videoId) && document.getElementById(canvaId)
                  && !!elem.getContext && !!elem.getContext('2d');
          },
          screenshot: function () {
              const screenshot = new ScreenShot(
                  store.getLength() + 1,
                  new Canva(getCanva()),
                  editorVideo,
                  setAltCanvas()
              );
  
              store.set(screenshot.getId(), screenshot);
  
              return screenshot;
          },
          store: store,
          copy: function (mainSource, altSources) {
  
              const elementDomNode = document.createElement('img');
              elementDomNode.src = mainSource;
  
              const element = new Image(elementDomNode);
              const editorCanva = new Canva(getCanva());
              const altEditorCanva = setAltCanvas();
              editorCanva
                  .reset()
                  .resize(editorVideo)
                  .copy(element);
  
  
              // handle alternative canvas:
              if (altEditorCanva.length > 0) {
                  for (let i = 0; i < altEditorCanva.length; i++) {
  
                      let tmpEl = document.createElement('img');
                      tmpEl.src = altSources[i].dataURI;
  
                      const canvaEl = altEditorCanva[i].el;
  
                      canvaEl
                          .reset()
                          .resize(editorVideo, altEditorCanva[i].width)
                          .copy(new Image(tmpEl)); // @TODO: should copy the right stored image
                  }
              }
          },
          getCanvaImage: function () {
              const canva = new Canva(getCanva());
  
              return canva.extractImage();
          },
          resetCanva: function () {
              const editorCanva = new Canva(getCanva());
              editorCanva.reset();
          },
          getNbScreenshot: function () {
              return store.getLength();
          }
      };
  }