2022-09-16 23:17:45 +00:00
|
|
|
import { getCanonicalLocale } from "@nextcloud/l10n";
|
|
|
|
|
2022-09-12 19:15:28 +00:00
|
|
|
/** Get JS date object from dayId */
|
2022-09-13 01:33:24 +00:00
|
|
|
export function dayIdToDate(dayId: number){
|
|
|
|
return new Date(dayId*86400*1000);
|
2022-09-12 19:15:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/** Get month name from number */
|
2022-09-16 23:17:45 +00:00
|
|
|
export function getShortDateStr(date: Date) {
|
|
|
|
return date.toLocaleDateString(getCanonicalLocale(), {
|
2022-09-12 19:15:28 +00:00
|
|
|
month: 'short',
|
2022-09-16 23:17:45 +00:00
|
|
|
year: 'numeric',
|
|
|
|
timeZone: 'UTC',
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
/** Get long date string with optional year if same as current */
|
2022-09-25 13:21:40 +00:00
|
|
|
export function getLongDateStr(date: Date, skipYear=false, time=false) {
|
2022-09-16 23:17:45 +00:00
|
|
|
return date.toLocaleDateString(getCanonicalLocale(), {
|
2022-10-12 19:30:42 +00:00
|
|
|
weekday: 'short',
|
|
|
|
month: 'short',
|
2022-09-16 23:17:45 +00:00
|
|
|
day: 'numeric',
|
|
|
|
year: (skipYear && date.getUTCFullYear() === new Date().getUTCFullYear()) ? undefined : 'numeric',
|
2022-09-12 19:15:28 +00:00
|
|
|
timeZone: 'UTC',
|
2022-09-25 13:21:40 +00:00
|
|
|
hour: time ? 'numeric' : undefined,
|
|
|
|
minute: time ? 'numeric' : undefined,
|
2022-09-12 19:15:28 +00:00
|
|
|
});
|
2022-10-06 23:28:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns a hash code from a string
|
|
|
|
* @param {String} str The string to hash.
|
|
|
|
* @return {Number} A 32bit integer
|
|
|
|
* @see http://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/
|
|
|
|
*/
|
|
|
|
export function hashCode(str: string): number {
|
|
|
|
let hash = 0;
|
|
|
|
for (let i = 0, len = str.length; i < len; i++) {
|
|
|
|
let chr = str.charCodeAt(i);
|
|
|
|
hash = (hash << 5) - hash + chr;
|
|
|
|
hash |= 0; // Convert to 32bit integer
|
|
|
|
}
|
|
|
|
return hash;
|
|
|
|
}
|
|
|
|
|
|
|
|
export const constants = {
|
|
|
|
c: {
|
|
|
|
FLAG_PLACEHOLDER: 1 << 0,
|
|
|
|
FLAG_LOADED: 1 << 1,
|
|
|
|
FLAG_LOAD_FAIL: 1 << 2,
|
|
|
|
FLAG_IS_VIDEO: 1 << 3,
|
|
|
|
FLAG_IS_FAVORITE: 1 << 4,
|
|
|
|
FLAG_IS_FOLDER: 1 << 5,
|
|
|
|
FLAG_IS_TAG: 1 << 6,
|
2022-10-07 19:28:39 +00:00
|
|
|
FLAG_IS_FACE: 1 << 7,
|
|
|
|
FLAG_SELECTED: 1 << 8,
|
|
|
|
FLAG_LEAVING: 1 << 9,
|
|
|
|
FLAG_EXIT_LEFT: 1 << 10,
|
|
|
|
FLAG_ENTER_RIGHT: 1 << 11,
|
|
|
|
FLAG_FORCE_RELOAD: 1 << 12,
|
2022-10-06 23:28:35 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
TagDayID: {
|
|
|
|
START: -(1 << 30),
|
|
|
|
FOLDERS: -(1 << 30) + 1,
|
|
|
|
TAGS: -(1 << 30) + 2,
|
2022-10-07 19:28:39 +00:00
|
|
|
FACES: -(1 << 30) + 3,
|
2022-10-06 23:28:35 +00:00
|
|
|
},
|
2022-09-12 19:15:28 +00:00
|
|
|
}
|