{"version":3,"file":"static/js/533.e7b65125.chunk.js","mappings":"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","sources":["../node_modules/@geneontology/wc-ribbon-strips/dist/esm-es5/wc-ribbon-cell_3.entry.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { r as registerInstance, h, g as getElement, c as createEvent } from './core-e961c2bb.js';\nfunction truncate(text, size, ending) {\n if (size == null) {\n size = 100;\n }\n if (ending == null) {\n ending = '...';\n }\n if (text.length > size) {\n return text.substring(0, size - ending.length) + ending;\n }\n else {\n return text;\n }\n}\nfunction transformID(txt) {\n return txt.replace(\":\", \"_\");\n}\nfunction darken(color, factor) {\n var newColor = __spreadArrays(color);\n for (var i = 0; i < newColor.length; i++) {\n if (newColor[i] < 255) {\n newColor[i] = Math.round(Math.max(0, newColor[i] * (1 - factor)));\n }\n }\n // newColor[0] = Math.min(255, Math.round(newColor[0] * (1 + factor)));\n return newColor;\n}\nfunction formatTaxonLabel(species) {\n var split = species.split(\" \");\n return split[0].substring(0, 1) + split[1].substring(0, 2);\n}\nfunction groupKey(group) {\n return \"category-\" + transformID(group.id) + \"-\" + group.type;\n}\nfunction subjectGroupKey(subject, group) {\n return \"subject-\" + transformID(subject.id) + \"-category-\" + transformID(group.id) + \"-\" + group.type;\n}\n/**\n * Return a color based on interpolation (count, minColor, maxColor) and normalized by maxHeatLevel\n * @param {*} count\n * @param {*} maxHeatLevel\n */\nfunction heatColor(level, maxHeatLevel, minColor, maxColor, binaryColor) {\n if (binaryColor === void 0) { binaryColor = false; }\n if (level === 0) {\n return toRGB(minColor);\n }\n if (binaryColor) {\n return toRGB(maxColor);\n }\n // this is a linear version for interpolation\n // let fraction = Math.min(level, maxHeatLevel) / maxHeatLevel;\n // this is the log version for interpolation (better highlight the most annotated classes)\n // note: safari needs integer and not float for rgb function\n var fraction = Math.min(10 * Math.log(level + 1), maxHeatLevel) / maxHeatLevel;\n // there are some annotations and we want a continuous color (r, g, b)\n var itemColor = []; // [r,g,b]\n itemColor[0] = Math.round(minColor[0] + fraction * (maxColor[0] - minColor[0]));\n itemColor[1] = Math.round(minColor[1] + fraction * (maxColor[1] - minColor[1]));\n itemColor[2] = Math.round(minColor[2] + fraction * (maxColor[2] - minColor[2]));\n return toRGB(itemColor);\n}\nfunction toRGB(array) {\n return 'rgb(' + array[0] + ',' + array[1] + ',' + array[2] + ')';\n}\nfunction sameArray(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n// Enum to control what is the input count value for the color\nvar COLOR_BY = { \"CLASS_COUNT\": 0, \"ANNOTATION_COUNT\": 1 };\n// Enum to control the label position of each entity\nvar POSITION = { \"NONE\": 0, \"LEFT\": 1, \"RIGHT\": 2, \"BOTTOM\": 3 };\n// Enum to control the selection mode of a ribbon: selecting the cell or the column\nvar SELECTION = { \"CELL\": 0, \"COLUMN\": 1 };\nvar EXP_CODES = ['EXP', 'IDA', 'IPI', 'IMP', 'IGI', 'IEP', 'HTP', 'HDA', 'HMP', 'HGI', 'HEP'];\nvar CELL_TYPES = { \"ALL\": \"All\", \"TERM\": \"Term\", \"OTHER\": \"Other\" };\nvar FONT_CASE = { \"UNCHANGED\": 0, \"LOWER_CASE\": 1, \"UPPER_CASE\": 2 };\nvar FONT_STYLE = { \"NORMAL\": 0, \"BOLD\": 1 };\nvar RibbonCell = /** @class */ (function () {\n function RibbonCell(hostRef) {\n registerInstance(this, hostRef);\n this.classLabels = \"term,terms\";\n this.annotationLabels = \"annotation,annotations\";\n this.colorBy = COLOR_BY.CLASS_COUNT;\n this.binaryColor = false;\n this.minColor = \"255,255,255\";\n this.maxColor = \"24,73,180\";\n this.maxHeatLevel = 48;\n /**\n * If set to true, won't show any color and can not be hovered or selected\n * This is used for group that can not have annotation for a given subject\n */\n this.available = true;\n this.selected = false;\n this.hovered = false;\n }\n RibbonCell.prototype.minColorChanged = function (newValue, oldValue) {\n if (newValue != oldValue)\n this.updateMinColor(newValue);\n };\n RibbonCell.prototype.updateMinColor = function (newValue) {\n if (newValue instanceof Array) {\n this.arrayMinColor = newValue;\n }\n else if (newValue.includes(\",\")) {\n this.arrayMinColor = newValue.split(\",\");\n }\n this.arrayMinColor = this.arrayMinColor.map(function (elt) { return +elt; });\n };\n RibbonCell.prototype.maxColorChanged = function (newValue, oldValue) {\n if (newValue != oldValue)\n this.updateMaxColor(newValue);\n };\n RibbonCell.prototype.updateMaxColor = function (newValue) {\n if (newValue instanceof Array) {\n this.arrayMaxColor = newValue;\n }\n else if (newValue.includes(\",\")) {\n this.arrayMaxColor = newValue.split(\",\");\n }\n this.arrayMaxColor = this.arrayMaxColor.map(function (elt) { return +elt; });\n };\n RibbonCell.prototype.annotationLabelsChanged = function (newValue, oldValue) {\n if (newValue != oldValue)\n this.updateAnnotationLabels(newValue);\n };\n RibbonCell.prototype.updateAnnotationLabels = function (newValue) {\n if (newValue instanceof Array) {\n this.arrayAnnotationLabels = newValue;\n }\n else if (newValue.includes(\",\")) {\n this.arrayAnnotationLabels = newValue.split(\",\");\n }\n this.arrayAnnotationLabels = this.arrayAnnotationLabels.map(function (elt) { return elt.trim(); });\n };\n RibbonCell.prototype.classLabelsChanged = function (newValue, oldValue) {\n if (newValue != oldValue)\n this.updateClassLabels(newValue);\n };\n RibbonCell.prototype.updateClassLabels = function (newValue) {\n if (newValue instanceof Array) {\n this.arrayClassLabels = newValue;\n }\n else if (newValue.includes(\",\")) {\n this.arrayClassLabels = newValue.split(\",\");\n }\n this.arrayClassLabels = this.arrayClassLabels.map(function (elt) { return elt.trim(); });\n };\n RibbonCell.prototype.cellColor = function (nbClasses, nbAnnotations) {\n var levels = (this.colorBy == COLOR_BY.CLASS_COUNT) ? nbClasses : nbAnnotations;\n var newColor = heatColor(levels, this.maxHeatLevel, this.arrayMinColor, this.arrayMaxColor, this.binaryColor);\n if (this.hovered) {\n var tmp = newColor.replace(/[^\\d,]/g, '').split(',');\n var val = darken(tmp, 0.4);\n newColor = \"rgb(\" + val.join(\",\") + \")\";\n }\n return newColor;\n };\n RibbonCell.prototype.getNbClasses = function () {\n if (this.group.type == \"GlobalAll\") {\n return this.subject.nb_classes;\n }\n var cellid = this.group.id + (this.group.type == CELL_TYPES.OTHER ? \"-other\" : \"\");\n var cell = cellid in this.subject.groups ? this.subject.groups[cellid] : undefined;\n return cell ? cell[\"ALL\"][\"nb_classes\"] : 0;\n };\n RibbonCell.prototype.getNbAnnotations = function () {\n if (this.group.type == \"GlobalAll\") {\n return this.subject.nb_annotations;\n }\n var cellid = this.group.id + (this.group.type == CELL_TYPES.OTHER ? \"-other\" : \"\");\n var cell = cellid in this.subject.groups ? this.subject.groups[cellid] : undefined;\n return cell ? cell[\"ALL\"][\"nb_annotations\"] : 0;\n };\n RibbonCell.prototype.hasAnnotations = function () {\n return this.getNbAnnotations() > 0;\n };\n /**\n * This is executed once when the component gets loaded\n */\n RibbonCell.prototype.componentWillLoad = function () {\n this.updateMinColor(this.minColor);\n this.updateMaxColor(this.maxColor);\n this.updateAnnotationLabels(this.annotationLabels);\n this.updateClassLabels(this.classLabels);\n };\n RibbonCell.prototype.render = function () {\n if (!this.available) {\n var title_1 = this.subject.label + \" can not have data for \" + this.group.label;\n var classes_1 = \"ribbon__subject--cell unavailable\";\n return (h(\"td\", { title: title_1, class: classes_1 }, \" \"));\n }\n var nbClasses = this.getNbClasses();\n var nbAnnotations = this.getNbAnnotations();\n var title = \"Subject: \" + this.subject.id + \":\" + this.subject.label + \"\\n\\nGroup: \" + this.group.id + \": \" + this.group.label;\n if (nbAnnotations > 0) {\n title += \"\\n\\n\" + nbClasses + \" \" + (nbClasses > 1 ? this.arrayClassLabels[1] : this.arrayClassLabels[0]) + \", \" + nbAnnotations + \" \" + (nbAnnotations > 1 ? this.arrayAnnotationLabels[1] : this.arrayAnnotationLabels[0]);\n }\n else {\n title += \"\\n\\nNo data available\";\n }\n this.el.style.setProperty('background', this.cellColor(nbClasses, nbAnnotations));\n var classes = (this.selected && nbAnnotations > 0) ? \"ribbon__subject--cell clicked\" : \"ribbon__subject--cell\";\n classes += (this.hovered && nbAnnotations > 0) ? \" hovered\" : \"\";\n return (h(\"td\", { title: title, class: classes }, \" \"));\n };\n Object.defineProperty(RibbonCell.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RibbonCell, \"watchers\", {\n get: function () {\n return {\n \"minColor\": [\"minColorChanged\"],\n \"maxColor\": [\"maxColorChanged\"],\n \"annotationLabels\": [\"annotationLabelsChanged\"],\n \"classLabels\": [\"classLabelsChanged\"]\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RibbonCell, \"style\", {\n get: function () { return \".clicked{border:1px solid #002eff;-webkit-box-shadow:0 0 8px #002eff;box-shadow:0 0 8px #002eff}.unavailable{cursor:not-allowed;background:linear-gradient(to top left,transparent 0,transparent calc(50% - .8px),rgba(240,32,32,.5) 50%,transparent calc(50% + .8px),transparent)}\"; },\n enumerable: true,\n configurable: true\n });\n return RibbonCell;\n}());\nvar RibbonStrips = /** @class */ (function () {\n function class_1(hostRef) {\n registerInstance(this, hostRef);\n this.baseApiUrl = \"https://api.geneontology.org/api/ontology/ribbon/\";\n this.subjectBaseUrl = \"http://amigo.geneontology.org/amigo/gene_product/\";\n this.groupBaseUrl = \"http://amigo.geneontology.org/amigo/term/\";\n this.subset = \"goslim_agr\";\n /**\n * provide gene ids (e.g. RGD:620474,RGD:3889 or as a list [\"RGD:620474\", \"RGD:3889\"])\n */\n this.subjects = undefined;\n this.classLabels = \"term,terms\";\n this.annotationLabels = \"annotation,annotations\";\n /**\n * Which value to base the cell color on\n * 0 = class count\n * 1 = annotation count\n */\n this.colorBy = COLOR_BY.ANNOTATION_COUNT;\n /**\n * false = show a gradient of colors to indicate the value of a cell\n * true = show only two colors (minColor; maxColor) to indicate the values of a cell\n */\n this.binaryColor = false;\n this.minColor = \"255,255,255\";\n this.maxColor = \"24,73,180\";\n this.maxHeatLevel = 48;\n this.groupMaxLabelSize = 60;\n /**\n * Override of the category case\n * 0 (default) = unchanged\n * 1 = to lower case\n * 2 = to upper case\n */\n this.categoryCase = FONT_CASE.LOWER_CASE;\n /**\n * 0 = Normal\n * 1 = Bold\n */\n this.categoryAllStyle = FONT_STYLE.NORMAL;\n /**\n * 0 = Normal\n * 1 = Bold\n */\n this.categoryOtherStyle = FONT_STYLE.NORMAL;\n this.showOtherGroup = false;\n /**\n * Position the subject label of each row\n * 0 = None\n * 1 = Left\n * 2 = Right\n * 3 = Bottom\n */\n this.subjectPosition = POSITION.LEFT;\n this.subjectOpenNewTab = true;\n this.groupNewTab = true;\n this.groupClickable = true;\n /**\n * Click handling of a cell.\n * 0 = select only the cell (1 subject, 1 group)\n * 1 = select the whole column (all subjects, 1 group)\n */\n this.selectionMode = SELECTION.CELL;\n /**\n * If true, the ribbon will fire an event if a user click an empty cell\n * If false, the ribbon will not fire the event on an empty cell\n * Note: if selectionMode == SELECTION.COLUMN, then the event will trigger if at least one of the selected cells has annotations\n */\n this.fireEventOnEmptyCells = false;\n // @Watch('selected')\n // selectedChanged(newValue, oldValue) {\n // console.log(\"selectedChanged(\", newValue , oldValue , \")\");\n // if(newValue != oldValue) {\n // let gp = this.getGroup(newValue);\n // this.selectCells(this.ribbonSummary.subjects, gp);\n // }\n // }\n /**\n * add a cell at the beginning of each row/subject to show all annotations\n */\n this.addCellAll = true;\n /**\n * When this is set to false, changing the subjects Prop won't trigger the reload of the ribbon\n * This is necessary when the ribbon is showing data other than GO or not using the internal fetchData mechanism\n */\n this.updateOnSubjectChange = true;\n this.loading = true;\n this.onlyExperimental = false;\n this.groupAll = {\n id: \"all\",\n label: \"all annotations\",\n description: \"Show all annotations for all categories\",\n type: \"GlobalAll\"\n };\n this.previouslyHovered = [];\n this.previouslySelected = [];\n this.cellClick = createEvent(this, \"cellClick\", 7);\n this.cellEnter = createEvent(this, \"cellEnter\", 7);\n this.cellLeave = createEvent(this, \"cellLeave\", 7);\n this.groupClick = createEvent(this, \"groupClick\", 7);\n this.groupEnter = createEvent(this, \"groupEnter\", 7);\n this.groupLeave = createEvent(this, \"groupLeave\", 7);\n }\n class_1.prototype.dataChanged = function (newValue, oldValue) {\n if (newValue != oldValue) {\n this.loadData(newValue);\n }\n };\n /**\n * This method is automatically called whenever the value of \"subjects\" changes\n * Note this method can be (and should be) deactivated (use updateOnSubjectChange) when the ribbon is not loading from GO and not using the internal fetchData mechanism\n * @param newValue a new subject is submitted (e.g. gene)\n * @param oldValue old value of the subject (e.g. gene or genes)\n */\n class_1.prototype.subjectsChanged = function (newValue, oldValue) {\n var _this = this;\n // if we don't want to update the ribbon on subject changes\n if (!this.updateOnSubjectChange) {\n this.loading = false;\n return;\n }\n if (newValue != oldValue) {\n // Fetch data based on subjects and subset\n this.fetchData(this.subjects)\n .then(function (data) {\n _this.ribbonSummary = data;\n _this.loading = false;\n }, function (error) {\n console.error(error);\n _this.loading = false;\n });\n }\n };\n class_1.prototype.loadData = function (data) {\n if (data) {\n // If was injected as string, transform to json\n if (typeof data == \"string\") {\n this.ribbonSummary = JSON.parse(data);\n }\n else {\n this.ribbonSummary = data;\n }\n this.loading = false;\n this.subjects = this.ribbonSummary.subjects.map((function (elt) { return elt.id; })).join(\",\");\n return true;\n }\n return false;\n };\n class_1.prototype.getGroup = function (group_id) {\n if (!this.ribbonSummary)\n return null;\n if (group_id == \"all\")\n return this.groupAll;\n for (var _i = 0, _a = this.ribbonSummary.categories; _i < _a.length; _i++) {\n var cat = _a[_i];\n for (var _b = 0, _c = cat.groups; _b < _c.length; _b++) {\n var gp = _c[_b];\n if (gp.id == group_id)\n return gp;\n }\n }\n return null;\n };\n /**\n * Once the component is loaded, fetch the data\n */\n class_1.prototype.componentWillLoad = function () {\n var _this = this;\n // Prioritize data if provided\n if (this.loadData(this.data))\n return;\n // If no subjects were provided, don't try to fetch data\n if (!this.subjects) {\n this.loading = false;\n return;\n }\n // Fetch data based on subjects and subset\n this.fetchData(this.subjects)\n .then(function (data) {\n _this.ribbonSummary = data;\n _this.loading = false;\n }, function (error) {\n console.error(error);\n _this.loading = false;\n });\n };\n class_1.prototype.componentDidLoad = function () {\n this.selectGroup(this.selected);\n this.selected = null;\n };\n class_1.prototype.fetchData = function (subjects) {\n if (subjects.includes(\",\")) {\n subjects = subjects.split(\",\");\n }\n if (subjects instanceof Array) {\n subjects = subjects.join('&subject=');\n }\n var query = this.baseApiUrl + '?subset=' + this.subset + '&subject=' + subjects;\n if (this.onlyExperimental) {\n query += EXP_CODES.map(function (exp) { return \"&ecodes=\" + exp; }).join(\"\");\n }\n console.log('API query is ' + query);\n return fetch(query)\n .then(function (response) {\n return response.json();\n })\n .catch(function (error) {\n return error;\n });\n };\n class_1.prototype.onCellEnter = function (subjects, group) {\n if (subjects instanceof Array) {\n this.formerColors = new Map();\n // change header style\n var el = this.ribbonElement.querySelector(\"#\" + groupKey(group));\n el.classList.add(\"selected\");\n for (var _i = 0, subjects_1 = subjects; _i < subjects_1.length; _i++) {\n var subject = subjects_1[_i];\n var el_1 = this.ribbonElement.querySelector(\"#\" + subjectGroupKey(subject, group));\n el_1.hovered = true;\n el_1.style.cursor = \"pointer\";\n }\n }\n else {\n // change cell style\n var nbAnnotations = group.id in subjects.groups ? subjects.groups[group.id][\"ALL\"][\"nb_annotations\"] : 0;\n if (group.type == \"GlobalAll\") {\n nbAnnotations = subjects.nb_annotations;\n }\n else {\n nbAnnotations = group.id in subjects.groups ? subjects.groups[group.id][\"ALL\"][\"nb_annotations\"] : 0;\n }\n // let el = this.ribbonElement.shadowRoot.querySelector(\"#\" + this.transform(subjects.id) + \"-\" + this.transform(group.id));\n var el = this.ribbonElement.querySelector(\"#\" + subjectGroupKey(subjects, group));\n el.style.cursor = nbAnnotations == 0 ? \"not-allowed\" : \"pointer\";\n if (nbAnnotations > 0) {\n el.hovered = true;\n // change header style\n el = this.ribbonElement.querySelector(\"#\" + groupKey(group));\n el.classList.add(\"selected\");\n }\n }\n var event = { subjects: subjects, group: group };\n this.cellEnter.emit(event);\n };\n class_1.prototype.onCellLeave = function (subjects, group) {\n if (subjects instanceof Array) {\n // change the header style\n var el = this.ribbonElement.querySelector(\"#\" + groupKey(group));\n el.classList.remove(\"selected\");\n for (var _i = 0, subjects_2 = subjects; _i < subjects_2.length; _i++) {\n var subject = subjects_2[_i];\n var el_2 = this.ribbonElement.querySelector(\"#\" + subjectGroupKey(subject, group));\n el_2.hovered = false;\n }\n this.formerColors = undefined;\n }\n else {\n // change the cell style\n var el = this.ribbonElement.querySelector(\"#\" + subjectGroupKey(subjects, group));\n el.hovered = false;\n // change the header style\n el = this.ribbonElement.querySelector(\"#\" + groupKey(group));\n el.classList.remove(\"selected\");\n }\n var event = { subjects: subjects, group: group };\n this.cellLeave.emit(event);\n };\n class_1.prototype.overCells = function (subjects, group) {\n if (!(subjects instanceof Array)) {\n subjects = [subjects];\n }\n var subs = subjects.map(function (elt) { return elt.id + \"@\" + group.id + \"@\" + group.type; });\n var prevSubs = this.previouslyHovered.map(function (elt) { return elt.subject.id + \"@\" + elt.group.id + \"@\" + elt.group.type; });\n var same = sameArray(subs, prevSubs);\n if (!same) {\n for (var _i = 0, _a = this.previouslyHovered; _i < _a.length; _i++) {\n var cell = _a[_i];\n cell.hovered = false;\n }\n }\n this.previouslyHovered = [];\n var hovered = [];\n for (var _b = 0, subjects_3 = subjects; _b < subjects_3.length; _b++) {\n var subject = subjects_3[_b];\n var cell = this.ribbonElement.querySelector(\"#\" + subjectGroupKey(subject, group));\n cell.hovered = !cell.hovered;\n hovered.push(cell.hovered);\n this.previouslyHovered.push(cell);\n }\n return hovered;\n };\n class_1.prototype.selectCells = function (subjects, group, toggle) {\n if (toggle === void 0) { toggle = true; }\n if (!(subjects instanceof Array)) {\n subjects = [subjects];\n }\n var subs = subjects.map(function (elt) { return elt.id + \"@\" + group.id + \"@\" + group.type; });\n var prevSubs = this.previouslySelected.map(function (elt) { return elt.subject.id + \"@\" + elt.group.id + \"@\" + elt.group.type; });\n var same = sameArray(subs, prevSubs);\n if (!same) {\n for (var _i = 0, _a = this.previouslySelected; _i < _a.length; _i++) {\n var cell = _a[_i];\n cell.selected = false;\n }\n }\n this.previouslySelected = [];\n var selected = [];\n var lastCell;\n for (var _b = 0, subjects_4 = subjects; _b < subjects_4.length; _b++) {\n var subject = subjects_4[_b];\n var cell = this.ribbonElement.querySelector(\"#\" + subjectGroupKey(subject, group));\n cell.selected = toggle ? !cell.selected : true;\n selected.push(cell.selected);\n this.previouslySelected.push(cell);\n lastCell = cell;\n }\n if (lastCell.selected) {\n this.selectedGroup = group;\n }\n else {\n this.selectedGroup = undefined;\n }\n return selected;\n };\n class_1.prototype.onCellClick = function (subjects, group) {\n if (!(subjects instanceof Array)) {\n subjects = [subjects];\n }\n // if don't fire events on empty cells\n if (!this.fireEventOnEmptyCells) {\n var hasAnnotations = false;\n // if single cell selection, check if it has annotations\n if (this.selectionMode == SELECTION.CELL) {\n var keys = Object.keys(subjects[0].groups);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (subjects[0].groups[key][\"ALL\"].nb_annotations > 0)\n hasAnnotations = true;\n }\n // if multiple cells selection, check if at least one has annotations\n }\n else {\n for (var _a = 0, subjects_5 = subjects; _a < subjects_5.length; _a++) {\n var sub = subjects_5[_a];\n if (group.id == \"all\") {\n hasAnnotations = hasAnnotations || sub.nb_annotations > 0;\n }\n else {\n hasAnnotations = hasAnnotations || (group.id in sub.groups && sub.groups[group.id][\"ALL\"][\"nb_annotations\"] > 0);\n }\n }\n }\n if (!hasAnnotations) {\n return;\n }\n }\n var selected = this.selectCells(subjects, group);\n var event = { subjects: subjects, group: group, selected: selected };\n this.cellClick.emit(event);\n };\n class_1.prototype.onGroupClick = function (category, group) {\n this.selectCells(this.ribbonSummary.subjects, group);\n var event = { category: category, group: group };\n this.groupClick.emit(event);\n };\n class_1.prototype.filterExperiment = function (checkbox) {\n var _this = this;\n this.onlyExperimental = checkbox.target.checked;\n // Fetch data based on subjects and subset\n this.fetchData(this.subjects)\n .then(function (data) {\n _this.ribbonSummary = data;\n _this.loading = false;\n }, function (error) {\n console.error(error);\n _this.loading = false;\n });\n };\n class_1.prototype.onGroupEnter = function (category, group) {\n this.overCells(this.ribbonSummary.subjects, group);\n var event = { subjects: this.ribbonSummary.subjects, category: category, group: group };\n this.groupEnter.emit(event);\n };\n class_1.prototype.onGroupLeave = function (category, group) {\n this.overCells(this.ribbonSummary.subjects, group);\n var event = { subjects: this.ribbonSummary.subjects, category: category, group: group };\n this.groupLeave.emit(event);\n };\n class_1.prototype.render = function () {\n // return [ \"hello\", <Spinner spinner-style='default' spinner-color='blue' style='display:block;width:100px;height:100px'/>]\n // Still loading (executing fetch)\n if (this.loading) {\n // return ( \"Loading Ribbon...\" );\n return h(\"wc-spinner\", { \"spinner-style\": 'default', \"spinner-color\": 'blue' });\n }\n if (!this.subjects && !this.ribbonSummary) {\n return (h(\"div\", null, \"Must provide at least one subject\"));\n }\n // API request undefined\n if (!this.ribbonSummary) {\n return (h(\"div\", null, \"No data available\"));\n }\n // API request done but not subject retrieved\n var nbSubjects = this.ribbonSummary.subjects.length;\n if (nbSubjects == 0) {\n return (h(\"div\", null, \"Must provide at least one subject\"));\n }\n // Data is present, show the ribbon\n return (h(\"div\", null, h(\"table\", { class: \"ribbon\" }, this.renderCategory(), this.renderSubjects())));\n };\n class_1.prototype.applyCategoryStyling = function (category) {\n var cc0 = truncate(category, this.groupMaxLabelSize, \"...\");\n var cc1 = this.applyCategoryCase(cc0);\n var cc2 = this.applyCategoryBold(cc1);\n return cc2;\n };\n class_1.prototype.applyCategoryBold = function (category) {\n var lc = category.toLowerCase();\n if (lc.startsWith(\"all\") && this.categoryAllStyle == FONT_STYLE.BOLD) {\n return h(\"b\", null, category);\n }\n if (lc.startsWith(\"other\") && this.categoryOtherStyle == FONT_STYLE.BOLD) {\n return h(\"b\", null, category);\n }\n return category;\n };\n class_1.prototype.applyCategoryCase = function (category) {\n if (this.categoryCase == FONT_CASE.LOWER_CASE) {\n return category.toLowerCase();\n }\n else if (this.categoryCase == FONT_CASE.UPPER_CASE) {\n return category.toUpperCase();\n }\n return category;\n };\n class_1.prototype.selectGroup = function (group_id) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n setTimeout(function () {\n if (group_id && _this.ribbonSummary) {\n var gp = _this.getGroup(group_id);\n if (gp) {\n _this.selectCells(_this.ribbonSummary.subjects, gp, false);\n }\n else {\n console.warn(\"Could not find group <\", group_id, \">\");\n }\n }\n }, 750);\n return [2 /*return*/];\n });\n });\n };\n class_1.prototype.renderCategory = function () {\n var _this = this;\n return (h(\"tr\", { class: \"ribbon__category\" }, this.subjectPosition == POSITION.LEFT ? h(\"td\", { class: \"ribbon__subject__label--left\" }) : \"\", this.addCellAll ?\n h(\"th\", { class: \"ribbon__category--cell\", id: groupKey(this.groupAll), title: this.groupAll.id + \": \" + this.groupAll.label + \"\\n\\n\" + this.groupAll.description, onMouseEnter: function () { return _this.onGroupEnter(null, _this.groupAll); }, onMouseLeave: function () { return _this.onGroupLeave(null, _this.groupAll); }, onClick: (this.groupClickable) ? function () { return _this.onGroupClick(undefined, _this.groupAll); } : undefined }, this.applyCategoryStyling(this.groupAll.label))\n : \"\", this.ribbonSummary.categories.map(function (category) {\n return [\n h(\"th\", { class: \"ribbon__category--separator\" }),\n category.groups.map(function (group) {\n if (group.type == CELL_TYPES.OTHER && !_this.showOtherGroup) {\n return;\n }\n var classes = _this.groupClickable ? \"ribbon__category--cell clickable\" : \"ribbon__category--cell\";\n return h(\"th\", { class: classes, id: groupKey(group), title: group.id + \": \" + group.label + \"\\n\\n\" + group.description, onMouseEnter: function () { return _this.onGroupEnter(category, group); }, onMouseLeave: function () { return _this.onGroupLeave(category, group); }, onClick: (_this.groupClickable) ? function () { return _this.onGroupClick(category, group); } : undefined }, _this.selectedGroup == group ? h(\"b\", { style: { \"color\": \"#002eff\" } }, _this.applyCategoryStyling(group.label)) : _this.applyCategoryStyling(group.label));\n })\n ];\n }), this.subjectPosition == POSITION.RIGHT ? h(\"td\", { class: \"ribbon__subject__label--right\" }) : \"\"));\n };\n class_1.prototype.renderSubjects = function () {\n var _this = this;\n return (this.ribbonSummary.subjects.map(function (subject) {\n var subjects = _this.selectionMode == SELECTION.CELL ? subject : _this.ribbonSummary.subjects;\n return (h(\"tr\", { class: \"ribbon__subject\" }, _this.subjectPosition == POSITION.LEFT\n ? h(\"wc-ribbon-subject\", { class: \"ribbon__subject__label--left\", subject: subject, subjectBaseURL: _this.subjectBaseUrl, newTab: _this.subjectOpenNewTab })\n : \"\", _this.addCellAll ?\n h(\"wc-ribbon-cell\", { class: \"ribbon__subject--cell\", id: subjectGroupKey(subject, _this.groupAll), subject: subject, group: _this.groupAll, colorBy: _this.colorBy, binaryColor: _this.binaryColor, minColor: _this.minColor, maxColor: _this.maxColor, maxHeatLevel: _this.maxHeatLevel, annotationLabels: _this.annotationLabels, classLabels: _this.classLabels, onClick: function () { return _this.onCellClick(subjects, _this.groupAll); }, onMouseEnter: function () { return _this.onCellEnter(subjects, _this.groupAll); }, onMouseLeave: function () { return _this.onCellLeave(subjects, _this.groupAll); } })\n : \"\", _this.ribbonSummary.categories.map(function (category) {\n return [\n h(\"td\", { class: \"ribbon__subject--separator\" }),\n category.groups.map(function (group) {\n var cellid = group.id + (group.type == CELL_TYPES.OTHER ? \"-other\" : \"\");\n var cell = cellid in subject.groups ? subject.groups[cellid] : undefined;\n var nbAnnotations = cell ? cell[\"ALL\"][\"nb_annotations\"] : 0;\n // by default the group should be available\n var available = true;\n // if a value was given, then override the default value\n if (cell && cell.hasOwnProperty(\"available\")) {\n available = cell.available;\n }\n if (group.type == CELL_TYPES.OTHER && !_this.showOtherGroup) {\n return;\n }\n return (h(\"wc-ribbon-cell\", { class: (nbAnnotations == 0 ? \"ribbon__subject--cell--no-annotation\" : \"ribbon__subject--cell\"), id: subjectGroupKey(subject, group), subject: subject, group: group, available: available, colorBy: _this.colorBy, binaryColor: _this.binaryColor, minColor: _this.minColor, maxColor: _this.maxColor, maxHeatLevel: _this.maxHeatLevel, annotationLabels: _this.annotationLabels, classLabels: _this.classLabels, onClick: function () { return _this.onCellClick(subjects, group); }, onMouseEnter: function () { return _this.onCellEnter(subjects, group); }, onMouseLeave: function () { return _this.onCellLeave(subjects, group); } }));\n })\n ];\n }), _this.subjectPosition == POSITION.RIGHT\n ? h(\"wc-ribbon-subject\", { class: \"ribbon__subject__label--right\", subject: subject, subjectBaseURL: _this.subjectBaseUrl, newTab: _this.subjectOpenNewTab })\n : \"\"));\n }));\n };\n Object.defineProperty(class_1.prototype, \"ribbonElement\", {\n get: function () { return getElement(this); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(class_1, \"watchers\", {\n get: function () {\n return {\n \"data\": [\"dataChanged\"],\n \"subjects\": [\"subjectsChanged\"]\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(class_1, \"style\", {\n get: function () { return \".ribbon{display:table;width:100%}.ribbon,.ribbon *{margin:0;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box;font-weight:400}.ribbon b{font-weight:800}.ribbon__category{display:block;margin-bottom:.5rem;margin-top:12.4rem}.ribbon__category--separator{display:inline-block;padding:0 15px}.ribbon__category--cell{display:inline-block;width:18px;outline:none;text-align:left;white-space:nowrap;-webkit-transform:translateY(-2px) rotate(-45deg);transform:translateY(-2px) rotate(-45deg)}.ribbon__category--cell:hover{cursor:help;font-weight:700}.ribbon__subject{display:block;padding-bottom:.05rem;white-space:nowrap}.ribbon__subject__label--left{display:inline-block;width:140px}.ribbon__subject__label--right{display:inline-block;margin-left:1rem}.ribbon__subject--separator{display:inline-block;padding:0 15px}.ribbon__subject--cell{display:inline-block;width:18px;height:18px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.26);box-shadow:0 1px 4px rgba(0,0,0,.26);outline:none;text-align:center}.ribbon__subject--cell--hover{cursor:pointer;border:1px solid #000}.ribbon__subject--cell--no-annotation{display:inline-block;width:18px;height:18px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.26);box-shadow:0 1px 4px rgba(0,0,0,.26);outline:none;text-align:center}.ribbon__subject--cell--no-annotation:hover{cursor:not-allowed!important}.ribbon__subject--cell--disabled{display:inline-block;width:18px;height:18px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.26);box-shadow:0 1px 4px rgba(0,0,0,.26);outline:none;text-align:center;background:repeating-linear-gradient(45deg,#fff,rgba(0,0,0,.1) 1px,#fff 2px,#fff 12px)}.selected{font-weight:700!important}.clickable{cursor:pointer!important}\"; },\n enumerable: true,\n configurable: true\n });\n return class_1;\n}());\nvar RibbonSubject = /** @class */ (function () {\n function RibbonSubject(hostRef) {\n registerInstance(this, hostRef);\n if (!this.subjectBaseURL.endsWith(\"/\")) {\n this.subjectBaseURL += \"/\";\n }\n // fix due to doubling MGI:MGI: in GO\n this.id = this.subject.id;\n if (this.subject.id.startsWith(\"MGI:\")) {\n this.id = \"MGI:\" + this.subject.id;\n }\n this.subjectClick = createEvent(this, \"subjectClick\", 7);\n }\n RibbonSubject.prototype.onSubjectClick = function (event, subject) {\n var ev = { originalEvent: event, subject: subject };\n this.subjectClick.emit(ev);\n };\n RibbonSubject.prototype.render = function () {\n var _this = this;\n return (h(\"td\", null, h(\"a\", { class: \"ribbon__subject__label--link\", href: this.subjectBaseURL + this.id, onClick: function (e) { _this.onSubjectClick(e, _this.subject); }, target: this.newTab ? \"_blank\" : \"_self\" }, this.subject.label + \" (\" + formatTaxonLabel(this.subject.taxon_label) + \")\")));\n };\n Object.defineProperty(RibbonSubject.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(RibbonSubject, \"style\", {\n get: function () { return \".ribbon__subject__label--link{text-decoration:none;color:#000;font-weight:400}.ribbon__subject__label--link:hover{font-weight:700}\"; },\n enumerable: true,\n configurable: true\n });\n return RibbonSubject;\n}());\nexport { RibbonCell as wc_ribbon_cell, RibbonStrips as wc_ribbon_strips, RibbonSubject as wc_ribbon_subject };\n"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","__spreadArrays","s","i","il","arguments","r","Array","k","a","j","jl","transformID","txt","replace","groupKey","group","id","type","subjectGroupKey","subject","toRGB","array","sameArray","array1","array2","COLOR_BY","POSITION","SELECTION","EXP_CODES","CELL_TYPES","FONT_CASE","FONT_STYLE","RibbonCell","hostRef","registerInstance","classLabels","annotationLabels","colorBy","binaryColor","minColor","maxColor","maxHeatLevel","available","selected","hovered","prototype","minColorChanged","newValue","oldValue","updateMinColor","arrayMinColor","includes","split","map","elt","maxColorChanged","updateMaxColor","arrayMaxColor","annotationLabelsChanged","updateAnnotationLabels","arrayAnnotationLabels","trim","classLabelsChanged","updateClassLabels","arrayClassLabels","cellColor","nbClasses","nbAnnotations","newColor","level","fraction","Math","min","log","itemColor","round","heatColor","val","color","factor","max","darken","join","getNbClasses","nb_classes","cellid","cell","groups","undefined","getNbAnnotations","nb_annotations","hasAnnotations","componentWillLoad","render","title_1","h","title","class","el","style","setProperty","classes","Object","defineProperty","get","getElement","enumerable","configurable","RibbonStrips","class_1","baseApiUrl","subjectBaseUrl","groupBaseUrl","subset","subjects","groupMaxLabelSize","categoryCase","categoryAllStyle","categoryOtherStyle","showOtherGroup","subjectPosition","subjectOpenNewTab","groupNewTab","groupClickable","selectionMode","fireEventOnEmptyCells","addCellAll","updateOnSubjectChange","loading","onlyExperimental","groupAll","description","previouslyHovered","previouslySelected","cellClick","createEvent","cellEnter","cellLeave","groupClick","groupEnter","groupLeave","dataChanged","loadData","subjectsChanged","_this","fetchData","data","ribbonSummary","error","console","JSON","parse","getGroup","group_id","_i","_a","categories","_b","_c","gp","componentDidLoad","selectGroup","query","exp","fetch","response","json","catch","onCellEnter","formerColors","Map","ribbonElement","querySelector","classList","add","subjects_1","el_1","cursor","event","emit","onCellLeave","remove","subjects_2","overCells","subjects_3","selectCells","toggle","lastCell","subjects_4","selectedGroup","onCellClick","keys_1","keys","key","subjects_5","sub","onGroupClick","category","filterExperiment","checkbox","target","checked","onGroupEnter","onGroupLeave","renderCategory","renderSubjects","applyCategoryStyling","text","size","ending","cc0","substring","cc1","applyCategoryCase","applyCategoryBold","lc","toLowerCase","startsWith","toUpperCase","setTimeout","warn","onMouseEnter","onMouseLeave","onClick","subjectBaseURL","newTab","hasOwnProperty","RibbonSubject","endsWith","subjectClick","onSubjectClick","ev","originalEvent","href","species","formatTaxonLabel","taxon_label"],"sourceRoot":""}