@miracledevs/paradigm-web-angular
Version:
An angular wrapper with base functionality and helper services.
206 lines • 15.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
/*!
* Paradigm Framework - Angular Wrapper
* Copyright (c) 2017 Miracle Devs, Inc
* Licensed under MIT (https://github.com/MiracleDevs/Paradigm.Web.Shared/blob/master/LICENSE)
*/
import { Injectable } from '@angular/core';
import { ServiceBase } from './base.service';
import * as i0 from "@angular/core";
var FileService = /** @class */ (function (_super) {
tslib_1.__extends(FileService, _super);
function FileService() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* Reads a file as a blog.
* @param file the file that needs to be read.
* @param onProgress A progress handler to receive progress reports.
*/
/**
* Reads a file as a blog.
* @param {?} file the file that needs to be read.
* @param {?=} onProgress A progress handler to receive progress reports.
* @return {?}
*/
FileService.prototype.readAsBlob = /**
* Reads a file as a blog.
* @param {?} file the file that needs to be read.
* @param {?=} onProgress A progress handler to receive progress reports.
* @return {?}
*/
function (file, onProgress) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = Blob.bind;
return [4 /*yield*/, this.read(file, (/**
* @param {?} fileReader
* @return {?}
*/
function (fileReader) { return fileReader.readAsArrayBuffer(file); }), onProgress)];
case 1: return [2 /*return*/, new (_a.apply(Blob, [void 0, [_b.sent()], { type: file.type }]))()];
}
});
});
};
/**
* Reads a file as text.
* @param file the file that needs to be read.
* @param onProgress A progress handler to receive progress reports.
*/
/**
* Reads a file as text.
* @param {?} file the file that needs to be read.
* @param {?=} onProgress A progress handler to receive progress reports.
* @return {?}
*/
FileService.prototype.readAsText = /**
* Reads a file as text.
* @param {?} file the file that needs to be read.
* @param {?=} onProgress A progress handler to receive progress reports.
* @return {?}
*/
function (file, onProgress) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.read(file, (/**
* @param {?} fileReader
* @return {?}
*/
function (fileReader) { return fileReader.readAsText(file); }), onProgress)];
case 1: return [2 /*return*/, (/** @type {?} */ (_a.sent()))];
}
});
});
};
/**
* Reads a file as binary text.
* @param file the file that needs to be read.
* @param onProgress A progress handler to receive progress reports.
*/
/**
* Reads a file as binary text.
* @param {?} file the file that needs to be read.
* @param {?=} onProgress A progress handler to receive progress reports.
* @return {?}
*/
FileService.prototype.readAsBinaryString = /**
* Reads a file as binary text.
* @param {?} file the file that needs to be read.
* @param {?=} onProgress A progress handler to receive progress reports.
* @return {?}
*/
function (file, onProgress) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.read(file, (/**
* @param {?} fileReader
* @return {?}
*/
function (fileReader) { return fileReader.readAsBinaryString(file); }), onProgress)];
case 1: return [2 /*return*/, (/** @type {?} */ (_a.sent()))];
}
});
});
};
/**
* Reads a file and handles all the events and event removing.
* @param file the file to read.
* @param action the reading action.
* @param progress a progress handler to report progress.
*/
/**
* Reads a file and handles all the events and event removing.
* @private
* @param {?} file the file to read.
* @param {?} action the reading action.
* @param {?=} progress a progress handler to report progress.
* @return {?}
*/
FileService.prototype.read = /**
* Reads a file and handles all the events and event removing.
* @private
* @param {?} file the file to read.
* @param {?} action the reading action.
* @param {?=} progress a progress handler to report progress.
* @return {?}
*/
function (file, action, progress) {
return new Promise((/**
* @param {?} resolve
* @param {?} reject
* @return {?}
*/
function (resolve, reject) {
/** @type {?} */
var fileReader = new FileReader();
/**
* @return {?}
*/
function addEventListeners() {
fileReader.addEventListener('progress', onProgress);
fileReader.addEventListener('loadend', onLoadEnd);
fileReader.addEventListener('error', onError);
}
/**
* @return {?}
*/
function removeEventListeners() {
fileReader.removeEventListener('progress', onProgress);
fileReader.removeEventListener('loadend', onLoadEnd);
fileReader.removeEventListener('error', onError);
}
/**
* @param {?} e
* @return {?}
*/
function onProgress(e) {
if (e.lengthComputable) {
/** @type {?} */
var percentLoaded = Math.round((e.loaded / e.total) * 100);
progress(percentLoaded);
}
}
/**
* @return {?}
*/
function onLoadEnd() {
removeEventListeners();
resolve(fileReader.result);
}
/**
* @param {?} e
* @return {?}
*/
function onError(e) {
removeEventListeners();
reject(e);
}
addEventListeners();
try {
action(fileReader);
}
catch (error) {
onError(error);
}
}));
};
FileService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */ FileService.ngInjectableDef = i0.defineInjectable({ factory: function FileService_Factory() { return new FileService(); }, token: FileService, providedIn: "root" });
return FileService;
}(ServiceBase));
export { FileService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pcmFjbGVkZXZzL3BhcmFkaWdtLXdlYi1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2ZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBTUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTdDO0lBR2lDLHVDQUFXO0lBSDVDOztLQThGQztJQXpGRzs7OztPQUlHOzs7Ozs7O0lBQ0csZ0NBQVU7Ozs7OztJQUFoQixVQUFpQixJQUFVLEVBQUUsVUFBeUM7Ozs7Ozs2QkFFdkQsSUFBSTt3QkFBRSxxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7Ozs7NEJBQUUsVUFBQSxVQUFVLElBQUksT0FBQSxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQWxDLENBQWtDLEdBQUUsVUFBVSxDQUFDLEVBQUE7NEJBQXBHLHNCQUFPLGNBQUksSUFBSSxZQUFFLFNBQW1GLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFDLEVBQUM7Ozs7S0FDL0g7SUFFRDs7OztPQUlHOzs7Ozs7O0lBQ0csZ0NBQVU7Ozs7OztJQUFoQixVQUFpQixJQUFVLEVBQUUsVUFBeUM7Ozs7NEJBRTNELHFCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTs7Ozt3QkFBRSxVQUFBLFVBQVUsSUFBSSxPQUFBLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQTNCLENBQTJCLEdBQUUsVUFBVSxDQUFDLEVBQUE7NEJBQW5GLHNCQUFPLG1CQUFBLFNBQTRFLEVBQVUsRUFBQzs7OztLQUNqRztJQUVEOzs7O09BSUc7Ozs7Ozs7SUFDRyx3Q0FBa0I7Ozs7OztJQUF4QixVQUF5QixJQUFVLEVBQUUsVUFBeUM7Ozs7NEJBRW5FLHFCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTs7Ozt3QkFBRSxVQUFBLFVBQVUsSUFBSSxPQUFBLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBbkMsQ0FBbUMsR0FBRSxVQUFVLENBQUMsRUFBQTs0QkFBM0Ysc0JBQU8sbUJBQUEsU0FBb0YsRUFBVSxFQUFDOzs7O0tBQ3pHO0lBRUQ7Ozs7O09BS0c7Ozs7Ozs7OztJQUNLLDBCQUFJOzs7Ozs7OztJQUFaLFVBQWEsSUFBVSxFQUFFLE1BQXdDLEVBQUUsUUFBdUM7UUFFdEcsT0FBTyxJQUFJLE9BQU87Ozs7O1FBQXVCLFVBQUMsT0FBTyxFQUFFLE1BQU07O2dCQUUvQyxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUU7Ozs7WUFFbkMsU0FBUyxpQkFBaUI7Z0JBRXRCLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3BELFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ2xELFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbEQsQ0FBQzs7OztZQUVELFNBQVMsb0JBQW9CO2dCQUV6QixVQUFVLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUN2RCxVQUFVLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNyRCxVQUFVLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3JELENBQUM7Ozs7O1lBRUQsU0FBUyxVQUFVLENBQUMsQ0FBZ0I7Z0JBRWhDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUN0Qjs7d0JBQ1UsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUM7b0JBQzVELFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDM0I7WUFDTCxDQUFDOzs7O1lBRUQsU0FBUyxTQUFTO2dCQUVkLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQzs7Ozs7WUFFRCxTQUFTLE9BQU8sQ0FBQyxDQUFNO2dCQUVuQixvQkFBb0IsRUFBRSxDQUFDO2dCQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDZCxDQUFDO1lBRUQsaUJBQWlCLEVBQUUsQ0FBQztZQUVwQixJQUNBO2dCQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN0QjtZQUNELE9BQU8sS0FBSyxFQUNaO2dCQUNJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsQjtRQUNMLENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7Z0JBN0ZKLFVBQVUsU0FBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OztzQkFYRDtDQXVHQyxBQTlGRCxDQUdpQyxXQUFXLEdBMkYzQztTQTNGWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBQYXJhZGlnbSBGcmFtZXdvcmsgLSBBbmd1bGFyIFdyYXBwZXJcbiAqIENvcHlyaWdodCAoYykgMjAxNyBNaXJhY2xlIERldnMsIEluY1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vTWlyYWNsZURldnMvUGFyYWRpZ20uV2ViLlNoYXJlZC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlcnZpY2VCYXNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVTZXJ2aWNlIGV4dGVuZHMgU2VydmljZUJhc2VcbntcbiAgICAvKipcbiAgICAgKiBSZWFkcyBhIGZpbGUgYXMgYSBibG9nLlxuICAgICAqIEBwYXJhbSBmaWxlIHRoZSBmaWxlIHRoYXQgbmVlZHMgdG8gYmUgcmVhZC5cbiAgICAgKiBAcGFyYW0gb25Qcm9ncmVzcyBBIHByb2dyZXNzIGhhbmRsZXIgdG8gcmVjZWl2ZSBwcm9ncmVzcyByZXBvcnRzLlxuICAgICAqL1xuICAgIGFzeW5jIHJlYWRBc0Jsb2IoZmlsZTogRmlsZSwgb25Qcm9ncmVzcz86IChwZXJjZW50YWdlOiBudW1iZXIpID0+IHZvaWQpOiBQcm9taXNlPEJsb2I+XG4gICAge1xuICAgICAgICByZXR1cm4gbmV3IEJsb2IoW2F3YWl0IHRoaXMucmVhZChmaWxlLCBmaWxlUmVhZGVyID0+IGZpbGVSZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSksIG9uUHJvZ3Jlc3MpXSwgeyB0eXBlOiBmaWxlLnR5cGUgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVhZHMgYSBmaWxlIGFzIHRleHQuXG4gICAgICogQHBhcmFtIGZpbGUgdGhlIGZpbGUgdGhhdCBuZWVkcyB0byBiZSByZWFkLlxuICAgICAqIEBwYXJhbSBvblByb2dyZXNzIEEgcHJvZ3Jlc3MgaGFuZGxlciB0byByZWNlaXZlIHByb2dyZXNzIHJlcG9ydHMuXG4gICAgICovXG4gICAgYXN5bmMgcmVhZEFzVGV4dChmaWxlOiBGaWxlLCBvblByb2dyZXNzPzogKHBlcmNlbnRhZ2U6IG51bWJlcikgPT4gdm9pZCk6IFByb21pc2U8c3RyaW5nPlxuICAgIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVhZChmaWxlLCBmaWxlUmVhZGVyID0+IGZpbGVSZWFkZXIucmVhZEFzVGV4dChmaWxlKSwgb25Qcm9ncmVzcykgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlYWRzIGEgZmlsZSBhcyBiaW5hcnkgdGV4dC5cbiAgICAgKiBAcGFyYW0gZmlsZSB0aGUgZmlsZSB0aGF0IG5lZWRzIHRvIGJlIHJlYWQuXG4gICAgICogQHBhcmFtIG9uUHJvZ3Jlc3MgQSBwcm9ncmVzcyBoYW5kbGVyIHRvIHJlY2VpdmUgcHJvZ3Jlc3MgcmVwb3J0cy5cbiAgICAgKi9cbiAgICBhc3luYyByZWFkQXNCaW5hcnlTdHJpbmcoZmlsZTogRmlsZSwgb25Qcm9ncmVzcz86IChwZXJjZW50YWdlOiBudW1iZXIpID0+IHZvaWQpOiBQcm9taXNlPHN0cmluZz5cbiAgICB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlYWQoZmlsZSwgZmlsZVJlYWRlciA9PiBmaWxlUmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKSwgb25Qcm9ncmVzcykgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlYWRzIGEgZmlsZSBhbmQgaGFuZGxlcyBhbGwgdGhlIGV2ZW50cyBhbmQgZXZlbnQgcmVtb3ZpbmcuXG4gICAgICogQHBhcmFtIGZpbGUgdGhlIGZpbGUgdG8gcmVhZC5cbiAgICAgKiBAcGFyYW0gYWN0aW9uIHRoZSByZWFkaW5nIGFjdGlvbi5cbiAgICAgKiBAcGFyYW0gcHJvZ3Jlc3MgYSBwcm9ncmVzcyBoYW5kbGVyIHRvIHJlcG9ydCBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWQoZmlsZTogRmlsZSwgYWN0aW9uOiAoZmlsZVJlYWRlcjogRmlsZVJlYWRlcikgPT4gdm9pZCwgcHJvZ3Jlc3M/OiAocGVyY2VudGFnZTogbnVtYmVyKSA9PiB2b2lkKTogUHJvbWlzZTxzdHJpbmcgfCBBcnJheUJ1ZmZlcj5cbiAgICB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmcgfCBBcnJheUJ1ZmZlcj4oKHJlc29sdmUsIHJlamVjdCkgPT5cbiAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXJzKCk6IHZvaWRcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWxlUmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Byb2dyZXNzJywgb25Qcm9ncmVzcyk7XG4gICAgICAgICAgICAgICAgZmlsZVJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkZW5kJywgb25Mb2FkRW5kKTtcbiAgICAgICAgICAgICAgICBmaWxlUmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlbW92ZUV2ZW50TGlzdGVuZXJzKCk6IHZvaWRcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWxlUmVhZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Byb2dyZXNzJywgb25Qcm9ncmVzcyk7XG4gICAgICAgICAgICAgICAgZmlsZVJlYWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkZW5kJywgb25Mb2FkRW5kKTtcbiAgICAgICAgICAgICAgICBmaWxlUmVhZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIG9uUHJvZ3Jlc3MoZTogUHJvZ3Jlc3NFdmVudCk6IHZvaWRcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5sZW5ndGhDb21wdXRhYmxlKVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVyY2VudExvYWRlZCA9IE1hdGgucm91bmQoKGUubG9hZGVkIC8gZS50b3RhbCkgKiAxMDApO1xuICAgICAgICAgICAgICAgICAgICBwcm9ncmVzcyhwZXJjZW50TG9hZGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIG9uTG9hZEVuZCgpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGZpbGVSZWFkZXIucmVzdWx0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZnVuY3Rpb24gb25FcnJvcihlOiBhbnkpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXJzKCk7XG5cbiAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFjdGlvbihmaWxlUmVhZGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcilcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvbkVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19