guid.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**
  2. * DevExtreme (core/guid.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var Class = require("./class");
  11. var Guid = Class.inherit({
  12. ctor: function(value) {
  13. if (value) {
  14. value = String(value)
  15. }
  16. this._value = this._normalize(value || this._generate())
  17. },
  18. _normalize: function(value) {
  19. value = value.replace(/[^a-f0-9]/gi, "").toLowerCase();
  20. while (value.length < 32) {
  21. value += "0"
  22. }
  23. return [value.substr(0, 8), value.substr(8, 4), value.substr(12, 4), value.substr(16, 4), value.substr(20, 12)].join("-")
  24. },
  25. _generate: function() {
  26. var value = "";
  27. for (var i = 0; i < 32; i++) {
  28. value += Math.round(15 * Math.random()).toString(16)
  29. }
  30. return value
  31. },
  32. toString: function() {
  33. return this._value
  34. },
  35. valueOf: function() {
  36. return this._value
  37. },
  38. toJSON: function() {
  39. return this._value
  40. }
  41. });
  42. module.exports = Guid;
  43. module.exports.default = module.exports;