element-plus
Version:
A Component Library for Vue 3
1 lines • 3.03 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-z-index/index.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, ref, unref } from 'vue'\nimport { debugWarn, isClient, isNumber } from '@element-plus/utils'\n\nimport type { InjectionKey, Ref } from 'vue'\n\nexport interface ElZIndexInjectionContext {\n current: number\n}\n\nconst initial: ElZIndexInjectionContext = {\n current: 0,\n}\n\nconst zIndex = ref(0)\n\nexport const defaultInitialZIndex = 2000\n\n// For SSR\nexport const ZINDEX_INJECTION_KEY: InjectionKey<ElZIndexInjectionContext> =\n Symbol('elZIndexContextKey')\n\nexport const zIndexContextKey: InjectionKey<Ref<number | undefined>> =\n Symbol('zIndexContextKey')\n\nexport const useZIndex = (zIndexOverrides?: Ref<number>) => {\n const increasingInjection = getCurrentInstance()\n ? inject(ZINDEX_INJECTION_KEY, initial)\n : initial\n\n const zIndexInjection =\n zIndexOverrides ||\n (getCurrentInstance() ? inject(zIndexContextKey, undefined) : undefined)\n\n const initialZIndex = computed(() => {\n const zIndexFromInjection = unref(zIndexInjection)\n return isNumber(zIndexFromInjection)\n ? zIndexFromInjection\n : defaultInitialZIndex\n })\n\n const currentZIndex = computed(() => initialZIndex.value + zIndex.value)\n\n const nextZIndex = () => {\n increasingInjection.current++\n zIndex.value = increasingInjection.current\n return currentZIndex.value\n }\n\n if (!isClient && !inject(ZINDEX_INJECTION_KEY)) {\n debugWarn(\n 'ZIndexInjection',\n `Looks like you are using server rendering, you must provide a z-index provider to ensure the hydration process to be succeed\nusage: app.provide(ZINDEX_INJECTION_KEY, { current: 0 })`\n )\n }\n\n return {\n initialZIndex,\n currentZIndex,\n nextZIndex,\n }\n}\n\nexport type UseZIndexReturn = ReturnType<typeof useZIndex>\n"],"names":[],"mappings":";;;;;AASA,MAAM,OAAoC,GAAA;AAAA,EACxC,OAAS,EAAA,CAAA;AACX,CAAA,CAAA;AAEA,MAAM,MAAA,GAAS,IAAI,CAAC,CAAA,CAAA;AAEb,MAAM,oBAAuB,GAAA,IAAA;AAGvB,MAAA,oBAAA,GACX,OAAO,oBAAoB,EAAA;AAEhB,MAAA,gBAAA,GACX,OAAO,kBAAkB,EAAA;AAEd,MAAA,SAAA,GAAY,CAAC,eAAkC,KAAA;AAC1D,EAAA,MAAM,sBAAsB,kBAAmB,EAAA,GAC3C,MAAO,CAAA,oBAAA,EAAsB,OAAO,CACpC,GAAA,OAAA,CAAA;AAEJ,EAAA,MAAM,kBACJ,eACC,KAAA,kBAAA,KAAuB,MAAO,CAAA,gBAAA,EAAkB,MAAS,CAAI,GAAA,KAAA,CAAA,CAAA,CAAA;AAEhE,EAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,IAAM,MAAA,mBAAA,GAAsB,MAAM,eAAe,CAAA,CAAA;AACjD,IAAO,OAAA,QAAA,CAAS,mBAAmB,CAAA,GAC/B,mBACA,GAAA,oBAAA,CAAA;AAAA,GACL,CAAA,CAAA;AAED,EAAA,MAAM,gBAAgB,QAAS,CAAA,MAAM,aAAc,CAAA,KAAA,GAAQ,OAAO,KAAK,CAAA,CAAA;AAEvE,EAAA,MAAM,aAAa,MAAM;AACvB,IAAoB,mBAAA,CAAA,OAAA,EAAA,CAAA;AACpB,IAAA,MAAA,CAAO,QAAQ,mBAAoB,CAAA,OAAA,CAAA;AACnC,IAAA,OAAO,aAAc,CAAA,KAAA,CAAA;AAAA,GACvB,CAAA;AAEA,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,MAAA,CAAO,oBAAoB,CAAG,EAAA;AAC9C,IAAA,SAAA;AAAA,MACE,iBAAA;AAAA,MACA,CAAA;AAAA,wDAAA,CAAA;AAAA,KAEF,CAAA;AAAA,GACF;AAEA,EAAO,OAAA;AAAA,IACL,aAAA;AAAA,IACA,aAAA;AAAA,IACA,UAAA;AAAA,GACF,CAAA;AACF;;;;"}