[Test] Printer 4 + Mapea 5

by Francisco

HTML

<script src="http://mapea4-sigc.juntadeandalucia.es/js/mapea.ol.min.js"></script>
<link rel="stylesheet" href="http://mapea4-sigc.juntadeandalucia.es/assets/css/mapea.ol.min.css">
<script src="http://mapea4-sigc.juntadeandalucia.es/js/configuration.js"></script>
<link rel="stylesheet" href="http://mapea4-sigc.juntadeandalucia.es/plugins/printer/printer-2.0.0.min.css">
<script src="http://mapea4-sigc.juntadeandalucia.es/plugins/printer/printer-2.0.0.ol.min.js"></script>
<div id="map"></div>

CSS

html,
body,
#map {
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
}

JavaScript

// Puede configurarse otra instancia de Geoprint si se desea
// M.config.geoprint.URL="http://geoprint-sigc.juntadeandalucia.es/geoprint/pdf";

M.layer.WMS._updateNoCache = function(){
    const tiledIdx = M.config.tileMappgins.tiledNames.indexOf(this.name);
    if ((tiledIdx !== -1) && sameUrl(M.config.tileMappgins.tiledUrls[tiledIdx], this.url)) {
      this._noCacheUrl = M.config.tileMappgins.urls[tiledIdx];
      this._noCacheName = M.config.tileMappgins.names[tiledIdx];
    }
  } 


const extendsObj = (destParam = {}, src = {}) => {
  const dest = destParam;
  if (!M.utils.isNullOrEmpty(src)) {
    Object.keys(src).forEach((key) => {
      let value = src[key];
      if (M.utils.isArray(value)) {
        value = [...value];
      } else if (M.utils.isObject(value)) {
        value = extendsObj({}, value);
      }
      if (M.utils.isNullOrEmpty(dest[key])) {
        dest[key] = value;
      } else if (M.utils.isObject(dest[key])) {
        extendsObj(dest[key], value);
      }
    });
  }
  return dest;
};

if (!M.template.compileSync) { // JGL: retrocompatibilidad Mapea4
console.log('Definimos compileSync');
      M.template.compileSync = (string, options) => {
        let templateCompiled;
        let templateVars = {};
        let parseToHtml;
        if (!M.utils.isUndefined(options)) {
          templateVars = extendsObj(templateVars, options.vars);
          parseToHtml = options.parseToHtml;
        }
        const templateFn = Handlebars.compile(string);
        const htmlText = templateFn(templateVars);
        if (parseToHtml !== false) {
          templateCompiled = M.utils.stringToHtml(htmlText);
        } else {
          templateCompiled = htmlText;
        }
        return templateCompiled;
      };
    }

mapajs = M.map({
  container: "map"
});

// Creacion plugin
mapajs.addPlugin(new M.plugin.Printer({
  "params": {
    "pages": {
      "creditos": "Impresión generada a través de Mapea"
    },
    "layout": {
      "outputFilename":...