vitessce
Version:
Vitessce app and React component library
438 lines (373 loc) • 96.4 kB
JavaScript
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "./";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 203);
/******/ })
/************************************************************************/
/******/ ({
/***/ 0:
/***/ (function(module, exports) {
module.exports = require("react");
/***/ }),
/***/ 1:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
function _iterableToArrayLimit(arr, i) {
if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
var _arr = [];
var _n = true;
var _d = false;
var _e = undefined;
try {
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"] != null) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
// EXTERNAL MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
var unsupportedIterableToArray = __webpack_require__(39);
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
// CONCATENATED MODULE: ./node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _slicedToArray; });
function _slicedToArray(arr, i) {
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray["a" /* default */])(arr, i) || _nonIterableRest();
}
/***/ }),
/***/ 135:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Status; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function Status(props){var warnClass='alert alert-warning my-0 details';var info=props.info,warn=props.warn;var messages=[];if(info){messages.push(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p",{className:"details",key:"info"},info));}if(warn){messages.push(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p",{className:warnClass,key:"warn"},warn));}return messages;}
/***/ }),
/***/ 143:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StatusSubscriber; });
/* harmony import */ var _home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _app_state_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5);
/* harmony import */ var _app_state_coordination__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(26);
/* harmony import */ var _TitleInfo__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(38);
/* harmony import */ var _Status__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(135);
/**
* A subscriber component for the status component,
* which renders hovered cell/gene/molecule information
* as well as schema validation and data loading errors.
* @param {object} props
* @param {string} props.theme The current theme name.
* @param {object} props.coordinationScopes The mapping from coordination types to coordination
* scopes.
* @param {function} props.removeGridComponent The callback function to pass to TitleInfo,
* to call when the component has been removed from the grid.
* @param {string} props.title The component title.
*/function StatusSubscriber(props){var coordinationScopes=props.coordinationScopes,removeGridComponent=props.removeGridComponent,theme=props.theme,_props$title=props.title,title=_props$title===void 0?'Status':_props$title;// Get "props" from the coordination space.
var _useCoordination=Object(_app_state_hooks__WEBPACK_IMPORTED_MODULE_3__[/* useCoordination */ "j"])(_app_state_coordination__WEBPACK_IMPORTED_MODULE_4__[/* COMPONENT_COORDINATION_TYPES */ "b"].status,coordinationScopes),_useCoordination2=Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_useCoordination,1),_useCoordination2$=_useCoordination2[0],cellHighlight=_useCoordination2$.cellHighlight,geneHighlight=_useCoordination2$.geneHighlight,moleculeHighlight=_useCoordination2$.moleculeHighlight;var warn=Object(_app_state_hooks__WEBPACK_IMPORTED_MODULE_3__[/* useWarning */ "v"])();var infos=[].concat(Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(cellHighlight?["Hovered cell ".concat(cellHighlight)]:[]),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(geneHighlight?["Hovered gene ".concat(geneHighlight)]:[]),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(moleculeHighlight?["Hovered gene ".concat(moleculeHighlight)]:[]));var info=infos.join('; ');return/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_TitleInfo__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"],{title:title,theme:theme,removeGridComponent:removeGridComponent,isScroll:true,isReady:true},/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_Status__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"],{warn:warn,info:info}));}
/***/ }),
/***/ 16:
/***/ (function(module, exports) {
module.exports = require("@material-ui/core/styles");
/***/ }),
/***/ 18:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return useVitessceContainer; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return useWindowDimensions; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return useGridItemSize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return useDeckCanvasSize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return useReady; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return useUrls; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useClosestVitessceContainerSize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return useExpressionValueGetter; });
/* harmony import */ var _home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _app_state_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5);
/* harmony import */ var _classNames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29);
function getWindowDimensions(){var _window=window,width=_window.innerWidth,height=_window.innerHeight;return{width:width,height:height};}function useVitessceContainer(ref){return Object(react__WEBPACK_IMPORTED_MODULE_2__["useCallback"])(function(){if(ref.current){return ref.current.closest(".".concat(_classNames__WEBPACK_IMPORTED_MODULE_5__[/* VITESSCE_CONTAINER */ "e"]));}return null;},[ref]);}/**
* Custom hook, gets the full window dimensions.
* @returns {array} `[width, height]` where width and height
* are numbers.
*/function useWindowDimensions(){var _useState=Object(react__WEBPACK_IMPORTED_MODULE_2__["useState"])(getWindowDimensions()),_useState2=Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_useState,2),windowDimensions=_useState2[0],setWindowDimensions=_useState2[1];Object(react__WEBPACK_IMPORTED_MODULE_2__["useEffect"])(function(){function handleResize(){setWindowDimensions(getWindowDimensions());}var onResizeDebounced=lodash_debounce__WEBPACK_IMPORTED_MODULE_3___default()(handleResize,100,{trailing:true});window.addEventListener('resize',onResizeDebounced);return function(){return window.removeEventListener('resize',onResizeDebounced);};},[]);return windowDimensions;}/**
* Custom hook, subscribes to GRID_RESIZE and window resize events.
* @returns {array} `[width, height, containerRef]` where width and height
* are numbers and containerRef is a React ref.
*/function useGridItemSize(){var containerRef=Object(react__WEBPACK_IMPORTED_MODULE_2__["useRef"])();var _useState3=Object(react__WEBPACK_IMPORTED_MODULE_2__["useState"])(),_useState4=Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_useState3,2),height=_useState4[0],setHeight=_useState4[1];var _useState5=Object(react__WEBPACK_IMPORTED_MODULE_2__["useState"])(),_useState6=Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_useState5,2),width=_useState6[0],setWidth=_useState6[1];var resizeCount=Object(_app_state_hooks__WEBPACK_IMPORTED_MODULE_4__[/* useGridResize */ "l"])();var incrementResizeCount=Object(_app_state_hooks__WEBPACK_IMPORTED_MODULE_4__[/* useEmitGridResize */ "k"])();// On window resize events, increment the grid resize count.
Object(react__WEBPACK_IMPORTED_MODULE_2__["useEffect"])(function(){function onWindowResize(){incrementResizeCount();}var onResizeDebounced=lodash_debounce__WEBPACK_IMPORTED_MODULE_3___default()(onWindowResize,100,{trailing:true});window.addEventListener('resize',onResizeDebounced);onWindowResize();return function(){window.removeEventListener('resize',onResizeDebounced);};},[incrementResizeCount]);// On new grid resize counts, re-compute the component
// width/height.
Object(react__WEBPACK_IMPORTED_MODULE_2__["useEffect"])(function(){if(!containerRef.current)return;var container=containerRef.current;var containerRect=container.getBoundingClientRect();setHeight(containerRect.height);setWidth(containerRect.width);},[resizeCount]);return[width,height,containerRef];}/**
* Custom hook, subscribes to GRID_RESIZE and window resize events.
* @returns {array} `[width, height, deckRef]` where width and height
* are numbers and deckRef is a React ref to be used with
* a <DeckGL/> element (or a forwardRef to one).
*/function useDeckCanvasSize(){var deckRef=Object(react__WEBPACK_IMPORTED_MODULE_2__["useRef"])();var _useState7=Object(react__WEBPACK_IMPORTED_MODULE_2__["useState"])(),_useState8=Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_useState7,2),height=_useState8[0],setHeight=_useState8[1];var _useState9=Object(react__WEBPACK_IMPORTED_MODULE_2__["useState"])(),_useState10=Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_useState9,2),width=_useState10[0],setWidth=_useState10[1];var resizeCount=Object(_app_state_hooks__WEBPACK_IMPORTED_MODULE_4__[/* useGridResize */ "l"])();var incrementResizeCount=Object(_app_state_hooks__WEBPACK_IMPORTED_MODULE_4__[/* useEmitGridResize */ "k"])();// On window resize events, increment the grid resize count.
Object(react__WEBPACK_IMPORTED_MODULE_2__["useEffect"])(function(){function onWindowResize(){incrementResizeCount();}var onResizeDebounced=lodash_debounce__WEBPACK_IMPORTED_MODULE_3___default()(onWindowResize,100,{trailing:true});window.addEventListener('resize',onResizeDebounced);onWindowResize();return function(){window.removeEventListener('resize',onResizeDebounced);};},[incrementResizeCount]);// On new grid resize counts, re-compute the DeckGL canvas
// width/height.
Object(react__WEBPACK_IMPORTED_MODULE_2__["useEffect"])(function(){if(!deckRef.current)return;var canvas=deckRef.current.deck.canvas;var canvasRect=canvas.getBoundingClientRect();setHeight(canvasRect.height);setWidth(canvasRect.width);},[resizeCount]);return[width,height,deckRef];}/**
* This hook handles a boolean isReady value,
* which only returns true once every item in the
* input list has been marked as "ready".
* @param {string[]} items The items to wait on.
* Should be defined as a constant
* (outside a function component / render function),
* otherwise strange bugs may occur.
* @returns {array} An array
* [isReady, setItemIsReady, setItemIsNotReady, resetReadyItems]
* where isReady is the boolean value,
* setItemIsReady marks one item as ready,
* setItemIsNotReady marks one item as not ready,
* and resetReadyItem marks all items as waiting.
*/function useReady(supportedItems){var items=supportedItems;var _useState11=Object(react__WEBPACK_IMPORTED_MODULE_2__["useState"])(items),_useState12=Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_useState11,2),waiting=_useState12[0],setWaiting=_useState12[1];var setItemIsReady=Object(react__WEBPACK_IMPORTED_MODULE_2__["useCallback"])(function(readyItem){setWaiting(function(waitingItems){var nextWaitingItems=waitingItems.filter(function(item){return item!==readyItem;});// eslint-disable-next-line no-console
console.log("cleared ".concat(readyItem,"; waiting on ").concat(nextWaitingItems.length,": ").concat(JSON.stringify(nextWaitingItems)));return nextWaitingItems;});},[setWaiting]);var setItemIsNotReady=Object(react__WEBPACK_IMPORTED_MODULE_2__["useCallback"])(function(notReadyItem){setWaiting(function(waitingItems){var nextWaitingItems=[].concat(Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(waitingItems),[notReadyItem]);// eslint-disable-next-line no-console
console.log("waiting on ".concat(nextWaitingItems.length,": ").concat(JSON.stringify(nextWaitingItems)));return nextWaitingItems;});},[setWaiting]);var resetReadyItems=Object(react__WEBPACK_IMPORTED_MODULE_2__["useCallback"])(function(){setWaiting(items);// eslint-disable-next-line no-console
console.log("waiting on ".concat(items.length,": ").concat(JSON.stringify(items)));},[setWaiting,items]);var isReady=waiting.length===0;return[isReady,setItemIsReady,setItemIsNotReady,resetReadyItems];}/**
* This hook manages a list of URLs,
* with adding and resetting helpers.
* @returns {array} An array
* [urls, addUrl, resetUrls]
* where urls is the array of URL objects,
* addUrl is a function for adding a URL to the array,
* resetUrls is a function that clears the array.
*/function useUrls(){var _useState13=Object(react__WEBPACK_IMPORTED_MODULE_2__["useState"])([]),_useState14=Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_useState13,2),urls=_useState14[0],setUrls=_useState14[1];var addUrl=Object(react__WEBPACK_IMPORTED_MODULE_2__["useCallback"])(function(url,name){if(url){setUrls(function(prev){return[].concat(Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(prev),[{url:url,name:name}]);});}},[setUrls]);var resetUrls=Object(react__WEBPACK_IMPORTED_MODULE_2__["useCallback"])(function(){setUrls([]);},[setUrls]);return[urls,addUrl,resetUrls];}/**
* Custom hook, subscribes to the width and height of the closest .vitessce-container
* element and updates upon window resize events.
* @param {Ref} ref A React ref object within the `.vitessce-container`.
* @returns {array} `[width, height]` where width and height
* are numbers.
*/function useClosestVitessceContainerSize(ref){var _useState15=Object(react__WEBPACK_IMPORTED_MODULE_2__["useState"])(),_useState16=Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_useState15,2),height=_useState16[0],setHeight=_useState16[1];var _useState17=Object(react__WEBPACK_IMPORTED_MODULE_2__["useState"])(),_useState18=Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_useState17,2),width=_useState18[0],setWidth=_useState18[1];Object(react__WEBPACK_IMPORTED_MODULE_2__["useEffect"])(function(){function onWindowResize(){if(ref.current){var _ref$current$closest=ref.current.closest('.vitessce-container'),componentHeight=_ref$current$closest.clientHeight,componentWidth=_ref$current$closest.clientWidth;setWidth(componentWidth);setHeight(componentHeight);}}var onResizeDebounced=lodash_debounce__WEBPACK_IMPORTED_MODULE_3___default()(onWindowResize,100,{trailing:true});window.addEventListener('resize',onResizeDebounced);onWindowResize();return function(){window.removeEventListener('resize',onResizeDebounced);};},[ref]);return[width,height];}function useExpressionValueGetter(_ref){var attrs=_ref.attrs,expressionData=_ref.expressionData;// Get a mapping from cell ID to row index in the gene expression matrix.
var cellIdMap=Object(react__WEBPACK_IMPORTED_MODULE_2__["useMemo"])(function(){var result={};if(attrs&&attrs.rows){// eslint-disable-next-line no-plusplus
for(var i=0;i<attrs.rows.length;i++){result[attrs.rows[i]]=i;}}return result;},[attrs]);// Set up a getter function for gene expression values, to be used
// by the DeckGL layer to obtain values for instanced attributes.
var getExpressionValue=Object(react__WEBPACK_IMPORTED_MODULE_2__["useCallback"])(function(entry){var cellId=entry[0];if(cellIdMap&&expressionData&&expressionData[0]){var cellIndex=cellIdMap[cellId];var val=expressionData[0][cellIndex];return val;}return 0;},[cellIdMap,expressionData]);return getExpressionValue;}
/***/ }),
/***/ 2:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _defineProperty; });
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
/***/ }),
/***/ 203:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _StatusSubscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(143);
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StatusSubscriber", function() { return _StatusSubscriber__WEBPACK_IMPORTED_MODULE_0__["a"]; });
/* harmony import */ var _Status__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(135);
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Status", function() { return _Status__WEBPACK_IMPORTED_MODULE_1__["a"]; });
/***/ }),
/***/ 26:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return COORDINATION_TYPES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return DEFAULT_COORDINATION_VALUES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AUTO_INDEPENDENT_COORDINATION_TYPES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return COMPONENT_COORDINATION_TYPES; });
/* harmony import */ var _home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
var _DEFAULT_COORDINATION;/**
* Constants representing names of coordination types,
* to help prevent typos.
*/var COORDINATION_TYPES={DATASET:'dataset',EMBEDDING_TYPE:'embeddingType',EMBEDDING_ZOOM:'embeddingZoom',EMBEDDING_ROTATION:'embeddingRotation',EMBEDDING_TARGET_X:'embeddingTargetX',EMBEDDING_TARGET_Y:'embeddingTargetY',EMBEDDING_TARGET_Z:'embeddingTargetZ',EMBEDDING_CELL_SET_POLYGONS_VISIBLE:'embeddingCellSetPolygonsVisible',EMBEDDING_CELL_SET_LABELS_VISIBLE:'embeddingCellSetLabelsVisible',EMBEDDING_CELL_SET_LABEL_SIZE:'embeddingCellSetLabelSize',EMBEDDING_CELL_RADIUS:'embeddingCellRadius',EMBEDDING_CELL_OPACITY:'embeddingCellOpacity',EMBEDDING_CELL_RADIUS_MODE:'embeddingCellRadiusMode',EMBEDDING_CELL_OPACITY_MODE:'embeddingCellOpacityMode',SPATIAL_ZOOM:'spatialZoom',SPATIAL_ROTATION:'spatialRotation',SPATIAL_TARGET_X:'spatialTargetX',SPATIAL_TARGET_Y:'spatialTargetY',SPATIAL_TARGET_Z:'spatialTargetZ',SPATIAL_ROTATION_X:'spatialRotationX',SPATIAL_ROTATION_Y:'spatialRotationY',SPATIAL_ROTATION_Z:'spatialRotationZ',SPATIAL_ROTATION_ORBIT:'spatialRotationOrbit',SPATIAL_ORBIT_AXIS:'spatialOrbitAxis',SPATIAL_AXIS_FIXED:'spatialAxisFixed',HEATMAP_ZOOM_X:'heatmapZoomX',HEATMAP_ZOOM_Y:'heatmapZoomY',HEATMAP_TARGET_X:'heatmapTargetX',HEATMAP_TARGET_Y:'heatmapTargetY',CELL_FILTER:'cellFilter',CELL_HIGHLIGHT:'cellHighlight',CELL_SET_SELECTION:'cellSetSelection',CELL_SET_HIGHLIGHT:'cellSetHighlight',CELL_SET_COLOR:'cellSetColor',GENE_FILTER:'geneFilter',GENE_HIGHLIGHT:'geneHighlight',GENE_SELECTION:'geneSelection',GENE_EXPRESSION_COLORMAP:'geneExpressionColormap',GENE_EXPRESSION_TRANSFORM:'geneExpressionTransform',GENE_EXPRESSION_COLORMAP_RANGE:'geneExpressionColormapRange',CELL_COLOR_ENCODING:'cellColorEncoding',SPATIAL_RASTER_LAYERS:'spatialRasterLayers',SPATIAL_CELLS_LAYER:'spatialCellsLayer',SPATIAL_MOLECULES_LAYER:'spatialMoleculesLayer',SPATIAL_NEIGHBORHOODS_LAYER:'spatialNeighborhoodsLayer',GENOMIC_ZOOM_X:'genomicZoomX',GENOMIC_ZOOM_Y:'genomicZoomY',GENOMIC_TARGET_X:'genomicTargetX',GENOMIC_TARGET_Y:'genomicTargetY',ADDITIONAL_CELL_SETS:'additionalCellSets',MOLECULE_HIGHLIGHT:'moleculeHighlight'};/**
* Coordination types may have default values,
* which can be defined here, and used by the
* auto initialization strategy.
*/var DEFAULT_COORDINATION_VALUES=(_DEFAULT_COORDINATION={},Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_ZOOM,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_ROTATION,0),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_TARGET_X,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_TARGET_Y,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_TARGET_Z,0),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_CELL_SET_POLYGONS_VISIBLE,false),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_CELL_SET_LABELS_VISIBLE,false),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_CELL_SET_LABEL_SIZE,14),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_CELL_RADIUS,1),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_CELL_RADIUS_MODE,'auto'),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_CELL_OPACITY,1),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.EMBEDDING_CELL_OPACITY_MODE,'auto'),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_ZOOM,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_ROTATION,0),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_TARGET_X,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_TARGET_Y,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_TARGET_Z,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_ROTATION_X,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_ROTATION_Y,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_ROTATION_Z,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_AXIS_FIXED,false),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_ROTATION_ORBIT,0),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_ORBIT_AXIS,'Y'),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_RASTER_LAYERS,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_CELLS_LAYER,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_MOLECULES_LAYER,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.SPATIAL_NEIGHBORHOODS_LAYER,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.HEATMAP_ZOOM_X,0),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.HEATMAP_ZOOM_Y,0),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.HEATMAP_TARGET_X,0),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.HEATMAP_TARGET_Y,0),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.GENE_EXPRESSION_COLORMAP,'plasma'),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.GENE_EXPRESSION_COLORMAP_RANGE,[0.0,1.0]),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.GENE_EXPRESSION_TRANSFORM,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.GENE_FILTER,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.GENE_HIGHLIGHT,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.GENE_SELECTION,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.CELL_FILTER,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.CELL_HIGHLIGHT,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.CELL_SET_SELECTION,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.CELL_SET_HIGHLIGHT,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.CELL_SET_COLOR,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.CELL_COLOR_ENCODING,'cellSetSelection'),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.GENOMIC_ZOOM_X,0),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.GENOMIC_ZOOM_Y,0),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.GENOMIC_TARGET_X,1549999999.5),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.GENOMIC_TARGET_Y,1549999999.5),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.ADDITIONAL_CELL_SETS,null),Object(_home_runner_work_vitessce_vitessce_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_DEFAULT_COORDINATION,COORDINATION_TYPES.MOLECULE_HIGHLIGHT,null),_DEFAULT_COORDINATION);// The following coordination types should be
// initialized to independent scopes when
// initialized automatically.
// These make the resulting view config
// (after auto-initialization) behave
// like "legacy" Vitessce (pre-coordination model).
var AUTO_INDEPENDENT_COORDINATION_TYPES=[COORDINATION_TYPES.HEATMAP_ZOOM_X,COORDINATION_TYPES.HEATMAP_ZOOM_Y,COORDINATION_TYPES.HEATMAP_TARGET_X,COORDINATION_TYPES.HEATMAP_TARGET_Y,COORDINATION_TYPES.EMBEDDING_ZOOM,COORDINATION_TYPES.EMBEDDING_TARGET_X,COORDINATION_TYPES.EMBEDDING_TARGET_Y,COORDINATION_TYPES.EMBEDDING_TARGET_Z,COORDINATION_TYPES.EMBEDDING_CELL_SET_POLYGONS_VISIBLE,COORDINATION_TYPES.EMBEDDING_CELL_SET_LABELS_VISIBLE,COORDINATION_TYPES.EMBEDDING_CELL_SET_LABEL_SIZE,COORDINATION_TYPES.EMBEDDING_CELL_RADIUS,COORDINATION_TYPES.EMBEDDING_CELL_OPACITY];/**
* Mapping from component type to
* supported coordination object types.
* This mapping can be used to determine
* which pieces of state that a component will
* need to get/set.
* Keys here are the component registry keys.
*/var COMPONENT_COORDINATION_TYPES={scatterplot:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.EMBEDDING_TYPE,COORDINATION_TYPES.EMBEDDING_ZOOM,COORDINATION_TYPES.EMBEDDING_ROTATION,COORDINATION_TYPES.EMBEDDING_TARGET_X,COORDINATION_TYPES.EMBEDDING_TARGET_Y,COORDINATION_TYPES.EMBEDDING_TARGET_Z,COORDINATION_TYPES.EMBEDDING_CELL_SET_POLYGONS_VISIBLE,COORDINATION_TYPES.EMBEDDING_CELL_SET_LABELS_VISIBLE,COORDINATION_TYPES.EMBEDDING_CELL_SET_LABEL_SIZE,COORDINATION_TYPES.EMBEDDING_CELL_RADIUS,COORDINATION_TYPES.EMBEDDING_CELL_RADIUS_MODE,COORDINATION_TYPES.EMBEDDING_CELL_OPACITY,COORDINATION_TYPES.EMBEDDING_CELL_OPACITY_MODE,COORDINATION_TYPES.CELL_FILTER,COORDINATION_TYPES.CELL_HIGHLIGHT,COORDINATION_TYPES.CELL_SET_SELECTION,COORDINATION_TYPES.CELL_SET_HIGHLIGHT,COORDINATION_TYPES.CELL_SET_COLOR,COORDINATION_TYPES.GENE_HIGHLIGHT,COORDINATION_TYPES.GENE_SELECTION,COORDINATION_TYPES.GENE_EXPRESSION_COLORMAP,COORDINATION_TYPES.GENE_EXPRESSION_COLORMAP_RANGE,COORDINATION_TYPES.CELL_COLOR_ENCODING,COORDINATION_TYPES.ADDITIONAL_CELL_SETS],spatial:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.SPATIAL_ZOOM,COORDINATION_TYPES.SPATIAL_ROTATION,COORDINATION_TYPES.SPATIAL_RASTER_LAYERS,COORDINATION_TYPES.SPATIAL_CELLS_LAYER,COORDINATION_TYPES.SPATIAL_MOLECULES_LAYER,COORDINATION_TYPES.SPATIAL_NEIGHBORHOODS_LAYER,COORDINATION_TYPES.SPATIAL_TARGET_X,COORDINATION_TYPES.SPATIAL_TARGET_Y,COORDINATION_TYPES.SPATIAL_TARGET_Z,COORDINATION_TYPES.SPATIAL_ROTATION_X,COORDINATION_TYPES.SPATIAL_ROTATION_Y,COORDINATION_TYPES.SPATIAL_ROTATION_Z,COORDINATION_TYPES.SPATIAL_ROTATION_ORBIT,COORDINATION_TYPES.SPATIAL_ORBIT_AXIS,COORDINATION_TYPES.SPATIAL_AXIS_FIXED,COORDINATION_TYPES.CELL_FILTER,COORDINATION_TYPES.CELL_HIGHLIGHT,COORDINATION_TYPES.CELL_SET_SELECTION,COORDINATION_TYPES.CELL_SET_HIGHLIGHT,COORDINATION_TYPES.CELL_SET_COLOR,COORDINATION_TYPES.GENE_HIGHLIGHT,COORDINATION_TYPES.GENE_SELECTION,COORDINATION_TYPES.GENE_EXPRESSION_COLORMAP,COORDINATION_TYPES.GENE_EXPRESSION_COLORMAP_RANGE,COORDINATION_TYPES.CELL_COLOR_ENCODING,COORDINATION_TYPES.ADDITIONAL_CELL_SETS,COORDINATION_TYPES.MOLECULE_HIGHLIGHT],heatmap:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.HEATMAP_ZOOM_X,COORDINATION_TYPES.HEATMAP_ZOOM_Y,COORDINATION_TYPES.HEATMAP_TARGET_X,COORDINATION_TYPES.HEATMAP_TARGET_Y,COORDINATION_TYPES.CELL_FILTER,COORDINATION_TYPES.CELL_HIGHLIGHT,COORDINATION_TYPES.CELL_SET_SELECTION,COORDINATION_TYPES.CELL_SET_HIGHLIGHT,COORDINATION_TYPES.CELL_SET_COLOR,COORDINATION_TYPES.GENE_FILTER,COORDINATION_TYPES.GENE_HIGHLIGHT,COORDINATION_TYPES.GENE_SELECTION,COORDINATION_TYPES.GENE_EXPRESSION_COLORMAP,COORDINATION_TYPES.GENE_EXPRESSION_COLORMAP_RANGE,COORDINATION_TYPES.CELL_COLOR_ENCODING,COORDINATION_TYPES.ADDITIONAL_CELL_SETS],cellSets:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.CELL_SET_SELECTION,COORDINATION_TYPES.CELL_SET_HIGHLIGHT,COORDINATION_TYPES.CELL_SET_COLOR,COORDINATION_TYPES.CELL_COLOR_ENCODING,COORDINATION_TYPES.ADDITIONAL_CELL_SETS],cellSetSizes:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.CELL_SET_SELECTION,COORDINATION_TYPES.CELL_SET_HIGHLIGHT,COORDINATION_TYPES.CELL_SET_COLOR,COORDINATION_TYPES.ADDITIONAL_CELL_SETS],cellSetExpression:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.GENE_SELECTION,COORDINATION_TYPES.GENE_EXPRESSION_TRANSFORM,COORDINATION_TYPES.CELL_SET_SELECTION,COORDINATION_TYPES.CELL_SET_HIGHLIGHT,COORDINATION_TYPES.CELL_SET_COLOR,COORDINATION_TYPES.ADDITIONAL_CELL_SETS],status:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.CELL_HIGHLIGHT,COORDINATION_TYPES.GENE_HIGHLIGHT,COORDINATION_TYPES.CELL_SET_HIGHLIGHT,COORDINATION_TYPES.MOLECULE_HIGHLIGHT],genes:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.GENE_FILTER,COORDINATION_TYPES.GENE_HIGHLIGHT,COORDINATION_TYPES.GENE_SELECTION,COORDINATION_TYPES.CELL_COLOR_ENCODING],expressionHistogram:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.GENE_SELECTION],layerController:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.SPATIAL_RASTER_LAYERS,COORDINATION_TYPES.SPATIAL_CELLS_LAYER,COORDINATION_TYPES.SPATIAL_MOLECULES_LAYER,COORDINATION_TYPES.SPATIAL_NEIGHBORHOODS_LAYER,COORDINATION_TYPES.SPATIAL_ZOOM,COORDINATION_TYPES.SPATIAL_TARGET_X,COORDINATION_TYPES.SPATIAL_TARGET_Y,COORDINATION_TYPES.SPATIAL_TARGET_Z,COORDINATION_TYPES.SPATIAL_ROTATION_X,COORDINATION_TYPES.SPATIAL_ROTATION_Y,COORDINATION_TYPES.SPATIAL_ROTATION_Z,COORDINATION_TYPES.SPATIAL_ROTATION_ORBIT,COORDINATION_TYPES.SPATIAL_ORBIT_AXIS],higlass:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.GENOMIC_ZOOM_X,COORDINATION_TYPES.GENOMIC_ZOOM_Y,COORDINATION_TYPES.GENOMIC_TARGET_X,COORDINATION_TYPES.GENOMIC_TARGET_Y,COORDINATION_TYPES.GENE_FILTER,COORDINATION_TYPES.GENE_HIGHLIGHT,COORDINATION_TYPES.GENE_SELECTION],genomicProfiles:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.GENOMIC_ZOOM_X,COORDINATION_TYPES.GENOMIC_ZOOM_Y,COORDINATION_TYPES.GENOMIC_TARGET_X,COORDINATION_TYPES.GENOMIC_TARGET_Y,COORDINATION_TYPES.GENE_FILTER,COORDINATION_TYPES.GENE_HIGHLIGHT,COORDINATION_TYPES.GENE_SELECTION,COORDINATION_TYPES.CELL_SET_SELECTION,COORDINATION_TYPES.CELL_SET_HIGHLIGHT,COORDINATION_TYPES.CELL_SET_COLOR,COORDINATION_TYPES.ADDITIONAL_CELL_SETS],description:[COORDINATION_TYPES.DATASET,COORDINATION_TYPES.SPATIAL_RASTER_LAYERS]};
/***/ }),
/***/ 29:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export TOOLTIP_ANCESTOR */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return PRIMARY_CARD; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return SECONDARY_CARD; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return BLACK_CARD; });
/* unused harmony export TITLE_CARD */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return SCROLL_CARD; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return VITESSCE_CONTAINER; });
var TOOLTIP_ANCESTOR='tooltip-ancestor';var CARD="card card-body my-2 ".concat(TOOLTIP_ANCESTOR);var PRIMARY_CARD="".concat(CARD," bg-primary");var SECONDARY_CARD="".concat(CARD," bg-secondary");var BLACK_CARD="".concat(CARD," bg-black");var TITLE_CARD='title';var SCROLL_CARD="".concat(PRIMARY_CARD," scroll");var VITESSCE_CONTAINER='vitessce-container';
/***/ }),
/***/ 3:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _objectSpread2; });
/* harmony import */ var _defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
keys.push.apply(keys, symbols);
}
return keys;
}
function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
if (i % 2) {
ownKeys(Object(source), true).forEach(function (key) {
Object(_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(target, key, source[key]);
});
} else if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
}
return target;
}
/***/ }),
/***/ 31:
/***/ (function(module, exports) {
module.exports = require("zustand");
/***/ }),
/***/ 33:
/***/ (function(module, exports) {
module.exports = require("lodash/debounce");
/***/ }),
/***/ 36:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _arrayLikeToArray; });
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) {
arr2[i] = arr[i];
}
return arr2;
}
/***/ }),
/***/ 38:
/***/ (function(mo