3789b1d712bb539bab3cbff8f8f7b21932dedfe2fb9cdcc2896fe5c1c9a21eb53f2d470bf0163ecf66b3d43c928b63fc63cfa2f6c96bef04c57a94835e40a2 809 B

123456789101112131415161718192021
  1. import { getCurrentInstance, inject, unref } from 'vue';
  2. import { computedEager } from '@vueuse/core';
  3. import { useGetDerivedNamespace } from '../use-namespace/index.mjs';
  4. const defaultIdInjection = {
  5. prefix: Math.floor(Math.random() * 1e4),
  6. current: 0
  7. };
  8. const ID_INJECTION_KEY = Symbol("elIdInjection");
  9. const useIdInjection = () => {
  10. return getCurrentInstance() ? inject(ID_INJECTION_KEY, defaultIdInjection) : defaultIdInjection;
  11. };
  12. const useId = (deterministicId) => {
  13. const idInjection = useIdInjection();
  14. const namespace = useGetDerivedNamespace();
  15. const idRef = computedEager(() => unref(deterministicId) || `${namespace.value}-id-${idInjection.prefix}-${idInjection.current++}`);
  16. return idRef;
  17. };
  18. export { ID_INJECTION_KEY, useId, useIdInjection };
  19. //# sourceMappingURL=index.mjs.map