ivue-material-plus
Version:
A high quality UI components Library with Vue.js
18 lines (15 loc) • 510 B
JavaScript
import { inject, computed, unref } from 'vue';
const ID_INJECTION_KEY = Symbol("ivue-id-injection");
const defaultIdInjection = {
prefix: Math.floor(Math.random() * 1e4),
current: 0
};
const useId = (deterministicId) => {
const idInjection = inject(ID_INJECTION_KEY, defaultIdInjection);
const setId = computed(
() => unref(deterministicId) || `ivue-id-${idInjection.prefix}-${idInjection.current++}`
);
return setId;
};
export { ID_INJECTION_KEY, useId };
//# sourceMappingURL=index.mjs.map