@maxax/hooks 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/use-boolean.ts","../src/use-breakpoint.ts","../src/enum/breakpointEnum.ts","../src/use-event-listener.ts","../src/use-browser-location.ts","../src/use-collection.ts","../src/use-context.ts","../src/use-count-down.ts","../src/use-deferred-true.ts","../src/use-is-composing.ts","../src/use-layout-style.ts","../src/const/index.ts","../src/use-loading.ts","../src/use-local-page.ts","../src/use-lock-html-scroll.ts","../src/use-memo.ts","../src/use-merged-state.ts","../src/use-script.ts","../src/use-scroll.ts","../src/use-signal.ts","../src/use-svg-icon-render.ts","../src/use-table.ts"],"sourcesContent":["import { ref } from 'vue'\n\n/**\n * Boolean\n *\n * @param initValue Init value\n */\nexport function useBoolean(initValue = false) {\n const bool = ref(initValue)\n\n function setBool(value: boolean) {\n bool.value = value\n }\n function setTrue() {\n setBool(true)\n }\n function setFalse() {\n setBool(false)\n }\n function toggle() {\n setBool(!bool.value)\n }\n\n return {\n bool,\n setBool,\n setTrue,\n setFalse,\n toggle\n }\n}\n","import type { ComputedRef } from 'vue'\nimport { computed, ref, unref } from 'vue'\nimport { ScreenEnum, screenMap, SizeEnum } from './enum/breakpointEnum'\nimport { useEventListener } from './use-event-listener'\n\nlet globalScreenRef: ComputedRef<SizeEnum | undefined>\nlet globalWidthRef: ComputedRef<number>\nlet globalRealWidthRef: ComputedRef<number>\n\nexport interface CreateCallbackParams {\n screen: ComputedRef<SizeEnum | undefined>\n width: ComputedRef<number>\n realWidth: ComputedRef<number>\n screenEnum: typeof ScreenEnum\n screenMap: Map<SizeEnum, number>\n sizeEnum: typeof SizeEnum\n}\n\nexport function useBreakpoint() {\n return {\n screenRef: computed(() => unref(globalScreenRef)),\n widthRef: globalWidthRef,\n screenEnum: ScreenEnum,\n realWidthRef: globalRealWidthRef\n }\n}\n\n// Just call it once\nexport function createBreakpointListen(fn?: (opt: CreateCallbackParams) => void) {\n const screenRef = ref<SizeEnum>(SizeEnum.XL)\n const realWidthRef = ref(window.innerWidth)\n\n function getWindowWidth() {\n const width = document.body.clientWidth\n const xs = screenMap.get(SizeEnum.XS)!\n const sm = screenMap.get(SizeEnum.SM)!\n const md = screenMap.get(SizeEnum.MD)!\n const lg = screenMap.get(SizeEnum.LG)!\n const xl = screenMap.get(SizeEnum.XL)!\n if (width < xs) {\n screenRef.value = SizeEnum.XS\n } else if (width < sm) {\n screenRef.value = SizeEnum.SM\n } else if (width < md) {\n screenRef.value = SizeEnum.MD\n } else if (width < lg) {\n screenRef.value = SizeEnum.LG\n } else if (width < xl) {\n screenRef.value = SizeEnum.XL\n } else {\n screenRef.value = SizeEnum.XXL\n }\n realWidthRef.value = width\n }\n\n useEventListener({\n el: window,\n name: 'resize',\n\n listener: () => {\n getWindowWidth()\n resizeFn()\n }\n // Wait: 100,\n })\n\n getWindowWidth()\n globalScreenRef = computed(() => unref(screenRef))\n globalWidthRef = computed((): number => screenMap.get(unref(screenRef)!)!)\n globalRealWidthRef = computed((): number => unref(realWidthRef))\n\n function resizeFn() {\n fn?.({\n screen: globalScreenRef,\n width: globalWidthRef,\n realWidth: globalRealWidthRef,\n screenEnum: ScreenEnum,\n screenMap,\n sizeEnum: SizeEnum\n })\n }\n\n resizeFn()\n return {\n screenRef: globalScreenRef,\n screenEnum: ScreenEnum,\n widthRef: globalWidthRef,\n realWidthRef: globalRealWidthRef\n }\n}\n","export enum SizeEnum {\n XS = 'XS',\n SM = 'SM',\n MD = 'MD',\n LG = 'LG',\n XL = 'XL',\n XXL = 'XXL'\n}\n\nexport enum ScreenEnum {\n XS = 320,\n SM = 640,\n MD = 768,\n LG = 960,\n XL = 1280,\n XXL = 1536\n}\n\nconst screenMap = new Map<SizeEnum, number>()\n\nscreenMap.set(SizeEnum.XS, ScreenEnum.XS)\nscreenMap.set(SizeEnum.SM, ScreenEnum.SM)\nscreenMap.set(SizeEnum.MD, ScreenEnum.MD)\nscreenMap.set(SizeEnum.LG, ScreenEnum.LG)\nscreenMap.set(SizeEnum.XL, ScreenEnum.XL)\nscreenMap.set(SizeEnum.XXL, ScreenEnum.XXL)\n\nexport { screenMap }\n","import type { Ref } from 'vue'\nimport { ref, unref, watch } from 'vue'\nimport { useDebounceFn, useThrottleFn } from '@vueuse/core'\n\nexport type RemoveEventFn = () => void\nexport interface UseEventParams {\n el?: Element | Ref<Element | undefined> | Window | any\n name: string\n listener: EventListener\n options?: boolean | AddEventListenerOptions\n autoRemove?: boolean\n isDebounce?: boolean\n wait?: number\n}\nexport function useEventListener({ el = window, name, listener, options, autoRemove = true, isDebounce = true, wait = 80 }: UseEventParams): { removeEvent: RemoveEventFn } {\n /* eslint-disable-next-line */\n let remove: RemoveEventFn = () => { };\n const isAddRef = ref(false)\n\n if (el) {\n const element = ref(el as Element) as Ref<Element>\n\n const handler = isDebounce ? useDebounceFn(listener, wait) : useThrottleFn(listener, wait)\n const realHandler = wait ? handler : listener\n const removeEventListener = (e: Element) => {\n isAddRef.value = true\n e.removeEventListener(name, realHandler, options)\n }\n const addEventListener = (e: Element) => e.addEventListener(name, realHandler, options)\n\n const removeWatch = watch(\n element,\n (v, _ov, cleanUp) => {\n if (v) {\n !unref(isAddRef) && addEventListener(v)\n cleanUp(() => {\n autoRemove && removeEventListener(v)\n })\n }\n },\n { immediate: true }\n )\n\n remove = () => {\n removeEventListener(element.value)\n removeWatch()\n }\n }\n return { removeEvent: remove }\n}\n","import { onMounted, onUnmounted, type Ref, ref } from 'vue'\n\nexport interface WindowLocation {\n hash?: string\n host?: string\n hostname?: string\n href?: string\n origin?: string\n pathname?: string\n port?: string\n protocol?: string\n search?: string\n}\n\nconst isBrowser = typeof document !== 'undefined' && typeof window !== 'undefined'\n\nexport function useBrowserLocation(customWindow = isBrowser ? window : null): Ref<WindowLocation> {\n const getWindowLocation = (): WindowLocation => {\n const { hash, host, hostname, href, origin, pathname, port, protocol, search } = customWindow?.location || {}\n\n return {\n hash,\n host,\n hostname,\n href,\n origin,\n pathname,\n port,\n protocol,\n search\n }\n }\n\n const locationState = ref(getWindowLocation())\n\n const updateLocation = (): void => {\n locationState.value = getWindowLocation()\n }\n\n onMounted(() => {\n if (customWindow) {\n customWindow.addEventListener('popstate', updateLocation)\n customWindow.addEventListener('hashchange', updateLocation)\n }\n })\n\n onUnmounted(() => {\n if (customWindow) {\n customWindow.removeEventListener('popstate', updateLocation)\n customWindow.removeEventListener('hashchange', updateLocation)\n }\n })\n\n return locationState\n}\n","import type { InjectionKey, Ref } from 'vue'\nimport { getCurrentInstance, inject, onBeforeUnmount, onMounted, watch } from 'vue'\n\n// 函数的作用是管理 Vue 组件的实例集合。它通过注入的方式将组件实例注册到指定的集合中,并在组件卸载时进行清理。以下是该函数的主要功能说明:\nexport function useInjectionInstanceCollection(injectionName: string | InjectionKey<unknown>, collectionKey: string, registerKeyRef: Ref<string | undefined>): void {\n const injection = inject<Record<string, Record<string, any>> | null>(injectionName, null)\n if (injection === null) return\n const vm = getCurrentInstance()?.proxy\n watch(registerKeyRef, registerInstance)\n registerInstance(registerKeyRef.value)\n onBeforeUnmount(() => {\n registerInstance(undefined, registerKeyRef.value)\n })\n function registerInstance(key?: string, oldKey?: string): void {\n if (!injection) return\n const collection = injection[collectionKey]\n if (oldKey !== undefined) removeInstance(collection, oldKey)\n if (key !== undefined) addInstance(collection, key)\n }\n function removeInstance(collection: Record<string, any[]>, key: string): void {\n if (!collection[key]) collection[key] = []\n collection[key].splice(\n collection[key].findIndex(instance => instance === vm),\n 1\n )\n }\n function addInstance(collection: Record<string, any[]>, key: string): void {\n if (!collection[key]) collection[key] = []\n if (!~collection[key].findIndex(instance => instance === vm)) {\n collection[key].push(vm)\n }\n }\n}\n\nexport function useInjectionCollection(injectionName: string | InjectionKey<unknown>, collectionKey: string, valueRef: Ref<any>): void {\n const injection = inject<Record<any, any[]> | null>(injectionName, null)\n if (injection === null) return\n if (!(collectionKey in injection)) {\n injection[collectionKey] = []\n }\n injection[collectionKey].push(valueRef.value)\n watch(valueRef, (value, prevValue) => {\n const collectionArray = injection[collectionKey]\n const index = collectionArray.findIndex(collectionValue => collectionValue === prevValue)\n if (~index) collectionArray.splice(index, 1)\n collectionArray.push(value)\n })\n onBeforeUnmount(() => {\n const collectionArray = injection[collectionKey]\n const index = collectionArray.findIndex(collectionValue => collectionValue === valueRef.value)\n if (~index) collectionArray.splice(index, 1)\n })\n}\n\nexport function useInjectionElementCollection(injectionName: string | InjectionKey<unknown>, collectionKey: string, getElement: () => HTMLElement | null): void {\n const injection = inject<Record<string, HTMLElement[]> | null>(injectionName, null)\n if (injection === null) return\n if (!(collectionKey in injection)) {\n injection[collectionKey] = []\n }\n onMounted(() => {\n const el = getElement()\n if (!el) return\n injection[collectionKey].push(el)\n })\n onBeforeUnmount(() => {\n const collectionArray = injection[collectionKey]\n const element = getElement()\n const index = collectionArray.findIndex(collectionElement => collectionElement === element)\n if (~index) collectionArray.splice(index, 1)\n })\n}\n","import type { InjectionKey } from 'vue'\nimport { inject, provide } from 'vue'\n\n/**\n * Use context\n *\n * @example\n * ```ts\n * // there are three vue files: A.vue, B.vue, C.vue, and A.vue is the parent component of B.vue and C.vue\n *\n * // context.ts\n * import { ref } from 'vue';\n * import { useContext } from '@max/hooks';\n *\n * export const { setupStore, useStore } = useContext('demo', () => {\n * const count = ref(0);\n *\n * function increment() {\n * count.value++;\n * }\n *\n * function decrement() {\n * count.value--;\n * }\n *\n * return {\n * count,\n * increment,\n * decrement\n * };\n * })\n * ``` // A.vue\n * ```vue\n * <template>\n * <div>A</div>\n * </template>\n * <script setup lang=\"ts\">\n * import { setupStore } from './context';\n *\n * setupStore();\n * // const { increment } = setupStore(); // also can control the store in the parent component\n * </script>\n * ``` // B.vue\n * ```vue\n * <template>\n * <div>B</div>\n * </template>\n * <script setup lang=\"ts\">\n * import { useStore } from './context';\n *\n * const { count, increment } = useStore();\n * </script>\n * ```;\n *\n * // C.vue is same as B.vue\n *\n * @param contextName Context name\n * @param fn Context function\n */\nexport function useContext<T extends (...args: any[]) => any>(contextName: string, fn: T) {\n type Context = ReturnType<T>\n\n const { useProvide, useInject: useStore } = createContext<Context>(contextName)\n\n function setupStore(...args: Parameters<T>) {\n const context: Context = fn(...args)\n return useProvide(context)\n }\n\n return {\n /** Setup store in the parent component */\n setupStore,\n /** Use store in the child component */\n useStore\n }\n}\n\n/** Create context */\nfunction createContext<T>(contextName: string) {\n const injectKey: InjectionKey<T> = Symbol(contextName)\n\n function useProvide(context: T) {\n provide(injectKey, context)\n\n return context\n }\n\n function useInject() {\n return inject(injectKey) as T\n }\n\n return {\n useProvide,\n useInject\n }\n}\n","import { computed, onScopeDispose, ref } from 'vue'\nimport { useRafFn } from '@vueuse/core'\n\n/**\n * Count down\n *\n * @param seconds - count down seconds\n */\nexport function useCountDown(seconds: number) {\n const FPS_PER_SECOND = 60\n\n const fps = ref(0)\n\n const count = computed(() => Math.ceil(fps.value / FPS_PER_SECOND))\n\n const isCounting = computed(() => fps.value > 0)\n\n const { pause, resume } = useRafFn(\n () => {\n if (fps.value > 0) {\n fps.value -= 1\n } else {\n pause()\n }\n },\n { immediate: false }\n )\n\n function start(updateSeconds: number = seconds) {\n fps.value = FPS_PER_SECOND * updateSeconds\n resume()\n }\n\n function stop() {\n fps.value = 0\n pause()\n }\n\n onScopeDispose(() => {\n pause()\n })\n\n return {\n count,\n isCounting,\n start,\n stop\n }\n}\n","import { type Ref, ref, watch } from 'vue'\n\n// 此函数用于在指定延迟后返回一个布尔值引用,基于输入的值引用和延迟条件\nexport function useDeferredTrue(valueRef: Ref<any>, delay: number, shouldDelayRef: Ref<boolean>): Ref<boolean> {\n if (!delay) return valueRef\n const delayedRef = ref(valueRef.value)\n let timerId: number | null = null\n watch(valueRef, value => {\n if (timerId !== null) window.clearTimeout(timerId)\n if (value === true) {\n if (shouldDelayRef && !shouldDelayRef.value) {\n delayedRef.value = true\n } else {\n timerId = window.setTimeout(() => {\n delayedRef.value = true\n }, delay)\n }\n } else {\n delayedRef.value = false\n }\n })\n return delayedRef\n}\n","import { onBeforeMount, onBeforeUnmount, type Ref, ref } from 'vue'\n\nconst isComposingRef = ref(false)\nfunction compositionStartHandler(): void {\n isComposingRef.value = true\n}\nfunction compositionEndHandler(): void {\n isComposingRef.value = false\n}\nlet mountedCount = 0\n\n// 用于检测用户是否正在进行输入法的组合输入\nexport function useIsComposing(): Ref<boolean> {\n if (document && window) {\n onBeforeMount(() => {\n if (!mountedCount) {\n window.addEventListener('compositionstart', compositionStartHandler)\n window.addEventListener('compositionend', compositionEndHandler)\n }\n mountedCount++\n })\n onBeforeUnmount(() => {\n if (mountedCount <= 1) {\n window.removeEventListener('compositionstart', compositionStartHandler)\n window.removeEventListener('compositionend', compositionEndHandler)\n mountedCount = 0\n } else {\n mountedCount--\n }\n })\n }\n return isComposingRef\n}\n","import type { CSSProperties } from 'vue'\nimport { computed, onMounted, onUnmounted, ref } from 'vue'\nimport { useCssVar, useDebounceFn } from '@vueuse/core'\nimport type { VisibleDomRect } from '@maxax/utils'\nimport { getElementVisibleRect } from '@maxax/utils'\nimport { CSS_VARIABLE_LAYOUT_CONTENT_HEIGHT, CSS_VARIABLE_LAYOUT_CONTENT_WIDTH, CSS_VARIABLE_LAYOUT_FOOTER_HEIGHT, CSS_VARIABLE_LAYOUT_HEADER_HEIGHT } from './const'\n\nexport function useLayoutContentStyle(diffHeight = 0) {\n let resizeObserver: null | ResizeObserver = null\n const contentElement = ref<HTMLDivElement | null>(null)\n const visibleDomRect = ref<null | VisibleDomRect>(null)\n const contentHeight = useCssVar(CSS_VARIABLE_LAYOUT_CONTENT_HEIGHT)\n const contentWidth = useCssVar(CSS_VARIABLE_LAYOUT_CONTENT_WIDTH)\n\n const overlayStyle = computed((): CSSProperties => {\n const { height, left, top, width } = visibleDomRect.value ?? {}\n return {\n height: `${height}px`,\n left: `${left}px`,\n position: 'fixed',\n top: `${top}px`,\n width: `${width}px`,\n zIndex: 150\n }\n })\n\n const debouncedCalcHeight = useDebounceFn((_entries: ResizeObserverEntry[]) => {\n visibleDomRect.value = getElementVisibleRect(contentElement.value)\n contentHeight.value = `${visibleDomRect.value.height - diffHeight}px`\n contentWidth.value = `${visibleDomRect.value.width}px`\n }, 16)\n\n onMounted(() => {\n if (contentElement.value && !resizeObserver) {\n resizeObserver = new ResizeObserver(debouncedCalcHeight)\n resizeObserver.observe(contentElement.value)\n }\n })\n\n onUnmounted(() => {\n resizeObserver?.disconnect()\n resizeObserver = null\n })\n\n return { contentElement, overlayStyle, visibleDomRect }\n}\n\nexport function useLayoutHeaderStyle() {\n const headerHeight = useCssVar(CSS_VARIABLE_LAYOUT_HEADER_HEIGHT)\n\n return {\n getLayoutHeaderHeight: () => {\n return Number.parseInt(`${headerHeight.value}`, 10)\n },\n setLayoutHeaderHeight: (height: number) => {\n headerHeight.value = `${height}px`\n }\n }\n}\n\nexport function useLayoutFooterStyle() {\n const footerHeight = useCssVar(CSS_VARIABLE_LAYOUT_FOOTER_HEIGHT)\n\n return {\n getLayoutFooterHeight: () => {\n return Number.parseInt(`${footerHeight.value}`, 10)\n },\n setLayoutFooterHeight: (height: number) => {\n footerHeight.value = `${height}px`\n }\n }\n}\n","/** Layout content 组件的高度 */\nexport const CSS_VARIABLE_LAYOUT_CONTENT_HEIGHT = '--max-content-height'\n/** Layout content 组件的宽度 */\nexport const CSS_VARIABLE_LAYOUT_CONTENT_WIDTH = '--max-content-width'\n/** Layout header 组件的高度 */\nexport const CSS_VARIABLE_LAYOUT_HEADER_HEIGHT = '--max-header-height'\n/** Layout footer 组件的高度 */\nexport const CSS_VARIABLE_LAYOUT_FOOTER_HEIGHT = '--max-footer-height'\n","import { useBoolean } from './use-boolean'\n\n/**\n * Loading\n *\n * @param initValue Init value\n */\nexport function useLoading(initValue = false) {\n const { bool: loading, setTrue: startLoading, setFalse: endLoading } = useBoolean(initValue)\n\n return {\n loading,\n startLoading,\n endLoading\n }\n}\n","import { computed, ref, unref } from 'vue'\n\nfunction pagination<T = any>(list: T[], pageNo: number, pageSize: number): T[] {\n const offset = (pageNo - 1) * Number(pageSize)\n const ret = offset + Number(pageSize) >= list.length ? list.slice(offset, list.length) : list.slice(offset, offset + Number(pageSize))\n return ret\n}\n\nexport function useLocalPage(list: any[], pageSize: number) {\n const currentPage = ref(1)\n const pageSizeRef = ref(pageSize)\n const listRef = ref(list)\n\n const getPaginationList = computed(() => {\n return pagination(unref(listRef), unref(currentPage), unref(pageSizeRef))\n })\n\n const getTotal = computed(() => {\n return unref(listRef).length\n })\n\n function setCurrentPage(page: number) {\n currentPage.value = page\n }\n\n function setPageSize(size: number) {\n pageSizeRef.value = size\n }\n\n function setPagination(page: { currentPage: number; pageSize: number }) {\n setCurrentPage(page.currentPage)\n setPageSize(page.pageSize)\n }\n\n function getPageList() {\n return pagination(unref(listRef), unref(currentPage), unref(pageSizeRef))\n }\n\n return { setCurrentPage, getTotal, setPageSize, getPaginationList, setPagination, getPageList }\n}\n","import { type Ref, type WatchStopHandle, onBeforeUnmount, onMounted, ref, watch } from 'vue'\n\nlet lockCount = 0\nlet originalMarginRight: string = ''\nlet originalOverflow: string = ''\nlet originalOverflowX: string = ''\nlet originalOverflowY: string = ''\nexport const lockHtmlScrollRightCompensationRef = ref('0px')\n\nexport function useLockHtmlScroll(lockRef: Ref<boolean>): void {\n // not browser\n if (typeof document === 'undefined') return\n const el = document.documentElement\n let watchStopHandle: WatchStopHandle | undefined\n let activated = false\n const unlock = (): void => {\n el.style.marginRight = originalMarginRight\n el.style.overflow = originalOverflow\n el.style.overflowX = originalOverflowX\n el.style.overflowY = originalOverflowY\n lockHtmlScrollRightCompensationRef.value = '0px'\n }\n onMounted(() => {\n watchStopHandle = watch(\n lockRef,\n value => {\n if (value) {\n if (!lockCount) {\n const scrollbarWidth = window.innerWidth - el.offsetWidth\n if (scrollbarWidth > 0) {\n originalMarginRight = el.style.marginRight\n el.style.marginRight = `${scrollbarWidth}px`\n lockHtmlScrollRightCompensationRef.value = `${scrollbarWidth}px`\n }\n originalOverflow = el.style.overflow\n originalOverflowX = el.style.overflowX\n originalOverflowY = el.style.overflowY\n el.style.overflow = 'hidden'\n el.style.overflowX = 'hidden'\n el.style.overflowY = 'hidden'\n }\n activated = true\n lockCount++\n } else {\n lockCount--\n if (!lockCount) {\n unlock()\n }\n activated = false\n }\n },\n {\n immediate: true\n }\n )\n })\n onBeforeUnmount(() => {\n watchStopHandle?.()\n if (activated) {\n lockCount--\n if (!lockCount) {\n unlock()\n }\n activated = false\n }\n })\n}\n","import type { ComputedRef, Ref, WritableComputedRef } from 'vue'\nimport { computed, ref, watch } from 'vue'\n\ntype MemoGetter<T> = () => T\ntype MemoSetter<T> = (v: T) => void\n\ninterface WritableMemoOptions<T> {\n get: MemoGetter<T>\n set: MemoSetter<T>\n}\n\nfunction useMemo<T>(getter: MemoGetter<T>): ComputedRef<T>\nfunction useMemo<T>(options: WritableMemoOptions<T>): WritableComputedRef<T>\nfunction useMemo<T>(getterOrOptions: MemoGetter<T> | WritableMemoOptions<T>): ComputedRef<T> | WritableComputedRef<T> {\n const computedValueRef = computed(getterOrOptions as any) as WritableComputedRef<T> | ComputedRef<T>\n // Maybe it's not possible to lazy evaluate the value, since we can't make\n // render phase capture the deps behind useMemo\n const valueRef = ref(computedValueRef.value) as Ref<T>\n watch(computedValueRef, value => {\n valueRef.value = value\n })\n if (typeof getterOrOptions === 'function') {\n return valueRef as ComputedRef<T>\n }\n return {\n __v_isRef: true,\n get value() {\n return valueRef.value\n },\n set value(v: T) {\n // eslint-disable-next-line prettier/prettier\n ; (getterOrOptions as WritableMemoOptions<T>).set(v)\n }\n } as unknown as WritableComputedRef<T>\n}\n\nexport { useMemo }\n","import type { ComputedRef, Ref } from 'vue'\nimport { computed, watch } from 'vue'\n\nexport function useMergedState<T>(controlledStateRef: Ref<T | undefined>, uncontrolledStateRef: Ref<T>): ComputedRef<T> {\n watch(controlledStateRef, value => {\n if (value !== undefined) {\n uncontrolledStateRef.value = value\n }\n })\n return computed(() => {\n if (controlledStateRef.value === undefined) {\n return uncontrolledStateRef.value\n }\n return controlledStateRef.value\n })\n}\n","import { onMounted, onUnmounted, ref } from 'vue'\n\ninterface ScriptOptions {\n src: string\n}\n\nexport function useScript(opts: ScriptOptions) {\n const isLoading = ref(false)\n const error = ref(false)\n const success = ref(false)\n let script: HTMLScriptElement\n\n const promise = new Promise((resolve, reject) => {\n onMounted(() => {\n script = document.createElement('script')\n script.type = 'text/javascript'\n script.onload = () => {\n isLoading.value = false\n success.value = true\n error.value = false\n resolve('')\n }\n\n script.onerror = err => {\n isLoading.value = false\n success.value = false\n error.value = true\n reject(err)\n }\n\n script.src = opts.src\n document.head.appendChild(script)\n })\n })\n\n onUnmounted(() => {\n script && script.remove()\n })\n\n return {\n isLoading,\n error,\n success,\n toPromise: () => promise\n }\n}\n","import type { Ref } from 'vue'\n\nimport { onMounted, onUnmounted, ref, watch } from 'vue'\nimport { useThrottleFn } from '@vueuse/core'\nimport { isObject, isWindow } from '@maxax/utils'\n\nexport function useScroll(\n refEl: Ref<Element | Window | null>,\n options?: {\n wait?: number\n leading?: boolean\n trailing?: boolean\n }\n) {\n const refX = ref(0)\n const refY = ref(0)\n let handler = () => {\n if (isWindow(refEl.value)) {\n refX.value = refEl.value.scrollX\n refY.value = refEl.value.scrollY\n } else if (refEl.value) {\n refX.value = (refEl.value as Element).scrollLeft\n refY.value = (refEl.value as Element).scrollTop\n }\n }\n\n if (isObject(options)) {\n let wait = 0\n if (options && options.wait && options.wait > 0) {\n wait = options.wait\n Reflect.deleteProperty(options, 'wait')\n }\n\n handler = useThrottleFn(handler, wait)\n }\n\n let stopWatch: () => void\n onMounted(() => {\n stopWatch = watch(\n refEl,\n (el, prevEl, onCleanup) => {\n if (el) {\n el.addEventListener('scroll', handler)\n } else if (prevEl) {\n prevEl.removeEventListener('scroll', handler)\n }\n onCleanup(() => {\n refX.value = 0\n refY.value = 0\n el && el.removeEventListener('scroll', handler)\n })\n },\n { immediate: true }\n )\n })\n\n onUnmounted(() => {\n refEl.value && refEl.value.removeEventListener('scroll', handler)\n })\n\n function stop() {\n stopWatch && stopWatch()\n }\n\n return { refX, refY, stop }\n}\n","import { computed, ref, shallowRef, triggerRef } from 'vue'\nimport type { ComputedGetter, DebuggerOptions, Ref, ShallowRef, WritableComputedOptions, WritableComputedRef } from 'vue'\n\ntype Updater<T> = (value: T) => T\ntype Mutator<T> = (value: T) => void\n\n/**\n * Signal is a reactive value that can be set, updated or mutated\n *\n * @example\n * ```ts\n * const count = useSignal(0);\n *\n * // `watchEffect`\n * watchEffect(() => {\n * console.log(count());\n * });\n *\n * // watch\n * watch(count, value => {\n * console.log(value);\n * });\n *\n * // useComputed\n * const double = useComputed(() => count() * 2);\n * const writeableDouble = useComputed({\n * get: () => count() * 2,\n * set: value => count.set(value / 2)\n * });\n * ```\n */\nexport interface Signal<T> {\n (): Readonly<T>\n /**\n * Set the value of the signal\n *\n * It recommend use `set` for primitive values\n *\n * @param value\n */\n set: (value: T) => void\n /**\n * Update the value of the signal using an updater function\n *\n * It recommend use `update` for non-primitive values, only the first level of the object will be reactive.\n *\n * @param updater\n */\n update: (updater: Updater<T>) => void\n /**\n * Mutate the value of the signal using a mutator function\n *\n * this action will call `triggerRef`, so the value will be tracked on `watchEffect`.\n *\n * It recommend use `mutate` for non-primitive values, all levels of the object will be reactive.\n *\n * @param mutator\n */\n mutate: (mutator: Mutator<T>) => void\n /**\n * Get the reference of the signal\n *\n * Sometimes it can be useful to make `v-model` work with the signal\n *\n * ```vue\n * <template>\n * <input v-model=\"model.count\" />\n * </template>;\n *\n * <script setup lang=\"ts\">\n * const state = useSignal({ count: 0 }, { useRef: true });\n *\n * const model = state.getRef();\n * </script>\n * ```\n */\n getRef: () => Readonly<ShallowRef<Readonly<T>>>\n}\n\nexport interface ReadonlySignal<T> {\n (): Readonly<T>\n}\n\nexport interface SignalOptions {\n /**\n * Whether to use `ref` to store the value\n *\n * @default false use `sharedRef` to store the value\n */\n useRef?: boolean\n}\n\nexport function useSignal<T>(initialValue: T, options?: SignalOptions): Signal<T> {\n const { useRef } = options || {}\n\n const state = useRef ? (ref(initialValue) as Ref<T>) : shallowRef(initialValue)\n\n return createSignal(state)\n}\n\nexport function useComputed<T>(getter: ComputedGetter<T>, debugOptions?: DebuggerOptions): ReadonlySignal<T>\nexport function useComputed<T>(options: WritableComputedOptions<T>, debugOptions?: DebuggerOptions): Signal<T>\nexport function useComputed<T>(getterOrOptions: ComputedGetter<T> | WritableComputedOptions<T>, debugOptions?: DebuggerOptions) {\n const isGetter = typeof getterOrOptions === 'function'\n\n const computedValue = computed(getterOrOptions as any, debugOptions)\n\n if (isGetter) {\n return () => computedValue.value as ReadonlySignal<T>\n }\n\n return createSignal(computedValue)\n}\n\nfunction createSignal<T>(state: ShallowRef<T> | WritableComputedRef<T>): Signal<T> {\n const signal = () => state.value\n\n signal.set = (value: T) => {\n state.value = value\n }\n\n signal.update = (updater: Updater<T>) => {\n state.value = updater(state.value)\n }\n\n signal.mutate = (mutator: Mutator<T>) => {\n mutator(state.value)\n triggerRef(state)\n }\n\n signal.getRef = () => state as Readonly<ShallowRef<Readonly<T>>>\n\n return signal\n}\n","import { h } from 'vue'\nimport type { Component } from 'vue'\n\ninterface IconConfig {\n /** Iconify icon name */\n icon?: string\n /** Local icon name */\n localIcon?: string\n /** Icon color */\n color?: string\n /** Icon size */\n fontSize?: number\n}\n\ntype IconStyle = Partial<Pick<CSSStyleDeclaration, 'color' | 'fontSize'>>\n\n/**\n * Svg icon render hook\n *\n * @param SvgIcon Svg icon component\n */\nexport function useSvgIconRender(SvgIcon: Component) {\n /**\n * Svg icon VNode\n *\n * @param config\n */\n const SvgIconVNode = (config: IconConfig) => {\n const { color, fontSize, icon, localIcon } = config\n\n const style: IconStyle = {}\n\n if (color) {\n style.color = color\n }\n if (fontSize) {\n style.fontSize = `${fontSize}px`\n }\n\n if (!icon && !localIcon) {\n return undefined\n }\n\n return () => h(SvgIcon, { icon, localIcon, style })\n }\n\n return {\n SvgIconVNode\n }\n}\n","import { computed, reactive, ref } from 'vue'\nimport type { Ref } from 'vue'\nimport { jsonClone } from '@maxax/utils'\nimport { useBoolean } from './use-boolean'\nimport { useLoading } from './use-loading'\n\nexport type MaybePromise<T> = T | Promise<T>\n\nexport type ApiFn = (args: any) => Promise<unknown>\n\nexport interface TableColumnCheck {\n key: string\n title: string\n checked: boolean\n}\n\nexport type TableDataWithIndex<T> = T & { index: number }\n\nexport interface TransformedData<T> {\n data: TableDataWithIndex<T>[]\n pageNum: number\n pageSize: number\n total: number\n}\n\nexport type Transformer<T, Response> = (response: Response) => TransformedData<T>\n\nexport interface TableConfig<A extends ApiFn, T, C> {\n /** Api function to get table data */\n apiFn: A\n /** Api params */\n apiParams?: Parameters<A>[0]\n /** Transform api response to table data */\n transformer: Transformer<T, Awaited<ReturnType<A>>>\n /** Columns factory */\n columns: () => C[]\n /**\n * Get column checks\n *\n * @param columns\n */\n getColumnChecks: (columns: C[]) => TableColumnCheck[]\n /**\n * Get columns\n *\n * @param columns\n */\n getColumns: (columns: C[], checks: TableColumnCheck[]) => C[]\n /**\n * Callback when response fetched\n *\n * @param transformed transformed data\n */\n onFetched?: (transformed: TransformedData<T>) => MaybePromise<void>\n /**\n * Whether to get data immediately\n *\n * @default true\n */\n immediate?: boolean\n}\n\nexport function useHookTable<A extends ApiFn, T, C>(config: TableConfig<A, T, C>) {\n const { loading, startLoading, endLoading } = useLoading()\n const { bool: empty, setBool: setEmpty } = useBoolean()\n\n const { apiFn, apiParams, transformer, immediate = true, getColumnChecks, getColumns } = config\n\n const searchParams: NonNullable<Parameters<A>[0]> = reactive(jsonClone({ ...apiParams }))\n\n const allColumns = ref(config.columns()) as Ref<C[]>\n\n const data: Ref<TableDataWithIndex<T>[]> = ref([])\n\n const columnChecks: Ref<TableColumnCheck[]> = ref(getColumnChecks(config.columns()))\n\n const columns = computed(() => getColumns(allColumns.value, columnChecks.value))\n\n function reloadColumns() {\n allColumns.value = config.columns()\n\n const checkMap = new Map(columnChecks.value.map(col => [col.key, col.checked]))\n\n const defaultChecks = getColumnChecks(allColumns.value)\n\n columnChecks.value = defaultChecks.map(col => ({\n ...col,\n checked: checkMap.get(col.key) ?? col.checked\n }))\n }\n\n async function getData() {\n startLoading()\n\n const formattedParams = formatSearchParams(searchParams)\n\n const response = await apiFn(formattedParams)\n\n const transformed = transformer(response as Awaited<ReturnType<A>>)\n\n data.value = transformed.data\n\n setEmpty(transformed.data.length === 0)\n\n await config.onFetched?.(transformed)\n\n endLoading()\n }\n\n function formatSearchParams(params: Record<string, unknown>) {\n const formattedParams: Record<string, unknown> = {}\n\n Object.entries(params).forEach(([key, value]) => {\n if (value !== null && value !== undefined) {\n formattedParams[key] = value\n }\n })\n\n return formattedParams\n }\n\n /**\n * Update search params\n *\n * @param params\n */\n function updateSearchParams(params: Partial<Parameters<A>[0]>) {\n Object.assign(searchParams, params)\n }\n\n /** Reset search params */\n function resetSearchParams() {\n Object.assign(searchParams, jsonClone(apiParams))\n }\n\n if (immediate) {\n getData()\n }\n\n return {\n loading,\n empty,\n data,\n columns,\n columnChecks,\n reloadColumns,\n getData,\n searchParams,\n updateSearchParams,\n resetSearchParams\n }\n}\n"],"mappings":"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","names":["ref","unref","SizeEnum","ScreenEnum","ref","unref","ref","ref","onMounted","watch","inject","computed","ref","ref","watch","onBeforeUnmount","ref","computed","onMounted","onUnmounted","ref","useDebounceFn","ref","computed","useDebounceFn","onMounted","onUnmounted","computed","ref","unref","onBeforeUnmount","onMounted","ref","watch","computed","ref","watch","computed","watch","onMounted","onUnmounted","ref","onMounted","onUnmounted","ref","watch","useThrottleFn","computed","ref","computed","ref","ref","computed"]}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@maxax/hooks",
3
+ "version": "1.0.0",
4
+ "description": "Composable Vue hooks shared across Maxax projects",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.mjs",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.mjs",
13
+ "require": "./dist/index.cjs"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "sideEffects": false,
20
+ "keywords": [
21
+ "hooks",
22
+ "vue",
23
+ "composition-api",
24
+ "maxax"
25
+ ],
26
+ "author": "",
27
+ "license": "MIT",
28
+ "dependencies": {
29
+ "@maxax/axios": "1.0.0",
30
+ "@maxax/utils": "1.0.0"
31
+ },
32
+ "peerDependencies": {
33
+ "@vueuse/core": "^10.0.0",
34
+ "vue": "^3.3.0"
35
+ },
36
+ "devDependencies": {
37
+ "@vueuse/core": "^10.7.2",
38
+ "axios": "^1.6.0",
39
+ "vue": "^3.4.0"
40
+ },
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "scripts": {
45
+ "dev": "tsup --watch",
46
+ "build": "tsup",
47
+ "clean": "rm -rf dist"
48
+ }
49
+ }