@dbg-riskit/angular-file 12.3.0 → 13.0.3

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 (54) hide show
  1. package/dbg-riskit-angular-file.d.ts +1 -0
  2. package/docs/README.md +1 -11
  3. package/{esm2015/dbg-riskit-angular-file.js → esm2020/dbg-riskit-angular-file.mjs} +0 -0
  4. package/esm2020/lib/abstract.file.download.directive.mjs +139 -0
  5. package/esm2020/lib/abstract.file.upload.component.mjs +84 -0
  6. package/esm2020/lib/binary.file.upload.component.mjs +25 -0
  7. package/esm2020/lib/binary.file.upload.service.mjs +41 -0
  8. package/esm2020/lib/csv.file.download.directive.mjs +83 -0
  9. package/esm2020/lib/csv.file.upload.component.mjs +47 -0
  10. package/esm2020/lib/csv.file.upload.service.mjs +108 -0
  11. package/esm2020/lib/download.menu.component.mjs +34 -0
  12. package/esm2020/lib/file.download.directive.mjs +53 -0
  13. package/esm2020/lib/file.module.mjs +78 -0
  14. package/esm2020/lib/file.size.pipe.mjs +34 -0
  15. package/{esm2015/lib/file.types.js → esm2020/lib/file.types.mjs} +0 -0
  16. package/esm2020/lib/text.file.upload.component.mjs +26 -0
  17. package/esm2020/lib/text.file.upload.service.mjs +41 -0
  18. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  19. package/fesm2015/dbg-riskit-angular-file.mjs +727 -0
  20. package/fesm2015/dbg-riskit-angular-file.mjs.map +1 -0
  21. package/fesm2020/dbg-riskit-angular-file.mjs +727 -0
  22. package/fesm2020/dbg-riskit-angular-file.mjs.map +1 -0
  23. package/lib/abstract.file.download.directive.d.ts +3 -0
  24. package/lib/abstract.file.upload.component.d.ts +3 -0
  25. package/lib/binary.file.upload.component.d.ts +3 -0
  26. package/lib/binary.file.upload.service.d.ts +3 -0
  27. package/lib/csv.file.download.directive.d.ts +3 -0
  28. package/lib/csv.file.upload.component.d.ts +3 -0
  29. package/lib/csv.file.upload.service.d.ts +3 -0
  30. package/lib/download.menu.component.d.ts +3 -0
  31. package/lib/file.download.directive.d.ts +3 -0
  32. package/lib/file.module.d.ts +14 -0
  33. package/lib/file.size.pipe.d.ts +3 -0
  34. package/lib/text.file.upload.component.d.ts +3 -0
  35. package/lib/text.file.upload.service.d.ts +3 -0
  36. package/package.json +27 -15
  37. package/bundles/dbg-riskit-angular-file.umd.js +0 -1129
  38. package/bundles/dbg-riskit-angular-file.umd.js.map +0 -1
  39. package/dbg-riskit-angular-file.metadata.json +0 -1
  40. package/esm2015/lib/abstract.file.download.directive.js +0 -141
  41. package/esm2015/lib/abstract.file.upload.component.js +0 -73
  42. package/esm2015/lib/binary.file.upload.component.js +0 -29
  43. package/esm2015/lib/binary.file.upload.service.js +0 -38
  44. package/esm2015/lib/csv.file.download.directive.js +0 -79
  45. package/esm2015/lib/csv.file.upload.component.js +0 -51
  46. package/esm2015/lib/csv.file.upload.service.js +0 -105
  47. package/esm2015/lib/download.menu.component.js +0 -28
  48. package/esm2015/lib/file.download.directive.js +0 -51
  49. package/esm2015/lib/file.module.js +0 -50
  50. package/esm2015/lib/file.size.pipe.js +0 -46
  51. package/esm2015/lib/text.file.upload.component.js +0 -30
  52. package/esm2015/lib/text.file.upload.service.js +0 -38
  53. package/fesm2015/dbg-riskit-angular-file.js +0 -704
  54. package/fesm2015/dbg-riskit-angular-file.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"dbg-riskit-angular-file.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../pkg/dbg-riskit/angular-file/src/lib/file.size.pipe.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/abstract.file.download.directive.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/abstract.file.upload.component.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/binary.file.upload.service.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/binary.file.upload.component.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/csv.file.download.directive.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/csv.file.upload.service.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/csv.file.upload.component.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/text.file.upload.service.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/text.file.upload.component.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/download.menu.component.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/file.download.directive.ts","../../../../pkg/dbg-riskit/angular-file/src/lib/file.module.ts","../../../../pkg/dbg-riskit/angular-file/src/dbg-riskit-angular-file.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, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","// Copyright 2017 The Kubernetes Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {DecimalPipe} from '@angular/common';\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {Maybe} from '@dbg-riskit/common';\n\n@Pipe({name: 'riskFileSize'})\nexport class FileSizePipe implements PipeTransform {\n private readonly base = 1024;\n private readonly powerSuffixes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];\n\n public constructor(private readonly decimalPipe: DecimalPipe) {\n }\n\n public transform(value: Maybe<number | string>): string {\n if (value == null) {\n return '';\n }\n\n if (typeof value === 'string') {\n value = parseFloat(value);\n }\n\n let divider = 1;\n let power = 0;\n\n while (value / divider > this.base && power < this.powerSuffixes.length - 1) {\n divider *= this.base;\n power += 1;\n }\n\n const formatted = this.decimalPipe.transform(value / divider, '1.2-2') || '';\n const suffix = this.powerSuffixes[power];\n return suffix ? `${formatted}${suffix}` : formatted;\n }\n}\n","import {Directive, ElementRef, Input} from '@angular/core';\nimport {BaseComponent, DialogService, ProgressLoaderComponent} from '@dbg-riskit/angular-view';\nimport {\n ErrorMessage,\n FileWithContent,\n isEventObject,\n Logger,\n ObservableEvent,\n ObservableEventType,\n ObservableWithProgress,\n ProgressEvent,\n ResultEvent\n} from '@dbg-riskit/common';\nimport {saveAs} from 'file-saver';\nimport {EMPTY, Observable, of, Subject} from 'rxjs';\nimport {catchError, filter, finalize, map, take, takeUntil, tap} from 'rxjs/operators';\nimport {FileSizePipe} from './file.size.pipe';\n\n@Directive()\nexport abstract class AbstractFileDownloadDirective<T> extends BaseComponent {\n\n @Input()\n public disabled?: boolean | string;\n\n public data?: ObservableWithProgress<T>\n | Observable<T>\n | T;\n\n public constructor(private readonly elementRef: ElementRef,\n private readonly dialogService: DialogService,\n private readonly fileSizePipe: FileSizePipe,\n private readonly logger: Logger) {\n super();\n }\n\n private isDisabled(): boolean {\n if (this.elementRef.nativeElement.disabled === true) {\n return true;\n }\n\n if (this.disabled == null) {\n return false;\n }\n\n switch (typeof this.disabled) {\n case 'boolean':\n return this.disabled;\n case 'string':\n return this.disabled.toLowerCase() === 'disabled' || this.disabled.toLowerCase() === 'true';\n }\n\n return false;\n }\n\n public download(): void {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.data == null) {\n this.logger.error(new Error('No data provided for download!'));\n return;\n }\n\n this.getDataObservable(this.data).pipe(\n takeUntil(this.destroyed),\n take(1),\n map((data: T) => this.mapToFile(data))\n ).subscribe((file) => this.store(file));\n }\n\n protected abstract mapToFile(data: T): FileWithContent;\n\n private store(file: FileWithContent) {\n setTimeout(() => {\n saveAs(file.content, file.filename || 'data.txt');\n });\n }\n\n private getDataObservable(\n data: ObservableWithProgress<T>\n | Observable<T>\n | T\n ): Observable<T> {\n if (!(data instanceof Observable)) {\n return of(data);\n }\n\n return this.downloadWithProgress(data);\n }\n\n private downloadWithProgress(\n observableWithProgress: Observable<T | ObservableEvent<T>>\n ): Observable<T> {\n const canceled = new Subject<void>();\n let dialog: ProgressLoaderComponent | undefined;\n\n return observableWithProgress.pipe(\n takeUntil(canceled),\n takeUntil(this.destroyed),\n tap((event) => {\n dialog = this.updateProgress(event, dialog, canceled);\n }),\n filter((event) => !isEventObject(event)\n || (event as ObservableEvent<T>).type === ObservableEventType.Result),\n map((event) => {\n if (isEventObject(event)) {\n const resultEvent = event as ResultEvent<T>;\n return resultEvent.result;\n }\n return event as T;\n }),\n catchError((err) => this.processError(err)),\n finalize(() => {\n if (dialog != null) {\n dialog.close();\n }\n })\n );\n }\n\n private updateProgress(event: T | ObservableEvent<T>,\n dialog: ProgressLoaderComponent | undefined,\n canceledSubject: Subject<void>) {\n if (isEventObject(event) && (event as ObservableEvent<T>).type === ObservableEventType.Progress) {\n const progressEvent = event as ProgressEvent;\n if (dialog == null) {\n dialog = this.dialogService.showProgressLoaderDialog({\n title : 'Downloading file...',\n cancel : () => {\n canceledSubject.next();\n canceledSubject.complete();\n },\n valueFormatter: this.fileSizePipe\n });\n }\n dialog.value = progressEvent.current;\n dialog.total = progressEvent.total;\n }\n return dialog;\n }\n\n private processError(err: ErrorMessage | object) {\n let title: string | undefined = 'Failed to download file:';\n let message;\n if ('errorType' in (err as ErrorMessage)) {\n const errorMessage: ErrorMessage = err as ErrorMessage;\n switch (errorMessage.status) {\n case 401:\n case 403:\n message = 'You are not authorized to download this file.';\n break;\n case 404:\n message = 'File not found.';\n break;\n default:\n message = errorMessage.message;\n }\n } else {\n if ('message' in err) {\n message = err.message;\n } else {\n message = 'Failed to download file.';\n title = undefined;\n }\n }\n this.dialogService.showMessageDialog({\n dialogType: 'error',\n icon : 'cloud_off',\n title,\n message\n });\n return EMPTY;\n }\n\n /**\n * Blob constructor for testing purposes.\n */\n public createBlob(data: BlobPart[], contentType?: BlobPropertyBag) {\n return new Blob(data, contentType);\n }\n}\n\n\n","import {Directive, ElementRef, EventEmitter, Input, Output, Renderer2, ViewChild} from '@angular/core';\nimport {MatColorTheme} from '@dbg-riskit/angular-common';\nimport {BaseComponent} from '@dbg-riskit/angular-view';\nimport {ErrorMessage, ErrorType, toString} from '@dbg-riskit/common';\nimport {Observable} from 'rxjs';\nimport {first, takeUntil} from 'rxjs/operators';\nimport {IFile} from './file.types';\n\n@Directive()\nexport abstract class AbstractFileUploadComponent<T extends IFile> extends BaseComponent {\n\n @Output()\n public readonly error: EventEmitter<ErrorMessage> = new EventEmitter(true);\n\n @Input()\n public label?: string;\n\n @Input()\n public accept?: string;\n\n @Input()\n public multiple: boolean = true;\n\n @Output()\n public readonly filesLoaded: EventEmitter<T[]> = new EventEmitter<T[]>(true);\n\n @ViewChild('fileInput')\n public fileInput?: ElementRef;\n\n @ViewChild('wrapper')\n public wrapper?: ElementRef;\n\n public fileInputHidden: boolean = false;\n\n @Input()\n public raised: boolean = true;\n\n @Input()\n public color: MatColorTheme = 'primary';\n\n @Input()\n public icon?: string;\n\n @Input()\n public disabled: boolean = false;\n\n protected constructor(private readonly renderer: Renderer2) {\n super();\n }\n\n public move(event: MouseEvent) {\n if (this.fileInput && event.target !== this.fileInput.nativeElement) {\n this.renderer.setStyle(this.wrapper!.nativeElement, 'left', `${event.offsetX}px`);\n }\n }\n\n public handleFiles(fileList: FileList) {\n // Check for the various File API support.\n if ('FileReader' in window) {\n this.readFiles(fileList).pipe(\n takeUntil(this.destroyed),\n first()\n ).subscribe(\n (files: T[]) => {\n this.filesLoaded.emit(files);\n this.resetInputField();\n },\n (error: string) => {\n this.error.emit({\n message : toString(error),\n errorType: ErrorType.ERROR,\n status : 0\n });\n this.resetInputField();\n }\n );\n } else {\n this.error.emit({\n message : 'FileReader is not supported in your browser! A newer browser (IE 11+, Chrome 50+, '\n + 'FireFox 50+, Safari 9+) is required to use this application.',\n errorType: ErrorType.ERROR,\n status : 0\n });\n }\n }\n\n protected abstract readFiles(fileList: FileList): Observable<T[]>;\n\n // Hide and show the input field to reset the selection\n private resetInputField() {\n this.fileInputHidden = true;\n setTimeout(() => {\n this.fileInputHidden = false;\n });\n }\n}\n","import {Injectable} from '@angular/core';\nimport {base64encode} from '@dbg-riskit/common';\nimport {forkJoin, Observable, Subscriber} from 'rxjs';\nimport {BinaryFile} from './file.types';\n\n@Injectable()\nexport class BinaryFileUploadService {\n\n public readFiles(files: FileList): Observable<BinaryFile[]> {\n const fileOservables: Array<Observable<BinaryFile>> = [];\n for (const file of Array.from(files)) {\n fileOservables.push(new Observable((observer: Subscriber<BinaryFile>) => {\n setTimeout(() => {\n try {\n const reader = new FileReader();\n // Handle errors load\n reader.onload = (event: ProgressEvent) => {\n observer.next({\n bodyBase64: base64encode(\n ((event.target as FileReader).result) as ArrayBuffer),\n file\n });\n observer.complete();\n };\n reader.onerror = (event: ProgressEvent) => {\n observer.error((event.target as FileReader).error);\n };\n // Read file into memory as UTF-8\n reader.readAsArrayBuffer(file);\n } catch (err) {\n observer.error(err);\n }\n });\n }));\n }\n return forkJoin(fileOservables);\n }\n}\n","import {ChangeDetectionStrategy, Component, Renderer2} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {AbstractFileUploadComponent} from './abstract.file.upload.component';\nimport {BinaryFileUploadService} from './binary.file.upload.service';\nimport {BinaryFile} from './file.types';\n\n@Component({\n selector : 'risk-binary-file-upload',\n templateUrl : 'abstract.file.upload.component.html',\n styleUrls : [\n '../../../component.scss',\n 'abstract.file.upload.component.scss'\n ],\n host : {\n '[class.risk-binary-file-upload]': 'true'\n },\n changeDetection : ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false\n})\nexport class BinaryFileUploadComponent extends AbstractFileUploadComponent<BinaryFile> {\n\n public constructor(private readonly fileUploadService: BinaryFileUploadService,\n renderer: Renderer2) {\n super(renderer);\n }\n\n protected readFiles(fileList: FileList): Observable<BinaryFile[]> {\n return this.fileUploadService.readFiles(fileList);\n }\n}\n","import {Directive, ElementRef, Input} from '@angular/core';\nimport {DateFormatter, DialogService} from '@dbg-riskit/angular-view';\nimport {CONTENT_TYPE, FileWithContent, Logger, ObservableWithProgress, toString} from '@dbg-riskit/common';\nimport {Observable} from 'rxjs';\nimport {AbstractFileDownloadDirective} from './abstract.file.download.directive';\nimport {FileSizePipe} from './file.size.pipe';\nimport {CSVExportColumn} from './file.types';\n\n@Directive({\n selector: '[risk-csv-download]',\n host : {\n '[class.risk-csv-download]': 'true',\n '(click)' : 'download()'\n }\n})\nexport class CSVFileDownloadDirective extends AbstractFileDownloadDirective<unknown[]> {\n\n @Input('risk-csv-download-columns')\n public columns?: Array<CSVExportColumn<unknown>>;\n\n @Input('risk-csv-download')\n public data?: ObservableWithProgress<unknown[]>\n | Observable<unknown[]>\n | unknown[];\n\n @Input('risk-csv-download-filename')\n public filename: string = 'data.csv';\n\n @Input('risk-csv-download-crlf')\n public crlfLineEnding: boolean = false;\n\n public constructor(private readonly dateFormatter: DateFormatter,\n elementRef: ElementRef,\n dialogService: DialogService,\n fileSizePipe: FileSizePipe,\n logger: Logger) {\n super(elementRef, dialogService, fileSizePipe, logger);\n }\n\n protected mapToFile(data: unknown[]): FileWithContent {\n let csvFile = '';\n\n if (this.columns) {\n csvFile += this.createHeader();\n\n for (const row of data) {\n csvFile += this.processRow(row);\n }\n }\n\n return {\n filename: this.filename,\n content: this.createBlob([csvFile], {type: CONTENT_TYPE.TEXT_CSV})\n };\n }\n\n private processRow(row: unknown): string {\n return this.columns!.map((column: CSVExportColumn<unknown>) => {\n const value = column.get(row);\n let innerValue = toString(value);\n\n if (value instanceof Date) {\n innerValue = this.dateFormatter.transform(value) || '';\n }\n\n let result = innerValue.replace(/\"/g, '\"\"');\n\n if (result.search(/([\",\\n])/g) >= 0) {\n result = `\"${result}\"`;\n }\n\n return result;\n }).join(',') + this.getLineEnding();\n }\n\n private createHeader(): string {\n return this.columns!.map((column: CSVExportColumn<unknown>) => {\n const innerValue = toString(column.header);\n let result = innerValue.replace(/\"/g, '\"\"');\n if (result.search(/([\",\\n])/g) >= 0) {\n result = `\"${result}\"`;\n }\n return result;\n }).join(',') + this.getLineEnding();\n }\n\n private getLineEnding() {\n if (this.crlfLineEnding) {\n return '\\r\\n';\n }\n return '\\n';\n }\n}\n","import {Injectable} from '@angular/core';\nimport {toString} from '@dbg-riskit/common';\nimport {forkJoin, Observable, Subscriber} from 'rxjs';\nimport {CSVColumnNameMapper, CSVFile} from './file.types';\n\n// Create a regular expression to parse the CSV values.\nconst CSV_FILE_PATTERN = new RegExp(\n (\n // Delimiters.\n '([,;]|\\\\r?\\\\n|\\\\r|^)' +\n\n // Quoted fields.\n '(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|' +\n\n // Standard fields.\n '([^\",;\\\\r\\\\n]*))'\n ),\n 'gi'\n);\n\n@Injectable()\nexport class CSVFileUploadService {\n\n public readFiles(files: FileList, nameMapper: CSVColumnNameMapper = (name: string) => name): Observable<CSVFile[]> {\n const fileOservables: Array<Observable<CSVFile>> = [];\n for (const file of Array.from(files)) {\n fileOservables.push(new Observable((observer: Subscriber<CSVFile>) => {\n setTimeout(() => {\n try {\n const reader = new FileReader();\n // Handle errors load\n reader.onload = (event: ProgressEvent) => {\n observer.next(\n CSVFileUploadService.getCSVFile(\n toString((event.target as FileReader).result),\n file,\n nameMapper)\n );\n observer.complete();\n };\n reader.onerror = (event: ProgressEvent) => {\n observer.error((event.target as FileReader).error);\n };\n // Read file into memory as UTF-8\n reader.readAsText(file);\n } catch (err) {\n observer.error(err);\n }\n });\n }));\n }\n return forkJoin(fileOservables);\n }\n\n public static getCSVFile(content: string, file: File, nameMapper: CSVColumnNameMapper): CSVFile {\n // Create an array to hold our data. Give the array\n // a default empty first row.\n let arrData: string[][] = [[]];\n\n // Create an array to hold our individual pattern\n // matching groups.\n\n // Keep looping over the regular expression matches\n // until we can no longer find a match.\n while (true) {\n const arrMatches = CSV_FILE_PATTERN.exec(content);\n if (arrMatches == null) {\n break;\n }\n\n // Get the delimiter that was found.\n const strMatchedDelimiter = arrMatches[1];\n\n // Check to see if the given delimiter has a length\n // (is not the start of string) and if it matches\n // field delimiter. If id does not, then we know\n // that this delimiter is a row delimiter.\n if (strMatchedDelimiter.length && strMatchedDelimiter !== ',' && strMatchedDelimiter !== ';') {\n // Since we have reached a new row of data,\n // add an empty row to our data array.\n arrData.push([]);\n }\n\n let strMatchedValue;\n\n // Now that we have our delimiter out of the way,\n // let's check to see which kind of value we\n // captured (quoted or unquoted).\n if (arrMatches[2]) {\n\n // We found a quoted value. When we capture\n // this value, unescape any double quotes.\n strMatchedValue = arrMatches[2].replace(\n new RegExp('\"\"', 'g'),\n '\"'\n );\n\n } else {\n\n // We found a non-quoted value.\n strMatchedValue = arrMatches[3];\n\n }\n\n // Now that we have our value string, let's add\n // it to the data array.\n arrData[arrData.length - 1].push(strMatchedValue);\n }\n\n // Filter out empty rows\n arrData = arrData.filter((dataRow: string[]) => {\n return dataRow.some((item: string) => item != null && item.trim() !== '');\n });\n\n // Return the parsed data.\n return {\n header: arrData[0],\n body : arrData.slice(1).map((dataRow: string[]) => {\n const row: { [key: string]: string } = {};\n for (let i = 0; i < arrData[0].length; i++) {\n row[nameMapper(arrData[0][i])] = dataRow[i];\n }\n return row;\n }),\n file : {\n name: file.name,\n size: file.size,\n type: file.type\n }\n };\n }\n}\n","import {ChangeDetectionStrategy, Component, Input, Renderer2} from '@angular/core';\nimport {Observable, of, throwError} from 'rxjs';\nimport {switchMap} from 'rxjs/operators';\nimport {AbstractFileUploadComponent} from './abstract.file.upload.component';\nimport {CSVFileUploadService} from './csv.file.upload.service';\nimport {CSVColumnNameMapper, CSVFile, CSVValidator} from './file.types';\n\n@Component({\n selector : 'risk-csv-file-upload',\n templateUrl : 'abstract.file.upload.component.html',\n styleUrls : [\n '../../../component.scss',\n 'abstract.file.upload.component.scss'\n ],\n host : {\n '[class.risk-csv-file-upload]': 'true'\n },\n changeDetection : ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false\n})\nexport class CSVFileUploadComponent extends AbstractFileUploadComponent<CSVFile> {\n\n @Input()\n public validator?: CSVValidator;\n\n @Input()\n public nameMapper?: CSVColumnNameMapper;\n\n public constructor(private readonly fileUploadService: CSVFileUploadService, renderer: Renderer2) {\n super(renderer);\n }\n\n protected readFiles(fileList: FileList): Observable<CSVFile[]> {\n return this.fileUploadService.readFiles(fileList, this.nameMapper).pipe(\n switchMap((files: CSVFile[]) => {\n const validationErrors: string[] = [];\n if (!this.validator || files.every(\n (file: CSVFile) => {\n const result = this.validator!(file);\n if (!result.result && result.messages != null) {\n result.messages.forEach((message: string) => {\n validationErrors.push(message);\n });\n }\n return result.result;\n })) {\n return of(files);\n } else {\n return throwError(`<li>${validationErrors.join('</li><li>')}</li>`);\n }\n })\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {toString} from '@dbg-riskit/common';\nimport {forkJoin, Observable, Subscriber} from 'rxjs';\nimport {TextFile} from './file.types';\n\n@Injectable()\nexport class TextFileUploadService {\n\n public readFiles(files: FileList): Observable<TextFile[]> {\n const fileOservables: Array<Observable<TextFile>> = [];\n for (const file of Array.from(files)) {\n fileOservables.push(new Observable((observer: Subscriber<TextFile>) => {\n setTimeout(() => {\n try {\n const reader = new FileReader();\n // Handle errors load\n reader.onload = (event: ProgressEvent) => {\n observer.next({\n body: toString((event.target as FileReader).result),\n file\n });\n observer.complete();\n };\n reader.onerror = (event: ProgressEvent) => {\n observer.error((event.target as FileReader).error);\n };\n // Read file into memory as UTF-8\n reader.readAsText(file);\n } catch (err) {\n observer.error(err);\n }\n });\n }));\n }\n return forkJoin(fileOservables);\n }\n}\n","import {ChangeDetectionStrategy, Component, Renderer2} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {AbstractFileUploadComponent} from './abstract.file.upload.component';\nimport {TextFile} from './file.types';\nimport {TextFileUploadService} from './text.file.upload.service';\n\n@Component({\n selector : 'risk-text-file-upload',\n templateUrl : 'abstract.file.upload.component.html',\n styleUrls : [\n '../../../component.scss',\n 'abstract.file.upload.component.scss'\n ],\n host : {\n '[class.risk-text-file-upload]': 'true'\n },\n changeDetection : ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false\n})\nexport class TextFileUploadComponent extends AbstractFileUploadComponent<TextFile> {\n\n public constructor(private readonly fileUploadService: TextFileUploadService,\n renderer: Renderer2) {\n super(renderer);\n }\n\n protected readFiles(fileList: FileList): Observable<TextFile[]> {\n return this.fileUploadService\n .readFiles(fileList);\n }\n}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {CSVExportColumn} from './file.types';\n\n@Component({\n selector : 'risk-download-menu',\n templateUrl : 'download.menu.component.html',\n styleUrls : [\n '../../../component.scss',\n 'download.menu.component.scss'\n ],\n host : {\n '[class.risk-download-menu]': 'true'\n },\n changeDetection : ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false\n})\nexport class CSVDownloadMenuComponent {\n\n @Input()\n public menuLabel: string = 'Download';\n\n @Input()\n public menuTooltip?: string;\n\n @Input()\n public columns?: Array<CSVExportColumn<unknown>>;\n\n @Input()\n public data?: unknown[] | Observable<unknown[]>;\n\n @Input()\n public disabled: boolean = false;\n\n @Input()\n public filename?: string;\n}\n","import {Directive, ElementRef, Input} from '@angular/core';\nimport {DialogService} from '@dbg-riskit/angular-view';\nimport {FileWithContent, Logger, ObservableWithProgress} from '@dbg-riskit/common';\nimport {Observable} from 'rxjs';\nimport {AbstractFileDownloadDirective} from './abstract.file.download.directive';\nimport {FileSizePipe} from './file.size.pipe';\n\nexport type SupportedDownloadFormats = FileWithContent | Blob | object | string;\n\n@Directive({\n selector: '[risk-download]',\n host : {\n '[class.risk-download]': 'true',\n '(click)' : 'download()'\n }\n})\nexport class FileDownloadDirective extends AbstractFileDownloadDirective<SupportedDownloadFormats> {\n\n @Input('risk-download')\n public data?: ObservableWithProgress<SupportedDownloadFormats>\n | Observable<SupportedDownloadFormats>\n | SupportedDownloadFormats;\n\n @Input('risk-download-content-type')\n public contentType?: string;\n\n @Input('risk-download-filename')\n public filename?: string;\n\n public constructor(elementRef: ElementRef,\n dialogService: DialogService,\n fileSizePipe: FileSizePipe,\n logger: Logger) {\n super(elementRef, dialogService, fileSizePipe, logger);\n }\n\n protected mapToFile(data: SupportedDownloadFormats): FileWithContent {\n const filename: string = this.filename || 'data.txt';\n if (data instanceof Blob) {\n return {\n content: data,\n filename\n };\n }\n\n if (typeof data === 'object' && 'content' in data && data.content instanceof Blob) {\n return {\n content : data.content,\n filename: data.filename || filename\n };\n }\n\n const stringData = typeof data === 'string' ? data : JSON.stringify(data);\n return {\n content: this.createBlob([stringData], {type: this.contentType}),\n filename\n };\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {LoggingModule} from '@dbg-riskit/angular-logging';\nimport {CommonViewModule} from '@dbg-riskit/angular-view';\nimport {BinaryFileUploadComponent} from './binary.file.upload.component';\nimport {BinaryFileUploadService} from './binary.file.upload.service';\nimport {CSVFileDownloadDirective} from './csv.file.download.directive';\nimport {CSVFileUploadComponent} from './csv.file.upload.component';\nimport {CSVFileUploadService} from './csv.file.upload.service';\nimport {CSVDownloadMenuComponent} from './download.menu.component';\nimport {FileDownloadDirective} from './file.download.directive';\nimport {FileSizePipe} from './file.size.pipe';\nimport {TextFileUploadComponent} from './text.file.upload.component';\nimport {TextFileUploadService} from './text.file.upload.service';\n\n@NgModule({\n imports : [\n CommonModule,\n CommonViewModule,\n LoggingModule\n ],\n declarations: [\n BinaryFileUploadComponent,\n CSVFileUploadComponent,\n TextFileUploadComponent,\n CSVFileDownloadDirective,\n CSVDownloadMenuComponent,\n FileDownloadDirective,\n FileSizePipe\n ],\n exports : [\n BinaryFileUploadComponent,\n CSVFileUploadComponent,\n TextFileUploadComponent,\n CSVFileDownloadDirective,\n CSVDownloadMenuComponent,\n FileDownloadDirective,\n FileSizePipe\n ],\n providers : [\n BinaryFileUploadService,\n CSVFileUploadService,\n TextFileUploadService,\n FileSizePipe\n ]\n})\nexport class FileModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Pipe","DecimalPipe","takeUntil","take","map","saveAs","Observable","of","Subject","tap","filter","isEventObject","ObservableEventType","catchError","finalize","EMPTY","BaseComponent","Directive","ElementRef","DialogService","Logger","Input","EventEmitter","first","toString","ErrorType","Renderer2","Output","ViewChild","base64encode","forkJoin","Injectable","Component","ChangeDetectionStrategy","CONTENT_TYPE","DateFormatter","switchMap","throwError","NgModule","CommonModule","CommonViewModule","LoggingModule"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"__symbolic":"module","version":4,"metadata":{"AbstractFileDownloadDirective":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","module":"@dbg-riskit/angular-view","name":"BaseComponent","line":19,"character":63},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1}}],"members":{"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":28,"character":52},{"__symbolic":"reference","module":"@dbg-riskit/angular-view","name":"DialogService","line":29,"character":55},{"__symbolic":"reference","name":"FileSizePipe"},{"__symbolic":"reference","module":"@dbg-riskit/common","name":"Logger","line":31,"character":48}]}],"isDisabled":[{"__symbolic":"method"}],"download":[{"__symbolic":"method"}],"mapToFile":[{"__symbolic":"method"}],"store":[{"__symbolic":"method"}],"getDataObservable":[{"__symbolic":"method"}],"downloadWithProgress":[{"__symbolic":"method"}],"updateProgress":[{"__symbolic":"method"}],"processError":[{"__symbolic":"method"}],"createBlob":[{"__symbolic":"method"}]}},"AbstractFileUploadComponent":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","module":"@dbg-riskit/angular-view","name":"BaseComponent","line":9,"character":75},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":8,"character":1}}],"members":{"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":5}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"accept":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":5}}]}],"multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":5}}]}],"filesLoaded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":23,"character":5}}]}],"fileInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":26,"character":5},"arguments":["fileInput"]}]}],"wrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":29,"character":5},"arguments":["wrapper"]}]}],"raised":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}],"color":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":5}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":46,"character":53}]}],"move":[{"__symbolic":"method"}],"handleFiles":[{"__symbolic":"method"}],"readFiles":[{"__symbolic":"method"}],"resetInputField":[{"__symbolic":"method"}]}},"BinaryFileUploadService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"readFiles":[{"__symbolic":"method"}]}},"BinaryFileUploadComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractFileUploadComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"risk-binary-file-upload","host":{"[class.risk-binary-file-upload]":"true","$quoted$":["[class.risk-binary-file-upload]"]},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":16,"character":25},"member":"OnPush"},"preserveWhitespaces":false,"template":"<a *ngIf=\"raised; else notRaised\"\n mat-raised-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n</a>\n<ng-template #notRaised>\n <a mat-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n </a>\n</ng-template>\n","styles":[":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n",":host{display:inline-block}a{overflow:hidden}a .risk-file-upload-input-wrapper{width:30px;height:36px;margin-left:-15px;top:0;left:0;position:absolute;overflow:hidden;cursor:pointer;z-index:1}a .risk-file-upload-input-wrapper input{position:absolute;display:block;cursor:pointer;height:36px;font-size:36px;top:0;right:0;outline:0 none;opacity:0}\n"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"BinaryFileUploadService"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":22,"character":33}]}],"readFiles":[{"__symbolic":"method"}]}},"CSVFileDownloadDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractFileDownloadDirective"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":8,"character":1},"arguments":[{"selector":"[risk-csv-download]","host":{"[class.risk-csv-download]":"true","(click)":"download()","$quoted$":["[class.risk-csv-download]","(click)"]}}]}],"members":{"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":5},"arguments":["risk-csv-download-columns"]}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":5},"arguments":["risk-csv-download"]}]}],"filename":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5},"arguments":["risk-csv-download-filename"]}]}],"crlfLineEnding":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":5},"arguments":["risk-csv-download-crlf"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@dbg-riskit/angular-view","name":"DateFormatter","line":31,"character":55},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":32,"character":35},{"__symbolic":"reference","module":"@dbg-riskit/angular-view","name":"DialogService","line":33,"character":38},{"__symbolic":"reference","name":"FileSizePipe"},{"__symbolic":"reference","module":"@dbg-riskit/common","name":"Logger","line":35,"character":31}]}],"mapToFile":[{"__symbolic":"method"}],"processRow":[{"__symbolic":"method"}],"createHeader":[{"__symbolic":"method"}],"getLineEnding":[{"__symbolic":"method"}]}},"CSVFileUploadComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractFileUploadComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"risk-csv-file-upload","host":{"[class.risk-csv-file-upload]":"true","$quoted$":["[class.risk-csv-file-upload]"]},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":25},"member":"OnPush"},"preserveWhitespaces":false,"template":"<a *ngIf=\"raised; else notRaised\"\n mat-raised-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n</a>\n<ng-template #notRaised>\n <a mat-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n </a>\n</ng-template>\n","styles":[":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n",":host{display:inline-block}a{overflow:hidden}a .risk-file-upload-input-wrapper{width:30px;height:36px;margin-left:-15px;top:0;left:0;position:absolute;overflow:hidden;cursor:pointer;z-index:1}a .risk-file-upload-input-wrapper input{position:absolute;display:block;cursor:pointer;height:36px;font-size:36px;top:0;right:0;outline:0 none;opacity:0}\n"]}]}],"members":{"validator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":5}}]}],"nameMapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"CSVFileUploadService"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":28,"character":91}]}],"readFiles":[{"__symbolic":"method"}]}},"CSVFileUploadService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":20,"character":1}}],"members":{"readFiles":[{"__symbolic":"method"}]}},"TextFileUploadService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"readFiles":[{"__symbolic":"method"}]}},"TextFileUploadComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractFileUploadComponent"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"risk-text-file-upload","host":{"[class.risk-text-file-upload]":"true","$quoted$":["[class.risk-text-file-upload]"]},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":16,"character":25},"member":"OnPush"},"preserveWhitespaces":false,"template":"<a *ngIf=\"raised; else notRaised\"\n mat-raised-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n</a>\n<ng-template #notRaised>\n <a mat-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n </a>\n</ng-template>\n","styles":[":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n",":host{display:inline-block}a{overflow:hidden}a .risk-file-upload-input-wrapper{width:30px;height:36px;margin-left:-15px;top:0;left:0;position:absolute;overflow:hidden;cursor:pointer;z-index:1}a .risk-file-upload-input-wrapper input{position:absolute;display:block;cursor:pointer;height:36px;font-size:36px;top:0;right:0;outline:0 none;opacity:0}\n"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TextFileUploadService"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":22,"character":33}]}],"readFiles":[{"__symbolic":"method"}]}},"CSVDownloadMenuComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"risk-download-menu","host":{"[class.risk-download-menu]":"true","$quoted$":["[class.risk-download-menu]"]},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":14,"character":25},"member":"OnPush"},"preserveWhitespaces":false,"template":"<mat-menu #downloadMenu=\"matMenu\"\n [overlapTrigger]=\"false\">\n <a mat-menu-item\n [risk-csv-download]=\"data\"\n [risk-csv-download-columns]=\"columns\"\n [risk-csv-download-filename]=\"filename\"\n [risk-csv-download-crlf]=\"true\">\n As CSV file (Windows)\n </a>\n <a mat-menu-item\n [risk-csv-download]=\"data\"\n [risk-csv-download-columns]=\"columns\"\n [risk-csv-download-filename]=\"filename\">\n As CSV file (Unix)\n </a>\n</mat-menu>\n\n<button mat-button\n #menu=\"matMenuTrigger\"\n [disabled]=\"disabled\"\n [matMenuTriggerFor]=\"downloadMenu\"\n [class.risk-menu-open]=\"menu.menuOpen\"\n [matTooltip]=\"menuTooltip\">\n <mat-icon>file_download</mat-icon>\n {{ menuLabel }}\n</button>\n","styles":[":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n",":host{display:inline-block}\n"]}]}],"members":{"menuLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":5}}]}],"menuTooltip":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":5}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":5}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":5}}]}],"filename":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}]}},"SupportedDownloadFormats":{"__symbolic":"interface"},"FileDownloadDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"AbstractFileDownloadDirective"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":9,"character":1},"arguments":[{"selector":"[risk-download]","host":{"[class.risk-download]":"true","(click)":"download()","$quoted$":["[class.risk-download]","(click)"]}}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":5},"arguments":["risk-download"]}]}],"contentType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":5},"arguments":["risk-download-content-type"]}]}],"filename":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":5},"arguments":["risk-download-filename"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":29,"character":35},{"__symbolic":"reference","module":"@dbg-riskit/angular-view","name":"DialogService","line":30,"character":38},{"__symbolic":"reference","name":"FileSizePipe"},{"__symbolic":"reference","module":"@dbg-riskit/common","name":"Logger","line":32,"character":31}]}],"mapToFile":[{"__symbolic":"method"}]}},"FileModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":17,"character":8},{"__symbolic":"reference","module":"@dbg-riskit/angular-view","name":"CommonViewModule","line":18,"character":8},{"__symbolic":"reference","module":"@dbg-riskit/angular-logging","name":"LoggingModule","line":19,"character":8}],"declarations":[{"__symbolic":"reference","name":"BinaryFileUploadComponent"},{"__symbolic":"reference","name":"CSVFileUploadComponent"},{"__symbolic":"reference","name":"TextFileUploadComponent"},{"__symbolic":"reference","name":"CSVFileDownloadDirective"},{"__symbolic":"reference","name":"CSVDownloadMenuComponent"},{"__symbolic":"reference","name":"FileDownloadDirective"},{"__symbolic":"reference","name":"FileSizePipe"}],"exports":[{"__symbolic":"reference","name":"BinaryFileUploadComponent"},{"__symbolic":"reference","name":"CSVFileUploadComponent"},{"__symbolic":"reference","name":"TextFileUploadComponent"},{"__symbolic":"reference","name":"CSVFileDownloadDirective"},{"__symbolic":"reference","name":"CSVDownloadMenuComponent"},{"__symbolic":"reference","name":"FileDownloadDirective"},{"__symbolic":"reference","name":"FileSizePipe"}],"providers":[{"__symbolic":"reference","name":"BinaryFileUploadService"},{"__symbolic":"reference","name":"CSVFileUploadService"},{"__symbolic":"reference","name":"TextFileUploadService"},{"__symbolic":"reference","name":"FileSizePipe"}]}]}],"members":{}},"FileSizePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":18,"character":1},"arguments":[{"name":"riskFileSize"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common","name":"DecimalPipe","line":23,"character":53}]}],"transform":[{"__symbolic":"method"}]}},"File":{"__symbolic":"interface"},"ValidationResult":{"__symbolic":"interface"},"CSVValidator":{"__symbolic":"interface"},"CSVColumnNameMapper":{"__symbolic":"interface"},"CSVRow":{"__symbolic":"interface"},"CSVExportColumn":{"__symbolic":"interface"},"IFile":{"__symbolic":"interface"},"CSVFile":{"__symbolic":"interface"},"TextFile":{"__symbolic":"interface"},"BinaryFile":{"__symbolic":"interface"}},"origins":{"AbstractFileDownloadDirective":"./lib/abstract.file.download.directive","AbstractFileUploadComponent":"./lib/abstract.file.upload.component","BinaryFileUploadService":"./lib/binary.file.upload.service","BinaryFileUploadComponent":"./lib/binary.file.upload.component","CSVFileDownloadDirective":"./lib/csv.file.download.directive","CSVFileUploadComponent":"./lib/csv.file.upload.component","CSVFileUploadService":"./lib/csv.file.upload.service","TextFileUploadService":"./lib/text.file.upload.service","TextFileUploadComponent":"./lib/text.file.upload.component","CSVDownloadMenuComponent":"./lib/download.menu.component","SupportedDownloadFormats":"./lib/file.download.directive","FileDownloadDirective":"./lib/file.download.directive","FileModule":"./lib/file.module","FileSizePipe":"./lib/file.size.pipe","File":"./lib/file.types","ValidationResult":"./lib/file.types","CSVValidator":"./lib/file.types","CSVColumnNameMapper":"./lib/file.types","CSVRow":"./lib/file.types","CSVExportColumn":"./lib/file.types","IFile":"./lib/file.types","CSVFile":"./lib/file.types","TextFile":"./lib/file.types","BinaryFile":"./lib/file.types"},"importAs":"@dbg-riskit/angular-file"}
@@ -1,141 +0,0 @@
1
- import { Directive, ElementRef, Input } from '@angular/core';
2
- import { BaseComponent, DialogService } from '@dbg-riskit/angular-view';
3
- import { isEventObject, Logger, ObservableEventType } from '@dbg-riskit/common';
4
- import { saveAs } from 'file-saver';
5
- import { EMPTY, Observable, of, Subject } from 'rxjs';
6
- import { catchError, filter, finalize, map, take, takeUntil, tap } from 'rxjs/operators';
7
- import { FileSizePipe } from './file.size.pipe';
8
- export class AbstractFileDownloadDirective extends BaseComponent {
9
- constructor(elementRef, dialogService, fileSizePipe, logger) {
10
- super();
11
- this.elementRef = elementRef;
12
- this.dialogService = dialogService;
13
- this.fileSizePipe = fileSizePipe;
14
- this.logger = logger;
15
- }
16
- isDisabled() {
17
- if (this.elementRef.nativeElement.disabled === true) {
18
- return true;
19
- }
20
- if (this.disabled == null) {
21
- return false;
22
- }
23
- switch (typeof this.disabled) {
24
- case 'boolean':
25
- return this.disabled;
26
- case 'string':
27
- return this.disabled.toLowerCase() === 'disabled' || this.disabled.toLowerCase() === 'true';
28
- }
29
- return false;
30
- }
31
- download() {
32
- if (this.isDisabled()) {
33
- return;
34
- }
35
- if (this.data == null) {
36
- this.logger.error(new Error('No data provided for download!'));
37
- return;
38
- }
39
- this.getDataObservable(this.data).pipe(takeUntil(this.destroyed), take(1), map((data) => this.mapToFile(data))).subscribe((file) => this.store(file));
40
- }
41
- store(file) {
42
- setTimeout(() => {
43
- saveAs(file.content, file.filename || 'data.txt');
44
- });
45
- }
46
- getDataObservable(data) {
47
- if (!(data instanceof Observable)) {
48
- return of(data);
49
- }
50
- return this.downloadWithProgress(data);
51
- }
52
- downloadWithProgress(observableWithProgress) {
53
- const canceled = new Subject();
54
- let dialog;
55
- return observableWithProgress.pipe(takeUntil(canceled), takeUntil(this.destroyed), tap((event) => {
56
- dialog = this.updateProgress(event, dialog, canceled);
57
- }), filter((event) => !isEventObject(event)
58
- || event.type === ObservableEventType.Result), map((event) => {
59
- if (isEventObject(event)) {
60
- const resultEvent = event;
61
- return resultEvent.result;
62
- }
63
- return event;
64
- }), catchError((err) => this.processError(err)), finalize(() => {
65
- if (dialog != null) {
66
- dialog.close();
67
- }
68
- }));
69
- }
70
- updateProgress(event, dialog, canceledSubject) {
71
- if (isEventObject(event) && event.type === ObservableEventType.Progress) {
72
- const progressEvent = event;
73
- if (dialog == null) {
74
- dialog = this.dialogService.showProgressLoaderDialog({
75
- title: 'Downloading file...',
76
- cancel: () => {
77
- canceledSubject.next();
78
- canceledSubject.complete();
79
- },
80
- valueFormatter: this.fileSizePipe
81
- });
82
- }
83
- dialog.value = progressEvent.current;
84
- dialog.total = progressEvent.total;
85
- }
86
- return dialog;
87
- }
88
- processError(err) {
89
- let title = 'Failed to download file:';
90
- let message;
91
- if ('errorType' in err) {
92
- const errorMessage = err;
93
- switch (errorMessage.status) {
94
- case 401:
95
- case 403:
96
- message = 'You are not authorized to download this file.';
97
- break;
98
- case 404:
99
- message = 'File not found.';
100
- break;
101
- default:
102
- message = errorMessage.message;
103
- }
104
- }
105
- else {
106
- if ('message' in err) {
107
- message = err.message;
108
- }
109
- else {
110
- message = 'Failed to download file.';
111
- title = undefined;
112
- }
113
- }
114
- this.dialogService.showMessageDialog({
115
- dialogType: 'error',
116
- icon: 'cloud_off',
117
- title,
118
- message
119
- });
120
- return EMPTY;
121
- }
122
- /**
123
- * Blob constructor for testing purposes.
124
- */
125
- createBlob(data, contentType) {
126
- return new Blob(data, contentType);
127
- }
128
- }
129
- AbstractFileDownloadDirective.decorators = [
130
- { type: Directive }
131
- ];
132
- AbstractFileDownloadDirective.ctorParameters = () => [
133
- { type: ElementRef },
134
- { type: DialogService },
135
- { type: FileSizePipe },
136
- { type: Logger }
137
- ];
138
- AbstractFileDownloadDirective.propDecorators = {
139
- disabled: [{ type: Input }]
140
- };
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuZmlsZS5kb3dubG9hZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9hYnN0cmFjdC5maWxlLmRvd25sb2FkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBRSxhQUFhLEVBQTBCLE1BQU0sMEJBQTBCLENBQUM7QUFDL0YsT0FBTyxFQUdILGFBQWEsRUFDYixNQUFNLEVBRU4sbUJBQW1CLEVBSXRCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNsQyxPQUFPLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsTUFBTSxPQUFnQiw2QkFBaUMsU0FBUSxhQUFhO0lBU3hFLFlBQW9DLFVBQXNCLEVBQ3RCLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLE1BQWM7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFKd0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRWxELENBQUM7SUFFTyxVQUFVO1FBQ2QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFD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LEdBQUc7b0JBQ0osT0FBTyxHQUFHLCtDQUErQyxDQUFDO29CQUMxRCxNQUFNO2dCQUNWLEtBQUssR0FBRztvQkFDSixPQUFPLEdBQUcsaUJBQWlCLENBQUM7b0JBQzVCLE1BQU07Z0JBQ1Y7b0JBQ0ksT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7YUFDdEM7U0FDSjthQUFNO1lBQ0gsSUFBSSxTQUFTLElBQUksR0FBRyxFQUFFO2dCQUNsQixPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQzthQUN6QjtpQkFBTTtnQkFDSCxPQUFPLEdBQUcsMEJBQTBCLENBQUM7Z0JBQ3JDLEtBQUssR0FBRyxTQUFTLENBQUM7YUFDckI7U0FDSjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7WUFDakMsVUFBVSxFQUFFLE9BQU87WUFDbkIsSUFBSSxFQUFRLFdBQVc7WUFDdkIsS0FBSztZQUNMLE9BQU87U0FDVixDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsSUFBZ0IsRUFBRSxXQUE2QjtRQUM3RCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7WUFsS0osU0FBUzs7O1lBbEJTLFVBQVU7WUFDTixhQUFhO1lBZTVCLFlBQVk7WUFWaEIsTUFBTTs7O3VCQWVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYXNlQ29tcG9uZW50LCBEaWFsb2dTZXJ2aWNlLCBQcm9ncmVzc0xvYWRlckNvbXBvbmVudH0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci12aWV3JztcbmltcG9ydCB7XG4gICAgRXJyb3JNZXNzYWdlLFxuICAgIEZpbGVXaXRoQ29udGVudCxcbiAgICBpc0V2ZW50T2JqZWN0LFxuICAgIExvZ2dlcixcbiAgICBPYnNlcnZhYmxlRXZlbnQsXG4gICAgT2JzZXJ2YWJsZUV2ZW50VHlwZSxcbiAgICBPYnNlcnZhYmxlV2l0aFByb2dyZXNzLFxuICAgIFByb2dyZXNzRXZlbnQsXG4gICAgUmVzdWx0RXZlbnRcbn0gZnJvbSAnQGRiZy1yaXNraXQvY29tbW9uJztcbmltcG9ydCB7c2F2ZUFzfSBmcm9tICdmaWxlLXNhdmVyJztcbmltcG9ydCB7RU1QVFksIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgZmlsdGVyLCBmaW5hbGl6ZSwgbWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtGaWxlU2l6ZVBpcGV9IGZyb20gJy4vZmlsZS5zaXplLnBpcGUnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZpbGVEb3dubG9hZERpcmVjdGl2ZTxUPiBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQ/OiBib29sZWFuIHwgc3RyaW5nO1xuXG4gICAgcHVibGljIGRhdGE/OiBPYnNlcnZhYmxlV2l0aFByb2dyZXNzPFQ+XG4gICAgICAgIHwgT2JzZXJ2YWJsZTxUPlxuICAgICAgICB8IFQ7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZVNpemVQaXBlOiBGaWxlU2l6ZVBpcGUsXG4gICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQudG9Mb3dlckNhc2UoKSA9PT0gJ2Rpc2FibGVkJyB8fCB0aGlzLmRpc2FibGVkLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZG93bmxvYWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YSA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihuZXcgRXJyb3IoJ05vIGRhdGEgcHJvdmlkZWQgZm9yIGRvd25sb2FkIScpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0RGF0YU9ic2VydmFibGUodGhpcy5kYXRhKS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSxcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBtYXAoKGRhdGE6IFQpID0+IHRoaXMubWFwVG9GaWxlKGRhdGEpKVxuICAgICAgICApLnN1YnNjcmliZSgoZmlsZSkgPT4gdGhpcy5zdG9yZShmaWxlKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IG1hcFRvRmlsZShkYXRhOiBUKTogRmlsZVdpdGhDb250ZW50O1xuXG4gICAgcHJpdmF0ZSBzdG9yZShmaWxlOiBGaWxlV2l0aENvbnRlbnQpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBzYXZlQXMoZmlsZS5jb250ZW50LCBmaWxlLmZpbGVuYW1lIHx8ICdkYXRhLnR4dCcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGFPYnNlcnZhYmxlKFxuICAgICAgICBkYXRhOiBPYnNlcnZhYmxlV2l0aFByb2dyZXNzPFQ+XG4gICAgICAgICAgICB8IE9ic2VydmFibGU8VD5cbiAgICAgICAgICAgIHwgVFxuICAgICk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBpZiAoIShkYXRhIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBvZihkYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRvd25sb2FkV2l0aFByb2dyZXNzKGRhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZG93bmxvYWRXaXRoUHJvZ3Jlc3MoXG4gICAgICAgIG9ic2VydmFibGVXaXRoUHJvZ3Jlc3M6IE9ic2VydmFibGU8VCB8IE9ic2VydmFibGVFdmVudDxUPj5cbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgY29uc3QgY2FuY2VsZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgICAgICBsZXQgZGlhbG9nOiBQcm9ncmVzc0xvYWRlckNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZVdpdGhQcm9ncmVzcy5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKGNhbmNlbGVkKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksXG4gICAgICAgICAgICB0YXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgZGlhbG9nID0gdGhpcy51cGRhdGVQcm9ncmVzcyhldmVudCwgZGlhbG9nLCBjYW5jZWxlZCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+ICFpc0V2ZW50T2JqZWN0KGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGV2ZW50IGFzIE9ic2VydmFibGVFdmVudDxUPikudHlwZSA9PT0gT2JzZXJ2YWJsZUV2ZW50VHlwZS5SZXN1bHQpLFxuICAgICAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpc0V2ZW50T2JqZWN0KGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRFdmVudCA9IGV2ZW50IGFzIFJlc3VsdEV2ZW50PFQ+O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0RXZlbnQucmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQgYXMgVDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB0aGlzLnByb2Nlc3NFcnJvcihlcnIpKSxcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGlhbG9nICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByb2dyZXNzKGV2ZW50OiBUIHwgT2JzZXJ2YWJsZUV2ZW50PFQ+LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nOiBQcm9ncmVzc0xvYWRlckNvbXBvbmVudCB8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbGVkU3ViamVjdDogU3ViamVjdDx2b2lkPikge1xuICAgICAgICBpZiAoaXNFdmVudE9iamVjdChldmVudCkgJiYgKGV2ZW50IGFzIE9ic2VydmFibGVFdmVudDxUPikudHlwZSA9PT0gT2JzZXJ2YWJsZUV2ZW50VHlwZS5Qcm9ncmVzcykge1xuICAgICAgICAgICAgY29uc3QgcHJvZ3Jlc3NFdmVudCA9IGV2ZW50IGFzIFByb2dyZXNzRXZlbnQ7XG4gICAgICAgICAgICBpZiAoZGlhbG9nID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBkaWFsb2cgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1Byb2dyZXNzTG9hZGVyRGlhbG9nKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgICAgICAgICA6ICdEb3dubG9hZGluZyBmaWxlLi4uJyxcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsICAgICAgICA6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbGVkU3ViamVjdC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxlZFN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IHRoaXMuZmlsZVNpemVQaXBlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaWFsb2cudmFsdWUgPSBwcm9ncmVzc0V2ZW50LmN1cnJlbnQ7XG4gICAgICAgICAgICBkaWFsb2cudG90YWwgPSBwcm9ncmVzc0V2ZW50LnRvdGFsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaWFsb2c7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzRXJyb3IoZXJyOiBFcnJvck1lc3NhZ2UgfCBvYmplY3QpIHtcbiAgICAgICAgbGV0IHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnRmFpbGVkIHRvIGRvd25sb2FkIGZpbGU6JztcbiAgICAgICAgbGV0IG1lc3NhZ2U7XG4gICAgICAgIGlmICgnZXJyb3JUeXBlJyBpbiAoZXJyIGFzIEVycm9yTWVzc2FnZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZTogRXJyb3JNZXNzYWdlID0gZXJyIGFzIEVycm9yTWVzc2FnZTtcbiAgICAgICAgICAgIHN3aXRjaCAoZXJyb3JNZXNzYWdlLnN0YXR1cykge1xuICAgICAgICAgICAgICAgIGNhc2UgNDAxOlxuICAgICAgICAgICAgICAgIGNhc2UgNDAzOlxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ1lvdSBhcmUgbm90IGF1dGhvcml6ZWQgdG8gZG93bmxvYWQgdGhpcyBmaWxlLic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgNDA0OlxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0ZpbGUgbm90IGZvdW5kLic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UubWVzc2FnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICgnbWVzc2FnZScgaW4gZXJyKSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGVyci5tZXNzYWdlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gJ0ZhaWxlZCB0byBkb3dubG9hZCBmaWxlLic7XG4gICAgICAgICAgICAgICAgdGl0bGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dNZXNzYWdlRGlhbG9nKHtcbiAgICAgICAgICAgIGRpYWxvZ1R5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICBpY29uICAgICAgOiAnY2xvdWRfb2ZmJyxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgbWVzc2FnZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJsb2IgY29uc3RydWN0b3IgZm9yIHRlc3RpbmcgcHVycG9zZXMuXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZUJsb2IoZGF0YTogQmxvYlBhcnRbXSwgY29udGVudFR5cGU/OiBCbG9iUHJvcGVydHlCYWcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBCbG9iKGRhdGEsIGNvbnRlbnRUeXBlKTtcbiAgICB9XG59XG5cblxuIl19
@@ -1,73 +0,0 @@
1
- import { Directive, EventEmitter, Input, Output, Renderer2, ViewChild } from '@angular/core';
2
- import { BaseComponent } from '@dbg-riskit/angular-view';
3
- import { ErrorType, toString } from '@dbg-riskit/common';
4
- import { first, takeUntil } from 'rxjs/operators';
5
- export class AbstractFileUploadComponent extends BaseComponent {
6
- constructor(renderer) {
7
- super();
8
- this.renderer = renderer;
9
- this.error = new EventEmitter(true);
10
- this.multiple = true;
11
- this.filesLoaded = new EventEmitter(true);
12
- this.fileInputHidden = false;
13
- this.raised = true;
14
- this.color = 'primary';
15
- this.disabled = false;
16
- }
17
- move(event) {
18
- if (this.fileInput && event.target !== this.fileInput.nativeElement) {
19
- this.renderer.setStyle(this.wrapper.nativeElement, 'left', `${event.offsetX}px`);
20
- }
21
- }
22
- handleFiles(fileList) {
23
- // Check for the various File API support.
24
- if ('FileReader' in window) {
25
- this.readFiles(fileList).pipe(takeUntil(this.destroyed), first()).subscribe((files) => {
26
- this.filesLoaded.emit(files);
27
- this.resetInputField();
28
- }, (error) => {
29
- this.error.emit({
30
- message: toString(error),
31
- errorType: ErrorType.ERROR,
32
- status: 0
33
- });
34
- this.resetInputField();
35
- });
36
- }
37
- else {
38
- this.error.emit({
39
- message: 'FileReader is not supported in your browser! A newer browser (IE 11+, Chrome 50+, '
40
- + 'FireFox 50+, Safari 9+) is required to use this application.',
41
- errorType: ErrorType.ERROR,
42
- status: 0
43
- });
44
- }
45
- }
46
- // Hide and show the input field to reset the selection
47
- resetInputField() {
48
- this.fileInputHidden = true;
49
- setTimeout(() => {
50
- this.fileInputHidden = false;
51
- });
52
- }
53
- }
54
- AbstractFileUploadComponent.decorators = [
55
- { type: Directive }
56
- ];
57
- AbstractFileUploadComponent.ctorParameters = () => [
58
- { type: Renderer2 }
59
- ];
60
- AbstractFileUploadComponent.propDecorators = {
61
- error: [{ type: Output }],
62
- label: [{ type: Input }],
63
- accept: [{ type: Input }],
64
- multiple: [{ type: Input }],
65
- filesLoaded: [{ type: Output }],
66
- fileInput: [{ type: ViewChild, args: ['fileInput',] }],
67
- wrapper: [{ type: ViewChild, args: ['wrapper',] }],
68
- raised: [{ type: Input }],
69
- color: [{ type: Input }],
70
- icon: [{ type: Input }],
71
- disabled: [{ type: Input }]
72
- };
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1maWxlL3NyYy9saWIvYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2RyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFlLFNBQVMsRUFBRSxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRSxPQUFPLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSWhELE1BQU0sT0FBZ0IsMkJBQTZDLFNBQVEsYUFBYTtJQXFDcEYsWUFBdUMsUUFBbUI7UUFDdEQsS0FBSyxFQUFFLENBQUM7UUFEMkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWxDMUMsVUFBSyxHQUErQixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQVNwRSxhQUFRLEdBQVksSUFBSSxDQUFDO1FBR2hCLGdCQUFXLEdBQXNCLElBQUksWUFBWSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBUXRFLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBR2pDLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFHdkIsVUFBSyxHQUFrQixTQUFTLENBQUM7UUFNakMsYUFBUSxHQUFZLEtBQUssQ0FBQztJQUlqQyxDQUFDO0lBRU0sSUFBSSxDQUFDLEtBQWlCO1FBQ3pCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO1NBQ3JGO0lBQ0wsQ0FBQztJQUVNLFdBQVcsQ0FBQyxRQUFrQjtRQUNqQywwQ0FBMEM7UUFDMUMsSUFBSSxZQUFZLElBQUksTUFBTSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUN6QixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN6QixLQUFLLEVBQUUsQ0FDVixDQUFDLFNBQVMsQ0FDUCxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxFQUNELENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ1osT0FBTyxFQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUM7b0JBQzFCLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSztvQkFDMUIsTUFBTSxFQUFLLENBQUM7aUJBQ2YsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQ0osQ0FBQztTQUNMO2FBQU07WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDWixPQUFPLEVBQUksb0ZBQW9GO3NCQUNsRiw4REFBOEQ7Z0JBQzNFLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSztnQkFDMUIsTUFBTSxFQUFLLENBQUM7YUFDZixDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFJRCx1REFBdUQ7SUFDL0MsZUFBZTtRQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs7WUF0RkosU0FBUzs7O1lBUmtELFNBQVM7OztvQkFXaEUsTUFBTTtvQkFHTixLQUFLO3FCQUdMLEtBQUs7dUJBR0wsS0FBSzswQkFHTCxNQUFNO3dCQUdOLFNBQVMsU0FBQyxXQUFXO3NCQUdyQixTQUFTLFNBQUMsU0FBUztxQkFLbkIsS0FBSztvQkFHTCxLQUFLO21CQUdMLEtBQUs7dUJBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0Q29sb3JUaGVtZX0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHtCYXNlQ29tcG9uZW50fSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLXZpZXcnO1xuaW1wb3J0IHtFcnJvck1lc3NhZ2UsIEVycm9yVHlwZSwgdG9TdHJpbmd9IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0lGaWxlfSBmcm9tICcuL2ZpbGUudHlwZXMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZpbGVVcGxvYWRDb21wb25lbnQ8VCBleHRlbmRzIElGaWxlPiBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGVycm9yOiBFdmVudEVtaXR0ZXI8RXJyb3JNZXNzYWdlPiA9IG5ldyBFdmVudEVtaXR0ZXIodHJ1ZSk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbD86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFjY2VwdD86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpcGxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBmaWxlc0xvYWRlZDogRXZlbnRFbWl0dGVyPFRbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4odHJ1ZSk7XG5cbiAgICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKVxuICAgIHB1YmxpYyBmaWxlSW5wdXQ/OiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnd3JhcHBlcicpXG4gICAgcHVibGljIHdyYXBwZXI/OiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIGZpbGVJbnB1dEhpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmFpc2VkOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbG9yOiBNYXRDb2xvclRoZW1lID0gJ3ByaW1hcnknO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbj86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsZUlucHV0ICYmIGV2ZW50LnRhcmdldCAhPT0gdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIhLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7ZXZlbnQub2Zmc2V0WH1weGApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCkge1xuICAgICAgICAvLyBDaGVjayBmb3IgdGhlIHZhcmlvdXMgRmlsZSBBUEkgc3VwcG9ydC5cbiAgICAgICAgaWYgKCdGaWxlUmVhZGVyJyBpbiB3aW5kb3cpIHtcbiAgICAgICAgICAgIHRoaXMucmVhZEZpbGVzKGZpbGVMaXN0KS5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksXG4gICAgICAgICAgICAgICAgZmlyc3QoKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKGZpbGVzOiBUW10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlc0xvYWRlZC5lbWl0KGZpbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldElucHV0RmllbGQoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICA6IHRvU3RyaW5nKGVycm9yKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yVHlwZTogRXJyb3JUeXBlLkVSUk9SLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzICAgOiAwXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0SW5wdXRGaWVsZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgIDogJ0ZpbGVSZWFkZXIgaXMgbm90IHN1cHBvcnRlZCBpbiB5b3VyIGJyb3dzZXIhIEEgbmV3ZXIgYnJvd3NlciAoSUUgMTErLCBDaHJvbWUgNTArLCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICArICdGaXJlRm94IDUwKywgU2FmYXJpIDkrKSBpcyByZXF1aXJlZCB0byB1c2UgdGhpcyBhcHBsaWNhdGlvbi4nLFxuICAgICAgICAgICAgICAgIGVycm9yVHlwZTogRXJyb3JUeXBlLkVSUk9SLFxuICAgICAgICAgICAgICAgIHN0YXR1cyAgIDogMFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZEZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCk6IE9ic2VydmFibGU8VFtdPjtcblxuICAgIC8vIEhpZGUgYW5kIHNob3cgdGhlIGlucHV0IGZpZWxkIHRvIHJlc2V0IHRoZSBzZWxlY3Rpb25cbiAgICBwcml2YXRlIHJlc2V0SW5wdXRGaWVsZCgpIHtcbiAgICAgICAgdGhpcy5maWxlSW5wdXRIaWRkZW4gPSB0cnVlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0SGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,29 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Renderer2 } from '@angular/core';
2
- import { AbstractFileUploadComponent } from './abstract.file.upload.component';
3
- import { BinaryFileUploadService } from './binary.file.upload.service';
4
- export class BinaryFileUploadComponent extends AbstractFileUploadComponent {
5
- constructor(fileUploadService, renderer) {
6
- super(renderer);
7
- this.fileUploadService = fileUploadService;
8
- }
9
- readFiles(fileList) {
10
- return this.fileUploadService.readFiles(fileList);
11
- }
12
- }
13
- BinaryFileUploadComponent.decorators = [
14
- { type: Component, args: [{
15
- selector: 'risk-binary-file-upload',
16
- template: "<a *ngIf=\"raised; else notRaised\"\n mat-raised-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n</a>\n<ng-template #notRaised>\n <a mat-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n </a>\n</ng-template>\n",
17
- host: {
18
- '[class.risk-binary-file-upload]': 'true'
19
- },
20
- changeDetection: ChangeDetectionStrategy.OnPush,
21
- preserveWhitespaces: false,
22
- styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host{display:inline-block}a{overflow:hidden}a .risk-file-upload-input-wrapper{width:30px;height:36px;margin-left:-15px;top:0;left:0;position:absolute;overflow:hidden;cursor:pointer;z-index:1}a .risk-file-upload-input-wrapper input{position:absolute;display:block;cursor:pointer;height:36px;font-size:36px;top:0;right:0;outline:0 none;opacity:0}\n"]
23
- },] }
24
- ];
25
- BinaryFileUploadComponent.ctorParameters = () => [
26
- { type: BinaryFileUploadService },
27
- { type: Renderer2 }
28
- ];
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmZpbGUudXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZmlsZS9zcmMvbGliL2JpbmFyeS5maWxlLnVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFnQnJFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSwyQkFBdUM7SUFFbEYsWUFBb0MsaUJBQTBDLEVBQzNELFFBQW1CO1FBQ2xDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZnQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO0lBRzlFLENBQUM7SUFFUyxTQUFTLENBQUMsUUFBa0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7OztZQXRCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFhLHlCQUF5QjtnQkFDOUMsMHlDQUEwRDtnQkFLMUQsSUFBSSxFQUFpQjtvQkFDakIsaUNBQWlDLEVBQUUsTUFBTTtpQkFDNUM7Z0JBQ0QsZUFBZSxFQUFNLHVCQUF1QixDQUFDLE1BQU07Z0JBQ25ELG1CQUFtQixFQUFFLEtBQUs7O2FBQzdCOzs7WUFmTyx1QkFBdUI7WUFIYSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWJzdHJhY3RGaWxlVXBsb2FkQ29tcG9uZW50fSBmcm9tICcuL2Fic3RyYWN0LmZpbGUudXBsb2FkLmNvbXBvbmVudCc7XG5pbXBvcnQge0JpbmFyeUZpbGVVcGxvYWRTZXJ2aWNlfSBmcm9tICcuL2JpbmFyeS5maWxlLnVwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7QmluYXJ5RmlsZX0gZnJvbSAnLi9maWxlLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3IgICAgICAgICAgIDogJ3Jpc2stYmluYXJ5LWZpbGUtdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybCAgICAgICAgOiAnYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJscyAgICAgICAgICA6IFtcbiAgICAgICAgJy4uLy4uLy4uL2NvbXBvbmVudC5zY3NzJyxcbiAgICAgICAgJ2Fic3RyYWN0LmZpbGUudXBsb2FkLmNvbXBvbmVudC5zY3NzJ1xuICAgIF0sXG4gICAgaG9zdCAgICAgICAgICAgICAgIDoge1xuICAgICAgICAnW2NsYXNzLnJpc2stYmluYXJ5LWZpbGUtdXBsb2FkXSc6ICd0cnVlJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uICAgIDogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEJpbmFyeUZpbGVVcGxvYWRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpbGVVcGxvYWRDb21wb25lbnQ8QmluYXJ5RmlsZT4ge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmlsZVVwbG9hZFNlcnZpY2U6IEJpbmFyeUZpbGVVcGxvYWRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgICAgIHN1cGVyKHJlbmRlcmVyKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVhZEZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCk6IE9ic2VydmFibGU8QmluYXJ5RmlsZVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLnJlYWRGaWxlcyhmaWxlTGlzdCk7XG4gICAgfVxufVxuIl19
@@ -1,38 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { base64encode } from '@dbg-riskit/common';
3
- import { forkJoin, Observable } from 'rxjs';
4
- export class BinaryFileUploadService {
5
- readFiles(files) {
6
- const fileOservables = [];
7
- for (const file of Array.from(files)) {
8
- fileOservables.push(new Observable((observer) => {
9
- setTimeout(() => {
10
- try {
11
- const reader = new FileReader();
12
- // Handle errors load
13
- reader.onload = (event) => {
14
- observer.next({
15
- bodyBase64: base64encode((event.target.result)),
16
- file
17
- });
18
- observer.complete();
19
- };
20
- reader.onerror = (event) => {
21
- observer.error(event.target.error);
22
- };
23
- // Read file into memory as UTF-8
24
- reader.readAsArrayBuffer(file);
25
- }
26
- catch (err) {
27
- observer.error(err);
28
- }
29
- });
30
- }));
31
- }
32
- return forkJoin(fileOservables);
33
- }
34
- }
35
- BinaryFileUploadService.decorators = [
36
- { type: Injectable }
37
- ];
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmZpbGUudXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9iaW5hcnkuZmlsZS51cGxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsUUFBUSxFQUFFLFVBQVUsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUl0RCxNQUFNLE9BQU8sdUJBQXVCO0lBRXpCLFNBQVMsQ0FBQyxLQUFlO1FBQzVCLE1BQU0sY0FBYyxHQUFrQyxFQUFFLENBQUM7UUFDekQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFnQyxFQUFFLEVBQUU7Z0JBQ3BFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1osSUFBSTt3QkFDQSxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO3dCQUNoQyxxQkFBcUI7d0JBQ3JCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7NEJBQ3JDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0NBQ1YsVUFBVSxFQUFFLFlBQVksQ0FDcEIsQ0FBRSxLQUFLLENBQUMsTUFBcUIsQ0FBQyxNQUFNLENBQWdCLENBQUM7Z0NBQ3pELElBQUk7NkJBQ1AsQ0FBQyxDQUFDOzRCQUNILFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDeEIsQ0FBQyxDQUFDO3dCQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7NEJBQ3RDLFFBQVEsQ0FBQyxLQUFLLENBQUUsS0FBSyxDQUFDLE1BQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3ZELENBQUMsQ0FBQzt3QkFDRixpQ0FBaUM7d0JBQ2pDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDbEM7b0JBQUMsT0FBTyxHQUFHLEVBQUU7d0JBQ1YsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDdkI7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1A7UUFDRCxPQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7WUEvQkosVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2Jhc2U2NGVuY29kZX0gZnJvbSAnQGRiZy1yaXNraXQvY29tbW9uJztcbmltcG9ydCB7Zm9ya0pvaW4sIE9ic2VydmFibGUsIFN1YnNjcmliZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtCaW5hcnlGaWxlfSBmcm9tICcuL2ZpbGUudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmluYXJ5RmlsZVVwbG9hZFNlcnZpY2Uge1xuXG4gICAgcHVibGljIHJlYWRGaWxlcyhmaWxlczogRmlsZUxpc3QpOiBPYnNlcnZhYmxlPEJpbmFyeUZpbGVbXT4ge1xuICAgICAgICBjb25zdCBmaWxlT3NlcnZhYmxlczogQXJyYXk8T2JzZXJ2YWJsZTxCaW5hcnlGaWxlPj4gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIEFycmF5LmZyb20oZmlsZXMpKSB7XG4gICAgICAgICAgICBmaWxlT3NlcnZhYmxlcy5wdXNoKG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogU3Vic2NyaWJlcjxCaW5hcnlGaWxlPikgPT4ge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBlcnJvcnMgbG9hZFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IChldmVudDogUHJvZ3Jlc3NFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5QmFzZTY0OiBiYXNlNjRlbmNvZGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGV2ZW50LnRhcmdldCBhcyBGaWxlUmVhZGVyKS5yZXN1bHQpIGFzIEFycmF5QnVmZmVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcigoZXZlbnQudGFyZ2V0IGFzIEZpbGVSZWFkZXIpLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZWFkIGZpbGUgaW50byBtZW1vcnkgYXMgVVRGLThcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKGZpbGVPc2VydmFibGVzKTtcbiAgICB9XG59XG4iXX0=