UNPKG

@ema/js-base-library

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.

190 lines 13.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; export class Util { /** * @param {?} arr * @param {?} value * @return {?} */ static arrayRemoveValue(arr, value) { // todo: implement for complex objects /** @type {?} */ let arr2 = arr.filter((/** * @param {?} ele * @return {?} */ function (ele) { return ele != value; })); return arr2; // ex: var result = arrayRemove(array, 'myRemoveString'); } /** * @param {?} arr * @return {?} */ static arraySetUnique(arr) { /** @type {?} */ let obj = {}; for (let a = 0; a < arr.length; a++) obj[arr[a]] = true; /** @type {?} */ let resultarr = []; for (let o in obj) resultarr.push(o); return resultarr; } /** * @param {?} o * @return {?} */ static castToType(o) { /** @type {?} */ let value = o; if (Number(value) && value !== "true" && value !== "false") { value = Number(value); } if (value === "0") { value = 0; } if (value === "true") { value = true; } if (value === "false") { value = false; } return value; } /** * @param {?} obj * @return {?} */ static copy(obj) { return JSON.parse(JSON.stringify(obj)); } /** * @param {?} url * @return {?} */ static fetchJson(url) { return tslib_1.__awaiter(this, void 0, void 0, function* () { /** @type {?} */ const response = yield fetch(url).catch((/** * @param {?} error * @return {?} */ (error) => { console.error(error); })); /** @type {?} */ const json = yield response.json(); return json; }); } /** * @param {?} jsonString * @return {?} */ static tryParseJSON(jsonString) { try { /** @type {?} */ var o = JSON.parse(jsonString); if (o && typeof o === "object") { return o; } } catch (e) { } return false; } ; /** * Returns the global object of the environment the application is running in (browser, node, web worker, or frame) * @return {?} */ static getGlobal() { // the only reliable means to get the global object is // `Function('return this')()` // However, this causes CSP violations in Chrome apps. if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } // @ts-ignore if (typeof global !== 'undefined') { return global; } throw new Error('unable to locate global object'); } ; /** * Returns the current date as milliseconds since midnight Jan 1, 1970. * @param {?=} date * @return {?} */ static getTimeStamp(date = null) { if (date) { if (typeof date === 'string') { return Math.round(+new Date(date)); } else { return Math.round(+date); } } else { return Math.round(+new Date()); } } /** * Returns the current date as seconds since midnight Jan 1, 1970. * @param {?=} date * @return {?} */ static getUnixTimeStamp(date = null) { return Math.floor(Util.getTimeStamp(date) / 1000); } /** * Returns a UUID. * @return {?} */ static getUUID() { /** @type {?} */ let d = new Date().getTime(); /** @type {?} */ const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (/** * @param {?} c * @return {?} */ function (c) { /** @type {?} */ const r = (d + Math.random() * 16) % 16 | 0; d = Math.floor(d / 16); return (c === 'x' ? r : (r & 0x7 | 0x8)).toString(16); })); return uuid; } /** * Checks if the application is running in a browser. * @return {?} */ static isBrowser() { return typeof window !== 'undefined'; } /** * Checks if the application is running in a browser and online. * @return {?} */ static isOnline() { if (typeof window !== 'undefined' && window.navigator.onLine) { return true; } else { return false; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BlbWEvanMtYmFzZS1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL3V0aWxzL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFNLE9BQU8sSUFBSTs7Ozs7O0lBRWIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQVUsRUFBRSxLQUFLOzs7WUFFakMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxNQUFNOzs7O1FBQUMsVUFBUyxHQUFHO1lBQzlCLE9BQU8sR0FBRyxJQUFJLEtBQUssQ0FBQztRQUN4QixDQUFDLEVBQUM7UUFDRixPQUFPLElBQUksQ0FBQztRQUNaLHlEQUF5RDtJQUM3RCxDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRzs7WUFDakIsR0FBRyxHQUFHLEVBQUU7UUFDWixLQUFJLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBQyxDQUFDLEdBQUMsR0FBRyxDQUFDLE1BQU0sRUFBQyxDQUFDLEVBQUU7WUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUMsSUFBSSxDQUFDOztZQUMzQyxTQUFTLEdBQUcsRUFBRTtRQUNsQixLQUFJLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7Ozs7O0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFNOztZQUNoQixLQUFLLEdBQUcsQ0FBQztRQUNiLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxNQUFNLElBQUksS0FBSyxLQUFLLE9BQU8sRUFBRTtZQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FBQztRQUNwRixJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUU7WUFBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQUM7UUFDL0IsSUFBSSxL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QUM7WUFDdkIsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFELENBQUMsRUFBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Ozs7O0lBS0QsTUFBTSxDQUFDLFNBQVM7UUFDWixPQUFPLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQztJQUN6QyxDQUFDOzs7OztJQUtELE1BQU0sQ0FBQyxRQUFRO1FBQ1gsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDMUQsT0FBTyxJQUFJLENBQUM7U0FDZjthQUFNO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXRpbCB7XG5cbiAgICBzdGF0aWMgYXJyYXlSZW1vdmVWYWx1ZShhcnI6IGFueVtdLCB2YWx1ZSkge1xuICAgICAgICAvLyB0b2RvOiBpbXBsZW1lbnQgZm9yIGNvbXBsZXggb2JqZWN0c1xuICAgICAgICBsZXQgYXJyMiA9IGFyci5maWx0ZXIoZnVuY3Rpb24oZWxlKXtcbiAgICAgICAgICAgIHJldHVybiBlbGUgIT0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYXJyMjtcbiAgICAgICAgLy8gZXg6IHZhciByZXN1bHQgPSBhcnJheVJlbW92ZShhcnJheSwgJ215UmVtb3ZlU3RyaW5nJyk7XG4gICAgfVxuXG4gICAgc3RhdGljIGFycmF5U2V0VW5pcXVlKGFycikge1xuICAgICAgICBsZXQgb2JqID0ge307XG4gICAgICAgIGZvcihsZXQgYT0wO2E8YXJyLmxlbmd0aDthKyspIG9ialthcnJbYV1dPXRydWU7XG4gICAgICAgIGxldCByZXN1bHRhcnIgPSBbXTtcbiAgICAgICAgZm9yKGxldCBvIGluIG9iaikgcmVzdWx0YXJyLnB1c2gobyk7XG4gICAgICAgIHJldHVybiByZXN1bHRhcnI7XG4gICAgfVxuXG4gICAgc3RhdGljIGNhc3RUb1R5cGUobzogYW55KSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG87XG4gICAgICAgIGlmIChOdW1iZXIodmFsdWUpICYmIHZhbHVlICE9PSBcInRydWVcIiAmJiB2YWx1ZSAhPT0gXCJmYWxzZVwiKSB7dmFsdWUgPSBOdW1iZXIodmFsdWUpO31cbiAgICAgICAgaWYgKHZhbHVlID09PSBcIjBcIikge3ZhbHVlID0gMDt9XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gXCJ0cnVlXCIpIHt2YWx1ZSA9IHRydWU7fVxuICAgICAgICBpZiAodmFsdWUgPT09IFwiZmFsc2VcIikge3ZhbHVlID0gZmFsc2U7fVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgc3RhdGljIGNvcHkob2JqKSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9iaikpO1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBmZXRjaEpzb24odXJsOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IGZldGNoKHVybCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgIHJldHVybiBqc29uO1xuICAgIH1cblxuICAgIHN0YXRpYyB0cnlQYXJzZUpTT04oanNvblN0cmluZyl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgbyA9IEpTT04ucGFyc2UoanNvblN0cmluZyk7XG4gICAgICAgICAgICBpZiAobyAmJiB0eXBlb2YgbyA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBnbG9iYWwgb2JqZWN0IG9mIHRoZSBlbnZpcm9ubWVudCB0aGUgYXBwbGljYXRpb24gaXMgcnVubmluZyBpbiAoYnJvd3Nlciwgbm9kZSwgd2ViIHdvcmtlciwgb3IgZnJhbWUpXG4gICAgICovXG4gICAgc3RhdGljIGdldEdsb2JhbCgpIHtcbiAgICAgICAgLy8gdGhlIG9ubHkgcmVsaWFibGUgbWVhbnMgdG8gZ2V0IHRoZSBnbG9iYWwgb2JqZWN0IGlzXG4gICAgICAgIC8vIGBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpYFxuICAgICAgICAvLyBIb3dldmVyLCB0aGlzIGNhdXNlcyBDU1AgdmlvbGF0aW9ucyBpbiBDaHJvbWUgYXBwcy5cbiAgICAgICAgaWYgKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJykgeyByZXR1cm4gc2VsZjsgfVxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHsgcmV0dXJuIHdpbmRvdzsgfVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJykgeyByZXR1cm4gZ2xvYmFsOyB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndW5hYmxlIHRvIGxvY2F0ZSBnbG9iYWwgb2JqZWN0Jyk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgZGF0ZSBhcyBtaWxsaXNlY29uZHMgc2luY2UgbWlkbmlnaHQgSmFuIDEsIDE5NzAuXG4gICAgICovXG4gICAgc3RhdGljIGdldFRpbWVTdGFtcChkYXRlOiBhbnkgPSBudWxsKSB7XG4gICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoK25ldyBEYXRlKGRhdGUpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoK2RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoK25ldyBEYXRlKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBkYXRlIGFzIHNlY29uZHMgc2luY2UgbWlkbmlnaHQgSmFuIDEsIDE5NzAuXG4gICAgICovXG4gICAgc3RhdGljIGdldFVuaXhUaW1lU3RhbXAoZGF0ZTogYW55ID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihVdGlsLmdldFRpbWVTdGFtcChkYXRlKSAvIDEwMDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBVVUlELlxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRVVUlEKCkge1xuICAgICAgICBsZXQgZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICBjb25zdCB1dWlkID0gJ3h4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCcucmVwbGFjZSgvW3h5XS9nLCBmdW5jdGlvbihjKSB7XG4gICAgICAgICAgICBjb25zdCByID0gKGQgKyBNYXRoLnJhbmRvbSgpICogMTYpICUgMTYgfCAwO1xuICAgICAgICAgICAgZCA9IE1hdGguZmxvb3IoZCAvIDE2KTtcbiAgICAgICAgICAgIHJldHVybiAoYyA9PT0gJ3gnID8gciA6IChyICYgMHg3IHwgMHg4KSkudG9TdHJpbmcoMTYpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHV1aWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGluIGEgYnJvd3Nlci5cbiAgICAgKi9cbiAgICBzdGF0aWMgaXNCcm93c2VyKCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGluIGEgYnJvd3NlciBhbmQgb25saW5lLlxuICAgICAqL1xuICAgIHN0YXRpYyBpc09ubGluZSgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19