{"version":3,"file":"static/js/vendor.@sparkware.91d2dec7.chunk.js","mappings":"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","sources":["../node_modules/@sparkware/app-utils/src/index.ts","../node_modules/@sparkware/app-utils/src/utils/time_span/time-span.ts","../node_modules/@sparkware/app-utils/src/utils/type-checking/type-checking.ts"],"sourcesContent":["import {TimeSpan} from \"./utils/time_span/time-span\";\nimport {Check} from \"./utils/type-checking/type-checking\";\n\nexport {TimeSpan, Check};","import {Check} from \"../..\";\n\nconst MILLIS_PER_SECOND = 1000;\nconst MILLIS_PER_MINUTE = MILLIS_PER_SECOND * 60; // 60,000\nconst MILLIS_PER_HOUR = MILLIS_PER_MINUTE * 60; // 3,600,000\nconst MILLIS_PER_DAY = MILLIS_PER_HOUR * 24; // 86,400,000\n\n\nexport class TimeSpan {\n\n private _totalMilliseconds: number = 0;\n\n constructor(days: number, hours: number, minutes: number, seconds: number = 0, milliseconds: number = 0) {\n const totalmilliseconds = days * MILLIS_PER_DAY\n + hours * MILLIS_PER_HOUR\n + minutes * MILLIS_PER_MINUTE\n + seconds * MILLIS_PER_SECOND\n + Math.floor(milliseconds); // only milliseconds will be \"trimmed\"\n\n // try to avoid double number issue\n this._totalMilliseconds = Math.round(totalmilliseconds);\n }\n\n private _getSign() : number {\n if(this._totalMilliseconds < 0) {\n return -1;\n } else {\n return 1;\n }\n }\n\n private _floor(value: number): number {\n return this._getSign() * Math.floor(Math.abs(value));\n }\n\n get days(): number {\n return this._floor(this.totalDays);\n }\n\n get hours(): number {\n return this._floor(this.totalHours % 24);\n }\n\n get minutes(): number {\n return this._floor(this.totalMinutes % 60);\n }\n\n get seconds(): number {\n return this._floor(this.totalSeconds % 60);\n }\n\n get milliseconds(): number {\n return this._floor(this._totalMilliseconds % MILLIS_PER_SECOND);\n }\n\n get totalDays(): number {\n return this._totalMilliseconds / MILLIS_PER_DAY;\n }\n\n get totalHours(): number {\n return this._totalMilliseconds / MILLIS_PER_HOUR;\n }\n\n get totalMinutes(): number {\n return this._totalMilliseconds / MILLIS_PER_MINUTE;\n }\n\n get totalSeconds(): number {\n return this._totalMilliseconds / MILLIS_PER_SECOND;\n }\n\n get totalMilliseconds(): number {\n return this._totalMilliseconds;\n }\n\n static areEquals(ts1: TimeSpan, ts2: TimeSpan) {\n if(Check.isNullOrUndefined(ts1) && Check.isNullOrUndefined(ts2)){\n return true;\n }\n\n if(Check.isNullOrUndefined(ts1)) {\n return false;\n }\n\n if(Check.isNullOrUndefined(ts2)) {\n return false;\n }\n\n return ts1.totalMilliseconds === ts2.totalMilliseconds;\n }\n\n static parse(text: string | null | undefined) {\n if(!text) {\n throw new Error('Null, undefined or empty string not allowed for TimeSpan format');\n }\n\n const components = text.split(/:/);\n if(components.length < 2) {\n throw new Error('Invalid TimeSpan input format ' + text);\n }\n\n let days = 0;\n let hours = 0;\n let minutes = 0;\n let seconds = 0;\n let milliseconds = 0;\n\n const daysAndHours = components[0].split(/\\./);\n if(daysAndHours.length === 2) {\n days = parseInt(daysAndHours[0]);\n hours = parseInt(daysAndHours[1]);\n } else {\n hours = parseInt(daysAndHours[0]);\n }\n\n minutes = parseInt(components[1]);\n\n if(components.length === 3) { // it means we have seconds and/or milliseconds\n let secondsAndMilliseconds = components[2].split(/\\./);\n if(secondsAndMilliseconds.length === 2) { // it means we have seconds and milliseconds\n seconds = parseInt(secondsAndMilliseconds[0]);\n milliseconds = TimeSpan._parseMilliseconds(secondsAndMilliseconds[1]);\n } else { // it means we have seconds without milliseconds\n seconds = parseInt(secondsAndMilliseconds[0]);\n }\n }\n return new TimeSpan(days, hours, minutes, seconds, milliseconds);\n }\n\n static _parseMilliseconds(ms: string): number {\n let milliseconds = parseInt(ms);\n\n if(milliseconds <= 999) {\n return milliseconds;\n }\n\n while(milliseconds > 999) {\n milliseconds = milliseconds / 10;\n }\n\n return Math.round(milliseconds);\n }\n\n static fromMilliseconds(totalMilliseconds: number): TimeSpan {\n return new TimeSpan(0, 0, 0, 0, totalMilliseconds);\n }\n\n static fromSeconds(totalSeconds: number): TimeSpan {\n return new TimeSpan(0, 0, 0, totalSeconds, 0);\n }\n\n static fromMinutes(totalMinutes: number): TimeSpan {\n return new TimeSpan(0, 0, totalMinutes, 0, 0);\n }\n\n static fromHours(totalHours: number): TimeSpan {\n return new TimeSpan(0, totalHours, 0, 0, 0);\n }\n\n static fromDays(days: number): TimeSpan {\n return new TimeSpan(days, 0, 0, 0, 0);\n }\n\n subtract(timeSpan: TimeSpan): TimeSpan {\n if(!timeSpan) {\n throw new Error('timeSpan argument cannot be null or undefined');\n }\n\n const milliseconds = this.totalMilliseconds - timeSpan.totalMilliseconds;\n return TimeSpan.fromMilliseconds(milliseconds);\n }\n\n add(timeSpan: TimeSpan): TimeSpan {\n if(!timeSpan) {\n throw new Error('timeSpan argument cannot be null or undefined');\n }\n\n let totalMilliseconds = this.totalMilliseconds + timeSpan.totalMilliseconds;\n return TimeSpan.fromMilliseconds(totalMilliseconds);\n }\n\n public toString(options: {useTotalHours?: boolean} = {}): string {\n\n // special negative case (we treat it like '-'+normal positive toString() result)\n if (this._totalMilliseconds < 0)\n return '-' + TimeSpan.fromMilliseconds(-this._totalMilliseconds).toString({useTotalHours: options.useTotalHours});\n\n let result = '';\n if (!options.useTotalHours) {\n if(this.days > 0) {\n result += this.days.toString() + '.';\n }\n result += this.hours.toString().padStart(2, '0') + ':';\n } else {\n result += this._floor(this.totalHours).toString().padStart(2, '0') + ':';\n }\n \n result += this.minutes.toString().padStart(2, '0') + ':';\n result += this.seconds.toString().padStart(2, '0');\n\n if(this.milliseconds > 0) {\n result += '.' + this.milliseconds.toString().padStart(3, '0');\n }\n\n return result;\n }\n\n public toHoursAndMinutesString(): string {\n return this.hours.toString().padStart(2, '0') + ':' + this.minutes.toString().padStart(2, '0');\n }\n\n public toHoursMinutesAndSecondsString(): string {\n return this.hours.toString().padStart(2, '0') + ':' + this.minutes.toString().padStart(2, '0') + ':' + this.seconds.toString().padStart(2, '0');\n }\n\n public toLocalTime(): TimeSpan {\n let localTime = new Date();\n localTime.setUTCHours(this.hours);\n localTime.setUTCMinutes(this.minutes);\n localTime.setUTCSeconds(this.seconds);\n localTime.setUTCMilliseconds(this.milliseconds);\n\n return new TimeSpan(0, localTime.getHours(), localTime.getMinutes(), localTime.getSeconds(), localTime.getMilliseconds());\n }\n}\n","export class Check {\n\n static isFunction(input: unknown) : boolean {\n return '[object Function]' === Object.prototype.toString.call(input);\n }\n\n static isString(input: unknown) : input is string {\n return '[object String]' === Object.prototype.toString.call(input);\n }\n\n static isNumber(input: unknown): input is number {\n return '[object Number]' === Object.prototype.toString.call(input) && !isNaN(input as number);\n }\n\n static isObject(input: unknown): input is object {\n return '[object Object]' === Object.prototype.toString.call(input);\n }\n\n static isDate(input: unknown): input is Date {\n return '[object Date]' === Object.prototype.toString.call(input) && (input as Date).toString() !== \"Invalid Date\";\n }\n\n static isArray(expectedArray: unknown): expectedArray is Array {\n return Array.isArray(expectedArray);\n }\n\n static isArrayOfStrings(expectedArray: unknown): expectedArray is string[] {\n if(!Array.isArray(expectedArray)) {\n return false;\n }\n\n for(let i = 0; i < expectedArray.length; i++) {\n if(!Check.isString(expectedArray[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n static isBoolean(input: unknown): input is boolean {\n return true === input || false === input || '[object Boolean]' === Object.prototype.toString.call(input);\n }\n\n\n static isError(input: unknown) : input is Error {\n return '[object Error]' === Object.prototype.toString.call(input);\n }\n\n static isSymbol(input: unknown): input is Symbol {\n return '[object Symbol]' === Object.prototype.toString.call(input);\n }\n\n static isUndefined(input: unknown): input is undefined {\n return '[object Undefined]' === Object.prototype.toString.call(input);\n }\n\n static isNull(value: unknown): value is null {\n return value === null;\n }\n\n static isNullOrUndefined(input: unknown): input is null | undefined {\n return this.isNull(input) || this.isUndefined(input);\n }\n\n static isEmpty(input: unknown): boolean {\n\n if(Check.isNullOrUndefined(input)) {\n return true;\n }\n\n if(Check.isString(input) || Check.isArray(input)) {\n return input.length === 0;\n }\n\n return Check.isObject(input) && Object.keys(input).length === 0;\n }\n\n}\n\n"],"names":["exports","time_span_1","type_checking_1","MILLIS_PER_SECOND","MILLIS_PER_MINUTE","MILLIS_PER_HOUR","MILLIS_PER_DAY","days","hours","minutes","seconds","milliseconds","_totalMilliseconds","totalmilliseconds","Math","floor","this","round","TimeSpan","value","_getSign","abs","Object","_floor","totalDays","totalHours","totalMinutes","totalSeconds","ts1","ts2","__1","isNullOrUndefined","totalMilliseconds","text","Error","components","split","length","daysAndHours","parseInt","secondsAndMilliseconds","_parseMilliseconds","ms","timeSpan","fromMilliseconds","options","toString","useTotalHours","result","padStart","localTime","Date","setUTCHours","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","getHours","getMinutes","getSeconds","getMilliseconds","Check","input","prototype","call","isNaN","expectedArray","Array","isArray","i","isString","isNull","isUndefined","isObject","keys"],"sourceRoot":""}