UNPKG

@project-sunbird/sunbird-epub-player-v9

Version:

The Epub player library is powered by Angular. This player is primarily designed to be used on Sunbird consumption platforms _(mobile app, web portal, offline desktop app)_ to drive reusability and maintainability, hence reducing the redundant development

53 lines 7.04 kB
import { Injectable } from '@angular/core'; import { epubPlayerConstants } from '../../sunbird-epub.constant'; import * as i0 from "@angular/core"; export class UtilService { constructor() { this.fromConst = epubPlayerConstants; } uniqueId(length = 32) { let result = ''; const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; const charactersLength = characters.length; for (let i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } getTimeSpentText(pdfPlayerStartTime) { const duration = new Date().getTime() - pdfPlayerStartTime; const minutes = Math.floor(duration / 60000); const seconds = Number(((duration % 60000) / 1000).toFixed(0)); return (minutes + ':' + (seconds < 10 ? '0' : '') + seconds); } getCurrentIndex(event, currentPageIndex) { if (event?.interaction === this.fromConst.NEXT) { return currentPageIndex + 1; } if (event?.interaction === this.fromConst.PREVIOUS) { return currentPageIndex - 1 === 0 ? 1 : currentPageIndex - 1; } } async fulfillWithTimeLimit(timeLimit, task, failureValue) { let timeout; const timeoutPromise = new Promise((resolve, reject) => { timeout = setTimeout(() => { resolve(failureValue); }, timeLimit); }); const response = await Promise.race([task, timeoutPromise]); if (timeout) { clearTimeout(timeout); } return response; } /** @nocollapse */ static { this.ɵfac = function UtilService_Factory(t) { return new (t || UtilService)(); }; } /** @nocollapse */ static { this.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: UtilService, factory: UtilService.ɵfac, providedIn: 'root' }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UtilService, [{ type: Injectable, args: [{ providedIn: 'root' }] }], () => [], null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VuYmlyZC1lcHViLXBsYXllci9zcmMvbGliL3NlcnZpY2VzL3V0aWxTZXJ2aWNlL3V0aWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUtsRSxNQUFNLE9BQU8sV0FBVztJQUd0QjtRQUZBLGNBQVMsR0FBRyxtQkFBbUIsQ0FBQztJQUVoQixDQUFDO0lBRVYsUUFBUSxDQUFDLE1BQU0sR0FBRyxFQUFFO1FBQ3pCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLFVBQVUsR0FBRyxnRUFBZ0UsQ0FBQztRQUNwRixNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDM0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLGtCQUFrQjtRQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLGtCQUFrQixDQUFDO1FBQzNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQUssRUFBRyxnQkFBZ0I7UUFDdEMsSUFBSSxLQUFLLEVBQUUsV0FBVyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0MsT0FBTyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksS0FBSyxFQUFFLFdBQVcsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25ELE9BQU8sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsU0FBaUIsRUFBRSxJQUFrQixFQUFFLFlBQWlCO1FBQ2pGLElBQUksT0FBTyxDQUFDO1FBQ1osTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckQsT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hCLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN4QixDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOytGQTNDVSxXQUFXO3NHQUFYLFdBQVcsV0FBWCxXQUFXLG1CQUZWLE1BQU07O2lGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXB1YlBsYXllckNvbnN0YW50cyB9IGZyb20gJy4uLy4uL3N1bmJpcmQtZXB1Yi5jb25zdGFudCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFV0aWxTZXJ2aWNlIHtcbiAgZnJvbUNvbnN0ID0gZXB1YlBsYXllckNvbnN0YW50cztcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyB1bmlxdWVJZChsZW5ndGggPSAzMikge1xuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBjb25zdCBjaGFyYWN0ZXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgICBjb25zdCBjaGFyYWN0ZXJzTGVuZ3RoID0gY2hhcmFjdGVycy5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnNMZW5ndGgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUaW1lU3BlbnRUZXh0KHBkZlBsYXllclN0YXJ0VGltZSkge1xuICAgIGNvbnN0IGR1cmF0aW9uID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSBwZGZQbGF5ZXJTdGFydFRpbWU7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoZHVyYXRpb24gLyA2MDAwMCk7XG4gICAgY29uc3Qgc2Vjb25kcyA9IE51bWJlcigoKGR1cmF0aW9uICUgNjAwMDApIC8gMTAwMCkudG9GaXhlZCgwKSk7XG4gICAgcmV0dXJuIChtaW51dGVzICsgJzonICsgKHNlY29uZHMgPCAxMCA/ICcwJyA6ICcnKSArIHNlY29uZHMpO1xuICB9XG5cbiAgZ2V0Q3VycmVudEluZGV4KGV2ZW50ICwgY3VycmVudFBhZ2VJbmRleCkge1xuICAgIGlmIChldmVudD8uaW50ZXJhY3Rpb24gPT09IHRoaXMuZnJvbUNvbnN0Lk5FWFQpIHtcbiAgICAgIHJldHVybiBjdXJyZW50UGFnZUluZGV4ICsgMTtcbiAgICB9XG4gICAgaWYgKGV2ZW50Py5pbnRlcmFjdGlvbiA9PT0gdGhpcy5mcm9tQ29uc3QuUFJFVklPVVMpIHtcbiAgICAgIHJldHVybiBjdXJyZW50UGFnZUluZGV4IC0gMSA9PT0gIDAgPyAxIDogY3VycmVudFBhZ2VJbmRleCAtIDE7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZnVsZmlsbFdpdGhUaW1lTGltaXQodGltZUxpbWl0OiBudW1iZXIsIHRhc2s6IFByb21pc2U8YW55PiwgZmFpbHVyZVZhbHVlOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCB0aW1lb3V0O1xuICAgIGNvbnN0IHRpbWVvdXRQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICByZXNvbHZlKGZhaWx1cmVWYWx1ZSk7XG4gICAgICB9LCB0aW1lTGltaXQpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgUHJvbWlzZS5yYWNlKFt0YXNrLCB0aW1lb3V0UHJvbWlzZV0pO1xuICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxufVxuIl19