galhui
Version:
UI library using galho framework
143 lines • 10.3 kB
JavaScript
import { is, isU } from "galho/util.js";
/**request animation frame each frame, if fn returns false cancel animation
* @returns function that cancel the renderer of current animation
*/
export function anim(fn) {
let r;
console.log("timer started: " + (r = UUID(8)));
console.time(r);
let t = requestAnimationFrame;
let t2 = () => {
if (fn() !== false)
i = t(t2);
else
console.timeEnd(r);
};
let i = t(t2);
return () => {
console.timeEnd(r);
cancelAnimationFrame(i);
};
}
export function arrayToDic(arr, callback) {
let result = {};
for (let i = 0; i < arr.length; i++) {
let value = arr[i];
let temp = callback(value, i);
result[temp[0]] = temp[1];
}
return result;
}
export function filterDic(dic, fn = v => v) {
let result = {};
for (let key in dic)
if (fn(dic[key], key))
result[key] = dic[key];
return result;
}
export function anyProp(dic, fn) {
for (let key in dic)
if (fn(dic[key], key))
return true;
return false;
}
export function extend(obj, extension, override) {
for (let key in extension) {
let e = extension[key];
isU(e) || ((override || isU(obj[key])) && (obj[key] = e));
}
return obj;
}
export function UUID(size) {
let r = Math.floor((Math.random() + 1) * 1_000_000_000_000_000).toString(16), s = r.length - 1;
return r.slice(1, size + 1) + (size > s ? UUID(size - s) : '');
}
export class Time {
i;
constructor(i) {
this.i = i;
}
get y() { return this.i.getFullYear(); }
get M() { return this.i.getMonth() + 1; }
get d() { return this.i.getDate(); }
get h() { return this.i.getHours(); }
get m() { return this.i.getMinutes(); }
get s() { return this.i.getSeconds(); }
}
export function time(d = new Date()) {
return d ? new Time(is(d, Date) ? d : new Date(d)) : null;
}
export function pad(v, max, fill = 0) {
return (v + "").padStart(max, fill);
}
export function date(t) {
let { y, M, d } = time(t);
return `${y}-${pad(M, 2)}-${pad(d, 2)}`;
}
export function dateTime(t, sep = " ", noSec) {
let { y, M, d, h, m, s } = time(t);
return `${y}-${pad(M, 2)}-${pad(d, 2)}${sep}${pad(h, 2)}:${pad(m, 2)}${noSec ? '' : ':' + pad(s, 2)}`;
}
export function month(t) {
if (t == null)
return null;
let { y, M } = time(t);
return `${y}-${pad(M, 2)}`;
// return new Date(v).toISOString().slice(0, 10);
}
// export function day(d: Date): number;
// export function day(d: Date, value: number): Date;
// export function day(d: Date, value?: number) {
// if (value == null) return d.getDate();
// export function fmt(value: FormatValue, pattern: string, options?: Dic): str;
// export function fmt(value: FormatValue, pattern: string, type?: ValueType): str;
// export function fmt(v: FormatValue, p: string, o?: ValueType | Dic) {
// if (isS(o)) {
// p = o + ";" + p;
// o = <Dic>null;
// }
// if (v == null) return "";
// let [a0, a1] = p.split(';', 3);
// switch (a0) {
// case "d":
// return Intl.NumberFormat()
// case "n":
// }
// p = l(split) > 1 ? split[1] : type;
// if (v == null && l(split) == 3)
// v = split[2];
// //a:Any
// if (split.length == 1 || type == 'a') {
// switch (typeof v) {
// case 'number':
// case 'bigint':
// type = 'n';
// break;
// case 'string':
// if (isNaN(<any>v))
// type = 'n';
// else if (false)
// type = 'd';
// else type = 't';
// break;
// case 'object':
// type = 'd';
// break;
// case 'boolean':
// type = 'b';
// break;
// default:
// type = 't';
// }
// }
// switch (split[0]) {
// //date
// case 'd':
// return fmtTime(time(v), format);
// //number
// case 'n':
// return numFmt(<number>v, format, o);
// default:
// }
// }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixFQUFFLEVBQUUsR0FBRyxFQUFPLE1BQU0sZUFBZSxDQUFDO0FBRWxFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLElBQUksQ0FBQyxFQUFhO0lBQ2hDLElBQUksQ0FBTSxDQUFDO0lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEIsSUFBSSxDQUFDLEdBQUcscUJBQXFCLENBQUM7SUFDOUIsSUFBSSxFQUFFLEdBQUcsR0FBRyxFQUFFO1FBQ1osSUFBSSxFQUFFLEVBQUUsS0FBSyxLQUFLO1lBQ2hCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7O1lBQ04sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUM7SUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDZCxPQUFPLEdBQUcsRUFBRTtRQUNWLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUNELE1BQU0sVUFBVSxVQUFVLENBQU8sR0FBYSxFQUFFLFFBQStDO0lBQzdGLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixJ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