/** @see https://mozilla.github.io/pdf.js/getting_started/#download */
protected $signature = 'updatepdfjs';
- protected const VERSION = '3.4.120';
+ protected const VERSION = '5.4.54';
+ //protected const VERSION = '3.11.174';
+ protected const JQUERY_VERSION = '3.7.1';
public function handle()
{
protected function _update($legacy = false)
{
- $path = resource_path('pdfjs/' . ($legacy ? 'legacy' : 'dist'));
- $minpath = resource_path('pdfjs/' . ($legacy ? 'legacy-min' : 'dist-min'));
+ $path = Files::mkdir(resource_path('pdfjs/' . ($legacy ? 'legacy' : 'dist')));
+ $minpath = Files::mkdir(resource_path('pdfjs/' . ($legacy ? 'legacy-min' : 'dist-min')));
if (file_exists($path)) {
`rm -rf $path`;
$tmp = Files::tempnam() . '.zip';
copy('https://github.com/mozilla/pdf.js/releases/download/v' . static::VERSION . '/pdfjs-' . static::VERSION . ($legacy ? '-legacy' : '') . '-dist.zip', $tmp);
Zip::extract($tmp, $path);
+ unlink($path . 'web/debugger.mjs');
+ unlink($path . 'web/debugger.css');
+
+ Files::recursiveReplaceStringInFilename($path, ['.mjs' => '.js']);
+ Files::recursiveReplaceStringInDir($path, ['.mjs' => '.js']);
+
unlink($tmp);
copy('https://code.jquery.com/jquery-3.7.1.min.js', $path . '/web/jquery.min.js');
touch($path . '/web/custom.js');
$script = '<script type="text/javascript" charset="utf-8" src="' . $assetsPrefix . 'data/datas.js' . $jstime . '"></script>' . "\n";
foreach ($this->customJs as $c) {
- $script .= "\t" . '<script type="text/javascript" charset="utf-8" src="' . $c . $jstime . '"></script>' . "\n";
+ $script .= $this->_script($c, $jstime);
}
foreach ($this->jsLibs as $jsLib => $files) {
- $script .= "\t" . '<script type="text/javascript" charset="utf-8" src="' . $assetsPrefix . 'data/' . $jsLib . '.js' . $jstime . '"></script>' . "\n";
+ $script .= $this->_script($assetsPrefix . 'data/' . $jsLib . '.js', $jstime);
}
if ($this->fluidbookSettings->scorm_enable) {
- $script .= "\t" . '<script type="text/javascript" charset="utf-8" src="' . $assetsPrefix . 'data/scorm.js' . $jstime . '"></script>' . "\n";
+ $script .= $this->_script($assetsPrefix . 'data/scorm.js', $jstime);
}
if (count($this->specialJsFiles)) {
- $script .= "\t" . '<script type="text/javascript" charset="utf-8" src="' . $assetsPrefix . 'data/special.js' . $jstime . '"></script>' . "\n";
+ $script .= $this->_script($assetsPrefix . 'data/special.js', $jstime);
}
foreach ($this->pluginJs as $p) {
- $script .= "\t" . '<script type="text/javascript" charset="utf-8" src="' . $assetsPrefix . $p . $jstime . '"></script>' . "\n";
+ $script .= $this->_script($assetsPrefix . $p, $jstime);
}
$script .= $iscript;
return $this->_indexVars;
}
+ protected function _script($c, $jstime = '')
+ {
+ if (is_string($c)) {
+ $c = ['src' => $c, 'type' => 'text/javascript'];
+ }
+ return "\t" . '<script type="' . $c['type'] . '" charset="utf-8" src="' . $c['src'] . $jstime . '"></script>' . "\n";
+ }
+
protected function _mergeSVG()
{
$symbols = [];
public function addPDFJSPageRenderer()
{
$this->vdir->copyDirectory(resource_path('pdfjs/dist-min'), 'pdfjs');
- $this->customJs[] = 'pdfjs/build/pdf.js';
+ $this->customJs[] = ['src' => 'pdfjs/build/pdf.js', 'type' => 'module'];
}
public function addPDFJS($force = false)