@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
JavaScript
/**
* @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