tmp_es6_igv
Version:
Experimental
484 lines (373 loc) • 2.46 MB
JavaScript
/* Module header based on https://github.com/umdjs/umd/blob/master/templates/returnExports.js
*/
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define([], factory);
} else if (typeof module === 'object' && module.exports) {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory();
} else {
// Browser globals (root is window)
root.igv = factory();
}
}(this, function () {
//
// // Just return a value to define the module export.
// // This example returns an object, but the module
// // can return a function as the exported value.
// return igv;
//
// }));
(function () {
var css = '.igv-color-swatch {\n display: flex;\n flex-flow: row;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n width: 24px;\n height: 24px;\n border-style: solid;\n border-width: 1px;\n border-color: transparent; }\n .igv-color-swatch i.fa {\n display: block; }\n .igv-color-swatch i.fa:hover,\n .igv-color-swatch i.fa:focus,\n .igv-color-swatch i.fa:active {\n cursor: pointer;\n color: #0f0f0f; }\n\n.igv-color-swatch:hover,\n.igv-color-swatch:focus,\n.igv-color-swatch:active {\n border-color: #dddddd; }\n\n.igv-colorpicker-menu-close-button {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: flex-end;\n align-items: center;\n width: 100%;\n height: 32px;\n margin-top: 4px;\n margin-bottom: 4px;\n padding-right: 8px; }\n .igv-colorpicker-menu-close-button i.fa {\n display: block;\n margin-left: 4px;\n margin-right: 4px;\n color: #5f5f5f; }\n .igv-colorpicker-menu-close-button i.fa:hover,\n .igv-colorpicker-menu-close-button i.fa:focus,\n .igv-colorpicker-menu-close-button i.fa:active {\n cursor: pointer;\n color: #0f0f0f; }\n\n.igv-position-absolute {\n position: absolute;\n top: 0;\n left: 0; }\n\n.igv-generic-container {\n width: 256px;\n z-index: 5000;\n background-color: white;\n border-style: solid;\n border-width: thin;\n border-color: #dddddd;\n cursor: pointer;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n align-items: center; }\n .igv-generic-container div:first-child {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: flex-end;\n align-items: center;\n height: 24px;\n width: 100%;\n background-color: #dddddd; }\n .igv-generic-container div:first-child i.fa {\n margin-right: 4px;\n display: block;\n color: #5f5f5f; }\n .igv-generic-container div:first-child i.fa:hover,\n .igv-generic-container div:first-child i.fa:focus,\n .igv-generic-container div:first-child i.fa:active {\n cursor: pointer;\n color: #0f0f0f; }\n\n#igvControlDiv {\n position: relative; }\n\n#igv-content-header {\n position: relative;\n height: 16px;\n clear: both;\n margin-top: 10px;\n white-space: nowrap; }\n #igv-content-header .igv-ideogram-left-shim {\n position: relative;\n height: 100%;\n width: 50px;\n display: inline-block;\n background-color: white; }\n #igv-content-header .igv-ideogram-content-div {\n position: relative;\n height: 100%;\n display: inline-block;\n background-color: white; }\n #igv-content-header .igv-ideogram-content-div canvas {\n width: 100%;\n height: 100%; }\n #igv-content-header .igv-ideogram-content-div-border-right {\n border-right-color: #292929;\n border-right-style: solid;\n border-right-width: 1px; }\n\n.igv-multi-locus-panel-border {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 1px;\n background-color: green;\n border-right-color: #ff0000;\n border-right-style: solid;\n border-right-width: 1px; }\n\n#igv-navbar {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n margin-top: 2px;\n margin-bottom: 4px;\n position: relative;\n top: 0;\n left: 0;\n height: 32px;\n width: 100%;\n border-style: solid;\n border-radius: 3px;\n border-width: thin;\n border-color: #bfbfbf;\n background-color: #f3f3f3; }\n #igv-navbar i {\n cursor: pointer;\n color: #666666; }\n #igv-navbar i:hover,\n #igv-navbar i:focus,\n #igv-navbar i:active {\n color: #434343; }\n #igv-navbar #igv-nav-bar-left-container {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n height: 32px; }\n #igv-navbar #igv-nav-bar-left-container #igv-logo {\n width: 34px;\n height: 32px;\n margin-left: 8px;\n margin-right: 32px; }\n #igv-navbar #igv-nav-bar-left-container #igv-drag-and-drop-presentation-button {\n margin-right: 32px; }\n #igv-navbar #igv-nav-bar-left-container #igv-current_genome {\n height: 32px;\n margin-right: 16px;\n user-select: none;\n color: #444;\n font-family: \"Open Sans\", sans-serif;\n font-size: 12px;\n font-weight: 400;\n line-height: 32px;\n text-align: center; }\n #igv-navbar #igv-nav-bar-left-container #igv-genomic-location {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n height: 32px; }\n #igv-navbar #igv-nav-bar-left-container #igv-genomic-location #igv-chromosome-select-widget-container {\n width: 96px;\n margin-right: 4px;\n height: 70%; }\n #igv-navbar #igv-nav-bar-left-container #igv-genomic-location #igv-chromosome-select-widget-container select {\n display: block;\n outline: none;\n font-family: \"Open Sans\", sans-serif;\n font-size: 12px;\n font-weight: 400;\n color: #444;\n width: 100%;\n height: 100%; }\n #igv-navbar #igv-nav-bar-left-container #igv-genomic-location #igv-locus-size-group {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n height: 75%; }\n #igv-navbar #igv-nav-bar-left-container #igv-genomic-location #igv-locus-size-group #igv-search-container {\n width: 260px;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center; }\n #igv-navbar #igv-nav-bar-left-container #igv-genomic-location #igv-locus-size-group #igv-search-container input {\n display: block;\n width: 85%;\n padding-left: 8px;\n margin-right: 8px;\n line-height: 20px;\n text-align: left;\n font-family: \"Open Sans\", sans-serif;\n font-size: 12px;\n font-weight: 400;\n color: #444;\n outline: none;\n border-style: solid;\n border-radius: 3px;\n border-width: thin;\n border-color: #bfbfbf;\n background-color: white; }\n #igv-navbar #igv-nav-bar-left-container #igv-genomic-location #igv-locus-size-group #igv-search-container div {\n height: 100%; }\n #igv-navbar #igv-nav-bar-left-container #igv-genomic-location #igv-locus-size-group #igv-search-container div i {\n font-size: 18px; }\n #igv-navbar #igv-nav-bar-left-container #igv-genomic-location #igv-locus-size-group #igv-windowsizepanel-content-div {\n margin-left: 4px;\n user-select: none;\n font-family: \"Open Sans\", sans-serif;\n font-size: 12px;\n font-weight: 400;\n color: #444; }\n #igv-navbar #igv-nav-bar-right-container {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center; }\n #igv-navbar #igv-nav-bar-right-container #igv-nav-bar-toggle-button-container {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n margin-right: 8px; }\n #igv-navbar #igv-nav-bar-right-container #igv-nav-bar-toggle-button-container div {\n margin-left: 0;\n margin-right: 4px; }\n #igv-navbar #igv-nav-bar-right-container #igv-nav-bar-toggle-button-container div:last-child {\n margin-left: 0;\n margin-right: 0; }\n #igv-navbar #igv-nav-bar-right-container #igv-zoom-widget {\n user-select: none;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n width: 44px;\n margin-left: 16px;\n margin-right: 8px; }\n #igv-navbar #igv-nav-bar-right-container #igv-zoom-widget div i {\n font-size: 24px; }\n\n.igv-nav-bar-button {\n height: 18px;\n min-width: 96px;\n text-transform: capitalize;\n user-select: none;\n line-height: 18px;\n text-align: center;\n font-family: \"Open Sans\", sans-serif;\n font-size: 11px;\n font-weight: 200;\n color: #737373;\n background-color: #f3f3f3;\n border-color: #737373;\n border-style: solid;\n border-width: thin;\n border-radius: 10px; }\n\n.igv-nav-bar-button-clicked {\n color: white;\n background-color: #737373; }\n\n.igv-nav-bar-button:hover {\n cursor: pointer; }\n\n#igv-logo-nonav {\n margin-left: 4px;\n margin-top: 12px;\n position: absolute;\n top: 0;\n left: 0;\n width: 34px;\n height: 16px; }\n\n.igv-search-results {\n position: absolute;\n top: 32px;\n left: 2px;\n height: 320px;\n width: 213px;\n background-color: white;\n border-color: #7F7F7F;\n border-style: solid;\n border-width: thin;\n overflow-x: hidden;\n overflow-y: auto;\n z-index: 9999; }\n .igv-search-results tr {\n font-family: \"Open Sans\", sans-serif;\n font-size: small;\n font-weight: 400;\n color: #444; }\n .igv-search-results tr:hover,\n .igv-search-results tr:focus,\n .igv-search-results tr:active {\n cursor: pointer;\n font-weight: 700;\n color: #141414; }\n\n.igv-karyo-div {\n position: relative;\n left: 0;\n top: 0;\n height: 200px; }\n\n.igv-karyo-hide {\n height: 0;\n overflow: hidden; }\n\n.igv-karyo-content-div {\n left: 0;\n top: 0;\n width: 100%;\n height: 100%; }\n\n.igv-karyo-canvas {\n left: 0;\n top: 0;\n width: 100%;\n height: 100%; }\n\n.igv-root-div {\n position: relative;\n left: 0;\n right: 0;\n height: auto;\n margin-left: 10px;\n margin-right: 10px;\n padding-top: 4px; }\n\n.igv-content-div {\n position: relative;\n width: 100%;\n height: 100%; }\n\n.igv-track-container-div {\n position: relative;\n clear: both; }\n\n.igv-track-div {\n position: relative;\n width: 100%;\n margin-top: 2px;\n margin-bottom: 2px; }\n\n.igv-viewport-container {\n position: absolute;\n left: 50px;\n right: 50px;\n height: 100%;\n white-space: nowrap;\n overflow-x: hidden;\n overflow-y: hidden; }\n\n.igv-viewport-div {\n position: relative;\n display: inline-block;\n height: 100%;\n overflow-x: hidden;\n overflow-y: hidden; }\n\n.igv-viewport-content-div {\n position: absolute;\n width: 100%; }\n\n.igv-viewport-message {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: rgba(0, 0, 0, 0.15);\n font-family: \"Open Sans\", sans-serif;\n font-size: 25px;\n font-weight: bold;\n user-select: none; }\n\n.igv-whole-genome-container {\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n width: 100%;\n height: 100%;\n background-color: white; }\n .igv-whole-genome-container div {\n font-family: \"Open Sans\", sans-serif;\n font-size: 10px;\n font-weight: 400;\n color: #444;\n height: 100%;\n text-align: center;\n border-right-color: #bfbfbf;\n border-right-style: solid;\n border-right-width: thin; }\n .igv-whole-genome-container div span {\n display: block;\n padding-top: 6px;\n text-overflow: ellipsis; }\n .igv-whole-genome-container div:last-child {\n border-right-color: transparent; }\n .igv-whole-genome-container div:hover,\n .igv-whole-genome-container div:focus,\n .igv-whole-genome-container div:active {\n cursor: pointer;\n background-color: #efefef; }\n\n.igv-viewport-div-border-right {\n border-right-color: #292929;\n border-right-style: solid;\n border-right-width: 1px; }\n\n.igv-viewport-fa-close {\n position: absolute;\n top: 4px;\n right: 4px;\n font-size: 16px;\n color: #666666;\n z-index: 1000; }\n\n.igv-viewport-fa-close:hover {\n cursor: pointer;\n color: #434343; }\n\n.igv-viewport-content-ruler-div {\n position: absolute;\n left: 50%;\n top: 25%;\n transform: translate(-50%, -25%);\n font-family: \"Open Sans\", sans-serif;\n font-size: 12px;\n font-weight: 200;\n text-align: center;\n min-width: 16px;\n z-index: 64;\n color: #0066ff;\n background-color: white;\n padding: 1px; }\n\n.igv-viewport-content-ruler-div:hover,\n.igv-viewport-content-ruler-div:focus,\n.igv-viewport-content-ruler-div:active {\n cursor: pointer;\n color: white;\n background-color: #0066ff; }\n\n.igv-viewport-ruler {\n font-family: \"Open Sans\", sans-serif;\n font-size: 10px;\n font-weight: 200;\n text-align: center; }\n .igv-viewport-ruler > div {\n height: 100%; }\n\n.igv-viewport-sequence {\n font-family: \"Open Sans\", sans-serif;\n font-size: 8px;\n font-weight: 200;\n text-align: center; }\n\n.igv-viewport-spinner {\n pointer-events: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 1024;\n color: #737373; }\n\n.igv-ruler-sweeper-div {\n display: none;\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 100%;\n z-index: 99999;\n background-color: rgba(68, 134, 247, 0.25); }\n\n.igv-right-hand-gutter {\n position: absolute;\n right: 0;\n width: 36px;\n height: 100%;\n background: white;\n text-align: center; }\n .igv-right-hand-gutter i {\n position: absolute;\n top: 0;\n right: 0;\n padding-right: 6px;\n font-size: 20px;\n cursor: pointer;\n color: grey; }\n .igv-right-hand-gutter i:hover,\n .igv-right-hand-gutter i:focus,\n .igv-right-hand-gutter i:active {\n color: #333333; }\n\n.igv-left-hand-gutter {\n position: absolute;\n left: 0;\n width: 50px;\n height: 100%; }\n .igv-left-hand-gutter canvas {\n position: absolute; }\n\n.igv-track-menu-container {\n background-color: white;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px; }\n .igv-track-menu-container div {\n padding-left: 4px;\n padding-right: 4px;\n padding-top: 2px;\n padding-bottom: 2px;\n background-color: white; }\n .igv-track-menu-container div i {\n padding-right: 2px; }\n .igv-track-menu-container div:hover,\n .igv-track-menu-container div:focus,\n .igv-track-menu-container div:active {\n cursor: pointer;\n background-color: #efefef; }\n .igv-track-menu-container a {\n color: inherit;\n text-decoration: none; }\n\n.igv-track-menu-border-top {\n border-top-color: #a2a2a2;\n border-top-style: solid;\n border-top-width: thin; }\n\n.igv-track-menu-category {\n padding-left: 4px;\n font-weight: 400; }\n\n.igv-track-drag-scrim {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n z-index: 256;\n background-color: rgba(68, 134, 247, 0.25); }\n\n.igv-track-manipulation-handle {\n cursor: pointer;\n position: absolute;\n right: 36px;\n width: 12px;\n margin-left: 2px;\n height: 100%;\n box-sizing: border-box;\n font-size: medium;\n border-color: #c4c4c4;\n border-style: solid;\n border-width: thin;\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n z-index: 512;\n background-color: #c4c4c4; }\n\n.igv-track-manipulation-handle:hover,\n.igv-track-manipulation-handle:focus,\n.igv-track-manipulation-handle:active {\n border-color: #7e7e7e;\n background-color: #7e7e7e; }\n\n.igv-track-label {\n position: absolute;\n left: 8px;\n top: 4px;\n width: auto;\n height: auto;\n max-width: 200px;\n padding-left: 4px;\n padding-right: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: \"Open Sans\", sans-serif;\n font-size: small;\n font-weight: 400;\n text-align: center;\n user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n border-color: #444;\n border-radius: 2px;\n border-style: solid;\n border-width: thin;\n background-color: white;\n z-index: 128;\n cursor: pointer; }\n\n.igv-track-label:hover,\n.igv-track-label:focus,\n.igv-track-label:active {\n background-color: rgba(0, 0, 0, 0.05); }\n\n.igv-scrollbar-outer-div {\n position: absolute;\n top: 0;\n right: 0;\n width: 14px;\n height: 100%;\n background-color: white; }\n .igv-scrollbar-outer-div div {\n position: absolute;\n top: 0;\n left: 3px;\n width: 8px;\n border-style: solid;\n border-width: thin;\n border-color: #c4c4c4;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n background-color: white; }\n .igv-scrollbar-outer-div div:hover,\n .igv-scrollbar-outer-div div:focus,\n .igv-scrollbar-outer-div div:active {\n cursor: pointer;\n background-color: #c4c4c4; }\n\n.zoom-in-notice-container {\n position: absolute;\n top: 25%;\n left: 50%; }\n .zoom-in-notice-container div {\n position: relative;\n left: -50%;\n font-family: \"Open Sans\", sans-serif;\n font-size: medium;\n font-weight: 400;\n color: #3f3f3f;\n background-color: rgba(255, 255, 255, 0.51);\n z-index: 64; }\n\n.igv-center-guide {\n pointer-events: none;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 50%;\n width: 8px;\n z-index: 8;\n display: none;\n user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n border-left-style: dashed;\n border-left-width: thin;\n border-right-style: dashed;\n border-right-width: thin; }\n\n.igv-center-guide-wide {\n background-color: transparent;\n border-left-color: rgba(127, 127, 127, 0.51);\n border-right-color: rgba(127, 127, 127, 0.51); }\n\n.igv-center-guide-thin {\n left: 50%;\n width: 1px;\n background-color: transparent;\n border-left-color: rgba(127, 127, 127, 0.51);\n border-right-color: transparent;\n /*background-color: rgba(127, 127, 127, 0.51);*/\n /*border-left-color: rgba(0,0,0,0);*/\n /*border-right-color: rgba(0,0,0,0);*/ }\n\n.igv-cursor-tracking-guide {\n pointer-events: none;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 50%;\n width: 1px;\n z-index: 1;\n border-left-style: dotted;\n border-left-width: thin;\n border-left-color: rgba(127, 127, 127, 0.76);\n display: none;\n user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none; }\n\n.igv-clickable {\n cursor: pointer;\n background-color: white; }\n\n#color-by-tag {\n color: #444; }\n\n#color-by-tag:hover,\n#color-by-tag:focus,\n#color-by-tag:active {\n cursor: pointer;\n padding-left: 2px;\n padding-right: 2px;\n color: white;\n border-color: #444;\n border-radius: 2px;\n border-style: solid;\n border-width: thin;\n background-color: #7f7f7f; }\n\n.igv-user-feedback {\n position: fixed;\n top: 50%;\n left: 50%;\n width: 36em;\n height: 27em;\n margin-top: -9em;\n /*set to a negative number 1/2 of your height*/\n margin-left: -15em;\n /*set to a negative number 1/2 of your width*/\n background-color: white;\n border-color: #a2a2a2;\n border-style: solid;\n border-width: thin;\n font-family: \"Open Sans\", sans-serif;\n font-size: medium;\n font-weight: 400;\n color: #444; }\n .igv-user-feedback div:first-child {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 32px;\n border-bottom-color: #a2a2a2;\n border-bottom-style: solid;\n border-bottom-width: thin;\n background-color: white; }\n .igv-user-feedback div:first-child i {\n font-size: 20px; }\n .igv-user-feedback div:first-child i:first-child {\n position: absolute;\n top: 0;\n left: 0;\n padding: 8px;\n color: red; }\n .igv-user-feedback div:first-child i:last-child {\n position: absolute;\n top: 0;\n right: 0;\n padding: 8px;\n cursor: pointer;\n color: grey; }\n .igv-user-feedback div:first-child i:last-child:hover,\n .igv-user-feedback div:first-child i:last-child:focus,\n .igv-user-feedback div:first-child i:last-child:active {\n color: #333333; }\n .igv-user-feedback div:last-child {\n padding-left: 48px;\n padding-top: 8px;\n padding-right: 48px;\n padding-bottom: 8px;\n position: absolute;\n top: 33px;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: white; }\n\n.igv-ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n\n.igv-generic-dialog-container {\n position: absolute;\n top: 0;\n left: 0;\n width: 300px;\n height: 200px;\n font-family: \"Open Sans\", sans-serif;\n font-size: medium;\n font-weight: 200;\n border-color: #7F7F7F;\n border-radius: 4px;\n border-style: solid;\n border-width: thin;\n z-index: 2048;\n background-color: white;\n display: flex;\n flex-flow: column;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center; }\n .igv-generic-dialog-container .igv-generic-dialog-header {\n width: 100%;\n height: 24px;\n cursor: move;\n border-color: #c4c4c4;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-style: solid;\n border-width: thin;\n background-color: #c4c4c4;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: flex-end;\n align-items: center; }\n .igv-generic-dialog-container .igv-generic-dialog-header div {\n height: 24px;\n width: 16px;\n margin-right: 6px;\n text-align: center;\n line-height: 24px;\n color: #444;\n font-size: medium; }\n .igv-generic-dialog-container .igv-generic-dialog-header div:hover {\n cursor: pointer; }\n .igv-generic-dialog-container .igv-generic-dialog-one-liner {\n margin-top: 8px;\n width: 95%;\n color: #373737;\n line-height: 24px;\n text-align: left;\n padding-left: 8px;\n background-color: white; }\n .igv-generic-dialog-container .igv-generic-dialog-label-input {\n margin-top: 8px;\n width: 95%;\n height: 24px;\n color: #373737;\n line-height: 24px;\n padding-left: 8px;\n background-color: white;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center; }\n .igv-generic-dialog-container .igv-generic-dialog-label-input div {\n width: 30%;\n height: 100%;\n font-size: 16px;\n text-align: right;\n padding-right: 8px;\n background-color: white; }\n .igv-generic-dialog-container .igv-generic-dialog-label-input input {\n display: block;\n height: 100%;\n width: 100%;\n padding-left: 4px;\n font-family: \"Open Sans\", sans-serif;\n font-weight: 400;\n color: #373737;\n text-align: left;\n outline: none;\n border-style: solid;\n border-width: thin;\n border-color: #7F7F7F;\n background-color: white; }\n .igv-generic-dialog-container .igv-generic-dialog-label-input input {\n width: 50%;\n font-size: 16px; }\n .igv-generic-dialog-container .igv-generic-dialog-input {\n margin-top: 8px;\n width: calc(100% - 16px);\n height: 24px;\n color: #373737;\n line-height: 24px;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-around;\n align-items: center; }\n .igv-generic-dialog-container .igv-generic-dialog-input input {\n display: block;\n height: 100%;\n width: 100%;\n padding-left: 4px;\n font-family: \"Open Sans\", sans-serif;\n font-weight: 400;\n color: #373737;\n text-align: left;\n outline: none;\n border-style: solid;\n border-width: thin;\n border-color: #7F7F7F;\n background-color: white; }\n .igv-generic-dialog-container .igv-generic-dialog-input input {\n font-size: 16px; }\n .igv-generic-dialog-container .igv-generic-dialog-ok-cancel {\n width: 100%;\n height: 28px;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-around;\n align-items: center; }\n .igv-generic-dialog-container .igv-generic-dialog-ok-cancel div {\n margin-top: 32px;\n color: white;\n font-family: \"Open Sans\", sans-serif;\n font-size: 14px;\n font-weight: 200;\n width: 75px;\n height: 28px;\n line-height: 28px;\n text-align: center;\n border-color: transparent;\n border-style: solid;\n border-width: thin;\n border-radius: 2px; }\n .igv-generic-dialog-container .igv-generic-dialog-ok-cancel div:first-child {\n margin-left: 32px;\n margin-right: 0;\n background-color: #5ea4e0; }\n .igv-generic-dialog-container .igv-generic-dialog-ok-cancel div:last-child {\n margin-left: 0;\n margin-right: 32px;\n background-color: #c4c4c4; }\n .igv-generic-dialog-container .igv-generic-dialog-ok-cancel div:first-child:hover {\n cursor: pointer;\n background-color: #3b5c7f; }\n .igv-generic-dialog-container .igv-generic-dialog-ok-cancel div:last-child:hover {\n cursor: pointer;\n background-color: #7f7f7f; }\n .igv-generic-dialog-container .igv-generic-dialog-ok {\n width: 100%;\n height: 36px;\n margin-top: 32px;\n display: flex;\n flex-flow: row;\n flex-wrap: nowrap;\n justify-content: space-around;\n align-items: center; }\n .igv-generic-dialog-container .igv-generic-dialog-ok div {\n width: 98px;\n height: 36px;\n line-height: 36px;\n text-align: center;\n color: white;\n font-family: \"Open Sans\", sans-serif;\n font-size: medium;\n font-weight: 200;\n border-color: white;\n border-style: solid;\n border-width: thin;\n border-radius: 4px;\n background-color: #2B81AF; }\n .igv-generic-dialog-container .igv-generic-dialog-ok div:hover {\n cursor: pointer;\n background-color: #25597f; }\n\n.igv-popover {\n position: absolute;\n top: 0;\n left: 0;\n min-width: 128px;\n z-index: 4096;\n font-family: \"Open Sans\", sans-serif;\n font-size: small;\n font-weight: 400;\n color: #444;\n background: white;\n border-radius: 4px;\n border-color: #7F7F7F;\n border-style: solid;\n border-width: thin;\n display: none; }\n\n.igv-popover-header {\n position: relative;\n top: 0;\n left: 0;\n width: 100%;\n height: 20px;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-color: #7F7F7F;\n border-bottom-style: solid;\n border-bottom-width: thin;\n background-color: #eee; }\n .igv-popover-header div {\n position: absolute;\n top: 3px;\n right: 3px;\n height: 100%;\n width: 16px;\n text-align: center;\n line-height: 100%;\n cursor: pointer;\n color: #444;\n font-size: small; }\n .igv-popover-header div:hover {\n color: white; }\n\n.igv-popover-track-popup-content {\n position: relative;\n top: 0;\n left: 0;\n max-height: 384px;\n overflow-x: hidden;\n overflow-y: auto; }\n\n.igv-popover-name-value {\n cursor: default;\n text-wrap: none;\n white-space: nowrap;\n max-width: 384px; }\n\n.igv-popover-name {\n font-weight: bold;\n padding-right: 4px;\n float: left; }\n\n.igv-popover-value {\n padding-left: 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: 256px;\n display: inline-block; }\n\n.igv-spinner-container {\n color: #3f3f3f;\n width: 100%;\n height: 100%;\n text-align: center;\n padding-top: 8px;\n font-size: 24px;\n z-index: 512; }\n\n.igv-fa-check-hidden {\n color: rgba(255, 255, 255, 0); }\n\n.validateTips {\n border: 1px solid transparent;\n padding: 0.3em; }\n .validateTips fieldset {\n border: 0; }\n\n.igv-spacer-10 {\n height: 10px;\n width: 100%;\n font-size: 0;\n margin: 0;\n padding: 0;\n border: 0;\n display: block; }\n\n/*# sourceMappingURL=igv.css.map */\n\n/*!\n * Font Awesome Free 5.0.8 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nsvg:not(:root).svg-inline--fa5 {\n overflow: visible;\n }\n\n.svg-inline--fa5 {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -.125em; }\n .svg-inline--fa5.fa5-lg {\n vertical-align: -.225em; }\n .svg-inline--fa5.fa5-w-1 {\n width: 0.0625em; }\n .svg-inline--fa5.fa5-w-2 {\n width: 0.125em; }\n .svg-inline--fa5.fa5-w-3 {\n width: 0.1875em; }\n .svg-inline--fa5.fa5-w-4 {\n width: 0.25em; }\n .svg-inline--fa5.fa5-w-5 {\n width: 0.3125em; }\n .svg-inline--fa5.fa5-w-6 {\n width: 0.375em; }\n .svg-inline--fa5.fa5-w-7 {\n width: 0.4375em; }\n .svg-inline--fa5.fa5-w-8 {\n width: 0.5em; }\n .svg-inline--fa5.fa5-w-9 {\n width: 0.5625em; }\n .svg-inline--fa5.fa5-w-10 {\n width: 0.625em; }\n .svg-inline--fa5.fa5-w-11 {\n width: 0.6875em; }\n .svg-inline--fa5.fa5-w-12 {\n width: 0.75em; }\n .svg-inline--fa5.fa5-w-13 {\n width: 0.8125em; }\n .svg-inline--fa5.fa5-w-14 {\n width: 0.875em; }\n .svg-inline--fa5.fa5-w-15 {\n width: 0.9375em; }\n .svg-inline--fa5.fa5-w-16 {\n /* width: 1em; */\n }\n .svg-inline--fa5.fa5-w-17 {\n width: 1.0625em; }\n .svg-inline--fa5.fa5-w-18 {\n width: 1.125em; }\n .svg-inline--fa5.fa5-w-19 {\n width: 1.1875em; }\n .svg-inline--fa5.fa5-w-20 {\n width: 1.25em; }\n .svg-inline--fa5.fa5-pull-left {\n margin-right: .3em;\n width: auto; }\n .svg-inline--fa5.fa5-pull-right {\n margin-left: .3em;\n width: auto; }\n .svg-inline--fa5.fa5-border {\n height: 1.5em; }\n .svg-inline--fa5.fa5-li {\n width: 2em; }\n .svg-inline--fa5.fa5-fw {\n width: 1.25em; }\n\n.fa5-layers svg.svg-inline--fa5 {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0; }\n\n.fa5-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -.125em;\n width: 1em; }\n .fa5-layers svg.svg-inline--fa5 {\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n\n.fa5-layers-text, .fa5-layers-counter {\n display: inline-block;\n position: absolute;\n text-align: center; }\n\n.fa5-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center; }\n\n.fa5-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: .25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right; }\n\n.fa5-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right; }\n\n.fa5-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left; }\n\n.fa5-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right; }\n\n.fa5-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left; }\n\n.fa5-lg {\n font-size: 1.33333em;\n line-height: 0.75em;\n vertical-align: -.0667em; }\n\n.fa5-xs {\n font-size: .75em; }\n\n.fa5-sm {\n font-size: .875em; }\n\n.fa5-1x {\n font-size: 1em; }\n\n.fa5-2x {\n font-size: 2em; }\n\n.fa5-3x {\n font-size: 3em; }\n\n.fa5-4x {\n font-size: 4em; }\n\n.fa5-5x {\n font-size: 5em; }\n\n.fa5-6x {\n font-size: 6em; }\n\n.fa5-7x {\n font-size: 7em; }\n\n.fa5-8x {\n font-size: 8em; }\n\n.fa5-9x {\n font-size: 9em; }\n\n.fa5-10x {\n font-size: 10em; }\n\n.fa5-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa5-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0; }\n .fa5-ul > li {\n position: relative; }\n\n.fa5-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit; }\n\n.fa5-border {\n border: solid 0.08em #eee;\n border-radius: .1em;\n padding: .2em .25em .15em; }\n\n.fa5-pull-left {\n float: left; }\n\n.fa5-pull-right {\n float: right; }\n\n.fa5.fa5-pull-left,\n.fas.fa5-pull-left,\n.far.fa5-pull-left,\n.fal.fa5-pull-left,\n.fab.fa5-pull-left {\n margin-right: .3em; }\n\n.fa5.fa5-pull-right,\n.fas.fa5-pull-right,\n.far.fa5-pull-right,\n.fal.fa5-pull-right,\n.fab.fa5-pull-right {\n margin-left: .3em; }\n\n.fa5-spin {\n -webkit-animation: fa5-spin 2s infinite linear;\n animation: fa5-spin 2s infinite linear; }\n\n.fa5-pulse {\n -webkit-animation: fa5-spin 1s infinite steps(8);\n animation: fa5-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa5-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa5-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa5-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa5-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa5-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa5-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa5-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa5-flip-horizontal.fa5-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n:root .fa5-rotate-90,\n:root .fa5-rotate-180,\n:root .fa5-rotate-270,\n:root .fa5-flip-horizontal,\n:root .fa5-flip-vertical {\n -webkit-filter: none;\n filter: none; }\n\n.fa5-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2em; }\n\n.fa5-stack-1x,\n.fa5-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0; }\n\n.svg-inline--fa5.fa5-stack-1x {\n height: 1em;\n width: 1em; }\n\n.svg-inline--fa5.fa5-stack-2x {\n height: 2em;\n width: 2em; }\n\n.fa5-inverse {\n color: #fff; }\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto; }\n';
var style = document.createElement('style');
style.setAttribute('type', 'text/css');
style.innerHTML = css;
var headChildren = document.head.childNodes;
var beforeChild = null;
for (var i = headChildren.length - 1; i > -1; i--) {
var child = headChildren[i];
var tagName = (child.tagName || '').toUpperCase();
if (['STYLE', 'LINK'].indexOf(tagName) > -1) {
beforeChild = child;
}
}
document.head.insertBefore(style, beforeChild);
})();
/*!
* jQuery JavaScript Library v1.12.4
* http://jquery.com/
*
* Includes Sizzle.js
* http://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2016-05-20T17:17Z
*/
// Modified for encapsulation in igv module
// * no exports
// * no global definition
// * noConflict not supported (as _ is encapsulated its not needed)
var $, jQuery;
(function (global, factory) {
$ = factory(global);
jQuery = $;
// Pass this if window is not defined yet
}(typeof window !== "undefined" ? window : this, function (window) {
// Support: Firefox 18+
// Can't be in strict mode, several libs including ASP.NET trace
// the stack via arguments.caller.callee and Firefox dies if
// you try to trace through "use strict" call chains. (#13335)
//"use strict";
var deletedIds = [];
var document = window.document;
var slice = deletedIds.slice;
var concat = deletedIds.concat;
var push = deletedIds.push;
var indexOf = deletedIds.indexOf;
var class2type = {};
var toString = class2type.toString;
var hasOwn = class2type.hasOwnProperty;
var support = {};
var
version = "1.12.4",
// Define a local copy of jQuery
jQuery = function (selector, context) {
// The jQuery object is actually just the init constructor 'enhanced'
// Need init if jQuery is called (just allow error to be thrown if not included)
return new jQuery.fn.init(selector, context);
},
// Support: Android<4.1, IE<9
// Make sure we trim BOM and NBSP
rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
// Matches dashed string for camelizing
rmsPrefix = /^-ms-/,
rdashAlpha = /-([\da-z])/gi,
// Used by jQuery.camelCase as callback to replace()
fcamelCase = function (all, letter) {
return letter.toUpperCase();
};
jQuery.fn = jQuery.prototype = {
// The current version of jQuery being used
jquery: version,
constructor: jQuery,
// Start with an empty selector
selector: "",
// The default length of a jQuery object is 0
length: 0,
toArray: function () {
return slice.call(this);
},
// Get the Nth element in the matched element set OR
// Get the whole matched element set as a clean array
get: function (num) {
return num != null ?
// Return just the one element from the set
( num < 0 ? this[num + this.length] : this[num] ) :
// Return all the elements in a clean array
slice.call(this);
},
// Take an array of elements and push it onto the stack
// (returning the new matched element set)
pushStack: function (elems) {
// Build a new jQuery matched element set
var ret = jQuery.merge(this.constructor(), elems);
// Add the old object onto the stack (as a reference)
ret.prevObject = this;
ret.context = this.context;
// Return the newly-formed element set
return ret;
},
// Execute a callback for every element in the matched set.
each: function (callback) {
return jQuery.each(this, callback);
},
map: function (callback) {
return this.pushStack(jQuery.map(this, function (elem, i) {
return callback.call(elem, i, elem);
}));
},
slice: function () {
return this.pushStack(slice.apply(this, arguments));
},
first: function () {
return this.eq(0);
},
last: function () {
return this.eq(-1);
},
eq: function (i) {
var len = this.length,
j = +i + ( i < 0 ? len : 0 );
return this.pushStack(j >= 0 && j < len ? [this[j]] : []);
},
end: function () {
return this.prevObject || this.constructor();
},
// For internal use only.
// Behaves like an Array's method, not like a jQuery method.
push: push,
sort: deletedIds.sort,
splice: deletedIds.splice
};
jQuery.extend = jQuery.fn.extend = function () {
var src, copyIsArray, copy, name, options, clone,
target = arguments[0] || {},
i = 1,
length = arguments.length,
deep = false;
// Handle a deep copy situation
if (typeof target === "boolean") {
deep = target;
// skip the boolean and the target
target = arguments[i] || {};
i++;
}
// Handle case when target is a string or something (possible in deep copy)
if (typeof target !== "object" && !jQuery.isFunction(target)) {
target = {};
}
// extend jQuery itself if only one argument is passed
if (i === length) {
target = this;
i--;
}
for (; i < length; i++) {
// Only deal with non-null/undefined values
if (( options = arguments[i] ) != null) {
// Extend the base object
for (name in options) {
src = target[name];
copy = options[name];
// Prevent never-ending loop
if (target === copy) {
continue;
}
// Recurse if we're merging plain objects or arrays
if (deep && copy && ( jQuery.isPlainObject(copy) ||
( copyIsArray = jQuery.isArray(copy) ) )) {
if (copyIsArray) {
copyIsArray = false;
clone = src && jQuery.isArray(src) ? src : [];
} else {
clone = src && jQuery.isPlainObject(src) ? src : {};
}
// Never move original objects, clone them
target[name] = jQuery.extend(deep, clone, copy);
// Don't bring in undefined values
} else if (copy !== undefined) {
target[name] = copy;
}
}
}
}
// Return the modified object
return target;
};
jQuery.extend({
// Unique for each copy of jQuery on the page
expando: "jQuery" + ( version + Math.random() ).replace(/\D/g, ""),
// Assume jQuery is ready without the ready module
isReady: true,
error: function (msg) {
throw new Error(msg);
},
noop: function () {
},
// See test/unit/core.js for details concerning isFunction.
// Since version 1.3, DOM methods and functions like alert
// aren't supported. They return false on IE (#2968).
isFunction: function (obj) {
return jQuery.type(obj) === "function";
},
isArray: Array.isArray || function (obj) {
return jQuery.type(obj) === "array";
},
isWindow: function (obj) {
/* jshint eqeqeq: false */
return obj != null && obj == obj.window;
},
isNumeric: function (obj) {
// parseFloat NaNs numeric-cast false positives (null|true|false|"")
// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
// subtraction forces infinities to NaN
// adding 1 corrects loss of precision from parseFloat (#15100)
var realStringObj = obj && obj.toString();
return !jQuery.isArray(obj) && ( realStringObj - parseFloat(realStringObj) + 1 ) >= 0;
},
isEmptyObject: function (obj) {
var name;
for (name in obj) {
return false;
}
return true;
},
isPlainObject: function (obj) {
var key;
// Must be an Object.
// Because of IE, we also have to check the presence of the constructor property.
// Make sure that DOM nodes and window objects don't pass through, as well
if (!obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow(obj)) {
return false;
}
try {
// Not own constructor property must be Object
if (obj.constructor && !hasOwn.call(obj, "constructor") && !hasOwn.call(obj.constructor.prototype, "isPrototypeOf")) {
return false;
}
} catch (e) {
// IE8,9 Will throw exceptions on certain host objects #9897
return false;
}
// Support: IE<9
// Handle iteration over inherited properties before own properties.
if (!support.ownFirst) {
for (key in obj) {
return hasOwn.call(obj, key);
}
}
// Own properties are enumerated firstly, so to speed up,
// if last one is own, then all properties are own.
for (key in obj) {
}
return key === undefined || hasOwn.call(obj, key);
},
type: function (obj) {
if (obj == null) {
return obj + "";
}
return typeof obj === "object" || typeof obj === "function" ?
class2type[toString.call(obj)] || "object" :
typeof obj;
},
// Workarounds based on findings by Jim Driscoll
// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
globalEval: function (data) {
if (data && jQuery.trim(data)) {
// We use execScript on Internet Explorer
// We use an anonymous function so that context is window
// rather than jQuery in Firefox
( window.execScript || function (data) {
window["eval"].call(window, data); // jscs:ignore requireDotNotation
} )(data);
}
},
// Convert dashed to camelCase; used by the css and data modules
// Microsoft forgot to hump their vendor prefix (#9572)
camelCase: function (string) {
return string.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase);
},
nodeName: function (elem, name) {
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
},
each: function (obj, callback) {
var length, i = 0;
if (isArrayLike(obj)) {
length = obj.length;
for (; i < length; i++) {
if (callback.call(obj[i], i, obj[i]) === false) {
break;
}
}
} else {
for (i in obj) {
if (callback.call(obj[i], i, obj[i]) === false) {
break;
}
}
}
return obj;
},
// Support: Android<4.1, IE<9
trim: function (text) {
return text == null ?
"" :
( text + "" ).replace(rtrim, "");
},
// results is for internal usage only
makeArray: function (arr, results) {
var ret = results || [];
if (arr != null) {
if (isArrayLike(Object(arr))) {
jQuery.merge(ret,
typeof arr === "string" ?
[arr] : arr
);
} else {
push.call(ret, arr);
}
}
return ret;
},
inArray: function (elem, arr, i) {
var len;
if (arr) {
if (indexOf) {
return indexOf.call(arr, elem, i);
}
len = arr.length;
i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
for (; i < len; i++) {
// Skip accessing in sparse arrays
if (i in arr && arr[i] === elem) {
return i;
}
}
}
return -1;
},
merge: function (first, second) {
var len = +second.length,
j = 0,
i = first.length;
while (j < len) {
first[i++] = second[j++];
}
// Support: IE<9
// Workaround casting of .length to