UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

71 lines (61 loc) 1.5 kB
"use strict"; var Class = require("./class"); /** * @name Guid * @publicName Guid * @type object * @namespace DevExpress.data * @module core/guid * @export default */ var Guid = Class.inherit({ /** * @name Guidmethods.ctor * @publicName ctor() */ /** * @name Guidmethods.ctor * @publicName ctor(value) * @param1 value:string */ ctor: function ctor(value) { if (value) { value = String(value); } this._value = this._normalize(value || this._generate()); }, _normalize: function _normalize(value) { value = value.replace(/[^a-f0-9]/ig, "").toLowerCase(); while (value.length < 32) { value += "0"; } return [value.substr(0, 8), value.substr(8, 4), value.substr(12, 4), value.substr(16, 4), value.substr(20, 12)].join("-"); }, _generate: function _generate() { var value = ""; for (var i = 0; i < 32; i++) { value += Math.round(Math.random() * 15).toString(16); } return value; }, /** * @name Guidmethods.toString * @publicName toString() * @return string */ toString: function toString() { return this._value; }, /** * @name Guidmethods.valueOf * @publicName valueOf() * @return string */ valueOf: function valueOf() { return this._value; }, toJSON: function toJSON() { return this._value; } }); module.exports = Guid;