{"version":3,"file":"index.mjs","names":[],"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"],"mappings":";;;;;;AASA,MAAM,UAAoC,EACxC,SAAS,GACV;AAED,MAAM,SAAS,IAAI,EAAE;AAErB,MAAa,uBAAuB;AAGpC,MAAa,uBACX,OAAO,qBAAqB;AAE9B,MAAa,mBACX,OAAO,mBAAmB;AAE5B,MAAa,aAAa,oBAAkC;CAC1D,MAAM,sBAAsB,oBAAoB,GAC5C,OAAO,sBAAsB,QAAQ,GACrC;CAEJ,MAAM,kBACJ,oBACC,oBAAoB,GAAG,OAAO,kBAAkB,OAAU,GAAG;CAEhE,MAAM,gBAAgB,eAAe;EACnC,MAAM,sBAAsB,MAAM,gBAAgB;AAClD,SAAO,SAAS,oBAAoB,GAChC,sBACA;GACJ;CAEF,MAAM,gBAAgB,eAAe,cAAc,QAAQ,OAAO,MAAM;CAExE,MAAM,mBAAmB;AACvB,sBAAoB;AACpB,SAAO,QAAQ,oBAAoB;AACnC,SAAO,cAAc;;AAGvB,KAAI,CAAC,YAAY,CAAC,OAAO,qBAAqB,CAC5C,WACE,mBACA;0DAED;AAGH,QAAO;EACL;EACA;EACA;EACD"}