UNPKG

molstar

Version:

A comprehensive macromolecular library.

222 lines 7.45 kB
"use strict"; /** * Copyright (c) 2017-2020 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> * @author Alexander Rose <alexander.rose@weirdbyte.de> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.formatProgress = exports.formatTime = exports.merge = exports.assign = exports.shallowClone = exports.extend = exports.defaults = exports.shallowEqualArrays = exports.shallowEqualObjects = exports.shallowEqual = exports.deepEqual = exports.arrayEqual = exports.round = exports.noop = exports.Mask = exports.UUID = exports.StringBuilder = exports.BitFlags = void 0; var tslib_1 = require("tslib"); var bit_flags_1 = require("./bit-flags"); Object.defineProperty(exports, "BitFlags", { enumerable: true, get: function () { return bit_flags_1.BitFlags; } }); var string_builder_1 = require("./string-builder"); Object.defineProperty(exports, "StringBuilder", { enumerable: true, get: function () { return string_builder_1.StringBuilder; } }); var uuid_1 = require("./uuid"); Object.defineProperty(exports, "UUID", { enumerable: true, get: function () { return uuid_1.UUID; } }); var mask_1 = require("./mask"); Object.defineProperty(exports, "Mask", { enumerable: true, get: function () { return mask_1.Mask; } }); (0, tslib_1.__exportStar)(require("./value-cell"), exports); var noop = function () { }; exports.noop = noop; function round(n, d) { var f = Math.pow(10, d); return Math.round(f * n) / f; } exports.round = round; function arrayEqual(arr1, arr2) { var length = arr1.length; if (length !== arr2.length) return false; for (var i = 0; i < length; i++) { if (arr1[i] !== arr2[i]) { return false; } } return true; } exports.arrayEqual = arrayEqual; var hasOwnProperty = Object.prototype.hasOwnProperty; function deepEqual(a, b) { // from https://github.com/epoberezkin/fast-deep-equal MIT if (a === b) return true; var arrA = Array.isArray(a); var arrB = Array.isArray(b); if (arrA && arrB) { if (a.length !== b.length) return false; for (var i = 0; i < a.length; i++) { if (!deepEqual(a[i], b[i])) return false; } return true; } if (arrA !== arrB) return false; if (a && b && typeof a === 'object' && typeof b === 'object') { var keys = Object.keys(a); if (keys.length !== Object.keys(b).length) return false; var dateA = a instanceof Date; var dateB = b instanceof Date; if (dateA && dateB) return a.getTime() === b.getTime(); if (dateA !== dateB) return false; var regexpA = a instanceof RegExp; var regexpB = b instanceof RegExp; if (regexpA && regexpB) return a.toString() === b.toString(); if (regexpA !== regexpB) return false; for (var i = 0; i < keys.length; i++) { if (!hasOwnProperty.call(b, keys[i])) return false; } for (var i = 0; i < keys.length; i++) { if (!deepEqual(a[keys[i]], b[keys[i]])) return false; } return true; } return false; } exports.deepEqual = deepEqual; function shallowEqual(a, b) { if (a === b) return true; var arrA = Array.isArray(a); var arrB = Array.isArray(b); if (arrA && arrB) return shallowEqualArrays(a, b); if (arrA !== arrB) return false; if (a && b && typeof a === 'object' && typeof b === 'object') { return shallowEqualObjects(a, b); } return false; } exports.shallowEqual = shallowEqual; function shallowEqualObjects(a, b) { if (a === b) return true; if (!a || !b) return false; var keys = Object.keys(a); if (Object.keys(b).length !== keys.length) return false; for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { var k = keys_1[_i]; if (!hasOwnProperty.call(a, k) || a[k] !== b[k]) return false; } return true; } exports.shallowEqualObjects = shallowEqualObjects; function shallowEqualArrays(a, b) { if (a === b) return true; if (!a || !b) return false; if (a.length !== b.length) return false; for (var i = 0, il = a.length; i < il; ++i) { if (a[i] !== b[i]) return false; } return true; } exports.shallowEqualArrays = shallowEqualArrays; /** Returns `value` if not `undefined`, otherwise returns `defaultValue` */ function defaults(value, defaultValue) { return value !== undefined ? value : defaultValue; } exports.defaults = defaults; function extend(object, source, guard) { var v; var s = source; var o = object; var g = guard; for (var _i = 0, _a = Object.keys(source); _i < _a.length; _i++) { var k = _a[_i]; v = s[k]; if (v !== void 0) o[k] = v; else if (guard) o[k] = g[k]; } if (guard) { for (var _b = 0, _c = Object.keys(guard); _b < _c.length; _b++) { var k = _c[_b]; v = o[k]; if (v === void 0) o[k] = g[k]; } } return object; } exports.extend = extend; function shallowClone(o) { return extend({}, o); } exports.shallowClone = shallowClone; function _assign(target) { for (var s = 1; s < arguments.length; s++) { var from = arguments[s]; for (var _i = 0, _a = Object.keys(from); _i < _a.length; _i++) { var key = _a[_i]; if (hasOwnProperty.call(from, key)) { target[key] = from[key]; } } } return target; } exports.assign = Object.assign || _assign; function _shallowMerge1(source, update) { var changed = false; for (var _i = 0, _a = Object.keys(update); _i < _a.length; _i++) { var k = _a[_i]; if (!hasOwnProperty.call(update, k)) continue; if (update[k] !== source[k]) { changed = true; break; } } if (!changed) return source; return (0, exports.assign)(shallowClone(source), update); } function _shallowMerge(source) { var ret = source; for (var s = 1; s < arguments.length; s++) { if (!arguments[s]) continue; ret = _shallowMerge1(source, arguments[s]); if (ret !== source) { for (var i = s + 1; i < arguments.length; i++) { ret = (0, exports.assign)(ret, arguments[i]); } break; } } return ret; } exports.merge = _shallowMerge; function padTime(n) { return (n < 10 ? '0' : '') + n; } function formatTime(d) { var h = d.getHours(), m = d.getMinutes(), s = d.getSeconds(); return h + ":" + padTime(m) + ":" + padTime(s); } exports.formatTime = formatTime; function formatProgress(p) { var tp = p.root.progress; if (tp.isIndeterminate) return tp.message; var x = (100 * tp.current / tp.max).toFixed(2); return tp.message + " " + x + "%"; } exports.formatProgress = formatProgress; //# sourceMappingURL=index.js.map