useId.js 1018 B

123456789101112131415161718192021222324252627282930313233
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useId;
  7. exports.getUUID = getUUID;
  8. exports.isBrowserClient = void 0;
  9. var _vue = require("vue");
  10. var _canUseDom = _interopRequireDefault(require("../../_util/canUseDom"));
  11. let uuid = 0;
  12. /** Is client side and not jsdom */
  13. const isBrowserClient = exports.isBrowserClient = process.env.NODE_ENV !== 'test' && (0, _canUseDom.default)();
  14. /** Get unique id for accessibility usage */
  15. function getUUID() {
  16. let retId;
  17. // Test never reach
  18. /* istanbul ignore if */
  19. if (isBrowserClient) {
  20. retId = uuid;
  21. uuid += 1;
  22. } else {
  23. retId = 'TEST_OR_SSR';
  24. }
  25. return retId;
  26. }
  27. function useId() {
  28. let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _vue.ref)('');
  29. // Inner id for accessibility usage. Only work in client side
  30. const innerId = `rc_select_${getUUID()}`;
  31. return id.value || innerId;
  32. }