@reactual/handsontable
Version:
Spreadsheet-like data grid editor
169 lines (145 loc) • 5.43 kB
JavaScript
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _templateObject = _taggedTemplateLiteral(['\n Your license key of Handsontable Pro has expired.\u200C\u200C\u200C\u200C \n Renew your maintenance plan at https://handsontable.com or downgrade to the previous version of the software.\n '], ['\n Your license key of Handsontable Pro has expired.\u200C\u200C\u200C\u200C\\x20\n Renew your maintenance plan at https://handsontable.com or downgrade to the previous version of the software.\n ']);
function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
import moment from 'moment';
import { toSingleLine } from './templateLiteralTag';
/**
* Converts any value to string.
*
* @param {*} value
* @returns {String}
*/
export function stringify(value) {
var result = void 0;
switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {
case 'string':
case 'number':
result = '' + value;
break;
case 'object':
result = value === null ? '' : value.toString();
break;
case 'undefined':
result = '';
break;
default:
result = value.toString();
break;
}
return result;
}
/**
* Checks if given variable is defined.
*
* @param {*} variable Variable to check.
* @returns {Boolean}
*/
export function isDefined(variable) {
return typeof variable !== 'undefined';
}
/**
* Checks if given variable is undefined.
*
* @param {*} variable Variable to check.
* @returns {Boolean}
*/
export function isUndefined(variable) {
return typeof variable === 'undefined';
}
/**
* Check if given variable is null, empty string or undefined.
*
* @param {*} variable Variable to check.
* @returns {Boolean}
*/
export function isEmpty(variable) {
return variable === null || variable === '' || isUndefined(variable);
}
/**
* Check if given variable is a regular expression.
*
* @param {*} variable Variable to check.
* @returns {Boolean}
*/
export function isRegExp(variable) {
return Object.prototype.toString.call(variable) === '[object RegExp]';
}
/* eslint-disable */
var _m = '\x6C\x65\x6E\x67\x74\x68';
var _hd = function _hd(v) {
return parseInt(v, 16);
};
var _pi = function _pi(v) {
return parseInt(v, 10);
};
var _ss = function _ss(v, s, l) {
return v['\x73\x75\x62\x73\x74\x72'](s, l);
};
var _cp = function _cp(v) {
return v['\x63\x6F\x64\x65\x50\x6F\x69\x6E\x74\x41\x74'](0) - 65;
};
var _norm = function _norm(v) {
return ('' + v).replace(/\-/g, '');
};
var _extractTime = function _extractTime(v) {
return _hd(_ss(_norm(v), _hd('12'), _cp('\x46'))) / (_hd(_ss(_norm(v), _cp('\x42'), ~~![][_m])) || 9);
};
var _ignored = function _ignored() {
return typeof location !== 'undefined' && /^([a-z0-9\-]+\.)?\x68\x61\x6E\x64\x73\x6F\x6E\x74\x61\x62\x6C\x65\x2E\x63\x6F\x6D$/i.test(location.host);
};
var _notified = false;
export function _injectProductInfo(key, element) {
key = _norm(key || '');
var warningMessage = '';
var showDomMessage = true;
var schemaValidity = _checkKeySchema(key);
var ignored = _ignored();
var trial = isEmpty(key) || key === 'trial';
if (trial || schemaValidity) {
if (schemaValidity) {
var releaseTime = Math.floor(moment('12/10/2017', 'DD/MM/YYYY').toDate().getTime() / 8.64e7);
var keyGenTime = _extractTime(key);
if (keyGenTime > 45000 || keyGenTime !== parseInt(keyGenTime, 10)) {
warningMessage = 'The license key provided to Handsontable Pro is invalid. Make sure you pass it correctly.';
}
if (!warningMessage) {
if (releaseTime > keyGenTime + 1) {
warningMessage = toSingleLine(_templateObject);
}
showDomMessage = releaseTime > keyGenTime + 15;
}
} else {
warningMessage = 'Evaluation version of Handsontable Pro. Not licensed for use in a production environment.';
}
} else {
warningMessage = 'The license key provided to Handsontable Pro is invalid. Make sure you pass it correctly.';
}
if (ignored) {
warningMessage = false;
showDomMessage = false;
}
if (warningMessage && !_notified) {
console[trial ? 'info' : 'warn'](warningMessage);
_notified = true;
}
if (showDomMessage && element.parentNode) {
var message = document.createElement('div');
message.id = 'hot-display-license-info';
message.appendChild(document.createTextNode('Evaluation version of Handsontable Pro.'));
message.appendChild(document.createElement('br'));
message.appendChild(document.createTextNode('Not licensed for production use.'));
element.parentNode.insertBefore(message, element.nextSibling);
}
}
function _checkKeySchema(v) {
var z = [][_m];
var p = z;
if (v[_m] !== _cp('\x5A')) {
return false;
}
for (var c = '', i = '\x42\x3C\x48\x34\x50\x2B'.split(''), j = _cp(i.shift()); j; j = _cp(i.shift() || 'A')) {
--j < ''[_m] ? p = p | (_pi('' + _pi(_hd(c) + (_hd(_ss(v, Math.abs(j), 2)) + []).padStart(2, '0'))) % _cp('\xA2') || 2) >> 1 : c = _ss(v, j, !j ? 6 : i[_m] === 1 ? 9 : 8);
}
return p === z;
}
/* eslint-enable */