@hitsoft/e-donusum 1.0.115 → 1.0.117

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.
Files changed (25) hide show
  1. package/esm2020/lib/components/hit-despatches/hit-despatch.component.mjs +40 -38
  2. package/esm2020/lib/components/hit-inbound-despatches/hit-inbound-despatch.component.mjs +56 -52
  3. package/esm2020/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.mjs +99 -38
  4. package/esm2020/lib/components/hit-invoices/hit-invoice.component.mjs +46 -42
  5. package/esm2020/lib/components/hit-params-companies/hit-params-company.component.mjs +4 -3
  6. package/esm2020/lib/components/hit-setup-wizard/hit-setup-wizard.component.mjs +2 -2
  7. package/esm2020/lib/hit-proxy/hit-despatches/hit-despatch.service.mjs +5 -28
  8. package/esm2020/lib/hit-proxy/hit-inbound-despatches/hit-inbound-despatch.service.mjs +21 -6
  9. package/esm2020/lib/hit-proxy/hit-inbound-invoices/hit-inbound-invoice.service.mjs +8 -16
  10. package/esm2020/lib/hit-proxy/hit-invoices/hit-invoice.service.mjs +8 -44
  11. package/esm2020/lib/hit-proxy/shared/hit-shared.service.mjs +45 -96
  12. package/fesm2015/hitsoft-e-donusum.mjs +327 -355
  13. package/fesm2015/hitsoft-e-donusum.mjs.map +1 -1
  14. package/fesm2020/hitsoft-e-donusum.mjs +326 -353
  15. package/fesm2020/hitsoft-e-donusum.mjs.map +1 -1
  16. package/lib/components/hit-despatches/hit-despatch.component.d.ts +1 -0
  17. package/lib/components/hit-inbound-despatches/hit-inbound-despatch.component.d.ts +3 -0
  18. package/lib/components/hit-inbound-invoices/hit-inbound-invoice.component.d.ts +4 -0
  19. package/lib/components/hit-invoices/hit-invoice.component.d.ts +5 -1
  20. package/lib/hit-proxy/hit-despatches/hit-despatch.service.d.ts +2 -7
  21. package/lib/hit-proxy/hit-inbound-despatches/hit-inbound-despatch.service.d.ts +5 -1
  22. package/lib/hit-proxy/hit-inbound-invoices/hit-inbound-invoice.service.d.ts +2 -4
  23. package/lib/hit-proxy/hit-invoices/hit-invoice.service.d.ts +2 -11
  24. package/lib/hit-proxy/shared/hit-shared.service.d.ts +1 -1
  25. package/package.json +1 -1
@@ -3,102 +3,51 @@ import * as i0 from "@angular/core";
3
3
  export class HitSharedService {
4
4
  constructor() {
5
5
  this.apiName = 'eDonusum';
6
- /*previewFile = (base64, filename: string = 'fatura.pdf') => {
7
- const cleanBase64 = base64.includes(',') ? base64.split(',')[1] : base64;
8
- const bytes = Uint8Array.from(atob(cleanBase64), c => c.charCodeAt(0));
9
-
10
- // File objesi blob'a filename metadata'sı ekler
11
- const file = new File([bytes], filename, { type: 'application/pdf' });
12
- const url = URL.createObjectURL(file);
13
-
14
- const newTab = window.open('', '_blank');
15
- newTab.history.pushState({}, filename, `/${filename}`);
16
- newTab.document.write(`
17
- <html>
18
- <head><title>${filename}</title></head>
19
- <body style="margin:0;overflow:hidden">
20
- <iframe
21
- src="${url}#toolbar=1"
22
- style="width:100%;height:100vh;border:none;"
23
- ></iframe>
24
- </body>
25
- </html>
26
- `);
27
-
28
- setTimeout(() => URL.revokeObjectURL(url), 60_000);
29
- }*/
30
- this.previewFile = (base64, filename = 'fatura.pdf') => {
6
+ this.previewFile = (base64, fileName = 'fatura.pdf') => {
31
7
  const cleanBase64 = base64.includes(',') ? base64.split(',')[1] : base64;
32
- const bytes = Uint8Array.from(atob(cleanBase64), c => c.charCodeAt(0));
33
- const file = new File([bytes], filename, { type: 'application/pdf' });
34
- const url = URL.createObjectURL(file);
35
- const newTab = window.open('', '_blank');
36
- newTab.history.pushState({}, filename, `/${filename}`);
37
- newTab.document.write(`<!DOCTYPE html>
38
- <html>
39
- <head>
40
- <title>${filename}</title>
41
- <style>
42
- * { margin:0; padding:0; box-sizing:border-box; }
43
- body { background:#525659; font-family:sans-serif; }
44
- #toolbar {
45
- position:fixed; top:0; left:0; right:0; height:48px;
46
- background:#323639; display:flex; align-items:center;
47
- padding:0 16px; gap:16px; z-index:99;
48
- color:white; font-size:14px;
49
- }
50
- #pages { margin-top:56px; display:flex; flex-direction:column; align-items:center; padding:16px; gap:16px; }
51
- canvas { box-shadow:0 2px 8px #0006; background:white; }
52
- </style>
53
- </head>
54
- <body>
55
- <div id="toolbar">
56
- <span>${filename}</span>
57
- <span id="pageInfo"></span>
58
- <button onclick="changePage(-1)" style="background:#555;color:white;border:none;padding:4px 10px;cursor:pointer;border-radius:4px">◀</button>
59
- <button onclick="changePage(1)" style="background:#555;color:white;border:none;padding:4px 10px;cursor:pointer;border-radius:4px">▶</button>
60
- <a href="${url}" download="${filename}"
61
- style="margin-left:auto;background:#1976d2;color:white;padding:6px 14px;border-radius:4px;text-decoration:none">
62
- İndir (${filename})
63
- </a>
64
- </div>
65
- <div id="pages"></div>
66
- <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.min.js"></script>
67
- <script>
68
- pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.worker.min.js';
69
- let currentPage = 1, totalPages = 0, pdfDoc = null;
70
-
71
- pdfjsLib.getDocument('${url}').promise.then(pdf => {
72
- pdfDoc = pdf;
73
- totalPages = pdf.numPages;
74
- renderPage(currentPage);
75
- });
76
-
77
- function renderPage(num) {
78
- pdfDoc.getPage(num).then(page => {
79
- const viewport = page.getViewport({ scale: 1.5 });
80
- const canvas = document.createElement('canvas');
81
- canvas.width = viewport.width;
82
- canvas.height = viewport.height;
83
- document.getElementById('pages').innerHTML = '';
84
- document.getElementById('pages').appendChild(canvas);
85
- page.render({ canvasContext: canvas.getContext('2d'), viewport });
86
- document.getElementById('pageInfo').textContent = num + ' / ' + totalPages;
87
- });
88
- }
89
-
90
- function changePage(delta) {
91
- const next = currentPage + delta;
92
- if (next >= 1 && next <= totalPages) {
93
- currentPage = next;
94
- renderPage(currentPage);
95
- }
96
- }
97
- </script>
98
- </body>
99
- </html>
100
- `);
101
- setTimeout(() => URL.revokeObjectURL(url), 60000);
8
+ const dataUrl = `data:application/pdf;base64,${cleanBase64}`;
9
+ const win = window.open('', '_blank');
10
+ if (!win)
11
+ return;
12
+ win.document.open();
13
+ win.document.write(`
14
+ <!doctype html>
15
+ <html>
16
+ <head>
17
+ <title>${fileName}</title>
18
+ <style>
19
+ * { margin: 0; padding: 0; box-sizing: border-box; }
20
+ body { display: flex; flex-direction: column; height: 100vh; font-family: sans-serif; }
21
+ .bar {
22
+ background: #1976d2; color: white;
23
+ padding: 6px 16px; display: flex;
24
+ align-items: center; justify-content: space-between;
25
+ flex-shrink: 0;
26
+ }
27
+ .bar span { font-size: 14px; }
28
+ .bar a {
29
+ color: white; text-decoration: none; font-size: 13px;
30
+ background: rgba(255,255,255,0.2); padding: 4px 14px;
31
+ border-radius: 4px; border: 1px solid rgba(255,255,255,0.4);
32
+ }
33
+ iframe { flex: 1; border: none; width: 100%; }
34
+ </style>
35
+ </head>
36
+ <body>
37
+ <div class="bar">
38
+ <span>📄 ${fileName}</span>
39
+ <a id="dlBtn" download="${fileName}">⬇ İndir</a>
40
+ </div>
41
+ <iframe id="previewFrame"></iframe>
42
+ <script>
43
+ const dataUrl = ${JSON.stringify(dataUrl)};
44
+ document.getElementById('previewFrame').src = dataUrl;
45
+ document.getElementById('dlBtn').href = dataUrl;
46
+ </script>
47
+ </body>
48
+ </html>
49
+ `);
50
+ win.document.close();
102
51
  };
103
52
  }
104
53
  }
@@ -110,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
110
59
  providedIn: 'root',
111
60
  }]
112
61
  }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXNoYXJlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvaGl0LXByb3h5L3NoYXJlZC9oaXQtc2hhcmVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUg3QjtRQUlJLFlBQU8sR0FBRyxVQUFVLENBQUM7UUFFdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBdUJDO1FBRUgsZ0JBQVcsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFtQixZQUFZLEVBQUUsRUFBRTtZQUN0RCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDekUsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkUsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7OztxQkFHTCxRQUFROzs7Ozs7Ozs7Ozs7Ozs7O3dCQWdCTCxRQUFROzs7OzJCQUlMLEdBQUcsZUFBZSxRQUFROzs4QkFFdkIsUUFBUTs7Ozs7Ozs7O3dDQVNFLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNkJ0QyxDQUFDLENBQUM7WUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFNLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUE7S0FHQTs7NkdBekdZLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmIsTUFBTTsyRkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSBcIkBhYnAvbmcuY29yZVwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGV2ZXhwcmVzc1Jlc3RTZXJ2aWNlIH0gZnJvbSBcIi4uL2RldmV4cHJlc3MtcXVlcnktYnVpbGRlci9kZXZleHByZXNzLXF1ZXJ5LWJ1aWxkZXJcIjtcclxuXHJcbiBcclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0U2hhcmVkU2VydmljZSB7XHJcbiAgICBhcGlOYW1lID0gJ2VEb251c3VtJztcclxuXHJcbiAgLypwcmV2aWV3RmlsZSA9IChiYXNlNjQsIGZpbGVuYW1lOiBzdHJpbmcgPSAnZmF0dXJhLnBkZicpID0+IHtcclxuICAgIGNvbnN0IGNsZWFuQmFzZTY0ID0gYmFzZTY0LmluY2x1ZGVzKCcsJykgPyBiYXNlNjQuc3BsaXQoJywnKVsxXSA6IGJhc2U2NDtcclxuICAgIGNvbnN0IGJ5dGVzID0gVWludDhBcnJheS5mcm9tKGF0b2IoY2xlYW5CYXNlNjQpLCBjID0+IGMuY2hhckNvZGVBdCgwKSk7XHJcbiAgICBcclxuICAgIC8vIEZpbGUgb2JqZXNpIGJsb2InYSBmaWxlbmFtZSBtZXRhZGF0YSdzxLEgZWtsZXJcclxuICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbYnl0ZXNdLCBmaWxlbmFtZSwgeyB0eXBlOiAnYXBwbGljYXRpb24vcGRmJyB9KTtcclxuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7XHJcblxyXG4gICAgY29uc3QgbmV3VGFiID0gd2luZG93Lm9wZW4oJycsICdfYmxhbmsnKTtcclxuICAgIG5ld1RhYi5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwgZmlsZW5hbWUsIGAvJHtmaWxlbmFtZX1gKTtcclxuICAgIG5ld1RhYi5kb2N1bWVudC53cml0ZShgXHJcbiAgICAgICAgPGh0bWw+XHJcbiAgICAgICAgPGhlYWQ+PHRpdGxlPiR7ZmlsZW5hbWV9PC90aXRsZT48L2hlYWQ+XHJcbiAgICAgICAgPGJvZHkgc3R5bGU9XCJtYXJnaW46MDtvdmVyZmxvdzpoaWRkZW5cIj5cclxuICAgICAgICAgICAgPGlmcmFtZSBcclxuICAgICAgICAgICAgICAgIHNyYz1cIiR7dXJsfSN0b29sYmFyPTFcIiBcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6MTAwJTtoZWlnaHQ6MTAwdmg7Ym9yZGVyOm5vbmU7XCJcclxuICAgICAgICAgICAgPjwvaWZyYW1lPlxyXG4gICAgICAgIDwvYm9keT5cclxuICAgICAgICA8L2h0bWw+XHJcbiAgICBgKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IFVSTC5yZXZva2VPYmplY3RVUkwodXJsKSwgNjBfMDAwKTtcclxufSovXHJcblxyXG5wcmV2aWV3RmlsZSA9IChiYXNlNjQsIGZpbGVuYW1lOiBzdHJpbmcgPSAnZmF0dXJhLnBkZicpID0+IHtcclxuICAgIGNvbnN0IGNsZWFuQmFzZTY0ID0gYmFzZTY0LmluY2x1ZGVzKCcsJykgPyBiYXNlNjQuc3BsaXQoJywnKVsxXSA6IGJhc2U2NDtcclxuICAgIGNvbnN0IGJ5dGVzID0gVWludDhBcnJheS5mcm9tKGF0b2IoY2xlYW5CYXNlNjQpLCBjID0+IGMuY2hhckNvZGVBdCgwKSk7XHJcbiAgICBjb25zdCBmaWxlID0gbmV3IEZpbGUoW2J5dGVzXSwgZmlsZW5hbWUsIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfSk7XHJcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xyXG5cclxuICAgIGNvbnN0IG5ld1RhYiA9IHdpbmRvdy5vcGVuKCcnLCAnX2JsYW5rJyk7XHJcbiAgICBuZXdUYWIuaGlzdG9yeS5wdXNoU3RhdGUoe30sIGZpbGVuYW1lLCBgLyR7ZmlsZW5hbWV9YCk7XHJcbiAgICBuZXdUYWIuZG9jdW1lbnQud3JpdGUoYDwhRE9DVFlQRSBodG1sPlxyXG4gICAgICAgIDxodG1sPlxyXG4gICAgICAgIDxoZWFkPlxyXG4gICAgICAgICAgICA8dGl0bGU+JHtmaWxlbmFtZX08L3RpdGxlPlxyXG4gICAgICAgICAgICA8c3R5bGU+XHJcbiAgICAgICAgICAgICAgICAqIHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYm94LXNpemluZzpib3JkZXItYm94OyB9XHJcbiAgICAgICAgICAgICAgICBib2R5IHsgYmFja2dyb3VuZDojNTI1NjU5OyBmb250LWZhbWlseTpzYW5zLXNlcmlmOyB9XHJcbiAgICAgICAgICAgICAgICAjdG9vbGJhciB7IFxyXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyBoZWlnaHQ6NDhweDtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiMzMjM2Mzk7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOjAgMTZweDsgZ2FwOjE2cHg7IHotaW5kZXg6OTk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6d2hpdGU7IGZvbnQtc2l6ZToxNHB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgI3BhZ2VzIHsgbWFyZ2luLXRvcDo1NnB4OyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBwYWRkaW5nOjE2cHg7IGdhcDoxNnB4OyB9XHJcbiAgICAgICAgICAgICAgICBjYW52YXMgeyBib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwNjsgYmFja2dyb3VuZDp3aGl0ZTsgfVxyXG4gICAgICAgICAgICA8L3N0eWxlPlxyXG4gICAgICAgIDwvaGVhZD5cclxuICAgICAgICA8Ym9keT5cclxuICAgICAgICAgICAgPGRpdiBpZD1cInRvb2xiYXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPiR7ZmlsZW5hbWV9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJwYWdlSW5mb1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz1cImNoYW5nZVBhZ2UoLTEpXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiM1NTU7Y29sb3I6d2hpdGU7Ym9yZGVyOm5vbmU7cGFkZGluZzo0cHggMTBweDtjdXJzb3I6cG9pbnRlcjtib3JkZXItcmFkaXVzOjRweFwiPuKXgDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPVwiY2hhbmdlUGFnZSgxKVwiIHN0eWxlPVwiYmFja2dyb3VuZDojNTU1O2NvbG9yOndoaXRlO2JvcmRlcjpub25lO3BhZGRpbmc6NHB4IDEwcHg7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo0cHhcIj7ilrY8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIke3VybH1cIiBkb3dubG9hZD1cIiR7ZmlsZW5hbWV9XCIgXHJcbiAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OmF1dG87YmFja2dyb3VuZDojMTk3NmQyO2NvbG9yOndoaXRlO3BhZGRpbmc6NnB4IDE0cHg7Ym9yZGVyLXJhZGl1czo0cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgIOKshyDEsG5kaXIgKCR7ZmlsZW5hbWV9KVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBpZD1cInBhZ2VzXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxzY3JpcHQgc3JjPVwiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvcGRmLmpzLzMuMTEuMTc0L3BkZi5taW4uanNcIj48L3NjcmlwdD5cclxuICAgICAgICAgICAgPHNjcmlwdD5cclxuICAgICAgICAgICAgICAgIHBkZmpzTGliLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjID0gJ2h0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL3BkZi5qcy8zLjExLjE3NC9wZGYud29ya2VyLm1pbi5qcyc7XHJcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudFBhZ2UgPSAxLCB0b3RhbFBhZ2VzID0gMCwgcGRmRG9jID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgICAgICBwZGZqc0xpYi5nZXREb2N1bWVudCgnJHt1cmx9JykucHJvbWlzZS50aGVuKHBkZiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGRmRG9jID0gcGRmO1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsUGFnZXMgPSBwZGYubnVtUGFnZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyUGFnZShjdXJyZW50UGFnZSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiByZW5kZXJQYWdlKG51bSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBkZkRvYy5nZXRQYWdlKG51bSkudGhlbihwYWdlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnQgPSBwYWdlLmdldFZpZXdwb3J0KHsgc2NhbGU6IDEuNSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IHZpZXdwb3J0LndpZHRoO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gdmlld3BvcnQuaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFnZXMnKS5pbm5lckhUTUwgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhZ2VzJykuYXBwZW5kQ2hpbGQoY2FudmFzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS5yZW5kZXIoeyBjYW52YXNDb250ZXh0OiBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSwgdmlld3BvcnQgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWdlSW5mbycpLnRleHRDb250ZW50ID0gbnVtICsgJyAvICcgKyB0b3RhbFBhZ2VzO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYW5nZVBhZ2UoZGVsdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gY3VycmVudFBhZ2UgKyBkZWx0YTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobmV4dCA+PSAxICYmIG5leHQgPD0gdG90YWxQYWdlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFnZSA9IG5leHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlclBhZ2UoY3VycmVudFBhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9zY3JpcHQ+XHJcbiAgICAgICAgPC9ib2R5PlxyXG4gICAgICAgIDwvaHRtbD5cclxuICAgIGApO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4gVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpLCA2MF8wMDApO1xyXG59XHJcblxyXG5cclxufVxyXG5cclxuIl19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXNoYXJlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvaGl0LXByb3h5L3NoYXJlZC9oaXQtc2hhcmVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUg3QjtRQUlJLFlBQU8sR0FBRyxVQUFVLENBQUM7UUFFdEIsZ0JBQVcsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLEdBQUcsWUFBWSxFQUFFLEVBQUU7WUFDbkQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBRXpFLE1BQU0sT0FBTyxHQUFHLCtCQUErQixXQUFXLEVBQUUsQ0FBQztZQUU3RCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPO1lBRWpCLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Ozs7aUJBSUosUUFBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3FCQXFCSixRQUFRO29DQUNPLFFBQVE7Ozs7NEJBSWhCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDOzs7Ozs7R0FNaEQsQ0FBQyxDQUFDO1lBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUE7S0FFQTs7NkdBcERZLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmIsTUFBTTsyRkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSBcIkBhYnAvbmcuY29yZVwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGV2ZXhwcmVzc1Jlc3RTZXJ2aWNlIH0gZnJvbSBcIi4uL2RldmV4cHJlc3MtcXVlcnktYnVpbGRlci9kZXZleHByZXNzLXF1ZXJ5LWJ1aWxkZXJcIjtcclxuXHJcbiBcclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0U2hhcmVkU2VydmljZSB7XHJcbiAgICBhcGlOYW1lID0gJ2VEb251c3VtJztcclxuXHJcbiAgIHByZXZpZXdGaWxlID0gKGJhc2U2NCwgZmlsZU5hbWUgPSAnZmF0dXJhLnBkZicpID0+IHtcclxuICBjb25zdCBjbGVhbkJhc2U2NCA9IGJhc2U2NC5pbmNsdWRlcygnLCcpID8gYmFzZTY0LnNwbGl0KCcsJylbMV0gOiBiYXNlNjQ7XHJcblxyXG4gIGNvbnN0IGRhdGFVcmwgPSBgZGF0YTphcHBsaWNhdGlvbi9wZGY7YmFzZTY0LCR7Y2xlYW5CYXNlNjR9YDtcclxuXHJcbiAgY29uc3Qgd2luID0gd2luZG93Lm9wZW4oJycsICdfYmxhbmsnKTtcclxuICBpZiAoIXdpbikgcmV0dXJuO1xyXG5cclxuICB3aW4uZG9jdW1lbnQub3BlbigpO1xyXG4gIHdpbi5kb2N1bWVudC53cml0ZShgXHJcbiAgICA8IWRvY3R5cGUgaHRtbD5cclxuICAgIDxodG1sPlxyXG4gICAgICA8aGVhZD5cclxuICAgICAgICA8dGl0bGU+JHtmaWxlTmFtZX08L3RpdGxlPlxyXG4gICAgICAgICAgPHN0eWxlPlxyXG4gICAgICAgICAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxyXG4gICAgICAgICAgYm9keSB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGhlaWdodDogMTAwdmg7IGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyB9XHJcbiAgICAgICAgICAuYmFyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogIzE5NzZkMjsgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA2cHggMTZweDsgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC5iYXIgc3BhbiB7IGZvbnQtc2l6ZTogMTRweDsgfVxyXG4gICAgICAgICAgLmJhciBhIHtcclxuICAgICAgICAgICAgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIpOyBwYWRkaW5nOiA0cHggMTRweDtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZnJhbWUgeyBmbGV4OiAxOyBib3JkZXI6IG5vbmU7IHdpZHRoOiAxMDAlOyB9XHJcbiAgICAgICAgPC9zdHlsZT5cclxuICAgICAgPC9oZWFkPlxyXG4gICAgIDxib2R5PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJiYXJcIj5cclxuICAgICAgICAgIDxzcGFuPvCfk4QgJHtmaWxlTmFtZX08L3NwYW4+XHJcbiAgICAgICAgICA8YSBpZD1cImRsQnRuXCIgZG93bmxvYWQ9XCIke2ZpbGVOYW1lfVwiPuKshyDEsG5kaXI8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGlmcmFtZSBpZD1cInByZXZpZXdGcmFtZVwiPjwvaWZyYW1lPlxyXG4gICAgICAgIDxzY3JpcHQ+XHJcbiAgICAgICAgICBjb25zdCBkYXRhVXJsID0gJHtKU09OLnN0cmluZ2lmeShkYXRhVXJsKX07XHJcbiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJldmlld0ZyYW1lJykuc3JjID0gZGF0YVVybDtcclxuICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkbEJ0bicpLmhyZWYgPSBkYXRhVXJsO1xyXG4gICAgICAgIDwvc2NyaXB0PlxyXG4gICAgICA8L2JvZHk+XHJcbiAgICA8L2h0bWw+XHJcbiAgYCk7XHJcbiAgd2luLmRvY3VtZW50LmNsb3NlKCk7XHJcbn1cclxuICAgICBcclxufVxyXG4iXX0=