jbrowse-plugin-msaview 1.0.14 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +7 -4
- package/dist/jbrowse-plugin-msaview.cjs.development.js +11 -6
- package/dist/jbrowse-plugin-msaview.cjs.development.js.map +1 -1
- package/dist/jbrowse-plugin-msaview.cjs.production.min.js +1 -1
- package/dist/jbrowse-plugin-msaview.cjs.production.min.js.map +1 -1
- package/dist/jbrowse-plugin-msaview.esm.js +9 -3
- package/dist/jbrowse-plugin-msaview.esm.js.map +1 -1
- package/dist/jbrowse-plugin-msaview.umd.development.js +7059 -5440
- package/dist/jbrowse-plugin-msaview.umd.development.js.map +1 -1
- package/dist/jbrowse-plugin-msaview.umd.production.min.js +1 -1
- package/dist/jbrowse-plugin-msaview.umd.production.min.js.map +1 -1
- package/package.json +2 -3
- package/src/index.ts +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jbrowse-plugin-msaview.umd.development.js","sources":["../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/@material-ui/icons/FolderOpen.js","../node_modules/@material-ui/icons/Settings.js","../node_modules/@material-ui/icons/Info.js","../node_modules/@material-ui/icons/Assignment.js","../node_modules/color-name/index.js","../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","../node_modules/simple-swizzle/index.js","../node_modules/color-string/index.js","../node_modules/color-convert/node_modules/color-name/index.js","../node_modules/color-convert/conversions.js","../node_modules/color-convert/route.js","../node_modules/color-convert/index.js","../node_modules/color/index.js","../node_modules/normalize-wheel/src/UserAgent_DEPRECATED.js","../node_modules/normalize-wheel/src/ExecutionEnvironment.js","../node_modules/normalize-wheel/src/isEventSupported.js","../node_modules/normalize-wheel/src/normalizeWheel.js","../node_modules/normalize-wheel/index.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/shortid/lib/random/random-from-seed.js","../node_modules/shortid/lib/alphabet.js","../node_modules/shortid/lib/random/random-byte-browser.js","../node_modules/nanoid/format.browser.js","../node_modules/shortid/lib/generate.js","../node_modules/shortid/lib/build.js","../node_modules/shortid/lib/is-valid.js","../node_modules/shortid/lib/index.js","../node_modules/shortid/index.js","../node_modules/@jbrowse/core/util/types/mst.js","../node_modules/@jbrowse/core/pluggableElementTypes/models/BaseViewModel.js","../node_modules/clustal-js/dist/util.js","../node_modules/clustal-js/dist/index.js","../node_modules/d3-hierarchy/src/cluster.js","../node_modules/d3-hierarchy/src/hierarchy/count.js","../node_modules/d3-hierarchy/src/hierarchy/each.js","../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../node_modules/d3-hierarchy/src/hierarchy/find.js","../node_modules/d3-hierarchy/src/hierarchy/sum.js","../node_modules/d3-hierarchy/src/hierarchy/sort.js","../node_modules/d3-hierarchy/src/hierarchy/path.js","../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../node_modules/d3-hierarchy/src/hierarchy/links.js","../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../node_modules/d3-hierarchy/src/hierarchy/index.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/max.js","../node_modules/stockholm-js/src/Stockholm.js","../node_modules/stockholm-js/index.js","../node_modules/react-msaview/src/util.js","../node_modules/react-msaview/src/colorSchemes.js","../node_modules/react-msaview/src/components/SettingsDlg.tsx","../node_modules/react-msaview/src/components/AboutDlg.tsx","../node_modules/react-msaview/src/components/DetailsDlg.tsx","../node_modules/react-msaview/src/components/data/seq2.js","../node_modules/react-msaview/src/components/ImportForm.tsx","../node_modules/react-msaview/src/components/Tree.tsx","../node_modules/react-msaview/src/components/MSA.tsx","../node_modules/react-msaview/src/components/MsaView.tsx","../node_modules/node_modules/regenerator-runtime/runtime.js","../node_modules/react-msaview/src/parseNewick.js","../node_modules/react-msaview/src/model.ts","../node_modules/@material-ui/icons/GridOn.js","../src/index.ts"],"sourcesContent":["function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@material-ui/core/utils\");","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z\"\n}), 'FolderOpen');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z\"\n}), 'Settings');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"\n}), 'Info');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\n}), 'Assignment');\n\nexports.default = _default;","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * @providesModule UserAgent_DEPRECATED\n */\n\n/**\n * Provides entirely client-side User Agent and OS detection. You should prefer\n * the non-deprecated UserAgent module when possible, which exposes our\n * authoritative server-side PHP-based detection to the client.\n *\n * Usage is straightforward:\n *\n * if (UserAgent_DEPRECATED.ie()) {\n * // IE\n * }\n *\n * You can also do version checks:\n *\n * if (UserAgent_DEPRECATED.ie() >= 7) {\n * // IE7 or better\n * }\n *\n * The browser functions will return NaN if the browser does not match, so\n * you can also do version compares the other way:\n *\n * if (UserAgent_DEPRECATED.ie() < 7) {\n * // IE6 or worse\n * }\n *\n * Note that the version is a float and may include a minor version number,\n * so you should always use range operators to perform comparisons, not\n * strict equality.\n *\n * **Note:** You should **strongly** prefer capability detection to browser\n * version detection where it's reasonable:\n *\n * http://www.quirksmode.org/js/support.html\n *\n * Further, we have a large number of mature wrapper functions and classes\n * which abstract away many browser irregularities. Check the documentation,\n * grep for things, or ask on javascript@lists.facebook.com before writing yet\n * another copy of \"event || window.event\".\n *\n */\n\nvar _populated = false;\n\n// Browsers\nvar _ie, _firefox, _opera, _webkit, _chrome;\n\n// Actual IE browser for compatibility mode\nvar _ie_real_version;\n\n// Platforms\nvar _osx, _windows, _linux, _android;\n\n// Architectures\nvar _win64;\n\n// Devices\nvar _iphone, _ipad, _native;\n\nvar _mobile;\n\nfunction _populate() {\n if (_populated) {\n return;\n }\n\n _populated = true;\n\n // To work around buggy JS libraries that can't handle multi-digit\n // version numbers, Opera 10's user agent string claims it's Opera\n // 9, then later includes a Version/X.Y field:\n //\n // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas);\n\n // Note that the IE team blog would have you believe you should be checking\n // for 'Win64; x64'. But MSDN then reveals that you can actually be coming\n // from either x64 or ia64; so ultimately, you should just check for Win64\n // as in indicator of whether you're in 64-bit IE. 32-bit IE on 64-bit\n // Windows will send 'WOW64' instead.\n _win64 = !!(/Win64/.exec(uas));\n\n if (agent) {\n _ie = agent[1] ? parseFloat(agent[1]) : (\n agent[5] ? parseFloat(agent[5]) : NaN);\n // IE compatibility mode\n if (_ie && document && document.documentMode) {\n _ie = document.documentMode;\n }\n // grab the \"true\" ie version from the trident token if available\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n if (_webkit) {\n // We do not add the regexp to the above test, because it will always\n // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n // the userAgent string.\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = _firefox = _opera = _chrome = _webkit = NaN;\n }\n\n if (os) {\n if (os[1]) {\n // Detect OS X version. If no version number matches, set _osx to true.\n // Version examples: 10, 10_6_1, 10.7\n // Parses version number as a float, taking only first two sets of\n // digits. If only one set of digits is found, returns just the major\n // version number.\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n\n _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n } else {\n _osx = false;\n }\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = _windows = _linux = false;\n }\n}\n\nvar UserAgent_DEPRECATED = {\n\n /**\n * Check if the UA is Internet Explorer.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n ie: function() {\n return _populate() || _ie;\n },\n\n /**\n * Check if we're in Internet Explorer compatibility mode.\n *\n * @return bool true if in compatibility mode, false if\n * not compatibility mode or not ie\n */\n ieCompatibilityMode: function() {\n return _populate() || (_ie_real_version > _ie);\n },\n\n\n /**\n * Whether the browser is 64-bit IE. Really, this is kind of weak sauce; we\n * only need this because Skype can't handle 64-bit IE yet. We need to remove\n * this when we don't need it -- tracked by #601957.\n */\n ie64: function() {\n return UserAgent_DEPRECATED.ie() && _win64;\n },\n\n /**\n * Check if the UA is Firefox.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n firefox: function() {\n return _populate() || _firefox;\n },\n\n\n /**\n * Check if the UA is Opera.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n opera: function() {\n return _populate() || _opera;\n },\n\n\n /**\n * Check if the UA is WebKit.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n webkit: function() {\n return _populate() || _webkit;\n },\n\n /**\n * For Push\n * WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n */\n safari: function() {\n return UserAgent_DEPRECATED.webkit();\n },\n\n /**\n * Check if the UA is a Chrome browser.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n chrome : function() {\n return _populate() || _chrome;\n },\n\n\n /**\n * Check if the user is running Windows.\n *\n * @return bool `true' if the user's OS is Windows.\n */\n windows: function() {\n return _populate() || _windows;\n },\n\n\n /**\n * Check if the user is running Mac OS X.\n *\n * @return float|bool Returns a float if a version number is detected,\n * otherwise true/false.\n */\n osx: function() {\n return _populate() || _osx;\n },\n\n /**\n * Check if the user is running Linux.\n *\n * @return bool `true' if the user's OS is some flavor of Linux.\n */\n linux: function() {\n return _populate() || _linux;\n },\n\n /**\n * Check if the user is running on an iPhone or iPod platform.\n *\n * @return bool `true' if the user is running some flavor of the\n * iPhone OS.\n */\n iphone: function() {\n return _populate() || _iphone;\n },\n\n mobile: function() {\n return _populate() || (_iphone || _ipad || _android || _mobile);\n },\n\n nativeApp: function() {\n // webviews inside of the native apps\n return _populate() || _native;\n },\n\n android: function() {\n return _populate() || _android;\n },\n\n ipad: function() {\n return _populate() || _ipad;\n }\n};\n\nmodule.exports = UserAgent_DEPRECATED;\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n/*jslint evil: true */\n\n'use strict';\n\nvar canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners:\n canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature =\n document.implementation &&\n document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM ||\n capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule normalizeWheel\n * @typechecks\n */\n\n'use strict';\n\nvar UserAgent_DEPRECATED = require('./UserAgent_DEPRECATED');\n\nvar isEventSupported = require('./isEventSupported');\n\n\n// Reasonable defaults\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n\n/**\n * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\n * your questions.\n *\n * If you need to react to the mouse wheel in a predictable way, this code is\n * like your bestest friend. * hugs *\n *\n * As of today, there are 4 DOM event types you can listen to:\n *\n * 'wheel' -- Chrome(31+), FF(17+), IE(9+)\n * 'mousewheel' -- Chrome, IE(6+), Opera, Safari\n * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\n * 'DOMMouseScroll' -- FF(0.9.7+) since 2003\n *\n * So what to do? The is the best:\n *\n * normalizeWheel.getEventType();\n *\n * In your event callback, use this code to get sane interpretation of the\n * deltas. This code will return an object with properties:\n *\n * spinX -- normalized spin speed (use for zoom) - x plane\n * spinY -- \" - y plane\n * pixelX -- normalized distance (to pixels) - x plane\n * pixelY -- \" - y plane\n *\n * Wheel values are provided by the browser assuming you are using the wheel to\n * scroll a web page by a number of lines or pixels (or pages). Values can vary\n * significantly on different platforms and browsers, forgetting that you can\n * scroll at different speeds. Some devices (like trackpads) emit more events\n * at smaller increments with fine granularity, and some emit massive jumps with\n * linear speed or acceleration.\n *\n * This code does its best to normalize the deltas for you:\n *\n * - spin is trying to normalize how far the wheel was spun (or trackpad\n * dragged). This is super useful for zoom support where you want to\n * throw away the chunky scroll steps on the PC and make those equal to\n * the slow and smooth tiny steps on the Mac. Key data: This code tries to\n * resolve a single slow step on a wheel to 1.\n *\n * - pixel is normalizing the desired scroll delta in pixel units. You'll\n * get the crazy differences between browsers, but at least it'll be in\n * pixels!\n *\n * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\n * should translate to positive value zooming IN, negative zooming OUT.\n * This matches the newer 'wheel' event.\n *\n * Why are there spinX, spinY (or pixels)?\n *\n * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n * with a mouse. It results in side-scrolling in the browser by default.\n *\n * - spinY is what you expect -- it's the classic axis of a mouse wheel.\n *\n * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\n * probably is by browsers in conjunction with fancy 3D controllers .. but\n * you know.\n *\n * Implementation info:\n *\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n * average mouse:\n *\n * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\n * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\n * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\n * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\n * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\n *\n * On the trackpad:\n *\n * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\n * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\n *\n * On other/older browsers.. it's more complicated as there can be multiple and\n * also missing delta values.\n *\n * The 'wheel' event is more standard:\n *\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n *\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\n * backward compatibility with older events. Those other values help us\n * better normalize spin speed. Example of what the browsers provide:\n *\n * | event.wheelDelta | event.detail\n * ------------------+------------------+--------------\n * Safari v5/OS X | -120 | 0\n * Safari v5/Win7 | -120 | 0\n * Chrome v17/OS X | -120 | 0\n * Chrome v17/Win7 | -120 | 0\n * IE9/Win7 | -120 | undefined\n * Firefox v4/OS X | undefined | 1\n * Firefox v4/Win7 | undefined | 3\n *\n */\nfunction normalizeWheel(/*object*/ event) /*object*/ {\n var sX = 0, sY = 0, // spinX, spinY\n pX = 0, pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in event) { sY = event.detail; }\n if ('wheelDelta' in event) { sY = -event.wheelDelta / 120; }\n if ('wheelDeltaY' in event) { sY = -event.wheelDeltaY / 120; }\n if ('wheelDeltaX' in event) { sX = -event.wheelDeltaX / 120; }\n\n // side scrolling on FF with DOMMouseScroll\n if ( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in event) { pY = event.deltaY; }\n if ('deltaX' in event) { pX = event.deltaX; }\n\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode == 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) { sX = (pX < 1) ? -1 : 1; }\n if (pY && !sY) { sY = (pY < 1) ? -1 : 1; }\n\n return { spinX : sX,\n spinY : sY,\n pixelX : pX,\n pixelY : pY };\n}\n\n\n/**\n * The best combination if you prefer spinX + spinY normalization. It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\nnormalizeWheel.getEventType = function() /*string*/ {\n return (UserAgent_DEPRECATED.firefox())\n ? 'DOMMouseScroll'\n : (isEventSupported('wheel'))\n ? 'wheel'\n : 'mousewheel';\n};\n\nmodule.exports = normalizeWheel;\n","module.exports = require('./src/normalizeWheel.js');\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","'use strict';\n\n// Found this seed-based random generator somewhere\n// Based on The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)\n\nvar seed = 1;\n\n/**\n * return a random number based on a seed\n * @param seed\n * @returns {number}\n */\nfunction getNextValue() {\n seed = (seed * 9301 + 49297) % 233280;\n return seed/(233280.0);\n}\n\nfunction setSeed(_seed_) {\n seed = _seed_;\n}\n\nmodule.exports = {\n nextValue: getNextValue,\n seed: setSeed\n};\n","'use strict';\n\nvar randomFromSeed = require('./random/random-from-seed');\n\nvar ORIGINAL = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-';\nvar alphabet;\nvar previousSeed;\n\nvar shuffled;\n\nfunction reset() {\n shuffled = false;\n}\n\nfunction setCharacters(_alphabet_) {\n if (!_alphabet_) {\n if (alphabet !== ORIGINAL) {\n alphabet = ORIGINAL;\n reset();\n }\n return;\n }\n\n if (_alphabet_ === alphabet) {\n return;\n }\n\n if (_alphabet_.length !== ORIGINAL.length) {\n throw new Error('Custom alphabet for shortid must be ' + ORIGINAL.length + ' unique characters. You submitted ' + _alphabet_.length + ' characters: ' + _alphabet_);\n }\n\n var unique = _alphabet_.split('').filter(function(item, ind, arr){\n return ind !== arr.lastIndexOf(item);\n });\n\n if (unique.length) {\n throw new Error('Custom alphabet for shortid must be ' + ORIGINAL.length + ' unique characters. These characters were not unique: ' + unique.join(', '));\n }\n\n alphabet = _alphabet_;\n reset();\n}\n\nfunction characters(_alphabet_) {\n setCharacters(_alphabet_);\n return alphabet;\n}\n\nfunction setSeed(seed) {\n randomFromSeed.seed(seed);\n if (previousSeed !== seed) {\n reset();\n previousSeed = seed;\n }\n}\n\nfunction shuffle() {\n if (!alphabet) {\n setCharacters(ORIGINAL);\n }\n\n var sourceArray = alphabet.split('');\n var targetArray = [];\n var r = randomFromSeed.nextValue();\n var characterIndex;\n\n while (sourceArray.length > 0) {\n r = randomFromSeed.nextValue();\n characterIndex = Math.floor(r * sourceArray.length);\n targetArray.push(sourceArray.splice(characterIndex, 1)[0]);\n }\n return targetArray.join('');\n}\n\nfunction getShuffled() {\n if (shuffled) {\n return shuffled;\n }\n shuffled = shuffle();\n return shuffled;\n}\n\n/**\n * lookup shuffled letter\n * @param index\n * @returns {string}\n */\nfunction lookup(index) {\n var alphabetShuffled = getShuffled();\n return alphabetShuffled[index];\n}\n\nfunction get () {\n return alphabet || ORIGINAL;\n}\n\nmodule.exports = {\n get: get,\n characters: characters,\n seed: setSeed,\n lookup: lookup,\n shuffled: getShuffled\n};\n","'use strict';\n\nvar crypto = typeof window === 'object' && (window.crypto || window.msCrypto); // IE 11 uses window.msCrypto\n\nvar randomByte;\n\nif (!crypto || !crypto.getRandomValues) {\n randomByte = function(size) {\n var bytes = [];\n for (var i = 0; i < size; i++) {\n bytes.push(Math.floor(Math.random() * 256));\n }\n return bytes;\n };\n} else {\n randomByte = function(size) {\n return crypto.getRandomValues(new Uint8Array(size));\n };\n}\n\nmodule.exports = randomByte;\n","// This file replaces `format.js` in bundlers like webpack or Rollup,\n// according to `browser` config in `package.json`.\n\nmodule.exports = function (random, alphabet, size) {\n // We can’t use bytes bigger than the alphabet. To make bytes values closer\n // to the alphabet, we apply bitmask on them. We look for the closest\n // `2 ** x - 1` number, which will be bigger than alphabet size. If we have\n // 30 symbols in the alphabet, we will take 31 (00011111).\n // We do not use faster Math.clz32, because it is not available in browsers.\n var mask = (2 << Math.log(alphabet.length - 1) / Math.LN2) - 1\n // Bitmask is not a perfect solution (in our example it will pass 31 bytes,\n // which is bigger than the alphabet). As a result, we will need more bytes,\n // than ID size, because we will refuse bytes bigger than the alphabet.\n\n // Every hardware random generator call is costly,\n // because we need to wait for entropy collection. This is why often it will\n // be faster to ask for few extra bytes in advance, to avoid additional calls.\n\n // Here we calculate how many random bytes should we call in advance.\n // It depends on ID length, mask / alphabet size and magic number 1.6\n // (which was selected according benchmarks).\n\n // -~f => Math.ceil(f) if n is float number\n // -~i => i + 1 if n is integer number\n var step = -~(1.6 * mask * size / alphabet.length)\n var id = ''\n\n while (true) {\n var bytes = random(step)\n // Compact alternative for `for (var i = 0; i < step; i++)`\n var i = step\n while (i--) {\n // If random byte is bigger than alphabet even after bitmask,\n // we refuse it by `|| ''`.\n id += alphabet[bytes[i] & mask] || ''\n // More compact than `id.length + 1 === size`\n if (id.length === +size) return id\n }\n }\n}\n","'use strict';\n\nvar alphabet = require('./alphabet');\nvar random = require('./random/random-byte');\nvar format = require('nanoid/format');\n\nfunction generate(number) {\n var loopCounter = 0;\n var done;\n\n var str = '';\n\n while (!done) {\n str = str + format(random, alphabet.get(), 1);\n done = number < (Math.pow(16, loopCounter + 1 ) );\n loopCounter++;\n }\n return str;\n}\n\nmodule.exports = generate;\n","'use strict';\n\nvar generate = require('./generate');\nvar alphabet = require('./alphabet');\n\n// Ignore all milliseconds before a certain time to reduce the size of the date entropy without sacrificing uniqueness.\n// This number should be updated every year or so to keep the generated id short.\n// To regenerate `new Date() - 0` and bump the version. Always bump the version!\nvar REDUCE_TIME = 1567752802062;\n\n// don't change unless we change the algos or REDUCE_TIME\n// must be an integer and less than 16\nvar version = 7;\n\n// Counter is used when shortid is called multiple times in one second.\nvar counter;\n\n// Remember the last time shortid was called in case counter is needed.\nvar previousSeconds;\n\n/**\n * Generate unique id\n * Returns string id\n */\nfunction build(clusterWorkerId) {\n var str = '';\n\n var seconds = Math.floor((Date.now() - REDUCE_TIME) * 0.001);\n\n if (seconds === previousSeconds) {\n counter++;\n } else {\n counter = 0;\n previousSeconds = seconds;\n }\n\n str = str + generate(version);\n str = str + generate(clusterWorkerId);\n if (counter > 0) {\n str = str + generate(counter);\n }\n str = str + generate(seconds);\n return str;\n}\n\nmodule.exports = build;\n","'use strict';\nvar alphabet = require('./alphabet');\n\nfunction isShortId(id) {\n if (!id || typeof id !== 'string' || id.length < 6 ) {\n return false;\n }\n\n var nonAlphabetic = new RegExp('[^' +\n alphabet.get().replace(/[|\\\\{}()[\\]^$+*?.-]/g, '\\\\$&') +\n ']');\n return !nonAlphabetic.test(id);\n}\n\nmodule.exports = isShortId;\n","'use strict';\n\nvar alphabet = require('./alphabet');\nvar build = require('./build');\nvar isValid = require('./is-valid');\n\n// if you are using cluster or multiple servers use this to make each instance\n// has a unique value for worker\n// Note: I don't know if this is automatically set when using third\n// party cluster solutions such as pm2.\nvar clusterWorkerId = require('./util/cluster-worker-id') || 0;\n\n/**\n * Set the seed.\n * Highly recommended if you don't want people to try to figure out your id schema.\n * exposed as shortid.seed(int)\n * @param seed Integer value to seed the random alphabet. ALWAYS USE THE SAME SEED or you might get overlaps.\n */\nfunction seed(seedValue) {\n alphabet.seed(seedValue);\n return module.exports;\n}\n\n/**\n * Set the cluster worker or machine id\n * exposed as shortid.worker(int)\n * @param workerId worker must be positive integer. Number less than 16 is recommended.\n * returns shortid module so it can be chained.\n */\nfunction worker(workerId) {\n clusterWorkerId = workerId;\n return module.exports;\n}\n\n/**\n *\n * sets new characters to use in the alphabet\n * returns the shuffled alphabet\n */\nfunction characters(newCharacters) {\n if (newCharacters !== undefined) {\n alphabet.characters(newCharacters);\n }\n\n return alphabet.shuffled();\n}\n\n/**\n * Generate unique id\n * Returns string id\n */\nfunction generate() {\n return build(clusterWorkerId);\n}\n\n// Export all other functions as properties of the generate function\nmodule.exports = generate;\nmodule.exports.generate = generate;\nmodule.exports.seed = seed;\nmodule.exports.worker = worker;\nmodule.exports.characters = characters;\nmodule.exports.isValid = isValid;\n","'use strict';\nmodule.exports = require('./lib/index');\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FileLocation = exports.UriLocation = exports.UriLocationRaw = exports.LocalPathLocation = exports.Region = exports.NoAssemblyRegion = exports.PropTypes = exports.ElementId = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _shortid = _interopRequireDefault(require(\"shortid\"));\n\nvar _mobxStateTree = require(\"mobx-state-tree\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _mobxReact = require(\"mobx-react\");\n\nvar ElementId = _mobxStateTree.types.optional(_mobxStateTree.types.identifier, _shortid.default.generate); // PropTypes that are useful when working with instances of these in react components\n\n\nexports.ElementId = ElementId;\nvar PropTypes = {\n Region: _propTypes.default.shape({\n refName: _propTypes.default.string.isRequired,\n start: _propTypes.default.number.isRequired,\n end: _propTypes.default.number.isRequired\n }),\n ConfigSchema: _mobxReact.PropTypes.objectOrObservableObject,\n Feature: _propTypes.default.shape({\n get: _propTypes.default.func.isRequired,\n id: _propTypes.default.func.isRequired\n })\n};\nexports.PropTypes = PropTypes;\n\nvar NoAssemblyRegion = _mobxStateTree.types.model('NoAssemblyRegion', {\n refName: _mobxStateTree.types.string,\n start: _mobxStateTree.types.number,\n end: _mobxStateTree.types.number,\n reversed: _mobxStateTree.types.optional(_mobxStateTree.types.boolean, false)\n}).actions(function (self) {\n return {\n setRefName: function setRefName(newRefName) {\n self.refName = newRefName;\n }\n };\n});\n\nexports.NoAssemblyRegion = NoAssemblyRegion;\n\nvar Region = _mobxStateTree.types.compose('Region', NoAssemblyRegion, _mobxStateTree.types.model({\n assemblyName: _mobxStateTree.types.string\n}));\n\nexports.Region = Region;\n\nvar LocalPathLocation = _mobxStateTree.types.model('LocalPathLocation', {\n localPath: _mobxStateTree.types.string // TODO: refine\n\n});\n\nexports.LocalPathLocation = LocalPathLocation;\n\nvar UriLocationRaw = _mobxStateTree.types.model('UriLocation', {\n uri: _mobxStateTree.types.string,\n // TODO: refine\n baseUri: _mobxStateTree.types.maybe(_mobxStateTree.types.string)\n});\n\nexports.UriLocationRaw = UriLocationRaw;\n\nvar UriLocation = _mobxStateTree.types.snapshotProcessor(UriLocationRaw, {\n postProcessor: function postProcessor(snap) {\n var baseUri = snap.baseUri,\n rest = (0, _objectWithoutProperties2.default)(snap, [\"baseUri\"]);\n\n if (!baseUri) {\n return rest;\n }\n\n return snap;\n }\n});\n\nexports.UriLocation = UriLocation;\n\nvar FileLocation = _mobxStateTree.types.union(LocalPathLocation, UriLocation);\n\nexports.FileLocation = FileLocation;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _mobxStateTree = require(\"mobx-state-tree\");\n\nvar _mst = require(\"../../util/types/mst\");\n\nvar BaseViewModel = _mobxStateTree.types.model('BaseView', {\n id: _mst.ElementId,\n displayName: _mobxStateTree.types.maybe(_mobxStateTree.types.string)\n}).volatile(function () {\n return (\n /* self */\n {\n width: 800\n }\n );\n}).views(function () {\n return (\n /* self */\n {\n get menuItems() {\n return [];\n }\n\n }\n );\n}).actions(function (self) {\n return {\n setDisplayName: function setDisplayName(name) {\n self.displayName = name;\n },\n setWidth: function setWidth(newWidth) {\n self.width = newWidth;\n }\n };\n});\n\nvar _default = BaseViewModel; // eslint-disable-next-line @typescript-eslint/no-empty-interface,@typescript-eslint/interface-name-prefix\n\nexports.default = _default;","export function parseVersion(line) {\n const res = line.match(/\\(?(\\d+(\\.\\d+)+)\\)?/);\n return res && res.length > 1 ? res[1] : \"\";\n}\nexport function parseHeader(info) {\n const knownHeaders = [\"CLUSTAL\", \"PROBCONS\", \"MUSCLE\", \"MSAPROBS\", \"Kalign\"];\n\n if (!knownHeaders.find(l => info.startsWith(l))) {\n console.warn(`${info} is not a known CLUSTAL header: ${knownHeaders.join(\",\")}, proceeding but could indicate an issue`);\n }\n\n const version = parseVersion(info);\n return {\n info,\n version\n };\n}\nexport function getFirstNonEmptyLine(arr) {\n // There should be two blank lines after the header line\n let line = arr.next();\n\n while (!line.done && line.value.trim() === \"\") {\n line = arr.next();\n }\n\n return line.value;\n}\nexport function getSeqBounds(line) {\n const fields = line.split(/\\s+/);\n const temp = line.slice(fields[0].length);\n const s = fields[0].length + temp.indexOf(fields[1]);\n const e = s + fields[1].length;\n return [s, e];\n} // Use the first block to get the sequence identifiers\n\nexport function parseBlock(arr) {\n let line = getFirstNonEmptyLine(arr);\n const block = [];\n let consensusLine = \"\";\n if (!line) return undefined;\n\n while (line) {\n if (line[0] !== \" \") block.push(line);else consensusLine = line;\n line = arr.next().value;\n }\n\n const [start, end] = getSeqBounds(block[0]);\n const fields = block.map(s => s.split(/\\s+/));\n const ids = fields.map(s => s[0]);\n const seqs = block.map(s => s.slice(start, end));\n let consensus = consensusLine.slice(start, end); // handle if the consensus trailing whitespace got trimmed\n\n const remainder = seqs[0].length - consensus.length;\n\n if (remainder) {\n consensus += \" \".repeat(remainder);\n }\n\n return {\n ids,\n seqs,\n consensus\n };\n}\nexport function parseBlocks(arr) {\n let block;\n const res = parseBlock(arr);\n\n if (res !== undefined) {\n while (block = parseBlock(arr)) {\n for (let i = 0; i < block.seqs.length; i++) {\n res.seqs[i] += block.seqs[i];\n }\n\n res.consensus += block.consensus;\n }\n }\n\n return res;\n}","import { parseBlocks, parseHeader, getFirstNonEmptyLine } from \"./util\";\nexport function parseIter(arr) {\n const line = getFirstNonEmptyLine(arr);\n if (!line) throw new Error(\"Empty file received\");\n const header = parseHeader(line);\n const res = parseBlocks(arr);\n if (res === undefined) throw new Error(\"No blocks parsed\");\n const alns = res.seqs.map((n, index) => ({\n id: res.ids[index],\n seq: n\n }));\n const {\n consensus\n } = res;\n\n if (consensus.length != alns[0].seq.length) {\n throw new Error(`Consensus length != sequence length. Con ${consensus.length} seq ${alns[0].seq.length}`);\n }\n\n return {\n consensus,\n alns,\n header\n };\n}\nexport function parse(contents) {\n const iter = contents.split(\"\\n\")[Symbol.iterator]();\n return parseIter(iter);\n}","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","const Stockholm = function() {\n let obj = { gf: {}, // gf[tag] = ARRAY\n gc: {}, // gc[tag] = STRING\n gs: {}, // gs[tag][seqname] = ARRAY\n gr: {}, // gr[tag][seqname] = STRING\n seqname: [], // optional, specify ordering of rows\n seqdata: {} // seqdata[seqname] = STRING\n }\n Object.keys(obj).forEach ((prop) => this[prop] = obj[prop])\n return this\n}\n\nconst formatStartRegex = /^# STOCKHOLM 1.0/;\nconst formatEndRegex = /^\\/\\/\\s*$/;\nconst gfRegex = /^#=GF\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst gcRegex = /^#=GC\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst gsRegex = /^#=GS\\s+(\\S+)\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst grRegex = /^#=GR\\s+(\\S+)\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst lineRegex = /^\\s*(\\S+)\\s+(\\S+)\\s*$/;\nconst nonwhiteRegex = /\\S/;\n\nconst noFormatStart = \"No format header: # STOCKHOLM 1.0\";\nconst noFormatEnd = \"No format footer: //\";\nconst badLine = \"Malformed line\";\nconst atLine = (n) => \"(At line \" + (n+1) + \") \";\n\nconst sniff = (text) => formatStartRegex.test (text);\n\nconst validate = (text) => {\n try {\n parseAll (text, { strict: true })\n } catch (e) {\n return false\n }\n return true\n}\n\nconst error = (err) => { throw new Error (err); }\nconst warning = (err) => console.warn(err);\n\nconst parseAll = (text, opts) => {\n opts = opts || {}\n const maybeWarning = opts.quiet ? (() => null) : warning;\n const maybeError = opts.strict ? error : maybeWarning;\n let db = [], stock = null\n const lines = text.split(\"\\n\")\n lines.forEach ((line, n) => {\n const makeStock = () => {\n if (!stock) {\n maybeError (atLine(n) + noFormatStart);\n stock = new Stockholm();\n }\n };\n let match;\n if (formatStartRegex.test(line)) {\n if (stock) maybeError (atLine(n) + noFormatEnd);\n stock = new Stockholm();\n } else if (formatEndRegex.test(line)) {\n if (stock)\n db.push (stock);\n else\n maybeError (atLine(n) + noFormatStart);\n stock = null;\n } else if (match = gfRegex.exec(line)) {\n makeStock();\n stock.gf[match[1]] = stock.gf[match[1]] || [];\n stock.gf[match[1]].push (match[2]);\n } else if (match = gcRegex.exec(line)) {\n makeStock();\n stock.gc[match[1]] = stock.gc[match[1]] || '';\n stock.gc[match[1]] += match[2];\n } else if (match = gsRegex.exec(line)) {\n makeStock();\n stock.gs[match[2]] = stock.gs[match[2]] || {};\n stock.gs[match[2]][match[1]] = stock.gs[match[2]][match[1]] || [];\n stock.gs[match[2]][match[1]].push (match[3]);\n } else if (match = grRegex.exec(line)) {\n makeStock();\n stock.gr[match[2]] = stock.gr[match[2]] || {};\n stock.gr[match[2]][match[1]] = stock.gr[match[2]][match[1]] || '';\n stock.gr[match[2]][match[1]] += match[3];\n } else if (match = lineRegex.exec(line)) {\n makeStock();\n if (!stock.seqdata[match[1]]) {\n stock.seqdata[match[1]] = '';\n stock.seqname.push (match[1]);\n }\n stock.seqdata[match[1]] += match[2];\n } else if (nonwhiteRegex.test (line)) {\n error (atLine(n) + badLine);\n }\n })\n if (stock) {\n maybeError (\"Warning: no end line //\");\n db.push (stock);\n }\n return db;\n}\n\nconst parse = (text, opts) => {\n const db = parseAll (text, opts);\n if (db.length === 0)\n error (\"No alignments found\");\n if (db.length > 1)\n error (\"More than one alignment found\");\n return db[0];\n}\n\nconst fromSeqIndex = (seqdata, names) => {\n let stock = new Stockholm()\n names = names || Object.keys(seqdata) // specifying order is optional\n names.forEach ((name) => stock.addRow (name, seqdata[name]))\n return stock\n}\n\nconst fromRowList = (array) => {\n let stock = new Stockholm()\n array.forEach ((row) => stock.addRow (row[0], row[1]))\n return stock\n}\n\nStockholm.prototype.rows = function() {\n return this.seqname.length\n}\n\nStockholm.prototype.columns = function() {\n let cols = 0\n this.seqname.forEach ((name) => { cols = Math.max (cols, this.seqdata[name].length) })\n Object.keys(this.gr).forEach ((tag) => Object.keys(this.gr[tag]).forEach ((name) => {\n cols = Math.max (cols, this.gr[tag][name].length)\n }))\n return cols\n}\n\nStockholm.prototype.allNames = function() {\n let isName = {},\n names = [],\n addName = (name) => { if (!isName[name]) { isName[name] = true; names.push (name) } },\n addNames = (list) => list.forEach (addName);\n addNames (this.seqname);\n addNames (Object.keys (this.seqdata)); // just in case seqdata has been independently modified\n Object.keys(this.gr).forEach ((tag) => addNames (Object.keys(this.gr[tag])));\n Object.keys(this.gs).forEach ((tag) => addNames (Object.keys(this.gs[tag])));\n return names\n}\n\nStockholm.prototype.allTags = function() {\n let isTag = {}\n const addTags = (obj) => Object.keys(obj).forEach ((tag) => isTag[tag] = true)\n addTags (this.gc)\n addTags (this.gf)\n addTags (this.gr)\n addTags (this.gs)\n return Object.keys(isTag).sort()\n}\n\nStockholm.prototype.addRow = function (name, data) {\n if (this.seqdata[name])\n error (\"Duplicate row name\")\n this.seqname.push (name)\n this.seqdata[name] = data || ''\n return this\n}\n\nStockholm.prototype.deleteRow = function (name) {\n if (!this.seqdata[name])\n error (\"Row not found\")\n this.seqname = this.seqname.filter ((n) => n !== name);\n delete this.seqdata[name];\n return this\n}\n\nfunction leftPad (text, width) {\n while (text.length < width)\n text = ' ' + text\n return text\n}\n\nfunction rightPad (text, width) {\n while (text.length < width)\n text = text + ' '\n return text\n}\n\nfunction space (width) {\n return leftPad (\"\", width)\n}\n\nStockholm.prototype.toString = function (opts) {\n opts = opts || { width: 80, indentNames: false }\n const names = this.allNames(), cols = this.columns()\n const nameWidth = Math.max.apply (null, names.map ((name) => name.length).concat([0]))\n const tagWidth = Math.max.apply (null, this.allTags().map ((tag) => tag.length).concat([0]))\n const seqIndent = tagWidth ? (tagWidth + 6) : 0;\n const width = opts.width ? Math.max (1, opts.width - nameWidth - seqIndent - 1) : cols\n const pad = opts.indentNames ? leftPad : rightPad\n const padTagName = (opts.indentNames\n ? ((tag, name) => leftPad(tag,tagWidth) + \" \" + leftPad(name,nameWidth))\n : ((tag, name) => rightPad(tag+\" \"+name,tagWidth+nameWidth+1)))\n let offsets = [0]\n for (let offset = width; offset < cols; offset += width)\n offsets.push (offset)\n return \"# STOCKHOLM 1.0\\n\"\n + Object.keys(this.gf).sort().map (tag => this.gf[tag].map((line) => \"#=GF \" + pad(tag,tagWidth) + \" \" + line + \"\\n\").join('')).join('')\n + Object.keys(this.gs).sort().map (tag => Object.keys(this.gs[tag]).map((name) => this.gs[tag][name].map ((line) => \"#=GS \" + padTagName(tag,name) + \" \" + line + \"\\n\").join('')).join('')).join('')\n + offsets.map ((offset) =>\n Object.keys(this.gc).sort().map (tag => \"#=GC \" + pad(tag,tagWidth) + space(nameWidth+2) + this.gc[tag].substr(offset,width) + \"\\n\").join('')\n + names.map ((name) => Object.keys(this.gr).filter ((tag) => this.gr[tag][name]).sort().map ((tag) => \"#=GR \" + padTagName(tag,name) + \" \" + this.gr[tag][name].substr(offset,width) + \"\\n\").join('')\n + (this.seqdata[name]\n ? (pad(name,nameWidth+seqIndent)\n + \" \" + this.seqdata[name].substr(offset,width) + \"\\n\")\n : '')).join('')).join(\"\\n\")\n + \"//\\n\"\n}\n\nStockholm.prototype.toFasta = function (opts) {\n opts = opts || { width: 80 }\n const cols = this.columns()\n const width = opts.width || cols\n let offsets = [0]\n for (let offset = width; offset < cols; offset += width)\n offsets.push (offset)\n return this.allNames()\n .map ((name) =>\n (this.seqdata[name]\n ? (\">\" + name + \"\\n\"\n + offsets.map ((offset) => this.seqdata[name].substr (offset, width) + \"\\n\").join(''))\n : ''))\n .join('')\n}\n\nStockholm.prototype.toRowList = function (opts) {\n return this.allNames()\n .filter ((name) => this.seqdata[name])\n .map ((name) => [name, this.seqdata[name]])\n}\n\nif (typeof(module) !== 'undefined')\n module.exports = { sniff, validate, parse, parseAll, fromSeqIndex, fromRowList, Stockholm }\n","module.exports = require('./src/Stockholm')\n","// typescript error https://github.com/typescript-eslint/typescript-eslint/issues/2446 if this version is used, maybe due to outdated tsdx dependencies\n// export function transform<T>(\n// obj: Record<string, T>,\n// cb: (arg0: [string, T]) => [string, T],\n// ) {\n// return Object.fromEntries(Object.entries(obj).map(cb));\n// }\n\nexport function transform(obj, cb) {\n return Object.fromEntries(Object.entries(obj).map(cb));\n}\n","import Color from \"color\";\nimport { transform } from \"./util\";\n\nconst colorSchemes = {\n clustal: {\n G: \"orange\",\n P: \"orange\",\n S: \"orange\",\n T: \"orange\",\n H: \"red\",\n K: \"red\",\n R: \"red\",\n F: \"blue\",\n W: \"blue\",\n Y: \"blue\",\n I: \"green\",\n L: \"green\",\n M: \"green\",\n V: \"green\",\n },\n lesk: {\n G: \"orange\",\n A: \"orange\",\n S: \"orange\",\n T: \"orange\",\n C: \"green\",\n V: \"green\",\n I: \"green\",\n L: \"green\",\n P: \"green\",\n F: \"green\",\n Y: \"green\",\n M: \"green\",\n W: \"green\",\n N: \"magenta\",\n Q: \"magenta\",\n H: \"magenta\",\n D: \"red\",\n E: \"red\",\n K: \"blue\",\n R: \"blue\",\n },\n maeditor: {\n A: \"lightgreen\",\n G: \"lightgreen\",\n C: \"green\",\n D: \"darkgreen\",\n E: \"darkgreen\",\n N: \"darkgreen\",\n Q: \"darkgreen\",\n I: \"blue\",\n L: \"blue\",\n M: \"blue\",\n V: \"blue\",\n F: \"#c8a2c8\",\n W: \"#c8a2c8\",\n Y: \"#c8a2c8\",\n H: \"darkblue\",\n K: \"orange\",\n R: \"orange\",\n P: \"pink\",\n S: \"red\",\n T: \"red\",\n },\n\n //https://github.com/biotite-dev/biotite/blob/8c460972f8ab904312f130dfb80f3efc8c9bd7c5/src/biotite/sequence/graphics/color_schemes/flower.json\n flower: {\n A: \"#b18a51\",\n C: \"#ff5701\",\n D: \"#01a578\",\n E: \"#2da0a1\",\n F: \"#fa559d\",\n G: \"#b1c23c\",\n H: \"#0194f9\",\n I: \"#f27663\",\n K: \"#7fc3d7\",\n L: \"#df6e75\",\n M: \"#fe9daf\",\n N: \"#0bcec6\",\n P: \"#4fa32a\",\n Q: \"#7295ae\",\n R: \"#83bff1\",\n S: \"#b4bd9b\",\n T: \"#d2b576\",\n V: \"#fd997b\",\n W: \"#ff2ded\",\n Y: \"#c96ecf\",\n },\n rainbow_dna: {\n A: \"#3737f5\",\n C: \"#37f537\",\n G: \"#f5f537\",\n T: \"#f53737\",\n U: \"#f53737\",\n },\n\n //https://github.com/biotite-dev/biotite/blob/8c460972f8ab904312f130dfb80f3efc8c9bd7c5/src/biotite/sequence/graphics/color_schemes/clustalx_protein.json\n clustalx_protein: {\n A: \"#197fe5\",\n C: \"#e57f7f\",\n D: \"#cc4ccc\",\n E: \"#cc4ccc\",\n F: \"#197fe5\",\n G: \"#e5994c\",\n H: \"#19b2b2\",\n I: \"#197fe5\",\n K: \"#e53319\",\n L: \"#197fe5\",\n M: \"#197fe5\",\n N: \"#19cc19\",\n P: \"#cccc00\",\n Q: \"#19cc19\",\n R: \"#e53319\",\n S: \"#19cc19\",\n T: \"#19cc19\",\n V: \"#197fe5\",\n W: \"#197fe5\",\n Y: \"#19b2b2\",\n },\n\n clustalx_dna: {\n A: \"#e53319\",\n C: \"#197fe5\",\n G: \"#e5994c\",\n T: \"#19cc19\",\n U: \"#19cc19\",\n },\n jalview_buried: {\n A: \"#00a35c\",\n R: \"#00fc03\",\n N: \"#00eb14\",\n D: \"#00eb14\",\n C: \"#0000ff\",\n Q: \"#00f10e\",\n E: \"#00f10e\",\n G: \"#009d62\",\n H: \"#00d52a\",\n I: \"#0054ab\",\n L: \"#007b84\",\n K: \"#00ff00\",\n M: \"#009768\",\n F: \"#008778\",\n P: \"#00e01f\",\n S: \"#00d52a\",\n T: \"#00db24\",\n W: \"#00a857\",\n Y: \"#00e619\",\n V: \"#005fa0\",\n B: \"#00eb14\",\n X: \"#00b649\",\n Z: \"#00f10e\",\n },\n\n jalview_hydrophobicity: {\n A: \"#ad0052\",\n R: \"#0000ff\",\n N: \"#0c00f3\",\n D: \"#0c00f3\",\n C: \"#c2003d\",\n Q: \"#0c00f3\",\n E: \"#0c00f3\",\n G: \"#6a0095\",\n H: \"#1500ea\",\n I: \"#ff0000\",\n L: \"#ea0015\",\n K: \"#0000ff\",\n M: \"#b0004f\",\n F: \"#cb0034\",\n P: \"#4600b9\",\n S: \"#5e00a1\",\n T: \"#61009e\",\n W: \"#5b00a4\",\n Y: \"#4f00b0\",\n V: \"#f60009\",\n B: \"#0c00f3\",\n X: \"#680097\",\n Z: \"#0c00f3\",\n },\n\n jalview_prophelix: {\n A: \"#e718e7\",\n R: \"#6f906f\",\n N: \"#1be41b\",\n D: \"#778877\",\n C: \"#23dc23\",\n Q: \"#926d92\",\n E: \"#ff00ff\",\n G: \"#00ff00\",\n H: \"#758a75\",\n I: \"#8a758a\",\n L: \"#ae51ae\",\n K: \"#a05fa0\",\n M: \"#ef10ef\",\n F: \"#986798\",\n P: \"#00ff00\",\n S: \"#36c936\",\n T: \"#47b847\",\n W: \"#8a758a\",\n Y: \"#21de21\",\n V: \"#857a85\",\n B: \"#49b649\",\n X: \"#758a75\",\n Z: \"#c936c9\",\n },\n\n jalview_propstrand: {\n A: \"#5858a7\",\n R: \"#6b6b94\",\n N: \"#64649b\",\n D: \"#2121de\",\n C: \"#9d9d62\",\n Q: \"#8c8c73\",\n E: \"#0000ff\",\n G: \"#4949b6\",\n H: \"#60609f\",\n I: \"#ecec13\",\n L: \"#b2b24d\",\n K: \"#4747b8\",\n M: \"#82827d\",\n F: \"#c2c23d\",\n P: \"#2323dc\",\n S: \"#4949b6\",\n T: \"#9d9d62\",\n W: \"#c0c03f\",\n Y: \"#d3d32c\",\n V: \"#ffff00\",\n B: \"#4343bc\",\n X: \"#797986\",\n Z: \"#4747b8\",\n },\n\n jalview_propturn: {\n A: \"#2cd3d3\",\n R: \"#708f8f\",\n N: \"#ff0000\",\n D: \"#e81717\",\n C: \"#a85757\",\n Q: \"#3fc0c0\",\n E: \"#778888\",\n G: \"#ff0000\",\n H: \"#708f8f\",\n I: \"#00ffff\",\n L: \"#1ce3e3\",\n K: \"#7e8181\",\n M: \"#1ee1e1\",\n F: \"#1ee1e1\",\n P: \"#f60909\",\n S: \"#e11e1e\",\n T: \"#738c8c\",\n W: \"#738c8c\",\n Y: \"#9d6262\",\n V: \"#07f8f8\",\n B: \"#f30c0c\",\n X: \"#7c8383\",\n Z: \"#5ba4a4\",\n },\n\n jalview_taylor: {\n A: \"#ccff00\",\n R: \"#0000ff\",\n N: \"#cc00ff\",\n D: \"#ff0000\",\n C: \"#ffff00\",\n Q: \"#ff00cc\",\n E: \"#ff0066\",\n G: \"#ff9900\",\n H: \"#0066ff\",\n I: \"#66ff00\",\n L: \"#33ff00\",\n K: \"#6600ff\",\n M: \"#00ff00\",\n F: \"#00ff66\",\n P: \"#ffcc00\",\n S: \"#ff3300\",\n T: \"#ff6600\",\n W: \"#00ccff\",\n Y: \"#00ffcc\",\n V: \"#99ff00\",\n },\n\n jalview_zappo: {\n A: \"#ffafaf\",\n R: \"#6464ff\",\n N: \"#00ff00\",\n D: \"#ff0000\",\n C: \"#ffff00\",\n Q: \"#00ff00\",\n E: \"#ff0000\",\n G: \"#ff00ff\",\n H: \"#6464ff\",\n I: \"#ffafaf\",\n L: \"#ffafaf\",\n K: \"#6464ff\",\n M: \"#ffafaf\",\n F: \"#ffc800\",\n P: \"#ff00ff\",\n S: \"#00ff00\",\n T: \"#00ff00\",\n W: \"#ffc800\",\n Y: \"#ffc800\",\n V: \"#ffafaf\",\n },\n\n cinema: {\n H: \"blue\",\n K: \"blue\",\n R: \"blue\",\n D: \"red\",\n E: \"red\",\n S: \"green\",\n T: \"green\",\n N: \"green\",\n Q: \"green\",\n A: \"white\",\n V: \"white\",\n L: \"white\",\n I: \"white\",\n M: \"white\",\n F: \"magenta\",\n W: \"magenta\",\n Y: \"magenta\",\n P: \"brown\",\n G: \"brown\",\n C: \"yellow\",\n B: \"gray\",\n Z: \"gray\",\n X: \"gray\",\n \"-\": \"gray\",\n \".\": \"gray\",\n },\n};\n\n// turn all supplied colors to hex colors which getContrastText from mui\n// requires\nexport default transform(colorSchemes, ([key, val]) => [\n key,\n transform(val, ([letter, color]) => [letter, Color(color).hex()]),\n]);\n","import { MsaViewModel } from '../model';\nimport colorSchemes from '../colorSchemes';\n\nimport React, { useState } from 'react';\nimport { observer } from 'mobx-react';\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogTitle,\n DialogContent,\n FormControlLabel,\n MenuItem,\n TextField,\n} from '@material-ui/core';\n\nexport default observer(\n ({\n model,\n onClose,\n open,\n }: {\n model: MsaViewModel;\n onClose: Function;\n open: boolean;\n }) => {\n const {\n rowHeight: rowHeightInit,\n colWidth: colWidthInit,\n nameWidth: nameWidthInit,\n treeWidth: treeWidthInit,\n colorSchemeName,\n noTree,\n } = model;\n const [rowHeight, setRowHeight] = useState('' + rowHeightInit);\n const [colWidth, setColWidth] = useState('' + colWidthInit);\n const [nameWidth, setNameWidth] = useState('' + nameWidthInit);\n const [treeWidth, setTreeWidth] = useState('' + treeWidthInit);\n\n function error(n: string) {\n return Number.isNaN(+n) || +n < 0;\n }\n const rowHeightError = error(rowHeight);\n const colWidthError = error(colWidth);\n const nameWidthError = error(nameWidth);\n const treeWidthError = error(treeWidth);\n\n return (\n <Dialog onClose={() => onClose()} open={open}>\n <DialogTitle>Settings</DialogTitle>\n <DialogContent>\n <FormControlLabel\n control={\n <Checkbox\n checked={model.showBranchLen}\n onChange={() => model.toggleBranchLen()}\n />\n }\n label=\"Show branch length\"\n />\n <FormControlLabel\n control={\n <Checkbox\n checked={model.bgColor}\n onChange={() => model.toggleBgColor()}\n />\n }\n label=\"Color background\"\n />\n <FormControlLabel\n control={\n <Checkbox\n checked={model.drawNodeBubbles}\n onChange={() => model.toggleNodeBubbles()}\n />\n }\n label=\"Draw node bubbles\"\n />\n <br />\n <TextField\n label=\"Row height (px)\"\n value={rowHeight}\n error={rowHeightError}\n onChange={event => setRowHeight(event.target.value)}\n />\n <TextField\n label=\"Column width (px)\"\n value={colWidth}\n error={colWidthError}\n onChange={event => setColWidth(event.target.value)}\n />\n <br />\n {!noTree ? (\n <TextField\n label=\"Tree width (px)\"\n value={treeWidth}\n error={treeWidthError}\n onChange={event => setTreeWidth(event.target.value)}\n />\n ) : null}\n <TextField\n label=\"Name width (px)\"\n value={nameWidth}\n error={nameWidthError}\n onChange={event => setNameWidth(event.target.value)}\n />\n <br />\n\n <TextField\n select\n label=\"Color scheme\"\n value={colorSchemeName}\n onChange={event => model.setColorSchemeName(event.target.value)}\n >\n {Object.keys(colorSchemes).map(option => (\n <MenuItem key={option} value={option}>\n {option}\n </MenuItem>\n ))}\n </TextField>\n <br />\n <br />\n <br />\n <Button\n disabled={\n rowHeightError ||\n colWidthError ||\n nameWidthError ||\n treeWidthError\n }\n onClick={() => {\n model.setRowHeight(+rowHeight);\n model.setColWidth(+colWidth);\n model.setNameWidth(+nameWidth);\n if (!noTree) {\n model.setTreeWidth(+treeWidth);\n }\n onClose();\n }}\n variant=\"contained\"\n color=\"primary\"\n >\n Submit\n </Button>\n </DialogContent>\n </Dialog>\n );\n }\n);\n","import React, { useState } from 'react';\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n Typography,\n Link,\n} from '@material-ui/core';\n\nfunction LicenseDialog({\n onClose,\n open,\n}: {\n onClose: Function;\n open: boolean;\n}) {\n return (\n <Dialog onClose={() => onClose()} open={open}>\n <DialogTitle>Settings</DialogTitle>\n <DialogContent>\n <pre style={{ height: 100, overflow: 'auto' }}>\n {`\nCopyright 2017 - 2020, The Biotite contributors\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation and/or\nother materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its contributors\nmay be used to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\nANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n `}\n </pre>\n </DialogContent>\n </Dialog>\n );\n}\nexport default function AboutDialog({\n onClose,\n open,\n}: {\n onClose: Function;\n open: boolean;\n}) {\n const [dlgOpen, setDlgOpen] = useState(false);\n return (\n <>\n <LicenseDialog onClose={() => setDlgOpen(false)} open={dlgOpen} />\n <Dialog onClose={() => onClose()} open={open}>\n <DialogTitle>About this plugin</DialogTitle>\n <DialogContent>\n <Typography>\n JBrowse 2 MSAView plugin v1.0.0 (\n <Link href=\"https://github.com/gmod/jbrowse-plugin-msaview\">\n Github\n </Link>\n )\n </Typography>\n\n <ul>\n <li>\n We use some color schemes from the{' '}\n <Link href=\"https://github.com/biotite-dev/biotite\">biotite</Link>{' '}\n project, and their license is reproduced{' '}\n <Link onClick={() => setDlgOpen(true)}>here</Link>\n </li>\n <li>\n See this page for some information on jalview colorings{' '}\n <Link href=\"https://www.jalview.org/help/html/colourSchemes/\">\n here\n </Link>\n </li>\n <li>\n See this page for some info on the clustal, cinema, maeditor, and\n lesk color schemes{' '}\n <Link href=\"http://www.bioinformatics.nl/~berndb/aacolour.html\">\n here\n </Link>\n </li>\n <li>\n See this paper about the flower color scheme{' '}\n <Link href=\"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7245768/\">\n here\n </Link>\n </li>\n </ul>\n </DialogContent>\n </Dialog>\n </>\n );\n}\n","import { MsaViewModel } from '../model';\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\nimport { Dialog, DialogTitle, DialogContent } from '@material-ui/core';\nimport { Attributes } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail';\n\nexport default observer(\n ({\n model,\n onClose,\n open,\n }: {\n model: MsaViewModel;\n onClose: Function;\n open: boolean;\n }) => {\n const { alignmentDetails } = model;\n\n return (\n <Dialog onClose={() => onClose()} open={open}>\n <DialogTitle>Metadata</DialogTitle>\n <DialogContent>\n <Attributes attributes={alignmentDetails} />\n </DialogContent>\n </Dialog>\n );\n }\n);\n","export const smallMSA = `CLUSTAL O(1.2.3) multiple sequence alignment\nUniProt/Swiss-Prot|P26898|IL2RA_SHEEP MEPSLLMWRFFVFIVVPGCVTEACHDDPPSLRNA----------MFKVLRYE----VGTM\nUniProt/Swiss-Prot|P01590|IL2RA_MOUSE MEPRLLMLGFLSLTIVPSCRAELCLYDPPEVPNA----------TFKALSYK----NGTI\nUniProt/Swiss-Prot|P41690|IL2RA_FELCA MEPSLLLWGILTFVVVHGHVTELCDENPPDIQHA----------TFKALTYK----TGTM\nUniProt/Swiss-Prot|P01589|IL2RA_HUMAN MDSYLLMWGLLTFIMVPGCQAELCDDDPPEIPHA----------TFKAMAYK----EGTM\nUniProt/Swiss-Prot|Q5MNY4|IL2RA_MACMU MDPYLLMWGLLTFITVPGCQAELCDDDPPKITHA----------TFKAVAYK----EGTM\nUniProt/Swiss-Prot|Q95118|IL2RG_BOVIN -----------------------------------LLMWGLLT-----------------\nUniProt/Swiss-Prot|P40321|IL2RG_CANFA MLKPPLPLRSLLFLQLSLLGVGLNSTVPMPNGNEDIT------PDFFLTATPSETLSVSS\nUniProt/Swiss-Prot|P26896|IL2RB_RAT MATVDLSWRLPLYILLLLLATT--------------------------------WVSAAV\nUniProt/Swiss-Prot|Q8BZM1|GLMN_MOUSE PLPLRSLLFLQLPLLGVGLNP------------------PLPLRSLLFLQLPLLGVGLNP\nUniProt/Swiss-Prot|P36835|IL2_CAPHI -----------LLGVGLNPKFLTP------------------------------------\nUniProt/Swiss-Prot|Q7JFM4|IL2_AOTVO MLKPPLPLRSLLFLQLPLLGVGLNPKFLTPSGNEDIGGKPGTGGDFFLTSTPAGTLDVST\nUniProt/Swiss-Prot|Q29416|IL2_CANFA --------------LFLQLSLLG-------------------------------------\n`;\n\nexport const smallTree =\n \"(((UniProt/Swiss-Prot|P26898|IL2RA_SHEEP:0.24036,(UniProt/Swiss-Prot|P41690|IL2RA_FELCA:0.17737,(UniProt/Swiss-Prot|P01589|IL2RA_HUMAN:0.03906,UniProt/Swiss-Prot|Q5MNY4|IL2RA_MACMU:0.03787):0.13033):0.04964):0.02189,UniProt/Swiss-Prot|P01590|IL2RA_MOUSE:0.23072):0.06814,(((UniProt/Swiss-Prot|Q95118|IL2RG_BOVIN:0.09600,UniProt/Swiss-Prot|P40321|IL2RG_CANFA:0.09845):0.25333,UniProt/Swiss-Prot|Q29416|IL2_CANFA:-0.35055):0.10231,(UniProt/Swiss-Prot|P26896|IL2RB_RAT:0.33631,UniProt/Swiss-Prot|Q7JFM4|IL2_AOTVO:-0.33631):0.10166):0.01607,(UniProt/Swiss-Prot|Q8BZM1|GLMN_MOUSE:0.32378,UniProt/Swiss-Prot|P36835|IL2_CAPHI:-0.32378):0.09999)\";\n","import { smallTree, smallMSA } from './data/seq2';\n\nimport { observer } from 'mobx-react';\nimport { transaction } from 'mobx';\nimport React, { useState } from 'react';\n// import { makeStyles } from '@material-ui/core/styles';\nimport { Button, Container, Grid, Typography, Link } from '@material-ui/core';\nimport { FileSelector } from '@jbrowse/core/ui';\n\n// const useStyles = makeStyles((theme: any) => ({\n// importFormContainer: {\n// padding: theme.spacing(2),\n// },\n// importFormEntry: {\n// minWidth: 180,\n// },\n// }));\n\nexport default observer(({ model }: { model: any }) => {\n const classes = {} as any;\n // const classes = useStyles();\n const [msaFile, setMsaFile] = useState();\n const [treeFile, setTreeFile] = useState();\n\n return (\n <Container className={classes.importFormContainer}>\n <div style={{ width: '50%' }}>\n <Typography>\n Open an MSA file (stockholm or clustal format) and/or a tree file\n (newick format).\n </Typography>\n <Typography color=\"error\">\n Note: you can open up just an MSA or just a tree, both are not\n required. Some MSA files e.g. stockholm format have an embedded tree\n also and this is fine, and opening a separate tree file is not\n required.\n </Typography>\n </div>\n\n <Grid container spacing={10} justify=\"center\" alignItems=\"center\">\n <Grid item>\n <Typography>MSA file or URL</Typography>\n <FileSelector\n location={msaFile}\n //@ts-ignore\n setLocation={setMsaFile}\n localFileAllowed\n />\n <Typography>Tree file or URL</Typography>\n <FileSelector\n location={treeFile}\n //@ts-ignore\n setLocation={setTreeFile}\n localFileAllowed\n />\n </Grid>\n\n <Grid item>\n <Button\n onClick={() => {\n if (msaFile) {\n model.setMSAFilehandle(msaFile);\n }\n if (treeFile) {\n model.setTreeFilehandle(treeFile);\n }\n }}\n variant=\"contained\"\n color=\"primary\"\n disabled={!msaFile && !treeFile}\n >\n Open\n </Button>\n </Grid>\n\n <Grid item>\n <Typography>Examples</Typography>\n <ul>\n <li>\n <Link\n href=\"#\"\n onClick={() => {\n model.setTreeFilehandle({\n uri:\n 'https://jbrowse.org/genomes/newick_trees/sarscov2phylo.pub.ft.nh',\n });\n }}\n >\n 230k COVID-19 samples (tree only)\n </Link>\n </li>\n <li>\n <Link\n href=\"#\"\n onClick={() => {\n model.setData({ msa: smallMSA, tree: smallTree });\n }}\n >\n Small protein+tree\n </Link>\n </li>\n <li>\n <Link\n href=\"#\"\n onClick={() => {\n model.setMSAFilehandle({\n uri: 'https://ihh.github.io/abrowse/build/pfam-cov2.stock',\n });\n }}\n >\n PFAM SARS-CoV2 multi-stockholm\n </Link>\n </li>\n <li>\n <Link\n href=\"#\"\n onClick={() => {\n model.setMSAFilehandle({\n uri:\n 'https://jbrowse.org/genomes/multiple_sequence_alignments/Lysine.stock',\n });\n }}\n >\n Lysine stockholm file\n </Link>\n </li>\n <li>\n <Link\n href=\"#\"\n onClick={() => {\n model.setMSAFilehandle({\n uri:\n 'https://jbrowse.org/genomes/multiple_sequence_alignments/PF01601_full.txt',\n });\n }}\n >\n PF01601 stockholm file (SARS-CoV2 spike protein)\n </Link>\n </li>\n <li>\n <Link\n href=\"#\"\n onClick={() => {\n model.setMSAFilehandle({\n uri:\n 'https://jbrowse.org/genomes/multiple_sequence_alignments/europe_covid.fa',\n });\n }}\n >\n Europe COVID full genomes (LR883044.1 and 199 other sequences)\n </Link>\n </li>\n <li>\n <Link\n href=\"#\"\n onClick={() => {\n transaction(() => {\n model.setMSAFilehandle({\n uri:\n 'https://jbrowse.org/genomes/multiple_sequence_alignments/rhv_test-only.aligned_with_mafft_auto.fa',\n });\n model.setTreeFilehandle({\n uri:\n 'https://jbrowse.org/genomes/multiple_sequence_alignments/rhv_test-only.aligned_with_mafft_auto.nh',\n });\n });\n }}\n >\n MAFFT+VeryFastTree(17.9k samples)\n </Link>\n </li>\n </ul>\n </Grid>\n </Grid>\n </Container>\n );\n});\n","import { MsaViewModel } from '../model';\nimport normalizeWheel from 'normalize-wheel';\n\nimport { observer } from 'mobx-react';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Menu, MenuItem } from '@material-ui/core';\nconst extendBounds = 5;\nconst radius = 3.5;\nconst d = radius * 2;\n\nfunction randomColor() {\n return [\n Math.floor(Math.random() * 255),\n Math.floor(Math.random() * 255),\n Math.floor(Math.random() * 255),\n ];\n}\n\ntype StrMap = { [key: string]: { id: string; name: string } };\ninterface TooltipData {\n name: string;\n id: string;\n x: number;\n y: number;\n}\nconst TreeBlock = observer(\n ({ model, offsetY }: { model: MsaViewModel; offsetY: number }) => {\n const ref = useRef<HTMLCanvasElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const clickRef = useRef<HTMLCanvasElement>(null);\n const [colorMap, setColorMap] = useState<StrMap>({});\n const [hovering, setHovering] = useState<TooltipData>();\n const {\n hierarchy,\n rowHeight,\n scrollY,\n treeWidth: width,\n showBranchLen,\n collapsed,\n margin,\n noTree,\n blockSize,\n drawNodeBubbles,\n } = model;\n\n useEffect(() => {\n if (!ref.current || !clickRef.current) {\n return;\n }\n const ctx = ref.current.getContext('2d');\n const clickCtx = clickRef.current.getContext('2d');\n if (!ctx || !clickCtx) {\n return;\n }\n const colorHash: StrMap = {};\n [ctx, clickCtx].forEach(context => {\n context.resetTransform();\n context.clearRect(0, 0, width, blockSize);\n context.translate(margin.left, -offsetY);\n });\n\n const font = ctx.font;\n ctx.font = font.replace(/\\d+px/, `${Math.max(8, rowHeight - 8)}px`);\n\n if (!noTree) {\n hierarchy.links().forEach(({ source, target }: any) => {\n const y = showBranchLen ? 'len' : 'y';\n const { x: sy, [y]: sx } = source;\n const { x: ty, [y]: tx } = target;\n\n const y1 = Math.min(sy, ty);\n const y2 = Math.max(sy, ty);\n //1d line intersection to check if line crosses block at all, this\n //is an optimization that allows us to skip drawing most tree links\n //outside the block\n if (offsetY + blockSize >= y1 && y2 >= offsetY) {\n ctx.beginPath();\n ctx.moveTo(sx, sy);\n ctx.lineTo(sx, ty);\n ctx.lineTo(tx, ty);\n ctx.stroke();\n }\n });\n\n if (drawNodeBubbles) {\n hierarchy.descendants().forEach(node => {\n const val = showBranchLen ? 'len' : 'y';\n const {\n //@ts-ignore\n x: y,\n //@ts-ignore\n [val]: x,\n data,\n } = node;\n\n if (\n y > offsetY - extendBounds &&\n y < offsetY + blockSize + extendBounds\n ) {\n ctx.strokeStyle = 'black';\n ctx.fillStyle = collapsed.includes(data.id) ? 'black' : 'white';\n ctx.beginPath();\n ctx.arc(x, y, radius, 0, 2 * Math.PI);\n ctx.fill();\n ctx.stroke();\n\n const col = randomColor();\n const [r, g, b] = col;\n colorHash[`${col}`] = data;\n\n clickCtx.fillStyle = `rgb(${r},${g},${b})`;\n clickCtx.fillRect(x - radius, y - radius, d, d);\n }\n });\n }\n }\n\n if (rowHeight >= 10) {\n ctx.fillStyle = 'black';\n hierarchy.leaves().forEach((node: any) => {\n const { x: y, y: x, data, len } = node;\n const { name } = data;\n if (\n y > offsetY - extendBounds &&\n y < offsetY + blockSize + extendBounds\n ) {\n //note: +rowHeight/4 matches with -rowHeight/4 in msa\n ctx.fillText(\n name,\n (showBranchLen ? len : x) + d,\n y + rowHeight / 4\n );\n }\n });\n }\n setColorMap(colorHash);\n }, [\n collapsed,\n rowHeight,\n margin.left,\n hierarchy,\n offsetY,\n width,\n showBranchLen,\n noTree,\n blockSize,\n drawNodeBubbles,\n ]);\n\n function decode(event: React.MouseEvent) {\n const x = event.nativeEvent.offsetX;\n const y = event.nativeEvent.offsetY;\n if (!clickRef.current) {\n return;\n }\n const clickCtx = clickRef.current.getContext('2d');\n if (!clickCtx) {\n return;\n }\n const { data } = clickCtx.getImageData(x, y, 1, 1);\n\n const col = [data[0], data[1], data[2]];\n return { ...colorMap[`${col}`], x, y };\n }\n function handleClose() {\n setHovering(undefined);\n }\n return (\n <>\n <div\n ref={menuRef}\n style={{\n position: 'absolute',\n left: hovering?.x || 0,\n top: scrollY + offsetY + (hovering?.y || 0),\n }}\n />\n {hovering && hovering.id ? (\n <Menu\n anchorEl={menuRef.current}\n transitionDuration={0}\n keepMounted\n open={Boolean(menuRef.current)}\n onClose={handleClose}\n >\n <MenuItem\n dense\n onClick={() => {\n model.toggleCollapsed(hovering.id);\n handleClose();\n }}\n >\n {model.collapsed.includes(hovering.id) ? 'Expand' : 'Collapse'}\n </MenuItem>\n </Menu>\n ) : null}\n <canvas\n width={width}\n height={blockSize}\n style={{\n width,\n height: blockSize,\n top: scrollY + offsetY,\n left: 0,\n position: 'absolute',\n }}\n onMouseMove={event => {\n if (!ref.current) {\n return;\n }\n const data = decode(event);\n if (data) {\n if (data.id) {\n ref.current.style.cursor = 'pointer';\n } else {\n ref.current.style.cursor = 'default';\n }\n }\n }}\n onClick={event => {\n const data = decode(event);\n if (data && data.id) {\n setHovering(data);\n }\n }}\n ref={ref}\n />\n <canvas\n style={{ display: 'none' }}\n width={width}\n height={blockSize}\n ref={clickRef}\n />\n </>\n );\n }\n);\nconst TreeCanvas = observer(({ model }: { model: MsaViewModel }) => {\n const ref = useRef<HTMLDivElement>(null);\n const scheduled = useRef(false);\n const deltaY = useRef(0);\n const { treeWidth: width, height, blocksY } = model;\n\n useEffect(() => {\n const curr = ref.current;\n if (!curr) {\n return;\n }\n function onWheel(origEvent: WheelEvent) {\n const event = normalizeWheel(origEvent);\n deltaY.current += event.pixelY;\n\n if (!scheduled.current) {\n scheduled.current = true;\n requestAnimationFrame(() => {\n model.doScrollY(-deltaY.current);\n deltaY.current = 0;\n scheduled.current = false;\n });\n }\n origEvent.preventDefault();\n }\n curr.addEventListener('wheel', onWheel);\n return () => {\n curr.removeEventListener('wheel', onWheel);\n };\n }, [model]);\n\n return (\n <div\n ref={ref}\n style={{\n height,\n position: 'relative',\n overflow: 'hidden',\n width,\n }}\n >\n {blocksY.map(block => (\n <TreeBlock key={block} model={model} offsetY={block} />\n ))}\n </div>\n );\n});\n\nexport default TreeCanvas;\n","import normalizeWheel from 'normalize-wheel';\nimport Color from 'color';\nimport colorSchemes from '../colorSchemes';\nimport { transform } from '../util';\nimport { MsaViewModel } from '../model';\n\nimport React, { useEffect, useRef, useMemo } from 'react';\nimport { observer } from 'mobx-react';\nimport { Typography, CircularProgress } from '@material-ui/core';\n\nconst MSABlock = observer(\n ({\n model,\n offsetX,\n offsetY,\n }: {\n model: MsaViewModel;\n offsetX: number;\n offsetY: number;\n }) => {\n const {\n MSA,\n colWidth,\n bgColor,\n columns,\n rowHeight,\n scrollY,\n scrollX,\n hierarchy,\n colorSchemeName,\n blockSize,\n } = model;\n\n const colorScheme = colorSchemes[colorSchemeName];\n const colorContrast = useMemo(\n () =>\n transform(colorScheme, ([letter, color]: any) => [\n letter,\n 'black',\n // theme.palette.getContrastText(Color(color).hex()),\n ]),\n [colorScheme]\n );\n const ref = useRef<HTMLCanvasElement>(null);\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n const ctx = ref.current.getContext('2d');\n if (!ctx) {\n return;\n }\n\n ctx.resetTransform();\n ctx.clearRect(0, 0, blockSize, blockSize);\n ctx.translate(-offsetX, rowHeight / 2 - offsetY);\n ctx.textAlign = 'center';\n ctx.font = ctx.font.replace(/\\d+px/, `${Math.max(8, rowHeight - 12)}px`);\n\n const leaves = hierarchy.leaves();\n const b = blockSize;\n\n // slice vertical rows, e.g. tree leaves, avoid negative slice\n const yStart = Math.max(0, Math.floor((offsetY - rowHeight) / rowHeight));\n const yEnd = Math.max(\n 0,\n Math.ceil((offsetY + b + rowHeight) / rowHeight)\n );\n\n // slice horizontal visible letters, avoid negative slice\n const xStart = Math.max(0, Math.floor(offsetX / colWidth));\n const xEnd = Math.max(0, Math.ceil((offsetX + b) / colWidth));\n const visibleLeaves = leaves.slice(yStart, yEnd);\n visibleLeaves.forEach((node: any) => {\n const {\n x: y,\n data: { name },\n } = node;\n\n const str = columns[name]?.slice(xStart, xEnd);\n for (let i = 0; i < str?.length; i++) {\n const letter = str[i];\n const color = colorScheme[letter.toUpperCase()];\n if (bgColor) {\n const x = i * colWidth + offsetX - (offsetX % colWidth);\n ctx.fillStyle = color || 'white';\n ctx.fillRect(x, y - rowHeight, colWidth, rowHeight);\n }\n }\n });\n\n if (rowHeight >= 10 && colWidth >= rowHeight / 2) {\n visibleLeaves.forEach((node: any) => {\n const {\n x: y,\n data: { name },\n } = node;\n\n const str = columns[name]?.slice(xStart, xEnd);\n for (let i = 0; i < str?.length; i++) {\n const letter = str[i];\n const color = colorScheme[letter.toUpperCase()];\n const contrast = colorContrast[letter.toUpperCase()] || 'black';\n const x = i * colWidth + offsetX - (offsetX % colWidth);\n\n //note: -rowHeight/4 matches +rowHeight/4 in tree\n ctx.fillStyle = bgColor ? contrast : color || 'black';\n ctx.fillText(\n letter,\n Math.floor(x + colWidth / 2),\n Math.floor(y - rowHeight / 4)\n );\n }\n });\n }\n }, [\n MSA,\n columns,\n colorScheme,\n colorContrast,\n bgColor,\n rowHeight,\n colWidth,\n hierarchy,\n offsetX,\n offsetY,\n blockSize,\n ]);\n\n return (\n <canvas\n ref={ref}\n width={blockSize}\n height={blockSize}\n style={{\n position: 'absolute',\n top: scrollY + offsetY,\n left: scrollX + offsetX,\n width: blockSize,\n height: blockSize,\n }}\n />\n );\n }\n);\n\nconst MSACanvas = observer(({ model }: { model: MsaViewModel }) => {\n const {\n MSA,\n msaFilehandle,\n width,\n height,\n treeWidth,\n blocksX,\n blocksY,\n } = model;\n const ref = useRef<HTMLDivElement>(null);\n const scheduled = useRef(false);\n const deltaX = useRef(0);\n const deltaY = useRef(0);\n useEffect(() => {\n const curr = ref.current;\n if (!curr) {\n return;\n }\n function onWheel(origEvent: WheelEvent) {\n const event = normalizeWheel(origEvent);\n deltaX.current += event.pixelX;\n deltaY.current += event.pixelY;\n\n if (!scheduled.current) {\n scheduled.current = true;\n requestAnimationFrame(() => {\n model.doScrollX(-deltaX.current);\n model.doScrollY(-deltaY.current);\n deltaX.current = 0;\n deltaY.current = 0;\n scheduled.current = false;\n });\n }\n origEvent.preventDefault();\n }\n curr.addEventListener('wheel', onWheel);\n return () => {\n curr.removeEventListener('wheel', onWheel);\n };\n }, [model]);\n let blocks: any[] = [];\n blocksY.forEach(blockY =>\n blocksX.forEach(blockX => {\n const key = `${blockX}_${blockY}`;\n blocks.push(\n <MSABlock key={key} model={model} offsetX={blockX} offsetY={blockY} />\n );\n })\n );\n\n return (\n <div\n ref={ref}\n style={{\n position: 'relative',\n height,\n width: width - treeWidth,\n overflow: 'hidden',\n }}\n >\n {!MSA && !msaFilehandle ? null : !MSA ? (\n <div style={{ position: 'absolute', left: '50%', top: '50%' }}>\n <CircularProgress />\n <Typography>Loading...</Typography>\n </div>\n ) : (\n blocks\n )}\n </div>\n );\n});\n\nexport default MSACanvas;\n","//icons\nimport FolderOpenIcon from '@material-ui/icons/FolderOpen';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport InfoIcon from '@material-ui/icons/Info';\nimport AssignmentIcon from '@material-ui/icons/Assignment';\n\n//components\nimport SettingsDialog from './SettingsDlg';\nimport AboutDialog from './AboutDlg';\nimport DetailsDialog from './DetailsDlg';\nimport ImportForm from './ImportForm';\nimport TreeCanvas from './Tree';\nimport MSACanvas from './MSA';\n\nimport { MsaViewModel } from '../model';\nimport React, { useState } from 'react';\nimport { observer } from 'mobx-react';\nimport { IconButton, Typography, Select } from '@material-ui/core';\n\nconst Header = observer(({ model }: { model: MsaViewModel }) => {\n const [settingsDialogVisible, setSettingsDialogVisible] = useState(false);\n const [aboutDialogVisible, setAboutDialogVisible] = useState(false);\n const [detailsDialogVisible, setDetailsDialogVisible] = useState(false);\n const { currentAlignment, alignmentNames } = model;\n\n return (\n <div style={{ display: 'block' }}>\n <IconButton\n onClick={() => {\n model.setData({ tree: '', msa: '' });\n model.setTreeFilehandle(undefined);\n model.setMSAFilehandle(undefined);\n model.setScrollY(0);\n model.setScrollX(0);\n model.setCurrentAlignment(0);\n }}\n >\n <FolderOpenIcon />\n </IconButton>\n <IconButton\n onClick={() => {\n setSettingsDialogVisible(true);\n }}\n >\n <SettingsIcon />\n </IconButton>\n\n <IconButton\n onClick={() => {\n setAboutDialogVisible(true);\n }}\n >\n <InfoIcon />\n </IconButton>\n\n <IconButton\n onClick={() => {\n setDetailsDialogVisible(true);\n }}\n >\n <AssignmentIcon />\n </IconButton>\n <SettingsDialog\n open={settingsDialogVisible}\n model={model}\n onClose={() => setSettingsDialogVisible(false)}\n />\n <AboutDialog\n open={aboutDialogVisible}\n onClose={() => setAboutDialogVisible(false)}\n />\n\n <DetailsDialog\n open={detailsDialogVisible}\n model={model}\n onClose={() => setDetailsDialogVisible(false)}\n />\n {alignmentNames.length > 0 ? (\n <Select\n native\n value={currentAlignment}\n onChange={event => {\n //@ts-ignore\n model.setCurrentAlignment(+event.target.value);\n model.setScrollX(0);\n model.setScrollY(0);\n }}\n >\n {alignmentNames.map((option, index) => (\n <option key={option + '-' + index} value={index}>\n {option}\n </option>\n ))}\n </Select>\n ) : null}\n </div>\n );\n});\n\nexport default observer(({ model }: { model: MsaViewModel }) => {\n const { done, initialized } = model;\n\n if (!initialized) {\n return <ImportForm model={model} />;\n } else if (!done) {\n return <Typography variant=\"h4\">Loading...</Typography>;\n } else {\n const { height } = model;\n\n return (\n <div style={{ height, overflow: 'hidden' }}>\n <Header model={model} />\n <div\n style={{\n position: 'relative',\n display: 'flex',\n }}\n >\n <TreeCanvas model={model} />\n <MSACanvas model={model} />\n </div>\n </div>\n );\n }\n});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/**\n * Newick format parser in JavaScript.\n *\n * Copyright (c) Jason Davies 2010.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * Example tree (from http://en.wikipedia.org/wiki/Newick_format):\n *\n * +--0.1--A\n * F-----0.2-----B +-------0.3----C\n * +------------------0.5-----E\n * +---------0.4------D\n *\n * Newick format:\n * (A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5)F;\n *\n * Converted to JSON:\n * {\n * name: \"F\",\n * branchset: [\n * {name: \"A\", length: 0.1},\n * {name: \"B\", length: 0.2},\n * {\n * name: \"E\",\n * length: 0.5,\n * branchset: [\n * {name: \"C\", length: 0.3},\n * {name: \"D\", length: 0.4}\n * ]\n * }\n * ]\n * }\n *\n * Converted to JSON, but with no names or lengths:\n * {\n * branchset: [\n * {}, {}, {\n * branchset: [{}, {}]\n * }\n * ]\n * }\n */\nexport default function parse(s) {\n const ancestors = [];\n let tree = {};\n const tokens = s.split(/\\s*(;|\\(|\\)|,|:)\\s*/);\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const subtree = {};\n switch (token) {\n case \"(\": // new branchset\n tree.branchset = [subtree];\n ancestors.push(tree);\n tree = subtree;\n break;\n case \",\": // another branch\n ancestors[ancestors.length - 1].branchset.push(subtree);\n tree = subtree;\n break;\n case \")\": // optional name next\n tree = ancestors.pop();\n break;\n case \":\": // optional length next\n break;\n default:\n const x = tokens[i - 1];\n if (x === \")\" || x === \"(\" || x === \",\") {\n tree.name = token;\n } else if (x === \":\") {\n tree.length = parseFloat(token);\n }\n }\n }\n return tree;\n}\n","import BaseViewModel from '@jbrowse/core/pluggableElementTypes/models/BaseViewModel';\nimport * as Clustal from 'clustal-js';\nimport { hierarchy, cluster } from 'd3-hierarchy';\nimport { ascending, max } from 'd3-array';\nimport parseNewick from './parseNewick';\nimport Stockholm from 'stockholm-js';\nimport { Instance, types, addDisposer } from 'mobx-state-tree';\nimport { FileLocation, ElementId } from '@jbrowse/core/util/types/mst';\n\nimport { openLocation } from '@jbrowse/core/util/io';\nimport { autorun } from 'mobx';\n\nlet str = JSON.stringify;\n\nclass ClustalMSA {\n private MSA: any;\n constructor(text: string) {\n this.MSA = Clustal.parse(text);\n }\n\n getMSA() {\n return this.MSA;\n }\n\n getRow(name: string) {\n return this.MSA.alns.find((aln: any) => aln.id === name)?.seq.split('');\n }\n\n getWidth() {\n return this.MSA.alns[0].seq.length;\n }\n\n getDetails() {\n return this.MSA.header;\n }\n\n getTree() {\n return {\n name: 'root',\n noTree: true,\n branchset: this.MSA.alns.map((aln: any) => ({\n name: aln.id,\n })),\n };\n }\n}\n\ntype StrMap = { [key: string]: string };\nclass FastaMSA {\n private MSA: any;\n constructor(text: string) {\n let seq: StrMap = {};\n let name = '';\n let re = /^>(\\S+)/;\n text.split('\\n').forEach(line => {\n const match = re.exec(line);\n if (match) {\n seq[(name = match[1])] = '';\n } else if (name) {\n seq[name] = seq[name] + line.replace(/[ \\t]/g, '');\n }\n });\n this.MSA = { seqdata: seq };\n }\n\n getMSA() {\n return this.MSA;\n }\n\n getRow(name: string) {\n return this.MSA?.seqdata[name]?.split('');\n }\n\n getWidth() {\n const name = Object.keys(this.MSA?.seqdata)[0];\n return this.getRow(name).length;\n }\n\n getDetails() {\n return {};\n }\n\n getTree() {\n return {\n name: 'root',\n noTree: true,\n branchset: Object.keys(this.MSA.seqdata).map(name => ({\n name,\n })),\n };\n }\n}\n\nclass StockholmMSA {\n private MSA: any;\n private data: any;\n constructor(text: string, currentAlignment: number) {\n const res = Stockholm.parseAll(text);\n this.data = res;\n this.MSA = res[currentAlignment];\n }\n\n getMSA() {\n return this.MSA;\n }\n\n getRow(name: string) {\n return this.MSA?.seqdata[name]?.split('');\n }\n\n getWidth() {\n const name = Object.keys(this.MSA?.seqdata)[0];\n return this.getRow(name).length;\n }\n\n alignmentNames() {\n return this.data.map(\n (aln: any, index: number) => aln.gf.DE?.[0] || `Alignment ${index + 1}`\n );\n }\n\n getDetails() {\n return this.MSA.gf;\n }\n\n getTree() {\n const tree = this.MSA?.gf?.NH?.[0];\n return tree\n ? generateNodeIds(parseNewick(tree))\n : {\n name: 'root',\n noTree: true,\n branchset: Object.keys(this.MSA.seqdata).map((name: any) => ({\n name,\n })),\n };\n }\n}\n\nfunction setBrLength(d: any, y0: number, k: number) {\n d.len = (y0 += Math.max(d.data.length || 0, 0)) * k;\n if (d.children) {\n d.children.forEach((d: any) => {\n setBrLength(d, y0, k);\n });\n }\n}\n\nfunction maxLength(d: any): number {\n return (d.data.length || 1) + (d.children ? max(d.children, maxLength) : 0);\n}\n\n// note: we don't use this.root because it won't update in response to changes\n// in realWidth/totalHeight here otherwise, needs to generate a new object\nfunction getRoot(tree: any) {\n return hierarchy(tree, d => d.branchset)\n .sum(d => (d.branchset ? 0 : 1))\n .sort((a, b) => {\n return ascending(a.data.length || 1, b.data.length || 1);\n });\n}\n\nfunction generateNodeIds(tree: any, parent = 'node', depth = 0, index = 0) {\n tree.id = `${parent}-${depth}-${index}`;\n if (tree.branchset?.length) {\n tree.branchset.forEach((b: any, index: number) =>\n generateNodeIds(b, tree.id, depth + 1, index)\n );\n }\n\n return tree;\n}\nfunction filter(tree: any, collapsed: string[]) {\n const { branchset, ...rest } = tree;\n if (collapsed.includes(tree.id)) {\n return rest;\n } else if (tree.branchset) {\n return {\n ...rest,\n branchset: branchset.map((b: any) => filter(b, collapsed)),\n };\n } else {\n return tree;\n }\n}\n\nfunction clamp(min: number, num: number, max: number) {\n return Math.min(Math.max(num, min), max);\n}\n\nconst model = types.snapshotProcessor(\n types\n .compose(\n BaseViewModel,\n types\n .model('MsaView', {\n id: ElementId,\n type: types.literal('MsaView'),\n height: 680,\n treeAreaWidth: 600,\n nameWidth: 200,\n rowHeight: 20,\n scrollY: 0,\n scrollX: 0,\n blockSize: 1000,\n colWidth: 16,\n showBranchLen: true,\n bgColor: true,\n drawNodeBubbles: true,\n colorSchemeName: 'maeditor',\n treeFilehandle: types.maybe(FileLocation),\n msaFilehandle: types.maybe(FileLocation),\n currentAlignment: 0,\n collapsed: types.array(types.string),\n data: types.optional(\n types\n .model({\n tree: types.maybe(types.string),\n msa: types.maybe(types.string),\n })\n .actions(self => ({\n setTree(tree?: string) {\n self.tree = tree;\n },\n setMSA(msa?: string) {\n self.msa = msa;\n },\n })),\n { tree: '', msa: '' }\n ),\n })\n .volatile(() => ({\n error: undefined as Error | undefined,\n volatileWidth: 0,\n margin: { left: 20, top: 20 },\n }))\n .actions(self => ({\n setError(error?: Error) {\n self.error = error;\n },\n setRowHeight(n: number) {\n self.rowHeight = n;\n },\n setColWidth(n: number) {\n self.colWidth = n;\n },\n setColorSchemeName(name: string) {\n self.colorSchemeName = name;\n },\n setScrollY(n: number) {\n self.scrollY = n;\n },\n setScrollX(n: number) {\n self.scrollX = n;\n },\n setTreeWidth(n: number) {\n self.treeAreaWidth = n;\n },\n setNameWidth(n: number) {\n self.nameWidth = n;\n },\n setCurrentAlignment(n: number) {\n self.currentAlignment = n;\n },\n toggleCollapsed(node: string) {\n if (self.collapsed.includes(node)) {\n self.collapsed.remove(node);\n } else {\n self.collapsed.push(node);\n }\n },\n toggleBranchLen() {\n self.showBranchLen = !self.showBranchLen;\n },\n toggleBgColor() {\n self.bgColor = !self.bgColor;\n },\n toggleNodeBubbles() {\n self.drawNodeBubbles = !self.drawNodeBubbles;\n },\n setData(data: any) {\n self.data = data;\n },\n setWidth(width: number) {\n self.volatileWidth = width;\n },\n async setMSAFilehandle(r?: typeof FileLocation) {\n //@ts-ignore\n if (r?.blob) {\n //@ts-ignore\n const text = await openLocation(r).readFile('utf8');\n this.setMSA(text);\n } else {\n //@ts-ignore\n self.msaFilehandle = r;\n }\n },\n async setTreeFilehandle(r?: typeof FileLocation) {\n //@ts-ignore\n if (r?.blob) {\n //@ts-ignore\n const text = await openLocation(r).readFile('utf8');\n this.setTree(text);\n } else {\n //@ts-ignore\n self.treeFilehandle = r;\n }\n },\n setMSA(result: any) {\n self.data.setMSA(result);\n },\n setTree(result: any) {\n self.data.setTree(result);\n },\n\n afterCreate() {\n addDisposer(\n self,\n autorun(async () => {\n const { treeFilehandle } = self;\n if (treeFilehandle) {\n const f = openLocation(treeFilehandle);\n const result = await f.readFile('utf8');\n this.setTree(result);\n }\n })\n );\n addDisposer(\n self,\n autorun(async () => {\n const { msaFilehandle } = self;\n\n if (msaFilehandle) {\n const f = openLocation(msaFilehandle);\n const result = await f.readFile('utf8');\n this.setMSA(result);\n }\n })\n );\n },\n }))\n .views(self => {\n let oldBlocksX: number[] = [];\n let oldBlocksY: number[] = [];\n let oldValX = 0;\n let oldValY = 0;\n return {\n get initialized() {\n return (\n self.data.msa ||\n self.data.tree ||\n self.msaFilehandle ||\n self.treeFilehandle\n );\n },\n\n get blocksX() {\n const { scrollX, blockSize: size, colWidth } = self;\n const ret = -(size * Math.floor(scrollX / size)) - size;\n\n const b = [];\n for (let i = ret; i < ret + size * 3; i += size) {\n if (i + size > 0) {\n b.push(i);\n }\n }\n if (str(b) !== str(oldBlocksX) || colWidth !== oldValX) {\n oldBlocksX = b;\n oldValX = colWidth;\n }\n return oldBlocksX;\n },\n\n get blocksY() {\n const { scrollY, blockSize: size, rowHeight } = self;\n const ret = -(size * Math.floor(scrollY / size)) - 2 * size;\n\n const b = [];\n for (let i = ret; i < ret + size * 3; i += size) {\n if (i + size > 0) {\n b.push(i);\n }\n }\n if (str(b) !== str(oldBlocksY) || rowHeight !== oldValY) {\n oldBlocksY = b;\n oldValY = rowHeight;\n }\n return oldBlocksY;\n },\n\n get done() {\n return (\n self.volatileWidth > 0 &&\n this.initialized &&\n (self.data.msa || self.data.tree)\n );\n },\n\n get alignmentDetails() {\n return this.MSA?.getDetails() || {};\n },\n\n get currentAlignmentName() {\n return this.alignmentNames[self.currentAlignment];\n },\n\n get alignmentNames(): string[] {\n //@ts-ignore\n return this.MSA?.alignmentNames?.() || [];\n },\n\n get noTree() {\n return !!this.tree.noTree;\n },\n\n get menuItems() {\n return [];\n },\n\n get MSA() {\n const text = self.data.msa;\n if (text) {\n if (Stockholm.sniff(text)) {\n return new StockholmMSA(text, self.currentAlignment);\n } else if (text.startsWith('>')) {\n return new FastaMSA(text);\n } else {\n return new ClustalMSA(text);\n }\n }\n return null;\n },\n get width() {\n return self.volatileWidth;\n },\n\n get msaWidth() {\n return (\n (this.MSA?.getWidth() - this.blanks.length) * self.colWidth\n );\n },\n\n get tree() {\n const {\n data: { tree },\n collapsed,\n } = self;\n return filter(\n tree ? generateNodeIds(parseNewick(tree)) : this.MSA?.getTree(),\n collapsed\n );\n },\n\n get root() {\n return getRoot(this.tree);\n },\n\n get treeWidthMinusNames() {\n return self.treeAreaWidth - self.nameWidth;\n },\n\n get treeWidth() {\n return this.noTree ? self.nameWidth : self.treeAreaWidth;\n },\n\n get blanks() {\n const nodes = this.hierarchy.leaves();\n const blanks = [];\n const strs = nodes\n .map(({ data }) => this.MSA?.getRow(data.name))\n .filter(f => !!f);\n\n for (let i = 0; i < strs?.[0].length; i++) {\n let counter = 0;\n for (let j = 0; j < strs.length; j++) {\n if (strs[j][i] === '-') {\n counter++;\n }\n }\n if (counter === strs.length) {\n blanks.push(i);\n }\n }\n return blanks;\n },\n\n get columns(): Record<string, string> {\n const nodes = this.hierarchy.leaves();\n const rows = nodes\n .map(({ data }) => [data.name, this.MSA?.getRow(data.name)])\n .filter(f => !!f[1]);\n const strs = rows.map(row => row[1]);\n\n const ret: string[] = [];\n for (let i = 0; i < strs.length; i++) {\n let s = '';\n let b = 0;\n for (let j = 0; j < strs[i].length; j++) {\n if (j === this.blanks[b]) {\n b++;\n } else {\n s += strs[i][j];\n }\n }\n ret.push(s);\n }\n return Object.fromEntries(\n rows.map((row, index) => [row[0], ret[index]])\n );\n },\n\n // generates a new tree that is clustered with x,y positions\n get hierarchy() {\n const root = getRoot(this.tree);\n const clust = cluster()\n .size([this.totalHeight, this.treeWidthMinusNames])\n .separation(() => 1);\n clust(root);\n setBrLength(\n root,\n (root.data.length = 0),\n this.treeWidthMinusNames / maxLength(root)\n );\n return root;\n },\n\n get totalHeight() {\n return this.root.leaves().length * self.rowHeight;\n },\n };\n })\n )\n .actions(self => ({\n doScrollY(deltaY: number) {\n self.scrollY = clamp(-self.totalHeight + 10, self.scrollY + deltaY, 10);\n },\n\n doScrollX(deltaX: number) {\n self.scrollX = clamp(\n -self.msaWidth + (self.width - self.treeWidth - 20),\n self.scrollX + deltaX,\n 0\n );\n },\n })),\n {\n postProcessor(result) {\n const { data, ...rest } = result;\n return rest;\n },\n }\n);\n\nexport default model;\n\nexport type MsaViewStateModel = typeof model;\nexport type MsaViewModel = Instance<MsaViewStateModel>;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z\"\n}), 'GridOn');\n\nexports.default = _default;","import Plugin from '@jbrowse/core/Plugin'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { version } from '../package.json'\nimport { AbstractSessionModel, isAbstractMenuManager } from '@jbrowse/core/util'\nimport { MSAModel, MSAView } from 'react-msaview'\nimport ViewType from '@jbrowse/core/pluggableElementTypes/ViewType'\nimport GridOn from '@material-ui/icons/GridOn'\n\nexport default class MsaViewPlugin extends Plugin {\n name = 'MsaViewPlugin'\n version = version\n\n install(pluginManager: PluginManager) {\n pluginManager.addViewType(\n () =>\n new ViewType({\n name: 'MsaView',\n //@ts-ignore\n stateModel: MSAModel,\n ReactComponent: MSAView,\n }),\n )\n }\n\n configure(pluginManager: PluginManager) {\n if (isAbstractMenuManager(pluginManager.rootModel)) {\n pluginManager.rootModel.appendToSubMenu(['File', 'Add'], {\n label: 'Multiple sequence alignment view',\n icon: GridOn,\n onClick: (session: AbstractSessionModel) => {\n session.addView('MsaView', {})\n },\n })\n }\n }\n}\n"],"names":["_typeof","_utils","_interopRequireWildcard","require$$0","_interopRequireDefault","require$$1","colorNames","swizzle","cssKeywords","convert","ExecutionEnvironment","UserAgent_DEPRECATED","isEventSupported","setSeed","format","random","alphabet","version","generate","build","require$$2","_mobxStateTree","_mobxReact","_mst","transform","obj","cb","Object","fromEntries","entries","map","colorSchemes","clustal","G","P","S","T","H","K","R","F","W","Y","I","L","M","V","lesk","A","C","N","Q","D","E","maeditor","flower","rainbow_dna","U","clustalx_protein","clustalx_dna","jalview_buried","B","X","Z","jalview_hydrophobicity","jalview_prophelix","jalview_propstrand","jalview_propturn","jalview_taylor","jalview_zappo","cinema","key","val","letter","color","Color","hex","observer","model","onClose","open","rowHeightInit","rowHeight","colWidthInit","colWidth","nameWidthInit","nameWidth","treeWidthInit","treeWidth","colorSchemeName","noTree","useState","setRowHeight","setColWidth","setNameWidth","setTreeWidth","error","n","Number","isNaN","rowHeightError","colWidthError","nameWidthError","treeWidthError","React","Dialog","DialogTitle","DialogContent","FormControlLabel","control","Checkbox","checked","showBranchLen","onChange","toggleBranchLen","label","bgColor","toggleBgColor","drawNodeBubbles","toggleNodeBubbles","TextField","value","event","target","select","setColorSchemeName","keys","option","MenuItem","Button","disabled","onClick","variant","LicenseDialog","style","height","overflow","AboutDialog","dlgOpen","setDlgOpen","Typography","Link","href","alignmentDetails","Attributes","attributes","smallMSA","smallTree","classes","msaFile","setMsaFile","treeFile","setTreeFile","Container","className","importFormContainer","width","Grid","container","spacing","justify","alignItems","item","FileSelector","location","setLocation","localFileAllowed","setMSAFilehandle","setTreeFilehandle","uri","setData","msa","tree","transaction","extendBounds","radius","d","randomColor","Math","floor","TreeBlock","offsetY","ref","useRef","menuRef","clickRef","colorMap","setColorMap","hovering","setHovering","hierarchy","scrollY","collapsed","margin","blockSize","useEffect","current","ctx","getContext","clickCtx","colorHash","forEach","context","resetTransform","clearRect","translate","left","font","replace","max","links","source","y","sy","x","sx","ty","tx","y1","min","y2","beginPath","moveTo","lineTo","stroke","descendants","node","data","strokeStyle","fillStyle","includes","id","arc","PI","fill","col","r","g","b","fillRect","leaves","len","name","fillText","decode","nativeEvent","offsetX","getImageData","handleClose","undefined","position","top","Menu","anchorEl","transitionDuration","keepMounted","Boolean","dense","toggleCollapsed","onMouseMove","cursor","display","TreeCanvas","scheduled","deltaY","blocksY","curr","onWheel","origEvent","normalizeWheel","pixelY","requestAnimationFrame","doScrollY","preventDefault","addEventListener","removeEventListener","block","MSABlock","MSA","columns","scrollX","colorScheme","colorContrast","useMemo","textAlign","yStart","yEnd","ceil","xStart","xEnd","visibleLeaves","slice","str","i","length","toUpperCase","contrast","MSACanvas","msaFilehandle","blocksX","deltaX","pixelX","doScrollX","blocks","blockY","blockX","push","CircularProgress","Header","settingsDialogVisible","setSettingsDialogVisible","aboutDialogVisible","setAboutDialogVisible","detailsDialogVisible","setDetailsDialogVisible","currentAlignment","alignmentNames","IconButton","setScrollY","setScrollX","setCurrentAlignment","FolderOpenIcon","SettingsIcon","InfoIcon","AssignmentIcon","SettingsDialog","DetailsDialog","Select","index","done","initialized","ImportForm","runtime","exports","Op","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","Context","_invoke","makeInvokeMethod","tryCatch","fn","arg","type","call","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","constructor","displayName","defineIteratorMethods","method","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","__await","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","then","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","async","Promise","iter","next","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","toString","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","object","reverse","pop","iterable","iteratorMethod","skipTempReset","prev","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","Function","parse","s","ancestors","tokens","split","token","subtree","branchset","parseFloat","JSON","stringify","ClustalMSA","text","Clustal","getMSA","getRow","alns","find","aln","seq","getWidth","getDetails","header","getTree","FastaMSA","re","line","match","exec","seqdata","StockholmMSA","res","Stockholm","parseAll","gf","DE","NH","generateNodeIds","parseNewick","setBrLength","y0","k","children","maxLength","getRoot","sum","sort","a","ascending","parent","depth","filter","rest","clamp","num","types","snapshotProcessor","compose","BaseViewModel","ElementId","literal","treeAreaWidth","treeFilehandle","maybe","FileLocation","array","string","optional","actions","setTree","setMSA","volatileWidth","setError","remove","setWidth","blob","openLocation","readFile","afterCreate","addDisposer","autorun","f","views","oldBlocksX","oldBlocksY","oldValX","oldValY","size","ret","currentAlignmentName","menuItems","sniff","startsWith","msaWidth","blanks","root","treeWidthMinusNames","nodes","strs","counter","j","rows","row","clust","cluster","totalHeight","separation","postProcessor","MsaViewPlugin","pluginManager","addViewType","ViewType","stateModel","MSAModel","ReactComponent","MSAView","isAbstractMenuManager","rootModel","appendToSubMenu","icon","GridOn","session","addView","Plugin"],"mappings":"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AAE,CAAC;EACrB,IAAI,WAAW,GAAG,GAAG,CAAC;AACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,cAAc,YAAY,KAAK,aAAa;EACrD,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;EACpB,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACrB;EACA;EACA,EAAE,IAAI,QAAQ,SAAS,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;EACpD,EAAE,IAAI,YAAY,KAAK,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE;EAC/D,EAAE,IAAI,aAAa,IAAI,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE;EAChE,EAAE,IAAI,aAAa,IAAI,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE;AAChE;EACA;EACA,EAAE,KAAK,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,eAAe,GAAG;EACjE,IAAI,EAAE,GAAG,EAAE,CAAC;EACZ,IAAI,EAAE,GAAG,CAAC,CAAC;EACX,GAAG;AACH;E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"}
|
|
1
|
+
{"version":3,"file":"jbrowse-plugin-msaview.umd.development.js","sources":["../node_modules/react-msaview/dist/components/data/seq2.js","../node_modules/react-msaview/dist/components/ImportForm.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/@material-ui/icons/Assignment.js","../node_modules/react-msaview/dist/components/Rubberband.js","../node_modules/normalize-wheel/src/UserAgent_DEPRECATED.js","../node_modules/normalize-wheel/src/ExecutionEnvironment.js","../node_modules/normalize-wheel/src/isEventSupported.js","../node_modules/normalize-wheel/src/normalizeWheel.js","../node_modules/normalize-wheel/index.js","../node_modules/quickselect/index.js","../node_modules/rbush/index.js","../node_modules/react-msaview/dist/components/MoreInfoDlg.js","../node_modules/react-msaview/dist/components/TreeCanvas.js","../node_modules/color-name/index.js","../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","../node_modules/simple-swizzle/index.js","../node_modules/color-string/index.js","../node_modules/color-convert/node_modules/color-name/index.js","../node_modules/color-convert/conversions.js","../node_modules/color-convert/route.js","../node_modules/color-convert/index.js","../node_modules/color/index.js","../node_modules/react-msaview/dist/util.js","../node_modules/react-msaview/dist/colorSchemes.js","../node_modules/react-msaview/dist/components/MSACanvas.js","../node_modules/react-msaview/dist/components/Ruler.js","../node_modules/react-msaview/dist/components/TreeRuler.js","../node_modules/react-msaview/dist/components/SettingsDlg.js","../node_modules/react-msaview/dist/components/AboutDlg.js","../node_modules/react-msaview/dist/components/DetailsDlg.js","../node_modules/react-msaview/dist/components/TracklistDlg.js","../node_modules/@material-ui/icons/FolderOpen.js","../node_modules/@material-ui/icons/Settings.js","../node_modules/@material-ui/icons/Help.js","../node_modules/@material-ui/icons/List.js","../node_modules/react-msaview/dist/components/Header.js","../node_modules/@material-ui/icons/ArrowDropDown.js","../node_modules/toggle-selection/index.js","../node_modules/copy-to-clipboard/index.js","../node_modules/react-msaview/dist/components/TrackInfoDlg.js","../node_modules/react-msaview/dist/components/Track.js","../node_modules/@material-ui/icons/Delete.js","../node_modules/react-msaview/dist/components/AnnotationDlg.js","../node_modules/react-msaview/dist/components/ResizeHandles.js","../node_modules/react-msaview/dist/components/MSAView.js","../node_modules/d3-hierarchy/src/cluster.js","../node_modules/d3-hierarchy/src/hierarchy/count.js","../node_modules/d3-hierarchy/src/hierarchy/each.js","../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../node_modules/d3-hierarchy/src/hierarchy/find.js","../node_modules/d3-hierarchy/src/hierarchy/sum.js","../node_modules/d3-hierarchy/src/hierarchy/sort.js","../node_modules/d3-hierarchy/src/hierarchy/path.js","../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../node_modules/d3-hierarchy/src/hierarchy/links.js","../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../node_modules/d3-hierarchy/src/hierarchy/index.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/max.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/shortid/lib/random/random-from-seed.js","../node_modules/shortid/lib/alphabet.js","../node_modules/shortid/lib/random/random-byte-browser.js","../node_modules/nanoid/format.browser.js","../node_modules/shortid/lib/generate.js","../node_modules/shortid/lib/build.js","../node_modules/shortid/lib/is-valid.js","../node_modules/shortid/lib/index.js","../node_modules/shortid/index.js","../node_modules/@jbrowse/core/util/types/mst.js","../node_modules/@jbrowse/core/pluggableElementTypes/models/BaseViewModel.js","../node_modules/stockholm-js/src/Stockholm.js","../node_modules/stockholm-js/index.js","../node_modules/clustal-js/dist/util.js","../node_modules/clustal-js/dist/index.js","../node_modules/react-msaview/dist/parsers/ClustalMSA.js","../node_modules/react-msaview/dist/parseNewick.js","../node_modules/react-msaview/dist/parsers/StockholmMSA.js","../node_modules/react-msaview/dist/parsers/FastaMSA.js","../node_modules/react-msaview/dist/components/TextTrack.js","../node_modules/react-msaview/dist/layout.js","../node_modules/react-msaview/dist/components/BoxTrack.js","../node_modules/react-msaview/dist/model.js","../node_modules/@material-ui/icons/GridOn.js","../src/index.ts"],"sourcesContent":["export var smallMSA = \"CLUSTAL O(1.2.3) multiple sequence alignment\\nUniProt/Swiss-Prot|P26898|IL2RA_SHEEP MEPSLLMWRFFVFIVVPGCVTEACHDDPPSLRNA----------MFKVLRYE----VGTM\\nUniProt/Swiss-Prot|P01590|IL2RA_MOUSE MEPRLLMLGFLSLTIVPSCRAELCLYDPPEVPNA----------TFKALSYK----NGTI\\nUniProt/Swiss-Prot|P41690|IL2RA_FELCA MEPSLLLWGILTFVVVHGHVTELCDENPPDIQHA----------TFKALTYK----TGTM\\nUniProt/Swiss-Prot|P01589|IL2RA_HUMAN MDSYLLMWGLLTFIMVPGCQAELCDDDPPEIPHA----------TFKAMAYK----EGTM\\nUniProt/Swiss-Prot|Q5MNY4|IL2RA_MACMU MDPYLLMWGLLTFITVPGCQAELCDDDPPKITHA----------TFKAVAYK----EGTM\\nUniProt/Swiss-Prot|Q95118|IL2RG_BOVIN -----------------------------------LLMWGLLT-----------------\\nUniProt/Swiss-Prot|P40321|IL2RG_CANFA MLKPPLPLRSLLFLQLSLLGVGLNSTVPMPNGNEDIT------PDFFLTATPSETLSVSS\\nUniProt/Swiss-Prot|P26896|IL2RB_RAT MATVDLSWRLPLYILLLLLATT--------------------------------WVSAAV\\nUniProt/Swiss-Prot|Q8BZM1|GLMN_MOUSE PLPLRSLLFLQLPLLGVGLNP------------------PLPLRSLLFLQLPLLGVGLNP\\nUniProt/Swiss-Prot|P36835|IL2_CAPHI -----------LLGVGLNPKFLTP------------------------------------\\nUniProt/Swiss-Prot|Q7JFM4|IL2_AOTVO MLKPPLPLRSLLFLQLPLLGVGLNPKFLTPSGNEDIGGKPGTGGDFFLTSTPAGTLDVST\\nUniProt/Swiss-Prot|Q29416|IL2_CANFA --------------LFLQLSLLG-------------------------------------\\n\";\nexport var smallMSAOnly = \"CLUSTAL O(1.2.4) multiple sequence alignment\\n\\n\\nsp|P69905|HBA_HUMAN MVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHG\\t60\\nsp|P01942|HBA_MOUSE MVLSGEDKSNIKAAWGKIGGHGAEYGAEALERMFASFPTTKTYFPHFDVSHGSAQVKGHG\\t60\\nsp|P13786|HBAZ_CAPHI MSLTRTERTIILSLWSKISTQADVIGTETLERLFSCYPQAKTYFPHFDLHSGSAQLRAHG\\t60\\n * *: ::: : : *.*:. :. *:*:***:* .:* :********: ****::.**\\n\\nsp|P69905|HBA_HUMAN KKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTP\\t120\\nsp|P01942|HBA_MOUSE KKVADALASAAGHLDDLPGALSALSDLHAHKLRVDPVNFKLLSHCLLVTLASHHPADFTP\\t120\\nsp|P13786|HBAZ_CAPHI SKVVAAVGDAVKSIDNVTSALSKLSELHAYVLRVDPVNFKFLSHCLLVTLASHFPADFTA\\t120\\n .**. *: .*. :*:: .*** **:***: *********:**********:* **:**\\n\\nsp|P69905|HBA_HUMAN AVHASLDKFLASVSTVLTSKYR\\t142\\nsp|P01942|HBA_MOUSE AVHASLDKFLASVSTVLTSKYR\\t142\\nsp|P13786|HBAZ_CAPHI DAHAAWDKFLSIVSGVLTEKYR\\t142\\n .**: ****: ** ***.***\";\nexport var smallTree = '(((UniProt/Swiss-Prot|P26898|IL2RA_SHEEP:0.24036,(UniProt/Swiss-Prot|P41690|IL2RA_FELCA:0.17737,(UniProt/Swiss-Prot|P01589|IL2RA_HUMAN:0.03906,UniProt/Swiss-Prot|Q5MNY4|IL2RA_MACMU:0.03787):0.13033):0.04964):0.02189,UniProt/Swiss-Prot|P01590|IL2RA_MOUSE:0.23072):0.06814,(((UniProt/Swiss-Prot|Q95118|IL2RG_BOVIN:0.09600,UniProt/Swiss-Prot|P40321|IL2RG_CANFA:0.09845):0.25333,UniProt/Swiss-Prot|Q29416|IL2_CANFA:-0.35055):0.10231,(UniProt/Swiss-Prot|P26896|IL2RB_RAT:0.33631,UniProt/Swiss-Prot|Q7JFM4|IL2_AOTVO:-0.33631):0.10166):0.01607,(UniProt/Swiss-Prot|Q8BZM1|GLMN_MOUSE:0.32378,UniProt/Swiss-Prot|P36835|IL2_CAPHI:-0.32378):0.09999)';\n","import React, { useState } from 'react';\nimport { Button, Container, Grid, Typography, Link } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { transaction } from 'mobx';\nimport { FileSelector } from '@jbrowse/core/ui';\nimport { smallTree, smallMSA, smallMSAOnly } from './data/seq2';\nvar ListItem = function (_a) {\n var onClick = _a.onClick, model = _a.model, children = _a.children;\n return (React.createElement(\"li\", null,\n React.createElement(Link, { onClick: function (event) {\n model.setError(undefined);\n event.preventDefault();\n onClick();\n }, href: \"#\" },\n React.createElement(Typography, null, children))));\n};\nexport default observer(function (_a) {\n var model = _a.model;\n var _b = useState(), msaFile = _b[0], setMsaFile = _b[1];\n var _c = useState(), treeFile = _c[0], setTreeFile = _c[1];\n var error = model.error;\n return (React.createElement(Container, null,\n React.createElement(\"div\", { style: { width: '50%' } },\n error ? (React.createElement(\"div\", { style: { padding: 20 } },\n React.createElement(Typography, { color: \"error\" },\n \"Error: \", \"\".concat(error)))) : null,\n React.createElement(Typography, null, \"Open an MSA file (stockholm or clustal format) and/or a tree file (newick format).\"),\n React.createElement(Typography, { color: \"error\" }, \"Note: you can open up just an MSA or just a tree, both are not required. Some MSA files e.g. stockholm format have an embedded tree also and this is fine, and opening a separate tree file is not required.\")),\n React.createElement(Grid, { container: true, spacing: 10, justifyContent: \"center\", alignItems: \"center\" },\n React.createElement(Grid, { item: true },\n React.createElement(Typography, null, \"MSA file or URL\"),\n React.createElement(FileSelector, { location: msaFile, setLocation: setMsaFile }),\n React.createElement(Typography, null, \"Tree file or URL\"),\n React.createElement(FileSelector, { location: treeFile, setLocation: setTreeFile })),\n React.createElement(Grid, { item: true },\n React.createElement(Button, { onClick: function () {\n model.setError(undefined);\n if (msaFile) {\n model.setMSAFilehandle(msaFile);\n }\n if (treeFile) {\n model.setTreeFilehandle(treeFile);\n }\n }, variant: \"contained\", color: \"primary\", disabled: !msaFile && !treeFile }, \"Open\")),\n React.createElement(Grid, { item: true },\n React.createElement(Typography, null, \"Examples\"),\n React.createElement(\"ul\", null,\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setTreeFilehandle({\n uri: 'https://jbrowse.org/genomes/newick_trees/sarscov2phylo.pub.ft.nh',\n locationType: 'UriLocation',\n });\n } }, \"230k COVID-19 samples (tree only)\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setData({ msa: smallMSA, tree: smallTree });\n } }, \"Small protein MSA+tree\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setData({ msa: smallMSAOnly });\n } }, \"Small MSA only\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setMSAFilehandle({\n uri: 'https://ihh.github.io/abrowse/build/pfam-cov2.stock',\n locationType: 'UriLocation',\n });\n } }, \"PFAM SARS-CoV2 multi-stockholm\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setMSAFilehandle({\n uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/Lysine.stock',\n locationType: 'UriLocation',\n });\n } }, \"Lysine stockholm file\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setMSAFilehandle({\n uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/PF01601_full.txt',\n locationType: 'UriLocation',\n });\n } }, \"PF01601 stockholm file (SARS-CoV2 spike protein)\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n model.setMSAFilehandle({\n uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/europe_covid.fa',\n locationType: 'UriLocation',\n });\n } }, \"Europe COVID full genomes (LR883044.1 and 199 other sequences)\"),\n React.createElement(ListItem, { model: model, onClick: function () {\n transaction(function () {\n model.setMSAFilehandle({\n uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/rhv_test-only.aligned_with_mafft_auto.fa',\n locationType: 'UriLocation',\n });\n model.setTreeFilehandle({\n uri: 'https://jbrowse.org/genomes/multiple_sequence_alignments/rhv_test-only.aligned_with_mafft_auto.nh',\n locationType: 'UriLocation',\n });\n });\n } }, \"MAFFT+VeryFastTree(17.9k samples)\"))))));\n});\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@material-ui/core/utils\");","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\n}), 'Assignment');\n\nexports.default = _default;","import React, { useRef, useEffect, useState } from 'react';\nimport { observer } from 'mobx-react';\n// material ui\nimport { Popover, Tooltip, Typography, makeStyles, alpha, } from '@material-ui/core';\nimport AssignmentIcon from '@material-ui/icons/Assignment';\n// import { stringify } from '@jbrowse/core/util'\nimport { Menu } from '@jbrowse/core/ui';\nvar useStyles = makeStyles(function (theme) {\n var background = theme.palette.tertiary\n ? alpha(theme.palette.tertiary.main, 0.7)\n : alpha(theme.palette.primary.main, 0.7);\n return {\n rubberband: {\n height: '100%',\n background: background,\n position: 'absolute',\n zIndex: 10,\n textAlign: 'center',\n overflow: 'hidden',\n },\n rubberbandControl: {\n cursor: 'crosshair',\n width: '100%',\n minHeight: 8,\n },\n rubberbandText: {\n color: theme.palette.tertiary\n ? theme.palette.tertiary.contrastText\n : theme.palette.primary.contrastText,\n },\n popover: {\n mouseEvents: 'none',\n cursor: 'crosshair',\n },\n paper: {\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n },\n guide: {\n pointerEvents: 'none',\n height: '100%',\n width: 1,\n position: 'absolute',\n zIndex: 10,\n },\n };\n});\nvar VerticalGuide = observer(function (_a) {\n var model = _a.model, coordX = _a.coordX;\n var treeAreaWidth = model.treeAreaWidth;\n var classes = useStyles();\n return (React.createElement(React.Fragment, null,\n React.createElement(Tooltip, { open: true, placement: \"top\", title: \"\".concat(model.pxToBp(coordX) + 1), arrow: true },\n React.createElement(\"div\", { style: {\n left: coordX + treeAreaWidth,\n position: 'absolute',\n height: 1,\n } })),\n React.createElement(\"div\", { className: classes.guide, style: {\n left: coordX + treeAreaWidth,\n background: 'red',\n } })));\n});\nfunction Rubberband(_a) {\n var model = _a.model, _b = _a.ControlComponent, ControlComponent = _b === void 0 ? React.createElement(\"div\", null) : _b;\n var treeAreaWidth = model.treeAreaWidth;\n var _c = useState(), startX = _c[0], setStartX = _c[1];\n var _d = useState(), currentX = _d[0], setCurrentX = _d[1];\n // clientX and clientY used for anchorPosition for menu\n // offsetX used for calculations about width of selection\n var _e = useState(), anchorPosition = _e[0], setAnchorPosition = _e[1];\n var _f = useState(), guideX = _f[0], setGuideX = _f[1];\n var controlsRef = useRef(null);\n var rubberbandRef = useRef(null);\n var classes = useStyles();\n var mouseDragging = startX !== undefined && anchorPosition === undefined;\n useEffect(function () {\n function globalMouseMove(event) {\n if (controlsRef.current && mouseDragging) {\n var relativeX = event.clientX - controlsRef.current.getBoundingClientRect().left;\n setCurrentX(relativeX);\n }\n }\n function globalMouseUp(event) {\n if (startX !== undefined && controlsRef.current) {\n var clientX = event.clientX, clientY = event.clientY;\n var ref = controlsRef.current;\n var offsetX = clientX - ref.getBoundingClientRect().left;\n // as stated above, store both clientX/Y and offsetX for different\n // purposes\n setAnchorPosition({\n offsetX: offsetX,\n clientX: clientX,\n clientY: clientY,\n });\n setGuideX(undefined);\n }\n }\n if (mouseDragging) {\n window.addEventListener('mousemove', globalMouseMove);\n window.addEventListener('mouseup', globalMouseUp);\n return function () {\n window.removeEventListener('mousemove', globalMouseMove);\n window.removeEventListener('mouseup', globalMouseUp);\n };\n }\n return function () { };\n }, [startX, mouseDragging, anchorPosition]);\n useEffect(function () {\n if (!mouseDragging &&\n currentX !== undefined &&\n startX !== undefined &&\n Math.abs(currentX - startX) <= 3) {\n handleClose();\n }\n }, [mouseDragging, currentX, startX, model.colWidth]);\n function mouseDown(event) {\n event.preventDefault();\n event.stopPropagation();\n var relativeX = event.clientX -\n event.target.getBoundingClientRect().left;\n setStartX(relativeX);\n setCurrentX(relativeX);\n }\n function mouseMove(event) {\n var target = event.target;\n setGuideX(event.clientX - target.getBoundingClientRect().left);\n }\n function mouseOut() {\n setGuideX(undefined);\n model.clearAnnotPos();\n }\n function handleClose() {\n setAnchorPosition(undefined);\n setStartX(undefined);\n setCurrentX(undefined);\n }\n //eslint-disable-next-line @typescript-eslint/ban-types\n function handleMenuItemClick(_, callback) {\n callback();\n handleClose();\n }\n if (startX === undefined) {\n return (React.createElement(React.Fragment, null,\n guideX !== undefined ? (React.createElement(VerticalGuide, { model: model, coordX: guideX })) : null,\n React.createElement(\"div\", { \"data-testid\": \"rubberband_controls\", className: classes.rubberbandControl, role: \"presentation\", ref: controlsRef, onMouseDown: mouseDown, onMouseOut: mouseOut, onMouseMove: mouseMove }, ControlComponent)));\n }\n var right = anchorPosition ? anchorPosition.offsetX : currentX || 0;\n var left = right < startX ? right : startX;\n var width = Math.abs(right - startX);\n var leftBpOffset = model.pxToBp(left);\n var rightBpOffset = model.pxToBp(left + width);\n var numOfBpSelected = Math.ceil(width / model.colWidth);\n var menuItems = [\n {\n label: 'Create annotation',\n icon: AssignmentIcon,\n onClick: function () {\n model.setOffsets(leftBpOffset, rightBpOffset);\n handleClose();\n },\n },\n ];\n return (React.createElement(React.Fragment, null,\n rubberbandRef.current ? (React.createElement(React.Fragment, null,\n React.createElement(Popover, { className: classes.popover, classes: {\n paper: classes.paper,\n }, open: true, anchorEl: rubberbandRef.current, anchorOrigin: {\n vertical: 'top',\n horizontal: 'left',\n }, transformOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n }, keepMounted: true, disableRestoreFocus: true },\n React.createElement(Typography, null, leftBpOffset + 1)),\n React.createElement(Popover, { className: classes.popover, classes: {\n paper: classes.paper,\n }, open: true, anchorEl: rubberbandRef.current, anchorOrigin: {\n vertical: 'top',\n horizontal: 'right',\n }, transformOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n }, keepMounted: true, disableRestoreFocus: true },\n React.createElement(Typography, null, rightBpOffset + 1)))) : null,\n React.createElement(\"div\", { ref: rubberbandRef, className: classes.rubberband, style: { left: left + treeAreaWidth, width: width } },\n React.createElement(Typography, { variant: \"h6\", className: classes.rubberbandText },\n numOfBpSelected.toLocaleString('en-US'),\n \" bp\")),\n React.createElement(\"div\", { \"data-testid\": \"rubberband_controls\", className: classes.rubberbandControl, role: \"presentation\", ref: controlsRef, onMouseDown: mouseDown, onMouseOut: mouseOut, onMouseMove: mouseMove }, ControlComponent),\n anchorPosition ? (React.createElement(Menu, { anchorReference: \"anchorPosition\", anchorPosition: {\n left: anchorPosition.clientX,\n top: anchorPosition.clientY,\n }, onMenuItemClick: handleMenuItemClick, open: Boolean(anchorPosition), onClose: handleClose, menuItems: menuItems })) : null));\n}\nexport default observer(Rubberband);\n","/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * @providesModule UserAgent_DEPRECATED\n */\n\n/**\n * Provides entirely client-side User Agent and OS detection. You should prefer\n * the non-deprecated UserAgent module when possible, which exposes our\n * authoritative server-side PHP-based detection to the client.\n *\n * Usage is straightforward:\n *\n * if (UserAgent_DEPRECATED.ie()) {\n * // IE\n * }\n *\n * You can also do version checks:\n *\n * if (UserAgent_DEPRECATED.ie() >= 7) {\n * // IE7 or better\n * }\n *\n * The browser functions will return NaN if the browser does not match, so\n * you can also do version compares the other way:\n *\n * if (UserAgent_DEPRECATED.ie() < 7) {\n * // IE6 or worse\n * }\n *\n * Note that the version is a float and may include a minor version number,\n * so you should always use range operators to perform comparisons, not\n * strict equality.\n *\n * **Note:** You should **strongly** prefer capability detection to browser\n * version detection where it's reasonable:\n *\n * http://www.quirksmode.org/js/support.html\n *\n * Further, we have a large number of mature wrapper functions and classes\n * which abstract away many browser irregularities. Check the documentation,\n * grep for things, or ask on javascript@lists.facebook.com before writing yet\n * another copy of \"event || window.event\".\n *\n */\n\nvar _populated = false;\n\n// Browsers\nvar _ie, _firefox, _opera, _webkit, _chrome;\n\n// Actual IE browser for compatibility mode\nvar _ie_real_version;\n\n// Platforms\nvar _osx, _windows, _linux, _android;\n\n// Architectures\nvar _win64;\n\n// Devices\nvar _iphone, _ipad, _native;\n\nvar _mobile;\n\nfunction _populate() {\n if (_populated) {\n return;\n }\n\n _populated = true;\n\n // To work around buggy JS libraries that can't handle multi-digit\n // version numbers, Opera 10's user agent string claims it's Opera\n // 9, then later includes a Version/X.Y field:\n //\n // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas);\n\n // Note that the IE team blog would have you believe you should be checking\n // for 'Win64; x64'. But MSDN then reveals that you can actually be coming\n // from either x64 or ia64; so ultimately, you should just check for Win64\n // as in indicator of whether you're in 64-bit IE. 32-bit IE on 64-bit\n // Windows will send 'WOW64' instead.\n _win64 = !!(/Win64/.exec(uas));\n\n if (agent) {\n _ie = agent[1] ? parseFloat(agent[1]) : (\n agent[5] ? parseFloat(agent[5]) : NaN);\n // IE compatibility mode\n if (_ie && document && document.documentMode) {\n _ie = document.documentMode;\n }\n // grab the \"true\" ie version from the trident token if available\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n if (_webkit) {\n // We do not add the regexp to the above test, because it will always\n // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n // the userAgent string.\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = _firefox = _opera = _chrome = _webkit = NaN;\n }\n\n if (os) {\n if (os[1]) {\n // Detect OS X version. If no version number matches, set _osx to true.\n // Version examples: 10, 10_6_1, 10.7\n // Parses version number as a float, taking only first two sets of\n // digits. If only one set of digits is found, returns just the major\n // version number.\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n\n _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n } else {\n _osx = false;\n }\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = _windows = _linux = false;\n }\n}\n\nvar UserAgent_DEPRECATED = {\n\n /**\n * Check if the UA is Internet Explorer.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n ie: function() {\n return _populate() || _ie;\n },\n\n /**\n * Check if we're in Internet Explorer compatibility mode.\n *\n * @return bool true if in compatibility mode, false if\n * not compatibility mode or not ie\n */\n ieCompatibilityMode: function() {\n return _populate() || (_ie_real_version > _ie);\n },\n\n\n /**\n * Whether the browser is 64-bit IE. Really, this is kind of weak sauce; we\n * only need this because Skype can't handle 64-bit IE yet. We need to remove\n * this when we don't need it -- tracked by #601957.\n */\n ie64: function() {\n return UserAgent_DEPRECATED.ie() && _win64;\n },\n\n /**\n * Check if the UA is Firefox.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n firefox: function() {\n return _populate() || _firefox;\n },\n\n\n /**\n * Check if the UA is Opera.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n opera: function() {\n return _populate() || _opera;\n },\n\n\n /**\n * Check if the UA is WebKit.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n webkit: function() {\n return _populate() || _webkit;\n },\n\n /**\n * For Push\n * WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n */\n safari: function() {\n return UserAgent_DEPRECATED.webkit();\n },\n\n /**\n * Check if the UA is a Chrome browser.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n chrome : function() {\n return _populate() || _chrome;\n },\n\n\n /**\n * Check if the user is running Windows.\n *\n * @return bool `true' if the user's OS is Windows.\n */\n windows: function() {\n return _populate() || _windows;\n },\n\n\n /**\n * Check if the user is running Mac OS X.\n *\n * @return float|bool Returns a float if a version number is detected,\n * otherwise true/false.\n */\n osx: function() {\n return _populate() || _osx;\n },\n\n /**\n * Check if the user is running Linux.\n *\n * @return bool `true' if the user's OS is some flavor of Linux.\n */\n linux: function() {\n return _populate() || _linux;\n },\n\n /**\n * Check if the user is running on an iPhone or iPod platform.\n *\n * @return bool `true' if the user is running some flavor of the\n * iPhone OS.\n */\n iphone: function() {\n return _populate() || _iphone;\n },\n\n mobile: function() {\n return _populate() || (_iphone || _ipad || _android || _mobile);\n },\n\n nativeApp: function() {\n // webviews inside of the native apps\n return _populate() || _native;\n },\n\n android: function() {\n return _populate() || _android;\n },\n\n ipad: function() {\n return _populate() || _ipad;\n }\n};\n\nmodule.exports = UserAgent_DEPRECATED;\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n/*jslint evil: true */\n\n'use strict';\n\nvar canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners:\n canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature =\n document.implementation &&\n document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM ||\n capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule normalizeWheel\n * @typechecks\n */\n\n'use strict';\n\nvar UserAgent_DEPRECATED = require('./UserAgent_DEPRECATED');\n\nvar isEventSupported = require('./isEventSupported');\n\n\n// Reasonable defaults\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n\n/**\n * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\n * your questions.\n *\n * If you need to react to the mouse wheel in a predictable way, this code is\n * like your bestest friend. * hugs *\n *\n * As of today, there are 4 DOM event types you can listen to:\n *\n * 'wheel' -- Chrome(31+), FF(17+), IE(9+)\n * 'mousewheel' -- Chrome, IE(6+), Opera, Safari\n * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\n * 'DOMMouseScroll' -- FF(0.9.7+) since 2003\n *\n * So what to do? The is the best:\n *\n * normalizeWheel.getEventType();\n *\n * In your event callback, use this code to get sane interpretation of the\n * deltas. This code will return an object with properties:\n *\n * spinX -- normalized spin speed (use for zoom) - x plane\n * spinY -- \" - y plane\n * pixelX -- normalized distance (to pixels) - x plane\n * pixelY -- \" - y plane\n *\n * Wheel values are provided by the browser assuming you are using the wheel to\n * scroll a web page by a number of lines or pixels (or pages). Values can vary\n * significantly on different platforms and browsers, forgetting that you can\n * scroll at different speeds. Some devices (like trackpads) emit more events\n * at smaller increments with fine granularity, and some emit massive jumps with\n * linear speed or acceleration.\n *\n * This code does its best to normalize the deltas for you:\n *\n * - spin is trying to normalize how far the wheel was spun (or trackpad\n * dragged). This is super useful for zoom support where you want to\n * throw away the chunky scroll steps on the PC and make those equal to\n * the slow and smooth tiny steps on the Mac. Key data: This code tries to\n * resolve a single slow step on a wheel to 1.\n *\n * - pixel is normalizing the desired scroll delta in pixel units. You'll\n * get the crazy differences between browsers, but at least it'll be in\n * pixels!\n *\n * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\n * should translate to positive value zooming IN, negative zooming OUT.\n * This matches the newer 'wheel' event.\n *\n * Why are there spinX, spinY (or pixels)?\n *\n * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n * with a mouse. It results in side-scrolling in the browser by default.\n *\n * - spinY is what you expect -- it's the classic axis of a mouse wheel.\n *\n * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\n * probably is by browsers in conjunction with fancy 3D controllers .. but\n * you know.\n *\n * Implementation info:\n *\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n * average mouse:\n *\n * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\n * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\n * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\n * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\n * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\n *\n * On the trackpad:\n *\n * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\n * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\n *\n * On other/older browsers.. it's more complicated as there can be multiple and\n * also missing delta values.\n *\n * The 'wheel' event is more standard:\n *\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n *\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\n * backward compatibility with older events. Those other values help us\n * better normalize spin speed. Example of what the browsers provide:\n *\n * | event.wheelDelta | event.detail\n * ------------------+------------------+--------------\n * Safari v5/OS X | -120 | 0\n * Safari v5/Win7 | -120 | 0\n * Chrome v17/OS X | -120 | 0\n * Chrome v17/Win7 | -120 | 0\n * IE9/Win7 | -120 | undefined\n * Firefox v4/OS X | undefined | 1\n * Firefox v4/Win7 | undefined | 3\n *\n */\nfunction normalizeWheel(/*object*/ event) /*object*/ {\n var sX = 0, sY = 0, // spinX, spinY\n pX = 0, pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in event) { sY = event.detail; }\n if ('wheelDelta' in event) { sY = -event.wheelDelta / 120; }\n if ('wheelDeltaY' in event) { sY = -event.wheelDeltaY / 120; }\n if ('wheelDeltaX' in event) { sX = -event.wheelDeltaX / 120; }\n\n // side scrolling on FF with DOMMouseScroll\n if ( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in event) { pY = event.deltaY; }\n if ('deltaX' in event) { pX = event.deltaX; }\n\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode == 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) { sX = (pX < 1) ? -1 : 1; }\n if (pY && !sY) { sY = (pY < 1) ? -1 : 1; }\n\n return { spinX : sX,\n spinY : sY,\n pixelX : pX,\n pixelY : pY };\n}\n\n\n/**\n * The best combination if you prefer spinX + spinY normalization. It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\nnormalizeWheel.getEventType = function() /*string*/ {\n return (UserAgent_DEPRECATED.firefox())\n ? 'DOMMouseScroll'\n : (isEventSupported('wheel'))\n ? 'wheel'\n : 'mousewheel';\n};\n\nmodule.exports = normalizeWheel;\n","module.exports = require('./src/normalizeWheel.js');\n","\nexport default function quickselect(arr, k, left, right, compare) {\n quickselectStep(arr, k, left || 0, right || (arr.length - 1), compare || defaultCompare);\n}\n\nfunction quickselectStep(arr, k, left, right, compare) {\n\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselectStep(arr, k, newLeft, newRight, compare);\n }\n\n var t = arr[k];\n var i = left;\n var j = right;\n\n swap(arr, left, k);\n if (compare(arr[right], t) > 0) swap(arr, left, right);\n\n while (i < j) {\n swap(arr, i, j);\n i++;\n j--;\n while (compare(arr[i], t) < 0) i++;\n while (compare(arr[j], t) > 0) j--;\n }\n\n if (compare(arr[left], t) === 0) swap(arr, left, j);\n else {\n j++;\n swap(arr, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\nfunction swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction defaultCompare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n","import quickselect from 'quickselect';\n\nexport default class RBush {\n constructor(maxEntries = 9) {\n // max entries in a node is 9 by default; min node fill is 40% for best performance\n this._maxEntries = Math.max(4, maxEntries);\n this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4));\n this.clear();\n }\n\n all() {\n return this._all(this.data, []);\n }\n\n search(bbox) {\n let node = this.data;\n const result = [];\n\n if (!intersects(bbox, node)) return result;\n\n const toBBox = this.toBBox;\n const nodesToSearch = [];\n\n while (node) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const childBBox = node.leaf ? toBBox(child) : child;\n\n if (intersects(bbox, childBBox)) {\n if (node.leaf) result.push(child);\n else if (contains(bbox, childBBox)) this._all(child, result);\n else nodesToSearch.push(child);\n }\n }\n node = nodesToSearch.pop();\n }\n\n return result;\n }\n\n collides(bbox) {\n let node = this.data;\n\n if (!intersects(bbox, node)) return false;\n\n const nodesToSearch = [];\n while (node) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const childBBox = node.leaf ? this.toBBox(child) : child;\n\n if (intersects(bbox, childBBox)) {\n if (node.leaf || contains(bbox, childBBox)) return true;\n nodesToSearch.push(child);\n }\n }\n node = nodesToSearch.pop();\n }\n\n return false;\n }\n\n load(data) {\n if (!(data && data.length)) return this;\n\n if (data.length < this._minEntries) {\n for (let i = 0; i < data.length; i++) {\n this.insert(data[i]);\n }\n return this;\n }\n\n // recursively build the tree with the given data from scratch using OMT algorithm\n let node = this._build(data.slice(), 0, data.length - 1, 0);\n\n if (!this.data.children.length) {\n // save as is if tree is empty\n this.data = node;\n\n } else if (this.data.height === node.height) {\n // split root if trees have the same height\n this._splitRoot(this.data, node);\n\n } else {\n if (this.data.height < node.height) {\n // swap trees if inserted one is bigger\n const tmpNode = this.data;\n this.data = node;\n node = tmpNode;\n }\n\n // insert the small tree into the large tree at appropriate level\n this._insert(node, this.data.height - node.height - 1, true);\n }\n\n return this;\n }\n\n insert(item) {\n if (item) this._insert(item, this.data.height - 1);\n return this;\n }\n\n clear() {\n this.data = createNode([]);\n return this;\n }\n\n remove(item, equalsFn) {\n if (!item) return this;\n\n let node = this.data;\n const bbox = this.toBBox(item);\n const path = [];\n const indexes = [];\n let i, parent, goingUp;\n\n // depth-first iterative tree traversal\n while (node || path.length) {\n\n if (!node) { // go up\n node = path.pop();\n parent = path[path.length - 1];\n i = indexes.pop();\n goingUp = true;\n }\n\n if (node.leaf) { // check current node\n const index = findItem(item, node.children, equalsFn);\n\n if (index !== -1) {\n // item found, remove the item and condense tree upwards\n node.children.splice(index, 1);\n path.push(node);\n this._condense(path);\n return this;\n }\n }\n\n if (!goingUp && !node.leaf && contains(node, bbox)) { // go down\n path.push(node);\n indexes.push(i);\n i = 0;\n parent = node;\n node = node.children[0];\n\n } else if (parent) { // go right\n i++;\n node = parent.children[i];\n goingUp = false;\n\n } else node = null; // nothing found\n }\n\n return this;\n }\n\n toBBox(item) { return item; }\n\n compareMinX(a, b) { return a.minX - b.minX; }\n compareMinY(a, b) { return a.minY - b.minY; }\n\n toJSON() { return this.data; }\n\n fromJSON(data) {\n this.data = data;\n return this;\n }\n\n _all(node, result) {\n const nodesToSearch = [];\n while (node) {\n if (node.leaf) result.push(...node.children);\n else nodesToSearch.push(...node.children);\n\n node = nodesToSearch.pop();\n }\n return result;\n }\n\n _build(items, left, right, height) {\n\n const N = right - left + 1;\n let M = this._maxEntries;\n let node;\n\n if (N <= M) {\n // reached leaf level; return leaf\n node = createNode(items.slice(left, right + 1));\n calcBBox(node, this.toBBox);\n return node;\n }\n\n if (!height) {\n // target height of the bulk-loaded tree\n height = Math.ceil(Math.log(N) / Math.log(M));\n\n // target number of root entries to maximize storage utilization\n M = Math.ceil(N / Math.pow(M, height - 1));\n }\n\n node = createNode([]);\n node.leaf = false;\n node.height = height;\n\n // split the items into M mostly square tiles\n\n const N2 = Math.ceil(N / M);\n const N1 = N2 * Math.ceil(Math.sqrt(M));\n\n multiSelect(items, left, right, N1, this.compareMinX);\n\n for (let i = left; i <= right; i += N1) {\n\n const right2 = Math.min(i + N1 - 1, right);\n\n multiSelect(items, i, right2, N2, this.compareMinY);\n\n for (let j = i; j <= right2; j += N2) {\n\n const right3 = Math.min(j + N2 - 1, right2);\n\n // pack each entry recursively\n node.children.push(this._build(items, j, right3, height - 1));\n }\n }\n\n calcBBox(node, this.toBBox);\n\n return node;\n }\n\n _chooseSubtree(bbox, node, level, path) {\n while (true) {\n path.push(node);\n\n if (node.leaf || path.length - 1 === level) break;\n\n let minArea = Infinity;\n let minEnlargement = Infinity;\n let targetNode;\n\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const area = bboxArea(child);\n const enlargement = enlargedArea(bbox, child) - area;\n\n // choose entry with the least area enlargement\n if (enlargement < minEnlargement) {\n minEnlargement = enlargement;\n minArea = area < minArea ? area : minArea;\n targetNode = child;\n\n } else if (enlargement === minEnlargement) {\n // otherwise choose one with the smallest area\n if (area < minArea) {\n minArea = area;\n targetNode = child;\n }\n }\n }\n\n node = targetNode || node.children[0];\n }\n\n return node;\n }\n\n _insert(item, level, isNode) {\n const bbox = isNode ? item : this.toBBox(item);\n const insertPath = [];\n\n // find the best node for accommodating the item, saving all nodes along the path too\n const node = this._chooseSubtree(bbox, this.data, level, insertPath);\n\n // put the item into the node\n node.children.push(item);\n extend(node, bbox);\n\n // split on node overflow; propagate upwards if necessary\n while (level >= 0) {\n if (insertPath[level].children.length > this._maxEntries) {\n this._split(insertPath, level);\n level--;\n } else break;\n }\n\n // adjust bboxes along the insertion path\n this._adjustParentBBoxes(bbox, insertPath, level);\n }\n\n // split overflowed node into two\n _split(insertPath, level) {\n const node = insertPath[level];\n const M = node.children.length;\n const m = this._minEntries;\n\n this._chooseSplitAxis(node, m, M);\n\n const splitIndex = this._chooseSplitIndex(node, m, M);\n\n const newNode = createNode(node.children.splice(splitIndex, node.children.length - splitIndex));\n newNode.height = node.height;\n newNode.leaf = node.leaf;\n\n calcBBox(node, this.toBBox);\n calcBBox(newNode, this.toBBox);\n\n if (level) insertPath[level - 1].children.push(newNode);\n else this._splitRoot(node, newNode);\n }\n\n _splitRoot(node, newNode) {\n // split root node\n this.data = createNode([node, newNode]);\n this.data.height = node.height + 1;\n this.data.leaf = false;\n calcBBox(this.data, this.toBBox);\n }\n\n _chooseSplitIndex(node, m, M) {\n let index;\n let minOverlap = Infinity;\n let minArea = Infinity;\n\n for (let i = m; i <= M - m; i++) {\n const bbox1 = distBBox(node, 0, i, this.toBBox);\n const bbox2 = distBBox(node, i, M, this.toBBox);\n\n const overlap = intersectionArea(bbox1, bbox2);\n const area = bboxArea(bbox1) + bboxArea(bbox2);\n\n // choose distribution with minimum overlap\n if (overlap < minOverlap) {\n minOverlap = overlap;\n index = i;\n\n minArea = area < minArea ? area : minArea;\n\n } else if (overlap === minOverlap) {\n // otherwise choose distribution with minimum area\n if (area < minArea) {\n minArea = area;\n index = i;\n }\n }\n }\n\n return index || M - m;\n }\n\n // sorts node children by the best axis for split\n _chooseSplitAxis(node, m, M) {\n const compareMinX = node.leaf ? this.compareMinX : compareNodeMinX;\n const compareMinY = node.leaf ? this.compareMinY : compareNodeMinY;\n const xMargin = this._allDistMargin(node, m, M, compareMinX);\n const yMargin = this._allDistMargin(node, m, M, compareMinY);\n\n // if total distributions margin value is minimal for x, sort by minX,\n // otherwise it's already sorted by minY\n if (xMargin < yMargin) node.children.sort(compareMinX);\n }\n\n // total margin of all possible split distributions where each node is at least m full\n _allDistMargin(node, m, M, compare) {\n node.children.sort(compare);\n\n const toBBox = this.toBBox;\n const leftBBox = distBBox(node, 0, m, toBBox);\n const rightBBox = distBBox(node, M - m, M, toBBox);\n let margin = bboxMargin(leftBBox) + bboxMargin(rightBBox);\n\n for (let i = m; i < M - m; i++) {\n const child = node.children[i];\n extend(leftBBox, node.leaf ? toBBox(child) : child);\n margin += bboxMargin(leftBBox);\n }\n\n for (let i = M - m - 1; i >= m; i--) {\n const child = node.children[i];\n extend(rightBBox, node.leaf ? toBBox(child) : child);\n margin += bboxMargin(rightBBox);\n }\n\n return margin;\n }\n\n _adjustParentBBoxes(bbox, path, level) {\n // adjust bboxes along the given tree path\n for (let i = level; i >= 0; i--) {\n extend(path[i], bbox);\n }\n }\n\n _condense(path) {\n // go through the path, removing empty nodes and updating bboxes\n for (let i = path.length - 1, siblings; i >= 0; i--) {\n if (path[i].children.length === 0) {\n if (i > 0) {\n siblings = path[i - 1].children;\n siblings.splice(siblings.indexOf(path[i]), 1);\n\n } else this.clear();\n\n } else calcBBox(path[i], this.toBBox);\n }\n }\n}\n\nfunction findItem(item, items, equalsFn) {\n if (!equalsFn) return items.indexOf(item);\n\n for (let i = 0; i < items.length; i++) {\n if (equalsFn(item, items[i])) return i;\n }\n return -1;\n}\n\n// calculate node's bbox from bboxes of its children\nfunction calcBBox(node, toBBox) {\n distBBox(node, 0, node.children.length, toBBox, node);\n}\n\n// min bounding rectangle of node children from k to p-1\nfunction distBBox(node, k, p, toBBox, destNode) {\n if (!destNode) destNode = createNode(null);\n destNode.minX = Infinity;\n destNode.minY = Infinity;\n destNode.maxX = -Infinity;\n destNode.maxY = -Infinity;\n\n for (let i = k; i < p; i++) {\n const child = node.children[i];\n extend(destNode, node.leaf ? toBBox(child) : child);\n }\n\n return destNode;\n}\n\nfunction extend(a, b) {\n a.minX = Math.min(a.minX, b.minX);\n a.minY = Math.min(a.minY, b.minY);\n a.maxX = Math.max(a.maxX, b.maxX);\n a.maxY = Math.max(a.maxY, b.maxY);\n return a;\n}\n\nfunction compareNodeMinX(a, b) { return a.minX - b.minX; }\nfunction compareNodeMinY(a, b) { return a.minY - b.minY; }\n\nfunction bboxArea(a) { return (a.maxX - a.minX) * (a.maxY - a.minY); }\nfunction bboxMargin(a) { return (a.maxX - a.minX) + (a.maxY - a.minY); }\n\nfunction enlargedArea(a, b) {\n return (Math.max(b.maxX, a.maxX) - Math.min(b.minX, a.minX)) *\n (Math.max(b.maxY, a.maxY) - Math.min(b.minY, a.minY));\n}\n\nfunction intersectionArea(a, b) {\n const minX = Math.max(a.minX, b.minX);\n const minY = Math.max(a.minY, b.minY);\n const maxX = Math.min(a.maxX, b.maxX);\n const maxY = Math.min(a.maxY, b.maxY);\n\n return Math.max(0, maxX - minX) *\n Math.max(0, maxY - minY);\n}\n\nfunction contains(a, b) {\n return a.minX <= b.minX &&\n a.minY <= b.minY &&\n b.maxX <= a.maxX &&\n b.maxY <= a.maxY;\n}\n\nfunction intersects(a, b) {\n return b.minX <= a.maxX &&\n b.minY <= a.maxY &&\n b.maxX >= a.minX &&\n b.maxY >= a.minY;\n}\n\nfunction createNode(children) {\n return {\n children,\n height: 1,\n leaf: true,\n minX: Infinity,\n minY: Infinity,\n maxX: -Infinity,\n maxY: -Infinity\n };\n}\n\n// sort an array so that items come in groups of n unsorted items, with groups sorted between each other;\n// combines selection algorithm with binary divide & conquer approach\n\nfunction multiSelect(arr, left, right, n, compare) {\n const stack = [left, right];\n\n while (stack.length) {\n right = stack.pop();\n left = stack.pop();\n\n if (right - left <= n) continue;\n\n const mid = left + Math.ceil((right - left) / n / 2) * n;\n quickselect(arr, mid, left, right, compare);\n\n stack.push(left, mid, mid, right);\n }\n}\n","import React from 'react';\nimport { Dialog, DialogTitle, DialogContent } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { Attributes } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail';\nexport default observer(function (_a) {\n var info = _a.info, onClose = _a.onClose;\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: true },\n React.createElement(DialogTitle, null, \"Metadata\"),\n React.createElement(DialogContent, null,\n React.createElement(Attributes, { attributes: info }))));\n});\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Menu, MenuItem } from '@material-ui/core';\nimport normalizeWheel from 'normalize-wheel';\nimport { observer } from 'mobx-react';\nimport RBush from 'rbush';\nimport MoreInfoDlg from './MoreInfoDlg';\nvar extendBounds = 5;\nvar radius = 3.5;\nvar d = radius * 2;\nvar padding = 600;\nvar TreeMenu = observer(function (_a) {\n var _b, _c;\n var node = _a.node, onClose = _a.onClose, model = _a.model;\n var structures = model.structures;\n var nodeDetails = node ? model.getRowDetails(node.name) : undefined;\n return (React.createElement(React.Fragment, null,\n React.createElement(Menu, { anchorReference: \"anchorPosition\", anchorPosition: {\n top: node.y,\n left: node.x,\n }, transitionDuration: 0, keepMounted: true, open: Boolean(node), onClose: onClose },\n React.createElement(MenuItem, { dense: true, disabled: true }, node.name),\n React.createElement(MenuItem, { dense: true, onClick: function () {\n model.setDialogComponent(MoreInfoDlg, {\n info: model.getRowDetails(node.name),\n });\n onClose();\n } }, \"More info...\"), (_b = structures[node.name]) === null || _b === void 0 ? void 0 :\n _b.map(function (entry) {\n return !model.selectedStructures.find(function (n) { return n.id === node.name; }) ? (React.createElement(MenuItem, { key: JSON.stringify(entry), dense: true, onClick: function () {\n model.addStructureToSelection({\n structure: entry,\n id: node.name,\n });\n onClose();\n } },\n \"Add PDB to selection (\",\n entry.pdb,\n \")\")) : (React.createElement(MenuItem, { key: JSON.stringify(entry), dense: true, onClick: function () {\n model.removeStructureFromSelection({\n structure: entry,\n id: node.name,\n });\n onClose();\n } },\n \"Remove PDB from selection (\",\n entry.pdb,\n \")\"));\n }), (_c = nodeDetails.accession) === null || _c === void 0 ? void 0 :\n _c.map(function (accession) { return (React.createElement(MenuItem, { dense: true, key: accession, onClick: function () {\n model.addUniprotTrack({ name: nodeDetails.name, accession: accession });\n onClose();\n } },\n \"Open UniProt track (\",\n accession,\n \")\")); }))));\n});\nvar TreeBranchMenu = observer(function (_a) {\n var node = _a.node, model = _a.model, onClose = _a.onClose;\n return (React.createElement(Menu, { anchorReference: \"anchorPosition\", anchorPosition: {\n left: node.x,\n top: node.y,\n }, transitionDuration: 0, keepMounted: true, open: Boolean(node), onClose: onClose },\n React.createElement(MenuItem, { dense: true, disabled: true }, node.name),\n React.createElement(MenuItem, { dense: true, onClick: function () {\n model.toggleCollapsed(node.id);\n onClose();\n } }, model.collapsed.includes(node.id)\n ? 'Expand this node'\n : 'Collapse this node'),\n React.createElement(MenuItem, { dense: true, onClick: function () {\n model.showOnly === node.id\n ? model.setShowOnly(undefined)\n : model.setShowOnly(node.id);\n onClose();\n } }, model.showOnly === node.id\n ? 'Disable show only this node'\n : 'Show only this node')));\n});\nvar TreeBlock = observer(function (_a) {\n var model = _a.model, offsetY = _a.offsetY;\n var ref = useRef(null);\n var clickMap = useRef(new RBush());\n var mouseoverRef = useRef(null);\n var _b = useState(), branchMenu = _b[0], setBranchMenu = _b[1];\n var _c = useState(), toggleNodeMenu = _c[0], setToggleNodeMenu = _c[1];\n var _d = useState(), hoverElt = _d[0], setHoverElt = _d[1];\n var hierarchy = model.hierarchy, rowHeight = model.rowHeight, scrollY = model.scrollY, treeWidth = model.treeWidth, showBranchLen = model.showBranchLen, collapsed = model.collapsed, margin = model.margin, labelsAlignRight = model.labelsAlignRight, noTree = model.noTree, blockSize = model.blockSize, drawNodeBubbles = model.drawNodeBubbles, drawTree = model.drawTree, treeAreaWidth = model.treeAreaWidth, structures = model.structures, highResScaleFactor = model.highResScaleFactor;\n useEffect(function () {\n clickMap.current.clear();\n if (!ref.current) {\n return;\n }\n var ctx = ref.current.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.resetTransform();\n ctx.scale(highResScaleFactor, highResScaleFactor);\n ctx.clearRect(0, 0, treeWidth + padding, blockSize);\n ctx.translate(margin.left, -offsetY);\n var font = ctx.font;\n ctx.font = font.replace(/\\d+px/, \"\".concat(Math.max(8, rowHeight - 8), \"px\"));\n if (!noTree && drawTree) {\n hierarchy.links().forEach(function (_a) {\n var source = _a.source, target = _a.target;\n var y = showBranchLen ? 'len' : 'y';\n //@ts-ignore\n var _b = source, sy = _b.x, _c = y, sx = _b[_c];\n //@ts-ignore\n var _d = target, ty = _d.x, _e = y, tx = _d[_e];\n var y1 = Math.min(sy, ty);\n var y2 = Math.max(sy, ty);\n //1d line intersection to check if line crosses block at all, this is\n //an optimization that allows us to skip drawing most tree links\n //outside the block\n if (offsetY + blockSize >= y1 && y2 >= offsetY) {\n ctx.beginPath();\n ctx.moveTo(sx, sy);\n ctx.lineTo(sx, ty);\n ctx.lineTo(tx, ty);\n ctx.stroke();\n }\n });\n if (drawNodeBubbles) {\n hierarchy.descendants().forEach(function (node) {\n var val = showBranchLen ? 'len' : 'y';\n var _a = node, \n //@ts-ignore\n y = _a.x, \n //@ts-ignore\n _b = val, \n //@ts-ignore\n x = _a[_b], data = _a.data;\n var _c = data.id, id = _c === void 0 ? '' : _c, _d = data.name, name = _d === void 0 ? '' : _d;\n if (y > offsetY - extendBounds &&\n y < offsetY + blockSize + extendBounds) {\n ctx.strokeStyle = 'black';\n ctx.fillStyle = collapsed.includes(id) ? 'black' : 'white';\n ctx.beginPath();\n ctx.arc(x, y, radius, 0, 2 * Math.PI);\n ctx.fill();\n ctx.stroke();\n clickMap.current.insert({\n minX: x - radius,\n maxX: x - radius + d,\n minY: y - radius,\n maxY: y - radius + d,\n branch: true,\n id: id,\n name: name,\n });\n }\n });\n }\n }\n if (rowHeight >= 10) {\n if (labelsAlignRight) {\n ctx.textAlign = 'right';\n ctx.setLineDash([1, 3]);\n }\n else {\n ctx.textAlign = 'start';\n }\n hierarchy.leaves().forEach(function (node) {\n var \n //@ts-ignore\n y = node.x, \n //@ts-ignore\n x = node.y, _a = node.data, name = _a.name, id = _a.id, \n //@ts-ignore\n len = node.len;\n if (y > offsetY - extendBounds &&\n y < offsetY + blockSize + extendBounds) {\n //note: +rowHeight/4 matches with -rowHeight/4 in msa\n var yp = y + rowHeight / 4;\n var xp = showBranchLen ? len : x;\n var width = ctx.measureText(name).width;\n var height = ctx.measureText('M').width; // use an 'em' for height\n var hasStructure = structures[name];\n ctx.fillStyle = hasStructure ? 'blue' : 'black';\n if (!drawTree && !labelsAlignRight) {\n ctx.fillText(name, 0, yp);\n clickMap.current.insert({\n minX: 0,\n maxX: width,\n minY: yp - height,\n maxY: yp,\n name: name,\n id: id,\n });\n }\n else if (labelsAlignRight) {\n var smallPadding = 2;\n var offset = treeAreaWidth - smallPadding - margin.left;\n if (drawTree && !noTree) {\n var width_1 = ctx.measureText(name).width;\n ctx.moveTo(xp + radius + 2, y);\n ctx.lineTo(offset - smallPadding - width_1, y);\n ctx.stroke();\n }\n ctx.fillText(name, offset, yp);\n clickMap.current.insert({\n minX: treeAreaWidth - margin.left - width,\n maxX: treeAreaWidth - margin.left,\n minY: yp - height,\n maxY: yp,\n name: name,\n id: id,\n });\n }\n else {\n ctx.fillText(name, xp + d, yp);\n clickMap.current.insert({\n minX: xp + d,\n maxX: xp + d + width,\n minY: yp - height,\n maxY: yp,\n name: name,\n id: id,\n });\n }\n }\n });\n ctx.setLineDash([]);\n }\n }, [\n collapsed,\n rowHeight,\n margin.left,\n hierarchy,\n offsetY,\n treeWidth,\n showBranchLen,\n noTree,\n blockSize,\n drawNodeBubbles,\n drawTree,\n labelsAlignRight,\n treeAreaWidth,\n structures,\n highResScaleFactor,\n ]);\n useEffect(function () {\n var canvas = mouseoverRef.current;\n if (!canvas) {\n return;\n }\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.resetTransform();\n ctx.clearRect(0, 0, treeWidth + padding, blockSize);\n ctx.translate(margin.left, -offsetY);\n if (hoverElt) {\n var minX = hoverElt.minX, maxX = hoverElt.maxX, minY = hoverElt.minY, maxY = hoverElt.maxY;\n ctx.fillStyle = 'rgba(0,0,0,0.1)';\n ctx.fillRect(minX, minY, maxX - minX, maxY - minY);\n }\n }, [hoverElt, margin.left, offsetY, blockSize, treeWidth]);\n function hoverBranchClickMap(event) {\n var x = event.nativeEvent.offsetX - margin.left;\n var y = event.nativeEvent.offsetY;\n var entry = clickMap.current.search({\n minX: x,\n maxX: x + 1,\n minY: y + offsetY,\n maxY: y + 1 + offsetY,\n })[0];\n return entry && entry.branch\n ? __assign(__assign({}, entry), { x: event.clientX, y: event.clientY }) : undefined;\n }\n function hoverNameClickMap(event) {\n var x = event.nativeEvent.offsetX - margin.left;\n var y = event.nativeEvent.offsetY;\n var entry = clickMap.current.search({\n minX: x,\n maxX: x + 1,\n minY: y + offsetY,\n maxY: y + 1 + offsetY,\n })[0];\n return entry && !entry.branch\n ? __assign(__assign({}, entry), { x: event.clientX, y: event.clientY }) : undefined;\n }\n return (React.createElement(React.Fragment, null,\n (branchMenu === null || branchMenu === void 0 ? void 0 : branchMenu.id) ? (React.createElement(TreeBranchMenu, { node: branchMenu, model: model, onClose: function () { return setBranchMenu(undefined); } })) : null,\n (toggleNodeMenu === null || toggleNodeMenu === void 0 ? void 0 : toggleNodeMenu.id) ? (React.createElement(TreeMenu, { node: toggleNodeMenu, model: model, onClose: function () { return setToggleNodeMenu(undefined); } })) : null,\n React.createElement(\"canvas\", { width: (treeWidth + padding) * highResScaleFactor, height: blockSize * highResScaleFactor, style: {\n width: treeWidth + padding,\n height: blockSize,\n top: scrollY + offsetY,\n left: 0,\n position: 'absolute',\n }, onMouseMove: function (event) {\n if (!ref.current) {\n return;\n }\n var ret = hoverNameClickMap(event) || hoverBranchClickMap(event);\n if (ret) {\n ref.current.style.cursor = 'pointer';\n }\n else {\n ref.current.style.cursor = 'default';\n }\n setHoverElt(hoverNameClickMap(event));\n }, onClick: function (event) {\n var x = event.clientX, y = event.clientY;\n var data = hoverBranchClickMap(event);\n if (data === null || data === void 0 ? void 0 : data.id) {\n setBranchMenu(__assign(__assign({}, data), { x: x, y: y }));\n }\n var data2 = hoverNameClickMap(event);\n if (data2 === null || data2 === void 0 ? void 0 : data2.id) {\n setToggleNodeMenu(__assign(__assign({}, data2), { x: x, y: y }));\n }\n }, ref: ref }),\n React.createElement(\"canvas\", { style: {\n width: treeWidth + padding,\n height: blockSize,\n top: scrollY + offsetY,\n left: 0,\n position: 'absolute',\n pointerEvents: 'none',\n zIndex: 100,\n }, width: treeWidth + padding, height: blockSize, ref: mouseoverRef })));\n});\nvar TreeCanvas = observer(function (_a) {\n var model = _a.model;\n var ref = useRef(null);\n var scheduled = useRef(false);\n var deltaY = useRef(0);\n var prevY = useRef(0);\n var treeWidth = model.treeWidth, height = model.height, blocksY = model.blocksY;\n var _b = useState(false), mouseDragging = _b[0], setMouseDragging = _b[1];\n useEffect(function () {\n var curr = ref.current;\n if (!curr) {\n return;\n }\n function onWheel(origEvent) {\n var event = normalizeWheel(origEvent);\n deltaY.current += event.pixelY;\n if (!scheduled.current) {\n scheduled.current = true;\n requestAnimationFrame(function () {\n model.doScrollY(-deltaY.current);\n deltaY.current = 0;\n scheduled.current = false;\n });\n }\n origEvent.preventDefault();\n }\n curr.addEventListener('wheel', onWheel);\n return function () {\n curr.removeEventListener('wheel', onWheel);\n };\n }, [model]);\n useEffect(function () {\n var cleanup = function () { };\n function globalMouseMove(event) {\n event.preventDefault();\n var currY = event.clientY;\n var distanceY = currY - prevY.current;\n if (distanceY) {\n // use rAF to make it so multiple event handlers aren't fired per-frame\n // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/\n if (!scheduled.current) {\n scheduled.current = true;\n window.requestAnimationFrame(function () {\n model.doScrollY(distanceY);\n scheduled.current = false;\n prevY.current = event.clientY;\n });\n }\n }\n }\n function globalMouseUp() {\n prevY.current = 0;\n if (mouseDragging) {\n setMouseDragging(false);\n }\n }\n if (mouseDragging) {\n window.addEventListener('mousemove', globalMouseMove, true);\n window.addEventListener('mouseup', globalMouseUp, true);\n cleanup = function () {\n window.removeEventListener('mousemove', globalMouseMove, true);\n window.removeEventListener('mouseup', globalMouseUp, true);\n };\n }\n return cleanup;\n }, [model, mouseDragging]);\n function mouseDown(event) {\n // check if clicking a draggable element or a resize handle\n var target = event.target;\n if (target.draggable || target.dataset.resizer) {\n return;\n }\n // otherwise do click and drag scroll\n if (event.button === 0) {\n prevY.current = event.clientY;\n setMouseDragging(true);\n }\n }\n // this local mouseup is used in addition to the global because sometimes\n // the global add/remove are not called in time, resulting in issue #533\n function mouseUp(event) {\n event.preventDefault();\n setMouseDragging(false);\n }\n function mouseLeave(event) {\n event.preventDefault();\n }\n return (React.createElement(\"div\", { ref: ref, onMouseDown: mouseDown, onMouseUp: mouseUp, onMouseLeave: mouseLeave, style: {\n height: height,\n position: 'relative',\n overflow: 'hidden',\n width: treeWidth + padding,\n } }, blocksY.map(function (block) { return (React.createElement(TreeBlock, { key: block, model: model, offsetY: block })); })));\n});\nexport default TreeCanvas;\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n\tif (cssKeywords.hasOwnProperty(key)) {\n\t\treverseKeywords[cssKeywords[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in cssKeywords) {\n\t\tif (cssKeywords.hasOwnProperty(keyword)) {\n\t\t\tvar value = cssKeywords[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","var conversions = require('./conversions');\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","var conversions = require('./conversions');\nvar route = require('./route');\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","'use strict';\n\nvar colorString = require('color-string');\nvar convert = require('color-convert');\n\nvar _slice = [].slice;\n\nvar skippedModels = [\n\t// to be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// shouldn't really be in color-convert either...\n\t'hex'\n];\n\nvar hashedModelKeys = {};\nObject.keys(convert).forEach(function (model) {\n\thashedModelKeys[_slice.call(convert[model].labels).sort().join('')] = model;\n});\n\nvar limiters = {};\n\nfunction Color(obj, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tvar i;\n\tvar channels;\n\n\tif (obj == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (obj instanceof Color) {\n\t\tthis.model = obj.model;\n\t\tthis.color = obj.color.slice();\n\t\tthis.valpha = obj.valpha;\n\t} else if (typeof obj === 'string') {\n\t\tvar result = colorString.get(obj);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + obj);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (obj.length) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tvar newArr = _slice.call(obj, 0, channels);\n\t\tthis.color = zeroArray(newArr, channels);\n\t\tthis.valpha = typeof obj[channels] === 'number' ? obj[channels] : 1;\n\t} else if (typeof obj === 'number') {\n\t\t// this is always RGB - can be converted later on.\n\t\tobj &= 0xFFFFFF;\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(obj >> 16) & 0xFF,\n\t\t\t(obj >> 8) & 0xFF,\n\t\t\tobj & 0xFF\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tvar keys = Object.keys(obj);\n\t\tif ('alpha' in obj) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof obj.alpha === 'number' ? obj.alpha : 0;\n\t\t}\n\n\t\tvar hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(obj));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tvar labels = convert[this.model].labels;\n\t\tvar color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(obj[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tvar limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString: function () {\n\t\treturn this.string();\n\t},\n\n\ttoJSON: function () {\n\t\treturn this[this.model]();\n\t},\n\n\tstring: function (places) {\n\t\tvar self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString: function (places) {\n\t\tvar self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tvar args = self.valpha === 1 ? self.color : self.color.concat(this.valpha);\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray: function () {\n\t\treturn this.valpha === 1 ? this.color.slice() : this.color.concat(this.valpha);\n\t},\n\n\tobject: function () {\n\t\tvar result = {};\n\t\tvar channels = convert[this.model].channels;\n\t\tvar labels = convert[this.model].labels;\n\n\t\tfor (var i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray: function () {\n\t\tvar rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject: function () {\n\t\tvar rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround: function (places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color(this.color.map(roundToPlace(places)).concat(this.valpha), this.model);\n\t},\n\n\talpha: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(this.color.concat(Math.max(0, Math.min(1, val))), this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, function (val) { return ((val % 360) + 360) % 360; }), // eslint-disable-line brace-style\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(100)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(100)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex: function (val) {\n\t\tif (arguments.length) {\n\t\t\treturn new Color(val);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.rgb().color;\n\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.rgb().color;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight: function () {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = this.rgb();\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\t\treturn rgb;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale: function () {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar rgb = this.rgb().color;\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(val, val, val);\n\t},\n\n\tfade: function (ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer: function (ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.hsl();\n\t\tvar hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix: function (mixinColor, weight) {\n\t\t// ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\t\tvar color1 = mixinColor.rgb();\n\t\tvar color2 = this.rgb();\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t}\n};\n\n// model conversion methods and static constructors\nObject.keys(convert).forEach(function (model) {\n\tif (skippedModels.indexOf(model) !== -1) {\n\t\treturn;\n\t}\n\n\tvar channels = convert[model].channels;\n\n\t// conversion methods\n\tColor.prototype[model] = function () {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments.length) {\n\t\t\treturn new Color(arguments, model);\n\t\t}\n\n\t\tvar newAlpha = typeof arguments[channels] === 'number' ? channels : this.valpha;\n\t\treturn new Color(assertArray(convert[this.model][model].raw(this.color)).concat(newAlpha), model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (color) {\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(_slice.call(arguments), channels);\n\t\t}\n\t\treturn new Color(color, model);\n\t};\n});\n\nfunction roundTo(num, places) {\n\treturn Number(num.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (num) {\n\t\treturn roundTo(num, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tmodel.forEach(function (m) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t});\n\n\tmodel = model[0];\n\n\treturn function (val) {\n\t\tvar result;\n\n\t\tif (arguments.length) {\n\t\t\tif (modifier) {\n\t\t\t\tval = modifier(val);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = val;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(val) {\n\treturn Array.isArray(val) ? val : [val];\n}\n\nfunction zeroArray(arr, length) {\n\tfor (var i = 0; i < length; i++) {\n\t\tif (typeof arr[i] !== 'number') {\n\t\t\tarr[i] = 0;\n\t\t}\n\t}\n\n\treturn arr;\n}\n\nmodule.exports = Color;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport Color from 'color';\nexport function transform(obj, cb) {\n return Object.fromEntries(Object.entries(obj).map(cb));\n}\nexport function generateNodeIds(tree, parent, depth) {\n var _a;\n if (parent === void 0) { parent = 'node'; }\n if (depth === void 0) { depth = 0; }\n var id = \"\".concat(parent, \"-\").concat(depth);\n return __assign(__assign({}, tree), { id: id, branchset: ((_a = tree.branchset) === null || _a === void 0 ? void 0 : _a.map(function (b, i) {\n return generateNodeIds(b, \"\".concat(id, \"-\").concat(i), depth + 1);\n })) || [] });\n}\nexport function colorContrast(colorScheme, theme) {\n return transform(colorScheme, function (_a) {\n var letter = _a[0], color = _a[1];\n return [\n letter,\n theme.palette.getContrastText(Color(color).hex()),\n ];\n });\n}\n","import Color from 'color';\nimport { transform } from './util';\nvar colorSchemes = {\n clustal: {\n G: 'orange',\n P: 'orange',\n S: 'orange',\n T: 'orange',\n H: 'red',\n K: 'red',\n R: 'red',\n F: 'blue',\n W: 'blue',\n Y: 'blue',\n I: 'green',\n L: 'green',\n M: 'green',\n V: 'green',\n },\n lesk: {\n G: 'orange',\n A: 'orange',\n S: 'orange',\n T: 'orange',\n C: 'green',\n V: 'green',\n I: 'green',\n L: 'green',\n P: 'green',\n F: 'green',\n Y: 'green',\n M: 'green',\n W: 'green',\n N: 'magenta',\n Q: 'magenta',\n H: 'magenta',\n D: 'red',\n E: 'red',\n K: 'blue',\n R: 'blue',\n },\n maeditor: {\n A: 'lightgreen',\n G: 'lightgreen',\n C: 'green',\n D: 'darkgreen',\n E: 'darkgreen',\n N: 'darkgreen',\n Q: 'darkgreen',\n I: 'blue',\n L: 'blue',\n M: 'blue',\n V: 'blue',\n F: '#c8a2c8',\n W: '#c8a2c8',\n Y: '#c8a2c8',\n H: 'darkblue',\n K: 'orange',\n R: 'orange',\n P: 'pink',\n S: 'red',\n T: 'red',\n },\n percent_identity_dynamic: {},\n //https://github.com/biotite-dev/biotite/blob/8c460972f8ab904312f130dfb80f3efc8c9bd7c5/src/biotite/sequence/graphics/color_schemes/flower.json\n flower: {\n A: '#b18a51',\n C: '#ff5701',\n D: '#01a578',\n E: '#2da0a1',\n F: '#fa559d',\n G: '#b1c23c',\n H: '#0194f9',\n I: '#f27663',\n K: '#7fc3d7',\n L: '#df6e75',\n M: '#fe9daf',\n N: '#0bcec6',\n P: '#4fa32a',\n Q: '#7295ae',\n R: '#83bff1',\n S: '#b4bd9b',\n T: '#d2b576',\n V: '#fd997b',\n W: '#ff2ded',\n Y: '#c96ecf',\n },\n rainbow_dna: {\n A: '#3737f5',\n C: '#37f537',\n G: '#f5f537',\n T: '#f53737',\n U: '#f53737',\n },\n //https://github.com/biotite-dev/biotite/blob/8c460972f8ab904312f130dfb80f3efc8c9bd7c5/src/biotite/sequence/graphics/color_schemes/clustalx_protein.json\n clustalx_protein: {\n A: '#197fe5',\n C: '#e57f7f',\n D: '#cc4ccc',\n E: '#cc4ccc',\n F: '#197fe5',\n G: '#e5994c',\n H: '#19b2b2',\n I: '#197fe5',\n K: '#e53319',\n L: '#197fe5',\n M: '#197fe5',\n N: '#19cc19',\n P: '#cccc00',\n Q: '#19cc19',\n R: '#e53319',\n S: '#19cc19',\n T: '#19cc19',\n V: '#197fe5',\n W: '#197fe5',\n Y: '#19b2b2',\n },\n // this has special handling\n clustalx_protein_dynamic: {},\n clustalx_dna: {\n A: '#e53319',\n C: '#197fe5',\n G: '#e5994c',\n T: '#19cc19',\n U: '#19cc19',\n },\n jalview_buried: {\n A: '#00a35c',\n R: '#00fc03',\n N: '#00eb14',\n D: '#00eb14',\n C: '#0000ff',\n Q: '#00f10e',\n E: '#00f10e',\n G: '#009d62',\n H: '#00d52a',\n I: '#0054ab',\n L: '#007b84',\n K: '#00ff00',\n M: '#009768',\n F: '#008778',\n P: '#00e01f',\n S: '#00d52a',\n T: '#00db24',\n W: '#00a857',\n Y: '#00e619',\n V: '#005fa0',\n B: '#00eb14',\n X: '#00b649',\n Z: '#00f10e',\n },\n jalview_hydrophobicity: {\n A: '#ad0052',\n R: '#0000ff',\n N: '#0c00f3',\n D: '#0c00f3',\n C: '#c2003d',\n Q: '#0c00f3',\n E: '#0c00f3',\n G: '#6a0095',\n H: '#1500ea',\n I: '#ff0000',\n L: '#ea0015',\n K: '#0000ff',\n M: '#b0004f',\n F: '#cb0034',\n P: '#4600b9',\n S: '#5e00a1',\n T: '#61009e',\n W: '#5b00a4',\n Y: '#4f00b0',\n V: '#f60009',\n B: '#0c00f3',\n X: '#680097',\n Z: '#0c00f3',\n },\n jalview_prophelix: {\n A: '#e718e7',\n R: '#6f906f',\n N: '#1be41b',\n D: '#778877',\n C: '#23dc23',\n Q: '#926d92',\n E: '#ff00ff',\n G: '#00ff00',\n H: '#758a75',\n I: '#8a758a',\n L: '#ae51ae',\n K: '#a05fa0',\n M: '#ef10ef',\n F: '#986798',\n P: '#00ff00',\n S: '#36c936',\n T: '#47b847',\n W: '#8a758a',\n Y: '#21de21',\n V: '#857a85',\n B: '#49b649',\n X: '#758a75',\n Z: '#c936c9',\n },\n jalview_propstrand: {\n A: '#5858a7',\n R: '#6b6b94',\n N: '#64649b',\n D: '#2121de',\n C: '#9d9d62',\n Q: '#8c8c73',\n E: '#0000ff',\n G: '#4949b6',\n H: '#60609f',\n I: '#ecec13',\n L: '#b2b24d',\n K: '#4747b8',\n M: '#82827d',\n F: '#c2c23d',\n P: '#2323dc',\n S: '#4949b6',\n T: '#9d9d62',\n W: '#c0c03f',\n Y: '#d3d32c',\n V: '#ffff00',\n B: '#4343bc',\n X: '#797986',\n Z: '#4747b8',\n },\n jalview_propturn: {\n A: '#2cd3d3',\n R: '#708f8f',\n N: '#ff0000',\n D: '#e81717',\n C: '#a85757',\n Q: '#3fc0c0',\n E: '#778888',\n G: '#ff0000',\n H: '#708f8f',\n I: '#00ffff',\n L: '#1ce3e3',\n K: '#7e8181',\n M: '#1ee1e1',\n F: '#1ee1e1',\n P: '#f60909',\n S: '#e11e1e',\n T: '#738c8c',\n W: '#738c8c',\n Y: '#9d6262',\n V: '#07f8f8',\n B: '#f30c0c',\n X: '#7c8383',\n Z: '#5ba4a4',\n },\n jalview_taylor: {\n A: '#ccff00',\n R: '#0000ff',\n N: '#cc00ff',\n D: '#ff0000',\n C: '#ffff00',\n Q: '#ff00cc',\n E: '#ff0066',\n G: '#ff9900',\n H: '#0066ff',\n I: '#66ff00',\n L: '#33ff00',\n K: '#6600ff',\n M: '#00ff00',\n F: '#00ff66',\n P: '#ffcc00',\n S: '#ff3300',\n T: '#ff6600',\n W: '#00ccff',\n Y: '#00ffcc',\n V: '#99ff00',\n },\n jalview_zappo: {\n A: '#ffafaf',\n R: '#6464ff',\n N: '#00ff00',\n D: '#ff0000',\n C: '#ffff00',\n Q: '#00ff00',\n E: '#ff0000',\n G: '#ff00ff',\n H: '#6464ff',\n I: '#ffafaf',\n L: '#ffafaf',\n K: '#6464ff',\n M: '#ffafaf',\n F: '#ffc800',\n P: '#ff00ff',\n S: '#00ff00',\n T: '#00ff00',\n W: '#ffc800',\n Y: '#ffc800',\n V: '#ffafaf',\n },\n cinema: {\n H: 'blue',\n K: 'blue',\n R: 'blue',\n D: 'red',\n E: 'red',\n S: 'green',\n T: 'green',\n N: 'green',\n Q: 'green',\n A: 'white',\n V: 'white',\n L: 'white',\n I: 'white',\n M: 'white',\n F: 'magenta',\n W: 'magenta',\n Y: 'magenta',\n P: 'brown',\n G: 'brown',\n C: 'yellow',\n B: 'gray',\n Z: 'gray',\n X: 'gray',\n '-': 'gray',\n '.': 'gray',\n },\n};\n// turn all supplied colors to hex colors which getContrastText from mui\n// requires\nexport default transform(colorSchemes, function (_a) {\n var key = _a[0], val = _a[1];\n return [\n key,\n transform(val, function (_a) {\n var letter = _a[0], color = _a[1];\n return [letter, Color(color).hex()];\n }),\n ];\n});\n// info http://www.jalview.org/help/html/colourSchemes/clustal.html\n// modifications:\n// reference to clustalX source code scheme modifies what the jalview.org\n// scheme says there the jalview.org colorscheme says WLVIMAFCHP but it\n// should be WLVIMAFCHPY, colprot.xml says e.g. %#ACFHILMVWYPp\" which has Y\nexport function getClustalXColor(stats, model, row, col) {\n var total = Object.values(stats).reduce(function (a, b) { return a + b; }, 0);\n var l = model.columns[row][col];\n var _a = stats.W, W = _a === void 0 ? 0 : _a, _b = stats.L, L = _b === void 0 ? 0 : _b, _c = stats.V, V = _c === void 0 ? 0 : _c, _d = stats.I, I = _d === void 0 ? 0 : _d, _e = stats.M, M = _e === void 0 ? 0 : _e, _f = stats.A, A = _f === void 0 ? 0 : _f, _g = stats.F, F = _g === void 0 ? 0 : _g, _h = stats.C, C = _h === void 0 ? 0 : _h, _j = stats.H, H = _j === void 0 ? 0 : _j, _k = stats.P, P = _k === void 0 ? 0 : _k, _l = stats.R, R = _l === void 0 ? 0 : _l, _m = stats.K, K = _m === void 0 ? 0 : _m, _o = stats.Q, Q = _o === void 0 ? 0 : _o, _p = stats.E, E = _p === void 0 ? 0 : _p, _q = stats.D, D = _q === void 0 ? 0 : _q, _r = stats.T, T = _r === void 0 ? 0 : _r, _s = stats.S, S = _s === void 0 ? 0 : _s, _t = stats.G, G = _t === void 0 ? 0 : _t, _u = stats.Y, Y = _u === void 0 ? 0 : _u, _v = stats.N, N = _v === void 0 ? 0 : _v;\n var WLVIMAFCHP = W + L + V + I + M + A + F + C + H + P + Y;\n var KR = K + R;\n var QE = Q + E;\n var ED = E + D;\n var TS = T + S;\n if (WLVIMAFCHP / total > 0.6) {\n if (l === 'W' ||\n l === 'L' ||\n l === 'V' ||\n l === 'A' ||\n l === 'I' ||\n l === 'M' ||\n l === 'F' ||\n l === 'C') {\n // blue from jalview.org docs\n return 'rgb(128,179,230)';\n }\n }\n if ((l === 'K' || l === 'R') &&\n (KR / total > 0.6 || K / total > 0.8 || R / total > 0.8 || Q / total > 0.8)) {\n return '#d88';\n }\n if (l === 'E' &&\n (KR / total > 0.6 ||\n QE / total > 0.5 ||\n E / total > 0.8 ||\n Q / total > 0.8 ||\n D / total > 0.8)) {\n return 'rgb(192, 72, 192)';\n }\n if (l === 'D' &&\n (KR / total > 0.6 ||\n ED / total > 0.5 ||\n K / total > 0.8 ||\n R / total > 0.8 ||\n Q / total > 0.8)) {\n return 'rgb(204, 77, 204)';\n }\n if (l === 'N' && (N / total > 0.5 || Y / total > 0.85)) {\n return '#8f8';\n }\n if (l === 'Q' &&\n (KR / total > 0.6 ||\n QE / total > 0.6 ||\n Q / total > 0.85 ||\n E / total > 0.85 ||\n K / total > 0.85 ||\n R / total > 0.85)) {\n return '#8f8';\n }\n if ((l === 'S' || l === 'T') &&\n // WLVIMAFCHP modified from 0.6 to 0.55 on page to match what i see in jalview\n (WLVIMAFCHP / total > 0.6 ||\n TS / total > 0.5 ||\n S / total > 0.85 ||\n T / total > 0.85)) {\n return 'rgb(26,204,26)';\n }\n if (l === 'C' && C / total > 0.85) {\n return 'rgb(240, 128, 128)';\n }\n if (l === 'G' && G / total > 0) {\n return 'rgb(240, 144, 72)';\n }\n if (l === 'P' && P / total > 0) {\n return 'rgb(204, 204, 0)';\n }\n if ((l === 'H' || l === 'Y') &&\n (WLVIMAFCHP / total > 0.6 ||\n W > 0.85 ||\n Y > 0.85 ||\n A > 0.85 ||\n C > 0.85 ||\n P > 0.85 ||\n Q > 0.85 ||\n F > 0.85 ||\n H > 0.85 ||\n I > 0.85 ||\n L > 0.85 ||\n M > 0.85 ||\n V > 0.85)) {\n // cyan from jalview.org docs\n return 'rgb(26, 179, 179)';\n }\n return undefined;\n}\n// info http://www.jalview.org/help/html/colourSchemes/clustal.html\n// modifications:\n// reference to clustalX source code scheme modifies what the jalview.org\n// scheme says there the jalview.org colorscheme says WLVIMAFCHP but it\n// should be WLVIMAFCHPY, colprot.xml says e.g. %#ACFHILMVWYPp\" which has Y\nexport function getPercentIdentityColor(stats, model, row, col) {\n var total = Object.values(stats).reduce(function (a, b) { return a + b; }, 0);\n var l = model.columns[row][col];\n var entries = Object.entries(stats);\n var ent = 0;\n var letter = '';\n for (var i = 0; i < entries.length; i++) {\n if (entries[i][1] > ent && entries[i][0] !== '-') {\n letter = entries[i][0];\n ent = entries[i][1];\n }\n }\n var proportion = ent / total;\n var thresh = \"hsl(240, 30%, \".concat(100 * Math.max(1 - ent / total / 3, 0.3), \"%)\");\n if (proportion > 0.4) {\n if (l === letter) {\n return thresh;\n }\n }\n}\n","import React, { useEffect, useState, useRef, useMemo } from 'react';\nimport { Typography, CircularProgress, useTheme } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport normalizeWheel from 'normalize-wheel';\nimport { colorContrast } from '../util';\nimport { getClustalXColor, getPercentIdentityColor } from '../colorSchemes';\nvar MSABlock = observer(function (_a) {\n var model = _a.model, offsetX = _a.offsetX, offsetY = _a.offsetY;\n var MSA = model.MSA, colWidth = model.colWidth, bgColor = model.bgColor, columns = model.columns, rowHeight = model.rowHeight, scrollY = model.scrollY, scrollX = model.scrollX, hierarchy = model.hierarchy, colorScheme = model.colorScheme, colorSchemeName = model.colorSchemeName, blockSize = model.blockSize, highResScaleFactor = model.highResScaleFactor, colStats = model.colStats;\n var theme = useTheme();\n var contrastScheme = useMemo(function () { return colorContrast(colorScheme, theme); }, [colorScheme, theme]);\n var ref = useRef(null);\n useEffect(function () {\n if (!ref.current) {\n return;\n }\n var ctx = ref.current.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.resetTransform();\n ctx.scale(highResScaleFactor, highResScaleFactor);\n ctx.clearRect(0, 0, blockSize, blockSize);\n ctx.translate(-offsetX, rowHeight / 2 - offsetY);\n ctx.textAlign = 'center';\n ctx.font = ctx.font.replace(/\\d+px/, \"\".concat(Math.max(8, rowHeight - 8), \"px\"));\n var leaves = hierarchy.leaves();\n var b = blockSize;\n // slice vertical rows, e.g. tree leaves, avoid negative slice\n var yStart = Math.max(0, Math.floor((offsetY - rowHeight) / rowHeight));\n var yEnd = Math.max(0, Math.ceil((offsetY + b + rowHeight) / rowHeight));\n // slice horizontal visible letters, avoid negative slice\n var xStart = Math.max(0, Math.floor(offsetX / colWidth));\n var xEnd = Math.max(0, Math.ceil((offsetX + b) / colWidth));\n var visibleLeaves = leaves.slice(yStart, yEnd);\n visibleLeaves.forEach(function (node) {\n var _a;\n var \n //@ts-ignore\n y = node.x, name = node.data.name;\n var str = (_a = columns[name]) === null || _a === void 0 ? void 0 : _a.slice(xStart, xEnd);\n for (var i = 0; i < (str === null || str === void 0 ? void 0 : str.length); i++) {\n var letter = str[i];\n var color = colorSchemeName === 'clustalx_protein_dynamic'\n ? getClustalXColor(colStats[xStart + i], model, name, xStart + i)\n : colorSchemeName === 'percent_identity_dynamic'\n ? getPercentIdentityColor(colStats[xStart + i], model, name, xStart + i)\n : colorScheme[letter.toUpperCase()];\n if (bgColor) {\n var x = i * colWidth + offsetX - (offsetX % colWidth);\n ctx.fillStyle = color || 'white';\n ctx.fillRect(x, y - rowHeight, colWidth, rowHeight);\n }\n }\n });\n if (rowHeight >= 10 && colWidth >= rowHeight / 2) {\n visibleLeaves.forEach(function (node) {\n var _a;\n var \n //@ts-ignore\n y = node.x, name = node.data.name;\n var str = (_a = columns[name]) === null || _a === void 0 ? void 0 : _a.slice(xStart, xEnd);\n for (var i = 0; i < (str === null || str === void 0 ? void 0 : str.length); i++) {\n var letter = str[i];\n var color = colorScheme[letter.toUpperCase()];\n var contrast = contrastScheme[letter.toUpperCase()] || 'black';\n var x = i * colWidth + offsetX - (offsetX % colWidth);\n //note: -rowHeight/4 matches +rowHeight/4 in tree\n ctx.fillStyle = bgColor ? contrast : color || 'black';\n ctx.fillText(letter, x + colWidth / 2, y - rowHeight / 4);\n }\n });\n }\n }, [\n MSA,\n highResScaleFactor,\n columns,\n colorScheme,\n contrastScheme,\n bgColor,\n rowHeight,\n colWidth,\n hierarchy,\n offsetX,\n offsetY,\n blockSize,\n ]);\n return (React.createElement(\"canvas\", { ref: ref, onMouseMove: function (event) {\n if (!ref.current) {\n return;\n }\n var _a = ref.current.getBoundingClientRect(), left = _a.left, top = _a.top;\n var mouseX = event.clientX - left;\n var mouseY = event.clientY - top;\n model.setMousePos(Math.floor((mouseX + offsetX) / colWidth) + 1, Math.floor((mouseY + offsetY) / rowHeight));\n }, onMouseLeave: function () { return model.setMousePos(); }, width: blockSize * highResScaleFactor, height: blockSize * highResScaleFactor, style: {\n position: 'absolute',\n top: scrollY + offsetY,\n left: scrollX + offsetX,\n width: blockSize,\n height: blockSize,\n } }));\n});\nvar MSACanvas = observer(function (_a) {\n var model = _a.model;\n var MSA = model.MSA, msaFilehandle = model.msaFilehandle, height = model.height, msaAreaWidth = model.msaAreaWidth, blocks2d = model.blocks2d;\n var ref = useRef(null);\n // wheel\n var scheduled = useRef(false);\n var deltaX = useRef(0);\n var deltaY = useRef(0);\n // mouse click-and-drag scrolling\n var prevX = useRef(0);\n var prevY = useRef(0);\n var _b = useState(false), mouseDragging = _b[0], setMouseDragging = _b[1];\n useEffect(function () {\n var curr = ref.current;\n if (!curr) {\n return;\n }\n function onWheel(origEvent) {\n var event = normalizeWheel(origEvent);\n deltaX.current += event.pixelX;\n deltaY.current += event.pixelY;\n if (!scheduled.current) {\n scheduled.current = true;\n requestAnimationFrame(function () {\n model.doScrollX(-deltaX.current);\n model.doScrollY(-deltaY.current);\n deltaX.current = 0;\n deltaY.current = 0;\n scheduled.current = false;\n });\n }\n origEvent.preventDefault();\n }\n curr.addEventListener('wheel', onWheel);\n return function () {\n curr.removeEventListener('wheel', onWheel);\n };\n }, [model]);\n useEffect(function () {\n var cleanup = function () { };\n function globalMouseMove(event) {\n event.preventDefault();\n var currX = event.clientX;\n var currY = event.clientY;\n var distanceX = currX - prevX.current;\n var distanceY = currY - prevY.current;\n if (distanceX || distanceY) {\n // use rAF to make it so multiple event handlers aren't fired per-frame\n // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/\n if (!scheduled.current) {\n scheduled.current = true;\n window.requestAnimationFrame(function () {\n model.doScrollX(distanceX);\n model.doScrollY(distanceY);\n scheduled.current = false;\n prevX.current = event.clientX;\n prevY.current = event.clientY;\n });\n }\n }\n }\n function globalMouseUp() {\n prevX.current = 0;\n if (mouseDragging) {\n setMouseDragging(false);\n }\n }\n if (mouseDragging) {\n window.addEventListener('mousemove', globalMouseMove, true);\n window.addEventListener('mouseup', globalMouseUp, true);\n cleanup = function () {\n window.removeEventListener('mousemove', globalMouseMove, true);\n window.removeEventListener('mouseup', globalMouseUp, true);\n };\n }\n return cleanup;\n }, [model, mouseDragging]);\n return (React.createElement(\"div\", { ref: ref, onMouseDown: function (event) {\n // check if clicking a draggable element or a resize handle\n var target = event.target;\n if (target.draggable || target.dataset.resizer) {\n return;\n }\n // otherwise do click and drag scroll\n if (event.button === 0) {\n prevX.current = event.clientX;\n prevY.current = event.clientY;\n setMouseDragging(true);\n }\n }, onMouseUp: function (event) {\n event.preventDefault();\n setMouseDragging(false);\n }, onMouseLeave: function (event) {\n event.preventDefault();\n }, style: {\n position: 'relative',\n height: height,\n width: msaAreaWidth,\n overflow: 'hidden',\n } }, !MSA && !msaFilehandle ? null : !MSA ? (React.createElement(\"div\", { style: { position: 'absolute', left: '50%', top: '50%' } },\n React.createElement(CircularProgress, null),\n React.createElement(Typography, null, \"Loading...\"))) : (blocks2d.map(function (_a) {\n var bx = _a[0], by = _a[1];\n return (React.createElement(MSABlock, { key: \"\".concat(bx, \"_\").concat(by), model: model, offsetX: bx, offsetY: by }));\n }))));\n});\nexport default MSACanvas;\n","import React, { useRef } from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { observer } from 'mobx-react';\n/**\n * Given a scale ( bp/px ) and minimum distances (px) between major and minor\n * gridlines, return an object like `{ majorPitch: bp, minorPitch: bp }` giving\n * the gridline pitches to use.\n */\nexport function chooseGridPitch(scale, minMajorPitchPx, minMinorPitchPx) {\n scale = Math.abs(scale);\n var minMajorPitchBp = minMajorPitchPx * scale;\n var majorMagnitude = parseInt(Number(minMajorPitchBp).toExponential().split(/e/i)[1], 10);\n var majorPitch = Math.pow(10, majorMagnitude);\n while (majorPitch < minMajorPitchBp) {\n majorPitch *= 2;\n if (majorPitch >= minMajorPitchBp) {\n break;\n }\n majorPitch *= 2.5;\n }\n majorPitch = Math.max(majorPitch, 5);\n var majorPitchPx = majorPitch / scale;\n var minorPitch = 0;\n if (!(majorPitch % 10) && majorPitchPx / 10 >= minMinorPitchPx) {\n minorPitch = majorPitch / 10;\n }\n else if (!(majorPitch % 5) && majorPitchPx / 5 >= minMinorPitchPx) {\n minorPitch = majorPitch / 5;\n }\n else if (!(majorPitch % 2) && majorPitchPx / 2 >= minMinorPitchPx) {\n minorPitch = majorPitch / 2;\n }\n return { majorPitch: majorPitch, minorPitch: minorPitch };\n}\nexport function makeTicks(start, end, bpPerPx, emitMajor, emitMinor) {\n var _a;\n if (emitMajor === void 0) { emitMajor = true; }\n if (emitMinor === void 0) { emitMinor = true; }\n var gridPitch = chooseGridPitch(bpPerPx, 60, 15);\n var minBase = start;\n var maxBase = end;\n if (minBase === null || maxBase === null) {\n return [];\n }\n if (bpPerPx < 0) {\n _a = [maxBase, minBase], minBase = _a[0], maxBase = _a[1];\n }\n // add 20px additional on the right and left to allow us to draw the ends of\n // labels that lie a little outside our region\n minBase -= Math.abs(20 * bpPerPx);\n maxBase += Math.abs(20 * bpPerPx) + 1;\n var iterPitch = gridPitch.minorPitch || gridPitch.majorPitch;\n var index = 0;\n var ticks = [];\n for (var base = Math.ceil(minBase / iterPitch) * iterPitch; base < maxBase; base += iterPitch) {\n if (emitMinor && base % (gridPitch.majorPitch * 2)) {\n ticks.push({ type: 'minor', base: base - 1, index: index });\n index += 1;\n }\n else if (emitMajor && !(base % (gridPitch.majorPitch * 2))) {\n ticks.push({ type: 'major', base: base - 1, index: index });\n index += 1;\n }\n }\n return ticks;\n}\nfunction mathPower(num) {\n if (num < 999) {\n return String(num);\n }\n return \"\".concat(mathPower(~~(num / 1000)), \",\").concat(\"00\".concat(~~(num % 1000)).substr(-3, 3));\n}\nvar useStyles = makeStyles(function ( /* theme */) { return ({\n majorTickLabel: {\n fontSize: '11px',\n },\n majorTick: {\n stroke: '#555',\n },\n minorTick: {\n stroke: '#999',\n },\n}); });\nfunction RulerBlock(_a) {\n var start = _a.start, end = _a.end, bpPerPx = _a.bpPerPx, reversed = _a.reversed, major = _a.major, minor = _a.minor;\n var classes = useStyles();\n var ticks = makeTicks(start, end, bpPerPx, major, minor);\n return (React.createElement(React.Fragment, null,\n ticks.map(function (tick) {\n var x = (reversed ? end - tick.base : tick.base - start) / bpPerPx;\n return (React.createElement(\"line\", { key: tick.base, x1: x, x2: x, y1: 11, y2: tick.type === 'major' ? 11 + 6 : 11 + 4, strokeWidth: 1, stroke: tick.type === 'major' ? '#555' : '#999', className: tick.type === 'major' ? classes.majorTick : classes.minorTick, \"data-bp\": tick.base }));\n }),\n ticks\n .filter(function (tick) { return tick.type === 'major'; })\n .map(function (tick) {\n var x = (reversed ? end - tick.base : tick.base - start) / bpPerPx;\n return (React.createElement(\"text\", { x: x, y: 10, key: \"label-\".concat(tick.base), textAnchor: \"middle\", style: { fontSize: '11px' }, className: classes.majorTickLabel }, mathPower(tick.base + 1)));\n })));\n}\nvar Ruler = observer(function (_a) {\n var model = _a.model;\n var MSA = model.MSA, colWidth = model.colWidth, msaAreaWidth = model.msaAreaWidth, resizeHandleWidth = model.resizeHandleWidth, scrollX = model.scrollX, blocksX = model.blocksX, blockSize = model.blockSize;\n var ref = useRef(null);\n var offsetX = blocksX[0];\n return !MSA ? null : (React.createElement(\"div\", { ref: ref, style: {\n position: 'relative',\n width: msaAreaWidth,\n cursor: 'crosshair',\n overflow: 'hidden',\n height: 20,\n background: '#ccc',\n } },\n React.createElement(\"svg\", { style: {\n width: blocksX.length * blockSize,\n position: 'absolute',\n left: scrollX + offsetX + resizeHandleWidth,\n pointerEvents: 'none',\n } },\n React.createElement(RulerBlock, { key: offsetX, start: offsetX / colWidth, end: offsetX / colWidth + (blockSize * blocksX.length) / colWidth, bpPerPx: 1 / colWidth }))));\n});\nexport default Ruler;\n","import React from 'react';\nimport { observer } from 'mobx-react';\nvar TreeRuler = observer(function (_a) {\n var model = _a.model;\n var treeWidth = model.treeWidth;\n return React.createElement(\"div\", { style: { width: treeWidth } });\n});\nexport default TreeRuler;\n","import React, { useState } from 'react';\nimport { observer } from 'mobx-react';\nimport { Button, Checkbox, Dialog, DialogActions, DialogTitle, DialogContent, FormControlLabel, MenuItem, TextField, } from '@material-ui/core';\nimport colorSchemes from '../colorSchemes';\nexport default observer(function (_a) {\n var model = _a.model, onClose = _a.onClose, open = _a.open;\n var rowHeightInit = model.rowHeight, colWidthInit = model.colWidth, treeWidthInit = model.treeWidth, colorSchemeName = model.colorSchemeName, noTree = model.noTree;\n var _b = useState(\"\".concat(rowHeightInit)), rowHeight = _b[0], setRowHeight = _b[1];\n var _c = useState(\"\".concat(colWidthInit)), colWidth = _c[0], setColWidth = _c[1];\n var _d = useState(\"\".concat(treeWidthInit)), treeWidth = _d[0], setTreeWidth = _d[1];\n function error(n) {\n return Number.isNaN(+n) || +n < 0;\n }\n var rowHeightError = error(rowHeight);\n var colWidthError = error(colWidth);\n var treeWidthError = error(treeWidth);\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: open },\n React.createElement(DialogTitle, null, \"Settings\"),\n React.createElement(DialogContent, null,\n React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: model.showBranchLen, onChange: function () { return model.toggleBranchLen(); } }), label: \"Show branch length\" }),\n React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: model.bgColor, onChange: function () { return model.toggleBgColor(); } }), label: \"Color background\" }),\n React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: model.drawNodeBubbles, onChange: function () { return model.toggleNodeBubbles(); } }), label: \"Draw node bubbles\" }),\n React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: model.drawTree, onChange: function () { return model.toggleDrawTree(); } }), label: \"Draw tree (if available)\" }),\n React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: model.labelsAlignRight, onChange: function () { return model.toggleLabelsAlignRight(); } }), label: \"Labels align right (note: labels may draw over tree, but can adjust tree width or tree area width in UI)\" }),\n React.createElement(TextField, { label: \"Row height (px)\", value: rowHeight, error: rowHeightError, onChange: function (event) { return setRowHeight(event.target.value); } }),\n React.createElement(TextField, { label: \"Column width (px)\", value: colWidth, error: colWidthError, onChange: function (event) { return setColWidth(event.target.value); } }),\n React.createElement(\"br\", null),\n !noTree ? (React.createElement(TextField, { label: \"Tree width (px)\", value: treeWidth, error: treeWidthError, onChange: function (event) { return setTreeWidth(event.target.value); } })) : null,\n React.createElement(\"br\", null),\n React.createElement(TextField, { select: true, label: \"Color scheme\", value: colorSchemeName, onChange: function (event) { return model.setColorSchemeName(event.target.value); } }, Object.keys(colorSchemes).map(function (option) { return (React.createElement(MenuItem, { key: option, value: option }, option)); })),\n React.createElement(DialogActions, null,\n React.createElement(Button, { disabled: rowHeightError || colWidthError || treeWidthError, onClick: function () {\n model.setRowHeight(+rowHeight);\n model.setColWidth(+colWidth);\n if (!noTree) {\n model.setTreeWidth(+treeWidth);\n }\n onClose();\n }, variant: \"contained\", color: \"primary\" }, \"Submit\")))));\n});\n","import React, { useState } from 'react';\nimport { Dialog, DialogTitle, DialogContent, Typography, Link, } from '@material-ui/core';\nimport { version } from './package.json';\nfunction LicenseDialog(_a) {\n var onClose = _a.onClose, open = _a.open;\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: open },\n React.createElement(DialogTitle, null, \"Biotite License\"),\n React.createElement(DialogContent, null,\n React.createElement(\"pre\", { style: { height: 100, overflow: 'auto' } }, \"\\nCopyright 2017 - 2020, The Biotite contributors\\nAll rights reserved.\\n\\nRedistribution and use in source and binary forms, with or without modification,\\nare permitted provided that the following conditions are met:\\n\\n1. Redistributions of source code must retain the above copyright notice, this\\nlist of conditions and the following disclaimer.\\n\\n2. Redistributions in binary form must reproduce the above copyright notice,\\nthis list of conditions and the following disclaimer in the documentation and/or\\nother materials provided with the distribution.\\n\\n3. Neither the name of the copyright holder nor the names of its contributors\\nmay be used to endorse or promote products derived from this software without\\nspecific prior written permission.\\n\\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\\"AS IS\\\" AND\\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\\nANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\\n \"))));\n}\nexport default function AboutDialog(_a) {\n var onClose = _a.onClose, open = _a.open;\n var _b = useState(false), dlgOpen = _b[0], setDlgOpen = _b[1];\n return (React.createElement(React.Fragment, null,\n React.createElement(LicenseDialog, { onClose: function () { return setDlgOpen(false); }, open: dlgOpen }),\n React.createElement(Dialog, { onClose: function () { return onClose(); }, open: open },\n React.createElement(DialogTitle, null, \"About this plugin\"),\n React.createElement(DialogContent, null,\n React.createElement(Typography, null,\n \"MSAView \",\n version,\n \" (\",\n React.createElement(Link, { href: \"https://github.com/gmod/jbrowse-plugin-msaview\" }, \"Github\"),\n \")\"),\n React.createElement(\"ul\", null,\n React.createElement(\"li\", null,\n React.createElement(Typography, null,\n \"We use some color schemes from the\",\n ' ',\n React.createElement(Link, { href: \"https://github.com/biotite-dev/biotite\" }, \"biotite\"),\n ' ',\n \"project, and their license is reproduced\",\n ' ',\n React.createElement(Link, { onClick: function () { return setDlgOpen(true); } }, \"here\"))),\n React.createElement(\"li\", null,\n React.createElement(Typography, null,\n \"See this page for some information on jalview colorings\",\n ' ',\n React.createElement(Link, { href: \"https://www.jalview.org/help/html/colourSchemes/\" }, \"here\"))),\n React.createElement(\"li\", null,\n React.createElement(Typography, null,\n \"See this page for some info on the clustal, cinema, maeditor, and lesk color schemes\",\n ' ',\n React.createElement(Link, { href: \"http://www.bioinformatics.nl/~berndb/aacolour.html\" }, \"here\"))),\n React.createElement(\"li\", null,\n React.createElement(Typography, null,\n \"See this paper about the flower color scheme\",\n ' ',\n React.createElement(Link, { href: \"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7245768/\" }, \"here\"))))))));\n}\n","import React from 'react';\nimport { Dialog, DialogTitle, DialogContent } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { Attributes } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail';\nexport default observer(function (_a) {\n var model = _a.model, onClose = _a.onClose, open = _a.open;\n var alignmentDetails = model.alignmentDetails;\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: open },\n React.createElement(DialogTitle, null, \"Metadata\"),\n React.createElement(DialogContent, null,\n React.createElement(Attributes, { attributes: alignmentDetails }))));\n});\n","import React from 'react';\nimport { Dialog, DialogTitle, DialogContent, FormControlLabel, FormGroup, Checkbox, DialogActions, Button, Typography, } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nexport default observer(function (_a) {\n var model = _a.model, onClose = _a.onClose, open = _a.open;\n var tracks = model.tracks;\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: open },\n React.createElement(DialogTitle, null, \"Add track\"),\n React.createElement(DialogContent, null,\n React.createElement(Typography, null, \"Open relevant per-alignment tracks e.g. protein domains\"),\n React.createElement(FormGroup, null, tracks.map(function (track) {\n return (React.createElement(FormControlLabel, { key: track.model.id, control: React.createElement(Checkbox, { checked: !model.turnedOffTracks.has(track.model.id), onChange: function () {\n model.toggleTrack(track.model.id);\n } }), label: track.model.name }));\n })),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: function () { return onClose(); }, variant: \"contained\", color: \"primary\" }, \"Close\")))));\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z\"\n}), 'FolderOpen');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z\"\n}), 'Settings');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"\n}), 'Help');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\"\n}), 'List');\n\nexports.default = _default;","import React, { useState } from 'react';\nimport { IconButton, Select, Typography } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport SettingsDialog from './SettingsDlg';\nimport AboutDialog from './AboutDlg';\nimport DetailsDialog from './DetailsDlg';\nimport TracklistDialog from './TracklistDlg';\n//icons\nimport FolderOpenIcon from '@material-ui/icons/FolderOpen';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport HelpIcon from '@material-ui/icons/Help';\nimport AssignmentIcon from '@material-ui/icons/Assignment';\nimport ListIcon from '@material-ui/icons/List';\nvar InfoArea = observer(function (_a) {\n var model = _a.model;\n var mouseOverRowName = model.mouseOverRowName, mouseCol = model.mouseCol;\n return (React.createElement(\"div\", null,\n React.createElement(Typography, { display: \"inline\" },\n \"Row name: \",\n mouseOverRowName),\n React.createElement(\"span\", { style: { marginLeft: 10 } }),\n React.createElement(Typography, { display: \"inline\" },\n \"Position: \",\n mouseCol)));\n});\nvar Header = observer(function (_a) {\n var model = _a.model;\n var _b = useState(false), settingsDialogVisible = _b[0], setSettingsDialogVisible = _b[1];\n var _c = useState(false), aboutDialogVisible = _c[0], setAboutDialogVisible = _c[1];\n var _d = useState(false), detailsDialogVisible = _d[0], setDetailsDialogVisible = _d[1];\n var _e = useState(false), tracklistDialogVisible = _e[0], setTracklistDialogVisible = _e[1];\n var currentAlignment = model.currentAlignment, alignmentNames = model.alignmentNames;\n return (React.createElement(\"div\", { style: { display: 'flex' } },\n React.createElement(IconButton, { onClick: function () {\n model.setData({ tree: '', msa: '' });\n model.setTreeFilehandle(undefined);\n model.setMSAFilehandle(undefined);\n model.setScrollY(0);\n model.setScrollX(0);\n model.setCurrentAlignment(0);\n } },\n React.createElement(FolderOpenIcon, null)),\n React.createElement(IconButton, { onClick: function () { return setSettingsDialogVisible(true); } },\n React.createElement(SettingsIcon, null)),\n React.createElement(IconButton, { onClick: function () { return setDetailsDialogVisible(true); } },\n React.createElement(AssignmentIcon, null)),\n React.createElement(IconButton, { onClick: function () { return setTracklistDialogVisible(true); } },\n React.createElement(ListIcon, null)),\n settingsDialogVisible ? (React.createElement(SettingsDialog, { open: true, model: model, onClose: function () { return setSettingsDialogVisible(false); } })) : null,\n aboutDialogVisible ? (React.createElement(AboutDialog, { open: true, onClose: function () { return setAboutDialogVisible(false); } })) : null,\n detailsDialogVisible ? (React.createElement(DetailsDialog, { open: true, model: model, onClose: function () { return setDetailsDialogVisible(false); } })) : null,\n tracklistDialogVisible ? (React.createElement(TracklistDialog, { open: true, model: model, onClose: function () { return setTracklistDialogVisible(false); } })) : null,\n alignmentNames.length > 0 ? (React.createElement(Select, { native: true, value: currentAlignment, onChange: function (event) {\n model.setCurrentAlignment(+event.target.value);\n model.setScrollX(0);\n model.setScrollY(0);\n } }, alignmentNames.map(function (option, index) { return (React.createElement(\"option\", { key: \"\".concat(option, \"-\").concat(index), value: index }, option)); }))) : null,\n React.createElement(InfoArea, { model: model }),\n React.createElement(\"div\", { style: { flex: 1 } }),\n React.createElement(IconButton, { onClick: function () { return setAboutDialogVisible(true); } },\n React.createElement(HelpIcon, null))));\n});\nexport default Header;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","import React, { useState } from 'react';\nimport copy from 'copy-to-clipboard';\nimport { observer } from 'mobx-react';\nimport { Button, Dialog, DialogActions, DialogTitle, DialogContent, makeStyles, } from '@material-ui/core';\nvar useStyles = makeStyles(function (theme) { return ({\n textArea: {\n padding: theme.spacing(2),\n overflow: 'auto',\n background: '#ddd',\n wordBreak: 'break-word',\n },\n}); });\nvar TrackInfoDialog = observer(function (_a) {\n var model = _a.model, onClose = _a.onClose;\n var _b = useState('Copy to clipboard'), label = _b[0], setLabel = _b[1];\n var classes = useStyles();\n return (React.createElement(Dialog, { open: true, onClose: onClose, fullWidth: true, maxWidth: \"lg\" },\n React.createElement(DialogTitle, null,\n \"Track info - \",\n model.name),\n React.createElement(DialogContent, null,\n React.createElement(Button, { variant: \"contained\", color: \"primary\", onClick: function () {\n copy(model.data);\n setLabel('Copied!');\n setTimeout(function () {\n setLabel('Copy to clipboard');\n }, 300);\n } }, label),\n React.createElement(\"pre\", { className: classes.textArea }, model.data)),\n React.createElement(DialogActions, null,\n React.createElement(Button, { variant: \"contained\", onClick: onClose, color: \"secondary\" }, \"Close\"))));\n});\nexport default TrackInfoDialog;\n","import React, { useState, useRef, useEffect } from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport { observer } from 'mobx-react';\nimport { IconButton, Menu, MenuItem, makeStyles } from '@material-ui/core';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport TrackInfoDialog from './TrackInfoDlg';\nvar useStyles = makeStyles(function () { return ({\n button: {\n padding: 0,\n },\n}); });\nexport var TrackLabel = observer(function (_a) {\n var model = _a.model, track = _a.track;\n var _b = useState(), anchorEl = _b[0], setAnchorEl = _b[1];\n var _c = useState(false), trackInfoDlgOpen = _c[0], setTrackInfoDlgOpen = _c[1];\n var rowHeight = model.rowHeight, width = model.treeAreaWidth;\n var height = track.height, name = track.model.name;\n var classes = useStyles();\n var trackLabelHeight = Math.max(8, rowHeight - 8);\n return (React.createElement(\"div\", { style: {\n width: width,\n height: height,\n flexShrink: 0,\n textAlign: 'right',\n fontSize: trackLabelHeight,\n } },\n name,\n React.createElement(IconButton, { className: classes.button, style: { width: trackLabelHeight, height: trackLabelHeight }, onClick: function (event) {\n setAnchorEl(event.target);\n } },\n React.createElement(ArrowDropDownIcon, null)),\n anchorEl ? (React.createElement(Menu, { anchorEl: anchorEl, transitionDuration: 0, open: true, onClose: function () {\n setAnchorEl(undefined);\n } },\n React.createElement(MenuItem, { dense: true, onClick: function () {\n model.toggleTrack(track.model.id);\n setAnchorEl(undefined);\n } }, \"Close\"),\n React.createElement(MenuItem, { dense: true, onClick: function () {\n setTrackInfoDlgOpen(true);\n setAnchorEl(undefined);\n } }, \"Get info\"))) : null,\n trackInfoDlgOpen ? (React.createElement(TrackInfoDialog, { model: track.model, onClose: function () { return setTrackInfoDlgOpen(false); } })) : null));\n});\nvar Track = observer(function (_a) {\n var model = _a.model, track = _a.track;\n var resizeHandleWidth = model.resizeHandleWidth;\n var height = track.model.height;\n var ref = useRef(null);\n var scheduled = useRef(false);\n var deltaX = useRef(0);\n useEffect(function () {\n var curr = ref.current;\n if (!curr) {\n return;\n }\n function onWheel(origEvent) {\n var event = normalizeWheel(origEvent);\n deltaX.current += event.pixelX;\n if (!scheduled.current) {\n scheduled.current = true;\n requestAnimationFrame(function () {\n model.doScrollX(-deltaX.current);\n deltaX.current = 0;\n scheduled.current = false;\n });\n }\n origEvent.preventDefault();\n }\n curr.addEventListener('wheel', onWheel);\n return function () {\n curr.removeEventListener('wheel', onWheel);\n };\n }, [model]);\n return (React.createElement(\"div\", { key: track.id, style: { display: 'flex', height: height } },\n React.createElement(TrackLabel, { model: model, track: track }),\n React.createElement(\"div\", { style: { width: resizeHandleWidth, flexShrink: 0 } }),\n React.createElement(\"div\", { ref: ref },\n React.createElement(track.ReactComponent, { model: model, track: track }))));\n});\nexport default Track;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\n\nexports.default = _default;","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport React, { useState } from 'react';\nimport { observer } from 'mobx-react';\nimport { Button, Dialog, DialogActions, DialogTitle, DialogContent, IconButton, TextField, Typography, } from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nvar specialFromEntries = function (val) {\n var ret = {};\n val.forEach(function (_a) {\n var key = _a[0], val = _a[1];\n if (!ret[key])\n ret[key] = [];\n ret[key].push(val);\n });\n return ret;\n};\nvar Row = observer(function (_a) {\n var name = _a.name, value = _a.value, setValue = _a.setValue, setName = _a.setName, onDelete = _a.onDelete;\n return (React.createElement(\"div\", null,\n React.createElement(IconButton, { onClick: onDelete, style: { margin: 10 } },\n React.createElement(DeleteIcon, null)),\n React.createElement(TextField, { value: name, onChange: function (event) { return setName(event.target.value); }, label: \"Key\" }),\n React.createElement(TextField, { value: value, onChange: function (event) { return setValue(event.target.value); }, label: \"Value\" })));\n});\nexport default observer(function (_a) {\n var onClose = _a.onClose, data = _a.data, model = _a.model;\n var blanks = model.blanks;\n var l = data.left, r = data.right;\n var _b = useState([\n ['Name', ''],\n ['ID', ''],\n ['Note', ''],\n ]), rows = _b[0], setRows = _b[1];\n return (React.createElement(Dialog, { onClose: function () { return onClose(); }, open: true },\n React.createElement(DialogTitle, null, \"Create new region annotation\"),\n React.createElement(DialogContent, null,\n React.createElement(Typography, null,\n \"Do you want to add an annotation to the MSA at \",\n l,\n \"..\",\n r,\n ' ',\n blanks.length\n ? \" (gapped \".concat(model.getPos(l), \"..\").concat(model.getPos(r))\n : ''),\n rows.map(function (_a, index) {\n var key = _a[0], val = _a[1];\n return (React.createElement(Row, { key: index, name: key, value: val, setValue: function (newValue) {\n var newRows = __spreadArray([], rows, true);\n newRows[index][1] = newValue;\n setRows(newRows);\n }, setName: function (newName) {\n var newRows = __spreadArray([], rows, true);\n newRows[index][0] = newName;\n setRows(newRows);\n }, onDelete: function () {\n rows.splice(index, 1);\n setRows(__spreadArray([], rows, true));\n } }));\n }),\n React.createElement(Button, { onClick: function () {\n setRows(__spreadArray(__spreadArray([], rows, true), [['', '']], false));\n } }, \"Add row\"),\n React.createElement(DialogActions, null,\n React.createElement(Button, { onClick: function () {\n model.addAnnotation(l, r, specialFromEntries(rows));\n onClose();\n }, variant: \"contained\", color: \"primary\" }, \"Submit\"),\n React.createElement(Button, { variant: \"contained\", color: \"secondary\", onClick: function () { return onClose(); } }, \"Cancel\")))));\n});\n","import React, { useEffect, useRef, useState } from 'react';\nimport { observer } from 'mobx-react';\nexport var VerticalResizeHandle = observer(function (_a) {\n var model = _a.model;\n var resizeHandleWidth = model.resizeHandleWidth;\n var _b = useState(false), mouseDragging = _b[0], setMouseDragging = _b[1];\n var scheduled = useRef(false);\n var prevX = useRef(0);\n useEffect(function () {\n function globalMouseMove(event) {\n event.preventDefault();\n var currX = event.clientX;\n if (prevX.current === 0) {\n prevX.current = event.clientX;\n }\n else {\n var distance_1 = currX - prevX.current;\n if (distance_1) {\n // use rAF to make it so multiple event handlers aren't fired per-frame\n // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/\n if (!scheduled.current) {\n scheduled.current = true;\n window.requestAnimationFrame(function () {\n model.setTreeAreaWidth(model.treeAreaWidth + distance_1);\n scheduled.current = false;\n prevX.current = event.clientX;\n });\n }\n }\n }\n }\n function globalMouseUp() {\n prevX.current = 0;\n if (mouseDragging) {\n setMouseDragging(false);\n }\n }\n if (mouseDragging) {\n document.addEventListener('mousemove', globalMouseMove, true);\n document.addEventListener('mouseup', globalMouseUp, true);\n return function () {\n document.removeEventListener('mousemove', globalMouseMove, true);\n document.removeEventListener('mouseup', globalMouseUp, true);\n };\n }\n return function () { };\n }, [mouseDragging, model]);\n return (React.createElement(\"div\", null,\n React.createElement(\"div\", { onMouseDown: function () { return setMouseDragging(true); }, style: {\n cursor: 'ew-resize',\n height: '100%',\n width: resizeHandleWidth,\n background: \"rgba(200,200,200)\",\n position: 'relative',\n } })));\n});\nexport var HorizontalResizeHandle = observer(function (_a) {\n var model = _a.model;\n var resizeHandleWidth = model.resizeHandleWidth;\n var _b = useState(false), mouseDragging = _b[0], setMouseDragging = _b[1];\n var scheduled = useRef(false);\n var prevY = useRef(0);\n useEffect(function () {\n function globalMouseMove(event) {\n event.preventDefault();\n var currY = event.clientY;\n if (prevY.current === 0) {\n prevY.current = event.clientY;\n }\n else {\n var distance_2 = currY - prevY.current;\n if (distance_2) {\n // use rAF to make it so multiple event handlers aren't fired per-frame\n // see https://calendar.perfplanet.com/2013/the-runtime-performance-checklist/\n if (!scheduled.current) {\n scheduled.current = true;\n window.requestAnimationFrame(function () {\n model.setHeight(model.height + distance_2);\n scheduled.current = false;\n prevY.current = event.clientY;\n });\n }\n }\n }\n }\n function globalMouseUp() {\n prevY.current = 0;\n if (mouseDragging) {\n setMouseDragging(false);\n }\n }\n if (mouseDragging) {\n document.addEventListener('mousemove', globalMouseMove, true);\n document.addEventListener('mouseup', globalMouseUp, true);\n return function () {\n document.removeEventListener('mousemove', globalMouseMove, true);\n document.removeEventListener('mouseup', globalMouseUp, true);\n };\n }\n return function () { };\n }, [mouseDragging, model]);\n return (React.createElement(\"div\", null,\n React.createElement(\"div\", { onMouseDown: function () { return setMouseDragging(true); }, style: {\n cursor: 'ns-resize',\n width: '100%',\n height: resizeHandleWidth,\n background: \"rgba(200,200,200)\",\n position: 'relative',\n } })));\n});\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { useRef, useEffect } from 'react';\nimport { observer } from 'mobx-react';\nimport { Typography } from '@material-ui/core';\nimport ImportForm from './ImportForm';\nimport Rubberband from './Rubberband';\nimport TreeCanvas from './TreeCanvas';\nimport MSACanvas from './MSACanvas';\nimport Ruler from './Ruler';\nimport TreeRuler from './TreeRuler';\nimport Header from './Header';\nimport Track from './Track';\nimport AnnotationDialog from './AnnotationDlg';\nimport { HorizontalResizeHandle, VerticalResizeHandle } from './ResizeHandles';\nvar MouseoverCanvas = observer(function (_a) {\n var model = _a.model;\n var ref = useRef(null);\n var height = model.height, width = model.width, treeAreaWidth = model.treeAreaWidth, resizeHandleWidth = model.resizeHandleWidth, scrollX = model.scrollX, mouseCol = model.mouseCol, colWidth = model.colWidth;\n useEffect(function () {\n if (!ref.current) {\n return;\n }\n var ctx = ref.current.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.resetTransform();\n ctx.clearRect(0, 0, width, height);\n if (mouseCol !== undefined) {\n var x = (mouseCol - 1) * colWidth + scrollX + treeAreaWidth + resizeHandleWidth;\n ctx.fillStyle = 'rgba(100,100,100,0.5)';\n ctx.fillRect(x, 0, colWidth, height);\n }\n }, [\n mouseCol,\n colWidth,\n scrollX,\n height,\n resizeHandleWidth,\n treeAreaWidth,\n width,\n ]);\n return (React.createElement(\"canvas\", { ref: ref, width: width, height: height, style: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: width,\n height: height,\n zIndex: 1000,\n pointerEvents: 'none',\n } }));\n});\nexport default observer(function (_a) {\n var model = _a.model;\n var done = model.done, initialized = model.initialized, treeAreaWidth = model.treeAreaWidth, height = model.height, resizeHandleWidth = model.resizeHandleWidth, turnedOnTracks = model.turnedOnTracks;\n return (React.createElement(\"div\", null,\n !initialized ? (React.createElement(ImportForm, { model: model })) : !done ? (React.createElement(Typography, { variant: \"h4\" }, \"Loading...\")) : (React.createElement(\"div\", null,\n React.createElement(\"div\", { style: { height: height, overflow: 'hidden' } },\n React.createElement(Header, { model: model }),\n React.createElement(\"div\", null,\n React.createElement(\"div\", { style: { position: 'relative' } },\n React.createElement(\"div\", { style: { display: 'flex' } },\n React.createElement(\"div\", { style: { flexShrink: 0, width: treeAreaWidth } },\n React.createElement(TreeRuler, { model: model })),\n React.createElement(Rubberband, { model: model, ControlComponent: React.createElement(Ruler, { model: model }) })), turnedOnTracks === null || turnedOnTracks === void 0 ? void 0 :\n turnedOnTracks.map(function (track) { return (React.createElement(Track, { key: track.model.id, model: model, track: track })); }),\n React.createElement(\"div\", { style: { display: 'flex' } },\n React.createElement(\"div\", { style: { flexShrink: 0, width: treeAreaWidth } },\n React.createElement(TreeCanvas, { model: model })),\n React.createElement(VerticalResizeHandle, { model: model }),\n React.createElement(MSACanvas, { model: model }),\n React.createElement(MouseoverCanvas, { model: model }))))),\n React.createElement(HorizontalResizeHandle, { model: model }))),\n model.DialogComponent ? (React.createElement(model.DialogComponent, __assign({}, (model.DialogProps || {}), { onClose: function () {\n model.setDialogComponent(undefined, undefined);\n } }))) : null,\n model.annotPos ? (React.createElement(AnnotationDialog, { data: model.annotPos, model: model, onClose: function () { return model.clearAnnotPos(); } })) : null));\n});\n","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict';\n\n// Found this seed-based random generator somewhere\n// Based on The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)\n\nvar seed = 1;\n\n/**\n * return a random number based on a seed\n * @param seed\n * @returns {number}\n */\nfunction getNextValue() {\n seed = (seed * 9301 + 49297) % 233280;\n return seed/(233280.0);\n}\n\nfunction setSeed(_seed_) {\n seed = _seed_;\n}\n\nmodule.exports = {\n nextValue: getNextValue,\n seed: setSeed\n};\n","'use strict';\n\nvar randomFromSeed = require('./random/random-from-seed');\n\nvar ORIGINAL = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-';\nvar alphabet;\nvar previousSeed;\n\nvar shuffled;\n\nfunction reset() {\n shuffled = false;\n}\n\nfunction setCharacters(_alphabet_) {\n if (!_alphabet_) {\n if (alphabet !== ORIGINAL) {\n alphabet = ORIGINAL;\n reset();\n }\n return;\n }\n\n if (_alphabet_ === alphabet) {\n return;\n }\n\n if (_alphabet_.length !== ORIGINAL.length) {\n throw new Error('Custom alphabet for shortid must be ' + ORIGINAL.length + ' unique characters. You submitted ' + _alphabet_.length + ' characters: ' + _alphabet_);\n }\n\n var unique = _alphabet_.split('').filter(function(item, ind, arr){\n return ind !== arr.lastIndexOf(item);\n });\n\n if (unique.length) {\n throw new Error('Custom alphabet for shortid must be ' + ORIGINAL.length + ' unique characters. These characters were not unique: ' + unique.join(', '));\n }\n\n alphabet = _alphabet_;\n reset();\n}\n\nfunction characters(_alphabet_) {\n setCharacters(_alphabet_);\n return alphabet;\n}\n\nfunction setSeed(seed) {\n randomFromSeed.seed(seed);\n if (previousSeed !== seed) {\n reset();\n previousSeed = seed;\n }\n}\n\nfunction shuffle() {\n if (!alphabet) {\n setCharacters(ORIGINAL);\n }\n\n var sourceArray = alphabet.split('');\n var targetArray = [];\n var r = randomFromSeed.nextValue();\n var characterIndex;\n\n while (sourceArray.length > 0) {\n r = randomFromSeed.nextValue();\n characterIndex = Math.floor(r * sourceArray.length);\n targetArray.push(sourceArray.splice(characterIndex, 1)[0]);\n }\n return targetArray.join('');\n}\n\nfunction getShuffled() {\n if (shuffled) {\n return shuffled;\n }\n shuffled = shuffle();\n return shuffled;\n}\n\n/**\n * lookup shuffled letter\n * @param index\n * @returns {string}\n */\nfunction lookup(index) {\n var alphabetShuffled = getShuffled();\n return alphabetShuffled[index];\n}\n\nfunction get () {\n return alphabet || ORIGINAL;\n}\n\nmodule.exports = {\n get: get,\n characters: characters,\n seed: setSeed,\n lookup: lookup,\n shuffled: getShuffled\n};\n","'use strict';\n\nvar crypto = typeof window === 'object' && (window.crypto || window.msCrypto); // IE 11 uses window.msCrypto\n\nvar randomByte;\n\nif (!crypto || !crypto.getRandomValues) {\n randomByte = function(size) {\n var bytes = [];\n for (var i = 0; i < size; i++) {\n bytes.push(Math.floor(Math.random() * 256));\n }\n return bytes;\n };\n} else {\n randomByte = function(size) {\n return crypto.getRandomValues(new Uint8Array(size));\n };\n}\n\nmodule.exports = randomByte;\n","// This file replaces `format.js` in bundlers like webpack or Rollup,\n// according to `browser` config in `package.json`.\n\nmodule.exports = function (random, alphabet, size) {\n // We can’t use bytes bigger than the alphabet. To make bytes values closer\n // to the alphabet, we apply bitmask on them. We look for the closest\n // `2 ** x - 1` number, which will be bigger than alphabet size. If we have\n // 30 symbols in the alphabet, we will take 31 (00011111).\n // We do not use faster Math.clz32, because it is not available in browsers.\n var mask = (2 << Math.log(alphabet.length - 1) / Math.LN2) - 1\n // Bitmask is not a perfect solution (in our example it will pass 31 bytes,\n // which is bigger than the alphabet). As a result, we will need more bytes,\n // than ID size, because we will refuse bytes bigger than the alphabet.\n\n // Every hardware random generator call is costly,\n // because we need to wait for entropy collection. This is why often it will\n // be faster to ask for few extra bytes in advance, to avoid additional calls.\n\n // Here we calculate how many random bytes should we call in advance.\n // It depends on ID length, mask / alphabet size and magic number 1.6\n // (which was selected according benchmarks).\n\n // -~f => Math.ceil(f) if n is float number\n // -~i => i + 1 if n is integer number\n var step = -~(1.6 * mask * size / alphabet.length)\n var id = ''\n\n while (true) {\n var bytes = random(step)\n // Compact alternative for `for (var i = 0; i < step; i++)`\n var i = step\n while (i--) {\n // If random byte is bigger than alphabet even after bitmask,\n // we refuse it by `|| ''`.\n id += alphabet[bytes[i] & mask] || ''\n // More compact than `id.length + 1 === size`\n if (id.length === +size) return id\n }\n }\n}\n","'use strict';\n\nvar alphabet = require('./alphabet');\nvar random = require('./random/random-byte');\nvar format = require('nanoid/format');\n\nfunction generate(number) {\n var loopCounter = 0;\n var done;\n\n var str = '';\n\n while (!done) {\n str = str + format(random, alphabet.get(), 1);\n done = number < (Math.pow(16, loopCounter + 1 ) );\n loopCounter++;\n }\n return str;\n}\n\nmodule.exports = generate;\n","'use strict';\n\nvar generate = require('./generate');\nvar alphabet = require('./alphabet');\n\n// Ignore all milliseconds before a certain time to reduce the size of the date entropy without sacrificing uniqueness.\n// This number should be updated every year or so to keep the generated id short.\n// To regenerate `new Date() - 0` and bump the version. Always bump the version!\nvar REDUCE_TIME = 1567752802062;\n\n// don't change unless we change the algos or REDUCE_TIME\n// must be an integer and less than 16\nvar version = 7;\n\n// Counter is used when shortid is called multiple times in one second.\nvar counter;\n\n// Remember the last time shortid was called in case counter is needed.\nvar previousSeconds;\n\n/**\n * Generate unique id\n * Returns string id\n */\nfunction build(clusterWorkerId) {\n var str = '';\n\n var seconds = Math.floor((Date.now() - REDUCE_TIME) * 0.001);\n\n if (seconds === previousSeconds) {\n counter++;\n } else {\n counter = 0;\n previousSeconds = seconds;\n }\n\n str = str + generate(version);\n str = str + generate(clusterWorkerId);\n if (counter > 0) {\n str = str + generate(counter);\n }\n str = str + generate(seconds);\n return str;\n}\n\nmodule.exports = build;\n","'use strict';\nvar alphabet = require('./alphabet');\n\nfunction isShortId(id) {\n if (!id || typeof id !== 'string' || id.length < 6 ) {\n return false;\n }\n\n var nonAlphabetic = new RegExp('[^' +\n alphabet.get().replace(/[|\\\\{}()[\\]^$+*?.-]/g, '\\\\$&') +\n ']');\n return !nonAlphabetic.test(id);\n}\n\nmodule.exports = isShortId;\n","'use strict';\n\nvar alphabet = require('./alphabet');\nvar build = require('./build');\nvar isValid = require('./is-valid');\n\n// if you are using cluster or multiple servers use this to make each instance\n// has a unique value for worker\n// Note: I don't know if this is automatically set when using third\n// party cluster solutions such as pm2.\nvar clusterWorkerId = require('./util/cluster-worker-id') || 0;\n\n/**\n * Set the seed.\n * Highly recommended if you don't want people to try to figure out your id schema.\n * exposed as shortid.seed(int)\n * @param seed Integer value to seed the random alphabet. ALWAYS USE THE SAME SEED or you might get overlaps.\n */\nfunction seed(seedValue) {\n alphabet.seed(seedValue);\n return module.exports;\n}\n\n/**\n * Set the cluster worker or machine id\n * exposed as shortid.worker(int)\n * @param workerId worker must be positive integer. Number less than 16 is recommended.\n * returns shortid module so it can be chained.\n */\nfunction worker(workerId) {\n clusterWorkerId = workerId;\n return module.exports;\n}\n\n/**\n *\n * sets new characters to use in the alphabet\n * returns the shuffled alphabet\n */\nfunction characters(newCharacters) {\n if (newCharacters !== undefined) {\n alphabet.characters(newCharacters);\n }\n\n return alphabet.shuffled();\n}\n\n/**\n * Generate unique id\n * Returns string id\n */\nfunction generate() {\n return build(clusterWorkerId);\n}\n\n// Export all other functions as properties of the generate function\nmodule.exports = generate;\nmodule.exports.generate = generate;\nmodule.exports.seed = seed;\nmodule.exports.worker = worker;\nmodule.exports.characters = characters;\nmodule.exports.isValid = isValid;\n","'use strict';\nmodule.exports = require('./lib/index');\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FileLocation = exports.UriLocation = exports.UriLocationRaw = exports.BlobLocation = exports.LocalPathLocation = exports.Region = exports.NoAssemblyRegion = exports.PropTypes = exports.ElementId = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _shortid = _interopRequireDefault(require(\"shortid\"));\n\nvar _mobxStateTree = require(\"mobx-state-tree\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _mobxReact = require(\"mobx-react\");\n\nvar _excluded = [\"baseUri\"];\n\nvar ElementId = _mobxStateTree.types.optional(_mobxStateTree.types.identifier, _shortid.default.generate); // PropTypes that are useful when working with instances of these in react components\n\n\nexports.ElementId = ElementId;\nvar PropTypes = {\n Region: _propTypes.default.shape({\n refName: _propTypes.default.string.isRequired,\n start: _propTypes.default.number.isRequired,\n end: _propTypes.default.number.isRequired\n }),\n ConfigSchema: _mobxReact.PropTypes.objectOrObservableObject,\n Feature: _propTypes.default.shape({\n get: _propTypes.default.func.isRequired,\n id: _propTypes.default.func.isRequired\n })\n};\nexports.PropTypes = PropTypes;\n\nvar NoAssemblyRegion = _mobxStateTree.types.model('NoAssemblyRegion', {\n refName: _mobxStateTree.types.string,\n start: _mobxStateTree.types.number,\n end: _mobxStateTree.types.number,\n reversed: _mobxStateTree.types.optional(_mobxStateTree.types.boolean, false)\n}).actions(function (self) {\n return {\n setRefName: function setRefName(newRefName) {\n self.refName = newRefName;\n }\n };\n});\n\nexports.NoAssemblyRegion = NoAssemblyRegion;\n\nvar Region = _mobxStateTree.types.compose('Region', NoAssemblyRegion, _mobxStateTree.types.model({\n assemblyName: _mobxStateTree.types.string\n}));\n\nexports.Region = Region;\n\nvar LocalPathLocation = _mobxStateTree.types.model('LocalPathLocation', {\n localPath: _mobxStateTree.types.string // TODO: refine\n\n});\n\nexports.LocalPathLocation = LocalPathLocation;\n\nvar BlobLocation = _mobxStateTree.types.model('BlobLocation', {\n name: _mobxStateTree.types.string,\n // TODO: refine\n blobId: _mobxStateTree.types.string\n});\n\nexports.BlobLocation = BlobLocation;\n\nvar UriLocationRaw = _mobxStateTree.types.model('UriLocation', {\n uri: _mobxStateTree.types.string,\n // TODO: refine\n baseUri: _mobxStateTree.types.maybe(_mobxStateTree.types.string)\n});\n\nexports.UriLocationRaw = UriLocationRaw;\n\nvar UriLocation = _mobxStateTree.types.snapshotProcessor(UriLocationRaw, {\n postProcessor: function postProcessor(snap) {\n var baseUri = snap.baseUri,\n rest = (0, _objectWithoutProperties2.default)(snap, _excluded);\n\n if (!baseUri) {\n return rest;\n }\n\n return snap;\n }\n});\n\nexports.UriLocation = UriLocation;\n\nvar FileLocation = _mobxStateTree.types.union(LocalPathLocation, UriLocation, BlobLocation);\n\nexports.FileLocation = FileLocation;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _mobxStateTree = require(\"mobx-state-tree\");\n\nvar _mst = require(\"../../util/types/mst\");\n\nvar BaseViewModel = _mobxStateTree.types.model('BaseView', {\n id: _mst.ElementId,\n displayName: _mobxStateTree.types.maybe(_mobxStateTree.types.string)\n}).volatile(function () {\n return (\n /* self */\n {\n width: 800\n }\n );\n}).views(function () {\n return (\n /* self */\n {\n menuItems: function menuItems() {\n return [];\n }\n }\n );\n}).actions(function (self) {\n return {\n setDisplayName: function setDisplayName(name) {\n self.displayName = name;\n },\n setWidth: function setWidth(newWidth) {\n self.width = newWidth;\n }\n };\n});\n\nvar _default = BaseViewModel; // eslint-disable-next-line @typescript-eslint/no-empty-interface,@typescript-eslint/interface-name-prefix\n\nexports.default = _default;","const Stockholm = function() {\n let obj = { gf: {}, // gf[tag] = ARRAY\n gc: {}, // gc[tag] = STRING\n gs: {}, // gs[tag][seqname] = ARRAY\n gr: {}, // gr[tag][seqname] = STRING\n seqname: [], // optional, specify ordering of rows\n seqdata: {} // seqdata[seqname] = STRING\n }\n Object.keys(obj).forEach ((prop) => this[prop] = obj[prop])\n return this\n}\n\nconst formatStartRegex = /^# STOCKHOLM 1.0/;\nconst formatEndRegex = /^\\/\\/\\s*$/;\nconst gfRegex = /^#=GF\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst gcRegex = /^#=GC\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst gsRegex = /^#=GS\\s+(\\S+)\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst grRegex = /^#=GR\\s+(\\S+)\\s+(\\S+)\\s+(.*?)\\s*$/;\nconst lineRegex = /^\\s*(\\S+)\\s+(\\S+)\\s*$/;\nconst nonwhiteRegex = /\\S/;\n\nconst noFormatStart = \"No format header: # STOCKHOLM 1.0\";\nconst noFormatEnd = \"No format footer: //\";\nconst badLine = \"Malformed line\";\nconst atLine = (n) => \"(At line \" + (n+1) + \") \";\n\nconst sniff = (text) => formatStartRegex.test (text);\n\nconst validate = (text) => {\n try {\n parseAll (text, { strict: true })\n } catch (e) {\n return false\n }\n return true\n}\n\nconst error = (err) => { throw new Error (err); }\nconst warning = (err) => console.warn(err);\n\nconst parseAll = (text, opts) => {\n opts = opts || {}\n const maybeWarning = opts.quiet ? (() => null) : warning;\n const maybeError = opts.strict ? error : maybeWarning;\n let db = [], stock = null\n const lines = text.split(\"\\n\")\n lines.forEach ((line, n) => {\n const makeStock = () => {\n if (!stock) {\n maybeError (atLine(n) + noFormatStart);\n stock = new Stockholm();\n }\n };\n let match;\n if (formatStartRegex.test(line)) {\n if (stock) maybeError (atLine(n) + noFormatEnd);\n stock = new Stockholm();\n } else if (formatEndRegex.test(line)) {\n if (stock)\n db.push (stock);\n else\n maybeError (atLine(n) + noFormatStart);\n stock = null;\n } else if (match = gfRegex.exec(line)) {\n makeStock();\n stock.gf[match[1]] = stock.gf[match[1]] || [];\n stock.gf[match[1]].push (match[2]);\n } else if (match = gcRegex.exec(line)) {\n makeStock();\n stock.gc[match[1]] = stock.gc[match[1]] || '';\n stock.gc[match[1]] += match[2];\n } else if (match = gsRegex.exec(line)) {\n makeStock();\n stock.gs[match[2]] = stock.gs[match[2]] || {};\n stock.gs[match[2]][match[1]] = stock.gs[match[2]][match[1]] || [];\n stock.gs[match[2]][match[1]].push (match[3]);\n } else if (match = grRegex.exec(line)) {\n makeStock();\n stock.gr[match[2]] = stock.gr[match[2]] || {};\n stock.gr[match[2]][match[1]] = stock.gr[match[2]][match[1]] || '';\n stock.gr[match[2]][match[1]] += match[3];\n } else if (match = lineRegex.exec(line)) {\n makeStock();\n if (!stock.seqdata[match[1]]) {\n stock.seqdata[match[1]] = '';\n stock.seqname.push (match[1]);\n }\n stock.seqdata[match[1]] += match[2];\n } else if (nonwhiteRegex.test (line)) {\n error (atLine(n) + badLine);\n }\n })\n if (stock) {\n maybeError (\"Warning: no end line //\");\n db.push (stock);\n }\n return db;\n}\n\nconst parse = (text, opts) => {\n const db = parseAll (text, opts);\n if (db.length === 0)\n error (\"No alignments found\");\n if (db.length > 1)\n error (\"More than one alignment found\");\n return db[0];\n}\n\nconst fromSeqIndex = (seqdata, names) => {\n let stock = new Stockholm()\n names = names || Object.keys(seqdata) // specifying order is optional\n names.forEach ((name) => stock.addRow (name, seqdata[name]))\n return stock\n}\n\nconst fromRowList = (array) => {\n let stock = new Stockholm()\n array.forEach ((row) => stock.addRow (row[0], row[1]))\n return stock\n}\n\nStockholm.prototype.rows = function() {\n return this.seqname.length\n}\n\nStockholm.prototype.columns = function() {\n let cols = 0\n this.seqname.forEach ((name) => { cols = Math.max (cols, this.seqdata[name].length) })\n Object.keys(this.gr).forEach ((tag) => Object.keys(this.gr[tag]).forEach ((name) => {\n cols = Math.max (cols, this.gr[tag][name].length)\n }))\n return cols\n}\n\nStockholm.prototype.allNames = function() {\n let isName = {},\n names = [],\n addName = (name) => { if (!isName[name]) { isName[name] = true; names.push (name) } },\n addNames = (list) => list.forEach (addName);\n addNames (this.seqname);\n addNames (Object.keys (this.seqdata)); // just in case seqdata has been independently modified\n Object.keys(this.gr).forEach ((tag) => addNames (Object.keys(this.gr[tag])));\n Object.keys(this.gs).forEach ((tag) => addNames (Object.keys(this.gs[tag])));\n return names\n}\n\nStockholm.prototype.allTags = function() {\n let isTag = {}\n const addTags = (obj) => Object.keys(obj).forEach ((tag) => isTag[tag] = true)\n addTags (this.gc)\n addTags (this.gf)\n addTags (this.gr)\n addTags (this.gs)\n return Object.keys(isTag).sort()\n}\n\nStockholm.prototype.addRow = function (name, data) {\n if (this.seqdata[name])\n error (\"Duplicate row name\")\n this.seqname.push (name)\n this.seqdata[name] = data || ''\n return this\n}\n\nStockholm.prototype.deleteRow = function (name) {\n if (!this.seqdata[name])\n error (\"Row not found\")\n this.seqname = this.seqname.filter ((n) => n !== name);\n delete this.seqdata[name];\n return this\n}\n\nfunction leftPad (text, width) {\n while (text.length < width)\n text = ' ' + text\n return text\n}\n\nfunction rightPad (text, width) {\n while (text.length < width)\n text = text + ' '\n return text\n}\n\nfunction space (width) {\n return leftPad (\"\", width)\n}\n\nStockholm.prototype.toString = function (opts) {\n opts = opts || { width: 80, indentNames: false }\n const names = this.allNames(), cols = this.columns()\n const nameWidth = Math.max.apply (null, names.map ((name) => name.length).concat([0]))\n const tagWidth = Math.max.apply (null, this.allTags().map ((tag) => tag.length).concat([0]))\n const seqIndent = tagWidth ? (tagWidth + 6) : 0;\n const width = opts.width ? Math.max (1, opts.width - nameWidth - seqIndent - 1) : cols\n const pad = opts.indentNames ? leftPad : rightPad\n const padTagName = (opts.indentNames\n ? ((tag, name) => leftPad(tag,tagWidth) + \" \" + leftPad(name,nameWidth))\n : ((tag, name) => rightPad(tag+\" \"+name,tagWidth+nameWidth+1)))\n let offsets = [0]\n for (let offset = width; offset < cols; offset += width)\n offsets.push (offset)\n return \"# STOCKHOLM 1.0\\n\"\n + Object.keys(this.gf).sort().map (tag => this.gf[tag].map((line) => \"#=GF \" + pad(tag,tagWidth) + \" \" + line + \"\\n\").join('')).join('')\n + Object.keys(this.gs).sort().map (tag => Object.keys(this.gs[tag]).map((name) => this.gs[tag][name].map ((line) => \"#=GS \" + padTagName(tag,name) + \" \" + line + \"\\n\").join('')).join('')).join('')\n + offsets.map ((offset) =>\n Object.keys(this.gc).sort().map (tag => \"#=GC \" + pad(tag,tagWidth) + space(nameWidth+2) + this.gc[tag].substr(offset,width) + \"\\n\").join('')\n + names.map ((name) => Object.keys(this.gr).filter ((tag) => this.gr[tag][name]).sort().map ((tag) => \"#=GR \" + padTagName(tag,name) + \" \" + this.gr[tag][name].substr(offset,width) + \"\\n\").join('')\n + (this.seqdata[name]\n ? (pad(name,nameWidth+seqIndent)\n + \" \" + this.seqdata[name].substr(offset,width) + \"\\n\")\n : '')).join('')).join(\"\\n\")\n + \"//\\n\"\n}\n\nStockholm.prototype.toFasta = function (opts) {\n opts = opts || { width: 80 }\n const cols = this.columns()\n const width = opts.width || cols\n let offsets = [0]\n for (let offset = width; offset < cols; offset += width)\n offsets.push (offset)\n return this.allNames()\n .map ((name) =>\n (this.seqdata[name]\n ? (\">\" + name + \"\\n\"\n + offsets.map ((offset) => this.seqdata[name].substr (offset, width) + \"\\n\").join(''))\n : ''))\n .join('')\n}\n\nStockholm.prototype.toRowList = function (opts) {\n return this.allNames()\n .filter ((name) => this.seqdata[name])\n .map ((name) => [name, this.seqdata[name]])\n}\n\nif (typeof(module) !== 'undefined')\n module.exports = { sniff, validate, parse, parseAll, fromSeqIndex, fromRowList, Stockholm }\n","module.exports = require('./src/Stockholm')\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseBlocks = exports.parseBlock = exports.getSeqBounds = exports.getFirstNonEmptyLine = exports.parseHeader = exports.parseVersion = void 0;\nfunction parseVersion(line) {\n const res = line.match(/\\(?(\\d+(\\.\\d+)+)\\)?/);\n return res && res.length > 1 ? res[1] : \"\";\n}\nexports.parseVersion = parseVersion;\nfunction parseHeader(info) {\n const knownHeaders = [\"CLUSTAL\", \"PROBCONS\", \"MUSCLE\", \"MSAPROBS\", \"Kalign\"];\n if (!knownHeaders.find((l) => info.startsWith(l))) {\n console.warn(`${info} is not a known CLUSTAL header: ${knownHeaders.join(\",\")}, proceeding but could indicate an issue`);\n }\n const version = parseVersion(info);\n return { info, version };\n}\nexports.parseHeader = parseHeader;\nfunction getFirstNonEmptyLine(arr) {\n // There should be two blank lines after the header line\n let line = arr.next();\n while (!line.done && line.value.trim() === \"\") {\n line = arr.next();\n }\n return line.value;\n}\nexports.getFirstNonEmptyLine = getFirstNonEmptyLine;\nfunction getSeqBounds(line) {\n const fields = line.split(/\\s+/);\n const temp = line.slice(fields[0].length);\n const s = fields[0].length + temp.indexOf(fields[1]);\n const e = s + fields[1].length;\n return [s, e];\n}\nexports.getSeqBounds = getSeqBounds;\n// Use the first block to get the sequence identifiers\nfunction parseBlock(arr) {\n let line = getFirstNonEmptyLine(arr);\n const block = [];\n let consensusLine = \"\";\n if (!line)\n return undefined;\n while (line) {\n if (line[0] !== \" \")\n block.push(line);\n else\n consensusLine = line;\n line = arr.next().value;\n }\n const [start, end] = getSeqBounds(block[0]);\n const fields = block.map((s) => s.split(/\\s+/));\n const ids = fields.map((s) => s[0]);\n const seqs = block.map((s) => s.slice(start, end));\n let consensus = consensusLine.slice(start, end);\n // handle if the consensus trailing whitespace got trimmed\n const remainder = seqs[0].length - consensus.length;\n if (remainder) {\n consensus += \" \".repeat(remainder);\n }\n return { ids, seqs, consensus };\n}\nexports.parseBlock = parseBlock;\nfunction parseBlocks(arr) {\n let block;\n const res = parseBlock(arr);\n if (res !== undefined) {\n while ((block = parseBlock(arr))) {\n for (let i = 0; i < block.seqs.length; i++) {\n res.seqs[i] += block.seqs[i];\n }\n res.consensus += block.consensus;\n }\n }\n return res;\n}\nexports.parseBlocks = parseBlocks;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = exports.parseIter = void 0;\nconst util_1 = require(\"./util\");\nfunction parseIter(arr) {\n const line = util_1.getFirstNonEmptyLine(arr);\n if (!line)\n throw new Error(\"Empty file received\");\n const header = util_1.parseHeader(line);\n const res = util_1.parseBlocks(arr);\n if (res === undefined)\n throw new Error(\"No blocks parsed\");\n const alns = res.seqs.map((n, index) => ({ id: res.ids[index], seq: n }));\n const { consensus } = res;\n if (consensus.length != alns[0].seq.length) {\n throw new Error(`Consensus length != sequence length. Con ${consensus.length} seq ${alns[0].seq.length}`);\n }\n return { consensus, alns, header };\n}\nexports.parseIter = parseIter;\nfunction parse(contents) {\n const iter = contents.split(\"\\n\")[Symbol.iterator]();\n return parseIter(iter);\n}\nexports.parse = parse;\n","import { parse } from 'clustal-js';\nvar ClustalMSA = /** @class */ (function () {\n function ClustalMSA(text) {\n this.MSA = parse(text);\n }\n ClustalMSA.prototype.getMSA = function () {\n return this.MSA;\n };\n ClustalMSA.prototype.getRow = function (name) {\n var _a;\n return (_a = this.MSA.alns.find(function (aln) { return aln.id === name; })) === null || _a === void 0 ? void 0 : _a.seq.split('');\n };\n ClustalMSA.prototype.getWidth = function () {\n return this.MSA.alns[0].seq.length;\n };\n ClustalMSA.prototype.getDetails = function () {\n return this.MSA.header;\n };\n ClustalMSA.prototype.getNames = function () {\n return this.MSA.alns.map(function (aln) { return aln.id; });\n };\n ClustalMSA.prototype.getStructures = function () {\n return {};\n };\n Object.defineProperty(ClustalMSA.prototype, \"alignmentNames\", {\n get: function () {\n return [];\n },\n enumerable: false,\n configurable: true\n });\n ClustalMSA.prototype.getTree = function () {\n return {\n id: 'root',\n noTree: true,\n branchset: this.getNames().map(function (name) { return ({ id: name, name: name }); }),\n };\n };\n Object.defineProperty(ClustalMSA.prototype, \"seqConsensus\", {\n get: function () {\n return this.MSA.consensus;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ClustalMSA.prototype, \"secondaryStructureConsensus\", {\n get: function () {\n return undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ClustalMSA.prototype, \"tracks\", {\n get: function () {\n var _a;\n return ((_a = this.seqConsensus) === null || _a === void 0 ? void 0 : _a.trim())\n ? [\n {\n id: 'seqConsensus',\n name: 'Sequence consensus',\n data: this.seqConsensus,\n customColorScheme: {\n '*': 'white',\n ':': 'grey',\n '.': 'darkgrey',\n ' ': 'black',\n },\n },\n ]\n : [];\n },\n enumerable: false,\n configurable: true\n });\n return ClustalMSA;\n}());\nexport default ClustalMSA;\n","/**\n * Newick format parser in JavaScript.\n *\n * Copyright (c) Jason Davies 2010.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * Example tree (from http://en.wikipedia.org/wiki/Newick_format):\n *\n * +--0.1--A\n * F-----0.2-----B +-------0.3----C\n * +------------------0.5-----E\n * +---------0.4------D\n *\n * Newick format:\n * (A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5)F;\n *\n * Converted to JSON:\n * {\n * name: \"F\",\n * branchset: [\n * {name: \"A\", length: 0.1},\n * {name: \"B\", length: 0.2},\n * {\n * name: \"E\",\n * length: 0.5,\n * branchset: [\n * {name: \"C\", length: 0.3},\n * {name: \"D\", length: 0.4}\n * ]\n * }\n * ]\n * }\n *\n * Converted to JSON, but with no names or lengths:\n * {\n * branchset: [\n * {}, {}, {\n * branchset: [{}, {}]\n * }\n * ]\n * }\n */\nexport default function parse(s) {\n var ancestors = [];\n var tree = {};\n var tokens = s.split(/\\s*(;|\\(|\\)|,|:)\\s*/);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var subtree = {};\n switch (token) {\n case '(': // new branchset\n tree.branchset = [subtree];\n ancestors.push(tree);\n tree = subtree;\n break;\n case ',': // another branch\n ancestors[ancestors.length - 1].branchset.push(subtree);\n tree = subtree;\n break;\n case ')': // optional name next\n tree = ancestors.pop();\n break;\n case ':': // optional length next\n break;\n default: {\n var x = tokens[i - 1];\n if (x === ')' || x === '(' || x === ',') {\n tree.name = token;\n }\n else if (x === ':') {\n tree.length = parseFloat(token);\n }\n }\n }\n }\n return tree;\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport Stockholm from 'stockholm-js';\nimport parseNewick from '../parseNewick';\nimport { generateNodeIds } from '../util';\nvar StockholmMSA = /** @class */ (function () {\n function StockholmMSA(text, currentAlignment) {\n var res = Stockholm.parseAll(text);\n this.data = res;\n this.MSA = res[currentAlignment];\n }\n StockholmMSA.prototype.getMSA = function () {\n return this.MSA;\n };\n StockholmMSA.prototype.getRow = function (name) {\n var _a, _b;\n return (_b = (_a = this.MSA) === null || _a === void 0 ? void 0 : _a.seqdata[name]) === null || _b === void 0 ? void 0 : _b.split('');\n };\n StockholmMSA.prototype.getWidth = function () {\n var _a;\n var name = Object.keys((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.seqdata)[0];\n return this.getRow(name).length;\n };\n Object.defineProperty(StockholmMSA.prototype, \"alignmentNames\", {\n get: function () {\n return this.data.map(function (aln, index) { var _a; return ((_a = aln.gf.DE) === null || _a === void 0 ? void 0 : _a[0]) || \"Alignment \".concat(index + 1); });\n },\n enumerable: false,\n configurable: true\n });\n StockholmMSA.prototype.getDetails = function () {\n var _a, _b;\n return {\n General: this.MSA.gf,\n Accessions: (_a = this.MSA.gs) === null || _a === void 0 ? void 0 : _a.AC,\n Dbxref: (_b = this.MSA.gs) === null || _b === void 0 ? void 0 : _b.DR,\n };\n };\n StockholmMSA.prototype.getRowDetails = function (rowName) {\n var _a, _b;\n return {\n name: rowName,\n accession: (_a = this.MSA.gs) === null || _a === void 0 ? void 0 : _a.AC[rowName],\n dbxref: (_b = this.MSA.gs) === null || _b === void 0 ? void 0 : _b.DR[rowName],\n };\n };\n StockholmMSA.prototype.getNames = function () {\n return Object.keys(this.MSA.seqdata);\n };\n StockholmMSA.prototype.getSeqCoords = function () { };\n StockholmMSA.prototype.getStructures = function () {\n var _a;\n var pdbRegex = /PDB; +(\\S+) +(\\S); ([0-9]+)-([0-9]+)/;\n var ent = this.MSA;\n return Object.entries(((_a = ent.gs) === null || _a === void 0 ? void 0 : _a.DR) || {})\n .map(function (_a) {\n var id = _a[0], dr = _a[1];\n return [id, pdbRegex.exec(dr)];\n })\n .filter(function (item) { return !!item[1]; })\n .map(function (_a) {\n var id = _a[0], match = _a[1];\n var pdb = match[1].toLowerCase();\n var chain = match[2];\n var startPos = +match[3];\n var endPos = +match[4];\n return { id: id, pdb: pdb, chain: chain, startPos: startPos, endPos: endPos };\n })\n .reduce(function (a, b) {\n var id = b.id, rest = __rest(b, [\"id\"]);\n if (!a[id]) {\n a[id] = [];\n }\n a[id].push(rest);\n return a;\n }, {});\n };\n StockholmMSA.prototype.getTree = function () {\n var _a, _b, _c;\n var tree = (_c = (_b = (_a = this.MSA) === null || _a === void 0 ? void 0 : _a.gf) === null || _b === void 0 ? void 0 : _b.NH) === null || _c === void 0 ? void 0 : _c[0];\n return tree\n ? generateNodeIds(parseNewick(tree))\n : {\n id: 'root',\n noTree: true,\n branchset: this.getNames().map(function (name) { return ({\n id: name,\n name: name,\n }); }),\n };\n };\n Object.defineProperty(StockholmMSA.prototype, \"seqConsensus\", {\n get: function () {\n var _a;\n return (_a = this.MSA.gc) === null || _a === void 0 ? void 0 : _a.seq_cons;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StockholmMSA.prototype, \"secondaryStructureConsensus\", {\n get: function () {\n var _a;\n return (_a = this.MSA.gc) === null || _a === void 0 ? void 0 : _a.SS_cons;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StockholmMSA.prototype, \"tracks\", {\n get: function () {\n return [\n {\n id: 'seqConsensus',\n name: 'Sequence consensus',\n data: this.seqConsensus,\n customColorScheme: {},\n },\n {\n id: 'secondaryStruct',\n name: 'Secondary-structure',\n data: this.secondaryStructureConsensus,\n customColorScheme: {\n '>': 'pink',\n '<': 'lightblue',\n },\n },\n ];\n },\n enumerable: false,\n configurable: true\n });\n return StockholmMSA;\n}());\nexport default StockholmMSA;\n","var FastaMSA = /** @class */ (function () {\n function FastaMSA(text) {\n var seq = {};\n var name = '';\n var re = /^>(\\S+)/;\n text.split('\\n').forEach(function (line) {\n var match = re.exec(line);\n if (match) {\n seq[(name = match[1])] = '';\n }\n else if (name) {\n seq[name] = seq[name] + line.replace(/[ \\t]/g, '');\n }\n });\n this.MSA = { seqdata: seq };\n }\n FastaMSA.prototype.getMSA = function () {\n return this.MSA;\n };\n FastaMSA.prototype.getNames = function () {\n return Object.keys(this.MSA.seqdata);\n };\n FastaMSA.prototype.getRow = function (name) {\n var _a, _b;\n return (_b = (_a = this.MSA) === null || _a === void 0 ? void 0 : _a.seqdata[name]) === null || _b === void 0 ? void 0 : _b.split('');\n };\n FastaMSA.prototype.getWidth = function () {\n var _a;\n var name = Object.keys((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.seqdata)[0];\n return this.getRow(name).length;\n };\n FastaMSA.prototype.getStructures = function () {\n return {};\n };\n Object.defineProperty(FastaMSA.prototype, \"alignmentNames\", {\n get: function () {\n return [];\n },\n enumerable: false,\n configurable: true\n });\n FastaMSA.prototype.getDetails = function () {\n return {};\n };\n FastaMSA.prototype.getTree = function () {\n return {\n id: 'root',\n noTree: true,\n branchset: this.getNames().map(function (name) { return ({\n id: name,\n name: name,\n }); }),\n };\n };\n Object.defineProperty(FastaMSA.prototype, \"seqConsensus\", {\n get: function () {\n return undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FastaMSA.prototype, \"secondaryStructureConsensus\", {\n get: function () {\n return undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FastaMSA.prototype, \"tracks\", {\n get: function () {\n return [];\n },\n enumerable: false,\n configurable: true\n });\n return FastaMSA;\n}());\nexport default FastaMSA;\n","import React, { useRef, useMemo, useEffect } from 'react';\nimport { useTheme } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { colorContrast } from '../util';\nvar AnnotationBlock = observer(function (_a) {\n var track = _a.track, model = _a.model, offsetX = _a.offsetX;\n var blockSize = model.blockSize, scrollX = model.scrollX, bgColor = model.bgColor, modelColorScheme = model.colorScheme, colWidth = model.colWidth, rowHeight = model.rowHeight, highResScaleFactor = model.highResScaleFactor;\n var _b = track.model, customColorScheme = _b.customColorScheme, data = _b.data;\n var colorScheme = customColorScheme || modelColorScheme;\n var theme = useTheme();\n var ref = useRef(null);\n var contrastScheme = useMemo(function () { return colorContrast(colorScheme, theme); }, [colorScheme, theme]);\n useEffect(function () {\n if (!ref.current) {\n return;\n }\n var ctx = ref.current.getContext('2d');\n if (!ctx) {\n return;\n }\n // this logic is very similar to MSACanvas\n ctx.resetTransform();\n ctx.scale(highResScaleFactor, highResScaleFactor);\n ctx.clearRect(0, 0, blockSize, rowHeight);\n ctx.translate(-offsetX, 0);\n ctx.textAlign = 'center';\n ctx.font = ctx.font.replace(/\\d+px/, \"\".concat(Math.max(8, rowHeight - 8), \"px\"));\n var xStart = Math.max(0, Math.floor(offsetX / colWidth));\n var xEnd = Math.max(0, Math.ceil((offsetX + blockSize) / colWidth));\n var str = data === null || data === void 0 ? void 0 : data.slice(xStart, xEnd);\n for (var i = 0; str && i < str.length; i++) {\n var letter = str[i];\n var color = colorScheme[letter.toUpperCase()];\n if (bgColor) {\n var x = i * colWidth + offsetX - (offsetX % colWidth);\n ctx.fillStyle = color || 'white';\n ctx.fillRect(x, 0, colWidth, rowHeight);\n if (rowHeight >= 10 && colWidth >= rowHeight / 2) {\n ctx.fillStyle = contrastScheme[letter.toUpperCase()] || 'black';\n ctx.fillText(letter, x + colWidth / 2, rowHeight / 2 + 1); //+1 to avoid cutoff at height:10\n }\n }\n }\n }, [\n bgColor,\n blockSize,\n colWidth,\n rowHeight,\n offsetX,\n contrastScheme,\n colorScheme,\n highResScaleFactor,\n data,\n ]);\n return (React.createElement(\"canvas\", { ref: ref, height: rowHeight * highResScaleFactor, width: blockSize * highResScaleFactor, style: {\n position: 'absolute',\n left: scrollX + offsetX,\n width: blockSize,\n height: rowHeight,\n } }));\n});\nvar AnnotationTrack = observer(function (_a) {\n var track = _a.track, model = _a.model;\n var blocksX = model.blocksX, msaAreaWidth = model.msaAreaWidth, rowHeight = model.rowHeight;\n return (React.createElement(\"div\", { style: {\n position: 'relative',\n height: rowHeight,\n width: msaAreaWidth,\n overflow: 'hidden',\n } }, blocksX.map(function (bx) { return (React.createElement(AnnotationBlock, { key: bx, track: track, model: model, offsetX: bx })); })));\n});\nexport default AnnotationTrack;\n","import RBush from 'rbush';\nvar Layout = /** @class */ (function () {\n function Layout(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.maxHeight, maxHeight = _c === void 0 ? 10000 : _c;\n this.maxHeightReached = false;\n this.rbush = new RBush();\n this.rectangles = new Map();\n this.maxHeight = Math.ceil(maxHeight);\n this.pTotalHeight = 0; // total height, in units of bitmap squares (px/pitchY)\n }\n /**\n * @returns top position for the rect, or Null if laying\n * out the rect would exceed maxHeighe\n */\n Layout.prototype.addRect = function (id, left, right, height, data) {\n // add to rbush\n var existingRecord = this.rectangles.get(id);\n if (existingRecord) {\n return existingRecord.minY;\n }\n var currHeight = 0;\n while (this.rbush.collides({\n minX: left,\n minY: currHeight,\n maxX: right,\n maxY: currHeight + height,\n }) &&\n currHeight <= this.maxHeight) {\n currHeight += 1;\n }\n var record = {\n minX: left,\n minY: currHeight,\n maxX: right,\n maxY: currHeight + height,\n id: id,\n data: data,\n };\n this.rbush.insert(record);\n this.rectangles.set(id, record);\n this.pTotalHeight = Math.max(this.pTotalHeight, currHeight);\n return currHeight;\n };\n Object.defineProperty(Layout.prototype, \"totalHeight\", {\n get: function () {\n return this.pTotalHeight;\n },\n enumerable: false,\n configurable: true\n });\n return Layout;\n}());\nexport default Layout;\n","import React, { useRef, useMemo, useEffect } from 'react';\nimport { observer } from 'mobx-react';\nimport { getSnapshot, isStateTreeNode } from 'mobx-state-tree';\nimport Layout from '../layout';\nvar AnnotationBlock = observer(function (_a) {\n var track = _a.track, model = _a.model, offsetX = _a.offsetX;\n var blockSize = model.blockSize, colWidth = model.colWidth, blanks = model.blanks, rowHeight = model.rowHeight, highResScaleFactor = model.highResScaleFactor, scrollX = model.scrollX;\n var _b = track.model, height = _b.height, features = _b.features, associatedRowName = _b.associatedRowName;\n var feats = isStateTreeNode(features)\n ? getSnapshot(features)\n : features;\n var layout = useMemo(function () {\n var temp = new Layout();\n feats === null || feats === void 0 ? void 0 : feats.forEach(function (feature, index) {\n var start = feature.start, end = feature.end;\n if (associatedRowName) {\n var s = model.rowSpecificBpToPx(associatedRowName, start - 1);\n var e = model.rowSpecificBpToPx(associatedRowName, end);\n temp.addRect(\"\".concat(index), s, e, rowHeight, feature);\n }\n else {\n var s = model.globalBpToPx(start - 1);\n var e = model.globalBpToPx(end);\n temp.addRect(\"\".concat(index), s, e, rowHeight, feature);\n }\n });\n return temp;\n }, [rowHeight, feats, associatedRowName, model, blanks]);\n var ref = useRef(null);\n var labelRef = useRef(null);\n var mouseoverRef = useRef(null);\n useEffect(function () {\n if (!ref.current) {\n return;\n }\n var ctx = ref.current.getContext('2d');\n if (!ctx) {\n return;\n }\n ctx.resetTransform();\n ctx.scale(highResScaleFactor, highResScaleFactor);\n ctx.clearRect(0, 0, blockSize, height);\n ctx.translate(-offsetX, 0);\n ctx.textAlign = 'center';\n ctx.font = ctx.font.replace(/\\d+px/, \"\".concat(Math.max(8, rowHeight - 8), \"px\"));\n var xStart = Math.max(0, Math.floor(offsetX / colWidth));\n ctx.fillStyle = 'goldenrod';\n layout.rectangles.forEach(function (value) {\n var minX = value.minX, maxX = value.maxX, minY = value.minY, maxY = value.maxY;\n var x1 = (minX - xStart) * colWidth + offsetX - (offsetX % colWidth);\n var x2 = (maxX - xStart) * colWidth + offsetX - (offsetX % colWidth);\n if (x2 - x1 > 0) {\n ctx.fillRect(x1, minY, x2 - x1, (maxY - minY) / 2);\n }\n });\n }, [\n associatedRowName,\n blockSize,\n colWidth,\n layout.rectangles,\n model,\n rowHeight,\n height,\n offsetX,\n highResScaleFactor,\n features,\n blanks,\n ]);\n useEffect(function () {\n if (!labelRef.current) {\n return;\n }\n var ctx = labelRef.current.getContext('2d');\n if (!ctx) {\n return;\n }\n // this logic is very similar to MSACanvas\n ctx.resetTransform();\n ctx.scale(highResScaleFactor, highResScaleFactor);\n ctx.clearRect(0, 0, blockSize, height);\n ctx.translate(-offsetX, 0);\n ctx.textAlign = 'center';\n ctx.font = ctx.font.replace(/\\d+px/, \"\".concat(Math.max(8, rowHeight - 8), \"px\"));\n ctx.fillStyle = 'black';\n ctx.textAlign = 'left';\n layout.rectangles.forEach(function (value) {\n var _a, _b, _c, _d;\n var minX = value.minX, maxX = value.maxX, maxY = value.maxY, minY = value.minY;\n var feature = value.data;\n var x1 = minX * colWidth;\n var x2 = maxX * colWidth;\n if (x2 - x1 > 0) {\n var note = (_b = (_a = feature.attributes) === null || _a === void 0 ? void 0 : _a.Note) === null || _b === void 0 ? void 0 : _b[0];\n var name_1 = (_d = (_c = feature.attributes) === null || _c === void 0 ? void 0 : _c.Name) === null || _d === void 0 ? void 0 : _d[0];\n var type = feature.type;\n ctx.fillText([type, name_1, note].filter(function (f) { return !!f; }).join(' - '), Math.max(Math.min(-scrollX, x2), x1), minY + (maxY - minY));\n }\n });\n }, [\n blockSize,\n colWidth,\n scrollX,\n highResScaleFactor,\n height,\n layout.rectangles,\n offsetX,\n features,\n model,\n rowHeight,\n blanks,\n ]);\n return !features ? null : (React.createElement(React.Fragment, null,\n React.createElement(\"canvas\", { ref: ref, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {\n position: 'absolute',\n left: scrollX + offsetX,\n width: blockSize,\n height: height,\n } }),\n React.createElement(\"canvas\", { ref: labelRef, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {\n position: 'absolute',\n left: scrollX + offsetX,\n width: blockSize,\n height: height,\n } }),\n React.createElement(\"canvas\", { ref: mouseoverRef, height: height * highResScaleFactor, width: blockSize * highResScaleFactor, style: {\n position: 'absolute',\n left: scrollX + offsetX,\n width: blockSize,\n height: height,\n } })));\n});\nvar AnnotationTrack = observer(function (_a) {\n var model = _a.model, track = _a.track;\n var blocksX = model.blocksX, msaAreaWidth = model.msaAreaWidth;\n var height = track.model.height;\n return (React.createElement(\"div\", { style: {\n position: 'relative',\n height: height,\n width: msaAreaWidth,\n overflow: 'hidden',\n } }, blocksX.map(function (bx) { return (React.createElement(AnnotationBlock, { track: track, key: bx, model: model, offsetX: bx })); })));\n});\nexport default AnnotationTrack;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { cast, types, addDisposer } from 'mobx-state-tree';\nimport { hierarchy, cluster } from 'd3-hierarchy';\nimport { ascending, max } from 'd3-array';\nimport { FileLocation, ElementId } from '@jbrowse/core/util/types/mst';\nimport { openLocation } from '@jbrowse/core/util/io';\nimport { autorun } from 'mobx';\nimport BaseViewModel from '@jbrowse/core/pluggableElementTypes/models/BaseViewModel';\nimport Stockholm from 'stockholm-js';\nimport ClustalMSA from './parsers/ClustalMSA';\nimport StockholmMSA from './parsers/StockholmMSA';\nimport FastaMSA from './parsers/FastaMSA';\nimport parseNewick from './parseNewick';\nimport colorSchemes from './colorSchemes';\nimport { generateNodeIds } from './util';\nimport TextTrack from './components/TextTrack';\nimport BoxTrack from './components/BoxTrack';\nfunction skipBlanks(blanks, arg) {\n var s = '';\n var b = 0;\n for (var j = 0; j < arg.length; j++) {\n if (j === blanks[b]) {\n b++;\n }\n else {\n s += arg[j];\n }\n }\n return s;\n}\nfunction setBrLength(d, y0, k) {\n var _a;\n //@ts-ignore\n d.len = (y0 += Math.max(d.data.length || 0, 0)) * k;\n (_a = d.children) === null || _a === void 0 ? void 0 : _a.forEach(function (d) {\n setBrLength(d, y0, k);\n });\n}\nfunction maxLength(d) {\n return (d.data.length || 1) + (d.children ? max(d.children, maxLength) : 0);\n}\n// Collapse the node and all it's children, from\n// https://bl.ocks.org/d3noob/43a860bc0024792f8803bba8ca0d5ecd\nfunction collapse(d) {\n if (d.children) {\n //@ts-ignore\n d._children = d.children;\n //@ts-ignore\n d._children.forEach(collapse);\n //@ts-ignore\n d.children = null;\n }\n}\nfunction clamp(min, num, max) {\n return Math.min(Math.max(num, min), max);\n}\nvar StructureModel = types.model({\n id: types.identifier,\n structure: types.model({\n pdb: types.string,\n startPos: types.number,\n endPos: types.number,\n }),\n range: types.maybe(types.string),\n});\nvar UniprotTrack = types\n .model({\n id: types.string,\n accession: types.string,\n name: types.string,\n associatedRowName: types.string,\n height: types.optional(types.number, 100),\n})\n .volatile(function () { return ({\n error: undefined,\n data: undefined,\n}); })\n .actions(function (self) { return ({\n setError: function (error) {\n self.error = error;\n },\n setData: function (data) {\n self.data = data;\n },\n}); })\n .actions(function (self) { return ({\n afterCreate: function () {\n var _this = this;\n addDisposer(self, autorun(function () { return __awaiter(_this, void 0, void 0, function () {\n var accession, url, response, text, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n accession = self.accession;\n url = \"https://www.uniprot.org/uniprot/\".concat(accession, \".gff\");\n return [4 /*yield*/, fetch(url)];\n case 1:\n response = _a.sent();\n if (!response.ok) {\n throw new Error(\"HTTP \".concat(response.status, \" \").concat(response.statusText, \" fetching \").concat(url));\n }\n return [4 /*yield*/, response.text()];\n case 2:\n text = _a.sent();\n self.setData(text);\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n self.setError(e_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); }));\n },\n}); })\n .views(function (self) { return ({\n get loading() {\n return !self.data;\n },\n get features() {\n var _a;\n return (_a = self.data) === null || _a === void 0 ? void 0 : _a.split('\\n').map(function (f) { return f.trim(); }).filter(function (f) { return !!f; }).filter(function (f) { return !f.startsWith('#'); }).map(function (f) {\n var _a = f.split('\\t'), seq_id = _a[0], source = _a[1], type = _a[2], start = _a[3], end = _a[4], score = _a[5], strand = _a[6], phase = _a[7], col9 = _a[8];\n return __assign({ seq_id: seq_id, source: source, type: type, start: +start, end: +end, score: +score, strand: strand, phase: phase }, Object.fromEntries(col9\n .split(';')\n .map(function (f) { return f.trim(); })\n .filter(function (f) { return !!f; })\n .map(function (f) { return f.split('='); })\n .map(function (_a) {\n var key = _a[0], val = _a[1];\n return [\n key.trim(),\n decodeURIComponent(val).trim().split(',').join(' '),\n ];\n })));\n });\n },\n}); });\nvar MSAModel = types\n .model('MsaView', {\n id: ElementId,\n type: types.literal('MsaView'),\n height: types.optional(types.number, 550),\n treeAreaWidth: types.optional(types.number, 400),\n treeWidth: types.optional(types.number, 300),\n rowHeight: 20,\n scrollY: 0,\n scrollX: 0,\n resizeHandleWidth: 5,\n blockSize: 1000,\n mouseRow: types.maybe(types.number),\n mouseCol: types.maybe(types.number),\n selectedStructures: types.array(StructureModel),\n labelsAlignRight: false,\n colWidth: 16,\n showBranchLen: true,\n bgColor: true,\n drawTree: true,\n drawNodeBubbles: true,\n highResScaleFactor: 2,\n colorSchemeName: 'maeditor',\n treeFilehandle: types.maybe(FileLocation),\n msaFilehandle: types.maybe(FileLocation),\n currentAlignment: 0,\n collapsed: types.array(types.string),\n showOnly: types.maybe(types.string),\n boxTracks: types.array(UniprotTrack),\n turnedOffTracks: types.map(types.boolean),\n annotatedRegions: types.array(types.model({\n start: types.number,\n end: types.number,\n attributes: types.frozen(),\n })),\n data: types.optional(types\n .model({\n tree: types.maybe(types.string),\n msa: types.maybe(types.string),\n })\n .actions(function (self) { return ({\n setTree: function (tree) {\n self.tree = tree;\n },\n setMSA: function (msa) {\n self.msa = msa;\n },\n }); }), { tree: '', msa: '' }),\n})\n .volatile(function () { return ({\n error: undefined,\n margin: { left: 20, top: 20 },\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n DialogComponent: undefined,\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n DialogProps: undefined,\n // annotations\n annotPos: undefined,\n}); })\n .actions(function (self) { return ({\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n setDialogComponent: function (dlg, props) {\n self.DialogComponent = dlg;\n self.DialogProps = props;\n },\n setHeight: function (height) {\n self.height = height;\n },\n addStructureToSelection: function (elt) {\n self.selectedStructures.push(elt);\n },\n removeStructureFromSelection: function (elt) {\n var r = self.selectedStructures.find(function (node) { return node.id === elt.id; });\n if (r) {\n self.selectedStructures.remove(r);\n }\n },\n toggleStructureSelection: function (elt) {\n var r = self.selectedStructures.find(function (node) { return node.id === elt.id; });\n if (r) {\n self.selectedStructures.remove(r);\n }\n else {\n self.selectedStructures.push(elt);\n }\n },\n clearSelectedStructures: function () {\n //@ts-ignore\n self.selectedStructures = [];\n },\n setError: function (error) {\n if (error) {\n console.error(error);\n }\n self.error = error;\n },\n setMousePos: function (col, row) {\n self.mouseCol = col;\n self.mouseRow = row;\n },\n setRowHeight: function (n) {\n self.rowHeight = n;\n },\n setColWidth: function (n) {\n self.colWidth = n;\n },\n setColorSchemeName: function (name) {\n self.colorSchemeName = name;\n },\n setScrollY: function (n) {\n self.scrollY = n;\n },\n setScrollX: function (n) {\n self.scrollX = n;\n },\n setTreeAreaWidth: function (n) {\n self.treeAreaWidth = n;\n },\n setTreeWidth: function (n) {\n self.treeWidth = n;\n },\n setCurrentAlignment: function (n) {\n self.currentAlignment = n;\n },\n toggleLabelsAlignRight: function () {\n self.labelsAlignRight = !self.labelsAlignRight;\n },\n toggleDrawTree: function () {\n self.drawTree = !self.drawTree;\n },\n toggleCollapsed: function (node) {\n if (self.collapsed.includes(node)) {\n self.collapsed.remove(node);\n }\n else {\n self.collapsed.push(node);\n }\n },\n setShowOnly: function (node) {\n self.showOnly = node;\n },\n toggleBranchLen: function () {\n self.showBranchLen = !self.showBranchLen;\n },\n toggleBgColor: function () {\n self.bgColor = !self.bgColor;\n },\n toggleNodeBubbles: function () {\n self.drawNodeBubbles = !self.drawNodeBubbles;\n },\n setData: function (data) {\n self.data = cast(data);\n },\n setMSAFilehandle: function (msaFilehandle) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n self.msaFilehandle = msaFilehandle;\n return [2 /*return*/];\n });\n });\n },\n setTreeFilehandle: function (treeFilehandle) {\n return __awaiter(this, void 0, void 0, function () {\n var r;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(treeFilehandle && 'blobId' in treeFilehandle)) return [3 /*break*/, 2];\n return [4 /*yield*/, openLocation(treeFilehandle).readFile('utf8')];\n case 1:\n r = (_a.sent());\n this.setTree(r);\n return [3 /*break*/, 3];\n case 2:\n self.treeFilehandle = treeFilehandle;\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n });\n },\n setMSA: function (result) {\n self.data.setMSA(result);\n },\n setTree: function (result) {\n self.data.setTree(result);\n },\n afterCreate: function () {\n var _this = this;\n addDisposer(self, autorun(function () { return __awaiter(_this, void 0, void 0, function () {\n var treeFilehandle, _a, e_2;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n treeFilehandle = self.treeFilehandle;\n if (!treeFilehandle) return [3 /*break*/, 4];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n _a = this.setTree;\n return [4 /*yield*/, openLocation(treeFilehandle).readFile('utf8')];\n case 2:\n _a.apply(this, [(_b.sent())]);\n return [3 /*break*/, 4];\n case 3:\n e_2 = _b.sent();\n this.setError(e_2);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); }));\n addDisposer(self, autorun(function () { return __awaiter(_this, void 0, void 0, function () {\n var msaFilehandle, _a, e_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n msaFilehandle = self.msaFilehandle;\n if (!msaFilehandle) return [3 /*break*/, 4];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n _a = this.setMSA;\n return [4 /*yield*/, openLocation(msaFilehandle).readFile('utf8')];\n case 2:\n _a.apply(this, [(_b.sent())]);\n return [3 /*break*/, 4];\n case 3:\n e_3 = _b.sent();\n this.setError(e_3);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); }));\n },\n}); })\n .views(function (self) {\n var oldBlocksX = [];\n var oldBlocksY = [];\n var oldValX = 0;\n var oldValY = 0;\n return {\n get initialized() {\n return ((self.data.msa ||\n self.data.tree ||\n self.msaFilehandle ||\n self.treeFilehandle) &&\n !self.error);\n },\n get blocksX() {\n var scrollX = self.scrollX, size = self.blockSize, colWidth = self.colWidth;\n var ret = -(size * Math.floor(scrollX / size)) - size;\n var b = [];\n for (var i = ret; i < ret + size * 3; i += size) {\n if (i + size > 0) {\n b.push(i);\n }\n }\n if (JSON.stringify(b) !== JSON.stringify(oldBlocksX) ||\n colWidth !== oldValX) {\n oldBlocksX = b;\n oldValX = colWidth;\n }\n return oldBlocksX;\n },\n get blocksY() {\n var scrollY = self.scrollY, size = self.blockSize, rowHeight = self.rowHeight;\n var ret = -(size * Math.floor(scrollY / size)) - 2 * size;\n var b = [];\n for (var i = ret; i < ret + size * 3; i += size) {\n if (i + size > 0) {\n b.push(i);\n }\n }\n if (JSON.stringify(b) !== JSON.stringify(oldBlocksY) ||\n rowHeight !== oldValY) {\n oldBlocksY = b;\n oldValY = rowHeight;\n }\n return oldBlocksY;\n },\n };\n})\n .views(function (self) { return ({\n get blocks2d() {\n return self.blocksY.map(function (by) { return self.blocksX.map(function (bx) { return [bx, by]; }); }).flat();\n },\n get done() {\n return self.initialized && (self.data.msa || self.data.tree);\n },\n get colorScheme() {\n return colorSchemes[self.colorSchemeName];\n },\n get alignmentDetails() {\n var _a;\n return ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getDetails()) || {};\n },\n getRowDetails: function (name) {\n var _a, _b;\n //@ts-ignore\n var details = (_b = (_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getRowDetails) === null || _b === void 0 ? void 0 : _b.call(_a, name);\n var matches = name.match(/\\S+\\/(\\d+)-(\\d+)/);\n return __assign(__assign({}, details), (matches && { range: { start: +matches[1], end: +matches[2] } }));\n },\n get currentAlignmentName() {\n return this.alignmentNames[self.currentAlignment];\n },\n get alignmentNames() {\n var _a;\n return ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.alignmentNames) || [];\n },\n get noTree() {\n return !!this.tree.noTree;\n },\n get menuItems() {\n return [];\n },\n get MSA() {\n var text = self.data.msa;\n if (text) {\n if (Stockholm.sniff(text)) {\n return new StockholmMSA(text, self.currentAlignment);\n }\n else if (text.startsWith('>')) {\n return new FastaMSA(text);\n }\n else {\n return new ClustalMSA(text);\n }\n }\n return null;\n },\n get numColumns() {\n var _a;\n return ((((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getWidth()) || 0) - this.blanks.length) * self.colWidth;\n },\n get tree() {\n var _a;\n return self.data.tree\n ? generateNodeIds(parseNewick(self.data.tree))\n : ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getTree()) || { noTree: true };\n },\n get rowNames() {\n return this.hierarchy.leaves().map(function (node) { return node.data.name; });\n },\n get mouseOverRowName() {\n return self.mouseRow !== undefined\n ? this.rowNames[self.mouseRow]\n : undefined;\n },\n getMouseOverResidue: function (rowName) {\n return this.columns[rowName];\n },\n get root() {\n var hier = hierarchy(this.tree, function (d) { return d.branchset; })\n .sum(function (d) { return (d.branchset ? 0 : 1); })\n .sort(function (a, b) {\n return ascending(a.data.length || 1, b.data.length || 1);\n });\n if (self.showOnly) {\n var res = hier.find(function (node) { return node.data.id === self.showOnly; });\n if (res) {\n hier = res;\n }\n }\n if (self.collapsed.length) {\n self.collapsed\n .map(function (collapsedId) {\n return hier.find(function (node) { return node.data.id === collapsedId; });\n })\n .filter(function (f) { return !!f; })\n .map(function (node) { return collapse(node); });\n }\n return hier;\n },\n get structures() {\n var _a;\n return ((_a = this.MSA) === null || _a === void 0 ? void 0 : _a.getStructures()) || {};\n },\n get inverseStructures() {\n var map = Object.entries(this.structures)\n .map(function (_a) {\n var key = _a[0], val = _a[1];\n return val.map(function (pdbEntry) { return [pdbEntry.pdb, { id: key }]; });\n })\n .flat();\n return Object.fromEntries(map);\n },\n get msaAreaWidth() {\n //@ts-ignore\n return self.width - self.treeAreaWidth;\n },\n get blanks() {\n var _this = this;\n var _a;\n var blanks = [];\n var strs = this.hierarchy\n .leaves()\n .map(function (_a) {\n var _b;\n var data = _a.data;\n return (_b = _this.MSA) === null || _b === void 0 ? void 0 : _b.getRow(data.name);\n })\n .filter(function (item) { return !!item; });\n for (var i = 0; i < ((_a = strs[0]) === null || _a === void 0 ? void 0 : _a.length); i++) {\n var counter = 0;\n for (var j = 0; j < strs.length; j++) {\n if (strs[j][i] === '-') {\n counter++;\n }\n }\n if (counter === strs.length) {\n blanks.push(i);\n }\n }\n return blanks;\n },\n get rows() {\n var _this = this;\n return this.hierarchy\n .leaves()\n .map(function (_a) {\n var _b;\n var data = _a.data;\n return [data.name, (_b = _this.MSA) === null || _b === void 0 ? void 0 : _b.getRow(data.name)];\n })\n .filter(function (f) { return !!f[1]; });\n },\n get columns() {\n var rows = this.rows;\n var cols = this.columns2d;\n return Object.fromEntries(rows.map(function (row, index) { return [row[0], cols[index]]; }));\n },\n get columns2d() {\n var strs = this.rows.map(function (r) { return r[1]; });\n var ret = [];\n for (var i = 0; i < strs.length; i++) {\n ret.push(skipBlanks(this.blanks, strs[i]));\n }\n return ret;\n },\n get colStats() {\n var r = [];\n var m = this.columns2d;\n for (var i = 0; i < m.length; i++) {\n for (var j = 0; j < m[i].length; j++) {\n var l = r[j] || {};\n if (!l[m[i][j]]) {\n l[m[i][j]] = 0;\n }\n l[m[i][j]]++;\n r[j] = l;\n }\n }\n return r;\n },\n // generates a new tree that is clustered with x,y positions\n get hierarchy() {\n var root = this.root;\n var clust = cluster()\n .size([this.totalHeight, self.treeWidth])\n .separation(function () { return 1; });\n clust(root);\n setBrLength(root, \n //@ts-ignore\n (root.data.length = 0), self.treeWidth / maxLength(root));\n return root;\n },\n get totalHeight() {\n return this.root.leaves().length * self.rowHeight;\n },\n}); })\n .actions(function (self) { return ({\n addUniprotTrack: function (node) {\n if (self.boxTracks.find(function (t) { return t.name === node.name; })) {\n if (self.turnedOffTracks.has(node.name)) {\n this.toggleTrack(node.name);\n }\n }\n else {\n self.boxTracks.push(__assign(__assign({}, node), { id: node.name, associatedRowName: node.name }));\n }\n },\n doScrollY: function (deltaY) {\n self.scrollY = clamp(-self.totalHeight + 10, self.scrollY + deltaY, 0);\n },\n doScrollX: function (deltaX) {\n self.scrollX = clamp(-self.numColumns + (self.msaAreaWidth - 100), self.scrollX + deltaX, 0);\n },\n setMouseoveredColumn: function (n, chain, file) {\n var _a;\n var j = 0;\n var i = 0;\n var id = (self.inverseStructures[file.slice(0, -4)] || {}).id;\n var row = (_a = self.MSA) === null || _a === void 0 ? void 0 : _a.getRow(id);\n if (row) {\n for (i = 0; i < row.length && j < n; i++) {\n if (row[i] !== '-') {\n j++;\n }\n }\n self.mouseCol = j + 1;\n }\n else {\n self.mouseCol = undefined;\n }\n },\n toggleTrack: function (id) {\n if (self.turnedOffTracks.has(id)) {\n self.turnedOffTracks.delete(id);\n }\n else {\n self.turnedOffTracks.set(id, true);\n }\n },\n}); })\n .views(function (self) { return ({\n get secondaryStructureConsensus() {\n var _a;\n return (_a = self.MSA) === null || _a === void 0 ? void 0 : _a.secondaryStructureConsensus;\n },\n get seqConsensus() {\n var _a;\n return (_a = self.MSA) === null || _a === void 0 ? void 0 : _a.seqConsensus;\n },\n get conservation() {\n var m = self.columns2d;\n if (m.length) {\n for (var i = 0; i < m[0].length; i++) {\n var col = [];\n for (var j = 0; j < m.length; j++) {\n col.push(m[j][i]);\n }\n }\n }\n return ['a'];\n },\n get tracks() {\n var blanks = self.blanks;\n var adapterTracks = self.MSA\n ? self.MSA.tracks.map(function (track) {\n var data = track.data;\n return {\n model: __assign(__assign({}, track), { data: data ? skipBlanks(blanks, data) : undefined, height: self.rowHeight }),\n ReactComponent: TextTrack,\n };\n })\n : [];\n var boxTracks = self.boxTracks\n // filter out tracks that are associated with hidden rows\n .filter(function (track) { return !!self.rows.find(function (row) { return row[0] === track.name; }); })\n .map(function (track) { return ({\n model: track,\n ReactComponent: BoxTrack,\n }); });\n var annotationTracks = self.annotatedRegions.length > 0\n ? [\n {\n model: {\n features: self.annotatedRegions,\n height: 100,\n id: 'annotations',\n name: 'User-created annotations',\n data: self.annotatedRegions\n .map(function (region) {\n var attrs = region.attributes\n ? Object.entries(region.attributes)\n .map(function (_a) {\n var k = _a[0], v = _a[1];\n return \"\".concat(k, \"=\").concat(v.join(','));\n })\n .join(';')\n : '.';\n return [\n 'MSA_refcoord',\n '.',\n '.',\n region.start,\n region.end,\n '.',\n '.',\n '.',\n attrs,\n ].join('\\t');\n })\n .join('\\n'),\n },\n ReactComponent: BoxTrack,\n },\n ]\n : [];\n return __spreadArray(__spreadArray(__spreadArray([], adapterTracks, true), boxTracks, true), annotationTracks, true);\n },\n get turnedOnTracks() {\n return this.tracks.filter(function (f) { return !self.turnedOffTracks.has(f.model.id); });\n },\n // returns coordinate in the current relative coordinate scheme\n pxToBp: function (coord) {\n return Math.floor((coord - self.scrollX) / self.colWidth);\n },\n rowSpecificBpToPx: function (rowName, position) {\n var _a;\n var rowNames = self.rowNames, rows = self.rows, blanks = self.blanks;\n var index = rowNames.indexOf(rowName);\n var row = rows[index][1];\n var details = self.getRowDetails(rowName);\n var offset = ((_a = details.range) === null || _a === void 0 ? void 0 : _a.start) || 0;\n var current = position - offset;\n if (current < 0) {\n return 0;\n }\n var j = 0;\n var i = 0;\n for (; i < row.length; i++) {\n if (row[i] !== '-' && j++ === current) {\n break;\n }\n }\n var count = 0;\n for (var k = 0; k < row.length; k++) {\n if (blanks.indexOf(k) !== -1 && k < i + 1) {\n count++;\n }\n }\n return i - count;\n },\n globalBpToPx: function (position) {\n var _a;\n var count = 0;\n for (var k = 0; k < ((_a = self.rows[0]) === null || _a === void 0 ? void 0 : _a[1].length); k++) {\n if (self.blanks.indexOf(k) !== -1 && k < position + 1) {\n count++;\n }\n }\n return position - count;\n },\n relativePxToBp: function (rowName, position) {\n var rowNames = self.rowNames, rows = self.rows;\n var index = rowNames.indexOf(rowName);\n var row = rows[index][1];\n var k = 0;\n for (var i = 0; i < position; i++) {\n if (row[i] !== '-') {\n k++;\n }\n else if (k >= position) {\n break;\n }\n }\n return k;\n },\n getPos: function (pos) {\n var j = 0;\n for (var i = 0, k = 0; i < pos; i++, j++) {\n while (j === self.blanks[k]) {\n k++;\n j++;\n }\n }\n return j;\n },\n}); })\n .actions(function (self) { return ({\n addAnnotation: function (start, end, attributes) {\n self.annotatedRegions.push({\n start: self.getPos(start),\n end: self.getPos(end),\n attributes: attributes,\n });\n },\n setOffsets: function (left, right) {\n self.annotPos = { left: left, right: right };\n },\n clearAnnotPos: function () {\n self.annotPos = undefined;\n },\n}); });\nvar model = types.snapshotProcessor(types.compose(BaseViewModel, MSAModel), {\n postProcessor: function (result) {\n var _a = result.data, tree = _a.tree, msa = _a.msa, rest = __rest(result\n // remove the MSA/tree data from the tree if the filehandle available in\n // which case it can be reloaded on refresh\n , [\"data\"]);\n // remove the MSA/tree data from the tree if the filehandle available in\n // which case it can be reloaded on refresh\n return __assign({ data: __assign(__assign({}, (!result.treeFilehandle && { tree: tree })), (!result.msaFilehandle && { msa: msa })) }, rest);\n },\n});\nexport default model;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z\"\n}), 'GridOn');\n\nexports.default = _default;","import Plugin from '@jbrowse/core/Plugin'\nimport PluginManager from '@jbrowse/core/PluginManager'\nimport { version } from '../package.json'\nimport { AbstractSessionModel, isAbstractMenuManager } from '@jbrowse/core/util'\nimport * as MSA from 'react-msaview'\nimport ViewType from '@jbrowse/core/pluggableElementTypes/ViewType'\nimport GridOn from '@material-ui/icons/GridOn'\n\nexport default class MsaViewPlugin extends Plugin {\n name = 'MsaViewPlugin'\n version = version\n\n install(pluginManager: PluginManager) {\n console.log({ MSA })\n pluginManager.addViewType(\n () =>\n new ViewType({\n name: 'MsaView',\n //@ts-ignore\n stateModel: MSA.MSAModel,\n ReactComponent: MSA.MSAView,\n }),\n )\n }\n\n configure(pluginManager: PluginManager) {\n if (isAbstractMenuManager(pluginManager.rootModel)) {\n pluginManager.rootModel.appendToSubMenu(['Add'], {\n label: 'Multiple sequence alignment view',\n icon: GridOn,\n onClick: (session: AbstractSessionModel) => {\n session.addView('MsaView', {})\n },\n })\n }\n }\n}\n"],"names":["React","Link","Typography","observer","useState","Container","Grid","FileSelector","Button","transaction","require$$0","_utils","_interopRequireWildcard","_interopRequireDefault","require$$1","makeStyles","alpha","Tooltip","useRef","useEffect","Popover","Menu","ExecutionEnvironment","UserAgent_DEPRECATED","isEventSupported","Dialog","DialogTitle","DialogContent","Attributes","this","MenuItem","normalizeWheel","colorNames","swizzle","cssKeywords","convert","__assign","color","Color","useTheme","useMemo","CircularProgress","useStyles","FormControlLabel","Checkbox","TextField","colorSchemes","DialogActions","version","FormGroup","IconButton","Select","deselectCurrent","copy","Rubberband","setSeed","format","random","alphabet","generate","build","require$$2","_mobxStateTree","_mobxReact","_mst","util_1","parse","Stockholm","parseNewick","AnnotationBlock","isStateTreeNode","getSnapshot","AnnotationTrack","__rest","__spreadArray","types","addDisposer","autorun","ElementId","FileLocation","cast","openLocation","TextTrack","BoxTrack","MsaViewPlugin","pluginManager","console","log","MSA","addViewType","ViewType","name","stateModel","ReactComponent","isAbstractMenuManager","rootModel","appendToSubMenu","label","icon","GridOn","onClick","session","addView","Plugin"],"mappings":"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CAAC,CAAC;EAC/C,IAAI,WAAW,GAAG,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC;EAC3D,GAAG;AACH;EACA,EAAE,IAAI,CAAC,WAAW,IAAI,aAAa,IAAI,eAAe,KAAK,OAAO,EAAE;EACpE;EACA,IAAI,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;EAC5E,GAAG;AACH;EACA,EAAE,OAAO,WAAW,CAAC;EACrB,CAAC;AACD;EACA,sBAAc,GAAG,gBAAgB;;EC3CjC;EACA,IAAI,UAAU,IAAI,EAAE,CAAC;EACrB,IAAI,WAAW,GAAG,EAAE,CAAC;EACrB,IAAI,WAAW,GAAG,GAAG,CAAC;AACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,cAAc,YAAY,KAAK,aAAa;EACrD,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;EACpB,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACrB;EACA;EACA,EAAE,IAAI,QAAQ,SAAS,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;EACpD,EAAE,IAAI,YAAY,KAAK,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,UA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AAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,G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"}
|