@miracledevs/paradigm-web-angular
Version:
An angular wrapper with base functionality and helper services.
135 lines • 12.3 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";
export class FileService extends ServiceBase {
/**
* 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 {?}
*/
readAsBlob(file, onProgress) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return new Blob([yield this.read(file, (/**
* @param {?} fileReader
* @return {?}
*/
fileReader => fileReader.readAsArrayBuffer(file)), onProgress)], { 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.
* @return {?}
*/
readAsText(file, onProgress) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return (/** @type {?} */ (yield this.read(file, (/**
* @param {?} fileReader
* @return {?}
*/
fileReader => fileReader.readAsText(file)), onProgress)));
});
}
/**
* 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 {?}
*/
readAsBinaryString(file, onProgress) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return (/** @type {?} */ (yield this.read(file, (/**
* @param {?} fileReader
* @return {?}
*/
fileReader => fileReader.readAsBinaryString(file)), onProgress)));
});
}
/**
* 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 {?}
*/
read(file, action, progress) {
return new Promise((/**
* @param {?} resolve
* @param {?} reject
* @return {?}
*/
(resolve, reject) => {
/** @type {?} */
const 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 {?} */
const 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" });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pcmFjbGVkZXZzL3BhcmFkaWdtLXdlYi1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2ZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBTUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSzdDLE1BQU0sT0FBTyxXQUFZLFNBQVEsV0FBVzs7Ozs7OztJQU9sQyxVQUFVLENBQUMsSUFBVSxFQUFFLFVBQXlDOztZQUVsRSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7Ozs7Z0JBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoSSxDQUFDO0tBQUE7Ozs7Ozs7SUFPSyxVQUFVLENBQUMsSUFBVSxFQUFFLFVBQXlDOztZQUVsRSxPQUFPLG1CQUFBLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJOzs7O1lBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFFLFVBQVUsQ0FBQyxFQUFVLENBQUM7UUFDbEcsQ0FBQztLQUFBOzs7Ozs7O0lBT0ssa0JBQWtCLENBQUMsSUFBVSxFQUFFLFVBQXlDOztZQUUxRSxPQUFPLG1CQUFBLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJOzs7O1lBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUUsVUFBVSxDQUFDLEVBQVUsQ0FBQztRQUMxRyxDQUFDO0tBQUE7Ozs7Ozs7OztJQVFPLElBQUksQ0FBQyxJQUFVLEVBQUUsTUFBd0MsRUFBRSxRQUF1QztRQUV0RyxPQUFPLElBQUksT0FBTzs7Ozs7UUFBdUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7O2tCQUVuRCxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUU7Ozs7WUFFbkMsU0FBUyxpQkFBaUI7Z0JBRXRCLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3BELFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ2xELFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbEQsQ0FBQzs7OztZQUVELFNBQVMsb0JBQW9CO2dCQUV6QixVQUFVLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUN2RCxVQUFVLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNyRCxVQUFVLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3JELENBQUM7Ozs7O1lBRUQsU0FBUyxVQUFVLENBQUMsQ0FBZ0I7Z0JBRWhDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUN0Qjs7MEJBQ1UsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUM7b0JBQzVELFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDM0I7WUFDTCxDQUFDOzs7O1lBRUQsU0FBUyxTQUFTO2dCQUVkLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQzs7Ozs7WUFFRCxTQUFTLE9BQU8sQ0FBQyxDQUFNO2dCQUVuQixvQkFBb0IsRUFBRSxDQUFDO2dCQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDZCxDQUFDO1lBRUQsaUJBQWlCLEVBQUUsQ0FBQztZQUVwQixJQUNBO2dCQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN0QjtZQUNELE9BQU8sS0FBSyxFQUNaO2dCQUNJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsQjtRQUNMLENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBN0ZKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogUGFyYWRpZ20gRnJhbWV3b3JrIC0gQW5ndWxhciBXcmFwcGVyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTcgTWlyYWNsZSBEZXZzLCBJbmNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL01pcmFjbGVEZXZzL1BhcmFkaWdtLldlYi5TaGFyZWQvYmxvYi9tYXN0ZXIvTElDRU5TRSlcbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXJ2aWNlQmFzZSB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWxlU2VydmljZSBleHRlbmRzIFNlcnZpY2VCYXNlXG57XG4gICAgLyoqXG4gICAgICogUmVhZHMgYSBmaWxlIGFzIGEgYmxvZy5cbiAgICAgKiBAcGFyYW0gZmlsZSB0aGUgZmlsZSB0aGF0IG5lZWRzIHRvIGJlIHJlYWQuXG4gICAgICogQHBhcmFtIG9uUHJvZ3Jlc3MgQSBwcm9ncmVzcyBoYW5kbGVyIHRvIHJlY2VpdmUgcHJvZ3Jlc3MgcmVwb3J0cy5cbiAgICAgKi9cbiAgICBhc3luYyByZWFkQXNCbG9iKGZpbGU6IEZpbGUsIG9uUHJvZ3Jlc3M/OiAocGVyY2VudGFnZTogbnVtYmVyKSA9PiB2b2lkKTogUHJvbWlzZTxCbG9iPlxuICAgIHtcbiAgICAgICAgcmV0dXJuIG5ldyBCbG9iKFthd2FpdCB0aGlzLnJlYWQoZmlsZSwgZmlsZVJlYWRlciA9PiBmaWxlUmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpLCBvblByb2dyZXNzKV0sIHsgdHlwZTogZmlsZS50eXBlIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlYWRzIGEgZmlsZSBhcyB0ZXh0LlxuICAgICAqIEBwYXJhbSBmaWxlIHRoZSBmaWxlIHRoYXQgbmVlZHMgdG8gYmUgcmVhZC5cbiAgICAgKiBAcGFyYW0gb25Qcm9ncmVzcyBBIHByb2dyZXNzIGhhbmRsZXIgdG8gcmVjZWl2ZSBwcm9ncmVzcyByZXBvcnRzLlxuICAgICAqL1xuICAgIGFzeW5jIHJlYWRBc1RleHQoZmlsZTogRmlsZSwgb25Qcm9ncmVzcz86IChwZXJjZW50YWdlOiBudW1iZXIpID0+IHZvaWQpOiBQcm9taXNlPHN0cmluZz5cbiAgICB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlYWQoZmlsZSwgZmlsZVJlYWRlciA9PiBmaWxlUmVhZGVyLnJlYWRBc1RleHQoZmlsZSksIG9uUHJvZ3Jlc3MpIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWFkcyBhIGZpbGUgYXMgYmluYXJ5IHRleHQuXG4gICAgICogQHBhcmFtIGZpbGUgdGhlIGZpbGUgdGhhdCBuZWVkcyB0byBiZSByZWFkLlxuICAgICAqIEBwYXJhbSBvblByb2dyZXNzIEEgcHJvZ3Jlc3MgaGFuZGxlciB0byByZWNlaXZlIHByb2dyZXNzIHJlcG9ydHMuXG4gICAgICovXG4gICAgYXN5bmMgcmVhZEFzQmluYXJ5U3RyaW5nKGZpbGU6IEZpbGUsIG9uUHJvZ3Jlc3M/OiAocGVyY2VudGFnZTogbnVtYmVyKSA9PiB2b2lkKTogUHJvbWlzZTxzdHJpbmc+XG4gICAge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5yZWFkKGZpbGUsIGZpbGVSZWFkZXIgPT4gZmlsZVJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSksIG9uUHJvZ3Jlc3MpIGFzIHN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWFkcyBhIGZpbGUgYW5kIGhhbmRsZXMgYWxsIHRoZSBldmVudHMgYW5kIGV2ZW50IHJlbW92aW5nLlxuICAgICAqIEBwYXJhbSBmaWxlIHRoZSBmaWxlIHRvIHJlYWQuXG4gICAgICogQHBhcmFtIGFjdGlvbiB0aGUgcmVhZGluZyBhY3Rpb24uXG4gICAgICogQHBhcmFtIHByb2dyZXNzIGEgcHJvZ3Jlc3MgaGFuZGxlciB0byByZXBvcnQgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkKGZpbGU6IEZpbGUsIGFjdGlvbjogKGZpbGVSZWFkZXI6IEZpbGVSZWFkZXIpID0+IHZvaWQsIHByb2dyZXNzPzogKHBlcmNlbnRhZ2U6IG51bWJlcikgPT4gdm9pZCk6IFByb21pc2U8c3RyaW5nIHwgQXJyYXlCdWZmZXI+XG4gICAge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nIHwgQXJyYXlCdWZmZXI+KChyZXNvbHZlLCByZWplY3QpID0+XG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgICAgICAgICBmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVycygpOiB2b2lkXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmlsZVJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIG9uUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgICAgIGZpbGVSZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVuZCcsIG9uTG9hZEVuZCk7XG4gICAgICAgICAgICAgICAgZmlsZVJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmdW5jdGlvbiByZW1vdmVFdmVudExpc3RlbmVycygpOiB2b2lkXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmlsZVJlYWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCdwcm9ncmVzcycsIG9uUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgICAgIGZpbGVSZWFkZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZGVuZCcsIG9uTG9hZEVuZCk7XG4gICAgICAgICAgICAgICAgZmlsZVJlYWRlci5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmdW5jdGlvbiBvblByb2dyZXNzKGU6IFByb2dyZXNzRXZlbnQpOiB2b2lkXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWYgKGUubGVuZ3RoQ29tcHV0YWJsZSlcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBlcmNlbnRMb2FkZWQgPSBNYXRoLnJvdW5kKChlLmxvYWRlZCAvIGUudG90YWwpICogMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MocGVyY2VudExvYWRlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmdW5jdGlvbiBvbkxvYWRFbmQoKVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShmaWxlUmVhZGVyLnJlc3VsdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIG9uRXJyb3IoZTogYW55KVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhZGRFdmVudExpc3RlbmVycygpO1xuXG4gICAgICAgICAgICB0cnlcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb24oZmlsZVJlYWRlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb25FcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==