summaryrefslogtreecommitdiffstats
path: root/sdc-workflow-designer-ui/src/app/paletx/util/util.ts
blob: 5df0381e9f617b9ea9bb6ebf5f9f2c995304abbb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
export function toInteger(value: any): number {
	return parseInt(`${value}`, 10);
}

export function toString(value: any): string {
	return (value !== undefined && value !== null) ? `${value}` : '';
}

export function getValueInRange(value: number, max: number, min = 0): number {
	return Math.max(Math.min(value, max), min);
}

export function isString(value: any): boolean {
	return typeof value === 'string';
}

export function isNumber(value: any): boolean {
	return !isNaN(toInteger(value));
}

export function isInteger(value: any): boolean {
	return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
}

export function isDefined(value: any): boolean {
	return value !== undefined && value !== null;
}

export function padNumber(value: number) {
	if (isNumber(value)) {
		return `0${value}`.slice(-2);
	} else {
		return '';
	}
}

export function regExpEscape(text) {
	return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
}


export function parseDate(date: Date, format) {
	let o = {
		'M+': date.getMonth() + 1, // month
		'd+': date.getDate(),    // day
		'h+': date.getHours(),   // hour
		'm+': date.getMinutes(), // minute
		's+': date.getSeconds(), // second
		'q+': Math.floor((date.getMonth() + 3) / 3),  // quarter
		'S': date.getMilliseconds() // millisecond
	};
	if (/(y+)/.test(format)) {
		format = format.replace(RegExp.$1,
			(date.getFullYear() + '').substr(4 - RegExp.$1.length));
	}
	for (let k in o) {
		if (new RegExp('(' + k + ')').test(format)) {
			format = format.replace(RegExp.$1,
				RegExp.$1.length === 1 ? o[k] :
					('00' + o[k]).substr(('' + o[k]).length));
		}
	}
	return format;
}