@ohioepa/oepa-ui-lib 1.2.26 → 1.3.0

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.
@@ -5,7 +5,7 @@ import { OepaComponentIdService } from '@ohioepa/oepa-common-lib';
5
5
  import { EdocAttachmentService } from './edoc-attachment.service';
6
6
  import { BsModalService } from 'ngx-bootstrap/modal';
7
7
  import { Subject } from 'rxjs';
8
- import { OepaFileUtilService } from '../oepa-file-utils/oepa-file-util.service';
8
+ import { OepaFileUtilService } from '@ohioepa/oepa-common-lib';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class EdocAttachmentComponent implements OnInit {
11
11
  private idService;
@@ -2,7 +2,7 @@ import { OnInit, EventEmitter } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
3
  import { BsModalService } from 'ngx-bootstrap/modal';
4
4
  import { OepaAttachment, OepaParserReport, OepaComponentIdService } from '@ohioepa/oepa-common-lib';
5
- import { OepaFileUtilService } from '../oepa-file-utils/oepa-file-util.service';
5
+ import { OepaFileUtilService } from '@ohioepa/oepa-common-lib';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class FileUploadComponent implements OnInit {
8
8
  private idService;
@@ -3,7 +3,7 @@ import { FormGroup } from '@angular/forms';
3
3
  import { BsModalService } from 'ngx-bootstrap/modal';
4
4
  import { OepaComponentIdService } from '@ohioepa/oepa-common-lib';
5
5
  import { LynxAttachment } from '@ohioepa/oepa-ebiz-lib';
6
- import { OepaFileUtilService } from '../oepa-file-utils/oepa-file-util.service';
6
+ import { OepaFileUtilService } from '@ohioepa/oepa-common-lib';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare class LynxImageUploadComponent implements OnInit {
9
9
  private idService;
@@ -2,7 +2,7 @@ import { OnInit, OnChanges, SimpleChanges, EventEmitter } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
3
  import { BsModalService } from 'ngx-bootstrap/modal';
4
4
  import { OepaAttachment, OepaParserReport, OepaComponentIdService } from '@ohioepa/oepa-common-lib';
5
- import { OepaFileUtilService } from '../oepa-file-utils/oepa-file-util.service';
5
+ import { OepaFileUtilService } from '@ohioepa/oepa-common-lib';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class MultiFileUploadComponent implements OnInit, OnChanges {
8
8
  private idService;
@@ -17,7 +17,7 @@ import { OepaPColumn } from '../oepa-p-column';
17
17
  import { TableDataCellClickEvent } from '../table-data-cell/table-data-cell-click-event';
18
18
  import { Subject } from 'rxjs';
19
19
  import { OepaTableFilter } from '../oepa-table-filter';
20
- import { OepaFileUtilService } from '../../oepa-file-utils/oepa-file-util.service';
20
+ import { OepaFileUtilService } from '@ohioepa/oepa-common-lib';
21
21
  import * as i0 from "@angular/core";
22
22
  export declare class PTableComponent implements OnInit, AfterViewChecked {
23
23
  private sanitizer;
@@ -14,7 +14,7 @@ import { OepaTemplateInfo } from '@ohioepa/oepa-common-lib';
14
14
  import { TableService } from './table.service';
15
15
  import { OepaTableSortCriterion } from './oepa-table-sort-criterion';
16
16
  import { PageChangedEvent } from 'ngx-bootstrap/pagination';
17
- import { OepaFileUtilService } from '../oepa-file-utils/oepa-file-util.service';
17
+ import { OepaFileUtilService } from '@ohioepa/oepa-common-lib';
18
18
  import * as i0 from "@angular/core";
19
19
  export declare class TableComponent implements OnInit {
20
20
  private sanitizer;
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ohioepa/oepa-ui-lib",
3
- "version": "1.2.26",
3
+ "version": "1.3.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.13",
6
6
  "@angular/core": "^18.2.13"
package/public-api.d.ts CHANGED
@@ -109,7 +109,6 @@ export * from './lib/table/oepa-table-cell-img-src.pipe';
109
109
  export * from './lib/zip-code/zip-code.component';
110
110
  export * from './lib/account-search-input/account-search.service';
111
111
  export * from './lib/oepa-forms.service';
112
- export * from './lib/oepa-file-utils/oepa-file-util.service';
113
112
  export * from './lib/oepa-user-account/oepa-user-account.service';
114
113
  export * from './lib/parameter/parameter';
115
114
  export * from './lib/parameter/parameter.service';
@@ -1,236 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { HttpHeaders } from '@angular/common/http';
3
- import { map } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common/http";
6
- /**
7
- * NOTE: Needed this because of problems importing mime or mime-types library
8
- */
9
- const MIME_TYPES = {
10
- '.aac': 'audio/aac',
11
- '.abw': 'application/x-abiword',
12
- '.arc': 'application/octet-stream',
13
- '.avi': 'video/x-msvideo',
14
- '.azw': 'application/vnd.amazon.ebook',
15
- '.bin': 'application/octet-stream',
16
- '.bmp': 'image/bmp',
17
- '.bz': 'application/x-bzip',
18
- '.bz2': 'application/x-bzip2',
19
- '.csh': 'application/x-csh',
20
- '.css': 'text/css',
21
- '.csv': 'text/csv',
22
- '.doc': 'application/msword',
23
- '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
24
- '.eot': 'application/vnd.ms-fontobject',
25
- '.epub': 'application/epub+zip',
26
- '.es': 'application/ecmascript',
27
- '.gif': 'image/gif',
28
- '.htm': 'text/html',
29
- '.html': 'text/html',
30
- '.ico': 'image/x-icon',
31
- '.ics': 'text/calendar',
32
- '.jar': 'application/java-archive',
33
- '.jpeg': 'image/jpeg',
34
- '.jpg': 'image/jpeg',
35
- '.js': 'application/javascript',
36
- '.json': 'application/json',
37
- '.mid': 'audio/midi audio/x-midi',
38
- '.midi': 'audio/midi audio/x-midi',
39
- '.mpeg': 'video/mpeg',
40
- '.mpkg': 'application/vnd.apple.installer+xml',
41
- '.odp': 'application/vnd.oasis.opendocument.presentation',
42
- '.ods': 'application/vnd.oasis.opendocument.spreadsheet',
43
- '.odt': 'application/vnd.oasis.opendocument.text',
44
- '.oga': 'audio/ogg',
45
- '.ogv': 'video/ogg',
46
- '.ogx': 'application/ogg',
47
- '.otf': 'font/otf',
48
- '.png': 'image/png',
49
- '.pdf': 'application/pdf',
50
- '.ppt': 'application/vnd.ms-powerpoint',
51
- '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
52
- '.rar': 'application/x-rar-compressed',
53
- '.rtf': 'application/rtf',
54
- '.sh': 'application/x-sh',
55
- '.svg': 'image/svg+xml',
56
- '.swf': 'application/x-shockwave-flash',
57
- '.tar': 'application/x-tar',
58
- '.tif': 'image/tiff',
59
- '.tiff': 'image/tiff',
60
- '.ts': 'application/typescript',
61
- '.ttf': 'font/ttf',
62
- '.txt': 'text/plain',
63
- '.vsd': 'application/vnd.visio',
64
- '.wav': 'audio/wav',
65
- '.weba': 'audio/webm',
66
- '.webm': 'video/webm',
67
- '.webp': 'image/webp',
68
- '.woff': 'font/woff',
69
- '.woff2': 'font/woff2',
70
- '.xhtml': 'application/xhtml+xml',
71
- '.xls': 'application/vnd.ms-excel',
72
- '.xlsm': 'application/vnd.ms-excel.sheet.macroEnabled.12',
73
- '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
74
- '.xml': 'application/xml',
75
- '.xul': 'application/vnd.mozilla.xul+xml',
76
- '.zip': 'application/zip',
77
- '.3gp': 'video/3gpp',
78
- '.7z': 'application/x-7z-compressed'
79
- };
80
- /**
81
- * Collection of methods for uploading/downloading and displaying files.
82
- */
83
- export class OepaFileUtilService {
84
- http;
85
- uploadUrl = '/file/upload/url';
86
- fileUtilUrl = '/ebiz/api/v2/fileutil';
87
- downloadUrl = this.fileUtilUrl + '/downloadAttachment';
88
- app = '';
89
- constructor(http, ebizRootURL, app) {
90
- this.http = http;
91
- this.uploadUrl = ebizRootURL + this.uploadUrl;
92
- this.fileUtilUrl = ebizRootURL + this.fileUtilUrl;
93
- this.downloadUrl = ebizRootURL + this.downloadUrl;
94
- this.app = app;
95
- }
96
- /**
97
- * Return a single OepaAttachment object from the contents of file.
98
- * The file will have been saved on the server if this method succeeds.
99
- * @param file
100
- */
101
- uploadFile(file) {
102
- const attachment = {};
103
- attachment.userFilename = file.name;
104
- // return new Observable<OepaAttachment>((observer) => observer.next(attachment));
105
- const headers = new HttpHeaders();
106
- const formData = new FormData();
107
- formData.append('file', file, file.name);
108
- /** No need to include Content-Type in Angular 4 */
109
- headers.append('Content-Type', 'multipart/form-data');
110
- headers.append('Accept', 'application/json');
111
- let params = {
112
- 'app': this.app
113
- };
114
- return this.http.post(this.uploadUrl, formData, { headers: headers, params: params })
115
- .pipe(map((response) => {
116
- let uploadedAttachment = {};
117
- const attachments = response['attachments'];
118
- if (attachments.length === 1) {
119
- uploadedAttachment = attachments[0];
120
- }
121
- return uploadedAttachment;
122
- }));
123
- }
124
- /**
125
- * Download an attachment from the server. The location and systemFileName
126
- * attributes of the attachment must be set and represent a valid file
127
- * on the file system.
128
- * @param attachment
129
- */
130
- downloadAttachment(attachment) {
131
- const headers = new HttpHeaders();
132
- let params = {
133
- 'app': this.app
134
- };
135
- headers.append('Content-type', 'application/json;odata=verbose');
136
- return this.http.post(this.downloadUrl, attachment, { headers: headers, responseType: 'blob', params: params });
137
- }
138
- /**
139
- * Open the file represented by data in the browser.
140
- * @param data binary file data.
141
- * @param mimeType the file's mime type.
142
- * @param fileName optional name for the downloaded file.
143
- */
144
- downloadFile(data, mimeType, fileName) {
145
- if (data && mimeType) {
146
- const blob = new Blob([data], { type: mimeType });
147
- const url = window.URL.createObjectURL(blob);
148
- if (!fileName || fileName.length === 0) {
149
- window.open(url);
150
- }
151
- else {
152
- this.downLoadFileWithFileName(url, fileName);
153
- }
154
- }
155
- else {
156
- console.log('ERROR: downloadFile: missing data or mimeType');
157
- }
158
- }
159
- /**
160
- * Utility method for downloading a file with a specific name.
161
- * @param url
162
- * @param fileName
163
- */
164
- downLoadFileWithFileName(url, fileName) {
165
- const a = document.createElement('a');
166
- document.body.appendChild(a);
167
- a.setAttribute('style', 'display: none');
168
- a.setAttribute('href', url);
169
- a.setAttribute('download', fileName);
170
- a.click();
171
- }
172
- /**
173
- * Helper method to see if current browser is internet explorer
174
- */
175
- browserIsIE() {
176
- const ua = window.navigator.userAgent;
177
- const msie = ua.indexOf('MSIE ');
178
- if (msie > -1) {
179
- return true;
180
- }
181
- const trident = ua.indexOf('Trident/');
182
- if (trident > -1) {
183
- return true;
184
- }
185
- const edge = ua.indexOf('Edge/');
186
- if (edge > -1) {
187
- return true;
188
- }
189
- return false;
190
- }
191
- /**
192
- * Determine the mime time for fileName (based on its extension).
193
- * @param fileName
194
- */
195
- mimeTypeForFile(fileName) {
196
- let mimeType;
197
- if (fileName && fileName.lastIndexOf('.') > -1) {
198
- const ext = fileName.substring(fileName.lastIndexOf('.'));
199
- mimeType = MIME_TYPES[ext.toLowerCase()];
200
- }
201
- if (!mimeType) {
202
- console.log('ERROR: mimeTypeForFile: No mime type found for file: ' + fileName);
203
- }
204
- return mimeType;
205
- }
206
- mimeTypeForExtension(extension) {
207
- let mimeType;
208
- let ext;
209
- if (extension) {
210
- ext = extension.toLowerCase();
211
- if (!ext.startsWith('.')) {
212
- ext = '.' + ext;
213
- }
214
- mimeType = MIME_TYPES[ext];
215
- }
216
- if (!mimeType) {
217
- console.log('ERROR: mimeTypeForExtension: No mime type found for extension: ' + extension);
218
- }
219
- return mimeType;
220
- }
221
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OepaFileUtilService, deps: [{ token: i1.HttpClient }, { token: 'ebizRootURL' }, { token: 'app' }], target: i0.ɵɵFactoryTarget.Injectable });
222
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OepaFileUtilService, providedIn: 'root' });
223
- }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OepaFileUtilService, decorators: [{
225
- type: Injectable,
226
- args: [{
227
- providedIn: 'root'
228
- }]
229
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
230
- type: Inject,
231
- args: ['ebizRootURL']
232
- }] }, { type: undefined, decorators: [{
233
- type: Inject,
234
- args: ['app']
235
- }] }] });
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2VwYS1maWxlLXV0aWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvb2VwYS1maWxlLXV0aWxzL29lcGEtZmlsZS11dGlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBR3JDOztHQUVHO0FBQ0gsTUFBTyxVQUFVLEdBQU87SUFDeEIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsTUFBTSxFQUFFLHVCQUF1QjtJQUMvQixNQUFNLEVBQUUsMEJBQTBCO0lBQ2xDLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsTUFBTSxFQUFFLDhCQUE4QjtJQUN0QyxNQUFNLEVBQUUsMEJBQTBCO0lBQ2xDLE1BQU0sRUFBRSxXQUFXO0lBQ25CLEtBQUssRUFBRSxvQkFBb0I7SUFDM0IsTUFBTSxFQUFFLHFCQUFxQjtJQUM3QixNQUFNLEVBQUUsbUJBQW1CO0lBQzNCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLE1BQU0sRUFBRSxvQkFBb0I7SUFDNUIsT0FBTyxFQUFFLHlFQUF5RTtJQUNsRixNQUFNLEVBQUUsK0JBQStCO0lBQ3ZDLE9BQU8sRUFBRSxzQkFBc0I7SUFDL0IsS0FBSyxFQUFFLHdCQUF3QjtJQUMvQixNQUFNLEVBQUUsV0FBVztJQUNuQixNQUFNLEVBQUUsV0FBVztJQUNuQixPQUFPLEVBQUUsV0FBVztJQUNwQixNQUFNLEVBQUUsY0FBYztJQUN0QixNQUFNLEVBQUUsZUFBZTtJQUN2QixNQUFNLEVBQUUsMEJBQTBCO0lBQ2xDLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLEtBQUssRUFBRSx3QkFBd0I7SUFDL0IsT0FBTyxFQUFFLGtCQUFrQjtJQUMzQixNQUFNLEVBQUUseUJBQXlCO0lBQ2pDLE9BQU8sRUFBRSx5QkFBeUI7SUFDbEMsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLHFDQUFxQztJQUM5QyxNQUFNLEVBQUUsaURBQWlEO0lBQ3pELE1BQU0sRUFBRSxnREFBZ0Q7SUFDeEQsTUFBTSxFQUFFLHlDQUF5QztJQUNqRCxNQUFNLEVBQUUsV0FBVztJQUNuQixNQUFNLEVBQUUsV0FBVztJQUNuQixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsTUFBTSxFQUFFLCtCQUErQjtJQUN2QyxPQUFPLEVBQUUsMkVBQTJFO0lBQ3BGLE1BQU0sRUFBRSw4QkFBOEI7SUFDdEMsTUFBTSxFQUFFLGlCQUFpQjtJQUN6QixLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLE1BQU0sRUFBRSwrQkFBK0I7SUFDdkMsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixNQUFNLEVBQUUsWUFBWTtJQUNwQixPQUFPLEVBQUUsWUFBWTtJQUNyQixLQUFLLEVBQUUsd0JBQXdCO0lBQy9CLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLE1BQU0sRUFBRSxZQUFZO0lBQ3BCLE1BQU0sRUFBRSx1QkFBdUI7SUFDL0IsTUFBTSxFQUFFLFdBQVc7SUFDbkIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsUUFBUSxFQUFFLFlBQVk7SUFDdEIsUUFBUSxFQUFFLHVCQUF1QjtJQUNqQyxNQUFNLEVBQUUsMEJBQTBCO0lBQ2xDLE9BQU8sRUFBRSxnREFBZ0Q7SUFDekQsT0FBTyxFQUFFLG1FQUFtRTtJQUM1RSxNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLE1BQU0sRUFBRSxpQ0FBaUM7SUFDekMsTUFBTSxFQUFFLGlCQUFpQjtJQUN6QixNQUFNLEVBQUUsWUFBWTtJQUNwQixLQUFLLEVBQUUsNkJBQTZCO0NBQ25DLENBQUM7QUFJRjs7R0FFRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFNVjtJQUxaLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQztJQUMvQixXQUFXLEdBQUcsdUJBQXVCLENBQUE7SUFDckMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUM7SUFDdkQsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUVqQixZQUFvQixJQUFnQixFQUNYLFdBQW1CLEVBQzNCLEdBQVc7UUFGUixTQUFJLEdBQUosSUFBSSxDQUFZO1FBR2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2xELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksVUFBVSxDQUFDLElBQVU7UUFDMUIsTUFBTSxVQUFVLEdBQW1CLEVBQUUsQ0FBQztRQUN0QyxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDcEMsa0ZBQWtGO1FBQ2xGLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEMsTUFBTSxRQUFRLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMxQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLG1EQUFtRDtRQUNuRCxPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDN0MsSUFBSSxNQUFNLEdBQU87WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDaEIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNwRixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBWSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxrQkFBa0IsR0FBbUIsRUFBRSxDQUFDO1lBQzVDLE1BQU0sV0FBVyxHQUEwQixRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkUsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3QixrQkFBa0IsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUNELE9BQU8sa0JBQWtCLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGtCQUFrQixDQUFDLFVBQTBCO1FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxNQUFNLEdBQU87WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDaEIsQ0FBQztRQUNGLE9BQU8sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLGdDQUFnQyxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxZQUFZLENBQUMsSUFBUyxFQUFFLFFBQWdCLEVBQUUsUUFBaUI7UUFDaEUsSUFBSSxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssd0JBQXdCLENBQUMsR0FBVyxFQUFFLFFBQWdCO1FBQzVELE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZUFBZSxDQUFDLFFBQWdCO1FBQ3JDLElBQUksUUFBaUIsQ0FBQztRQUN0QixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0MsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUQsUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1REFBdUQsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVNLG9CQUFvQixDQUFDLFNBQWlCO1FBQzNDLElBQUksUUFBaUIsQ0FBQztRQUN0QixJQUFJLEdBQVcsQ0FBQztRQUNoQixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsR0FBRyxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN6QixHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNsQixDQUFDO1lBQ0QsUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpRUFBaUUsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUM3RixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzt3R0FqSlUsbUJBQW1CLDRDQU9wQixhQUFhLGFBQ2IsS0FBSzs0R0FSSixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBUUksTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9lcGFBdHRhY2htZW50IH0gZnJvbSAnQG9oaW9lcGEvb2VwYS1jb21tb24tbGliJztcblxuLyoqXG4gKiBOT1RFOiBOZWVkZWQgdGhpcyBiZWNhdXNlIG9mIHByb2JsZW1zIGltcG9ydGluZyBtaW1lIG9yIG1pbWUtdHlwZXMgbGlicmFyeVxuICovXG5jb25zdCAgTUlNRV9UWVBFUzphbnkgPSB7XG4nLmFhYyc6ICdhdWRpby9hYWMnLFxuJy5hYncnOiAnYXBwbGljYXRpb24veC1hYml3b3JkJyxcbicuYXJjJzogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4nLmF2aSc6ICd2aWRlby94LW1zdmlkZW8nLFxuJy5hencnOiAnYXBwbGljYXRpb24vdm5kLmFtYXpvbi5lYm9vaycsXG4nLmJpbic6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLFxuJy5ibXAnOiAnaW1hZ2UvYm1wJyxcbicuYnonOiAnYXBwbGljYXRpb24veC1iemlwJyxcbicuYnoyJzogJ2FwcGxpY2F0aW9uL3gtYnppcDInLFxuJy5jc2gnOiAnYXBwbGljYXRpb24veC1jc2gnLFxuJy5jc3MnOiAndGV4dC9jc3MnLFxuJy5jc3YnOiAndGV4dC9jc3YnLFxuJy5kb2MnOiAnYXBwbGljYXRpb24vbXN3b3JkJyxcbicuZG9jeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXG4nLmVvdCc6ICdhcHBsaWNhdGlvbi92bmQubXMtZm9udG9iamVjdCcsXG4nLmVwdWInOiAnYXBwbGljYXRpb24vZXB1Yit6aXAnLFxuJy5lcyc6ICdhcHBsaWNhdGlvbi9lY21hc2NyaXB0JyxcbicuZ2lmJzogJ2ltYWdlL2dpZicsXG4nLmh0bSc6ICd0ZXh0L2h0bWwnLFxuJy5odG1sJzogJ3RleHQvaHRtbCcsXG4nLmljbyc6ICdpbWFnZS94LWljb24nLFxuJy5pY3MnOiAndGV4dC9jYWxlbmRhcicsXG4nLmphcic6ICdhcHBsaWNhdGlvbi9qYXZhLWFyY2hpdmUnLFxuJy5qcGVnJzogJ2ltYWdlL2pwZWcnLFxuJy5qcGcnOiAnaW1hZ2UvanBlZycsXG4nLmpzJzogJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnLFxuJy5qc29uJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuJy5taWQnOiAnYXVkaW8vbWlkaSBhdWRpby94LW1pZGknLFxuJy5taWRpJzogJ2F1ZGlvL21pZGkgYXVkaW8veC1taWRpJyxcbicubXBlZyc6ICd2aWRlby9tcGVnJyxcbicubXBrZyc6ICdhcHBsaWNhdGlvbi92bmQuYXBwbGUuaW5zdGFsbGVyK3htbCcsXG4nLm9kcCc6ICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnByZXNlbnRhdGlvbicsXG4nLm9kcyc6ICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0Jyxcbicub2R0JzogJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dCcsXG4nLm9nYSc6ICdhdWRpby9vZ2cnLFxuJy5vZ3YnOiAndmlkZW8vb2dnJyxcbicub2d4JzogJ2FwcGxpY2F0aW9uL29nZycsXG4nLm90Zic6ICdmb250L290ZicsXG4nLnBuZyc6ICdpbWFnZS9wbmcnLFxuJy5wZGYnOiAnYXBwbGljYXRpb24vcGRmJyxcbicucHB0JzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JyxcbicucHB0eCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJyxcbicucmFyJzogJ2FwcGxpY2F0aW9uL3gtcmFyLWNvbXByZXNzZWQnLFxuJy5ydGYnOiAnYXBwbGljYXRpb24vcnRmJyxcbicuc2gnOiAnYXBwbGljYXRpb24veC1zaCcsXG4nLnN2Zyc6ICdpbWFnZS9zdmcreG1sJyxcbicuc3dmJzogJ2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJyxcbicudGFyJzogJ2FwcGxpY2F0aW9uL3gtdGFyJyxcbicudGlmJzogJ2ltYWdlL3RpZmYnLFxuJy50aWZmJzogJ2ltYWdlL3RpZmYnLFxuJy50cyc6ICdhcHBsaWNhdGlvbi90eXBlc2NyaXB0JyxcbicudHRmJzogJ2ZvbnQvdHRmJyxcbicudHh0JzogJ3RleHQvcGxhaW4nLFxuJy52c2QnOiAnYXBwbGljYXRpb24vdm5kLnZpc2lvJyxcbicud2F2JzogJ2F1ZGlvL3dhdicsXG4nLndlYmEnOiAnYXVkaW8vd2VibScsXG4nLndlYm0nOiAndmlkZW8vd2VibScsXG4nLndlYnAnOiAnaW1hZ2Uvd2VicCcsXG4nLndvZmYnOiAnZm9udC93b2ZmJyxcbicud29mZjInOiAnZm9udC93b2ZmMicsXG4nLnhodG1sJzogJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsXG4nLnhscyc6ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuJy54bHNtJzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5tYWNyb0VuYWJsZWQuMTInLFxuJy54bHN4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbicueG1sJzogJ2FwcGxpY2F0aW9uL3htbCcsXG4nLnh1bCc6ICdhcHBsaWNhdGlvbi92bmQubW96aWxsYS54dWwreG1sJyxcbicuemlwJzogJ2FwcGxpY2F0aW9uL3ppcCcsXG4nLjNncCc6ICd2aWRlby8zZ3BwJyxcbicuN3onOiAnYXBwbGljYXRpb24veC03ei1jb21wcmVzc2VkJ1xufTtcblxuZGVjbGFyZSB2YXIgcmVxdWlyZTogYW55O1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgbWV0aG9kcyBmb3IgdXBsb2FkaW5nL2Rvd25sb2FkaW5nIGFuZCBkaXNwbGF5aW5nIGZpbGVzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBPZXBhRmlsZVV0aWxTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB1cGxvYWRVcmwgPSAnL2ZpbGUvdXBsb2FkL3VybCc7XG4gIHByaXZhdGUgZmlsZVV0aWxVcmwgPSAnL2ViaXovYXBpL3YyL2ZpbGV1dGlsJ1xuICBwcml2YXRlIGRvd25sb2FkVXJsID0gdGhpcy5maWxlVXRpbFVybCArICcvZG93bmxvYWRBdHRhY2htZW50JztcbiAgcHJpdmF0ZSBhcHAgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIFxuICAgIEBJbmplY3QoJ2ViaXpSb290VVJMJykgZWJpelJvb3RVUkw6IHN0cmluZyxcbiAgICBASW5qZWN0KCdhcHAnKSBhcHA6IHN0cmluZykge1xuICAgIHRoaXMudXBsb2FkVXJsID0gZWJpelJvb3RVUkwgKyB0aGlzLnVwbG9hZFVybDtcbiAgICB0aGlzLmZpbGVVdGlsVXJsID0gZWJpelJvb3RVUkwgKyB0aGlzLmZpbGVVdGlsVXJsO1xuICAgIHRoaXMuZG93bmxvYWRVcmwgPSBlYml6Um9vdFVSTCArIHRoaXMuZG93bmxvYWRVcmw7XG4gICAgdGhpcy5hcHAgPSBhcHA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgc2luZ2xlIE9lcGFBdHRhY2htZW50IG9iamVjdCBmcm9tIHRoZSBjb250ZW50cyBvZiBmaWxlLlxuICAgKiBUaGUgZmlsZSB3aWxsIGhhdmUgYmVlbiBzYXZlZCBvbiB0aGUgc2VydmVyIGlmIHRoaXMgbWV0aG9kIHN1Y2NlZWRzLlxuICAgKiBAcGFyYW0gZmlsZVxuICAgKi9cbiAgcHVibGljIHVwbG9hZEZpbGUoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8T2VwYUF0dGFjaG1lbnQ+IHtcbiAgICBjb25zdCBhdHRhY2htZW50OiBPZXBhQXR0YWNobWVudCA9IHt9O1xuICAgIGF0dGFjaG1lbnQudXNlckZpbGVuYW1lID0gZmlsZS5uYW1lO1xuICAgIC8vIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxPZXBhQXR0YWNobWVudD4oKG9ic2VydmVyKSA9PiBvYnNlcnZlci5uZXh0KGF0dGFjaG1lbnQpKTtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSwgZmlsZS5uYW1lKTtcbiAgICAvKiogTm8gbmVlZCB0byBpbmNsdWRlIENvbnRlbnQtVHlwZSBpbiBBbmd1bGFyIDQgKi9cbiAgICBoZWFkZXJzLmFwcGVuZCgnQ29udGVudC1UeXBlJywgJ211bHRpcGFydC9mb3JtLWRhdGEnKTtcbiAgICBoZWFkZXJzLmFwcGVuZCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcbiAgICBsZXQgcGFyYW1zOmFueSA9IHtcbiAgICAgICdhcHAnOiB0aGlzLmFwcFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMudXBsb2FkVXJsLCBmb3JtRGF0YSwgeyBoZWFkZXJzOiBoZWFkZXJzLCBwYXJhbXM6IHBhcmFtcyB9KVxuICAgIC5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTphbnkpID0+IHtcbiAgICAgICAgbGV0IHVwbG9hZGVkQXR0YWNobWVudDogT2VwYUF0dGFjaG1lbnQgPSB7fTtcbiAgICAgICAgY29uc3QgYXR0YWNobWVudHM6IEFycmF5PE9lcGFBdHRhY2htZW50PiA9IHJlc3BvbnNlWydhdHRhY2htZW50cyddO1xuICAgICAgICBpZiAoYXR0YWNobWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdXBsb2FkZWRBdHRhY2htZW50ID0gYXR0YWNobWVudHNbMF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVwbG9hZGVkQXR0YWNobWVudDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEb3dubG9hZCBhbiBhdHRhY2htZW50IGZyb20gdGhlIHNlcnZlci4gVGhlIGxvY2F0aW9uIGFuZCBzeXN0ZW1GaWxlTmFtZVxuICAgKiBhdHRyaWJ1dGVzIG9mIHRoZSBhdHRhY2htZW50IG11c3QgYmUgc2V0IGFuZCByZXByZXNlbnQgYSB2YWxpZCBmaWxlXG4gICAqIG9uIHRoZSBmaWxlIHN5c3RlbS5cbiAgICogQHBhcmFtIGF0dGFjaG1lbnRcbiAgICovXG4gIHB1YmxpYyBkb3dubG9hZEF0dGFjaG1lbnQoYXR0YWNobWVudDogT2VwYUF0dGFjaG1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICBsZXQgcGFyYW1zOmFueSA9IHtcbiAgICAgICdhcHAnOiB0aGlzLmFwcFxuICAgIH07XG4gICAgaGVhZGVycy5hcHBlbmQoJ0NvbnRlbnQtdHlwZScsICdhcHBsaWNhdGlvbi9qc29uO29kYXRhPXZlcmJvc2UnKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5kb3dubG9hZFVybCwgYXR0YWNobWVudCwgeyBoZWFkZXJzOiBoZWFkZXJzLCByZXNwb25zZVR5cGU6ICdibG9iJywgcGFyYW1zOiBwYXJhbXMgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbiB0aGUgZmlsZSByZXByZXNlbnRlZCBieSBkYXRhIGluIHRoZSBicm93c2VyLlxuICAgKiBAcGFyYW0gZGF0YSBiaW5hcnkgZmlsZSBkYXRhLlxuICAgKiBAcGFyYW0gbWltZVR5cGUgdGhlIGZpbGUncyBtaW1lIHR5cGUuXG4gICAqIEBwYXJhbSBmaWxlTmFtZSBvcHRpb25hbCBuYW1lIGZvciB0aGUgZG93bmxvYWRlZCBmaWxlLlxuICAgKi9cbiAgcHVibGljIGRvd25sb2FkRmlsZShkYXRhOiBhbnksIG1pbWVUeXBlOiBzdHJpbmcsIGZpbGVOYW1lPzogc3RyaW5nKSB7XG4gICAgaWYgKGRhdGEgJiYgbWltZVR5cGUpIHtcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHsgdHlwZTogbWltZVR5cGUgfSk7XG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgIGlmICghZmlsZU5hbWUgfHwgZmlsZU5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHVybCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRvd25Mb2FkRmlsZVdpdGhGaWxlTmFtZSh1cmwsIGZpbGVOYW1lKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ0VSUk9SOiBkb3dubG9hZEZpbGU6IG1pc3NpbmcgZGF0YSBvciBtaW1lVHlwZScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVdGlsaXR5IG1ldGhvZCBmb3IgZG93bmxvYWRpbmcgYSBmaWxlIHdpdGggYSBzcGVjaWZpYyBuYW1lLlxuICAgKiBAcGFyYW0gdXJsXG4gICAqIEBwYXJhbSBmaWxlTmFtZVxuICAgKi9cbiAgcHJpdmF0ZSBkb3duTG9hZEZpbGVXaXRoRmlsZU5hbWUodXJsOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgYS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2Rpc3BsYXk6IG5vbmUnKTtcbiAgICBhLnNldEF0dHJpYnV0ZSgnaHJlZicsIHVybCk7XG4gICAgYS5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpO1xuICAgIGEuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIHNlZSBpZiBjdXJyZW50IGJyb3dzZXIgaXMgaW50ZXJuZXQgZXhwbG9yZXJcbiAgICovXG4gIHB1YmxpYyBicm93c2VySXNJRSgpIHtcbiAgICBjb25zdCB1YSA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50O1xuICAgIGNvbnN0IG1zaWUgPSB1YS5pbmRleE9mKCdNU0lFICcpO1xuICAgIGlmIChtc2llID4gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCB0cmlkZW50ID0gdWEuaW5kZXhPZignVHJpZGVudC8nKTtcbiAgICBpZiAodHJpZGVudCA+IC0xKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgZWRnZSA9IHVhLmluZGV4T2YoJ0VkZ2UvJyk7XG4gICAgaWYgKGVkZ2UgPiAtMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgdGhlIG1pbWUgdGltZSBmb3IgZmlsZU5hbWUgKGJhc2VkIG9uIGl0cyBleHRlbnNpb24pLlxuICAgKiBAcGFyYW0gZmlsZU5hbWVcbiAgICovXG4gIHB1YmxpYyBtaW1lVHlwZUZvckZpbGUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IG1pbWVUeXBlITogc3RyaW5nO1xuICAgIGlmIChmaWxlTmFtZSAmJiBmaWxlTmFtZS5sYXN0SW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgIGNvbnN0IGV4dCA9IGZpbGVOYW1lLnN1YnN0cmluZyhmaWxlTmFtZS5sYXN0SW5kZXhPZignLicpKTtcbiAgICAgIG1pbWVUeXBlID0gTUlNRV9UWVBFU1tleHQudG9Mb3dlckNhc2UoKV07XG4gICAgfVxuICAgIGlmICghbWltZVR5cGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdFUlJPUjogbWltZVR5cGVGb3JGaWxlOiBObyBtaW1lIHR5cGUgZm91bmQgZm9yIGZpbGU6ICcgKyBmaWxlTmFtZSk7XG4gICAgfVxuICAgIHJldHVybiBtaW1lVHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBtaW1lVHlwZUZvckV4dGVuc2lvbihleHRlbnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IG1pbWVUeXBlITogc3RyaW5nO1xuICAgIGxldCBleHQ6IHN0cmluZztcbiAgICBpZiAoZXh0ZW5zaW9uKSB7XG4gICAgICBleHQgPSBleHRlbnNpb24udG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmICghZXh0LnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgICAgICBleHQgPSAnLicgKyBleHQ7XG4gICAgICB9XG4gICAgICBtaW1lVHlwZSA9IE1JTUVfVFlQRVNbZXh0XTtcbiAgICB9XG4gICAgaWYgKCFtaW1lVHlwZSkge1xuICAgICAgY29uc29sZS5sb2coJ0VSUk9SOiBtaW1lVHlwZUZvckV4dGVuc2lvbjogTm8gbWltZSB0eXBlIGZvdW5kIGZvciBleHRlbnNpb246ICcgKyBleHRlbnNpb24pO1xuICAgIH1cbiAgICByZXR1cm4gbWltZVR5cGU7XG4gIH1cblxufVxuIl19
@@ -1,53 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Observable } from 'rxjs';
3
- import { OepaAttachment } from '@ohioepa/oepa-common-lib';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Collection of methods for uploading/downloading and displaying files.
7
- */
8
- export declare class OepaFileUtilService {
9
- private http;
10
- private uploadUrl;
11
- private fileUtilUrl;
12
- private downloadUrl;
13
- private app;
14
- constructor(http: HttpClient, ebizRootURL: string, app: string);
15
- /**
16
- * Return a single OepaAttachment object from the contents of file.
17
- * The file will have been saved on the server if this method succeeds.
18
- * @param file
19
- */
20
- uploadFile(file: File): Observable<OepaAttachment>;
21
- /**
22
- * Download an attachment from the server. The location and systemFileName
23
- * attributes of the attachment must be set and represent a valid file
24
- * on the file system.
25
- * @param attachment
26
- */
27
- downloadAttachment(attachment: OepaAttachment): Observable<any>;
28
- /**
29
- * Open the file represented by data in the browser.
30
- * @param data binary file data.
31
- * @param mimeType the file's mime type.
32
- * @param fileName optional name for the downloaded file.
33
- */
34
- downloadFile(data: any, mimeType: string, fileName?: string): void;
35
- /**
36
- * Utility method for downloading a file with a specific name.
37
- * @param url
38
- * @param fileName
39
- */
40
- private downLoadFileWithFileName;
41
- /**
42
- * Helper method to see if current browser is internet explorer
43
- */
44
- browserIsIE(): boolean;
45
- /**
46
- * Determine the mime time for fileName (based on its extension).
47
- * @param fileName
48
- */
49
- mimeTypeForFile(fileName: string): string;
50
- mimeTypeForExtension(extension: string): string;
51
- static ɵfac: i0.ɵɵFactoryDeclaration<OepaFileUtilService, never>;
52
- static ɵprov: i0.ɵɵInjectableDeclaration<OepaFileUtilService>;
53
- }
Binary file