ngx-doc-viewer 2.0.1 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -102,7 +102,7 @@ For Google Drive
102
102
 
103
103
  ```html
104
104
  <ngx-doc-viewer
105
- [url]="https://drive.google.com/file/d/0B5ImRpiNhCfGZDVhMGEyYmUtZTdmMy00YWEyLWEyMTQtN2E2YzM3MDg3MTZh/preview"
105
+ [url]="'https://drive.google.com/file/d/0B5ImRpiNhCfGZDVhMGEyYmUtZTdmMy00YWEyLWEyMTQtN2E2YzM3MDg3MTZh/preview'"
106
106
  viewer="url"
107
107
  style="width:100%;height:50vh;"
108
108
  >
@@ -340,7 +340,7 @@
340
340
  iframe.src = iframe.src;
341
341
  }
342
342
  };
343
- var ɵ0 = reloadIFrame;
343
+ var ɵ0$1 = reloadIFrame;
344
344
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
345
345
  var handleFileUpload = function (fileInput) {
346
346
  return new Promise(function (resolve, reject) {
@@ -378,18 +378,18 @@
378
378
  };
379
379
  var getDocxToHtml = function (url) { return __awaiter(void 0, void 0, void 0, function () {
380
380
  var arrayBuffer, resultObject;
381
- return __generator(this, function (_b) {
382
- switch (_b.label) {
381
+ return __generator(this, function (_c) {
382
+ switch (_c.label) {
383
383
  case 0:
384
384
  if (!mammoth) {
385
385
  console.error('Please install mammoth and make sure mammoth.browser.min.js is loaded.');
386
386
  }
387
387
  return [4 /*yield*/, fileToArray(url)];
388
388
  case 1:
389
- arrayBuffer = _b.sent();
389
+ arrayBuffer = _c.sent();
390
390
  return [4 /*yield*/, mammoth.convertToHtml({ arrayBuffer: arrayBuffer })];
391
391
  case 2:
392
- resultObject = _b.sent();
392
+ resultObject = _c.sent();
393
393
  return [2 /*return*/, resultObject.value];
394
394
  }
395
395
  });
@@ -401,7 +401,7 @@
401
401
  subscribe: function (iframe, interval, maxChecks) {
402
402
  if (interval === void 0) { interval = 3000; }
403
403
  if (maxChecks === void 0) { maxChecks = 5; }
404
- if (!iframeLoaded(iframe)) {
404
+ if (!iframeIsLoaded(iframe)) {
405
405
  subscription = setInterval(function () {
406
406
  checkCount++;
407
407
  if (checkCount >= maxChecks) {
@@ -424,19 +424,20 @@
424
424
  },
425
425
  };
426
426
  };
427
- var iframeLoaded = function (iframe) {
427
+ var iframeIsLoaded = function (iframe) {
428
+ var _a;
428
429
  // its #document <html><head></head><body></body></html> when google is returning a 204
429
430
  // so if contentDocument = null then it's loaded.
430
431
  var isLoaded = false;
431
432
  try {
432
433
  if (!internetExplorer()) {
433
- isLoaded = !iframe.contentDocument;
434
+ isLoaded = !(iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument);
434
435
  }
435
436
  else {
436
- isLoaded = !iframe.contentWindow.document;
437
+ isLoaded = !((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document);
437
438
  }
438
439
  }
439
- catch (_a) {
440
+ catch (_b) {
440
441
  // ignore message Blocked a frame with origin "http://..." from accessing a cross-origin frame.
441
442
  }
442
443
  return isLoaded;
@@ -446,7 +447,7 @@
446
447
  var getViewerDetails = function (url, configuredViewer, queryParams, viewerUrl) {
447
448
  if (configuredViewer === void 0) { configuredViewer = 'google'; }
448
449
  if (queryParams === void 0) { queryParams = ''; }
449
- if (viewerUrl === void 0) { viewerUrl = null; }
450
+ if (viewerUrl === void 0) { viewerUrl = ''; }
450
451
  switch (configuredViewer) {
451
452
  case 'google':
452
453
  viewerUrl = "https://docs.google.com/gview?url=%URL%&embedded=true";
@@ -456,14 +457,14 @@
456
457
  break;
457
458
  }
458
459
  case 'pdf': {
459
- viewerUrl = null;
460
+ viewerUrl = '';
460
461
  break;
461
462
  }
462
463
  }
463
464
  var externalViewer = configuredViewer === 'google' ||
464
465
  configuredViewer === 'office' ||
465
466
  configuredViewer === 'url';
466
- var u = url.indexOf('/') ? encodeURIComponent(url) : url;
467
+ var u = (url === null || url === void 0 ? void 0 : url.indexOf('/')) ? encodeURIComponent(url) : url;
467
468
  var fullUrl = viewerUrl ? viewerUrl.replace('%URL%', u) : url;
468
469
  if (queryParams && externalViewer && configuredViewer !== 'url') {
469
470
  var start = queryParams.startsWith('&') ? '' : '&';
@@ -474,6 +475,14 @@
474
475
  externalViewer: externalViewer,
475
476
  };
476
477
  };
478
+ var replaceLocalUrl = function (url, overrideLocalhost) {
479
+ var loc = getLocation(url);
480
+ var locReplace = getLocation(overrideLocalhost);
481
+ if (loc && locReplace) {
482
+ return url.replace(loc.port ? loc.hostname + ":" + loc.port : loc.hostname, locReplace.port ? locReplace.hostname + ":" + locReplace.port : locReplace.hostname);
483
+ }
484
+ return url;
485
+ };
477
486
  var getBlobFromUrl = function (url) {
478
487
  return new Promise(function (resolve, reject) {
479
488
  var request = new XMLHttpRequest();
@@ -489,8 +498,9 @@
489
498
  var ɵ2 = getBlobFromUrl;
490
499
  var uploadToCloud = function (fileUrl, api) { return new Promise(function (resolve, reject) {
491
500
  getBlobFromUrl(fileUrl).then(function (blob) {
501
+ var _a, _b;
492
502
  var loc = getLocation(fileUrl);
493
- var name = loc.pathname.split('/')[loc.pathname.split('/').length - 1];
503
+ var name = (loc === null || loc === void 0 ? void 0 : loc.pathname) ? (_a = loc === null || loc === void 0 ? void 0 : loc.pathname) === null || _a === void 0 ? void 0 : _a.split('/')[((_b = loc === null || loc === void 0 ? void 0 : loc.pathname) === null || _b === void 0 ? void 0 : _b.split('/').length) - 1] : '';
494
504
  var formData = new FormData();
495
505
  var request = new XMLHttpRequest();
496
506
  formData.append('file', blob, name);
@@ -511,7 +521,7 @@
511
521
  }); };
512
522
  var isLocalFile = function (file) {
513
523
  var loc = getLocation(file);
514
- var hostname = loc.hostname;
524
+ var hostname = (loc === null || loc === void 0 ? void 0 : loc.hostname) || '';
515
525
  return ((['localhost', '127.0.0.1', '', '::1'].includes(hostname))
516
526
  || (hostname.startsWith('192.168.'))
517
527
  || (hostname.startsWith('10.0.'))
@@ -553,7 +563,7 @@
553
563
  };
554
564
  NgxDocViewerComponent.prototype.ngOnChanges = function (changes) {
555
565
  return __awaiter(this, void 0, void 0, function () {
556
- var viewerDetails, loc, locReplace, _c;
566
+ var viewerDetails, newUrl, _c;
557
567
  var _this = this;
558
568
  return __generator(this, function (_d) {
559
569
  switch (_d.label) {
@@ -579,10 +589,8 @@
579
589
  viewerDetails = getViewerDetails(this.url, this.configuredViewer, this.queryParams, this.viewerUrl);
580
590
  this.externalViewer = viewerDetails.externalViewer;
581
591
  if (viewerDetails.externalViewer && this.overrideLocalhost && isLocalFile(this.url)) {
582
- loc = getLocation(this.url);
583
- locReplace = getLocation(this.overrideLocalhost);
584
- this.url = this.url.replace(loc.port ? loc.hostname + ":" + loc.port : loc.hostname, locReplace.port ? locReplace.hostname + ":" + locReplace.port : locReplace.hostname);
585
- viewerDetails = getViewerDetails(this.url, this.configuredViewer, this.queryParams, this.viewerUrl);
592
+ newUrl = replaceLocalUrl(this.url, this.overrideLocalhost);
593
+ viewerDetails = getViewerDetails(newUrl, this.configuredViewer, this.queryParams, this.viewerUrl);
586
594
  }
587
595
  this.docHtml = '';
588
596
  if (this.checkIFrameSubscription) {
@@ -633,7 +641,7 @@
633
641
  NgxDocViewerComponent.prototype.iframeLoaded = function () {
634
642
  var _a, _b;
635
643
  var iframe = (_b = (_a = this.iframes) === null || _a === void 0 ? void 0 : _a.first) === null || _b === void 0 ? void 0 : _b.nativeElement;
636
- if (iframe && iframeLoaded(iframe)) {
644
+ if (iframe && iframeIsLoaded(iframe)) {
637
645
  this.loaded.emit(null);
638
646
  if (this.checkIFrameSubscription) {
639
647
  this.checkIFrameSubscription.unsubscribe();
@@ -681,10 +689,10 @@
681
689
  },] }
682
690
  ];
683
691
 
684
- var ɵ0$1 = function () { };
692
+ var ɵ0 = function () { };
685
693
  var defaultProps = {
686
694
  // eslint-disable-next-line @typescript-eslint/no-empty-function
687
- loaded: ɵ0$1,
695
+ loaded: ɵ0,
688
696
  disableContent: 'none',
689
697
  googleCheckContentLoaded: true,
690
698
  googleCheckInterval: 3000,
@@ -708,10 +716,10 @@
708
716
  exports.getbaseUrl = getbaseUrl;
709
717
  exports.googleCheckSubscription = googleCheckSubscription;
710
718
  exports.handleFileUpload = handleFileUpload;
711
- exports.iframeLoaded = iframeLoaded;
719
+ exports.iframeIsLoaded = iframeIsLoaded;
712
720
  exports.isLocalFile = isLocalFile;
721
+ exports.replaceLocalUrl = replaceLocalUrl;
713
722
  exports.uploadToCloud = uploadToCloud;
714
- exports.ɵ0 = ɵ0;
715
723
  exports.ɵ1 = ɵ1;
716
724
  exports.ɵ2 = ɵ2;
717
725
 
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-doc-viewer.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../libs/helper.ts","../../../../libs/ngx-doc-viewer/src/lib/document-viewer.component.ts","../../../../libs/ngx-doc-viewer/src/lib/document-viewer.module.ts","../../../../libs/model.ts","../../../../libs/ngx-doc-viewer.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// eslint-disable-next-line no-var\r\ndeclare var mammoth;\r\nimport { ViewerType } from './model';\r\n\r\nexport const fileToArray = (url: string): Promise<ArrayBuffer> => {\r\n return new Promise<ArrayBuffer>((resolve, reject) => {\r\n try {\r\n const request = new XMLHttpRequest();\r\n request.open('GET', url, true);\r\n request.responseType = 'blob';\r\n request.onload = () => {\r\n const reader = new FileReader();\r\n reader.readAsArrayBuffer(request.response);\r\n reader.onloadend = () => {\r\n resolve(reader.result as ArrayBuffer);\r\n };\r\n };\r\n request.send();\r\n } catch {\r\n reject(`error while retrieving file ${url}.`);\r\n }\r\n });\r\n};\r\n\r\nconst reloadIFrame = (iframe: HTMLIFrameElement) => {\r\n if (iframe) {\r\n console.log('reloading..');\r\n // eslint-disable-next-line no-self-assign\r\n iframe.src = iframe.src;\r\n }\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const handleFileUpload = (fileInput: any) => {\r\n return new Promise<string>((resolve, reject) => {\r\n if (fileInput.target.files && fileInput.target.files[0]) {\r\n const reader = new FileReader();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n reader.onload = (e: any) => {\r\n resolve(e.target.result);\r\n };\r\n reader.readAsDataURL(fileInput.target.files[0]);\r\n } else {\r\n reject('no files selected');\r\n }\r\n });\r\n};\r\n\r\nexport const getbaseUrl = (): string => {\r\n const pathArray = window.location.href.split('/');\r\n const protocol = pathArray[0];\r\n const host = pathArray[2];\r\n return protocol + '//' + host;\r\n};\r\n\r\n\r\nexport const getLocation = (href: string) => {\r\n const match = href.match(/^(https?\\:)\\/\\/(([^:\\/?#]*)(?:\\:([0-9]+))?)([\\/]{0,1}[^?#]*)(\\?[^#]*|)(#.*|)$/);\r\n return match && {\r\n href,\r\n protocol: match[1],\r\n host: match[2],\r\n hostname: match[3],\r\n port: match[4],\r\n pathname: match[5],\r\n search: match[6],\r\n hash: match[7]\r\n }\r\n}\r\n\r\nexport const getDocxToHtml = async (url: string) => {\r\n if (!mammoth) {\r\n console.error(\r\n 'Please install mammoth and make sure mammoth.browser.min.js is loaded.'\r\n );\r\n }\r\n const arrayBuffer = await fileToArray(url);\r\n const resultObject = await mammoth.convertToHtml({ arrayBuffer });\r\n return resultObject.value;\r\n};\r\n\r\nexport const googleCheckSubscription = () => {\r\n let subscription = null;\r\n let checkCount = 0;\r\n return {\r\n subscribe: (iframe: HTMLIFrameElement, interval = 3000, maxChecks = 5) => {\r\n if (!iframeLoaded(iframe)) {\r\n subscription = setInterval(() => {\r\n checkCount++;\r\n if (checkCount >= maxChecks) {\r\n clearInterval(subscription);\r\n }\r\n reloadIFrame(iframe);\r\n }, interval);\r\n return subscription;\r\n } else {\r\n if (subscription) {\r\n clearInterval(subscription);\r\n }\r\n }\r\n },\r\n unsubscribe: () => {\r\n if (subscription) {\r\n clearInterval(subscription);\r\n }\r\n },\r\n };\r\n};\r\n\r\nexport const iframeLoaded = (iframe: HTMLIFrameElement) => {\r\n // its #document <html><head></head><body></body></html> when google is returning a 204\r\n // so if contentDocument = null then it's loaded.\r\n let isLoaded = false;\r\n try {\r\n if (!internetExplorer()) {\r\n isLoaded = !iframe.contentDocument;\r\n } else {\r\n isLoaded = !iframe.contentWindow.document;\r\n }\r\n } catch {\r\n // ignore message Blocked a frame with origin \"http://...\" from accessing a cross-origin frame.\r\n }\r\n return isLoaded;\r\n}\r\n\r\nconst internetExplorer = () =>\r\n (/MSIE (\\d+\\.\\d+);/.test(navigator.userAgent) || navigator.userAgent.indexOf(\"Trident/\") > -1);\r\n\r\nexport const getViewerDetails = (\r\n url: string,\r\n configuredViewer: ViewerType = 'google',\r\n queryParams = '',\r\n viewerUrl = null\r\n) => {\r\n switch (configuredViewer) {\r\n case 'google':\r\n viewerUrl = `https://docs.google.com/gview?url=%URL%&embedded=true`;\r\n break;\r\n case 'office': {\r\n viewerUrl = `https://view.officeapps.live.com/op/embed.aspx?src=%URL%`;\r\n break;\r\n }\r\n case 'pdf': {\r\n viewerUrl = null;\r\n break;\r\n }\r\n }\r\n const externalViewer =\r\n configuredViewer === 'google' ||\r\n configuredViewer === 'office' ||\r\n configuredViewer === 'url';\r\n\r\n const u = url.indexOf('/') ? encodeURIComponent(url) : url;\r\n let fullUrl = viewerUrl ? viewerUrl.replace('%URL%', u) : url;\r\n if (queryParams && externalViewer && configuredViewer !== 'url') {\r\n const start = queryParams.startsWith('&') ? '' : '&';\r\n fullUrl = `${fullUrl}${start}${queryParams}`;\r\n }\r\n return {\r\n url: fullUrl,\r\n externalViewer,\r\n };\r\n};\r\n\r\nconst getBlobFromUrl = (url: string) => {\r\n return new Promise<File>((resolve, reject) => {\r\n let request = new XMLHttpRequest();\r\n request.open('GET', url, true);\r\n request.responseType = 'blob';\r\n request.onload = () => {\r\n resolve(request.response as File);\r\n };\r\n request.onerror = reject;\r\n request.send();\r\n })\r\n}\r\n\r\n\r\nexport const uploadToCloud = (fileUrl: string, api: string) => new Promise((resolve, reject) => {\r\n getBlobFromUrl(fileUrl).then(blob => {\r\n const loc = getLocation(fileUrl);\r\n const name = loc.pathname.split('/')[loc.pathname.split('/').length - 1];\r\n const formData = new FormData();\r\n const request = new XMLHttpRequest();\r\n formData.append('file', blob, name);\r\n request.onreadystatechange = e => {\r\n if (request.readyState === XMLHttpRequest.DONE) {\r\n if (request.status === 200) {\r\n resolve(request.responseText);\r\n } else {\r\n reject(request.responseText);\r\n }\r\n }\r\n };\r\n request.onerror = reject;\r\n request.open('post', api, true);\r\n request.send(formData);\r\n });\r\n});\r\n\r\nexport const isLocalFile = (file: string) => {\r\n const loc = getLocation(file);\r\n const hostname = loc.hostname;\r\n return (\r\n (['localhost', '127.0.0.1', '', '::1'].includes(hostname))\r\n || (hostname.startsWith('192.168.'))\r\n || (hostname.startsWith('10.0.'))\r\n || (hostname.endsWith('.local'))\r\n )\r\n};","import {\r\n Component,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n Output,\r\n ViewChildren,\r\n QueryList,\r\n ElementRef,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { EventEmitter } from '@angular/core';\r\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\r\nimport {\r\n getDocxToHtml,\r\n getLocation,\r\n getViewerDetails,\r\n googleCheckSubscription,\r\n iframeLoaded,\r\n isLocalFile\r\n} from './../../../helper';\r\nimport {\r\n IFrameReloader\r\n} from './../../../model';\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport type viewerType = 'google' | 'office' | 'mammoth' | 'pdf' | 'url';\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'ngx-doc-viewer',\r\n templateUrl: 'document-viewer.component.html',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n }\r\n .container {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n }\r\n .overlay-popout-google {\r\n width: 40px;\r\n height: 40px;\r\n right: 26px;\r\n top: 11.5px;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-popout-office {\r\n width: 100px;\r\n height: 20px;\r\n right: 0;\r\n bottom: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-full {\r\n width: 100%;\r\n height: 100%;\r\n right: 0;\r\n top: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n iframe {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class NgxDocViewerComponent implements OnChanges, OnDestroy, AfterViewInit {\r\n @Output() loaded: EventEmitter<void> = new EventEmitter();\r\n @Input() url = '';\r\n @Input() queryParams = '';\r\n @Input() viewerUrl = '';\r\n @Input() googleCheckInterval = 3000;\r\n @Input() googleMaxChecks = 5;\r\n @Input() disableContent: 'none' | 'all' | 'popout' | 'popout-hide' = 'none';\r\n @Input() googleCheckContentLoaded = true;\r\n @Input() viewer: viewerType;\r\n @Input() overrideLocalhost: '';\r\n @ViewChildren('iframe') iframes: QueryList<ElementRef>;\r\n\r\n public fullUrl: SafeResourceUrl = null;\r\n public externalViewer = false;\r\n public docHtml = '';\r\n public configuredViewer: viewerType = 'google';\r\n private checkIFrameSubscription: IFrameReloader;\r\n private shouldCheckIframe = false;\r\n\r\n constructor(private domSanitizer: DomSanitizer, private ngZone: NgZone) { }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.shouldCheckIframe) {\r\n const iframe = this.iframes?.first\r\n ?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.shouldCheckIframe = false;\r\n this.reloadIframe(iframe);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\r\n if (\r\n changes &&\r\n changes.viewer &&\r\n (changes.viewer.isFirstChange ||\r\n changes.viewer.currentValue !== changes.viewer.previousValue)\r\n ) {\r\n if (\r\n this.viewer !== 'google' &&\r\n this.viewer !== 'office' &&\r\n this.viewer !== 'mammoth' &&\r\n this.viewer !== 'pdf' &&\r\n this.viewer !== 'url'\r\n ) {\r\n console.error(\r\n `Unsupported viewer: '${this.viewer}'. Supported viewers: google, office, mammoth and pdf`\r\n );\r\n }\r\n this.configuredViewer = this.viewer;\r\n }\r\n\r\n if (\r\n (changes.url && changes.url.currentValue !== changes.url.previousValue) ||\r\n (changes.viewer &&\r\n changes.viewer.currentValue !== changes.viewer.previousValue) ||\r\n (changes.viewerUrl &&\r\n changes.viewerUrl.currentValue !== changes.viewerUrl.previousValue)\r\n ) {\r\n let viewerDetails = getViewerDetails(\r\n this.url,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n this.externalViewer = viewerDetails.externalViewer;\r\n if (viewerDetails.externalViewer && this.overrideLocalhost && isLocalFile(this.url)) {\r\n const loc = getLocation(this.url);\r\n const locReplace = getLocation(this.overrideLocalhost);\r\n this.url = this.url.replace(loc.port ? `${loc.hostname}:${loc.port}` : loc.hostname,\r\n locReplace.port ? `${locReplace.hostname}:${locReplace.port}` : locReplace.hostname);\r\n viewerDetails = getViewerDetails(\r\n this.url,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n }\r\n this.docHtml = '';\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n if (!this.url) {\r\n this.fullUrl = null;\r\n } else if (\r\n viewerDetails.externalViewer ||\r\n this.configuredViewer === 'url'\r\n ) {\r\n this.fullUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n viewerDetails.url\r\n );\r\n // see:\r\n // https://stackoverflow.com/questions/40414039/google-docs-viewer-returning-204-responses-no-longer-working-alternatives\r\n // hack to reload iframe if it's not loaded.\r\n // would maybe be better to use view.officeapps.live.com but seems not to work with sas token.\r\n if (\r\n this.configuredViewer === 'google' &&\r\n this.googleCheckContentLoaded\r\n ) {\r\n this.ngZone.runOutsideAngular(() => {\r\n // if it's not loaded after the googleIntervalCheck, then open load again.\r\n const iframe = this.iframes?.first\r\n ?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.reloadIframe(iframe);\r\n } else {\r\n this.shouldCheckIframe = true;\r\n }\r\n });\r\n }\r\n } else if (this.configuredViewer === 'mammoth') {\r\n this.docHtml = await getDocxToHtml(this.url);\r\n }\r\n }\r\n }\r\n\r\n private reloadIframe(iframe: HTMLIFrameElement) {\r\n this.checkIFrameSubscription = googleCheckSubscription();\r\n this.checkIFrameSubscription.subscribe(\r\n iframe,\r\n this.googleCheckInterval,\r\n this.googleMaxChecks\r\n );\r\n }\r\n\r\n iframeLoaded() {\r\n const iframe = this.iframes?.first\r\n ?.nativeElement as HTMLIFrameElement;\r\n if (iframe && iframeLoaded(iframe)) {\r\n this.loaded.emit(null);\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n }\r\n}\r\n","import { NgxDocViewerComponent } from './document-viewer.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [NgxDocViewerComponent],\r\n exports: [NgxDocViewerComponent],\r\n})\r\nexport class NgxDocViewerModule {}\r\n","export type ViewerType = 'google' | 'office' | 'mammoth' | 'pdf' | 'url';\r\n\r\ninterface Props {\r\n loaded?: () => void;\r\n url: string;\r\n queryParams?: string;\r\n viewerUrl?: string;\r\n googleCheckInterval?: number;\r\n disableContent?: 'none' | 'all' | 'poput' | 'popout-hide';\r\n googleCheckContentLoaded?: boolean;\r\n viewer?: ViewerType;\r\n}\r\n\r\nexport interface IFrameReloader {\r\n subscribe: (\r\n iframe: HTMLIFrameElement,\r\n interval?: number,\r\n maxChecks?: number\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n ) => any;\r\n unsubscribe: () => void;\r\n}\r\n\r\nexport const defaultProps: Props = {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n loaded: () => {},\r\n disableContent: 'none',\r\n googleCheckContentLoaded: true,\r\n googleCheckInterval: 3000,\r\n queryParams: '',\r\n url: '',\r\n viewer: 'google',\r\n viewerUrl: '',\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './ngx-doc-viewer-wrapper';\n"],"names":["EventEmitter","Component","DomSanitizer","NgZone","Output","Input","ViewChildren","NgModule","CommonModule"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-doc-viewer.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../libs/helper.ts","../../../../libs/ngx-doc-viewer/src/lib/document-viewer.component.ts","../../../../libs/ngx-doc-viewer/src/lib/document-viewer.module.ts","../../../../libs/model.ts","../../../../libs/ngx-doc-viewer.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// eslint-disable-next-line no-var\r\ndeclare var mammoth: any;\r\nimport { IFrameReloader, ViewerType } from './model';\r\n\r\nexport const fileToArray = (url: string): Promise<ArrayBuffer> => {\r\n return new Promise<ArrayBuffer>((resolve, reject) => {\r\n try {\r\n const request = new XMLHttpRequest();\r\n request.open('GET', url, true);\r\n request.responseType = 'blob';\r\n request.onload = () => {\r\n const reader = new FileReader();\r\n reader.readAsArrayBuffer(request.response);\r\n reader.onloadend = () => {\r\n resolve(reader.result as ArrayBuffer);\r\n };\r\n };\r\n request.send();\r\n } catch {\r\n reject(`error while retrieving file ${url}.`);\r\n }\r\n });\r\n};\r\n\r\nconst reloadIFrame = (iframe: HTMLIFrameElement) => {\r\n if (iframe) {\r\n console.log('reloading..');\r\n // eslint-disable-next-line no-self-assign\r\n iframe.src = iframe.src;\r\n }\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const handleFileUpload = (fileInput: any) => {\r\n return new Promise<string>((resolve, reject) => {\r\n if (fileInput.target.files && fileInput.target.files[0]) {\r\n const reader = new FileReader();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n reader.onload = (e: any) => {\r\n resolve(e.target.result);\r\n };\r\n reader.readAsDataURL(fileInput.target.files[0]);\r\n } else {\r\n reject('no files selected');\r\n }\r\n });\r\n};\r\n\r\nexport const getbaseUrl = (): string => {\r\n const pathArray = window.location.href.split('/');\r\n const protocol = pathArray[0];\r\n const host = pathArray[2];\r\n return protocol + '//' + host;\r\n};\r\n\r\n\r\nexport const getLocation = (href: string) => {\r\n const match = href.match(/^(https?\\:)\\/\\/(([^:\\/?#]*)(?:\\:([0-9]+))?)([\\/]{0,1}[^?#]*)(\\?[^#]*|)(#.*|)$/);\r\n return match && {\r\n href,\r\n protocol: match[1],\r\n host: match[2],\r\n hostname: match[3],\r\n port: match[4],\r\n pathname: match[5],\r\n search: match[6],\r\n hash: match[7]\r\n }\r\n}\r\n\r\nexport const getDocxToHtml = async (url: string) => {\r\n if (!mammoth) {\r\n console.error(\r\n 'Please install mammoth and make sure mammoth.browser.min.js is loaded.'\r\n );\r\n }\r\n const arrayBuffer = await fileToArray(url);\r\n const resultObject = await mammoth.convertToHtml({ arrayBuffer });\r\n return resultObject.value;\r\n};\r\n\r\nexport const googleCheckSubscription = (): IFrameReloader => {\r\n let subscription: any = null;\r\n let checkCount = 0;\r\n return {\r\n subscribe: (iframe: HTMLIFrameElement, interval = 3000, maxChecks = 5) => {\r\n if (!iframeIsLoaded(iframe)) {\r\n subscription = setInterval(() => {\r\n checkCount++;\r\n if (checkCount >= maxChecks) {\r\n clearInterval(subscription);\r\n }\r\n reloadIFrame(iframe);\r\n }, interval);\r\n return subscription;\r\n } else {\r\n if (subscription) {\r\n clearInterval(subscription);\r\n }\r\n }\r\n },\r\n unsubscribe: () => {\r\n if (subscription) {\r\n clearInterval(subscription);\r\n }\r\n },\r\n };\r\n};\r\n\r\nexport const iframeIsLoaded = (iframe: HTMLIFrameElement) => {\r\n // its #document <html><head></head><body></body></html> when google is returning a 204\r\n // so if contentDocument = null then it's loaded.\r\n let isLoaded = false;\r\n try {\r\n if (!internetExplorer()) {\r\n isLoaded = !iframe?.contentDocument;\r\n } else {\r\n isLoaded = !iframe?.contentWindow?.document;\r\n }\r\n } catch {\r\n // ignore message Blocked a frame with origin \"http://...\" from accessing a cross-origin frame.\r\n }\r\n return isLoaded;\r\n}\r\n\r\nconst internetExplorer = () =>\r\n (/MSIE (\\d+\\.\\d+);/.test(navigator.userAgent) || navigator.userAgent.indexOf(\"Trident/\") > -1);\r\n\r\nexport const getViewerDetails = (\r\n url: string,\r\n configuredViewer: ViewerType = 'google',\r\n queryParams = '',\r\n viewerUrl = ''\r\n) => {\r\n switch (configuredViewer) {\r\n case 'google':\r\n viewerUrl = `https://docs.google.com/gview?url=%URL%&embedded=true`;\r\n break;\r\n case 'office': {\r\n viewerUrl = `https://view.officeapps.live.com/op/embed.aspx?src=%URL%`;\r\n break;\r\n }\r\n case 'pdf': {\r\n viewerUrl = '';\r\n break;\r\n }\r\n }\r\n const externalViewer =\r\n configuredViewer === 'google' ||\r\n configuredViewer === 'office' ||\r\n configuredViewer === 'url';\r\n\r\n const u = url?.indexOf('/') ? encodeURIComponent(url) : url;\r\n let fullUrl = viewerUrl ? viewerUrl.replace('%URL%', u) : url;\r\n if (queryParams && externalViewer && configuredViewer !== 'url') {\r\n const start = queryParams.startsWith('&') ? '' : '&';\r\n fullUrl = `${fullUrl}${start}${queryParams}`;\r\n }\r\n return {\r\n url: fullUrl,\r\n externalViewer,\r\n };\r\n};\r\n\r\nexport const replaceLocalUrl = (url: string, overrideLocalhost: string) => {\r\n const loc = getLocation(url);\r\n const locReplace = getLocation(overrideLocalhost);\r\n if (loc && locReplace) {\r\n return url.replace(loc.port ? `${loc.hostname}:${loc.port}` : loc.hostname,\r\n locReplace.port ? `${locReplace.hostname}:${locReplace.port}` : locReplace.hostname);\r\n }\r\n return url;\r\n}\r\n\r\nconst getBlobFromUrl = (url: string) => {\r\n return new Promise<File>((resolve, reject) => {\r\n let request = new XMLHttpRequest();\r\n request.open('GET', url, true);\r\n request.responseType = 'blob';\r\n request.onload = () => {\r\n resolve(request.response as File);\r\n };\r\n request.onerror = reject;\r\n request.send();\r\n })\r\n}\r\n\r\n\r\nexport const uploadToCloud = (fileUrl: string, api: string) => new Promise((resolve, reject) => {\r\n getBlobFromUrl(fileUrl).then(blob => {\r\n const loc = getLocation(fileUrl);\r\n const name = loc?.pathname ? loc?.pathname?.split('/')[loc?.pathname?.split('/').length - 1] : '';\r\n const formData = new FormData();\r\n const request = new XMLHttpRequest();\r\n formData.append('file', blob, name);\r\n request.onreadystatechange = e => {\r\n if (request.readyState === XMLHttpRequest.DONE) {\r\n if (request.status === 200) {\r\n resolve(request.responseText);\r\n } else {\r\n reject(request.responseText);\r\n }\r\n }\r\n };\r\n request.onerror = reject;\r\n request.open('post', api, true);\r\n request.send(formData);\r\n });\r\n});\r\n\r\nexport const isLocalFile = (file: string) => {\r\n const loc = getLocation(file);\r\n const hostname = loc?.hostname || '';\r\n return (\r\n (['localhost', '127.0.0.1', '', '::1'].includes(hostname))\r\n || (hostname.startsWith('192.168.'))\r\n || (hostname.startsWith('10.0.'))\r\n || (hostname.endsWith('.local'))\r\n )\r\n};","import {\r\n Component,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n Output,\r\n ViewChildren,\r\n QueryList,\r\n ElementRef,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { EventEmitter } from '@angular/core';\r\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\r\nimport {\r\n getDocxToHtml,\r\n getViewerDetails,\r\n googleCheckSubscription,\r\n iframeIsLoaded,\r\n isLocalFile,\r\n replaceLocalUrl\r\n} from './../../../helper';\r\nimport {\r\n IFrameReloader\r\n} from './../../../model';\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport type viewerType = 'google' | 'office' | 'mammoth' | 'pdf' | 'url';\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'ngx-doc-viewer',\r\n templateUrl: 'document-viewer.component.html',\r\n styles: [\r\n `\r\n :host {\r\n display: block;\r\n }\r\n .container {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n }\r\n .overlay-popout-google {\r\n width: 40px;\r\n height: 40px;\r\n right: 26px;\r\n top: 11.5px;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-popout-office {\r\n width: 100px;\r\n height: 20px;\r\n right: 0;\r\n bottom: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n .overlay-full {\r\n width: 100%;\r\n height: 100%;\r\n right: 0;\r\n top: 0;\r\n position: absolute;\r\n z-index: 1000;\r\n }\r\n iframe {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class NgxDocViewerComponent implements OnChanges, OnDestroy, AfterViewInit {\r\n @Output() loaded: EventEmitter<void> = new EventEmitter();\r\n @Input() url = '';\r\n @Input() queryParams = '';\r\n @Input() viewerUrl = '';\r\n @Input() googleCheckInterval = 3000;\r\n @Input() googleMaxChecks = 5;\r\n @Input() disableContent: 'none' | 'all' | 'popout' | 'popout-hide' = 'none';\r\n @Input() googleCheckContentLoaded = true;\r\n @Input() viewer: viewerType;\r\n @Input() overrideLocalhost: '';\r\n @ViewChildren('iframe') iframes: QueryList<ElementRef>;\r\n\r\n public fullUrl: SafeResourceUrl = null;\r\n public externalViewer = false;\r\n public docHtml = '';\r\n public configuredViewer: viewerType = 'google';\r\n private checkIFrameSubscription: IFrameReloader;\r\n private shouldCheckIframe = false;\r\n\r\n constructor(private domSanitizer: DomSanitizer, private ngZone: NgZone) { }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.shouldCheckIframe) {\r\n const iframe = this.iframes?.first\r\n ?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.shouldCheckIframe = false;\r\n this.reloadIframe(iframe);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\r\n if (\r\n changes &&\r\n changes.viewer &&\r\n (changes.viewer.isFirstChange ||\r\n changes.viewer.currentValue !== changes.viewer.previousValue)\r\n ) {\r\n if (\r\n this.viewer !== 'google' &&\r\n this.viewer !== 'office' &&\r\n this.viewer !== 'mammoth' &&\r\n this.viewer !== 'pdf' &&\r\n this.viewer !== 'url'\r\n ) {\r\n console.error(\r\n `Unsupported viewer: '${this.viewer}'. Supported viewers: google, office, mammoth and pdf`\r\n );\r\n }\r\n this.configuredViewer = this.viewer;\r\n }\r\n\r\n if (\r\n (changes.url && changes.url.currentValue !== changes.url.previousValue) ||\r\n (changes.viewer &&\r\n changes.viewer.currentValue !== changes.viewer.previousValue) ||\r\n (changes.viewerUrl &&\r\n changes.viewerUrl.currentValue !== changes.viewerUrl.previousValue)\r\n ) {\r\n let viewerDetails = getViewerDetails(\r\n this.url,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n this.externalViewer = viewerDetails.externalViewer;\r\n if (viewerDetails.externalViewer && this.overrideLocalhost && isLocalFile(this.url)) {\r\n const newUrl = replaceLocalUrl(this.url, this.overrideLocalhost);\r\n viewerDetails = getViewerDetails(\r\n newUrl,\r\n this.configuredViewer,\r\n this.queryParams,\r\n this.viewerUrl\r\n );\r\n }\r\n this.docHtml = '';\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n if (!this.url) {\r\n this.fullUrl = null;\r\n } else if (\r\n viewerDetails.externalViewer ||\r\n this.configuredViewer === 'url'\r\n ) {\r\n this.fullUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n viewerDetails.url\r\n );\r\n // see:\r\n // https://stackoverflow.com/questions/40414039/google-docs-viewer-returning-204-responses-no-longer-working-alternatives\r\n // hack to reload iframe if it's not loaded.\r\n // would maybe be better to use view.officeapps.live.com but seems not to work with sas token.\r\n if (\r\n this.configuredViewer === 'google' &&\r\n this.googleCheckContentLoaded\r\n ) {\r\n this.ngZone.runOutsideAngular(() => {\r\n // if it's not loaded after the googleIntervalCheck, then open load again.\r\n const iframe = this.iframes?.first\r\n ?.nativeElement as HTMLIFrameElement;\r\n if (iframe) {\r\n this.reloadIframe(iframe);\r\n } else {\r\n this.shouldCheckIframe = true;\r\n }\r\n });\r\n }\r\n } else if (this.configuredViewer === 'mammoth') {\r\n this.docHtml = await getDocxToHtml(this.url);\r\n }\r\n }\r\n }\r\n\r\n private reloadIframe(iframe: HTMLIFrameElement) {\r\n this.checkIFrameSubscription = googleCheckSubscription();\r\n this.checkIFrameSubscription.subscribe(\r\n iframe,\r\n this.googleCheckInterval,\r\n this.googleMaxChecks\r\n );\r\n }\r\n\r\n iframeLoaded() {\r\n const iframe = this.iframes?.first\r\n ?.nativeElement as HTMLIFrameElement;\r\n if (iframe && iframeIsLoaded(iframe)) {\r\n this.loaded.emit(null);\r\n if (this.checkIFrameSubscription) {\r\n this.checkIFrameSubscription.unsubscribe();\r\n }\r\n }\r\n }\r\n}\r\n","import { NgxDocViewerComponent } from './document-viewer.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [NgxDocViewerComponent],\r\n exports: [NgxDocViewerComponent],\r\n})\r\nexport class NgxDocViewerModule {}\r\n","export type ViewerType = 'google' | 'office' | 'mammoth' | 'pdf' | 'url';\r\n\r\ninterface Props {\r\n loaded?: () => void;\r\n url: string;\r\n queryParams?: string;\r\n viewerUrl?: string;\r\n googleCheckInterval?: number;\r\n disableContent?: 'none' | 'all' | 'poput' | 'popout-hide';\r\n googleCheckContentLoaded?: boolean;\r\n viewer?: ViewerType;\r\n}\r\n\r\nexport interface IFrameReloader {\r\n subscribe: (\r\n iframe: HTMLIFrameElement,\r\n interval?: number,\r\n maxChecks?: number\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n ) => any;\r\n unsubscribe: () => void;\r\n}\r\n\r\nexport const defaultProps: Props = {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n loaded: () => {},\r\n disableContent: 'none',\r\n googleCheckContentLoaded: true,\r\n googleCheckInterval: 3000,\r\n queryParams: '',\r\n url: '',\r\n viewer: 'google',\r\n viewerUrl: '',\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './ngx-doc-viewer-wrapper';\n"],"names":["EventEmitter","Component","DomSanitizer","NgZone","Output","Input","ViewChildren","NgModule","CommonModule"],"mappings":"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"}
package/esm2015/helper.js CHANGED
@@ -75,7 +75,7 @@ export const googleCheckSubscription = () => {
75
75
  let checkCount = 0;
76
76
  return {
77
77
  subscribe: (iframe, interval = 3000, maxChecks = 5) => {
78
- if (!iframeLoaded(iframe)) {
78
+ if (!iframeIsLoaded(iframe)) {
79
79
  subscription = setInterval(() => {
80
80
  checkCount++;
81
81
  if (checkCount >= maxChecks) {
@@ -98,26 +98,27 @@ export const googleCheckSubscription = () => {
98
98
  },
99
99
  };
100
100
  };
101
- export const iframeLoaded = (iframe) => {
101
+ export const iframeIsLoaded = (iframe) => {
102
+ var _a;
102
103
  // its #document <html><head></head><body></body></html> when google is returning a 204
103
104
  // so if contentDocument = null then it's loaded.
104
105
  let isLoaded = false;
105
106
  try {
106
107
  if (!internetExplorer()) {
107
- isLoaded = !iframe.contentDocument;
108
+ isLoaded = !(iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument);
108
109
  }
109
110
  else {
110
- isLoaded = !iframe.contentWindow.document;
111
+ isLoaded = !((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.document);
111
112
  }
112
113
  }
113
- catch (_a) {
114
+ catch (_b) {
114
115
  // ignore message Blocked a frame with origin "http://..." from accessing a cross-origin frame.
115
116
  }
116
117
  return isLoaded;
117
118
  };
118
119
  const internetExplorer = () => (/MSIE (\d+\.\d+);/.test(navigator.userAgent) || navigator.userAgent.indexOf("Trident/") > -1);
119
120
  const ɵ1 = internetExplorer;
120
- export const getViewerDetails = (url, configuredViewer = 'google', queryParams = '', viewerUrl = null) => {
121
+ export const getViewerDetails = (url, configuredViewer = 'google', queryParams = '', viewerUrl = '') => {
121
122
  switch (configuredViewer) {
122
123
  case 'google':
123
124
  viewerUrl = `https://docs.google.com/gview?url=%URL%&embedded=true`;
@@ -127,14 +128,14 @@ export const getViewerDetails = (url, configuredViewer = 'google', queryParams =
127
128
  break;
128
129
  }
129
130
  case 'pdf': {
130
- viewerUrl = null;
131
+ viewerUrl = '';
131
132
  break;
132
133
  }
133
134
  }
134
135
  const externalViewer = configuredViewer === 'google' ||
135
136
  configuredViewer === 'office' ||
136
137
  configuredViewer === 'url';
137
- const u = url.indexOf('/') ? encodeURIComponent(url) : url;
138
+ const u = (url === null || url === void 0 ? void 0 : url.indexOf('/')) ? encodeURIComponent(url) : url;
138
139
  let fullUrl = viewerUrl ? viewerUrl.replace('%URL%', u) : url;
139
140
  if (queryParams && externalViewer && configuredViewer !== 'url') {
140
141
  const start = queryParams.startsWith('&') ? '' : '&';
@@ -145,6 +146,14 @@ export const getViewerDetails = (url, configuredViewer = 'google', queryParams =
145
146
  externalViewer,
146
147
  };
147
148
  };
149
+ export const replaceLocalUrl = (url, overrideLocalhost) => {
150
+ const loc = getLocation(url);
151
+ const locReplace = getLocation(overrideLocalhost);
152
+ if (loc && locReplace) {
153
+ return url.replace(loc.port ? `${loc.hostname}:${loc.port}` : loc.hostname, locReplace.port ? `${locReplace.hostname}:${locReplace.port}` : locReplace.hostname);
154
+ }
155
+ return url;
156
+ };
148
157
  const getBlobFromUrl = (url) => {
149
158
  return new Promise((resolve, reject) => {
150
159
  let request = new XMLHttpRequest();
@@ -160,8 +169,9 @@ const getBlobFromUrl = (url) => {
160
169
  const ɵ2 = getBlobFromUrl;
161
170
  export const uploadToCloud = (fileUrl, api) => new Promise((resolve, reject) => {
162
171
  getBlobFromUrl(fileUrl).then(blob => {
172
+ var _a, _b;
163
173
  const loc = getLocation(fileUrl);
164
- const name = loc.pathname.split('/')[loc.pathname.split('/').length - 1];
174
+ const name = (loc === null || loc === void 0 ? void 0 : loc.pathname) ? (_a = loc === null || loc === void 0 ? void 0 : loc.pathname) === null || _a === void 0 ? void 0 : _a.split('/')[((_b = loc === null || loc === void 0 ? void 0 : loc.pathname) === null || _b === void 0 ? void 0 : _b.split('/').length) - 1] : '';
165
175
  const formData = new FormData();
166
176
  const request = new XMLHttpRequest();
167
177
  formData.append('file', blob, name);
@@ -182,7 +192,7 @@ export const uploadToCloud = (fileUrl, api) => new Promise((resolve, reject) =>
182
192
  });
183
193
  export const isLocalFile = (file) => {
184
194
  const loc = getLocation(file);
185
- const hostname = loc.hostname;
195
+ const hostname = (loc === null || loc === void 0 ? void 0 : loc.hostname) || '';
186
196
  return ((['localhost', '127.0.0.1', '', '::1'].includes(hostname))
187
197
  || (hostname.startsWith('192.168.'))
188
198
  || (hostname.startsWith('10.0.'))
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../libs/helper.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line no-var\r\ndeclare var mammoth;\r\nimport { ViewerType } from './model';\r\n\r\nexport const fileToArray = (url: string): Promise<ArrayBuffer> => {\r\n return new Promise<ArrayBuffer>((resolve, reject) => {\r\n try {\r\n const request = new XMLHttpRequest();\r\n request.open('GET', url, true);\r\n request.responseType = 'blob';\r\n request.onload = () => {\r\n const reader = new FileReader();\r\n reader.readAsArrayBuffer(request.response);\r\n reader.onloadend = () => {\r\n resolve(reader.result as ArrayBuffer);\r\n };\r\n };\r\n request.send();\r\n } catch {\r\n reject(`error while retrieving file ${url}.`);\r\n }\r\n });\r\n};\r\n\r\nconst reloadIFrame = (iframe: HTMLIFrameElement) => {\r\n if (iframe) {\r\n console.log('reloading..');\r\n // eslint-disable-next-line no-self-assign\r\n iframe.src = iframe.src;\r\n }\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const handleFileUpload = (fileInput: any) => {\r\n return new Promise<string>((resolve, reject) => {\r\n if (fileInput.target.files && fileInput.target.files[0]) {\r\n const reader = new FileReader();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n reader.onload = (e: any) => {\r\n resolve(e.target.result);\r\n };\r\n reader.readAsDataURL(fileInput.target.files[0]);\r\n } else {\r\n reject('no files selected');\r\n }\r\n });\r\n};\r\n\r\nexport const getbaseUrl = (): string => {\r\n const pathArray = window.location.href.split('/');\r\n const protocol = pathArray[0];\r\n const host = pathArray[2];\r\n return protocol + '//' + host;\r\n};\r\n\r\n\r\nexport const getLocation = (href: string) => {\r\n const match = href.match(/^(https?\\:)\\/\\/(([^:\\/?#]*)(?:\\:([0-9]+))?)([\\/]{0,1}[^?#]*)(\\?[^#]*|)(#.*|)$/);\r\n return match && {\r\n href,\r\n protocol: match[1],\r\n host: match[2],\r\n hostname: match[3],\r\n port: match[4],\r\n pathname: match[5],\r\n search: match[6],\r\n hash: match[7]\r\n }\r\n}\r\n\r\nexport const getDocxToHtml = async (url: string) => {\r\n if (!mammoth) {\r\n console.error(\r\n 'Please install mammoth and make sure mammoth.browser.min.js is loaded.'\r\n );\r\n }\r\n const arrayBuffer = await fileToArray(url);\r\n const resultObject = await mammoth.convertToHtml({ arrayBuffer });\r\n return resultObject.value;\r\n};\r\n\r\nexport const googleCheckSubscription = () => {\r\n let subscription = null;\r\n let checkCount = 0;\r\n return {\r\n subscribe: (iframe: HTMLIFrameElement, interval = 3000, maxChecks = 5) => {\r\n if (!iframeLoaded(iframe)) {\r\n subscription = setInterval(() => {\r\n checkCount++;\r\n if (checkCount >= maxChecks) {\r\n clearInterval(subscription);\r\n }\r\n reloadIFrame(iframe);\r\n }, interval);\r\n return subscription;\r\n } else {\r\n if (subscription) {\r\n clearInterval(subscription);\r\n }\r\n }\r\n },\r\n unsubscribe: () => {\r\n if (subscription) {\r\n clearInterval(subscription);\r\n }\r\n },\r\n };\r\n};\r\n\r\nexport const iframeLoaded = (iframe: HTMLIFrameElement) => {\r\n // its #document <html><head></head><body></body></html> when google is returning a 204\r\n // so if contentDocument = null then it's loaded.\r\n let isLoaded = false;\r\n try {\r\n if (!internetExplorer()) {\r\n isLoaded = !iframe.contentDocument;\r\n } else {\r\n isLoaded = !iframe.contentWindow.document;\r\n }\r\n } catch {\r\n // ignore message Blocked a frame with origin \"http://...\" from accessing a cross-origin frame.\r\n }\r\n return isLoaded;\r\n}\r\n\r\nconst internetExplorer = () =>\r\n (/MSIE (\\d+\\.\\d+);/.test(navigator.userAgent) || navigator.userAgent.indexOf(\"Trident/\") > -1);\r\n\r\nexport const getViewerDetails = (\r\n url: string,\r\n configuredViewer: ViewerType = 'google',\r\n queryParams = '',\r\n viewerUrl = null\r\n) => {\r\n switch (configuredViewer) {\r\n case 'google':\r\n viewerUrl = `https://docs.google.com/gview?url=%URL%&embedded=true`;\r\n break;\r\n case 'office': {\r\n viewerUrl = `https://view.officeapps.live.com/op/embed.aspx?src=%URL%`;\r\n break;\r\n }\r\n case 'pdf': {\r\n viewerUrl = null;\r\n break;\r\n }\r\n }\r\n const externalViewer =\r\n configuredViewer === 'google' ||\r\n configuredViewer === 'office' ||\r\n configuredViewer === 'url';\r\n\r\n const u = url.indexOf('/') ? encodeURIComponent(url) : url;\r\n let fullUrl = viewerUrl ? viewerUrl.replace('%URL%', u) : url;\r\n if (queryParams && externalViewer && configuredViewer !== 'url') {\r\n const start = queryParams.startsWith('&') ? '' : '&';\r\n fullUrl = `${fullUrl}${start}${queryParams}`;\r\n }\r\n return {\r\n url: fullUrl,\r\n externalViewer,\r\n };\r\n};\r\n\r\nconst getBlobFromUrl = (url: string) => {\r\n return new Promise<File>((resolve, reject) => {\r\n let request = new XMLHttpRequest();\r\n request.open('GET', url, true);\r\n request.responseType = 'blob';\r\n request.onload = () => {\r\n resolve(request.response as File);\r\n };\r\n request.onerror = reject;\r\n request.send();\r\n })\r\n}\r\n\r\n\r\nexport const uploadToCloud = (fileUrl: string, api: string) => new Promise((resolve, reject) => {\r\n getBlobFromUrl(fileUrl).then(blob => {\r\n const loc = getLocation(fileUrl);\r\n const name = loc.pathname.split('/')[loc.pathname.split('/').length - 1];\r\n const formData = new FormData();\r\n const request = new XMLHttpRequest();\r\n formData.append('file', blob, name);\r\n request.onreadystatechange = e => {\r\n if (request.readyState === XMLHttpRequest.DONE) {\r\n if (request.status === 200) {\r\n resolve(request.responseText);\r\n } else {\r\n reject(request.responseText);\r\n }\r\n }\r\n };\r\n request.onerror = reject;\r\n request.open('post', api, true);\r\n request.send(formData);\r\n });\r\n});\r\n\r\nexport const isLocalFile = (file: string) => {\r\n const loc = getLocation(file);\r\n const hostname = loc.hostname;\r\n return (\r\n (['localhost', '127.0.0.1', '', '::1'].includes(hostname))\r\n || (hostname.startsWith('192.168.'))\r\n || (hostname.startsWith('10.0.'))\r\n || (hostname.endsWith('.local'))\r\n )\r\n};"]}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../libs/helper.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line no-var\r\ndeclare var mammoth: any;\r\nimport { IFrameReloader, ViewerType } from './model';\r\n\r\nexport const fileToArray = (url: string): Promise<ArrayBuffer> => {\r\n return new Promise<ArrayBuffer>((resolve, reject) => {\r\n try {\r\n const request = new XMLHttpRequest();\r\n request.open('GET', url, true);\r\n request.responseType = 'blob';\r\n request.onload = () => {\r\n const reader = new FileReader();\r\n reader.readAsArrayBuffer(request.response);\r\n reader.onloadend = () => {\r\n resolve(reader.result as ArrayBuffer);\r\n };\r\n };\r\n request.send();\r\n } catch {\r\n reject(`error while retrieving file ${url}.`);\r\n }\r\n });\r\n};\r\n\r\nconst reloadIFrame = (iframe: HTMLIFrameElement) => {\r\n if (iframe) {\r\n console.log('reloading..');\r\n // eslint-disable-next-line no-self-assign\r\n iframe.src = iframe.src;\r\n }\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const handleFileUpload = (fileInput: any) => {\r\n return new Promise<string>((resolve, reject) => {\r\n if (fileInput.target.files && fileInput.target.files[0]) {\r\n const reader = new FileReader();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n reader.onload = (e: any) => {\r\n resolve(e.target.result);\r\n };\r\n reader.readAsDataURL(fileInput.target.files[0]);\r\n } else {\r\n reject('no files selected');\r\n }\r\n });\r\n};\r\n\r\nexport const getbaseUrl = (): string => {\r\n const pathArray = window.location.href.split('/');\r\n const protocol = pathArray[0];\r\n const host = pathArray[2];\r\n return protocol + '//' + host;\r\n};\r\n\r\n\r\nexport const getLocation = (href: string) => {\r\n const match = href.match(/^(https?\\:)\\/\\/(([^:\\/?#]*)(?:\\:([0-9]+))?)([\\/]{0,1}[^?#]*)(\\?[^#]*|)(#.*|)$/);\r\n return match && {\r\n href,\r\n protocol: match[1],\r\n host: match[2],\r\n hostname: match[3],\r\n port: match[4],\r\n pathname: match[5],\r\n search: match[6],\r\n hash: match[7]\r\n }\r\n}\r\n\r\nexport const getDocxToHtml = async (url: string) => {\r\n if (!mammoth) {\r\n console.error(\r\n 'Please install mammoth and make sure mammoth.browser.min.js is loaded.'\r\n );\r\n }\r\n const arrayBuffer = await fileToArray(url);\r\n const resultObject = await mammoth.convertToHtml({ arrayBuffer });\r\n return resultObject.value;\r\n};\r\n\r\nexport const googleCheckSubscription = (): IFrameReloader => {\r\n let subscription: any = null;\r\n let checkCount = 0;\r\n return {\r\n subscribe: (iframe: HTMLIFrameElement, interval = 3000, maxChecks = 5) => {\r\n if (!iframeIsLoaded(iframe)) {\r\n subscription = setInterval(() => {\r\n checkCount++;\r\n if (checkCount >= maxChecks) {\r\n clearInterval(subscription);\r\n }\r\n reloadIFrame(iframe);\r\n }, interval);\r\n return subscription;\r\n } else {\r\n if (subscription) {\r\n clearInterval(subscription);\r\n }\r\n }\r\n },\r\n unsubscribe: () => {\r\n if (subscription) {\r\n clearInterval(subscription);\r\n }\r\n },\r\n };\r\n};\r\n\r\nexport const iframeIsLoaded = (iframe: HTMLIFrameElement) => {\r\n // its #document <html><head></head><body></body></html> when google is returning a 204\r\n // so if contentDocument = null then it's loaded.\r\n let isLoaded = false;\r\n try {\r\n if (!internetExplorer()) {\r\n isLoaded = !iframe?.contentDocument;\r\n } else {\r\n isLoaded = !iframe?.contentWindow?.document;\r\n }\r\n } catch {\r\n // ignore message Blocked a frame with origin \"http://...\" from accessing a cross-origin frame.\r\n }\r\n return isLoaded;\r\n}\r\n\r\nconst internetExplorer = () =>\r\n (/MSIE (\\d+\\.\\d+);/.test(navigator.userAgent) || navigator.userAgent.indexOf(\"Trident/\") > -1);\r\n\r\nexport const getViewerDetails = (\r\n url: string,\r\n configuredViewer: ViewerType = 'google',\r\n queryParams = '',\r\n viewerUrl = ''\r\n) => {\r\n switch (configuredViewer) {\r\n case 'google':\r\n viewerUrl = `https://docs.google.com/gview?url=%URL%&embedded=true`;\r\n break;\r\n case 'office': {\r\n viewerUrl = `https://view.officeapps.live.com/op/embed.aspx?src=%URL%`;\r\n break;\r\n }\r\n case 'pdf': {\r\n viewerUrl = '';\r\n break;\r\n }\r\n }\r\n const externalViewer =\r\n configuredViewer === 'google' ||\r\n configuredViewer === 'office' ||\r\n configuredViewer === 'url';\r\n\r\n const u = url?.indexOf('/') ? encodeURIComponent(url) : url;\r\n let fullUrl = viewerUrl ? viewerUrl.replace('%URL%', u) : url;\r\n if (queryParams && externalViewer && configuredViewer !== 'url') {\r\n const start = queryParams.startsWith('&') ? '' : '&';\r\n fullUrl = `${fullUrl}${start}${queryParams}`;\r\n }\r\n return {\r\n url: fullUrl,\r\n externalViewer,\r\n };\r\n};\r\n\r\nexport const replaceLocalUrl = (url: string, overrideLocalhost: string) => {\r\n const loc = getLocation(url);\r\n const locReplace = getLocation(overrideLocalhost);\r\n if (loc && locReplace) {\r\n return url.replace(loc.port ? `${loc.hostname}:${loc.port}` : loc.hostname,\r\n locReplace.port ? `${locReplace.hostname}:${locReplace.port}` : locReplace.hostname);\r\n }\r\n return url;\r\n}\r\n\r\nconst getBlobFromUrl = (url: string) => {\r\n return new Promise<File>((resolve, reject) => {\r\n let request = new XMLHttpRequest();\r\n request.open('GET', url, true);\r\n request.responseType = 'blob';\r\n request.onload = () => {\r\n resolve(request.response as File);\r\n };\r\n request.onerror = reject;\r\n request.send();\r\n })\r\n}\r\n\r\n\r\nexport const uploadToCloud = (fileUrl: string, api: string) => new Promise((resolve, reject) => {\r\n getBlobFromUrl(fileUrl).then(blob => {\r\n const loc = getLocation(fileUrl);\r\n const name = loc?.pathname ? loc?.pathname?.split('/')[loc?.pathname?.split('/').length - 1] : '';\r\n const formData = new FormData();\r\n const request = new XMLHttpRequest();\r\n formData.append('file', blob, name);\r\n request.onreadystatechange = e => {\r\n if (request.readyState === XMLHttpRequest.DONE) {\r\n if (request.status === 200) {\r\n resolve(request.responseText);\r\n } else {\r\n reject(request.responseText);\r\n }\r\n }\r\n };\r\n request.onerror = reject;\r\n request.open('post', api, true);\r\n request.send(formData);\r\n });\r\n});\r\n\r\nexport const isLocalFile = (file: string) => {\r\n const loc = getLocation(file);\r\n const hostname = loc?.hostname || '';\r\n return (\r\n (['localhost', '127.0.0.1', '', '::1'].includes(hostname))\r\n || (hostname.startsWith('192.168.'))\r\n || (hostname.startsWith('10.0.'))\r\n || (hostname.endsWith('.local'))\r\n )\r\n};"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"fileToArray":{"__symbolic":"error","message":"Lambda not supported","line":4,"character":27},"ɵ0":{"__symbolic":"error","message":"Lambda not supported","line":24,"character":21},"handleFileUpload":{"__symbolic":"error","message":"Lambda not supported","line":33,"character":32},"getbaseUrl":{"__symbolic":"error","message":"Lambda not supported","line":48,"character":26},"getLocation":{"__symbolic":"error","message":"Lambda not supported","line":56,"character":27},"getDocxToHtml":{"__symbolic":"error","message":"Lambda not supported","line":70,"character":29},"googleCheckSubscription":{"__symbolic":"error","message":"Lambda not supported","line":81,"character":39},"iframeLoaded":{"__symbolic":"error","message":"Lambda not supported","line":109,"character":28},"ɵ1":{"__symbolic":"error","message":"Lambda not supported","line":125,"character":25},"getViewerDetails":{"__symbolic":"error","message":"Lambda not supported","line":128,"character":32},"ɵ2":{"__symbolic":"error","message":"Lambda not supported","line":164,"character":23},"uploadToCloud":{"__symbolic":"error","message":"Lambda not supported","line":178,"character":29},"isLocalFile":{"__symbolic":"error","message":"Lambda not supported","line":200,"character":27}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"fileToArray":{"__symbolic":"error","message":"Lambda not supported","line":4,"character":27},"ɵ0":{"__symbolic":"error","message":"Lambda not supported","line":24,"character":21},"handleFileUpload":{"__symbolic":"error","message":"Lambda not supported","line":33,"character":32},"getbaseUrl":{"__symbolic":"error","message":"Lambda not supported","line":48,"character":26},"getLocation":{"__symbolic":"error","message":"Lambda not supported","line":56,"character":27},"getDocxToHtml":{"__symbolic":"error","message":"Lambda not supported","line":70,"character":29},"googleCheckSubscription":{"__symbolic":"error","message":"Lambda not supported","line":81,"character":39},"iframeIsLoaded":{"__symbolic":"error","message":"Lambda not supported","line":109,"character":30},"ɵ1":{"__symbolic":"error","message":"Lambda not supported","line":125,"character":25},"getViewerDetails":{"__symbolic":"error","message":"Lambda not supported","line":128,"character":32},"replaceLocalUrl":{"__symbolic":"error","message":"Lambda not supported","line":164,"character":31},"ɵ2":{"__symbolic":"error","message":"Lambda not supported","line":174,"character":23},"uploadToCloud":{"__symbolic":"error","message":"Lambda not supported","line":188,"character":29},"isLocalFile":{"__symbolic":"error","message":"Lambda not supported","line":210,"character":27}}}]