added header, footer, eslint/prettier, and typedoc

This commit is contained in:
2024-09-13 17:06:10 +09:00
parent 845418da60
commit a7dc8d6c8f
56 changed files with 16207 additions and 11147 deletions

View File

@@ -0,0 +1,47 @@
/**
* Vue Composable for getting window dimensions
* @module composables/windowDimensions
*/
/**
* Enums for viewport types
* @enum {number}
*/
export const enum ViewPortType {
DESKTOP,
TABLET,
MOBILE
};
/**
* Vue Composable for getting window dimensions and viewport type based on width
* @returns {object} returns the references of width, height, and viewport type
*/
export function useWindowDimensions() {
const width = ref<number>(0);
const height = ref<number>(0);
const viewPortType = ref<ViewPortType>(ViewPortType.DESKTOP);
function update(event: Event | undefined) {
width.value = window.innerWidth;
height.value = window.innerHeight;
if (width.value >= 1024) {
viewPortType.value = ViewPortType.DESKTOP;
}
else if (width.value < 640) {
viewPortType.value = ViewPortType.MOBILE;
}
else {
viewPortType.value = ViewPortType.TABLET;
}
}
onMounted(() => {
update(undefined);
window.addEventListener("resize", update);
});
onUnmounted(() => window.removeEventListener("resize", update));
return { width, height, viewPortType };
}