useId.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  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. var uuid = 0;
  12. /** Is client side and not jsdom */
  13. var isBrowserClient = process.env.NODE_ENV !== 'test' && (0, _canUseDom.default)();
  14. /** Get unique id for accessibility usage */
  15. exports.isBrowserClient = isBrowserClient;
  16. function getUUID() {
  17. var retId;
  18. // Test never reach
  19. /* istanbul ignore if */
  20. if (isBrowserClient) {
  21. retId = uuid;
  22. uuid += 1;
  23. } else {
  24. retId = 'TEST_OR_SSR';
  25. }
  26. return retId;
  27. }
  28. function useId() {
  29. var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _vue.ref)('');
  30. // Inner id for accessibility usage. Only work in client side
  31. var innerId = "rc_select_".concat(getUUID());
  32. return id.value || innerId;
  33. }