UNPKG

@miracledevs/paradigm-web-angular

Version:

An angular wrapper with base functionality and helper services.

135 lines 12.3 kB
/** * @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==