{"version":3,"sources":["../../src/js/brc-db-cross-search.js"],"names":[],"mappings":"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","file":"brc-db-cross-search.js","sourcesContent":["/*global d3 */\n\nconst BRCCSManager = {};\n\n(function(){\n\n let isReady =\n document.readyState === 'complete' ||\n (document.readyState !== 'loading' &&\n !document.documentElement.doScroll);\n if (isReady) {\n brcDbCrossSearchInit();\n } else {\n document.addEventListener('DOMContentLoaded', brcDbCrossSearchInit);\n }\n \n \n function brcDbCrossSearchInit() {\n isReady = true;\n \n // collapse menu\n document.querySelectorAll('.brc-cross-search-module .collapse-view').forEach(collapsse => {\n const button = collapsse.querySelector('.collapsebutton');\n button.addEventListener('click', () => collapsse.classList.toggle('-collapsed'));\n });\n \n // table header\n initStickyTableHeader();\n \n // sorter\n initSorter();\n \n // statistics\n initStatistics();\n }\n \n // テーブルヘッダの吸着\n function initStickyTableHeader() {\n const stickys = [];\n document.querySelectorAll('.brc-cross-search-module .sticky-header').forEach(header => {\n stickys.push({\n header: header, // 吸着させるヘッダ\n target: header.parentNode // ヘッダの範囲\n });\n });\n \n window.addEventListener('scroll', () => {\n const MIN_HEIGHT = 30;\n for (const sticky of stickys) {\n const\n windowRect = { y: 0, height: window.innerHeight },\n targetRect = sticky.target.getBoundingClientRect(),\n interRect = intersect(windowRect, targetRect);\n if (interRect.height > 0) {\n // 対象が画面中に存在し\n if (targetRect.y < 0) {\n // Y座標が負の値であれば、ヘッダを吸着\n let y = targetRect.y * -1;\n if (interRect.height < MIN_HEIGHT) {\n y += interRect.height - MIN_HEIGHT;\n }\n sticky.header.style.transform = `translateY(${y}px)`;\n } else {\n sticky.header.style.transform = '';\n }\n } else {\n sticky.header.style.transform = '';\n }\n }\n });\n }\n \n // テーブルヘッダ項目にソートイベントをアタッチ\n function initSorter() {\n document.querySelectorAll('.brc-cross-search-module .results-view > .contents > table > thead > tr > th').forEach(th => {\n th.addEventListener('click', () => {\n // カラムの値\n const brcType = th.parentNode.parentNode.parentNode.parentNode.parentNode.dataset.brcType;\n // 他のカラムのソート削除\n th.parentNode.querySelectorAll('th').forEach(sibTh => {\n if (sibTh !== th) sibTh.className = '';\n });\n // ソートの定義\n if (th.classList.contains('-sort-asc')) {\n th.className = '-sort-desc';\n } else {\n th.className = '-sort-asc';\n }\n const sort = th.className.substr(6);\n window.console.log( 'brc:', brcType, 'column:', th.dataset.value, 'order:', sort);\n });\n });\n }\n \n function initStatistics() {\n \n }\n // 統計情報の表示\n BRCCSManager.showStatistics = function(data) {\n if (isReady) {\n showStatistics(data);\n } else {\n document.addEventListener('DOMContentLoaded', function() {\n showStatistics(data);\n });\n }\n }\n function showStatistics(data) {\n for (const datum of data) {\n const container = document.querySelector(`.brc-cross-search-module > .results-view[data-brc-type=\"${datum.brcType}\"] .results-statistics .container`);\n // コンテナを空に\n container.textContent = '';\n // 各統計情報の取り出し\n for (const aStatistics of datum.statistics) {\n // 統計情報単位の生成\n const div = document.createElement('div');\n div.classList.add('statistics-unit');\n div.dataset.displayType = aStatistics.displayType;\n div.innerHTML = `\n
\n

${aStatistics.label}

\n `;\n container.appendChild(div);\n const unitContainer = div.querySelector('.container');\n switch (aStatistics.displayType) {\n case 'barchart': drawBarChart(aStatistics.data, unitContainer, aStatistics.id, datum.brcType); break;\n case 'piechart': drawPieChart(aStatistics.data, unitContainer, aStatistics.id, datum.brcType); break;\n }\n }\n }\n }\n\n // 棒グラフの描画\n function drawBarChart(data, container, column, brcType) {\n const BAR_CHART_MAX = 5; // 最大表示数\n let\n keysHtml = '
',\n valuesHtml = '
',\n max = Math.max(...data.map(datum => datum.value)); // 最大値\n // 棒グラフ\n for (let i = 0; i < Math.min(data.length, BAR_CHART_MAX); i++) {\n const\n datum = data[i],\n left = ((datum.value / max) * 100) + '%';\n keysHtml += `

${datum.label}

`;\n valuesHtml += `

${datum.value}

`;\n }\n keysHtml += '
';\n valuesHtml += '
';\n container.innerHTML = keysHtml + valuesHtml;\n // テキストの横幅計測し、コンテナの横幅に追加\n const widths = Array.from(container.querySelectorAll('p.value'), elm => elm.getBoundingClientRect().width);\n container.style.paddingRight = `${Math.max(...widths)}px`;\n // イベント\n container.querySelectorAll('.label').forEach(elm => {\n // テキストフィールドに値を入れる\n elm.addEventListener('click', function() {\n document.querySelectorAll(`.brc-cross-search-module > .search-field[data-brc-type=\"${brcType}\"] > input[type=\"search\"], .brc-cross-search-module > .search-field[data-brc-type=\"all\"] > input[type=\"search\"]`).forEach(elm => {\n elm.value = (elm.value === '' ? '' : `${elm.value} `) + this.textContent;\n });\n });\n });\n }\n function drawPieChart(data, container, column, brcType) {\n\n // 円グラフ\n const\n svg = d3.select(container).append('svg'),\n rect = svg.node().getBoundingClientRect(),\n width = rect.width,\n height = rect.height,\n radius = Math.min(width, height) / 2,\n g = svg.append('g').attr('transform', `translate(${width / 2}, ${height / 2})`),\n pie = d3.pie()\n .sort(null)\n .value( d => d.value ),\n path = d3.arc()\n .outerRadius(radius - 5)\n .innerRadius(radius),\n arc = g.selectAll('.arc')\n .data(pie(data))\n .enter().append('g')\n .attr('class', 'arc');\n arc.append('path')\n .attr('d', path);\n\n // 項目\n const\n divKeys = document.createElement('div'),\n divValues = document.createElement('div');\n let\n keysHtml = '',\n valuesHtml = '';\n divKeys.classList.add('keyscolumn');\n divValues.classList.add('valuescolumn');\n container.appendChild(divKeys);\n container.appendChild(divValues);\n for (const datum of data) {\n keysHtml += `

${datum.label}

`;\n valuesHtml += `

${datum.value}

`;\n }\n divKeys.innerHTML = keysHtml;\n divValues.innerHTML = valuesHtml;\n\n // イベント\n container.querySelectorAll('.label').forEach(elm => {\n // テキストフィールドに値を入れる\n elm.addEventListener('click', function() {\n document.querySelectorAll(`.brc-cross-search-module > .search-field[data-brc-type=\"${brcType}\"] > input[type=\"search\"], .brc-cross-search-module > .search-field[data-brc-type=\"all\"] > input[type=\"search\"]`).forEach(elm => {\n elm.value = (elm.value === '' ? '' : `${elm.value} `) + this.textContent;\n });\n });\n });\n\n \n }\n\n \n function intersect(rect1, rect2) {\n const\n sy = Math.max(rect1.y, rect2.y),\n ey = Math.min(rect1.y + rect1.height, rect2.y + rect2.height),\n h = ey - sy;\n if (h > 0) {\n return { y: sy, height: h };\n }\n return { y: 0, height: 0 };\n }\n \n\n})()\n\n\n// \nBRCCSManager.showStatistics([\n {\n brcType: 'mus', // mus, epd, cell, dna, jcm\n statistics: [\n {\n label: '保存状態',\n id: '保存状態',\n displayType: 'barchart', // barchart or piechart\n data: [ // 6つめ以降は無視\n {\n label: 'Live mice',\n id: 'Live mice',\n value: 120\n },\n {\n label: 'Frozen embryo',\n id: 'Live mice',\n value: 88\n },\n {\n label: 'Frozen sperm',\n id: 'Live mice',\n value: 70\n },\n {\n label: 'Frozen organ',\n id: 'Live mice',\n value: 45\n },\n {\n label: 'Preparing for distribution',\n id: 'Live mice',\n value: 44\n },\n {\n label: 'other1',\n id: 'Live mice',\n value: 21\n },\n {\n label: 'other2',\n id: 'Live mice',\n value: 18\n }\n ]\n },\n {\n label: 'タイプ',\n id: 'タイプ',\n displayType: 'piechart',\n data: [ // 5つめ以降はその他\n {\n label: 'Targeted Mutation',\n id: 'Targeted Mutation',\n value: 120\n },\n {\n label: 'Targeted Mutation Congenic',\n id: 'Targeted Mutation Congenic',\n value: 65\n },\n {\n label: 'Transgene',\n id: 'Transgene',\n value: 56\n },\n {\n label: 'Inbred',\n id: 'Inbred',\n value: 53\n },\n {\n label: 'Hoge',\n id: 'Hoge',\n value: 42\n },\n {\n label: 'Fuga',\n id: 'Fuga',\n value: 36\n },\n {\n label: 'Piyo',\n id: 'Piyo',\n value: 24\n }\n ]\n }\n ]\n }\n]);\n\n"]}