VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/html/libs/absol-full/dist/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-full/dist/js/mdls__absol-acomp__js__printer.js
/*** module: node_modules/absol-acomp/js/printer.js ***/
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.silentDownloadAsPdf = silentDownloadAsPdf;

var _printer = require("absol/src/Print/printer");

var _FileSaver = require("absol/src/Network/FileSaver");

var _ACore = _interopRequireWildcard(require("../ACore"));

var _Toast = _interopRequireDefault(require("./Toast"));

var _pdf = require("absol/src/Print/pdf");

var _ProgressBar = _interopRequireDefault(require("./ProgressBar"));




function silentDownloadAsPdf(adapter) {
  if (!adapter) throw new Error("Invalid print data");
  adapter.parallel = adapter.parallel || 8;
  adapter.delay = adapter.delay || 0;
  adapter.chuckLength = 100;
  adapter.fileName = adapter.fileName || 'exports.pdf';

  if (adapter.paddingEven !== false) {
    adapter.paddingEven = true;
  }

  if (!adapter.fileName.toLowerCase().endsWith('.pdf')) adapter.fileName += '.pdf';
  var hiddenDiv = (0, _ACore._)({
    style: {
      overflow: 'scroll',
      visibility: 'hidden',
      opacity: 0,
      pointerEvents: 'none',
      position: 'fixed',
      zIndex: -1000
    }
  }).addTo(document.body);
  var progressBar = (0, _ACore._)({
    tag: _ProgressBar.default,
    style: {
      margin: '5px'
    }
  });
  var message = (0, _ACore._)({
    tag: 'span',
    style: {
      margin: '5px'
    },
    child: {
      text: 'Render'
    }
  });
  /***
   *
   * @type {Toast}
   */

  var toast = _Toast.default.make({
    props: {
      htitle: "Export DPF"
    },
    child: [{
      tag: 'div',
      style: {
        margin: '5px'
      },
      child: {
        tag: 'strong',
        child: {
          text: adapter.fileName
        }
      }
    }, message, progressBar]
  });

  return new Promise(resolve => {
    var docs = adapter.docs.slice();
    var docsN = docs.length;
    var serializer = _printer.ShareSerializer;
    var chucks = [];
    var chuckRemain;
    var printer;

    var finish = () => {
      message.firstChild.data = "Create PDF";
      (0, _pdf.mergePdfs)(chucks, pData => {
        progressBar.value = 0.9 + (pData.loaded + pData.merged) / (pData.all || 1) / 10;
      }).then(mergedPdf => {
        mergedPdf.save().then(file => {
          (0, _FileSaver.saveAs)(new Blob([file]), adapter.fileName);
          progressBar.value = 1;
          message.firstChild.data = "Complete";
          setTimeout(() => {
            toast.disappear();
          }, 5000);
        });
      });
    };

    var nextChuck = () => {
      chuckRemain = Math.min(adapter.chuckLength, docs.length);
      printer = new _printer.PaperPrinter(Object.assign({
        lastPagePaddingEven: docs.length <= chuckRemain
      }, adapter));
      process();
    };

    var finishChuck = () => {
      chucks.push(printer.pdfDoc.output('arraybuffer'));

      if (docs.length > 0) {
        nextChuck();
      } else {
        finish();
      }
    };

    var process = () => {
      message.firstChild.data = 'Render (' + (docsN - docs.length) + '/' + docsN + ')';
      var pg0 = 0.9 * (1 - docs.length / (docsN || 1));
      progressBar.value = pg0;

      if (chuckRemain === 0) {
        finishChuck();
        return;
      }

      var cDocs = docs.splice(0, Math.min(adapter.parallel, chuckRemain));
      chuckRemain -= cDocs.length;
      var localSync = cDocs.map(doc => {
        var ctn = (0, _ACore._)({
          style: {
            width: '2048px'
          }
        }).addTo(hiddenDiv);
        var renderSync = doc.render(ctn, doc);

        if (renderSync && renderSync.then) {
          renderSync = renderSync.then(() => Object.assign({}, doc, {
            elt: ctn.firstChild
          }));
        } else {
          renderSync = Promise.resolve(Object.assign({}, doc, {
            elt: ctn.firstChild
          }));
        }

        return renderSync.then(doc => {
          var delaySync = [];
          delaySync.push(new Promise(resolve => {
            setTimeout(resolve, adapter.delay);
          }));
          var elt = doc.elt;

          if (elt.fmComponent) {
            if (!doc.opt) doc.opt = {};

            if (!doc.opt.margin) {
              doc.opt.margin = {
                top: elt.fmComponent.style.paddingTop || 57,
                left: elt.fmComponent.style.paddingLeft || 57,
                bottom: elt.fmComponent.style.paddingBottom || 57,
                right: elt.fmComponent.style.paddingRight || 57
              };
            }

            delaySync.push(elt.fmComponent.fragment.afterEntryCompleted());
          }

          return Promise.all(delaySync).then(() => doc);
        });
      });
      Promise.all(localSync).then(docList => {
        return serializer.serialize(docList, printer, pData => {
          if (!pData.pdf) return;
          var ng1 = pg0 + pData.pdf.done / (pData.pdf.all || 1) * cDocs.length / (docsN || 1) * 0.9;

          if (ng1 - progressBar.value > 0.05) {
            progressBar.value = ng1;
          }
        });
      }).then(() => printer.flush()).then(() => process());
    };

    nextChuck();
  });
}

VaKeR 2022